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
@@ -1,162 +0,0 @@
1
- # type: ignore
2
- # ruff: noqa
3
- # flake8: noqa
4
- #
5
- # Copyright (c) 2012-2017 The ANTLR Project. All rights reserved.
6
- # Use of this file is governed by the BSD 3-clause license that
7
- # can be found in the LICENSE.txt file in the project root.
8
- #/
9
-
10
- # A tuple: (ATN state, predicted alt, syntactic, semantic context).
11
- # The syntactic context is a graph-structured stack node whose
12
- # path(s) to the root is the rule invocation(s)
13
- # chain used to arrive at the state. The semantic context is
14
- # the tree of semantic predicates encountered before reaching
15
- # an ATN state.
16
- #/
17
- from io import StringIO
18
- from ..PredictionContext import PredictionContext
19
- from .ATNState import ATNState, DecisionState
20
- from .LexerActionExecutor import LexerActionExecutor
21
- from .SemanticContext import SemanticContext
22
-
23
- # need a forward declaration
24
- ATNConfig = None
25
-
26
- class ATNConfig(object):
27
- __slots__ = (
28
- 'state', 'alt', 'context', 'semanticContext', 'reachesIntoOuterContext',
29
- 'precedenceFilterSuppressed'
30
- )
31
-
32
- def __init__(self, state:ATNState=None, alt:int=None, context:PredictionContext=None, semantic:SemanticContext=None, config:ATNConfig=None):
33
- if config is not None:
34
- if state is None:
35
- state = config.state
36
- if alt is None:
37
- alt = config.alt
38
- if context is None:
39
- context = config.context
40
- if semantic is None:
41
- semantic = config.semanticContext
42
- if semantic is None:
43
- semantic = SemanticContext.NONE
44
- # The ATN state associated with this configuration#/
45
- self.state = state
46
- # What alt (or lexer rule) is predicted by this configuration#/
47
- self.alt = alt
48
- # The stack of invoking states leading to the rule/states associated
49
- # with this config. We track only those contexts pushed during
50
- # execution of the ATN simulator.
51
- self.context = context
52
- self.semanticContext = semantic
53
- # We cannot execute predicates dependent upon local context unless
54
- # we know for sure we are in the correct context. Because there is
55
- # no way to do this efficiently, we simply cannot evaluate
56
- # dependent predicates unless we are in the rule that initially
57
- # invokes the ATN simulator.
58
- #
59
- # closure() tracks the depth of how far we dip into the
60
- # outer context: depth > 0. Note that it may not be totally
61
- # accurate depth since I don't ever decrement. TODO: make it a boolean then
62
- self.reachesIntoOuterContext = 0 if config is None else config.reachesIntoOuterContext
63
- self.precedenceFilterSuppressed = False if config is None else config.precedenceFilterSuppressed
64
-
65
- # An ATN configuration is equal to another if both have
66
- # the same state, they predict the same alternative, and
67
- # syntactic/semantic contexts are the same.
68
- #/
69
- def __eq__(self, other):
70
- if self is other:
71
- return True
72
- elif not isinstance(other, ATNConfig):
73
- return False
74
- else:
75
- return self.state.stateNumber==other.state.stateNumber \
76
- and self.alt==other.alt \
77
- and ((self.context is other.context) or (self.context==other.context)) \
78
- and self.semanticContext==other.semanticContext \
79
- and self.precedenceFilterSuppressed==other.precedenceFilterSuppressed
80
-
81
- def __hash__(self):
82
- return hash((self.state.stateNumber, self.alt, self.context, self.semanticContext))
83
-
84
- def hashCodeForConfigSet(self):
85
- return hash((self.state.stateNumber, self.alt, hash(self.semanticContext)))
86
-
87
- def equalsForConfigSet(self, other):
88
- if self is other:
89
- return True
90
- elif not isinstance(other, ATNConfig):
91
- return False
92
- else:
93
- return self.state.stateNumber==other.state.stateNumber \
94
- and self.alt==other.alt \
95
- and self.semanticContext==other.semanticContext
96
-
97
- def __str__(self):
98
- with StringIO() as buf:
99
- buf.write('(')
100
- buf.write(str(self.state))
101
- buf.write(",")
102
- buf.write(str(self.alt))
103
- if self.context is not None:
104
- buf.write(",[")
105
- buf.write(str(self.context))
106
- buf.write("]")
107
- if self.semanticContext is not None and self.semanticContext is not SemanticContext.NONE:
108
- buf.write(",")
109
- buf.write(str(self.semanticContext))
110
- if self.reachesIntoOuterContext>0:
111
- buf.write(",up=")
112
- buf.write(str(self.reachesIntoOuterContext))
113
- buf.write(')')
114
- return buf.getvalue()
115
-
116
- # need a forward declaration
117
- LexerATNConfig = None
118
-
119
- class LexerATNConfig(ATNConfig):
120
- __slots__ = ('lexerActionExecutor', 'passedThroughNonGreedyDecision')
121
-
122
- def __init__(self, state:ATNState, alt:int=None, context:PredictionContext=None, semantic:SemanticContext=SemanticContext.NONE,
123
- lexerActionExecutor:LexerActionExecutor=None, config:LexerATNConfig=None):
124
- super().__init__(state=state, alt=alt, context=context, semantic=semantic, config=config)
125
- if config is not None:
126
- if lexerActionExecutor is None:
127
- lexerActionExecutor = config.lexerActionExecutor
128
- # This is the backing field for {@link #getLexerActionExecutor}.
129
- self.lexerActionExecutor = lexerActionExecutor
130
- self.passedThroughNonGreedyDecision = False if config is None else self.checkNonGreedyDecision(config, state)
131
-
132
- def __hash__(self):
133
- return hash((self.state.stateNumber, self.alt, self.context,
134
- self.semanticContext, self.passedThroughNonGreedyDecision,
135
- self.lexerActionExecutor))
136
-
137
- def __eq__(self, other):
138
- if self is other:
139
- return True
140
- elif not isinstance(other, LexerATNConfig):
141
- return False
142
- if self.passedThroughNonGreedyDecision != other.passedThroughNonGreedyDecision:
143
- return False
144
- if not(self.lexerActionExecutor == other.lexerActionExecutor):
145
- return False
146
- return super().__eq__(other)
147
-
148
-
149
-
150
- def hashCodeForConfigSet(self):
151
- return hash(self)
152
-
153
-
154
-
155
- def equalsForConfigSet(self, other):
156
- return self==other
157
-
158
-
159
-
160
- def checkNonGreedyDecision(self, source:LexerATNConfig, target:ATNState):
161
- return source.passedThroughNonGreedyDecision \
162
- or isinstance(target, DecisionState) and target.nonGreedy
@@ -1,215 +0,0 @@
1
- # type: ignore
2
- # ruff: noqa
3
- # flake8: noqa
4
- #
5
- # Copyright (c) 2012-2017 The ANTLR Project. All rights reserved.
6
- # Use of this file is governed by the BSD 3-clause license that
7
- # can be found in the LICENSE.txt file in the project root.
8
-
9
- from ..PredictionContext import merge
10
- from ..Utils import str_list
11
- from .ATN import ATN
12
- from .ATNConfig import ATNConfig
13
- from .SemanticContext import SemanticContext
14
- from ..error.Errors import UnsupportedOperationException, IllegalStateException
15
- from functools import reduce
16
- #
17
- # Specialized {@link Set}{@code <}{@link ATNConfig}{@code >} that can track
18
- # info about the set, with support for combining similar configurations using a
19
- # graph-structured stack.
20
- # /
21
- from io import StringIO
22
-
23
- ATNSimulator = None
24
-
25
- class ATNConfigSet(object):
26
- __slots__ = (
27
- 'configLookup', 'fullCtx', 'readonly', 'configs', 'uniqueAlt',
28
- 'conflictingAlts', 'hasSemanticContext', 'dipsIntoOuterContext',
29
- 'cachedHashCode'
30
- )
31
-
32
- #
33
- # The reason that we need this is because we don't want the hash map to use
34
- # the standard hash code and equals. We need all configurations with the same
35
- # {@code (s,i,_,semctx)} to be equal. Unfortunately, this key effectively doubles
36
- # the number of objects associated with ATNConfigs. The other solution is to
37
- # use a hash table that lets us specify the equals/hashcode operation.
38
-
39
- def __init__(self, fullCtx:bool=True):
40
- # All configs but hashed by (s, i, _, pi) not including context. Wiped out
41
- # when we go readonly as this set becomes a DFA state.
42
- self.configLookup = dict()
43
- # Indicates that this configuration set is part of a full context
44
- # LL prediction. It will be used to determine how to merge $. With SLL
45
- # it's a wildcard whereas it is not for LL context merge.
46
- self.fullCtx = fullCtx
47
- # Indicates that the set of configurations is read-only. Do not
48
- # allow any code to manipulate the set; DFA states will point at
49
- # the sets and they must not change. This does not protect the other
50
- # fields; in particular, conflictingAlts is set after
51
- # we've made this readonly.
52
- self.readonly = False
53
- # Track the elements as they are added to the set; supports get(i)#/
54
- self.configs = []
55
-
56
- # TODO: these fields make me pretty uncomfortable but nice to pack up info together, saves recomputation
57
- # TODO: can we track conflicts as they are added to save scanning configs later?
58
- self.uniqueAlt = 0
59
- self.conflictingAlts = None
60
-
61
- # Used in parser and lexer. In lexer, it indicates we hit a pred
62
- # while computing a closure operation. Don't make a DFA state from this.
63
- self.hasSemanticContext = False
64
- self.dipsIntoOuterContext = False
65
-
66
- self.cachedHashCode = -1
67
-
68
- def __iter__(self):
69
- return self.configs.__iter__()
70
-
71
- # Adding a new config means merging contexts with existing configs for
72
- # {@code (s, i, pi, _)}, where {@code s} is the
73
- # {@link ATNConfig#state}, {@code i} is the {@link ATNConfig#alt}, and
74
- # {@code pi} is the {@link ATNConfig#semanticContext}. We use
75
- # {@code (s,i,pi)} as key.
76
- #
77
- # <p>This method updates {@link #dipsIntoOuterContext} and
78
- # {@link #hasSemanticContext} when necessary.</p>
79
- #/
80
- def add(self, config:ATNConfig, mergeCache=None):
81
- if self.readonly:
82
- raise Exception("This set is readonly")
83
- if config.semanticContext is not SemanticContext.NONE:
84
- self.hasSemanticContext = True
85
- if config.reachesIntoOuterContext > 0:
86
- self.dipsIntoOuterContext = True
87
- existing = self.getOrAdd(config)
88
- if existing is config:
89
- self.cachedHashCode = -1
90
- self.configs.append(config) # track order here
91
- return True
92
- # a previous (s,i,pi,_), merge with it and save result
93
- rootIsWildcard = not self.fullCtx
94
- merged = merge(existing.context, config.context, rootIsWildcard, mergeCache)
95
- # no need to check for existing.context, config.context in cache
96
- # since only way to create new graphs is "call rule" and here.
97
- # We cache at both places.
98
- existing.reachesIntoOuterContext = max(existing.reachesIntoOuterContext, config.reachesIntoOuterContext)
99
- # make sure to preserve the precedence filter suppression during the merge
100
- if config.precedenceFilterSuppressed:
101
- existing.precedenceFilterSuppressed = True
102
- existing.context = merged # replace context; no need to alt mapping
103
- return True
104
-
105
- def getOrAdd(self, config:ATNConfig):
106
- h = config.hashCodeForConfigSet()
107
- l = self.configLookup.get(h, None)
108
- if l is not None:
109
- r = next((cfg for cfg in l if config.equalsForConfigSet(cfg)), None)
110
- if r is not None:
111
- return r
112
- if l is None:
113
- l = [config]
114
- self.configLookup[h] = l
115
- else:
116
- l.append(config)
117
- return config
118
-
119
- def getStates(self):
120
- return set(c.state for c in self.configs)
121
-
122
- def getPredicates(self):
123
- return list(cfg.semanticContext for cfg in self.configs if cfg.semanticContext!=SemanticContext.NONE)
124
-
125
- def get(self, i:int):
126
- return self.configs[i]
127
-
128
- def optimizeConfigs(self, interpreter:ATNSimulator):
129
- if self.readonly:
130
- raise IllegalStateException("This set is readonly")
131
- if len(self.configs)==0:
132
- return
133
- for config in self.configs:
134
- config.context = interpreter.getCachedContext(config.context)
135
-
136
- def addAll(self, coll:list):
137
- for c in coll:
138
- self.add(c)
139
- return False
140
-
141
- def __eq__(self, other):
142
- if self is other:
143
- return True
144
- elif not isinstance(other, ATNConfigSet):
145
- return False
146
-
147
- same = self.configs is not None and \
148
- self.configs==other.configs and \
149
- self.fullCtx == other.fullCtx and \
150
- self.uniqueAlt == other.uniqueAlt and \
151
- self.conflictingAlts == other.conflictingAlts and \
152
- self.hasSemanticContext == other.hasSemanticContext and \
153
- self.dipsIntoOuterContext == other.dipsIntoOuterContext
154
-
155
- return same
156
-
157
- def __hash__(self):
158
- if self.readonly:
159
- if self.cachedHashCode == -1:
160
- self.cachedHashCode = self.hashConfigs()
161
- return self.cachedHashCode
162
- return self.hashConfigs()
163
-
164
- def hashConfigs(self):
165
- return reduce(lambda h, cfg: hash((h, cfg)), self.configs, 0)
166
-
167
- def __len__(self):
168
- return len(self.configs)
169
-
170
- def isEmpty(self):
171
- return len(self.configs)==0
172
-
173
- def __contains__(self, config):
174
- if self.configLookup is None:
175
- raise UnsupportedOperationException("This method is not implemented for readonly sets.")
176
- h = config.hashCodeForConfigSet()
177
- l = self.configLookup.get(h, None)
178
- if l is not None:
179
- for c in l:
180
- if config.equalsForConfigSet(c):
181
- return True
182
- return False
183
-
184
- def clear(self):
185
- if self.readonly:
186
- raise IllegalStateException("This set is readonly")
187
- self.configs.clear()
188
- self.cachedHashCode = -1
189
- self.configLookup.clear()
190
-
191
- def setReadonly(self, readonly:bool):
192
- self.readonly = readonly
193
- self.configLookup = None # can't mod, no need for lookup cache
194
-
195
- def __str__(self):
196
- with StringIO() as buf:
197
- buf.write(str_list(self.configs))
198
- if self.hasSemanticContext:
199
- buf.write(",hasSemanticContext=")
200
- buf.write(str(self.hasSemanticContext).lower()) # lower() to conform to java output
201
- if self.uniqueAlt!=ATN.INVALID_ALT_NUMBER:
202
- buf.write(",uniqueAlt=")
203
- buf.write(str(self.uniqueAlt))
204
- if self.conflictingAlts is not None:
205
- buf.write(",conflictingAlts=")
206
- buf.write(str(self.conflictingAlts))
207
- if self.dipsIntoOuterContext:
208
- buf.write(",dipsIntoOuterContext")
209
- return buf.getvalue()
210
-
211
-
212
- class OrderedATNConfigSet(ATNConfigSet):
213
-
214
- def __init__(self):
215
- super().__init__()
@@ -1,27 +0,0 @@
1
- # type: ignore
2
- # ruff: noqa
3
- # flake8: noqa
4
- # Copyright (c) 2012-2017 The ANTLR Project. All rights reserved.
5
- # Use of this file is governed by the BSD 3-clause license that
6
- # can be found in the LICENSE.txt file in the project root.
7
-
8
- # need a forward declaration
9
- ATNDeserializationOptions = None
10
-
11
- class ATNDeserializationOptions(object):
12
- __slots__ = ('readonly', 'verifyATN', 'generateRuleBypassTransitions')
13
-
14
- defaultOptions = None
15
-
16
- def __init__(self, copyFrom:ATNDeserializationOptions = None):
17
- self.readonly = False
18
- self.verifyATN = True if copyFrom is None else copyFrom.verifyATN
19
- self.generateRuleBypassTransitions = False if copyFrom is None else copyFrom.generateRuleBypassTransitions
20
-
21
- def __setattr__(self, key, value):
22
- if key!="readonly" and self.readonly:
23
- raise Exception("The object is read only.")
24
- super(type(self), self).__setattr__(key,value)
25
-
26
- ATNDeserializationOptions.defaultOptions = ATNDeserializationOptions()
27
- ATNDeserializationOptions.defaultOptions.readonly = True