Code Duplication    Length = 61-74 lines in 2 locations

opcua/ua/uaprotocol_auto.py 1 location

@@ 297-370 (lines=74) @@
294
    View = 1335532
295
296
297
class AttributeWriteMask(IntEnum):
298
    '''
299
    Define bits used to indicate which attributes are writable.
300
301
    :ivar None_:
302
    :vartype None_: 0
303
    :ivar AccessLevel:
304
    :vartype AccessLevel: 1
305
    :ivar ArrayDimensions:
306
    :vartype ArrayDimensions: 2
307
    :ivar BrowseName:
308
    :vartype BrowseName: 4
309
    :ivar ContainsNoLoops:
310
    :vartype ContainsNoLoops: 8
311
    :ivar DataType:
312
    :vartype DataType: 16
313
    :ivar Description:
314
    :vartype Description: 32
315
    :ivar DisplayName:
316
    :vartype DisplayName: 64
317
    :ivar EventNotifier:
318
    :vartype EventNotifier: 128
319
    :ivar Executable:
320
    :vartype Executable: 256
321
    :ivar Historizing:
322
    :vartype Historizing: 512
323
    :ivar InverseName:
324
    :vartype InverseName: 1024
325
    :ivar IsAbstract:
326
    :vartype IsAbstract: 2048
327
    :ivar MinimumSamplingInterval:
328
    :vartype MinimumSamplingInterval: 4096
329
    :ivar NodeClass:
330
    :vartype NodeClass: 8192
331
    :ivar NodeId:
332
    :vartype NodeId: 16384
333
    :ivar Symmetric:
334
    :vartype Symmetric: 32768
335
    :ivar UserAccessLevel:
336
    :vartype UserAccessLevel: 65536
337
    :ivar UserExecutable:
338
    :vartype UserExecutable: 131072
339
    :ivar UserWriteMask:
340
    :vartype UserWriteMask: 262144
341
    :ivar ValueRank:
342
    :vartype ValueRank: 524288
343
    :ivar WriteMask:
344
    :vartype WriteMask: 1048576
345
    :ivar ValueForVariableType:
346
    :vartype ValueForVariableType: 2097152
347
    '''
348
    None_ = 0
349
    AccessLevel = 1
350
    ArrayDimensions = 2
351
    BrowseName = 4
352
    ContainsNoLoops = 8
353
    DataType = 16
354
    Description = 32
355
    DisplayName = 64
356
    EventNotifier = 128
357
    Executable = 256
358
    Historizing = 512
359
    InverseName = 1024
360
    IsAbstract = 2048
361
    MinimumSamplingInterval = 4096
362
    NodeClass = 8192
363
    NodeId = 16384
364
    Symmetric = 32768
365
    UserAccessLevel = 65536
366
    UserExecutable = 131072
367
    UserWriteMask = 262144
368
    ValueRank = 524288
369
    WriteMask = 1048576
370
    ValueForVariableType = 2097152
371
372
373
class BrowseDirection(IntEnum):

opcua/ua/uatypes.py 1 location

@@ 805-865 (lines=61) @@
802
    def to_binary(self):
803
        packet = []
804
        if self.Locale:
805
            self.Encoding |= (1 << 0)
806
        if self.Text:
807
            self.Encoding |= (1 << 1)
808
        packet.append(uatype_UInt8.pack(self.Encoding))
809
        if self.Locale:
810
            packet.append(pack_bytes(self.Locale))
811
        if self.Text:
812
            packet.append(pack_bytes(self.Text))
813
        return b''.join(packet)
814
815
    @staticmethod
816
    def from_binary(data):
817
        obj = LocalizedText()
818
        obj.Encoding = ord(data.read(1))
819
        if obj.Encoding & (1 << 0):
820
            obj.Locale = unpack_bytes(data)
821
        if obj.Encoding & (1 << 1):
822
            obj.Text = unpack_bytes(data)
823
        return obj
824
825
    def to_string(self):
826
        # FIXME: use local
827
        if self.Text is None:
828
            return ""
829
        return self.Text.decode('utf-8')
830
831
    def __str__(self):
832
        return 'LocalizedText(' + 'Encoding:' + str(self.Encoding) + ', ' + \
833
            'Locale:' + str(self.Locale) + ', ' + \
834
            'Text:' + str(self.Text) + ')'
835
    __repr__ = __str__
836
837
    def __eq__(self, other):
838
        if isinstance(other, LocalizedText) and self.Locale == other.Locale and self.Text == other.Text:
839
            return True
840
        return False
841
842
    def __ne__(self, other):
843
        return not self.__eq__(other)
844
845
846
class ExtensionObject(FrozenClass):
847
848
    '''
849
850
    Any UA object packed as an ExtensionObject
851
852
853
    :ivar TypeId:
854
    :vartype TypeId: NodeId
855
    :ivar Body:
856
    :vartype Body: bytes
857
858
    '''
859
860
    def __init__(self):
861
        self.TypeId = NodeId()
862
        self.Encoding = 0
863
        self.Body = b''
864
        self._freeze = True
865
866
    def to_binary(self):
867
        packet = []
868
        if self.Body: