omlish 0.0.0.dev57__tar.gz → 0.0.0.dev59__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 (421) hide show
  1. {omlish-0.0.0.dev57/omlish.egg-info → omlish-0.0.0.dev59}/PKG-INFO +1 -1
  2. {omlish-0.0.0.dev57 → omlish-0.0.0.dev59}/omlish/__about__.py +2 -2
  3. omlish-0.0.0.dev59/omlish/antlr/_runtime/BufferedTokenStream.py +305 -0
  4. omlish-0.0.0.dev59/omlish/antlr/_runtime/CommonTokenFactory.py +64 -0
  5. omlish-0.0.0.dev59/omlish/antlr/_runtime/CommonTokenStream.py +90 -0
  6. omlish-0.0.0.dev59/omlish/antlr/_runtime/FileStream.py +30 -0
  7. omlish-0.0.0.dev59/omlish/antlr/_runtime/InputStream.py +90 -0
  8. omlish-0.0.0.dev59/omlish/antlr/_runtime/IntervalSet.py +183 -0
  9. omlish-0.0.0.dev59/omlish/antlr/_runtime/LL1Analyzer.py +176 -0
  10. omlish-0.0.0.dev59/omlish/antlr/_runtime/Lexer.py +332 -0
  11. omlish-0.0.0.dev59/omlish/antlr/_runtime/ListTokenSource.py +147 -0
  12. omlish-0.0.0.dev59/omlish/antlr/_runtime/Parser.py +583 -0
  13. omlish-0.0.0.dev59/omlish/antlr/_runtime/ParserInterpreter.py +173 -0
  14. omlish-0.0.0.dev59/omlish/antlr/_runtime/ParserRuleContext.py +189 -0
  15. omlish-0.0.0.dev59/omlish/antlr/_runtime/PredictionContext.py +632 -0
  16. omlish-0.0.0.dev59/omlish/antlr/_runtime/Recognizer.py +150 -0
  17. omlish-0.0.0.dev59/omlish/antlr/_runtime/RuleContext.py +230 -0
  18. omlish-0.0.0.dev59/omlish/antlr/_runtime/StdinStream.py +14 -0
  19. omlish-0.0.0.dev59/omlish/antlr/_runtime/Token.py +158 -0
  20. omlish-0.0.0.dev59/omlish/antlr/_runtime/TokenStreamRewriter.py +258 -0
  21. omlish-0.0.0.dev59/omlish/antlr/_runtime/Utils.py +36 -0
  22. omlish-0.0.0.dev59/omlish/antlr/_runtime/__init__.py +24 -0
  23. omlish-0.0.0.dev59/omlish/antlr/_runtime/_pygrun.py +174 -0
  24. omlish-0.0.0.dev59/omlish/antlr/_runtime/atn/ATN.py +135 -0
  25. omlish-0.0.0.dev59/omlish/antlr/_runtime/atn/ATNConfig.py +162 -0
  26. omlish-0.0.0.dev59/omlish/antlr/_runtime/atn/ATNConfigSet.py +215 -0
  27. omlish-0.0.0.dev59/omlish/antlr/_runtime/atn/ATNDeserializationOptions.py +27 -0
  28. omlish-0.0.0.dev59/omlish/antlr/_runtime/atn/ATNDeserializer.py +449 -0
  29. omlish-0.0.0.dev59/omlish/antlr/_runtime/atn/ATNSimulator.py +50 -0
  30. omlish-0.0.0.dev59/omlish/antlr/_runtime/atn/ATNState.py +267 -0
  31. omlish-0.0.0.dev59/omlish/antlr/_runtime/atn/ATNType.py +20 -0
  32. omlish-0.0.0.dev59/omlish/antlr/_runtime/atn/LexerATNSimulator.py +573 -0
  33. omlish-0.0.0.dev59/omlish/antlr/_runtime/atn/LexerAction.py +301 -0
  34. omlish-0.0.0.dev59/omlish/antlr/_runtime/atn/LexerActionExecutor.py +146 -0
  35. omlish-0.0.0.dev59/omlish/antlr/_runtime/atn/ParserATNSimulator.py +1664 -0
  36. omlish-0.0.0.dev59/omlish/antlr/_runtime/atn/PredictionMode.py +502 -0
  37. omlish-0.0.0.dev59/omlish/antlr/_runtime/atn/SemanticContext.py +333 -0
  38. omlish-0.0.0.dev59/omlish/antlr/_runtime/atn/Transition.py +271 -0
  39. omlish-0.0.0.dev59/omlish/antlr/_runtime/atn/__init__.py +4 -0
  40. omlish-0.0.0.dev59/omlish/antlr/_runtime/dfa/DFA.py +136 -0
  41. omlish-0.0.0.dev59/omlish/antlr/_runtime/dfa/DFASerializer.py +76 -0
  42. omlish-0.0.0.dev59/omlish/antlr/_runtime/dfa/DFAState.py +129 -0
  43. omlish-0.0.0.dev59/omlish/antlr/_runtime/dfa/__init__.py +4 -0
  44. omlish-0.0.0.dev59/omlish/antlr/_runtime/error/DiagnosticErrorListener.py +110 -0
  45. omlish-0.0.0.dev59/omlish/antlr/_runtime/error/ErrorListener.py +75 -0
  46. omlish-0.0.0.dev59/omlish/antlr/_runtime/error/ErrorStrategy.py +712 -0
  47. omlish-0.0.0.dev59/omlish/antlr/_runtime/error/Errors.py +176 -0
  48. omlish-0.0.0.dev59/omlish/antlr/_runtime/error/__init__.py +4 -0
  49. omlish-0.0.0.dev59/omlish/antlr/_runtime/tree/Chunk.py +33 -0
  50. omlish-0.0.0.dev59/omlish/antlr/_runtime/tree/ParseTreeMatch.py +121 -0
  51. omlish-0.0.0.dev59/omlish/antlr/_runtime/tree/ParseTreePattern.py +75 -0
  52. omlish-0.0.0.dev59/omlish/antlr/_runtime/tree/ParseTreePatternMatcher.py +377 -0
  53. omlish-0.0.0.dev59/omlish/antlr/_runtime/tree/RuleTagToken.py +53 -0
  54. omlish-0.0.0.dev59/omlish/antlr/_runtime/tree/TokenTagToken.py +50 -0
  55. omlish-0.0.0.dev59/omlish/antlr/_runtime/tree/Tree.py +194 -0
  56. omlish-0.0.0.dev59/omlish/antlr/_runtime/tree/Trees.py +114 -0
  57. omlish-0.0.0.dev59/omlish/antlr/_runtime/tree/__init__.py +2 -0
  58. omlish-0.0.0.dev59/omlish/antlr/_runtime/xpath/XPath.py +272 -0
  59. omlish-0.0.0.dev59/omlish/antlr/_runtime/xpath/XPathLexer.py +98 -0
  60. omlish-0.0.0.dev59/omlish/antlr/_runtime/xpath/__init__.py +4 -0
  61. {omlish-0.0.0.dev57 → omlish-0.0.0.dev59}/omlish/marshal/__init__.py +10 -5
  62. omlish-0.0.0.dev59/omlish/marshal/nop.py +18 -0
  63. {omlish-0.0.0.dev57 → omlish-0.0.0.dev59}/omlish/marshal/primitives.py +16 -6
  64. omlish-0.0.0.dev59/omlish/text/__init__.py +0 -0
  65. {omlish-0.0.0.dev57 → omlish-0.0.0.dev59/omlish.egg-info}/PKG-INFO +1 -1
  66. {omlish-0.0.0.dev57 → omlish-0.0.0.dev59}/omlish.egg-info/SOURCES.txt +60 -0
  67. {omlish-0.0.0.dev57 → omlish-0.0.0.dev59}/pyproject.toml +1 -1
  68. {omlish-0.0.0.dev57 → omlish-0.0.0.dev59}/LICENSE +0 -0
  69. {omlish-0.0.0.dev57 → omlish-0.0.0.dev59}/MANIFEST.in +0 -0
  70. {omlish-0.0.0.dev57 → omlish-0.0.0.dev59}/README.rst +0 -0
  71. {omlish-0.0.0.dev57 → omlish-0.0.0.dev59}/omlish/.manifests.json +0 -0
  72. {omlish-0.0.0.dev57 → omlish-0.0.0.dev59}/omlish/__init__.py +0 -0
  73. {omlish-0.0.0.dev57/omlish/formats → omlish-0.0.0.dev59/omlish/antlr}/__init__.py +0 -0
  74. {omlish-0.0.0.dev57 → omlish-0.0.0.dev59}/omlish/argparse.py +0 -0
  75. {omlish-0.0.0.dev57 → omlish-0.0.0.dev59}/omlish/asyncs/__init__.py +0 -0
  76. {omlish-0.0.0.dev57 → omlish-0.0.0.dev59}/omlish/asyncs/anyio.py +0 -0
  77. {omlish-0.0.0.dev57 → omlish-0.0.0.dev59}/omlish/asyncs/asyncio.py +0 -0
  78. {omlish-0.0.0.dev57 → omlish-0.0.0.dev59}/omlish/asyncs/asyncs.py +0 -0
  79. {omlish-0.0.0.dev57 → omlish-0.0.0.dev59}/omlish/asyncs/bridge.py +0 -0
  80. {omlish-0.0.0.dev57 → omlish-0.0.0.dev59}/omlish/asyncs/flavors.py +0 -0
  81. {omlish-0.0.0.dev57 → omlish-0.0.0.dev59}/omlish/asyncs/trio.py +0 -0
  82. {omlish-0.0.0.dev57 → omlish-0.0.0.dev59}/omlish/asyncs/trio_asyncio.py +0 -0
  83. {omlish-0.0.0.dev57 → omlish-0.0.0.dev59}/omlish/bootstrap/__init__.py +0 -0
  84. {omlish-0.0.0.dev57 → omlish-0.0.0.dev59}/omlish/bootstrap/__main__.py +0 -0
  85. {omlish-0.0.0.dev57 → omlish-0.0.0.dev59}/omlish/bootstrap/base.py +0 -0
  86. {omlish-0.0.0.dev57 → omlish-0.0.0.dev59}/omlish/bootstrap/diag.py +0 -0
  87. {omlish-0.0.0.dev57 → omlish-0.0.0.dev59}/omlish/bootstrap/harness.py +0 -0
  88. {omlish-0.0.0.dev57 → omlish-0.0.0.dev59}/omlish/bootstrap/main.py +0 -0
  89. {omlish-0.0.0.dev57 → omlish-0.0.0.dev59}/omlish/bootstrap/marshal.py +0 -0
  90. {omlish-0.0.0.dev57 → omlish-0.0.0.dev59}/omlish/bootstrap/sys.py +0 -0
  91. {omlish-0.0.0.dev57 → omlish-0.0.0.dev59}/omlish/c3.py +0 -0
  92. {omlish-0.0.0.dev57 → omlish-0.0.0.dev59}/omlish/cached.py +0 -0
  93. {omlish-0.0.0.dev57 → omlish-0.0.0.dev59}/omlish/check.py +0 -0
  94. {omlish-0.0.0.dev57 → omlish-0.0.0.dev59}/omlish/collections/__init__.py +0 -0
  95. {omlish-0.0.0.dev57 → omlish-0.0.0.dev59}/omlish/collections/_abc.py +0 -0
  96. {omlish-0.0.0.dev57 → omlish-0.0.0.dev59}/omlish/collections/_io_abc.py +0 -0
  97. {omlish-0.0.0.dev57 → omlish-0.0.0.dev59}/omlish/collections/cache/__init__.py +0 -0
  98. {omlish-0.0.0.dev57 → omlish-0.0.0.dev59}/omlish/collections/cache/descriptor.py +0 -0
  99. {omlish-0.0.0.dev57 → omlish-0.0.0.dev59}/omlish/collections/cache/impl.py +0 -0
  100. {omlish-0.0.0.dev57 → omlish-0.0.0.dev59}/omlish/collections/cache/types.py +0 -0
  101. {omlish-0.0.0.dev57 → omlish-0.0.0.dev59}/omlish/collections/coerce.py +0 -0
  102. {omlish-0.0.0.dev57 → omlish-0.0.0.dev59}/omlish/collections/exceptions.py +0 -0
  103. {omlish-0.0.0.dev57 → omlish-0.0.0.dev59}/omlish/collections/frozen.py +0 -0
  104. {omlish-0.0.0.dev57 → omlish-0.0.0.dev59}/omlish/collections/identity.py +0 -0
  105. {omlish-0.0.0.dev57 → omlish-0.0.0.dev59}/omlish/collections/indexed.py +0 -0
  106. {omlish-0.0.0.dev57 → omlish-0.0.0.dev59}/omlish/collections/mappings.py +0 -0
  107. {omlish-0.0.0.dev57 → omlish-0.0.0.dev59}/omlish/collections/ordered.py +0 -0
  108. {omlish-0.0.0.dev57 → omlish-0.0.0.dev59}/omlish/collections/persistent.py +0 -0
  109. {omlish-0.0.0.dev57 → omlish-0.0.0.dev59}/omlish/collections/skiplist.py +0 -0
  110. {omlish-0.0.0.dev57 → omlish-0.0.0.dev59}/omlish/collections/sorted.py +0 -0
  111. {omlish-0.0.0.dev57 → omlish-0.0.0.dev59}/omlish/collections/treap.py +0 -0
  112. {omlish-0.0.0.dev57 → omlish-0.0.0.dev59}/omlish/collections/treapmap.py +0 -0
  113. {omlish-0.0.0.dev57 → omlish-0.0.0.dev59}/omlish/collections/unmodifiable.py +0 -0
  114. {omlish-0.0.0.dev57 → omlish-0.0.0.dev59}/omlish/collections/utils.py +0 -0
  115. {omlish-0.0.0.dev57 → omlish-0.0.0.dev59}/omlish/concurrent/__init__.py +0 -0
  116. {omlish-0.0.0.dev57 → omlish-0.0.0.dev59}/omlish/concurrent/executors.py +0 -0
  117. {omlish-0.0.0.dev57 → omlish-0.0.0.dev59}/omlish/concurrent/futures.py +0 -0
  118. {omlish-0.0.0.dev57 → omlish-0.0.0.dev59}/omlish/concurrent/threadlets.py +0 -0
  119. {omlish-0.0.0.dev57 → omlish-0.0.0.dev59}/omlish/configs/__init__.py +0 -0
  120. {omlish-0.0.0.dev57 → omlish-0.0.0.dev59}/omlish/configs/classes.py +0 -0
  121. {omlish-0.0.0.dev57 → omlish-0.0.0.dev59}/omlish/configs/flattening.py +0 -0
  122. {omlish-0.0.0.dev57 → omlish-0.0.0.dev59}/omlish/configs/strings.py +0 -0
  123. {omlish-0.0.0.dev57 → omlish-0.0.0.dev59}/omlish/dataclasses/__init__.py +0 -0
  124. {omlish-0.0.0.dev57 → omlish-0.0.0.dev59}/omlish/dataclasses/impl/LICENSE +0 -0
  125. {omlish-0.0.0.dev57 → omlish-0.0.0.dev59}/omlish/dataclasses/impl/__init__.py +0 -0
  126. {omlish-0.0.0.dev57 → omlish-0.0.0.dev59}/omlish/dataclasses/impl/api.py +0 -0
  127. {omlish-0.0.0.dev57 → omlish-0.0.0.dev59}/omlish/dataclasses/impl/as_.py +0 -0
  128. {omlish-0.0.0.dev57 → omlish-0.0.0.dev59}/omlish/dataclasses/impl/copy.py +0 -0
  129. {omlish-0.0.0.dev57 → omlish-0.0.0.dev59}/omlish/dataclasses/impl/descriptors.py +0 -0
  130. {omlish-0.0.0.dev57 → omlish-0.0.0.dev59}/omlish/dataclasses/impl/exceptions.py +0 -0
  131. {omlish-0.0.0.dev57 → omlish-0.0.0.dev59}/omlish/dataclasses/impl/fields.py +0 -0
  132. {omlish-0.0.0.dev57 → omlish-0.0.0.dev59}/omlish/dataclasses/impl/frozen.py +0 -0
  133. {omlish-0.0.0.dev57 → omlish-0.0.0.dev59}/omlish/dataclasses/impl/hashing.py +0 -0
  134. {omlish-0.0.0.dev57 → omlish-0.0.0.dev59}/omlish/dataclasses/impl/init.py +0 -0
  135. {omlish-0.0.0.dev57 → omlish-0.0.0.dev59}/omlish/dataclasses/impl/internals.py +0 -0
  136. {omlish-0.0.0.dev57 → omlish-0.0.0.dev59}/omlish/dataclasses/impl/main.py +0 -0
  137. {omlish-0.0.0.dev57 → omlish-0.0.0.dev59}/omlish/dataclasses/impl/metaclass.py +0 -0
  138. {omlish-0.0.0.dev57 → omlish-0.0.0.dev59}/omlish/dataclasses/impl/metadata.py +0 -0
  139. {omlish-0.0.0.dev57 → omlish-0.0.0.dev59}/omlish/dataclasses/impl/order.py +0 -0
  140. {omlish-0.0.0.dev57 → omlish-0.0.0.dev59}/omlish/dataclasses/impl/params.py +0 -0
  141. {omlish-0.0.0.dev57 → omlish-0.0.0.dev59}/omlish/dataclasses/impl/processing.py +0 -0
  142. {omlish-0.0.0.dev57 → omlish-0.0.0.dev59}/omlish/dataclasses/impl/reflect.py +0 -0
  143. {omlish-0.0.0.dev57 → omlish-0.0.0.dev59}/omlish/dataclasses/impl/replace.py +0 -0
  144. {omlish-0.0.0.dev57 → omlish-0.0.0.dev59}/omlish/dataclasses/impl/repr.py +0 -0
  145. {omlish-0.0.0.dev57 → omlish-0.0.0.dev59}/omlish/dataclasses/impl/simple.py +0 -0
  146. {omlish-0.0.0.dev57 → omlish-0.0.0.dev59}/omlish/dataclasses/impl/slots.py +0 -0
  147. {omlish-0.0.0.dev57 → omlish-0.0.0.dev59}/omlish/dataclasses/impl/utils.py +0 -0
  148. {omlish-0.0.0.dev57 → omlish-0.0.0.dev59}/omlish/dataclasses/utils.py +0 -0
  149. {omlish-0.0.0.dev57 → omlish-0.0.0.dev59}/omlish/datetimes.py +0 -0
  150. {omlish-0.0.0.dev57 → omlish-0.0.0.dev59}/omlish/defs.py +0 -0
  151. {omlish-0.0.0.dev57 → omlish-0.0.0.dev59}/omlish/diag/__init__.py +0 -0
  152. {omlish-0.0.0.dev57 → omlish-0.0.0.dev59}/omlish/diag/asts.py +0 -0
  153. {omlish-0.0.0.dev57 → omlish-0.0.0.dev59}/omlish/diag/procfs.py +0 -0
  154. {omlish-0.0.0.dev57 → omlish-0.0.0.dev59}/omlish/diag/procstats.py +0 -0
  155. {omlish-0.0.0.dev57 → omlish-0.0.0.dev59}/omlish/diag/ps.py +0 -0
  156. {omlish-0.0.0.dev57 → omlish-0.0.0.dev59}/omlish/diag/pycharm.py +0 -0
  157. {omlish-0.0.0.dev57 → omlish-0.0.0.dev59}/omlish/diag/pydevd.py +0 -0
  158. {omlish-0.0.0.dev57 → omlish-0.0.0.dev59}/omlish/diag/replserver/__init__.py +0 -0
  159. {omlish-0.0.0.dev57 → omlish-0.0.0.dev59}/omlish/diag/replserver/__main__.py +0 -0
  160. {omlish-0.0.0.dev57 → omlish-0.0.0.dev59}/omlish/diag/replserver/console.py +0 -0
  161. {omlish-0.0.0.dev57 → omlish-0.0.0.dev59}/omlish/diag/replserver/server.py +0 -0
  162. {omlish-0.0.0.dev57 → omlish-0.0.0.dev59}/omlish/diag/threads.py +0 -0
  163. {omlish-0.0.0.dev57 → omlish-0.0.0.dev59}/omlish/dispatch/__init__.py +0 -0
  164. {omlish-0.0.0.dev57 → omlish-0.0.0.dev59}/omlish/dispatch/_dispatch2.py +0 -0
  165. {omlish-0.0.0.dev57 → omlish-0.0.0.dev59}/omlish/dispatch/_dispatch3.py +0 -0
  166. {omlish-0.0.0.dev57 → omlish-0.0.0.dev59}/omlish/dispatch/dispatch.py +0 -0
  167. {omlish-0.0.0.dev57 → omlish-0.0.0.dev59}/omlish/dispatch/functions.py +0 -0
  168. {omlish-0.0.0.dev57 → omlish-0.0.0.dev59}/omlish/dispatch/methods.py +0 -0
  169. {omlish-0.0.0.dev57 → omlish-0.0.0.dev59}/omlish/docker/__init__.py +0 -0
  170. {omlish-0.0.0.dev57 → omlish-0.0.0.dev59}/omlish/docker/cli.py +0 -0
  171. {omlish-0.0.0.dev57 → omlish-0.0.0.dev59}/omlish/docker/compose.py +0 -0
  172. {omlish-0.0.0.dev57 → omlish-0.0.0.dev59}/omlish/docker/helpers.py +0 -0
  173. {omlish-0.0.0.dev57 → omlish-0.0.0.dev59}/omlish/docker/hub.py +0 -0
  174. {omlish-0.0.0.dev57 → omlish-0.0.0.dev59}/omlish/docker/manifests.py +0 -0
  175. {omlish-0.0.0.dev57 → omlish-0.0.0.dev59}/omlish/dynamic.py +0 -0
  176. {omlish-0.0.0.dev57 → omlish-0.0.0.dev59}/omlish/fnpairs.py +0 -0
  177. {omlish-0.0.0.dev57 → omlish-0.0.0.dev59}/omlish/fnpipes.py +0 -0
  178. {omlish-0.0.0.dev57/omlish/formats/json/backends → omlish-0.0.0.dev59/omlish/formats}/__init__.py +0 -0
  179. {omlish-0.0.0.dev57 → omlish-0.0.0.dev59}/omlish/formats/dotenv.py +0 -0
  180. {omlish-0.0.0.dev57 → omlish-0.0.0.dev59}/omlish/formats/json/__init__.py +0 -0
  181. {omlish-0.0.0.dev57 → omlish-0.0.0.dev59}/omlish/formats/json/__main__.py +0 -0
  182. {omlish-0.0.0.dev57/omlish/graphs → omlish-0.0.0.dev59/omlish/formats/json/backends}/__init__.py +0 -0
  183. {omlish-0.0.0.dev57 → omlish-0.0.0.dev59}/omlish/formats/json/backends/orjson.py +0 -0
  184. {omlish-0.0.0.dev57 → omlish-0.0.0.dev59}/omlish/formats/json/backends/std.py +0 -0
  185. {omlish-0.0.0.dev57 → omlish-0.0.0.dev59}/omlish/formats/json/backends/ujson.py +0 -0
  186. {omlish-0.0.0.dev57 → omlish-0.0.0.dev59}/omlish/formats/json/cli.py +0 -0
  187. {omlish-0.0.0.dev57 → omlish-0.0.0.dev59}/omlish/formats/json/json.py +0 -0
  188. {omlish-0.0.0.dev57 → omlish-0.0.0.dev59}/omlish/formats/json/render.py +0 -0
  189. {omlish-0.0.0.dev57 → omlish-0.0.0.dev59}/omlish/formats/props.py +0 -0
  190. {omlish-0.0.0.dev57 → omlish-0.0.0.dev59}/omlish/formats/yaml.py +0 -0
  191. {omlish-0.0.0.dev57 → omlish-0.0.0.dev59}/omlish/genmachine.py +0 -0
  192. {omlish-0.0.0.dev57/omlish/inject/impl → omlish-0.0.0.dev59/omlish/graphs}/__init__.py +0 -0
  193. {omlish-0.0.0.dev57 → omlish-0.0.0.dev59}/omlish/graphs/dags.py +0 -0
  194. {omlish-0.0.0.dev57 → omlish-0.0.0.dev59}/omlish/graphs/domination.py +0 -0
  195. {omlish-0.0.0.dev57 → omlish-0.0.0.dev59}/omlish/graphs/dot/__init__.py +0 -0
  196. {omlish-0.0.0.dev57 → omlish-0.0.0.dev59}/omlish/graphs/dot/items.py +0 -0
  197. {omlish-0.0.0.dev57 → omlish-0.0.0.dev59}/omlish/graphs/dot/make.py +0 -0
  198. {omlish-0.0.0.dev57 → omlish-0.0.0.dev59}/omlish/graphs/dot/rendering.py +0 -0
  199. {omlish-0.0.0.dev57 → omlish-0.0.0.dev59}/omlish/graphs/dot/utils.py +0 -0
  200. {omlish-0.0.0.dev57 → omlish-0.0.0.dev59}/omlish/graphs/trees.py +0 -0
  201. {omlish-0.0.0.dev57 → omlish-0.0.0.dev59}/omlish/http/__init__.py +0 -0
  202. {omlish-0.0.0.dev57 → omlish-0.0.0.dev59}/omlish/http/asgi.py +0 -0
  203. {omlish-0.0.0.dev57 → omlish-0.0.0.dev59}/omlish/http/collections.py +0 -0
  204. {omlish-0.0.0.dev57 → omlish-0.0.0.dev59}/omlish/http/consts.py +0 -0
  205. {omlish-0.0.0.dev57 → omlish-0.0.0.dev59}/omlish/http/cookies.py +0 -0
  206. {omlish-0.0.0.dev57 → omlish-0.0.0.dev59}/omlish/http/dates.py +0 -0
  207. {omlish-0.0.0.dev57 → omlish-0.0.0.dev59}/omlish/http/encodings.py +0 -0
  208. {omlish-0.0.0.dev57 → omlish-0.0.0.dev59}/omlish/http/json.py +0 -0
  209. {omlish-0.0.0.dev57 → omlish-0.0.0.dev59}/omlish/http/sessions.py +0 -0
  210. {omlish-0.0.0.dev57 → omlish-0.0.0.dev59}/omlish/http/wsgi.py +0 -0
  211. {omlish-0.0.0.dev57 → omlish-0.0.0.dev59}/omlish/inject/__init__.py +0 -0
  212. {omlish-0.0.0.dev57 → omlish-0.0.0.dev59}/omlish/inject/binder.py +0 -0
  213. {omlish-0.0.0.dev57 → omlish-0.0.0.dev59}/omlish/inject/bindings.py +0 -0
  214. {omlish-0.0.0.dev57 → omlish-0.0.0.dev59}/omlish/inject/eagers.py +0 -0
  215. {omlish-0.0.0.dev57 → omlish-0.0.0.dev59}/omlish/inject/elements.py +0 -0
  216. {omlish-0.0.0.dev57 → omlish-0.0.0.dev59}/omlish/inject/exceptions.py +0 -0
  217. {omlish-0.0.0.dev57/omlish/math → omlish-0.0.0.dev59/omlish/inject/impl}/__init__.py +0 -0
  218. {omlish-0.0.0.dev57 → omlish-0.0.0.dev59}/omlish/inject/impl/bindings.py +0 -0
  219. {omlish-0.0.0.dev57 → omlish-0.0.0.dev59}/omlish/inject/impl/elements.py +0 -0
  220. {omlish-0.0.0.dev57 → omlish-0.0.0.dev59}/omlish/inject/impl/injector.py +0 -0
  221. {omlish-0.0.0.dev57 → omlish-0.0.0.dev59}/omlish/inject/impl/inspect.py +0 -0
  222. {omlish-0.0.0.dev57 → omlish-0.0.0.dev59}/omlish/inject/impl/multis.py +0 -0
  223. {omlish-0.0.0.dev57 → omlish-0.0.0.dev59}/omlish/inject/impl/origins.py +0 -0
  224. {omlish-0.0.0.dev57 → omlish-0.0.0.dev59}/omlish/inject/impl/privates.py +0 -0
  225. {omlish-0.0.0.dev57 → omlish-0.0.0.dev59}/omlish/inject/impl/providers.py +0 -0
  226. {omlish-0.0.0.dev57 → omlish-0.0.0.dev59}/omlish/inject/impl/proxy.py +0 -0
  227. {omlish-0.0.0.dev57 → omlish-0.0.0.dev59}/omlish/inject/impl/scopes.py +0 -0
  228. {omlish-0.0.0.dev57 → omlish-0.0.0.dev59}/omlish/inject/injector.py +0 -0
  229. {omlish-0.0.0.dev57 → omlish-0.0.0.dev59}/omlish/inject/inspect.py +0 -0
  230. {omlish-0.0.0.dev57 → omlish-0.0.0.dev59}/omlish/inject/keys.py +0 -0
  231. {omlish-0.0.0.dev57 → omlish-0.0.0.dev59}/omlish/inject/listeners.py +0 -0
  232. {omlish-0.0.0.dev57 → omlish-0.0.0.dev59}/omlish/inject/managed.py +0 -0
  233. {omlish-0.0.0.dev57 → omlish-0.0.0.dev59}/omlish/inject/multis.py +0 -0
  234. {omlish-0.0.0.dev57 → omlish-0.0.0.dev59}/omlish/inject/origins.py +0 -0
  235. {omlish-0.0.0.dev57 → omlish-0.0.0.dev59}/omlish/inject/overrides.py +0 -0
  236. {omlish-0.0.0.dev57 → omlish-0.0.0.dev59}/omlish/inject/privates.py +0 -0
  237. {omlish-0.0.0.dev57 → omlish-0.0.0.dev59}/omlish/inject/providers.py +0 -0
  238. {omlish-0.0.0.dev57 → omlish-0.0.0.dev59}/omlish/inject/scopes.py +0 -0
  239. {omlish-0.0.0.dev57 → omlish-0.0.0.dev59}/omlish/inject/types.py +0 -0
  240. {omlish-0.0.0.dev57 → omlish-0.0.0.dev59}/omlish/inject/utils.py +0 -0
  241. {omlish-0.0.0.dev57 → omlish-0.0.0.dev59}/omlish/iterators.py +0 -0
  242. {omlish-0.0.0.dev57 → omlish-0.0.0.dev59}/omlish/lang/__init__.py +0 -0
  243. {omlish-0.0.0.dev57 → omlish-0.0.0.dev59}/omlish/lang/cached.py +0 -0
  244. {omlish-0.0.0.dev57 → omlish-0.0.0.dev59}/omlish/lang/classes/__init__.py +0 -0
  245. {omlish-0.0.0.dev57 → omlish-0.0.0.dev59}/omlish/lang/classes/abstract.py +0 -0
  246. {omlish-0.0.0.dev57 → omlish-0.0.0.dev59}/omlish/lang/classes/restrict.py +0 -0
  247. {omlish-0.0.0.dev57 → omlish-0.0.0.dev59}/omlish/lang/classes/simple.py +0 -0
  248. {omlish-0.0.0.dev57 → omlish-0.0.0.dev59}/omlish/lang/classes/virtual.py +0 -0
  249. {omlish-0.0.0.dev57 → omlish-0.0.0.dev59}/omlish/lang/clsdct.py +0 -0
  250. {omlish-0.0.0.dev57 → omlish-0.0.0.dev59}/omlish/lang/cmp.py +0 -0
  251. {omlish-0.0.0.dev57 → omlish-0.0.0.dev59}/omlish/lang/contextmanagers.py +0 -0
  252. {omlish-0.0.0.dev57 → omlish-0.0.0.dev59}/omlish/lang/datetimes.py +0 -0
  253. {omlish-0.0.0.dev57 → omlish-0.0.0.dev59}/omlish/lang/descriptors.py +0 -0
  254. {omlish-0.0.0.dev57 → omlish-0.0.0.dev59}/omlish/lang/exceptions.py +0 -0
  255. {omlish-0.0.0.dev57 → omlish-0.0.0.dev59}/omlish/lang/functions.py +0 -0
  256. {omlish-0.0.0.dev57 → omlish-0.0.0.dev59}/omlish/lang/imports.py +0 -0
  257. {omlish-0.0.0.dev57 → omlish-0.0.0.dev59}/omlish/lang/iterables.py +0 -0
  258. {omlish-0.0.0.dev57 → omlish-0.0.0.dev59}/omlish/lang/maybes.py +0 -0
  259. {omlish-0.0.0.dev57 → omlish-0.0.0.dev59}/omlish/lang/objects.py +0 -0
  260. {omlish-0.0.0.dev57 → omlish-0.0.0.dev59}/omlish/lang/resolving.py +0 -0
  261. {omlish-0.0.0.dev57 → omlish-0.0.0.dev59}/omlish/lang/resources.py +0 -0
  262. {omlish-0.0.0.dev57 → omlish-0.0.0.dev59}/omlish/lang/strings.py +0 -0
  263. {omlish-0.0.0.dev57 → omlish-0.0.0.dev59}/omlish/lang/sys.py +0 -0
  264. {omlish-0.0.0.dev57 → omlish-0.0.0.dev59}/omlish/lang/timeouts.py +0 -0
  265. {omlish-0.0.0.dev57 → omlish-0.0.0.dev59}/omlish/lang/typing.py +0 -0
  266. {omlish-0.0.0.dev57 → omlish-0.0.0.dev59}/omlish/libc.py +0 -0
  267. {omlish-0.0.0.dev57 → omlish-0.0.0.dev59}/omlish/lifecycles/__init__.py +0 -0
  268. {omlish-0.0.0.dev57 → omlish-0.0.0.dev59}/omlish/lifecycles/abstract.py +0 -0
  269. {omlish-0.0.0.dev57 → omlish-0.0.0.dev59}/omlish/lifecycles/base.py +0 -0
  270. {omlish-0.0.0.dev57 → omlish-0.0.0.dev59}/omlish/lifecycles/contextmanagers.py +0 -0
  271. {omlish-0.0.0.dev57 → omlish-0.0.0.dev59}/omlish/lifecycles/controller.py +0 -0
  272. {omlish-0.0.0.dev57 → omlish-0.0.0.dev59}/omlish/lifecycles/manager.py +0 -0
  273. {omlish-0.0.0.dev57 → omlish-0.0.0.dev59}/omlish/lifecycles/states.py +0 -0
  274. {omlish-0.0.0.dev57 → omlish-0.0.0.dev59}/omlish/lifecycles/transitions.py +0 -0
  275. {omlish-0.0.0.dev57 → omlish-0.0.0.dev59}/omlish/lite/__init__.py +0 -0
  276. {omlish-0.0.0.dev57 → omlish-0.0.0.dev59}/omlish/lite/cached.py +0 -0
  277. {omlish-0.0.0.dev57 → omlish-0.0.0.dev59}/omlish/lite/check.py +0 -0
  278. {omlish-0.0.0.dev57 → omlish-0.0.0.dev59}/omlish/lite/contextmanagers.py +0 -0
  279. {omlish-0.0.0.dev57 → omlish-0.0.0.dev59}/omlish/lite/json.py +0 -0
  280. {omlish-0.0.0.dev57 → omlish-0.0.0.dev59}/omlish/lite/logs.py +0 -0
  281. {omlish-0.0.0.dev57 → omlish-0.0.0.dev59}/omlish/lite/marshal.py +0 -0
  282. {omlish-0.0.0.dev57 → omlish-0.0.0.dev59}/omlish/lite/reflect.py +0 -0
  283. {omlish-0.0.0.dev57 → omlish-0.0.0.dev59}/omlish/lite/runtime.py +0 -0
  284. {omlish-0.0.0.dev57 → omlish-0.0.0.dev59}/omlish/lite/secrets.py +0 -0
  285. {omlish-0.0.0.dev57 → omlish-0.0.0.dev59}/omlish/lite/strings.py +0 -0
  286. {omlish-0.0.0.dev57 → omlish-0.0.0.dev59}/omlish/lite/subprocesses.py +0 -0
  287. {omlish-0.0.0.dev57 → omlish-0.0.0.dev59}/omlish/logs/__init__.py +0 -0
  288. {omlish-0.0.0.dev57 → omlish-0.0.0.dev59}/omlish/logs/_abc.py +0 -0
  289. {omlish-0.0.0.dev57 → omlish-0.0.0.dev59}/omlish/logs/configs.py +0 -0
  290. {omlish-0.0.0.dev57 → omlish-0.0.0.dev59}/omlish/logs/formatters.py +0 -0
  291. {omlish-0.0.0.dev57 → omlish-0.0.0.dev59}/omlish/logs/handlers.py +0 -0
  292. {omlish-0.0.0.dev57 → omlish-0.0.0.dev59}/omlish/logs/noisy.py +0 -0
  293. {omlish-0.0.0.dev57 → omlish-0.0.0.dev59}/omlish/logs/utils.py +0 -0
  294. {omlish-0.0.0.dev57 → omlish-0.0.0.dev59}/omlish/marshal/any.py +0 -0
  295. {omlish-0.0.0.dev57 → omlish-0.0.0.dev59}/omlish/marshal/base.py +0 -0
  296. {omlish-0.0.0.dev57 → omlish-0.0.0.dev59}/omlish/marshal/base64.py +0 -0
  297. {omlish-0.0.0.dev57 → omlish-0.0.0.dev59}/omlish/marshal/dataclasses.py +0 -0
  298. {omlish-0.0.0.dev57 → omlish-0.0.0.dev59}/omlish/marshal/datetimes.py +0 -0
  299. {omlish-0.0.0.dev57 → omlish-0.0.0.dev59}/omlish/marshal/enums.py +0 -0
  300. {omlish-0.0.0.dev57 → omlish-0.0.0.dev59}/omlish/marshal/exceptions.py +0 -0
  301. {omlish-0.0.0.dev57 → omlish-0.0.0.dev59}/omlish/marshal/factories.py +0 -0
  302. {omlish-0.0.0.dev57 → omlish-0.0.0.dev59}/omlish/marshal/forbidden.py +0 -0
  303. {omlish-0.0.0.dev57 → omlish-0.0.0.dev59}/omlish/marshal/global_.py +0 -0
  304. {omlish-0.0.0.dev57 → omlish-0.0.0.dev59}/omlish/marshal/helpers.py +0 -0
  305. {omlish-0.0.0.dev57 → omlish-0.0.0.dev59}/omlish/marshal/iterables.py +0 -0
  306. {omlish-0.0.0.dev57 → omlish-0.0.0.dev59}/omlish/marshal/mappings.py +0 -0
  307. {omlish-0.0.0.dev57 → omlish-0.0.0.dev59}/omlish/marshal/maybes.py +0 -0
  308. {omlish-0.0.0.dev57 → omlish-0.0.0.dev59}/omlish/marshal/naming.py +0 -0
  309. {omlish-0.0.0.dev57 → omlish-0.0.0.dev59}/omlish/marshal/numbers.py +0 -0
  310. {omlish-0.0.0.dev57 → omlish-0.0.0.dev59}/omlish/marshal/objects.py +0 -0
  311. {omlish-0.0.0.dev57 → omlish-0.0.0.dev59}/omlish/marshal/optionals.py +0 -0
  312. {omlish-0.0.0.dev57 → omlish-0.0.0.dev59}/omlish/marshal/polymorphism.py +0 -0
  313. {omlish-0.0.0.dev57 → omlish-0.0.0.dev59}/omlish/marshal/registries.py +0 -0
  314. {omlish-0.0.0.dev57 → omlish-0.0.0.dev59}/omlish/marshal/standard.py +0 -0
  315. {omlish-0.0.0.dev57 → omlish-0.0.0.dev59}/omlish/marshal/unions.py +0 -0
  316. {omlish-0.0.0.dev57 → omlish-0.0.0.dev59}/omlish/marshal/utils.py +0 -0
  317. {omlish-0.0.0.dev57 → omlish-0.0.0.dev59}/omlish/marshal/uuids.py +0 -0
  318. {omlish-0.0.0.dev57 → omlish-0.0.0.dev59}/omlish/marshal/values.py +0 -0
  319. {omlish-0.0.0.dev57 → omlish-0.0.0.dev59}/omlish/matchfns.py +0 -0
  320. {omlish-0.0.0.dev57/omlish/specs/jsonschema → omlish-0.0.0.dev59/omlish/math}/__init__.py +0 -0
  321. {omlish-0.0.0.dev57 → omlish-0.0.0.dev59}/omlish/math/bits.py +0 -0
  322. {omlish-0.0.0.dev57 → omlish-0.0.0.dev59}/omlish/math/floats.py +0 -0
  323. {omlish-0.0.0.dev57 → omlish-0.0.0.dev59}/omlish/math/stats.py +0 -0
  324. {omlish-0.0.0.dev57 → omlish-0.0.0.dev59}/omlish/multiprocessing.py +0 -0
  325. {omlish-0.0.0.dev57 → omlish-0.0.0.dev59}/omlish/os.py +0 -0
  326. {omlish-0.0.0.dev57 → omlish-0.0.0.dev59}/omlish/reflect/__init__.py +0 -0
  327. {omlish-0.0.0.dev57 → omlish-0.0.0.dev59}/omlish/reflect/isinstance.py +0 -0
  328. {omlish-0.0.0.dev57 → omlish-0.0.0.dev59}/omlish/reflect/ops.py +0 -0
  329. {omlish-0.0.0.dev57 → omlish-0.0.0.dev59}/omlish/reflect/subst.py +0 -0
  330. {omlish-0.0.0.dev57 → omlish-0.0.0.dev59}/omlish/reflect/types.py +0 -0
  331. {omlish-0.0.0.dev57 → omlish-0.0.0.dev59}/omlish/runmodule.py +0 -0
  332. {omlish-0.0.0.dev57 → omlish-0.0.0.dev59}/omlish/secrets/__init__.py +0 -0
  333. {omlish-0.0.0.dev57 → omlish-0.0.0.dev59}/omlish/secrets/crypto.py +0 -0
  334. {omlish-0.0.0.dev57 → omlish-0.0.0.dev59}/omlish/secrets/marshal.py +0 -0
  335. {omlish-0.0.0.dev57 → omlish-0.0.0.dev59}/omlish/secrets/openssl.py +0 -0
  336. {omlish-0.0.0.dev57 → omlish-0.0.0.dev59}/omlish/secrets/passwords.py +0 -0
  337. {omlish-0.0.0.dev57 → omlish-0.0.0.dev59}/omlish/secrets/secrets.py +0 -0
  338. {omlish-0.0.0.dev57 → omlish-0.0.0.dev59}/omlish/secrets/subprocesses.py +0 -0
  339. {omlish-0.0.0.dev57 → omlish-0.0.0.dev59}/omlish/specs/__init__.py +0 -0
  340. {omlish-0.0.0.dev57 → omlish-0.0.0.dev59}/omlish/specs/jmespath/LICENSE +0 -0
  341. {omlish-0.0.0.dev57 → omlish-0.0.0.dev59}/omlish/specs/jmespath/__init__.py +0 -0
  342. {omlish-0.0.0.dev57 → omlish-0.0.0.dev59}/omlish/specs/jmespath/__main__.py +0 -0
  343. {omlish-0.0.0.dev57 → omlish-0.0.0.dev59}/omlish/specs/jmespath/ast.py +0 -0
  344. {omlish-0.0.0.dev57 → omlish-0.0.0.dev59}/omlish/specs/jmespath/cli.py +0 -0
  345. {omlish-0.0.0.dev57 → omlish-0.0.0.dev59}/omlish/specs/jmespath/exceptions.py +0 -0
  346. {omlish-0.0.0.dev57 → omlish-0.0.0.dev59}/omlish/specs/jmespath/functions.py +0 -0
  347. {omlish-0.0.0.dev57 → omlish-0.0.0.dev59}/omlish/specs/jmespath/lexer.py +0 -0
  348. {omlish-0.0.0.dev57 → omlish-0.0.0.dev59}/omlish/specs/jmespath/parser.py +0 -0
  349. {omlish-0.0.0.dev57 → omlish-0.0.0.dev59}/omlish/specs/jmespath/scope.py +0 -0
  350. {omlish-0.0.0.dev57 → omlish-0.0.0.dev59}/omlish/specs/jmespath/visitor.py +0 -0
  351. {omlish-0.0.0.dev57 → omlish-0.0.0.dev59}/omlish/specs/jsonrpc/__init__.py +0 -0
  352. {omlish-0.0.0.dev57 → omlish-0.0.0.dev59}/omlish/specs/jsonrpc/errors.py +0 -0
  353. {omlish-0.0.0.dev57 → omlish-0.0.0.dev59}/omlish/specs/jsonrpc/marshal.py +0 -0
  354. {omlish-0.0.0.dev57 → omlish-0.0.0.dev59}/omlish/specs/jsonrpc/types.py +0 -0
  355. {omlish-0.0.0.dev57/omlish/specs/jsonschema/schemas → omlish-0.0.0.dev59/omlish/specs/jsonschema}/__init__.py +0 -0
  356. {omlish-0.0.0.dev57 → omlish-0.0.0.dev59}/omlish/specs/jsonschema/keywords/__init__.py +0 -0
  357. {omlish-0.0.0.dev57 → omlish-0.0.0.dev59}/omlish/specs/jsonschema/keywords/base.py +0 -0
  358. {omlish-0.0.0.dev57 → omlish-0.0.0.dev59}/omlish/specs/jsonschema/keywords/core.py +0 -0
  359. {omlish-0.0.0.dev57 → omlish-0.0.0.dev59}/omlish/specs/jsonschema/keywords/metadata.py +0 -0
  360. {omlish-0.0.0.dev57 → omlish-0.0.0.dev59}/omlish/specs/jsonschema/keywords/parse.py +0 -0
  361. {omlish-0.0.0.dev57 → omlish-0.0.0.dev59}/omlish/specs/jsonschema/keywords/render.py +0 -0
  362. {omlish-0.0.0.dev57 → omlish-0.0.0.dev59}/omlish/specs/jsonschema/keywords/validation.py +0 -0
  363. {omlish-0.0.0.dev57/omlish/specs/jsonschema/schemas/draft202012 → omlish-0.0.0.dev59/omlish/specs/jsonschema/schemas}/__init__.py +0 -0
  364. {omlish-0.0.0.dev57/omlish/specs/jsonschema/schemas/draft202012/vocabularies → omlish-0.0.0.dev59/omlish/specs/jsonschema/schemas/draft202012}/__init__.py +0 -0
  365. {omlish-0.0.0.dev57 → omlish-0.0.0.dev59}/omlish/specs/jsonschema/schemas/draft202012/metaschema.json +0 -0
  366. {omlish-0.0.0.dev57/omlish/text → omlish-0.0.0.dev59/omlish/specs/jsonschema/schemas/draft202012/vocabularies}/__init__.py +0 -0
  367. {omlish-0.0.0.dev57 → omlish-0.0.0.dev59}/omlish/specs/jsonschema/schemas/draft202012/vocabularies/applicator.json +0 -0
  368. {omlish-0.0.0.dev57 → omlish-0.0.0.dev59}/omlish/specs/jsonschema/schemas/draft202012/vocabularies/content.json +0 -0
  369. {omlish-0.0.0.dev57 → omlish-0.0.0.dev59}/omlish/specs/jsonschema/schemas/draft202012/vocabularies/core.json +0 -0
  370. {omlish-0.0.0.dev57 → omlish-0.0.0.dev59}/omlish/specs/jsonschema/schemas/draft202012/vocabularies/format-annotation.json +0 -0
  371. {omlish-0.0.0.dev57 → omlish-0.0.0.dev59}/omlish/specs/jsonschema/schemas/draft202012/vocabularies/format-assertion.json +0 -0
  372. {omlish-0.0.0.dev57 → omlish-0.0.0.dev59}/omlish/specs/jsonschema/schemas/draft202012/vocabularies/format.json +0 -0
  373. {omlish-0.0.0.dev57 → omlish-0.0.0.dev59}/omlish/specs/jsonschema/schemas/draft202012/vocabularies/meta-data.json +0 -0
  374. {omlish-0.0.0.dev57 → omlish-0.0.0.dev59}/omlish/specs/jsonschema/schemas/draft202012/vocabularies/unevaluated.json +0 -0
  375. {omlish-0.0.0.dev57 → omlish-0.0.0.dev59}/omlish/specs/jsonschema/schemas/draft202012/vocabularies/validation.json +0 -0
  376. {omlish-0.0.0.dev57 → omlish-0.0.0.dev59}/omlish/specs/jsonschema/types.py +0 -0
  377. {omlish-0.0.0.dev57 → omlish-0.0.0.dev59}/omlish/specs/openapi/__init__.py +0 -0
  378. {omlish-0.0.0.dev57 → omlish-0.0.0.dev59}/omlish/specs/openapi/marshal.py +0 -0
  379. {omlish-0.0.0.dev57 → omlish-0.0.0.dev59}/omlish/specs/openapi/openapi.py +0 -0
  380. {omlish-0.0.0.dev57 → omlish-0.0.0.dev59}/omlish/sql/__init__.py +0 -0
  381. {omlish-0.0.0.dev57 → omlish-0.0.0.dev59}/omlish/sql/_abc.py +0 -0
  382. {omlish-0.0.0.dev57 → omlish-0.0.0.dev59}/omlish/sql/alchemy/__init__.py +0 -0
  383. {omlish-0.0.0.dev57 → omlish-0.0.0.dev59}/omlish/sql/alchemy/asyncs.py +0 -0
  384. {omlish-0.0.0.dev57 → omlish-0.0.0.dev59}/omlish/sql/alchemy/duckdb.py +0 -0
  385. {omlish-0.0.0.dev57 → omlish-0.0.0.dev59}/omlish/sql/alchemy/exprs.py +0 -0
  386. {omlish-0.0.0.dev57 → omlish-0.0.0.dev59}/omlish/sql/alchemy/secrets.py +0 -0
  387. {omlish-0.0.0.dev57 → omlish-0.0.0.dev59}/omlish/sql/alchemy/sqlean.py +0 -0
  388. {omlish-0.0.0.dev57 → omlish-0.0.0.dev59}/omlish/sql/dbs.py +0 -0
  389. {omlish-0.0.0.dev57 → omlish-0.0.0.dev59}/omlish/sql/qualifiedname.py +0 -0
  390. {omlish-0.0.0.dev57 → omlish-0.0.0.dev59}/omlish/sync.py +0 -0
  391. {omlish-0.0.0.dev57 → omlish-0.0.0.dev59}/omlish/term.py +0 -0
  392. {omlish-0.0.0.dev57 → omlish-0.0.0.dev59}/omlish/testing/__init__.py +0 -0
  393. {omlish-0.0.0.dev57 → omlish-0.0.0.dev59}/omlish/testing/pytest/__init__.py +0 -0
  394. {omlish-0.0.0.dev57 → omlish-0.0.0.dev59}/omlish/testing/pytest/helpers.py +0 -0
  395. {omlish-0.0.0.dev57 → omlish-0.0.0.dev59}/omlish/testing/pytest/inject/__init__.py +0 -0
  396. {omlish-0.0.0.dev57 → omlish-0.0.0.dev59}/omlish/testing/pytest/inject/harness.py +0 -0
  397. {omlish-0.0.0.dev57 → omlish-0.0.0.dev59}/omlish/testing/pytest/marks.py +0 -0
  398. {omlish-0.0.0.dev57 → omlish-0.0.0.dev59}/omlish/testing/pytest/plugins/__init__.py +0 -0
  399. {omlish-0.0.0.dev57 → omlish-0.0.0.dev59}/omlish/testing/pytest/plugins/_registry.py +0 -0
  400. {omlish-0.0.0.dev57 → omlish-0.0.0.dev59}/omlish/testing/pytest/plugins/asyncs.py +0 -0
  401. {omlish-0.0.0.dev57 → omlish-0.0.0.dev59}/omlish/testing/pytest/plugins/depskip.py +0 -0
  402. {omlish-0.0.0.dev57 → omlish-0.0.0.dev59}/omlish/testing/pytest/plugins/logging.py +0 -0
  403. {omlish-0.0.0.dev57 → omlish-0.0.0.dev59}/omlish/testing/pytest/plugins/managermarks.py +0 -0
  404. {omlish-0.0.0.dev57 → omlish-0.0.0.dev59}/omlish/testing/pytest/plugins/pydevd.py +0 -0
  405. {omlish-0.0.0.dev57 → omlish-0.0.0.dev59}/omlish/testing/pytest/plugins/repeat.py +0 -0
  406. {omlish-0.0.0.dev57 → omlish-0.0.0.dev59}/omlish/testing/pytest/plugins/skips.py +0 -0
  407. {omlish-0.0.0.dev57 → omlish-0.0.0.dev59}/omlish/testing/pytest/plugins/spacing.py +0 -0
  408. {omlish-0.0.0.dev57 → omlish-0.0.0.dev59}/omlish/testing/pytest/plugins/switches.py +0 -0
  409. {omlish-0.0.0.dev57 → omlish-0.0.0.dev59}/omlish/testing/pytest/plugins/utils.py +0 -0
  410. {omlish-0.0.0.dev57 → omlish-0.0.0.dev59}/omlish/testing/pytest/skip.py +0 -0
  411. {omlish-0.0.0.dev57 → omlish-0.0.0.dev59}/omlish/testing/testing.py +0 -0
  412. {omlish-0.0.0.dev57 → omlish-0.0.0.dev59}/omlish/text/asdl.py +0 -0
  413. {omlish-0.0.0.dev57 → omlish-0.0.0.dev59}/omlish/text/delimit.py +0 -0
  414. {omlish-0.0.0.dev57 → omlish-0.0.0.dev59}/omlish/text/glyphsplit.py +0 -0
  415. {omlish-0.0.0.dev57 → omlish-0.0.0.dev59}/omlish/text/indent.py +0 -0
  416. {omlish-0.0.0.dev57 → omlish-0.0.0.dev59}/omlish/text/parts.py +0 -0
  417. {omlish-0.0.0.dev57 → omlish-0.0.0.dev59}/omlish.egg-info/dependency_links.txt +0 -0
  418. {omlish-0.0.0.dev57 → omlish-0.0.0.dev59}/omlish.egg-info/entry_points.txt +0 -0
  419. {omlish-0.0.0.dev57 → omlish-0.0.0.dev59}/omlish.egg-info/requires.txt +0 -0
  420. {omlish-0.0.0.dev57 → omlish-0.0.0.dev59}/omlish.egg-info/top_level.txt +0 -0
  421. {omlish-0.0.0.dev57 → omlish-0.0.0.dev59}/setup.cfg +0 -0
@@ -1,6 +1,6 @@
1
1
  Metadata-Version: 2.1
2
2
  Name: omlish
3
- Version: 0.0.0.dev57
3
+ Version: 0.0.0.dev59
4
4
  Summary: omlish
5
5
  Author: wrmsr
6
6
  License: BSD-3-Clause
@@ -1,5 +1,5 @@
1
- __version__ = '0.0.0.dev57'
2
- __revision__ = '6bc82bd3fa6f9a7e33d9f3a69e8d3e1855aa6417'
1
+ __version__ = '0.0.0.dev59'
2
+ __revision__ = 'ecad0399fc2d42f679cc344ed7e3c8fd556025ef'
3
3
 
4
4
 
5
5
  #
@@ -0,0 +1,305 @@
1
+ # type: ignore
2
+ # ruff: noqa
3
+ # flake8: noqa
4
+ #
5
+ # Copyright (c) 2012-2017 The ANTLR Project. All rights reserved.
6
+ # Use of this file is governed by the BSD 3-clause license that
7
+ # can be found in the LICENSE.txt file in the project root.
8
+
9
+ # This implementation of {@link TokenStream} loads tokens from a
10
+ # {@link TokenSource} on-demand, and places the tokens in a buffer to provide
11
+ # access to any previous token by index.
12
+ #
13
+ # <p>
14
+ # This token stream ignores the value of {@link Token#getChannel}. If your
15
+ # parser requires the token stream filter tokens to only those on a particular
16
+ # channel, such as {@link Token#DEFAULT_CHANNEL} or
17
+ # {@link Token#HIDDEN_CHANNEL}, use a filtering token stream such a
18
+ # {@link CommonTokenStream}.</p>
19
+ from io import StringIO
20
+ from .Token import Token
21
+ from .error.Errors import IllegalStateException
22
+
23
+ # need forward declaration
24
+ Lexer = None
25
+
26
+ # this is just to keep meaningful parameter types to Parser
27
+ class TokenStream(object):
28
+
29
+ pass
30
+
31
+
32
+ class BufferedTokenStream(TokenStream):
33
+ __slots__ = ('tokenSource', 'tokens', 'index', 'fetchedEOF')
34
+
35
+ def __init__(self, tokenSource:Lexer):
36
+ # The {@link TokenSource} from which tokens for this stream are fetched.
37
+ self.tokenSource = tokenSource
38
+
39
+ # A collection of all tokens fetched from the token source. The list is
40
+ # considered a complete view of the input once {@link #fetchedEOF} is set
41
+ # to {@code true}.
42
+ self.tokens = []
43
+
44
+ # The index into {@link #tokens} of the current token (next token to
45
+ # {@link #consume}). {@link #tokens}{@code [}{@link #p}{@code ]} should be
46
+ # {@link #LT LT(1)}.
47
+ #
48
+ # <p>This field is set to -1 when the stream is first constructed or when
49
+ # {@link #setTokenSource} is called, indicating that the first token has
50
+ # not yet been fetched from the token source. For additional information,
51
+ # see the documentation of {@link IntStream} for a description of
52
+ # Initializing Methods.</p>
53
+ self.index = -1
54
+
55
+ # Indicates whether the {@link Token#EOF} token has been fetched from
56
+ # {@link #tokenSource} and added to {@link #tokens}. This field improves
57
+ # performance for the following cases:
58
+ #
59
+ # <ul>
60
+ # <li>{@link #consume}: The lookahead check in {@link #consume} to prevent
61
+ # consuming the EOF symbol is optimized by checking the values of
62
+ # {@link #fetchedEOF} and {@link #p} instead of calling {@link #LA}.</li>
63
+ # <li>{@link #fetch}: The check to prevent adding multiple EOF symbols into
64
+ # {@link #tokens} is trivial with this field.</li>
65
+ # <ul>
66
+ self.fetchedEOF = False
67
+
68
+ def mark(self):
69
+ return 0
70
+
71
+ def release(self, marker:int):
72
+ # no resources to release
73
+ pass
74
+
75
+ def reset(self):
76
+ self.seek(0)
77
+
78
+ def seek(self, index:int):
79
+ self.lazyInit()
80
+ self.index = self.adjustSeekIndex(index)
81
+
82
+ def get(self, index:int):
83
+ self.lazyInit()
84
+ return self.tokens[index]
85
+
86
+ def consume(self):
87
+ skipEofCheck = False
88
+ if self.index >= 0:
89
+ if self.fetchedEOF:
90
+ # the last token in tokens is EOF. skip check if p indexes any
91
+ # fetched token except the last.
92
+ skipEofCheck = self.index < len(self.tokens) - 1
93
+ else:
94
+ # no EOF token in tokens. skip check if p indexes a fetched token.
95
+ skipEofCheck = self.index < len(self.tokens)
96
+ else:
97
+ # not yet initialized
98
+ skipEofCheck = False
99
+
100
+ if not skipEofCheck and self.LA(1) == Token.EOF:
101
+ raise IllegalStateException("cannot consume EOF")
102
+
103
+ if self.sync(self.index + 1):
104
+ self.index = self.adjustSeekIndex(self.index + 1)
105
+
106
+ # Make sure index {@code i} in tokens has a token.
107
+ #
108
+ # @return {@code true} if a token is located at index {@code i}, otherwise
109
+ # {@code false}.
110
+ # @see #get(int i)
111
+ #/
112
+ def sync(self, i:int):
113
+ n = i - len(self.tokens) + 1 # how many more elements we need?
114
+ if n > 0 :
115
+ fetched = self.fetch(n)
116
+ return fetched >= n
117
+ return True
118
+
119
+ # Add {@code n} elements to buffer.
120
+ #
121
+ # @return The actual number of elements added to the buffer.
122
+ #/
123
+ def fetch(self, n:int):
124
+ if self.fetchedEOF:
125
+ return 0
126
+ for i in range(0, n):
127
+ t = self.tokenSource.nextToken()
128
+ t.tokenIndex = len(self.tokens)
129
+ self.tokens.append(t)
130
+ if t.type==Token.EOF:
131
+ self.fetchedEOF = True
132
+ return i + 1
133
+ return n
134
+
135
+
136
+ # Get all tokens from start..stop inclusively#/
137
+ def getTokens(self, start:int, stop:int, types:set=None):
138
+ if start<0 or stop<0:
139
+ return None
140
+ self.lazyInit()
141
+ subset = []
142
+ if stop >= len(self.tokens):
143
+ stop = len(self.tokens)-1
144
+ for i in range(start, stop):
145
+ t = self.tokens[i]
146
+ if t.type==Token.EOF:
147
+ break
148
+ if types is None or t.type in types:
149
+ subset.append(t)
150
+ return subset
151
+
152
+ def LA(self, i:int):
153
+ return self.LT(i).type
154
+
155
+ def LB(self, k:int):
156
+ if (self.index-k) < 0:
157
+ return None
158
+ return self.tokens[self.index-k]
159
+
160
+ def LT(self, k:int):
161
+ self.lazyInit()
162
+ if k==0:
163
+ return None
164
+ if k < 0:
165
+ return self.LB(-k)
166
+ i = self.index + k - 1
167
+ self.sync(i)
168
+ if i >= len(self.tokens): # return EOF token
169
+ # EOF must be last token
170
+ return self.tokens[len(self.tokens)-1]
171
+ return self.tokens[i]
172
+
173
+ # Allowed derived classes to modify the behavior of operations which change
174
+ # the current stream position by adjusting the target token index of a seek
175
+ # operation. The default implementation simply returns {@code i}. If an
176
+ # exception is thrown in this method, the current stream index should not be
177
+ # changed.
178
+ #
179
+ # <p>For example, {@link CommonTokenStream} overrides this method to ensure that
180
+ # the seek target is always an on-channel token.</p>
181
+ #
182
+ # @param i The target token index.
183
+ # @return The adjusted target token index.
184
+
185
+ def adjustSeekIndex(self, i:int):
186
+ return i
187
+
188
+ def lazyInit(self):
189
+ if self.index == -1:
190
+ self.setup()
191
+
192
+ def setup(self):
193
+ self.sync(0)
194
+ self.index = self.adjustSeekIndex(0)
195
+
196
+ # Reset this token stream by setting its token source.#/
197
+ def setTokenSource(self, tokenSource:Lexer):
198
+ self.tokenSource = tokenSource
199
+ self.tokens = []
200
+ self.index = -1
201
+ self.fetchedEOF = False
202
+
203
+
204
+ # Given a starting index, return the index of the next token on channel.
205
+ # Return i if tokens[i] is on channel. Return the index of the EOF token
206
+ # if there are no tokens on channel between i and EOF.
207
+ #/
208
+ def nextTokenOnChannel(self, i:int, channel:int):
209
+ self.sync(i)
210
+ if i>=len(self.tokens):
211
+ return len(self.tokens) - 1
212
+ token = self.tokens[i]
213
+ while token.channel!=channel:
214
+ if token.type==Token.EOF:
215
+ return i
216
+ i += 1
217
+ self.sync(i)
218
+ token = self.tokens[i]
219
+ return i
220
+
221
+ # Given a starting index, return the index of the previous token on channel.
222
+ # Return i if tokens[i] is on channel. Return -1 if there are no tokens
223
+ # on channel between i and 0.
224
+ def previousTokenOnChannel(self, i:int, channel:int):
225
+ while i>=0 and self.tokens[i].channel!=channel:
226
+ i -= 1
227
+ return i
228
+
229
+ # Collect all tokens on specified channel to the right of
230
+ # the current token up until we see a token on DEFAULT_TOKEN_CHANNEL or
231
+ # EOF. If channel is -1, find any non default channel token.
232
+ def getHiddenTokensToRight(self, tokenIndex:int, channel:int=-1):
233
+ self.lazyInit()
234
+ if tokenIndex<0 or tokenIndex>=len(self.tokens):
235
+ raise Exception(str(tokenIndex) + " not in 0.." + str(len(self.tokens)-1))
236
+ from .Lexer import Lexer
237
+ nextOnChannel = self.nextTokenOnChannel(tokenIndex + 1, Lexer.DEFAULT_TOKEN_CHANNEL)
238
+ from_ = tokenIndex+1
239
+ # if none onchannel to right, nextOnChannel=-1 so set to = last token
240
+ to = (len(self.tokens)-1) if nextOnChannel==-1 else nextOnChannel
241
+ return self.filterForChannel(from_, to, channel)
242
+
243
+
244
+ # Collect all tokens on specified channel to the left of
245
+ # the current token up until we see a token on DEFAULT_TOKEN_CHANNEL.
246
+ # If channel is -1, find any non default channel token.
247
+ def getHiddenTokensToLeft(self, tokenIndex:int, channel:int=-1):
248
+ self.lazyInit()
249
+ if tokenIndex<0 or tokenIndex>=len(self.tokens):
250
+ raise Exception(str(tokenIndex) + " not in 0.." + str(len(self.tokens)-1))
251
+ from .Lexer import Lexer
252
+ prevOnChannel = self.previousTokenOnChannel(tokenIndex - 1, Lexer.DEFAULT_TOKEN_CHANNEL)
253
+ if prevOnChannel == tokenIndex - 1:
254
+ return None
255
+ # if none on channel to left, prevOnChannel=-1 then from=0
256
+ from_ = prevOnChannel+1
257
+ to = tokenIndex-1
258
+ return self.filterForChannel(from_, to, channel)
259
+
260
+
261
+ def filterForChannel(self, left:int, right:int, channel:int):
262
+ hidden = []
263
+ for i in range(left, right+1):
264
+ t = self.tokens[i]
265
+ if channel==-1:
266
+ from .Lexer import Lexer
267
+ if t.channel!= Lexer.DEFAULT_TOKEN_CHANNEL:
268
+ hidden.append(t)
269
+ elif t.channel==channel:
270
+ hidden.append(t)
271
+ if len(hidden)==0:
272
+ return None
273
+ return hidden
274
+
275
+ def getSourceName(self):
276
+ return self.tokenSource.getSourceName()
277
+
278
+ # Get the text of all tokens in this buffer.#/
279
+ def getText(self, start:int=None, stop:int=None):
280
+ self.lazyInit()
281
+ self.fill()
282
+ if isinstance(start, Token):
283
+ start = start.tokenIndex
284
+ elif start is None:
285
+ start = 0
286
+ if isinstance(stop, Token):
287
+ stop = stop.tokenIndex
288
+ elif stop is None or stop >= len(self.tokens):
289
+ stop = len(self.tokens) - 1
290
+ if start < 0 or stop < 0 or stop < start:
291
+ return ""
292
+ with StringIO() as buf:
293
+ for i in range(start, stop+1):
294
+ t = self.tokens[i]
295
+ if t.type==Token.EOF:
296
+ break
297
+ buf.write(t.text)
298
+ return buf.getvalue()
299
+
300
+
301
+ # Get all tokens from lexer until EOF#/
302
+ def fill(self):
303
+ self.lazyInit()
304
+ while self.fetch(1000)==1000:
305
+ pass
@@ -0,0 +1,64 @@
1
+ # type: ignore
2
+ # ruff: noqa
3
+ # flake8: noqa
4
+ #
5
+ # Copyright (c) 2012-2017 The ANTLR Project. All rights reserved.
6
+ # Use of this file is governed by the BSD 3-clause license that
7
+ # can be found in the LICENSE.txt file in the project root.
8
+ #
9
+
10
+ #
11
+ # This default implementation of {@link TokenFactory} creates
12
+ # {@link CommonToken} objects.
13
+ #
14
+ from .Token import CommonToken
15
+
16
+ class TokenFactory(object):
17
+
18
+ pass
19
+
20
+ class CommonTokenFactory(TokenFactory):
21
+ __slots__ = 'copyText'
22
+
23
+ #
24
+ # The default {@link CommonTokenFactory} instance.
25
+ #
26
+ # <p>
27
+ # This token factory does not explicitly copy token text when constructing
28
+ # tokens.</p>
29
+ #
30
+ DEFAULT = None
31
+
32
+ def __init__(self, copyText:bool=False):
33
+ # Indicates whether {@link CommonToken#setText} should be called after
34
+ # constructing tokens to explicitly set the text. This is useful for cases
35
+ # where the input stream might not be able to provide arbitrary substrings
36
+ # of text from the input after the lexer creates a token (e.g. the
37
+ # implementation of {@link CharStream#getText} in
38
+ # {@link UnbufferedCharStream} throws an
39
+ # {@link UnsupportedOperationException}). Explicitly setting the token text
40
+ # allows {@link Token#getText} to be called at any time regardless of the
41
+ # input stream implementation.
42
+ #
43
+ # <p>
44
+ # The default value is {@code false} to avoid the performance and memory
45
+ # overhead of copying text for every token unless explicitly requested.</p>
46
+ #
47
+ self.copyText = copyText
48
+
49
+ def create(self, source, type:int, text:str, channel:int, start:int, stop:int, line:int, column:int):
50
+ t = CommonToken(source, type, channel, start, stop)
51
+ t.line = line
52
+ t.column = column
53
+ if text is not None:
54
+ t.text = text
55
+ elif self.copyText and source[1] is not None:
56
+ t.text = source[1].getText(start,stop)
57
+ return t
58
+
59
+ def createThin(self, type:int, text:str):
60
+ t = CommonToken(type=type)
61
+ t.text = text
62
+ return t
63
+
64
+ CommonTokenFactory.DEFAULT = CommonTokenFactory()
@@ -0,0 +1,90 @@
1
+ # type: ignore
2
+ # ruff: noqa
3
+ # flake8: noqa
4
+ #
5
+ # Copyright (c) 2012-2017 The ANTLR Project. All rights reserved.
6
+ # Use of this file is governed by the BSD 3-clause license that
7
+ # can be found in the LICENSE.txt file in the project root.
8
+ #/
9
+
10
+ #
11
+ # This class extends {@link BufferedTokenStream} with functionality to filter
12
+ # token streams to tokens on a particular channel (tokens where
13
+ # {@link Token#getChannel} returns a particular value).
14
+ #
15
+ # <p>
16
+ # This token stream provides access to all tokens by index or when calling
17
+ # methods like {@link #getText}. The channel filtering is only used for code
18
+ # accessing tokens via the lookahead methods {@link #LA}, {@link #LT}, and
19
+ # {@link #LB}.</p>
20
+ #
21
+ # <p>
22
+ # By default, tokens are placed on the default channel
23
+ # ({@link Token#DEFAULT_CHANNEL}), but may be reassigned by using the
24
+ # {@code ->channel(HIDDEN)} lexer command, or by using an embedded action to
25
+ # call {@link Lexer#setChannel}.
26
+ # </p>
27
+ #
28
+ # <p>
29
+ # Note: lexer rules which use the {@code ->skip} lexer command or call
30
+ # {@link Lexer#skip} do not produce tokens at all, so input text matched by
31
+ # such a rule will not be available as part of the token stream, regardless of
32
+ # channel.</p>
33
+ #/
34
+
35
+ from .BufferedTokenStream import BufferedTokenStream
36
+ from .Lexer import Lexer
37
+ from .Token import Token
38
+
39
+
40
+ class CommonTokenStream(BufferedTokenStream):
41
+ __slots__ = 'channel'
42
+
43
+ def __init__(self, lexer:Lexer, channel:int=Token.DEFAULT_CHANNEL):
44
+ super().__init__(lexer)
45
+ self.channel = channel
46
+
47
+ def adjustSeekIndex(self, i:int):
48
+ return self.nextTokenOnChannel(i, self.channel)
49
+
50
+ def LB(self, k:int):
51
+ if k==0 or (self.index-k)<0:
52
+ return None
53
+ i = self.index
54
+ n = 1
55
+ # find k good tokens looking backwards
56
+ while n <= k:
57
+ # skip off-channel tokens
58
+ i = self.previousTokenOnChannel(i - 1, self.channel)
59
+ n += 1
60
+ if i < 0:
61
+ return None
62
+ return self.tokens[i]
63
+
64
+ def LT(self, k:int):
65
+ self.lazyInit()
66
+ if k == 0:
67
+ return None
68
+ if k < 0:
69
+ return self.LB(-k)
70
+ i = self.index
71
+ n = 1 # we know tokens[pos] is a good one
72
+ # find k good tokens
73
+ while n < k:
74
+ # skip off-channel tokens, but make sure to not look past EOF
75
+ if self.sync(i + 1):
76
+ i = self.nextTokenOnChannel(i + 1, self.channel)
77
+ n += 1
78
+ return self.tokens[i]
79
+
80
+ # Count EOF just once.#/
81
+ def getNumberOfOnChannelTokens(self):
82
+ n = 0
83
+ self.fill()
84
+ for i in range(0, len(self.tokens)):
85
+ t = self.tokens[i]
86
+ if t.channel==self.channel:
87
+ n += 1
88
+ if t.type==Token.EOF:
89
+ break
90
+ return n
@@ -0,0 +1,30 @@
1
+ # type: ignore
2
+ # ruff: noqa
3
+ # flake8: noqa
4
+ #
5
+ # Copyright (c) 2012-2017 The ANTLR Project. All rights reserved.
6
+ # Use of this file is governed by the BSD 3-clause license that
7
+ # can be found in the LICENSE.txt file in the project root.
8
+ #
9
+
10
+ #
11
+ # This is an InputStream that is loaded from a file all at once
12
+ # when you construct the object.
13
+ #
14
+
15
+ import codecs
16
+ from .InputStream import InputStream
17
+
18
+
19
+ class FileStream(InputStream):
20
+ __slots__ = 'fileName'
21
+
22
+ def __init__(self, fileName:str, encoding:str='ascii', errors:str='strict'):
23
+ super().__init__(self.readDataFrom(fileName, encoding, errors))
24
+ self.fileName = fileName
25
+
26
+ def readDataFrom(self, fileName:str, encoding:str, errors:str='strict'):
27
+ # read binary to avoid line ending conversion
28
+ with open(fileName, 'rb') as file:
29
+ bytes = file.read()
30
+ return codecs.decode(bytes, encoding, errors)
@@ -0,0 +1,90 @@
1
+ # type: ignore
2
+ # ruff: noqa
3
+ # flake8: noqa
4
+ #
5
+ # Copyright (c) 2012-2017 The ANTLR Project. All rights reserved.
6
+ # Use of this file is governed by the BSD 3-clause license that
7
+ # can be found in the LICENSE.txt file in the project root.
8
+ #
9
+
10
+
11
+ #
12
+ # Vacuum all input from a string and then treat it like a buffer.
13
+ #
14
+ from .Token import Token
15
+
16
+
17
+ class InputStream (object):
18
+ __slots__ = ('name', 'strdata', '_index', 'data', '_size')
19
+
20
+ def __init__(self, data: str):
21
+ self.name = "<empty>"
22
+ self.strdata = data
23
+ self._loadString()
24
+
25
+ def _loadString(self):
26
+ self._index = 0
27
+ self.data = [ord(c) for c in self.strdata]
28
+ self._size = len(self.data)
29
+
30
+ @property
31
+ def index(self):
32
+ return self._index
33
+
34
+ @property
35
+ def size(self):
36
+ return self._size
37
+
38
+ # Reset the stream so that it's in the same state it was
39
+ # when the object was created *except* the data array is not
40
+ # touched.
41
+ #
42
+ def reset(self):
43
+ self._index = 0
44
+
45
+ def consume(self):
46
+ if self._index >= self._size:
47
+ assert self.LA(1) == Token.EOF
48
+ raise Exception("cannot consume EOF")
49
+ self._index += 1
50
+
51
+ def LA(self, offset: int):
52
+ if offset==0:
53
+ return 0 # undefined
54
+ if offset<0:
55
+ offset += 1 # e.g., translate LA(-1) to use offset=0
56
+ pos = self._index + offset - 1
57
+ if pos < 0 or pos >= self._size: # invalid
58
+ return Token.EOF
59
+ return self.data[pos]
60
+
61
+ def LT(self, offset: int):
62
+ return self.LA(offset)
63
+
64
+ # mark/release do nothing; we have entire buffer
65
+ def mark(self):
66
+ return -1
67
+
68
+ def release(self, marker: int):
69
+ pass
70
+
71
+ # consume() ahead until p==_index; can't just set p=_index as we must
72
+ # update line and column. If we seek backwards, just set p
73
+ #
74
+ def seek(self, _index: int):
75
+ if _index<=self._index:
76
+ self._index = _index # just jump; don't update stream state (line, ...)
77
+ return
78
+ # seek forward
79
+ self._index = min(_index, self._size)
80
+
81
+ def getText(self, start :int, stop: int):
82
+ if stop >= self._size:
83
+ stop = self._size-1
84
+ if start >= self._size:
85
+ return ""
86
+ else:
87
+ return self.strdata[start:stop+1]
88
+
89
+ def __str__(self):
90
+ return self.strdata