maxapi-python 0.1.3__py3-none-any.whl → 1.1.1__py3-none-any.whl

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
pymax/utils.py CHANGED
@@ -1,38 +1,38 @@
1
- from typing import Any
2
-
3
- import lz4.block
4
- import msgpack
5
-
6
-
7
- def unpack_packet(data: bytes) -> None | dict[str, Any]:
8
- ver = int.from_bytes(data[0:1], "big")
9
- cmd = int.from_bytes(data[1:3], "big")
10
- seq = int.from_bytes(data[3:4], "big")
11
- opcode = int.from_bytes(data[4:6], "big")
12
- packed_len = int.from_bytes(data[6:10], "big", signed=False)
13
- comp_flag = packed_len >> 24
14
- payload_length = packed_len & 0xFFFFFF
15
- payload_bytes = data[10 : 10 + payload_length]
16
- if comp_flag != 0:
17
- compressed_data = payload_bytes
18
- try:
19
- payload_bytes = lz4.block.decompress(compressed_data, uncompressed_size=255)
20
- except lz4.block.LZ4BlockError:
21
- return None
22
- payload = msgpack.unpackb(payload_bytes, raw=False)
23
- return {"ver": ver, "cmd": cmd, "seq": seq, "opcode": opcode, "payload": payload}
24
-
25
-
26
- # ToDo: Add lz4 compression
27
- def pack_packet(
28
- ver: int, cmd: int, seq: int, opcode: int, payload: dict[str, Any]
29
- ) -> bytes:
30
- ver_b = ver.to_bytes(1, "big")
31
- cmd_b = cmd.to_bytes(2, "big")
32
- seq_b = seq.to_bytes(1, "big")
33
- opcode_b = opcode.to_bytes(2, "big")
34
- payload_bytes = msgpack.packb(payload)
35
- if payload_bytes is None:
36
- payload_bytes = b""
37
- payload_len_b = len(payload_bytes).to_bytes(4, "big")
38
- return ver_b + cmd_b + seq_b + opcode_b + payload_len_b + payload_bytes
1
+ from typing import Any
2
+
3
+ import lz4.block
4
+ import msgpack
5
+
6
+
7
+ def unpack_packet(data: bytes) -> None | dict[str, Any]:
8
+ ver = int.from_bytes(data[0:1], "big")
9
+ cmd = int.from_bytes(data[1:3], "big")
10
+ seq = int.from_bytes(data[3:4], "big")
11
+ opcode = int.from_bytes(data[4:6], "big")
12
+ packed_len = int.from_bytes(data[6:10], "big", signed=False)
13
+ comp_flag = packed_len >> 24
14
+ payload_length = packed_len & 0xFFFFFF
15
+ payload_bytes = data[10 : 10 + payload_length]
16
+ if comp_flag != 0:
17
+ compressed_data = payload_bytes
18
+ try:
19
+ payload_bytes = lz4.block.decompress(compressed_data, uncompressed_size=255)
20
+ except lz4.block.LZ4BlockError:
21
+ return None
22
+ payload = msgpack.unpackb(payload_bytes, raw=False)
23
+ return {"ver": ver, "cmd": cmd, "seq": seq, "opcode": opcode, "payload": payload}
24
+
25
+
26
+ # ToDo: Add lz4 compression
27
+ def pack_packet(
28
+ ver: int, cmd: int, seq: int, opcode: int, payload: dict[str, Any]
29
+ ) -> bytes:
30
+ ver_b = ver.to_bytes(1, "big")
31
+ cmd_b = cmd.to_bytes(2, "big")
32
+ seq_b = seq.to_bytes(1, "big")
33
+ opcode_b = opcode.to_bytes(2, "big")
34
+ payload_bytes = msgpack.packb(payload)
35
+ if payload_bytes is None:
36
+ payload_bytes = b""
37
+ payload_len_b = len(payload_bytes).to_bytes(4, "big")
38
+ return ver_b + cmd_b + seq_b + opcode_b + payload_len_b + payload_bytes
@@ -1,25 +0,0 @@
1
- pymax/__init__.py,sha256=I-ZUVKBfHN-MPkLUbLPxflsvnHSFsyXdW3TmbN2_zz0,950
2
- pymax/core.py,sha256=DjwhOXmMoPl2pT9k18lrZLjlyvzPqkby6hIbPEYlctM,6001
3
- pymax/crud.py,sha256=_V88YErPKE4k0jPjGn8Op9FDGGVuNwRjuKN-4iIVdgM,3306
4
- pymax/exceptions.py,sha256=tiD_JD-MYSb4qFyKov-KWOm0zlD1p_gG6nf1fV-0-SY,702
5
- pymax/files.py,sha256=9CH5z11LAq3QpY_7hZkuIK8crF_DZDcsFYmbl7k4aXQ,2742
6
- pymax/filters.py,sha256=EKNDzB3jjxlfjMGs3HivFvuQ1HSuYn-xKCxvmRFmq6c,1344
7
- pymax/interfaces.py,sha256=xAlzVgS4RLChlChZ6WbKLWGezO_b0fHC_2NBePMtyVI,2179
8
- pymax/models.py,sha256=7sWAmVuJjM7SPnDkpYEi8CARbTpUKbXqtWKMQdwd0w0,209
9
- pymax/payloads.py,sha256=Pp4vc3BwKzqqWpIce_NhlNw9FA7i6Jhd-hRPg1Ld8Xg,3702
10
- pymax/static.py,sha256=LQBXSWpiA3a4IWGqC84jTt7LBHSKEqnLDlvgSiMrX_M,4891
11
- pymax/types.py,sha256=DmJ9Jn5WEwWJip5R0vmPNkHgYIHEsBasolYjylGMO7o,14172
12
- pymax/utils.py,sha256=2QnhUb1o-vAIthtodtfrxty9v-qd96OtMd2GMG0n5h4,1402
13
- pymax/mixins/__init__.py,sha256=yFhB18-PMhn5yIbvIh_XBCTIdkf87M1hmsmMwL9ved0,371
14
- pymax/mixins/auth.py,sha256=eIlJ5YY7ez99nQuICTu97XWoeKgcjk3ZVhb73qbAsMw,3160
15
- pymax/mixins/channel.py,sha256=juLIojxsmTXstYfE9pVc98gZ9VSVZJy-chLSDOxay0A,848
16
- pymax/mixins/group.py,sha256=5MH2S78Q0JxcECEopGPi80QjcTO5bQNOwYLgRx3Gkt4,8040
17
- pymax/mixins/handler.py,sha256=S6zGnm6U9yNY7LU1MV0TsYQj3MXkeOhiuUGlXyM2kTw,2164
18
- pymax/mixins/message.py,sha256=pm4YFRmmYdldnk3G4rfjwAbodY-TfeIIvFHez6Xse_o,10542
19
- pymax/mixins/self.py,sha256=Z1FiWFXJf3Qu9mKTQGrobe01bx4opa-uH5p6wedRWbI,1207
20
- pymax/mixins/user.py,sha256=V8HLhLMopxItWfc4BF9P3eFjF8ksGAepkqaXrJ1e0ZE,3127
21
- pymax/mixins/websocket.py,sha256=2XSKCK43o3dPT7uWPFExP6Lwbumetd8cuHZge9Piwic,9766
22
- maxapi_python-0.1.3.dist-info/METADATA,sha256=CNsZJHh1C3FxTIxWbSWFyWav-8XJAeBAmM_s5G2mNZI,5930
23
- maxapi_python-0.1.3.dist-info/WHEEL,sha256=qtCwoSJWgHk21S1Kb4ihdzI2rlJ1ZKaIurTj_ngOhyQ,87
24
- maxapi_python-0.1.3.dist-info/licenses/LICENSE,sha256=Ud-0SKeXO_yA02Bb1nMDnEaSGwz2OqNlfGQbk0IzqPI,1085
25
- maxapi_python-0.1.3.dist-info/RECORD,,