Code Duplication    Length = 64-66 lines in 2 locations

opcua/ua/uaprotocol_auto.py 2 locations

@@ 912-977 (lines=66) @@
909
    __repr__ = __str__
910
911
912
class Argument(FrozenClass):
913
    '''
914
    An argument for a method.
915
916
    :ivar Name:
917
    :vartype Name: String
918
    :ivar DataType:
919
    :vartype DataType: NodeId
920
    :ivar ValueRank:
921
    :vartype ValueRank: Int32
922
    :ivar ArrayDimensions:
923
    :vartype ArrayDimensions: UInt32
924
    :ivar Description:
925
    :vartype Description: LocalizedText
926
    '''
927
928
    ua_types = {
929
        'Name': 'String',
930
        'DataType': 'NodeId',
931
        'ValueRank': 'Int32',
932
        'ArrayDimensions': 'UInt32',
933
        'Description': 'LocalizedText',
934
               }
935
936
    def __init__(self, binary=None):
937
        if binary is not None:
938
            self._binary_init(binary)
939
            self._freeze = True
940
            return
941
        self.Name = None
942
        self.DataType = NodeId()
943
        self.ValueRank = 0
944
        self.ArrayDimensions = []
945
        self.Description = LocalizedText()
946
        self._freeze = True
947
948
    def to_binary(self):
949
        packet = []
950
        packet.append(uabin.Primitives.String.pack(self.Name))
951
        packet.append(self.DataType.to_binary())
952
        packet.append(uabin.Primitives.Int32.pack(self.ValueRank))
953
        packet.append(uabin.Primitives.Int32.pack(len(self.ArrayDimensions)))
954
        for fieldname in self.ArrayDimensions:
955
            packet.append(uabin.Primitives.UInt32.pack(fieldname))
956
        packet.append(self.Description.to_binary())
957
        return b''.join(packet)
958
959
    @staticmethod
960
    def from_binary(data):
961
        return Argument(data)
962
963
    def _binary_init(self, data):
964
        self.Name = uabin.Primitives.String.unpack(data)
965
        self.DataType = NodeId.from_binary(data)
966
        self.ValueRank = uabin.Primitives.Int32.unpack(data)
967
        self.ArrayDimensions = uabin.Primitives.UInt32.unpack_array(data)
968
        self.Description = LocalizedText.from_binary(data)
969
970
    def __str__(self):
971
        return 'Argument(' + 'Name:' + str(self.Name) + ', ' + \
972
               'DataType:' + str(self.DataType) + ', ' + \
973
               'ValueRank:' + str(self.ValueRank) + ', ' + \
974
               'ArrayDimensions:' + str(self.ArrayDimensions) + ', ' + \
975
               'Description:' + str(self.Description) + ')'
976
977
    __repr__ = __str__
978
979
980
class EnumValueType(FrozenClass):
@@ 15809-15872 (lines=64) @@
15806
    __repr__ = __str__
15807
15808
15809
class AxisInformation(FrozenClass):
15810
    '''
15811
    :ivar EngineeringUnits:
15812
    :vartype EngineeringUnits: EUInformation
15813
    :ivar EURange:
15814
    :vartype EURange: Range
15815
    :ivar Title:
15816
    :vartype Title: LocalizedText
15817
    :ivar AxisScaleType:
15818
    :vartype AxisScaleType: AxisScaleEnumeration
15819
    :ivar AxisSteps:
15820
    :vartype AxisSteps: Double
15821
    '''
15822
15823
    ua_types = {
15824
        'EngineeringUnits': 'EUInformation',
15825
        'EURange': 'Range',
15826
        'Title': 'LocalizedText',
15827
        'AxisScaleType': 'AxisScaleEnumeration',
15828
        'AxisSteps': 'Double',
15829
               }
15830
15831
    def __init__(self, binary=None):
15832
        if binary is not None:
15833
            self._binary_init(binary)
15834
            self._freeze = True
15835
            return
15836
        self.EngineeringUnits = EUInformation()
15837
        self.EURange = Range()
15838
        self.Title = LocalizedText()
15839
        self.AxisScaleType = AxisScaleEnumeration(0)
15840
        self.AxisSteps = []
15841
        self._freeze = True
15842
15843
    def to_binary(self):
15844
        packet = []
15845
        packet.append(self.EngineeringUnits.to_binary())
15846
        packet.append(self.EURange.to_binary())
15847
        packet.append(self.Title.to_binary())
15848
        packet.append(uabin.Primitives.UInt32.pack(self.AxisScaleType.value))
15849
        packet.append(uabin.Primitives.Int32.pack(len(self.AxisSteps)))
15850
        for fieldname in self.AxisSteps:
15851
            packet.append(uabin.Primitives.Double.pack(fieldname))
15852
        return b''.join(packet)
15853
15854
    @staticmethod
15855
    def from_binary(data):
15856
        return AxisInformation(data)
15857
15858
    def _binary_init(self, data):
15859
        self.EngineeringUnits = EUInformation.from_binary(data)
15860
        self.EURange = Range.from_binary(data)
15861
        self.Title = LocalizedText.from_binary(data)
15862
        self.AxisScaleType = AxisScaleEnumeration(uabin.Primitives.UInt32.unpack(data))
15863
        self.AxisSteps = uabin.Primitives.Double.unpack_array(data)
15864
15865
    def __str__(self):
15866
        return 'AxisInformation(' + 'EngineeringUnits:' + str(self.EngineeringUnits) + ', ' + \
15867
               'EURange:' + str(self.EURange) + ', ' + \
15868
               'Title:' + str(self.Title) + ', ' + \
15869
               'AxisScaleType:' + str(self.AxisScaleType) + ', ' + \
15870
               'AxisSteps:' + str(self.AxisSteps) + ')'
15871
15872
    __repr__ = __str__
15873
15874
15875
class XVType(FrozenClass):