soia-client 1.1.4__py3-none-any.whl → 1.1.6__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.

@@ -1,12 +1,34 @@
1
1
  from collections.abc import Callable
2
- from typing import Protocol
2
+ from dataclasses import dataclass
3
+ from typing import Generic, Protocol, TypeVar
3
4
 
5
+ from soia import _spec, reflection
4
6
  from soia._impl.function_maker import ExprLike
5
7
 
6
- from soia import _spec, reflection
7
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
8
29
 
9
- class TypeAdapter(Protocol):
30
+
31
+ class TypeAdapter(Protocol, Generic[T]):
10
32
  def default_expr(self) -> ExprLike:
11
33
  """
12
34
  The default value for T.
@@ -43,13 +65,23 @@ class TypeAdapter(Protocol):
43
65
  """
44
66
  ...
45
67
 
46
- def from_json_expr(self, json_expr: ExprLike) -> ExprLike:
68
+ def from_json_expr(
69
+ self, json_expr: ExprLike, keep_unrecognized_expr: ExprLike
70
+ ) -> ExprLike:
47
71
  """
48
72
  Transforms 'json_expr' into a T.
49
73
  The 'json_expr' arg is obtained by calling 'json.loads()'.
50
74
  """
51
75
  ...
52
76
 
77
+ def encode_fn(
78
+ self,
79
+ ) -> Callable[[T, bytearray], None]: ...
80
+
81
+ def decode_fn(
82
+ self,
83
+ ) -> Callable[[ByteStream], T]: ...
84
+
53
85
  def finalize(
54
86
  self,
55
87
  resolve_type_fn: Callable[[_spec.Type], "TypeAdapter"],
@@ -61,3 +93,5 @@ class TypeAdapter(Protocol):
61
93
  self,
62
94
  registry: dict[str, reflection.Record],
63
95
  ) -> None: ...
96
+
97
+ def frozen_class_of_struct(self) -> type | None: ...
@@ -1,11 +1,10 @@
1
1
  from typing import Any, Union
2
2
 
3
+ from soia import _spec
3
4
  from soia._impl import arrays, enums, method, optionals, primitives, structs
4
5
  from soia._impl.serializer import make_serializer
5
6
  from soia._impl.type_adapter import TypeAdapter
6
7
 
7
- from soia import _spec
8
-
9
8
  RecordAdapter = Union[structs.StructAdapter, enums.EnumAdapter]
10
9
 
11
10
 
@@ -1,6 +1,6 @@
1
1
  Metadata-Version: 2.4
2
2
  Name: soia-client
3
- Version: 1.1.4
3
+ Version: 1.1.6
4
4
  Author-email: Tyler Fibonacci <gepheum@gmail.com>
5
5
  License: MIT License
6
6
 
@@ -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=j6ZzvIyMCO4YS96yWJTAJPRI87JDEQXj83tDcGDwSRQ,35919
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.6.dist-info/licenses/LICENSE,sha256=SaAftKkX6hfSOiPdENQPS70tifH3PDHgazq8eK2Pwfw,1064
25
+ soia_client-1.1.6.dist-info/METADATA,sha256=wBG11hDygPyIztnr3FomBVyBvOM3AgQtiwhyzG1QR9I,2121
26
+ soia_client-1.1.6.dist-info/WHEEL,sha256=_zCd3N1l69ArxyTb8rzEoP9TpbYXkqRFSNOD5OuxnTs,91
27
+ soia_client-1.1.6.dist-info/top_level.txt,sha256=lsYG9JrvauFe1oIV5zvnwsS9hsx3ztwfK_937op9mxc,5
28
+ soia_client-1.1.6.dist-info/RECORD,,
@@ -1,27 +0,0 @@
1
- soia/__init__.py,sha256=WPhdlu7zKBSWd4DVFWXQKQoptD0gU7xGFm4tbQHrVc8,787
2
- soia/_module_initializer.py,sha256=1TWnc0qUO7_iljQR2ywVERrrkY5jIkT3zucc-AYZyrQ,4221
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=C3j3RZdSvqmogbGAi3EprLkUYMFfO-IJhoCOte5blAw,5477
7
- soia/_impl/enums.py,sha256=bpRtIWBioTGpy-oVA5Fo25RZH1TFBFzrmCXkuhZuC0k,17297
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=KTgmbfYLJLrju5v10jgnnnW98QG6NYw2We3gdgi9i2E,2414
14
- soia/_impl/primitives.py,sha256=r-55rO12TwwWCQJgzEEgVpXMVGg0dRhGvFWX_rGeqsQ,9025
15
- soia/_impl/repr.py,sha256=7WX0bEAVENTjlyZIcbT8TcJylS7IRIyafGCmqaIMxFM,1413
16
- soia/_impl/serializer.py,sha256=28IwkjtUnLpbnPQfVNfJXkApCK4JhXHwLkC5MVhF8xo,3529
17
- soia/_impl/serializers.py,sha256=IL9jHHMo11pgrL1-crarOEElvTyV5YM6FTcgumjW6IU,2564
18
- soia/_impl/service.py,sha256=ltOCPJupK3mEDiq9wldkDb0rfpVhyqWFxywGJ42Vklg,15573
19
- soia/_impl/service_client.py,sha256=0WgiN6Stg548FAdZQMuezZoooe4MYw2frEQ5KUE7xag,5311
20
- soia/_impl/structs.py,sha256=1XhjZmqtD7IMURdSVR0DwMdrIhWPZft1eCfwVW84c0E,28230
21
- soia/_impl/timestamp.py,sha256=upnEkvW-7AaMJ9_nNqntvhJ4pFWWCAXNjEOPtszdwgE,5645
22
- soia/_impl/type_adapter.py,sha256=RyIyh4Fnt9rMy0HRzC-a2v2JAdZsV9FBzoGEUVygVRE,2101
23
- soia_client-1.1.4.dist-info/licenses/LICENSE,sha256=SaAftKkX6hfSOiPdENQPS70tifH3PDHgazq8eK2Pwfw,1064
24
- soia_client-1.1.4.dist-info/METADATA,sha256=PzbbwzwRvEfsFGRW5tmwPlP5N9QroX8tXNVeeEFFUMc,2121
25
- soia_client-1.1.4.dist-info/WHEEL,sha256=_zCd3N1l69ArxyTb8rzEoP9TpbYXkqRFSNOD5OuxnTs,91
26
- soia_client-1.1.4.dist-info/top_level.txt,sha256=lsYG9JrvauFe1oIV5zvnwsS9hsx3ztwfK_937op9mxc,5
27
- soia_client-1.1.4.dist-info/RECORD,,