Code Duplication    Length = 61-74 lines in 2 locations

opcua/ua/uaprotocol_auto.py 1 location

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

opcua/ua/uatypes.py 1 location

@@ 805-865 (lines=61) @@
802
        from opcua.ua.ua_binary import variant_to_binary
803
        return variant_to_binary(self)
804
805
def _split_list(l, n):
806
    n = max(1, n)
807
    return [l[i:i + n] for i in range(0, len(l), n)]
808
809
810
def flatten_and_get_shape(mylist):
811
    dims = []
812
    dims.append(len(mylist))
813
    while isinstance(mylist[0], (list, tuple)):
814
        dims.append(len(mylist[0]))
815
        mylist = [item for sublist in mylist for item in sublist]
816
        if len(mylist) == 0:
817
            break
818
    return mylist, dims
819
820
821
def flatten(mylist):
822
    if mylist is None:
823
        return None
824
    elif len(mylist) == 0:
825
        return mylist
826
    while isinstance(mylist[0], (list, tuple)):
827
        mylist = [item for sublist in mylist for item in sublist]
828
        if len(mylist) == 0:
829
            break
830
    return mylist
831
832
833
def get_shape(mylist):
834
    dims = []
835
    while isinstance(mylist, (list, tuple)):
836
        dims.append(len(mylist))
837
        if len(mylist) == 0:
838
            break
839
        mylist = mylist[0]
840
    return dims
841
842
843
class XmlElement(FrozenClass):
844
    """
845
    An XML element encoded as an UTF-8 string.
846
    """
847
848
    def __init__(self, value=None, binary=None):
849
        if binary is not None:
850
            self._binary_init(binary)
851
            self._freeze = True
852
            return
853
        self.Value = value
854
        self._freeze = True
855
856
    def to_binary(self):
857
        return uabin.Primitives.String.pack(self.Value)
858
859
    def __eq__(self, other):
860
        return isinstance(other, XmlElement) and self.Value == other.Value
861
862
    @staticmethod
863
    def from_binary(data):
864
        return XmlElement(binary=data)
865
866
    def _binary_init(self, data):
867
        self.Value = uabin.Primitives.String.unpack(data)
868