omlish 0.0.0.dev389__py3-none-any.whl → 0.0.0.dev391__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 +2 -2
- omlish/formats/yaml.py +1 -1
- omlish/io/pyio.py +41 -58
- omlish/lite/maysyncs.py +7 -4
- omlish/testing/pytest/plugins/asyncs/plugin.py +5 -3
- omlish/testing/pytest/plugins/depskip.py +1 -1
- {omlish-0.0.0.dev389.dist-info → omlish-0.0.0.dev391.dist-info}/METADATA +1 -1
- {omlish-0.0.0.dev389.dist-info → omlish-0.0.0.dev391.dist-info}/RECORD +12 -12
- {omlish-0.0.0.dev389.dist-info → omlish-0.0.0.dev391.dist-info}/WHEEL +0 -0
- {omlish-0.0.0.dev389.dist-info → omlish-0.0.0.dev391.dist-info}/entry_points.txt +0 -0
- {omlish-0.0.0.dev389.dist-info → omlish-0.0.0.dev391.dist-info}/licenses/LICENSE +0 -0
- {omlish-0.0.0.dev389.dist-info → omlish-0.0.0.dev391.dist-info}/top_level.txt +0 -0
omlish/__about__.py
CHANGED
omlish/formats/yaml.py
CHANGED
@@ -156,7 +156,7 @@ class _cached_class_property: # noqa
|
|
156
156
|
return ret
|
157
157
|
|
158
158
|
|
159
|
-
class WrappedLoaders(lang.
|
159
|
+
class WrappedLoaders(lang.NotInstantiable):
|
160
160
|
@staticmethod
|
161
161
|
def _wrap(cls): # noqa
|
162
162
|
return type('NodeWrapping$' + cls.__name__, (NodeWrappingConstructorMixin, cls), {})
|
omlish/io/pyio.py
CHANGED
@@ -4,7 +4,7 @@
|
|
4
4
|
"""
|
5
5
|
Python implementation of the io module.
|
6
6
|
|
7
|
-
https://github.com/python/cpython/blob/
|
7
|
+
https://github.com/python/cpython/blob/6cb20a219a860eaf687b2d968b41c480c7461909/Lib/_pyio.py
|
8
8
|
"""
|
9
9
|
# PYTHON SOFTWARE FOUNDATION LICENSE VERSION 2
|
10
10
|
# --------------------------------------------
|
@@ -255,11 +255,18 @@ def open(
|
|
255
255
|
result = raw
|
256
256
|
try:
|
257
257
|
line_buffering = False
|
258
|
-
if buffering == 1 or buffering < 0 and raw.
|
258
|
+
if buffering == 1 or buffering < 0 and raw.isatty():
|
259
259
|
buffering = -1
|
260
260
|
line_buffering = True
|
261
261
|
if buffering < 0:
|
262
|
-
buffering =
|
262
|
+
buffering = DEFAULT_BUFFER_SIZE
|
263
|
+
try:
|
264
|
+
bs = os.fstat(raw.fileno()).st_blksize
|
265
|
+
except (OSError, AttributeError):
|
266
|
+
pass
|
267
|
+
else:
|
268
|
+
if bs > 1:
|
269
|
+
buffering = bs
|
263
270
|
if buffering < 0:
|
264
271
|
raise ValueError('invalid buffering size')
|
265
272
|
if buffering == 0:
|
@@ -425,6 +432,9 @@ class IOBase(metaclass=abc.ABCMeta):
|
|
425
432
|
if closed:
|
426
433
|
return
|
427
434
|
|
435
|
+
if dealloc_warn := getattr(self, "_dealloc_warn", None):
|
436
|
+
dealloc_warn(self)
|
437
|
+
|
428
438
|
# If close() fails, the caller logs the exception with sys.unraisablehook. close() must be called at the end at
|
429
439
|
# __del__().
|
430
440
|
self.close()
|
@@ -873,6 +883,10 @@ class _BufferedIOMixin(BufferedIOBase):
|
|
873
883
|
else:
|
874
884
|
return f'<{modname}.{clsname} name={name!r}>'
|
875
885
|
|
886
|
+
def _dealloc_warn(self, source):
|
887
|
+
if dealloc_warn := getattr(self.raw, "_dealloc_warn", None):
|
888
|
+
dealloc_warn(source)
|
889
|
+
|
876
890
|
# Lower-level APIs
|
877
891
|
|
878
892
|
def fileno(self):
|
@@ -1484,7 +1498,6 @@ class FileIO(RawIOBase):
|
|
1484
1498
|
|
1485
1499
|
if self._fd >= 0:
|
1486
1500
|
# Have to close the existing file first.
|
1487
|
-
self._stat_atopen = None
|
1488
1501
|
try:
|
1489
1502
|
if self._closefd:
|
1490
1503
|
os.close(self._fd)
|
@@ -1553,21 +1566,25 @@ class FileIO(RawIOBase):
|
|
1553
1566
|
if not isinstance(fd, int):
|
1554
1567
|
raise TypeError('expected integer from opener')
|
1555
1568
|
if fd < 0:
|
1556
|
-
|
1569
|
+
# bpo-27066: Raise a ValueError for bad value.
|
1570
|
+
raise ValueError(f'opener returned {fd}')
|
1557
1571
|
owned_fd = fd
|
1558
1572
|
if not noinherit_flag:
|
1559
1573
|
os.set_inheritable(fd, False)
|
1560
1574
|
|
1561
1575
|
self._closefd = closefd
|
1562
|
-
|
1576
|
+
fdfstat = os.fstat(fd)
|
1563
1577
|
try:
|
1564
|
-
if stat.S_ISDIR(
|
1578
|
+
if stat.S_ISDIR(fdfstat.st_mode):
|
1565
1579
|
raise IsADirectoryError(
|
1566
1580
|
errno.EISDIR, os.strerror(errno.EISDIR), file,
|
1567
1581
|
)
|
1568
1582
|
except AttributeError:
|
1569
1583
|
# Ignore the AttributeError if stat.S_ISDIR or errno.EISDIR don't exist.
|
1570
1584
|
pass
|
1585
|
+
self._blksize = getattr(fdfstat, 'st_blksize', 0)
|
1586
|
+
if self._blksize <= 1:
|
1587
|
+
self._blksize = DEFAULT_BUFFER_SIZE
|
1571
1588
|
|
1572
1589
|
self.name = file
|
1573
1590
|
if self._appending:
|
@@ -1579,16 +1596,15 @@ class FileIO(RawIOBase):
|
|
1579
1596
|
if e.errno != errno.ESPIPE:
|
1580
1597
|
raise
|
1581
1598
|
except: # noqa
|
1582
|
-
self._stat_atopen = None
|
1583
1599
|
if owned_fd is not None:
|
1584
1600
|
os.close(owned_fd)
|
1585
1601
|
raise
|
1586
1602
|
self._fd = fd
|
1587
1603
|
|
1588
|
-
def
|
1604
|
+
def _dealloc_warn(self, source):
|
1589
1605
|
if self._fd >= 0 and self._closefd and not self.closed:
|
1590
|
-
warnings
|
1591
|
-
|
1606
|
+
import warnings
|
1607
|
+
warnings.warn(f'unclosed file {source!r}', ResourceWarning, stacklevel=2, source=self)
|
1592
1608
|
|
1593
1609
|
def __getstate__(self):
|
1594
1610
|
raise TypeError(f'cannot pickle {self.__class__.__name__!r} object')
|
@@ -1614,17 +1630,6 @@ class FileIO(RawIOBase):
|
|
1614
1630
|
self._closefd,
|
1615
1631
|
)
|
1616
1632
|
|
1617
|
-
@property
|
1618
|
-
def _blksize(self):
|
1619
|
-
if self._stat_atopen is None:
|
1620
|
-
return DEFAULT_BUFFER_SIZE
|
1621
|
-
|
1622
|
-
blksize = getattr(self._stat_atopen, 'st_blksize', 0)
|
1623
|
-
# WASI sets blsize to 0
|
1624
|
-
if not blksize:
|
1625
|
-
return DEFAULT_BUFFER_SIZE
|
1626
|
-
return blksize
|
1627
|
-
|
1628
1633
|
def _checkReadable(self):
|
1629
1634
|
if not self._readable:
|
1630
1635
|
raise UnsupportedOperation('File not open for reading')
|
@@ -1660,21 +1665,14 @@ class FileIO(RawIOBase):
|
|
1660
1665
|
|
1661
1666
|
self._checkClosed()
|
1662
1667
|
self._checkReadable()
|
1663
|
-
|
1664
|
-
|
1665
|
-
|
1666
|
-
|
1667
|
-
|
1668
|
-
|
1669
|
-
|
1670
|
-
|
1671
|
-
if self._stat_atopen.st_size > 65536:
|
1672
|
-
try:
|
1673
|
-
pos = os.lseek(self._fd, 0, io.SEEK_CUR)
|
1674
|
-
if self._stat_atopen.st_size >= pos:
|
1675
|
-
bufsize = self._stat_atopen.st_size - pos + 1
|
1676
|
-
except OSError:
|
1677
|
-
pass
|
1668
|
+
bufsize = DEFAULT_BUFFER_SIZE
|
1669
|
+
try:
|
1670
|
+
pos = os.lseek(self._fd, 0, os.SEEK_CUR)
|
1671
|
+
end = os.fstat(self._fd).st_size
|
1672
|
+
if end >= pos:
|
1673
|
+
bufsize = end - pos + 1
|
1674
|
+
except OSError:
|
1675
|
+
pass
|
1678
1676
|
|
1679
1677
|
result = bytearray()
|
1680
1678
|
while True:
|
@@ -1756,7 +1754,6 @@ class FileIO(RawIOBase):
|
|
1756
1754
|
if size is None:
|
1757
1755
|
size = self.tell()
|
1758
1756
|
os.ftruncate(self._fd, size)
|
1759
|
-
self._stat_atopen = None
|
1760
1757
|
return size
|
1761
1758
|
|
1762
1759
|
def close(self):
|
@@ -1767,9 +1764,8 @@ class FileIO(RawIOBase):
|
|
1767
1764
|
"""
|
1768
1765
|
|
1769
1766
|
if not self.closed:
|
1770
|
-
self._stat_atopen = None
|
1771
1767
|
try:
|
1772
|
-
if self._closefd:
|
1768
|
+
if self._closefd and self._fd >= 0:
|
1773
1769
|
os.close(self._fd)
|
1774
1770
|
finally:
|
1775
1771
|
super().close()
|
@@ -1811,20 +1807,6 @@ class FileIO(RawIOBase):
|
|
1811
1807
|
self._checkClosed()
|
1812
1808
|
return os.isatty(self._fd)
|
1813
1809
|
|
1814
|
-
def _isatty_open_only(self):
|
1815
|
-
"""
|
1816
|
-
Checks whether the file is a TTY using an open-only optimization.
|
1817
|
-
|
1818
|
-
TTYs are always character devices. If the interpreter knows a file is not a character device when it would call
|
1819
|
-
``isatty``, can skip that call. Inside ``open()`` there is a fresh stat result that contains that information.
|
1820
|
-
Use the stat result to skip a system call. Outside of that context TOCTOU issues (the fd could be arbitrarily
|
1821
|
-
modified by surrounding code).
|
1822
|
-
"""
|
1823
|
-
|
1824
|
-
if self._stat_atopen is not None and not stat.S_ISCHR(self._stat_atopen.st_mode):
|
1825
|
-
return False
|
1826
|
-
return os.isatty(self._fd)
|
1827
|
-
|
1828
1810
|
@property
|
1829
1811
|
def closefd(self):
|
1830
1812
|
"""True if the file descriptor will be closed by close()."""
|
@@ -2583,11 +2565,8 @@ class TextIOWrapper(TextIOBase):
|
|
2583
2565
|
decoder = self._decoder or self._get_decoder()
|
2584
2566
|
|
2585
2567
|
if size < 0:
|
2586
|
-
chunk = self.buffer.read()
|
2587
|
-
if chunk is None:
|
2588
|
-
raise BlockingIOError("Read returned None.")
|
2589
2568
|
# Read everything.
|
2590
|
-
result = self._get_decoded_chars() + decoder.decode(
|
2569
|
+
result = self._get_decoded_chars() + decoder.decode(self.buffer.read(), final=True)
|
2591
2570
|
if self._snapshot is not None:
|
2592
2571
|
self._set_decoded_chars('')
|
2593
2572
|
self._snapshot = None
|
@@ -2708,6 +2687,10 @@ class TextIOWrapper(TextIOBase):
|
|
2708
2687
|
def newlines(self):
|
2709
2688
|
return self._decoder.newlines if self._decoder else None
|
2710
2689
|
|
2690
|
+
def _dealloc_warn(self, source):
|
2691
|
+
if dealloc_warn := getattr(self.buffer, "_dealloc_warn", None):
|
2692
|
+
dealloc_warn(source)
|
2693
|
+
|
2711
2694
|
|
2712
2695
|
class StringIO(TextIOWrapper):
|
2713
2696
|
"""
|
omlish/lite/maysyncs.py
CHANGED
@@ -11,7 +11,8 @@ import typing as ta
|
|
11
11
|
|
12
12
|
T = ta.TypeVar('T')
|
13
13
|
T_co = ta.TypeVar('T_co', covariant=True)
|
14
|
-
|
14
|
+
|
15
|
+
_MaysyncX = ta.TypeVar('_MaysyncX')
|
15
16
|
|
16
17
|
_MaysyncGen = ta.Generator['_MaysyncOp', ta.Any, T] # ta.TypeAlias
|
17
18
|
|
@@ -40,11 +41,11 @@ class Maysync_(abc.ABC): # noqa
|
|
40
41
|
##
|
41
42
|
|
42
43
|
|
43
|
-
class _Maywaitable(abc.ABC, ta.Generic[
|
44
|
+
class _Maywaitable(abc.ABC, ta.Generic[_MaysyncX, T]):
|
44
45
|
@ta.final
|
45
46
|
def __init__(
|
46
47
|
self,
|
47
|
-
x:
|
48
|
+
x: _MaysyncX,
|
48
49
|
*args: ta.Any,
|
49
50
|
**kwargs: ta.Any,
|
50
51
|
) -> None:
|
@@ -115,6 +116,8 @@ class _MgMaysync(Maysync_, ta.Generic[T]):
|
|
115
116
|
) -> None:
|
116
117
|
self.mg = mg
|
117
118
|
|
119
|
+
functools.update_wrapper(self, mg, updated=())
|
120
|
+
|
118
121
|
def __get__(self, instance, owner=None):
|
119
122
|
return _MgMaysync(
|
120
123
|
self.mg.__get__(instance, owner), # noqa
|
@@ -188,7 +191,7 @@ class _MgMaysyncFn:
|
|
188
191
|
def __init__(self, m):
|
189
192
|
self.m = m
|
190
193
|
|
191
|
-
functools.update_wrapper(self, m)
|
194
|
+
functools.update_wrapper(self, m, updated=())
|
192
195
|
|
193
196
|
def __get__(self, instance, owner=None):
|
194
197
|
return _MgMaysyncFn(
|
@@ -47,8 +47,6 @@ class AsyncsPlugin:
|
|
47
47
|
bd: dict[str, AsyncsBackend] = {}
|
48
48
|
for bc in backends:
|
49
49
|
be = bc()
|
50
|
-
if not be.is_available():
|
51
|
-
continue
|
52
50
|
bn = be.name
|
53
51
|
check.not_in(bn, bd)
|
54
52
|
bd[bn] = be
|
@@ -82,7 +80,8 @@ class AsyncsPlugin:
|
|
82
80
|
|
83
81
|
for bn in bns:
|
84
82
|
be = self._backends[bn]
|
85
|
-
be.
|
83
|
+
if be.is_available():
|
84
|
+
be.prepare_for_metafunc(metafunc)
|
86
85
|
|
87
86
|
metafunc.fixturenames.append(PARAM_NAME)
|
88
87
|
metafunc.parametrize(PARAM_NAME, bns)
|
@@ -139,6 +138,9 @@ class AsyncsPlugin:
|
|
139
138
|
if not is_coroutine_function(testfunc):
|
140
139
|
pytest.fail(f'test function `{item!r}` is marked asyncs but is not async')
|
141
140
|
|
141
|
+
if not backend.is_available():
|
142
|
+
pytest.skip(f'backend `{backend.name}` is unavailable')
|
143
|
+
|
142
144
|
@backend.wrap_runner
|
143
145
|
async def _bootstrap_fixtures_and_run_test(**kwargs):
|
144
146
|
__tracebackhide__ = True
|
@@ -1,5 +1,5 @@
|
|
1
1
|
omlish/.manifests.json,sha256=aT8yZ-Zh-9wfHl5Ym5ouiWC1i0cy7Q7RlhzavB6VLPI,8587
|
2
|
-
omlish/__about__.py,sha256=
|
2
|
+
omlish/__about__.py,sha256=a6RkItgr_-dJttDWjLRSXAsJlAhjzEkuNmTdxKIRibk,3543
|
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
|
@@ -251,7 +251,7 @@ omlish/formats/pickle.py,sha256=jdp4E9WH9qVPBE3sSqbqDtUo18RbTSIiSpSzJ-IEVZw,529
|
|
251
251
|
omlish/formats/props.py,sha256=rPycJ-_b76NSNc2b_dZ0F0zyKzuXK8v6K6fqcV8uCRQ,18933
|
252
252
|
omlish/formats/repr.py,sha256=kYrNs4o-ji8nOdp6u_L3aMgBMWN1ZAZJSAWgQQfStSQ,414
|
253
253
|
omlish/formats/xml.py,sha256=S_5txvWn8Gv4D8cS0-amxrsmvjBGap3gKMXqEkdtpss,3515
|
254
|
-
omlish/formats/yaml.py,sha256=
|
254
|
+
omlish/formats/yaml.py,sha256=yAyozZFbHIjNwexX81pnAIcpnGbJvWCras-8ifqWKFI,7392
|
255
255
|
omlish/formats/edn/__init__.py,sha256=H3q5B-dibXvQV8pmuWizTo6Xk75M7M0M7VPCLt86rpo,195
|
256
256
|
omlish/formats/edn/codec.py,sha256=k6-Ra3P3Rlv6JA69-jPLI4nCe5XVes_QJbcsj5DYzMM,454
|
257
257
|
omlish/formats/edn/lexing.py,sha256=LaIaGql9NtRlgi6bs4XhZ-wtabiUs99PoYN7_yAKMNE,6892
|
@@ -390,7 +390,7 @@ omlish/io/__init__.py,sha256=47DEQpj8HBSa-_TImW-5JCeuQeRkm5NMpJWZG3hSuFU,0
|
|
390
390
|
omlish/io/abc.py,sha256=M40QB2udYpCEqmlxCcHv6FlJYJY6ymmJQBlaklYv0U8,1256
|
391
391
|
omlish/io/buffers.py,sha256=2ZAAZn-fTAtPCgtwcH_UJrSr5ZS9VNRp7yynufv0Rmk,7291
|
392
392
|
omlish/io/fileno.py,sha256=_W3qxkIKpnabn1_7kgmKdx0IsPF3R334xWnF_TtkEj4,185
|
393
|
-
omlish/io/pyio.py,sha256=
|
393
|
+
omlish/io/pyio.py,sha256=xmHTV-sn7QZThWCVBo6lTM7dhgsQn7m2L0DqRwdF2-8,94509
|
394
394
|
omlish/io/trampoline.py,sha256=yM7Evz7cgWpFj97IUiHgq9jfqpsx-deTSZwGl1qOnoM,7199
|
395
395
|
omlish/io/compress/__init__.py,sha256=fJFPT4ONfqxmsA4jR6qbMt2woIyyEgnc_qOWK9o1kII,247
|
396
396
|
omlish/io/compress/abc.py,sha256=P9YoQX8XYoq2UfBsinKLUuwwqV1ODUIJzjTraRWGF1M,3090
|
@@ -478,7 +478,7 @@ omlish/lite/json.py,sha256=m0Ce9eqUZG23-H7-oOp8n1sf4fzno5vtK4AK_4Vc-Mg,706
|
|
478
478
|
omlish/lite/logs.py,sha256=CWFG0NKGhqNeEgryF5atN2gkPYbUdTINEw_s1phbINM,51
|
479
479
|
omlish/lite/marshal.py,sha256=JD_8ox5-yeIo7MZ6iipCdiVxx33So52M02AtvFlRGC8,20392
|
480
480
|
omlish/lite/maybes.py,sha256=0p_fzb6yiOjEpvMKaQ53Q6CH1VPW1or7v7Lt1JIKcgM,4359
|
481
|
-
omlish/lite/maysyncs.py,sha256=
|
481
|
+
omlish/lite/maysyncs.py,sha256=ltB3CQ_zYl2PiTmHjtpeErZDFpNwj27JhO6_3xBmnfk,5852
|
482
482
|
omlish/lite/pycharm.py,sha256=FRHGcCDo42UzZXqNwW_DkhI-6kb_CmJKPiQ8F6mYkLA,1174
|
483
483
|
omlish/lite/reflect.py,sha256=pzOY2PPuHH0omdtglkN6DheXDrGopdL3PtTJnejyLFU,2189
|
484
484
|
omlish/lite/reprs.py,sha256=Tiqf_ciD8FfS0ury7FcJ5G21yY342fW0vPacYlb8EO4,2014
|
@@ -775,7 +775,7 @@ omlish/testing/pytest/inject/__init__.py,sha256=pdRKv1HcDmJ_yArKJbYITPXXZthRSGgB
|
|
775
775
|
omlish/testing/pytest/inject/harness.py,sha256=uaFDli1ovhue-kfXV5WXyLn6cVOWNQf_2vFD13r-JyQ,5700
|
776
776
|
omlish/testing/pytest/plugins/__init__.py,sha256=ys1zXrYrNm7Uo6YOIVJ6Bd3dQo6kv387k7MbTYlqZSI,467
|
777
777
|
omlish/testing/pytest/plugins/_registry.py,sha256=IK04KlBgiOJxKAyCCgjpX2R-9tE-btalYJkgjLc8Te8,77
|
778
|
-
omlish/testing/pytest/plugins/depskip.py,sha256=
|
778
|
+
omlish/testing/pytest/plugins/depskip.py,sha256=erF9Ff7lmGR8g-lNGAbU0tLTl43dLzO5e6AUwJ6p4GA,3217
|
779
779
|
omlish/testing/pytest/plugins/logging.py,sha256=8gelEK2rho1I5XtxH0XPfJwxF0O-CAMffcXbi2ZsbBI,395
|
780
780
|
omlish/testing/pytest/plugins/managermarks.py,sha256=i8JtdLtR1kYkgcu5lCOTXXrY5qM4TOFW0lbS1CKB1Ts,1305
|
781
781
|
omlish/testing/pytest/plugins/pydevd.py,sha256=umbQh8Dy1kDjpvV6F9Ld9un7boEkjx90S94h5pzHhO8,846
|
@@ -786,7 +786,7 @@ omlish/testing/pytest/plugins/utils.py,sha256=7NZIe_AiblFEm7fIOL66up4k0sdBL3RZgj
|
|
786
786
|
omlish/testing/pytest/plugins/asyncs/__init__.py,sha256=TTNhFmP_krug1973sq_bpWBTIvg68-1nbuVLSs92Z6k,41
|
787
787
|
omlish/testing/pytest/plugins/asyncs/consts.py,sha256=0NOCkzV43dOu3u97BqYMQ4mPG8JuFncpWibkOZpCqX4,55
|
788
788
|
omlish/testing/pytest/plugins/asyncs/fixtures.py,sha256=O0gT4jVH-4t1WYpY2j51QgsbdK8LKt4R9hOxnf74eTg,11264
|
789
|
-
omlish/testing/pytest/plugins/asyncs/plugin.py,sha256=
|
789
|
+
omlish/testing/pytest/plugins/asyncs/plugin.py,sha256=cQEdInjYxXswOMexTdZTkcNpM3RKeQiKxdS7fjwIsq0,6088
|
790
790
|
omlish/testing/pytest/plugins/asyncs/utils.py,sha256=YYh6XW_WmHnQCWw1jUMi0HOX_PkRnM-u5_dlVth2tt8,299
|
791
791
|
omlish/testing/pytest/plugins/asyncs/backends/__init__.py,sha256=DpJGt5KA2N2pNXy59raVyJH1969M1AP80pJAqIlNEAs,359
|
792
792
|
omlish/testing/pytest/plugins/asyncs/backends/asyncio.py,sha256=V4bPSbGRbSHuoRRMFhufqOam49oRycobtChN1eldvRI,825
|
@@ -895,9 +895,9 @@ omlish/typedvalues/marshal.py,sha256=AtBz7Jq-BfW8vwM7HSxSpR85JAXmxK2T0xDblmm1HI0
|
|
895
895
|
omlish/typedvalues/of_.py,sha256=UXkxSj504WI2UrFlqdZJbu2hyDwBhL7XVrc2qdR02GQ,1309
|
896
896
|
omlish/typedvalues/reflect.py,sha256=PAvKW6T4cW7u--iX80w3HWwZUS3SmIZ2_lQjT65uAyk,1026
|
897
897
|
omlish/typedvalues/values.py,sha256=ym46I-q2QJ_6l4UlERqv3yj87R-kp8nCKMRph0xQ3UA,1307
|
898
|
-
omlish-0.0.0.
|
899
|
-
omlish-0.0.0.
|
900
|
-
omlish-0.0.0.
|
901
|
-
omlish-0.0.0.
|
902
|
-
omlish-0.0.0.
|
903
|
-
omlish-0.0.0.
|
898
|
+
omlish-0.0.0.dev391.dist-info/licenses/LICENSE,sha256=B_hVtavaA8zCYDW99DYdcpDLKz1n3BBRjZrcbv8uG8c,1451
|
899
|
+
omlish-0.0.0.dev391.dist-info/METADATA,sha256=5_6xnSlNVHQd_t9th-Vt5lgyJkBo9FZtVJeqNOb9L4Q,18825
|
900
|
+
omlish-0.0.0.dev391.dist-info/WHEEL,sha256=_zCd3N1l69ArxyTb8rzEoP9TpbYXkqRFSNOD5OuxnTs,91
|
901
|
+
omlish-0.0.0.dev391.dist-info/entry_points.txt,sha256=Lt84WvRZJskWCAS7xnQGZIeVWksprtUHj0llrvVmod8,35
|
902
|
+
omlish-0.0.0.dev391.dist-info/top_level.txt,sha256=pePsKdLu7DvtUiecdYXJ78iO80uDNmBlqe-8hOzOmfs,7
|
903
|
+
omlish-0.0.0.dev391.dist-info/RECORD,,
|
File without changes
|
File without changes
|
File without changes
|
File without changes
|