Code Duplication    Length = 64-66 lines in 2 locations

opcua/ua/uaprotocol_auto.py 2 locations

@@ 910-975 (lines=66) @@
907
    __repr__ = __str__
908
909
910
class Argument(FrozenClass):
911
    '''
912
    An argument for a method.
913
914
    :ivar Name:
915
    :vartype Name: String
916
    :ivar DataType:
917
    :vartype DataType: NodeId
918
    :ivar ValueRank:
919
    :vartype ValueRank: Int32
920
    :ivar ArrayDimensions:
921
    :vartype ArrayDimensions: UInt32
922
    :ivar Description:
923
    :vartype Description: LocalizedText
924
    '''
925
926
    ua_types = {
927
        'Name': 'String',
928
        'DataType': 'NodeId',
929
        'ValueRank': 'Int32',
930
        'ArrayDimensions': 'UInt32',
931
        'Description': 'LocalizedText',
932
               }
933
934
    def __init__(self, binary=None):
935
        if binary is not None:
936
            self._binary_init(binary)
937
            self._freeze = True
938
            return
939
        self.Name = None
940
        self.DataType = NodeId()
941
        self.ValueRank = 0
942
        self.ArrayDimensions = []
943
        self.Description = LocalizedText()
944
        self._freeze = True
945
946
    def to_binary(self):
947
        packet = []
948
        packet.append(uabin.Primitives.String.pack(self.Name))
949
        packet.append(self.DataType.to_binary())
950
        packet.append(uabin.Primitives.Int32.pack(self.ValueRank))
951
        packet.append(uabin.Primitives.Int32.pack(len(self.ArrayDimensions)))
952
        for fieldname in self.ArrayDimensions:
953
            packet.append(uabin.Primitives.UInt32.pack(fieldname))
954
        packet.append(self.Description.to_binary())
955
        return b''.join(packet)
956
957
    @staticmethod
958
    def from_binary(data):
959
        return Argument(data)
960
961
    def _binary_init(self, data):
962
        self.Name = uabin.Primitives.String.unpack(data)
963
        self.DataType = NodeId.from_binary(data)
964
        self.ValueRank = uabin.Primitives.Int32.unpack(data)
965
        self.ArrayDimensions = uabin.Primitives.UInt32.unpack_array(data)
966
        self.Description = LocalizedText.from_binary(data)
967
968
    def __str__(self):
969
        return 'Argument(' + 'Name:' + str(self.Name) + ', ' + \
970
               'DataType:' + str(self.DataType) + ', ' + \
971
               'ValueRank:' + str(self.ValueRank) + ', ' + \
972
               'ArrayDimensions:' + str(self.ArrayDimensions) + ', ' + \
973
               'Description:' + str(self.Description) + ')'
974
975
    __repr__ = __str__
976
977
978
class EnumValueType(FrozenClass):
@@ 15843-15906 (lines=64) @@
15840
    __repr__ = __str__
15841
15842
15843
class AxisInformation(FrozenClass):
15844
    '''
15845
    :ivar EngineeringUnits:
15846
    :vartype EngineeringUnits: EUInformation
15847
    :ivar EURange:
15848
    :vartype EURange: Range
15849
    :ivar Title:
15850
    :vartype Title: LocalizedText
15851
    :ivar AxisScaleType:
15852
    :vartype AxisScaleType: AxisScaleEnumeration
15853
    :ivar AxisSteps:
15854
    :vartype AxisSteps: Double
15855
    '''
15856
15857
    ua_types = {
15858
        'EngineeringUnits': 'EUInformation',
15859
        'EURange': 'Range',
15860
        'Title': 'LocalizedText',
15861
        'AxisScaleType': 'AxisScaleEnumeration',
15862
        'AxisSteps': 'Double',
15863
               }
15864
15865
    def __init__(self, binary=None):
15866
        if binary is not None:
15867
            self._binary_init(binary)
15868
            self._freeze = True
15869
            return
15870
        self.EngineeringUnits = EUInformation()
15871
        self.EURange = Range()
15872
        self.Title = LocalizedText()
15873
        self.AxisScaleType = AxisScaleEnumeration(0)
15874
        self.AxisSteps = []
15875
        self._freeze = True
15876
15877
    def to_binary(self):
15878
        packet = []
15879
        packet.append(self.EngineeringUnits.to_binary())
15880
        packet.append(self.EURange.to_binary())
15881
        packet.append(self.Title.to_binary())
15882
        packet.append(uabin.Primitives.UInt32.pack(self.AxisScaleType.value))
15883
        packet.append(uabin.Primitives.Int32.pack(len(self.AxisSteps)))
15884
        for fieldname in self.AxisSteps:
15885
            packet.append(uabin.Primitives.Double.pack(fieldname))
15886
        return b''.join(packet)
15887
15888
    @staticmethod
15889
    def from_binary(data):
15890
        return AxisInformation(data)
15891
15892
    def _binary_init(self, data):
15893
        self.EngineeringUnits = EUInformation.from_binary(data)
15894
        self.EURange = Range.from_binary(data)
15895
        self.Title = LocalizedText.from_binary(data)
15896
        self.AxisScaleType = AxisScaleEnumeration(uabin.Primitives.UInt32.unpack(data))
15897
        self.AxisSteps = uabin.Primitives.Double.unpack_array(data)
15898
15899
    def __str__(self):
15900
        return 'AxisInformation(' + 'EngineeringUnits:' + str(self.EngineeringUnits) + ', ' + \
15901
               'EURange:' + str(self.EURange) + ', ' + \
15902
               'Title:' + str(self.Title) + ', ' + \
15903
               'AxisScaleType:' + str(self.AxisScaleType) + ', ' + \
15904
               'AxisSteps:' + str(self.AxisSteps) + ')'
15905
15906
    __repr__ = __str__
15907
15908
15909
class XVType(FrozenClass):