omdev 0.0.0.dev35__py3-none-any.whl → 0.0.0.dev36__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/cli/main.py CHANGED
@@ -1,12 +1,10 @@
1
1
  """
2
2
  TODO:
3
3
  - allow manually specifying manifest packages
4
- - omlish.bootstrap always
5
4
  - https://packaging.python.org/en/latest/guides/writing-pyproject-toml/#creating-executable-scripts
6
5
  - https://packaging.python.org/en/latest/specifications/entry-points/#entry-points
7
6
  """
8
7
  import argparse
9
- import functools
10
8
  import os
11
9
  import runpy
12
10
  import sys
@@ -32,27 +30,24 @@ def _main() -> None:
32
30
  for m in ldr.load(*pkgs, only=[CliModule]):
33
31
  cms.append(check.isinstance(m.value, CliModule))
34
32
 
35
- parser = argparse.ArgumentParser()
36
- subparsers = parser.add_subparsers()
37
-
38
- def run(cm: CliModule) -> None:
39
- sys.argv = [cm.cmd_name, *(args.args or ())]
40
- runpy._run_module_as_main(cm.mod_name) # type: ignore # noqa
41
-
42
- seen: set[str] = set()
33
+ dct: dict[str, CliModule] = {}
43
34
  for cm in cms:
44
- if cm.cmd_name in seen:
35
+ if cm.cmd_name in dct:
45
36
  raise NameError(cm)
37
+ dct[cm.cmd_name] = cm
46
38
 
47
- cmd_parser = subparsers.add_parser(cm.cmd_name)
48
- cmd_parser.add_argument('args', nargs=argparse.REMAINDER)
49
- cmd_parser.set_defaults(func=functools.partial(run, cm))
39
+ parser = argparse.ArgumentParser()
40
+ parser.add_argument('cmd', nargs='?', choices=dct.keys())
41
+ parser.add_argument('args', nargs=argparse.REMAINDER)
50
42
 
51
43
  args = parser.parse_args()
52
- if not getattr(args, 'func', None):
44
+ if not args.cmd:
53
45
  parser.print_help()
54
- else:
55
- args.func()
46
+ return
47
+
48
+ cm = dct[args.cmd]
49
+ sys.argv = [cm.cmd_name, *(args.args or ())]
50
+ runpy._run_module_as_main(cm.mod_name) # type: ignore # noqa
56
51
 
57
52
 
58
53
  if __name__ == '__main__':
omdev/manifests/build.py CHANGED
@@ -1,8 +1,9 @@
1
1
  """
2
2
  TODO:
3
3
  - separate build from cli
4
+ - parallelize & sort
4
5
 
5
- - See (entry_points):
6
+ See (entry_points):
6
7
  - https://github.com/pytest-dev/pluggy/blob/main/src/pluggy/_manager.py#L405
7
8
  - https://docs.pytest.org/en/7.1.x/how-to/writing_plugins.html#setuptools-entry-points
8
9
  - https://packaging.python.org/en/latest/specifications/entry-points/
@@ -1,6 +1,6 @@
1
1
  Metadata-Version: 2.1
2
2
  Name: omdev
3
- Version: 0.0.0.dev35
3
+ Version: 0.0.0.dev36
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.dev35
15
+ Requires-Dist: omlish ==0.0.0.dev36
16
16
  Provides-Extra: all
17
17
  Requires-Dist: pycparser ~=2.22 ; extra == 'all'
18
18
  Requires-Dist: cffi ~=1.17 ; extra == 'all'
@@ -55,7 +55,7 @@ omdev/cexts/_distutils/compilers/options.py,sha256=H7r5IcLvga5Fs3jjXWIT-6ap3JBdu
55
55
  omdev/cexts/_distutils/compilers/unixccompiler.py,sha256=o1h8QuyupLntv4F21_XjzAZmCiwwxJuTmOirvBSL-Qw,15419
56
56
  omdev/cli/__init__.py,sha256=V_l6VP1SZMlJbO-8CJwSuO9TThOy2S_oaPepNYgIrbE,37
57
57
  omdev/cli/__main__.py,sha256=d23loR_cKfTYZwYiqpt_CmKI7dd5WcYFgIYzqMep75E,68
58
- omdev/cli/main.py,sha256=gqlxJyHNLohLi7DP9sicdbpxigHM0gPx8FHkmP0Ci_4,1584
58
+ omdev/cli/main.py,sha256=0Wq2tlaRDelpSEUZDKwOginpBrdcE3hgWQqD6syaIvE,1413
59
59
  omdev/cli/types.py,sha256=rYM5jogfZqC3tpWLOHSDL6iaV3XWGWM1hJYd11I-ImA,107
60
60
  omdev/interp/__init__.py,sha256=Y3l4WY4JRi2uLG6kgbGp93fuGfkxkKwZDvhsa0Rwgtk,15
61
61
  omdev/interp/__main__.py,sha256=GMCqeGYltgt5dlJzHxY9gqisa8cRkrPfmZYuZnjg4WI,162
@@ -68,7 +68,7 @@ omdev/interp/standalone.py,sha256=XcltiL7ypcfV89C82_3knQ3Kx7aW4wnnxf2056ZXC3A,77
68
68
  omdev/interp/system.py,sha256=UFHfMR0CHCEnNx5fhrze8esAwigpRrJUA33ftq6nA0I,3514
69
69
  omdev/interp/types.py,sha256=2nM3MJaOU8O1XA8DrvwyOjBWSboBn16kgFIy5JVkDck,2440
70
70
  omdev/manifests/__init__.py,sha256=P2B0dpT8D7l5lJwRGPA92IcQj6oeXfd90X5-q9BJrKg,51
71
- omdev/manifests/build.py,sha256=m5PleX03pDxG4Pl2PtNKWsuZVxrNPBxPZ3Gkh6qlrEQ,9047
71
+ omdev/manifests/build.py,sha256=_anZfhIAwUQo0J4BfKvDsvivrST2U5VigJaFKbJKXMQ,9067
72
72
  omdev/manifests/load.py,sha256=1QznPL4zNlu1eIFkoGrO78coIQCk9LlMC8FJ6PcvhNM,4373
73
73
  omdev/manifests/types.py,sha256=Jv6PAdVLPb9Hh4y6vDhPlWuMNBBViin1bC_u83jfsH4,234
74
74
  omdev/mypy/__init__.py,sha256=47DEQpj8HBSa-_TImW-5JCeuQeRkm5NMpJWZG3hSuFU,0
@@ -106,9 +106,9 @@ omdev/tools/sqlrepl.py,sha256=tmFZh80-xsGM62dyQ7_UGLebChrj7IHbIPYBWDJMgVk,5741
106
106
  omdev/versioning/__init__.py,sha256=Y3l4WY4JRi2uLG6kgbGp93fuGfkxkKwZDvhsa0Rwgtk,15
107
107
  omdev/versioning/specifiers.py,sha256=6Odf9e6farwlPRsD_YqwTfYKG-BXn_dIcKtqfkhfodI,17432
108
108
  omdev/versioning/versions.py,sha256=ei2eopEsJq3zSMJmezK1nzZgikgCdxFtnF3f69nCRZQ,12246
109
- omdev-0.0.0.dev35.dist-info/LICENSE,sha256=B_hVtavaA8zCYDW99DYdcpDLKz1n3BBRjZrcbv8uG8c,1451
110
- omdev-0.0.0.dev35.dist-info/METADATA,sha256=zipZ1FC8kOzhQo92ziMgGvv0fwRLsZEdkYh4ZaSa3Zk,1252
111
- omdev-0.0.0.dev35.dist-info/WHEEL,sha256=GV9aMThwP_4oNCtvEC2ec3qUYutgWeAzklro_0m4WJQ,91
112
- omdev-0.0.0.dev35.dist-info/entry_points.txt,sha256=dHLXFmq5D9B8qUyhRtFqTGWGxlbx3t5ejedjrnXNYLU,33
113
- omdev-0.0.0.dev35.dist-info/top_level.txt,sha256=1nr7j30fEWgLYHW3lGR9pkdHkb7knv1U1ES1XRNVQ6k,6
114
- omdev-0.0.0.dev35.dist-info/RECORD,,
109
+ omdev-0.0.0.dev36.dist-info/LICENSE,sha256=B_hVtavaA8zCYDW99DYdcpDLKz1n3BBRjZrcbv8uG8c,1451
110
+ omdev-0.0.0.dev36.dist-info/METADATA,sha256=KAU82SqkiWBiTrxL3vGIYGpZUm1TsWeoMcJDA85tEG8,1252
111
+ omdev-0.0.0.dev36.dist-info/WHEEL,sha256=GV9aMThwP_4oNCtvEC2ec3qUYutgWeAzklro_0m4WJQ,91
112
+ omdev-0.0.0.dev36.dist-info/entry_points.txt,sha256=dHLXFmq5D9B8qUyhRtFqTGWGxlbx3t5ejedjrnXNYLU,33
113
+ omdev-0.0.0.dev36.dist-info/top_level.txt,sha256=1nr7j30fEWgLYHW3lGR9pkdHkb7knv1U1ES1XRNVQ6k,6
114
+ omdev-0.0.0.dev36.dist-info/RECORD,,