Code Duplication    Length = 64-66 lines in 2 locations

opcua/ua/uaprotocol_auto.py 2 locations

@@ 912-977 (lines=66) @@
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):
979
    '''
980
    A mapping between a value of an enumerated type and a name and description.
@@ 15809-15872 (lines=64) @@
15806
    '''
15807
15808
    ua_types = {
15809
        'Real': 'Double',
15810
        'Imaginary': 'Double',
15811
               }
15812
15813
    def __init__(self, binary=None):
15814
        if binary is not None:
15815
            self._binary_init(binary)
15816
            self._freeze = True
15817
            return
15818
        self.Real = 0
15819
        self.Imaginary = 0
15820
        self._freeze = True
15821
15822
    def to_binary(self):
15823
        packet = []
15824
        packet.append(uabin.Primitives.Double.pack(self.Real))
15825
        packet.append(uabin.Primitives.Double.pack(self.Imaginary))
15826
        return b''.join(packet)
15827
15828
    @staticmethod
15829
    def from_binary(data):
15830
        return DoubleComplexNumberType(data)
15831
15832
    def _binary_init(self, data):
15833
        self.Real = uabin.Primitives.Double.unpack(data)
15834
        self.Imaginary = uabin.Primitives.Double.unpack(data)
15835
15836
    def __str__(self):
15837
        return 'DoubleComplexNumberType(' + 'Real:' + str(self.Real) + ', ' + \
15838
               'Imaginary:' + str(self.Imaginary) + ')'
15839
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