soia-client 1.1.5__py3-none-any.whl → 1.1.7__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.
Potentially problematic release.
This version of soia-client might be problematic. Click here for more details.
- soia/_impl/arrays.py +59 -8
- soia/_impl/binary.py +270 -0
- soia/_impl/enums.py +223 -40
- soia/_impl/optionals.py +47 -8
- soia/_impl/primitives.py +176 -23
- soia/_impl/serializer.py +40 -16
- soia/_impl/service.py +1 -3
- soia/_impl/structs.py +314 -88
- soia/_impl/timestamp.py +4 -5
- soia/_impl/type_adapter.py +38 -3
- {soia_client-1.1.5.dist-info → soia_client-1.1.7.dist-info}/METADATA +1 -1
- soia_client-1.1.7.dist-info/RECORD +28 -0
- soia_client-1.1.5.dist-info/RECORD +0 -27
- {soia_client-1.1.5.dist-info → soia_client-1.1.7.dist-info}/WHEEL +0 -0
- {soia_client-1.1.5.dist-info → soia_client-1.1.7.dist-info}/licenses/LICENSE +0 -0
- {soia_client-1.1.5.dist-info → soia_client-1.1.7.dist-info}/top_level.txt +0 -0
soia/_impl/type_adapter.py
CHANGED
|
@@ -1,11 +1,34 @@
|
|
|
1
1
|
from collections.abc import Callable
|
|
2
|
-
from
|
|
2
|
+
from dataclasses import dataclass
|
|
3
|
+
from typing import Generic, Protocol, TypeVar
|
|
3
4
|
|
|
4
5
|
from soia import _spec, reflection
|
|
5
6
|
from soia._impl.function_maker import ExprLike
|
|
6
7
|
|
|
7
8
|
|
|
8
|
-
|
|
9
|
+
T = TypeVar("T")
|
|
10
|
+
|
|
11
|
+
|
|
12
|
+
@dataclass(frozen=False)
|
|
13
|
+
class ByteStream:
|
|
14
|
+
__slots__ = ("buffer", "position", "keep_unrecognized_fields")
|
|
15
|
+
|
|
16
|
+
buffer: bytes
|
|
17
|
+
position: int
|
|
18
|
+
keep_unrecognized_fields: bool
|
|
19
|
+
|
|
20
|
+
def read_wire(self) -> int:
|
|
21
|
+
wire = self.buffer[self.position]
|
|
22
|
+
self.position += 1
|
|
23
|
+
return wire
|
|
24
|
+
|
|
25
|
+
def read(self, length: int) -> bytes:
|
|
26
|
+
data = self.buffer[self.position : self.position + length]
|
|
27
|
+
self.position += length
|
|
28
|
+
return data
|
|
29
|
+
|
|
30
|
+
|
|
31
|
+
class TypeAdapter(Protocol, Generic[T]):
|
|
9
32
|
def default_expr(self) -> ExprLike:
|
|
10
33
|
"""
|
|
11
34
|
The default value for T.
|
|
@@ -42,13 +65,23 @@ class TypeAdapter(Protocol):
|
|
|
42
65
|
"""
|
|
43
66
|
...
|
|
44
67
|
|
|
45
|
-
def from_json_expr(
|
|
68
|
+
def from_json_expr(
|
|
69
|
+
self, json_expr: ExprLike, keep_unrecognized_expr: ExprLike
|
|
70
|
+
) -> ExprLike:
|
|
46
71
|
"""
|
|
47
72
|
Transforms 'json_expr' into a T.
|
|
48
73
|
The 'json_expr' arg is obtained by calling 'json.loads()'.
|
|
49
74
|
"""
|
|
50
75
|
...
|
|
51
76
|
|
|
77
|
+
def encode_fn(
|
|
78
|
+
self,
|
|
79
|
+
) -> Callable[[T, bytearray], None]: ...
|
|
80
|
+
|
|
81
|
+
def decode_fn(
|
|
82
|
+
self,
|
|
83
|
+
) -> Callable[[ByteStream], T]: ...
|
|
84
|
+
|
|
52
85
|
def finalize(
|
|
53
86
|
self,
|
|
54
87
|
resolve_type_fn: Callable[[_spec.Type], "TypeAdapter"],
|
|
@@ -60,3 +93,5 @@ class TypeAdapter(Protocol):
|
|
|
60
93
|
self,
|
|
61
94
|
registry: dict[str, reflection.Record],
|
|
62
95
|
) -> None: ...
|
|
96
|
+
|
|
97
|
+
def frozen_class_of_struct(self) -> type | None: ...
|
|
@@ -0,0 +1,28 @@
|
|
|
1
|
+
soia/__init__.py,sha256=WPhdlu7zKBSWd4DVFWXQKQoptD0gU7xGFm4tbQHrVc8,787
|
|
2
|
+
soia/_module_initializer.py,sha256=JHZMcLqpYuWoC3cN4wBFFCHlHR60-LNvrjo_EMCFkAE,4220
|
|
3
|
+
soia/_spec.py,sha256=Y5EHHQa6qNeJc29aaqGrFPnPFXxlL7TED9_AXUGBjf0,3663
|
|
4
|
+
soia/reflection.py,sha256=SEFHNlzmWZEOQwoVUTIxzjjnbkiKSwo2rbpSU-qXhC4,9375
|
|
5
|
+
soia/_impl/__init__.py,sha256=47DEQpj8HBSa-_TImW-5JCeuQeRkm5NMpJWZG3hSuFU,0
|
|
6
|
+
soia/_impl/arrays.py,sha256=_opW-F6y4OJ71pAyitD4bTpxxN_XFoW6WjPd6x68-H8,7252
|
|
7
|
+
soia/_impl/binary.py,sha256=JK8W_xjVBHUmJoGrmMZX1EKWXXFpfnTbCmQGid4t5z8,8986
|
|
8
|
+
soia/_impl/enums.py,sha256=e80O9-11pp5F--JzdsrbQAmte8FblwMyBvUwviriRTY,24968
|
|
9
|
+
soia/_impl/function_maker.py,sha256=MvCDv1WwzKGJzZbNCnJ_8-MP3m1xTIabumXA-9Ydd9M,5639
|
|
10
|
+
soia/_impl/keep.py,sha256=GDeMKKUcvUFXWJVzBPB9CuLkcQb93sWKvo0PcyKUBzg,370
|
|
11
|
+
soia/_impl/keyed_items.py,sha256=EoPrdeLJ8i7zCH-oW-7qOcyadyrzykB6lkrf3xRVmyk,337
|
|
12
|
+
soia/_impl/method.py,sha256=C6ygh-Li4zADxFR_gfeBTuPUzLjZ1XHCp0ZI4-uiRYs,455
|
|
13
|
+
soia/_impl/never.py,sha256=T7PHtIipuXlici4wa0yuJKrn9JgcT-ODC3QVCwsPprY,46
|
|
14
|
+
soia/_impl/optionals.py,sha256=ZwMxlBayi5Xl3bj1kypMKhA61XhNW90ZgJ-gebnmlhE,3661
|
|
15
|
+
soia/_impl/primitives.py,sha256=EeFWXJ7WrFXA-kanpTFbnRrAnmpkRQCHaC3P9ZtgqxA,13436
|
|
16
|
+
soia/_impl/repr.py,sha256=Z4sZKFrujdTD49aqB7q3bjXAb1f31I7uuChDBy5XvFg,1418
|
|
17
|
+
soia/_impl/serializer.py,sha256=UrOb5_VaPnRb0t-Nop7mu7j_yaK4fiRQzwMdKOUkmTQ,4627
|
|
18
|
+
soia/_impl/serializers.py,sha256=IL9jHHMo11pgrL1-crarOEElvTyV5YM6FTcgumjW6IU,2564
|
|
19
|
+
soia/_impl/service.py,sha256=4FZ7yY4EJTw4xFmfg3Ya9IfbI0s8qN97aIuqa8TifjM,15535
|
|
20
|
+
soia/_impl/service_client.py,sha256=FWfbFswbhMBw1snR9JLEpSJagY2ntZbFaVxTUGEDA5s,5303
|
|
21
|
+
soia/_impl/structs.py,sha256=7hHula-mJnKbYyl6crYvv1U5uxj5lcvLeyD1fCbJIrc,35945
|
|
22
|
+
soia/_impl/timestamp.py,sha256=ahRJ8tyPU-fpmInqHQHCUqAvI1Vhwc-bszcP7iIFbRw,5614
|
|
23
|
+
soia/_impl/type_adapter.py,sha256=cjFoSIQstL7n8g89JvxyCUl7hN1TJQ6yH427SxsMV_0,2910
|
|
24
|
+
soia_client-1.1.7.dist-info/licenses/LICENSE,sha256=SaAftKkX6hfSOiPdENQPS70tifH3PDHgazq8eK2Pwfw,1064
|
|
25
|
+
soia_client-1.1.7.dist-info/METADATA,sha256=t9ra0gGxJ6YJ-5bU8Y_BV87pDA15Y35y-Pi0ltQxSYE,2121
|
|
26
|
+
soia_client-1.1.7.dist-info/WHEEL,sha256=_zCd3N1l69ArxyTb8rzEoP9TpbYXkqRFSNOD5OuxnTs,91
|
|
27
|
+
soia_client-1.1.7.dist-info/top_level.txt,sha256=lsYG9JrvauFe1oIV5zvnwsS9hsx3ztwfK_937op9mxc,5
|
|
28
|
+
soia_client-1.1.7.dist-info/RECORD,,
|
|
@@ -1,27 +0,0 @@
|
|
|
1
|
-
soia/__init__.py,sha256=WPhdlu7zKBSWd4DVFWXQKQoptD0gU7xGFm4tbQHrVc8,787
|
|
2
|
-
soia/_module_initializer.py,sha256=JHZMcLqpYuWoC3cN4wBFFCHlHR60-LNvrjo_EMCFkAE,4220
|
|
3
|
-
soia/_spec.py,sha256=Y5EHHQa6qNeJc29aaqGrFPnPFXxlL7TED9_AXUGBjf0,3663
|
|
4
|
-
soia/reflection.py,sha256=SEFHNlzmWZEOQwoVUTIxzjjnbkiKSwo2rbpSU-qXhC4,9375
|
|
5
|
-
soia/_impl/__init__.py,sha256=47DEQpj8HBSa-_TImW-5JCeuQeRkm5NMpJWZG3hSuFU,0
|
|
6
|
-
soia/_impl/arrays.py,sha256=Dz0_huUdtCtT6TP2R5IY6vNbZ8RJPx3l1Sa3pdbyVAA,5550
|
|
7
|
-
soia/_impl/enums.py,sha256=Z5oGNCVsPIlGP1D0BZTkYWLehDt5HKJ840lsMQSW0xQ,18011
|
|
8
|
-
soia/_impl/function_maker.py,sha256=MvCDv1WwzKGJzZbNCnJ_8-MP3m1xTIabumXA-9Ydd9M,5639
|
|
9
|
-
soia/_impl/keep.py,sha256=GDeMKKUcvUFXWJVzBPB9CuLkcQb93sWKvo0PcyKUBzg,370
|
|
10
|
-
soia/_impl/keyed_items.py,sha256=EoPrdeLJ8i7zCH-oW-7qOcyadyrzykB6lkrf3xRVmyk,337
|
|
11
|
-
soia/_impl/method.py,sha256=C6ygh-Li4zADxFR_gfeBTuPUzLjZ1XHCp0ZI4-uiRYs,455
|
|
12
|
-
soia/_impl/never.py,sha256=T7PHtIipuXlici4wa0yuJKrn9JgcT-ODC3QVCwsPprY,46
|
|
13
|
-
soia/_impl/optionals.py,sha256=hnr3itvScPEbMq--Z8yC3Qs2OFDy8l5Ljd5BSnsCIn4,2487
|
|
14
|
-
soia/_impl/primitives.py,sha256=rQUit2EVXr36RK5cW7x9TaZTJ9w1oHcXmVr0mTlyBO0,9109
|
|
15
|
-
soia/_impl/repr.py,sha256=Z4sZKFrujdTD49aqB7q3bjXAb1f31I7uuChDBy5XvFg,1418
|
|
16
|
-
soia/_impl/serializer.py,sha256=RBYz-9Kc-sKR0YEhX48w8oA5uK4yJ1DbhqUwOzYrT5E,3528
|
|
17
|
-
soia/_impl/serializers.py,sha256=IL9jHHMo11pgrL1-crarOEElvTyV5YM6FTcgumjW6IU,2564
|
|
18
|
-
soia/_impl/service.py,sha256=ltOCPJupK3mEDiq9wldkDb0rfpVhyqWFxywGJ42Vklg,15573
|
|
19
|
-
soia/_impl/service_client.py,sha256=FWfbFswbhMBw1snR9JLEpSJagY2ntZbFaVxTUGEDA5s,5303
|
|
20
|
-
soia/_impl/structs.py,sha256=ed2B-viBclbc4DbXJ-0mNaS1NyM0vURuGnU-H3LFUik,28313
|
|
21
|
-
soia/_impl/timestamp.py,sha256=upnEkvW-7AaMJ9_nNqntvhJ4pFWWCAXNjEOPtszdwgE,5645
|
|
22
|
-
soia/_impl/type_adapter.py,sha256=5ilurqFQ0fcw7ciYdkLbzH65Qz0SJwHMbqFqywkRUUE,2100
|
|
23
|
-
soia_client-1.1.5.dist-info/licenses/LICENSE,sha256=SaAftKkX6hfSOiPdENQPS70tifH3PDHgazq8eK2Pwfw,1064
|
|
24
|
-
soia_client-1.1.5.dist-info/METADATA,sha256=oTvY4awlTRAC5vSFmLQyVVA8-yz_kpPTTe9K5dV3Utg,2121
|
|
25
|
-
soia_client-1.1.5.dist-info/WHEEL,sha256=_zCd3N1l69ArxyTb8rzEoP9TpbYXkqRFSNOD5OuxnTs,91
|
|
26
|
-
soia_client-1.1.5.dist-info/top_level.txt,sha256=lsYG9JrvauFe1oIV5zvnwsS9hsx3ztwfK_937op9mxc,5
|
|
27
|
-
soia_client-1.1.5.dist-info/RECORD,,
|
|
File without changes
|
|
File without changes
|
|
File without changes
|