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