Code Duplication    Length = 53-57 lines in 3 locations

opcua/ua/uaprotocol_auto.py 3 locations

@@ 890-946 (lines=57) @@
887
    __repr__ = __str__
888
889
890
class Argument(FrozenClass):
891
    '''
892
    An argument for a method.
893
894
    :ivar Name:
895
    :vartype Name: String
896
    :ivar DataType:
897
    :vartype DataType: NodeId
898
    :ivar ValueRank:
899
    :vartype ValueRank: Int32
900
    :ivar ArrayDimensions:
901
    :vartype ArrayDimensions: UInt32
902
    :ivar Description:
903
    :vartype Description: LocalizedText
904
    '''
905
    def __init__(self, binary=None):
906
        if binary is not None:
907
            self._binary_init(binary)
908
            self._freeze = True
909
            return
910
        self.Name = None
911
        self.DataType = NodeId()
912
        self.ValueRank = 0
913
        self.ArrayDimensions = []
914
        self.Description = LocalizedText()
915
        self._freeze = True
916
917
    def to_binary(self):
918
        packet = []
919
        packet.append(pack_string(self.Name))
920
        packet.append(self.DataType.to_binary())
921
        packet.append(uatype_Int32.pack(self.ValueRank))
922
        packet.append(uatype_Int32.pack(len(self.ArrayDimensions)))
923
        for fieldname in self.ArrayDimensions:
924
            packet.append(uatype_UInt32.pack(fieldname))
925
        packet.append(self.Description.to_binary())
926
        return b''.join(packet)
927
928
    @staticmethod
929
    def from_binary(data):
930
        return Argument(data)
931
932
    def _binary_init(self, data):
933
        self.Name = unpack_string(data)
934
        self.DataType = NodeId.from_binary(data)
935
        self.ValueRank = uatype_Int32.unpack(data.read(4))[0]
936
        self.ArrayDimensions = unpack_uatype_array('UInt32', data)
937
        self.Description = LocalizedText.from_binary(data)
938
939
    def __str__(self):
940
        return 'Argument(' + 'Name:' + str(self.Name) + ', ' + \
941
               'DataType:' + str(self.DataType) + ', ' + \
942
               'ValueRank:' + str(self.ValueRank) + ', ' + \
943
               'ArrayDimensions:' + str(self.ArrayDimensions) + ', ' + \
944
               'Description:' + str(self.Description) + ')'
945
946
    __repr__ = __str__
947
948
949
class EnumValueType(FrozenClass):
@@ 13848-13902 (lines=55) @@
13845
    __repr__ = __str__
13846
13847
13848
class AxisInformation(FrozenClass):
13849
    '''
13850
    :ivar EngineeringUnits:
13851
    :vartype EngineeringUnits: EUInformation
13852
    :ivar EURange:
13853
    :vartype EURange: Range
13854
    :ivar Title:
13855
    :vartype Title: LocalizedText
13856
    :ivar AxisScaleType:
13857
    :vartype AxisScaleType: AxisScaleEnumeration
13858
    :ivar AxisSteps:
13859
    :vartype AxisSteps: Double
13860
    '''
13861
    def __init__(self, binary=None):
13862
        if binary is not None:
13863
            self._binary_init(binary)
13864
            self._freeze = True
13865
            return
13866
        self.EngineeringUnits = EUInformation()
13867
        self.EURange = Range()
13868
        self.Title = LocalizedText()
13869
        self.AxisScaleType = AxisScaleEnumeration(0)
13870
        self.AxisSteps = []
13871
        self._freeze = True
13872
13873
    def to_binary(self):
13874
        packet = []
13875
        packet.append(self.EngineeringUnits.to_binary())
13876
        packet.append(self.EURange.to_binary())
13877
        packet.append(self.Title.to_binary())
13878
        packet.append(uatype_UInt32.pack(self.AxisScaleType.value))
13879
        packet.append(uatype_Int32.pack(len(self.AxisSteps)))
13880
        for fieldname in self.AxisSteps:
13881
            packet.append(uatype_Double.pack(fieldname))
13882
        return b''.join(packet)
13883
13884
    @staticmethod
13885
    def from_binary(data):
13886
        return AxisInformation(data)
13887
13888
    def _binary_init(self, data):
13889
        self.EngineeringUnits = EUInformation.from_binary(data)
13890
        self.EURange = Range.from_binary(data)
13891
        self.Title = LocalizedText.from_binary(data)
13892
        self.AxisScaleType = AxisScaleEnumeration(uatype_UInt32.unpack(data.read(4))[0])
13893
        self.AxisSteps = unpack_uatype_array('Double', data)
13894
13895
    def __str__(self):
13896
        return 'AxisInformation(' + 'EngineeringUnits:' + str(self.EngineeringUnits) + ', ' + \
13897
               'EURange:' + str(self.EURange) + ', ' + \
13898
               'Title:' + str(self.Title) + ', ' + \
13899
               'AxisScaleType:' + str(self.AxisScaleType) + ', ' + \
13900
               'AxisSteps:' + str(self.AxisSteps) + ')'
13901
13902
    __repr__ = __str__
13903
13904
13905
class XVType(FrozenClass):
@@ 7031-7083 (lines=53) @@
7028
    __repr__ = __str__
7029
7030
7031
class AttributeOperand(FrozenClass):
7032
    '''
7033
    :ivar NodeId:
7034
    :vartype NodeId: NodeId
7035
    :ivar Alias:
7036
    :vartype Alias: String
7037
    :ivar BrowsePath:
7038
    :vartype BrowsePath: RelativePath
7039
    :ivar AttributeId:
7040
    :vartype AttributeId: UInt32
7041
    :ivar IndexRange:
7042
    :vartype IndexRange: String
7043
    '''
7044
    def __init__(self, binary=None):
7045
        if binary is not None:
7046
            self._binary_init(binary)
7047
            self._freeze = True
7048
            return
7049
        self.NodeId = NodeId()
7050
        self.Alias = None
7051
        self.BrowsePath = RelativePath()
7052
        self.AttributeId = 0
7053
        self.IndexRange = None
7054
        self._freeze = True
7055
7056
    def to_binary(self):
7057
        packet = []
7058
        packet.append(self.NodeId.to_binary())
7059
        packet.append(pack_string(self.Alias))
7060
        packet.append(self.BrowsePath.to_binary())
7061
        packet.append(uatype_UInt32.pack(self.AttributeId))
7062
        packet.append(pack_string(self.IndexRange))
7063
        return b''.join(packet)
7064
7065
    @staticmethod
7066
    def from_binary(data):
7067
        return AttributeOperand(data)
7068
7069
    def _binary_init(self, data):
7070
        self.NodeId = NodeId.from_binary(data)
7071
        self.Alias = unpack_string(data)
7072
        self.BrowsePath = RelativePath.from_binary(data)
7073
        self.AttributeId = uatype_UInt32.unpack(data.read(4))[0]
7074
        self.IndexRange = unpack_string(data)
7075
7076
    def __str__(self):
7077
        return 'AttributeOperand(' + 'NodeId:' + str(self.NodeId) + ', ' + \
7078
               'Alias:' + str(self.Alias) + ', ' + \
7079
               'BrowsePath:' + str(self.BrowsePath) + ', ' + \
7080
               'AttributeId:' + str(self.AttributeId) + ', ' + \
7081
               'IndexRange:' + str(self.IndexRange) + ')'
7082
7083
    __repr__ = __str__
7084
7085
7086
class SimpleAttributeOperand(FrozenClass):