Code Duplication    Length = 55-57 lines in 2 locations

opcua/ua/uaprotocol_auto.py 2 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 = ''
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):