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,665 +0,0 @@
1
- import builtins
2
- import contextlib
3
- import functools
4
- import importlib.util
5
- import types
6
- import typing as ta
7
-
8
- from ..lazyglobals import LazyGlobals
9
-
10
-
11
- ##
12
-
13
-
14
- class _ProxyInit:
15
- class NamePackage(ta.NamedTuple):
16
- name: str
17
- package: str
18
-
19
- class _Import(ta.NamedTuple):
20
- pkg: str
21
- attr: str | None
22
-
23
- def __init__(
24
- self,
25
- lazy_globals: LazyGlobals,
26
- name_package: NamePackage,
27
- ) -> None:
28
- super().__init__()
29
-
30
- self._lazy_globals = lazy_globals
31
- self._name_package = name_package
32
-
33
- self._imps_by_attr: dict[str, _ProxyInit._Import] = {}
34
- self._mods_by_pkgs: dict[str, ta.Any] = {}
35
-
36
- @property
37
- def name_package(self) -> NamePackage:
38
- return self._name_package
39
-
40
- def add(
41
- self,
42
- package: str,
43
- attrs: ta.Iterable[tuple[str | None, str]],
44
- ) -> None:
45
- for imp_attr, as_attr in attrs:
46
- if imp_attr is None:
47
- self._imps_by_attr[as_attr] = self._Import(package, None)
48
- self._lazy_globals.set_fn(as_attr, functools.partial(self.get, as_attr))
49
-
50
- else:
51
- self._imps_by_attr[as_attr] = self._Import(package, imp_attr)
52
- self._lazy_globals.set_fn(as_attr, functools.partial(self.get, as_attr))
53
-
54
- def _import_module(self, name: str) -> ta.Any:
55
- return importlib.import_module(name, package=self._name_package.package)
56
-
57
- def get(self, attr: str) -> ta.Any:
58
- try:
59
- imp = self._imps_by_attr[attr]
60
- except KeyError:
61
- raise AttributeError(attr) # noqa
62
-
63
- val: ta.Any
64
-
65
- if imp.attr is None:
66
- val = self._import_module(imp.pkg)
67
-
68
- else:
69
- try:
70
- mod = self._mods_by_pkgs[imp.pkg]
71
- except KeyError:
72
- mod = self._import_module(imp.pkg)
73
- self._mods_by_pkgs[imp.pkg] = mod
74
-
75
- val = getattr(mod, imp.attr)
76
-
77
- return val
78
-
79
-
80
- def proxy_init(
81
- init_globals: ta.MutableMapping[str, ta.Any],
82
- package: str,
83
- attrs: ta.Iterable[str | tuple[str | None, str | None] | None] | None = None,
84
- ) -> None:
85
- if isinstance(attrs, str):
86
- raise TypeError(attrs)
87
-
88
- if attrs is None:
89
- attrs = [None]
90
-
91
- whole_attr = package.split('.')[-1]
92
- al: list[tuple[str | None, str]] = []
93
- for attr in attrs:
94
- if attr is None:
95
- al.append((None, whole_attr))
96
-
97
- elif isinstance(attr, str):
98
- al.append((attr, attr))
99
-
100
- elif isinstance(attr, tuple):
101
- imp_attr, as_attr = attr
102
- if as_attr is None:
103
- if imp_attr is None:
104
- as_attr = whole_attr
105
- else:
106
- as_attr = imp_attr
107
- al.append((imp_attr, as_attr))
108
-
109
- else:
110
- raise TypeError(attr)
111
-
112
- #
113
-
114
- init_name_package = _ProxyInit.NamePackage(
115
- init_globals['__name__'],
116
- init_globals['__package__'],
117
- )
118
-
119
- pi: _ProxyInit
120
- try:
121
- pi = init_globals['__proxy_init__']
122
-
123
- except KeyError:
124
- pi = _ProxyInit(
125
- LazyGlobals.install(init_globals),
126
- init_name_package,
127
- )
128
- init_globals['__proxy_init__'] = pi
129
-
130
- else:
131
- if pi.name_package != init_name_package:
132
- raise Exception(f'Wrong init name: {pi.name_package=} != {init_name_package=}')
133
-
134
- pi.add(package, al)
135
-
136
-
137
- ##
138
-
139
-
140
- class AutoProxyInitError(Exception):
141
- pass
142
-
143
-
144
- class AutoProxyInitErrors:
145
- def __new__(cls, *args, **kwargs): # noqa
146
- raise TypeError
147
-
148
- class HookError(AutoProxyInitError):
149
- pass
150
-
151
- class AttrError(AutoProxyInitError):
152
- def __init__(self, module: str | None, name: str) -> None:
153
- super().__init__()
154
-
155
- self.module = module
156
- self.name = name
157
-
158
- def __repr__(self) -> str:
159
- return f'{self.__class__.__qualname__}(module={self.module!r}, name={self.name!r})'
160
-
161
- class ImportError(AutoProxyInitError): # noqa
162
- def __init__(self, module: str, from_list: ta.Sequence[str] | None) -> None:
163
- super().__init__()
164
-
165
- self.module = module
166
- self.from_list = from_list
167
-
168
- def __repr__(self) -> str:
169
- return f'{self.__class__.__qualname__}(module={self.module!r}, from_list={self.from_list!r})'
170
-
171
- class ImportStarForbiddenError(ImportError):
172
- pass
173
-
174
- class UnproxiedImportForbiddenError(ImportError):
175
- pass
176
-
177
- class UnreferencedImportsError(AutoProxyInitError):
178
- def __init__(self, unreferenced: ta.Mapping[str, ta.Sequence[str | None]]) -> None:
179
- super().__init__()
180
-
181
- self.unreferenced = unreferenced
182
-
183
- def __repr__(self) -> str:
184
- return f'{self.__class__.__qualname__}(unreferenced={self.unreferenced!r})'
185
-
186
- class CaptureInProgressError(AutoProxyInitError):
187
- pass
188
-
189
-
190
- class _AutoProxyInitCapture:
191
- class ModuleSpec(ta.NamedTuple):
192
- name: str
193
- level: int
194
-
195
- def __str__(self) -> str:
196
- return f'{"." * self.level}{self.name}'
197
-
198
- def __repr__(self) -> str:
199
- return repr(str(self))
200
-
201
- def __init__(self) -> None:
202
- super().__init__()
203
-
204
- self._modules_by_spec: dict[_AutoProxyInitCapture.ModuleSpec, _AutoProxyInitCapture._Module] = {}
205
- self._modules_by_module_obj: dict[types.ModuleType, _AutoProxyInitCapture._Module] = {}
206
-
207
- self._attrs: dict[_AutoProxyInitCapture._ModuleAttr, tuple[_AutoProxyInitCapture._Module, str]] = {}
208
-
209
- #
210
-
211
- class _ModuleAttr:
212
- def __init__(
213
- self,
214
- module: '_AutoProxyInitCapture._Module',
215
- name: str,
216
- ) -> None:
217
- super().__init__()
218
-
219
- self.__module = module
220
- self.__name = name
221
-
222
- def __repr__(self) -> str:
223
- return f'<{self.__class__.__name__}: {f"{self.__module.spec}:{self.__name}"!r}>'
224
-
225
- class _Module:
226
- def __init__(
227
- self,
228
- spec: '_AutoProxyInitCapture.ModuleSpec',
229
- *,
230
- getattr_handler: ta.Callable[['_AutoProxyInitCapture._Module', str], ta.Any] | None = None,
231
- ) -> None:
232
- super().__init__()
233
-
234
- self.spec = spec
235
-
236
- self.module_obj = types.ModuleType(f'<{self.__class__.__qualname__}: {spec!r}>')
237
- if getattr_handler is not None:
238
- self.module_obj.__getattr__ = functools.partial(getattr_handler, self) # type: ignore[method-assign] # noqa
239
- self.initial_module_dict = dict(self.module_obj.__dict__)
240
-
241
- self.contents: dict[str, _AutoProxyInitCapture._ModuleAttr | types.ModuleType] = {}
242
- self.imported_whole = False
243
-
244
- def __repr__(self) -> str:
245
- return f'{self.__class__.__name__}({self.spec!r})'
246
-
247
- def _get_or_make_module(self, spec: ModuleSpec) -> _Module:
248
- try:
249
- return self._modules_by_spec[spec]
250
- except KeyError:
251
- pass
252
-
253
- module = self._Module(
254
- spec,
255
- getattr_handler=self._handle_module_getattr,
256
- )
257
- self._modules_by_spec[spec] = module
258
- self._modules_by_module_obj[module.module_obj] = module
259
- return module
260
-
261
- def _handle_module_getattr(self, module: _Module, attr: str) -> ta.Any:
262
- if attr in module.contents:
263
- raise AutoProxyInitErrors.AttrError(str(module.spec), attr)
264
-
265
- v: _AutoProxyInitCapture._ModuleAttr | types.ModuleType
266
- if not module.spec.name:
267
- if not module.spec.level:
268
- raise AutoProxyInitError
269
- cs = _AutoProxyInitCapture.ModuleSpec(attr, module.spec.level)
270
- cm = self._get_or_make_module(cs)
271
- cm.imported_whole = True
272
- v = cm.module_obj
273
-
274
- else:
275
- ma = _AutoProxyInitCapture._ModuleAttr(module, attr)
276
- self._attrs[ma] = (module, attr)
277
- v = ma
278
-
279
- module.contents[attr] = v
280
- setattr(module.module_obj, attr, v)
281
- return v
282
-
283
- def _handle_import(
284
- self,
285
- module: _Module,
286
- *,
287
- from_list: ta.Sequence[str] | None,
288
- ) -> None:
289
- if from_list is None:
290
- if module.spec.level or not module.spec.name:
291
- raise AutoProxyInitError
292
-
293
- module.imported_whole = True
294
-
295
- else:
296
- for attr in from_list:
297
- if attr == '*':
298
- raise AutoProxyInitErrors.ImportStarForbiddenError(str(module.spec), from_list)
299
-
300
- x = getattr(module.module_obj, attr)
301
-
302
- bad = False
303
- if x is not module.contents.get(attr):
304
- bad = True
305
- if isinstance(x, _AutoProxyInitCapture._ModuleAttr):
306
- if self._attrs[x] != (module, attr):
307
- bad = True
308
- elif isinstance(x, types.ModuleType):
309
- if x not in self._modules_by_module_obj:
310
- bad = True
311
- else:
312
- bad = True
313
- if bad:
314
- raise AutoProxyInitErrors.AttrError(str(module.spec), attr)
315
-
316
- #
317
-
318
- _MOD_SELF_ATTR: ta.ClassVar[str] = '__auto_proxy_init_capture__'
319
-
320
- def _intercept_import(
321
- self,
322
- name: str,
323
- *,
324
- globals: ta.Mapping[str, ta.Any] | None = None, # noqa
325
- from_list: ta.Sequence[str] | None = None,
326
- level: int = 0,
327
- ) -> types.ModuleType | None:
328
- if not (
329
- globals is not None and
330
- globals.get(self._MOD_SELF_ATTR) is self
331
- ):
332
- return None
333
-
334
- spec = _AutoProxyInitCapture.ModuleSpec(name, level)
335
- module = self._get_or_make_module(spec)
336
-
337
- self._handle_import(
338
- module,
339
- from_list=from_list,
340
- )
341
-
342
- return module.module_obj
343
-
344
- @contextlib.contextmanager
345
- def hook_context(
346
- self,
347
- init_globals: ta.MutableMapping[str, ta.Any], # noqa
348
- *,
349
- forbid_unproxied_imports: bool = False,
350
- ) -> ta.Iterator[None]:
351
- if self._MOD_SELF_ATTR in init_globals:
352
- raise AutoProxyInitErrors.HookError
353
-
354
- old_import = builtins.__import__
355
-
356
- def new_import(
357
- name,
358
- globals=None, # noqa
359
- locals=None, # noqa
360
- fromlist=None,
361
- level=0,
362
- ):
363
- if (im := self._intercept_import(
364
- name,
365
- globals=globals,
366
- from_list=fromlist,
367
- level=level,
368
- )) is not None:
369
- return im
370
-
371
- if forbid_unproxied_imports:
372
- raise AutoProxyInitErrors.UnproxiedImportForbiddenError(
373
- str(_AutoProxyInitCapture.ModuleSpec(name, level)),
374
- fromlist,
375
- )
376
-
377
- return old_import(
378
- name,
379
- globals=globals,
380
- locals=locals,
381
- fromlist=fromlist,
382
- level=level,
383
- )
384
-
385
- #
386
-
387
- init_globals[self._MOD_SELF_ATTR] = self
388
- builtins.__import__ = new_import
389
-
390
- try:
391
- yield
392
-
393
- finally:
394
- if not (
395
- init_globals[self._MOD_SELF_ATTR] is self and
396
- builtins.__import__ is new_import
397
- ):
398
- raise AutoProxyInitErrors.HookError
399
-
400
- del init_globals[self._MOD_SELF_ATTR]
401
- builtins.__import__ = old_import
402
-
403
- #
404
-
405
- def verify_state(
406
- self,
407
- init_globals: ta.MutableMapping[str, ta.Any], # noqa
408
- ) -> None:
409
- for m in self._modules_by_spec.values():
410
- for a, o in m.module_obj.__dict__.items():
411
- try:
412
- i = m.initial_module_dict[a]
413
-
414
- except KeyError:
415
- if o is not m.contents[a]:
416
- raise AutoProxyInitErrors.AttrError(str(m.spec), a) from None
417
-
418
- else:
419
- if o != i:
420
- raise AutoProxyInitErrors.AttrError(str(m.spec), a)
421
-
422
- #
423
-
424
- def build_proxy_inits(
425
- self,
426
- init_globals: ta.MutableMapping[str, ta.Any], # noqa
427
- *,
428
- collect_unreferenced: bool = False,
429
- ) -> 'AutoProxyInit.CapturedProxyInits':
430
- dct: dict[_AutoProxyInitCapture._Module, list[tuple[str | None, str]]] = {}
431
-
432
- rem_whole_mods: set[_AutoProxyInitCapture._Module] = set()
433
- rem_mod_attrs: set[_AutoProxyInitCapture._ModuleAttr] = set()
434
- if collect_unreferenced:
435
- rem_whole_mods.update([m for m in self._modules_by_spec.values() if m.imported_whole])
436
- rem_mod_attrs.update(self._attrs)
437
-
438
- for attr, obj in init_globals.items():
439
- if isinstance(obj, _AutoProxyInitCapture._ModuleAttr):
440
- try:
441
- m, a = self._attrs[obj]
442
- except KeyError:
443
- raise AutoProxyInitErrors.AttrError(None, attr) from None
444
- dct.setdefault(m, []).append((a, attr))
445
- rem_mod_attrs.discard(obj)
446
-
447
- elif isinstance(obj, _AutoProxyInitCapture._Module):
448
- raise AutoProxyInitErrors.AttrError(None, attr) from None
449
-
450
- elif isinstance(obj, types.ModuleType):
451
- try:
452
- m = self._modules_by_module_obj[obj]
453
- except KeyError:
454
- continue
455
- if not m.imported_whole:
456
- raise RuntimeError(f'AutoProxyInit module {m.spec!r} not imported_whole')
457
- dct.setdefault(m, []).append((None, attr))
458
- rem_whole_mods.discard(m)
459
-
460
- lst: list[AutoProxyInit.ProxyInit] = []
461
- for m, ts in dct.items():
462
- if not m.spec.name:
463
- if not m.spec.level:
464
- raise AutoProxyInitError
465
- for imp_attr, as_attr in ts:
466
- if not imp_attr:
467
- raise RuntimeError
468
- lst.append(AutoProxyInit.ProxyInit(
469
- '.' * m.spec.level + imp_attr,
470
- [(None, as_attr)],
471
- ))
472
-
473
- else:
474
- lst.append(AutoProxyInit.ProxyInit(
475
- str(m.spec),
476
- ts,
477
- ))
478
-
479
- unreferenced: dict[str, list[str | None]] | None = None
480
- if collect_unreferenced and (rem_whole_mods or rem_mod_attrs):
481
- unreferenced = {}
482
- for m in rem_whole_mods:
483
- unreferenced.setdefault(str(m.spec), []).append(None)
484
- for ma in rem_mod_attrs:
485
- m, a = self._attrs[ma]
486
- unreferenced.setdefault(str(m.spec), []).append(a)
487
-
488
- return AutoProxyInit.CapturedProxyInits(
489
- lst,
490
- unreferenced,
491
- )
492
-
493
-
494
- class AutoProxyInit:
495
- class ProxyInit(ta.NamedTuple):
496
- package: str
497
- attrs: ta.Sequence[tuple[str | None, str]]
498
-
499
- class CapturedProxyInits(ta.NamedTuple):
500
- proxy_inits: ta.Sequence['AutoProxyInit.ProxyInit']
501
- unreferenced: ta.Mapping[str, ta.Sequence[str | None]] | None
502
-
503
- @property
504
- def attrs(self) -> ta.Iterator[str]:
505
- for pi in self.proxy_inits:
506
- for _, a in pi.attrs:
507
- yield a
508
-
509
- #
510
-
511
- def __init__(
512
- self,
513
- init_globals: ta.MutableMapping[str, ta.Any],
514
- *,
515
- disable: bool = False,
516
- eager: bool = False,
517
- ) -> None:
518
- super().__init__()
519
-
520
- self._init_globals = init_globals
521
-
522
- self._disable = disable
523
- self._eager = eager
524
-
525
- @property
526
- def disable(self) -> bool:
527
- return self._disable
528
-
529
- @property
530
- def eager(self) -> bool:
531
- return self._eager
532
-
533
- #
534
-
535
- class _Result(ta.NamedTuple):
536
- captured: 'AutoProxyInit.CapturedProxyInits'
537
-
538
- _result_: _Result | None = None
539
-
540
- @property
541
- def _result(self) -> _Result:
542
- if (rs := self._result_) is None:
543
- raise AutoProxyInitErrors.CaptureInProgressError
544
- return rs
545
-
546
- @property
547
- def is_complete(self) -> bool:
548
- return self._result_ is not None
549
-
550
- @property
551
- def captured(self) -> CapturedProxyInits:
552
- return self._result.captured
553
-
554
- #
555
-
556
- @contextlib.contextmanager
557
- def _capture(
558
- self,
559
- *,
560
- unreferenced_callback: ta.Callable[[ta.Mapping[str, ta.Sequence[str | None]]], None] | None = None,
561
- raise_unreferenced: bool = False,
562
- ) -> ta.Iterator[None]:
563
- if self._result_ is not None:
564
- raise AutoProxyInitError('capture already complete')
565
-
566
- if self._disable:
567
- self._result_ = AutoProxyInit._Result(
568
- AutoProxyInit.CapturedProxyInits(
569
- [],
570
- None,
571
- ),
572
- )
573
- yield
574
- return
575
-
576
- cap = _AutoProxyInitCapture()
577
-
578
- with cap.hook_context(self._init_globals):
579
- yield
580
-
581
- cap.verify_state(self._init_globals)
582
-
583
- blt = cap.build_proxy_inits(
584
- self._init_globals,
585
- collect_unreferenced=unreferenced_callback is not None or raise_unreferenced,
586
- )
587
-
588
- if blt.unreferenced:
589
- if unreferenced_callback:
590
- unreferenced_callback(blt.unreferenced)
591
- if raise_unreferenced:
592
- raise AutoProxyInitErrors.UnreferencedImportsError(blt.unreferenced)
593
-
594
- for pi in blt.proxy_inits:
595
- for _, a in pi.attrs:
596
- del self._init_globals[a]
597
-
598
- proxy_init(
599
- self._init_globals,
600
- pi.package,
601
- pi.attrs,
602
- )
603
-
604
- if self._eager:
605
- lg = LazyGlobals.install(self._init_globals)
606
-
607
- for a in blt.attrs:
608
- lg.get(a)
609
-
610
- self._result_ = AutoProxyInit._Result(
611
- blt,
612
- )
613
-
614
- #
615
-
616
- def update_exports(self) -> None:
617
- cap = self._result.captured
618
-
619
- try:
620
- al: ta.Any = self._init_globals['__all__']
621
- except KeyError:
622
- al = self._init_globals['__all__'] = [k for k in self._init_globals if not k.startswith('_')]
623
- else:
624
- if not isinstance(al, ta.MutableSequence):
625
- al = self._init_globals['__all__'] = list(al)
626
-
627
- al_s = set(al)
628
- for a in cap.attrs:
629
- if a not in al_s:
630
- al.append(a)
631
- al_s.add(a)
632
-
633
-
634
- @contextlib.contextmanager
635
- def auto_proxy_init(
636
- init_globals: ta.MutableMapping[str, ta.Any],
637
- *,
638
- disable: bool = False,
639
- eager: bool = False,
640
-
641
- unreferenced_callback: ta.Callable[[ta.Mapping[str, ta.Sequence[str | None]]], None] | None = None,
642
- raise_unreferenced: bool = False,
643
-
644
- update_exports: bool = False,
645
- ) -> ta.Iterator[AutoProxyInit]:
646
- """
647
- This is a bit extreme - use sparingly. It relies on an interpreter-global import lock, but much of the ecosystem
648
- implicitly does anyway. It further relies on temporarily patching `__builtins__.__import__`, but could be switched
649
- to use any number of other import hooks.
650
- """
651
-
652
- inst = AutoProxyInit(
653
- init_globals,
654
- disable=disable,
655
- eager=eager,
656
- )
657
-
658
- with inst._capture( # noqa
659
- unreferenced_callback=unreferenced_callback,
660
- raise_unreferenced=raise_unreferenced,
661
- ):
662
- yield inst
663
-
664
- if update_exports:
665
- inst.update_exports()
omlish/lite/logs.py DELETED
@@ -1,4 +0,0 @@
1
- import logging
2
-
3
-
4
- log = logging.getLogger(__name__)