omlish 0.0.0.dev301__py3-none-any.whl → 0.0.0.dev302__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.
omlish/__about__.py CHANGED
@@ -1,5 +1,5 @@
1
- __version__ = '0.0.0.dev301'
2
- __revision__ = '1567cf674d01bddcf7c1ad426e2677fe25730bd0'
1
+ __version__ = '0.0.0.dev302'
2
+ __revision__ = '0b4f820252a0f7a3e020da512ead1e112d150cd2'
3
3
 
4
4
 
5
5
  #
@@ -54,8 +54,8 @@ def staple_memory_object_stream(
54
54
  ) -> MemoryStapledObjectStream[T]:
55
55
  send, receive = args
56
56
  return MemoryStapledObjectStream(
57
- check.isinstance(send, MemoryObjectSendStream), # type: ignore
58
- check.isinstance(receive, MemoryObjectReceiveStream), # type: ignore
57
+ check.isinstance(send, MemoryObjectSendStream),
58
+ check.isinstance(receive, MemoryObjectReceiveStream),
59
59
  )
60
60
 
61
61
 
@@ -64,6 +64,6 @@ def staple_memory_object_stream(
64
64
  def staple_memory_object_stream2[T](max_buffer_size: float = 0) -> MemoryStapledObjectStream[T]:
65
65
  send, receive = anyio.create_memory_object_stream[T](max_buffer_size)
66
66
  return MemoryStapledObjectStream(
67
- check.isinstance(send, MemoryObjectSendStream), # type: ignore
68
- check.isinstance(receive, MemoryObjectReceiveStream), # type: ignore
67
+ check.isinstance(send, MemoryObjectSendStream),
68
+ check.isinstance(receive, MemoryObjectReceiveStream),
69
69
  )
omlish/asyncs/bridge.py CHANGED
@@ -1,10 +1,21 @@
1
1
  """
2
- https://github.com/kubernetes/kubernetes/blob/60c4c2b2521fb454ce69dee737e3eb91a25e0535/pkg/controller/volume/persistentvolume/pv_controller.go#L60-L63
2
+ A system for bridging sync and async code. Supports nesting / reentrancy. Robust, but not the most efficient
3
+ implementation - its primary usecase are heavy and init-time ops like lock management and connection establishment, not
4
+ so much for packet-level ops.
3
5
 
4
- ==================================================================
5
- PLEASE DO NOT ATTEMPT TO SIMPLIFY THIS CODE.
6
- KEEP THE SPACE SHUTTLE FLYING.
7
- ==================================================================
6
+ ==
7
+
8
+ The code is written in a very dumb, simple, explicit style to keep the bookkeeping center-stage and front-of-mind. To
9
+ quote kubernetes:
10
+
11
+ https://github.com/kubernetes/kubernetes/blob/60c4c2b2521fb454ce69dee737e3eb91a25e0535/pkg/controller/volume/persistentvolume/pv_controller.go#L60-L63
12
+
13
+ ==================================================================
14
+ PLEASE DO NOT ATTEMPT TO SIMPLIFY THIS CODE.
15
+ KEEP THE SPACE SHUTTLE FLYING.
16
+ ==================================================================
17
+
18
+ ==
8
19
 
9
20
  TODO:
10
21
  - reuse greenlet if nested somehow?
@@ -7,6 +7,9 @@ from ...lite.check import check
7
7
  from ...sockets.addresses import SocketAddress
8
8
 
9
9
 
10
+ ##
11
+
12
+
10
13
  class FdioHandler(abc.ABC):
11
14
  @abc.abstractmethod
12
15
  def fd(self) -> int:
omlish/io/fdio/kqueue.py CHANGED
@@ -7,6 +7,9 @@ import typing as ta
7
7
  from .pollers import FdioPoller
8
8
 
9
9
 
10
+ ##
11
+
12
+
10
13
  KqueueFdioPoller: ta.Optional[ta.Type[FdioPoller]]
11
14
  if sys.platform == 'darwin' or sys.platform.startswith('freebsd'):
12
15
 
omlish/io/fdio/manager.py CHANGED
@@ -5,6 +5,9 @@ from .handlers import FdioHandler
5
5
  from .pollers import FdioPoller
6
6
 
7
7
 
8
+ ##
9
+
10
+
8
11
  class FdioManager:
9
12
  def __init__(
10
13
  self,
omlish/io/trampoline.py CHANGED
@@ -24,8 +24,8 @@ T = ta.TypeVar('T')
24
24
 
25
25
  BytesLike: ta.TypeAlias = ta.Any
26
26
 
27
- BufferedReader = io.BufferedReader
28
- # BufferedReader = pyio.BufferedReader
27
+ BufferedReader: ta.TypeAlias = io.BufferedReader
28
+ # BufferedReader: ta.TypeAlias = pyio.BufferedReader
29
29
 
30
30
 
31
31
  ##
@@ -18,7 +18,9 @@ def yield_dict_init(*args: ta.Any, **kwargs: ta.Any) -> ta.Iterable[tuple[ta.Any
18
18
 
19
19
  # Prefer .items() as it's potentially faster.
20
20
  if isinstance(src, collections.abc.Mapping):
21
- yield from src.items()
21
+ # Not yield-from, explicitly enforce 2ple-ness
22
+ for k, v in src.items():
23
+ yield (k, v)
22
24
 
23
25
  # Support keys() duck-typed dict init behavior:
24
26
  # https://docs.python.org/3/library/stdtypes.html#dict
omlish/lang/imports.py CHANGED
@@ -1,6 +1,7 @@
1
1
  """
2
2
  TODO:
3
3
  - proxy_init 'as' alias support - attrs of (src, dst)
4
+ - use importlib.util.resolve_name
4
5
  """
5
6
  import contextlib
6
7
  import functools
@@ -189,6 +190,7 @@ def try_import(spec: str) -> types.ModuleType | None:
189
190
 
190
191
 
191
192
  def resolve_import_name(name: str, package: str | None = None) -> str:
193
+ # FIXME: importlib.util.resolve_name
192
194
  level = 0
193
195
 
194
196
  if name.startswith('.'):
omlish/lite/check.py CHANGED
@@ -143,7 +143,15 @@ class Checks:
143
143
  spec = (object,)
144
144
  return spec
145
145
 
146
- def isinstance(self, v: ta.Any, spec: ta.Union[ta.Type[T], tuple], msg: CheckMessage = None) -> T: # noqa
146
+ @ta.overload
147
+ def isinstance(self, v: ta.Any, spec: ta.Type[T], msg: CheckMessage = None) -> T:
148
+ ...
149
+
150
+ @ta.overload
151
+ def isinstance(self, v: ta.Any, spec: ta.Any, msg: CheckMessage = None) -> ta.Any:
152
+ ...
153
+
154
+ def isinstance(self, v, spec, msg=None):
147
155
  if not isinstance(v, self._unpack_isinstance_spec(spec)):
148
156
  self._raise(
149
157
  TypeError,
@@ -155,7 +163,15 @@ class Checks:
155
163
 
156
164
  return v
157
165
 
158
- def of_isinstance(self, spec: ta.Union[ta.Type[T], tuple], msg: CheckMessage = None) -> ta.Callable[[ta.Any], T]:
166
+ @ta.overload
167
+ def of_isinstance(self, spec: ta.Type[T], msg: CheckMessage = None) -> ta.Callable[[ta.Any], T]:
168
+ ...
169
+
170
+ @ta.overload
171
+ def of_isinstance(self, spec: ta.Any, msg: CheckMessage = None) -> ta.Callable[[ta.Any], ta.Any]:
172
+ ...
173
+
174
+ def of_isinstance(self, spec, msg=None):
159
175
  def inner(v):
160
176
  return self.isinstance(v, self._unpack_isinstance_spec(spec), msg)
161
177
 
@@ -1,5 +1,9 @@
1
1
  # ruff: noqa: UP006 UP007
2
2
  # @omlish-lite
3
+ """
4
+ TODO:
5
+ - git var GIT_EDITOR ?
6
+ """
3
7
  import dataclasses as dc
4
8
  import os
5
9
  import tempfile
@@ -16,6 +20,18 @@ from .run import SubprocessRunOutput
16
20
  ##
17
21
 
18
22
 
23
+ DEFAULT_USER_TEXT_EDITOR = 'vi'
24
+
25
+
26
+ def get_user_text_editor(default: ta.Optional[str] = None) -> str:
27
+ if default is None:
28
+ default = DEFAULT_USER_TEXT_EDITOR
29
+ return os.environ.get('EDITOR', default)
30
+
31
+
32
+ ##
33
+
34
+
19
35
  class EditTextWithUserEditor(SubprocessRunnable, ExitStacked):
20
36
  def __init__(self, initial_text: str = '') -> None:
21
37
  super().__init__()
@@ -46,11 +62,10 @@ class EditTextWithUserEditor(SubprocessRunnable, ExitStacked):
46
62
 
47
63
  def make_run(self) -> SubprocessRun:
48
64
  tf = self._temp_file()
49
-
50
- editor = os.environ.get('EDITOR', 'vi')
65
+ ed = get_user_text_editor()
51
66
 
52
67
  return SubprocessRun.of(
53
- editor,
68
+ ed,
54
69
  tf.path,
55
70
  )
56
71
 
@@ -1,6 +1,6 @@
1
1
  Metadata-Version: 2.4
2
2
  Name: omlish
3
- Version: 0.0.0.dev301
3
+ Version: 0.0.0.dev302
4
4
  Summary: omlish
5
5
  Author: wrmsr
6
6
  License: BSD-3-Clause
@@ -1,5 +1,5 @@
1
1
  omlish/.manifests.json,sha256=pjGUyLHaoWpPqRP3jz2u1fC1qoRc2lvrEcpU_Ax2tdg,8253
2
- omlish/__about__.py,sha256=vJ9Iq4fdaTwYJYyurCvPlatvCtdn0744GDUZ2_r6sDM,3478
2
+ omlish/__about__.py,sha256=VEC7wFGaSoAMF2E62PWgQVju9B2RuX6O49UlGrjLBRo,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
@@ -90,7 +90,7 @@ omlish/argparse/all.py,sha256=NeeMM5MIebY7XDAHaCxUzeesEoUYwsf5i9PrBUcO1cI,1057
90
90
  omlish/argparse/cli.py,sha256=KftfiN0fBOdybCWoTW4l967r8OrXe_WtjOQWARcHTv0,8746
91
91
  omlish/asyncs/__init__.py,sha256=47DEQpj8HBSa-_TImW-5JCeuQeRkm5NMpJWZG3hSuFU,0
92
92
  omlish/asyncs/all.py,sha256=MjW0P9K8XBrw6AaH2X_qD5Y7hEZOF0cktqFv5BDGH-k,649
93
- omlish/asyncs/bridge.py,sha256=oFCqwGY9u9JYB-tee7GS0gjtIFp19rdZD2Z0YPRjj9k,9738
93
+ omlish/asyncs/bridge.py,sha256=QonuN2KgT7sRsmJEgRvLqtubXma9RI2xOs27X5JSQcA,10153
94
94
  omlish/asyncs/buffers.py,sha256=ip9oDRT-XbBDpeAa72osv-TtZXxdF_ggW4lHkGKxCwE,1418
95
95
  omlish/asyncs/flavors.py,sha256=1mNxGNRVmjUHzA13K5ht8vdJv4CLEmzYTQ6BZXr1520,4866
96
96
  omlish/asyncs/sync.py,sha256=qfK8zRMQ0B_huC-6CsMG8vhKB0ktw7Ttq0NnySdWPwQ,2039
@@ -101,7 +101,7 @@ omlish/asyncs/anyio/__init__.py,sha256=AkwRD3XFWmEzBeHV-eAzwpA4F04bl7xyyapigrxMR
101
101
  omlish/asyncs/anyio/backends.py,sha256=jJIymWoiedaEJJm82gvKiJ41EWLQZ-bcyNHpbDpKKi4,1584
102
102
  omlish/asyncs/anyio/futures.py,sha256=Nm1gLerZEnHk-rlsmr0UfK168IWIK6zA8EebZFtoY_E,2052
103
103
  omlish/asyncs/anyio/signals.py,sha256=ySSut5prdnoy0-5Ws5V1M4cC2ON_vY550vU10d2NHk8,893
104
- omlish/asyncs/anyio/streams.py,sha256=gNRAcHR0L8OtNioqKFbq0Z_apYAWKHFipZ2MUBp8Vg0,2228
104
+ omlish/asyncs/anyio/streams.py,sha256=Zum2qd1t3EiH6yzGWFwxFw79m-IH2VY5sTUTiluFfIY,2164
105
105
  omlish/asyncs/anyio/subprocesses.py,sha256=jjMjlcwtIiy-_y-spPn3eTC5dzrqFNSAMTPaIcXH9S8,3002
106
106
  omlish/asyncs/anyio/sync.py,sha256=ZmSNhSsEkPwlXThrpefhtVTxw4GJ9F0P-yKyo5vbbSk,1574
107
107
  omlish/asyncs/anyio/utils.py,sha256=X2Rz1DGrCJ0zkt1O5cHoMRaYKTPndBj6dzLhb09mVtE,1672
@@ -435,7 +435,7 @@ omlish/io/abc.py,sha256=M40QB2udYpCEqmlxCcHv6FlJYJY6ymmJQBlaklYv0U8,1256
435
435
  omlish/io/buffers.py,sha256=9PcGefTq4Lj-qGQK4-fI67SLRBHZ-OkiY3x2pU38-e0,7279
436
436
  omlish/io/fileno.py,sha256=QiVuRfqJRqP1aoLS82AVHOo_rt0lijZHfM21s42uaTo,174
437
437
  omlish/io/pyio.py,sha256=q4RBFVpBE5PYjnGPGT-_4pcZb7dFJmLJ4LtI8OoDRQY,95433
438
- omlish/io/trampoline.py,sha256=oUKTQg1F5xQS1431Kt7MbK-NZpX509ubcXU-s86xJr8,7171
438
+ omlish/io/trampoline.py,sha256=yM7Evz7cgWpFj97IUiHgq9jfqpsx-deTSZwGl1qOnoM,7199
439
439
  omlish/io/compress/__init__.py,sha256=fJFPT4ONfqxmsA4jR6qbMt2woIyyEgnc_qOWK9o1kII,247
440
440
  omlish/io/compress/abc.py,sha256=P9YoQX8XYoq2UfBsinKLUuwwqV1ODUIJzjTraRWGF1M,3090
441
441
  omlish/io/compress/adapters.py,sha256=LJHhjwMHXstoLyX_q0QhGoBAcqyYGWfzhzQbGBXHzHY,6148
@@ -455,9 +455,9 @@ omlish/io/coro/direct.py,sha256=Y--rP3wvBAYMeYctokb5IGd8UyQGmEFChyKISmRg5k0,294
455
455
  omlish/io/coro/readers.py,sha256=9VcXuBQ7BSoFen8UVuYFwnl2jJVjyilWV7QeqLNQtKU,4131
456
456
  omlish/io/coro/stepped.py,sha256=eAppRniUZ00rk3goWLU4zsd52MhZB2_YrOmFqs3RfR4,4929
457
457
  omlish/io/fdio/__init__.py,sha256=XJMieft-Z-JEkpeARn0M1Jj7HYCjRHwfs2QfE8gdzQs,137
458
- omlish/io/fdio/handlers.py,sha256=VDPEff3yXPnCj2jZEkrzuI42bKC8wD8fLmOG97hKrgo,1350
459
- omlish/io/fdio/kqueue.py,sha256=YgGBQibkAUYODYDiGl7Enjtx1oQsJXuDsBLBXgqlLQw,3832
460
- omlish/io/fdio/manager.py,sha256=q4wWf7nKrNtjx6yPEvrVnFt4UtK_BTvVlquEGw7poEo,1250
458
+ omlish/io/fdio/handlers.py,sha256=3Rowi_XVBA0tiE6JM5xdYLB-8n-PFsj2fXeOZipRyC8,1355
459
+ omlish/io/fdio/kqueue.py,sha256=g1azm74GkVeylGwktYoZ2QbSO0wO-47IZ3080lGRom8,3837
460
+ omlish/io/fdio/manager.py,sha256=hi84vQs7-CWp4BLckWv5b89dHxF-IilqVpTI2xC1Q2s,1255
461
461
  omlish/io/fdio/pollers.py,sha256=yNadAt3W5wd90PFmd3vD77bq5QwoVb2A6SM2JjZpKRs,5507
462
462
  omlish/iterators/__init__.py,sha256=yMavf5FofiS1EU4UFuWPXiFZ03W0H-y7MuMxW8FUaEE,358
463
463
  omlish/iterators/iterators.py,sha256=RxW35yQ5ed8vBQ22IqpDXFx-i5JiLQdp7-pkMZXhJJ8,3159
@@ -467,7 +467,7 @@ omlish/iterators/unique.py,sha256=Nw0pSaNEcHAkve0ugfLPvJcirDOn9ECyC5wIL8JlJKI,13
467
467
  omlish/lang/__init__.py,sha256=KCzbT9IMWi2TNldAlDZ6b8Rr-7hyV9Ne6kIKJLXNAxg,5315
468
468
  omlish/lang/attrs.py,sha256=i7euRF81uNF8QDmUVXSK_BtqLGshaMi4VVdUnMjiMwg,5050
469
469
  omlish/lang/clsdct.py,sha256=HAGIvBSbCefzRjXriwYSBLO7QHKRv2UsE78jixOb-fA,1828
470
- omlish/lang/collections.py,sha256=jWjtYb2NuhaceQYcn7VS2XRkAaBxIRRTFkOcdvLytKs,2375
470
+ omlish/lang/collections.py,sha256=LVm0Sory60IXyFzYhhO8BZAWy_z_pjiA-meXNlSJP7o,2465
471
471
  omlish/lang/comparison.py,sha256=MOwEG0Yny-jBPHO9kQto9FSRyeNpQW24UABsghkrHxY,1356
472
472
  omlish/lang/contextmanagers.py,sha256=pN8X4ZCagqU9_xWumi8gZPdMIWlInA-_zQrkl7o5VP0,7258
473
473
  omlish/lang/datetimes.py,sha256=mrTtA67JYpfQwSlzdPcBtvm6dAyYM_dXNnlxFwFQH0M,228
@@ -475,7 +475,7 @@ omlish/lang/descriptors.py,sha256=zBtgO9LjdSTGHNUgiIqswh78WOVoGH6KzS0NbgB1Wls,65
475
475
  omlish/lang/enums.py,sha256=F9tflHfaAoV2MpyuhZzpfX9-H55M3zNa9hCszsngEo8,111
476
476
  omlish/lang/functions.py,sha256=51CoKtH_-CXUsKvtCexaR3OLZOtIwSdv4f4DtGBZdpA,6029
477
477
  omlish/lang/generators.py,sha256=5tbjVAywiZH6oAdj1sJLRMtIkC9y3rAkecLT7Z3m7_g,5251
478
- omlish/lang/imports.py,sha256=aC1u2eTrxHhhxShKbJvXswe3aJ7K76vT4YK8LrsvRWU,10476
478
+ omlish/lang/imports.py,sha256=y9W9Y-d_cQ35QCLuSIPoa6vnEqSErFCz8b-34IH128U,10552
479
479
  omlish/lang/iterables.py,sha256=HOjcxOwyI5bBApDLsxRAGGhTTmw7fdZl2kEckxRVl-0,1994
480
480
  omlish/lang/maybes.py,sha256=pb1YrxmpXy-hWKmWR89GxXqZq1MoUD1uuTaTX30peh0,3697
481
481
  omlish/lang/objects.py,sha256=q1T26cxLkejU5XMl5iEVC9IIhjib0VBpe7JCo2bz2Ws,5411
@@ -504,7 +504,7 @@ omlish/lifecycles/states.py,sha256=zqMOU2ZU-MDNnWuwauM3_anIAiXM8LoBDElDEraptFg,1
504
504
  omlish/lifecycles/transitions.py,sha256=qQtFby-h4VzbvgaUqT2NnbNumlcOx9FVVADP9t83xj4,1939
505
505
  omlish/lite/__init__.py,sha256=ISLhM4q0LR1XXTCaHdZOZxBRyIsoZqYm4u0bf1BPcVk,148
506
506
  omlish/lite/cached.py,sha256=O7ozcoDNFm1Hg2wtpHEqYSp_i_nCLNOP6Ueq_Uk-7mU,1300
507
- omlish/lite/check.py,sha256=OLwtE2x6nlbGx4vS3Rda7zMHpgqzDSLJminTAX2lqLA,13529
507
+ omlish/lite/check.py,sha256=d3622_iX19iAL-B9QtucLbAt7Z0cZAvJEHOJBVhg3Og,13886
508
508
  omlish/lite/configs.py,sha256=Ev_19sbII67pTWzInYjYqa9VyTiZBvyjhZqyG8TtufE,908
509
509
  omlish/lite/contextmanagers.py,sha256=WrL2NPT7OA5JvHp4H-opwsCpYTHod27EJ4qB1cJ9Mjc,5691
510
510
  omlish/lite/dataclasses.py,sha256=t1G5-xOuvE6o6w9RyqHzLT9wHD0HkqBh5P8HUZWxGzs,1912
@@ -779,7 +779,7 @@ omlish/sql/tabledefs/tabledefs.py,sha256=lIhvlt0pk6G7RZAtDFsFXm5j0l9BvRfnP7vNGey
779
779
  omlish/subprocesses/__init__.py,sha256=47DEQpj8HBSa-_TImW-5JCeuQeRkm5NMpJWZG3hSuFU,0
780
780
  omlish/subprocesses/async_.py,sha256=hPQTWFa3k5CE_s9p1JTY4KdTPOsqLJtq3lGMRznrVpY,2373
781
781
  omlish/subprocesses/base.py,sha256=W6El-PUKKF9KLAks5LB6kzqs_n3FfkblJ-JOv6NFQbY,6133
782
- omlish/subprocesses/editor.py,sha256=nLrudPayAZxv0u5LtZFecR_zdSEk0bd8G3XFjbOD81M,2386
782
+ omlish/subprocesses/editor.py,sha256=tVU1EQsEhCM242HheylQvEsqaAZYnT61kMhlzZcdk5U,2628
783
783
  omlish/subprocesses/run.py,sha256=3jwSnQJvFMDMHmJvtAkrrK5D-i7_8cw12vX84EWTuJo,3668
784
784
  omlish/subprocesses/sync.py,sha256=HKmKM99_Y7tkJRg_n5onXrw41IZt5M5fqU0281LY-mo,3671
785
785
  omlish/subprocesses/utils.py,sha256=MJb6hvKhZceTmBeFVqlc5oM7rDxWkUzSzK9nKvbIvM8,396
@@ -843,9 +843,9 @@ omlish/typedvalues/holder.py,sha256=ZTnHiw-K38ciOBLEdwgrltr7Xp8jjEs_0Lp69DH-G-o,
843
843
  omlish/typedvalues/marshal.py,sha256=hWHRLcrGav7lvXJDtb9bNI0ickl4SKPQ6F4BbTpqw3A,4219
844
844
  omlish/typedvalues/reflect.py,sha256=Ih1YgU-srUjsvBn_P7C66f73_VCvcwqE3ffeBnZBgt4,674
845
845
  omlish/typedvalues/values.py,sha256=ym46I-q2QJ_6l4UlERqv3yj87R-kp8nCKMRph0xQ3UA,1307
846
- omlish-0.0.0.dev301.dist-info/licenses/LICENSE,sha256=B_hVtavaA8zCYDW99DYdcpDLKz1n3BBRjZrcbv8uG8c,1451
847
- omlish-0.0.0.dev301.dist-info/METADATA,sha256=73kzCdAhnn8paBBMQjS6yxdB4_ViWVxW2Q5r7nOe6LU,4416
848
- omlish-0.0.0.dev301.dist-info/WHEEL,sha256=SmOxYU7pzNKBqASvQJ7DjX3XGUF92lrGhMb3R6_iiqI,91
849
- omlish-0.0.0.dev301.dist-info/entry_points.txt,sha256=Lt84WvRZJskWCAS7xnQGZIeVWksprtUHj0llrvVmod8,35
850
- omlish-0.0.0.dev301.dist-info/top_level.txt,sha256=pePsKdLu7DvtUiecdYXJ78iO80uDNmBlqe-8hOzOmfs,7
851
- omlish-0.0.0.dev301.dist-info/RECORD,,
846
+ omlish-0.0.0.dev302.dist-info/licenses/LICENSE,sha256=B_hVtavaA8zCYDW99DYdcpDLKz1n3BBRjZrcbv8uG8c,1451
847
+ omlish-0.0.0.dev302.dist-info/METADATA,sha256=ARPvC1-WLWPuw1QpgF2xijl-9JRU8BHBzFVsFadjAfg,4416
848
+ omlish-0.0.0.dev302.dist-info/WHEEL,sha256=ck4Vq1_RXyvS4Jt6SI0Vz6fyVs4GWg7AINwpsaGEgPE,91
849
+ omlish-0.0.0.dev302.dist-info/entry_points.txt,sha256=Lt84WvRZJskWCAS7xnQGZIeVWksprtUHj0llrvVmod8,35
850
+ omlish-0.0.0.dev302.dist-info/top_level.txt,sha256=pePsKdLu7DvtUiecdYXJ78iO80uDNmBlqe-8hOzOmfs,7
851
+ omlish-0.0.0.dev302.dist-info/RECORD,,
@@ -1,5 +1,5 @@
1
1
  Wheel-Version: 1.0
2
- Generator: setuptools (79.0.1)
2
+ Generator: setuptools (80.0.0)
3
3
  Root-Is-Purelib: true
4
4
  Tag: py3-none-any
5
5