omlish 0.0.0.dev452__py3-none-any.whl → 0.0.0.dev454__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 +2 -2
- omlish/collections/__init__.py +7 -1
- omlish/collections/attrregistry.py +182 -0
- omlish/collections/identity.py +1 -0
- omlish/collections/mappings.py +25 -0
- omlish/dataclasses/__init__.py +2 -0
- omlish/dispatch/methods.py +50 -140
- omlish/dom/rendering.py +1 -1
- omlish/funcs/guard.py +225 -0
- omlish/graphs/dot/rendering.py +1 -1
- omlish/lang/__init__.py +1 -0
- omlish/lang/iterables.py +8 -0
- omlish/lite/attrops.py +2 -0
- omlish/lite/dataclasses.py +30 -0
- omlish/lite/maybes.py +8 -0
- omlish/marshal/__init__.py +12 -11
- omlish/marshal/base/contexts.py +4 -7
- omlish/marshal/base/funcs.py +16 -11
- omlish/marshal/base/types.py +17 -7
- omlish/marshal/composite/iterables.py +31 -20
- omlish/marshal/composite/literals.py +14 -18
- omlish/marshal/composite/mappings.py +34 -23
- omlish/marshal/composite/maybes.py +27 -19
- omlish/marshal/composite/newtypes.py +14 -14
- omlish/marshal/composite/optionals.py +12 -14
- omlish/marshal/composite/special.py +13 -13
- omlish/marshal/composite/unions/__init__.py +0 -0
- omlish/marshal/composite/unions/literals.py +91 -0
- omlish/marshal/composite/unions/primitives.py +101 -0
- omlish/marshal/factories/invalidate.py +16 -66
- omlish/marshal/factories/method.py +28 -0
- omlish/marshal/factories/moduleimport/factories.py +13 -54
- omlish/marshal/factories/multi.py +11 -23
- omlish/marshal/factories/recursive.py +40 -56
- omlish/marshal/factories/typecache.py +23 -75
- omlish/marshal/factories/typemap.py +40 -41
- omlish/marshal/objects/dataclasses.py +106 -97
- omlish/marshal/objects/marshal.py +15 -12
- omlish/marshal/objects/namedtuples.py +46 -40
- omlish/marshal/objects/unmarshal.py +16 -13
- omlish/marshal/polymorphism/marshal.py +6 -9
- omlish/marshal/polymorphism/unions.py +15 -9
- omlish/marshal/polymorphism/unmarshal.py +6 -8
- omlish/marshal/singular/enums.py +12 -18
- omlish/marshal/standard.py +8 -8
- omlish/marshal/trivial/forbidden.py +19 -24
- omlish/os/forkhooks.py +4 -0
- omlish/specs/jsonrpc/_marshal.py +33 -24
- omlish/specs/openapi/_marshal.py +20 -17
- omlish/sql/queries/rendering.py +1 -1
- omlish/text/parts.py +2 -2
- omlish/typedvalues/marshal.py +81 -55
- {omlish-0.0.0.dev452.dist-info → omlish-0.0.0.dev454.dist-info}/METADATA +1 -1
- {omlish-0.0.0.dev452.dist-info → omlish-0.0.0.dev454.dist-info}/RECORD +58 -55
- omlish/marshal/composite/unions.py +0 -213
- omlish/marshal/factories/match.py +0 -34
- omlish/marshal/factories/simple.py +0 -28
- {omlish-0.0.0.dev452.dist-info → omlish-0.0.0.dev454.dist-info}/WHEEL +0 -0
- {omlish-0.0.0.dev452.dist-info → omlish-0.0.0.dev454.dist-info}/entry_points.txt +0 -0
- {omlish-0.0.0.dev452.dist-info → omlish-0.0.0.dev454.dist-info}/licenses/LICENSE +0 -0
- {omlish-0.0.0.dev452.dist-info → omlish-0.0.0.dev454.dist-info}/top_level.txt +0 -0
@@ -1,5 +1,5 @@
|
|
1
1
|
omlish/.omlish-manifests.json,sha256=FLw7xkPiSXuImZgqSP8BwrEib2R1doSzUPLUkc-QUIA,8410
|
2
|
-
omlish/__about__.py,sha256=
|
2
|
+
omlish/__about__.py,sha256=J8aygU4-P9CXE7Ipp0WIsYvR4qc9tWE54x0wZEXtc3o,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
|
@@ -64,14 +64,15 @@ omlish/codecs/funcs.py,sha256=or0Jogczuzk7csDTRl-HURMEjl8LXXqxxXYK45xcM5w,855
|
|
64
64
|
omlish/codecs/registry.py,sha256=y7gjhBY1tTTHZmaK4X02zL5HD_25AAiZ8k27Op69Ag0,4006
|
65
65
|
omlish/codecs/standard.py,sha256=eiZ4u9ep0XrA4Z_D1zJI0vmWyuN8HLrX4Se_r_Cq_ZM,60
|
66
66
|
omlish/codecs/text.py,sha256=P9-xpdiQE3nbI5CzEentf07FBHPzD7_SwOtUQUJ01So,5710
|
67
|
-
omlish/collections/__init__.py,sha256=
|
67
|
+
omlish/collections/__init__.py,sha256=cSNZ670-GaNW_sCazmLi41HPx5tfzMvkHCvPoyebTEY,2934
|
68
68
|
omlish/collections/abc.py,sha256=p9zhL5oNV5WPyWmMn34fWfkuxPQAjOtL7WQA-Xsyhwk,2628
|
69
|
+
omlish/collections/attrregistry.py,sha256=SPvIt8rT8nWvEBqf35I8wPgBU55m0u2ssSmNcYHm_FM,5563
|
69
70
|
omlish/collections/bimap.py,sha256=3szDCscPJlFRtkpyVQNWneg4s50mr6Rd0jdTzVEIcnE,1661
|
70
71
|
omlish/collections/coerce.py,sha256=tAls15v_7p5bUN33R7Zbko87KW5toWHl9fRialCqyNY,7030
|
71
72
|
omlish/collections/frozen.py,sha256=drarjcMFpwKhBM01b1Gh6XDcaRaUgpyuxEiqppaKRkU,4220
|
72
73
|
omlish/collections/hasheq.py,sha256=uHypfZlHhicQPvx9OOlpT9MSLwfc_mFil-WaxF9dTOo,3732
|
73
|
-
omlish/collections/identity.py,sha256=
|
74
|
-
omlish/collections/mappings.py,sha256=
|
74
|
+
omlish/collections/identity.py,sha256=Z6yfUg4PnqxWlMUzcy3MSGL7vckkzuMDBaujffQXjMw,4885
|
75
|
+
omlish/collections/mappings.py,sha256=c3ojUN9Ca3oGfmMXSFkDQYou5J15obDfgjCvzq3Url4,3833
|
75
76
|
omlish/collections/multimaps.py,sha256=azuif-PeLGvLpCE9_XX5zYx7XtVbsulWq0owvEKNy_g,3897
|
76
77
|
omlish/collections/ordered.py,sha256=jBSj5CamdKJAezXM8GlRd7jjaRDk6BHIeOhlxcC9lJI,2468
|
77
78
|
omlish/collections/ranked.py,sha256=McB8C2UQfUvrbmxGTpBz1-EZuyCLkBFtktzncMdt8_Y,2287
|
@@ -125,7 +126,7 @@ omlish/daemons/services.py,sha256=laoUeJU7eVHuWl1062FBjPSD7jchOjhpYDc5FT2B3dM,34
|
|
125
126
|
omlish/daemons/spawning.py,sha256=CsNhWDebyin_CYwWvLWNpY0djF010HjQTHATvw6dk-M,5349
|
126
127
|
omlish/daemons/targets.py,sha256=9nacraBQYPTnTvPwR4B_tdalF4nwFAXZeo4FSVcHoMg,3057
|
127
128
|
omlish/daemons/waiting.py,sha256=fuR51IHdBDRVtfdewcw_0qw8itoXqmtdR_qtkoBChuE,1702
|
128
|
-
omlish/dataclasses/__init__.py,sha256=
|
129
|
+
omlish/dataclasses/__init__.py,sha256=o4FsoqpLkVN55CPrANwpufRgfASxIFPACCpEOYWICpo,3677
|
129
130
|
omlish/dataclasses/_internals.py,sha256=_THiziiIslUyYC98Y_tZd5aZgvEF3FAGkDSwzRfcDuo,3247
|
130
131
|
omlish/dataclasses/debug.py,sha256=giBiv6aXvX0IagwNCW64qBzNjfOFr3-VmgDy_KYlb-k,29
|
131
132
|
omlish/dataclasses/errors.py,sha256=QeJVRmrZQer3m66jSDiuAyfAngCBtocMxfnsoSxzOVw,2520
|
@@ -217,7 +218,7 @@ omlish/dispatch/__init__.py,sha256=UwVT6SSk5HKk9xF9vc_UJD8BDSIQWSw98Ldx-G-6PC0,1
|
|
217
218
|
omlish/dispatch/dispatch.py,sha256=TzWihCt9Zr8wfIwVpKHVOOrYFVKpDXRevxYomtEfqYc,3176
|
218
219
|
omlish/dispatch/functions.py,sha256=cwNzGIg2ZIalEgn9I03cnJVbMTHjWloyDTaowlO3UPs,1524
|
219
220
|
omlish/dispatch/impls.py,sha256=3kyLw5yiYXWCN1DiqQbD1czMVrM8v1mpQ8NyD0tUrnk,1870
|
220
|
-
omlish/dispatch/methods.py,sha256=
|
221
|
+
omlish/dispatch/methods.py,sha256=aberuaB1ujTwhTdTyZQ2j4azNVkO54nEc28k5ZQ--J4,7337
|
221
222
|
omlish/docker/__init__.py,sha256=47DEQpj8HBSa-_TImW-5JCeuQeRkm5NMpJWZG3hSuFU,0
|
222
223
|
omlish/docker/all.py,sha256=t5jBNZAzqCoB05-nwCuSZ6C3PBEBD6T3wsIJvIXJaRg,576
|
223
224
|
omlish/docker/cli.py,sha256=ws3ypayxdnp3nWeLww45jHG0Vwr5e4bUbLTqkpejAhc,2570
|
@@ -232,7 +233,7 @@ omlish/docker/timebomb.py,sha256=EnFt8pJeXkowF_F5NXnN0ogDmxUmVymV4h1CYPwyJr4,356
|
|
232
233
|
omlish/dom/__init__.py,sha256=RYkv9inuebWIKsRuPXr3j0njgLFKzIo-ujKc4JEp0wc,301
|
233
234
|
omlish/dom/building.py,sha256=VPMbGxv730dYjS_jlrrp0qiZhuGT8OheFamUAgtQdF4,1022
|
234
235
|
omlish/dom/content.py,sha256=1NkE1eb0ITfps-yJ-Lbtm6kGnvUmQy6HWo01gnvSkiU,2775
|
235
|
-
omlish/dom/rendering.py,sha256=
|
236
|
+
omlish/dom/rendering.py,sha256=zypSFpZO0pBfPY_ZJXeywovu0pbEtQzLYzn6TZfpRlk,4357
|
236
237
|
omlish/formats/__init__.py,sha256=T0AG1gFnqQ5JiHN0UPQjQ-7g5tnxMIG-mgOvMYExYAM,21
|
237
238
|
omlish/formats/cbor.py,sha256=o_Hbe4kthO9CeXK-FySrw0dHVlrdyTo2Y8PpGRDfZ3c,514
|
238
239
|
omlish/formats/cloudpickle.py,sha256=16si4yUp_pAdDWGECAWf6HLA2PwSANGGgDoMLGZUem8,579
|
@@ -287,6 +288,7 @@ omlish/formats/toml/writer.py,sha256=9NT8sRy3I9KubxFx56Qbislvrdtbd23rEuBT-GSdUYA
|
|
287
288
|
omlish/funcs/__init__.py,sha256=47DEQpj8HBSa-_TImW-5JCeuQeRkm5NMpJWZG3hSuFU,0
|
288
289
|
omlish/funcs/builders.py,sha256=ZSBQS2xqriXp5x0t074EEZvuTmMp4Yue2YGBoTLAioo,4044
|
289
290
|
omlish/funcs/genmachine.py,sha256=BOxO1OTjxZ7ewv_WpqYkY8bwlGQIJIjwjvYMflEFa_M,2571
|
291
|
+
omlish/funcs/guard.py,sha256=OfxDQRJfnRmVrXOPK2QuUtJ3MN3dxMA_q0gIb7C8m2s,5958
|
290
292
|
omlish/funcs/match.py,sha256=cBtG7kdpWdxvHwlte5CWlBxXSoJSV48joV4bwJJC3pk,6352
|
291
293
|
omlish/funcs/pairs.py,sha256=XhYTJdqooAJKeoGZmEaiKYeFRq5-Dj2_y92IdBl_C20,4371
|
292
294
|
omlish/funcs/pipes.py,sha256=E1dQZMBmgT2qautG1vEqy5v3QBsO2Nzryv33j4YAngA,2520
|
@@ -297,7 +299,7 @@ omlish/graphs/trees.py,sha256=r_kZw-83c1KXe7fida-CVWNGDX9quPTmhAjJ5I5uKRc,8198
|
|
297
299
|
omlish/graphs/dot/__init__.py,sha256=Y1MZRQBZkcYyG1Tn7K2FhL8aYbm4v4tk6f5g9AqEkUw,359
|
298
300
|
omlish/graphs/dot/items.py,sha256=GIzUqLHJPR4AVtF141uA8JnyybkRZx6mFYsNJHu_JVg,4087
|
299
301
|
omlish/graphs/dot/make.py,sha256=e-M1IEdh4kHEjJmBxpaEUPxvFLrm5uIXdGxjQZr2HRo,365
|
300
|
-
omlish/graphs/dot/rendering.py,sha256=
|
302
|
+
omlish/graphs/dot/rendering.py,sha256=SGSpwswdFqsjEnznQDyryIsXE8bzPXSUFAJHlB2uT2Y,3655
|
301
303
|
omlish/graphs/dot/utils.py,sha256=8cGKIdcM-w1q4ITUYyC0lnYwLqNWuH2OddmmbLxVgEo,806
|
302
304
|
omlish/http/__init__.py,sha256=47DEQpj8HBSa-_TImW-5JCeuQeRkm5NMpJWZG3hSuFU,0
|
303
305
|
omlish/http/all.py,sha256=ChV0KcPN8CKcwlQiWqYyMvmjHuH9qhBsd2kV7-HrFto,1409
|
@@ -409,7 +411,7 @@ omlish/iterators/recipes.py,sha256=wOwOZg-zWG9Zc3wcAxJFSe2rtavVBYwZOfG09qYEx_4,4
|
|
409
411
|
omlish/iterators/tools.py,sha256=M16LXrJhMdsz5ea2qH0vws30ZvhQuQSCVFSLpRf_gTg,2096
|
410
412
|
omlish/iterators/transforms.py,sha256=YHVdD9nBkS1k4kogi4Ba0UOTU_pKkuX9jGw1Tqj3UMw,3598
|
411
413
|
omlish/iterators/unique.py,sha256=BSE-eanva8byFCJi09Nt2zzTsVr8LnTqY1PIInGYRs0,1396
|
412
|
-
omlish/lang/__init__.py,sha256=
|
414
|
+
omlish/lang/__init__.py,sha256=FiAlQCNPHoJABATaW-eFLEe8h0crfDgt--VFhKDTIJ0,10720
|
413
415
|
omlish/lang/asyncs.py,sha256=iIHJp7nvgJVj7zS0Ji7NsVSzz54vkzrj0Snc83dxe9g,1965
|
414
416
|
omlish/lang/attrstorage.py,sha256=UUnoENCMQF3twBfxBcIKa5mpXsAxWnNYDayhU8xgmpU,5224
|
415
417
|
omlish/lang/casing.py,sha256=3_c7cxQOc4z_YezaU2B4NCTAsPh_kDL4wUTK5kZU6kg,4675
|
@@ -423,7 +425,7 @@ omlish/lang/enums.py,sha256=F9tflHfaAoV2MpyuhZzpfX9-H55M3zNa9hCszsngEo8,111
|
|
423
425
|
omlish/lang/errors.py,sha256=shcS-NCnEUudF8qC_SmO2TQyjivKlS4TDjaz_faqQ0c,44
|
424
426
|
omlish/lang/functions.py,sha256=f7K2SC-09veno_lsUGu0DkZks2gL8VpsmyQMB4Q_i6Q,5663
|
425
427
|
omlish/lang/generators.py,sha256=nJiSmDpsfPiypGzJ8qlOO7-BUnCsrAeDow9mhtGgBio,5196
|
426
|
-
omlish/lang/iterables.py,sha256=
|
428
|
+
omlish/lang/iterables.py,sha256=5CJNkLyY4Oq43UkiM7KCgV9F6jzrlr9SLiuNx3DAvm8,3608
|
427
429
|
omlish/lang/lazyglobals.py,sha256=YfPtWgNEa0ULtbIiQIQ12pbafUwd6INQRw_PFcAabjo,2282
|
428
430
|
omlish/lang/maybes.py,sha256=8GUpqJvyx9y5PQBQBBx6yTSE5WKsMbXMHPt4_vojKUw,209
|
429
431
|
omlish/lang/maysync.py,sha256=S2Q_rGC4AxRa1UsGJdSzZsYpgOcX9Y8ZmYGA9v8OWn8,1635
|
@@ -468,17 +470,17 @@ omlish/lite/__init__.py,sha256=cyZEpGob7XjU8DohyNxVe5CQRk4CQ5vrHL42OdhQb8w,148
|
|
468
470
|
omlish/lite/abstract.py,sha256=Z3kLviPNGLkmA8m8BZILzWxez_sP18OyzgMP3-c2-RI,4068
|
469
471
|
omlish/lite/args.py,sha256=ILJXAiN3KjIoJwY42aKpYPngUdxHIy9ssVIExFVz3fE,978
|
470
472
|
omlish/lite/asyncs.py,sha256=ITnHvg1gq4Wl6PmhwK6DTKriNLBfxFfiVLE9QL6LEHk,3254
|
471
|
-
omlish/lite/attrops.py,sha256=
|
473
|
+
omlish/lite/attrops.py,sha256=02DNBjOl27NjznkwolgPwtWpA1q3UPUuwOjHsgG4oLo,11381
|
472
474
|
omlish/lite/cached.py,sha256=AF0PdB2k4h2dyNc5tzrmnNrb9zKnoMPQU3WA8KrhS_o,3108
|
473
475
|
omlish/lite/check.py,sha256=ytCkwZoKfOlJqylL-AGm8C2WfsWJd2q3kFbnZCzX3_M,13844
|
474
476
|
omlish/lite/configs.py,sha256=4-1uVxo-aNV7vMKa7PVNhM610eejG1WepB42-Dw2xQI,914
|
475
477
|
omlish/lite/contextmanagers.py,sha256=usDzBoNqJi98AccVlwgZoMvoBXOe9wyx2MreZtWhJy4,5863
|
476
|
-
omlish/lite/dataclasses.py,sha256=
|
478
|
+
omlish/lite/dataclasses.py,sha256=sBsClTxr5nmoahgXzruyZS6GqEWYGmDs8YvAXOIMl74,4814
|
477
479
|
omlish/lite/imports.py,sha256=GyEDKL-WuHtdOKIL-cc8aFd0-bHwZFDEjAB52ItabX0,1341
|
478
480
|
omlish/lite/inject.py,sha256=BQgjBj2mzJgMimLam-loSpQzcb31-8NYPVRQgHVv3cQ,29159
|
479
481
|
omlish/lite/json.py,sha256=m0Ce9eqUZG23-H7-oOp8n1sf4fzno5vtK4AK_4Vc-Mg,706
|
480
482
|
omlish/lite/marshal.py,sha256=oVqVwqTArFUj9lYhmKg_MVgnqlCAUvOnYgtU3bBu_bk,23020
|
481
|
-
omlish/lite/maybes.py,sha256=
|
483
|
+
omlish/lite/maybes.py,sha256=NCnMZaSbIfvOMqz69aYmmvZQDd0c61QjG3ju7uJc8t8,4531
|
482
484
|
omlish/lite/maysync.py,sha256=Otd-xqWaMzY9xBF5SiLKxu4kG_GaWGk8qTGFDAHXDm4,14803
|
483
485
|
omlish/lite/objects.py,sha256=HzN_4J6w6WDLKDrW8jSNUKgfAR5vUsB42rtSCu04oqQ,1921
|
484
486
|
omlish/lite/pycharm.py,sha256=fdSTwtdqGRL0P9IkCrDAPqQkJsegq1NfYyVG2N6cy4w,1174
|
@@ -526,64 +528,65 @@ omlish/manifests/globals.py,sha256=kVqQ-fT4kc7xWzLHoI731GviitFPv2v2yqw-p7t7Exs,2
|
|
526
528
|
omlish/manifests/loading.py,sha256=s6KnhdFQCsI2i0Rus1sMU0so2v8dUBnk59BJkSnxGt8,17514
|
527
529
|
omlish/manifests/static.py,sha256=9BaPBLkuzxHmg5A-5k9BjjBFINCdmFOIu06dMFgCfz4,497
|
528
530
|
omlish/manifests/types.py,sha256=NeOGuIVrcbqjCDbQ3MnCxxHAgHnw0CkWJsBzo230PWE,453
|
529
|
-
omlish/marshal/__init__.py,sha256=
|
531
|
+
omlish/marshal/__init__.py,sha256=NYAgvE_LM32NhxKYAXzUntpenu-d5iFOFDzDtm99MGo,6464
|
530
532
|
omlish/marshal/globals.py,sha256=Q6G18hcUwUDDNnpyRPnR5Tn_XZpZCSIEXo09nYSOaNU,2236
|
531
533
|
omlish/marshal/naming.py,sha256=Mk5YrbES836_KflNNRoc5Ajd96iMYLQIMERKx1KpT4g,865
|
532
|
-
omlish/marshal/standard.py,sha256=
|
534
|
+
omlish/marshal/standard.py,sha256=8Qy5L3qMHO-V_fu78tM62wMcGpF0kgrFrxn06IRbFXQ,6906
|
533
535
|
omlish/marshal/base/__init__.py,sha256=47DEQpj8HBSa-_TImW-5JCeuQeRkm5NMpJWZG3hSuFU,0
|
534
536
|
omlish/marshal/base/configs.py,sha256=y_JRghQgu8mJjPspSZcJQLhjevEuJE2kyxCdu3wGKvo,271
|
535
|
-
omlish/marshal/base/contexts.py,sha256=
|
537
|
+
omlish/marshal/base/contexts.py,sha256=kqfw0TLz70dfaRCZyjH12js6wzsk7BoGPHfDXoRv_YY,2222
|
536
538
|
omlish/marshal/base/errors.py,sha256=jmN3vl_U_hB6L0wAvuO7ORG27vXF7KEUk-1TxxK2mYA,308
|
537
|
-
omlish/marshal/base/funcs.py,sha256=
|
539
|
+
omlish/marshal/base/funcs.py,sha256=Tc_v3hhj61n6_ieQETe1vaYrN7sByZ4Xv5AzacsqGzQ,1634
|
538
540
|
omlish/marshal/base/options.py,sha256=OoDErPmI0kswnqAtr7QYndlPYhIqIDarx833tKFT2R4,23
|
539
541
|
omlish/marshal/base/overrides.py,sha256=543hP4_y2JRThUOamCE0dPfgucbepVV8e_YF-_PJk6U,993
|
540
542
|
omlish/marshal/base/registries.py,sha256=NRH5X4nE_aF7vcTi4_5qqQpYbYru2Ud6aD0eKfuJ_Ws,5903
|
541
|
-
omlish/marshal/base/types.py,sha256=
|
543
|
+
omlish/marshal/base/types.py,sha256=YcA8smfVkIWNfMV4y6FEqQBJoFfwz1AOiHvbaaD27kE,3032
|
542
544
|
omlish/marshal/base/values.py,sha256=QF6OateG5kjRPHYza08wscThhg20oryf-aVQrxjfkC0,212
|
543
545
|
omlish/marshal/composite/__init__.py,sha256=47DEQpj8HBSa-_TImW-5JCeuQeRkm5NMpJWZG3hSuFU,0
|
544
|
-
omlish/marshal/composite/iterables.py,sha256=
|
545
|
-
omlish/marshal/composite/literals.py,sha256=
|
546
|
-
omlish/marshal/composite/mappings.py,sha256=
|
547
|
-
omlish/marshal/composite/maybes.py,sha256=
|
548
|
-
omlish/marshal/composite/newtypes.py,sha256=
|
549
|
-
omlish/marshal/composite/optionals.py,sha256=
|
550
|
-
omlish/marshal/composite/special.py,sha256=
|
551
|
-
omlish/marshal/composite/unions.py,sha256=qUVAbUS16YI1toRmq0liyuMUQSq1d2Ox5mAW0zYCdog,6058
|
546
|
+
omlish/marshal/composite/iterables.py,sha256=b9REKCYhbPSj2VwUG8wRjonrENExIE1fjHTd3hHYsYc,2974
|
547
|
+
omlish/marshal/composite/literals.py,sha256=jbPi5A7xgRja3GdiwPwFtIkP_Z-Smb1m3yDnEWIYU9w,1716
|
548
|
+
omlish/marshal/composite/mappings.py,sha256=U1ONUxnJj9oaduJ4Gh2bOzAfcAtAdp-pn1RWndYJlng,3127
|
549
|
+
omlish/marshal/composite/maybes.py,sha256=d2z2lrzbfMJ7Vtn7UmUk4BkbSSP-8sHt8K4d0Xbo3tc,2531
|
550
|
+
omlish/marshal/composite/newtypes.py,sha256=uOPpcbq3Rb_0VavwqEREhxteNNNHZnUh7W3wcn_EWNk,923
|
551
|
+
omlish/marshal/composite/optionals.py,sha256=Y0YkHoXhhUkmWhEyeevtq9tXS9UfGcKVGl--MvjB7iI,1570
|
552
|
+
omlish/marshal/composite/special.py,sha256=u9jMgs_6ozyoFin8pLDsvjrEip98zxRlai0HliHmVjU,1314
|
552
553
|
omlish/marshal/composite/wrapped.py,sha256=xC8k21wJOpSkpAn7794hBTPBRw-HPC9sOF3WRlUh_BA,785
|
554
|
+
omlish/marshal/composite/unions/__init__.py,sha256=47DEQpj8HBSa-_TImW-5JCeuQeRkm5NMpJWZG3hSuFU,0
|
555
|
+
omlish/marshal/composite/unions/literals.py,sha256=nDEseg440hPNZy0avkTzlTWuEJlBH2Z729wAtpSvZf0,2648
|
556
|
+
omlish/marshal/composite/unions/primitives.py,sha256=vsWNjtjjy49Z-WX3hZzRGUHfmToh4-7A8KT7plIzcZ8,2821
|
553
557
|
omlish/marshal/factories/__init__.py,sha256=47DEQpj8HBSa-_TImW-5JCeuQeRkm5NMpJWZG3hSuFU,0
|
554
|
-
omlish/marshal/factories/invalidate.py,sha256=
|
555
|
-
omlish/marshal/factories/
|
556
|
-
omlish/marshal/factories/multi.py,sha256=
|
557
|
-
omlish/marshal/factories/recursive.py,sha256=
|
558
|
-
omlish/marshal/factories/
|
559
|
-
omlish/marshal/factories/
|
560
|
-
omlish/marshal/factories/typemap.py,sha256=CxScQbRw3VwILGhf38v2yOiof45YJ9p2LQhZ37SHNj8,1606
|
558
|
+
omlish/marshal/factories/invalidate.py,sha256=DmnyOaVSMmlHRjoLtxbpPynCI6vxIeSE6K6Gt2CzHhY,1959
|
559
|
+
omlish/marshal/factories/method.py,sha256=ZyyLTn7y7K1yLZI-UowWZHa_hTs1F93v3Jc5sdPMg4E,884
|
560
|
+
omlish/marshal/factories/multi.py,sha256=TBabfvqNe9z94egP8z3CGmcx21-c_aVEEA6-IJj-rp0,1251
|
561
|
+
omlish/marshal/factories/recursive.py,sha256=W24-Td1TylXxDjOCz9So-GYAtOhkNzuO78NKHo5GBgs,2868
|
562
|
+
omlish/marshal/factories/typecache.py,sha256=JwRRTnTgTa-AEtPbfjJg2t4n2TAmvxvFOI5UerUeRZc,1659
|
563
|
+
omlish/marshal/factories/typemap.py,sha256=aNxAHsdwuaeACR3Ll0WZ2EMqJN-pnSiZ5g45Rq4QQ5k,1967
|
561
564
|
omlish/marshal/factories/moduleimport/__init__.py,sha256=47DEQpj8HBSa-_TImW-5JCeuQeRkm5NMpJWZG3hSuFU,0
|
562
565
|
omlish/marshal/factories/moduleimport/configs.py,sha256=8g6FSPmyo0IOYSWYp5kqfJACZxL9SvzlHzrSzucNZyg,538
|
563
|
-
omlish/marshal/factories/moduleimport/factories.py,sha256=
|
566
|
+
omlish/marshal/factories/moduleimport/factories.py,sha256=PaXmv83xIBqWB8fwJglXMM9Mr2tzLmK_nhjsKSKUVCA,2376
|
564
567
|
omlish/marshal/objects/__init__.py,sha256=F4wej8L_tedC8ETYxAnmKfdPR9TjsqIus9Z3nZofYuc,182
|
565
|
-
omlish/marshal/objects/dataclasses.py,sha256=
|
568
|
+
omlish/marshal/objects/dataclasses.py,sha256=R_rxgmo5qo3XoC7h00VbFWtCkEBgY-UzigHDYDgwYC4,10014
|
566
569
|
omlish/marshal/objects/helpers.py,sha256=hj5I1pILt3QFSVkYJNrSO3wiCaalAopEYWPL17Ip4zs,1102
|
567
|
-
omlish/marshal/objects/marshal.py,sha256=
|
570
|
+
omlish/marshal/objects/marshal.py,sha256=KNxAUUzwJs3Ttn4hELjy_9NRUugtW9zXQI8Nz4vVNiE,2744
|
568
571
|
omlish/marshal/objects/metadata.py,sha256=maGqyQl0GE9xWK17DQjXxhZWRh3nRwH4fgklrA8XVQI,3392
|
569
|
-
omlish/marshal/objects/namedtuples.py,sha256=
|
570
|
-
omlish/marshal/objects/unmarshal.py,sha256=
|
572
|
+
omlish/marshal/objects/namedtuples.py,sha256=FHJFi84462vrkDvEsBAb9B7FmAS7I_ACx4vm4HnT5xU,3118
|
573
|
+
omlish/marshal/objects/unmarshal.py,sha256=LI0HKaCvUpoERFs2Mmi8g37P2WweWXrVLiZgYzJg7Vo,3734
|
571
574
|
omlish/marshal/polymorphism/__init__.py,sha256=e2UTrSL0qp7w_1vkdxDWd7sXlWhep2KPV49-BB64ma8,130
|
572
|
-
omlish/marshal/polymorphism/marshal.py,sha256=
|
575
|
+
omlish/marshal/polymorphism/marshal.py,sha256=YgxQKDKC2Jq3mD3IYbBwzT6zsW8Lbi-zibbOK_noABc,2221
|
573
576
|
omlish/marshal/polymorphism/metadata.py,sha256=s5lNTzvP487niVorDUy6RFeTB7hde89ENgm-7I_MQg0,3622
|
574
577
|
omlish/marshal/polymorphism/standard.py,sha256=sfxKVjFG8tUam_U75_rFMY2-JSWw_l1_HBg2MrXjQHE,1096
|
575
|
-
omlish/marshal/polymorphism/unions.py,sha256=
|
576
|
-
omlish/marshal/polymorphism/unmarshal.py,sha256=
|
578
|
+
omlish/marshal/polymorphism/unions.py,sha256=tYE5hJBqd5NRAWsw93hnWJdjzp0wVR9pdIgMr2I9oX4,2163
|
579
|
+
omlish/marshal/polymorphism/unmarshal.py,sha256=Zu65a26OttpMi1udRe32i1l1das-_Om_L-af_XbathU,2434
|
577
580
|
omlish/marshal/singular/__init__.py,sha256=47DEQpj8HBSa-_TImW-5JCeuQeRkm5NMpJWZG3hSuFU,0
|
578
581
|
omlish/marshal/singular/base64.py,sha256=OZ3Ydwy64S0M-xlktYy5MagzyzTOVYayUXblq8ZK-AE,1164
|
579
582
|
omlish/marshal/singular/datetimes.py,sha256=nzOf8LRwAB08X80N_NmWuE3rOrYG80ZgIaZO3549WnE,3784
|
580
|
-
omlish/marshal/singular/enums.py,sha256=
|
583
|
+
omlish/marshal/singular/enums.py,sha256=l7qaW68dGjUQ6JfB8KQSoPOglDRFGzCJGNv6hj0Nxug,1377
|
581
584
|
omlish/marshal/singular/numbers.py,sha256=32_lSiaQc796u0WsPyiYORiJoaI5qh2IZxiIfF8n360,1746
|
582
585
|
omlish/marshal/singular/primitives.py,sha256=T1mRNMin7OOBjsBkAh1xVbHa-VBmtMfL55mhCfiruIg,1360
|
583
586
|
omlish/marshal/singular/uuids.py,sha256=J6Swxzm0rFvAMCmErJb4WpSPmnQyts7qOqy43Y1BugI,984
|
584
587
|
omlish/marshal/trivial/__init__.py,sha256=47DEQpj8HBSa-_TImW-5JCeuQeRkm5NMpJWZG3hSuFU,0
|
585
588
|
omlish/marshal/trivial/any.py,sha256=XaqSW0fyq2FVE4PQ4IG0UaXr59kRVGccgZDlsNHrd_Q,852
|
586
|
-
omlish/marshal/trivial/forbidden.py,sha256=
|
589
|
+
omlish/marshal/trivial/forbidden.py,sha256=v56LLiXA9ZeYASE4bI56yZTRpyrQIKRGJWVjcPQNCNo,1194
|
587
590
|
omlish/marshal/trivial/nop.py,sha256=PDXT0B9RR-ghG6ExuK9BH2J-nHEnoTYGNdVaNAyRzSk,506
|
588
591
|
omlish/math/__init__.py,sha256=bcdEEM3l4YNPJvTY_gD-7ARa5HEBNFTfvkVDTTzaNOQ,1531
|
589
592
|
omlish/math/bits.py,sha256=pcTuWxNXXfG-CtTITNNbW3YConAkCeU8PLNcglCc43E,533
|
@@ -602,7 +605,7 @@ omlish/os/environ.py,sha256=fDjnSO2Qz6lpvICx54JZpdPF-BxL4zKAWU3x_6UTxCI,3681
|
|
602
605
|
omlish/os/fcntl.py,sha256=EUa4TkeqdKix-uIweRitIZsgT9ohY7OQ5QiIhUW9S0c,1512
|
603
606
|
omlish/os/filemodes.py,sha256=JjHXZ7_BUQRphlA6_DkQoRSOEXxQUWWoKiS2-54rMVo,4586
|
604
607
|
omlish/os/files.py,sha256=PmFQIesLmpYORm4dMKTkj2PeS8iu-KbfPmjZHaabeVc,1117
|
605
|
-
omlish/os/forkhooks.py,sha256=
|
608
|
+
omlish/os/forkhooks.py,sha256=T9BALcFeffR3xJbekSuYUvftwiXiwnO7N8dvtbmo98I,5761
|
606
609
|
omlish/os/journald.py,sha256=RS6Vjlm1N-J7I6h39A5onmKueCA4ViRhrlDam2523V0,3921
|
607
610
|
omlish/os/linux.py,sha256=CfnYR1vJooo74OfeiSB6EaB1KN5SLz9x3b1KXtJIRQ4,18949
|
608
611
|
omlish/os/mangle.py,sha256=1Z_gYNiRiHn7wAA8tGEumra3lD4r9Isn581Ml2auJZI,531
|
@@ -661,7 +664,7 @@ omlish/specs/jmespath/parser.py,sha256=uNk9_xQ9cZJC1h5naoH1HMbCs4B0WhV2jN5AvhdKT
|
|
661
664
|
omlish/specs/jmespath/scope.py,sha256=gsVjmAVF0b7s2SevWb0rBbURayiMSIuXfzO4v1ONIrY,1595
|
662
665
|
omlish/specs/jmespath/visitor.py,sha256=6OCi7oa4IsGW5fCqAeFuXYEwn-aLKuMrNMFtQKSpJWo,16951
|
663
666
|
omlish/specs/jsonrpc/__init__.py,sha256=u2kcJeo6YWEvFYf7OqDNKThszGLSmXYFNJpqXmXgm1M,504
|
664
|
-
omlish/specs/jsonrpc/_marshal.py,sha256=
|
667
|
+
omlish/specs/jsonrpc/_marshal.py,sha256=Z85o3XHUlzPN37J6CcM2yqhHNtX6pARHf9VfV2cv5Ds,2058
|
665
668
|
omlish/specs/jsonrpc/conns.py,sha256=zvWnBHuSoGnvbGVk72Usp4IFsLscrzPozqR2hmFjnDI,7029
|
666
669
|
omlish/specs/jsonrpc/errors.py,sha256=WxEU7k1TqeZAo_H6eU0LcrXSd-Gi_3fTvtxjXZ9qKww,712
|
667
670
|
omlish/specs/jsonrpc/types.py,sha256=Se9ecG-_k-kY_Qlt9QD2t3y26oY4sXTcskp6XZfVans,3054
|
@@ -691,7 +694,7 @@ omlish/specs/jsonschema/schemas/draft202012/vocabularies/meta-data.json,sha256=j
|
|
691
694
|
omlish/specs/jsonschema/schemas/draft202012/vocabularies/unevaluated.json,sha256=Lb-8tzmUtnCwl2SSre4f_7RsIWgnhNL1pMpWH54tDLQ,506
|
692
695
|
omlish/specs/jsonschema/schemas/draft202012/vocabularies/validation.json,sha256=cBCjHlQfMtK-ch4t40jfdcmzaHaj7TBId_wKvaHTelg,2834
|
693
696
|
omlish/specs/openapi/__init__.py,sha256=KS7OHPBlXwBeTvmsUQy0VMzKYdz2RyH3qLF3bU0NXUw,147
|
694
|
-
omlish/specs/openapi/_marshal.py,sha256=
|
697
|
+
omlish/specs/openapi/_marshal.py,sha256=DFO1dbUnaxg_G9ke24vIGAU-4IgJcBR1mtIIcsVL6so,4510
|
695
698
|
omlish/specs/openapi/openapi.py,sha256=6KGY_d8HOyG7ssHIWM40MCXgIMzNLiLKHYNggTSpAYM,12027
|
696
699
|
omlish/sql/__init__.py,sha256=JjgIiP2YfiHHIANP7qgkJUG0IMIRzzvKntyhdDKeNdY,384
|
697
700
|
omlish/sql/abc.py,sha256=3hrCjB4jnPVMef_YXClCblzYUZ9l9yaxJJdd5_Nu9GM,4043
|
@@ -730,7 +733,7 @@ omlish/sql/queries/names.py,sha256=25kPRYse_ivI17lMD9st04k7QQMOGf5plb4b8yZFpUI,2
|
|
730
733
|
omlish/sql/queries/ops.py,sha256=pDZ_2Jo_Fa8DDbtYkc6-9eehkWsZPI-jh-KFlubcY6Y,134
|
731
734
|
omlish/sql/queries/params.py,sha256=ocjaJbhv_5LWgxdjoZg8vyAWDZxsij4cKH8Lx4hXMT0,1261
|
732
735
|
omlish/sql/queries/relations.py,sha256=P0qBqNICyeig9sEZAYLZcTXcI1YFiBe6REm6jNhpHUI,2630
|
733
|
-
omlish/sql/queries/rendering.py,sha256=
|
736
|
+
omlish/sql/queries/rendering.py,sha256=Kc7GqLKnuzfeVv4MPTkjYb6-n4fTBLOKo4QjfPc-WBY,7800
|
734
737
|
omlish/sql/queries/selects.py,sha256=XNisb2draHURYhbZsTFw7DJQaN1Zfo2Znm-Ty0lHNTo,1773
|
735
738
|
omlish/sql/queries/std.py,sha256=FdJkXD7oiuj8mtVzvbsL1ZocEEAfaSdOsfTVB1YhtrE,699
|
736
739
|
omlish/sql/queries/stmts.py,sha256=pBqwD7dRlqMu6uh6vR3xaWOEgbZCcFWbOQ9ryYd17T4,441
|
@@ -808,7 +811,7 @@ omlish/text/indent.py,sha256=BWVVaHs_B1ppwHJJIxKCDG3iCutkYy5e1qr59Z_Suzg,1524
|
|
808
811
|
omlish/text/linecache.py,sha256=hRYlEhD63ZfA6_ZOTkQIcnON-3W56QMAhcG3vEJqj9M,1858
|
809
812
|
omlish/text/mangle.py,sha256=k7mYavVgxJ2ENV2wfjw3c9u3hqH5NeVpjoxYbyaYC0Y,2796
|
810
813
|
omlish/text/minja.py,sha256=7UKNalkWpTG_364OIo7p5ym--uiNPR2RFBW_W8rrO4I,9194
|
811
|
-
omlish/text/parts.py,sha256=
|
814
|
+
omlish/text/parts.py,sha256=MFi-ANxXlBiOMqW2y2S0BRg6xDwPYxSXSfrYPM3rtcE,6669
|
812
815
|
omlish/text/random.py,sha256=8feS5JE_tSjYlMl-lp0j93kCfzBae9AM2cXlRLebXMA,199
|
813
816
|
omlish/text/templating.py,sha256=i-HU7W-GtKdnBhEG3mnSey5ig7vV0q02D3pVzMoOzJY,3318
|
814
817
|
omlish/text/go/__init__.py,sha256=47DEQpj8HBSa-_TImW-5JCeuQeRkm5NMpJWZG3hSuFU,0
|
@@ -819,13 +822,13 @@ omlish/typedvalues/collection.py,sha256=CK4Vk9kJqAt2V8o6I4zGyv2u9DKov12uSvsGdqEd
|
|
819
822
|
omlish/typedvalues/consumer.py,sha256=lDOE-O_sgGbOvbcBg2g5ZRaV2WixnuEYxFsJBaj18oU,4690
|
820
823
|
omlish/typedvalues/generic.py,sha256=ft-x4X3k1oFirtYnDfsvrI3ZQikWM8lGLrvrOEbcGq0,742
|
821
824
|
omlish/typedvalues/holder.py,sha256=vu-umn-h1nvUqmtV5T9ZfQ_OoOYsERu8PhI2N48Ryns,1133
|
822
|
-
omlish/typedvalues/marshal.py,sha256=
|
825
|
+
omlish/typedvalues/marshal.py,sha256=HKlUzFhOfJgxLADRHOIcwlr-UbGSSuUHkNgUX070k0E,5954
|
823
826
|
omlish/typedvalues/of_.py,sha256=UXkxSj504WI2UrFlqdZJbu2hyDwBhL7XVrc2qdR02GQ,1309
|
824
827
|
omlish/typedvalues/reflect.py,sha256=PAvKW6T4cW7u--iX80w3HWwZUS3SmIZ2_lQjT65uAyk,1026
|
825
828
|
omlish/typedvalues/values.py,sha256=ym46I-q2QJ_6l4UlERqv3yj87R-kp8nCKMRph0xQ3UA,1307
|
826
|
-
omlish-0.0.0.
|
827
|
-
omlish-0.0.0.
|
828
|
-
omlish-0.0.0.
|
829
|
-
omlish-0.0.0.
|
830
|
-
omlish-0.0.0.
|
831
|
-
omlish-0.0.0.
|
829
|
+
omlish-0.0.0.dev454.dist-info/licenses/LICENSE,sha256=B_hVtavaA8zCYDW99DYdcpDLKz1n3BBRjZrcbv8uG8c,1451
|
830
|
+
omlish-0.0.0.dev454.dist-info/METADATA,sha256=N5zehQbu1WtUkkeeT84dmZqYu8lVV354n5GZT0MZmd8,19003
|
831
|
+
omlish-0.0.0.dev454.dist-info/WHEEL,sha256=_zCd3N1l69ArxyTb8rzEoP9TpbYXkqRFSNOD5OuxnTs,91
|
832
|
+
omlish-0.0.0.dev454.dist-info/entry_points.txt,sha256=Lt84WvRZJskWCAS7xnQGZIeVWksprtUHj0llrvVmod8,35
|
833
|
+
omlish-0.0.0.dev454.dist-info/top_level.txt,sha256=pePsKdLu7DvtUiecdYXJ78iO80uDNmBlqe-8hOzOmfs,7
|
834
|
+
omlish-0.0.0.dev454.dist-info/RECORD,,
|
@@ -1,213 +0,0 @@
|
|
1
|
-
import typing as ta
|
2
|
-
|
3
|
-
from ... import check
|
4
|
-
from ... import collections as col
|
5
|
-
from ... import dataclasses as dc
|
6
|
-
from ... import lang
|
7
|
-
from ... import reflect as rfl
|
8
|
-
from ...funcs import match as mfs
|
9
|
-
from ..base.contexts import MarshalContext
|
10
|
-
from ..base.contexts import UnmarshalContext
|
11
|
-
from ..base.types import Marshaler
|
12
|
-
from ..base.types import Unmarshaler
|
13
|
-
from ..base.values import Value
|
14
|
-
from ..factories.simple import SimpleMarshalerFactory
|
15
|
-
from ..factories.simple import SimpleUnmarshalerFactory
|
16
|
-
|
17
|
-
|
18
|
-
##
|
19
|
-
|
20
|
-
|
21
|
-
class MatchUnionMarshaler(Marshaler):
|
22
|
-
mmf: mfs.MultiMatchFn[[UnmarshalContext, Value], ta.Any]
|
23
|
-
|
24
|
-
def marshal(self, ctx: MarshalContext, o: ta.Any) -> Value:
|
25
|
-
try:
|
26
|
-
m = self.mmf.match(ctx, o)
|
27
|
-
except mfs.AmbiguousMatchesError:
|
28
|
-
raise ValueError(o) # noqa
|
29
|
-
return m.fn(ctx, o)
|
30
|
-
|
31
|
-
|
32
|
-
class MatchUnionUnmarshaler(Unmarshaler):
|
33
|
-
mmf: mfs.MultiMatchFn[[UnmarshalContext, Value], ta.Any]
|
34
|
-
|
35
|
-
def unmarshal(self, ctx: UnmarshalContext, v: Value) -> ta.Any:
|
36
|
-
try:
|
37
|
-
m = self.mmf.match(ctx, v)
|
38
|
-
except mfs.AmbiguousMatchesError:
|
39
|
-
raise ValueError(v) # noqa
|
40
|
-
return m.fn(ctx, v)
|
41
|
-
|
42
|
-
|
43
|
-
##
|
44
|
-
|
45
|
-
|
46
|
-
PRIMITIVE_UNION_TYPES: tuple[type, ...] = (
|
47
|
-
float,
|
48
|
-
int,
|
49
|
-
str,
|
50
|
-
bool,
|
51
|
-
)
|
52
|
-
|
53
|
-
|
54
|
-
class DestructuredPrimitiveUnionType(ta.NamedTuple):
|
55
|
-
prim: ta.Sequence[type]
|
56
|
-
non_prim: ta.Sequence[rfl.Type]
|
57
|
-
|
58
|
-
|
59
|
-
def _destructure_primitive_union_type(
|
60
|
-
rty: rfl.Type,
|
61
|
-
prim_tys: ta.Container[type] = PRIMITIVE_UNION_TYPES,
|
62
|
-
) -> DestructuredPrimitiveUnionType | None:
|
63
|
-
if not isinstance(rty, rfl.Union):
|
64
|
-
return None
|
65
|
-
|
66
|
-
pr = col.partition(rty.args, lambda a: isinstance(a, type) and a in prim_tys)
|
67
|
-
if not pr.t or len(pr.f) > 1:
|
68
|
-
return None
|
69
|
-
|
70
|
-
return DestructuredPrimitiveUnionType(*pr) # type: ignore[arg-type]
|
71
|
-
|
72
|
-
|
73
|
-
#
|
74
|
-
|
75
|
-
|
76
|
-
@dc.dataclass(frozen=True)
|
77
|
-
class PrimitiveUnionMarshaler(Marshaler):
|
78
|
-
tys: ta.Sequence[type]
|
79
|
-
x: Marshaler | None = None
|
80
|
-
|
81
|
-
def marshal(self, ctx: MarshalContext, o: ta.Any) -> Value:
|
82
|
-
if type(o) not in self.tys:
|
83
|
-
if self.x is not None:
|
84
|
-
return self.x.marshal(ctx, o)
|
85
|
-
raise TypeError(o)
|
86
|
-
return o
|
87
|
-
|
88
|
-
|
89
|
-
@dc.dataclass(frozen=True)
|
90
|
-
class PrimitiveUnionMarshalerFactory(SimpleMarshalerFactory):
|
91
|
-
tys: ta.Sequence[type] = PRIMITIVE_UNION_TYPES
|
92
|
-
|
93
|
-
def guard(self, ctx: MarshalContext, rty: rfl.Type) -> bool:
|
94
|
-
return _destructure_primitive_union_type(rty, self.tys) is not None
|
95
|
-
|
96
|
-
def fn(self, ctx: MarshalContext, rty: rfl.Type) -> Marshaler:
|
97
|
-
prim, non_prim = check.not_none(_destructure_primitive_union_type(rty, self.tys))
|
98
|
-
return PrimitiveUnionMarshaler(
|
99
|
-
prim,
|
100
|
-
ctx.make(check.single(non_prim)) if non_prim else None,
|
101
|
-
)
|
102
|
-
|
103
|
-
|
104
|
-
#
|
105
|
-
|
106
|
-
|
107
|
-
@dc.dataclass(frozen=True)
|
108
|
-
class PrimitiveUnionUnmarshaler(Unmarshaler):
|
109
|
-
tys: ta.Sequence[type]
|
110
|
-
x: Unmarshaler | None = None
|
111
|
-
|
112
|
-
def unmarshal(self, ctx: UnmarshalContext, v: Value) -> ta.Any:
|
113
|
-
if type(v) not in self.tys:
|
114
|
-
if self.x is not None:
|
115
|
-
return self.x.unmarshal(ctx, v)
|
116
|
-
raise TypeError(v)
|
117
|
-
return v
|
118
|
-
|
119
|
-
|
120
|
-
@dc.dataclass(frozen=True)
|
121
|
-
class PrimitiveUnionUnmarshalerFactory(SimpleUnmarshalerFactory):
|
122
|
-
tys: ta.Sequence[type] = PRIMITIVE_UNION_TYPES
|
123
|
-
|
124
|
-
def guard(self, ctx: UnmarshalContext, rty: rfl.Type) -> bool:
|
125
|
-
return _destructure_primitive_union_type(rty, self.tys) is not None
|
126
|
-
|
127
|
-
def fn(self, ctx: UnmarshalContext, rty: rfl.Type) -> Unmarshaler:
|
128
|
-
prim, non_prim = check.not_none(_destructure_primitive_union_type(rty, self.tys))
|
129
|
-
return PrimitiveUnionUnmarshaler(
|
130
|
-
prim,
|
131
|
-
ctx.make(check.single(non_prim)) if non_prim else None,
|
132
|
-
)
|
133
|
-
|
134
|
-
|
135
|
-
##
|
136
|
-
|
137
|
-
|
138
|
-
LITERAL_UNION_TYPES: tuple[type, ...] = (
|
139
|
-
int,
|
140
|
-
str,
|
141
|
-
)
|
142
|
-
|
143
|
-
|
144
|
-
class DestructuredLiteralUnionType(ta.NamedTuple):
|
145
|
-
v_ty: type
|
146
|
-
lit: rfl.Literal
|
147
|
-
non_lit: rfl.Type
|
148
|
-
|
149
|
-
|
150
|
-
def _destructure_literal_union_type(rty: rfl.Type) -> DestructuredLiteralUnionType | None:
|
151
|
-
if not isinstance(rty, rfl.Union):
|
152
|
-
return None
|
153
|
-
lits, non_lits = col.partition(rty.args, lang.isinstance_of(rfl.Literal)) # noqa
|
154
|
-
if len(lits) != 1 or len(non_lits) != 1:
|
155
|
-
return None
|
156
|
-
lit = check.isinstance(check.single(lits), rfl.Literal)
|
157
|
-
v_tys = set(map(type, lit.args))
|
158
|
-
if len(v_tys) != 1:
|
159
|
-
return None
|
160
|
-
[v_ty] = v_tys
|
161
|
-
if v_ty in rty.args or v_ty not in LITERAL_UNION_TYPES:
|
162
|
-
return None
|
163
|
-
return DestructuredLiteralUnionType(v_ty, lit, check.single(non_lits))
|
164
|
-
|
165
|
-
|
166
|
-
#
|
167
|
-
|
168
|
-
|
169
|
-
@dc.dataclass(frozen=True)
|
170
|
-
class LiteralUnionMarshaler(Marshaler):
|
171
|
-
v_ty: type
|
172
|
-
l: Marshaler
|
173
|
-
x: Marshaler
|
174
|
-
|
175
|
-
def marshal(self, ctx: MarshalContext, o: ta.Any | None) -> Value:
|
176
|
-
if isinstance(o, self.v_ty):
|
177
|
-
return self.l.marshal(ctx, o)
|
178
|
-
else:
|
179
|
-
return self.x.marshal(ctx, o)
|
180
|
-
|
181
|
-
|
182
|
-
class LiteralUnionMarshalerFactory(SimpleMarshalerFactory):
|
183
|
-
def guard(self, ctx: MarshalContext, rty: rfl.Type) -> bool:
|
184
|
-
return _destructure_literal_union_type(rty) is not None
|
185
|
-
|
186
|
-
def fn(self, ctx: MarshalContext, rty: rfl.Type) -> Marshaler:
|
187
|
-
ds = check.not_none(_destructure_literal_union_type(rty))
|
188
|
-
return LiteralUnionMarshaler(ds.v_ty, ctx.make(ds.lit), ctx.make(ds.non_lit))
|
189
|
-
|
190
|
-
|
191
|
-
#
|
192
|
-
|
193
|
-
|
194
|
-
@dc.dataclass(frozen=True)
|
195
|
-
class LiteralUnionUnmarshaler(Unmarshaler):
|
196
|
-
v_ty: type
|
197
|
-
l: Unmarshaler
|
198
|
-
x: Unmarshaler
|
199
|
-
|
200
|
-
def unmarshal(self, ctx: UnmarshalContext, v: Value) -> ta.Any | None:
|
201
|
-
if isinstance(v, self.v_ty):
|
202
|
-
return self.l.unmarshal(ctx, v) # type: ignore[arg-type]
|
203
|
-
else:
|
204
|
-
return self.x.unmarshal(ctx, v)
|
205
|
-
|
206
|
-
|
207
|
-
class LiteralUnionUnmarshalerFactory(SimpleUnmarshalerFactory):
|
208
|
-
def guard(self, ctx: UnmarshalContext, rty: rfl.Type) -> bool:
|
209
|
-
return _destructure_literal_union_type(rty) is not None
|
210
|
-
|
211
|
-
def fn(self, ctx: UnmarshalContext, rty: rfl.Type) -> Unmarshaler:
|
212
|
-
ds = check.not_none(_destructure_literal_union_type(rty))
|
213
|
-
return LiteralUnionUnmarshaler(ds.v_ty, ctx.make(ds.lit), ctx.make(ds.non_lit))
|
@@ -1,34 +0,0 @@
|
|
1
|
-
from ... import lang
|
2
|
-
from ... import reflect as rfl
|
3
|
-
from ...funcs import match as mfs
|
4
|
-
from ..base.contexts import MarshalContext
|
5
|
-
from ..base.contexts import UnmarshalContext
|
6
|
-
from ..base.types import Marshaler
|
7
|
-
from ..base.types import MarshalerFactory
|
8
|
-
from ..base.types import MarshalerMaker
|
9
|
-
from ..base.types import Unmarshaler
|
10
|
-
from ..base.types import UnmarshalerFactory
|
11
|
-
from ..base.types import UnmarshalerMaker
|
12
|
-
|
13
|
-
|
14
|
-
##
|
15
|
-
|
16
|
-
|
17
|
-
class MarshalerFactoryMatchClass(
|
18
|
-
MarshalerFactory,
|
19
|
-
mfs.MatchFnClass[[MarshalContext, rfl.Type], Marshaler],
|
20
|
-
lang.Abstract,
|
21
|
-
):
|
22
|
-
@property
|
23
|
-
def make_marshaler(self) -> MarshalerMaker:
|
24
|
-
return self # noqa
|
25
|
-
|
26
|
-
|
27
|
-
class UnmarshalerFactoryMatchClass(
|
28
|
-
UnmarshalerFactory,
|
29
|
-
mfs.MatchFnClass[[UnmarshalContext, rfl.Type], Unmarshaler],
|
30
|
-
lang.Abstract,
|
31
|
-
):
|
32
|
-
@property
|
33
|
-
def make_unmarshaler(self) -> UnmarshalerMaker:
|
34
|
-
return self # noqa
|
@@ -1,28 +0,0 @@
|
|
1
|
-
from ... import lang
|
2
|
-
from ..base.types import MarshalerFactory
|
3
|
-
from ..base.types import MarshalerMaker
|
4
|
-
from ..base.types import UnmarshalerFactory
|
5
|
-
from ..base.types import UnmarshalerMaker
|
6
|
-
|
7
|
-
|
8
|
-
##
|
9
|
-
|
10
|
-
|
11
|
-
class SimpleMarshalerFactory(
|
12
|
-
MarshalerFactory,
|
13
|
-
MarshalerMaker,
|
14
|
-
lang.Abstract,
|
15
|
-
):
|
16
|
-
@property
|
17
|
-
def make_marshaler(self) -> MarshalerMaker:
|
18
|
-
return self # noqa
|
19
|
-
|
20
|
-
|
21
|
-
class SimpleUnmarshalerFactory(
|
22
|
-
UnmarshalerFactory,
|
23
|
-
UnmarshalerMaker,
|
24
|
-
lang.Abstract,
|
25
|
-
):
|
26
|
-
@property
|
27
|
-
def make_unmarshaler(self) -> UnmarshalerMaker:
|
28
|
-
return self # noqa
|
File without changes
|
File without changes
|
File without changes
|
File without changes
|