omlish 0.0.0.dev449__py3-none-any.whl → 0.0.0.dev450__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.
omlish/__about__.py CHANGED
@@ -1,5 +1,5 @@
1
- __version__ = '0.0.0.dev449'
2
- __revision__ = 'f126f0642775913f3de0d8cc4b62ff957b8480cf'
1
+ __version__ = '0.0.0.dev450'
2
+ __revision__ = '06a2dac5a7edcb1d06e2cc83c467c9b78d637e60'
3
3
 
4
4
 
5
5
  #
@@ -3,6 +3,7 @@ import typing as ta
3
3
 
4
4
  from ... import check
5
5
  from ... import lang
6
+ from ...lite.dataclasses import is_immediate_dataclass
6
7
 
7
8
 
8
9
  if ta.TYPE_CHECKING:
@@ -40,6 +41,8 @@ def update_fields(
40
41
  def inner(cls):
41
42
  if issubclass(cls, meta.DataMeta):
42
43
  raise TypeError('update_fields() cannot be used on DataMeta subclasses')
44
+ if is_immediate_dataclass(cls):
45
+ raise TypeError('update_fields() cannot be used on already processed dataclasses')
43
46
 
44
47
  if fields is None:
45
48
  for a, v in list(cls.__dict__.items()):
@@ -51,6 +54,8 @@ def update_fields(
51
54
  try:
52
55
  v = cls.__dict__[a]
53
56
  except KeyError:
57
+ if hasattr(cls, a):
58
+ raise TypeError('update_fields() cannot be used on parent dataclass fields') from None
54
59
  v = dc.field()
55
60
  else:
56
61
  if not isinstance(v, dc.Field):
omlish/diag/pydevd.py CHANGED
@@ -119,7 +119,7 @@ def _pydevd() -> types.ModuleType | None:
119
119
 
120
120
 
121
121
  def is_present() -> bool:
122
- return _pydevd() is not None
122
+ return lang.can_import('pydevd')
123
123
 
124
124
 
125
125
  def get_setup() -> dict | None:
omlish/lite/maysync.py CHANGED
@@ -25,6 +25,7 @@ Internally, it's not really correct to say that there is 'no event loop' in the
25
25
  ===
26
26
 
27
27
  TODO:
28
+ - ! impl iterators not just generators !
28
29
  - __del__
29
30
  - (test) maysync context managers
30
31
  - CancelledError
@@ -33,11 +34,6 @@ TODO:
33
34
  - works down to 3.8
34
35
  - make_maysync_from_sync can run with asyncio.run_in_thread
35
36
  - make_maysync_from_async can run with asyncio.run_soon
36
-
37
- TODO OVERHAUL:
38
- - no more sync/async context, just one Context, and it means sync
39
- - make FpMaywaitable *not reusable*
40
- - `cannot reuse already awaited coroutine`
41
37
  """
42
38
  import abc
43
39
  import inspect
@@ -108,6 +108,11 @@ with _lang.auto_proxy_init(globals()):
108
108
  IterableUnmarshaler,
109
109
  )
110
110
 
111
+ from .composite.optionals import ( # noqa
112
+ OptionalMarshaler,
113
+ OptionalUnmarshaler,
114
+ )
115
+
111
116
  from .composite.wrapped import ( # noqa
112
117
  WrappedMarshaler,
113
118
  WrappedUnmarshaler,
@@ -225,6 +230,7 @@ with _lang.auto_proxy_init(globals()):
225
230
  from .singular.base64 import ( # noqa
226
231
  BASE64_MARSHALER_FACTORY,
227
232
  BASE64_UNMARSHALER_FACTORY,
233
+ Base64MarshalerUnmarshaler,
228
234
  )
229
235
 
230
236
  from .singular.primitives import ( # noqa
@@ -1,5 +1,3 @@
1
- import typing as ta
2
-
3
1
  from ..base.types import MarshalerFactory
4
2
  from ..base.types import UnmarshalerFactory
5
3
  from .marshal import PolymorphismMarshalerFactory
@@ -15,8 +13,8 @@ from .unmarshal import PolymorphismUnmarshalerFactory
15
13
  def standard_polymorphism_factories(
16
14
  poly: Polymorphism,
17
15
  tt: TypeTagging = WrapperTypeTagging(),
18
- ) -> ta.Sequence[MarshalerFactory | UnmarshalerFactory]:
19
- return [
16
+ ) -> tuple[MarshalerFactory, UnmarshalerFactory]:
17
+ return (
20
18
  PolymorphismMarshalerFactory(poly, tt),
21
19
  PolymorphismUnmarshalerFactory(poly, tt),
22
- ]
20
+ )
@@ -1,6 +1,6 @@
1
1
  Metadata-Version: 2.4
2
2
  Name: omlish
3
- Version: 0.0.0.dev449
3
+ Version: 0.0.0.dev450
4
4
  Summary: omlish
5
5
  Author: wrmsr
6
6
  License-Expression: BSD-3-Clause
@@ -1,5 +1,5 @@
1
1
  omlish/.omlish-manifests.json,sha256=FLw7xkPiSXuImZgqSP8BwrEib2R1doSzUPLUkc-QUIA,8410
2
- omlish/__about__.py,sha256=imEFdhZ1oFLg4ROvAtmgSayohMctG7MAuAFYTQFvscc,3613
2
+ omlish/__about__.py,sha256=pAgRECTFzk0v1aWP_EMCioDMp_FL4IXyuUAF95ZEw0Q,3613
3
3
  omlish/__init__.py,sha256=SsyiITTuK0v74XpKV8dqNaCmjOlan1JZKrHQv5rWKPA,253
4
4
  omlish/c3.py,sha256=ZNIMl1kwg3qdei4DiUrJPQe5M81S1e76N-GuNSwLBAE,8683
5
5
  omlish/cached.py,sha256=MLap_p0rdGoDIMVhXVHm1tsbcWobJF0OanoodV03Ju8,542
@@ -190,7 +190,7 @@ omlish/dataclasses/metaclass/specs.py,sha256=ZFt7A5S2UQi5ecFGhd9ubnRD0maswQGERMC
190
190
  omlish/dataclasses/tools/__init__.py,sha256=47DEQpj8HBSa-_TImW-5JCeuQeRkm5NMpJWZG3hSuFU,0
191
191
  omlish/dataclasses/tools/as_.py,sha256=FLUOtvFf1H3isDQsJcskSVIJeJ3iTtrjug7kp3zbHtI,2639
192
192
  omlish/dataclasses/tools/iter.py,sha256=JQUFG4Gn-xthhJ3OEqXLOWkq2KhRMuIqvEow0HcFPZg,540
193
- omlish/dataclasses/tools/modifiers.py,sha256=zSw7wmYtkKXY2UTDdbVJppIEAGqkrFHBGTvQ6fLvOEI,1487
193
+ omlish/dataclasses/tools/modifiers.py,sha256=Ocai2InDqq7dgY_sMI9m2ugPLE4h4Kp5VLeSmalh8s8,1828
194
194
  omlish/dataclasses/tools/only_.py,sha256=hPpqzr9YW09YmlX_QJNU2aePHYJEIrbGCPwmnvVS_to,849
195
195
  omlish/dataclasses/tools/replace.py,sha256=izM9lPT6AhEtjqn22auqaofa0j69KO7iootF-2Uj4cY,396
196
196
  omlish/dataclasses/tools/repr.py,sha256=KFvF6uv2YYIKq8O3ZNbEAS1tqRQALsJ-SUlBNPd5_GI,190
@@ -204,7 +204,7 @@ omlish/diag/procfs.py,sha256=eeB3L9UpNBpAfsax3U6OczayYboPlFzOGplqlQ4gBNY,9700
204
204
  omlish/diag/procstats.py,sha256=EJEe2Zc58ykBoTfqMXro7H52aQa_pd6uC2hsIPFceso,825
205
205
  omlish/diag/ps.py,sha256=MEpMU6fbkh0bSWrOHh_okOa0JDTUSUQUVSYBdh1TGvE,1672
206
206
  omlish/diag/pycharm.py,sha256=9Mgn5T2ZdlEUL3VV-GzVmCBs_ZtIpLwaUzP6pgHEUEo,4712
207
- omlish/diag/pydevd.py,sha256=WPfDgsLe-zCOpnPMlAYEVliTQxk4jmcOKvI19nd-SAI,7589
207
+ omlish/diag/pydevd.py,sha256=4_tKEwjj2tUL3DMNdB1IXZ-zKZjTJd6o75kL0JKEZAk,7593
208
208
  omlish/diag/threads.py,sha256=sjtlTl41wxssoVCDkBB6xeLF-9kJEK3eA6hmSFWJSQA,3643
209
209
  omlish/diag/timers.py,sha256=cxX3GgjTIjBx9DI4pzCCO5Hfqb1TM3uo22yim7kjfRU,3831
210
210
  omlish/diag/_pycharm/__init__.py,sha256=47DEQpj8HBSa-_TImW-5JCeuQeRkm5NMpJWZG3hSuFU,0
@@ -479,7 +479,7 @@ omlish/lite/inject.py,sha256=BQgjBj2mzJgMimLam-loSpQzcb31-8NYPVRQgHVv3cQ,29159
479
479
  omlish/lite/json.py,sha256=m0Ce9eqUZG23-H7-oOp8n1sf4fzno5vtK4AK_4Vc-Mg,706
480
480
  omlish/lite/marshal.py,sha256=oVqVwqTArFUj9lYhmKg_MVgnqlCAUvOnYgtU3bBu_bk,23020
481
481
  omlish/lite/maybes.py,sha256=sJ4dawgBxlZ4oB9dZ3bhBb_8AOJlIW0nVIFgFZ1huXE,4384
482
- omlish/lite/maysync.py,sha256=NiltEfX_mc7jWgWZ9XAqkDzMlLVprTAZvXRObXJT_IE,14926
482
+ omlish/lite/maysync.py,sha256=Otd-xqWaMzY9xBF5SiLKxu4kG_GaWGk8qTGFDAHXDm4,14803
483
483
  omlish/lite/objects.py,sha256=HzN_4J6w6WDLKDrW8jSNUKgfAR5vUsB42rtSCu04oqQ,1921
484
484
  omlish/lite/pycharm.py,sha256=FRHGcCDo42UzZXqNwW_DkhI-6kb_CmJKPiQ8F6mYkLA,1174
485
485
  omlish/lite/reflect.py,sha256=aTRQJ-hgnyRxr0dFxivUTScmUgP7zcw_iDQZIsarG24,2119
@@ -526,7 +526,7 @@ omlish/manifests/globals.py,sha256=kVqQ-fT4kc7xWzLHoI731GviitFPv2v2yqw-p7t7Exs,2
526
526
  omlish/manifests/loading.py,sha256=s6KnhdFQCsI2i0Rus1sMU0so2v8dUBnk59BJkSnxGt8,17514
527
527
  omlish/manifests/static.py,sha256=9BaPBLkuzxHmg5A-5k9BjjBFINCdmFOIu06dMFgCfz4,497
528
528
  omlish/manifests/types.py,sha256=NeOGuIVrcbqjCDbQ3MnCxxHAgHnw0CkWJsBzo230PWE,453
529
- omlish/marshal/__init__.py,sha256=Ov1AECji4Z-lkSObFVeccMM3SvH2APBarybTQov03lA,6057
529
+ omlish/marshal/__init__.py,sha256=uzPPSRIamgMa0syMbY1I_2YJApaABNeDczBmrgm8j7I,6203
530
530
  omlish/marshal/globals.py,sha256=Q6G18hcUwUDDNnpyRPnR5Tn_XZpZCSIEXo09nYSOaNU,2236
531
531
  omlish/marshal/naming.py,sha256=Mk5YrbES836_KflNNRoc5Ajd96iMYLQIMERKx1KpT4g,865
532
532
  omlish/marshal/standard.py,sha256=6L4FK7QVgVFAf2jkTQlCvN-15DWK49VCNlNwCBea3-8,6674
@@ -570,7 +570,7 @@ omlish/marshal/objects/unmarshal.py,sha256=izhtSwqSrlWSOL5uZS3naPxnfq3rhv25uUPN7
570
570
  omlish/marshal/polymorphism/__init__.py,sha256=e2UTrSL0qp7w_1vkdxDWd7sXlWhep2KPV49-BB64ma8,130
571
571
  omlish/marshal/polymorphism/marshal.py,sha256=ZnayCbRj3451U4py1-9dU99PHvjQuQk-ZQDGgzQjF4U,2292
572
572
  omlish/marshal/polymorphism/metadata.py,sha256=c-sOVGvV96OqMfdXUVcVXK8u4xtxHjdHJFXmUx7Km40,3327
573
- omlish/marshal/polymorphism/standard.py,sha256=8Gkdss9632RQ4ff1GZaEdI-T_UzAiW-9nLKQawKoa9s,615
573
+ omlish/marshal/polymorphism/standard.py,sha256=6wwFFwL9fTwIDqhynZr05naL8gVNC_RnPux-8vmja8o,587
574
574
  omlish/marshal/polymorphism/unions.py,sha256=AWNyzETvgADOjPmXsHloXgbvjZ4GX9b_iNmD6ZdXsT0,4445
575
575
  omlish/marshal/polymorphism/unmarshal.py,sha256=8bLeI9UxUluoIqkRJSJIbdCsKkXjx3myYe9uWs16QjY,2483
576
576
  omlish/marshal/singular/__init__.py,sha256=47DEQpj8HBSa-_TImW-5JCeuQeRkm5NMpJWZG3hSuFU,0
@@ -822,9 +822,9 @@ omlish/typedvalues/marshal.py,sha256=AtBz7Jq-BfW8vwM7HSxSpR85JAXmxK2T0xDblmm1HI0
822
822
  omlish/typedvalues/of_.py,sha256=UXkxSj504WI2UrFlqdZJbu2hyDwBhL7XVrc2qdR02GQ,1309
823
823
  omlish/typedvalues/reflect.py,sha256=PAvKW6T4cW7u--iX80w3HWwZUS3SmIZ2_lQjT65uAyk,1026
824
824
  omlish/typedvalues/values.py,sha256=ym46I-q2QJ_6l4UlERqv3yj87R-kp8nCKMRph0xQ3UA,1307
825
- omlish-0.0.0.dev449.dist-info/licenses/LICENSE,sha256=B_hVtavaA8zCYDW99DYdcpDLKz1n3BBRjZrcbv8uG8c,1451
826
- omlish-0.0.0.dev449.dist-info/METADATA,sha256=9xOu6exn_aBuSDxrxDGxBO8JOpogC2J7w7DULnc6dbM,19003
827
- omlish-0.0.0.dev449.dist-info/WHEEL,sha256=_zCd3N1l69ArxyTb8rzEoP9TpbYXkqRFSNOD5OuxnTs,91
828
- omlish-0.0.0.dev449.dist-info/entry_points.txt,sha256=Lt84WvRZJskWCAS7xnQGZIeVWksprtUHj0llrvVmod8,35
829
- omlish-0.0.0.dev449.dist-info/top_level.txt,sha256=pePsKdLu7DvtUiecdYXJ78iO80uDNmBlqe-8hOzOmfs,7
830
- omlish-0.0.0.dev449.dist-info/RECORD,,
825
+ omlish-0.0.0.dev450.dist-info/licenses/LICENSE,sha256=B_hVtavaA8zCYDW99DYdcpDLKz1n3BBRjZrcbv8uG8c,1451
826
+ omlish-0.0.0.dev450.dist-info/METADATA,sha256=DwUHc-Z09a7IkYIMSrhnyjgwyNUGM9xvFiLSCEQsIXs,19003
827
+ omlish-0.0.0.dev450.dist-info/WHEEL,sha256=_zCd3N1l69ArxyTb8rzEoP9TpbYXkqRFSNOD5OuxnTs,91
828
+ omlish-0.0.0.dev450.dist-info/entry_points.txt,sha256=Lt84WvRZJskWCAS7xnQGZIeVWksprtUHj0llrvVmod8,35
829
+ omlish-0.0.0.dev450.dist-info/top_level.txt,sha256=pePsKdLu7DvtUiecdYXJ78iO80uDNmBlqe-8hOzOmfs,7
830
+ omlish-0.0.0.dev450.dist-info/RECORD,,