1 | """ |
||
2 | Element None |
||
3 | |||
4 | A non-packable, non-unpackable item that can help facilitate with additional information about an object, |
||
5 | pass extra references to a variable and potentially more |
||
6 | |||
7 | .. code-block:: python |
||
8 | |||
9 | ExampleMessage = Message('VarTest', [('x', 'B'), ('y', 'B')]) |
||
10 | |||
11 | CRCedMessage = Message('CRCedMessage', [ |
||
12 | ('data', ExampleMessage), # A data field that has the example message in it |
||
13 | ('extra_param', None), # The None Element |
||
14 | ('crc', 'I', my_crc32, ['data', 'extra_param']), # Crc the data, and give an error if we have something unexpected |
||
15 | ]) |
||
16 | |||
17 | """ |
||
18 | |||
19 | 1 | from typing import Optional |
|
0 ignored issues
–
show
|
|||
20 | |||
21 | 1 | from starstruct.element import register, Element |
|
22 | 1 | from starstruct.modes import Mode |
|
23 | |||
24 | |||
25 | 1 | @register |
|
26 | 1 | class ElementNone(Element): |
|
27 | """ |
||
28 | Initialize a StarStruct element object. |
||
29 | |||
30 | :param field: The fields passed into the constructor of the element |
||
31 | :param mode: The mode in which to pack the bytes |
||
32 | :param alignment: Number of bytes to align to |
||
33 | """ |
||
34 | 1 | def __init__(self, field: list, mode: Optional[Mode]=Mode.Native, alignment: Optional[int]=1): |
|
35 | 1 | self.name = field[0] |
|
36 | |||
37 | 1 | self.update(mode=mode, alignment=alignment) |
|
38 | |||
39 | 1 | @staticmethod |
|
40 | 1 | def valid(field: tuple) -> bool: |
|
41 | 1 | return len(field) == 2 \ |
|
42 | and isinstance(field[0], str) \ |
||
43 | and field[1] is None |
||
44 | |||
45 | 1 | def validate(self, msg): |
|
46 | 1 | return True |
|
47 | |||
48 | 1 | def update(self, mode=None, alignment=None): |
|
49 | 1 | if mode: |
|
50 | 1 | self._mode = mode |
|
51 | |||
52 | 1 | if alignment: |
|
53 | 1 | self._alignment = alignment |
|
54 | 1 | return |
|
55 | |||
56 | 1 | def pack(self, msg): |
|
57 | 1 | return b'' |
|
58 | |||
59 | 1 | def unpack(self, msg, buf): |
|
60 | 1 | return (None, buf) |
|
61 | |||
62 | 1 | def make(self, msg): |
|
63 | return msg[self.name] |
||
64 |
This can be caused by one of the following:
1. Missing Dependencies
This error could indicate a configuration issue of Pylint. Make sure that your libraries are available by adding the necessary commands.
2. Missing __init__.py files
This error could also result from missing
__init__.py
files in your module folders. Make sure that you place one file in each sub-folder.