omlish 0.0.0.dev414__py3-none-any.whl → 0.0.0.dev415__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 -3
- omlish/codecs/registry.py +1 -1
- omlish/dataclasses/__init__.py +135 -113
- omlish/dataclasses/impl/api/classes/make.py +5 -3
- omlish/dataclasses/impl/configs.py +29 -29
- omlish/lite/maysyncs.py +1 -0
- omlish/manifests/base.py +1 -1
- omlish/marshal/__init__.py +98 -57
- omlish/marshal/base/__init__.py +0 -0
- omlish/marshal/base/contexts.py +75 -0
- omlish/marshal/{errors.py → base/errors.py} +1 -1
- omlish/marshal/base/options.py +2 -0
- omlish/marshal/base/overrides.py +25 -0
- omlish/marshal/{registries.py → base/registries.py} +4 -8
- omlish/marshal/base/types.py +70 -0
- omlish/marshal/{values.py → base/values.py} +1 -13
- omlish/marshal/composite/iterables.py +7 -7
- omlish/marshal/composite/literals.py +7 -7
- omlish/marshal/composite/mappings.py +7 -7
- omlish/marshal/composite/maybes.py +7 -7
- omlish/marshal/composite/newtypes.py +6 -6
- omlish/marshal/composite/optionals.py +7 -7
- omlish/marshal/composite/special.py +6 -6
- omlish/marshal/composite/wrapped.py +5 -5
- omlish/marshal/factories/__init__.py +0 -0
- omlish/marshal/factories/func.py +28 -0
- omlish/marshal/factories/match.py +34 -0
- omlish/marshal/factories/multi.py +55 -0
- omlish/marshal/factories/recursive.py +120 -0
- omlish/marshal/factories/simple.py +28 -0
- omlish/marshal/factories/typecache.py +91 -0
- omlish/marshal/factories/typemap.py +65 -0
- omlish/marshal/globals.py +7 -7
- omlish/marshal/naming.py +1 -1
- omlish/marshal/objects/dataclasses.py +7 -7
- omlish/marshal/objects/marshal.py +4 -4
- omlish/marshal/objects/metadata.py +4 -4
- omlish/marshal/objects/namedtuples.py +7 -7
- omlish/marshal/objects/unmarshal.py +4 -4
- omlish/marshal/polymorphism/marshal.py +4 -4
- omlish/marshal/polymorphism/metadata.py +1 -1
- omlish/marshal/polymorphism/standard.py +2 -2
- omlish/marshal/polymorphism/unions.py +7 -7
- omlish/marshal/polymorphism/unmarshal.py +4 -4
- omlish/marshal/singular/base64.py +7 -7
- omlish/marshal/singular/datetimes.py +7 -7
- omlish/marshal/singular/enums.py +7 -7
- omlish/marshal/singular/numbers.py +7 -7
- omlish/marshal/singular/primitives.py +7 -7
- omlish/marshal/singular/uuids.py +7 -7
- omlish/marshal/standard.py +8 -8
- omlish/marshal/trivial/any.py +7 -7
- omlish/marshal/trivial/forbidden.py +7 -7
- omlish/marshal/trivial/nop.py +5 -5
- {omlish-0.0.0.dev414.dist-info → omlish-0.0.0.dev415.dist-info}/METADATA +1 -1
- {omlish-0.0.0.dev414.dist-info → omlish-0.0.0.dev415.dist-info}/RECORD +60 -52
- omlish/inject/.dataclasses.json +0 -3
- omlish/marshal/.dataclasses.json +0 -3
- omlish/marshal/base.py +0 -472
- omlish/marshal/factories.py +0 -116
- omlish/marshal/proxy.py +0 -26
- {omlish-0.0.0.dev414.dist-info → omlish-0.0.0.dev415.dist-info}/WHEEL +0 -0
- {omlish-0.0.0.dev414.dist-info → omlish-0.0.0.dev415.dist-info}/entry_points.txt +0 -0
- {omlish-0.0.0.dev414.dist-info → omlish-0.0.0.dev415.dist-info}/licenses/LICENSE +0 -0
- {omlish-0.0.0.dev414.dist-info → omlish-0.0.0.dev415.dist-info}/top_level.txt +0 -0
@@ -1,5 +1,5 @@
|
|
1
1
|
omlish/.manifests.json,sha256=FLw7xkPiSXuImZgqSP8BwrEib2R1doSzUPLUkc-QUIA,8410
|
2
|
-
omlish/__about__.py,sha256=
|
2
|
+
omlish/__about__.py,sha256=XApjmdmf3_-YewbzWxs8nlvwRONv4D2GSRsgM19MOXo,3568
|
3
3
|
omlish/__init__.py,sha256=SsyiITTuK0v74XpKV8dqNaCmjOlan1JZKrHQv5rWKPA,253
|
4
4
|
omlish/c3.py,sha256=rer-TPOFDU6fYq_AWio_AmA-ckZ8JDY5shIzQ_yXfzA,8414
|
5
5
|
omlish/cached.py,sha256=MLap_p0rdGoDIMVhXVHm1tsbcWobJF0OanoodV03Ju8,542
|
@@ -72,7 +72,7 @@ omlish/codecs/base.py,sha256=nKAQKF0985xosHIP0mAkUZnr8lfHFj66ShnxL0OfdQE,2193
|
|
72
72
|
omlish/codecs/bytes.py,sha256=3DxyQQCvFcP3mQ5G93f_mygXEb-7I8buM8EyzUcx2Is,2155
|
73
73
|
omlish/codecs/chain.py,sha256=nbkL2nz0ZqT2lxYwSXktHh1YFTQ4Iii1Hp-fWjis6rc,532
|
74
74
|
omlish/codecs/funcs.py,sha256=or0Jogczuzk7csDTRl-HURMEjl8LXXqxxXYK45xcM5w,855
|
75
|
-
omlish/codecs/registry.py,sha256=
|
75
|
+
omlish/codecs/registry.py,sha256=y7gjhBY1tTTHZmaK4X02zL5HD_25AAiZ8k27Op69Ag0,4006
|
76
76
|
omlish/codecs/standard.py,sha256=eiZ4u9ep0XrA4Z_D1zJI0vmWyuN8HLrX4Se_r_Cq_ZM,60
|
77
77
|
omlish/codecs/text.py,sha256=P9-xpdiQE3nbI5CzEentf07FBHPzD7_SwOtUQUJ01So,5710
|
78
78
|
omlish/collections/__init__.py,sha256=BIc806ri5Eq-kR03Ya2YfYTRI0g1rn_0haQPUqxXqys,2816
|
@@ -135,7 +135,7 @@ omlish/daemons/services.py,sha256=laoUeJU7eVHuWl1062FBjPSD7jchOjhpYDc5FT2B3dM,34
|
|
135
135
|
omlish/daemons/spawning.py,sha256=psR73zOYjMKTqNpx1bMib8uU9wAZz62tw5TaWHrTdyY,5337
|
136
136
|
omlish/daemons/targets.py,sha256=00KmtlknMhQ5PyyVAhWl3rpeTMPym0GxvHHq6mYPZ7c,3051
|
137
137
|
omlish/daemons/waiting.py,sha256=RfgD1L33QQVbD2431dkKZGE4w6DUcGvYeRXXi8puAP4,1676
|
138
|
-
omlish/dataclasses/__init__.py,sha256=
|
138
|
+
omlish/dataclasses/__init__.py,sha256=yzdjXDaa3moImIEjmBd55RUFpMpcsYsoSYkO_fNCL8g,3273
|
139
139
|
omlish/dataclasses/_internals.py,sha256=_THiziiIslUyYC98Y_tZd5aZgvEF3FAGkDSwzRfcDuo,3247
|
140
140
|
omlish/dataclasses/debug.py,sha256=giBiv6aXvX0IagwNCW64qBzNjfOFr3-VmgDy_KYlb-k,29
|
141
141
|
omlish/dataclasses/errors.py,sha256=tyv3WR6az66uGGiq9FIuCHvy1Ef-G7zeMY7mMG6hy2Y,2527
|
@@ -143,13 +143,13 @@ omlish/dataclasses/inspect.py,sha256=EpVb50CsEUWpn70gkjBa-hI1mr5_VubHTERsofgE-Lw
|
|
143
143
|
omlish/dataclasses/reflection.py,sha256=6BD2FUiOEtpi_2JREWyVzemjbBJdBMUm8XxQ9SVIKGs,2799
|
144
144
|
omlish/dataclasses/specs.py,sha256=VOY2uCjxLhemBuLd1VXz5KJXmZ48NL3sMJxzOhXmau8,6191
|
145
145
|
omlish/dataclasses/impl/__init__.py,sha256=47DEQpj8HBSa-_TImW-5JCeuQeRkm5NMpJWZG3hSuFU,0
|
146
|
-
omlish/dataclasses/impl/configs.py,sha256
|
146
|
+
omlish/dataclasses/impl/configs.py,sha256=-cioTvHsJ2F-lVNF_Hh-p7vh4y2H0gCjSRVHVzk8yKo,1354
|
147
147
|
omlish/dataclasses/impl/utils.py,sha256=jAD6IIILo70aD_s60CaqRU2YvpZxBKy4K5EG-MTiqVo,1871
|
148
148
|
omlish/dataclasses/impl/api/__init__.py,sha256=k5iS9QOwf_f4iOfGffYhnqDOcmEIwEUUTp00u11kIPM,455
|
149
149
|
omlish/dataclasses/impl/api/classes/__init__.py,sha256=47DEQpj8HBSa-_TImW-5JCeuQeRkm5NMpJWZG3hSuFU,0
|
150
150
|
omlish/dataclasses/impl/api/classes/conversion.py,sha256=T1I-aZKui2tv8rknuw9yCvGQLTrFnzTuHDFoezhE0ko,908
|
151
151
|
omlish/dataclasses/impl/api/classes/decorator.py,sha256=LqkAjNFpUeLThnnkzt1tIYKtIf8maDCkjrZzSbABZbg,4067
|
152
|
-
omlish/dataclasses/impl/api/classes/make.py,sha256=
|
152
|
+
omlish/dataclasses/impl/api/classes/make.py,sha256=cRGPRfUQpW2YOHSDFE59-9qOzvWWrZ-4liq1T1U_1fg,5230
|
153
153
|
omlish/dataclasses/impl/api/classes/metadata.py,sha256=sMZgtoZaybfCoBKOVj7hKc-xqfU2Lca9WFrqg8UAAsE,2773
|
154
154
|
omlish/dataclasses/impl/api/classes/params.py,sha256=cJAMxLHgW6xyKURlCnDQpA-TYfOgWpVBCavie-IZTOM,2000
|
155
155
|
omlish/dataclasses/impl/api/fields/__init__.py,sha256=47DEQpj8HBSa-_TImW-5JCeuQeRkm5NMpJWZG3hSuFU,0
|
@@ -358,7 +358,6 @@ omlish/http/coro/server/fdio.py,sha256=qZE4g5y4XESsTObSKyVggI-yzig57gSGJb4Z0rcHv
|
|
358
358
|
omlish/http/coro/server/server.py,sha256=5gvueSCUzqBqQRf0GJ6wGroD9DiWxQNi6N17MlEtBLU,18660
|
359
359
|
omlish/http/coro/server/simple.py,sha256=j1RZ3niKrgGM2qFnjdYWn_eniZzay5j49Ca4L3u8vO4,3296
|
360
360
|
omlish/http/coro/server/sockets.py,sha256=24gU6wpIZuzYWKQD8UsHyYfTZlbcUFvkqXq5KVgWpQo,2261
|
361
|
-
omlish/inject/.dataclasses.json,sha256=wXWUy_IR8AolAa2RQnqn_mo2QnmVcvUJmayIykdVl0I,22
|
362
361
|
omlish/inject/__init__.py,sha256=Ou6_wAovmxOpbdhGKsV8GbYRH0_S_h0XQSBDPeYpP0g,1978
|
363
362
|
omlish/inject/binder.py,sha256=woOK7I5fk4K4kDF684Ia003jE_lviGQXacNKAmXqx5M,5114
|
364
363
|
omlish/inject/bindings.py,sha256=PlvOnUREjvc6F8nOJdzl1k9SAf80icRB4qWFqDop87M,536
|
@@ -490,7 +489,7 @@ omlish/lite/json.py,sha256=m0Ce9eqUZG23-H7-oOp8n1sf4fzno5vtK4AK_4Vc-Mg,706
|
|
490
489
|
omlish/lite/logs.py,sha256=CWFG0NKGhqNeEgryF5atN2gkPYbUdTINEw_s1phbINM,51
|
491
490
|
omlish/lite/marshal.py,sha256=K_wnZwfC8cftGILyE3RlmzQEYuZOfzkMLKey41zuwtM,20296
|
492
491
|
omlish/lite/maybes.py,sha256=0p_fzb6yiOjEpvMKaQ53Q6CH1VPW1or7v7Lt1JIKcgM,4359
|
493
|
-
omlish/lite/maysyncs.py,sha256
|
492
|
+
omlish/lite/maysyncs.py,sha256=9_u3sS2VacmfffBjbUYiu5eYG2XJ2lCIpYewwbmvPDc,14391
|
494
493
|
omlish/lite/pycharm.py,sha256=FRHGcCDo42UzZXqNwW_DkhI-6kb_CmJKPiQ8F6mYkLA,1174
|
495
494
|
omlish/lite/reflect.py,sha256=gI-Qlws9V-jND7kvCQFaIhBFrndVpDsikTQ7C6U2z3w,2434
|
496
495
|
omlish/lite/reprs.py,sha256=2Bc7ukhKvYNTKmxPIuv9glZIph13C37y_W4fg9pBnu8,2006
|
@@ -518,55 +517,64 @@ omlish/logs/standard.py,sha256=w0jS824YDvlzrGgAxKiPk9RoZ5V1b0ADiFsBEpKLuLY,3152
|
|
518
517
|
omlish/logs/timing.py,sha256=qsQ3DB6swts1pxrFlmLWQzhH-3nzDrq1MUu7PxjjUyU,1519
|
519
518
|
omlish/logs/utils.py,sha256=OkFWf1exmWImmT7BaSiIC7c0Fk9tAis-PRqo8H4ny3c,398
|
520
519
|
omlish/manifests/__init__.py,sha256=47DEQpj8HBSa-_TImW-5JCeuQeRkm5NMpJWZG3hSuFU,0
|
521
|
-
omlish/manifests/base.py,sha256=
|
520
|
+
omlish/manifests/base.py,sha256=wW-De-pU3cef-0vGsgo-ypftDwc3tCBxhRAzPtrdark,918
|
522
521
|
omlish/manifests/globals.py,sha256=kVqQ-fT4kc7xWzLHoI731GviitFPv2v2yqw-p7t7Exs,2628
|
523
522
|
omlish/manifests/loading.py,sha256=Br1OyI23pis_FfYju9xoacms608lzB1Zh_IqdVw_7vg,17201
|
524
523
|
omlish/manifests/static.py,sha256=9BaPBLkuzxHmg5A-5k9BjjBFINCdmFOIu06dMFgCfz4,497
|
525
524
|
omlish/manifests/types.py,sha256=NeOGuIVrcbqjCDbQ3MnCxxHAgHnw0CkWJsBzo230PWE,453
|
526
|
-
omlish/marshal
|
527
|
-
omlish/marshal/
|
528
|
-
omlish/marshal/
|
529
|
-
omlish/marshal/
|
530
|
-
omlish/marshal/
|
531
|
-
omlish/marshal/
|
532
|
-
omlish/marshal/
|
533
|
-
omlish/marshal/
|
534
|
-
omlish/marshal/
|
535
|
-
omlish/marshal/
|
536
|
-
omlish/marshal/
|
525
|
+
omlish/marshal/__init__.py,sha256=Y2SKxP4jGU6iCm4hYKYxixu3OBCkcI9B7a6CZad_g34,4678
|
526
|
+
omlish/marshal/globals.py,sha256=iAmTeTrIC-BeLgZob5P3J6U9Ac3vGcd79KnyVZnuf_w,1555
|
527
|
+
omlish/marshal/naming.py,sha256=Mk5YrbES836_KflNNRoc5Ajd96iMYLQIMERKx1KpT4g,865
|
528
|
+
omlish/marshal/standard.py,sha256=k6QAGFNjiypxjI90snJcoGqNoTQ8ZkTzrW7m-Yrn2wk,4906
|
529
|
+
omlish/marshal/base/__init__.py,sha256=47DEQpj8HBSa-_TImW-5JCeuQeRkm5NMpJWZG3hSuFU,0
|
530
|
+
omlish/marshal/base/contexts.py,sha256=e8ivHzDdzwxTDq232PUOemnmcTuGCxuYYurqVcwFC8U,2064
|
531
|
+
omlish/marshal/base/errors.py,sha256=jmN3vl_U_hB6L0wAvuO7ORG27vXF7KEUk-1TxxK2mYA,308
|
532
|
+
omlish/marshal/base/options.py,sha256=OoDErPmI0kswnqAtr7QYndlPYhIqIDarx833tKFT2R4,23
|
533
|
+
omlish/marshal/base/overrides.py,sha256=Nn7xlTHnm8UClvmDu4dk9gMNxWi-ZZ03v9FAOQ0r3qc,722
|
534
|
+
omlish/marshal/base/registries.py,sha256=j9xAK-nuE7R6TXWU6FTR97p2Z41F8-rW0c3DPs0iMQE,2334
|
535
|
+
omlish/marshal/base/types.py,sha256=bg2EXSyZYI1ETCfcAzm4Ltv9AiqnMFiDWGIF50_CgpA,1514
|
536
|
+
omlish/marshal/base/values.py,sha256=QF6OateG5kjRPHYza08wscThhg20oryf-aVQrxjfkC0,212
|
537
537
|
omlish/marshal/composite/__init__.py,sha256=47DEQpj8HBSa-_TImW-5JCeuQeRkm5NMpJWZG3hSuFU,0
|
538
|
-
omlish/marshal/composite/iterables.py,sha256=
|
539
|
-
omlish/marshal/composite/literals.py,sha256=
|
540
|
-
omlish/marshal/composite/mappings.py,sha256=
|
541
|
-
omlish/marshal/composite/maybes.py,sha256=
|
542
|
-
omlish/marshal/composite/newtypes.py,sha256=
|
543
|
-
omlish/marshal/composite/optionals.py,sha256=
|
544
|
-
omlish/marshal/composite/special.py,sha256=
|
545
|
-
omlish/marshal/composite/wrapped.py,sha256=
|
538
|
+
omlish/marshal/composite/iterables.py,sha256=2VU3sh5TBKMVF1cWPXhDeuELPQzrAYovmTNHzoFLeS4,2704
|
539
|
+
omlish/marshal/composite/literals.py,sha256=pXngZKSaZ4f-ANr43AsU1ob_Rj7KTjZRQQvNjdMCKRc,1696
|
540
|
+
omlish/marshal/composite/mappings.py,sha256=hOQ-_UZCFTqW_y70a4hNJsNsr2J9y3MYIePEymZMj94,2861
|
541
|
+
omlish/marshal/composite/maybes.py,sha256=Qy0-bxW3fC3jVvDzszNQogGwGSAwmPt61nTXP06l6cY,2273
|
542
|
+
omlish/marshal/composite/newtypes.py,sha256=KiDsuBtF7jbWk7A3wy2LAZvuaG7KJzYNF1Y0jKSOZWU,932
|
543
|
+
omlish/marshal/composite/optionals.py,sha256=A-0GUaTL5585mxdNO_FcpnP2KFmJ64MkAwMukqng2ls,1596
|
544
|
+
omlish/marshal/composite/special.py,sha256=325cEkzGw2XoMq6W0CvvO7n2Dx9I3mDsjdlZ2tN4Bfs,1402
|
545
|
+
omlish/marshal/composite/wrapped.py,sha256=xC8k21wJOpSkpAn7794hBTPBRw-HPC9sOF3WRlUh_BA,785
|
546
|
+
omlish/marshal/factories/__init__.py,sha256=47DEQpj8HBSa-_TImW-5JCeuQeRkm5NMpJWZG3hSuFU,0
|
547
|
+
omlish/marshal/factories/func.py,sha256=6F5Ud9GdplQNR1CEwkT2n5SRx4glmgcNZBBPTc9QmdM,727
|
548
|
+
omlish/marshal/factories/match.py,sha256=MALwOa2FyD4PpHfG-iLBdn8-3FMx_wI123RD4xfd79w,893
|
549
|
+
omlish/marshal/factories/multi.py,sha256=0chkODC3AGz4wxDq82V69clGRtk1Wjc6O_yOGZxn6bQ,1479
|
550
|
+
omlish/marshal/factories/recursive.py,sha256=_U3yLiPI0R1qT5J19It2pFFTFVr-O2rXTBjcK-zPpOY,3143
|
551
|
+
omlish/marshal/factories/simple.py,sha256=6ghaGPsj2rBeh85sV84_v3kEq3pZ8hyVEwd4UMoNfBI,576
|
552
|
+
omlish/marshal/factories/typecache.py,sha256=BxlC32msLhBuiyJ3OdOe_kIl6ncKe_0SZwXWwCulLCk,2517
|
553
|
+
omlish/marshal/factories/typemap.py,sha256=CxScQbRw3VwILGhf38v2yOiof45YJ9p2LQhZ37SHNj8,1606
|
546
554
|
omlish/marshal/objects/__init__.py,sha256=F4wej8L_tedC8ETYxAnmKfdPR9TjsqIus9Z3nZofYuc,182
|
547
|
-
omlish/marshal/objects/dataclasses.py,sha256=
|
555
|
+
omlish/marshal/objects/dataclasses.py,sha256=6G1vmhFhJ3LsHxDFDxvSH7q-pZm9_gY4QgNVtebiUzY,9015
|
548
556
|
omlish/marshal/objects/helpers.py,sha256=hj5I1pILt3QFSVkYJNrSO3wiCaalAopEYWPL17Ip4zs,1102
|
549
|
-
omlish/marshal/objects/marshal.py,sha256=
|
550
|
-
omlish/marshal/objects/metadata.py,sha256=
|
551
|
-
omlish/marshal/objects/namedtuples.py,sha256=
|
552
|
-
omlish/marshal/objects/unmarshal.py,sha256=
|
557
|
+
omlish/marshal/objects/marshal.py,sha256=9Z19aasMNsDn8KBHmUT-XnoP23c5r50CYo0z4IBfUf0,2680
|
558
|
+
omlish/marshal/objects/metadata.py,sha256=maGqyQl0GE9xWK17DQjXxhZWRh3nRwH4fgklrA8XVQI,3392
|
559
|
+
omlish/marshal/objects/namedtuples.py,sha256=uzOZuEt2IrWtk7uyo13xaWEmFhxRQ3aKAzom05qUfBA,2928
|
560
|
+
omlish/marshal/objects/unmarshal.py,sha256=izhtSwqSrlWSOL5uZS3naPxnfq3rhv25uUPN7_rpO08,3664
|
553
561
|
omlish/marshal/polymorphism/__init__.py,sha256=e2UTrSL0qp7w_1vkdxDWd7sXlWhep2KPV49-BB64ma8,130
|
554
|
-
omlish/marshal/polymorphism/marshal.py,sha256=
|
555
|
-
omlish/marshal/polymorphism/metadata.py,sha256=
|
556
|
-
omlish/marshal/polymorphism/standard.py,sha256=
|
557
|
-
omlish/marshal/polymorphism/unions.py,sha256=
|
558
|
-
omlish/marshal/polymorphism/unmarshal.py,sha256=
|
562
|
+
omlish/marshal/polymorphism/marshal.py,sha256=ZnayCbRj3451U4py1-9dU99PHvjQuQk-ZQDGgzQjF4U,2292
|
563
|
+
omlish/marshal/polymorphism/metadata.py,sha256=5RmOlmndn1T66FaxKwzt_UOM6vAQ2hfPT04o--BJH8c,3342
|
564
|
+
omlish/marshal/polymorphism/standard.py,sha256=8Gkdss9632RQ4ff1GZaEdI-T_UzAiW-9nLKQawKoa9s,615
|
565
|
+
omlish/marshal/polymorphism/unions.py,sha256=AWNyzETvgADOjPmXsHloXgbvjZ4GX9b_iNmD6ZdXsT0,4445
|
566
|
+
omlish/marshal/polymorphism/unmarshal.py,sha256=8bLeI9UxUluoIqkRJSJIbdCsKkXjx3myYe9uWs16QjY,2483
|
559
567
|
omlish/marshal/singular/__init__.py,sha256=47DEQpj8HBSa-_TImW-5JCeuQeRkm5NMpJWZG3hSuFU,0
|
560
|
-
omlish/marshal/singular/base64.py,sha256=
|
561
|
-
omlish/marshal/singular/datetimes.py,sha256=
|
562
|
-
omlish/marshal/singular/enums.py,sha256=
|
563
|
-
omlish/marshal/singular/numbers.py,sha256=
|
564
|
-
omlish/marshal/singular/primitives.py,sha256=
|
565
|
-
omlish/marshal/singular/uuids.py,sha256=
|
568
|
+
omlish/marshal/singular/base64.py,sha256=OZ3Ydwy64S0M-xlktYy5MagzyzTOVYayUXblq8ZK-AE,1164
|
569
|
+
omlish/marshal/singular/datetimes.py,sha256=nzOf8LRwAB08X80N_NmWuE3rOrYG80ZgIaZO3549WnE,3784
|
570
|
+
omlish/marshal/singular/enums.py,sha256=jffB2uIfQWs9cwpDxYUatBU0OkujkjA64oqh7ecSG7E,1569
|
571
|
+
omlish/marshal/singular/numbers.py,sha256=32_lSiaQc796u0WsPyiYORiJoaI5qh2IZxiIfF8n360,1746
|
572
|
+
omlish/marshal/singular/primitives.py,sha256=T1mRNMin7OOBjsBkAh1xVbHa-VBmtMfL55mhCfiruIg,1360
|
573
|
+
omlish/marshal/singular/uuids.py,sha256=J6Swxzm0rFvAMCmErJb4WpSPmnQyts7qOqy43Y1BugI,984
|
566
574
|
omlish/marshal/trivial/__init__.py,sha256=47DEQpj8HBSa-_TImW-5JCeuQeRkm5NMpJWZG3hSuFU,0
|
567
|
-
omlish/marshal/trivial/any.py,sha256=
|
568
|
-
omlish/marshal/trivial/forbidden.py,sha256=
|
569
|
-
omlish/marshal/trivial/nop.py,sha256=
|
575
|
+
omlish/marshal/trivial/any.py,sha256=XaqSW0fyq2FVE4PQ4IG0UaXr59kRVGccgZDlsNHrd_Q,852
|
576
|
+
omlish/marshal/trivial/forbidden.py,sha256=fkvyBViUjrpfB6JJu47k-yxAvLkJw7JSZqSP-Abr_04,1092
|
577
|
+
omlish/marshal/trivial/nop.py,sha256=PDXT0B9RR-ghG6ExuK9BH2J-nHEnoTYGNdVaNAyRzSk,506
|
570
578
|
omlish/math/__init__.py,sha256=0N2LtQYsAit7wXDKa-Dj6XPkVzEviP-tB2BNQoMhzLI,1185
|
571
579
|
omlish/math/bits.py,sha256=pcTuWxNXXfG-CtTITNNbW3YConAkCeU8PLNcglCc43E,533
|
572
580
|
omlish/math/c.py,sha256=JUHHZfVUUE4sb-6_LxJksbcLOLi9za0LdPs4dky5Ba8,308
|
@@ -909,9 +917,9 @@ omlish/typedvalues/marshal.py,sha256=AtBz7Jq-BfW8vwM7HSxSpR85JAXmxK2T0xDblmm1HI0
|
|
909
917
|
omlish/typedvalues/of_.py,sha256=UXkxSj504WI2UrFlqdZJbu2hyDwBhL7XVrc2qdR02GQ,1309
|
910
918
|
omlish/typedvalues/reflect.py,sha256=PAvKW6T4cW7u--iX80w3HWwZUS3SmIZ2_lQjT65uAyk,1026
|
911
919
|
omlish/typedvalues/values.py,sha256=ym46I-q2QJ_6l4UlERqv3yj87R-kp8nCKMRph0xQ3UA,1307
|
912
|
-
omlish-0.0.0.
|
913
|
-
omlish-0.0.0.
|
914
|
-
omlish-0.0.0.
|
915
|
-
omlish-0.0.0.
|
916
|
-
omlish-0.0.0.
|
917
|
-
omlish-0.0.0.
|
920
|
+
omlish-0.0.0.dev415.dist-info/licenses/LICENSE,sha256=B_hVtavaA8zCYDW99DYdcpDLKz1n3BBRjZrcbv8uG8c,1451
|
921
|
+
omlish-0.0.0.dev415.dist-info/METADATA,sha256=3uvdL3aYGoWbgHsgKXszYQlPn4OF0QZhTEQ322XQdk8,18881
|
922
|
+
omlish-0.0.0.dev415.dist-info/WHEEL,sha256=_zCd3N1l69ArxyTb8rzEoP9TpbYXkqRFSNOD5OuxnTs,91
|
923
|
+
omlish-0.0.0.dev415.dist-info/entry_points.txt,sha256=Lt84WvRZJskWCAS7xnQGZIeVWksprtUHj0llrvVmod8,35
|
924
|
+
omlish-0.0.0.dev415.dist-info/top_level.txt,sha256=pePsKdLu7DvtUiecdYXJ78iO80uDNmBlqe-8hOzOmfs,7
|
925
|
+
omlish-0.0.0.dev415.dist-info/RECORD,,
|
omlish/inject/.dataclasses.json
DELETED
omlish/marshal/.dataclasses.json
DELETED
omlish/marshal/base.py
DELETED
@@ -1,472 +0,0 @@
|
|
1
|
-
"""
|
2
|
-
TODO:
|
3
|
-
- redacted
|
4
|
-
- strongly typed MarshalerFactory base class?
|
5
|
-
- strongly typed Composite/Cached Marshaler/Unmarshaler factories - footgun
|
6
|
-
- streaming? Start/EndObject, etc..
|
7
|
-
- lang.Marker - class name, handle type[Foo]
|
8
|
-
- can't disambiguate from str - can't coexist in bare union
|
9
|
-
- factories being free MatchFns does more harm than good - in practice these are such big guns you want to write a
|
10
|
-
class body if only ceremonially
|
11
|
-
|
12
|
-
See:
|
13
|
-
- https://github.com/python-attrs/cattrs
|
14
|
-
- https://github.com/jcrist/msgspec
|
15
|
-
- https://github.com/Fatal1ty/mashumaro
|
16
|
-
- https://github.com/Kotlin/kotlinx.serialization/blob/master/docs/serializers.md#custom-serializers
|
17
|
-
|
18
|
-
cattrs:
|
19
|
-
*
|
20
|
-
|
21
|
-
Jackson:
|
22
|
-
- USE_ANNOTATIONS
|
23
|
-
- AUTO_DETECT_CREATORS
|
24
|
-
- AUTO_DETECT_FIELDS
|
25
|
-
- AUTO_DETECT_GETTERS
|
26
|
-
- AUTO_DETECT_IS_GETTERS
|
27
|
-
- AUTO_DETECT_SETTERS
|
28
|
-
- REQUIRE_SETTERS_FOR_GETTERS
|
29
|
-
- USE_GETTERS_AS_SETTERS
|
30
|
-
- INFER_CREATOR_FROM_CONSTRUCTOR_PROPERTIES
|
31
|
-
- INFER_PROPERTY_MUTATORS
|
32
|
-
- ALLOW_FINAL_FIELDS_AS_MUTATORS
|
33
|
-
- ALLOW_VOID_VALUED_PROPERTIES
|
34
|
-
- CAN_OVERRIDE_ACCESS_MODIFIERS
|
35
|
-
- OVERRIDE_PUBLIC_ACCESS_MODIFIERS
|
36
|
-
- SORT_PROPERTIES_ALPHABETICALLY
|
37
|
-
- USE_WRAPPER_NAME_AS_PROPERTY_NAME
|
38
|
-
- ACCEPT_CASE_INSENSITIVE_ENUMS
|
39
|
-
- ACCEPT_CASE_INSENSITIVE_PROPERTIES
|
40
|
-
- ACCEPT_CASE_INSENSITIVE_VALUES
|
41
|
-
- ALLOW_EXPLICIT_PROPERTY_RENAMING
|
42
|
-
- USE_STD_BEAN_NAMING
|
43
|
-
- ALLOW_COERCION_OF_SCALARS
|
44
|
-
- DEFAULT_VIEW_INCLUSION
|
45
|
-
- IGNORE_DUPLICATE_MODULE_REGISTRATIONS
|
46
|
-
- IGNORE_MERGE_FOR_UNMERGEABLE
|
47
|
-
- USE_BASE_TYPE_AS_DEFAULT_IMPL
|
48
|
-
- USE_STATIC_TYPING
|
49
|
-
- BLOCK_UNSAFE_POLYMORPHIC_BASE_TYPES
|
50
|
-
|
51
|
-
https://github.com/yukinarit/pyserde
|
52
|
-
- datatypes
|
53
|
-
- typing.Union
|
54
|
-
- typing.NewType for primitive types
|
55
|
-
- typing.Any
|
56
|
-
- typing.Literal
|
57
|
-
- typing.Generic
|
58
|
-
- typing.ClassVar
|
59
|
-
- dataclasses.InitVar
|
60
|
-
- Enum and IntEnum
|
61
|
-
- pathlib.Path
|
62
|
-
- decimal.Decimal
|
63
|
-
- uuid.UUID
|
64
|
-
- datetime.date, datetime.time, datetime.datetime
|
65
|
-
- ipaddress
|
66
|
-
- numpy types
|
67
|
-
- Class Attributes
|
68
|
-
- Field Attributes
|
69
|
-
- Decorators
|
70
|
-
- Type Check
|
71
|
-
- Union Representation
|
72
|
-
- Forward reference
|
73
|
-
- PEP563 Postponed Evaluation of Annotations
|
74
|
-
- PEP585 Type Hinting Generics In Standard Collections
|
75
|
-
- PEP604 Allow writing union types as X | Y
|
76
|
-
- PEP681 Data Class Transform
|
77
|
-
- Case Conversion
|
78
|
-
- Rename
|
79
|
-
- Alias
|
80
|
-
- Skip (de)serialization (skip, skip_if, skip_if_false, skip_if_default)
|
81
|
-
- Custom field (de)serializer
|
82
|
-
- Custom class (de)serializer
|
83
|
-
- Custom global (de)serializer
|
84
|
-
- Flatten
|
85
|
-
"""
|
86
|
-
import abc
|
87
|
-
import typing as ta
|
88
|
-
|
89
|
-
from .. import check
|
90
|
-
from .. import collections as col
|
91
|
-
from .. import dataclasses as dc
|
92
|
-
from .. import lang
|
93
|
-
from .. import reflect as rfl
|
94
|
-
from ..funcs import match as mfs
|
95
|
-
from .errors import UnhandledTypeError
|
96
|
-
from .factories import RecursiveTypeFactory
|
97
|
-
from .factories import TypeCacheFactory
|
98
|
-
from .factories import TypeMapFactory
|
99
|
-
from .proxy import _Proxy
|
100
|
-
from .registries import Registry
|
101
|
-
from .registries import RegistryItem
|
102
|
-
from .values import Value
|
103
|
-
|
104
|
-
|
105
|
-
T = ta.TypeVar('T')
|
106
|
-
|
107
|
-
|
108
|
-
##
|
109
|
-
|
110
|
-
|
111
|
-
class Marshaler(lang.Abstract):
|
112
|
-
@abc.abstractmethod
|
113
|
-
def marshal(self, ctx: 'MarshalContext', o: ta.Any) -> Value:
|
114
|
-
raise NotImplementedError
|
115
|
-
|
116
|
-
|
117
|
-
class Unmarshaler(lang.Abstract):
|
118
|
-
@abc.abstractmethod
|
119
|
-
def unmarshal(self, ctx: 'UnmarshalContext', v: Value) -> ta.Any:
|
120
|
-
raise NotImplementedError
|
121
|
-
|
122
|
-
|
123
|
-
##
|
124
|
-
|
125
|
-
|
126
|
-
MarshalerMaker: ta.TypeAlias = mfs.MatchFn[['MarshalContext', rfl.Type], Marshaler]
|
127
|
-
UnmarshalerMaker: ta.TypeAlias = mfs.MatchFn[['UnmarshalContext', rfl.Type], Unmarshaler]
|
128
|
-
|
129
|
-
|
130
|
-
class MarshalerFactory(lang.Abstract):
|
131
|
-
@property
|
132
|
-
@abc.abstractmethod
|
133
|
-
def make_marshaler(self) -> MarshalerMaker:
|
134
|
-
raise NotImplementedError
|
135
|
-
|
136
|
-
|
137
|
-
class UnmarshalerFactory(lang.Abstract):
|
138
|
-
@property
|
139
|
-
@abc.abstractmethod
|
140
|
-
def make_unmarshaler(self) -> UnmarshalerMaker:
|
141
|
-
raise NotImplementedError
|
142
|
-
|
143
|
-
|
144
|
-
##
|
145
|
-
|
146
|
-
|
147
|
-
@dc.dataclass(frozen=True)
|
148
|
-
class MarshalerFactory_(MarshalerFactory): # noqa
|
149
|
-
fn: MarshalerMaker
|
150
|
-
|
151
|
-
@property
|
152
|
-
def make_marshaler(self) -> MarshalerMaker:
|
153
|
-
return self.fn
|
154
|
-
|
155
|
-
|
156
|
-
@dc.dataclass(frozen=True)
|
157
|
-
class UnmarshalerFactory_(UnmarshalerFactory): # noqa
|
158
|
-
fn: UnmarshalerMaker
|
159
|
-
|
160
|
-
@property
|
161
|
-
def make_unmarshaler(self) -> UnmarshalerMaker:
|
162
|
-
return self.fn
|
163
|
-
|
164
|
-
|
165
|
-
##
|
166
|
-
|
167
|
-
|
168
|
-
class SimpleMarshalerFactory(
|
169
|
-
MarshalerFactory,
|
170
|
-
MarshalerMaker,
|
171
|
-
lang.Abstract,
|
172
|
-
):
|
173
|
-
@property
|
174
|
-
def make_marshaler(self) -> MarshalerMaker:
|
175
|
-
return self
|
176
|
-
|
177
|
-
|
178
|
-
class SimpleUnmarshalerFactory(
|
179
|
-
UnmarshalerFactory,
|
180
|
-
UnmarshalerMaker,
|
181
|
-
lang.Abstract,
|
182
|
-
):
|
183
|
-
@property
|
184
|
-
def make_unmarshaler(self) -> UnmarshalerMaker:
|
185
|
-
return self
|
186
|
-
|
187
|
-
|
188
|
-
##
|
189
|
-
|
190
|
-
|
191
|
-
class MarshalerFactoryMatchClass(
|
192
|
-
MarshalerFactory,
|
193
|
-
mfs.MatchFnClass[['MarshalContext', rfl.Type], Marshaler],
|
194
|
-
lang.Abstract,
|
195
|
-
):
|
196
|
-
@property
|
197
|
-
def make_marshaler(self) -> MarshalerMaker:
|
198
|
-
return self
|
199
|
-
|
200
|
-
|
201
|
-
class UnmarshalerFactoryMatchClass(
|
202
|
-
UnmarshalerFactory,
|
203
|
-
mfs.MatchFnClass[['UnmarshalContext', rfl.Type], Unmarshaler],
|
204
|
-
lang.Abstract,
|
205
|
-
):
|
206
|
-
@property
|
207
|
-
def make_unmarshaler(self) -> UnmarshalerMaker:
|
208
|
-
return self
|
209
|
-
|
210
|
-
|
211
|
-
##
|
212
|
-
|
213
|
-
|
214
|
-
class MultiMarshalerFactory(MarshalerFactory):
|
215
|
-
def __init__(
|
216
|
-
self,
|
217
|
-
fs: ta.Iterable[MarshalerFactory],
|
218
|
-
*,
|
219
|
-
strict: bool = False,
|
220
|
-
) -> None:
|
221
|
-
super().__init__()
|
222
|
-
|
223
|
-
self._fs = list(fs)
|
224
|
-
self._mmf: mfs.MultiMatchFn[[MarshalContext, rfl.Type], Marshaler] = mfs.MultiMatchFn(
|
225
|
-
[f.make_marshaler for f in self._fs],
|
226
|
-
strict=strict,
|
227
|
-
)
|
228
|
-
|
229
|
-
@property
|
230
|
-
def make_marshaler(self) -> MarshalerMaker:
|
231
|
-
return self._mmf
|
232
|
-
|
233
|
-
|
234
|
-
class MultiUnmarshalerFactory(UnmarshalerFactory):
|
235
|
-
def __init__(
|
236
|
-
self,
|
237
|
-
fs: ta.Iterable[UnmarshalerFactory],
|
238
|
-
*,
|
239
|
-
strict: bool = False,
|
240
|
-
) -> None:
|
241
|
-
super().__init__()
|
242
|
-
|
243
|
-
self._fs = list(fs)
|
244
|
-
self._mmf: mfs.MultiMatchFn[[UnmarshalContext, rfl.Type], Unmarshaler] = mfs.MultiMatchFn(
|
245
|
-
[f.make_unmarshaler for f in self._fs],
|
246
|
-
strict=strict,
|
247
|
-
)
|
248
|
-
|
249
|
-
@property
|
250
|
-
def make_unmarshaler(self) -> UnmarshalerMaker:
|
251
|
-
return self._mmf
|
252
|
-
|
253
|
-
|
254
|
-
##
|
255
|
-
|
256
|
-
|
257
|
-
@dc.dataclass(frozen=True)
|
258
|
-
class TypeMapMarshalerFactory(
|
259
|
-
TypeMapFactory['MarshalContext', Marshaler],
|
260
|
-
MarshalerFactory,
|
261
|
-
):
|
262
|
-
@property
|
263
|
-
def make_marshaler(self) -> MarshalerMaker:
|
264
|
-
return self
|
265
|
-
|
266
|
-
|
267
|
-
@dc.dataclass(frozen=True)
|
268
|
-
class TypeMapUnmarshalerFactory(
|
269
|
-
TypeMapFactory['UnmarshalContext', Unmarshaler],
|
270
|
-
UnmarshalerFactory,
|
271
|
-
):
|
272
|
-
@property
|
273
|
-
def make_unmarshaler(self) -> UnmarshalerMaker:
|
274
|
-
return self
|
275
|
-
|
276
|
-
|
277
|
-
# class TypeMapMarshalerFactory(MarshalerFactory):
|
278
|
-
# def __init__(self, m: ta.Mapping[rfl.Type, MarshalerFactory]) -> None:
|
279
|
-
# super().__init__()
|
280
|
-
#
|
281
|
-
# self._m = m
|
282
|
-
# self._tmf: TypeMapFactory['MarshalContext', Marshaler] = TypeMapFactory({
|
283
|
-
# t: f.make_marshaler
|
284
|
-
# for t, f in m.items()
|
285
|
-
# })
|
286
|
-
#
|
287
|
-
# @property
|
288
|
-
# def make_marshaler(self) -> MarshalerMaker:
|
289
|
-
# return self._tmf
|
290
|
-
|
291
|
-
|
292
|
-
# class TypeMapUnmarshalerFactory(UnmarshalerFactory):
|
293
|
-
# def __init__(self, m: ta.Mapping[rfl.Type, UnmarshalerFactory]) -> None:
|
294
|
-
# super().__init__()
|
295
|
-
#
|
296
|
-
# self._m = m
|
297
|
-
# self._tmf: TypeMapFactory[UnmarshalContext, Unmarshaler] = TypeMapFactory({
|
298
|
-
# t: f.make_unmarshaler
|
299
|
-
# for t, f in m.items()
|
300
|
-
# })
|
301
|
-
#
|
302
|
-
# @property
|
303
|
-
# def make_unmarshaler(self) -> UnmarshalerMaker:
|
304
|
-
# return self._tmf
|
305
|
-
|
306
|
-
|
307
|
-
##
|
308
|
-
|
309
|
-
|
310
|
-
class TypeCacheMarshalerFactory(MarshalerFactory):
|
311
|
-
def __init__(self, f: MarshalerFactory) -> None:
|
312
|
-
super().__init__()
|
313
|
-
|
314
|
-
self._f = f
|
315
|
-
self._tcf: TypeCacheFactory[MarshalContext, Marshaler] = TypeCacheFactory(f.make_marshaler)
|
316
|
-
|
317
|
-
@property
|
318
|
-
def make_marshaler(self) -> MarshalerMaker:
|
319
|
-
return self._tcf
|
320
|
-
|
321
|
-
|
322
|
-
class TypeCacheUnmarshalerFactory(UnmarshalerFactory):
|
323
|
-
def __init__(self, f: UnmarshalerFactory) -> None:
|
324
|
-
super().__init__()
|
325
|
-
|
326
|
-
self._f = f
|
327
|
-
self._tcf: TypeCacheFactory[UnmarshalContext, Unmarshaler] = TypeCacheFactory(f.make_unmarshaler)
|
328
|
-
|
329
|
-
@property
|
330
|
-
def make_unmarshaler(self) -> UnmarshalerMaker:
|
331
|
-
return self._tcf
|
332
|
-
|
333
|
-
|
334
|
-
##
|
335
|
-
|
336
|
-
|
337
|
-
@dc.dataclass(frozen=True)
|
338
|
-
class FuncMarshaler(Marshaler, lang.Final):
|
339
|
-
fn: ta.Callable[['MarshalContext', ta.Any], Value]
|
340
|
-
|
341
|
-
def marshal(self, ctx: 'MarshalContext', o: ta.Any) -> Value:
|
342
|
-
return self.fn(ctx, o)
|
343
|
-
|
344
|
-
|
345
|
-
@dc.dataclass(frozen=True)
|
346
|
-
class FuncUnmarshaler(Unmarshaler, lang.Final):
|
347
|
-
fn: ta.Callable[['UnmarshalContext', Value], ta.Any]
|
348
|
-
|
349
|
-
def unmarshal(self, ctx: 'UnmarshalContext', v: Value) -> ta.Any:
|
350
|
-
return self.fn(ctx, v)
|
351
|
-
|
352
|
-
|
353
|
-
##
|
354
|
-
|
355
|
-
|
356
|
-
class Option:
|
357
|
-
pass
|
358
|
-
|
359
|
-
|
360
|
-
##
|
361
|
-
|
362
|
-
|
363
|
-
@dc.dataclass(frozen=True)
|
364
|
-
class BaseContext(lang.Abstract):
|
365
|
-
registry: Registry
|
366
|
-
options: col.TypeMap[Option] = col.TypeMap()
|
367
|
-
|
368
|
-
def _reflect(self, o: ta.Any) -> rfl.Type:
|
369
|
-
def override(o):
|
370
|
-
if (ovr := self.registry.get_of(o, ReflectOverride)):
|
371
|
-
return ovr[-1].rty
|
372
|
-
return None
|
373
|
-
|
374
|
-
return rfl.Reflector(override=override).type(o)
|
375
|
-
|
376
|
-
|
377
|
-
@dc.dataclass(frozen=True)
|
378
|
-
class MarshalContext(BaseContext, lang.Final):
|
379
|
-
factory: MarshalerFactory | None = None
|
380
|
-
|
381
|
-
def make(self, o: ta.Any) -> Marshaler:
|
382
|
-
rty = self._reflect(o)
|
383
|
-
try:
|
384
|
-
return check.not_none(self.factory).make_marshaler(self, rty)
|
385
|
-
except mfs.MatchGuardError:
|
386
|
-
raise UnhandledTypeError(rty) # noqa
|
387
|
-
|
388
|
-
def marshal(self, obj: ta.Any, ty: ta.Any | None = None) -> Value:
|
389
|
-
return self.make(ty if ty is not None else type(obj)).marshal(self, obj)
|
390
|
-
|
391
|
-
|
392
|
-
@dc.dataclass(frozen=True)
|
393
|
-
class UnmarshalContext(BaseContext, lang.Final):
|
394
|
-
factory: UnmarshalerFactory | None = None
|
395
|
-
|
396
|
-
def make(self, o: ta.Any) -> Unmarshaler:
|
397
|
-
rty = self._reflect(o)
|
398
|
-
try:
|
399
|
-
return check.not_none(self.factory).make_unmarshaler(self, rty)
|
400
|
-
except mfs.MatchGuardError:
|
401
|
-
raise UnhandledTypeError(rty) # noqa
|
402
|
-
|
403
|
-
@ta.overload
|
404
|
-
def unmarshal(self, v: Value, ty: type[T]) -> T:
|
405
|
-
...
|
406
|
-
|
407
|
-
@ta.overload
|
408
|
-
def unmarshal(self, v: Value, ty: ta.Any) -> ta.Any:
|
409
|
-
...
|
410
|
-
|
411
|
-
def unmarshal(self, v, ty):
|
412
|
-
return self.make(ty).unmarshal(self, v)
|
413
|
-
|
414
|
-
|
415
|
-
##
|
416
|
-
|
417
|
-
|
418
|
-
class _ProxyMarshaler(_Proxy[Marshaler], Marshaler):
|
419
|
-
def marshal(self, ctx: MarshalContext, o: ta.Any) -> Value:
|
420
|
-
return self._obj.marshal(ctx, o)
|
421
|
-
|
422
|
-
|
423
|
-
class RecursiveMarshalerFactory(MarshalerFactory, lang.Final):
|
424
|
-
def __init__(self, f: MarshalerFactory) -> None:
|
425
|
-
super().__init__()
|
426
|
-
|
427
|
-
self._f = f
|
428
|
-
self._rtf: RecursiveTypeFactory[MarshalContext, Marshaler] = RecursiveTypeFactory(
|
429
|
-
self._f.make_marshaler, # noqa
|
430
|
-
_ProxyMarshaler._new, # noqa
|
431
|
-
)
|
432
|
-
|
433
|
-
@property
|
434
|
-
def make_marshaler(self) -> MarshalerMaker:
|
435
|
-
return self._rtf
|
436
|
-
|
437
|
-
|
438
|
-
class _ProxyUnmarshaler(_Proxy[Unmarshaler], Unmarshaler):
|
439
|
-
def unmarshal(self, ctx: UnmarshalContext, v: Value) -> ta.Any:
|
440
|
-
return self._obj.unmarshal(ctx, v)
|
441
|
-
|
442
|
-
|
443
|
-
class RecursiveUnmarshalerFactory(UnmarshalerFactory, lang.Final):
|
444
|
-
def __init__(self, f: UnmarshalerFactory) -> None:
|
445
|
-
super().__init__()
|
446
|
-
|
447
|
-
self._f = f
|
448
|
-
self._rtf: RecursiveTypeFactory[UnmarshalContext, Unmarshaler] = RecursiveTypeFactory(
|
449
|
-
self._f.make_unmarshaler, # noqa
|
450
|
-
_ProxyUnmarshaler._new, # noqa
|
451
|
-
)
|
452
|
-
|
453
|
-
@property
|
454
|
-
def make_unmarshaler(self) -> UnmarshalerMaker:
|
455
|
-
return self._rtf
|
456
|
-
|
457
|
-
|
458
|
-
##
|
459
|
-
|
460
|
-
|
461
|
-
@dc.dataclass(frozen=True, kw_only=True)
|
462
|
-
class Override(RegistryItem, lang.Final):
|
463
|
-
marshaler: Marshaler | None = dc.xfield(None, check_type=(Marshaler, None))
|
464
|
-
marshaler_factory: MarshalerFactory | None = None
|
465
|
-
|
466
|
-
unmarshaler: Unmarshaler | None = dc.xfield(None, check_type=(Unmarshaler, None))
|
467
|
-
unmarshaler_factory: UnmarshalerFactory | None = None
|
468
|
-
|
469
|
-
|
470
|
-
@dc.dataclass(frozen=True)
|
471
|
-
class ReflectOverride(RegistryItem, lang.Final):
|
472
|
-
rty: rfl.Type
|