omlish 0.0.0.dev1__py3-none-any.whl → 0.0.0.dev2__py3-none-any.whl

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.

Potentially problematic release.


This version of omlish might be problematic. Click here for more details.

Files changed (102) hide show
  1. omlish/__about__.py +2 -2
  2. omlish/argparse.py +4 -4
  3. omlish/asyncs/anyio.py +62 -1
  4. omlish/asyncs/futures.py +6 -6
  5. omlish/c3.py +4 -4
  6. omlish/check.py +6 -6
  7. omlish/collections/__init__.py +98 -63
  8. omlish/collections/cache/descriptor.py +5 -5
  9. omlish/collections/cache/impl.py +4 -4
  10. omlish/collections/coerce.py +43 -43
  11. omlish/collections/frozen.py +3 -3
  12. omlish/collections/identity.py +1 -1
  13. omlish/collections/mappings.py +3 -3
  14. omlish/collections/ordered.py +1 -1
  15. omlish/collections/skiplist.py +6 -6
  16. omlish/collections/sorted.py +3 -3
  17. omlish/collections/treap.py +17 -17
  18. omlish/collections/treapmap.py +2 -2
  19. omlish/collections/unmodifiable.py +28 -27
  20. omlish/configs/flattening.py +1 -1
  21. omlish/configs/props.py +1 -1
  22. omlish/dataclasses/impl/__init__.py +2 -0
  23. omlish/dataclasses/impl/api.py +5 -13
  24. omlish/dataclasses/impl/fields.py +1 -1
  25. omlish/dataclasses/impl/init.py +1 -1
  26. omlish/dataclasses/impl/internals.py +15 -0
  27. omlish/dataclasses/impl/main.py +4 -4
  28. omlish/dataclasses/impl/metaclass.py +1 -1
  29. omlish/dataclasses/impl/metadata.py +1 -1
  30. omlish/dataclasses/impl/order.py +1 -1
  31. omlish/dataclasses/impl/params.py +4 -38
  32. omlish/dataclasses/impl/reflect.py +1 -7
  33. omlish/dataclasses/impl/repr.py +23 -5
  34. omlish/dataclasses/impl/simple.py +2 -2
  35. omlish/dataclasses/impl/slots.py +2 -2
  36. omlish/dataclasses/impl/utils.py +4 -4
  37. omlish/dispatch/dispatch.py +9 -8
  38. omlish/dispatch/methods.py +2 -2
  39. omlish/docker.py +8 -6
  40. omlish/dynamic.py +5 -5
  41. omlish/graphs/dot/items.py +1 -1
  42. omlish/graphs/trees.py +15 -21
  43. omlish/inject/elements.py +1 -1
  44. omlish/inject/exceptions.py +1 -1
  45. omlish/inject/impl/injector.py +1 -1
  46. omlish/inject/impl/inspect.py +1 -1
  47. omlish/inject/injector.py +1 -1
  48. omlish/inject/providers.py +2 -2
  49. omlish/iterators.py +43 -2
  50. omlish/lang/__init__.py +167 -112
  51. omlish/lang/cached.py +13 -5
  52. omlish/lang/classes/__init__.py +35 -24
  53. omlish/lang/classes/abstract.py +1 -1
  54. omlish/lang/classes/simple.py +1 -1
  55. omlish/lang/clsdct.py +1 -1
  56. omlish/lang/contextmanagers.py +23 -15
  57. omlish/lang/datetimes.py +1 -1
  58. omlish/lang/descriptors.py +35 -2
  59. omlish/lang/exceptions.py +2 -0
  60. omlish/lang/functions.py +43 -13
  61. omlish/lang/imports.py +8 -8
  62. omlish/lang/iterables.py +1 -1
  63. omlish/lang/maybes.py +1 -1
  64. omlish/lang/objects.py +2 -2
  65. omlish/lang/timeouts.py +53 -0
  66. omlish/lang/typing.py +2 -2
  67. omlish/libc.py +6 -6
  68. omlish/marshal/base.py +6 -6
  69. omlish/marshal/dataclasses.py +2 -2
  70. omlish/marshal/enums.py +2 -2
  71. omlish/marshal/factories.py +10 -10
  72. omlish/marshal/iterables.py +2 -2
  73. omlish/marshal/mappings.py +2 -2
  74. omlish/marshal/optionals.py +4 -4
  75. omlish/marshal/polymorphism.py +4 -4
  76. omlish/marshal/standard.py +6 -6
  77. omlish/marshal/utils.py +1 -1
  78. omlish/os.py +13 -4
  79. omlish/procfs.py +336 -0
  80. omlish/reflect.py +2 -12
  81. omlish/replserver/console.py +9 -9
  82. omlish/replserver/server.py +4 -4
  83. omlish/sql/__init__.py +0 -0
  84. omlish/sql/_abcs.py +65 -0
  85. omlish/sql/dbs.py +90 -0
  86. omlish/stats.py +3 -3
  87. omlish/testing/pydevd.py +4 -6
  88. omlish/testing/pytest/inject/__init__.py +7 -0
  89. omlish/testing/pytest/inject/harness.py +23 -1
  90. omlish/testing/pytest/plugins/__init__.py +1 -1
  91. omlish/testing/pytest/plugins/pydevd.py +12 -0
  92. omlish/testing/pytest/plugins/switches.py +2 -2
  93. omlish/testing/testing.py +5 -5
  94. omlish/text/parts.py +3 -3
  95. omlish-0.0.0.dev2.dist-info/METADATA +31 -0
  96. omlish-0.0.0.dev2.dist-info/RECORD +193 -0
  97. {omlish-0.0.0.dev1.dist-info → omlish-0.0.0.dev2.dist-info}/WHEEL +1 -1
  98. omlish/testing/pytest/plugins/pycharm.py +0 -54
  99. omlish-0.0.0.dev1.dist-info/METADATA +0 -17
  100. omlish-0.0.0.dev1.dist-info/RECORD +0 -187
  101. {omlish-0.0.0.dev1.dist-info → omlish-0.0.0.dev2.dist-info}/LICENSE +0 -0
  102. {omlish-0.0.0.dev1.dist-info → omlish-0.0.0.dev2.dist-info}/top_level.txt +0 -0
@@ -81,7 +81,7 @@ class Harness:
81
81
 
82
82
  def __getitem__(
83
83
  self,
84
- target: ta.Union[inj.Key[T], type[T]],
84
+ target: inj.Key[T] | type[T],
85
85
  ) -> T:
86
86
  return check.not_none(self._inj)[target]
87
87
 
@@ -153,6 +153,28 @@ class HarnessPlugin:
153
153
  _HARNESS_ELEMENTS_LIST: list[inj.Elements] = []
154
154
 
155
155
 
156
+ def register(*args: inj.Element | inj.Elements) -> None:
157
+ _HARNESS_ELEMENTS_LIST.append(inj.as_elements(*args))
158
+
159
+
160
+ TypeT = ta.TypeVar('TypeT', bound=type)
161
+
162
+
163
+ def bind(
164
+ scope: PytestScope | str = PytestScope.SESSION,
165
+ *,
166
+ eager: bool = False,
167
+ ) -> ta.Callable[[TypeT], TypeT]:
168
+ def inner(cls):
169
+ pts = scope if isinstance(scope, PytestScope) else PytestScope[check.isinstance(scope, str).upper()]
170
+ check.isinstance(cls, type)
171
+ register(inj.as_elements(
172
+ inj.in_(cls, _SCOPES_BY_PYTEST_SCOPE[pts]),
173
+ ))
174
+ return cls
175
+ return inner
176
+
177
+
156
178
  @pytest.fixture(scope='session', autouse=True)
157
179
  def harness() -> ta.Generator[Harness, None, None]:
158
180
  with Harness(inj.as_elements(*_HARNESS_ELEMENTS_LIST)).activate() as h:
@@ -1,6 +1,6 @@
1
1
  from . import ( # noqa
2
2
  logging,
3
- pycharm,
3
+ pydevd,
4
4
  repeat,
5
5
  skips,
6
6
  spacing,
@@ -0,0 +1,12 @@
1
+ from ... import pydevd as opd
2
+ from ._registry import register
3
+
4
+
5
+ @register
6
+ class PydevdPlugin:
7
+
8
+ def pytest_collection(self, session):
9
+ setup = opd.get_setup()
10
+ if setup is not None:
11
+ if hasattr(session.config, '_env_timeout'):
12
+ session.config._env_timeout = None
@@ -31,13 +31,13 @@ def _get_obj_config(obj: Configable) -> pytest.Config:
31
31
  raise TypeError(obj)
32
32
 
33
33
 
34
- def is_disabled(obj: ta.Optional[Configable], name: str) -> bool:
34
+ def is_disabled(obj: Configable | None, name: str) -> bool:
35
35
  check.isinstance(name, str)
36
36
  check.in_(name, SWITCHES)
37
37
  return obj is not None and _get_obj_config(obj).getoption(f'--no-{name}')
38
38
 
39
39
 
40
- def skip_if_disabled(obj: ta.Optional[Configable], name: str) -> None:
40
+ def skip_if_disabled(obj: Configable | None, name: str) -> None:
41
41
  if is_disabled(obj, name):
42
42
  pytest.skip(f'{name} disabled')
43
43
 
omlish/testing/testing.py CHANGED
@@ -14,7 +14,7 @@ T = ta.TypeVar('T')
14
14
 
15
15
  def call_many_with_timeout(
16
16
  fns: ta.Iterable[ta.Callable[[], T]],
17
- timeout_s: int | float | None = None,
17
+ timeout_s: float | None = None,
18
18
  timeout_exception: Exception = TimeoutError('Thread timeout'),
19
19
  ) -> list[T]:
20
20
  if timeout_s is None:
@@ -23,7 +23,7 @@ def call_many_with_timeout(
23
23
  fns = list(fns)
24
24
  missing = object()
25
25
  rets: list[ta.Any] = [missing] * len(fns)
26
- thread_exception: ta.Optional[Exception] = None
26
+ thread_exception: Exception | None = None
27
27
 
28
28
  def inner(fn, idx):
29
29
  try:
@@ -54,7 +54,7 @@ def call_many_with_timeout(
54
54
 
55
55
  def run_with_timeout(
56
56
  *fns: ta.Callable[[], None],
57
- timeout_s: int | float | None = None,
57
+ timeout_s: float | None = None,
58
58
  timeout_exception: Exception = TimeoutError('Thread timeout'),
59
59
  ) -> None:
60
60
  call_many_with_timeout(fns, timeout_s, timeout_exception)
@@ -62,8 +62,8 @@ def run_with_timeout(
62
62
 
63
63
  def waitpid_with_timeout(
64
64
  pid: int,
65
- timeout_s: int | float | None = None,
66
- timeout_exception: Exception = TimeoutError('waitpid timeout')
65
+ timeout_s: float | None = None,
66
+ timeout_exception: Exception = TimeoutError('waitpid timeout'),
67
67
  ) -> int:
68
68
  if timeout_s is None:
69
69
  timeout_s = DEFAULT_TIMEOUT_S
omlish/text/parts.py CHANGED
@@ -30,7 +30,7 @@ def _check_part(o: PartT) -> PartT:
30
30
  return o
31
31
 
32
32
 
33
- def _check_optional_part(o: ta.Optional[PartT]) -> ta.Optional[PartT]:
33
+ def _check_optional_part(o: PartT | None) -> PartT | None:
34
34
  if o is None:
35
35
  return None
36
36
  return _check_part(o)
@@ -49,7 +49,7 @@ class Wrap(DataPart, lang.Final):
49
49
 
50
50
 
51
51
  class List(DataPart, lang.Final):
52
- parts: ta.Sequence[ta.Optional[Part]] = dc.xfield(coerce=col.seq_of(_check_optional_part))
52
+ parts: ta.Sequence[Part | None] = dc.xfield(coerce=col.seq_of(_check_optional_part))
53
53
  delimiter: str = dc.field(default=',') # FIXME: , check_type=str)
54
54
  trailer: bool = dc.field(default=False) # FIXME: , check_type=bool)
55
55
 
@@ -252,7 +252,7 @@ class PartRenderer:
252
252
  self._indents -= 1
253
253
 
254
254
 
255
- def render_part(part: Part, buf: ta.Optional[io.StringIO] = None) -> io.StringIO:
255
+ def render_part(part: Part, buf: io.StringIO | None = None) -> io.StringIO:
256
256
  if buf is None:
257
257
  buf = io.StringIO()
258
258
  PartRenderer(buf)(part)
@@ -0,0 +1,31 @@
1
+ Metadata-Version: 2.1
2
+ Name: omlish
3
+ Version: 0.0.0.dev2
4
+ Summary: omlish
5
+ Author: wrmsr
6
+ License: BSD-3-Clause
7
+ Project-URL: source, https://github.com/wrmsr/omlish
8
+ Classifier: License :: OSI Approved :: BSD License
9
+ Classifier: Development Status :: 2 - Pre-Alpha
10
+ Classifier: Intended Audience :: Developers
11
+ Classifier: Operating System :: OS Independent
12
+ Requires-Python: >=3.12
13
+ License-File: LICENSE
14
+ Provides-Extra: async
15
+ Requires-Dist: anyio ; extra == 'async'
16
+ Provides-Extra: http
17
+ Requires-Dist: httpx ; extra == 'http'
18
+ Provides-Extra: server
19
+ Requires-Dist: h11 ; extra == 'server'
20
+ Requires-Dist: h2 ; extra == 'server'
21
+ Requires-Dist: priority ; extra == 'server'
22
+ Requires-Dist: wsproto ; extra == 'server'
23
+ Provides-Extra: sql
24
+ Requires-Dist: sqlalchemy ; extra == 'sql'
25
+ Provides-Extra: test
26
+ Requires-Dist: pytest ; extra == 'test'
27
+ Provides-Extra: wrapt
28
+ Requires-Dist: wrapt ; extra == 'wrapt'
29
+ Provides-Extra: yaml
30
+ Requires-Dist: pyyaml ; extra == 'yaml'
31
+
@@ -0,0 +1,193 @@
1
+ omlish/__about__.py,sha256=3BanwOhpck4tIbH48WwpWzGNif2OkN8tRqBR3xdCzrw,173
2
+ omlish/__init__.py,sha256=47DEQpj8HBSa-_TImW-5JCeuQeRkm5NMpJWZG3hSuFU,0
3
+ omlish/argparse.py,sha256=GQXCFtHdOwMU7xtQGwNBdfKQ5qjPE3Nh3OdY9bqCYYw,6228
4
+ omlish/c3.py,sha256=9MtOvwyYge5bwT-0ZcWRI2GKpy4FbllSPORWHLpPv8E,8031
5
+ omlish/cached.py,sha256=i7uWLRrUrE5N1ofzUf9D3OIsxf-dXkgu4OxCep0CCBk,197
6
+ omlish/check.py,sha256=ABxki6WRMFtpLAxFYSEPh7hrRd4YvPnozV9Ky1WL6Gg,5530
7
+ omlish/defs.py,sha256=yLwj2mQcxm5r9KI89WZ31dR3k_7NQWCqvWOe8_8DLFc,4748
8
+ omlish/docker.py,sha256=glxe9MRNNF_UWYzrHMpEjnR-KrpBkJdcxhDveVYxu2w,4145
9
+ omlish/dynamic.py,sha256=BGYma8aeYvyvzp7dLfgmXmlBjN7IG7ulufdN5QCfefc,6470
10
+ omlish/iterators.py,sha256=Bw2LjK1Fa2jICShmS1yuO61BJX99zBe-Xej6Tt_3B2E,5432
11
+ omlish/json.py,sha256=rrAGEjhVj9F_QndY9yMgoSMKkgUZ8_0aq6HVMXnJcgw,4351
12
+ omlish/libc.py,sha256=o-2YSWv66jPOVfRbMKzeHAAHcP37MeL9ppcoEI_3ISM,15208
13
+ omlish/math.py,sha256=zDp1HqHpIkgz1uV-2phfECBtF_Om2sZ7mpv30MeRuo0,3750
14
+ omlish/os.py,sha256=T77P7_U7jShPXsm_byvXwPoumcmtA0a7KPRvE2GAOhw,950
15
+ omlish/procfs.py,sha256=Mxm3cqHyD_1qlxPpMbz9E-SCrFvg-hESiK6jsD52XSw,9266
16
+ omlish/reflect.py,sha256=G8K7wsq7F1l-ALDKzMx2neAaE3WONN_v-ac_dIcTVRE,9890
17
+ omlish/runmodule.py,sha256=PWvuAaJ9wQQn6bx9ftEL3_d04DyotNn8dR_twm2pgw0,700
18
+ omlish/stats.py,sha256=MTEnz9v6TxuKkBHqnsGJ_nFNufUw4N-cryoK8gwc17g,9928
19
+ omlish/term.py,sha256=FV3XadRnCdF5fPHbR-Mm6hQEM6Hk4v8kkGKDkiuFp8k,5955
20
+ omlish/asyncs/__init__.py,sha256=wsZ2mX_t5eODmh8DxIMrArEPSqJzeL9Z1Cwx6IjITMw,315
21
+ omlish/asyncs/anyio.py,sha256=RC-LHzPkywYD3ix8N21dwE1EQW5P3R66QnWpk4Fm2RY,3096
22
+ omlish/asyncs/asyncio.py,sha256=pSldCmtE9AgVATXb_Vnhjhhz0v2LtqgVXxe7-OFjH0g,414
23
+ omlish/asyncs/asyncs.py,sha256=QhjFUEmfQ6s0thdOxW882UFf7s0qutbd1nkPtVnQgY4,2025
24
+ omlish/asyncs/futures.py,sha256=92t4Fbw6p45BgVwargcZCe8B94tNu3m_ZiVdUW5oL44,5376
25
+ omlish/asyncs/trio.py,sha256=GKG3wgelFr7gIKKHZhcflvMyCvxXHNZe862KB0Xw2uA,370
26
+ omlish/collections/__init__.py,sha256=H1_J6VNBqdmdMb8vjc7LBJ8ULoiawxoz-1cR41twB2k,1526
27
+ omlish/collections/_abc.py,sha256=5ml9uwTNTjOjjpjKEbDfl5Fd7rjFMj12j9lxBR3k_yA,2343
28
+ omlish/collections/_io_abc.py,sha256=1GUeGiJCTEdCTK6zTK7CTRrsox__8b7SFMEFLuV_WIA,1216
29
+ omlish/collections/coerce.py,sha256=2rqjw5YDSuaocgCFWb0zG1b4ixEHYO6wkWSYd6gO7Yc,7028
30
+ omlish/collections/frozen.py,sha256=aE5lECSq2Mk9yjTXr0-LuBRB255NE0Y3gM9AzuBD24c,4073
31
+ omlish/collections/identity.py,sha256=g3JneSoWN8PV6b2-ubum_eoxjPyDAvJl4zdA2jSqzV8,2535
32
+ omlish/collections/indexed.py,sha256=lbMBqMjwy8VRZhEsh0o_PIkP9mk4LP3MHQZxa18Hlzg,2143
33
+ omlish/collections/mappings.py,sha256=5RKtKKg0lMxKgx2E9oJPrSJ9cQq88sPIMPX-Rjfjzps,3188
34
+ omlish/collections/ordered.py,sha256=_nHaDwL6r6iM5xyF3CdaLETU2YUcB1Oaf_4D7O5ZjQA,2322
35
+ omlish/collections/persistent.py,sha256=KG471s0bhhReQrjlmX0xaN9HeAIcrtT264ddZCxsExo,875
36
+ omlish/collections/skiplist.py,sha256=ZIfhk5iQJRUamp2vktXJrE2gHVXBZA-w11P2IM7ppfQ,5979
37
+ omlish/collections/sorted.py,sha256=hUD1-gNtfOFLqAUv3Gv_-8CTheTpp5R5yUgMuY650Ik,3354
38
+ omlish/collections/treap.py,sha256=qrgu1j7RLxLiOxDNtlsWVkmB4PW7rYuORs1DthqfJXw,7066
39
+ omlish/collections/treapmap.py,sha256=ix-7FlMu_sM66umGrWHkfrMDdbu5PHR4R2NXPpv3vTM,4268
40
+ omlish/collections/unmodifiable.py,sha256=3EI-0_UUOqfnJS2ctKmVfMNDWdoTem_eqXRdS6to5lA,4762
41
+ omlish/collections/utils.py,sha256=FqQoRYk-hLw2tigFF0_LZpJftlKE6hYWLksIApN6ueY,3025
42
+ omlish/collections/cache/__init__.py,sha256=UNGRmOOPw9a7ziL63qdncNQUPz4hRu1gek7Nh5M6VfM,396
43
+ omlish/collections/cache/descriptor.py,sha256=cl1JM8QF-pMUGheUGS_QTk3XJV-mzG8xNxih94cUFDI,4977
44
+ omlish/collections/cache/impl.py,sha256=zzI8NlT19j3Jij0CvzJHBdxCbGlN0GCkdXBlKM5g7R4,15053
45
+ omlish/collections/cache/types.py,sha256=AIAzKOqh54HjRMO4l13tscSs2-yy-ckY8j0DVMpfNYA,689
46
+ omlish/configs/__init__.py,sha256=47DEQpj8HBSa-_TImW-5JCeuQeRkm5NMpJWZG3hSuFU,0
47
+ omlish/configs/flattening.py,sha256=hTWY4evlClIoHP1sB7_eyb5qb2KFFDd7ES03H5RV4dU,4720
48
+ omlish/configs/props.py,sha256=y5VdTdWILGYuLEA4XHzuq4quJEZXRKowuM5TqjfX28w,1718
49
+ omlish/dataclasses/__init__.py,sha256=efWzVx2GUXrKNlEyoyvDF1kEFqViibhKLeaIoVifRGg,976
50
+ omlish/dataclasses/impl/__init__.py,sha256=AMTDyZ7mTiDC3wpzI_c8wVwT-kuU5x2AfCzH82F_vus,232
51
+ omlish/dataclasses/impl/api.py,sha256=AaE3wTjjChya9IPzp3bk4ziKFAygf-GD_S-8-oE3wgw,6182
52
+ omlish/dataclasses/impl/as_.py,sha256=AVS7nY7oUq-ghiOBLyf_QGrRw8c3t11PCVofcj6lI30,2582
53
+ omlish/dataclasses/impl/exceptions.py,sha256=YqPD4h_e5HE8MdP3Eakj1pfdMPmXXTSMSkybbH2qRIQ,42
54
+ omlish/dataclasses/impl/fields.py,sha256=sFI8lAYan7qGpcejbPMmHShYMCbwXPxtTbPebluEpPY,4253
55
+ omlish/dataclasses/impl/frozen.py,sha256=q2bq8-evo_psL1CPuvgDs22L1FoVUz3nauwQzEmwItc,1676
56
+ omlish/dataclasses/impl/hashing.py,sha256=FKnHuXCg9ylrzK2TLGqO5yfRN4HX3F415CSLlVYXtYE,3190
57
+ omlish/dataclasses/impl/init.py,sha256=ytk4e3u2JNvfU9UL-V2hjFC3bh-y69I-WkdW5LQrogI,5550
58
+ omlish/dataclasses/impl/internals.py,sha256=Nx0-8TpAQwAO_X1jwVwFE7XVXO8D0vvtmzFcLwjQcFs,2992
59
+ omlish/dataclasses/impl/main.py,sha256=gANq32eOkNXWDLdJ3MgPFKiviE-m0ao8ryjF52Hg1xs,5129
60
+ omlish/dataclasses/impl/metaclass.py,sha256=NSPajE4ayV83Fem7XXJDXItix-klkV19p5L-f5OtIE8,2712
61
+ omlish/dataclasses/impl/metadata.py,sha256=HGqAtMcP422X4kPx93btcxE-n4guBFm6-N-S4nobgk4,1407
62
+ omlish/dataclasses/impl/order.py,sha256=VWgZtRYfjDBZ1QD2kfh4YBPTPEVBflplvNIxI2bYJIs,1361
63
+ omlish/dataclasses/impl/params.py,sha256=M-xg9IeFftVy795oqlp7Yw8jE-7wG2K4vaFhXHKmL1k,2538
64
+ omlish/dataclasses/impl/processing.py,sha256=iUvaNwRAt8rQsLIIkvRye5rfk6xhgR35EbcdwZCZec8,366
65
+ omlish/dataclasses/impl/reflect.py,sha256=nw8OkZkVloQEhpIwXkuQAIQKT8XxI_eOmi0ZNAIb_IY,5000
66
+ omlish/dataclasses/impl/replace.py,sha256=Y0PfqKkYzJh5CzHtjCeX9ETpkIz2eIV593RfYjeAeIU,1209
67
+ omlish/dataclasses/impl/repr.py,sha256=zUGbvKuRuXaS5_1Yzv6cTwI2PkLbVynFYgSbUs15ehc,1591
68
+ omlish/dataclasses/impl/simple.py,sha256=EovA-GpmQYtB_svItO2byTAWqbKGF4njz0MdQts3QBU,3157
69
+ omlish/dataclasses/impl/slots.py,sha256=_sm-x9v1tPnXEHBHNUMTHZocgVyhZaPdvamIPPBUVyk,2635
70
+ omlish/dataclasses/impl/utils.py,sha256=iKifHElx7FQy_PMbT3UyxZfPl8wKDOZoXBVCEX9pUIU,6098
71
+ omlish/dispatch/__init__.py,sha256=GsiGJ91NKiQptSROtnCSkrZExBkvfDwYvdoTu5dBqF0,117
72
+ omlish/dispatch/dispatch.py,sha256=1NtKIaH3ev8uBHT8tpvFnJpVcMUyxacAKR7hJz4WwJ8,3757
73
+ omlish/dispatch/functions.py,sha256=8OyKJwO_KdFufE9bwCyI_UFa2VGBdll3fDmpVk9JfiI,1514
74
+ omlish/dispatch/methods.py,sha256=9rt9hsGVQfl3DPqqRW0cH19ks6BfcIEYRXC75t9IpK4,5856
75
+ omlish/graphs/__init__.py,sha256=47DEQpj8HBSa-_TImW-5JCeuQeRkm5NMpJWZG3hSuFU,0
76
+ omlish/graphs/trees.py,sha256=rjjhOTKyXeb0Wm884BUtGEG7ME__q1nK70wETtz1f34,8282
77
+ omlish/graphs/dot/__init__.py,sha256=6-LAx7ytHFQvfLrnxVQG1s8xmApgblERJJCTB2knOHk,642
78
+ omlish/graphs/dot/items.py,sha256=OWPf0-hjBgS1uyy2QgAEn4IgFHJcEg7sHVWeTx1ghZc,4083
79
+ omlish/graphs/dot/rendering.py,sha256=hUSJ5HvSvxnTIC9ynSxxP8IJnVH6quEeDbLzNlUnmuk,3626
80
+ omlish/graphs/dot/utils.py,sha256=_FMwn77WfiiAfLsRTOKWm4IYbNv5kQN22YJ5psw6CWg,801
81
+ omlish/http/__init__.py,sha256=47DEQpj8HBSa-_TImW-5JCeuQeRkm5NMpJWZG3hSuFU,0
82
+ omlish/http/consts.py,sha256=reOpgv7NHAHLqUblYgfT5-hZVngkZfMJfCz9P41JdlU,696
83
+ omlish/http/wsgi.py,sha256=czZsVUX-l2YTlMrUjKN49wRoP4rVpS0qpeBn4O5BoMY,948
84
+ omlish/inject/__init__.py,sha256=U7arFpIjcGfT209mKAqyARn1M1-KG7whS6kXa0rplB0,1231
85
+ omlish/inject/binder.py,sha256=hkT2dw_VSOkYTP4Mn1gvEFKeWPb-O_koFeSSsB8eNx4,278
86
+ omlish/inject/bindings.py,sha256=_GeM_w-QdPa_UMeVFluuGPf-9UCzvOqzo1gL0AEfqtc,1129
87
+ omlish/inject/eagers.py,sha256=ITpV2FoIzP2xJs4XtzEKTWP0QktLw1aPSWTxmNVJcPA,372
88
+ omlish/inject/elements.py,sha256=Ix3Jjz22CoAjMwJJ27DicO4OgIoS3Kzo-3ymWe7lSYw,959
89
+ omlish/inject/exceptions.py,sha256=j8XaFNZqnH9Nkw4J0ERCxQYej2UY-7i3dV87ANVJShk,656
90
+ omlish/inject/injector.py,sha256=ewnyHj50KfanQFJU8Il2MtulpaHQYgXuDZMqWud_IHE,927
91
+ omlish/inject/inspect.py,sha256=PriB5cqqTYSz_FnLxoxIRAOp9fR9CMSILfvh-V26wxA,206
92
+ omlish/inject/keys.py,sha256=ihDlt4b8mPNRyEmg2EOEsTQ7e4NSVh7nVDq2JEC4OVY,759
93
+ omlish/inject/managed.py,sha256=hXVl8eLMrCaEwPv6glB9Dfr5EM_y1fBQwrZ2eu2XxsQ,627
94
+ omlish/inject/overrides.py,sha256=k-WjyslF-pZmsYwzrDDsFNgqcl0Ao3CufHCoN0LDCAU,391
95
+ omlish/inject/private.py,sha256=brBCsI-lZHPoouAij7_Eja44nkT-HxweG6eSVIhtXMA,592
96
+ omlish/inject/providers.py,sha256=VKc2vKiJN4GdWn7Vp1Su3zTBZe2PnH0h256qusrHMnU,1999
97
+ omlish/inject/proxy.py,sha256=N2JlA0a180n8SZumyFjCI0uA4_gY35Lvocubh-Fu0fg,1602
98
+ omlish/inject/scopes.py,sha256=hecYiZwZ3H31cnTgfP01-duTM8OgllwxtvQKpzyHDSU,2033
99
+ omlish/inject/types.py,sha256=CP3ltWxRtmR2Iqz1Qd7CvaTHQYV4st5FPiNDBN8tmn0,235
100
+ omlish/inject/impl/__init__.py,sha256=47DEQpj8HBSa-_TImW-5JCeuQeRkm5NMpJWZG3hSuFU,0
101
+ omlish/inject/impl/bindings.py,sha256=8H586RCgmvwq53XBL9WMbb-1-Tdw_hh9zxIDCwcHA1c,414
102
+ omlish/inject/impl/elements.py,sha256=kmQe4oPsJ6c2zvORhIpzKlpk85epzUYa4kRxTjRcI0Q,4547
103
+ omlish/inject/impl/injector.py,sha256=1Y5n8CBlQws6NyKKjVpmQE8Hda_A6Sy7q4buA7syLa4,5536
104
+ omlish/inject/impl/inspect.py,sha256=5RqklVMlvAAHLcv_qWsLK5CWm2MLeMOAxiYyYrNRdtU,2533
105
+ omlish/inject/impl/private.py,sha256=MiYvs-EiFrla4FQnoqmqGpYx784ij33p0obAS57HOCQ,2611
106
+ omlish/inject/impl/providers.py,sha256=m0c9AAY849P6egYBOsSCkSoSBc8So7Zbmlo6gZwzTIw,3302
107
+ omlish/inject/impl/scopes.py,sha256=2kHOF117qUqxuCaRVKQ_UB5jnorN3FpLeujYKs3Ezhg,5624
108
+ omlish/lang/__init__.py,sha256=37xUOaRiymMaCfreCdG7dyZEnqeVEWdoHgufl_pjTcA,2655
109
+ omlish/lang/cached.py,sha256=Q1IGjGyK_kF9Zfmoi0o-9Iu2HVOYIcvw73DhRHm_2sA,7623
110
+ omlish/lang/clsdct.py,sha256=H11Bn5ay8GS_ny9wmU_LrDTqDCoAlxFkylw7O1mt6hw,1734
111
+ omlish/lang/cmp.py,sha256=6THoTpGbZ7H-OaL8XHCD3asVxr5yIODvSXZYVLLeiaA,1346
112
+ omlish/lang/contextmanagers.py,sha256=sKpnOfyztaXqKvQBTn3h8gbpjGYREdVKpqw1MsvmOIc,6023
113
+ omlish/lang/datetimes.py,sha256=vZ-wZXcQUuYKv59FcWfBD36d5DiHUDG5nIPW8-nhYng,2022
114
+ omlish/lang/descriptors.py,sha256=pS8b57P1ELAj7v-rYietOuMoJY8GWC0k91vC2llHYXc,1892
115
+ omlish/lang/exceptions.py,sha256=JLhQ50ShyGlfuZAPc43gB6Ox7AaifiOMB-33S9b4rco,39
116
+ omlish/lang/functions.py,sha256=R1cMxegrOCubeFNxNpLSjB-sRonZaYBa1ih94gwlN1I,3425
117
+ omlish/lang/imports.py,sha256=sc1zlSKMpKqUN6VCPpFnECjYDFDIIAYwGYoWnH24YIw,4045
118
+ omlish/lang/iterables.py,sha256=8QvUu9NYtlzFE078WiJbbjPs391sJAapui_L0JAUEeQ,1043
119
+ omlish/lang/maybes.py,sha256=XXkgFcHTHXhUEbs1oFu6DrTU6gFVv1xlIs0HTD3yPAc,3406
120
+ omlish/lang/objects.py,sha256=LIkPDecGJQmP22ozro4Wql8CDJc_u0-liqI9xm0RIjE,2682
121
+ omlish/lang/resolving.py,sha256=tzJVo7adlXtq9EQ6-NnWVzlpmrhjhtb9v3RafGjVgnE,1581
122
+ omlish/lang/strings.py,sha256=eakasKxws7KaKYqjogympXwGUOLqh_lUpAZwvNux1b4,2372
123
+ omlish/lang/timeouts.py,sha256=vECdWYhc_IZgcal1Ng1Y42wf2FV3KAx-i8As-MgGHIQ,1186
124
+ omlish/lang/typing.py,sha256=TnoS-zy1hRmcDQS8ZEoN_mkFo_MYhOyZTBJJ3ClMqaI,2346
125
+ omlish/lang/classes/__init__.py,sha256=s0C44dNoMUi3wEo07-IICPKpU7cikC9XgTGiGOXdpb4,538
126
+ omlish/lang/classes/abstract.py,sha256=sQxEZFKA4_EdQrCWk8dY_5JEoqPwBldQEXMmy2S-8j8,2288
127
+ omlish/lang/classes/restrict.py,sha256=VK37QAnIFYZF2mTNiV9ub6xxAPAN6uvWhH_Gr9KjWtU,3116
128
+ omlish/lang/classes/simple.py,sha256=QwKP2Y6fWb2xY59RDp8GTUN90NjRylFT4JvT5Xyl5lo,2656
129
+ omlish/lang/classes/virtual.py,sha256=ypN8yfI48ZljvNwk7i0rLr6wqX9LNfPwc1Ap3QH8gbI,3261
130
+ omlish/lang/classes/test/__init__.py,sha256=47DEQpj8HBSa-_TImW-5JCeuQeRkm5NMpJWZG3hSuFU,0
131
+ omlish/lang/classes/test/test_abstract.py,sha256=B0Dh8X7SaeoRGmxF8bL7WOsDdSQ-GRex_6SzoZ23fd4,1381
132
+ omlish/lang/classes/test/test_restrict.py,sha256=QRjbSQozTz1gi9XQbZeyWrgmph4ZRDJfdA1CBwJrZ8M,1115
133
+ omlish/lang/classes/test/test_simple.py,sha256=jdGHD3yuzCZvdRB_s-UjXPwffUb_VBozcj2sdzKn-Y8,1300
134
+ omlish/lang/classes/test/test_virtual.py,sha256=2LIDrGMSZuEldNMFkK5Bkc0OPXUIEBCBv_OzcytqCA0,1263
135
+ omlish/logs/__init__.py,sha256=V8jEdb5rj9Dli0b9qtR0ZYstRoIlxWqbU38UmEOXbfY,419
136
+ omlish/logs/_abc.py,sha256=dymUQp-Ze-WclWbf7qu5bYKdkduRDF0Zg-m3gFLra6g,5919
137
+ omlish/logs/configs.py,sha256=vW4QMZKqeEBbtQY0JEi-VKBIt0CuLgcGDgG8aTlgmC0,1762
138
+ omlish/logs/filters.py,sha256=WUjM-mQvK-IdWW3sxZRlBvnUdp-xbi0OFJqpddhas5Q,165
139
+ omlish/logs/formatters.py,sha256=4k3VkhDh-EH9aqj0-kwEjdoBcccQdKEWyR69mc9TYvs,1790
140
+ omlish/logs/utils.py,sha256=YuV9x3Ta5-qXAMqtWQ8Gc8ARNw1NFjY1jN5tPo-zKQM,384
141
+ omlish/marshal/__init__.py,sha256=8kNPJUBApx6pt2-M3wiaC0o3JXF-c9nu8MUZ_h_fg4E,821
142
+ omlish/marshal/any.py,sha256=uWGEeBWaJvh5hjaGKIBL0ogGCg1jKH0Rq_onECYpHVs,821
143
+ omlish/marshal/base.py,sha256=ikRwwqbi-HwQeH4y9iFI19LvHY7d7ykcpNTAb8yElwY,5136
144
+ omlish/marshal/base64.py,sha256=kdkkFXjYaKx6iHxMM_7vYfaX-KUM3wXN3vzsOmBbou4,863
145
+ omlish/marshal/dataclasses.py,sha256=uTjpSxRtVJLWJr5-Bmb_PMGpRhr2gJjaL3oR2pToR1I,3522
146
+ omlish/marshal/datetimes.py,sha256=5q1CQEadI5OMDYrToHNrl3NyIuD_0GAohCgKU-HjkEs,2287
147
+ omlish/marshal/enums.py,sha256=xItDDXHoIsCL_wnhRZmTpK1zy6P0dYouOcbfPGFvyxE,1224
148
+ omlish/marshal/exceptions.py,sha256=wh4VEDoTDVA0xYHlQA0MDwVTzEmMem73pbrMeactwRc,146
149
+ omlish/marshal/factories.py,sha256=4Vt5Vr4r_toZQHGt_fTmcmG-gJoaZcpr6GJMU1P2lhA,2932
150
+ omlish/marshal/global_.py,sha256=MpGFqcITa4zbWVnw6_E-UeusxEDj4g9UaEkm4VMVOdI,743
151
+ omlish/marshal/iterables.py,sha256=ZHmvT79_i2m4bCahcuEE9aeeOukjtZhYnROCnxP53y8,2168
152
+ omlish/marshal/mappings.py,sha256=4bh1pdbvUh42Xp3mWQQa4J6da7MADmsuO029uqIYk3w,2469
153
+ omlish/marshal/naming.py,sha256=QQtw_w_YuJr4Fg-tihonOaQn_XCNixMdtgMHaRkSq6w,325
154
+ omlish/marshal/objects.py,sha256=s7vbhlxD2f68LokZRIncswnBhXJhMsn1o1s43iYt7Ro,2765
155
+ omlish/marshal/optionals.py,sha256=zZN34AGXkHobJRzM1g4UcW6jw82La8moPH5tmyxy9rc,1508
156
+ omlish/marshal/polymorphism.py,sha256=9sFTwrAjqJ4J7lRAXQZgV1jucSkgeQd7IHs4xJnEDLE,3858
157
+ omlish/marshal/primitives.py,sha256=N7kXrdxz5CIrDnPnsYMdo0xLjEfMnVfKXLMANDu-L6Y,1139
158
+ omlish/marshal/registries.py,sha256=mQKcPMfb30BwZ8yPsugPWYI6uaVo2gCfgwXdZnOIgVc,1652
159
+ omlish/marshal/standard.py,sha256=MPmtJH3B_LqeoSwQsxKjUm65-cq6albBc8z-gxyKAj4,2442
160
+ omlish/marshal/utils.py,sha256=z-lylzSZpy2iw4afSOQTUIo45v5QW46dqimeYngLn7Y,489
161
+ omlish/marshal/uuids.py,sha256=_htkeMt1a6FUNBlstZIy2rrB1-1DiavV5dZrjSQNYVM,952
162
+ omlish/marshal/values.py,sha256=gKF99zPwE9JQw5hExyRFVOvedpUCHI3mqS_X-1ixTho,255
163
+ omlish/replserver/__init__.py,sha256=uLo6V2aQ29v9z3IMELlPDSlG3_2iOT4-_X8VniF-EgE,235
164
+ omlish/replserver/__main__.py,sha256=LmU41lQ58bm1h4Mx7S8zhE_uEBSC6kPcp9mn5JRpulA,32
165
+ omlish/replserver/console.py,sha256=qbR-m6DjTNUpJo7FqvQZ5u5t3ceuWySLmEVIZa81aM4,7486
166
+ omlish/replserver/server.py,sha256=z6MFa9uVBKbpw2NkSKzQWBeo27ab0quBRjUcmAw9TCs,4850
167
+ omlish/sql/__init__.py,sha256=47DEQpj8HBSa-_TImW-5JCeuQeRkm5NMpJWZG3hSuFU,0
168
+ omlish/sql/_abcs.py,sha256=HLhnnLZ7l0r_N99I-RCqJe6VHth-9iluU7cR-7-5jfs,1519
169
+ omlish/sql/dbs.py,sha256=JxcJm3JIcsb7i-t9L0KU9WhAc26QsKUL6ZL6puy3IXI,1763
170
+ omlish/testing/__init__.py,sha256=l13axR7dyVE9T1e6w1pMYtAkW3vS2J97nBcYQ1FUv18,136
171
+ omlish/testing/pydevd.py,sha256=qr75fiWLqzDCHRcxRKpBKYJt6fS4jvQavIZ_wLPy11I,5622
172
+ omlish/testing/testing.py,sha256=TaLELNrPx42_-EEqJygDYyQOtEdjXP4KqgLGu6juHmU,2470
173
+ omlish/testing/pytest/__init__.py,sha256=diebkOX565JdY7HIDMJVLlj3pcFnlK-spv6YIlD77oA,176
174
+ omlish/testing/pytest/helpers.py,sha256=DKZXQGqKpDiQAh0SuYrzvJ8usJbTnuVQFDpuDmQD_Oc,912
175
+ omlish/testing/pytest/inject/__init__.py,sha256=pdRKv1HcDmJ_yArKJbYITPXXZthRSGgBJWqITr0Er38,117
176
+ omlish/testing/pytest/inject/harness.py,sha256=QKpzHcbQ3kwHcuTDZdYsNd7vYBlxmzA3_qmZMkJTgpQ,5034
177
+ omlish/testing/pytest/plugins/__init__.py,sha256=BVXbNpxBMvncdMoyfuVAnnV9DqCdvrICC5zY6bzYVDQ,374
178
+ omlish/testing/pytest/plugins/_registry.py,sha256=IK04KlBgiOJxKAyCCgjpX2R-9tE-btalYJkgjLc8Te8,77
179
+ omlish/testing/pytest/plugins/logging.py,sha256=1zs6Xe54wiaSjabCviaFXwKkoN97CKm3mA5mEoUeJGs,380
180
+ omlish/testing/pytest/plugins/pydevd.py,sha256=9tjesLOJYvnE3vyZICUDin8paz-q0LkG4REBr-6YGEM,306
181
+ omlish/testing/pytest/plugins/repeat.py,sha256=flSQzE9GFOWksVKz-mUGnpxJpv3yRqn1G4K8pW7JHs0,498
182
+ omlish/testing/pytest/plugins/skips.py,sha256=EoZDg1uWccgbAegmzqI85c7RliycD1e2J4Y7vfDRhwM,1041
183
+ omlish/testing/pytest/plugins/spacing.py,sha256=JQQhi9q3c523Ro1a_K_9RGAb7HotiO74N8bYX2VESFE,707
184
+ omlish/testing/pytest/plugins/switches.py,sha256=JvEJGViC_Ga7z6-TAQ30aPql2RdzlJtngDGZTNhrBr0,1818
185
+ omlish/text/__init__.py,sha256=47DEQpj8HBSa-_TImW-5JCeuQeRkm5NMpJWZG3hSuFU,0
186
+ omlish/text/delimit.py,sha256=G34PsRMtC7XzdS5WyMQO5trK0Ql9X5ZgdvSYw0Pw-Y8,4923
187
+ omlish/text/indent.py,sha256=6Jj6TFY9unaPa4xPzrnZemJ-fHsV53IamP93XGjSUHs,1274
188
+ omlish/text/parts.py,sha256=KGgo0wHOIMVMZtDso-rhSWKAcAkYAH2IGpg9tULabu8,6505
189
+ omlish-0.0.0.dev2.dist-info/LICENSE,sha256=B_hVtavaA8zCYDW99DYdcpDLKz1n3BBRjZrcbv8uG8c,1451
190
+ omlish-0.0.0.dev2.dist-info/METADATA,sha256=Bp9JYXyUvjsUTK6x59F-Uz7LCBVqMLM0GDiJ4CYQ-2Y,953
191
+ omlish-0.0.0.dev2.dist-info/WHEEL,sha256=Z4pYXqR_rTB7OWNDYFOm1qRk0RX6GFP2o8LgvP453Hk,91
192
+ omlish-0.0.0.dev2.dist-info/top_level.txt,sha256=pePsKdLu7DvtUiecdYXJ78iO80uDNmBlqe-8hOzOmfs,7
193
+ omlish-0.0.0.dev2.dist-info/RECORD,,
@@ -1,5 +1,5 @@
1
1
  Wheel-Version: 1.0
2
- Generator: setuptools (70.2.0)
2
+ Generator: setuptools (70.3.0)
3
3
  Root-Is-Purelib: true
4
4
  Tag: py3-none-any
5
5
 
@@ -1,54 +0,0 @@
1
- import threading
2
-
3
- from ... import pydevd as opd
4
- from ._registry import register
5
-
6
-
7
- @register
8
- class PycharmPlugin:
9
-
10
- def pytest_addoption(self, parser):
11
- parser.addoption('--no-pycharm-debug', action='store_true', default=False, help='Disables pycharm debugging')
12
-
13
- def pytest_collection(self, session):
14
- setup = opd.get_setup()
15
- if setup is not None:
16
- if hasattr(session.config, '_env_timeout'):
17
- session.config._env_timeout = None
18
-
19
- def pytest_exception_interact(self, node, call, report):
20
- if node.session.config.option.no_pycharm_debug:
21
- return report
22
-
23
- try:
24
- import pydevd
25
- from pydevd import pydevd_tracing
26
- except ImportError:
27
- return report
28
-
29
- exctype, value, traceback = call.excinfo._excinfo
30
- frames = []
31
- while traceback:
32
- # FIXME: 3.12 DUPLICATE FRAME IDENTITIES!! prob same shit as greenlet/trio, need to 'pin'
33
- # FIXME: uhh it happens in 3.11 too and that works lol
34
- frames.append(traceback.tb_frame)
35
- traceback = traceback.tb_next
36
-
37
- thread = threading.current_thread()
38
- frames_by_id = {id(frame): frame for frame in frames}
39
- frame = frames[-1]
40
- exception = (exctype, value, traceback)
41
-
42
- if hasattr(thread, 'additional_info'):
43
- thread.additional_info.pydev_message = 'test fail'
44
- try:
45
- debugger = pydevd.debugger
46
- except AttributeError:
47
- debugger = pydevd.get_global_debugger()
48
-
49
- pydevd_tracing.SetTrace(None)
50
-
51
- debugger.stop_on_unhandled_exception(thread, frame, frames_by_id, exception)
52
- # debugger.handle_post_mortem_stop(thread, frame, frames_by_id, exception)
53
-
54
- return report
@@ -1,17 +0,0 @@
1
- Metadata-Version: 2.1
2
- Name: omlish
3
- Version: 0.0.0.dev1
4
- Summary: omlish
5
- Author: wrmsr
6
- License: BSD-3-Clause
7
- Project-URL: source, https://github.com/wrmsr/omlish
8
- Classifier: License :: OSI Approved :: BSD License
9
- Classifier: Intended Audience :: Developers
10
- Classifier: Programming Language :: Python :: 3
11
- Classifier: Programming Language :: Python :: 3 :: Only
12
- Classifier: Programming Language :: Python
13
- Classifier: Programming Language :: Python :: Implementation :: CPython
14
- Classifier: Operating System :: OS Independent
15
- Requires-Python: >=3.11
16
- License-File: LICENSE
17
-
@@ -1,187 +0,0 @@
1
- omlish/__about__.py,sha256=tufbxEdmcqeXJjAIaSs3arB5oWQQbTjN4Dg6FeZ9HWE,173
2
- omlish/__init__.py,sha256=47DEQpj8HBSa-_TImW-5JCeuQeRkm5NMpJWZG3hSuFU,0
3
- omlish/argparse.py,sha256=qwLj7kva21aYsNWnj3De7YO5PO49Fhy9Vn2VR0_4l4A,6252
4
- omlish/c3.py,sha256=mRXKlE5Zj9i-sa1SMsP4CWUDBvxOXkFFImx_alzNkz0,8048
5
- omlish/cached.py,sha256=i7uWLRrUrE5N1ofzUf9D3OIsxf-dXkgu4OxCep0CCBk,197
6
- omlish/check.py,sha256=JrS8mXt_s6-MBcHIToqsg8rfznBVWGRuTE8TsMiVMCs,5562
7
- omlish/defs.py,sha256=yLwj2mQcxm5r9KI89WZ31dR3k_7NQWCqvWOe8_8DLFc,4748
8
- omlish/docker.py,sha256=GLEScMfPIUDzwkHq53XzXgeqqx6DY21_0m7vZDvDcSA,4060
9
- omlish/dynamic.py,sha256=fCQFa0F1zngUnKC-1OX87h5fZBY3Ius0lBX-oKuYtaU,6509
10
- omlish/iterators.py,sha256=ycr0xd-IiC0VUnX9r-68AudvUeazhrICvcpcqVrmDFs,4429
11
- omlish/json.py,sha256=rrAGEjhVj9F_QndY9yMgoSMKkgUZ8_0aq6HVMXnJcgw,4351
12
- omlish/libc.py,sha256=Fb5atbCoF7mF5DOMfTewAsBy3qLnaqXEOvFhVdbK2_8,15216
13
- omlish/math.py,sha256=zDp1HqHpIkgz1uV-2phfECBtF_Om2sZ7mpv30MeRuo0,3750
14
- omlish/os.py,sha256=3j3qE8EPb0MWuo38ehWA6Y0c3ecq3l0W2rprBKggeUQ,808
15
- omlish/reflect.py,sha256=NQVjivViMt9rcKtlgmG07mJCV40UcjhOSIWn55wOtuM,10222
16
- omlish/runmodule.py,sha256=PWvuAaJ9wQQn6bx9ftEL3_d04DyotNn8dR_twm2pgw0,700
17
- omlish/stats.py,sha256=Iy6IHt3ani2B9GizkD-7rR8n-l1V8MoEHX_dQno1GM0,9946
18
- omlish/term.py,sha256=FV3XadRnCdF5fPHbR-Mm6hQEM6Hk4v8kkGKDkiuFp8k,5955
19
- omlish/asyncs/__init__.py,sha256=wsZ2mX_t5eODmh8DxIMrArEPSqJzeL9Z1Cwx6IjITMw,315
20
- omlish/asyncs/anyio.py,sha256=PRcr4E4WaixVAlxTN7EOiqUadZBFAuKN09X66vPC8XA,799
21
- omlish/asyncs/asyncio.py,sha256=pSldCmtE9AgVATXb_Vnhjhhz0v2LtqgVXxe7-OFjH0g,414
22
- omlish/asyncs/asyncs.py,sha256=QhjFUEmfQ6s0thdOxW882UFf7s0qutbd1nkPtVnQgY4,2025
23
- omlish/asyncs/futures.py,sha256=GovsvXQycKyQMexbwgbHcfhA5hnRAbUcE4nCYjwJ8WM,5450
24
- omlish/asyncs/trio.py,sha256=GKG3wgelFr7gIKKHZhcflvMyCvxXHNZe862KB0Xw2uA,370
25
- omlish/collections/__init__.py,sha256=fxMXq9Vi-zN8aDHDarKr6_tcT4vAhC6s5Y8uPPv6RSE,2608
26
- omlish/collections/_abc.py,sha256=5ml9uwTNTjOjjpjKEbDfl5Fd7rjFMj12j9lxBR3k_yA,2343
27
- omlish/collections/_io_abc.py,sha256=1GUeGiJCTEdCTK6zTK7CTRrsox__8b7SFMEFLuV_WIA,1216
28
- omlish/collections/coerce.py,sha256=cn7SODjGxtrsczaWBz8-UGF2We-AXXxWPfpEZ5fwW1U,7409
29
- omlish/collections/frozen.py,sha256=jWWdukhJ0mvmcw4r7gzLX1dkcKSq280ZzMX0X9s_6J4,4094
30
- omlish/collections/identity.py,sha256=W1a8zTND8W4txnyq0I2N23vUEKWWZyuOUhQJ56yqc70,2541
31
- omlish/collections/indexed.py,sha256=lbMBqMjwy8VRZhEsh0o_PIkP9mk4LP3MHQZxa18Hlzg,2143
32
- omlish/collections/mappings.py,sha256=NpvuCmoFk3gt-9PPsvGWJ5RnDMyLnkmhv_7Mm-inCtw,3202
33
- omlish/collections/ordered.py,sha256=X6PEjlWUiemnJlxVQjmepkmSaW9t2JGkErMPb9jGoKI,2328
34
- omlish/collections/persistent.py,sha256=KG471s0bhhReQrjlmX0xaN9HeAIcrtT264ddZCxsExo,875
35
- omlish/collections/skiplist.py,sha256=5wNvXPQim7p8qPkWuDlV5bQ1tvAA1hbGi2PDMWrT1bw,6008
36
- omlish/collections/sorted.py,sha256=9BLYs0E-KYtma0EpIg8Vh3odRcBLvsvHJufk6xHm1HA,3372
37
- omlish/collections/treap.py,sha256=g8WJ_x7ZINOralNDOO5cJ1-38-NL6Uv6EstlYDKr_rI,7204
38
- omlish/collections/treapmap.py,sha256=WHolsoeLaDu7YLZVJ6C72_ks02hLsJoskWoFt6sdniI,4280
39
- omlish/collections/unmodifiable.py,sha256=_56I3_6w7mL-KdBwyCeS5RF5SjBS87BNvk6I_LZOyxA,4828
40
- omlish/collections/utils.py,sha256=FqQoRYk-hLw2tigFF0_LZpJftlKE6hYWLksIApN6ueY,3025
41
- omlish/collections/cache/__init__.py,sha256=UNGRmOOPw9a7ziL63qdncNQUPz4hRu1gek7Nh5M6VfM,396
42
- omlish/collections/cache/descriptor.py,sha256=ul5OLhFexc-UdytXucwVrlNvJRh7SfH6HXIC0FenxHk,4982
43
- omlish/collections/cache/impl.py,sha256=CXtHbI2lDD7XOSByqlqSPEhqes8bj4fp1r1RLivoBaU,15095
44
- omlish/collections/cache/types.py,sha256=AIAzKOqh54HjRMO4l13tscSs2-yy-ckY8j0DVMpfNYA,689
45
- omlish/configs/__init__.py,sha256=47DEQpj8HBSa-_TImW-5JCeuQeRkm5NMpJWZG3hSuFU,0
46
- omlish/configs/flattening.py,sha256=Jtec-wvvtieyfGad6sLpGy4dz6fh9ysoyRlj4or58go,4729
47
- omlish/configs/props.py,sha256=upz1eNjMlIdZayYIr8XNJ3jffD3SmVRY6B7tKPG2m1o,1724
48
- omlish/dataclasses/__init__.py,sha256=efWzVx2GUXrKNlEyoyvDF1kEFqViibhKLeaIoVifRGg,976
49
- omlish/dataclasses/impl/__init__.py,sha256=T0Na-7M1a112REvOD0ArW8b_h5kG_xi_IReDD1f7oaU,111
50
- omlish/dataclasses/impl/api.py,sha256=sWjT3ETTzmc-6lF0L13PYuSMbYoEkQEZPSgE5OKojwg,6315
51
- omlish/dataclasses/impl/as_.py,sha256=AVS7nY7oUq-ghiOBLyf_QGrRw8c3t11PCVofcj6lI30,2582
52
- omlish/dataclasses/impl/exceptions.py,sha256=YqPD4h_e5HE8MdP3Eakj1pfdMPmXXTSMSkybbH2qRIQ,42
53
- omlish/dataclasses/impl/fields.py,sha256=Cl6hmDol5deEC3xNvXnA2_Q4AqXlOtrggoiWc-3sUjY,4252
54
- omlish/dataclasses/impl/frozen.py,sha256=q2bq8-evo_psL1CPuvgDs22L1FoVUz3nauwQzEmwItc,1676
55
- omlish/dataclasses/impl/hashing.py,sha256=FKnHuXCg9ylrzK2TLGqO5yfRN4HX3F415CSLlVYXtYE,3190
56
- omlish/dataclasses/impl/init.py,sha256=tZhJFPS_iIiAOvmKMqOXYCLIovgHbmybAOQDZeD6tQE,5552
57
- omlish/dataclasses/impl/internals.py,sha256=IiTGSXmiWtq7a0qf0ulqk8t1qyBH6jxojI3ik3g4qIU,2750
58
- omlish/dataclasses/impl/main.py,sha256=0gFn72EojU-qpJxOmOu2Z29oezUIjVlEWaz6jeXktbA,5139
59
- omlish/dataclasses/impl/metaclass.py,sha256=V-E_RrbNgYX7VeaY5brXzS6UskVHxo1adam6Cf8TaVA,2711
60
- omlish/dataclasses/impl/metadata.py,sha256=o0kpJSRy4-TPpiDGKwONscJ-e_MbjOeiCmNTfd80yGQ,1416
61
- omlish/dataclasses/impl/order.py,sha256=MSywv2H4a5wz8Syr4tXmwanc3T6om40oQYrWXHsYog0,1360
62
- omlish/dataclasses/impl/params.py,sha256=wy78zmwc-e3uoK_MAu1B_oFuZgI36GwkYfmRXUnpgQc,3194
63
- omlish/dataclasses/impl/processing.py,sha256=iUvaNwRAt8rQsLIIkvRye5rfk6xhgR35EbcdwZCZec8,366
64
- omlish/dataclasses/impl/reflect.py,sha256=pSKRHkSpS3sXfmybG2T0QIf0NPFA_ue1qIjjautLv4Y,5153
65
- omlish/dataclasses/impl/replace.py,sha256=Y0PfqKkYzJh5CzHtjCeX9ETpkIz2eIV593RfYjeAeIU,1209
66
- omlish/dataclasses/impl/repr.py,sha256=0BUwgpjPWP5PvaPuzOXnkJwQWLIijbbgrhs__bdpR90,871
67
- omlish/dataclasses/impl/simple.py,sha256=yDC81SMOpyxofUCi6Tvim4xRfQ5lU6XteSoQbZ0wAPc,3161
68
- omlish/dataclasses/impl/slots.py,sha256=nN8Z1_JNB6lEBs5lhB9m9RqcmIwqTcuOyh8fpBx47IY,2633
69
- omlish/dataclasses/impl/utils.py,sha256=Lg7sMCtf4-MpjZVm6dRtNWXqgOF01JM-PZZqsBk6RCY,6122
70
- omlish/dispatch/__init__.py,sha256=GsiGJ91NKiQptSROtnCSkrZExBkvfDwYvdoTu5dBqF0,117
71
- omlish/dispatch/dispatch.py,sha256=zEepb5CFqO_CS7utl9y81FYIz3CXDCvGYudOpUbZ2bo,3766
72
- omlish/dispatch/functions.py,sha256=8OyKJwO_KdFufE9bwCyI_UFa2VGBdll3fDmpVk9JfiI,1514
73
- omlish/dispatch/methods.py,sha256=O6mRRbN7NtbxiKHRnD-ZRzjozX2QG9FQbwwxomR_21Y,5868
74
- omlish/graphs/__init__.py,sha256=47DEQpj8HBSa-_TImW-5JCeuQeRkm5NMpJWZG3hSuFU,0
75
- omlish/graphs/trees.py,sha256=57GvoXYLHzxPh7552Vz5sVSevrdiiZumqZRuQ-XJVyg,8470
76
- omlish/graphs/dot/__init__.py,sha256=6-LAx7ytHFQvfLrnxVQG1s8xmApgblERJJCTB2knOHk,642
77
- omlish/graphs/dot/items.py,sha256=BogGn5yaV1LyuHGHQ8isIEvQosyTt-juTWdVJCWZ-_I,4082
78
- omlish/graphs/dot/rendering.py,sha256=hUSJ5HvSvxnTIC9ynSxxP8IJnVH6quEeDbLzNlUnmuk,3626
79
- omlish/graphs/dot/utils.py,sha256=_FMwn77WfiiAfLsRTOKWm4IYbNv5kQN22YJ5psw6CWg,801
80
- omlish/http/__init__.py,sha256=47DEQpj8HBSa-_TImW-5JCeuQeRkm5NMpJWZG3hSuFU,0
81
- omlish/http/consts.py,sha256=reOpgv7NHAHLqUblYgfT5-hZVngkZfMJfCz9P41JdlU,696
82
- omlish/http/wsgi.py,sha256=czZsVUX-l2YTlMrUjKN49wRoP4rVpS0qpeBn4O5BoMY,948
83
- omlish/inject/__init__.py,sha256=U7arFpIjcGfT209mKAqyARn1M1-KG7whS6kXa0rplB0,1231
84
- omlish/inject/binder.py,sha256=hkT2dw_VSOkYTP4Mn1gvEFKeWPb-O_koFeSSsB8eNx4,278
85
- omlish/inject/bindings.py,sha256=_GeM_w-QdPa_UMeVFluuGPf-9UCzvOqzo1gL0AEfqtc,1129
86
- omlish/inject/eagers.py,sha256=ITpV2FoIzP2xJs4XtzEKTWP0QktLw1aPSWTxmNVJcPA,372
87
- omlish/inject/elements.py,sha256=8yaOxSKnYucSJ0999rav_F8LZkozO5ihErGOr-UYOac,968
88
- omlish/inject/exceptions.py,sha256=yiPLq0c9AcxjFc0YtZE46n1sYzIMiF4C7AEsYU0oYDY,662
89
- omlish/inject/injector.py,sha256=BseakAm6viM95rGYW1Y-1_DfD4D4YD8wQp0t1-b2gRk,936
90
- omlish/inject/inspect.py,sha256=PriB5cqqTYSz_FnLxoxIRAOp9fR9CMSILfvh-V26wxA,206
91
- omlish/inject/keys.py,sha256=ihDlt4b8mPNRyEmg2EOEsTQ7e4NSVh7nVDq2JEC4OVY,759
92
- omlish/inject/managed.py,sha256=hXVl8eLMrCaEwPv6glB9Dfr5EM_y1fBQwrZ2eu2XxsQ,627
93
- omlish/inject/overrides.py,sha256=k-WjyslF-pZmsYwzrDDsFNgqcl0Ao3CufHCoN0LDCAU,391
94
- omlish/inject/private.py,sha256=brBCsI-lZHPoouAij7_Eja44nkT-HxweG6eSVIhtXMA,592
95
- omlish/inject/providers.py,sha256=UZMqw1w68d42HoH9PBSNMt0YUGZZUhldrap6LunVCw8,2011
96
- omlish/inject/proxy.py,sha256=N2JlA0a180n8SZumyFjCI0uA4_gY35Lvocubh-Fu0fg,1602
97
- omlish/inject/scopes.py,sha256=hecYiZwZ3H31cnTgfP01-duTM8OgllwxtvQKpzyHDSU,2033
98
- omlish/inject/types.py,sha256=CP3ltWxRtmR2Iqz1Qd7CvaTHQYV4st5FPiNDBN8tmn0,235
99
- omlish/inject/impl/__init__.py,sha256=47DEQpj8HBSa-_TImW-5JCeuQeRkm5NMpJWZG3hSuFU,0
100
- omlish/inject/impl/bindings.py,sha256=8H586RCgmvwq53XBL9WMbb-1-Tdw_hh9zxIDCwcHA1c,414
101
- omlish/inject/impl/elements.py,sha256=kmQe4oPsJ6c2zvORhIpzKlpk85epzUYa4kRxTjRcI0Q,4547
102
- omlish/inject/impl/injector.py,sha256=zvPwELx2_QBFJ_9o8yiep76Fy5ADVlRpChaDL0tkSzQ,5542
103
- omlish/inject/impl/inspect.py,sha256=v8eIOHvMMcVykVb7-E4OiSakClfy3-30zVVz73Qeq9g,2539
104
- omlish/inject/impl/private.py,sha256=MiYvs-EiFrla4FQnoqmqGpYx784ij33p0obAS57HOCQ,2611
105
- omlish/inject/impl/providers.py,sha256=m0c9AAY849P6egYBOsSCkSoSBc8So7Zbmlo6gZwzTIw,3302
106
- omlish/inject/impl/scopes.py,sha256=2kHOF117qUqxuCaRVKQ_UB5jnorN3FpLeujYKs3Ezhg,5624
107
- omlish/lang/__init__.py,sha256=2pZdNeZfFXZlD0L4pvpOc5eBGk8v5ok-TSgcR7V-ZqM,4834
108
- omlish/lang/cached.py,sha256=T8KfC2BoEg7y97Lk9fFZS5c6Pb7Mozu2EsysVCNizak,7510
109
- omlish/lang/clsdct.py,sha256=VJx4LreqU77HgWZouI5NvJyOMCD4ZO0v_N1188WW6ts,1740
110
- omlish/lang/cmp.py,sha256=6THoTpGbZ7H-OaL8XHCD3asVxr5yIODvSXZYVLLeiaA,1346
111
- omlish/lang/contextmanagers.py,sha256=2bQsRp3-u99PYdoE6z85VE3elKN7aXm2SO20KokOFhE,5937
112
- omlish/lang/datetimes.py,sha256=ekOVAIma5HIyeYxOjV8N_i8IlhLIqoWpkglQ1-6qGUo,2024
113
- omlish/lang/descriptors.py,sha256=62jYFRUgrZ4W7fjqb9kysLVDFKteHzGUtsVh0AoulyI,1179
114
- omlish/lang/functions.py,sha256=BOtaewA9-zTdwgS47ZIw4nkUWgU3zUqGLqE6SfIjypU,2693
115
- omlish/lang/imports.py,sha256=XgSTKNNsPNjgyg7tS-cQt1NJnJGZ2i1BJ7FlfdpsnBQ,4093
116
- omlish/lang/iterables.py,sha256=IUNHrSmXe0f9tDofR4TwsWtneHiAYT2a2eecvum4y18,1050
117
- omlish/lang/maybes.py,sha256=Yth7lfz_vs7GdEtiL4n9bMocu08wPpQhyp-lOA48b0s,3412
118
- omlish/lang/objects.py,sha256=fcEPmz4mvUOi_rxk2sGEEm2XBlhKs4KXbYB0rndpxaE,2680
119
- omlish/lang/resolving.py,sha256=tzJVo7adlXtq9EQ6-NnWVzlpmrhjhtb9v3RafGjVgnE,1581
120
- omlish/lang/strings.py,sha256=eakasKxws7KaKYqjogympXwGUOLqh_lUpAZwvNux1b4,2372
121
- omlish/lang/typing.py,sha256=QAauy2Cr5C-qO1zC1ZWcRQn_W3JeZZWkTTKMWbWTPTs,2354
122
- omlish/lang/classes/__init__.py,sha256=pCBe4eCFWC1KI9bNXAKaGUtrhHggtfTHdu5-lCbEcKI,983
123
- omlish/lang/classes/abstract.py,sha256=0Z62QVixWF18gnO-7Q23xQmVGQojRFWilGz8GxFfbGw,2287
124
- omlish/lang/classes/restrict.py,sha256=VK37QAnIFYZF2mTNiV9ub6xxAPAN6uvWhH_Gr9KjWtU,3116
125
- omlish/lang/classes/simple.py,sha256=WZoVwVjOGMZkmp2IX6_GmgGsTjf2IYW4m6qR_1ZZw9o,2662
126
- omlish/lang/classes/virtual.py,sha256=ypN8yfI48ZljvNwk7i0rLr6wqX9LNfPwc1Ap3QH8gbI,3261
127
- omlish/lang/classes/test/__init__.py,sha256=47DEQpj8HBSa-_TImW-5JCeuQeRkm5NMpJWZG3hSuFU,0
128
- omlish/lang/classes/test/test_abstract.py,sha256=B0Dh8X7SaeoRGmxF8bL7WOsDdSQ-GRex_6SzoZ23fd4,1381
129
- omlish/lang/classes/test/test_restrict.py,sha256=QRjbSQozTz1gi9XQbZeyWrgmph4ZRDJfdA1CBwJrZ8M,1115
130
- omlish/lang/classes/test/test_simple.py,sha256=jdGHD3yuzCZvdRB_s-UjXPwffUb_VBozcj2sdzKn-Y8,1300
131
- omlish/lang/classes/test/test_virtual.py,sha256=2LIDrGMSZuEldNMFkK5Bkc0OPXUIEBCBv_OzcytqCA0,1263
132
- omlish/logs/__init__.py,sha256=V8jEdb5rj9Dli0b9qtR0ZYstRoIlxWqbU38UmEOXbfY,419
133
- omlish/logs/_abc.py,sha256=dymUQp-Ze-WclWbf7qu5bYKdkduRDF0Zg-m3gFLra6g,5919
134
- omlish/logs/configs.py,sha256=vW4QMZKqeEBbtQY0JEi-VKBIt0CuLgcGDgG8aTlgmC0,1762
135
- omlish/logs/filters.py,sha256=WUjM-mQvK-IdWW3sxZRlBvnUdp-xbi0OFJqpddhas5Q,165
136
- omlish/logs/formatters.py,sha256=4k3VkhDh-EH9aqj0-kwEjdoBcccQdKEWyR69mc9TYvs,1790
137
- omlish/logs/utils.py,sha256=YuV9x3Ta5-qXAMqtWQ8Gc8ARNw1NFjY1jN5tPo-zKQM,384
138
- omlish/marshal/__init__.py,sha256=8kNPJUBApx6pt2-M3wiaC0o3JXF-c9nu8MUZ_h_fg4E,821
139
- omlish/marshal/any.py,sha256=uWGEeBWaJvh5hjaGKIBL0ogGCg1jKH0Rq_onECYpHVs,821
140
- omlish/marshal/base.py,sha256=jITtjnR9rcb9QCXYFUmQZb58zVfu2tvNQv0YiJjLfGQ,5172
141
- omlish/marshal/base64.py,sha256=kdkkFXjYaKx6iHxMM_7vYfaX-KUM3wXN3vzsOmBbou4,863
142
- omlish/marshal/dataclasses.py,sha256=Fw97AntzJxzhyzQ1ceykDXUmIafakQA9oypHTTay9IY,3534
143
- omlish/marshal/datetimes.py,sha256=5q1CQEadI5OMDYrToHNrl3NyIuD_0GAohCgKU-HjkEs,2287
144
- omlish/marshal/enums.py,sha256=OeslV7YSskgppLteTTiQ-1i2JLnNmjqwwcw1mgBg1A8,1236
145
- omlish/marshal/exceptions.py,sha256=wh4VEDoTDVA0xYHlQA0MDwVTzEmMem73pbrMeactwRc,146
146
- omlish/marshal/factories.py,sha256=JCe8zEOZr1eYFRNh-xrxTYGNXRAOYRmFa81LMbxFfXU,2998
147
- omlish/marshal/global_.py,sha256=MpGFqcITa4zbWVnw6_E-UeusxEDj4g9UaEkm4VMVOdI,743
148
- omlish/marshal/iterables.py,sha256=yGoGyyiHXk6ykF5u7OFUZg6INoVl01tgqUTh5-ClSTI,2180
149
- omlish/marshal/mappings.py,sha256=ERn74mqPo9SxjsRMd-_vUQZhWtRn70BjhDJKdqjltxE,2481
150
- omlish/marshal/naming.py,sha256=QQtw_w_YuJr4Fg-tihonOaQn_XCNixMdtgMHaRkSq6w,325
151
- omlish/marshal/objects.py,sha256=s7vbhlxD2f68LokZRIncswnBhXJhMsn1o1s43iYt7Ro,2765
152
- omlish/marshal/optionals.py,sha256=PUNMVL9lu0mT_UA7JwW7b3TwT3nOKzEMHtAKAopCiBk,1532
153
- omlish/marshal/polymorphism.py,sha256=Il9L9cL69AAG8fDLSY8BhYhmEFxk5G4KrpwbroCQt2o,3882
154
- omlish/marshal/primitives.py,sha256=N7kXrdxz5CIrDnPnsYMdo0xLjEfMnVfKXLMANDu-L6Y,1139
155
- omlish/marshal/registries.py,sha256=mQKcPMfb30BwZ8yPsugPWYI6uaVo2gCfgwXdZnOIgVc,1652
156
- omlish/marshal/standard.py,sha256=Gx0XJIG0cjL_mkBbkMX_xGe_EpxlaVo4JqgHwYqa4io,2436
157
- omlish/marshal/utils.py,sha256=lRxo1Z9vF-ljFQu1hMLa_weVk6-rEphIDhxkYXMVqg0,495
158
- omlish/marshal/uuids.py,sha256=_htkeMt1a6FUNBlstZIy2rrB1-1DiavV5dZrjSQNYVM,952
159
- omlish/marshal/values.py,sha256=gKF99zPwE9JQw5hExyRFVOvedpUCHI3mqS_X-1ixTho,255
160
- omlish/replserver/__init__.py,sha256=uLo6V2aQ29v9z3IMELlPDSlG3_2iOT4-_X8VniF-EgE,235
161
- omlish/replserver/__main__.py,sha256=LmU41lQ58bm1h4Mx7S8zhE_uEBSC6kPcp9mn5JRpulA,32
162
- omlish/replserver/console.py,sha256=Bvah-2q4EAKEE6FNQMDyiPFwpLw2NUGEBrdbpr3UY0s,7531
163
- omlish/replserver/server.py,sha256=wAPs2QX6sfXC5kQfHEnvt3D08UC0Uj6PRSzFdO7-JA8,4867
164
- omlish/testing/__init__.py,sha256=l13axR7dyVE9T1e6w1pMYtAkW3vS2J97nBcYQ1FUv18,136
165
- omlish/testing/pydevd.py,sha256=tRpmx-Ui4r2giPa77sPqd1sgIP4JBAKfN2GxcYbwhZc,5694
166
- omlish/testing/testing.py,sha256=4AI6yGXI3hoqvgYSsXU8oyauY5AcZqXmKZ8OV0AzOpQ,2493
167
- omlish/testing/pytest/__init__.py,sha256=diebkOX565JdY7HIDMJVLlj3pcFnlK-spv6YIlD77oA,176
168
- omlish/testing/pytest/helpers.py,sha256=DKZXQGqKpDiQAh0SuYrzvJ8usJbTnuVQFDpuDmQD_Oc,912
169
- omlish/testing/pytest/inject/__init__.py,sha256=Djg95wFBiRRWBSmLQZ_wFoWLk51LmdgPGJ4C0LtzK2k,30
170
- omlish/testing/pytest/inject/harness.py,sha256=2Gt8Zl8QOvogrlsoF6D5p5nKQ6vviRfIrjmird_QRYQ,4440
171
- omlish/testing/pytest/plugins/__init__.py,sha256=7FnxXu9O78Nn_Xz6EM45fth97J_R6Z2Fkkg-2zjbpUk,375
172
- omlish/testing/pytest/plugins/_registry.py,sha256=IK04KlBgiOJxKAyCCgjpX2R-9tE-btalYJkgjLc8Te8,77
173
- omlish/testing/pytest/plugins/logging.py,sha256=1zs6Xe54wiaSjabCviaFXwKkoN97CKm3mA5mEoUeJGs,380
174
- omlish/testing/pytest/plugins/pycharm.py,sha256=wREYVMXTNqWdnGD-tPpKOMslPlw4V4J1X0FNc_ldI5Q,1788
175
- omlish/testing/pytest/plugins/repeat.py,sha256=flSQzE9GFOWksVKz-mUGnpxJpv3yRqn1G4K8pW7JHs0,498
176
- omlish/testing/pytest/plugins/skips.py,sha256=EoZDg1uWccgbAegmzqI85c7RliycD1e2J4Y7vfDRhwM,1041
177
- omlish/testing/pytest/plugins/spacing.py,sha256=JQQhi9q3c523Ro1a_K_9RGAb7HotiO74N8bYX2VESFE,707
178
- omlish/testing/pytest/plugins/switches.py,sha256=A3hKUZEqau5wMDuHvgOTlhlCrdRI72-ZaorkygK6yCk,1830
179
- omlish/text/__init__.py,sha256=47DEQpj8HBSa-_TImW-5JCeuQeRkm5NMpJWZG3hSuFU,0
180
- omlish/text/delimit.py,sha256=G34PsRMtC7XzdS5WyMQO5trK0Ql9X5ZgdvSYw0Pw-Y8,4923
181
- omlish/text/indent.py,sha256=6Jj6TFY9unaPa4xPzrnZemJ-fHsV53IamP93XGjSUHs,1274
182
- omlish/text/parts.py,sha256=tsVTtfP9H6250YBiTfiaYGEMrxysVb2_BX-Z55jyq7Y,6529
183
- omlish-0.0.0.dev1.dist-info/LICENSE,sha256=B_hVtavaA8zCYDW99DYdcpDLKz1n3BBRjZrcbv8uG8c,1451
184
- omlish-0.0.0.dev1.dist-info/METADATA,sha256=QdIH_AqKvmzs6CnhMEPgho5R9cDNJ7Wk4Zfj59eYSGY,568
185
- omlish-0.0.0.dev1.dist-info/WHEEL,sha256=y4mX-SOX4fYIkonsAGA5N0Oy-8_gI4FXw5HNI1xqvWg,91
186
- omlish-0.0.0.dev1.dist-info/top_level.txt,sha256=pePsKdLu7DvtUiecdYXJ78iO80uDNmBlqe-8hOzOmfs,7
187
- omlish-0.0.0.dev1.dist-info/RECORD,,