omdev 0.0.0.dev269__py3-none-any.whl → 0.0.0.dev271__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
@@ -239,6 +239,18 @@
239
239
  }
240
240
  }
241
241
  },
242
+ {
243
+ "module": ".tools.diff",
244
+ "attr": "_CLI_MODULE",
245
+ "file": "omdev/tools/diff.py",
246
+ "line": 21,
247
+ "value": {
248
+ "$.cli.types.CliModule": {
249
+ "cmd_name": "diff",
250
+ "mod_name": "omdev.tools.diff"
251
+ }
252
+ }
253
+ },
242
254
  {
243
255
  "module": ".tools.doc",
244
256
  "attr": "_CLI_MODULE",
@@ -41,5 +41,7 @@ class ExtractAction(Action, lang.Final):
41
41
  @lang.static_init
42
42
  def _install_standard_marshalling() -> None:
43
43
  actions_poly = msh.polymorphism_from_subclasses(Action, naming=msh.Naming.SNAKE, strip_suffix=True)
44
- msh.STANDARD_MARSHALER_FACTORIES[0:0] = [msh.PolymorphismMarshalerFactory(actions_poly)]
45
- msh.STANDARD_UNMARSHALER_FACTORIES[0:0] = [msh.PolymorphismUnmarshalerFactory(actions_poly)]
44
+ msh.install_standard_factories(
45
+ msh.PolymorphismMarshalerFactory(actions_poly),
46
+ msh.PolymorphismUnmarshalerFactory(actions_poly),
47
+ )
omdev/cache/data/specs.py CHANGED
@@ -95,5 +95,7 @@ class GithubContentSpec(Spec):
95
95
  @lang.static_init
96
96
  def _install_standard_marshalling() -> None:
97
97
  specs_poly = msh.polymorphism_from_subclasses(Spec, naming=msh.Naming.SNAKE, strip_suffix=True)
98
- msh.STANDARD_MARSHALER_FACTORIES[0:0] = [msh.PolymorphismMarshalerFactory(specs_poly)]
99
- msh.STANDARD_UNMARSHALER_FACTORIES[0:0] = [msh.PolymorphismUnmarshalerFactory(specs_poly)]
98
+ msh.install_standard_factories(
99
+ msh.PolymorphismMarshalerFactory(specs_poly),
100
+ msh.PolymorphismUnmarshalerFactory(specs_poly),
101
+ )
omdev/cc/cli.py CHANGED
@@ -43,6 +43,7 @@ from .cdeps import process_marshaled_cdep
43
43
  class Cli(ap.Cli):
44
44
  @ap.cmd(
45
45
  ap.arg('--cwd'),
46
+ ap.arg('--cc'),
46
47
  ap.arg('src-file'),
47
48
  ap.arg('args', nargs=ap.REMAINDER),
48
49
  )
@@ -96,7 +97,7 @@ class Cli(ap.Cli):
96
97
  src_file_name = os.path.basename(src_file)
97
98
 
98
99
  sh_parts: list[str] = [
99
- 'clang++',
100
+ self.args.cc or 'clang++',
100
101
  ]
101
102
 
102
103
  for inc_dir in include_dirs:
@@ -65,17 +65,17 @@ def _install_standard_marshalling() -> None:
65
65
  msh.Impl(RequiresOp, 'op'),
66
66
  ],
67
67
  )
68
- msh.STANDARD_MARSHALER_FACTORIES[0:0] = [
68
+ msh.install_standard_factories(
69
69
  msh.PolymorphismMarshalerFactory(requires_node_poly),
70
+ msh.PolymorphismUnmarshalerFactory(requires_node_poly),
70
71
  msh.PolymorphismUnionMarshalerFactory(requires_node_poly.impls, allow_partial=True),
71
- RequiresMarkerListMarshalerFactory(),
72
+ )
72
73
 
73
- ]
74
- msh.STANDARD_UNMARSHALER_FACTORIES[0:0] = [
75
- msh.PolymorphismUnmarshalerFactory(requires_node_poly),
76
- ]
74
+ msh.install_standard_factories(
75
+ RequiresMarkerListMarshalerFactory(),
76
+ )
77
77
 
78
- msh.GLOBAL_REGISTRY.register(
78
+ msh.register_global(
79
79
  RequiresMarkerList,
80
80
  msh.ReflectOverride(MarshalRequiresMarkerList),
81
81
  identity=True,
omdev/tools/diff.py ADDED
@@ -0,0 +1,26 @@
1
+ import shlex
2
+
3
+ from omlish.argparse import all as ap
4
+ from omlish.subprocesses.sync import subprocesses
5
+
6
+ from ..cli import CliModule
7
+
8
+
9
+ class Cli(ap.Cli):
10
+ @ap.cmd(
11
+ ap.arg('l'),
12
+ ap.arg('r'),
13
+ )
14
+ def less(self) -> None:
15
+ subprocesses.check_call(
16
+ f'diff --color=always -y {shlex.quote(self.args.l)} {shlex.quote(self.args.r)} | less -R',
17
+ shell=True,
18
+ )
19
+
20
+
21
+ # @omlish-manifest
22
+ _CLI_MODULE = CliModule('diff', __name__)
23
+
24
+
25
+ if __name__ == '__main__':
26
+ Cli()()
omdev/tools/git/cli.py CHANGED
@@ -23,6 +23,7 @@ import dataclasses as dc
23
23
  import logging
24
24
  import os
25
25
  import re
26
+ import sys
26
27
  import typing as ta
27
28
  import urllib.parse
28
29
 
@@ -374,6 +375,7 @@ class Cli(ap.Cli):
374
375
 
375
376
  @ap.cmd(
376
377
  ap.arg('dir', nargs='*'),
378
+ ap.arg('-x', '--on-error-resume-next', action='store_true'),
377
379
  aliases=['usb'],
378
380
  )
379
381
  def update_submodule_branches(self) -> None:
@@ -406,7 +408,13 @@ class Cli(ap.Cli):
406
408
  ).decode().strip().splitlines()
407
409
 
408
410
  for submodule in submodules:
409
- run_submodule(submodule, cwd)
411
+ try:
412
+ run_submodule(submodule, cwd)
413
+ except Exception as e:
414
+ if self.args.on_error_resume_next:
415
+ print(e, file=sys.stderr)
416
+ else:
417
+ raise
410
418
 
411
419
  if not self.args.dir:
412
420
  run(None)
@@ -1,6 +1,6 @@
1
1
  Metadata-Version: 2.4
2
2
  Name: omdev
3
- Version: 0.0.0.dev269
3
+ Version: 0.0.0.dev271
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.dev269
15
+ Requires-Dist: omlish==0.0.0.dev271
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=hSEXKyag8MruNusPyIwNlvmQzOB4hSjjkSPbiiX0ufw,9833
1
+ omdev/.manifests.json,sha256=Y0n59DYlvNfa1X0cqC5uuzEWvTGTPapn8IogdC_IuxY,10078
2
2
  omdev/__about__.py,sha256=zoyBmj0TF_W82x0PED8gLtrmcYTng6UePKZ_RGiQVGE,1214
3
3
  omdev/__init__.py,sha256=47DEQpj8HBSa-_TImW-5JCeuQeRkm5NMpJWZG3hSuFU,0
4
4
  omdev/bracepy.py,sha256=I8EdqtDvxzAi3I8TuMEW-RBfwXfqKbwp06CfOdj3L1o,2743
@@ -32,17 +32,17 @@ omdev/cache/compute/resolvers.py,sha256=9dq0mt__emp8CdNDWPVUr_dCkTOn7ar6nw0F2QH6
32
32
  omdev/cache/compute/storage.py,sha256=woCUqHg8ZrwLEejRG3zu1L5ZXxGNNXveh3E8FnlEkjc,941
33
33
  omdev/cache/compute/types.py,sha256=NpCTTJHDmpERjrbO6dh9TEzHuP6-vOuoX3ym9sA0ukc,2639
34
34
  omdev/cache/data/__init__.py,sha256=SQXtugLceRif463rcoklpQ33pxYLgEIm0xiI6NvOI6M,301
35
- omdev/cache/data/actions.py,sha256=KVYb3tBYP5c0g-wK1bXih_K7L0ER9UINKChhfc7mwKQ,1071
35
+ omdev/cache/data/actions.py,sha256=Mv7eXeZuohCjQLpmLyvqvGjjBacXIvTYzIRMVpEh-zM,1037
36
36
  omdev/cache/data/cache.py,sha256=aZJotj9kpVHBK7O0UdqMdeV7PtCqf9Rd8tqIwgWtQlQ,7664
37
37
  omdev/cache/data/consts.py,sha256=d6W_aeMqgah6PmPYi9RA8Be54oQ4BcNCy8kDQ7FlB_Q,26
38
38
  omdev/cache/data/defaults.py,sha256=NL_mT7kaSLm2Mk9VO5wdSu-DIcHTR1KgcihJqdSd4TY,312
39
39
  omdev/cache/data/manifests.py,sha256=4BparztsMZo9DDVVPhv6iv5g4kK7QAi8Vqtj3PbKkco,989
40
- omdev/cache/data/specs.py,sha256=8o0b7goqvnezB_lD46w4ySp2KMZ8In3nqbtmfUT7v6c,2504
40
+ omdev/cache/data/specs.py,sha256=u082monskfaHeJlDXOAXjyvgRfqrnbVXrFLMJoOHWqI,2470
41
41
  omdev/cc/__init__.py,sha256=47DEQpj8HBSa-_TImW-5JCeuQeRkm5NMpJWZG3hSuFU,0
42
42
  omdev/cc/__main__.py,sha256=n7gxSRYZ1QZOUxQPCT0_n9Xl26zi2UIvCwyGW_m67nA,166
43
43
  omdev/cc/cdeps.py,sha256=vU0_O822uG8KK2lizuY71YczH9N9KB2JdI492JnGGQ0,1552
44
44
  omdev/cc/cdeps.toml,sha256=d58i8NvCAkk19-LkQTv0M6AL1p06vtWEs97brdNt_Vs,957
45
- omdev/cc/cli.py,sha256=YNiyaENvz1o2KV6WTk25043doFJs0LPpzFzsAGIdmUw,4372
45
+ omdev/cc/cli.py,sha256=B_JmY2hFfWaCc7IpISmcbMTWuzGN4xtpHkzaGLQIkL0,4412
46
46
  omdev/cexts/__init__.py,sha256=47DEQpj8HBSa-_TImW-5JCeuQeRkm5NMpJWZG3hSuFU,0
47
47
  omdev/cexts/_boilerplate.cc,sha256=sbpXEgdFrkdzZXgaNWFFNN27fL9TZu6VrwvMY4-nnFM,1726
48
48
  omdev/cexts/build.py,sha256=F3z1-CjDlEM-Gzi5IunKUBO52qdH_pMsFylobTdGJnI,2654
@@ -178,7 +178,7 @@ omdev/oci/pack/packing.py,sha256=K00GKBPGYYzFEK0CuQvoI7XRLULNld7_i7XcKdQ35zk,541
178
178
  omdev/oci/pack/repositories.py,sha256=EwCJlngKjqpNgcEeszOOnj3WxlQTgLOKo_rwe2PW8JM,4948
179
179
  omdev/oci/pack/unpacking.py,sha256=gRwdhYNpLc2QHq2JndRx5unrSCtcaYUUZZyCTCsDIHo,5997
180
180
  omdev/packaging/__init__.py,sha256=47DEQpj8HBSa-_TImW-5JCeuQeRkm5NMpJWZG3hSuFU,0
181
- omdev/packaging/marshal.py,sha256=c4Mdy5-s4O51eEKMWWBwkhTGQ1FoxVI2lD6CxI_cF3k,2379
181
+ omdev/packaging/marshal.py,sha256=YMXXkoWkjYoOAyD6RHsmaHGwlIsDQjnMtfa6e9-l4_A,2348
182
182
  omdev/packaging/names.py,sha256=-a7AykFPVR1i6EYJepbe3ABRrZQ_tPPmK5olzbn9HLI,2528
183
183
  omdev/packaging/requires.py,sha256=PGbH1m17lkFEBvSp3znF-o9dmgFrRCM_PHBl0ARa6lw,15679
184
184
  omdev/packaging/revisions.py,sha256=3u-6vY0mq01tgRENcncozsMLXSgtaQWXuQp0kRkEHvg,4986
@@ -224,6 +224,7 @@ omdev/tokens/tokenizert.py,sha256=-KM5ajybESWCMtqxSm_5ktyu8s-p1MdTgYA4ungyrkM,78
224
224
  omdev/tokens/utils.py,sha256=DJA2jsDzrtQxnO0bdkUk1-GmenX4ECugdhl1xOBe7QI,1448
225
225
  omdev/tools/__init__.py,sha256=iVJAOQ0viGTQOm0DLX4uZLro-9jOioYJGLg9s0kDx1A,78
226
226
  omdev/tools/cloc.py,sha256=jYlMHBae9oGKN4VKeBGuqjiQNcM2be7KIoTF0oNwx_I,5205
227
+ omdev/tools/diff.py,sha256=_ThKWXFE-bG5SPDYNs8GqstEUPzL_PTWb03nJN0laLg,515
227
228
  omdev/tools/doc.py,sha256=wvgGhv6aFaV-Zl-Qivejx37i-lKQ207rZ-4K2fPf-Ss,2547
228
229
  omdev/tools/docker.py,sha256=Ekn8q0vo5KZPnz5Fz2P_NDeZkN3c2bdnMvh0SOLWNps,7184
229
230
  omdev/tools/importscan.py,sha256=nhJIhtjDY6eFVlReP7fegvv6L5ZjN-Z2VeyhsBonev4,4639
@@ -239,7 +240,7 @@ omdev/tools/shadow.py,sha256=e0-R3Ss9CaZbGSUzSSr29OVj9mUQ-Oelh-66Dfkx5nk,1600
239
240
  omdev/tools/sqlrepl.py,sha256=wAjrfXNrRV63-NJCC2HlGQnFh7lUH0bHMnOjYotQqFs,5753
240
241
  omdev/tools/git/__init__.py,sha256=47DEQpj8HBSa-_TImW-5JCeuQeRkm5NMpJWZG3hSuFU,0
241
242
  omdev/tools/git/__main__.py,sha256=gI87SBUgTkKUcUM-RtZWnei-UUDDqzbr5aPztb-gvbE,168
242
- omdev/tools/git/cli.py,sha256=E6v1dHjKiZpFRIRcJigajpXOnlRia-AUZQlwxaXqvgA,14179
243
+ omdev/tools/git/cli.py,sha256=HOQX9VDvlzHrsoC8Jh-sVBBPP1IZit-Us0s_imkbuNc,14484
243
244
  omdev/tools/git/consts.py,sha256=JuXivUNDkNhM4pe97icjRVAKM8cNRbrODquHINNKqOE,40
244
245
  omdev/tools/git/messages.py,sha256=NWztIK0nAKJIOVzuVQcR_5LHZUgqyVkrOlpl7dFLMdU,2424
245
246
  omdev/tools/json/__init__.py,sha256=47DEQpj8HBSa-_TImW-5JCeuQeRkm5NMpJWZG3hSuFU,0
@@ -253,9 +254,9 @@ omdev/tools/json/rendering.py,sha256=tMcjOW5edfozcMSTxxvF7WVTsbYLoe9bCKFh50qyaGw
253
254
  omdev/tools/pawk/__init__.py,sha256=47DEQpj8HBSa-_TImW-5JCeuQeRkm5NMpJWZG3hSuFU,0
254
255
  omdev/tools/pawk/__main__.py,sha256=VCqeRVnqT1RPEoIrqHFSu4PXVMg4YEgF4qCQm90-eRI,66
255
256
  omdev/tools/pawk/pawk.py,sha256=zsEkfQX0jF5bn712uqPAyBSdJt2dno1LH2oeSMNfXQI,11424
256
- omdev-0.0.0.dev269.dist-info/licenses/LICENSE,sha256=B_hVtavaA8zCYDW99DYdcpDLKz1n3BBRjZrcbv8uG8c,1451
257
- omdev-0.0.0.dev269.dist-info/METADATA,sha256=AqDahcQlEANe8r3cGhe2SVIQ97W8LuvioG1A1bKaQlI,1658
258
- omdev-0.0.0.dev269.dist-info/WHEEL,sha256=CmyFI0kx5cdEMTLiONQRbGQwjIoR1aIYB7eCAQ4KPJ0,91
259
- omdev-0.0.0.dev269.dist-info/entry_points.txt,sha256=dHLXFmq5D9B8qUyhRtFqTGWGxlbx3t5ejedjrnXNYLU,33
260
- omdev-0.0.0.dev269.dist-info/top_level.txt,sha256=1nr7j30fEWgLYHW3lGR9pkdHkb7knv1U1ES1XRNVQ6k,6
261
- omdev-0.0.0.dev269.dist-info/RECORD,,
257
+ omdev-0.0.0.dev271.dist-info/licenses/LICENSE,sha256=B_hVtavaA8zCYDW99DYdcpDLKz1n3BBRjZrcbv8uG8c,1451
258
+ omdev-0.0.0.dev271.dist-info/METADATA,sha256=LqJxd5Jq2MU82gIEFtg7gPZnbIs_rWV46HUC0SoraEc,1658
259
+ omdev-0.0.0.dev271.dist-info/WHEEL,sha256=CmyFI0kx5cdEMTLiONQRbGQwjIoR1aIYB7eCAQ4KPJ0,91
260
+ omdev-0.0.0.dev271.dist-info/entry_points.txt,sha256=dHLXFmq5D9B8qUyhRtFqTGWGxlbx3t5ejedjrnXNYLU,33
261
+ omdev-0.0.0.dev271.dist-info/top_level.txt,sha256=1nr7j30fEWgLYHW3lGR9pkdHkb7knv1U1ES1XRNVQ6k,6
262
+ omdev-0.0.0.dev271.dist-info/RECORD,,