omlish 0.0.0.dev300__tar.gz → 0.0.0.dev302__tar.gz

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (858) hide show
  1. {omlish-0.0.0.dev300/omlish.egg-info → omlish-0.0.0.dev302}/PKG-INFO +1 -1
  2. omlish-0.0.0.dev302/README.md +163 -0
  3. {omlish-0.0.0.dev300 → omlish-0.0.0.dev302}/omlish/__about__.py +2 -2
  4. {omlish-0.0.0.dev300 → omlish-0.0.0.dev302}/omlish/asyncs/anyio/streams.py +4 -4
  5. {omlish-0.0.0.dev300 → omlish-0.0.0.dev302}/omlish/asyncs/asyncio/subprocesses.py +1 -1
  6. {omlish-0.0.0.dev300 → omlish-0.0.0.dev302}/omlish/asyncs/bridge.py +16 -5
  7. {omlish-0.0.0.dev300 → omlish-0.0.0.dev302}/omlish/check.py +5 -0
  8. {omlish-0.0.0.dev300 → omlish-0.0.0.dev302}/omlish/formats/toml/parser.py +1 -0
  9. {omlish-0.0.0.dev300 → omlish-0.0.0.dev302}/omlish/io/fdio/handlers.py +3 -0
  10. {omlish-0.0.0.dev300 → omlish-0.0.0.dev302}/omlish/io/fdio/kqueue.py +3 -0
  11. {omlish-0.0.0.dev300 → omlish-0.0.0.dev302}/omlish/io/fdio/manager.py +3 -0
  12. {omlish-0.0.0.dev300 → omlish-0.0.0.dev302}/omlish/io/trampoline.py +2 -2
  13. {omlish-0.0.0.dev300 → omlish-0.0.0.dev302}/omlish/lang/collections.py +16 -3
  14. {omlish-0.0.0.dev300 → omlish-0.0.0.dev302}/omlish/lang/imports.py +2 -0
  15. {omlish-0.0.0.dev300 → omlish-0.0.0.dev302}/omlish/lite/check.py +18 -2
  16. {omlish-0.0.0.dev300 → omlish-0.0.0.dev302}/omlish/subprocesses/editor.py +18 -3
  17. {omlish-0.0.0.dev300 → omlish-0.0.0.dev302/omlish.egg-info}/PKG-INFO +1 -1
  18. {omlish-0.0.0.dev300 → omlish-0.0.0.dev302}/pyproject.toml +1 -1
  19. omlish-0.0.0.dev300/README.md +0 -31
  20. {omlish-0.0.0.dev300 → omlish-0.0.0.dev302}/LICENSE +0 -0
  21. {omlish-0.0.0.dev300 → omlish-0.0.0.dev302}/MANIFEST.in +0 -0
  22. {omlish-0.0.0.dev300 → omlish-0.0.0.dev302}/omlish/.manifests.json +0 -0
  23. {omlish-0.0.0.dev300 → omlish-0.0.0.dev302}/omlish/__init__.py +0 -0
  24. {omlish-0.0.0.dev300 → omlish-0.0.0.dev302}/omlish/algorithm/__init__.py +0 -0
  25. {omlish-0.0.0.dev300 → omlish-0.0.0.dev302}/omlish/algorithm/all.py +0 -0
  26. {omlish-0.0.0.dev300 → omlish-0.0.0.dev302}/omlish/algorithm/distribute.py +0 -0
  27. {omlish-0.0.0.dev300 → omlish-0.0.0.dev302}/omlish/algorithm/toposort.py +0 -0
  28. {omlish-0.0.0.dev300 → omlish-0.0.0.dev302}/omlish/algorithm/unify.py +0 -0
  29. {omlish-0.0.0.dev300 → omlish-0.0.0.dev302}/omlish/antlr/__init__.py +0 -0
  30. {omlish-0.0.0.dev300 → omlish-0.0.0.dev302}/omlish/antlr/_runtime/BufferedTokenStream.py +0 -0
  31. {omlish-0.0.0.dev300 → omlish-0.0.0.dev302}/omlish/antlr/_runtime/CommonTokenFactory.py +0 -0
  32. {omlish-0.0.0.dev300 → omlish-0.0.0.dev302}/omlish/antlr/_runtime/CommonTokenStream.py +0 -0
  33. {omlish-0.0.0.dev300 → omlish-0.0.0.dev302}/omlish/antlr/_runtime/FileStream.py +0 -0
  34. {omlish-0.0.0.dev300 → omlish-0.0.0.dev302}/omlish/antlr/_runtime/InputStream.py +0 -0
  35. {omlish-0.0.0.dev300 → omlish-0.0.0.dev302}/omlish/antlr/_runtime/IntervalSet.py +0 -0
  36. {omlish-0.0.0.dev300 → omlish-0.0.0.dev302}/omlish/antlr/_runtime/LICENSE.txt +0 -0
  37. {omlish-0.0.0.dev300 → omlish-0.0.0.dev302}/omlish/antlr/_runtime/LL1Analyzer.py +0 -0
  38. {omlish-0.0.0.dev300 → omlish-0.0.0.dev302}/omlish/antlr/_runtime/Lexer.py +0 -0
  39. {omlish-0.0.0.dev300 → omlish-0.0.0.dev302}/omlish/antlr/_runtime/ListTokenSource.py +0 -0
  40. {omlish-0.0.0.dev300 → omlish-0.0.0.dev302}/omlish/antlr/_runtime/Parser.py +0 -0
  41. {omlish-0.0.0.dev300 → omlish-0.0.0.dev302}/omlish/antlr/_runtime/ParserInterpreter.py +0 -0
  42. {omlish-0.0.0.dev300 → omlish-0.0.0.dev302}/omlish/antlr/_runtime/ParserRuleContext.py +0 -0
  43. {omlish-0.0.0.dev300 → omlish-0.0.0.dev302}/omlish/antlr/_runtime/PredictionContext.py +0 -0
  44. {omlish-0.0.0.dev300 → omlish-0.0.0.dev302}/omlish/antlr/_runtime/Recognizer.py +0 -0
  45. {omlish-0.0.0.dev300 → omlish-0.0.0.dev302}/omlish/antlr/_runtime/RuleContext.py +0 -0
  46. {omlish-0.0.0.dev300 → omlish-0.0.0.dev302}/omlish/antlr/_runtime/StdinStream.py +0 -0
  47. {omlish-0.0.0.dev300 → omlish-0.0.0.dev302}/omlish/antlr/_runtime/Token.py +0 -0
  48. {omlish-0.0.0.dev300 → omlish-0.0.0.dev302}/omlish/antlr/_runtime/TokenStreamRewriter.py +0 -0
  49. {omlish-0.0.0.dev300 → omlish-0.0.0.dev302}/omlish/antlr/_runtime/Utils.py +0 -0
  50. {omlish-0.0.0.dev300 → omlish-0.0.0.dev302}/omlish/antlr/_runtime/__init__.py +0 -0
  51. {omlish-0.0.0.dev300 → omlish-0.0.0.dev302}/omlish/antlr/_runtime/_all.py +0 -0
  52. {omlish-0.0.0.dev300 → omlish-0.0.0.dev302}/omlish/antlr/_runtime/_pygrun.py +0 -0
  53. {omlish-0.0.0.dev300 → omlish-0.0.0.dev302}/omlish/antlr/_runtime/atn/ATN.py +0 -0
  54. {omlish-0.0.0.dev300 → omlish-0.0.0.dev302}/omlish/antlr/_runtime/atn/ATNConfig.py +0 -0
  55. {omlish-0.0.0.dev300 → omlish-0.0.0.dev302}/omlish/antlr/_runtime/atn/ATNConfigSet.py +0 -0
  56. {omlish-0.0.0.dev300 → omlish-0.0.0.dev302}/omlish/antlr/_runtime/atn/ATNDeserializationOptions.py +0 -0
  57. {omlish-0.0.0.dev300 → omlish-0.0.0.dev302}/omlish/antlr/_runtime/atn/ATNDeserializer.py +0 -0
  58. {omlish-0.0.0.dev300 → omlish-0.0.0.dev302}/omlish/antlr/_runtime/atn/ATNSimulator.py +0 -0
  59. {omlish-0.0.0.dev300 → omlish-0.0.0.dev302}/omlish/antlr/_runtime/atn/ATNState.py +0 -0
  60. {omlish-0.0.0.dev300 → omlish-0.0.0.dev302}/omlish/antlr/_runtime/atn/ATNType.py +0 -0
  61. {omlish-0.0.0.dev300 → omlish-0.0.0.dev302}/omlish/antlr/_runtime/atn/LexerATNSimulator.py +0 -0
  62. {omlish-0.0.0.dev300 → omlish-0.0.0.dev302}/omlish/antlr/_runtime/atn/LexerAction.py +0 -0
  63. {omlish-0.0.0.dev300 → omlish-0.0.0.dev302}/omlish/antlr/_runtime/atn/LexerActionExecutor.py +0 -0
  64. {omlish-0.0.0.dev300 → omlish-0.0.0.dev302}/omlish/antlr/_runtime/atn/ParserATNSimulator.py +0 -0
  65. {omlish-0.0.0.dev300 → omlish-0.0.0.dev302}/omlish/antlr/_runtime/atn/PredictionMode.py +0 -0
  66. {omlish-0.0.0.dev300 → omlish-0.0.0.dev302}/omlish/antlr/_runtime/atn/SemanticContext.py +0 -0
  67. {omlish-0.0.0.dev300 → omlish-0.0.0.dev302}/omlish/antlr/_runtime/atn/Transition.py +0 -0
  68. {omlish-0.0.0.dev300 → omlish-0.0.0.dev302}/omlish/antlr/_runtime/atn/__init__.py +0 -0
  69. {omlish-0.0.0.dev300 → omlish-0.0.0.dev302}/omlish/antlr/_runtime/dfa/DFA.py +0 -0
  70. {omlish-0.0.0.dev300 → omlish-0.0.0.dev302}/omlish/antlr/_runtime/dfa/DFASerializer.py +0 -0
  71. {omlish-0.0.0.dev300 → omlish-0.0.0.dev302}/omlish/antlr/_runtime/dfa/DFAState.py +0 -0
  72. {omlish-0.0.0.dev300 → omlish-0.0.0.dev302}/omlish/antlr/_runtime/dfa/__init__.py +0 -0
  73. {omlish-0.0.0.dev300 → omlish-0.0.0.dev302}/omlish/antlr/_runtime/error/DiagnosticErrorListener.py +0 -0
  74. {omlish-0.0.0.dev300 → omlish-0.0.0.dev302}/omlish/antlr/_runtime/error/ErrorListener.py +0 -0
  75. {omlish-0.0.0.dev300 → omlish-0.0.0.dev302}/omlish/antlr/_runtime/error/ErrorStrategy.py +0 -0
  76. {omlish-0.0.0.dev300 → omlish-0.0.0.dev302}/omlish/antlr/_runtime/error/Errors.py +0 -0
  77. {omlish-0.0.0.dev300 → omlish-0.0.0.dev302}/omlish/antlr/_runtime/error/__init__.py +0 -0
  78. {omlish-0.0.0.dev300 → omlish-0.0.0.dev302}/omlish/antlr/_runtime/tree/Chunk.py +0 -0
  79. {omlish-0.0.0.dev300 → omlish-0.0.0.dev302}/omlish/antlr/_runtime/tree/ParseTreeMatch.py +0 -0
  80. {omlish-0.0.0.dev300 → omlish-0.0.0.dev302}/omlish/antlr/_runtime/tree/ParseTreePattern.py +0 -0
  81. {omlish-0.0.0.dev300 → omlish-0.0.0.dev302}/omlish/antlr/_runtime/tree/ParseTreePatternMatcher.py +0 -0
  82. {omlish-0.0.0.dev300 → omlish-0.0.0.dev302}/omlish/antlr/_runtime/tree/RuleTagToken.py +0 -0
  83. {omlish-0.0.0.dev300 → omlish-0.0.0.dev302}/omlish/antlr/_runtime/tree/TokenTagToken.py +0 -0
  84. {omlish-0.0.0.dev300 → omlish-0.0.0.dev302}/omlish/antlr/_runtime/tree/Tree.py +0 -0
  85. {omlish-0.0.0.dev300 → omlish-0.0.0.dev302}/omlish/antlr/_runtime/tree/Trees.py +0 -0
  86. {omlish-0.0.0.dev300 → omlish-0.0.0.dev302}/omlish/antlr/_runtime/tree/__init__.py +0 -0
  87. {omlish-0.0.0.dev300 → omlish-0.0.0.dev302}/omlish/antlr/_runtime/xpath/XPath.py +0 -0
  88. {omlish-0.0.0.dev300 → omlish-0.0.0.dev302}/omlish/antlr/_runtime/xpath/XPathLexer.py +0 -0
  89. {omlish-0.0.0.dev300 → omlish-0.0.0.dev302}/omlish/antlr/_runtime/xpath/__init__.py +0 -0
  90. {omlish-0.0.0.dev300 → omlish-0.0.0.dev302}/omlish/antlr/delimit.py +0 -0
  91. {omlish-0.0.0.dev300 → omlish-0.0.0.dev302}/omlish/antlr/dot.py +0 -0
  92. {omlish-0.0.0.dev300 → omlish-0.0.0.dev302}/omlish/antlr/errors.py +0 -0
  93. {omlish-0.0.0.dev300 → omlish-0.0.0.dev302}/omlish/antlr/input.py +0 -0
  94. {omlish-0.0.0.dev300 → omlish-0.0.0.dev302}/omlish/antlr/parsing.py +0 -0
  95. {omlish-0.0.0.dev300 → omlish-0.0.0.dev302}/omlish/antlr/runtime.py +0 -0
  96. {omlish-0.0.0.dev300 → omlish-0.0.0.dev302}/omlish/antlr/utils.py +0 -0
  97. {omlish-0.0.0.dev300 → omlish-0.0.0.dev302}/omlish/argparse/__init__.py +0 -0
  98. {omlish-0.0.0.dev300 → omlish-0.0.0.dev302}/omlish/argparse/all.py +0 -0
  99. {omlish-0.0.0.dev300 → omlish-0.0.0.dev302}/omlish/argparse/cli.py +0 -0
  100. {omlish-0.0.0.dev300 → omlish-0.0.0.dev302}/omlish/asyncs/__init__.py +0 -0
  101. {omlish-0.0.0.dev300 → omlish-0.0.0.dev302}/omlish/asyncs/all.py +0 -0
  102. {omlish-0.0.0.dev300 → omlish-0.0.0.dev302}/omlish/asyncs/anyio/__init__.py +0 -0
  103. {omlish-0.0.0.dev300 → omlish-0.0.0.dev302}/omlish/asyncs/anyio/backends.py +0 -0
  104. {omlish-0.0.0.dev300 → omlish-0.0.0.dev302}/omlish/asyncs/anyio/futures.py +0 -0
  105. {omlish-0.0.0.dev300 → omlish-0.0.0.dev302}/omlish/asyncs/anyio/signals.py +0 -0
  106. {omlish-0.0.0.dev300 → omlish-0.0.0.dev302}/omlish/asyncs/anyio/subprocesses.py +0 -0
  107. {omlish-0.0.0.dev300 → omlish-0.0.0.dev302}/omlish/asyncs/anyio/sync.py +0 -0
  108. {omlish-0.0.0.dev300 → omlish-0.0.0.dev302}/omlish/asyncs/anyio/utils.py +0 -0
  109. {omlish-0.0.0.dev300 → omlish-0.0.0.dev302}/omlish/asyncs/asyncio/__init__.py +0 -0
  110. {omlish-0.0.0.dev300 → omlish-0.0.0.dev302}/omlish/asyncs/asyncio/all.py +0 -0
  111. {omlish-0.0.0.dev300 → omlish-0.0.0.dev302}/omlish/asyncs/asyncio/channels.py +0 -0
  112. {omlish-0.0.0.dev300 → omlish-0.0.0.dev302}/omlish/asyncs/asyncio/sockets.py +0 -0
  113. {omlish-0.0.0.dev300 → omlish-0.0.0.dev302}/omlish/asyncs/asyncio/streams.py +0 -0
  114. {omlish-0.0.0.dev300 → omlish-0.0.0.dev302}/omlish/asyncs/asyncio/timeouts.py +0 -0
  115. {omlish-0.0.0.dev300 → omlish-0.0.0.dev302}/omlish/asyncs/asyncio/utils.py +0 -0
  116. {omlish-0.0.0.dev300 → omlish-0.0.0.dev302}/omlish/asyncs/bluelet/LICENSE +0 -0
  117. {omlish-0.0.0.dev300 → omlish-0.0.0.dev302}/omlish/asyncs/bluelet/__init__.py +0 -0
  118. {omlish-0.0.0.dev300 → omlish-0.0.0.dev302}/omlish/asyncs/bluelet/all.py +0 -0
  119. {omlish-0.0.0.dev300 → omlish-0.0.0.dev302}/omlish/asyncs/bluelet/api.py +0 -0
  120. {omlish-0.0.0.dev300 → omlish-0.0.0.dev302}/omlish/asyncs/bluelet/core.py +0 -0
  121. {omlish-0.0.0.dev300 → omlish-0.0.0.dev302}/omlish/asyncs/bluelet/events.py +0 -0
  122. {omlish-0.0.0.dev300 → omlish-0.0.0.dev302}/omlish/asyncs/bluelet/files.py +0 -0
  123. {omlish-0.0.0.dev300 → omlish-0.0.0.dev302}/omlish/asyncs/bluelet/runner.py +0 -0
  124. {omlish-0.0.0.dev300 → omlish-0.0.0.dev302}/omlish/asyncs/bluelet/sockets.py +0 -0
  125. {omlish-0.0.0.dev300 → omlish-0.0.0.dev302}/omlish/asyncs/buffers.py +0 -0
  126. {omlish-0.0.0.dev300 → omlish-0.0.0.dev302}/omlish/asyncs/flavors.py +0 -0
  127. {omlish-0.0.0.dev300 → omlish-0.0.0.dev302}/omlish/asyncs/ioproxy/__init__.py +0 -0
  128. {omlish-0.0.0.dev300 → omlish-0.0.0.dev302}/omlish/asyncs/ioproxy/all.py +0 -0
  129. {omlish-0.0.0.dev300 → omlish-0.0.0.dev302}/omlish/asyncs/ioproxy/io.py +0 -0
  130. {omlish-0.0.0.dev300 → omlish-0.0.0.dev302}/omlish/asyncs/ioproxy/proxier.py +0 -0
  131. {omlish-0.0.0.dev300 → omlish-0.0.0.dev302}/omlish/asyncs/ioproxy/proxy.py +0 -0
  132. {omlish-0.0.0.dev300 → omlish-0.0.0.dev302}/omlish/asyncs/ioproxy/typing.py +0 -0
  133. {omlish-0.0.0.dev300 → omlish-0.0.0.dev302}/omlish/asyncs/sync.py +0 -0
  134. {omlish-0.0.0.dev300 → omlish-0.0.0.dev302}/omlish/asyncs/trio.py +0 -0
  135. {omlish-0.0.0.dev300 → omlish-0.0.0.dev302}/omlish/asyncs/trio_asyncio.py +0 -0
  136. {omlish-0.0.0.dev300 → omlish-0.0.0.dev302}/omlish/asyncs/utils.py +0 -0
  137. {omlish-0.0.0.dev300 → omlish-0.0.0.dev302}/omlish/bootstrap/__init__.py +0 -0
  138. {omlish-0.0.0.dev300 → omlish-0.0.0.dev302}/omlish/bootstrap/__main__.py +0 -0
  139. {omlish-0.0.0.dev300 → omlish-0.0.0.dev302}/omlish/bootstrap/base.py +0 -0
  140. {omlish-0.0.0.dev300 → omlish-0.0.0.dev302}/omlish/bootstrap/diag.py +0 -0
  141. {omlish-0.0.0.dev300 → omlish-0.0.0.dev302}/omlish/bootstrap/harness.py +0 -0
  142. {omlish-0.0.0.dev300 → omlish-0.0.0.dev302}/omlish/bootstrap/main.py +0 -0
  143. {omlish-0.0.0.dev300 → omlish-0.0.0.dev302}/omlish/bootstrap/marshal.py +0 -0
  144. {omlish-0.0.0.dev300 → omlish-0.0.0.dev302}/omlish/bootstrap/sys.py +0 -0
  145. {omlish-0.0.0.dev300 → omlish-0.0.0.dev302}/omlish/c3.py +0 -0
  146. {omlish-0.0.0.dev300 → omlish-0.0.0.dev302}/omlish/cached.py +0 -0
  147. {omlish-0.0.0.dev300 → omlish-0.0.0.dev302}/omlish/codecs/__init__.py +0 -0
  148. {omlish-0.0.0.dev300 → omlish-0.0.0.dev302}/omlish/codecs/base.py +0 -0
  149. {omlish-0.0.0.dev300 → omlish-0.0.0.dev302}/omlish/codecs/bytes.py +0 -0
  150. {omlish-0.0.0.dev300 → omlish-0.0.0.dev302}/omlish/codecs/chain.py +0 -0
  151. {omlish-0.0.0.dev300 → omlish-0.0.0.dev302}/omlish/codecs/funcs.py +0 -0
  152. {omlish-0.0.0.dev300 → omlish-0.0.0.dev302}/omlish/codecs/registry.py +0 -0
  153. {omlish-0.0.0.dev300 → omlish-0.0.0.dev302}/omlish/codecs/standard.py +0 -0
  154. {omlish-0.0.0.dev300 → omlish-0.0.0.dev302}/omlish/codecs/text.py +0 -0
  155. {omlish-0.0.0.dev300 → omlish-0.0.0.dev302}/omlish/collections/__init__.py +0 -0
  156. {omlish-0.0.0.dev300 → omlish-0.0.0.dev302}/omlish/collections/abc.py +0 -0
  157. {omlish-0.0.0.dev300 → omlish-0.0.0.dev302}/omlish/collections/cache/__init__.py +0 -0
  158. {omlish-0.0.0.dev300 → omlish-0.0.0.dev302}/omlish/collections/cache/descriptor.py +0 -0
  159. {omlish-0.0.0.dev300 → omlish-0.0.0.dev302}/omlish/collections/cache/impl.py +0 -0
  160. {omlish-0.0.0.dev300 → omlish-0.0.0.dev302}/omlish/collections/cache/types.py +0 -0
  161. {omlish-0.0.0.dev300 → omlish-0.0.0.dev302}/omlish/collections/coerce.py +0 -0
  162. {omlish-0.0.0.dev300 → omlish-0.0.0.dev302}/omlish/collections/errors.py +0 -0
  163. {omlish-0.0.0.dev300 → omlish-0.0.0.dev302}/omlish/collections/frozen.py +0 -0
  164. {omlish-0.0.0.dev300 → omlish-0.0.0.dev302}/omlish/collections/hasheq.py +0 -0
  165. {omlish-0.0.0.dev300 → omlish-0.0.0.dev302}/omlish/collections/identity.py +0 -0
  166. {omlish-0.0.0.dev300 → omlish-0.0.0.dev302}/omlish/collections/kv/__init__.py +0 -0
  167. {omlish-0.0.0.dev300 → omlish-0.0.0.dev302}/omlish/collections/kv/base.py +0 -0
  168. {omlish-0.0.0.dev300 → omlish-0.0.0.dev302}/omlish/collections/kv/capabilities.py +0 -0
  169. {omlish-0.0.0.dev300 → omlish-0.0.0.dev302}/omlish/collections/kv/filtered.py +0 -0
  170. {omlish-0.0.0.dev300 → omlish-0.0.0.dev302}/omlish/collections/kv/mappings.py +0 -0
  171. {omlish-0.0.0.dev300 → omlish-0.0.0.dev302}/omlish/collections/kv/transformed.py +0 -0
  172. {omlish-0.0.0.dev300 → omlish-0.0.0.dev302}/omlish/collections/kv/wrappers.py +0 -0
  173. {omlish-0.0.0.dev300 → omlish-0.0.0.dev302}/omlish/collections/mappings.py +0 -0
  174. {omlish-0.0.0.dev300 → omlish-0.0.0.dev302}/omlish/collections/ordered.py +0 -0
  175. {omlish-0.0.0.dev300 → omlish-0.0.0.dev302}/omlish/collections/persistent/__init__.py +0 -0
  176. {omlish-0.0.0.dev300 → omlish-0.0.0.dev302}/omlish/collections/persistent/persistent.py +0 -0
  177. {omlish-0.0.0.dev300 → omlish-0.0.0.dev302}/omlish/collections/persistent/treap.py +0 -0
  178. {omlish-0.0.0.dev300 → omlish-0.0.0.dev302}/omlish/collections/persistent/treapmap.py +0 -0
  179. {omlish-0.0.0.dev300 → omlish-0.0.0.dev302}/omlish/collections/ranked.py +0 -0
  180. {omlish-0.0.0.dev300 → omlish-0.0.0.dev302}/omlish/collections/sorted/__init__.py +0 -0
  181. {omlish-0.0.0.dev300 → omlish-0.0.0.dev302}/omlish/collections/sorted/skiplist.py +0 -0
  182. {omlish-0.0.0.dev300 → omlish-0.0.0.dev302}/omlish/collections/sorted/sorted.py +0 -0
  183. {omlish-0.0.0.dev300 → omlish-0.0.0.dev302}/omlish/collections/unmodifiable.py +0 -0
  184. {omlish-0.0.0.dev300 → omlish-0.0.0.dev302}/omlish/collections/utils.py +0 -0
  185. {omlish-0.0.0.dev300 → omlish-0.0.0.dev302}/omlish/concurrent/__init__.py +0 -0
  186. {omlish-0.0.0.dev300 → omlish-0.0.0.dev302}/omlish/concurrent/executors.py +0 -0
  187. {omlish-0.0.0.dev300 → omlish-0.0.0.dev302}/omlish/concurrent/futures.py +0 -0
  188. {omlish-0.0.0.dev300 → omlish-0.0.0.dev302}/omlish/concurrent/threadlets.py +0 -0
  189. {omlish-0.0.0.dev300 → omlish-0.0.0.dev302}/omlish/configs/__init__.py +0 -0
  190. {omlish-0.0.0.dev300 → omlish-0.0.0.dev302}/omlish/configs/all.py +0 -0
  191. {omlish-0.0.0.dev300 → omlish-0.0.0.dev302}/omlish/configs/classes.py +0 -0
  192. {omlish-0.0.0.dev300 → omlish-0.0.0.dev302}/omlish/configs/formats.py +0 -0
  193. {omlish-0.0.0.dev300 → omlish-0.0.0.dev302}/omlish/configs/nginx.py +0 -0
  194. {omlish-0.0.0.dev300 → omlish-0.0.0.dev302}/omlish/configs/processing/__init__.py +0 -0
  195. {omlish-0.0.0.dev300 → omlish-0.0.0.dev302}/omlish/configs/processing/all.py +0 -0
  196. {omlish-0.0.0.dev300 → omlish-0.0.0.dev302}/omlish/configs/processing/flattening.py +0 -0
  197. {omlish-0.0.0.dev300 → omlish-0.0.0.dev302}/omlish/configs/processing/inheritance.py +0 -0
  198. {omlish-0.0.0.dev300 → omlish-0.0.0.dev302}/omlish/configs/processing/matching.py +0 -0
  199. {omlish-0.0.0.dev300 → omlish-0.0.0.dev302}/omlish/configs/processing/merging.py +0 -0
  200. {omlish-0.0.0.dev300 → omlish-0.0.0.dev302}/omlish/configs/processing/names.py +0 -0
  201. {omlish-0.0.0.dev300 → omlish-0.0.0.dev302}/omlish/configs/processing/rewriting.py +0 -0
  202. {omlish-0.0.0.dev300 → omlish-0.0.0.dev302}/omlish/configs/processing/strings.py +0 -0
  203. {omlish-0.0.0.dev300 → omlish-0.0.0.dev302}/omlish/configs/shadow.py +0 -0
  204. {omlish-0.0.0.dev300 → omlish-0.0.0.dev302}/omlish/configs/types.py +0 -0
  205. {omlish-0.0.0.dev300 → omlish-0.0.0.dev302}/omlish/daemons/__init__.py +0 -0
  206. {omlish-0.0.0.dev300 → omlish-0.0.0.dev302}/omlish/daemons/daemon.py +0 -0
  207. {omlish-0.0.0.dev300 → omlish-0.0.0.dev302}/omlish/daemons/launching.py +0 -0
  208. {omlish-0.0.0.dev300 → omlish-0.0.0.dev302}/omlish/daemons/reparent.py +0 -0
  209. {omlish-0.0.0.dev300 → omlish-0.0.0.dev302}/omlish/daemons/services.py +0 -0
  210. {omlish-0.0.0.dev300 → omlish-0.0.0.dev302}/omlish/daemons/spawning.py +0 -0
  211. {omlish-0.0.0.dev300 → omlish-0.0.0.dev302}/omlish/daemons/targets.py +0 -0
  212. {omlish-0.0.0.dev300 → omlish-0.0.0.dev302}/omlish/daemons/waiting.py +0 -0
  213. {omlish-0.0.0.dev300 → omlish-0.0.0.dev302}/omlish/dataclasses/__init__.py +0 -0
  214. {omlish-0.0.0.dev300 → omlish-0.0.0.dev302}/omlish/dataclasses/api/__init__.py +0 -0
  215. {omlish-0.0.0.dev300 → omlish-0.0.0.dev302}/omlish/dataclasses/api/classes/__init__.py +0 -0
  216. {omlish-0.0.0.dev300 → omlish-0.0.0.dev302}/omlish/dataclasses/api/classes/conversion.py +0 -0
  217. {omlish-0.0.0.dev300 → omlish-0.0.0.dev302}/omlish/dataclasses/api/classes/decorator.py +0 -0
  218. {omlish-0.0.0.dev300 → omlish-0.0.0.dev302}/omlish/dataclasses/api/classes/make.py +0 -0
  219. {omlish-0.0.0.dev300 → omlish-0.0.0.dev302}/omlish/dataclasses/api/classes/metadata.py +0 -0
  220. {omlish-0.0.0.dev300 → omlish-0.0.0.dev302}/omlish/dataclasses/api/classes/params.py +0 -0
  221. {omlish-0.0.0.dev300 → omlish-0.0.0.dev302}/omlish/dataclasses/api/fields/__init__.py +0 -0
  222. {omlish-0.0.0.dev300 → omlish-0.0.0.dev302}/omlish/dataclasses/api/fields/building.py +0 -0
  223. {omlish-0.0.0.dev300 → omlish-0.0.0.dev302}/omlish/dataclasses/api/fields/constructor.py +0 -0
  224. {omlish-0.0.0.dev300 → omlish-0.0.0.dev302}/omlish/dataclasses/api/fields/conversion.py +0 -0
  225. {omlish-0.0.0.dev300 → omlish-0.0.0.dev302}/omlish/dataclasses/api/fields/metadata.py +0 -0
  226. {omlish-0.0.0.dev300 → omlish-0.0.0.dev302}/omlish/dataclasses/concerns/__init__.py +0 -0
  227. {omlish-0.0.0.dev300 → omlish-0.0.0.dev302}/omlish/dataclasses/concerns/abc.py +0 -0
  228. {omlish-0.0.0.dev300 → omlish-0.0.0.dev302}/omlish/dataclasses/concerns/copy.py +0 -0
  229. {omlish-0.0.0.dev300 → omlish-0.0.0.dev302}/omlish/dataclasses/concerns/doc.py +0 -0
  230. {omlish-0.0.0.dev300 → omlish-0.0.0.dev302}/omlish/dataclasses/concerns/eq.py +0 -0
  231. {omlish-0.0.0.dev300 → omlish-0.0.0.dev302}/omlish/dataclasses/concerns/fields.py +0 -0
  232. {omlish-0.0.0.dev300 → omlish-0.0.0.dev302}/omlish/dataclasses/concerns/frozen.py +0 -0
  233. {omlish-0.0.0.dev300 → omlish-0.0.0.dev302}/omlish/dataclasses/concerns/hash.py +0 -0
  234. {omlish-0.0.0.dev300 → omlish-0.0.0.dev302}/omlish/dataclasses/concerns/init.py +0 -0
  235. {omlish-0.0.0.dev300 → omlish-0.0.0.dev302}/omlish/dataclasses/concerns/matchargs.py +0 -0
  236. {omlish-0.0.0.dev300 → omlish-0.0.0.dev302}/omlish/dataclasses/concerns/mro.py +0 -0
  237. {omlish-0.0.0.dev300 → omlish-0.0.0.dev302}/omlish/dataclasses/concerns/order.py +0 -0
  238. {omlish-0.0.0.dev300 → omlish-0.0.0.dev302}/omlish/dataclasses/concerns/override.py +0 -0
  239. {omlish-0.0.0.dev300 → omlish-0.0.0.dev302}/omlish/dataclasses/concerns/params.py +0 -0
  240. {omlish-0.0.0.dev300 → omlish-0.0.0.dev302}/omlish/dataclasses/concerns/replace.py +0 -0
  241. {omlish-0.0.0.dev300 → omlish-0.0.0.dev302}/omlish/dataclasses/concerns/repr.py +0 -0
  242. {omlish-0.0.0.dev300 → omlish-0.0.0.dev302}/omlish/dataclasses/concerns/slots.py +0 -0
  243. {omlish-0.0.0.dev300 → omlish-0.0.0.dev302}/omlish/dataclasses/debug.py +0 -0
  244. {omlish-0.0.0.dev300 → omlish-0.0.0.dev302}/omlish/dataclasses/errors.py +0 -0
  245. {omlish-0.0.0.dev300 → omlish-0.0.0.dev302}/omlish/dataclasses/generation/__init__.py +0 -0
  246. {omlish-0.0.0.dev300 → omlish-0.0.0.dev302}/omlish/dataclasses/generation/base.py +0 -0
  247. {omlish-0.0.0.dev300 → omlish-0.0.0.dev302}/omlish/dataclasses/generation/compilation.py +0 -0
  248. {omlish-0.0.0.dev300 → omlish-0.0.0.dev302}/omlish/dataclasses/generation/execution.py +0 -0
  249. {omlish-0.0.0.dev300 → omlish-0.0.0.dev302}/omlish/dataclasses/generation/globals.py +0 -0
  250. {omlish-0.0.0.dev300 → omlish-0.0.0.dev302}/omlish/dataclasses/generation/idents.py +0 -0
  251. {omlish-0.0.0.dev300 → omlish-0.0.0.dev302}/omlish/dataclasses/generation/mangling.py +0 -0
  252. {omlish-0.0.0.dev300 → omlish-0.0.0.dev302}/omlish/dataclasses/generation/manifests.py +0 -0
  253. {omlish-0.0.0.dev300 → omlish-0.0.0.dev302}/omlish/dataclasses/generation/ops.py +0 -0
  254. {omlish-0.0.0.dev300 → omlish-0.0.0.dev302}/omlish/dataclasses/generation/plans.py +0 -0
  255. {omlish-0.0.0.dev300 → omlish-0.0.0.dev302}/omlish/dataclasses/generation/processor.py +0 -0
  256. {omlish-0.0.0.dev300 → omlish-0.0.0.dev302}/omlish/dataclasses/generation/registry.py +0 -0
  257. {omlish-0.0.0.dev300 → omlish-0.0.0.dev302}/omlish/dataclasses/generation/utils.py +0 -0
  258. {omlish-0.0.0.dev300 → omlish-0.0.0.dev302}/omlish/dataclasses/inspect.py +0 -0
  259. {omlish-0.0.0.dev300 → omlish-0.0.0.dev302}/omlish/dataclasses/internals.py +0 -0
  260. {omlish-0.0.0.dev300 → omlish-0.0.0.dev302}/omlish/dataclasses/metaclass/__init__.py +0 -0
  261. {omlish-0.0.0.dev300 → omlish-0.0.0.dev302}/omlish/dataclasses/metaclass/bases.py +0 -0
  262. {omlish-0.0.0.dev300 → omlish-0.0.0.dev302}/omlish/dataclasses/metaclass/confer.py +0 -0
  263. {omlish-0.0.0.dev300 → omlish-0.0.0.dev302}/omlish/dataclasses/metaclass/meta.py +0 -0
  264. {omlish-0.0.0.dev300 → omlish-0.0.0.dev302}/omlish/dataclasses/metaclass/specs.py +0 -0
  265. {omlish-0.0.0.dev300 → omlish-0.0.0.dev302}/omlish/dataclasses/processing/__init__.py +0 -0
  266. {omlish-0.0.0.dev300 → omlish-0.0.0.dev302}/omlish/dataclasses/processing/base.py +0 -0
  267. {omlish-0.0.0.dev300 → omlish-0.0.0.dev302}/omlish/dataclasses/processing/driving.py +0 -0
  268. {omlish-0.0.0.dev300 → omlish-0.0.0.dev302}/omlish/dataclasses/processing/priority.py +0 -0
  269. {omlish-0.0.0.dev300 → omlish-0.0.0.dev302}/omlish/dataclasses/processing/registry.py +0 -0
  270. {omlish-0.0.0.dev300 → omlish-0.0.0.dev302}/omlish/dataclasses/reflection.py +0 -0
  271. {omlish-0.0.0.dev300 → omlish-0.0.0.dev302}/omlish/dataclasses/specs.py +0 -0
  272. {omlish-0.0.0.dev300 → omlish-0.0.0.dev302}/omlish/dataclasses/tools/__init__.py +0 -0
  273. {omlish-0.0.0.dev300 → omlish-0.0.0.dev302}/omlish/dataclasses/tools/as_.py +0 -0
  274. {omlish-0.0.0.dev300 → omlish-0.0.0.dev302}/omlish/dataclasses/tools/iter.py +0 -0
  275. {omlish-0.0.0.dev300 → omlish-0.0.0.dev302}/omlish/dataclasses/tools/modifiers.py +0 -0
  276. {omlish-0.0.0.dev300 → omlish-0.0.0.dev302}/omlish/dataclasses/tools/replace.py +0 -0
  277. {omlish-0.0.0.dev300 → omlish-0.0.0.dev302}/omlish/dataclasses/tools/repr.py +0 -0
  278. {omlish-0.0.0.dev300 → omlish-0.0.0.dev302}/omlish/dataclasses/tools/static.py +0 -0
  279. {omlish-0.0.0.dev300 → omlish-0.0.0.dev302}/omlish/dataclasses/utils.py +0 -0
  280. {omlish-0.0.0.dev300 → omlish-0.0.0.dev302}/omlish/datetimes.py +0 -0
  281. {omlish-0.0.0.dev300 → omlish-0.0.0.dev302}/omlish/defs.py +0 -0
  282. {omlish-0.0.0.dev300 → omlish-0.0.0.dev302}/omlish/diag/__init__.py +0 -0
  283. {omlish-0.0.0.dev300 → omlish-0.0.0.dev302}/omlish/diag/_pycharm/__init__.py +0 -0
  284. {omlish-0.0.0.dev300 → omlish-0.0.0.dev302}/omlish/diag/_pycharm/runhack.py +0 -0
  285. {omlish-0.0.0.dev300 → omlish-0.0.0.dev302}/omlish/diag/asts.py +0 -0
  286. {omlish-0.0.0.dev300 → omlish-0.0.0.dev302}/omlish/diag/debug.py +0 -0
  287. {omlish-0.0.0.dev300 → omlish-0.0.0.dev302}/omlish/diag/lslocks.py +0 -0
  288. {omlish-0.0.0.dev300 → omlish-0.0.0.dev302}/omlish/diag/lsof.py +0 -0
  289. {omlish-0.0.0.dev300 → omlish-0.0.0.dev302}/omlish/diag/procfs.py +0 -0
  290. {omlish-0.0.0.dev300 → omlish-0.0.0.dev302}/omlish/diag/procstats.py +0 -0
  291. {omlish-0.0.0.dev300 → omlish-0.0.0.dev302}/omlish/diag/ps.py +0 -0
  292. {omlish-0.0.0.dev300 → omlish-0.0.0.dev302}/omlish/diag/pycharm.py +0 -0
  293. {omlish-0.0.0.dev300 → omlish-0.0.0.dev302}/omlish/diag/pydevd.py +0 -0
  294. {omlish-0.0.0.dev300 → omlish-0.0.0.dev302}/omlish/diag/replserver/__init__.py +0 -0
  295. {omlish-0.0.0.dev300 → omlish-0.0.0.dev302}/omlish/diag/replserver/__main__.py +0 -0
  296. {omlish-0.0.0.dev300 → omlish-0.0.0.dev302}/omlish/diag/replserver/console.py +0 -0
  297. {omlish-0.0.0.dev300 → omlish-0.0.0.dev302}/omlish/diag/replserver/server.py +0 -0
  298. {omlish-0.0.0.dev300 → omlish-0.0.0.dev302}/omlish/diag/threads.py +0 -0
  299. {omlish-0.0.0.dev300 → omlish-0.0.0.dev302}/omlish/dispatch/__init__.py +0 -0
  300. {omlish-0.0.0.dev300 → omlish-0.0.0.dev302}/omlish/dispatch/_dispatch2.py +0 -0
  301. {omlish-0.0.0.dev300 → omlish-0.0.0.dev302}/omlish/dispatch/_dispatch3.py +0 -0
  302. {omlish-0.0.0.dev300 → omlish-0.0.0.dev302}/omlish/dispatch/dispatch.py +0 -0
  303. {omlish-0.0.0.dev300 → omlish-0.0.0.dev302}/omlish/dispatch/functions.py +0 -0
  304. {omlish-0.0.0.dev300 → omlish-0.0.0.dev302}/omlish/dispatch/impls.py +0 -0
  305. {omlish-0.0.0.dev300 → omlish-0.0.0.dev302}/omlish/dispatch/methods.py +0 -0
  306. {omlish-0.0.0.dev300 → omlish-0.0.0.dev302}/omlish/docker/__init__.py +0 -0
  307. {omlish-0.0.0.dev300 → omlish-0.0.0.dev302}/omlish/docker/all.py +0 -0
  308. {omlish-0.0.0.dev300 → omlish-0.0.0.dev302}/omlish/docker/cli.py +0 -0
  309. {omlish-0.0.0.dev300 → omlish-0.0.0.dev302}/omlish/docker/compose.py +0 -0
  310. {omlish-0.0.0.dev300 → omlish-0.0.0.dev302}/omlish/docker/consts.py +0 -0
  311. {omlish-0.0.0.dev300 → omlish-0.0.0.dev302}/omlish/docker/detect.py +0 -0
  312. {omlish-0.0.0.dev300 → omlish-0.0.0.dev302}/omlish/docker/hub.py +0 -0
  313. {omlish-0.0.0.dev300 → omlish-0.0.0.dev302}/omlish/docker/manifests.py +0 -0
  314. {omlish-0.0.0.dev300 → omlish-0.0.0.dev302}/omlish/docker/ns1.py +0 -0
  315. {omlish-0.0.0.dev300 → omlish-0.0.0.dev302}/omlish/docker/ports.py +0 -0
  316. {omlish-0.0.0.dev300 → omlish-0.0.0.dev302}/omlish/docker/timebomb.py +0 -0
  317. {omlish-0.0.0.dev300 → omlish-0.0.0.dev302}/omlish/dom/__init__.py +0 -0
  318. {omlish-0.0.0.dev300 → omlish-0.0.0.dev302}/omlish/dom/building.py +0 -0
  319. {omlish-0.0.0.dev300 → omlish-0.0.0.dev302}/omlish/dom/content.py +0 -0
  320. {omlish-0.0.0.dev300 → omlish-0.0.0.dev302}/omlish/dom/rendering.py +0 -0
  321. {omlish-0.0.0.dev300 → omlish-0.0.0.dev302}/omlish/dynamic.py +0 -0
  322. {omlish-0.0.0.dev300 → omlish-0.0.0.dev302}/omlish/formats/__init__.py +0 -0
  323. {omlish-0.0.0.dev300 → omlish-0.0.0.dev302}/omlish/formats/cbor.py +0 -0
  324. {omlish-0.0.0.dev300 → omlish-0.0.0.dev302}/omlish/formats/cloudpickle.py +0 -0
  325. {omlish-0.0.0.dev300 → omlish-0.0.0.dev302}/omlish/formats/codecs.py +0 -0
  326. {omlish-0.0.0.dev300 → omlish-0.0.0.dev302}/omlish/formats/dotenv.py +0 -0
  327. {omlish-0.0.0.dev300 → omlish-0.0.0.dev302}/omlish/formats/ini/__init__.py +0 -0
  328. {omlish-0.0.0.dev300 → omlish-0.0.0.dev302}/omlish/formats/ini/codec.py +0 -0
  329. {omlish-0.0.0.dev300 → omlish-0.0.0.dev302}/omlish/formats/ini/sections.py +0 -0
  330. {omlish-0.0.0.dev300 → omlish-0.0.0.dev302}/omlish/formats/json/__init__.py +0 -0
  331. {omlish-0.0.0.dev300 → omlish-0.0.0.dev302}/omlish/formats/json/backends/__init__.py +0 -0
  332. {omlish-0.0.0.dev300 → omlish-0.0.0.dev302}/omlish/formats/json/backends/base.py +0 -0
  333. {omlish-0.0.0.dev300 → omlish-0.0.0.dev302}/omlish/formats/json/backends/default.py +0 -0
  334. {omlish-0.0.0.dev300 → omlish-0.0.0.dev302}/omlish/formats/json/backends/jiter.py +0 -0
  335. {omlish-0.0.0.dev300 → omlish-0.0.0.dev302}/omlish/formats/json/backends/orjson.py +0 -0
  336. {omlish-0.0.0.dev300 → omlish-0.0.0.dev302}/omlish/formats/json/backends/std.py +0 -0
  337. {omlish-0.0.0.dev300 → omlish-0.0.0.dev302}/omlish/formats/json/backends/ujson.py +0 -0
  338. {omlish-0.0.0.dev300 → omlish-0.0.0.dev302}/omlish/formats/json/codecs.py +0 -0
  339. {omlish-0.0.0.dev300 → omlish-0.0.0.dev302}/omlish/formats/json/consts.py +0 -0
  340. {omlish-0.0.0.dev300 → omlish-0.0.0.dev302}/omlish/formats/json/encoding.py +0 -0
  341. {omlish-0.0.0.dev300 → omlish-0.0.0.dev302}/omlish/formats/json/json.py +0 -0
  342. {omlish-0.0.0.dev300 → omlish-0.0.0.dev302}/omlish/formats/json/literals.py +0 -0
  343. {omlish-0.0.0.dev300 → omlish-0.0.0.dev302}/omlish/formats/json/render.py +0 -0
  344. {omlish-0.0.0.dev300 → omlish-0.0.0.dev302}/omlish/formats/json/stream/__init__.py +0 -0
  345. {omlish-0.0.0.dev300 → omlish-0.0.0.dev302}/omlish/formats/json/stream/build.py +0 -0
  346. {omlish-0.0.0.dev300 → omlish-0.0.0.dev302}/omlish/formats/json/stream/errors.py +0 -0
  347. {omlish-0.0.0.dev300 → omlish-0.0.0.dev302}/omlish/formats/json/stream/lex.py +0 -0
  348. {omlish-0.0.0.dev300 → omlish-0.0.0.dev302}/omlish/formats/json/stream/parse.py +0 -0
  349. {omlish-0.0.0.dev300 → omlish-0.0.0.dev302}/omlish/formats/json/stream/render.py +0 -0
  350. {omlish-0.0.0.dev300 → omlish-0.0.0.dev302}/omlish/formats/json/stream/utils.py +0 -0
  351. {omlish-0.0.0.dev300 → omlish-0.0.0.dev302}/omlish/formats/json/types.py +0 -0
  352. {omlish-0.0.0.dev300 → omlish-0.0.0.dev302}/omlish/formats/json5/Json5.g4 +0 -0
  353. {omlish-0.0.0.dev300 → omlish-0.0.0.dev302}/omlish/formats/json5/__init__.py +0 -0
  354. {omlish-0.0.0.dev300 → omlish-0.0.0.dev302}/omlish/formats/json5/_antlr/Json5Lexer.py +0 -0
  355. {omlish-0.0.0.dev300 → omlish-0.0.0.dev302}/omlish/formats/json5/_antlr/Json5Listener.py +0 -0
  356. {omlish-0.0.0.dev300 → omlish-0.0.0.dev302}/omlish/formats/json5/_antlr/Json5Parser.py +0 -0
  357. {omlish-0.0.0.dev300 → omlish-0.0.0.dev302}/omlish/formats/json5/_antlr/Json5Visitor.py +0 -0
  358. {omlish-0.0.0.dev300 → omlish-0.0.0.dev302}/omlish/formats/json5/_antlr/__init__.py +0 -0
  359. {omlish-0.0.0.dev300 → omlish-0.0.0.dev302}/omlish/formats/json5/codec.py +0 -0
  360. {omlish-0.0.0.dev300 → omlish-0.0.0.dev302}/omlish/formats/json5/errors.py +0 -0
  361. {omlish-0.0.0.dev300 → omlish-0.0.0.dev302}/omlish/formats/json5/literals.py +0 -0
  362. {omlish-0.0.0.dev300 → omlish-0.0.0.dev302}/omlish/formats/json5/parsing.py +0 -0
  363. {omlish-0.0.0.dev300 → omlish-0.0.0.dev302}/omlish/formats/pickle.py +0 -0
  364. {omlish-0.0.0.dev300 → omlish-0.0.0.dev302}/omlish/formats/props.py +0 -0
  365. {omlish-0.0.0.dev300 → omlish-0.0.0.dev302}/omlish/formats/repr.py +0 -0
  366. {omlish-0.0.0.dev300 → omlish-0.0.0.dev302}/omlish/formats/toml/__init__.py +0 -0
  367. {omlish-0.0.0.dev300 → omlish-0.0.0.dev302}/omlish/formats/toml/codec.py +0 -0
  368. {omlish-0.0.0.dev300 → omlish-0.0.0.dev302}/omlish/formats/toml/writer.py +0 -0
  369. {omlish-0.0.0.dev300 → omlish-0.0.0.dev302}/omlish/formats/xml.py +0 -0
  370. {omlish-0.0.0.dev300 → omlish-0.0.0.dev302}/omlish/formats/yaml.py +0 -0
  371. {omlish-0.0.0.dev300 → omlish-0.0.0.dev302}/omlish/funcs/__init__.py +0 -0
  372. {omlish-0.0.0.dev300 → omlish-0.0.0.dev302}/omlish/funcs/genmachine.py +0 -0
  373. {omlish-0.0.0.dev300 → omlish-0.0.0.dev302}/omlish/funcs/match.py +0 -0
  374. {omlish-0.0.0.dev300 → omlish-0.0.0.dev302}/omlish/funcs/pairs.py +0 -0
  375. {omlish-0.0.0.dev300 → omlish-0.0.0.dev302}/omlish/funcs/pipes.py +0 -0
  376. {omlish-0.0.0.dev300 → omlish-0.0.0.dev302}/omlish/graphs/__init__.py +0 -0
  377. {omlish-0.0.0.dev300 → omlish-0.0.0.dev302}/omlish/graphs/dags.py +0 -0
  378. {omlish-0.0.0.dev300 → omlish-0.0.0.dev302}/omlish/graphs/domination.py +0 -0
  379. {omlish-0.0.0.dev300 → omlish-0.0.0.dev302}/omlish/graphs/dot/__init__.py +0 -0
  380. {omlish-0.0.0.dev300 → omlish-0.0.0.dev302}/omlish/graphs/dot/items.py +0 -0
  381. {omlish-0.0.0.dev300 → omlish-0.0.0.dev302}/omlish/graphs/dot/make.py +0 -0
  382. {omlish-0.0.0.dev300 → omlish-0.0.0.dev302}/omlish/graphs/dot/rendering.py +0 -0
  383. {omlish-0.0.0.dev300 → omlish-0.0.0.dev302}/omlish/graphs/dot/utils.py +0 -0
  384. {omlish-0.0.0.dev300 → omlish-0.0.0.dev302}/omlish/graphs/trees.py +0 -0
  385. {omlish-0.0.0.dev300 → omlish-0.0.0.dev302}/omlish/http/__init__.py +0 -0
  386. {omlish-0.0.0.dev300 → omlish-0.0.0.dev302}/omlish/http/all.py +0 -0
  387. {omlish-0.0.0.dev300 → omlish-0.0.0.dev302}/omlish/http/asgi.py +0 -0
  388. {omlish-0.0.0.dev300 → omlish-0.0.0.dev302}/omlish/http/clients/__init__.py +0 -0
  389. {omlish-0.0.0.dev300 → omlish-0.0.0.dev302}/omlish/http/clients/base.py +0 -0
  390. {omlish-0.0.0.dev300 → omlish-0.0.0.dev302}/omlish/http/clients/default.py +0 -0
  391. {omlish-0.0.0.dev300 → omlish-0.0.0.dev302}/omlish/http/clients/httpx.py +0 -0
  392. {omlish-0.0.0.dev300 → omlish-0.0.0.dev302}/omlish/http/clients/urllib.py +0 -0
  393. {omlish-0.0.0.dev300 → omlish-0.0.0.dev302}/omlish/http/consts.py +0 -0
  394. {omlish-0.0.0.dev300 → omlish-0.0.0.dev302}/omlish/http/cookies.py +0 -0
  395. {omlish-0.0.0.dev300 → omlish-0.0.0.dev302}/omlish/http/coro/__init__.py +0 -0
  396. {omlish-0.0.0.dev300 → omlish-0.0.0.dev302}/omlish/http/coro/fdio.py +0 -0
  397. {omlish-0.0.0.dev300 → omlish-0.0.0.dev302}/omlish/http/coro/server.py +0 -0
  398. {omlish-0.0.0.dev300 → omlish-0.0.0.dev302}/omlish/http/coro/simple.py +0 -0
  399. {omlish-0.0.0.dev300 → omlish-0.0.0.dev302}/omlish/http/coro/sockets.py +0 -0
  400. {omlish-0.0.0.dev300 → omlish-0.0.0.dev302}/omlish/http/dates.py +0 -0
  401. {omlish-0.0.0.dev300 → omlish-0.0.0.dev302}/omlish/http/encodings.py +0 -0
  402. {omlish-0.0.0.dev300 → omlish-0.0.0.dev302}/omlish/http/handlers.py +0 -0
  403. {omlish-0.0.0.dev300 → omlish-0.0.0.dev302}/omlish/http/headers.py +0 -0
  404. {omlish-0.0.0.dev300 → omlish-0.0.0.dev302}/omlish/http/json.py +0 -0
  405. {omlish-0.0.0.dev300 → omlish-0.0.0.dev302}/omlish/http/jwt.py +0 -0
  406. {omlish-0.0.0.dev300 → omlish-0.0.0.dev302}/omlish/http/multipart.py +0 -0
  407. {omlish-0.0.0.dev300 → omlish-0.0.0.dev302}/omlish/http/parsing.py +0 -0
  408. {omlish-0.0.0.dev300 → omlish-0.0.0.dev302}/omlish/http/sessions.py +0 -0
  409. {omlish-0.0.0.dev300 → omlish-0.0.0.dev302}/omlish/http/sse.py +0 -0
  410. {omlish-0.0.0.dev300 → omlish-0.0.0.dev302}/omlish/http/urllib.py +0 -0
  411. {omlish-0.0.0.dev300 → omlish-0.0.0.dev302}/omlish/http/versions.py +0 -0
  412. {omlish-0.0.0.dev300 → omlish-0.0.0.dev302}/omlish/http/wsgi.py +0 -0
  413. {omlish-0.0.0.dev300 → omlish-0.0.0.dev302}/omlish/inject/__init__.py +0 -0
  414. {omlish-0.0.0.dev300 → omlish-0.0.0.dev302}/omlish/inject/binder.py +0 -0
  415. {omlish-0.0.0.dev300 → omlish-0.0.0.dev302}/omlish/inject/bindings.py +0 -0
  416. {omlish-0.0.0.dev300 → omlish-0.0.0.dev302}/omlish/inject/eagers.py +0 -0
  417. {omlish-0.0.0.dev300 → omlish-0.0.0.dev302}/omlish/inject/elements.py +0 -0
  418. {omlish-0.0.0.dev300 → omlish-0.0.0.dev302}/omlish/inject/errors.py +0 -0
  419. {omlish-0.0.0.dev300 → omlish-0.0.0.dev302}/omlish/inject/impl/__init__.py +0 -0
  420. {omlish-0.0.0.dev300 → omlish-0.0.0.dev302}/omlish/inject/impl/bindings.py +0 -0
  421. {omlish-0.0.0.dev300 → omlish-0.0.0.dev302}/omlish/inject/impl/elements.py +0 -0
  422. {omlish-0.0.0.dev300 → omlish-0.0.0.dev302}/omlish/inject/impl/injector.py +0 -0
  423. {omlish-0.0.0.dev300 → omlish-0.0.0.dev302}/omlish/inject/impl/inspect.py +0 -0
  424. {omlish-0.0.0.dev300 → omlish-0.0.0.dev302}/omlish/inject/impl/multis.py +0 -0
  425. {omlish-0.0.0.dev300 → omlish-0.0.0.dev302}/omlish/inject/impl/origins.py +0 -0
  426. {omlish-0.0.0.dev300 → omlish-0.0.0.dev302}/omlish/inject/impl/privates.py +0 -0
  427. {omlish-0.0.0.dev300 → omlish-0.0.0.dev302}/omlish/inject/impl/providers.py +0 -0
  428. {omlish-0.0.0.dev300 → omlish-0.0.0.dev302}/omlish/inject/impl/proxy.py +0 -0
  429. {omlish-0.0.0.dev300 → omlish-0.0.0.dev302}/omlish/inject/impl/scopes.py +0 -0
  430. {omlish-0.0.0.dev300 → omlish-0.0.0.dev302}/omlish/inject/injector.py +0 -0
  431. {omlish-0.0.0.dev300 → omlish-0.0.0.dev302}/omlish/inject/inspect.py +0 -0
  432. {omlish-0.0.0.dev300 → omlish-0.0.0.dev302}/omlish/inject/keys.py +0 -0
  433. {omlish-0.0.0.dev300 → omlish-0.0.0.dev302}/omlish/inject/listeners.py +0 -0
  434. {omlish-0.0.0.dev300 → omlish-0.0.0.dev302}/omlish/inject/managed.py +0 -0
  435. {omlish-0.0.0.dev300 → omlish-0.0.0.dev302}/omlish/inject/multis.py +0 -0
  436. {omlish-0.0.0.dev300 → omlish-0.0.0.dev302}/omlish/inject/origins.py +0 -0
  437. {omlish-0.0.0.dev300 → omlish-0.0.0.dev302}/omlish/inject/overrides.py +0 -0
  438. {omlish-0.0.0.dev300 → omlish-0.0.0.dev302}/omlish/inject/privates.py +0 -0
  439. {omlish-0.0.0.dev300 → omlish-0.0.0.dev302}/omlish/inject/providers.py +0 -0
  440. {omlish-0.0.0.dev300 → omlish-0.0.0.dev302}/omlish/inject/scopes.py +0 -0
  441. {omlish-0.0.0.dev300 → omlish-0.0.0.dev302}/omlish/inject/types.py +0 -0
  442. {omlish-0.0.0.dev300 → omlish-0.0.0.dev302}/omlish/inject/utils.py +0 -0
  443. {omlish-0.0.0.dev300 → omlish-0.0.0.dev302}/omlish/io/__init__.py +0 -0
  444. {omlish-0.0.0.dev300 → omlish-0.0.0.dev302}/omlish/io/abc.py +0 -0
  445. {omlish-0.0.0.dev300 → omlish-0.0.0.dev302}/omlish/io/buffers.py +0 -0
  446. {omlish-0.0.0.dev300 → omlish-0.0.0.dev302}/omlish/io/compress/__init__.py +0 -0
  447. {omlish-0.0.0.dev300 → omlish-0.0.0.dev302}/omlish/io/compress/abc.py +0 -0
  448. {omlish-0.0.0.dev300 → omlish-0.0.0.dev302}/omlish/io/compress/adapters.py +0 -0
  449. {omlish-0.0.0.dev300 → omlish-0.0.0.dev302}/omlish/io/compress/base.py +0 -0
  450. {omlish-0.0.0.dev300 → omlish-0.0.0.dev302}/omlish/io/compress/brotli.py +0 -0
  451. {omlish-0.0.0.dev300 → omlish-0.0.0.dev302}/omlish/io/compress/bz2.py +0 -0
  452. {omlish-0.0.0.dev300 → omlish-0.0.0.dev302}/omlish/io/compress/codecs.py +0 -0
  453. {omlish-0.0.0.dev300 → omlish-0.0.0.dev302}/omlish/io/compress/gzip.py +0 -0
  454. {omlish-0.0.0.dev300 → omlish-0.0.0.dev302}/omlish/io/compress/lz4.py +0 -0
  455. {omlish-0.0.0.dev300 → omlish-0.0.0.dev302}/omlish/io/compress/lzma.py +0 -0
  456. {omlish-0.0.0.dev300 → omlish-0.0.0.dev302}/omlish/io/compress/snappy.py +0 -0
  457. {omlish-0.0.0.dev300 → omlish-0.0.0.dev302}/omlish/io/compress/zlib.py +0 -0
  458. {omlish-0.0.0.dev300 → omlish-0.0.0.dev302}/omlish/io/compress/zstd.py +0 -0
  459. {omlish-0.0.0.dev300 → omlish-0.0.0.dev302}/omlish/io/coro/__init__.py +0 -0
  460. {omlish-0.0.0.dev300 → omlish-0.0.0.dev302}/omlish/io/coro/consts.py +0 -0
  461. {omlish-0.0.0.dev300 → omlish-0.0.0.dev302}/omlish/io/coro/direct.py +0 -0
  462. {omlish-0.0.0.dev300 → omlish-0.0.0.dev302}/omlish/io/coro/readers.py +0 -0
  463. {omlish-0.0.0.dev300 → omlish-0.0.0.dev302}/omlish/io/coro/stepped.py +0 -0
  464. {omlish-0.0.0.dev300 → omlish-0.0.0.dev302}/omlish/io/fdio/__init__.py +0 -0
  465. {omlish-0.0.0.dev300 → omlish-0.0.0.dev302}/omlish/io/fdio/pollers.py +0 -0
  466. {omlish-0.0.0.dev300 → omlish-0.0.0.dev302}/omlish/io/fileno.py +0 -0
  467. {omlish-0.0.0.dev300 → omlish-0.0.0.dev302}/omlish/io/pyio.py +0 -0
  468. {omlish-0.0.0.dev300 → omlish-0.0.0.dev302}/omlish/iterators/__init__.py +0 -0
  469. {omlish-0.0.0.dev300 → omlish-0.0.0.dev302}/omlish/iterators/iterators.py +0 -0
  470. {omlish-0.0.0.dev300 → omlish-0.0.0.dev302}/omlish/iterators/recipes.py +0 -0
  471. {omlish-0.0.0.dev300 → omlish-0.0.0.dev302}/omlish/iterators/tools.py +0 -0
  472. {omlish-0.0.0.dev300 → omlish-0.0.0.dev302}/omlish/iterators/unique.py +0 -0
  473. {omlish-0.0.0.dev300 → omlish-0.0.0.dev302}/omlish/lang/__init__.py +0 -0
  474. {omlish-0.0.0.dev300 → omlish-0.0.0.dev302}/omlish/lang/attrs.py +0 -0
  475. {omlish-0.0.0.dev300 → omlish-0.0.0.dev302}/omlish/lang/cached/__init__.py +0 -0
  476. {omlish-0.0.0.dev300 → omlish-0.0.0.dev302}/omlish/lang/cached/function.py +0 -0
  477. {omlish-0.0.0.dev300 → omlish-0.0.0.dev302}/omlish/lang/cached/property.py +0 -0
  478. {omlish-0.0.0.dev300 → omlish-0.0.0.dev302}/omlish/lang/classes/__init__.py +0 -0
  479. {omlish-0.0.0.dev300 → omlish-0.0.0.dev302}/omlish/lang/classes/abstract.py +0 -0
  480. {omlish-0.0.0.dev300 → omlish-0.0.0.dev302}/omlish/lang/classes/restrict.py +0 -0
  481. {omlish-0.0.0.dev300 → omlish-0.0.0.dev302}/omlish/lang/classes/simple.py +0 -0
  482. {omlish-0.0.0.dev300 → omlish-0.0.0.dev302}/omlish/lang/classes/virtual.py +0 -0
  483. {omlish-0.0.0.dev300 → omlish-0.0.0.dev302}/omlish/lang/clsdct.py +0 -0
  484. {omlish-0.0.0.dev300 → omlish-0.0.0.dev302}/omlish/lang/comparison.py +0 -0
  485. {omlish-0.0.0.dev300 → omlish-0.0.0.dev302}/omlish/lang/contextmanagers.py +0 -0
  486. {omlish-0.0.0.dev300 → omlish-0.0.0.dev302}/omlish/lang/datetimes.py +0 -0
  487. {omlish-0.0.0.dev300 → omlish-0.0.0.dev302}/omlish/lang/descriptors.py +0 -0
  488. {omlish-0.0.0.dev300 → omlish-0.0.0.dev302}/omlish/lang/enums.py +0 -0
  489. {omlish-0.0.0.dev300 → omlish-0.0.0.dev302}/omlish/lang/functions.py +0 -0
  490. {omlish-0.0.0.dev300 → omlish-0.0.0.dev302}/omlish/lang/generators.py +0 -0
  491. {omlish-0.0.0.dev300 → omlish-0.0.0.dev302}/omlish/lang/iterables.py +0 -0
  492. {omlish-0.0.0.dev300 → omlish-0.0.0.dev302}/omlish/lang/maybes.py +0 -0
  493. {omlish-0.0.0.dev300 → omlish-0.0.0.dev302}/omlish/lang/objects.py +0 -0
  494. {omlish-0.0.0.dev300 → omlish-0.0.0.dev302}/omlish/lang/outcomes.py +0 -0
  495. {omlish-0.0.0.dev300 → omlish-0.0.0.dev302}/omlish/lang/params.py +0 -0
  496. {omlish-0.0.0.dev300 → omlish-0.0.0.dev302}/omlish/lang/resolving.py +0 -0
  497. {omlish-0.0.0.dev300 → omlish-0.0.0.dev302}/omlish/lang/resources.py +0 -0
  498. {omlish-0.0.0.dev300 → omlish-0.0.0.dev302}/omlish/lang/strings.py +0 -0
  499. {omlish-0.0.0.dev300 → omlish-0.0.0.dev302}/omlish/lang/sys.py +0 -0
  500. {omlish-0.0.0.dev300 → omlish-0.0.0.dev302}/omlish/lang/typing.py +0 -0
  501. {omlish-0.0.0.dev300 → omlish-0.0.0.dev302}/omlish/libc.py +0 -0
  502. {omlish-0.0.0.dev300 → omlish-0.0.0.dev302}/omlish/lifecycles/__init__.py +0 -0
  503. {omlish-0.0.0.dev300 → omlish-0.0.0.dev302}/omlish/lifecycles/abstract.py +0 -0
  504. {omlish-0.0.0.dev300 → omlish-0.0.0.dev302}/omlish/lifecycles/base.py +0 -0
  505. {omlish-0.0.0.dev300 → omlish-0.0.0.dev302}/omlish/lifecycles/contextmanagers.py +0 -0
  506. {omlish-0.0.0.dev300 → omlish-0.0.0.dev302}/omlish/lifecycles/controller.py +0 -0
  507. {omlish-0.0.0.dev300 → omlish-0.0.0.dev302}/omlish/lifecycles/manager.py +0 -0
  508. {omlish-0.0.0.dev300 → omlish-0.0.0.dev302}/omlish/lifecycles/states.py +0 -0
  509. {omlish-0.0.0.dev300 → omlish-0.0.0.dev302}/omlish/lifecycles/transitions.py +0 -0
  510. {omlish-0.0.0.dev300 → omlish-0.0.0.dev302}/omlish/lite/__init__.py +0 -0
  511. {omlish-0.0.0.dev300 → omlish-0.0.0.dev302}/omlish/lite/cached.py +0 -0
  512. {omlish-0.0.0.dev300 → omlish-0.0.0.dev302}/omlish/lite/configs.py +0 -0
  513. {omlish-0.0.0.dev300 → omlish-0.0.0.dev302}/omlish/lite/contextmanagers.py +0 -0
  514. {omlish-0.0.0.dev300 → omlish-0.0.0.dev302}/omlish/lite/dataclasses.py +0 -0
  515. {omlish-0.0.0.dev300 → omlish-0.0.0.dev302}/omlish/lite/imports.py +0 -0
  516. {omlish-0.0.0.dev300 → omlish-0.0.0.dev302}/omlish/lite/inject.py +0 -0
  517. {omlish-0.0.0.dev300 → omlish-0.0.0.dev302}/omlish/lite/json.py +0 -0
  518. {omlish-0.0.0.dev300 → omlish-0.0.0.dev302}/omlish/lite/logs.py +0 -0
  519. {omlish-0.0.0.dev300 → omlish-0.0.0.dev302}/omlish/lite/marshal.py +0 -0
  520. {omlish-0.0.0.dev300 → omlish-0.0.0.dev302}/omlish/lite/maybes.py +0 -0
  521. {omlish-0.0.0.dev300 → omlish-0.0.0.dev302}/omlish/lite/pycharm.py +0 -0
  522. {omlish-0.0.0.dev300 → omlish-0.0.0.dev302}/omlish/lite/reflect.py +0 -0
  523. {omlish-0.0.0.dev300 → omlish-0.0.0.dev302}/omlish/lite/reprs.py +0 -0
  524. {omlish-0.0.0.dev300 → omlish-0.0.0.dev302}/omlish/lite/resources.py +0 -0
  525. {omlish-0.0.0.dev300 → omlish-0.0.0.dev302}/omlish/lite/runtime.py +0 -0
  526. {omlish-0.0.0.dev300 → omlish-0.0.0.dev302}/omlish/lite/secrets.py +0 -0
  527. {omlish-0.0.0.dev300 → omlish-0.0.0.dev302}/omlish/lite/strings.py +0 -0
  528. {omlish-0.0.0.dev300 → omlish-0.0.0.dev302}/omlish/lite/timeouts.py +0 -0
  529. {omlish-0.0.0.dev300 → omlish-0.0.0.dev302}/omlish/lite/timing.py +0 -0
  530. {omlish-0.0.0.dev300 → omlish-0.0.0.dev302}/omlish/lite/types.py +0 -0
  531. {omlish-0.0.0.dev300 → omlish-0.0.0.dev302}/omlish/lite/typing.py +0 -0
  532. {omlish-0.0.0.dev300 → omlish-0.0.0.dev302}/omlish/logs/__init__.py +0 -0
  533. {omlish-0.0.0.dev300 → omlish-0.0.0.dev302}/omlish/logs/abc.py +0 -0
  534. {omlish-0.0.0.dev300 → omlish-0.0.0.dev302}/omlish/logs/all.py +0 -0
  535. {omlish-0.0.0.dev300 → omlish-0.0.0.dev302}/omlish/logs/callers.py +0 -0
  536. {omlish-0.0.0.dev300 → omlish-0.0.0.dev302}/omlish/logs/color.py +0 -0
  537. {omlish-0.0.0.dev300 → omlish-0.0.0.dev302}/omlish/logs/configs.py +0 -0
  538. {omlish-0.0.0.dev300 → omlish-0.0.0.dev302}/omlish/logs/filters.py +0 -0
  539. {omlish-0.0.0.dev300 → omlish-0.0.0.dev302}/omlish/logs/handlers.py +0 -0
  540. {omlish-0.0.0.dev300 → omlish-0.0.0.dev302}/omlish/logs/json.py +0 -0
  541. {omlish-0.0.0.dev300 → omlish-0.0.0.dev302}/omlish/logs/noisy.py +0 -0
  542. {omlish-0.0.0.dev300 → omlish-0.0.0.dev302}/omlish/logs/protocol.py +0 -0
  543. {omlish-0.0.0.dev300 → omlish-0.0.0.dev302}/omlish/logs/proxy.py +0 -0
  544. {omlish-0.0.0.dev300 → omlish-0.0.0.dev302}/omlish/logs/standard.py +0 -0
  545. {omlish-0.0.0.dev300 → omlish-0.0.0.dev302}/omlish/logs/timing.py +0 -0
  546. {omlish-0.0.0.dev300 → omlish-0.0.0.dev302}/omlish/logs/utils.py +0 -0
  547. {omlish-0.0.0.dev300 → omlish-0.0.0.dev302}/omlish/manifests/__init__.py +0 -0
  548. {omlish-0.0.0.dev300 → omlish-0.0.0.dev302}/omlish/manifests/base.py +0 -0
  549. {omlish-0.0.0.dev300 → omlish-0.0.0.dev302}/omlish/manifests/load.py +0 -0
  550. {omlish-0.0.0.dev300 → omlish-0.0.0.dev302}/omlish/manifests/static.py +0 -0
  551. {omlish-0.0.0.dev300 → omlish-0.0.0.dev302}/omlish/manifests/types.py +0 -0
  552. {omlish-0.0.0.dev300 → omlish-0.0.0.dev302}/omlish/marshal/__init__.py +0 -0
  553. {omlish-0.0.0.dev300 → omlish-0.0.0.dev302}/omlish/marshal/base.py +0 -0
  554. {omlish-0.0.0.dev300 → omlish-0.0.0.dev302}/omlish/marshal/composite/__init__.py +0 -0
  555. {omlish-0.0.0.dev300 → omlish-0.0.0.dev302}/omlish/marshal/composite/iterables.py +0 -0
  556. {omlish-0.0.0.dev300 → omlish-0.0.0.dev302}/omlish/marshal/composite/literals.py +0 -0
  557. {omlish-0.0.0.dev300 → omlish-0.0.0.dev302}/omlish/marshal/composite/mappings.py +0 -0
  558. {omlish-0.0.0.dev300 → omlish-0.0.0.dev302}/omlish/marshal/composite/maybes.py +0 -0
  559. {omlish-0.0.0.dev300 → omlish-0.0.0.dev302}/omlish/marshal/composite/newtypes.py +0 -0
  560. {omlish-0.0.0.dev300 → omlish-0.0.0.dev302}/omlish/marshal/composite/optionals.py +0 -0
  561. {omlish-0.0.0.dev300 → omlish-0.0.0.dev302}/omlish/marshal/composite/wrapped.py +0 -0
  562. {omlish-0.0.0.dev300 → omlish-0.0.0.dev302}/omlish/marshal/errors.py +0 -0
  563. {omlish-0.0.0.dev300 → omlish-0.0.0.dev302}/omlish/marshal/factories.py +0 -0
  564. {omlish-0.0.0.dev300 → omlish-0.0.0.dev302}/omlish/marshal/global_.py +0 -0
  565. {omlish-0.0.0.dev300 → omlish-0.0.0.dev302}/omlish/marshal/naming.py +0 -0
  566. {omlish-0.0.0.dev300 → omlish-0.0.0.dev302}/omlish/marshal/objects/__init__.py +0 -0
  567. {omlish-0.0.0.dev300 → omlish-0.0.0.dev302}/omlish/marshal/objects/dataclasses.py +0 -0
  568. {omlish-0.0.0.dev300 → omlish-0.0.0.dev302}/omlish/marshal/objects/helpers.py +0 -0
  569. {omlish-0.0.0.dev300 → omlish-0.0.0.dev302}/omlish/marshal/objects/marshal.py +0 -0
  570. {omlish-0.0.0.dev300 → omlish-0.0.0.dev302}/omlish/marshal/objects/metadata.py +0 -0
  571. {omlish-0.0.0.dev300 → omlish-0.0.0.dev302}/omlish/marshal/objects/namedtuples.py +0 -0
  572. {omlish-0.0.0.dev300 → omlish-0.0.0.dev302}/omlish/marshal/objects/unmarshal.py +0 -0
  573. {omlish-0.0.0.dev300 → omlish-0.0.0.dev302}/omlish/marshal/polymorphism/__init__.py +0 -0
  574. {omlish-0.0.0.dev300 → omlish-0.0.0.dev302}/omlish/marshal/polymorphism/marshal.py +0 -0
  575. {omlish-0.0.0.dev300 → omlish-0.0.0.dev302}/omlish/marshal/polymorphism/metadata.py +0 -0
  576. {omlish-0.0.0.dev300 → omlish-0.0.0.dev302}/omlish/marshal/polymorphism/unions.py +0 -0
  577. {omlish-0.0.0.dev300 → omlish-0.0.0.dev302}/omlish/marshal/polymorphism/unmarshal.py +0 -0
  578. {omlish-0.0.0.dev300 → omlish-0.0.0.dev302}/omlish/marshal/proxy.py +0 -0
  579. {omlish-0.0.0.dev300 → omlish-0.0.0.dev302}/omlish/marshal/registries.py +0 -0
  580. {omlish-0.0.0.dev300 → omlish-0.0.0.dev302}/omlish/marshal/singular/__init__.py +0 -0
  581. {omlish-0.0.0.dev300 → omlish-0.0.0.dev302}/omlish/marshal/singular/base64.py +0 -0
  582. {omlish-0.0.0.dev300 → omlish-0.0.0.dev302}/omlish/marshal/singular/datetimes.py +0 -0
  583. {omlish-0.0.0.dev300 → omlish-0.0.0.dev302}/omlish/marshal/singular/enums.py +0 -0
  584. {omlish-0.0.0.dev300 → omlish-0.0.0.dev302}/omlish/marshal/singular/numbers.py +0 -0
  585. {omlish-0.0.0.dev300 → omlish-0.0.0.dev302}/omlish/marshal/singular/primitives.py +0 -0
  586. {omlish-0.0.0.dev300 → omlish-0.0.0.dev302}/omlish/marshal/singular/uuids.py +0 -0
  587. {omlish-0.0.0.dev300 → omlish-0.0.0.dev302}/omlish/marshal/standard.py +0 -0
  588. {omlish-0.0.0.dev300 → omlish-0.0.0.dev302}/omlish/marshal/trivial/__init__.py +0 -0
  589. {omlish-0.0.0.dev300 → omlish-0.0.0.dev302}/omlish/marshal/trivial/any.py +0 -0
  590. {omlish-0.0.0.dev300 → omlish-0.0.0.dev302}/omlish/marshal/trivial/forbidden.py +0 -0
  591. {omlish-0.0.0.dev300 → omlish-0.0.0.dev302}/omlish/marshal/trivial/nop.py +0 -0
  592. {omlish-0.0.0.dev300 → omlish-0.0.0.dev302}/omlish/marshal/values.py +0 -0
  593. {omlish-0.0.0.dev300 → omlish-0.0.0.dev302}/omlish/math/__init__.py +0 -0
  594. {omlish-0.0.0.dev300 → omlish-0.0.0.dev302}/omlish/math/bits.py +0 -0
  595. {omlish-0.0.0.dev300 → omlish-0.0.0.dev302}/omlish/math/c.py +0 -0
  596. {omlish-0.0.0.dev300 → omlish-0.0.0.dev302}/omlish/math/fixed.py +0 -0
  597. {omlish-0.0.0.dev300 → omlish-0.0.0.dev302}/omlish/math/floats.py +0 -0
  598. {omlish-0.0.0.dev300 → omlish-0.0.0.dev302}/omlish/math/histogram.py +0 -0
  599. {omlish-0.0.0.dev300 → omlish-0.0.0.dev302}/omlish/math/stats.py +0 -0
  600. {omlish-0.0.0.dev300 → omlish-0.0.0.dev302}/omlish/metadata.py +0 -0
  601. {omlish-0.0.0.dev300 → omlish-0.0.0.dev302}/omlish/multiprocessing/__init__.py +0 -0
  602. {omlish-0.0.0.dev300 → omlish-0.0.0.dev302}/omlish/multiprocessing/proxies.py +0 -0
  603. {omlish-0.0.0.dev300 → omlish-0.0.0.dev302}/omlish/multiprocessing/spawn.py +0 -0
  604. {omlish-0.0.0.dev300 → omlish-0.0.0.dev302}/omlish/os/__init__.py +0 -0
  605. {omlish-0.0.0.dev300 → omlish-0.0.0.dev302}/omlish/os/atomics.py +0 -0
  606. {omlish-0.0.0.dev300 → omlish-0.0.0.dev302}/omlish/os/deathpacts/__init__.py +0 -0
  607. {omlish-0.0.0.dev300 → omlish-0.0.0.dev302}/omlish/os/deathpacts/base.py +0 -0
  608. {omlish-0.0.0.dev300 → omlish-0.0.0.dev302}/omlish/os/deathpacts/heartbeatfile.py +0 -0
  609. {omlish-0.0.0.dev300 → omlish-0.0.0.dev302}/omlish/os/deathpacts/pipe.py +0 -0
  610. {omlish-0.0.0.dev300 → omlish-0.0.0.dev302}/omlish/os/deathsig.py +0 -0
  611. {omlish-0.0.0.dev300 → omlish-0.0.0.dev302}/omlish/os/fcntl.py +0 -0
  612. {omlish-0.0.0.dev300 → omlish-0.0.0.dev302}/omlish/os/filemodes.py +0 -0
  613. {omlish-0.0.0.dev300 → omlish-0.0.0.dev302}/omlish/os/files.py +0 -0
  614. {omlish-0.0.0.dev300 → omlish-0.0.0.dev302}/omlish/os/forkhooks.py +0 -0
  615. {omlish-0.0.0.dev300 → omlish-0.0.0.dev302}/omlish/os/journald.py +0 -0
  616. {omlish-0.0.0.dev300 → omlish-0.0.0.dev302}/omlish/os/linux.py +0 -0
  617. {omlish-0.0.0.dev300 → omlish-0.0.0.dev302}/omlish/os/mangle.py +0 -0
  618. {omlish-0.0.0.dev300 → omlish-0.0.0.dev302}/omlish/os/paths.py +0 -0
  619. {omlish-0.0.0.dev300 → omlish-0.0.0.dev302}/omlish/os/pidfiles/__init__.py +0 -0
  620. {omlish-0.0.0.dev300 → omlish-0.0.0.dev302}/omlish/os/pidfiles/__main__.py +0 -0
  621. {omlish-0.0.0.dev300 → omlish-0.0.0.dev302}/omlish/os/pidfiles/cli.py +0 -0
  622. {omlish-0.0.0.dev300 → omlish-0.0.0.dev302}/omlish/os/pidfiles/manager.py +0 -0
  623. {omlish-0.0.0.dev300 → omlish-0.0.0.dev302}/omlish/os/pidfiles/pidfile.py +0 -0
  624. {omlish-0.0.0.dev300 → omlish-0.0.0.dev302}/omlish/os/pidfiles/pinning.py +0 -0
  625. {omlish-0.0.0.dev300 → omlish-0.0.0.dev302}/omlish/os/signals.py +0 -0
  626. {omlish-0.0.0.dev300 → omlish-0.0.0.dev302}/omlish/os/sizes.py +0 -0
  627. {omlish-0.0.0.dev300 → omlish-0.0.0.dev302}/omlish/os/temp.py +0 -0
  628. {omlish-0.0.0.dev300 → omlish-0.0.0.dev302}/omlish/reflect/__init__.py +0 -0
  629. {omlish-0.0.0.dev300 → omlish-0.0.0.dev302}/omlish/reflect/inspect.py +0 -0
  630. {omlish-0.0.0.dev300 → omlish-0.0.0.dev302}/omlish/reflect/ops.py +0 -0
  631. {omlish-0.0.0.dev300 → omlish-0.0.0.dev302}/omlish/reflect/subst.py +0 -0
  632. {omlish-0.0.0.dev300 → omlish-0.0.0.dev302}/omlish/reflect/types.py +0 -0
  633. {omlish-0.0.0.dev300 → omlish-0.0.0.dev302}/omlish/runmodule.py +0 -0
  634. {omlish-0.0.0.dev300 → omlish-0.0.0.dev302}/omlish/secrets/__init__.py +0 -0
  635. {omlish-0.0.0.dev300 → omlish-0.0.0.dev302}/omlish/secrets/all.py +0 -0
  636. {omlish-0.0.0.dev300 → omlish-0.0.0.dev302}/omlish/secrets/crypto.py +0 -0
  637. {omlish-0.0.0.dev300 → omlish-0.0.0.dev302}/omlish/secrets/marshal.py +0 -0
  638. {omlish-0.0.0.dev300 → omlish-0.0.0.dev302}/omlish/secrets/openssl.py +0 -0
  639. {omlish-0.0.0.dev300 → omlish-0.0.0.dev302}/omlish/secrets/pwgen.py +0 -0
  640. {omlish-0.0.0.dev300 → omlish-0.0.0.dev302}/omlish/secrets/pwhash.py +0 -0
  641. {omlish-0.0.0.dev300 → omlish-0.0.0.dev302}/omlish/secrets/secrets.py +0 -0
  642. {omlish-0.0.0.dev300 → omlish-0.0.0.dev302}/omlish/secrets/ssl.py +0 -0
  643. {omlish-0.0.0.dev300 → omlish-0.0.0.dev302}/omlish/secrets/subprocesses.py +0 -0
  644. {omlish-0.0.0.dev300 → omlish-0.0.0.dev302}/omlish/secrets/tempssl.py +0 -0
  645. {omlish-0.0.0.dev300 → omlish-0.0.0.dev302}/omlish/shlex.py +0 -0
  646. {omlish-0.0.0.dev300 → omlish-0.0.0.dev302}/omlish/sockets/__init__.py +0 -0
  647. {omlish-0.0.0.dev300 → omlish-0.0.0.dev302}/omlish/sockets/addresses.py +0 -0
  648. {omlish-0.0.0.dev300 → omlish-0.0.0.dev302}/omlish/sockets/bind.py +0 -0
  649. {omlish-0.0.0.dev300 → omlish-0.0.0.dev302}/omlish/sockets/handlers.py +0 -0
  650. {omlish-0.0.0.dev300 → omlish-0.0.0.dev302}/omlish/sockets/io.py +0 -0
  651. {omlish-0.0.0.dev300 → omlish-0.0.0.dev302}/omlish/sockets/ports.py +0 -0
  652. {omlish-0.0.0.dev300 → omlish-0.0.0.dev302}/omlish/sockets/server/__init__.py +0 -0
  653. {omlish-0.0.0.dev300 → omlish-0.0.0.dev302}/omlish/sockets/server/handlers.py +0 -0
  654. {omlish-0.0.0.dev300 → omlish-0.0.0.dev302}/omlish/sockets/server/server.py +0 -0
  655. {omlish-0.0.0.dev300 → omlish-0.0.0.dev302}/omlish/sockets/server/ssl.py +0 -0
  656. {omlish-0.0.0.dev300 → omlish-0.0.0.dev302}/omlish/sockets/server/threading.py +0 -0
  657. {omlish-0.0.0.dev300 → omlish-0.0.0.dev302}/omlish/sockets/wait.py +0 -0
  658. {omlish-0.0.0.dev300 → omlish-0.0.0.dev302}/omlish/specs/__init__.py +0 -0
  659. {omlish-0.0.0.dev300 → omlish-0.0.0.dev302}/omlish/specs/irc/__init__.py +0 -0
  660. {omlish-0.0.0.dev300 → omlish-0.0.0.dev302}/omlish/specs/irc/messages/__init__.py +0 -0
  661. {omlish-0.0.0.dev300 → omlish-0.0.0.dev302}/omlish/specs/irc/messages/base.py +0 -0
  662. {omlish-0.0.0.dev300 → omlish-0.0.0.dev302}/omlish/specs/irc/messages/formats.py +0 -0
  663. {omlish-0.0.0.dev300 → omlish-0.0.0.dev302}/omlish/specs/irc/messages/messages.py +0 -0
  664. {omlish-0.0.0.dev300 → omlish-0.0.0.dev302}/omlish/specs/irc/messages/parsing.py +0 -0
  665. {omlish-0.0.0.dev300 → omlish-0.0.0.dev302}/omlish/specs/irc/numerics/__init__.py +0 -0
  666. {omlish-0.0.0.dev300 → omlish-0.0.0.dev302}/omlish/specs/irc/numerics/formats.py +0 -0
  667. {omlish-0.0.0.dev300 → omlish-0.0.0.dev302}/omlish/specs/irc/numerics/numerics.py +0 -0
  668. {omlish-0.0.0.dev300 → omlish-0.0.0.dev302}/omlish/specs/irc/numerics/types.py +0 -0
  669. {omlish-0.0.0.dev300 → omlish-0.0.0.dev302}/omlish/specs/irc/protocol/LICENSE +0 -0
  670. {omlish-0.0.0.dev300 → omlish-0.0.0.dev302}/omlish/specs/irc/protocol/__init__.py +0 -0
  671. {omlish-0.0.0.dev300 → omlish-0.0.0.dev302}/omlish/specs/irc/protocol/consts.py +0 -0
  672. {omlish-0.0.0.dev300 → omlish-0.0.0.dev302}/omlish/specs/irc/protocol/errors.py +0 -0
  673. {omlish-0.0.0.dev300 → omlish-0.0.0.dev302}/omlish/specs/irc/protocol/message.py +0 -0
  674. {omlish-0.0.0.dev300 → omlish-0.0.0.dev302}/omlish/specs/irc/protocol/nuh.py +0 -0
  675. {omlish-0.0.0.dev300 → omlish-0.0.0.dev302}/omlish/specs/irc/protocol/parsing.py +0 -0
  676. {omlish-0.0.0.dev300 → omlish-0.0.0.dev302}/omlish/specs/irc/protocol/rendering.py +0 -0
  677. {omlish-0.0.0.dev300 → omlish-0.0.0.dev302}/omlish/specs/irc/protocol/tags.py +0 -0
  678. {omlish-0.0.0.dev300 → omlish-0.0.0.dev302}/omlish/specs/irc/protocol/utils.py +0 -0
  679. {omlish-0.0.0.dev300 → omlish-0.0.0.dev302}/omlish/specs/jmespath/LICENSE +0 -0
  680. {omlish-0.0.0.dev300 → omlish-0.0.0.dev302}/omlish/specs/jmespath/__init__.py +0 -0
  681. {omlish-0.0.0.dev300 → omlish-0.0.0.dev302}/omlish/specs/jmespath/__main__.py +0 -0
  682. {omlish-0.0.0.dev300 → omlish-0.0.0.dev302}/omlish/specs/jmespath/ast.py +0 -0
  683. {omlish-0.0.0.dev300 → omlish-0.0.0.dev302}/omlish/specs/jmespath/cli.py +0 -0
  684. {omlish-0.0.0.dev300 → omlish-0.0.0.dev302}/omlish/specs/jmespath/errors.py +0 -0
  685. {omlish-0.0.0.dev300 → omlish-0.0.0.dev302}/omlish/specs/jmespath/functions.py +0 -0
  686. {omlish-0.0.0.dev300 → omlish-0.0.0.dev302}/omlish/specs/jmespath/lexer.py +0 -0
  687. {omlish-0.0.0.dev300 → omlish-0.0.0.dev302}/omlish/specs/jmespath/parser.py +0 -0
  688. {omlish-0.0.0.dev300 → omlish-0.0.0.dev302}/omlish/specs/jmespath/scope.py +0 -0
  689. {omlish-0.0.0.dev300 → omlish-0.0.0.dev302}/omlish/specs/jmespath/visitor.py +0 -0
  690. {omlish-0.0.0.dev300 → omlish-0.0.0.dev302}/omlish/specs/jsonrpc/__init__.py +0 -0
  691. {omlish-0.0.0.dev300 → omlish-0.0.0.dev302}/omlish/specs/jsonrpc/errors.py +0 -0
  692. {omlish-0.0.0.dev300 → omlish-0.0.0.dev302}/omlish/specs/jsonrpc/marshal.py +0 -0
  693. {omlish-0.0.0.dev300 → omlish-0.0.0.dev302}/omlish/specs/jsonrpc/types.py +0 -0
  694. {omlish-0.0.0.dev300 → omlish-0.0.0.dev302}/omlish/specs/jsonschema/__init__.py +0 -0
  695. {omlish-0.0.0.dev300 → omlish-0.0.0.dev302}/omlish/specs/jsonschema/keywords/__init__.py +0 -0
  696. {omlish-0.0.0.dev300 → omlish-0.0.0.dev302}/omlish/specs/jsonschema/keywords/base.py +0 -0
  697. {omlish-0.0.0.dev300 → omlish-0.0.0.dev302}/omlish/specs/jsonschema/keywords/core.py +0 -0
  698. {omlish-0.0.0.dev300 → omlish-0.0.0.dev302}/omlish/specs/jsonschema/keywords/format.py +0 -0
  699. {omlish-0.0.0.dev300 → omlish-0.0.0.dev302}/omlish/specs/jsonschema/keywords/metadata.py +0 -0
  700. {omlish-0.0.0.dev300 → omlish-0.0.0.dev302}/omlish/specs/jsonschema/keywords/parse.py +0 -0
  701. {omlish-0.0.0.dev300 → omlish-0.0.0.dev302}/omlish/specs/jsonschema/keywords/render.py +0 -0
  702. {omlish-0.0.0.dev300 → omlish-0.0.0.dev302}/omlish/specs/jsonschema/keywords/unknown.py +0 -0
  703. {omlish-0.0.0.dev300 → omlish-0.0.0.dev302}/omlish/specs/jsonschema/keywords/validation.py +0 -0
  704. {omlish-0.0.0.dev300 → omlish-0.0.0.dev302}/omlish/specs/jsonschema/schemas/__init__.py +0 -0
  705. {omlish-0.0.0.dev300 → omlish-0.0.0.dev302}/omlish/specs/jsonschema/schemas/draft202012/__init__.py +0 -0
  706. {omlish-0.0.0.dev300 → omlish-0.0.0.dev302}/omlish/specs/jsonschema/schemas/draft202012/metaschema.json +0 -0
  707. {omlish-0.0.0.dev300 → omlish-0.0.0.dev302}/omlish/specs/jsonschema/schemas/draft202012/vocabularies/__init__.py +0 -0
  708. {omlish-0.0.0.dev300 → omlish-0.0.0.dev302}/omlish/specs/jsonschema/schemas/draft202012/vocabularies/applicator.json +0 -0
  709. {omlish-0.0.0.dev300 → omlish-0.0.0.dev302}/omlish/specs/jsonschema/schemas/draft202012/vocabularies/content.json +0 -0
  710. {omlish-0.0.0.dev300 → omlish-0.0.0.dev302}/omlish/specs/jsonschema/schemas/draft202012/vocabularies/core.json +0 -0
  711. {omlish-0.0.0.dev300 → omlish-0.0.0.dev302}/omlish/specs/jsonschema/schemas/draft202012/vocabularies/format-annotation.json +0 -0
  712. {omlish-0.0.0.dev300 → omlish-0.0.0.dev302}/omlish/specs/jsonschema/schemas/draft202012/vocabularies/format-assertion.json +0 -0
  713. {omlish-0.0.0.dev300 → omlish-0.0.0.dev302}/omlish/specs/jsonschema/schemas/draft202012/vocabularies/format.json +0 -0
  714. {omlish-0.0.0.dev300 → omlish-0.0.0.dev302}/omlish/specs/jsonschema/schemas/draft202012/vocabularies/meta-data.json +0 -0
  715. {omlish-0.0.0.dev300 → omlish-0.0.0.dev302}/omlish/specs/jsonschema/schemas/draft202012/vocabularies/unevaluated.json +0 -0
  716. {omlish-0.0.0.dev300 → omlish-0.0.0.dev302}/omlish/specs/jsonschema/schemas/draft202012/vocabularies/validation.json +0 -0
  717. {omlish-0.0.0.dev300 → omlish-0.0.0.dev302}/omlish/specs/jsonschema/types.py +0 -0
  718. {omlish-0.0.0.dev300 → omlish-0.0.0.dev302}/omlish/specs/openapi/__init__.py +0 -0
  719. {omlish-0.0.0.dev300 → omlish-0.0.0.dev302}/omlish/specs/openapi/marshal.py +0 -0
  720. {omlish-0.0.0.dev300 → omlish-0.0.0.dev302}/omlish/specs/openapi/openapi.py +0 -0
  721. {omlish-0.0.0.dev300 → omlish-0.0.0.dev302}/omlish/specs/proto/Protobuf3.g4 +0 -0
  722. {omlish-0.0.0.dev300 → omlish-0.0.0.dev302}/omlish/specs/proto/__init__.py +0 -0
  723. {omlish-0.0.0.dev300 → omlish-0.0.0.dev302}/omlish/specs/proto/_antlr/Protobuf3Lexer.py +0 -0
  724. {omlish-0.0.0.dev300 → omlish-0.0.0.dev302}/omlish/specs/proto/_antlr/Protobuf3Listener.py +0 -0
  725. {omlish-0.0.0.dev300 → omlish-0.0.0.dev302}/omlish/specs/proto/_antlr/Protobuf3Parser.py +0 -0
  726. {omlish-0.0.0.dev300 → omlish-0.0.0.dev302}/omlish/specs/proto/_antlr/Protobuf3Visitor.py +0 -0
  727. {omlish-0.0.0.dev300 → omlish-0.0.0.dev302}/omlish/specs/proto/_antlr/__init__.py +0 -0
  728. {omlish-0.0.0.dev300 → omlish-0.0.0.dev302}/omlish/specs/proto/nodes.py +0 -0
  729. {omlish-0.0.0.dev300 → omlish-0.0.0.dev302}/omlish/specs/proto/parsing.py +0 -0
  730. {omlish-0.0.0.dev300 → omlish-0.0.0.dev302}/omlish/sql/__init__.py +0 -0
  731. {omlish-0.0.0.dev300 → omlish-0.0.0.dev302}/omlish/sql/abc.py +0 -0
  732. {omlish-0.0.0.dev300 → omlish-0.0.0.dev302}/omlish/sql/alchemy/__init__.py +0 -0
  733. {omlish-0.0.0.dev300 → omlish-0.0.0.dev302}/omlish/sql/alchemy/apiadapter.py +0 -0
  734. {omlish-0.0.0.dev300 → omlish-0.0.0.dev302}/omlish/sql/alchemy/asyncs.py +0 -0
  735. {omlish-0.0.0.dev300 → omlish-0.0.0.dev302}/omlish/sql/alchemy/duckdb.py +0 -0
  736. {omlish-0.0.0.dev300 → omlish-0.0.0.dev302}/omlish/sql/alchemy/exprs.py +0 -0
  737. {omlish-0.0.0.dev300 → omlish-0.0.0.dev302}/omlish/sql/alchemy/secrets.py +0 -0
  738. {omlish-0.0.0.dev300 → omlish-0.0.0.dev302}/omlish/sql/alchemy/sqlean.py +0 -0
  739. {omlish-0.0.0.dev300 → omlish-0.0.0.dev302}/omlish/sql/api/__init__.py +0 -0
  740. {omlish-0.0.0.dev300 → omlish-0.0.0.dev302}/omlish/sql/api/_queries.py +0 -0
  741. {omlish-0.0.0.dev300 → omlish-0.0.0.dev302}/omlish/sql/api/asquery.py +0 -0
  742. {omlish-0.0.0.dev300 → omlish-0.0.0.dev302}/omlish/sql/api/base.py +0 -0
  743. {omlish-0.0.0.dev300 → omlish-0.0.0.dev302}/omlish/sql/api/columns.py +0 -0
  744. {omlish-0.0.0.dev300 → omlish-0.0.0.dev302}/omlish/sql/api/dbapi.py +0 -0
  745. {omlish-0.0.0.dev300 → omlish-0.0.0.dev302}/omlish/sql/api/errors.py +0 -0
  746. {omlish-0.0.0.dev300 → omlish-0.0.0.dev302}/omlish/sql/api/funcs.py +0 -0
  747. {omlish-0.0.0.dev300 → omlish-0.0.0.dev302}/omlish/sql/api/queries.py +0 -0
  748. {omlish-0.0.0.dev300 → omlish-0.0.0.dev302}/omlish/sql/api/resources.py +0 -0
  749. {omlish-0.0.0.dev300 → omlish-0.0.0.dev302}/omlish/sql/api/rows.py +0 -0
  750. {omlish-0.0.0.dev300 → omlish-0.0.0.dev302}/omlish/sql/dbapi.py +0 -0
  751. {omlish-0.0.0.dev300 → omlish-0.0.0.dev302}/omlish/sql/dbs.py +0 -0
  752. {omlish-0.0.0.dev300 → omlish-0.0.0.dev302}/omlish/sql/params.py +0 -0
  753. {omlish-0.0.0.dev300 → omlish-0.0.0.dev302}/omlish/sql/parsing/Minisql.g4 +0 -0
  754. {omlish-0.0.0.dev300 → omlish-0.0.0.dev302}/omlish/sql/parsing/__init__.py +0 -0
  755. {omlish-0.0.0.dev300 → omlish-0.0.0.dev302}/omlish/sql/parsing/_antlr/MinisqlLexer.py +0 -0
  756. {omlish-0.0.0.dev300 → omlish-0.0.0.dev302}/omlish/sql/parsing/_antlr/MinisqlListener.py +0 -0
  757. {omlish-0.0.0.dev300 → omlish-0.0.0.dev302}/omlish/sql/parsing/_antlr/MinisqlParser.py +0 -0
  758. {omlish-0.0.0.dev300 → omlish-0.0.0.dev302}/omlish/sql/parsing/_antlr/MinisqlVisitor.py +0 -0
  759. {omlish-0.0.0.dev300 → omlish-0.0.0.dev302}/omlish/sql/parsing/_antlr/__init__.py +0 -0
  760. {omlish-0.0.0.dev300 → omlish-0.0.0.dev302}/omlish/sql/parsing/parsing.py +0 -0
  761. {omlish-0.0.0.dev300 → omlish-0.0.0.dev302}/omlish/sql/qualifiedname.py +0 -0
  762. {omlish-0.0.0.dev300 → omlish-0.0.0.dev302}/omlish/sql/queries/__init__.py +0 -0
  763. {omlish-0.0.0.dev300 → omlish-0.0.0.dev302}/omlish/sql/queries/base.py +0 -0
  764. {omlish-0.0.0.dev300 → omlish-0.0.0.dev302}/omlish/sql/queries/binary.py +0 -0
  765. {omlish-0.0.0.dev300 → omlish-0.0.0.dev302}/omlish/sql/queries/exprs.py +0 -0
  766. {omlish-0.0.0.dev300 → omlish-0.0.0.dev302}/omlish/sql/queries/idents.py +0 -0
  767. {omlish-0.0.0.dev300 → omlish-0.0.0.dev302}/omlish/sql/queries/inserts.py +0 -0
  768. {omlish-0.0.0.dev300 → omlish-0.0.0.dev302}/omlish/sql/queries/marshal.py +0 -0
  769. {omlish-0.0.0.dev300 → omlish-0.0.0.dev302}/omlish/sql/queries/multi.py +0 -0
  770. {omlish-0.0.0.dev300 → omlish-0.0.0.dev302}/omlish/sql/queries/names.py +0 -0
  771. {omlish-0.0.0.dev300 → omlish-0.0.0.dev302}/omlish/sql/queries/ops.py +0 -0
  772. {omlish-0.0.0.dev300 → omlish-0.0.0.dev302}/omlish/sql/queries/params.py +0 -0
  773. {omlish-0.0.0.dev300 → omlish-0.0.0.dev302}/omlish/sql/queries/relations.py +0 -0
  774. {omlish-0.0.0.dev300 → omlish-0.0.0.dev302}/omlish/sql/queries/rendering.py +0 -0
  775. {omlish-0.0.0.dev300 → omlish-0.0.0.dev302}/omlish/sql/queries/selects.py +0 -0
  776. {omlish-0.0.0.dev300 → omlish-0.0.0.dev302}/omlish/sql/queries/std.py +0 -0
  777. {omlish-0.0.0.dev300 → omlish-0.0.0.dev302}/omlish/sql/queries/stmts.py +0 -0
  778. {omlish-0.0.0.dev300 → omlish-0.0.0.dev302}/omlish/sql/queries/unary.py +0 -0
  779. {omlish-0.0.0.dev300 → omlish-0.0.0.dev302}/omlish/sql/tabledefs/__init__.py +0 -0
  780. {omlish-0.0.0.dev300 → omlish-0.0.0.dev302}/omlish/sql/tabledefs/alchemy.py +0 -0
  781. {omlish-0.0.0.dev300 → omlish-0.0.0.dev302}/omlish/sql/tabledefs/dtypes.py +0 -0
  782. {omlish-0.0.0.dev300 → omlish-0.0.0.dev302}/omlish/sql/tabledefs/elements.py +0 -0
  783. {omlish-0.0.0.dev300 → omlish-0.0.0.dev302}/omlish/sql/tabledefs/lower.py +0 -0
  784. {omlish-0.0.0.dev300 → omlish-0.0.0.dev302}/omlish/sql/tabledefs/marshal.py +0 -0
  785. {omlish-0.0.0.dev300 → omlish-0.0.0.dev302}/omlish/sql/tabledefs/tabledefs.py +0 -0
  786. {omlish-0.0.0.dev300 → omlish-0.0.0.dev302}/omlish/subprocesses/__init__.py +0 -0
  787. {omlish-0.0.0.dev300 → omlish-0.0.0.dev302}/omlish/subprocesses/async_.py +0 -0
  788. {omlish-0.0.0.dev300 → omlish-0.0.0.dev302}/omlish/subprocesses/base.py +0 -0
  789. {omlish-0.0.0.dev300 → omlish-0.0.0.dev302}/omlish/subprocesses/run.py +0 -0
  790. {omlish-0.0.0.dev300 → omlish-0.0.0.dev302}/omlish/subprocesses/sync.py +0 -0
  791. {omlish-0.0.0.dev300 → omlish-0.0.0.dev302}/omlish/subprocesses/utils.py +0 -0
  792. {omlish-0.0.0.dev300 → omlish-0.0.0.dev302}/omlish/subprocesses/wrap.py +0 -0
  793. {omlish-0.0.0.dev300 → omlish-0.0.0.dev302}/omlish/sync.py +0 -0
  794. {omlish-0.0.0.dev300 → omlish-0.0.0.dev302}/omlish/term/__init__.py +0 -0
  795. {omlish-0.0.0.dev300 → omlish-0.0.0.dev302}/omlish/term/codes.py +0 -0
  796. {omlish-0.0.0.dev300 → omlish-0.0.0.dev302}/omlish/term/progressbar.py +0 -0
  797. {omlish-0.0.0.dev300 → omlish-0.0.0.dev302}/omlish/term/vt100/__init__.py +0 -0
  798. {omlish-0.0.0.dev300 → omlish-0.0.0.dev302}/omlish/term/vt100/c.py +0 -0
  799. {omlish-0.0.0.dev300 → omlish-0.0.0.dev302}/omlish/term/vt100/states.py +0 -0
  800. {omlish-0.0.0.dev300 → omlish-0.0.0.dev302}/omlish/term/vt100/terminal.py +0 -0
  801. {omlish-0.0.0.dev300 → omlish-0.0.0.dev302}/omlish/testing/__init__.py +0 -0
  802. {omlish-0.0.0.dev300 → omlish-0.0.0.dev302}/omlish/testing/pytest/__init__.py +0 -0
  803. {omlish-0.0.0.dev300 → omlish-0.0.0.dev302}/omlish/testing/pytest/helpers.py +0 -0
  804. {omlish-0.0.0.dev300 → omlish-0.0.0.dev302}/omlish/testing/pytest/inject/__init__.py +0 -0
  805. {omlish-0.0.0.dev300 → omlish-0.0.0.dev302}/omlish/testing/pytest/inject/harness.py +0 -0
  806. {omlish-0.0.0.dev300 → omlish-0.0.0.dev302}/omlish/testing/pytest/plugins/__init__.py +0 -0
  807. {omlish-0.0.0.dev300 → omlish-0.0.0.dev302}/omlish/testing/pytest/plugins/_registry.py +0 -0
  808. {omlish-0.0.0.dev300 → omlish-0.0.0.dev302}/omlish/testing/pytest/plugins/asyncs/__init__.py +0 -0
  809. {omlish-0.0.0.dev300 → omlish-0.0.0.dev302}/omlish/testing/pytest/plugins/asyncs/backends/__init__.py +0 -0
  810. {omlish-0.0.0.dev300 → omlish-0.0.0.dev302}/omlish/testing/pytest/plugins/asyncs/backends/asyncio.py +0 -0
  811. {omlish-0.0.0.dev300 → omlish-0.0.0.dev302}/omlish/testing/pytest/plugins/asyncs/backends/base.py +0 -0
  812. {omlish-0.0.0.dev300 → omlish-0.0.0.dev302}/omlish/testing/pytest/plugins/asyncs/backends/trio.py +0 -0
  813. {omlish-0.0.0.dev300 → omlish-0.0.0.dev302}/omlish/testing/pytest/plugins/asyncs/backends/trio_asyncio.py +0 -0
  814. {omlish-0.0.0.dev300 → omlish-0.0.0.dev302}/omlish/testing/pytest/plugins/asyncs/consts.py +0 -0
  815. {omlish-0.0.0.dev300 → omlish-0.0.0.dev302}/omlish/testing/pytest/plugins/asyncs/fixtures.py +0 -0
  816. {omlish-0.0.0.dev300 → omlish-0.0.0.dev302}/omlish/testing/pytest/plugins/asyncs/plugin.py +0 -0
  817. {omlish-0.0.0.dev300 → omlish-0.0.0.dev302}/omlish/testing/pytest/plugins/asyncs/utils.py +0 -0
  818. {omlish-0.0.0.dev300 → omlish-0.0.0.dev302}/omlish/testing/pytest/plugins/depskip.py +0 -0
  819. {omlish-0.0.0.dev300 → omlish-0.0.0.dev302}/omlish/testing/pytest/plugins/logging.py +0 -0
  820. {omlish-0.0.0.dev300 → omlish-0.0.0.dev302}/omlish/testing/pytest/plugins/managermarks.py +0 -0
  821. {omlish-0.0.0.dev300 → omlish-0.0.0.dev302}/omlish/testing/pytest/plugins/pydevd.py +0 -0
  822. {omlish-0.0.0.dev300 → omlish-0.0.0.dev302}/omlish/testing/pytest/plugins/repeat.py +0 -0
  823. {omlish-0.0.0.dev300 → omlish-0.0.0.dev302}/omlish/testing/pytest/plugins/skips.py +0 -0
  824. {omlish-0.0.0.dev300 → omlish-0.0.0.dev302}/omlish/testing/pytest/plugins/spacing.py +0 -0
  825. {omlish-0.0.0.dev300 → omlish-0.0.0.dev302}/omlish/testing/pytest/plugins/switches.py +0 -0
  826. {omlish-0.0.0.dev300 → omlish-0.0.0.dev302}/omlish/testing/pytest/plugins/utils.py +0 -0
  827. {omlish-0.0.0.dev300 → omlish-0.0.0.dev302}/omlish/testing/pytest/skip.py +0 -0
  828. {omlish-0.0.0.dev300 → omlish-0.0.0.dev302}/omlish/testing/testing.py +0 -0
  829. {omlish-0.0.0.dev300 → omlish-0.0.0.dev302}/omlish/text/__init__.py +0 -0
  830. {omlish-0.0.0.dev300 → omlish-0.0.0.dev302}/omlish/text/asdl.py +0 -0
  831. {omlish-0.0.0.dev300 → omlish-0.0.0.dev302}/omlish/text/decoding.py +0 -0
  832. {omlish-0.0.0.dev300 → omlish-0.0.0.dev302}/omlish/text/delimit.py +0 -0
  833. {omlish-0.0.0.dev300 → omlish-0.0.0.dev302}/omlish/text/filecache.py +0 -0
  834. {omlish-0.0.0.dev300 → omlish-0.0.0.dev302}/omlish/text/glyphsplit.py +0 -0
  835. {omlish-0.0.0.dev300 → omlish-0.0.0.dev302}/omlish/text/go/__init__.py +0 -0
  836. {omlish-0.0.0.dev300 → omlish-0.0.0.dev302}/omlish/text/go/quoting.py +0 -0
  837. {omlish-0.0.0.dev300 → omlish-0.0.0.dev302}/omlish/text/indent.py +0 -0
  838. {omlish-0.0.0.dev300 → omlish-0.0.0.dev302}/omlish/text/linecache.py +0 -0
  839. {omlish-0.0.0.dev300 → omlish-0.0.0.dev302}/omlish/text/mangle.py +0 -0
  840. {omlish-0.0.0.dev300 → omlish-0.0.0.dev302}/omlish/text/minja.py +0 -0
  841. {omlish-0.0.0.dev300 → omlish-0.0.0.dev302}/omlish/text/parts.py +0 -0
  842. {omlish-0.0.0.dev300 → omlish-0.0.0.dev302}/omlish/text/random.py +0 -0
  843. {omlish-0.0.0.dev300 → omlish-0.0.0.dev302}/omlish/text/templating.py +0 -0
  844. {omlish-0.0.0.dev300 → omlish-0.0.0.dev302}/omlish/typedvalues/__init__.py +0 -0
  845. {omlish-0.0.0.dev300 → omlish-0.0.0.dev302}/omlish/typedvalues/accessor.py +0 -0
  846. {omlish-0.0.0.dev300 → omlish-0.0.0.dev302}/omlish/typedvalues/collection.py +0 -0
  847. {omlish-0.0.0.dev300 → omlish-0.0.0.dev302}/omlish/typedvalues/consumer.py +0 -0
  848. {omlish-0.0.0.dev300 → omlish-0.0.0.dev302}/omlish/typedvalues/generic.py +0 -0
  849. {omlish-0.0.0.dev300 → omlish-0.0.0.dev302}/omlish/typedvalues/holder.py +0 -0
  850. {omlish-0.0.0.dev300 → omlish-0.0.0.dev302}/omlish/typedvalues/marshal.py +0 -0
  851. {omlish-0.0.0.dev300 → omlish-0.0.0.dev302}/omlish/typedvalues/reflect.py +0 -0
  852. {omlish-0.0.0.dev300 → omlish-0.0.0.dev302}/omlish/typedvalues/values.py +0 -0
  853. {omlish-0.0.0.dev300 → omlish-0.0.0.dev302}/omlish.egg-info/SOURCES.txt +0 -0
  854. {omlish-0.0.0.dev300 → omlish-0.0.0.dev302}/omlish.egg-info/dependency_links.txt +0 -0
  855. {omlish-0.0.0.dev300 → omlish-0.0.0.dev302}/omlish.egg-info/entry_points.txt +0 -0
  856. {omlish-0.0.0.dev300 → omlish-0.0.0.dev302}/omlish.egg-info/requires.txt +0 -0
  857. {omlish-0.0.0.dev300 → omlish-0.0.0.dev302}/omlish.egg-info/top_level.txt +0 -0
  858. {omlish-0.0.0.dev300 → omlish-0.0.0.dev302}/setup.cfg +0 -0
@@ -1,6 +1,6 @@
1
1
  Metadata-Version: 2.4
2
2
  Name: omlish
3
- Version: 0.0.0.dev300
3
+ Version: 0.0.0.dev302
4
4
  Summary: omlish
5
5
  Author: wrmsr
6
6
  License: BSD-3-Clause
@@ -0,0 +1,163 @@
1
+ # Overview
2
+
3
+ Core utilities and foundational code. It's relatively large but completely self-contained.
4
+
5
+ # Notable packages
6
+
7
+ - **[lang](lang)** - The standard library of this standard library. Usually imported as a whole `as lang`, it contains
8
+ an array of general purpose utilities used practically everywhere. It is kept relatively lightweight: its heaviest
9
+ import is stdlib dataclasses and its transitives. Some of its contents include:
10
+
11
+ - **[cached](lang/cached)** - The standard `cached_function` / `cached_property` tools, which are more capable than
12
+ [`functools.lru_cache`](https://docs.python.org/3/library/functools.html#functools.lru_cache).
13
+ - **[imports](lang/imports.py)** - Import tools like `proxy_import` for late-loaded imports and `proxy_init` for
14
+ late-loaded module globals.
15
+ - **[classes](lang/classes)** - Class tools and bases, such as `Abstract` (which checks at subclass definition not
16
+ instantiation), `Sealed` / `PackageSealed`, and `Final`.
17
+ - **[maybes](lang/maybes.py)** - A simple, nestable formalization of the presence or absence of an object, as in
18
+ [many](https://en.cppreference.com/w/cpp/utility/optional)
19
+ [other](https://docs.oracle.com/javase/8/docs/api/java/util/Optional.html)
20
+ [languages](https://doc.rust-lang.org/std/option/).
21
+
22
+ - **[bootstrap](bootstrap)** - A centralized, configurable, all-in-one collection of various process-initialization
23
+ minutiae like resource limiting, profiling, remote debugging, log configuration, environment variables, et cetera.
24
+ Usable as a context manager or via its [cli](bootstrap/main.py).
25
+
26
+ - **[collections](collections)** - A handful of collection utilities and simple implementations, including:
27
+
28
+ - **[cache](collections/cache)** - A configurable LRU / LFU cache with options like ttl and max size / weight.
29
+ - **[hasheq](collections/hasheq.py)** - A dict taking an external `__hash__` / `__eq__` implementation.
30
+ - **[identity](collections/identity.py)** - Identity-keyed collections.
31
+ - **[sorted](collections/sorted)** - Interfaces for value-sorted collections and mappings, and a simple but correct
32
+ skiplist-backed implementation.
33
+ - **[persistent](collections/persistent)** - Interfaces for [persistent](https://en.wikipedia.org/wiki/Persistent_data_structure)
34
+ maps, and a simple but correct treap-backed implementation.
35
+
36
+ - **[dataclasses](dataclasses)** - A fully-compatible reimplementation of stdlib [dataclasses](https://docs.python.org/3/library/dataclasses.html)
37
+ with numerous enhancements and additional features. The [full stdlib test suite](dataclasses/tests/cpython) is run
38
+ against it ensuring compatibility - they *are* dataclasses. Current enhancements include:
39
+
40
+ - Simple field coercion and validation.
41
+ - Any number of `@dc.init` or `@dc.validate` methods, not just a central `__post_init__`.
42
+ - Optional generic type parameter substitution in generated `__init__` methods, enabling accurate reflection.
43
+ - An optional [metaclass](dataclasses/metaclass) which removes the need for re-decorating subclasses (with support for
44
+ inheritance of dataclass parameters like `frozen`), and some basic [base classes](dataclasses/metaclass/bases.py).
45
+ - (Nearly finished) support for ahead-of-time / build-time code generation, greatly reducing import times.
46
+
47
+ The stdlib-equivalent api is exported in such a way as to be direct aliases for the stdlib api itself, simplifying
48
+ tool support.
49
+
50
+ - **[dispatch](dispatch)** - A beefed-up version of [functools.singledispatch](https://docs.python.org/3/library/functools.html#functools.singledispatch),
51
+ most notably supporting MRO-honoring method impl dispatch.
52
+
53
+ - **[formats](formats)** - Tools for various data formats, including:
54
+
55
+ - **[json](formats/json)** - Tools for json, including abstraction over various backends and a self-contained streaming
56
+ / incremental parser.
57
+ - **[json5](formats/json5)** - A self-contained and tested [Json5](https://json5.org/) parser.
58
+ - **[toml](formats/toml)** - Toml tools, including a [lite](#lite-code) version of the stdlib parser (for use in older
59
+ pythons).
60
+
61
+ - **[http](http)** - HTTP code, including:
62
+
63
+ - **[clients](http/clients)** - An abstraction over HTTP clients, with urllib and httpx implementations.
64
+ - **[coro](http/coro)** - Coroutine / [sans-io](https://sans-io.readthedocs.io/) style reformulation of some stdlib
65
+ http machinery - namely `http.server` (and soon `http.client`). This style of code can run the same in sync, async,
66
+ or [any](https://docs.python.org/3/library/selectors.html) [other](asyncs/bluelet) context.
67
+
68
+ - **[inject](inject)** - A [guice](https://github.com/google/guice)-style dependency injector.
69
+
70
+ - **[io](io)** - IO tools, including:
71
+
72
+ - **[compress](io/compress)** - Abstraction over various compression schemes, with particular attention to incremental
73
+ operation. For example it includes [an incremental reformulation of stdlib's gzip](io/compress/gzip.py).
74
+ - **[coro](io/coro)** - Utilities for coroutine / sans-io style code.
75
+ - **[fdio](io/fdio)** - An implementation of classic [selector](https://docs.python.org/3/library/selectors.html)-style
76
+ IO dispatch, akin to the deprecated [asyncore](https://docs.python.org/3.11/library/asyncore.html). While more
77
+ modern asyncio style code is generally preferred, it nearly always involves
78
+ [background threads](https://github.com/python/cpython/blob/95d9dea1c4ed1b1de80074b74301cee0b38d5541/Lib/asyncio/unix_events.py#L1349)
79
+ making it [unsuitable for forking processes](https://rachelbythebay.com/w/2011/06/07/forked/) like
80
+ [process supervisors](https://github.com/wrmsr/omlish/tree/master/ominfra/supervisor).
81
+
82
+ - **[jmespath](specs/jmespath)** - A vendoring of [jmespath community edition](https://github.com/jmespath-community/python-jmespath),
83
+ modernized and adapted to this codebase.
84
+
85
+ - **[marshal](marshal)** - A [jackson](https://github.com/FasterXML/jackson)-style serde system.
86
+
87
+ - **[manifests](manifests)** - A system for sharing lightweight metadata within / across codebases.
88
+
89
+ - **[reflect](reflect)** - Reflection utilities, including primarily a formalization of stdlib type annotations for use
90
+ at runtime, decoupled from stdlib impl detail. Keeping this working is notoriously difficult across python versions
91
+ (one of the primary reasons for only supporting 3.12+).
92
+
93
+ - **[sql](sql)** - A collection of SQL utilities, including:
94
+
95
+ - **[alchemy](sql/alchemy)** - SQLAlchemy utilities. The codebase is moving away from SQLAlchemy however in favor of
96
+ its own internal SQL api.
97
+ - **[api](sql/api)** - An abstracted api for SQL interaction, with support for dbapi compatible drivers (and a
98
+ SQLAlchemy adapter).
99
+ - **[queries](sql/queries)** - A SQL query builder with a fluent interface.
100
+
101
+ - **[testing](testing)** - Test - primarily pytest - helpers, including:
102
+
103
+ - **['harness'](testing/pytest/inject/harness.py)** - An all-in-one fixture marrying it to the codebase's dependency
104
+ injector.
105
+ - **[plugins/async](testing/pytest/plugins/asyncs)** - An in-house async-backend abstraction plugin, capable of
106
+ handling all of asyncio / trio / trio-asyncio / *any-future-event-loop-impl* without having multiple fighting plugins
107
+ (*[I know, I know](https://xkcd.com/927/)*).
108
+ - **[plugins](testing/pytest/plugins)** - Various other plugins.
109
+
110
+ - **[lite](lite)** - The standard library of 'lite' code. This is the only package beneath `lang`, and parts of it are
111
+ re-exported by it for deduplication. On top of miscellaneous utilities it contains a handful of independent,
112
+ self-contained, significantly simplified 'lite' equivalents of some major core packages:
113
+
114
+ - **[lite/inject.py](lite/inject.py)** - The lite injector, which is more conservative with features and reflection
115
+ than the core injector. The codebase's
116
+ [MiniGuice](https://github.com/google/guice/commit/70248eafa90cd70a68b293763e53f6aec656e73c).
117
+ - **[lite/marshal.py](lite/marshal.py)** - The lite marshalling system, which is a classic canned setup of simple
118
+ type-specific 2-method classes and limited generic handling.
119
+
120
+ # Lite code
121
+
122
+ A subset of this codebase is written in a 'lite' style. While most of the code is written for python 3.12+, 'lite' code
123
+ is written for 3.8+, and is written in a style conducive to
124
+ [amalgamation](https://github.com/wrmsr/omlish/tree/master/omdev#amalgamation) in which multiple python source files are
125
+ stitched together into one single self-contained python script.
126
+
127
+ Code written in this style has notable differences from standard code, including (but not limited to):
128
+
129
+ - No name mangling is done in amalgamation, which means (among other things) that code must be written expecting to be
130
+ all dumped into the same giant namespace. Where a non-lite class might be [`omlish.inject.keys.Key`](inject/keys.py),
131
+ a lite equivalent might be [`omlish.lite.inject.InjectorKey`](lite/inject.py).
132
+ - All internal imports `import` each individual item out of modules rather than importing the modules and referencing
133
+ their contents. Where non-lite code would `from .. import x; x.y`, lite code would `from ..x import y; y`. As a result
134
+ there are frequently 'api' non-instantiated namespace classes serving the purpose of modules - just handy bags of
135
+ stuff with shortened names.
136
+ - As lite code is tested in 3.8+ but core code requires 3.12+, packages containing lite code can't import anything
137
+ non-lite in their (and their ancestors') `__init__.py`'s. Furthermore, `__init__.py` files are omitted outright in
138
+ amalgamation, so they effectively must be empty in any package containing any lite code. As a result there are
139
+ frequently [`all.py`](configs/all.py) files in mixed-lite packages which serve the purpose of `__init__.py` for
140
+ non-lite usage - where importing non-lite packages from non-lite code would be done via `from .. import lang`,
141
+ importing mixed-lite packages from non-lite code would be done via `from ..configs import all as cfgs`.
142
+
143
+ # Dependencies
144
+
145
+ This library has no required dependencies of any kind, but there are numerous optional integrations - see
146
+ [`__about__.py`](__about__.py) for a full list, but some specific examples are:
147
+
148
+ - **anyio** - While lite code must use only asyncio, non-trivial async non-lite code prefers to be written to anyio.
149
+ - **pytest** - What is used for all non-lite testing - as lite code has no dependencies of any kind its testing uses
150
+ stdlib's [unittest](https://docs.python.org/3/library/unittest.html).
151
+ - **sqlalchemy** - Parts of the codebase use SQLAlchemy for db stuff, but it is being migrated away from in favor of the
152
+ internal api. It will however likely still remain as an optional dep for the api adapter.
153
+ - **asttokens / executing** - For getting runtime source representations of function call arguments, an optional
154
+ capability of [check](check.py).
155
+ - **wrapt** - For (optionally-enabled) injector circular proxies.
156
+ - **greenlet** - For some gnarly stuff like the [sync<->async bridge](asyncs/bridge.py) and the
157
+ [io trampoline](io/trampoline.py).
158
+
159
+ Additionally, some catchall dep categories include:
160
+
161
+ - **compression** - Various preferred compression backends like lz4, python-snappy, zstandard, and brotli.
162
+ - **formats** - Various preferred data format backends like orjson/ujson, pyyaml, cbor2, and cloudpickle.
163
+ - **sql drivers** - Various preferred and tested sql drivers.
@@ -1,5 +1,5 @@
1
- __version__ = '0.0.0.dev300'
2
- __revision__ = 'ac78b9a6312ffbb6d660f974c26df0aabc8c9570'
1
+ __version__ = '0.0.0.dev302'
2
+ __revision__ = '0b4f820252a0f7a3e020da512ead1e112d150cd2'
3
3
 
4
4
 
5
5
  #
@@ -54,8 +54,8 @@ def staple_memory_object_stream(
54
54
  ) -> MemoryStapledObjectStream[T]:
55
55
  send, receive = args
56
56
  return MemoryStapledObjectStream(
57
- check.isinstance(send, MemoryObjectSendStream), # type: ignore
58
- check.isinstance(receive, MemoryObjectReceiveStream), # type: ignore
57
+ check.isinstance(send, MemoryObjectSendStream),
58
+ check.isinstance(receive, MemoryObjectReceiveStream),
59
59
  )
60
60
 
61
61
 
@@ -64,6 +64,6 @@ def staple_memory_object_stream(
64
64
  def staple_memory_object_stream2[T](max_buffer_size: float = 0) -> MemoryStapledObjectStream[T]:
65
65
  send, receive = anyio.create_memory_object_stream[T](max_buffer_size)
66
66
  return MemoryStapledObjectStream(
67
- check.isinstance(send, MemoryObjectSendStream), # type: ignore
68
- check.isinstance(receive, MemoryObjectReceiveStream), # type: ignore
67
+ check.isinstance(send, MemoryObjectSendStream),
68
+ check.isinstance(receive, MemoryObjectReceiveStream),
69
69
  )
@@ -191,7 +191,7 @@ class AsyncioSubprocesses(AbstractAsyncSubprocesses):
191
191
  async with self.popen(*run.cmd, **kwargs) as proc:
192
192
  stdout, stderr = await self.communicate(proc, run.input, run.timeout)
193
193
 
194
- if check and proc.returncode:
194
+ if run.check and proc.returncode:
195
195
  raise subprocess.CalledProcessError(
196
196
  proc.returncode,
197
197
  run.cmd,
@@ -1,10 +1,21 @@
1
1
  """
2
- https://github.com/kubernetes/kubernetes/blob/60c4c2b2521fb454ce69dee737e3eb91a25e0535/pkg/controller/volume/persistentvolume/pv_controller.go#L60-L63
2
+ A system for bridging sync and async code. Supports nesting / reentrancy. Robust, but not the most efficient
3
+ implementation - its primary usecase are heavy and init-time ops like lock management and connection establishment, not
4
+ so much for packet-level ops.
3
5
 
4
- ==================================================================
5
- PLEASE DO NOT ATTEMPT TO SIMPLIFY THIS CODE.
6
- KEEP THE SPACE SHUTTLE FLYING.
7
- ==================================================================
6
+ ==
7
+
8
+ The code is written in a very dumb, simple, explicit style to keep the bookkeeping center-stage and front-of-mind. To
9
+ quote kubernetes:
10
+
11
+ https://github.com/kubernetes/kubernetes/blob/60c4c2b2521fb454ce69dee737e3eb91a25e0535/pkg/controller/volume/persistentvolume/pv_controller.go#L60-L63
12
+
13
+ ==================================================================
14
+ PLEASE DO NOT ATTEMPT TO SIMPLIFY THIS CODE.
15
+ KEEP THE SPACE SHUTTLE FLYING.
16
+ ==================================================================
17
+
18
+ ==
8
19
 
9
20
  TODO:
10
21
  - reuse greenlet if nested somehow?
@@ -1,3 +1,8 @@
1
+ """
2
+ While the core functionality lives in `lite/check.py` and is available in lite code, this module re-exports the contents
3
+ of its `check` API object as module-globals for convenience. It also sets up some non-lite integration, most notably
4
+ `ArgsRenderer` for rendering the AST's and values of failed checks (if the necessary optional dependencies are present).
5
+ """
1
6
  import typing as ta
2
7
 
3
8
  from .lite.check import CheckArgsRenderer as ArgsRenderer # noqa
@@ -95,6 +95,7 @@ class TomlDecodeError(ValueError):
95
95
 
96
96
  def toml_load(fp: ta.BinaryIO, /, *, parse_float: TomlParseFloat = float) -> ta.Dict[str, ta.Any]:
97
97
  """Parse TOML from a binary file object."""
98
+
98
99
  b = fp.read()
99
100
  try:
100
101
  s = b.decode()
@@ -7,6 +7,9 @@ from ...lite.check import check
7
7
  from ...sockets.addresses import SocketAddress
8
8
 
9
9
 
10
+ ##
11
+
12
+
10
13
  class FdioHandler(abc.ABC):
11
14
  @abc.abstractmethod
12
15
  def fd(self) -> int:
@@ -7,6 +7,9 @@ import typing as ta
7
7
  from .pollers import FdioPoller
8
8
 
9
9
 
10
+ ##
11
+
12
+
10
13
  KqueueFdioPoller: ta.Optional[ta.Type[FdioPoller]]
11
14
  if sys.platform == 'darwin' or sys.platform.startswith('freebsd'):
12
15
 
@@ -5,6 +5,9 @@ from .handlers import FdioHandler
5
5
  from .pollers import FdioPoller
6
6
 
7
7
 
8
+ ##
9
+
10
+
8
11
  class FdioManager:
9
12
  def __init__(
10
13
  self,
@@ -24,8 +24,8 @@ T = ta.TypeVar('T')
24
24
 
25
25
  BytesLike: ta.TypeAlias = ta.Any
26
26
 
27
- BufferedReader = io.BufferedReader
28
- # BufferedReader = pyio.BufferedReader
27
+ BufferedReader: ta.TypeAlias = io.BufferedReader
28
+ # BufferedReader: ta.TypeAlias = pyio.BufferedReader
29
29
 
30
30
 
31
31
  ##
@@ -12,16 +12,29 @@ V = ta.TypeVar('V')
12
12
  def yield_dict_init(*args: ta.Any, **kwargs: ta.Any) -> ta.Iterable[tuple[ta.Any, ta.Any]]:
13
13
  if len(args) > 1:
14
14
  raise TypeError
15
+
15
16
  if args:
16
17
  [src] = args
18
+
19
+ # Prefer .items() as it's potentially faster.
17
20
  if isinstance(src, collections.abc.Mapping):
18
- for k in src:
21
+ # Not yield-from, explicitly enforce 2ple-ness
22
+ for k, v in src.items():
23
+ yield (k, v)
24
+
25
+ # Support keys() duck-typed dict init behavior:
26
+ # https://docs.python.org/3/library/stdtypes.html#dict
27
+ # https://github.com/python/cpython/blob/95d9dea1c4ed1b1de80074b74301cee0b38d5541/Objects/dictobject.c#L2671
28
+ elif hasattr(src, 'keys'):
29
+ # https://github.com/python/cpython/blob/95d9dea1c4ed1b1de80074b74301cee0b38d5541/Objects/dictobject.c#L2927
30
+ for k in src.keys(): # noqa
19
31
  yield (k, src[k])
32
+
20
33
  else:
21
34
  for k, v in src:
22
35
  yield (k, v)
23
- for k, v in kwargs.items():
24
- yield (k, v)
36
+
37
+ yield from kwargs.items()
25
38
 
26
39
 
27
40
  def merge_dicts(
@@ -1,6 +1,7 @@
1
1
  """
2
2
  TODO:
3
3
  - proxy_init 'as' alias support - attrs of (src, dst)
4
+ - use importlib.util.resolve_name
4
5
  """
5
6
  import contextlib
6
7
  import functools
@@ -189,6 +190,7 @@ def try_import(spec: str) -> types.ModuleType | None:
189
190
 
190
191
 
191
192
  def resolve_import_name(name: str, package: str | None = None) -> str:
193
+ # FIXME: importlib.util.resolve_name
192
194
  level = 0
193
195
 
194
196
  if name.startswith('.'):
@@ -143,7 +143,15 @@ class Checks:
143
143
  spec = (object,)
144
144
  return spec
145
145
 
146
- def isinstance(self, v: ta.Any, spec: ta.Union[ta.Type[T], tuple], msg: CheckMessage = None) -> T: # noqa
146
+ @ta.overload
147
+ def isinstance(self, v: ta.Any, spec: ta.Type[T], msg: CheckMessage = None) -> T:
148
+ ...
149
+
150
+ @ta.overload
151
+ def isinstance(self, v: ta.Any, spec: ta.Any, msg: CheckMessage = None) -> ta.Any:
152
+ ...
153
+
154
+ def isinstance(self, v, spec, msg=None):
147
155
  if not isinstance(v, self._unpack_isinstance_spec(spec)):
148
156
  self._raise(
149
157
  TypeError,
@@ -155,7 +163,15 @@ class Checks:
155
163
 
156
164
  return v
157
165
 
158
- def of_isinstance(self, spec: ta.Union[ta.Type[T], tuple], msg: CheckMessage = None) -> ta.Callable[[ta.Any], T]:
166
+ @ta.overload
167
+ def of_isinstance(self, spec: ta.Type[T], msg: CheckMessage = None) -> ta.Callable[[ta.Any], T]:
168
+ ...
169
+
170
+ @ta.overload
171
+ def of_isinstance(self, spec: ta.Any, msg: CheckMessage = None) -> ta.Callable[[ta.Any], ta.Any]:
172
+ ...
173
+
174
+ def of_isinstance(self, spec, msg=None):
159
175
  def inner(v):
160
176
  return self.isinstance(v, self._unpack_isinstance_spec(spec), msg)
161
177
 
@@ -1,5 +1,9 @@
1
1
  # ruff: noqa: UP006 UP007
2
2
  # @omlish-lite
3
+ """
4
+ TODO:
5
+ - git var GIT_EDITOR ?
6
+ """
3
7
  import dataclasses as dc
4
8
  import os
5
9
  import tempfile
@@ -16,6 +20,18 @@ from .run import SubprocessRunOutput
16
20
  ##
17
21
 
18
22
 
23
+ DEFAULT_USER_TEXT_EDITOR = 'vi'
24
+
25
+
26
+ def get_user_text_editor(default: ta.Optional[str] = None) -> str:
27
+ if default is None:
28
+ default = DEFAULT_USER_TEXT_EDITOR
29
+ return os.environ.get('EDITOR', default)
30
+
31
+
32
+ ##
33
+
34
+
19
35
  class EditTextWithUserEditor(SubprocessRunnable, ExitStacked):
20
36
  def __init__(self, initial_text: str = '') -> None:
21
37
  super().__init__()
@@ -46,11 +62,10 @@ class EditTextWithUserEditor(SubprocessRunnable, ExitStacked):
46
62
 
47
63
  def make_run(self) -> SubprocessRun:
48
64
  tf = self._temp_file()
49
-
50
- editor = os.environ.get('EDITOR', 'vi')
65
+ ed = get_user_text_editor()
51
66
 
52
67
  return SubprocessRun.of(
53
- editor,
68
+ ed,
54
69
  tf.path,
55
70
  )
56
71
 
@@ -1,6 +1,6 @@
1
1
  Metadata-Version: 2.4
2
2
  Name: omlish
3
- Version: 0.0.0.dev300
3
+ Version: 0.0.0.dev302
4
4
  Summary: omlish
5
5
  Author: wrmsr
6
6
  License: BSD-3-Clause
@@ -12,7 +12,7 @@ authors = [
12
12
  urls = {source = 'https://github.com/wrmsr/omlish'}
13
13
  license = {text = 'BSD-3-Clause'}
14
14
  requires-python = '>=3.12'
15
- version = '0.0.0.dev300'
15
+ version = '0.0.0.dev302'
16
16
  classifiers = [
17
17
  'License :: OSI Approved :: BSD License',
18
18
  'Development Status :: 2 - Pre-Alpha',
@@ -1,31 +0,0 @@
1
- It's like my previous python monorepo-ey thing [`omnibus`](https://github.com/wrmsr/omnibus/tree/wrmsr_exp_split)... ish.
2
-
3
- Core packages begin with `om`, scratch app is in `app`, temp / dump code is in `x`.
4
-
5
- ----
6
-
7
- The core packages are:
8
-
9
- - **omlish**: core foundational code
10
- - **omdev**: development utilities
11
- - **omserv**: production web server
12
- - **ominfra**: infrastructure and cloud code
13
- - **ommlx**: ml / ai code
14
-
15
- ----
16
-
17
- Core packages installable from pypi, or from git via:
18
-
19
- ```bash
20
- pip install 'git+https://github.com/wrmsr/omlish@master#subdirectory=.pkg/<pkg>'
21
- ```
22
-
23
- Core packages have no required dependencies, but numerous optional ones - see their respective `pyproject.toml` files for details.
24
-
25
- The CLI is installable through uvx or pipx via:
26
-
27
- ```bash
28
- curl -LsSf 'https://raw.githubusercontent.com/wrmsr/omlish/master/omdev/cli/install.py' | python3 -
29
- ```
30
-
31
- Additional deps to be injected may be appended to the command.
File without changes
File without changes