omlish 0.0.0.dev299__py3-none-any.whl → 0.0.0.dev301__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.dev299'
2
- __revision__ = '73b5419aa5d43e554a35a615d906559440e76d1b'
1
+ __version__ = '0.0.0.dev301'
2
+ __revision__ = '1567cf674d01bddcf7c1ad426e2677fe25730bd0'
3
3
 
4
4
 
5
5
  #
@@ -191,7 +191,7 @@ class AsyncioSubprocesses(AbstractAsyncSubprocesses):
191
191
  async with self.popen(*run.cmd, **kwargs) as proc:
192
192
  stdout, stderr = await self.communicate(proc, run.input, run.timeout)
193
193
 
194
- if check and proc.returncode:
194
+ if run.check and proc.returncode:
195
195
  raise subprocess.CalledProcessError(
196
196
  proc.returncode,
197
197
  run.cmd,
omlish/check.py CHANGED
@@ -1,3 +1,8 @@
1
+ """
2
+ While the core functionality lives in `lite/check.py` and is available in lite code, this module re-exports the contents
3
+ of its `check` API object as module-globals for convenience. It also sets up some non-lite integration, most notably
4
+ `ArgsRenderer` for rendering the AST's and values of failed checks (if the necessary optional dependencies are present).
5
+ """
1
6
  import typing as ta
2
7
 
3
8
  from .lite.check import CheckArgsRenderer as ArgsRenderer # noqa
@@ -95,6 +95,7 @@ class TomlDecodeError(ValueError):
95
95
 
96
96
  def toml_load(fp: ta.BinaryIO, /, *, parse_float: TomlParseFloat = float) -> ta.Dict[str, ta.Any]:
97
97
  """Parse TOML from a binary file object."""
98
+
98
99
  b = fp.read()
99
100
  try:
100
101
  s = b.decode()
@@ -12,16 +12,27 @@ V = ta.TypeVar('V')
12
12
  def yield_dict_init(*args: ta.Any, **kwargs: ta.Any) -> ta.Iterable[tuple[ta.Any, ta.Any]]:
13
13
  if len(args) > 1:
14
14
  raise TypeError
15
+
15
16
  if args:
16
17
  [src] = args
18
+
19
+ # Prefer .items() as it's potentially faster.
17
20
  if isinstance(src, collections.abc.Mapping):
18
- for k in src:
21
+ yield from src.items()
22
+
23
+ # Support keys() duck-typed dict init behavior:
24
+ # https://docs.python.org/3/library/stdtypes.html#dict
25
+ # https://github.com/python/cpython/blob/95d9dea1c4ed1b1de80074b74301cee0b38d5541/Objects/dictobject.c#L2671
26
+ elif hasattr(src, 'keys'):
27
+ # https://github.com/python/cpython/blob/95d9dea1c4ed1b1de80074b74301cee0b38d5541/Objects/dictobject.c#L2927
28
+ for k in src.keys(): # noqa
19
29
  yield (k, src[k])
30
+
20
31
  else:
21
32
  for k, v in src:
22
33
  yield (k, v)
23
- for k, v in kwargs.items():
24
- yield (k, v)
34
+
35
+ yield from kwargs.items()
25
36
 
26
37
 
27
38
  def merge_dicts(
@@ -1,6 +1,6 @@
1
1
  Metadata-Version: 2.4
2
2
  Name: omlish
3
- Version: 0.0.0.dev299
3
+ Version: 0.0.0.dev301
4
4
  Summary: omlish
5
5
  Author: wrmsr
6
6
  License: BSD-3-Clause
@@ -1,9 +1,9 @@
1
1
  omlish/.manifests.json,sha256=pjGUyLHaoWpPqRP3jz2u1fC1qoRc2lvrEcpU_Ax2tdg,8253
2
- omlish/__about__.py,sha256=tghPJ3r3hoOBraig8kr81p5Jv_kgJPAvrhVaVK8Li7o,3478
2
+ omlish/__about__.py,sha256=vJ9Iq4fdaTwYJYyurCvPlatvCtdn0744GDUZ2_r6sDM,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
6
- omlish/check.py,sha256=THqm6jD1a0skAO5EC8SOVg58yq96Vk5wcuruBkCYxyU,2016
6
+ 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
@@ -110,7 +110,7 @@ omlish/asyncs/asyncio/all.py,sha256=u2JpMEs-0AJ0Vd8yU10HvWD8rfKxdFfMiwBu2oDeuuQ,
110
110
  omlish/asyncs/asyncio/channels.py,sha256=X3S951YTjTRDguMSQRlfu74mPuWkNd2ZEUWboLY58-M,1079
111
111
  omlish/asyncs/asyncio/sockets.py,sha256=oZAPeC545MGeSpVj_uQfy-BbzXsXHesjCkJSiuqKmAI,1271
112
112
  omlish/asyncs/asyncio/streams.py,sha256=J_d1hgX4Mx9SfyW4DjOzh91PqzZmjOtiIB95ytF8Ygw,1009
113
- omlish/asyncs/asyncio/subprocesses.py,sha256=f30-wi-3n9R5dftm4CMrzp23EEa4GX283bORixm1_UU,6931
113
+ omlish/asyncs/asyncio/subprocesses.py,sha256=Ob5oiyue-YYpvQktzI54QpGsl8E0xEKFOVcb_atJ_R8,6935
114
114
  omlish/asyncs/asyncio/timeouts.py,sha256=LwFx93KSrefBobQoK4-yH5B6M-pbd7NdNksNzLBfLgQ,459
115
115
  omlish/asyncs/asyncio/utils.py,sha256=mDjYNm1cylUhQ8slWXwdPoXasuWfafjzu78GHt2Mdig,2437
116
116
  omlish/asyncs/bluelet/LICENSE,sha256=VHf3oPQihOHnWyIR8LcXX0dpONa1lgyJnjWC2qVuRR0,559
@@ -356,7 +356,7 @@ omlish/formats/json5/_antlr/Json5Visitor.py,sha256=SfHhUMNapeP8g4Dc7SFwRSqeBtUTL
356
356
  omlish/formats/json5/_antlr/__init__.py,sha256=47DEQpj8HBSa-_TImW-5JCeuQeRkm5NMpJWZG3hSuFU,0
357
357
  omlish/formats/toml/__init__.py,sha256=47DEQpj8HBSa-_TImW-5JCeuQeRkm5NMpJWZG3hSuFU,0
358
358
  omlish/formats/toml/codec.py,sha256=5HFGWEPd9IFxPlRMRheX8FEDlRIzLe1moHEOj2_PFKU,342
359
- omlish/formats/toml/parser.py,sha256=DICp6rW34wozPVky5yn__fz9-6VHLtA_SUf5Ksgy7Ac,30535
359
+ omlish/formats/toml/parser.py,sha256=c6Hrf6OfVQVtgsYUXL5P5PQQqF-v7r8nkUmprxhV-lI,30536
360
360
  omlish/formats/toml/writer.py,sha256=HIp6XvriXaPTLqyLe-fkIiEf1Pyhsp0TcOg5rFBpO3g,3226
361
361
  omlish/funcs/__init__.py,sha256=47DEQpj8HBSa-_TImW-5JCeuQeRkm5NMpJWZG3hSuFU,0
362
362
  omlish/funcs/genmachine.py,sha256=jvctDOJd3X-S2_8C83sgWYz2llYlyhHN7P19-WsanOs,2506
@@ -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=aGi0j6VzVe2nz4l357Y4RD5_XNl8OJbmM5qM6BclrrY,1895
470
+ omlish/lang/collections.py,sha256=jWjtYb2NuhaceQYcn7VS2XRkAaBxIRRTFkOcdvLytKs,2375
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
@@ -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.dev299.dist-info/licenses/LICENSE,sha256=B_hVtavaA8zCYDW99DYdcpDLKz1n3BBRjZrcbv8uG8c,1451
847
- omlish-0.0.0.dev299.dist-info/METADATA,sha256=T9HA9WB2SuPxxk-DiWerqiu1KkDizRIPRBitUe0csao,4416
848
- omlish-0.0.0.dev299.dist-info/WHEEL,sha256=pxyMxgL8-pra_rKaQ4drOZAegBVuX-G_4nRHjjgWbmo,91
849
- omlish-0.0.0.dev299.dist-info/entry_points.txt,sha256=Lt84WvRZJskWCAS7xnQGZIeVWksprtUHj0llrvVmod8,35
850
- omlish-0.0.0.dev299.dist-info/top_level.txt,sha256=pePsKdLu7DvtUiecdYXJ78iO80uDNmBlqe-8hOzOmfs,7
851
- omlish-0.0.0.dev299.dist-info/RECORD,,
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,,
@@ -1,5 +1,5 @@
1
1
  Wheel-Version: 1.0
2
- Generator: setuptools (79.0.0)
2
+ Generator: setuptools (79.0.1)
3
3
  Root-Is-Purelib: true
4
4
  Tag: py3-none-any
5
5