omlish 0.0.0.dev424__py3-none-any.whl → 0.0.0.dev425__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 (96) hide show
  1. omlish/__about__.py +3 -3
  2. omlish/dataclasses/impl/configs.py +2 -1
  3. omlish/formats/json/stream/lexing.py +8 -0
  4. omlish/formats/json/stream/utils.py +3 -0
  5. omlish/formats/json5/streams.py +22 -0
  6. omlish/lang/__init__.py +3 -1
  7. omlish/lang/asyncs.py +12 -0
  8. omlish/lang/functions.py +0 -11
  9. omlish/lang/lazyglobals.py +27 -5
  10. omlish/lang/maysync.py +2 -2
  11. omlish/lifecycles/contextmanagers.py +1 -2
  12. omlish/lifecycles/controller.py +1 -2
  13. omlish/lite/asyncs.py +15 -0
  14. omlish/lite/timing.py +2 -2
  15. omlish/logs/all.py +23 -34
  16. omlish/logs/base.py +248 -0
  17. omlish/logs/callers.py +21 -15
  18. omlish/logs/infos.py +105 -0
  19. omlish/logs/levels.py +64 -0
  20. omlish/logs/protocols.py +31 -0
  21. omlish/logs/standard.py +12 -11
  22. omlish/logs/std/adapters.py +41 -0
  23. omlish/logs/std/configs.py +29 -0
  24. omlish/logs/{filters.py → std/filters.py} +1 -1
  25. omlish/logs/{handlers.py → std/handlers.py} +1 -1
  26. omlish/logs/{json.py → std/json.py} +2 -2
  27. omlish/logs/{proxy.py → std/proxy.py} +3 -3
  28. omlish/logs/std/records.py +286 -0
  29. omlish/logs/times.py +89 -0
  30. omlish/logs/typed/bindings.py +24 -0
  31. omlish/logs/utils.py +60 -4
  32. omlish/logs/warnings.py +8 -0
  33. omlish/manifests/loading.py +1 -1
  34. omlish/os/journald.py +3 -3
  35. omlish/testing/pytest/plugins/skips.py +0 -4
  36. {omlish-0.0.0.dev424.dist-info → omlish-0.0.0.dev425.dist-info}/METADATA +1 -1
  37. {omlish-0.0.0.dev424.dist-info → omlish-0.0.0.dev425.dist-info}/RECORD +44 -86
  38. omlish/defs.py +0 -216
  39. omlish/dispatch/_dispatch2.py +0 -69
  40. omlish/dispatch/_dispatch3.py +0 -108
  41. omlish/dynamic.py +0 -219
  42. omlish/formats/json/Json.g4 +0 -77
  43. omlish/formats/json/_antlr/JsonLexer.py +0 -109
  44. omlish/formats/json/_antlr/JsonListener.py +0 -61
  45. omlish/formats/json/_antlr/JsonParser.py +0 -457
  46. omlish/formats/json/_antlr/JsonVisitor.py +0 -42
  47. omlish/io/trampoline.py +0 -289
  48. omlish/logs/abc.py +0 -319
  49. omlish/logs/color.py +0 -27
  50. omlish/logs/configs.py +0 -29
  51. omlish/logs/protocol.py +0 -218
  52. omlish/logs/timing.py +0 -58
  53. omlish/specs/irc/__init__.py +0 -0
  54. omlish/specs/irc/messages/__init__.py +0 -0
  55. omlish/specs/irc/messages/base.py +0 -49
  56. omlish/specs/irc/messages/formats.py +0 -92
  57. omlish/specs/irc/messages/messages.py +0 -774
  58. omlish/specs/irc/messages/parsing.py +0 -98
  59. omlish/specs/irc/numerics/__init__.py +0 -0
  60. omlish/specs/irc/numerics/formats.py +0 -97
  61. omlish/specs/irc/numerics/numerics.py +0 -865
  62. omlish/specs/irc/numerics/types.py +0 -59
  63. omlish/specs/irc/protocol/LICENSE +0 -11
  64. omlish/specs/irc/protocol/__init__.py +0 -61
  65. omlish/specs/irc/protocol/consts.py +0 -6
  66. omlish/specs/irc/protocol/errors.py +0 -30
  67. omlish/specs/irc/protocol/message.py +0 -21
  68. omlish/specs/irc/protocol/nuh.py +0 -55
  69. omlish/specs/irc/protocol/parsing.py +0 -158
  70. omlish/specs/irc/protocol/rendering.py +0 -153
  71. omlish/specs/irc/protocol/tags.py +0 -102
  72. omlish/specs/irc/protocol/utils.py +0 -30
  73. omlish/specs/proto/Protobuf3.g4 +0 -396
  74. omlish/specs/proto/__init__.py +0 -0
  75. omlish/specs/proto/_antlr/Protobuf3Lexer.py +0 -340
  76. omlish/specs/proto/_antlr/Protobuf3Listener.py +0 -448
  77. omlish/specs/proto/_antlr/Protobuf3Parser.py +0 -3909
  78. omlish/specs/proto/_antlr/Protobuf3Visitor.py +0 -257
  79. omlish/specs/proto/_antlr/__init__.py +0 -0
  80. omlish/specs/proto/nodes.py +0 -54
  81. omlish/specs/proto/parsing.py +0 -97
  82. omlish/sql/parsing/Minisql.g4 +0 -292
  83. omlish/sql/parsing/__init__.py +0 -0
  84. omlish/sql/parsing/_antlr/MinisqlLexer.py +0 -322
  85. omlish/sql/parsing/_antlr/MinisqlListener.py +0 -511
  86. omlish/sql/parsing/_antlr/MinisqlParser.py +0 -3763
  87. omlish/sql/parsing/_antlr/MinisqlVisitor.py +0 -292
  88. omlish/sql/parsing/_antlr/__init__.py +0 -0
  89. omlish/sql/parsing/parsing.py +0 -119
  90. /omlish/{.manifests.json → .omlish-manifests.json} +0 -0
  91. /omlish/{formats/json/_antlr → logs/std}/__init__.py +0 -0
  92. /omlish/logs/{noisy.py → std/noisy.py} +0 -0
  93. {omlish-0.0.0.dev424.dist-info → omlish-0.0.0.dev425.dist-info}/WHEEL +0 -0
  94. {omlish-0.0.0.dev424.dist-info → omlish-0.0.0.dev425.dist-info}/entry_points.txt +0 -0
  95. {omlish-0.0.0.dev424.dist-info → omlish-0.0.0.dev425.dist-info}/licenses/LICENSE +0 -0
  96. {omlish-0.0.0.dev424.dist-info → omlish-0.0.0.dev425.dist-info}/top_level.txt +0 -0
@@ -1,12 +1,10 @@
1
- omlish/.manifests.json,sha256=FLw7xkPiSXuImZgqSP8BwrEib2R1doSzUPLUkc-QUIA,8410
2
- omlish/__about__.py,sha256=9WovffwKfX1QQGeAW2bwvgmoEqTPdMtW9Fqu5mmG1GY,3568
1
+ omlish/.omlish-manifests.json,sha256=FLw7xkPiSXuImZgqSP8BwrEib2R1doSzUPLUkc-QUIA,8410
2
+ omlish/__about__.py,sha256=X82wQzcYaOUP7PxN1Qxpz_9huG8MWZR4xCoCN9Uz26c,3575
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
6
6
  omlish/check.py,sha256=DDNZnLxNoY2Y7N0Hz7nMR1q912ZzRLoBgOJVLcsXVws,6575
7
7
  omlish/datetimes.py,sha256=7dh4aiVRWXWECH3JLF8kkRbgJ1qyGlAlQVp1vCXdTBE,2168
8
- omlish/defs.py,sha256=-4UuZoJUUNO_bZ6eSSdhR4CK4NKN2Wwr1FfUvfTF--8,4918
9
- omlish/dynamic.py,sha256=zy0oO70_Vlh5dW8Nwav_O9bhIzQ6L16UgSuKR6y43VU,6526
10
8
  omlish/libc.py,sha256=mNY2FWZ2BjSucOx5TEW8IP_B5n84tVZWuVPL3Z3sUH8,15644
11
9
  omlish/metadata.py,sha256=l_GGk0g_GkxltQYNDr-P9TTtvIggkdFtnfIffYtaieQ,3797
12
10
  omlish/runmodule.py,sha256=vQ9VZN_c3sQX9rj036dW9lXuMWTjGOfWnwDcWTSWnn0,705
@@ -143,7 +141,7 @@ omlish/dataclasses/inspect.py,sha256=EpVb50CsEUWpn70gkjBa-hI1mr5_VubHTERsofgE-Lw
143
141
  omlish/dataclasses/reflection.py,sha256=6BD2FUiOEtpi_2JREWyVzemjbBJdBMUm8XxQ9SVIKGs,2799
144
142
  omlish/dataclasses/specs.py,sha256=VOY2uCjxLhemBuLd1VXz5KJXmZ48NL3sMJxzOhXmau8,6191
145
143
  omlish/dataclasses/impl/__init__.py,sha256=47DEQpj8HBSa-_TImW-5JCeuQeRkm5NMpJWZG3hSuFU,0
146
- omlish/dataclasses/impl/configs.py,sha256=zRPlcpsELHHRVs9eJwcVp3fcIajHOS54ebPfxSzGQD8,1389
144
+ omlish/dataclasses/impl/configs.py,sha256=ZW3Nf7uImc8VZLAdX1yh9TzzaOomVQ0zlcRuDcSUeXc,1520
147
145
  omlish/dataclasses/impl/utils.py,sha256=jAD6IIILo70aD_s60CaqRU2YvpZxBKy4K5EG-MTiqVo,1871
148
146
  omlish/dataclasses/impl/api/__init__.py,sha256=k5iS9QOwf_f4iOfGffYhnqDOcmEIwEUUTp00u11kIPM,455
149
147
  omlish/dataclasses/impl/api/classes/__init__.py,sha256=47DEQpj8HBSa-_TImW-5JCeuQeRkm5NMpJWZG3hSuFU,0
@@ -224,8 +222,6 @@ omlish/diag/replserver/__main__.py,sha256=LmU41lQ58bm1h4Mx7S8zhE_uEBSC6kPcp9mn5J
224
222
  omlish/diag/replserver/console.py,sha256=6gBq6RtT2axXX18yNzSYjeFFbpSksmDyhXYKbOZkq-Y,7415
225
223
  omlish/diag/replserver/server.py,sha256=ukjk7yyceSG4LAJwxE-Een8b4tQ_2VJHArfKeTqKM0I,5379
226
224
  omlish/dispatch/__init__.py,sha256=UwVT6SSk5HKk9xF9vc_UJD8BDSIQWSw98Ldx-G-6PC0,166
227
- omlish/dispatch/_dispatch2.py,sha256=70k1tKKvuhxtAu6v4skECfHKIKVWrmlt7G_JKLUsKEs,1966
228
- omlish/dispatch/_dispatch3.py,sha256=9Zjd7bINAC3keiaBdssc4v5dY0-8OI6XooV2DR9U7Z0,2818
229
225
  omlish/dispatch/dispatch.py,sha256=TzWihCt9Zr8wfIwVpKHVOOrYFVKpDXRevxYomtEfqYc,3176
230
226
  omlish/dispatch/functions.py,sha256=cwNzGIg2ZIalEgn9I03cnJVbMTHjWloyDTaowlO3UPs,1524
231
227
  omlish/dispatch/impls.py,sha256=3kyLw5yiYXWCN1DiqQbD1czMVrM8v1mpQ8NyD0tUrnk,1870
@@ -264,7 +260,6 @@ omlish/formats/edn/values.py,sha256=jf0g88KJIMALxcuH51SoaMWg1HqTUqc1ugldmyyXWoc,
264
260
  omlish/formats/ini/__init__.py,sha256=47DEQpj8HBSa-_TImW-5JCeuQeRkm5NMpJWZG3hSuFU,0
265
261
  omlish/formats/ini/codec.py,sha256=omuFg0kiDksv8rRlWd_v32ebzEcKlgmiPgGID3bRi2M,631
266
262
  omlish/formats/ini/sections.py,sha256=PVlK35om33Z5f31EnoKUzMD5nFXVZA5WI44GBNiudVM,1021
267
- omlish/formats/json/Json.g4,sha256=fYImsljcVPdlMTHBabM_rza2j4udqjfLQNxIz4S_TpY,1206
268
263
  omlish/formats/json/__init__.py,sha256=i41uhoyXjuLjj5JmdRj4Ud2sfKD0j6KAyk_XyyCIB3M,902
269
264
  omlish/formats/json/codecs.py,sha256=wvPHZw8cDHaOV6u7e9rfpCH3JVF_IjA6ND_fQUhcCXU,844
270
265
  omlish/formats/json/consts.py,sha256=A0cTAGGLyjo-gcYIQrL4JIaardI0yPMhQoNmh42BaRg,387
@@ -272,11 +267,6 @@ omlish/formats/json/encoding.py,sha256=iwoYyJePibgvRDZ6e9b2OlXmOBJEczquRNoiffVf3
272
267
  omlish/formats/json/literals.py,sha256=hqkT4lrYZbt8mrQeyeSzuqo76P3N458DHb7RNmXh_S4,8159
273
268
  omlish/formats/json/rendering.py,sha256=5p8kG1t3aGm2GXsb82h1S90Mmz4lzbX8sX9_qh7fH1U,4915
274
269
  omlish/formats/json/types.py,sha256=ueO9-uOU2eVWowJf0LH1fHFLjZ6fTIZyq9qybcLQaiQ,147
275
- omlish/formats/json/_antlr/JsonLexer.py,sha256=SYlMV8XKi_kJ9meEulNmm2B98hjdzz_xLyPsoqCyYoE,4957
276
- omlish/formats/json/_antlr/JsonListener.py,sha256=NhLh08embB9B4gAUovNs3ACl3Y_SjA2XrVAcWQF33iI,1587
277
- omlish/formats/json/_antlr/JsonParser.py,sha256=YaAQITAAzZhluBJ__GWd6L69eC8YmhyZnPo-s8pW6mY,14291
278
- omlish/formats/json/_antlr/JsonVisitor.py,sha256=b97Pk5JKWm1a3b6WNYESTXvuqvJX_Jt7v1SIIMiuy8E,1131
279
- omlish/formats/json/_antlr/__init__.py,sha256=47DEQpj8HBSa-_TImW-5JCeuQeRkm5NMpJWZG3hSuFU,0
280
270
  omlish/formats/json/backends/__init__.py,sha256=K5nAP-fCgUvaSylHqgRvmJp6j6PTWdMjrNhvMouKrFc,161
281
271
  omlish/formats/json/backends/base.py,sha256=Sv3lfDEx8X8t1yVerOGyN-ra3LeJDTKzuSsW9EBBxIk,1119
282
272
  omlish/formats/json/backends/default.py,sha256=3AaANq69dQPUykvRN-U1VuLDM_TZORCdsiyl_HhSe1M,1538
@@ -287,10 +277,10 @@ omlish/formats/json/backends/ujson.py,sha256=U3iOlAURfiCdXbiNlXfIjDdtJDbDaLZsSuZ
287
277
  omlish/formats/json/stream/__init__.py,sha256=LOQvJGUEqvm1exve1hnWoO3mlMadShaO2Cy7XjCiWbA,829
288
278
  omlish/formats/json/stream/building.py,sha256=dyrOms7Yskayi0-MG4e5-5ilN08HIekNEogJh5C4hhs,2549
289
279
  omlish/formats/json/stream/errors.py,sha256=c8M8UAYmIZ-vWZLeKD2jMj4EDCJbr9QR8Jq_DyHjujQ,43
290
- omlish/formats/json/stream/lexing.py,sha256=0XbkpKm4rmn5DLRyqnVpyvBXMi_MjVEI1k6-TIgQWRM,7208
280
+ omlish/formats/json/stream/lexing.py,sha256=ewdoBVSvBFXO9fJB-zDHW3rJPautxlsmWUJzpV1FwTY,7451
291
281
  omlish/formats/json/stream/parsing.py,sha256=UClKJn-BkZzcvJFgzGdYbH7RszY5pKstyKuk4-NVVXs,6442
292
282
  omlish/formats/json/stream/rendering.py,sha256=U0MyVoYRDv7JLI8e7ItwmxyKnqYhKvfJY4-ZBQ5lHzA,3694
293
- omlish/formats/json/stream/utils.py,sha256=Chuv3xXfTie38GnOShHUIBcyq2pjFLhnyKecDIRDqIs,1376
283
+ omlish/formats/json/stream/utils.py,sha256=OJnByJMhisV4RUgwu51v3q6Qi2sdPiwBE4oqhZs0bTg,1440
294
284
  omlish/formats/json5/Json5.g4,sha256=2V3IB8W1R45mFax5Qy4laAwcHJ9oFPWHc-r8qy9-YE4,2381
295
285
  omlish/formats/json5/__init__.py,sha256=3rwU5w5N_-dYME5kwMvXgexl-Vvo4BAmOg1N-I9Wf0M,194
296
286
  omlish/formats/json5/codec.py,sha256=mywk74R7F77z7xprQd19qoJZ8sNPUEkiBD9jNCKTh0c,1603
@@ -298,6 +288,7 @@ omlish/formats/json5/errors.py,sha256=AHkR9ySjAoQdUrizpqgL8fg0M5oe5mHZkml3KZHEvC
298
288
  omlish/formats/json5/literals.py,sha256=rj4-9KFXfgdq5oK_eUkp57cgoMQ8T0gRaG9ga430he4,2429
299
289
  omlish/formats/json5/parsing.py,sha256=_M-DrXHz4izZcMp4QPCafMIgK6pzySHmksKDIhKW4lQ,2789
300
290
  omlish/formats/json5/rendering.py,sha256=V1XdLzawd-0qu7dVNorxUMiT4LRd5GCS8876-lDLF-c,4583
291
+ omlish/formats/json5/streams.py,sha256=k0rvpwbNqpnSUSMCLYv8tmkfVxPxAVkS7GSIO_Ta-xE,669
301
292
  omlish/formats/json5/_antlr/Json5Lexer.py,sha256=8sT04wjBTDpyHpLo6a5byREBwfNnFtLPZp7Wx3KfbkY,23259
302
293
  omlish/formats/json5/_antlr/Json5Listener.py,sha256=wIqOwp4r-cOHxy6sxQbNmlYczqh2C3-H-74o_hr7WrA,2117
303
294
  omlish/formats/json5/_antlr/Json5Parser.py,sha256=psacqZWRzPNEZq70XKpOnelZXHuXjkULq1r-owaPs6g,19699
@@ -396,7 +387,6 @@ omlish/io/abc.py,sha256=M40QB2udYpCEqmlxCcHv6FlJYJY6ymmJQBlaklYv0U8,1256
396
387
  omlish/io/buffers.py,sha256=C9GCeZnZf6o-WrjUdEfHNmjwt1nqJzpDtURtgu5DKok,7293
397
388
  omlish/io/fileno.py,sha256=_W3qxkIKpnabn1_7kgmKdx0IsPF3R334xWnF_TtkEj4,185
398
389
  omlish/io/pyio.py,sha256=xmHTV-sn7QZThWCVBo6lTM7dhgsQn7m2L0DqRwdF2-8,94509
399
- omlish/io/trampoline.py,sha256=yM7Evz7cgWpFj97IUiHgq9jfqpsx-deTSZwGl1qOnoM,7199
400
390
  omlish/io/compress/__init__.py,sha256=fJFPT4ONfqxmsA4jR6qbMt2woIyyEgnc_qOWK9o1kII,247
401
391
  omlish/io/compress/abc.py,sha256=P9YoQX8XYoq2UfBsinKLUuwwqV1ODUIJzjTraRWGF1M,3090
402
392
  omlish/io/compress/adapters.py,sha256=LJHhjwMHXstoLyX_q0QhGoBAcqyYGWfzhzQbGBXHzHY,6148
@@ -425,8 +415,8 @@ omlish/iterators/iterators.py,sha256=RxW35yQ5ed8vBQ22IqpDXFx-i5JiLQdp7-pkMZXhJJ8
425
415
  omlish/iterators/recipes.py,sha256=wOwOZg-zWG9Zc3wcAxJFSe2rtavVBYwZOfG09qYEx_4,472
426
416
  omlish/iterators/tools.py,sha256=M16LXrJhMdsz5ea2qH0vws30ZvhQuQSCVFSLpRf_gTg,2096
427
417
  omlish/iterators/unique.py,sha256=BSE-eanva8byFCJi09Nt2zzTsVr8LnTqY1PIInGYRs0,1396
428
- omlish/lang/__init__.py,sha256=N4tcH8Nk4jnkc6t106KZuSka4v4luWFZ77i3qvc3fR8,9932
429
- omlish/lang/asyncs.py,sha256=SmzkYghQID77vcgm1Evnd3r9_jd5DlfzJ8uQK7nkh0E,1517
418
+ omlish/lang/__init__.py,sha256=2JPpMyci4K-fL7NuYp0J4GYVs93B5WjQi4H96efff6Y,9976
419
+ omlish/lang/asyncs.py,sha256=g47VwMk3LwCcOhZ_uJqXVKmAi85Z0m9l2m37ipuy50s,1789
430
420
  omlish/lang/attrs.py,sha256=F3l7zV0xdVX4AdBiEiGkBU9ioNVsXWF9bqZSUsr9s2M,5144
431
421
  omlish/lang/casing.py,sha256=3_c7cxQOc4z_YezaU2B4NCTAsPh_kDL4wUTK5kZU6kg,4675
432
422
  omlish/lang/clsdct.py,sha256=HAGIvBSbCefzRjXriwYSBLO7QHKRv2UsE78jixOb-fA,1828
@@ -437,12 +427,12 @@ omlish/lang/datetimes.py,sha256=01tg21QOx-PWDlm-CSFTalym3vpqF0EKzeinmtcVNoU,379
437
427
  omlish/lang/descriptors.py,sha256=sVJ1Pr4ihp26Tu9UCvDSyfSf-DhBnFGnbpYIFF32c7g,6877
438
428
  omlish/lang/enums.py,sha256=F9tflHfaAoV2MpyuhZzpfX9-H55M3zNa9hCszsngEo8,111
439
429
  omlish/lang/errors.py,sha256=shcS-NCnEUudF8qC_SmO2TQyjivKlS4TDjaz_faqQ0c,44
440
- omlish/lang/functions.py,sha256=aLdxhmqG0Pj9tBgsKdoCu_q15r82WIkNqDDSPQU19L8,5689
430
+ omlish/lang/functions.py,sha256=b8Rf4X7XeahvIXosf-sN_-18VSOuyoJMkJG2dPCYvv8,5494
441
431
  omlish/lang/generators.py,sha256=nJiSmDpsfPiypGzJ8qlOO7-BUnCsrAeDow9mhtGgBio,5196
442
432
  omlish/lang/iterables.py,sha256=iWTte3wXQg4xkQ-O-yz20Kjy6YTJbNWuras2UbZ0dhg,3371
443
- omlish/lang/lazyglobals.py,sha256=G1hwpyIgM4PUkVJ_St3K-EdQkHQdWpFOcXao6I5LwyY,1435
433
+ omlish/lang/lazyglobals.py,sha256=YfPtWgNEa0ULtbIiQIQ12pbafUwd6INQRw_PFcAabjo,2282
444
434
  omlish/lang/maybes.py,sha256=ES1LK-9ebh2GNKZ7YfrS4OEoYHFhfiWkme4wU6Blzo4,77
445
- omlish/lang/maysync.py,sha256=Yt0iFeEm53-iQTq91oCqeDqe5i1I-H7yL5ORe9zhx9U,1627
435
+ omlish/lang/maysync.py,sha256=S2Q_rGC4AxRa1UsGJdSzZsYpgOcX9Y8ZmYGA9v8OWn8,1635
446
436
  omlish/lang/objects.py,sha256=JMOZU5I6sK4rJm04898dOJkvef-lDIh5O3k6tlLbBJw,4616
447
437
  omlish/lang/outcomes.py,sha256=rCyjWjElNheJ-sQhauxfERT98IZ0mrUoaSI9nMpJZTg,8751
448
438
  omlish/lang/overrides.py,sha256=IBzK6ljfLX6TLgIyKTSjhqTLcuKRkQNVtEOnBLS4nuA,2095
@@ -473,14 +463,15 @@ omlish/lang/imports/traversal.py,sha256=pbFQIa880NGjSfcLsno2vE_G41_CLwDHb-7gWg2J
473
463
  omlish/lifecycles/__init__.py,sha256=zOuvV4pErPwxcKUSgshmME2Duw9GrjwckpNmW3FPKng,810
474
464
  omlish/lifecycles/abstract.py,sha256=1nMCFVislFq-boMD6TK9APIkRm_5OzcpSsDs2XnByVQ,2248
475
465
  omlish/lifecycles/base.py,sha256=sCmzj2F-JcFD2qDsjNOPhKSbDIJaT9CEKK19RqkP-sg,2462
476
- omlish/lifecycles/contextmanagers.py,sha256=JAGYm11JYHDaq-9Vs5gPPQZMLTQDeHQWvWhcCVX4Qag,2078
477
- omlish/lifecycles/controller.py,sha256=DkbwzwVLuP9ZvG67jmhfW-am4YbcsE2qLNC82lVTXWw,4756
466
+ omlish/lifecycles/contextmanagers.py,sha256=kaqn_uhIGtyBACg6sqPV6_GBx1T2xkJV1REKKB6ofpM,2075
467
+ omlish/lifecycles/controller.py,sha256=Es5GofurBMaxnfqHiF3wi0JE08AOX29dPwR_eDoJ1NU,4753
478
468
  omlish/lifecycles/manager.py,sha256=92s1IH_gDP25PM5tFuPMP2hD_6s5fPi_VzZiDS5549g,5449
479
469
  omlish/lifecycles/states.py,sha256=6gTdY3hn7-1sJ60lA3GeMx5RVKvXtFBBXE4KEjoO1Hs,1297
480
470
  omlish/lifecycles/transitions.py,sha256=3IFdWGtAeoy3XRlIyW7yCKV4e4Iof9ytkqklGMRFYQs,1944
481
471
  omlish/lite/__init__.py,sha256=cyZEpGob7XjU8DohyNxVe5CQRk4CQ5vrHL42OdhQb8w,148
482
472
  omlish/lite/abstract.py,sha256=Z3kLviPNGLkmA8m8BZILzWxez_sP18OyzgMP3-c2-RI,4068
483
473
  omlish/lite/args.py,sha256=ILJXAiN3KjIoJwY42aKpYPngUdxHIy9ssVIExFVz3fE,978
474
+ omlish/lite/asyncs.py,sha256=w-TYUpJE2UI5WluIYW3ij6tdBgH9CNDV6V6iKLPzMvo,296
484
475
  omlish/lite/cached.py,sha256=zC7yNW0XvQHwwoTuIGDdufDmhBZR6-vpjBOnFE9F7Ks,1301
485
476
  omlish/lite/check.py,sha256=ytCkwZoKfOlJqylL-AGm8C2WfsWJd2q3kFbnZCzX3_M,13844
486
477
  omlish/lite/configs.py,sha256=4-1uVxo-aNV7vMKa7PVNhM610eejG1WepB42-Dw2xQI,914
@@ -502,35 +493,39 @@ omlish/lite/runtime.py,sha256=J59skBq9kwo1H2s36jAk-k87eKPUtua6CmuXh-3dgmE,464
502
493
  omlish/lite/secrets.py,sha256=WskrvbswAfLuS92ehDKI4TOcs8yibDwWVAJKaulCXDQ,828
503
494
  omlish/lite/strings.py,sha256=QGxT1Yh4oI8ycsfeobxnjEhvDob_GiAKLeIhZwo1j24,1986
504
495
  omlish/lite/timeouts.py,sha256=OLU9iju2pkk3niM20aPnmA6AqabFmW8zeLDu6WsuaxA,5008
505
- omlish/lite/timing.py,sha256=aVu3hEDB_jyTF_ryZI7iU-xg4q8CNwqpp9Apfru_iwY,196
496
+ omlish/lite/timing.py,sha256=_43e0LF6FnMgVhmYUV-t-EXBOgP1mrAM8uhW5kn7MbY,194
506
497
  omlish/lite/types.py,sha256=QM9whf55r7TmmQBRApIWSlyVKsl1p_jcut_YheyZMFY,146
507
498
  omlish/lite/typing.py,sha256=m2CyJTz2OVOCPRvp-0UuEx7oleZgXqs3rYXijE0bTsA,1280
508
499
  omlish/lite/wrappers.py,sha256=d00Ls2kFHuogKd5wEBaU65VNCN10YXIZtiwu1mbMpmA,530
509
500
  omlish/logs/__init__.py,sha256=47DEQpj8HBSa-_TImW-5JCeuQeRkm5NMpJWZG3hSuFU,0
510
- omlish/logs/abc.py,sha256=KNefzJynsT0PyNq1HpNpL0FRVIeBS5PfQ8OarhcXrTc,8753
511
- omlish/logs/all.py,sha256=kan4dRe5NdSIFRp9JJXm__JbT-Nl4fXWe3KLgHkQVbw,1168
512
- omlish/logs/callers.py,sha256=iV1IoprhaDgRSEO6g-1u8nUZstwjRkSn9YklcTHq-Yc,1638
513
- omlish/logs/color.py,sha256=u1-6ulsxTWMPyeKu-pCQyF5_ljuEeuG4FG7i6DTzHe0,670
514
- omlish/logs/configs.py,sha256=Emhz11h2wKPWuiA5qJ5Zn50IVhqpJ0LPAXBMKDxP28I,931
515
- omlish/logs/filters.py,sha256=m_uHVcgleVevwknVpbYrH1KEB47OyvyP00TAjEDh4Oc,376
516
- omlish/logs/handlers.py,sha256=rHw5fmzwH52E8QpEn3n87NjM0vyA5bFE5rtEAZ7_lPY,331
517
- omlish/logs/json.py,sha256=IGtbyP4giSTm2scwVg11C8t3iz8fg7Qr8LZOPKuFCNU,1377
518
- omlish/logs/levels.py,sha256=bsmkwX-i38YMm8k4hbDX9_aelhrdmFLtqrx5oNyGs54,53
519
- omlish/logs/noisy.py,sha256=hWpbseerZqlHdEPEajDTSmcRhx8LmmNAxz_7GBZAO9s,353
520
- omlish/logs/protocol.py,sha256=D6_MCdmio4GqoQ73cSFYcu6dF1Y_pA7JsF6gOqc9qLc,6805
521
- omlish/logs/proxy.py,sha256=9FmqWQuX3pXezWkCeN17H805CicKN6-QqMKGptk45PI,2378
522
- omlish/logs/standard.py,sha256=w0jS824YDvlzrGgAxKiPk9RoZ5V1b0ADiFsBEpKLuLY,3152
523
- omlish/logs/timing.py,sha256=qsQ3DB6swts1pxrFlmLWQzhH-3nzDrq1MUu7PxjjUyU,1519
524
- omlish/logs/utils.py,sha256=OkFWf1exmWImmT7BaSiIC7c0Fk9tAis-PRqo8H4ny3c,398
501
+ omlish/logs/all.py,sha256=osR6yehuVYwk9OL4kTAq-gl-NlsCo4wDa2cfOmew7ZA,1016
502
+ omlish/logs/base.py,sha256=BOKgiimvHboKE9UTMKpRSeSZoZhhyf0TQ5u-mRozLWU,7071
503
+ omlish/logs/callers.py,sha256=j6zq_cKdCrlG4O1ODgZPqUKmQ2ebmCnJrdzHmtffCtQ,2094
504
+ omlish/logs/infos.py,sha256=-FRTuawNwvK2SBjNKby5IUsS0Q2o9H1q8tFTqDNeWIE,2348
505
+ omlish/logs/levels.py,sha256=b3i-70OcvNMcOQBzg1IUHBPESfHz0uu5mi5t_jbwv1Y,1966
506
+ omlish/logs/protocols.py,sha256=19Hre-98MWnN9oGz4O4RBczpwA5Slg15l9Y-ilbixgs,918
507
+ omlish/logs/standard.py,sha256=ppho-wDecGxUiRXOdCIlblmrQhqXZ0oQOGayy8N53XY,3237
508
+ omlish/logs/times.py,sha256=l7ShVgsM4Y65m_gl_ldbQCcl7myFQ0czT_lJcu04yyM,2507
509
+ omlish/logs/utils.py,sha256=fKvP342qBmE8wwTgUQ8Tf0-ATVhCm90UYBQt2pk0044,1883
510
+ omlish/logs/warnings.py,sha256=xyhDgiPy1p8Kp5D9sb_NZiBnQ26SUppaHqC27dtQzok,67
511
+ omlish/logs/std/__init__.py,sha256=47DEQpj8HBSa-_TImW-5JCeuQeRkm5NMpJWZG3hSuFU,0
512
+ omlish/logs/std/adapters.py,sha256=8Z3e9hZRz-8HpW3PnlTURAQLzGG7gb327P4tQ9AZSV8,853
513
+ omlish/logs/std/configs.py,sha256=aDQahqBJXJpmQBaxXVK5S2xi_I_nrLLcCLTq6Q2K6EQ,1037
514
+ omlish/logs/std/filters.py,sha256=Z8tHOvBRiP-OYm2z5cwY-lYXRimNgferEARMwvwx5Pw,380
515
+ omlish/logs/std/handlers.py,sha256=nYPKV6Kzz8Oeyw4-3ZdJKKEUfgubfmwzqr3RaCNcmS4,338
516
+ omlish/logs/std/json.py,sha256=QJ5lywLsRsPyVno2nk2kOw-Z1z3bfrDiZzqcRUdWUMY,1382
517
+ omlish/logs/std/noisy.py,sha256=hWpbseerZqlHdEPEajDTSmcRhx8LmmNAxz_7GBZAO9s,353
518
+ omlish/logs/std/proxy.py,sha256=9MVV5kbj9nwl3KZGtrYCIb5XTpv33f33zZ7P_B58fX0,2394
519
+ omlish/logs/std/records.py,sha256=TCpslKiIBYI2ZIvJWyABpa7Ovt-f4jpQYsYuHE2oYTA,10183
525
520
  omlish/logs/typed/__init__.py,sha256=47DEQpj8HBSa-_TImW-5JCeuQeRkm5NMpJWZG3hSuFU,0
526
- omlish/logs/typed/bindings.py,sha256=an1CfCv7vn4dihpeW7TlERuYh3TJrs1wtAoZjtSmOwk,17361
521
+ omlish/logs/typed/bindings.py,sha256=H_B-3LTGFlBIWYDJ8rei1VMfInE8KrBwRo3bJ_BgFj8,18184
527
522
  omlish/logs/typed/contexts.py,sha256=MU1RqHtmYbnxoLfLhMZbTbRd-WfYEyeVo7_3VnG3rY0,4027
528
523
  omlish/logs/typed/types.py,sha256=TgoT2jBGUD9rIWE6u9Yj-WW5wWusMjNcCf4FGh3RHJ4,14428
529
524
  omlish/logs/typed/values.py,sha256=w8ukpJZ3lx_st7Mj7riP2squzGmMaz7OuUxw_NZCZsY,3261
530
525
  omlish/manifests/__init__.py,sha256=47DEQpj8HBSa-_TImW-5JCeuQeRkm5NMpJWZG3hSuFU,0
531
526
  omlish/manifests/base.py,sha256=wW-De-pU3cef-0vGsgo-ypftDwc3tCBxhRAzPtrdark,918
532
527
  omlish/manifests/globals.py,sha256=kVqQ-fT4kc7xWzLHoI731GviitFPv2v2yqw-p7t7Exs,2628
533
- omlish/manifests/loading.py,sha256=Br1OyI23pis_FfYju9xoacms608lzB1Zh_IqdVw_7vg,17201
528
+ omlish/manifests/loading.py,sha256=RUFRZ8ILU_aG11BYDpWAYlc--58HmlSYSLHkHqLUwd8,17208
534
529
  omlish/manifests/static.py,sha256=9BaPBLkuzxHmg5A-5k9BjjBFINCdmFOIu06dMFgCfz4,497
535
530
  omlish/manifests/types.py,sha256=NeOGuIVrcbqjCDbQ3MnCxxHAgHnw0CkWJsBzo230PWE,453
536
531
  omlish/marshal/__init__.py,sha256=cdRll_tPZaTBIY0yLejCXZdZB3fUVkIoDMb8aESLkl8,5981
@@ -609,7 +604,7 @@ omlish/os/fcntl.py,sha256=EUa4TkeqdKix-uIweRitIZsgT9ohY7OQ5QiIhUW9S0c,1512
609
604
  omlish/os/filemodes.py,sha256=JjHXZ7_BUQRphlA6_DkQoRSOEXxQUWWoKiS2-54rMVo,4586
610
605
  omlish/os/files.py,sha256=PmFQIesLmpYORm4dMKTkj2PeS8iu-KbfPmjZHaabeVc,1117
611
606
  omlish/os/forkhooks.py,sha256=atbKbHjDgPownKIyRu8F_DfpSceNSYvkc53WHa_1s84,5697
612
- omlish/os/journald.py,sha256=Ysm-lyjBfTvRA9PZtkdNxeFNNuSdLwoCXnBgePeRu3Y,3909
607
+ omlish/os/journald.py,sha256=RS6Vjlm1N-J7I6h39A5onmKueCA4ViRhrlDam2523V0,3921
613
608
  omlish/os/linux.py,sha256=CfnYR1vJooo74OfeiSB6EaB1KN5SLz9x3b1KXtJIRQ4,18949
614
609
  omlish/os/mangle.py,sha256=1Z_gYNiRiHn7wAA8tGEumra3lD4r9Isn581Ml2auJZI,531
615
610
  omlish/os/paths.py,sha256=lnO2JJWo8rWgmrmNUiRuGyXVWdmfalDsGmH0UsyRsHA,1304
@@ -655,26 +650,6 @@ omlish/sockets/server/server.py,sha256=Z3kJ5LbO-sdJICxouv85KtDEmRb5_0kGNyHgdVrVz
655
650
  omlish/sockets/server/ssl.py,sha256=QLiPcng1f1RFDhw4aS-Fy57fm0R7CXm76STpHmT55z0,1067
656
651
  omlish/sockets/server/threading.py,sha256=CPr_290vpN3o4p2ehQBIwk-d8Ciasylp9v2zUQSB5xk,2862
657
652
  omlish/specs/__init__.py,sha256=fxpcfXEWESH2kiPStKhl2dAdfLkZVTt_cssZKyqBLiQ,87
658
- omlish/specs/irc/__init__.py,sha256=47DEQpj8HBSa-_TImW-5JCeuQeRkm5NMpJWZG3hSuFU,0
659
- omlish/specs/irc/messages/__init__.py,sha256=47DEQpj8HBSa-_TImW-5JCeuQeRkm5NMpJWZG3hSuFU,0
660
- omlish/specs/irc/messages/base.py,sha256=JQWq4L-USYFw1DmHPpL3FiAwvynf6Hi48-zNdC__jT0,1240
661
- omlish/specs/irc/messages/formats.py,sha256=uBPB0-_orWzBRAbcZEbS9Q-aZ3iVCmGZMoSau6-Ic04,2361
662
- omlish/specs/irc/messages/messages.py,sha256=9VzmmGzKo9jlwbxEo7ryyUlL-l2a2lPYQi9yKG-Ztzk,14074
663
- omlish/specs/irc/messages/parsing.py,sha256=Zqtsfkd5auBtk0vEruloQyt067wSa8-3d_yglDFRi0g,2222
664
- omlish/specs/irc/numerics/__init__.py,sha256=47DEQpj8HBSa-_TImW-5JCeuQeRkm5NMpJWZG3hSuFU,0
665
- omlish/specs/irc/numerics/formats.py,sha256=nr80S5omjpmFEeJp5fOR4n3DSec8Nyjd96LcBUVDCbM,2257
666
- omlish/specs/irc/numerics/numerics.py,sha256=iOEG9PqfGUiDh6gDgdiNUqVY6WAbMBIwEPPIma34JNo,18215
667
- omlish/specs/irc/numerics/types.py,sha256=qbNDLxtz827JnIMh79-SGK1RdbEy44vZl6uQMIYGXyg,1287
668
- omlish/specs/irc/protocol/LICENSE,sha256=1CT5_XkDMJ9HDZh0tX4TIsm7LfrSdljRX5EirPBhDYM,778
669
- omlish/specs/irc/protocol/__init__.py,sha256=0OFSLrMS5jYFJCqH1LKv0UfTrp5faPQhlhYKBQyCZeA,1701
670
- omlish/specs/irc/protocol/consts.py,sha256=iDCsJIyDE5-UnkIQpwCLzdbf3DUFWRmqkuVd0cZtujw,185
671
- omlish/specs/irc/protocol/errors.py,sha256=cRP8c--kRts5Uwqn1xl1J97OI74hicG4UbkJs_EOSDg,334
672
- omlish/specs/irc/protocol/message.py,sha256=i1-iZj17_mrmX5WaIcBuVD-dZP6g-bP6I_zH-0gVLzU,403
673
- omlish/specs/irc/protocol/nuh.py,sha256=6DamgLNVaZRZdvpGqOn-cFsnru-a_kYmJIrb_Epu8_o,1287
674
- omlish/specs/irc/protocol/parsing.py,sha256=yL9LRLw4GqtmiXmrH_AcIzu5x2riP6QDMEWESZVJ3jc,4058
675
- omlish/specs/irc/protocol/rendering.py,sha256=-V7_Yr9m_izcUrwkOeD3L4aCNTT4iLi22QH5J0Upd5g,4914
676
- omlish/specs/irc/protocol/tags.py,sha256=M89vR2GgDNroEsiH2QNchVX2LmT6sMIXY7huTEv7rIM,2784
677
- omlish/specs/irc/protocol/utils.py,sha256=tUbkShJov8oCsbg1KZE1EC5pCThXJTdXFcw0HBM5ApQ,692
678
653
  omlish/specs/jmespath/LICENSE,sha256=IH-ZZlZkS8XMkf_ubNVD1aYHQ2l_wd0tmHtXrCcYpRU,1113
679
654
  omlish/specs/jmespath/__init__.py,sha256=pppE1MqDU1mRchMZehpwLleMHDO-QGAGJKOKuAyuaiE,2187
680
655
  omlish/specs/jmespath/__main__.py,sha256=AkowPx7ASpK0E4EMq0MiwVarLDB7alConH-2mBOGYIA,194
@@ -719,15 +694,6 @@ omlish/specs/jsonschema/schemas/draft202012/vocabularies/validation.json,sha256=
719
694
  omlish/specs/openapi/__init__.py,sha256=KS7OHPBlXwBeTvmsUQy0VMzKYdz2RyH3qLF3bU0NXUw,147
720
695
  omlish/specs/openapi/_marshal.py,sha256=6CB2LCwFfU5rstqkgN_j4Z5rbnba2glzOxcSd01uffI,4451
721
696
  omlish/specs/openapi/openapi.py,sha256=6KGY_d8HOyG7ssHIWM40MCXgIMzNLiLKHYNggTSpAYM,12027
722
- omlish/specs/proto/Protobuf3.g4,sha256=chDrovFsuZaHf5W35WZNts3jOa1ssPwvWiJR4yVIgjw,5552
723
- omlish/specs/proto/__init__.py,sha256=47DEQpj8HBSa-_TImW-5JCeuQeRkm5NMpJWZG3hSuFU,0
724
- omlish/specs/proto/nodes.py,sha256=nwA6KyU9pZHLE9cO9dh46qTl6vfYJ8SjuUDlLBuoOms,776
725
- omlish/specs/proto/parsing.py,sha256=Nr4qu5Tk63NNSsPTHkG4JNEucpwwXZ3vdIcqq8WLmQw,2871
726
- omlish/specs/proto/_antlr/Protobuf3Lexer.py,sha256=CqZS0oOfpSgswxjM8CuOwRZDEm1Jm2lrYarS7ptI5Ug,19493
727
- omlish/specs/proto/_antlr/Protobuf3Listener.py,sha256=CdBxX40sEmqZSdyOcBaogOwsm7106Kr9-KcqZZE3jUs,14528
728
- omlish/specs/proto/_antlr/Protobuf3Parser.py,sha256=iOeqyU9lUJ-kpiDj3lS86XjnE-L4Wv_UmdvVG0dGCQU,132433
729
- omlish/specs/proto/_antlr/Protobuf3Visitor.py,sha256=K5NxkXvMEJVsqnpXsHxMAHJOUFEYKSCSdsNR4RWgrE4,8804
730
- omlish/specs/proto/_antlr/__init__.py,sha256=47DEQpj8HBSa-_TImW-5JCeuQeRkm5NMpJWZG3hSuFU,0
731
697
  omlish/sql/__init__.py,sha256=DXK3EjPKXKS0WUV-bIVtzH0GsmOqCYrNLFkvDJGCORM,501
732
698
  omlish/sql/abc.py,sha256=3hrCjB4jnPVMef_YXClCblzYUZ9l9yaxJJdd5_Nu9GM,4043
733
699
  omlish/sql/dbapi.py,sha256=DfMxCyltpMj6hUiLti1omUvJyMGbrkGxcz2ywolOpPA,2979
@@ -752,14 +718,6 @@ omlish/sql/api/funcs.py,sha256=Raa8kL65l1JprMsJupFw-8EPO6MxxDhm0OPSwecMLOI,2045
752
718
  omlish/sql/api/queries.py,sha256=OVsVqNyXXJQVDPfV3GFE2gwnHyGEenS65rTQRTNGx1Y,735
753
719
  omlish/sql/api/resources.py,sha256=RcjnsNoyFWG0VR8YDijwuyZtnxlGQe8jiPQVl_inzIc,2266
754
720
  omlish/sql/api/rows.py,sha256=Jo3AA_6Wt7tlwLO6-rp0arzYFqZXSxPudGPkW2xCYgQ,1346
755
- omlish/sql/parsing/Minisql.g4,sha256=Jw8xT-8UI6ySHAgStyCg5QX9NTCinvTenLJReWiZIJU,4578
756
- omlish/sql/parsing/__init__.py,sha256=47DEQpj8HBSa-_TImW-5JCeuQeRkm5NMpJWZG3hSuFU,0
757
- omlish/sql/parsing/parsing.py,sha256=FWiMYxkYraswd6lZtYHpAY8kozsFxeUwYlFzgqdMOVI,3362
758
- omlish/sql/parsing/_antlr/MinisqlLexer.py,sha256=Ce5hPERmyCle953lwQR7a6F24a1_KyVt6PtmOsGwRbg,17633
759
- omlish/sql/parsing/_antlr/MinisqlListener.py,sha256=4B9d9ONDxzrx1QR-g96Qw_ilAW_I23VpULbq_UeIY0w,16655
760
- omlish/sql/parsing/_antlr/MinisqlParser.py,sha256=htIMgNde8PqLj7mDV2cLo7kDiwn-acDZjr7mUBAC3PA,132479
761
- omlish/sql/parsing/_antlr/MinisqlVisitor.py,sha256=UPs2qA2VlNRP_LMwF0DpMxMir9tIS9w59vGTq07mmlI,10052
762
- omlish/sql/parsing/_antlr/__init__.py,sha256=47DEQpj8HBSa-_TImW-5JCeuQeRkm5NMpJWZG3hSuFU,0
763
721
  omlish/sql/queries/__init__.py,sha256=qoikGQZuwDkOBwGKdUVov_Ur3I-mezSDLLdzqwRw6l8,1567
764
722
  omlish/sql/queries/_marshal.py,sha256=yVfN5VgYMYDaYTE6FZ8Sea7GrRobn40Hc8kogrfKmjE,3016
765
723
  omlish/sql/queries/base.py,sha256=nsavenCsZgzpITSI1zGEAi95K3cRDfAxRgNJKJmYul0,3502
@@ -818,7 +776,7 @@ omlish/testing/pytest/plugins/logging.py,sha256=8gelEK2rho1I5XtxH0XPfJwxF0O-CAMf
818
776
  omlish/testing/pytest/plugins/managermarks.py,sha256=i8JtdLtR1kYkgcu5lCOTXXrY5qM4TOFW0lbS1CKB1Ts,1305
819
777
  omlish/testing/pytest/plugins/pydevd.py,sha256=umbQh8Dy1kDjpvV6F9Ld9un7boEkjx90S94h5pzHhO8,846
820
778
  omlish/testing/pytest/plugins/repeat.py,sha256=-FT3HHjET3AIWD9veZI5GTJ-k9WbmOpXfH7vKSKmbII,502
821
- omlish/testing/pytest/plugins/skips.py,sha256=byYAFkYpseEbBiZghKQw0Lbnlp6VpB_qqbzVTs5rCaU,1045
779
+ omlish/testing/pytest/plugins/skips.py,sha256=IrKEa3FZ9WSQSJNPTaoxNVjNBcIZ-YHPuzf3S-t27sY,998
822
780
  omlish/testing/pytest/plugins/spacing.py,sha256=zgqJqH1EMFS--LmduSsatGhzaOK8bBGjyCovTMebDZk,711
823
781
  omlish/testing/pytest/plugins/utils.py,sha256=7NZIe_AiblFEm7fIOL66up4k0sdBL3RZgjRV7yzPrDs,266
824
782
  omlish/testing/pytest/plugins/asyncs/__init__.py,sha256=TTNhFmP_krug1973sq_bpWBTIvg68-1nbuVLSs92Z6k,41
@@ -933,9 +891,9 @@ omlish/typedvalues/marshal.py,sha256=AtBz7Jq-BfW8vwM7HSxSpR85JAXmxK2T0xDblmm1HI0
933
891
  omlish/typedvalues/of_.py,sha256=UXkxSj504WI2UrFlqdZJbu2hyDwBhL7XVrc2qdR02GQ,1309
934
892
  omlish/typedvalues/reflect.py,sha256=PAvKW6T4cW7u--iX80w3HWwZUS3SmIZ2_lQjT65uAyk,1026
935
893
  omlish/typedvalues/values.py,sha256=ym46I-q2QJ_6l4UlERqv3yj87R-kp8nCKMRph0xQ3UA,1307
936
- omlish-0.0.0.dev424.dist-info/licenses/LICENSE,sha256=B_hVtavaA8zCYDW99DYdcpDLKz1n3BBRjZrcbv8uG8c,1451
937
- omlish-0.0.0.dev424.dist-info/METADATA,sha256=I41rtYvsPdR3vMOqBKsukK0duZ-YF1skitAZz-y_DzE,19242
938
- omlish-0.0.0.dev424.dist-info/WHEEL,sha256=_zCd3N1l69ArxyTb8rzEoP9TpbYXkqRFSNOD5OuxnTs,91
939
- omlish-0.0.0.dev424.dist-info/entry_points.txt,sha256=Lt84WvRZJskWCAS7xnQGZIeVWksprtUHj0llrvVmod8,35
940
- omlish-0.0.0.dev424.dist-info/top_level.txt,sha256=pePsKdLu7DvtUiecdYXJ78iO80uDNmBlqe-8hOzOmfs,7
941
- omlish-0.0.0.dev424.dist-info/RECORD,,
894
+ omlish-0.0.0.dev425.dist-info/licenses/LICENSE,sha256=B_hVtavaA8zCYDW99DYdcpDLKz1n3BBRjZrcbv8uG8c,1451
895
+ omlish-0.0.0.dev425.dist-info/METADATA,sha256=PaGWpzktXxHpe8pkhWTC69D_Uj9bbV6_QDVFGgR4zYI,19242
896
+ omlish-0.0.0.dev425.dist-info/WHEEL,sha256=_zCd3N1l69ArxyTb8rzEoP9TpbYXkqRFSNOD5OuxnTs,91
897
+ omlish-0.0.0.dev425.dist-info/entry_points.txt,sha256=Lt84WvRZJskWCAS7xnQGZIeVWksprtUHj0llrvVmod8,35
898
+ omlish-0.0.0.dev425.dist-info/top_level.txt,sha256=pePsKdLu7DvtUiecdYXJ78iO80uDNmBlqe-8hOzOmfs,7
899
+ omlish-0.0.0.dev425.dist-info/RECORD,,
omlish/defs.py DELETED
@@ -1,216 +0,0 @@
1
- """
2
- A self-awarely unpythonic set of helpers for defining common boilerplate methods (repr, hash_eq, delegates, etc) in
3
- class definitions. Should be used sparingly for methods not directly used by humans (like repr) - @property's should
4
- remain @property's for type annotation, tool assistance, debugging, and otherwise, but these are still nice to have in
5
- certain circumstances (the real-world alternative usually being simply not adding them).
6
- """
7
- # ruff: noqa: ANN201
8
- import abc
9
- import functools
10
- import operator
11
- import threading
12
-
13
- from . import lang
14
-
15
-
16
- ##
17
-
18
-
19
- _repr = repr
20
-
21
- BASICS = {}
22
-
23
-
24
- def _basic(fn):
25
- if fn.__name__ in BASICS:
26
- raise NameError(fn.__name__)
27
-
28
- BASICS[fn.__name__] = fn
29
- return fn
30
-
31
-
32
- @lang.cls_dct_fn()
33
- def basic(cls_dct, *attrs, basics=None):
34
- if basics is None:
35
- basics = BASICS.keys()
36
-
37
- for k in basics:
38
- fn = BASICS[k]
39
- fn(*attrs, cls_dct=cls_dct)
40
-
41
-
42
- _REPR_SEEN = threading.local()
43
-
44
-
45
- def _repr_guard(fn):
46
- @functools.wraps(fn)
47
- def inner(obj, *args, **kwargs):
48
- try:
49
- ids = _REPR_SEEN.ids
50
-
51
- except AttributeError:
52
- ids = _REPR_SEEN.ids = set()
53
- try:
54
- ids.add(id(obj))
55
- return fn(obj, *args, **kwargs)
56
- finally:
57
- del _REPR_SEEN.ids
58
-
59
- else:
60
- if id(obj) in ids:
61
- return f'<seen:{type(obj).__name__}@{hex(id(obj))[2:]}>'
62
- ids.add(id(obj))
63
- return fn(obj, *args, **kwargs)
64
-
65
- return inner
66
-
67
-
68
- @_repr_guard
69
- def build_attr_repr(obj, *, mro=False):
70
- if mro:
71
- attrs = [
72
- attr
73
- for ty in sorted( # noqa
74
- reversed(type(obj).__mro__),
75
- key=lambda _ty: _ty.__dict__.get('__repr_priority__', 0),
76
- )
77
- for attr in ty.__dict__.get('__repr_attrs__', [])
78
- ]
79
-
80
- else:
81
- attrs = obj.__repr_attrs__
82
-
83
- s = ', '.join(f'{a}={"<self>" if v is obj else _repr(v)}' for a in attrs for v in [getattr(obj, a)])
84
- return f'{type(obj).__name__}@{hex(id(obj))[2:]}({s})'
85
-
86
-
87
- @_repr_guard
88
- def build_repr(obj, *attrs):
89
- return (
90
- f'{type(obj).__name__}'
91
- f'@{hex(id(obj))[2:]}'
92
- f'({", ".join(f"{attr}={getattr(obj, attr)!r}" for attr in attrs)})'
93
- )
94
-
95
-
96
- @_basic
97
- @lang.cls_dct_fn()
98
- def repr(cls_dct, *attrs, mro=False, priority=None): # noqa
99
- def __repr__(self): # noqa
100
- return build_attr_repr(self, mro=mro)
101
-
102
- cls_dct['__repr_attrs__'] = attrs
103
- if priority is not None:
104
- cls_dct['__repr_priority__'] = priority
105
-
106
- cls_dct['__repr__'] = __repr__
107
-
108
-
109
- @lang.cls_dct_fn()
110
- def bare_repr(cls_dct, *attrs):
111
- def __repr__(self): # noqa
112
- return lang.attr_repr(self, *attrs)
113
-
114
- cls_dct['__repr__'] = __repr__
115
-
116
-
117
- @lang.cls_dct_fn()
118
- def name_repr(cls_dct):
119
- def __repr__(self): # noqa
120
- return self.__name__
121
-
122
- cls_dct['__repr__'] = __repr__
123
-
124
-
125
- @lang.cls_dct_fn()
126
- def ne(cls_dct):
127
- def __ne__(self, other): # noqa
128
- return not (self == other)
129
-
130
- cls_dct['__ne__'] = __ne__
131
-
132
-
133
- @lang.cls_dct_fn()
134
- def no_order(cls_dct, *, raise_=None):
135
- def fn(self, other):
136
- if raise_ is None:
137
- return NotImplemented
138
- else:
139
- raise raise_
140
-
141
- for att in [
142
- '__lt__',
143
- '__le__',
144
- '__gt__',
145
- '__ge__',
146
- ]:
147
- cls_dct[att] = fn
148
-
149
-
150
- @_basic
151
- @lang.cls_dct_fn()
152
- def hash_eq(cls_dct, *attrs):
153
- def __hash__(self): # noqa
154
- return hash(tuple(getattr(self, attr) for attr in attrs))
155
-
156
- cls_dct['__hash__'] = __hash__
157
-
158
- def __eq__(self, other): # noqa
159
- if type(other) is not type(self):
160
- return False
161
-
162
- for attr in attrs: # noqa
163
- if getattr(self, attr) != getattr(other, attr):
164
- return False
165
-
166
- return True
167
-
168
- cls_dct['__eq__'] = __eq__
169
-
170
- ne(cls_dct=cls_dct)
171
-
172
-
173
- @lang.cls_dct_fn()
174
- def getter(cls_dct, *attrs):
175
- for attr in attrs:
176
- cls_dct[attr] = property(operator.attrgetter('_' + attr))
177
-
178
-
179
- @lang.cls_dct_fn()
180
- def not_implemented(cls_dct, *names, **kwargs):
181
- wrapper = kwargs.pop('wrapper', lambda _: _)
182
- if kwargs:
183
- raise TypeError(kwargs)
184
-
185
- ret = []
186
- for name in names:
187
- @wrapper
188
- def not_implemented(self, *args, **kwargs):
189
- raise NotImplementedError
190
-
191
- not_implemented.__name__ = name
192
- cls_dct[name] = not_implemented
193
- ret.append(not_implemented)
194
-
195
- return tuple(ret)
196
-
197
-
198
- @lang.cls_dct_fn()
199
- def abstract_method(cls_dct, *names):
200
- return not_implemented(cls_dct, *names, wrapper=abc.abstractmethod)
201
-
202
-
203
- @lang.cls_dct_fn()
204
- def abstract_property(cls_dct, *names):
205
- return not_implemented(cls_dct, *names, wrapper=lambda o: property(abc.abstractmethod(o)))
206
-
207
-
208
- @lang.cls_dct_fn()
209
- def abstract_hash_eq(cls_dct):
210
- return not_implemented(
211
- cls_dct,
212
- '__hash__',
213
- '__eq__',
214
- '__ne__',
215
- wrapper=abc.abstractmethod,
216
- )
@@ -1,69 +0,0 @@
1
- import abc
2
- import typing as ta
3
- import weakref
4
-
5
- from .impls import find_impl as default_find_impl
6
-
7
-
8
- T = ta.TypeVar('T')
9
-
10
-
11
- ##
12
-
13
-
14
- class Dispatcher(ta.Generic[T]):
15
- def __init__(self, find_impl: ta.Callable[[type, ta.Mapping[type, T]], T | None] | None = None) -> None:
16
- super().__init__()
17
-
18
- if find_impl is None:
19
- find_impl = default_find_impl
20
- self._find_impl = find_impl
21
-
22
- self._impls_by_arg_cls: dict[type, T] = {}
23
- self._dispatch_cache: dict[ta.Any, T | None] = {}
24
-
25
- def cache_remove(k, self_ref=weakref.ref(self)):
26
- if (ref_self := self_ref()) is not None:
27
- cache = ref_self._dispatch_cache # noqa
28
- try:
29
- del cache[k]
30
- except KeyError:
31
- pass
32
-
33
- self._cache_remove = cache_remove
34
-
35
- self._cache_token: ta.Any = None
36
-
37
- def cache_size(self) -> int:
38
- return len(self._dispatch_cache)
39
-
40
- def register(self, impl: T, cls_col: ta.Iterable[type]) -> T:
41
- for cls in cls_col:
42
- self._impls_by_arg_cls[cls] = impl
43
-
44
- if self._cache_token is None and hasattr(cls, '__abstractmethods__'):
45
- self._cache_token = abc.get_cache_token()
46
-
47
- self._dispatch_cache.clear()
48
- return impl
49
-
50
- def dispatch(self, cls: type) -> T | None:
51
- if self._cache_token is not None and (current_token := abc.get_cache_token()) != self._cache_token:
52
- self._dispatch_cache.clear()
53
- self._cache_token = current_token
54
-
55
- cls_ref = weakref.ref(cls)
56
- try:
57
- return self._dispatch_cache[cls_ref]
58
- except KeyError:
59
- pass
60
- del cls_ref
61
-
62
- impl: T | None
63
- try:
64
- impl = self._impls_by_arg_cls[cls]
65
- except KeyError:
66
- impl = self._find_impl(cls, self._impls_by_arg_cls)
67
-
68
- self._dispatch_cache[weakref.ref(cls, self._cache_remove)] = impl
69
- return impl