omlish 0.0.0.dev453__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.
Files changed (52) hide show
  1. omlish/__about__.py +2 -2
  2. omlish/collections/identity.py +1 -0
  3. omlish/dataclasses/__init__.py +2 -0
  4. omlish/funcs/guard.py +27 -16
  5. omlish/lang/__init__.py +1 -0
  6. omlish/lang/iterables.py +8 -0
  7. omlish/lite/attrops.py +2 -0
  8. omlish/lite/dataclasses.py +30 -0
  9. omlish/marshal/__init__.py +12 -11
  10. omlish/marshal/base/contexts.py +4 -7
  11. omlish/marshal/base/funcs.py +16 -11
  12. omlish/marshal/base/types.py +17 -7
  13. omlish/marshal/composite/iterables.py +31 -20
  14. omlish/marshal/composite/literals.py +14 -18
  15. omlish/marshal/composite/mappings.py +34 -23
  16. omlish/marshal/composite/maybes.py +27 -19
  17. omlish/marshal/composite/newtypes.py +14 -14
  18. omlish/marshal/composite/optionals.py +12 -14
  19. omlish/marshal/composite/special.py +13 -13
  20. omlish/marshal/composite/unions/__init__.py +0 -0
  21. omlish/marshal/composite/unions/literals.py +91 -0
  22. omlish/marshal/composite/unions/primitives.py +101 -0
  23. omlish/marshal/factories/invalidate.py +16 -66
  24. omlish/marshal/factories/method.py +28 -0
  25. omlish/marshal/factories/moduleimport/factories.py +13 -54
  26. omlish/marshal/factories/multi.py +11 -23
  27. omlish/marshal/factories/recursive.py +40 -56
  28. omlish/marshal/factories/typecache.py +23 -75
  29. omlish/marshal/factories/typemap.py +40 -41
  30. omlish/marshal/objects/dataclasses.py +106 -97
  31. omlish/marshal/objects/marshal.py +15 -12
  32. omlish/marshal/objects/namedtuples.py +46 -40
  33. omlish/marshal/objects/unmarshal.py +16 -13
  34. omlish/marshal/polymorphism/marshal.py +6 -9
  35. omlish/marshal/polymorphism/unions.py +15 -9
  36. omlish/marshal/polymorphism/unmarshal.py +6 -8
  37. omlish/marshal/singular/enums.py +12 -18
  38. omlish/marshal/standard.py +8 -8
  39. omlish/marshal/trivial/forbidden.py +19 -24
  40. omlish/os/forkhooks.py +4 -0
  41. omlish/specs/jsonrpc/_marshal.py +33 -24
  42. omlish/specs/openapi/_marshal.py +20 -17
  43. omlish/typedvalues/marshal.py +81 -55
  44. {omlish-0.0.0.dev453.dist-info → omlish-0.0.0.dev454.dist-info}/METADATA +1 -1
  45. {omlish-0.0.0.dev453.dist-info → omlish-0.0.0.dev454.dist-info}/RECORD +49 -48
  46. omlish/marshal/composite/unions.py +0 -213
  47. omlish/marshal/factories/match.py +0 -34
  48. omlish/marshal/factories/simple.py +0 -28
  49. {omlish-0.0.0.dev453.dist-info → omlish-0.0.0.dev454.dist-info}/WHEEL +0 -0
  50. {omlish-0.0.0.dev453.dist-info → omlish-0.0.0.dev454.dist-info}/entry_points.txt +0 -0
  51. {omlish-0.0.0.dev453.dist-info → omlish-0.0.0.dev454.dist-info}/licenses/LICENSE +0 -0
  52. {omlish-0.0.0.dev453.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=UyBs9jXm7W7VwfekZgY2BWyGcs6fJ0_zJqOMdeCn8aY,3613
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
@@ -71,7 +71,7 @@ omlish/collections/bimap.py,sha256=3szDCscPJlFRtkpyVQNWneg4s50mr6Rd0jdTzVEIcnE,1
71
71
  omlish/collections/coerce.py,sha256=tAls15v_7p5bUN33R7Zbko87KW5toWHl9fRialCqyNY,7030
72
72
  omlish/collections/frozen.py,sha256=drarjcMFpwKhBM01b1Gh6XDcaRaUgpyuxEiqppaKRkU,4220
73
73
  omlish/collections/hasheq.py,sha256=uHypfZlHhicQPvx9OOlpT9MSLwfc_mFil-WaxF9dTOo,3732
74
- omlish/collections/identity.py,sha256=00UAYIjCRhyj73Es0jVNvOloXjRxHcjRxGQeWo75OEo,4834
74
+ omlish/collections/identity.py,sha256=Z6yfUg4PnqxWlMUzcy3MSGL7vckkzuMDBaujffQXjMw,4885
75
75
  omlish/collections/mappings.py,sha256=c3ojUN9Ca3oGfmMXSFkDQYou5J15obDfgjCvzq3Url4,3833
76
76
  omlish/collections/multimaps.py,sha256=azuif-PeLGvLpCE9_XX5zYx7XtVbsulWq0owvEKNy_g,3897
77
77
  omlish/collections/ordered.py,sha256=jBSj5CamdKJAezXM8GlRd7jjaRDk6BHIeOhlxcC9lJI,2468
@@ -126,7 +126,7 @@ omlish/daemons/services.py,sha256=laoUeJU7eVHuWl1062FBjPSD7jchOjhpYDc5FT2B3dM,34
126
126
  omlish/daemons/spawning.py,sha256=CsNhWDebyin_CYwWvLWNpY0djF010HjQTHATvw6dk-M,5349
127
127
  omlish/daemons/targets.py,sha256=9nacraBQYPTnTvPwR4B_tdalF4nwFAXZeo4FSVcHoMg,3057
128
128
  omlish/daemons/waiting.py,sha256=fuR51IHdBDRVtfdewcw_0qw8itoXqmtdR_qtkoBChuE,1702
129
- omlish/dataclasses/__init__.py,sha256=BwqZM_u2dFhMS-9NxAmMppk3DqGRkVAb-U-_eJtbEY0,3618
129
+ omlish/dataclasses/__init__.py,sha256=o4FsoqpLkVN55CPrANwpufRgfASxIFPACCpEOYWICpo,3677
130
130
  omlish/dataclasses/_internals.py,sha256=_THiziiIslUyYC98Y_tZd5aZgvEF3FAGkDSwzRfcDuo,3247
131
131
  omlish/dataclasses/debug.py,sha256=giBiv6aXvX0IagwNCW64qBzNjfOFr3-VmgDy_KYlb-k,29
132
132
  omlish/dataclasses/errors.py,sha256=QeJVRmrZQer3m66jSDiuAyfAngCBtocMxfnsoSxzOVw,2520
@@ -288,7 +288,7 @@ omlish/formats/toml/writer.py,sha256=9NT8sRy3I9KubxFx56Qbislvrdtbd23rEuBT-GSdUYA
288
288
  omlish/funcs/__init__.py,sha256=47DEQpj8HBSa-_TImW-5JCeuQeRkm5NMpJWZG3hSuFU,0
289
289
  omlish/funcs/builders.py,sha256=ZSBQS2xqriXp5x0t074EEZvuTmMp4Yue2YGBoTLAioo,4044
290
290
  omlish/funcs/genmachine.py,sha256=BOxO1OTjxZ7ewv_WpqYkY8bwlGQIJIjwjvYMflEFa_M,2571
291
- omlish/funcs/guard.py,sha256=vrsUtaGJj-eCOkfjxlHV9lw5qDLimiHOW4X0LINDKmk,5495
291
+ omlish/funcs/guard.py,sha256=OfxDQRJfnRmVrXOPK2QuUtJ3MN3dxMA_q0gIb7C8m2s,5958
292
292
  omlish/funcs/match.py,sha256=cBtG7kdpWdxvHwlte5CWlBxXSoJSV48joV4bwJJC3pk,6352
293
293
  omlish/funcs/pairs.py,sha256=XhYTJdqooAJKeoGZmEaiKYeFRq5-Dj2_y92IdBl_C20,4371
294
294
  omlish/funcs/pipes.py,sha256=E1dQZMBmgT2qautG1vEqy5v3QBsO2Nzryv33j4YAngA,2520
@@ -411,7 +411,7 @@ omlish/iterators/recipes.py,sha256=wOwOZg-zWG9Zc3wcAxJFSe2rtavVBYwZOfG09qYEx_4,4
411
411
  omlish/iterators/tools.py,sha256=M16LXrJhMdsz5ea2qH0vws30ZvhQuQSCVFSLpRf_gTg,2096
412
412
  omlish/iterators/transforms.py,sha256=YHVdD9nBkS1k4kogi4Ba0UOTU_pKkuX9jGw1Tqj3UMw,3598
413
413
  omlish/iterators/unique.py,sha256=BSE-eanva8byFCJi09Nt2zzTsVr8LnTqY1PIInGYRs0,1396
414
- omlish/lang/__init__.py,sha256=O-W0CaUsWeFjCuIdED2wiLhfVicEpPbS_DQQB-t0DpE,10702
414
+ omlish/lang/__init__.py,sha256=FiAlQCNPHoJABATaW-eFLEe8h0crfDgt--VFhKDTIJ0,10720
415
415
  omlish/lang/asyncs.py,sha256=iIHJp7nvgJVj7zS0Ji7NsVSzz54vkzrj0Snc83dxe9g,1965
416
416
  omlish/lang/attrstorage.py,sha256=UUnoENCMQF3twBfxBcIKa5mpXsAxWnNYDayhU8xgmpU,5224
417
417
  omlish/lang/casing.py,sha256=3_c7cxQOc4z_YezaU2B4NCTAsPh_kDL4wUTK5kZU6kg,4675
@@ -425,7 +425,7 @@ omlish/lang/enums.py,sha256=F9tflHfaAoV2MpyuhZzpfX9-H55M3zNa9hCszsngEo8,111
425
425
  omlish/lang/errors.py,sha256=shcS-NCnEUudF8qC_SmO2TQyjivKlS4TDjaz_faqQ0c,44
426
426
  omlish/lang/functions.py,sha256=f7K2SC-09veno_lsUGu0DkZks2gL8VpsmyQMB4Q_i6Q,5663
427
427
  omlish/lang/generators.py,sha256=nJiSmDpsfPiypGzJ8qlOO7-BUnCsrAeDow9mhtGgBio,5196
428
- omlish/lang/iterables.py,sha256=o_s8ouaJrdUqEVl2_bzJk5CVdabmrywXY0gPn7xss3w,3371
428
+ omlish/lang/iterables.py,sha256=5CJNkLyY4Oq43UkiM7KCgV9F6jzrlr9SLiuNx3DAvm8,3608
429
429
  omlish/lang/lazyglobals.py,sha256=YfPtWgNEa0ULtbIiQIQ12pbafUwd6INQRw_PFcAabjo,2282
430
430
  omlish/lang/maybes.py,sha256=8GUpqJvyx9y5PQBQBBx6yTSE5WKsMbXMHPt4_vojKUw,209
431
431
  omlish/lang/maysync.py,sha256=S2Q_rGC4AxRa1UsGJdSzZsYpgOcX9Y8ZmYGA9v8OWn8,1635
@@ -470,12 +470,12 @@ omlish/lite/__init__.py,sha256=cyZEpGob7XjU8DohyNxVe5CQRk4CQ5vrHL42OdhQb8w,148
470
470
  omlish/lite/abstract.py,sha256=Z3kLviPNGLkmA8m8BZILzWxez_sP18OyzgMP3-c2-RI,4068
471
471
  omlish/lite/args.py,sha256=ILJXAiN3KjIoJwY42aKpYPngUdxHIy9ssVIExFVz3fE,978
472
472
  omlish/lite/asyncs.py,sha256=ITnHvg1gq4Wl6PmhwK6DTKriNLBfxFfiVLE9QL6LEHk,3254
473
- omlish/lite/attrops.py,sha256=FD4QFnNqDyLCbVPIP8Zq-6gCZoqHgrH-0z4200huL9U,11243
473
+ omlish/lite/attrops.py,sha256=02DNBjOl27NjznkwolgPwtWpA1q3UPUuwOjHsgG4oLo,11381
474
474
  omlish/lite/cached.py,sha256=AF0PdB2k4h2dyNc5tzrmnNrb9zKnoMPQU3WA8KrhS_o,3108
475
475
  omlish/lite/check.py,sha256=ytCkwZoKfOlJqylL-AGm8C2WfsWJd2q3kFbnZCzX3_M,13844
476
476
  omlish/lite/configs.py,sha256=4-1uVxo-aNV7vMKa7PVNhM610eejG1WepB42-Dw2xQI,914
477
477
  omlish/lite/contextmanagers.py,sha256=usDzBoNqJi98AccVlwgZoMvoBXOe9wyx2MreZtWhJy4,5863
478
- omlish/lite/dataclasses.py,sha256=W0352jGrqVvHre_kUxNfmfwMUDcHBMT-xbRJFW-lIIc,3872
478
+ omlish/lite/dataclasses.py,sha256=sBsClTxr5nmoahgXzruyZS6GqEWYGmDs8YvAXOIMl74,4814
479
479
  omlish/lite/imports.py,sha256=GyEDKL-WuHtdOKIL-cc8aFd0-bHwZFDEjAB52ItabX0,1341
480
480
  omlish/lite/inject.py,sha256=BQgjBj2mzJgMimLam-loSpQzcb31-8NYPVRQgHVv3cQ,29159
481
481
  omlish/lite/json.py,sha256=m0Ce9eqUZG23-H7-oOp8n1sf4fzno5vtK4AK_4Vc-Mg,706
@@ -528,64 +528,65 @@ omlish/manifests/globals.py,sha256=kVqQ-fT4kc7xWzLHoI731GviitFPv2v2yqw-p7t7Exs,2
528
528
  omlish/manifests/loading.py,sha256=s6KnhdFQCsI2i0Rus1sMU0so2v8dUBnk59BJkSnxGt8,17514
529
529
  omlish/manifests/static.py,sha256=9BaPBLkuzxHmg5A-5k9BjjBFINCdmFOIu06dMFgCfz4,497
530
530
  omlish/manifests/types.py,sha256=NeOGuIVrcbqjCDbQ3MnCxxHAgHnw0CkWJsBzo230PWE,453
531
- omlish/marshal/__init__.py,sha256=HLC2svV0fqgDhAk2RJ7WWrfn7co45VwXjIZXYuYOJ6g,6340
531
+ omlish/marshal/__init__.py,sha256=NYAgvE_LM32NhxKYAXzUntpenu-d5iFOFDzDtm99MGo,6464
532
532
  omlish/marshal/globals.py,sha256=Q6G18hcUwUDDNnpyRPnR5Tn_XZpZCSIEXo09nYSOaNU,2236
533
533
  omlish/marshal/naming.py,sha256=Mk5YrbES836_KflNNRoc5Ajd96iMYLQIMERKx1KpT4g,865
534
- omlish/marshal/standard.py,sha256=UUdg74AMalPafWdQTR_kUY_n46a5G4iRo3BJfniniL8,6870
534
+ omlish/marshal/standard.py,sha256=8Qy5L3qMHO-V_fu78tM62wMcGpF0kgrFrxn06IRbFXQ,6906
535
535
  omlish/marshal/base/__init__.py,sha256=47DEQpj8HBSa-_TImW-5JCeuQeRkm5NMpJWZG3hSuFU,0
536
536
  omlish/marshal/base/configs.py,sha256=y_JRghQgu8mJjPspSZcJQLhjevEuJE2kyxCdu3wGKvo,271
537
- omlish/marshal/base/contexts.py,sha256=yt-CNl2MH-TLiNtTQOvGU7-6AvJcwNf8ggBInKTRnbs,2292
537
+ omlish/marshal/base/contexts.py,sha256=kqfw0TLz70dfaRCZyjH12js6wzsk7BoGPHfDXoRv_YY,2222
538
538
  omlish/marshal/base/errors.py,sha256=jmN3vl_U_hB6L0wAvuO7ORG27vXF7KEUk-1TxxK2mYA,308
539
- omlish/marshal/base/funcs.py,sha256=OeSb8T3R0HZmEnAI4lOhI1HPRurTAezzV3TZWdGGK9s,1558
539
+ omlish/marshal/base/funcs.py,sha256=Tc_v3hhj61n6_ieQETe1vaYrN7sByZ4Xv5AzacsqGzQ,1634
540
540
  omlish/marshal/base/options.py,sha256=OoDErPmI0kswnqAtr7QYndlPYhIqIDarx833tKFT2R4,23
541
541
  omlish/marshal/base/overrides.py,sha256=543hP4_y2JRThUOamCE0dPfgucbepVV8e_YF-_PJk6U,993
542
542
  omlish/marshal/base/registries.py,sha256=NRH5X4nE_aF7vcTi4_5qqQpYbYru2Ud6aD0eKfuJ_Ws,5903
543
- omlish/marshal/base/types.py,sha256=DBczbVhz9z9zM4uux43KUnCEJUIW_JqVNyXMxPd--Cs,2472
543
+ omlish/marshal/base/types.py,sha256=YcA8smfVkIWNfMV4y6FEqQBJoFfwz1AOiHvbaaD27kE,3032
544
544
  omlish/marshal/base/values.py,sha256=QF6OateG5kjRPHYza08wscThhg20oryf-aVQrxjfkC0,212
545
545
  omlish/marshal/composite/__init__.py,sha256=47DEQpj8HBSa-_TImW-5JCeuQeRkm5NMpJWZG3hSuFU,0
546
- omlish/marshal/composite/iterables.py,sha256=2VU3sh5TBKMVF1cWPXhDeuELPQzrAYovmTNHzoFLeS4,2704
547
- omlish/marshal/composite/literals.py,sha256=HB2uhkom3D214PqBlE2WXXu7Hjl18V65E7J2TJK-cYM,1840
548
- omlish/marshal/composite/mappings.py,sha256=hOQ-_UZCFTqW_y70a4hNJsNsr2J9y3MYIePEymZMj94,2861
549
- omlish/marshal/composite/maybes.py,sha256=Qy0-bxW3fC3jVvDzszNQogGwGSAwmPt61nTXP06l6cY,2273
550
- omlish/marshal/composite/newtypes.py,sha256=KiDsuBtF7jbWk7A3wy2LAZvuaG7KJzYNF1Y0jKSOZWU,932
551
- omlish/marshal/composite/optionals.py,sha256=A-0GUaTL5585mxdNO_FcpnP2KFmJ64MkAwMukqng2ls,1596
552
- omlish/marshal/composite/special.py,sha256=325cEkzGw2XoMq6W0CvvO7n2Dx9I3mDsjdlZ2tN4Bfs,1402
553
- 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
554
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
555
557
  omlish/marshal/factories/__init__.py,sha256=47DEQpj8HBSa-_TImW-5JCeuQeRkm5NMpJWZG3hSuFU,0
556
- omlish/marshal/factories/invalidate.py,sha256=Jo0aGNg94LqkexVYnbwxeOscgiLC1ap_kzAgWPvRaKE,3053
557
- omlish/marshal/factories/match.py,sha256=MALwOa2FyD4PpHfG-iLBdn8-3FMx_wI123RD4xfd79w,893
558
- omlish/marshal/factories/multi.py,sha256=0chkODC3AGz4wxDq82V69clGRtk1Wjc6O_yOGZxn6bQ,1479
559
- omlish/marshal/factories/recursive.py,sha256=_U3yLiPI0R1qT5J19It2pFFTFVr-O2rXTBjcK-zPpOY,3143
560
- omlish/marshal/factories/simple.py,sha256=6ghaGPsj2rBeh85sV84_v3kEq3pZ8hyVEwd4UMoNfBI,576
561
- omlish/marshal/factories/typecache.py,sha256=Q8VMGsXJMycKGIuA9NYT6h6NmcNUB8-5A_qmV1V_ztM,2813
562
- 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
563
564
  omlish/marshal/factories/moduleimport/__init__.py,sha256=47DEQpj8HBSa-_TImW-5JCeuQeRkm5NMpJWZG3hSuFU,0
564
565
  omlish/marshal/factories/moduleimport/configs.py,sha256=8g6FSPmyo0IOYSWYp5kqfJACZxL9SvzlHzrSzucNZyg,538
565
- omlish/marshal/factories/moduleimport/factories.py,sha256=6q3h8V2uOQKXZUNFnrpK2Zo2Huo920cvk6CL-W3U4gE,3198
566
+ omlish/marshal/factories/moduleimport/factories.py,sha256=PaXmv83xIBqWB8fwJglXMM9Mr2tzLmK_nhjsKSKUVCA,2376
566
567
  omlish/marshal/objects/__init__.py,sha256=F4wej8L_tedC8ETYxAnmKfdPR9TjsqIus9Z3nZofYuc,182
567
- omlish/marshal/objects/dataclasses.py,sha256=JbtI0aciUH6_eqw9qDz2O9NlbndgSvV9Cxn7SrPG7xM,9511
568
+ omlish/marshal/objects/dataclasses.py,sha256=R_rxgmo5qo3XoC7h00VbFWtCkEBgY-UzigHDYDgwYC4,10014
568
569
  omlish/marshal/objects/helpers.py,sha256=hj5I1pILt3QFSVkYJNrSO3wiCaalAopEYWPL17Ip4zs,1102
569
- omlish/marshal/objects/marshal.py,sha256=9Z19aasMNsDn8KBHmUT-XnoP23c5r50CYo0z4IBfUf0,2680
570
+ omlish/marshal/objects/marshal.py,sha256=KNxAUUzwJs3Ttn4hELjy_9NRUugtW9zXQI8Nz4vVNiE,2744
570
571
  omlish/marshal/objects/metadata.py,sha256=maGqyQl0GE9xWK17DQjXxhZWRh3nRwH4fgklrA8XVQI,3392
571
- omlish/marshal/objects/namedtuples.py,sha256=uzOZuEt2IrWtk7uyo13xaWEmFhxRQ3aKAzom05qUfBA,2928
572
- omlish/marshal/objects/unmarshal.py,sha256=izhtSwqSrlWSOL5uZS3naPxnfq3rhv25uUPN7_rpO08,3664
572
+ omlish/marshal/objects/namedtuples.py,sha256=FHJFi84462vrkDvEsBAb9B7FmAS7I_ACx4vm4HnT5xU,3118
573
+ omlish/marshal/objects/unmarshal.py,sha256=LI0HKaCvUpoERFs2Mmi8g37P2WweWXrVLiZgYzJg7Vo,3734
573
574
  omlish/marshal/polymorphism/__init__.py,sha256=e2UTrSL0qp7w_1vkdxDWd7sXlWhep2KPV49-BB64ma8,130
574
- omlish/marshal/polymorphism/marshal.py,sha256=ZnayCbRj3451U4py1-9dU99PHvjQuQk-ZQDGgzQjF4U,2292
575
+ omlish/marshal/polymorphism/marshal.py,sha256=YgxQKDKC2Jq3mD3IYbBwzT6zsW8Lbi-zibbOK_noABc,2221
575
576
  omlish/marshal/polymorphism/metadata.py,sha256=s5lNTzvP487niVorDUy6RFeTB7hde89ENgm-7I_MQg0,3622
576
577
  omlish/marshal/polymorphism/standard.py,sha256=sfxKVjFG8tUam_U75_rFMY2-JSWw_l1_HBg2MrXjQHE,1096
577
- omlish/marshal/polymorphism/unions.py,sha256=YoeDteNF3vKipGCvJDKamkykXQJ43K6R1zxM725T0YU,1963
578
- omlish/marshal/polymorphism/unmarshal.py,sha256=8bLeI9UxUluoIqkRJSJIbdCsKkXjx3myYe9uWs16QjY,2483
578
+ omlish/marshal/polymorphism/unions.py,sha256=tYE5hJBqd5NRAWsw93hnWJdjzp0wVR9pdIgMr2I9oX4,2163
579
+ omlish/marshal/polymorphism/unmarshal.py,sha256=Zu65a26OttpMi1udRe32i1l1das-_Om_L-af_XbathU,2434
579
580
  omlish/marshal/singular/__init__.py,sha256=47DEQpj8HBSa-_TImW-5JCeuQeRkm5NMpJWZG3hSuFU,0
580
581
  omlish/marshal/singular/base64.py,sha256=OZ3Ydwy64S0M-xlktYy5MagzyzTOVYayUXblq8ZK-AE,1164
581
582
  omlish/marshal/singular/datetimes.py,sha256=nzOf8LRwAB08X80N_NmWuE3rOrYG80ZgIaZO3549WnE,3784
582
- omlish/marshal/singular/enums.py,sha256=jffB2uIfQWs9cwpDxYUatBU0OkujkjA64oqh7ecSG7E,1569
583
+ omlish/marshal/singular/enums.py,sha256=l7qaW68dGjUQ6JfB8KQSoPOglDRFGzCJGNv6hj0Nxug,1377
583
584
  omlish/marshal/singular/numbers.py,sha256=32_lSiaQc796u0WsPyiYORiJoaI5qh2IZxiIfF8n360,1746
584
585
  omlish/marshal/singular/primitives.py,sha256=T1mRNMin7OOBjsBkAh1xVbHa-VBmtMfL55mhCfiruIg,1360
585
586
  omlish/marshal/singular/uuids.py,sha256=J6Swxzm0rFvAMCmErJb4WpSPmnQyts7qOqy43Y1BugI,984
586
587
  omlish/marshal/trivial/__init__.py,sha256=47DEQpj8HBSa-_TImW-5JCeuQeRkm5NMpJWZG3hSuFU,0
587
588
  omlish/marshal/trivial/any.py,sha256=XaqSW0fyq2FVE4PQ4IG0UaXr59kRVGccgZDlsNHrd_Q,852
588
- omlish/marshal/trivial/forbidden.py,sha256=fkvyBViUjrpfB6JJu47k-yxAvLkJw7JSZqSP-Abr_04,1092
589
+ omlish/marshal/trivial/forbidden.py,sha256=v56LLiXA9ZeYASE4bI56yZTRpyrQIKRGJWVjcPQNCNo,1194
589
590
  omlish/marshal/trivial/nop.py,sha256=PDXT0B9RR-ghG6ExuK9BH2J-nHEnoTYGNdVaNAyRzSk,506
590
591
  omlish/math/__init__.py,sha256=bcdEEM3l4YNPJvTY_gD-7ARa5HEBNFTfvkVDTTzaNOQ,1531
591
592
  omlish/math/bits.py,sha256=pcTuWxNXXfG-CtTITNNbW3YConAkCeU8PLNcglCc43E,533
@@ -604,7 +605,7 @@ omlish/os/environ.py,sha256=fDjnSO2Qz6lpvICx54JZpdPF-BxL4zKAWU3x_6UTxCI,3681
604
605
  omlish/os/fcntl.py,sha256=EUa4TkeqdKix-uIweRitIZsgT9ohY7OQ5QiIhUW9S0c,1512
605
606
  omlish/os/filemodes.py,sha256=JjHXZ7_BUQRphlA6_DkQoRSOEXxQUWWoKiS2-54rMVo,4586
606
607
  omlish/os/files.py,sha256=PmFQIesLmpYORm4dMKTkj2PeS8iu-KbfPmjZHaabeVc,1117
607
- omlish/os/forkhooks.py,sha256=atbKbHjDgPownKIyRu8F_DfpSceNSYvkc53WHa_1s84,5697
608
+ omlish/os/forkhooks.py,sha256=T9BALcFeffR3xJbekSuYUvftwiXiwnO7N8dvtbmo98I,5761
608
609
  omlish/os/journald.py,sha256=RS6Vjlm1N-J7I6h39A5onmKueCA4ViRhrlDam2523V0,3921
609
610
  omlish/os/linux.py,sha256=CfnYR1vJooo74OfeiSB6EaB1KN5SLz9x3b1KXtJIRQ4,18949
610
611
  omlish/os/mangle.py,sha256=1Z_gYNiRiHn7wAA8tGEumra3lD4r9Isn581Ml2auJZI,531
@@ -663,7 +664,7 @@ omlish/specs/jmespath/parser.py,sha256=uNk9_xQ9cZJC1h5naoH1HMbCs4B0WhV2jN5AvhdKT
663
664
  omlish/specs/jmespath/scope.py,sha256=gsVjmAVF0b7s2SevWb0rBbURayiMSIuXfzO4v1ONIrY,1595
664
665
  omlish/specs/jmespath/visitor.py,sha256=6OCi7oa4IsGW5fCqAeFuXYEwn-aLKuMrNMFtQKSpJWo,16951
665
666
  omlish/specs/jsonrpc/__init__.py,sha256=u2kcJeo6YWEvFYf7OqDNKThszGLSmXYFNJpqXmXgm1M,504
666
- omlish/specs/jsonrpc/_marshal.py,sha256=I4mw9uGwrlNe5xXoJixpefPuP-fh2QiDZsTBI4gAQZI,1856
667
+ omlish/specs/jsonrpc/_marshal.py,sha256=Z85o3XHUlzPN37J6CcM2yqhHNtX6pARHf9VfV2cv5Ds,2058
667
668
  omlish/specs/jsonrpc/conns.py,sha256=zvWnBHuSoGnvbGVk72Usp4IFsLscrzPozqR2hmFjnDI,7029
668
669
  omlish/specs/jsonrpc/errors.py,sha256=WxEU7k1TqeZAo_H6eU0LcrXSd-Gi_3fTvtxjXZ9qKww,712
669
670
  omlish/specs/jsonrpc/types.py,sha256=Se9ecG-_k-kY_Qlt9QD2t3y26oY4sXTcskp6XZfVans,3054
@@ -693,7 +694,7 @@ omlish/specs/jsonschema/schemas/draft202012/vocabularies/meta-data.json,sha256=j
693
694
  omlish/specs/jsonschema/schemas/draft202012/vocabularies/unevaluated.json,sha256=Lb-8tzmUtnCwl2SSre4f_7RsIWgnhNL1pMpWH54tDLQ,506
694
695
  omlish/specs/jsonschema/schemas/draft202012/vocabularies/validation.json,sha256=cBCjHlQfMtK-ch4t40jfdcmzaHaj7TBId_wKvaHTelg,2834
695
696
  omlish/specs/openapi/__init__.py,sha256=KS7OHPBlXwBeTvmsUQy0VMzKYdz2RyH3qLF3bU0NXUw,147
696
- omlish/specs/openapi/_marshal.py,sha256=PYx4Jj8bxnimUwuFi6Y5-Nj1HternkSSx-Rovn-Wp2k,4450
697
+ omlish/specs/openapi/_marshal.py,sha256=DFO1dbUnaxg_G9ke24vIGAU-4IgJcBR1mtIIcsVL6so,4510
697
698
  omlish/specs/openapi/openapi.py,sha256=6KGY_d8HOyG7ssHIWM40MCXgIMzNLiLKHYNggTSpAYM,12027
698
699
  omlish/sql/__init__.py,sha256=JjgIiP2YfiHHIANP7qgkJUG0IMIRzzvKntyhdDKeNdY,384
699
700
  omlish/sql/abc.py,sha256=3hrCjB4jnPVMef_YXClCblzYUZ9l9yaxJJdd5_Nu9GM,4043
@@ -821,13 +822,13 @@ omlish/typedvalues/collection.py,sha256=CK4Vk9kJqAt2V8o6I4zGyv2u9DKov12uSvsGdqEd
821
822
  omlish/typedvalues/consumer.py,sha256=lDOE-O_sgGbOvbcBg2g5ZRaV2WixnuEYxFsJBaj18oU,4690
822
823
  omlish/typedvalues/generic.py,sha256=ft-x4X3k1oFirtYnDfsvrI3ZQikWM8lGLrvrOEbcGq0,742
823
824
  omlish/typedvalues/holder.py,sha256=vu-umn-h1nvUqmtV5T9ZfQ_OoOYsERu8PhI2N48Ryns,1133
824
- omlish/typedvalues/marshal.py,sha256=TWwqiGROaQwcxglGiBt_t5D9AvlWsy3ELm7do-nPeao,4968
825
+ omlish/typedvalues/marshal.py,sha256=HKlUzFhOfJgxLADRHOIcwlr-UbGSSuUHkNgUX070k0E,5954
825
826
  omlish/typedvalues/of_.py,sha256=UXkxSj504WI2UrFlqdZJbu2hyDwBhL7XVrc2qdR02GQ,1309
826
827
  omlish/typedvalues/reflect.py,sha256=PAvKW6T4cW7u--iX80w3HWwZUS3SmIZ2_lQjT65uAyk,1026
827
828
  omlish/typedvalues/values.py,sha256=ym46I-q2QJ_6l4UlERqv3yj87R-kp8nCKMRph0xQ3UA,1307
828
- omlish-0.0.0.dev453.dist-info/licenses/LICENSE,sha256=B_hVtavaA8zCYDW99DYdcpDLKz1n3BBRjZrcbv8uG8c,1451
829
- omlish-0.0.0.dev453.dist-info/METADATA,sha256=2xNQ3KjE39xJl-eAkz-XOpj2tek1YFZnNCNmy_ZaYBk,19003
830
- omlish-0.0.0.dev453.dist-info/WHEEL,sha256=_zCd3N1l69ArxyTb8rzEoP9TpbYXkqRFSNOD5OuxnTs,91
831
- omlish-0.0.0.dev453.dist-info/entry_points.txt,sha256=Lt84WvRZJskWCAS7xnQGZIeVWksprtUHj0llrvVmod8,35
832
- omlish-0.0.0.dev453.dist-info/top_level.txt,sha256=pePsKdLu7DvtUiecdYXJ78iO80uDNmBlqe-8hOzOmfs,7
833
- omlish-0.0.0.dev453.dist-info/RECORD,,
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