omlish 0.0.0.dev423__py3-none-any.whl → 0.0.0.dev484__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.

Potentially problematic release.


This version of omlish might be problematic. Click here for more details.

Files changed (464) hide show
  1. omlish/{.manifests.json → .omlish-manifests.json} +12 -0
  2. omlish/__about__.py +21 -18
  3. omlish/argparse/all.py +17 -9
  4. omlish/argparse/cli.py +16 -3
  5. omlish/argparse/utils.py +21 -0
  6. omlish/asyncs/all.py +0 -13
  7. omlish/asyncs/asyncio/rlock.py +110 -0
  8. omlish/asyncs/asyncio/subprocesses.py +2 -2
  9. omlish/asyncs/asyncio/sync.py +43 -0
  10. omlish/asyncs/asyncio/utils.py +2 -0
  11. omlish/asyncs/ioproxy/proxy.py +1 -1
  12. omlish/asyncs/sync.py +25 -0
  13. omlish/bootstrap/_marshal.py +1 -1
  14. omlish/bootstrap/diag.py +12 -21
  15. omlish/bootstrap/main.py +2 -5
  16. omlish/bootstrap/sys.py +27 -28
  17. omlish/c3.py +4 -1
  18. omlish/cexts/include/omlish/omlish.hh +1 -0
  19. omlish/collections/__init__.py +13 -1
  20. omlish/collections/attrregistry.py +210 -0
  21. omlish/collections/cache/impl.py +3 -2
  22. omlish/collections/identity.py +1 -0
  23. omlish/collections/mappings.py +28 -0
  24. omlish/collections/trie.py +5 -1
  25. omlish/collections/utils.py +77 -0
  26. omlish/concurrent/__init__.py +0 -11
  27. omlish/concurrent/all.py +18 -0
  28. omlish/concurrent/futures.py +25 -0
  29. omlish/concurrent/threadlets.py +1 -1
  30. omlish/configs/processing/flattening.py +1 -1
  31. omlish/configs/processing/merging.py +8 -6
  32. omlish/configs/types.py +1 -1
  33. omlish/daemons/__init__.py +70 -0
  34. omlish/daemons/daemon.py +2 -2
  35. omlish/daemons/launching.py +2 -2
  36. omlish/daemons/reparent.py +2 -3
  37. omlish/daemons/spawning.py +2 -3
  38. omlish/dataclasses/__init__.py +5 -5
  39. omlish/dataclasses/errors.py +1 -1
  40. omlish/dataclasses/impl/api/classes/decorator.py +3 -0
  41. omlish/dataclasses/impl/api/classes/make.py +4 -1
  42. omlish/dataclasses/impl/concerns/doc.py +1 -1
  43. omlish/dataclasses/impl/concerns/repr.py +15 -2
  44. omlish/dataclasses/impl/configs.py +97 -36
  45. omlish/dataclasses/impl/generation/compilation.py +21 -19
  46. omlish/dataclasses/impl/generation/globals.py +1 -0
  47. omlish/dataclasses/impl/generation/ops.py +1 -0
  48. omlish/dataclasses/impl/generation/processor.py +105 -24
  49. omlish/dataclasses/impl/processing/base.py +8 -0
  50. omlish/dataclasses/impl/processing/driving.py +8 -8
  51. omlish/dataclasses/specs.py +34 -2
  52. omlish/dataclasses/tools/as_.py +0 -12
  53. omlish/dataclasses/tools/modifiers.py +5 -0
  54. omlish/dataclasses/tools/static.py +1 -1
  55. omlish/diag/_pycharm/runhack.py +1 -1
  56. omlish/diag/{lslocks.py → cmds/lslocks.py} +6 -6
  57. omlish/diag/{lsof.py → cmds/lsof.py} +6 -6
  58. omlish/diag/{ps.py → cmds/ps.py} +6 -6
  59. omlish/diag/procfs.py +4 -4
  60. omlish/diag/pycharm.py +16 -2
  61. omlish/diag/pydevd.py +58 -40
  62. omlish/diag/replserver/console.py +3 -3
  63. omlish/diag/replserver/server.py +2 -2
  64. omlish/dispatch/__init__.py +18 -12
  65. omlish/dispatch/methods.py +50 -140
  66. omlish/dom/rendering.py +1 -1
  67. omlish/formats/dotenv.py +8 -8
  68. omlish/formats/json/stream/__init__.py +18 -3
  69. omlish/formats/json/stream/building.py +2 -2
  70. omlish/formats/json/stream/lexing.py +401 -67
  71. omlish/formats/json/stream/parsing.py +32 -10
  72. omlish/formats/json/stream/rendering.py +6 -6
  73. omlish/formats/json/stream/utils.py +132 -30
  74. omlish/formats/json5/literals.py +7 -4
  75. omlish/formats/json5/parsing.py +33 -79
  76. omlish/formats/json5/stream.py +77 -0
  77. omlish/formats/logfmt.py +8 -2
  78. omlish/funcs/genmachine.py +2 -2
  79. omlish/funcs/guard.py +225 -0
  80. omlish/graphs/dot/rendering.py +1 -1
  81. omlish/http/all.py +122 -53
  82. omlish/http/asgi.py +2 -2
  83. omlish/http/clients/__init__.py +0 -34
  84. omlish/http/clients/asyncs.py +153 -0
  85. omlish/http/clients/base.py +63 -122
  86. omlish/http/clients/coro/sync.py +171 -0
  87. omlish/http/clients/default.py +209 -30
  88. omlish/http/clients/executor.py +56 -0
  89. omlish/http/clients/httpx.py +78 -13
  90. omlish/http/clients/middleware.py +181 -0
  91. omlish/http/clients/sync.py +151 -0
  92. omlish/http/clients/syncasync.py +49 -0
  93. omlish/http/clients/urllib.py +8 -5
  94. omlish/http/coro/client/{client.py → connection.py} +43 -37
  95. omlish/http/coro/client/headers.py +5 -5
  96. omlish/http/coro/client/response.py +37 -38
  97. omlish/http/coro/client/status.py +4 -4
  98. omlish/http/coro/{client/io.py → io.py} +19 -2
  99. omlish/http/coro/server/fdio.py +10 -9
  100. omlish/http/coro/server/server.py +14 -41
  101. omlish/http/coro/server/sockets.py +7 -6
  102. omlish/http/flasky/__init__.py +40 -0
  103. omlish/http/flasky/_compat.py +2 -0
  104. omlish/http/flasky/api.py +82 -0
  105. omlish/http/flasky/app.py +203 -0
  106. omlish/http/flasky/cvs.py +59 -0
  107. omlish/http/flasky/requests.py +20 -0
  108. omlish/http/flasky/responses.py +23 -0
  109. omlish/http/flasky/routes.py +23 -0
  110. omlish/http/flasky/types.py +15 -0
  111. omlish/http/handlers.py +3 -2
  112. omlish/http/headers.py +69 -35
  113. omlish/http/sse.py +1 -1
  114. omlish/http/urls.py +67 -0
  115. omlish/inject/__init__.py +173 -126
  116. omlish/inject/_dataclasses.py +4986 -0
  117. omlish/inject/binder.py +10 -49
  118. omlish/inject/elements.py +27 -0
  119. omlish/inject/{utils.py → helpers/constfn.py} +3 -3
  120. omlish/inject/{tags.py → helpers/id.py} +2 -2
  121. omlish/inject/helpers/multis.py +143 -0
  122. omlish/inject/helpers/wrappers.py +54 -0
  123. omlish/inject/impl/elements.py +52 -22
  124. omlish/inject/impl/injector.py +76 -49
  125. omlish/inject/impl/inspect.py +11 -1
  126. omlish/inject/impl/maysync.py +43 -0
  127. omlish/inject/impl/multis.py +10 -7
  128. omlish/inject/impl/privates.py +8 -8
  129. omlish/inject/impl/providers.py +23 -34
  130. omlish/inject/impl/providersmap.py +43 -0
  131. omlish/inject/impl/proxy.py +0 -2
  132. omlish/inject/impl/scopes.py +19 -23
  133. omlish/inject/impl/sync.py +41 -0
  134. omlish/inject/injector.py +37 -8
  135. omlish/inject/inspect.py +35 -0
  136. omlish/inject/listeners.py +4 -4
  137. omlish/inject/managed.py +54 -18
  138. omlish/inject/maysync.py +27 -0
  139. omlish/inject/multis.py +8 -0
  140. omlish/inject/overrides.py +3 -3
  141. omlish/inject/privates.py +6 -0
  142. omlish/inject/providers.py +8 -1
  143. omlish/inject/scopes.py +40 -12
  144. omlish/inject/sync.py +49 -0
  145. omlish/io/buffers.py +119 -1
  146. omlish/io/readers.py +29 -0
  147. omlish/iterators/__init__.py +28 -20
  148. omlish/iterators/transforms.py +204 -0
  149. omlish/lang/__init__.py +240 -129
  150. omlish/lang/_asyncs.cc +186 -0
  151. omlish/lang/asyncs.py +67 -43
  152. omlish/lang/{attrs.py → attrstorage.py} +15 -15
  153. omlish/lang/cached/property.py +2 -2
  154. omlish/lang/casing.py +11 -0
  155. omlish/lang/classes/bindable.py +2 -3
  156. omlish/lang/classes/restrict.py +8 -0
  157. omlish/lang/classes/simple.py +26 -4
  158. omlish/lang/collections.py +1 -1
  159. omlish/lang/contextmanagers.py +59 -9
  160. omlish/lang/functions.py +31 -33
  161. omlish/lang/imports/_capture.cc +103 -0
  162. omlish/lang/imports/capture.py +902 -0
  163. omlish/lang/imports/lazy.py +0 -25
  164. omlish/lang/imports/proxy.py +559 -0
  165. omlish/lang/iterables.py +2 -2
  166. omlish/lang/lazyglobals.py +49 -14
  167. omlish/lang/maybes.py +2 -1
  168. omlish/lang/maysync.py +2 -2
  169. omlish/lang/params.py +17 -0
  170. omlish/lang/recursion.py +0 -1
  171. omlish/lang/resources.py +1 -1
  172. omlish/lang/sequences.py +124 -0
  173. omlish/lifecycles/contextmanagers.py +1 -2
  174. omlish/lifecycles/controller.py +1 -2
  175. omlish/lite/abstract.py +54 -24
  176. omlish/lite/asyncs.py +146 -0
  177. omlish/lite/attrops.py +415 -0
  178. omlish/lite/cached.py +57 -1
  179. omlish/lite/contextmanagers.py +4 -4
  180. omlish/lite/dataclasses.py +55 -0
  181. omlish/lite/inject.py +5 -4
  182. omlish/lite/marshal.py +1 -0
  183. omlish/lite/maybes.py +10 -2
  184. omlish/lite/maysync.py +22 -5
  185. omlish/lite/pycharm.py +1 -1
  186. omlish/lite/strings.py +0 -7
  187. omlish/lite/timing.py +6 -3
  188. omlish/lite/typing.py +6 -0
  189. omlish/logs/_amalg.py +8 -0
  190. omlish/logs/all.py +59 -31
  191. omlish/logs/base.py +204 -0
  192. omlish/logs/contexts.py +171 -0
  193. omlish/logs/formatters.py +13 -0
  194. omlish/logs/infos.py +377 -0
  195. omlish/logs/levels.py +97 -0
  196. omlish/logs/modules.py +13 -0
  197. omlish/logs/protocols.py +32 -0
  198. omlish/logs/standard.py +20 -15
  199. omlish/logs/std/configs.py +29 -0
  200. omlish/logs/{filters.py → std/filters.py} +1 -1
  201. omlish/logs/std/formatters.py +25 -0
  202. omlish/logs/std/handlers.py +19 -0
  203. omlish/logs/{json.py → std/json.py} +2 -2
  204. omlish/logs/std/loggers.py +48 -0
  205. omlish/logs/{proxy.py → std/proxy.py} +3 -3
  206. omlish/logs/std/records.py +671 -0
  207. omlish/logs/typed/bindings.py +108 -37
  208. omlish/logs/typed/types.py +17 -1
  209. omlish/logs/typed/values.py +2 -2
  210. omlish/logs/utils.py +60 -4
  211. omlish/logs/warnings.py +8 -0
  212. omlish/manifests/loading.py +8 -1
  213. omlish/marshal/__init__.py +54 -22
  214. omlish/marshal/_dataclasses.py +2774 -0
  215. omlish/marshal/base/configs.py +12 -0
  216. omlish/marshal/base/contexts.py +36 -21
  217. omlish/marshal/base/funcs.py +8 -11
  218. omlish/marshal/base/options.py +8 -0
  219. omlish/marshal/base/registries.py +146 -44
  220. omlish/marshal/base/types.py +40 -16
  221. omlish/marshal/composite/iterables.py +33 -20
  222. omlish/marshal/composite/literals.py +20 -18
  223. omlish/marshal/composite/mappings.py +36 -23
  224. omlish/marshal/composite/maybes.py +29 -19
  225. omlish/marshal/composite/newtypes.py +16 -16
  226. omlish/marshal/composite/optionals.py +14 -14
  227. omlish/marshal/composite/special.py +15 -15
  228. omlish/marshal/composite/unions/literals.py +93 -0
  229. omlish/marshal/composite/unions/primitives.py +103 -0
  230. omlish/marshal/factories/invalidate.py +18 -68
  231. omlish/marshal/factories/method.py +26 -0
  232. omlish/marshal/factories/moduleimport/factories.py +22 -65
  233. omlish/marshal/factories/multi.py +13 -25
  234. omlish/marshal/factories/recursive.py +42 -56
  235. omlish/marshal/factories/typecache.py +29 -74
  236. omlish/marshal/factories/typemap.py +42 -43
  237. omlish/marshal/objects/dataclasses.py +129 -106
  238. omlish/marshal/objects/marshal.py +18 -14
  239. omlish/marshal/objects/namedtuples.py +48 -42
  240. omlish/marshal/objects/unmarshal.py +19 -15
  241. omlish/marshal/polymorphism/marshal.py +9 -11
  242. omlish/marshal/polymorphism/metadata.py +16 -5
  243. omlish/marshal/polymorphism/standard.py +13 -1
  244. omlish/marshal/polymorphism/unions.py +15 -105
  245. omlish/marshal/polymorphism/unmarshal.py +9 -10
  246. omlish/marshal/singular/enums.py +14 -18
  247. omlish/marshal/standard.py +10 -6
  248. omlish/marshal/trivial/any.py +1 -1
  249. omlish/marshal/trivial/forbidden.py +21 -26
  250. omlish/math/fixed.py +2 -2
  251. omlish/metadata.py +23 -1
  252. omlish/os/atomics.py +2 -2
  253. omlish/os/forkhooks.py +4 -0
  254. omlish/os/journald.py +3 -3
  255. omlish/os/pidfiles/pinning.py +2 -2
  256. omlish/reflect/ops.py +9 -0
  257. omlish/reflect/types.py +44 -8
  258. omlish/secrets/marshal.py +1 -1
  259. omlish/secrets/secrets.py +6 -3
  260. omlish/sockets/addresses.py +1 -1
  261. omlish/sockets/server/handlers.py +2 -2
  262. omlish/sockets/server/server.py +4 -3
  263. omlish/sockets/server/ssl.py +2 -2
  264. omlish/specs/jmespath/__init__.py +12 -3
  265. omlish/specs/jmespath/_dataclasses.py +2893 -0
  266. omlish/specs/jmespath/ast.py +1 -1
  267. omlish/specs/jsonrpc/__init__.py +13 -0
  268. omlish/specs/jsonrpc/_marshal.py +32 -23
  269. omlish/specs/jsonrpc/conns.py +10 -7
  270. omlish/specs/jsonschema/_marshal.py +1 -1
  271. omlish/specs/jsonschema/keywords/__init__.py +7 -0
  272. omlish/specs/jsonschema/keywords/_dataclasses.py +1644 -0
  273. omlish/specs/openapi/_marshal.py +31 -22
  274. omlish/sql/__init__.py +15 -20
  275. omlish/sql/{tabledefs/alchemy.py → alchemy/tabledefs.py} +2 -2
  276. omlish/sql/queries/_marshal.py +3 -3
  277. omlish/sql/queries/params.py +1 -1
  278. omlish/sql/queries/rendering.py +1 -1
  279. omlish/sql/tabledefs/_marshal.py +1 -1
  280. omlish/subprocesses/all.py +135 -0
  281. omlish/subprocesses/base.py +8 -3
  282. omlish/subprocesses/editor.py +1 -1
  283. omlish/sync.py +181 -20
  284. omlish/term/alt.py +60 -0
  285. omlish/term/confirm.py +8 -8
  286. omlish/term/pager.py +235 -0
  287. omlish/term/terminfo.py +935 -0
  288. omlish/term/termstate.py +67 -0
  289. omlish/term/vt100/terminal.py +0 -3
  290. omlish/testing/pytest/plugins/asyncs/fixtures.py +4 -1
  291. omlish/testing/pytest/plugins/skips.py +2 -5
  292. omlish/testing/unittest/main.py +3 -3
  293. omlish/text/docwrap/__init__.py +3 -0
  294. omlish/text/docwrap/__main__.py +11 -0
  295. omlish/text/docwrap/api.py +83 -0
  296. omlish/text/docwrap/cli.py +86 -0
  297. omlish/text/docwrap/groups.py +84 -0
  298. omlish/text/docwrap/lists.py +167 -0
  299. omlish/text/docwrap/parts.py +146 -0
  300. omlish/text/docwrap/reflowing.py +106 -0
  301. omlish/text/docwrap/rendering.py +151 -0
  302. omlish/text/docwrap/utils.py +11 -0
  303. omlish/text/docwrap/wrapping.py +59 -0
  304. omlish/text/filecache.py +2 -2
  305. omlish/text/lorem.py +6 -0
  306. omlish/text/parts.py +2 -2
  307. omlish/text/textwrap.py +51 -0
  308. omlish/typedvalues/__init__.py +1 -1
  309. omlish/typedvalues/marshal.py +85 -59
  310. omlish/typedvalues/values.py +2 -1
  311. {omlish-0.0.0.dev423.dist-info → omlish-0.0.0.dev484.dist-info}/METADATA +36 -38
  312. {omlish-0.0.0.dev423.dist-info → omlish-0.0.0.dev484.dist-info}/RECORD +323 -385
  313. omlish/asyncs/bluelet/LICENSE +0 -6
  314. omlish/asyncs/bluelet/all.py +0 -67
  315. omlish/asyncs/bluelet/api.py +0 -23
  316. omlish/asyncs/bluelet/core.py +0 -178
  317. omlish/asyncs/bluelet/events.py +0 -79
  318. omlish/asyncs/bluelet/files.py +0 -80
  319. omlish/asyncs/bluelet/runner.py +0 -417
  320. omlish/asyncs/bluelet/sockets.py +0 -216
  321. omlish/asyncs/bridge.py +0 -359
  322. omlish/asyncs/utils.py +0 -18
  323. omlish/dataclasses/impl/generation/mangling.py +0 -18
  324. omlish/defs.py +0 -216
  325. omlish/dispatch/_dispatch2.py +0 -69
  326. omlish/dispatch/_dispatch3.py +0 -108
  327. omlish/dynamic.py +0 -219
  328. omlish/formats/json/Json.g4 +0 -77
  329. omlish/formats/json/_antlr/JsonLexer.py +0 -109
  330. omlish/formats/json/_antlr/JsonListener.py +0 -61
  331. omlish/formats/json/_antlr/JsonParser.py +0 -457
  332. omlish/formats/json/_antlr/JsonVisitor.py +0 -42
  333. omlish/formats/json5/Json5.g4 +0 -168
  334. omlish/formats/json5/_antlr/Json5Lexer.py +0 -354
  335. omlish/formats/json5/_antlr/Json5Listener.py +0 -79
  336. omlish/formats/json5/_antlr/Json5Parser.py +0 -617
  337. omlish/formats/json5/_antlr/Json5Visitor.py +0 -52
  338. omlish/funcs/match.py +0 -227
  339. omlish/io/trampoline.py +0 -289
  340. omlish/lang/imports/proxyinit.py +0 -665
  341. omlish/lite/logs.py +0 -4
  342. omlish/lite/reprs.py +0 -85
  343. omlish/logs/abc.py +0 -319
  344. omlish/logs/callers.py +0 -67
  345. omlish/logs/color.py +0 -27
  346. omlish/logs/configs.py +0 -29
  347. omlish/logs/handlers.py +0 -17
  348. omlish/logs/protocol.py +0 -218
  349. omlish/logs/timing.py +0 -58
  350. omlish/marshal/factories/match.py +0 -34
  351. omlish/marshal/factories/simple.py +0 -28
  352. omlish/specs/irc/messages/base.py +0 -49
  353. omlish/specs/irc/messages/formats.py +0 -92
  354. omlish/specs/irc/messages/messages.py +0 -774
  355. omlish/specs/irc/messages/parsing.py +0 -98
  356. omlish/specs/irc/numerics/formats.py +0 -97
  357. omlish/specs/irc/numerics/numerics.py +0 -865
  358. omlish/specs/irc/numerics/types.py +0 -59
  359. omlish/specs/irc/protocol/LICENSE +0 -11
  360. omlish/specs/irc/protocol/__init__.py +0 -61
  361. omlish/specs/irc/protocol/consts.py +0 -6
  362. omlish/specs/irc/protocol/errors.py +0 -30
  363. omlish/specs/irc/protocol/message.py +0 -21
  364. omlish/specs/irc/protocol/nuh.py +0 -55
  365. omlish/specs/irc/protocol/parsing.py +0 -158
  366. omlish/specs/irc/protocol/rendering.py +0 -153
  367. omlish/specs/irc/protocol/tags.py +0 -102
  368. omlish/specs/irc/protocol/utils.py +0 -30
  369. omlish/specs/proto/Protobuf3.g4 +0 -396
  370. omlish/specs/proto/__init__.py +0 -0
  371. omlish/specs/proto/_antlr/Protobuf3Lexer.py +0 -340
  372. omlish/specs/proto/_antlr/Protobuf3Listener.py +0 -448
  373. omlish/specs/proto/_antlr/Protobuf3Parser.py +0 -3909
  374. omlish/specs/proto/_antlr/Protobuf3Visitor.py +0 -257
  375. omlish/specs/proto/_antlr/__init__.py +0 -0
  376. omlish/specs/proto/nodes.py +0 -54
  377. omlish/specs/proto/parsing.py +0 -97
  378. omlish/sql/parsing/Minisql.g4 +0 -292
  379. omlish/sql/parsing/__init__.py +0 -0
  380. omlish/sql/parsing/_antlr/MinisqlLexer.py +0 -322
  381. omlish/sql/parsing/_antlr/MinisqlListener.py +0 -511
  382. omlish/sql/parsing/_antlr/MinisqlParser.py +0 -3763
  383. omlish/sql/parsing/_antlr/MinisqlVisitor.py +0 -292
  384. omlish/sql/parsing/_antlr/__init__.py +0 -0
  385. omlish/sql/parsing/parsing.py +0 -119
  386. omlish/text/antlr/__init__.py +0 -3
  387. omlish/text/antlr/_runtime/BufferedTokenStream.py +0 -305
  388. omlish/text/antlr/_runtime/CommonTokenFactory.py +0 -64
  389. omlish/text/antlr/_runtime/CommonTokenStream.py +0 -90
  390. omlish/text/antlr/_runtime/FileStream.py +0 -30
  391. omlish/text/antlr/_runtime/InputStream.py +0 -90
  392. omlish/text/antlr/_runtime/IntervalSet.py +0 -183
  393. omlish/text/antlr/_runtime/LICENSE.txt +0 -28
  394. omlish/text/antlr/_runtime/LL1Analyzer.py +0 -176
  395. omlish/text/antlr/_runtime/Lexer.py +0 -332
  396. omlish/text/antlr/_runtime/ListTokenSource.py +0 -147
  397. omlish/text/antlr/_runtime/Parser.py +0 -583
  398. omlish/text/antlr/_runtime/ParserInterpreter.py +0 -173
  399. omlish/text/antlr/_runtime/ParserRuleContext.py +0 -189
  400. omlish/text/antlr/_runtime/PredictionContext.py +0 -632
  401. omlish/text/antlr/_runtime/Recognizer.py +0 -150
  402. omlish/text/antlr/_runtime/RuleContext.py +0 -230
  403. omlish/text/antlr/_runtime/StdinStream.py +0 -14
  404. omlish/text/antlr/_runtime/Token.py +0 -158
  405. omlish/text/antlr/_runtime/TokenStreamRewriter.py +0 -258
  406. omlish/text/antlr/_runtime/Utils.py +0 -36
  407. omlish/text/antlr/_runtime/__init__.py +0 -2
  408. omlish/text/antlr/_runtime/_all.py +0 -24
  409. omlish/text/antlr/_runtime/_pygrun.py +0 -174
  410. omlish/text/antlr/_runtime/atn/ATN.py +0 -135
  411. omlish/text/antlr/_runtime/atn/ATNConfig.py +0 -162
  412. omlish/text/antlr/_runtime/atn/ATNConfigSet.py +0 -215
  413. omlish/text/antlr/_runtime/atn/ATNDeserializationOptions.py +0 -27
  414. omlish/text/antlr/_runtime/atn/ATNDeserializer.py +0 -449
  415. omlish/text/antlr/_runtime/atn/ATNSimulator.py +0 -50
  416. omlish/text/antlr/_runtime/atn/ATNState.py +0 -267
  417. omlish/text/antlr/_runtime/atn/ATNType.py +0 -20
  418. omlish/text/antlr/_runtime/atn/LexerATNSimulator.py +0 -573
  419. omlish/text/antlr/_runtime/atn/LexerAction.py +0 -301
  420. omlish/text/antlr/_runtime/atn/LexerActionExecutor.py +0 -146
  421. omlish/text/antlr/_runtime/atn/ParserATNSimulator.py +0 -1664
  422. omlish/text/antlr/_runtime/atn/PredictionMode.py +0 -502
  423. omlish/text/antlr/_runtime/atn/SemanticContext.py +0 -333
  424. omlish/text/antlr/_runtime/atn/Transition.py +0 -271
  425. omlish/text/antlr/_runtime/atn/__init__.py +0 -4
  426. omlish/text/antlr/_runtime/dfa/DFA.py +0 -136
  427. omlish/text/antlr/_runtime/dfa/DFASerializer.py +0 -76
  428. omlish/text/antlr/_runtime/dfa/DFAState.py +0 -129
  429. omlish/text/antlr/_runtime/dfa/__init__.py +0 -4
  430. omlish/text/antlr/_runtime/error/DiagnosticErrorListener.py +0 -111
  431. omlish/text/antlr/_runtime/error/ErrorListener.py +0 -75
  432. omlish/text/antlr/_runtime/error/ErrorStrategy.py +0 -712
  433. omlish/text/antlr/_runtime/error/Errors.py +0 -176
  434. omlish/text/antlr/_runtime/error/__init__.py +0 -4
  435. omlish/text/antlr/_runtime/tree/Chunk.py +0 -33
  436. omlish/text/antlr/_runtime/tree/ParseTreeMatch.py +0 -121
  437. omlish/text/antlr/_runtime/tree/ParseTreePattern.py +0 -75
  438. omlish/text/antlr/_runtime/tree/ParseTreePatternMatcher.py +0 -377
  439. omlish/text/antlr/_runtime/tree/RuleTagToken.py +0 -53
  440. omlish/text/antlr/_runtime/tree/TokenTagToken.py +0 -50
  441. omlish/text/antlr/_runtime/tree/Tree.py +0 -194
  442. omlish/text/antlr/_runtime/tree/Trees.py +0 -114
  443. omlish/text/antlr/_runtime/tree/__init__.py +0 -2
  444. omlish/text/antlr/_runtime/xpath/XPath.py +0 -278
  445. omlish/text/antlr/_runtime/xpath/XPathLexer.py +0 -98
  446. omlish/text/antlr/_runtime/xpath/__init__.py +0 -4
  447. omlish/text/antlr/delimit.py +0 -109
  448. omlish/text/antlr/dot.py +0 -41
  449. omlish/text/antlr/errors.py +0 -14
  450. omlish/text/antlr/input.py +0 -96
  451. omlish/text/antlr/parsing.py +0 -54
  452. omlish/text/antlr/runtime.py +0 -102
  453. omlish/text/antlr/utils.py +0 -38
  454. /omlish/{asyncs/bluelet → cexts}/__init__.py +0 -0
  455. /omlish/{formats/json/_antlr → diag/cmds}/__init__.py +0 -0
  456. /omlish/{formats/json5/_antlr → http/clients/coro}/__init__.py +0 -0
  457. /omlish/{specs/irc → inject/helpers}/__init__.py +0 -0
  458. /omlish/{specs/irc/messages → logs/std}/__init__.py +0 -0
  459. /omlish/logs/{noisy.py → std/noisy.py} +0 -0
  460. /omlish/{specs/irc/numerics → marshal/composite/unions}/__init__.py +0 -0
  461. {omlish-0.0.0.dev423.dist-info → omlish-0.0.0.dev484.dist-info}/WHEEL +0 -0
  462. {omlish-0.0.0.dev423.dist-info → omlish-0.0.0.dev484.dist-info}/entry_points.txt +0 -0
  463. {omlish-0.0.0.dev423.dist-info → omlish-0.0.0.dev484.dist-info}/licenses/LICENSE +0 -0
  464. {omlish-0.0.0.dev423.dist-info → omlish-0.0.0.dev484.dist-info}/top_level.txt +0 -0
omlish/lite/reprs.py DELETED
@@ -1,85 +0,0 @@
1
- # ruff: noqa: UP007 UP045
2
- import dataclasses as dc
3
- import typing as ta
4
-
5
-
6
- ##
7
-
8
-
9
- @dc.dataclass(frozen=True)
10
- class AttrRepr:
11
- attrs: ta.Sequence[str]
12
-
13
- # _: dc.KW_ONLY
14
-
15
- with_module: bool = False
16
- use_qualname: bool = False
17
- with_id: bool = False
18
- value_filter: ta.Optional[ta.Callable[[ta.Any], bool]] = None
19
- recursive: bool = False
20
-
21
- @classmethod
22
- def of(cls, *attrs: str, **kwargs: ta.Any) -> 'AttrRepr':
23
- return cls(attrs, **kwargs)
24
-
25
- #
26
-
27
- def _build_(self, obj: ta.Any) -> str:
28
- vs = ', '.join(
29
- f'{attr}={v!r}'
30
- for attr in self.attrs
31
- for v in [getattr(obj, attr)]
32
- if self.value_filter is None or self.value_filter(v)
33
- )
34
-
35
- return (
36
- f'{obj.__class__.__module__ + "." if self.with_module else ""}'
37
- f'{obj.__class__.__qualname__ if self.use_qualname else obj.__class__.__name__}'
38
- f'{("@" + hex(id(obj))[2:]) if self.with_id else ""}'
39
- f'({vs})'
40
- )
41
-
42
- _build: ta.ClassVar[ta.Callable[[ta.Any], str]]
43
-
44
- def __call__(self, obj: ta.Any) -> str:
45
- try:
46
- build: ta.Any = self._build
47
-
48
- except AttributeError:
49
- build = self._build_
50
- if self.recursive:
51
- build = self._reprlib().recursive_repr()(build)
52
- object.__setattr__(self, '_build', build)
53
-
54
- return build(obj)
55
-
56
- #
57
-
58
- def __get__(self, instance, owner):
59
- if instance is None:
60
- return self
61
-
62
- def __repr__(other): # noqa
63
- return self(other)
64
-
65
- return __repr__.__get__(instance, owner)
66
-
67
- #
68
-
69
- _reprlib_: ta.ClassVar[ta.Any]
70
-
71
- @classmethod
72
- def _reprlib(cls) -> ta.Any:
73
- try:
74
- return cls._reprlib_
75
- except AttributeError:
76
- pass
77
-
78
- import reprlib # noqa
79
-
80
- cls._reprlib_ = reprlib
81
- return reprlib
82
-
83
-
84
- def attr_repr(obj: ta.Any, *attrs: str, **kwargs: ta.Any) -> str:
85
- return AttrRepr(attrs, **kwargs)(obj)
omlish/logs/abc.py DELETED
@@ -1,319 +0,0 @@
1
- # ruff: noqa: A002 N802 N815
2
- import types
3
- import typing as ta
4
-
5
-
6
- ##
7
-
8
-
9
- Level: ta.TypeAlias = int
10
-
11
-
12
- ExceptionInfo: ta.TypeAlias = tuple[type[BaseException], BaseException, types.TracebackType]
13
-
14
-
15
- class LogRecord:
16
- """https://docs.python.org/3/library/logging.html#logrecord-attributes"""
17
-
18
- # Name of the logger used to log the call.
19
- name: str
20
-
21
- # Human-readable time when the LogRecord was created. By default this is of the form '2003-07-08 16:49:45,896' (the
22
- # numbers after the comma are millisecond portion of the time).
23
- asctime: str
24
-
25
- # The logged message, computed as msg % args. This is set when Formatter.format() is invoked.
26
- message: str
27
-
28
- # The format string passed in the original logging call. Merged with args to produce message, or an arbitrary object
29
- # (see Using arbitrary objects as messages).
30
- msg: str
31
-
32
- # The tuple of arguments merged into msg to produce message, or a dict whose values are used for the merge (when
33
- # there is only one argument, and it is a dictionary).
34
- args: tuple
35
-
36
- # Text logging level for the message ('DEBUG', 'INFO', 'WARNING', 'ERROR', 'CRITICAL').
37
- levelname: str
38
-
39
- # # Numeric logging level for the message (DEBUG, INFO, WARNING, ERROR, CRITICAL).
40
- levelno: Level
41
-
42
- # Full pathname of the source file where the logging call was issued (if available).
43
- pathname: str
44
-
45
- # Filename portion of pathname.
46
- filename: str
47
-
48
- # Module (name portion of filename).
49
- module: str
50
-
51
- # Exception tuple (à la sys.exc_info) or, if no exception has occurred, None.
52
- exc_info: ExceptionInfo | None
53
-
54
- exc_text: str | None
55
-
56
- # Stack frame information (where available) from the bottom of the stack in the current thread, up to and including
57
- # the stack frame of the logging call which resulted in the creation of this record.
58
- stack_info: str | None
59
-
60
- # Source line number where the logging call was issued (if available).
61
- lineno: int
62
-
63
- # Name of function containing the logging call.
64
- funcName: str
65
-
66
- # Time when the LogRecord was created (as returned by time.time_ns() / 1e9).
67
- created: float
68
-
69
- # Millisecond portion of the time when the LogRecord was created.
70
- msecs: float
71
-
72
- # Time in milliseconds when the LogRecord was created, relative to the time the logging module was loaded.
73
- relativeCreated: float
74
-
75
- # Thread ID (if available).
76
- thread: int
77
-
78
- # Thread name (if available).
79
- threadName: str
80
-
81
- # Process name (if available).
82
- processName: str
83
-
84
- # Process ID (if available).
85
- process: int
86
-
87
- # asyncio.Task name (if available).
88
- taskName: str
89
-
90
-
91
- ##
92
-
93
-
94
- class Formatter(ta.Protocol):
95
- """https://docs.python.org/3/library/logging.html#formatter-objects"""
96
-
97
- default_time_format: ta.ClassVar[str]
98
- default_msec_format: ta.ClassVar[str]
99
-
100
- def formatTime(self, record: LogRecord, datefmt: str | None = None) -> str: ...
101
-
102
- def formatException(self, ei: ExceptionInfo) -> str: ...
103
-
104
- def usesTime(self) -> bool: ...
105
-
106
- def formatMessage(self, record: LogRecord) -> str: ...
107
-
108
- def formatStack(self, stack_info: str) -> str: ...
109
-
110
- def format(self, record: LogRecord) -> str: ...
111
-
112
-
113
- class BufferingFormatter(ta.Protocol):
114
- """https://docs.python.org/3/library/logging.html#logging.BufferingFormatter"""
115
-
116
- def formatHeader(self, records: ta.Sequence[LogRecord]) -> str: ...
117
-
118
- def formatFooter(self, records: ta.Sequence[LogRecord]) -> str: ...
119
-
120
- def format(self, records: ta.Sequence[LogRecord]) -> str: ...
121
-
122
-
123
- ##
124
-
125
-
126
- class Filter(ta.Protocol):
127
- """https://docs.python.org/3/library/logging.html#filter-objects"""
128
-
129
- def filter(self, record: LogRecord) -> bool: ...
130
-
131
-
132
- class Filterer(ta.Protocol):
133
- """A base class for loggers and handlers which allows them to share common code."""
134
-
135
- def addFilter(self, filter: Filter) -> None: ...
136
-
137
- def removeFilter(self, filter: Filter) -> None: ...
138
-
139
- def filter(self, record: LogRecord) -> bool: ...
140
-
141
-
142
- ##
143
-
144
-
145
- class Handler(Filterer, ta.Protocol):
146
- """https://docs.python.org/3/library/logging.html#handler-objects"""
147
-
148
- level: Level
149
-
150
- def get_name(self) -> str: ...
151
-
152
- def set_name(self, name: str) -> None: ...
153
-
154
- name: str
155
-
156
- def createLock(self) -> None: ...
157
-
158
- def acquire(self) -> None: ...
159
-
160
- def release(self) -> None: ...
161
-
162
- def setLevel(self, level: Level) -> None: ...
163
-
164
- def format(self, record: LogRecord) -> str: ...
165
-
166
- def emit(self, record: LogRecord) -> None: ...
167
-
168
- def handle(self, record: LogRecord) -> bool: ...
169
-
170
- def setFormatter(self, fmt: Formatter) -> None: ...
171
-
172
- def flush(self) -> None: ...
173
-
174
- def close(self) -> None: ...
175
-
176
- def handleError(self, record: LogRecord) -> None: ...
177
-
178
-
179
- class Stream(ta.Protocol):
180
- def write(self, s: str) -> None: ...
181
-
182
- def flush(self) -> None: ... # OPTIONAL METHOD
183
-
184
- def close(self) -> None: ... # OPTIONAL METHOD
185
-
186
-
187
- class StreamHandler(Handler, ta.Protocol):
188
- """https://docs.python.org/3/library/logging.handlers.html#logging.StreamHandler"""
189
-
190
- terminator: ta.ClassVar[str]
191
-
192
- stream: Stream
193
-
194
- def flush(self) -> None: ...
195
-
196
- def emit(self, record: LogRecord) -> None: ...
197
-
198
- def setStream(self, stream: Stream) -> None: ...
199
-
200
-
201
- ##
202
-
203
-
204
- class Manager(ta.Protocol):
205
- """There is [under normal circumstances] just one Manager instance, which holds the hierarchy of loggers."""
206
-
207
- root: 'Logger'
208
-
209
- disable: Level
210
-
211
- def getLogger(self, name: str) -> 'Logger': ...
212
-
213
- def setLoggerClass(self, klass: type['Logger']) -> None: ...
214
-
215
- def setLogRecordFactory(self, factory: ta.Callable[..., LogRecord]) -> None: ... # UNREFERENCED?
216
-
217
-
218
- ##
219
-
220
-
221
- Caller: ta.TypeAlias = tuple[
222
- str, # filename
223
- int, # lineno
224
- str, # name
225
- str, # formatted
226
- ]
227
-
228
-
229
- class Logger(Filterer, ta.Protocol):
230
- """https://docs.python.org/3/library/logging.html#logger-objects"""
231
-
232
- name: str
233
- level: Level
234
- parent: ta.Optional['Logger']
235
- propagate: bool
236
- handlers: list[Handler]
237
- disabled: bool
238
-
239
- manager: Manager
240
-
241
- def setLevel(self, level: Level) -> None: ...
242
-
243
- def debug(self, msg: str, *args: ta.Any, **kwargs: ta.Any) -> None: ...
244
- def info(self, msg: str, *args: ta.Any, **kwargs: ta.Any) -> None: ...
245
- def warning(self, msg: str, *args: ta.Any, **kwargs: ta.Any) -> None: ...
246
- def warn(self, msg: str, *args: ta.Any, **kwargs: ta.Any) -> None: ...
247
- def error(self, msg: str, *args: ta.Any, **kwargs: ta.Any) -> None: ...
248
- def exception(self, msg: str, *args: ta.Any, **kwargs: ta.Any) -> None: ...
249
- def critical(self, msg: str, *args: ta.Any, **kwargs: ta.Any) -> None: ...
250
- def fatal(self, msg: str, *args: ta.Any, **kwargs: ta.Any) -> None: ...
251
-
252
- def log(self, level: Level, msg: str, *args: ta.Any, **kwargs: ta.Any) -> None: ...
253
-
254
- def findCaller(self, stack_info: bool = False, stacklevel: int = 1) -> Caller: ...
255
-
256
- def makeRecord(
257
- self,
258
- name,
259
- level,
260
- fn,
261
- lno,
262
- msg,
263
- args,
264
- exc_info,
265
- func: str | None = None,
266
- extra: ta.Mapping[str, ta.Any] | None = None,
267
- sinfo: str | None = None,
268
- ) -> LogRecord: ...
269
-
270
- def handle(self, record: LogRecord) -> None: ...
271
-
272
- def addHandler(self, hdlr: Handler) -> None: ...
273
-
274
- def removeHandler(self, hdlr: Handler) -> None: ...
275
-
276
- def hasHandlers(self) -> bool: ...
277
-
278
- def callHandlers(self, record: LogRecord) -> None: ...
279
-
280
- def getEffectiveLevel(self) -> Level: ...
281
-
282
- def isEnabledFor(self, level: Level) -> bool: ...
283
-
284
- def getChild(self, suffix: str) -> 'Logger': ...
285
-
286
-
287
- ##
288
-
289
-
290
- class LoggerAdapter(ta.Protocol):
291
- """https://docs.python.org/3/library/logging.html#loggeradapter-objects"""
292
-
293
- logger: Logger
294
- extra: ta.Mapping[str, ta.Any]
295
-
296
- def process(self, msg: str, kwargs: dict[str, ta.Any]) -> tuple[str, dict[str, ta.Any]]: ...
297
-
298
- def debug(self, msg: str, *args: ta.Any, **kwargs: ta.Any) -> None: ...
299
- def info(self, msg: str, *args: ta.Any, **kwargs: ta.Any) -> None: ...
300
- def warning(self, msg: str, *args: ta.Any, **kwargs: ta.Any) -> None: ...
301
- def warn(self, msg: str, *args: ta.Any, **kwargs: ta.Any) -> None: ...
302
- def error(self, msg: str, *args: ta.Any, **kwargs: ta.Any) -> None: ...
303
- def exception(self, msg: str, *args: ta.Any, **kwargs: ta.Any) -> None: ...
304
- def critical(self, msg: str, *args: ta.Any, **kwargs: ta.Any) -> None: ...
305
- def fatal(self, msg: str, *args: ta.Any, **kwargs: ta.Any) -> None: ...
306
-
307
- def log(self, level: Level, msg: str, *args: ta.Any, **kwargs: ta.Any) -> None: ...
308
-
309
- def isEnabledFor(self, level: Level) -> bool: ...
310
-
311
- def setLevel(self, level: Level) -> None: ...
312
-
313
- def getEffectiveLevel(self) -> Level: ...
314
-
315
- def hasHandlers(self) -> bool: ...
316
-
317
- manager: Manager
318
-
319
- name: str
omlish/logs/callers.py DELETED
@@ -1,67 +0,0 @@
1
- # ruff: noqa: UP006 UP007 UP045
2
- # @omlish-lite
3
- import io
4
- import os.path
5
- import sys
6
- import traceback
7
- import types
8
- import typing as ta
9
-
10
-
11
- ##
12
-
13
-
14
- class LoggingCaller(ta.NamedTuple):
15
- filename: str
16
- lineno: int
17
- func: str
18
- sinfo: ta.Optional[str]
19
-
20
- @classmethod
21
- def is_internal_frame(cls, frame: types.FrameType) -> bool:
22
- filename = os.path.normcase(frame.f_code.co_filename)
23
-
24
- # https://github.com/python/cpython/commit/5ca6d7469be53960843df39bb900e9c3359f127f
25
- if 'importlib' in filename and '_bootstrap' in filename:
26
- return True
27
-
28
- return False
29
-
30
- @classmethod
31
- def find_frame(cls, ofs: int = 0) -> types.FrameType:
32
- f: ta.Optional[types.FrameType] = sys._getframe(2 + ofs) # noqa
33
-
34
- while f is not None and hasattr(f, 'f_code'):
35
- if f.f_code.co_filename != __file__:
36
- return f
37
-
38
- f = f.f_back
39
-
40
- raise RuntimeError
41
-
42
- @classmethod
43
- def find(
44
- cls,
45
- ofs: int = 0,
46
- *,
47
- stack_info: bool = False,
48
- ) -> 'LoggingCaller':
49
- f = cls.find_frame(ofs + 1)
50
- # TODO: ('(unknown file)', 0, '(unknown function)', None) ?
51
-
52
- sinfo = None
53
- if stack_info:
54
- sio = io.StringIO()
55
- sio.write('Stack (most recent call last):\n')
56
- traceback.print_stack(f, file=sio)
57
- sinfo = sio.getvalue()
58
- sio.close()
59
- if sinfo[-1] == '\n':
60
- sinfo = sinfo[:-1]
61
-
62
- return cls(
63
- f.f_code.co_filename,
64
- f.f_lineno,
65
- f.f_code.co_name,
66
- sinfo,
67
- )
omlish/logs/color.py DELETED
@@ -1,27 +0,0 @@
1
- # ruff: noqa: ANN201 N802
2
- import logging
3
- import typing as ta
4
-
5
- from ..term import codes as tc
6
- from .standard import StandardLogFormatter
7
-
8
-
9
- ##
10
-
11
-
12
- class ColorLogFormatter(StandardLogFormatter):
13
- LEVEL_COLORS: ta.Mapping[int, tc.SGRs.FG] = {
14
- logging.WARNING: tc.SGRs.FG.BRIGHT_YELLOW,
15
- logging.ERROR: tc.SGRs.FG.BRIGHT_RED,
16
- logging.CRITICAL: tc.SGRs.FG.BRIGHT_RED,
17
- }
18
-
19
- def formatMessage(self, record):
20
- buf = super().formatMessage(record)
21
- try:
22
- c = self.LEVEL_COLORS[record.levelno]
23
- except KeyError:
24
- pass
25
- else:
26
- buf = tc.SGR(c) + buf + tc.SGR(tc.SGRs.RESET)
27
- return buf
omlish/logs/configs.py DELETED
@@ -1,29 +0,0 @@
1
- # ruff: noqa: UP006 UP045
2
- # @omlish-lite
3
- """
4
- https://docs.python.org/3/howto/logging.html#configuring-logging
5
- https://docs.python.org/3/library/logging.config.html#logging-config-dictschema
6
- """
7
- import dataclasses as dc
8
- import typing as ta
9
-
10
-
11
- FilterConfig = ta.Dict[str, ta.Any] # ta.TypeAlias
12
- FormatterConfig = ta.Dict[str, ta.Any] # ta.TypeAlias
13
- HandlerConfig = ta.Dict[str, ta.Any] # ta.TypeAlias
14
- LoggerConfig = ta.Dict[str, ta.Any] # ta.TypeAlias
15
-
16
-
17
- ##
18
-
19
-
20
- @dc.dataclass()
21
- class DictConfig:
22
- version: int = 1
23
- incremental: bool = False
24
- disable_existing_loggers: bool = False
25
- filters: ta.Dict[str, FilterConfig] = dc.field(default_factory=dict)
26
- formatters: ta.Dict[str, FormatterConfig] = dc.field(default_factory=dict)
27
- handlers: ta.Dict[str, HandlerConfig] = dc.field(default_factory=dict)
28
- loggers: ta.Dict[str, LoggerConfig] = dc.field(default_factory=dict)
29
- root: ta.Optional[LoggerConfig] = None
omlish/logs/handlers.py DELETED
@@ -1,17 +0,0 @@
1
- # ruff: noqa: UP006 UP007 UP045
2
- # @omlish-lite
3
- import logging
4
- import typing as ta
5
-
6
-
7
- ##
8
-
9
-
10
- class ListHandler(logging.Handler):
11
- def __init__(self) -> None:
12
- super().__init__()
13
-
14
- self.records: ta.List[logging.LogRecord] = []
15
-
16
- def emit(self, record: logging.LogRecord) -> None:
17
- self.records.append(record)