omlish 0.0.0.dev310__py3-none-any.whl → 0.0.0.dev312__py3-none-any.whl

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (97) hide show
  1. omlish/__about__.py +2 -2
  2. omlish/dataclasses/api/classes/metadata.py +2 -1
  3. omlish/formats/json5/_antlr/Json5Lexer.py +1 -1
  4. omlish/formats/json5/_antlr/Json5Listener.py +1 -1
  5. omlish/formats/json5/_antlr/Json5Parser.py +1 -1
  6. omlish/formats/json5/_antlr/Json5Visitor.py +1 -1
  7. omlish/formats/json5/parsing.py +1 -1
  8. omlish/inject/__init__.py +1 -0
  9. omlish/inject/utils.py +11 -0
  10. omlish/lang/__init__.py +1 -0
  11. omlish/lang/iterables.py +15 -2
  12. omlish/libc.py +8 -5
  13. omlish/specs/proto/_antlr/Protobuf3Lexer.py +1 -1
  14. omlish/specs/proto/_antlr/Protobuf3Listener.py +1 -1
  15. omlish/specs/proto/_antlr/Protobuf3Parser.py +1 -1
  16. omlish/specs/proto/_antlr/Protobuf3Visitor.py +1 -1
  17. omlish/specs/proto/parsing.py +2 -2
  18. omlish/sql/parsing/_antlr/MinisqlLexer.py +1 -1
  19. omlish/sql/parsing/_antlr/MinisqlListener.py +1 -1
  20. omlish/sql/parsing/_antlr/MinisqlParser.py +1 -1
  21. omlish/sql/parsing/_antlr/MinisqlVisitor.py +1 -1
  22. omlish/sql/parsing/parsing.py +3 -3
  23. omlish/term/coloring.py +108 -0
  24. omlish/{antlr → text/antlr}/delimit.py +1 -1
  25. omlish/{antlr → text/antlr}/dot.py +1 -1
  26. omlish/{antlr → text/antlr}/parsing.py +1 -1
  27. {omlish-0.0.0.dev310.dist-info → omlish-0.0.0.dev312.dist-info}/METADATA +1 -1
  28. {omlish-0.0.0.dev310.dist-info → omlish-0.0.0.dev312.dist-info}/RECORD +97 -96
  29. /omlish/{antlr → text/antlr}/__init__.py +0 -0
  30. /omlish/{antlr → text/antlr}/_runtime/BufferedTokenStream.py +0 -0
  31. /omlish/{antlr → text/antlr}/_runtime/CommonTokenFactory.py +0 -0
  32. /omlish/{antlr → text/antlr}/_runtime/CommonTokenStream.py +0 -0
  33. /omlish/{antlr → text/antlr}/_runtime/FileStream.py +0 -0
  34. /omlish/{antlr → text/antlr}/_runtime/InputStream.py +0 -0
  35. /omlish/{antlr → text/antlr}/_runtime/IntervalSet.py +0 -0
  36. /omlish/{antlr → text/antlr}/_runtime/LICENSE.txt +0 -0
  37. /omlish/{antlr → text/antlr}/_runtime/LL1Analyzer.py +0 -0
  38. /omlish/{antlr → text/antlr}/_runtime/Lexer.py +0 -0
  39. /omlish/{antlr → text/antlr}/_runtime/ListTokenSource.py +0 -0
  40. /omlish/{antlr → text/antlr}/_runtime/Parser.py +0 -0
  41. /omlish/{antlr → text/antlr}/_runtime/ParserInterpreter.py +0 -0
  42. /omlish/{antlr → text/antlr}/_runtime/ParserRuleContext.py +0 -0
  43. /omlish/{antlr → text/antlr}/_runtime/PredictionContext.py +0 -0
  44. /omlish/{antlr → text/antlr}/_runtime/Recognizer.py +0 -0
  45. /omlish/{antlr → text/antlr}/_runtime/RuleContext.py +0 -0
  46. /omlish/{antlr → text/antlr}/_runtime/StdinStream.py +0 -0
  47. /omlish/{antlr → text/antlr}/_runtime/Token.py +0 -0
  48. /omlish/{antlr → text/antlr}/_runtime/TokenStreamRewriter.py +0 -0
  49. /omlish/{antlr → text/antlr}/_runtime/Utils.py +0 -0
  50. /omlish/{antlr → text/antlr}/_runtime/__init__.py +0 -0
  51. /omlish/{antlr → text/antlr}/_runtime/_all.py +0 -0
  52. /omlish/{antlr → text/antlr}/_runtime/_pygrun.py +0 -0
  53. /omlish/{antlr → text/antlr}/_runtime/atn/ATN.py +0 -0
  54. /omlish/{antlr → text/antlr}/_runtime/atn/ATNConfig.py +0 -0
  55. /omlish/{antlr → text/antlr}/_runtime/atn/ATNConfigSet.py +0 -0
  56. /omlish/{antlr → text/antlr}/_runtime/atn/ATNDeserializationOptions.py +0 -0
  57. /omlish/{antlr → text/antlr}/_runtime/atn/ATNDeserializer.py +0 -0
  58. /omlish/{antlr → text/antlr}/_runtime/atn/ATNSimulator.py +0 -0
  59. /omlish/{antlr → text/antlr}/_runtime/atn/ATNState.py +0 -0
  60. /omlish/{antlr → text/antlr}/_runtime/atn/ATNType.py +0 -0
  61. /omlish/{antlr → text/antlr}/_runtime/atn/LexerATNSimulator.py +0 -0
  62. /omlish/{antlr → text/antlr}/_runtime/atn/LexerAction.py +0 -0
  63. /omlish/{antlr → text/antlr}/_runtime/atn/LexerActionExecutor.py +0 -0
  64. /omlish/{antlr → text/antlr}/_runtime/atn/ParserATNSimulator.py +0 -0
  65. /omlish/{antlr → text/antlr}/_runtime/atn/PredictionMode.py +0 -0
  66. /omlish/{antlr → text/antlr}/_runtime/atn/SemanticContext.py +0 -0
  67. /omlish/{antlr → text/antlr}/_runtime/atn/Transition.py +0 -0
  68. /omlish/{antlr → text/antlr}/_runtime/atn/__init__.py +0 -0
  69. /omlish/{antlr → text/antlr}/_runtime/dfa/DFA.py +0 -0
  70. /omlish/{antlr → text/antlr}/_runtime/dfa/DFASerializer.py +0 -0
  71. /omlish/{antlr → text/antlr}/_runtime/dfa/DFAState.py +0 -0
  72. /omlish/{antlr → text/antlr}/_runtime/dfa/__init__.py +0 -0
  73. /omlish/{antlr → text/antlr}/_runtime/error/DiagnosticErrorListener.py +0 -0
  74. /omlish/{antlr → text/antlr}/_runtime/error/ErrorListener.py +0 -0
  75. /omlish/{antlr → text/antlr}/_runtime/error/ErrorStrategy.py +0 -0
  76. /omlish/{antlr → text/antlr}/_runtime/error/Errors.py +0 -0
  77. /omlish/{antlr → text/antlr}/_runtime/error/__init__.py +0 -0
  78. /omlish/{antlr → text/antlr}/_runtime/tree/Chunk.py +0 -0
  79. /omlish/{antlr → text/antlr}/_runtime/tree/ParseTreeMatch.py +0 -0
  80. /omlish/{antlr → text/antlr}/_runtime/tree/ParseTreePattern.py +0 -0
  81. /omlish/{antlr → text/antlr}/_runtime/tree/ParseTreePatternMatcher.py +0 -0
  82. /omlish/{antlr → text/antlr}/_runtime/tree/RuleTagToken.py +0 -0
  83. /omlish/{antlr → text/antlr}/_runtime/tree/TokenTagToken.py +0 -0
  84. /omlish/{antlr → text/antlr}/_runtime/tree/Tree.py +0 -0
  85. /omlish/{antlr → text/antlr}/_runtime/tree/Trees.py +0 -0
  86. /omlish/{antlr → text/antlr}/_runtime/tree/__init__.py +0 -0
  87. /omlish/{antlr → text/antlr}/_runtime/xpath/XPath.py +0 -0
  88. /omlish/{antlr → text/antlr}/_runtime/xpath/XPathLexer.py +0 -0
  89. /omlish/{antlr → text/antlr}/_runtime/xpath/__init__.py +0 -0
  90. /omlish/{antlr → text/antlr}/errors.py +0 -0
  91. /omlish/{antlr → text/antlr}/input.py +0 -0
  92. /omlish/{antlr → text/antlr}/runtime.py +0 -0
  93. /omlish/{antlr → text/antlr}/utils.py +0 -0
  94. {omlish-0.0.0.dev310.dist-info → omlish-0.0.0.dev312.dist-info}/WHEEL +0 -0
  95. {omlish-0.0.0.dev310.dist-info → omlish-0.0.0.dev312.dist-info}/entry_points.txt +0 -0
  96. {omlish-0.0.0.dev310.dist-info → omlish-0.0.0.dev312.dist-info}/licenses/LICENSE +0 -0
  97. {omlish-0.0.0.dev310.dist-info → omlish-0.0.0.dev312.dist-info}/top_level.txt +0 -0
omlish/__about__.py CHANGED
@@ -1,5 +1,5 @@
1
- __version__ = '0.0.0.dev310'
2
- __revision__ = '7f687bb413cb71d3946d96c270694e90141e72e3'
1
+ __version__ = '0.0.0.dev312'
2
+ __revision__ = '4714bf354df85d31b81de62365efd2756b378965'
3
3
 
4
4
 
5
5
  #
@@ -18,7 +18,8 @@ METADATA_ATTR = '__dataclass_metadata__'
18
18
 
19
19
  def _get_cls_metadata_dct(cls: type) -> dict:
20
20
  check.isinstance(cls, type)
21
- check.arg(not is_immediate_dataclass(cls))
21
+ if is_immediate_dataclass(cls):
22
+ raise TypeError(f'Cannot alter dataclass metadata on already processed class {cls!r}')
22
23
  try:
23
24
  return cls.__dict__[METADATA_ATTR]
24
25
  except KeyError:
@@ -2,7 +2,7 @@
2
2
  # ruff: noqa
3
3
  # flake8: noqa
4
4
  # Generated from Json5.g4 by ANTLR 4.13.2
5
- from omlish.antlr._runtime._all import *
5
+ from ....text.antlr._runtime._all import *
6
6
  from io import StringIO
7
7
  import sys
8
8
  if sys.version_info[1] > 5:
@@ -2,7 +2,7 @@
2
2
  # ruff: noqa
3
3
  # flake8: noqa
4
4
  # Generated from Json5.g4 by ANTLR 4.13.2
5
- from omlish.antlr._runtime._all import *
5
+ from ....text.antlr._runtime._all import *
6
6
  if "." in __name__:
7
7
  from .Json5Parser import Json5Parser
8
8
  else:
@@ -3,7 +3,7 @@
3
3
  # flake8: noqa
4
4
  # Generated from Json5.g4 by ANTLR 4.13.2
5
5
  # encoding: utf-8
6
- from omlish.antlr._runtime._all import *
6
+ from ....text.antlr._runtime._all import *
7
7
  from io import StringIO
8
8
  import sys
9
9
  if sys.version_info[1] > 5:
@@ -2,7 +2,7 @@
2
2
  # ruff: noqa
3
3
  # flake8: noqa
4
4
  # Generated from Json5.g4 by ANTLR 4.13.2
5
- from omlish.antlr._runtime._all import *
5
+ from ....text.antlr._runtime._all import *
6
6
  if "." in __name__:
7
7
  from .Json5Parser import Json5Parser
8
8
  else:
@@ -1,7 +1,7 @@
1
1
  # ruff: noqa: N802 N803
2
2
  import typing as ta
3
3
 
4
- from ... import antlr
4
+ from ...text import antlr
5
5
  from ._antlr.Json5Lexer import Json5Lexer # type: ignore
6
6
  from ._antlr.Json5Parser import Json5Parser # type: ignore
7
7
  from ._antlr.Json5Visitor import Json5Visitor # type: ignore
omlish/inject/__init__.py CHANGED
@@ -120,4 +120,5 @@ from .types import ( # noqa
120
120
 
121
121
  from .utils import ( # noqa
122
122
  ConstFn,
123
+ Id,
123
124
  )
omlish/inject/utils.py CHANGED
@@ -19,3 +19,14 @@ class ConstFn(HasOriginsImpl, lang.Final, ta.Generic[T]):
19
19
 
20
20
  def __call__(self) -> T:
21
21
  return self.v
22
+
23
+
24
+ ##
25
+
26
+
27
+ @dc.dataclass(frozen=True)
28
+ @dc.extra_class_params(terse_repr=True)
29
+ class Id:
30
+ """A utility dataclass intended to be used as a key tag for disambiguation."""
31
+
32
+ v: int
omlish/lang/__init__.py CHANGED
@@ -209,6 +209,7 @@ from .imports import ( # noqa
209
209
 
210
210
  from .iterables import ( # noqa
211
211
  asrange,
212
+ common_prefix_len,
212
213
  exhaust,
213
214
  flatmap,
214
215
  flatten,
omlish/lang/iterables.py CHANGED
@@ -40,6 +40,17 @@ def interleave(vs: ta.Iterable[T], d: T) -> ta.Iterable[T]:
40
40
  yield v
41
41
 
42
42
 
43
+ def renumerate(it: ta.Iterable[T]) -> ta.Iterable[tuple[T, int]]:
44
+ return ((e, i) for i, e in enumerate(it))
45
+
46
+
47
+ def common_prefix_len(*its: ta.Iterable) -> int:
48
+ return ilen(itertools.takewhile(lambda t: all(e == t[0] for e in t[1:]), zip(*its)))
49
+
50
+
51
+ ##
52
+
53
+
43
54
  @ta.overload
44
55
  def readiter(f: ta.TextIO, sz: int) -> ta.Iterator[str]:
45
56
  ...
@@ -59,6 +70,9 @@ def readiter(f, sz):
59
70
  return iter(functools.partial(f.read, sz), None)
60
71
 
61
72
 
73
+ ##
74
+
75
+
62
76
  @dc.dataclass(frozen=True)
63
77
  class IterGen(ta.Generic[T]):
64
78
  fn: ta.Callable[[], ta.Iterable[T]]
@@ -70,8 +84,7 @@ class IterGen(ta.Generic[T]):
70
84
  itergen = IterGen
71
85
 
72
86
 
73
- def renumerate(it: ta.Iterable[T]) -> ta.Iterable[tuple[T, int]]:
74
- return ((e, i) for i, e in enumerate(it))
87
+ ##
75
88
 
76
89
 
77
90
  flatten = itertools.chain.from_iterable
omlish/libc.py CHANGED
@@ -8,6 +8,9 @@ import sys
8
8
  import typing as ta
9
9
 
10
10
 
11
+ ##
12
+
13
+
11
14
  LINUX_PLATFORMS = ('linux',)
12
15
  DARWIN_PLATFORMS = ('darwin',)
13
16
 
@@ -38,14 +41,14 @@ def lasterr() -> tuple[int, str]:
38
41
 
39
42
 
40
43
  # int raise(int sig);
41
- libc._raise = libc['raise'] # type: ignore # noqa
42
- libc._raise.restype = ct.c_int # noqa
43
- libc._raise.argtypes = [ct.c_int] # noqa
44
- _raise = libc._raise # noqa
44
+ libc.raise_ = libc['raise'] # type: ignore # noqa
45
+ libc.raise_.restype = ct.c_int # noqa
46
+ libc.raise_.argtypes = [ct.c_int] # noqa
47
+ raise_ = libc.raise_ # noqa
45
48
 
46
49
 
47
50
  def sigtrap() -> None:
48
- libc._raise(signal.SIGTRAP) # noqa
51
+ libc.raise_(signal.SIGTRAP) # noqa
49
52
 
50
53
 
51
54
  ##
@@ -2,7 +2,7 @@
2
2
  # ruff: noqa
3
3
  # flake8: noqa
4
4
  # Generated from Protobuf3.g4 by ANTLR 4.13.2
5
- from omlish.antlr._runtime._all import *
5
+ from ....text.antlr._runtime._all import *
6
6
  from io import StringIO
7
7
  import sys
8
8
  if sys.version_info[1] > 5:
@@ -2,7 +2,7 @@
2
2
  # ruff: noqa
3
3
  # flake8: noqa
4
4
  # Generated from Protobuf3.g4 by ANTLR 4.13.2
5
- from omlish.antlr._runtime._all import *
5
+ from ....text.antlr._runtime._all import *
6
6
  if "." in __name__:
7
7
  from .Protobuf3Parser import Protobuf3Parser
8
8
  else:
@@ -3,7 +3,7 @@
3
3
  # flake8: noqa
4
4
  # Generated from Protobuf3.g4 by ANTLR 4.13.2
5
5
  # encoding: utf-8
6
- from omlish.antlr._runtime._all import *
6
+ from ....text.antlr._runtime._all import *
7
7
  from io import StringIO
8
8
  import sys
9
9
  if sys.version_info[1] > 5:
@@ -2,7 +2,7 @@
2
2
  # ruff: noqa
3
3
  # flake8: noqa
4
4
  # Generated from Protobuf3.g4 by ANTLR 4.13.2
5
- from omlish.antlr._runtime._all import *
5
+ from ....text.antlr._runtime._all import *
6
6
  if "." in __name__:
7
7
  from .Protobuf3Parser import Protobuf3Parser
8
8
  else:
@@ -2,8 +2,8 @@
2
2
  import typing as ta
3
3
 
4
4
  from ... import check
5
- from ...antlr import runtime as antlr4
6
- from ...antlr.errors import SilentRaisingErrorListener
5
+ from ...text.antlr import runtime as antlr4
6
+ from ...text.antlr.errors import SilentRaisingErrorListener
7
7
  from . import nodes as no
8
8
  from ._antlr.Protobuf3Lexer import Protobuf3Lexer # type: ignore
9
9
  from ._antlr.Protobuf3Parser import Protobuf3Parser # type: ignore
@@ -2,7 +2,7 @@
2
2
  # ruff: noqa
3
3
  # flake8: noqa
4
4
  # Generated from Minisql.g4 by ANTLR 4.13.2
5
- from omlish.antlr._runtime._all import *
5
+ from ....text.antlr._runtime._all import *
6
6
  from io import StringIO
7
7
  import sys
8
8
  if sys.version_info[1] > 5:
@@ -2,7 +2,7 @@
2
2
  # ruff: noqa
3
3
  # flake8: noqa
4
4
  # Generated from Minisql.g4 by ANTLR 4.13.2
5
- from omlish.antlr._runtime._all import *
5
+ from ....text.antlr._runtime._all import *
6
6
  if "." in __name__:
7
7
  from .MinisqlParser import MinisqlParser
8
8
  else:
@@ -3,7 +3,7 @@
3
3
  # flake8: noqa
4
4
  # Generated from Minisql.g4 by ANTLR 4.13.2
5
5
  # encoding: utf-8
6
- from omlish.antlr._runtime._all import *
6
+ from ....text.antlr._runtime._all import *
7
7
  from io import StringIO
8
8
  import sys
9
9
  if sys.version_info[1] > 5:
@@ -2,7 +2,7 @@
2
2
  # ruff: noqa
3
3
  # flake8: noqa
4
4
  # Generated from Minisql.g4 by ANTLR 4.13.2
5
- from omlish.antlr._runtime._all import *
5
+ from ....text.antlr._runtime._all import *
6
6
  if "." in __name__:
7
7
  from .MinisqlParser import MinisqlParser
8
8
  else:
@@ -2,9 +2,9 @@
2
2
  import typing as ta
3
3
 
4
4
  from ... import check
5
- from ...antlr import runtime as antlr4
6
- from ...antlr.delimit import DelimitingLexer
7
- from ...antlr.errors import SilentRaisingErrorListener
5
+ from ...text.antlr import runtime as antlr4
6
+ from ...text.antlr.delimit import DelimitingLexer
7
+ from ...text.antlr.errors import SilentRaisingErrorListener
8
8
  from .. import queries as no
9
9
  from ._antlr.MinisqlLexer import MinisqlLexer # type: ignore
10
10
  from ._antlr.MinisqlParser import MinisqlParser # type: ignore
@@ -0,0 +1,108 @@
1
+ # @omlish-lite
2
+ import abc
3
+ import enum
4
+ import os
5
+ import typing as ta
6
+
7
+
8
+ ##
9
+
10
+
11
+ class TermColor(enum.Enum):
12
+ RED = enum.auto()
13
+ GREEN = enum.auto()
14
+ YELLOW = enum.auto()
15
+ BLUE = enum.auto()
16
+
17
+
18
+ class TermColoring(abc.ABC):
19
+ @abc.abstractmethod
20
+ def color(self, c: TermColor, s: str) -> str:
21
+ raise NotImplementedError
22
+
23
+ def red(self, s: str, **kwargs: ta.Any) -> str:
24
+ return self.color(TermColor.RED, s, **kwargs)
25
+
26
+ def green(self, s: str, **kwargs: ta.Any) -> str:
27
+ return self.color(TermColor.GREEN, s, **kwargs)
28
+
29
+ def yellow(self, s: str, **kwargs: ta.Any) -> str:
30
+ return self.color(TermColor.YELLOW, s, **kwargs)
31
+
32
+ def blue(self, s: str, **kwargs: ta.Any) -> str:
33
+ return self.color(TermColor.BLUE, s, **kwargs)
34
+
35
+
36
+ class NopTermColoring(TermColoring):
37
+ def color(self, c: TermColor, s: str) -> str:
38
+ return s
39
+
40
+
41
+ class AnsiTermColoring(TermColoring):
42
+ _COLOR_CODES: ta.ClassVar[ta.Mapping[TermColor, str]] = {
43
+ TermColor.RED: '\033[31m',
44
+ TermColor.GREEN: '\033[32m',
45
+ TermColor.YELLOW: '\033[33m',
46
+ TermColor.BLUE: '\033[34m',
47
+ }
48
+
49
+ _RESET_CODE = '\033[0m'
50
+
51
+ def color(self, c: TermColor, s: str) -> str:
52
+ return f'{self._COLOR_CODES[c]}{s}{self._RESET_CODE}'
53
+
54
+
55
+ def term_coloring(
56
+ *,
57
+ forced: bool = False,
58
+ disabled: bool = False,
59
+ file: ta.Any = None,
60
+ ) -> TermColoring:
61
+ if not forced:
62
+ if not disabled:
63
+ if file is not None:
64
+ if hasattr(file, 'isatty'):
65
+ if not file.isatty():
66
+ disabled = True
67
+ elif isinstance(file, int):
68
+ if not os.isatty(file):
69
+ disabled = True
70
+ else:
71
+ raise TypeError(file)
72
+
73
+ if disabled:
74
+ return NopTermColoring()
75
+
76
+ return AnsiTermColoring()
77
+
78
+
79
+ ##
80
+
81
+
82
+ if __name__ == '__main__':
83
+ def _main() -> None:
84
+ import argparse
85
+
86
+ parser = argparse.ArgumentParser()
87
+ parser.add_argument('--force', action='store_true')
88
+ parser.add_argument('--disable', action='store_true')
89
+ args = parser.parse_args()
90
+
91
+ import sys
92
+
93
+ tc = term_coloring(
94
+ forced=args.force,
95
+ disabled=args.disable,
96
+ file=sys.stdout,
97
+ )
98
+
99
+ print('\n'.join([
100
+ 'normal',
101
+ tc.red('red'),
102
+ tc.green('green'),
103
+ tc.yellow('yellow'),
104
+ tc.blue('blue'),
105
+ 'normal',
106
+ ]))
107
+
108
+ _main()
@@ -2,7 +2,7 @@
2
2
  import io
3
3
  import typing as ta
4
4
 
5
- from .. import check
5
+ from ... import check
6
6
  from . import runtime as antlr4
7
7
 
8
8
 
@@ -1,6 +1,6 @@
1
1
  import typing as ta
2
2
 
3
- from ..graphs import dot
3
+ from ...graphs import dot
4
4
  from . import runtime as antlr4
5
5
  from .utils import yield_contexts
6
6
 
@@ -1,7 +1,7 @@
1
1
  # ruff: noqa: N802 N803
2
2
  import typing as ta
3
3
 
4
- from .. import check
4
+ from ... import check
5
5
  from . import runtime as antlr4
6
6
  from .errors import SilentRaisingErrorListener
7
7
 
@@ -1,6 +1,6 @@
1
1
  Metadata-Version: 2.4
2
2
  Name: omlish
3
- Version: 0.0.0.dev310
3
+ Version: 0.0.0.dev312
4
4
  Summary: omlish
5
5
  Author: wrmsr
6
6
  License: BSD-3-Clause
@@ -1,5 +1,5 @@
1
1
  omlish/.manifests.json,sha256=orgsRvtpHu8tdhaCvlP9v3P495OJopYYiHKjK68WtWg,8587
2
- omlish/__about__.py,sha256=ntivrO3CNCin3JSqT6Sg7-V7nFZmB_9KZbxtFU9MJwk,3478
2
+ omlish/__about__.py,sha256=Wci7lcmbJZmHeFKfYQdR7X0JrhlD8KTVGvC9WlW_j2k,3478
3
3
  omlish/__init__.py,sha256=SsyiITTuK0v74XpKV8dqNaCmjOlan1JZKrHQv5rWKPA,253
4
4
  omlish/c3.py,sha256=rer-TPOFDU6fYq_AWio_AmA-ckZ8JDY5shIzQ_yXfzA,8414
5
5
  omlish/cached.py,sha256=MLap_p0rdGoDIMVhXVHm1tsbcWobJF0OanoodV03Ju8,542
@@ -7,7 +7,7 @@ omlish/check.py,sha256=VcvqYk3lbxUx3zmbln9tCQsyahTXck0Mg4nIPy-DdOc,2383
7
7
  omlish/datetimes.py,sha256=iFqCki3MKmBq_ZX-03cW4KE6AsR_pUJCWML2ifBLtdU,2157
8
8
  omlish/defs.py,sha256=-4UuZoJUUNO_bZ6eSSdhR4CK4NKN2Wwr1FfUvfTF--8,4918
9
9
  omlish/dynamic.py,sha256=zy0oO70_Vlh5dW8Nwav_O9bhIzQ6L16UgSuKR6y43VU,6526
10
- omlish/libc.py,sha256=8K4c66YV1ziJerl5poAAYCmsV-VSsHkT3EHhPW04ufg,15639
10
+ omlish/libc.py,sha256=mNY2FWZ2BjSucOx5TEW8IP_B5n84tVZWuVPL3Z3sUH8,15644
11
11
  omlish/metadata.py,sha256=-noAyXT-7wV0SXul6wV1fPe7EYKxluuuYh1VmM39IPk,3593
12
12
  omlish/runmodule.py,sha256=PWvuAaJ9wQQn6bx9ftEL3_d04DyotNn8dR_twm2pgw0,700
13
13
  omlish/shlex.py,sha256=rlbgHWxjwpkCBRphOPqSIN_KD6qWJMLldNJUILulKT0,253
@@ -17,74 +17,6 @@ omlish/algorithm/all.py,sha256=FudUHwoaRLNNmqYM3jhP2Yd2BpmYhNBRPaVZzARMoSc,194
17
17
  omlish/algorithm/distribute.py,sha256=kO60F7HtMF3j-IxuhJdtsfgIR1Vpf1okQfacb4eNukQ,1533
18
18
  omlish/algorithm/toposort.py,sha256=cE-zouEVhX05jwGl86JhxB2qgqw5DfQRqpZFR89j7NY,888
19
19
  omlish/algorithm/unify.py,sha256=xUvisdtU8L9uMWt--_osYksJjVBlwxLOLvtdDmFGDDo,833
20
- omlish/antlr/__init__.py,sha256=88bMl_28cfSKslgOkMGYXqALgsHz3KC4LFvAVtzj7k8,89
21
- omlish/antlr/delimit.py,sha256=swvxJcECG2e5I3IK62NNbJ7hpLYABRAZUwd2-G9BLtE,3471
22
- omlish/antlr/dot.py,sha256=LFVo3YYPoLMHMEEUsQepl9zXL1yukNJbqv6Q9E_04qw,961
23
- omlish/antlr/errors.py,sha256=4J0WuVKbeFoZEP0wePCmn-e7mI1VMwWoE3wkeQO-4nk,313
24
- omlish/antlr/input.py,sha256=baeO279AIxR50pymya0eabtnc2A0bSdA5u7jvIGebzA,2090
25
- omlish/antlr/parsing.py,sha256=SFywjYFvrIhkqNHsxY7YNgYHSV6vlk98zjH0hN6UVhA,1419
26
- omlish/antlr/runtime.py,sha256=wYUiJ0qoj4soHFL6fsq91MnUrDSKUEQVmJScKJibOAc,1975
27
- omlish/antlr/utils.py,sha256=hi_RFUl222r2gQsmmm5MYg5_vYa3q8u-KP4CC1ZHndA,912
28
- omlish/antlr/_runtime/BufferedTokenStream.py,sha256=1Rnhm62MZCWSuQeRs7lRUbdtdyo7Gyg8r4gAETjv-cE,10793
29
- omlish/antlr/_runtime/CommonTokenFactory.py,sha256=QrSSTH0gYhOpPeOHqrs6-2g1PGcgYvjhR6J6pynKLOc,2147
30
- omlish/antlr/_runtime/CommonTokenStream.py,sha256=L7giynpsS97oM6ZtPRIw8m6eIbGSaeEUJ7HN6b2etN4,2795
31
- omlish/antlr/_runtime/FileStream.py,sha256=X2PqkNatRxhFrk3acH4NhWv0aBCgMwAn87pmrTLmL5c,905
32
- omlish/antlr/_runtime/InputStream.py,sha256=50Ko4Vq-iWpk7sAMhJ0rrmB3LFv20TztUMpeIEcEfxg,2371
33
- omlish/antlr/_runtime/IntervalSet.py,sha256=-8puC1vhHPwFMG3YzmA62MjJf37hkBSzteJ_GIvXJhk,6002
34
- omlish/antlr/_runtime/LICENSE.txt,sha256=PbH7PueaS0-ZGPxND2Ezvxijz3h_EmzSL4qpuGIoHAw,1480
35
- omlish/antlr/_runtime/LL1Analyzer.py,sha256=Try7EBMnZfpDV-E_JDCTluc9XnbTPfNanDvVYtAUxzE,7747
36
- omlish/antlr/_runtime/Lexer.py,sha256=p5BbDve_V7Oms9FiiNfbVWWXc6dwt5B9wqije-RUc_0,11549
37
- omlish/antlr/_runtime/ListTokenSource.py,sha256=wjaO4eWaZu5LTHFlNGnaW4K8kfuPW28wVbRkyElYjD0,5381
38
- omlish/antlr/_runtime/Parser.py,sha256=RClLh37vtzhOpopUZPvSEesfya5yyC3Acpo1Bqzs1JM,22842
39
- omlish/antlr/_runtime/ParserInterpreter.py,sha256=F0Uscv8hApF7Z4Nm8sE9naGhJrn6tlix7BRcANOvpp8,7177
40
- omlish/antlr/_runtime/ParserRuleContext.py,sha256=2iV0H6_tjBD6LIQh8wMRlpZ4cSNxNc1_8MSeJUcdj7s,6787
41
- omlish/antlr/_runtime/PredictionContext.py,sha256=WWtD-vG0KcBtKqyjt42lGprSuu-VfSixeNxxbi8rQtw,23516
42
- omlish/antlr/_runtime/Recognizer.py,sha256=wsI9wHVeFk0b7J4E8dutGTX_B_U9lELoiTdoirQR29s,5397
43
- omlish/antlr/_runtime/RuleContext.py,sha256=tKXuP56if7CObxGkliLFynf8Da42Nr2CejFhReFK56g,8130
44
- omlish/antlr/_runtime/StdinStream.py,sha256=8up7-oFlr-ydpFV7kFqI1mRDD83Y8wYcXs0rBj-73Us,340
45
- omlish/antlr/_runtime/Token.py,sha256=Ywq-AwJz6GXQ431TTFExNylshQbNr6T5u4_48dxlrtk,5249
46
- omlish/antlr/_runtime/TokenStreamRewriter.py,sha256=2Zd8vdNQ7_XF1Y4r3axxHTD-hdauxyEPaePOqArF1g0,10355
47
- omlish/antlr/_runtime/Utils.py,sha256=Edv360609RwDaEz2JxlXCj9-HuXNEmqr4RVVcbhdLco,974
48
- omlish/antlr/_runtime/__init__.py,sha256=Jn5lqTVbeUQXD5a4IxDHKibOatAQWVTlaQ8M4mYu2Yw,28
49
- omlish/antlr/_runtime/_all.py,sha256=MbNYoQYRympa1nGlgtuZ1AkJTv1SacqvBKG7bTXG0So,1042
50
- omlish/antlr/_runtime/_pygrun.py,sha256=22tgQKyhLO2UbnwacAzsew7bkXjENctDs4XrmSHAqXc,6328
51
- omlish/antlr/_runtime/atn/ATN.py,sha256=0V07bHRY-_rX-Du85F08KbMDbvr055co3Crt0VZbwOo,5792
52
- omlish/antlr/_runtime/atn/ATNConfig.py,sha256=sY7zO2oSh9SLSvs05gY84vtFmV4ZcTKz7dXvDIxH_ew,6573
53
- omlish/antlr/_runtime/atn/ATNConfigSet.py,sha256=vm06ECB3eJsD7BssUCoi08FAsnpRnJJDeuMZKMrlDNc,8336
54
- omlish/antlr/_runtime/atn/ATNDeserializationOptions.py,sha256=87uY6moHi9KpjeRZxwGLsaUL4eNZabFLL9nEK9m-WxU,1053
55
- omlish/antlr/_runtime/atn/ATNDeserializer.py,sha256=TwMeggclcky9tlmAmUXEilBfp2GMIFyveJGOYai-h5Q,18938
56
- omlish/antlr/_runtime/atn/ATNSimulator.py,sha256=RCQsNhVBbY0tdShJYJ7m5jhbcAWPsLe1PnasrJ4owos,2311
57
- omlish/antlr/_runtime/atn/ATNState.py,sha256=Eq2l1BLDqtZG8VHmoDCEUnyeiRJ-hcWPrzE5Kh_MY9w,7696
58
- omlish/antlr/_runtime/atn/ATNType.py,sha256=_UdEWJXYM9gmOQ0u8XxruKLJTYU5ePuNGMAQQu1mWv4,465
59
- omlish/antlr/_runtime/atn/LexerATNSimulator.py,sha256=ZFUTqu7D39AiC8VZunslTrsl7sZKpukEzlkWFK8CRBA,25408
60
- omlish/antlr/_runtime/atn/LexerAction.py,sha256=PS8ArQadDRVXYnfCbOxJBuEVh7jMX2JtarhxZJ9c-jE,10057
61
- omlish/antlr/_runtime/atn/LexerActionExecutor.py,sha256=GoLnxIG-mzOAHLZvfgIBMGB9i2FyXrZrqtFK3B0Hoak,6448
62
- omlish/antlr/_runtime/atn/ParserATNSimulator.py,sha256=5N0htVWAy3x8rfWVs1YN2Jz16LLpXKjAwefFPXgBHcM,80746
63
- omlish/antlr/_runtime/atn/PredictionMode.py,sha256=JAnsYHfd6vD1t1wvLNpBuyi5avjxn8Flbkh_lcrgs1g,22479
64
- omlish/antlr/_runtime/atn/SemanticContext.py,sha256=jYz90ZjiL4Hcya5881fTQd3zvTzTYpjsntiqiRx7xLA,10674
65
- omlish/antlr/_runtime/atn/Transition.py,sha256=YrPBbwKK9E4SwFNmS5u6ATfZ-uC-fx5GSAtPyQsBn4E,8775
66
- omlish/antlr/_runtime/atn/__init__.py,sha256=lMd_BbXYdlDhZQN_q0TKN978XW5G0pq618F0NaLkpFE,71
67
- omlish/antlr/_runtime/dfa/DFA.py,sha256=1eLI8ckM7_Q4dx_l5m1eiiqJPpaTWJ1DDKUMUUbc-qA,5381
68
- omlish/antlr/_runtime/dfa/DFASerializer.py,sha256=HmQpIrVl0_kit8GSCqYyT4AnFvWyBj8vuye0YeFNEKE,2549
69
- omlish/antlr/_runtime/dfa/DFAState.py,sha256=vZ5sBJc0hp5BaOVVT3sdQEd1jEi6yb-u-aO9DHpC2Tw,5616
70
- omlish/antlr/_runtime/dfa/__init__.py,sha256=lMd_BbXYdlDhZQN_q0TKN978XW5G0pq618F0NaLkpFE,71
71
- omlish/antlr/_runtime/error/DiagnosticErrorListener.py,sha256=SyUCrVs2Vzgvf8j2cSkzjODRBeXrVVrKytRH2LxjALs,4479
72
- omlish/antlr/_runtime/error/ErrorListener.py,sha256=pPVVFGIDbELkMhG-A5-b39y3SkNkJvsP6n8Y0TfotfA,2765
73
- omlish/antlr/_runtime/error/ErrorStrategy.py,sha256=0nZwpqR8L0264DphJHoEmYkQHlxZxCEdO54RAvHY6FI,30407
74
- omlish/antlr/_runtime/error/Errors.py,sha256=sCf-5-vb9MyO8XIDdHSqV_ozfEcRrm87yjg_sNtStXM,6808
75
- omlish/antlr/_runtime/error/__init__.py,sha256=lMd_BbXYdlDhZQN_q0TKN978XW5G0pq618F0NaLkpFE,71
76
- omlish/antlr/_runtime/tree/Chunk.py,sha256=xsSnPUGcULkNDJNLlpqq1tqwa2WhsgH-K1JOfKRI3_A,738
77
- omlish/antlr/_runtime/tree/ParseTreeMatch.py,sha256=sKf5rCZK7NosjIWIMjb7DtgobDfOa1k5sXNrm43dwRE,4506
78
- omlish/antlr/_runtime/tree/ParseTreePattern.py,sha256=TUpGiMTK2_qZO77f0Qa_rZidJa9IiBLoXOTjbmgwH7o,2851
79
- omlish/antlr/_runtime/tree/ParseTreePatternMatcher.py,sha256=EzOgoX-2sp1Gxsls8AVqiT20RbslFkt5kYuNayj-czY,16320
80
- omlish/antlr/_runtime/tree/RuleTagToken.py,sha256=KB4A0yYRSoYLOoPZNQogi2uU9IriMr8aiY668wB-6dg,2060
81
- omlish/antlr/_runtime/tree/TokenTagToken.py,sha256=V2ymw3sTiykgi7Lp64a7VsW_s8LvxAQ2FiHd5aOJPhA,1614
82
- omlish/antlr/_runtime/tree/Tree.py,sha256=-5aYTkO_eUUGY2BPY03IJLyG72lNMeO_uuf2u1kZL_4,5610
83
- omlish/antlr/_runtime/tree/Trees.py,sha256=iRcq2bhjBziXEUr6OFFs1rJs82q6wXTSduSBfCMMG7k,3985
84
- omlish/antlr/_runtime/tree/__init__.py,sha256=Jn5lqTVbeUQXD5a4IxDHKibOatAQWVTlaQ8M4mYu2Yw,28
85
- omlish/antlr/_runtime/xpath/XPath.py,sha256=KSL1SH3VAeRDZCe4dAD7xmUdfk-j434ypZKRreFG2vk,9820
86
- omlish/antlr/_runtime/xpath/XPathLexer.py,sha256=WvGKQjQnu7pX5C4CFKtsCzba2B2W6ie4ivtWLvlgymM,3509
87
- omlish/antlr/_runtime/xpath/__init__.py,sha256=lMd_BbXYdlDhZQN_q0TKN978XW5G0pq618F0NaLkpFE,71
88
20
  omlish/argparse/__init__.py,sha256=47DEQpj8HBSa-_TImW-5JCeuQeRkm5NMpJWZG3hSuFU,0
89
21
  omlish/argparse/all.py,sha256=NeeMM5MIebY7XDAHaCxUzeesEoUYwsf5i9PrBUcO1cI,1057
90
22
  omlish/argparse/cli.py,sha256=KftfiN0fBOdybCWoTW4l967r8OrXe_WtjOQWARcHTv0,8746
@@ -215,7 +147,7 @@ omlish/dataclasses/api/classes/__init__.py,sha256=47DEQpj8HBSa-_TImW-5JCeuQeRkm5
215
147
  omlish/dataclasses/api/classes/conversion.py,sha256=x1Ayo5W3t8lVh10KGH_ZBJ_kK7HqcdI2LdJA6mR_WXQ,810
216
148
  omlish/dataclasses/api/classes/decorator.py,sha256=q-m05j6VhJ9_00TmrXBvwmv0_TFPTD8OURi1KbKo9-4,3933
217
149
  omlish/dataclasses/api/classes/make.py,sha256=Q_8ZVjhhFEUstIZA3Ht_vlGptYjTcJqX48qT57W7SZw,2820
218
- omlish/dataclasses/api/classes/metadata.py,sha256=2YafXunxqbqnHIdp5gsiGLyH7cWg9FR5wCwcxlLFd20,2685
150
+ omlish/dataclasses/api/classes/metadata.py,sha256=ocUu75VWOdZA8-R7K95yPhQtS0sFZB1NtqCdzXyDNeQ,2769
219
151
  omlish/dataclasses/api/classes/params.py,sha256=GmLJotHT4BuXcK9lAwP00boR0_mfM0xITWBFKrk0brY,1994
220
152
  omlish/dataclasses/api/fields/__init__.py,sha256=47DEQpj8HBSa-_TImW-5JCeuQeRkm5NMpJWZG3hSuFU,0
221
153
  omlish/dataclasses/api/fields/building.py,sha256=YVAJZ2c318vK0YWz9VU8_MdjA5qNjqsI3N85K-bD0TI,3314
@@ -354,11 +286,11 @@ omlish/formats/json5/__init__.py,sha256=BsjPz5zJDji3GjQ8x8hWvcl1GYPV_ZIHnE3c2Sr8
354
286
  omlish/formats/json5/codec.py,sha256=ldnxCRo0JP1fkGLt0mMxJlLvNxqIF_1KUCcSp1HtI-M,452
355
287
  omlish/formats/json5/errors.py,sha256=AHkR9ySjAoQdUrizpqgL8fg0M5oe5mHZkml3KZHEvC4,38
356
288
  omlish/formats/json5/literals.py,sha256=rj4-9KFXfgdq5oK_eUkp57cgoMQ8T0gRaG9ga430he4,2429
357
- omlish/formats/json5/parsing.py,sha256=qYLcPgkMyjsWeolc6nMg-u5_2PMvBy7jtEUIJZoNZhs,2342
358
- omlish/formats/json5/_antlr/Json5Lexer.py,sha256=8TKxlENDsl6CPfoLR06uQSvhDnzGcY7fKsIhFJ_g6N4,23237
359
- omlish/formats/json5/_antlr/Json5Listener.py,sha256=fSiOzSS0CMjxaCev3sxZqJlW-buqIyDLwgnuRv-Uh80,2095
360
- omlish/formats/json5/_antlr/Json5Parser.py,sha256=nbbwoCPvEVRcEh5_t092XLmsXIHnbzONvH0W0g_BYkQ,19677
361
- omlish/formats/json5/_antlr/Json5Visitor.py,sha256=SfHhUMNapeP8g4Dc7SFwRSqeBtUTLYBNU-1-uEljbyQ,1433
289
+ omlish/formats/json5/parsing.py,sha256=CWJHfe_FXCQuyDk00a7PI5wOdROq7Tc3fbWrNuwaKCw,2346
290
+ omlish/formats/json5/_antlr/Json5Lexer.py,sha256=LnURBD0tL35VHNpxqM4DOPrTkE_9oONHtbftRM26tak,23239
291
+ omlish/formats/json5/_antlr/Json5Listener.py,sha256=37Jhzu7tQEw6gLIxtcZtV5Yjn08kS-GkxF7d0KjXyo8,2097
292
+ omlish/formats/json5/_antlr/Json5Parser.py,sha256=YU9bP89nq97A8ZCrjIcbgoBg4z76-N-6IMFGQe_ws54,19679
293
+ omlish/formats/json5/_antlr/Json5Visitor.py,sha256=xdEhuQIqFs-qvlTtRpKXfz1XFoNdSKGgqTQfrMA5Da4,1435
362
294
  omlish/formats/json5/_antlr/__init__.py,sha256=47DEQpj8HBSa-_TImW-5JCeuQeRkm5NMpJWZG3hSuFU,0
363
295
  omlish/formats/toml/__init__.py,sha256=47DEQpj8HBSa-_TImW-5JCeuQeRkm5NMpJWZG3hSuFU,0
364
296
  omlish/formats/toml/codec.py,sha256=5HFGWEPd9IFxPlRMRheX8FEDlRIzLe1moHEOj2_PFKU,342
@@ -406,7 +338,7 @@ omlish/http/coro/fdio.py,sha256=bd9K4EYVWbXV3e3npDPXI9DuDAruJiyDmrgFpgNcjzY,4035
406
338
  omlish/http/coro/server.py,sha256=30FTcJG8kuFeThf0HJYpTzMZN-giLTBP7wr5Wl3b9X0,18285
407
339
  omlish/http/coro/simple.py,sha256=inWA_ss6Nz5Rqmy4dL9_SGah4anYoDecDTRQqVIGYeY,3200
408
340
  omlish/http/coro/sockets.py,sha256=rtpZZ-XCOfC5tXr4Fmo1HSn-8f5nxfIOlJaPUkQeDyU,1654
409
- omlish/inject/__init__.py,sha256=RFq24cDesOTDPXIafMzVl_LprMGFGhSjXoQOIb9CKng,1887
341
+ omlish/inject/__init__.py,sha256=pY-A8Q4v08-Xa4a-XdZ3lSFC3OwCO2T9HhesB67Q4tQ,1895
410
342
  omlish/inject/binder.py,sha256=3-6KMOcSgFE5bvthy3YUrRzCX5w7YSGmdJ3Tv2yXZGw,4022
411
343
  omlish/inject/bindings.py,sha256=PlvOnUREjvc6F8nOJdzl1k9SAf80icRB4qWFqDop87M,536
412
344
  omlish/inject/eagers.py,sha256=JBY7PcjXt-Rg9scQ1ol9xpcoTLXkXC_Ie9uwTWdzUkA,340
@@ -424,7 +356,7 @@ omlish/inject/privates.py,sha256=CyE-hvQ-F_uyCzcwfdiYVtfm9IF1WZvMDOYilFyZmWk,658
424
356
  omlish/inject/providers.py,sha256=GDjSEN6iLsc-Tdu_OCPvFHWu4yP0Vn0pAyH_xjw1DPg,783
425
357
  omlish/inject/scopes.py,sha256=oRBffhWC0I6jahJF3hKVL2cPP3oo7xDF_AK2SkVAHv0,2007
426
358
  omlish/inject/types.py,sha256=Z-ZEdgtCpHBNrbxxKaMVvfeD7hYXdL4rC7A9_VGxZ6g,256
427
- omlish/inject/utils.py,sha256=Gc2qq45KgkyqDt03WSvOEZBCiuqQ6ESwplx5ZRBcY5M,413
359
+ omlish/inject/utils.py,sha256=5Xm6LEelY7QujhMK7oD5vqEtY7Ymg_oG1Y-ZdEGD3bc,592
428
360
  omlish/inject/impl/__init__.py,sha256=47DEQpj8HBSa-_TImW-5JCeuQeRkm5NMpJWZG3hSuFU,0
429
361
  omlish/inject/impl/bindings.py,sha256=xSvUcoDz8NH-aNHPwBPEZsFg73K2WcF_A63npVbGt_k,420
430
362
  omlish/inject/impl/elements.py,sha256=PM_055moROskSTQqmohEa6I0tt1OQ-VRNArXCMG6vyk,5947
@@ -470,7 +402,7 @@ omlish/iterators/iterators.py,sha256=RxW35yQ5ed8vBQ22IqpDXFx-i5JiLQdp7-pkMZXhJJ8
470
402
  omlish/iterators/recipes.py,sha256=wOwOZg-zWG9Zc3wcAxJFSe2rtavVBYwZOfG09qYEx_4,472
471
403
  omlish/iterators/tools.py,sha256=c4hArZEVV8y9_dFfmRwakusv1cWJLT4MkTkGRjnGN5U,2556
472
404
  omlish/iterators/unique.py,sha256=Nw0pSaNEcHAkve0ugfLPvJcirDOn9ECyC5wIL8JlJKI,1395
473
- omlish/lang/__init__.py,sha256=yJvuoESt6-nZckXYcHctZYEnHCRCjQ2SkRV3ctUljPI,5856
405
+ omlish/lang/__init__.py,sha256=2wsMTbYWBl5grBKkdiotqi8iCncfuBJDBA_nD0hz0SI,5879
474
406
  omlish/lang/attrs.py,sha256=i7euRF81uNF8QDmUVXSK_BtqLGshaMi4VVdUnMjiMwg,5050
475
407
  omlish/lang/casing.py,sha256=cFUlbDdXLhwnWwcYx4qnM5c4zGX7hIRUfcjiZbxUD28,4636
476
408
  omlish/lang/clsdct.py,sha256=HAGIvBSbCefzRjXriwYSBLO7QHKRv2UsE78jixOb-fA,1828
@@ -483,7 +415,7 @@ omlish/lang/enums.py,sha256=F9tflHfaAoV2MpyuhZzpfX9-H55M3zNa9hCszsngEo8,111
483
415
  omlish/lang/functions.py,sha256=51CoKtH_-CXUsKvtCexaR3OLZOtIwSdv4f4DtGBZdpA,6029
484
416
  omlish/lang/generators.py,sha256=yd3ebG2LlA3XQImP8rplt6tSToXwMxhlGRGCkdJ87ME,5230
485
417
  omlish/lang/imports.py,sha256=y9W9Y-d_cQ35QCLuSIPoa6vnEqSErFCz8b-34IH128U,10552
486
- omlish/lang/iterables.py,sha256=HOjcxOwyI5bBApDLsxRAGGhTTmw7fdZl2kEckxRVl-0,1994
418
+ omlish/lang/iterables.py,sha256=StoGp9yaP3njdLKHoWYcEevO3eE8SHEPYl5_avZob24,2149
487
419
  omlish/lang/maybes.py,sha256=pb1YrxmpXy-hWKmWR89GxXqZq1MoUD1uuTaTX30peh0,3697
488
420
  omlish/lang/objects.py,sha256=nbxBHfQHVw0OG4qeSTP2GvIiFIcH2tbbitY8y-mYPPo,5959
489
421
  omlish/lang/outcomes.py,sha256=mpFy_VoM-b74L1aCFsjsZVUHx_icZ1AHMOKeVesjOp4,8628
@@ -724,11 +656,11 @@ omlish/specs/openapi/openapi.py,sha256=y4h04jeB7ORJSVrcy7apaBdpwLjIyscv1Ub5SderH
724
656
  omlish/specs/proto/Protobuf3.g4,sha256=chDrovFsuZaHf5W35WZNts3jOa1ssPwvWiJR4yVIgjw,5552
725
657
  omlish/specs/proto/__init__.py,sha256=47DEQpj8HBSa-_TImW-5JCeuQeRkm5NMpJWZG3hSuFU,0
726
658
  omlish/specs/proto/nodes.py,sha256=nwA6KyU9pZHLE9cO9dh46qTl6vfYJ8SjuUDlLBuoOms,776
727
- omlish/specs/proto/parsing.py,sha256=Rrdhvl-QHBxykGFd9XltqG8GBPgHaw5rRM8wuELCdsA,2861
728
- omlish/specs/proto/_antlr/Protobuf3Lexer.py,sha256=-FpQNpCJyhHf2dM4ngLtAtb7sssrtAXeR0W4WuKY4Yo,19471
729
- omlish/specs/proto/_antlr/Protobuf3Listener.py,sha256=hjzAJjcj4xWRim-68v-6QwIsPVdPwOFUGz1rusRcaWU,14506
730
- omlish/specs/proto/_antlr/Protobuf3Parser.py,sha256=VmkUyJx3WxIgAecOa1BGwbO9fVNysZt5-arQ-wDubpk,132411
731
- omlish/specs/proto/_antlr/Protobuf3Visitor.py,sha256=zEVBXly2k9Cqmgdb45QwpLR-fZCEq8hpp2WQj-s7Wps,8782
659
+ omlish/specs/proto/parsing.py,sha256=Nr4qu5Tk63NNSsPTHkG4JNEucpwwXZ3vdIcqq8WLmQw,2871
660
+ omlish/specs/proto/_antlr/Protobuf3Lexer.py,sha256=GS0NKJNvnXSoJB7ahT3VGIKsQrbamM2Qcwl53go-1cM,19473
661
+ omlish/specs/proto/_antlr/Protobuf3Listener.py,sha256=Nxr5J1E7h7JBfs-uE5XlpblEzNF-Ws9uBZqwKtrnoRQ,14508
662
+ omlish/specs/proto/_antlr/Protobuf3Parser.py,sha256=QUw5dURYEAVxe7cuRuqVP6GPuZlzE0tFxIIaUSTW_QE,132413
663
+ omlish/specs/proto/_antlr/Protobuf3Visitor.py,sha256=5d4e52ZfArDIuo8wRGvXUCgO-EWwxmceRJ6QxrjfiAc,8784
732
664
  omlish/specs/proto/_antlr/__init__.py,sha256=47DEQpj8HBSa-_TImW-5JCeuQeRkm5NMpJWZG3hSuFU,0
733
665
  omlish/sql/__init__.py,sha256=DXK3EjPKXKS0WUV-bIVtzH0GsmOqCYrNLFkvDJGCORM,501
734
666
  omlish/sql/abc.py,sha256=3hrCjB4jnPVMef_YXClCblzYUZ9l9yaxJJdd5_Nu9GM,4043
@@ -756,11 +688,11 @@ omlish/sql/api/resources.py,sha256=DTVQmKjhaLi27jHWYkF20VhwGvIazZWxyKzF0Wn9-dc,2
756
688
  omlish/sql/api/rows.py,sha256=Jo3AA_6Wt7tlwLO6-rp0arzYFqZXSxPudGPkW2xCYgQ,1346
757
689
  omlish/sql/parsing/Minisql.g4,sha256=Jw8xT-8UI6ySHAgStyCg5QX9NTCinvTenLJReWiZIJU,4578
758
690
  omlish/sql/parsing/__init__.py,sha256=47DEQpj8HBSa-_TImW-5JCeuQeRkm5NMpJWZG3hSuFU,0
759
- omlish/sql/parsing/parsing.py,sha256=SIbrAkWCgx_ekBOzBGc0eC_HfW--ciAtU_-Vqmyy6vw,3347
760
- omlish/sql/parsing/_antlr/MinisqlLexer.py,sha256=f4WzRrwqM7tW6sNn01035hRWPZL7xtuvba9EMR06j2E,17611
761
- omlish/sql/parsing/_antlr/MinisqlListener.py,sha256=2py_bfDQeEtJaJh9rtpKghbSrQlEGAEKf5ZBLErKqsI,16633
762
- omlish/sql/parsing/_antlr/MinisqlParser.py,sha256=y9SFjXdQlWYJa2PbPm30d5SfcYM_8M8ts46IHhENbNc,132457
763
- omlish/sql/parsing/_antlr/MinisqlVisitor.py,sha256=NCPorucLLOZ-Q99BtNbDOAfHytQl8wyroR8pI1uVovg,10030
691
+ omlish/sql/parsing/parsing.py,sha256=FWiMYxkYraswd6lZtYHpAY8kozsFxeUwYlFzgqdMOVI,3362
692
+ omlish/sql/parsing/_antlr/MinisqlLexer.py,sha256=Uk9or6HmE2IxzhHBdhOCAz_Ii1sVTyeRVutKGoI9mlY,17613
693
+ omlish/sql/parsing/_antlr/MinisqlListener.py,sha256=07gQ-EvDwj4DB2RvJDEHDXFW0rLDJXBVMVLB8-XcPzs,16635
694
+ omlish/sql/parsing/_antlr/MinisqlParser.py,sha256=kpErjjjnd_h_j-v1r4rDutjoFMaSrm6prEYk6sNaSyM,132459
695
+ omlish/sql/parsing/_antlr/MinisqlVisitor.py,sha256=mPxqxK3Y3lfFQwsDdS2bmpn0q6l8jNzvShhkqDzhg3w,10032
764
696
  omlish/sql/parsing/_antlr/__init__.py,sha256=47DEQpj8HBSa-_TImW-5JCeuQeRkm5NMpJWZG3hSuFU,0
765
697
  omlish/sql/queries/__init__.py,sha256=m4sjtdWN7_9f70rc3vf7CuHgKJvf1QBcfGW_GDHb3hM,1565
766
698
  omlish/sql/queries/base.py,sha256=nsavenCsZgzpITSI1zGEAi95K3cRDfAxRgNJKJmYul0,3502
@@ -796,6 +728,7 @@ omlish/subprocesses/utils.py,sha256=MJb6hvKhZceTmBeFVqlc5oM7rDxWkUzSzK9nKvbIvM8,
796
728
  omlish/subprocesses/wrap.py,sha256=HMvCZrO2H227oGNN03KjB3FI-M5bAICqp19W8oG2f5M,763
797
729
  omlish/term/__init__.py,sha256=47DEQpj8HBSa-_TImW-5JCeuQeRkm5NMpJWZG3hSuFU,0
798
730
  omlish/term/codes.py,sha256=fDRhUYzCzllcvCfMMgEroJaQoxqFsfTivpYdVmnwcCE,6390
731
+ omlish/term/coloring.py,sha256=MCFYV_JTvEObTCJE12wfalW8OFFQB_KIFBKDtfES6Nk,2559
799
732
  omlish/term/progressbar.py,sha256=B5DfB_1pAE99z5628fpZbXYg-dfhmEqmyBBWH5tdbgE,3666
800
733
  omlish/term/vt100/__init__.py,sha256=47DEQpj8HBSa-_TImW-5JCeuQeRkm5NMpJWZG3hSuFU,0
801
734
  omlish/term/vt100/c.py,sha256=cAhDKXI81PZRtFmTotfad3HZGREP1QnOlWYoAw6v-Fw,3532
@@ -842,6 +775,74 @@ omlish/text/minja.py,sha256=FH2xcZUby-yB1CQwCUGmpvHmE1nCmfNX1h0Nm6ix8ck,7515
842
775
  omlish/text/parts.py,sha256=Q9NvoyEGQKIWgiPD4D_Qc66cWAuyEKE033dT9m7c3Wk,6662
843
776
  omlish/text/random.py,sha256=8feS5JE_tSjYlMl-lp0j93kCfzBae9AM2cXlRLebXMA,199
844
777
  omlish/text/templating.py,sha256=azhKpvkDR2uby8k3AJ8Y6GpdKVQUb7Xt_cGbDz6dkTM,2454
778
+ omlish/text/antlr/__init__.py,sha256=88bMl_28cfSKslgOkMGYXqALgsHz3KC4LFvAVtzj7k8,89
779
+ omlish/text/antlr/delimit.py,sha256=wvpZ-FlVoGwRjBALKT1in9cIriIwvyFqmHxgliNJEi8,3472
780
+ omlish/text/antlr/dot.py,sha256=-WHO-xDSv-Ir00TZ4sVIwunKYtZkRveaQ4m5FKj_bRs,962
781
+ omlish/text/antlr/errors.py,sha256=4J0WuVKbeFoZEP0wePCmn-e7mI1VMwWoE3wkeQO-4nk,313
782
+ omlish/text/antlr/input.py,sha256=baeO279AIxR50pymya0eabtnc2A0bSdA5u7jvIGebzA,2090
783
+ omlish/text/antlr/parsing.py,sha256=4J9sLZW8Nv6BDBqlHEg-nzLY_AfKE3lE0TpdXVKCUO8,1420
784
+ omlish/text/antlr/runtime.py,sha256=wYUiJ0qoj4soHFL6fsq91MnUrDSKUEQVmJScKJibOAc,1975
785
+ omlish/text/antlr/utils.py,sha256=hi_RFUl222r2gQsmmm5MYg5_vYa3q8u-KP4CC1ZHndA,912
786
+ omlish/text/antlr/_runtime/BufferedTokenStream.py,sha256=1Rnhm62MZCWSuQeRs7lRUbdtdyo7Gyg8r4gAETjv-cE,10793
787
+ omlish/text/antlr/_runtime/CommonTokenFactory.py,sha256=QrSSTH0gYhOpPeOHqrs6-2g1PGcgYvjhR6J6pynKLOc,2147
788
+ omlish/text/antlr/_runtime/CommonTokenStream.py,sha256=L7giynpsS97oM6ZtPRIw8m6eIbGSaeEUJ7HN6b2etN4,2795
789
+ omlish/text/antlr/_runtime/FileStream.py,sha256=X2PqkNatRxhFrk3acH4NhWv0aBCgMwAn87pmrTLmL5c,905
790
+ omlish/text/antlr/_runtime/InputStream.py,sha256=50Ko4Vq-iWpk7sAMhJ0rrmB3LFv20TztUMpeIEcEfxg,2371
791
+ omlish/text/antlr/_runtime/IntervalSet.py,sha256=-8puC1vhHPwFMG3YzmA62MjJf37hkBSzteJ_GIvXJhk,6002
792
+ omlish/text/antlr/_runtime/LICENSE.txt,sha256=PbH7PueaS0-ZGPxND2Ezvxijz3h_EmzSL4qpuGIoHAw,1480
793
+ omlish/text/antlr/_runtime/LL1Analyzer.py,sha256=Try7EBMnZfpDV-E_JDCTluc9XnbTPfNanDvVYtAUxzE,7747
794
+ omlish/text/antlr/_runtime/Lexer.py,sha256=p5BbDve_V7Oms9FiiNfbVWWXc6dwt5B9wqije-RUc_0,11549
795
+ omlish/text/antlr/_runtime/ListTokenSource.py,sha256=wjaO4eWaZu5LTHFlNGnaW4K8kfuPW28wVbRkyElYjD0,5381
796
+ omlish/text/antlr/_runtime/Parser.py,sha256=RClLh37vtzhOpopUZPvSEesfya5yyC3Acpo1Bqzs1JM,22842
797
+ omlish/text/antlr/_runtime/ParserInterpreter.py,sha256=F0Uscv8hApF7Z4Nm8sE9naGhJrn6tlix7BRcANOvpp8,7177
798
+ omlish/text/antlr/_runtime/ParserRuleContext.py,sha256=2iV0H6_tjBD6LIQh8wMRlpZ4cSNxNc1_8MSeJUcdj7s,6787
799
+ omlish/text/antlr/_runtime/PredictionContext.py,sha256=WWtD-vG0KcBtKqyjt42lGprSuu-VfSixeNxxbi8rQtw,23516
800
+ omlish/text/antlr/_runtime/Recognizer.py,sha256=wsI9wHVeFk0b7J4E8dutGTX_B_U9lELoiTdoirQR29s,5397
801
+ omlish/text/antlr/_runtime/RuleContext.py,sha256=tKXuP56if7CObxGkliLFynf8Da42Nr2CejFhReFK56g,8130
802
+ omlish/text/antlr/_runtime/StdinStream.py,sha256=8up7-oFlr-ydpFV7kFqI1mRDD83Y8wYcXs0rBj-73Us,340
803
+ omlish/text/antlr/_runtime/Token.py,sha256=Ywq-AwJz6GXQ431TTFExNylshQbNr6T5u4_48dxlrtk,5249
804
+ omlish/text/antlr/_runtime/TokenStreamRewriter.py,sha256=2Zd8vdNQ7_XF1Y4r3axxHTD-hdauxyEPaePOqArF1g0,10355
805
+ omlish/text/antlr/_runtime/Utils.py,sha256=Edv360609RwDaEz2JxlXCj9-HuXNEmqr4RVVcbhdLco,974
806
+ omlish/text/antlr/_runtime/__init__.py,sha256=Jn5lqTVbeUQXD5a4IxDHKibOatAQWVTlaQ8M4mYu2Yw,28
807
+ omlish/text/antlr/_runtime/_all.py,sha256=MbNYoQYRympa1nGlgtuZ1AkJTv1SacqvBKG7bTXG0So,1042
808
+ omlish/text/antlr/_runtime/_pygrun.py,sha256=22tgQKyhLO2UbnwacAzsew7bkXjENctDs4XrmSHAqXc,6328
809
+ omlish/text/antlr/_runtime/atn/ATN.py,sha256=0V07bHRY-_rX-Du85F08KbMDbvr055co3Crt0VZbwOo,5792
810
+ omlish/text/antlr/_runtime/atn/ATNConfig.py,sha256=sY7zO2oSh9SLSvs05gY84vtFmV4ZcTKz7dXvDIxH_ew,6573
811
+ omlish/text/antlr/_runtime/atn/ATNConfigSet.py,sha256=vm06ECB3eJsD7BssUCoi08FAsnpRnJJDeuMZKMrlDNc,8336
812
+ omlish/text/antlr/_runtime/atn/ATNDeserializationOptions.py,sha256=87uY6moHi9KpjeRZxwGLsaUL4eNZabFLL9nEK9m-WxU,1053
813
+ omlish/text/antlr/_runtime/atn/ATNDeserializer.py,sha256=TwMeggclcky9tlmAmUXEilBfp2GMIFyveJGOYai-h5Q,18938
814
+ omlish/text/antlr/_runtime/atn/ATNSimulator.py,sha256=RCQsNhVBbY0tdShJYJ7m5jhbcAWPsLe1PnasrJ4owos,2311
815
+ omlish/text/antlr/_runtime/atn/ATNState.py,sha256=Eq2l1BLDqtZG8VHmoDCEUnyeiRJ-hcWPrzE5Kh_MY9w,7696
816
+ omlish/text/antlr/_runtime/atn/ATNType.py,sha256=_UdEWJXYM9gmOQ0u8XxruKLJTYU5ePuNGMAQQu1mWv4,465
817
+ omlish/text/antlr/_runtime/atn/LexerATNSimulator.py,sha256=ZFUTqu7D39AiC8VZunslTrsl7sZKpukEzlkWFK8CRBA,25408
818
+ omlish/text/antlr/_runtime/atn/LexerAction.py,sha256=PS8ArQadDRVXYnfCbOxJBuEVh7jMX2JtarhxZJ9c-jE,10057
819
+ omlish/text/antlr/_runtime/atn/LexerActionExecutor.py,sha256=GoLnxIG-mzOAHLZvfgIBMGB9i2FyXrZrqtFK3B0Hoak,6448
820
+ omlish/text/antlr/_runtime/atn/ParserATNSimulator.py,sha256=5N0htVWAy3x8rfWVs1YN2Jz16LLpXKjAwefFPXgBHcM,80746
821
+ omlish/text/antlr/_runtime/atn/PredictionMode.py,sha256=JAnsYHfd6vD1t1wvLNpBuyi5avjxn8Flbkh_lcrgs1g,22479
822
+ omlish/text/antlr/_runtime/atn/SemanticContext.py,sha256=jYz90ZjiL4Hcya5881fTQd3zvTzTYpjsntiqiRx7xLA,10674
823
+ omlish/text/antlr/_runtime/atn/Transition.py,sha256=YrPBbwKK9E4SwFNmS5u6ATfZ-uC-fx5GSAtPyQsBn4E,8775
824
+ omlish/text/antlr/_runtime/atn/__init__.py,sha256=lMd_BbXYdlDhZQN_q0TKN978XW5G0pq618F0NaLkpFE,71
825
+ omlish/text/antlr/_runtime/dfa/DFA.py,sha256=1eLI8ckM7_Q4dx_l5m1eiiqJPpaTWJ1DDKUMUUbc-qA,5381
826
+ omlish/text/antlr/_runtime/dfa/DFASerializer.py,sha256=HmQpIrVl0_kit8GSCqYyT4AnFvWyBj8vuye0YeFNEKE,2549
827
+ omlish/text/antlr/_runtime/dfa/DFAState.py,sha256=vZ5sBJc0hp5BaOVVT3sdQEd1jEi6yb-u-aO9DHpC2Tw,5616
828
+ omlish/text/antlr/_runtime/dfa/__init__.py,sha256=lMd_BbXYdlDhZQN_q0TKN978XW5G0pq618F0NaLkpFE,71
829
+ omlish/text/antlr/_runtime/error/DiagnosticErrorListener.py,sha256=SyUCrVs2Vzgvf8j2cSkzjODRBeXrVVrKytRH2LxjALs,4479
830
+ omlish/text/antlr/_runtime/error/ErrorListener.py,sha256=pPVVFGIDbELkMhG-A5-b39y3SkNkJvsP6n8Y0TfotfA,2765
831
+ omlish/text/antlr/_runtime/error/ErrorStrategy.py,sha256=0nZwpqR8L0264DphJHoEmYkQHlxZxCEdO54RAvHY6FI,30407
832
+ omlish/text/antlr/_runtime/error/Errors.py,sha256=sCf-5-vb9MyO8XIDdHSqV_ozfEcRrm87yjg_sNtStXM,6808
833
+ omlish/text/antlr/_runtime/error/__init__.py,sha256=lMd_BbXYdlDhZQN_q0TKN978XW5G0pq618F0NaLkpFE,71
834
+ omlish/text/antlr/_runtime/tree/Chunk.py,sha256=xsSnPUGcULkNDJNLlpqq1tqwa2WhsgH-K1JOfKRI3_A,738
835
+ omlish/text/antlr/_runtime/tree/ParseTreeMatch.py,sha256=sKf5rCZK7NosjIWIMjb7DtgobDfOa1k5sXNrm43dwRE,4506
836
+ omlish/text/antlr/_runtime/tree/ParseTreePattern.py,sha256=TUpGiMTK2_qZO77f0Qa_rZidJa9IiBLoXOTjbmgwH7o,2851
837
+ omlish/text/antlr/_runtime/tree/ParseTreePatternMatcher.py,sha256=EzOgoX-2sp1Gxsls8AVqiT20RbslFkt5kYuNayj-czY,16320
838
+ omlish/text/antlr/_runtime/tree/RuleTagToken.py,sha256=KB4A0yYRSoYLOoPZNQogi2uU9IriMr8aiY668wB-6dg,2060
839
+ omlish/text/antlr/_runtime/tree/TokenTagToken.py,sha256=V2ymw3sTiykgi7Lp64a7VsW_s8LvxAQ2FiHd5aOJPhA,1614
840
+ omlish/text/antlr/_runtime/tree/Tree.py,sha256=-5aYTkO_eUUGY2BPY03IJLyG72lNMeO_uuf2u1kZL_4,5610
841
+ omlish/text/antlr/_runtime/tree/Trees.py,sha256=iRcq2bhjBziXEUr6OFFs1rJs82q6wXTSduSBfCMMG7k,3985
842
+ omlish/text/antlr/_runtime/tree/__init__.py,sha256=Jn5lqTVbeUQXD5a4IxDHKibOatAQWVTlaQ8M4mYu2Yw,28
843
+ omlish/text/antlr/_runtime/xpath/XPath.py,sha256=KSL1SH3VAeRDZCe4dAD7xmUdfk-j434ypZKRreFG2vk,9820
844
+ omlish/text/antlr/_runtime/xpath/XPathLexer.py,sha256=WvGKQjQnu7pX5C4CFKtsCzba2B2W6ie4ivtWLvlgymM,3509
845
+ omlish/text/antlr/_runtime/xpath/__init__.py,sha256=lMd_BbXYdlDhZQN_q0TKN978XW5G0pq618F0NaLkpFE,71
845
846
  omlish/text/go/__init__.py,sha256=47DEQpj8HBSa-_TImW-5JCeuQeRkm5NMpJWZG3hSuFU,0
846
847
  omlish/text/go/quoting.py,sha256=N9EYdnFdEX_A8fOviH-1w4jwV3XOQ7VU2WsoUNubYVY,9137
847
848
  omlish/typedvalues/__init__.py,sha256=nzpnoRW_wScMPit5Xz37ky3nKBdzzkgtnQA4SfVHN8E,684
@@ -853,9 +854,9 @@ omlish/typedvalues/holder.py,sha256=ZTnHiw-K38ciOBLEdwgrltr7Xp8jjEs_0Lp69DH-G-o,
853
854
  omlish/typedvalues/marshal.py,sha256=hWHRLcrGav7lvXJDtb9bNI0ickl4SKPQ6F4BbTpqw3A,4219
854
855
  omlish/typedvalues/reflect.py,sha256=Ih1YgU-srUjsvBn_P7C66f73_VCvcwqE3ffeBnZBgt4,674
855
856
  omlish/typedvalues/values.py,sha256=ym46I-q2QJ_6l4UlERqv3yj87R-kp8nCKMRph0xQ3UA,1307
856
- omlish-0.0.0.dev310.dist-info/licenses/LICENSE,sha256=B_hVtavaA8zCYDW99DYdcpDLKz1n3BBRjZrcbv8uG8c,1451
857
- omlish-0.0.0.dev310.dist-info/METADATA,sha256=nL2AYcp2yZlXdDGZI7kx77NdLRrDcwPh868SLgJaUeY,4416
858
- omlish-0.0.0.dev310.dist-info/WHEEL,sha256=0CuiUZ_p9E4cD6NyLD6UG80LBXYyiSYZOKDm5lp32xk,91
859
- omlish-0.0.0.dev310.dist-info/entry_points.txt,sha256=Lt84WvRZJskWCAS7xnQGZIeVWksprtUHj0llrvVmod8,35
860
- omlish-0.0.0.dev310.dist-info/top_level.txt,sha256=pePsKdLu7DvtUiecdYXJ78iO80uDNmBlqe-8hOzOmfs,7
861
- omlish-0.0.0.dev310.dist-info/RECORD,,
857
+ omlish-0.0.0.dev312.dist-info/licenses/LICENSE,sha256=B_hVtavaA8zCYDW99DYdcpDLKz1n3BBRjZrcbv8uG8c,1451
858
+ omlish-0.0.0.dev312.dist-info/METADATA,sha256=C0de07LzmIXOavHC1ou95yjIwMCPxZaghtk3Q6Huj8E,4416
859
+ omlish-0.0.0.dev312.dist-info/WHEEL,sha256=0CuiUZ_p9E4cD6NyLD6UG80LBXYyiSYZOKDm5lp32xk,91
860
+ omlish-0.0.0.dev312.dist-info/entry_points.txt,sha256=Lt84WvRZJskWCAS7xnQGZIeVWksprtUHj0llrvVmod8,35
861
+ omlish-0.0.0.dev312.dist-info/top_level.txt,sha256=pePsKdLu7DvtUiecdYXJ78iO80uDNmBlqe-8hOzOmfs,7
862
+ omlish-0.0.0.dev312.dist-info/RECORD,,
File without changes
File without changes
File without changes
File without changes
File without changes
File without changes
File without changes
File without changes
File without changes
File without changes
File without changes
File without changes
File without changes
File without changes
File without changes
File without changes
File without changes
File without changes
File without changes
File without changes
File without changes
File without changes
File without changes
File without changes
File without changes
File without changes
File without changes
File without changes
File without changes
File without changes
File without changes
File without changes
File without changes
File without changes
File without changes
File without changes
File without changes