omdev 0.0.0.dev291__py3-none-any.whl → 0.0.0.dev292__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.
omdev/.manifests.json CHANGED
@@ -39,7 +39,7 @@
39
39
  "module": ".cli.clicli",
40
40
  "attr": "_CLI_MODULE",
41
41
  "file": "omdev/cli/clicli.py",
42
- "line": 168,
42
+ "line": 173,
43
43
  "value": {
44
44
  "$.cli.types.CliModule": {
45
45
  "cmd_name": "cli",
omdev/ci/compose.py CHANGED
@@ -155,7 +155,7 @@ class DockerComposeRun(AsyncExitStacked):
155
155
 
156
156
  async with contextlib.AsyncExitStack() as es:
157
157
  if not (self._cfg.no_dependencies or self._cfg.no_dependency_cleanup):
158
- await es.enter_async_context(adefer(self._cleanup_dependencies)) # noqa
158
+ await es.enter_async_context(adefer(self._cleanup_dependencies())) # noqa
159
159
 
160
160
  sh_cmd = ' '.join([
161
161
  'docker',
omdev/cli/clicli.py CHANGED
@@ -1,5 +1,6 @@
1
1
  import inspect
2
2
  import os
3
+ import shlex
3
4
  import subprocess
4
5
  import sys
5
6
  import typing as ta
@@ -76,6 +77,7 @@ class CliCli(ap.Cli):
76
77
  ap.arg('--url', default=DEFAULT_REINSTALL_URL),
77
78
  ap.arg('--local', action='store_true'),
78
79
  ap.arg('--no-deps', action='store_true'),
80
+ ap.arg('--dry-run', action='store_true'),
79
81
  ap.arg('extra_deps', nargs='*'),
80
82
  )
81
83
  def reinstall(self) -> None:
@@ -147,7 +149,7 @@ class CliCli(ap.Cli):
147
149
 
148
150
  reco_cmd = ' '.join([
149
151
  'curl -LsSf',
150
- url,
152
+ f"'{url}'" if (qu := shlex.quote(url)) == url else qu,
151
153
  '| python3 -',
152
154
  *deps,
153
155
  ])
@@ -156,6 +158,9 @@ class CliCli(ap.Cli):
156
158
  with urllib.request.urlopen(urllib.request.Request(url)) as resp: # noqa
157
159
  install_src = resp.read().decode('utf-8')
158
160
 
161
+ if self.args.dry_run:
162
+ return
163
+
159
164
  os.execl(
160
165
  sys.executable,
161
166
  sys.executable,
omdev/scripts/ci.py CHANGED
@@ -3331,7 +3331,9 @@ class AsyncExitStacked:
3331
3331
 
3332
3332
 
3333
3333
  @contextlib.contextmanager
3334
- def defer(fn: ta.Callable) -> ta.Generator[ta.Callable, None, None]:
3334
+ def defer(fn: ta.Callable, *args: ta.Any, **kwargs: ta.Any) -> ta.Generator[ta.Callable, None, None]:
3335
+ if args or kwargs:
3336
+ fn = functools.partial(fn, *args, **kwargs)
3335
3337
  try:
3336
3338
  yield fn
3337
3339
  finally:
@@ -3339,11 +3341,11 @@ def defer(fn: ta.Callable) -> ta.Generator[ta.Callable, None, None]:
3339
3341
 
3340
3342
 
3341
3343
  @contextlib.asynccontextmanager
3342
- async def adefer(fn: ta.Callable) -> ta.AsyncGenerator[ta.Callable, None]:
3344
+ async def adefer(fn: ta.Awaitable) -> ta.AsyncGenerator[ta.Awaitable, None]:
3343
3345
  try:
3344
3346
  yield fn
3345
3347
  finally:
3346
- await fn()
3348
+ await fn
3347
3349
 
3348
3350
 
3349
3351
  ##
@@ -11702,7 +11704,7 @@ class DockerComposeRun(AsyncExitStacked):
11702
11704
 
11703
11705
  async with contextlib.AsyncExitStack() as es:
11704
11706
  if not (self._cfg.no_dependencies or self._cfg.no_dependency_cleanup):
11705
- await es.enter_async_context(adefer(self._cleanup_dependencies)) # noqa
11707
+ await es.enter_async_context(adefer(self._cleanup_dependencies())) # noqa
11706
11708
 
11707
11709
  sh_cmd = ' '.join([
11708
11710
  'docker',
@@ -1,6 +1,6 @@
1
1
  Metadata-Version: 2.4
2
2
  Name: omdev
3
- Version: 0.0.0.dev291
3
+ Version: 0.0.0.dev292
4
4
  Summary: omdev
5
5
  Author: wrmsr
6
6
  License: BSD-3-Clause
@@ -12,7 +12,7 @@ Classifier: Operating System :: OS Independent
12
12
  Classifier: Operating System :: POSIX
13
13
  Requires-Python: >=3.12
14
14
  License-File: LICENSE
15
- Requires-Dist: omlish==0.0.0.dev291
15
+ Requires-Dist: omlish==0.0.0.dev292
16
16
  Provides-Extra: all
17
17
  Requires-Dist: black~=25.1; extra == "all"
18
18
  Requires-Dist: pycparser~=2.22; extra == "all"
@@ -1,4 +1,4 @@
1
- omdev/.manifests.json,sha256=zmYuVLzazV03KggE8ZqY0MlVvpEwChvCWh_wfCSEn3w,10394
1
+ omdev/.manifests.json,sha256=NMpBMsMXhfagy-iPTPxxWagDgrBIE5CTXHmLhl8_FOU,10394
2
2
  omdev/__about__.py,sha256=OgO_8azOzKriF2qPeDWRLcRe9p1XW5kYdJCq5vewff0,1171
3
3
  omdev/__init__.py,sha256=47DEQpj8HBSa-_TImW-5JCeuQeRkm5NMpJWZG3hSuFU,0
4
4
  omdev/cmake.py,sha256=9rfSvFHPmKDj9ngvfDB2vK8O-xO_ZwUm7hMKLWA-yOw,4578
@@ -68,7 +68,7 @@ omdev/ci/__main__.py,sha256=Jsrv3P7LX2Cg08W7ByZfZ1JQT4lgLDPW1qNAmShFuMk,75
68
68
  omdev/ci/cache.py,sha256=MMPx3BMKVGnF2yASEjikvao8H2lRrUdik4eYU8xcFnQ,8352
69
69
  omdev/ci/ci.py,sha256=w08Bmdm0dO_ew4ohaKH2mUnRSaJGNS57pbecAlI5X-A,7917
70
70
  omdev/ci/cli.py,sha256=jpgdmZS8qLrY9YGC29sizyo6ue3uR5yXf0lSzNFuRiw,7183
71
- omdev/ci/compose.py,sha256=LX2QKB8DP3ADjJA1-8G_cncZqXnhD_7fQSM5aAo93Zw,4510
71
+ omdev/ci/compose.py,sha256=QgN6H66nItcJniivFiw7nL4tgUARHqap8QzxEdcbwDc,4512
72
72
  omdev/ci/consts.py,sha256=HkSYz-_hHilcHPBvRs-SwcUxW7vMNlHXZ8OyIKnVQbQ,21
73
73
  omdev/ci/inject.py,sha256=-rEXOxGNZQLz-CUEen3w8p21xMVkbrcKi8FRNOP_p9k,1924
74
74
  omdev/ci/requirements.py,sha256=UKN6avU5V96YmmJL8XYvMPxzzOagrKpGTYadaxI2z9U,2105
@@ -105,7 +105,7 @@ omdev/ci/github/api/v2/client.py,sha256=scY_Nmzt6wKjFt_YjTq0CjBHArV8DnLQeLlxlpSh
105
105
  omdev/cli/__init__.py,sha256=V_l6VP1SZMlJbO-8CJwSuO9TThOy2S_oaPepNYgIrbE,37
106
106
  omdev/cli/__main__.py,sha256=mOJpgc07o0r5luQ1DlX4tk2PqZkgmbwPbdzJ3KmtjgQ,138
107
107
  omdev/cli/_pathhack.py,sha256=kxqb2kHap68Lkh8b211rDbcgj06hidBiAKA3f9posyc,2119
108
- omdev/cli/clicli.py,sha256=b3ZuzsgTIq3-OR90a2R8eI2vNYHr_S53NdLkcttPkxc,4313
108
+ omdev/cli/clicli.py,sha256=KWDQl1tsJctk-3AOWOf7IP2b4khoUhb0kyfrj3Df5VU,4476
109
109
  omdev/cli/install.py,sha256=C-W171YlIHt4Cfok-nWSMbHwWhqF_PFqq2HixFttYx8,4460
110
110
  omdev/cli/main.py,sha256=dxZFyzKuwRykHHhoKKUA0fUa9QsY0dgdvLHbXNuIPCY,6694
111
111
  omdev/cli/managers.py,sha256=BV98_n30Jj63OJrFgRoVZRfICxMLXEZKoEn4rMj9LV4,1160
@@ -226,7 +226,7 @@ omdev/pyproject/resources/__init__.py,sha256=47DEQpj8HBSa-_TImW-5JCeuQeRkm5NMpJW
226
226
  omdev/pyproject/resources/docker-dev.sh,sha256=DHkz5D18jok_oDolfg2mqrvGRWFoCe9GQo04dR1czcc,838
227
227
  omdev/pyproject/resources/python.sh,sha256=rFaN4SiJ9hdLDXXsDTwugI6zsw6EPkgYMmtacZeTbvw,749
228
228
  omdev/scripts/__init__.py,sha256=MKCvUAEQwsIvwLixwtPlpBqmkMXLCnjjXyAXvVpDwVk,91
229
- omdev/scripts/ci.py,sha256=POmSM31nJ9DK-3WXJUPMotOGuN7_0ciJCOYB1mGm8MA,353131
229
+ omdev/scripts/ci.py,sha256=el2XV4fefwP3qMavQ6vDDAXOfEAyTepzpkIt9R5WyWw,353241
230
230
  omdev/scripts/interp.py,sha256=xIPlK_zF_6qqyZev8hsCrx5YQYMAPkYpa1i61ouOyEc,151774
231
231
  omdev/scripts/pyproject.py,sha256=S_u1a-97woo7twmaTNN8yHNaVGP2Lye1OPocIc1A57M,260925
232
232
  omdev/scripts/slowcat.py,sha256=lssv4yrgJHiWfOiHkUut2p8E8Tq32zB-ujXESQxFFHY,2728
@@ -265,9 +265,9 @@ omdev/tools/json/rendering.py,sha256=tMcjOW5edfozcMSTxxvF7WVTsbYLoe9bCKFh50qyaGw
265
265
  omdev/tools/pawk/__init__.py,sha256=47DEQpj8HBSa-_TImW-5JCeuQeRkm5NMpJWZG3hSuFU,0
266
266
  omdev/tools/pawk/__main__.py,sha256=VCqeRVnqT1RPEoIrqHFSu4PXVMg4YEgF4qCQm90-eRI,66
267
267
  omdev/tools/pawk/pawk.py,sha256=zsEkfQX0jF5bn712uqPAyBSdJt2dno1LH2oeSMNfXQI,11424
268
- omdev-0.0.0.dev291.dist-info/licenses/LICENSE,sha256=B_hVtavaA8zCYDW99DYdcpDLKz1n3BBRjZrcbv8uG8c,1451
269
- omdev-0.0.0.dev291.dist-info/METADATA,sha256=w8Wkb4mWgtDfnrOR24J-FjznCubjmqWkXutMBJYwIZs,1478
270
- omdev-0.0.0.dev291.dist-info/WHEEL,sha256=pxyMxgL8-pra_rKaQ4drOZAegBVuX-G_4nRHjjgWbmo,91
271
- omdev-0.0.0.dev291.dist-info/entry_points.txt,sha256=dHLXFmq5D9B8qUyhRtFqTGWGxlbx3t5ejedjrnXNYLU,33
272
- omdev-0.0.0.dev291.dist-info/top_level.txt,sha256=1nr7j30fEWgLYHW3lGR9pkdHkb7knv1U1ES1XRNVQ6k,6
273
- omdev-0.0.0.dev291.dist-info/RECORD,,
268
+ omdev-0.0.0.dev292.dist-info/licenses/LICENSE,sha256=B_hVtavaA8zCYDW99DYdcpDLKz1n3BBRjZrcbv8uG8c,1451
269
+ omdev-0.0.0.dev292.dist-info/METADATA,sha256=TuMFUm1uQeAWitZoLBEf1yrCGF8CKcWzdNVp1SN7AIw,1478
270
+ omdev-0.0.0.dev292.dist-info/WHEEL,sha256=pxyMxgL8-pra_rKaQ4drOZAegBVuX-G_4nRHjjgWbmo,91
271
+ omdev-0.0.0.dev292.dist-info/entry_points.txt,sha256=dHLXFmq5D9B8qUyhRtFqTGWGxlbx3t5ejedjrnXNYLU,33
272
+ omdev-0.0.0.dev292.dist-info/top_level.txt,sha256=1nr7j30fEWgLYHW3lGR9pkdHkb7knv1U1ES1XRNVQ6k,6
273
+ omdev-0.0.0.dev292.dist-info/RECORD,,