omdev 0.0.0.dev206__py3-none-any.whl → 0.0.0.dev207__py3-none-any.whl
Sign up to get free protection for your applications and to get access to all the features.
- omdev/cc/cli.py +43 -6
- {omdev-0.0.0.dev206.dist-info → omdev-0.0.0.dev207.dist-info}/METADATA +2 -2
- {omdev-0.0.0.dev206.dist-info → omdev-0.0.0.dev207.dist-info}/RECORD +7 -7
- {omdev-0.0.0.dev206.dist-info → omdev-0.0.0.dev207.dist-info}/LICENSE +0 -0
- {omdev-0.0.0.dev206.dist-info → omdev-0.0.0.dev207.dist-info}/WHEEL +0 -0
- {omdev-0.0.0.dev206.dist-info → omdev-0.0.0.dev207.dist-info}/entry_points.txt +0 -0
- {omdev-0.0.0.dev206.dist-info → omdev-0.0.0.dev207.dist-info}/top_level.txt +0 -0
omdev/cc/cli.py
CHANGED
@@ -16,24 +16,50 @@ Freestanding options:
|
|
16
16
|
==
|
17
17
|
|
18
18
|
TODO:
|
19
|
-
- standard deps - cdeps.toml
|
20
19
|
- cext interop
|
21
20
|
- gen cmake
|
22
21
|
"""
|
22
|
+
import dataclasses as dc
|
23
23
|
import os
|
24
24
|
import shlex
|
25
25
|
import shutil
|
26
26
|
import subprocess
|
27
27
|
import tempfile
|
28
|
+
import tomllib
|
28
29
|
import typing as ta
|
29
30
|
|
31
|
+
from omlish import cached
|
30
32
|
from omlish import check
|
33
|
+
from omlish import lang
|
34
|
+
from omlish import marshal as msh
|
31
35
|
from omlish.argparse import all as ap
|
36
|
+
from omlish.formats import json
|
32
37
|
|
33
38
|
from .. import magic
|
34
39
|
from ..cache import data as dcache
|
35
40
|
|
36
41
|
|
42
|
+
@dc.dataclass(frozen=True)
|
43
|
+
class Cdep:
|
44
|
+
@dc.dataclass(frozen=True)
|
45
|
+
class Git:
|
46
|
+
url: str
|
47
|
+
rev: str
|
48
|
+
|
49
|
+
subtrees: ta.Sequence[str] | None = None
|
50
|
+
|
51
|
+
git: Git
|
52
|
+
|
53
|
+
include: ta.Sequence[str] | None = None
|
54
|
+
|
55
|
+
|
56
|
+
@cached.function
|
57
|
+
def load_cdeps() -> ta.Mapping[str, Cdep]:
|
58
|
+
src = lang.get_relative_resources(globals=globals())['cdeps.toml'].read_text()
|
59
|
+
dct = tomllib.loads(src)
|
60
|
+
return msh.unmarshal(dct.get('deps', {}), ta.Mapping[str, Cdep]) # type: ignore
|
61
|
+
|
62
|
+
|
37
63
|
class Cli(ap.Cli):
|
38
64
|
@ap.cmd(
|
39
65
|
ap.arg('--cwd'),
|
@@ -60,14 +86,18 @@ class Cli(ap.Cli):
|
|
60
86
|
for src_magic in src_magics:
|
61
87
|
if src_magic.key == '@omlish-cdeps':
|
62
88
|
for dep in check.isinstance(src_magic.prepared, ta.Sequence):
|
63
|
-
|
89
|
+
if isinstance(dep, ta.Mapping):
|
90
|
+
dep = msh.unmarshal(dep, Cdep) # type: ignore
|
91
|
+
else:
|
92
|
+
dep = load_cdeps()[check.isinstance(dep, str)]
|
93
|
+
|
64
94
|
dep_spec = dcache.GitSpec(
|
65
|
-
url=
|
66
|
-
rev=
|
67
|
-
subtrees=
|
95
|
+
url=dep.git.url,
|
96
|
+
rev=dep.git.rev,
|
97
|
+
subtrees=dep.git.subtrees,
|
68
98
|
)
|
69
99
|
dep_dir = dcache.default().get(dep_spec)
|
70
|
-
for dep_inc in dep.
|
100
|
+
for dep_inc in dep.include or []:
|
71
101
|
inc_dir = os.path.join(dep_dir, dep_inc)
|
72
102
|
check.state(os.path.isdir(inc_dir))
|
73
103
|
include_dirs.append(inc_dir)
|
@@ -134,6 +164,13 @@ class Cli(ap.Cli):
|
|
134
164
|
# # //$(which true); exec om cc run "$0" "$@"
|
135
165
|
# print(self.args.src_file)
|
136
166
|
|
167
|
+
#
|
168
|
+
|
169
|
+
@ap.cmd()
|
170
|
+
def list_deps(self) -> None:
|
171
|
+
cdeps = load_cdeps()
|
172
|
+
print(json.dumps_pretty(msh.marshal(cdeps)))
|
173
|
+
|
137
174
|
|
138
175
|
def _main() -> None:
|
139
176
|
Cli().cli_run_and_exit()
|
@@ -1,6 +1,6 @@
|
|
1
1
|
Metadata-Version: 2.2
|
2
2
|
Name: omdev
|
3
|
-
Version: 0.0.0.
|
3
|
+
Version: 0.0.0.dev207
|
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.
|
15
|
+
Requires-Dist: omlish==0.0.0.dev207
|
16
16
|
Provides-Extra: all
|
17
17
|
Requires-Dist: black~=24.10; extra == "all"
|
18
18
|
Requires-Dist: pycparser~=2.22; extra == "all"
|
@@ -44,7 +44,7 @@ omdev/cache/data/manifests.py,sha256=4BparztsMZo9DDVVPhv6iv5g4kK7QAi8Vqtj3PbKkco
|
|
44
44
|
omdev/cache/data/specs.py,sha256=8o0b7goqvnezB_lD46w4ySp2KMZ8In3nqbtmfUT7v6c,2504
|
45
45
|
omdev/cc/__init__.py,sha256=47DEQpj8HBSa-_TImW-5JCeuQeRkm5NMpJWZG3hSuFU,0
|
46
46
|
omdev/cc/__main__.py,sha256=n7gxSRYZ1QZOUxQPCT0_n9Xl26zi2UIvCwyGW_m67nA,166
|
47
|
-
omdev/cc/cli.py,sha256=
|
47
|
+
omdev/cc/cli.py,sha256=k8WhcFS2GS5GUR6JkGIG9wN86KOoPN9mGtX01cpuEAA,4498
|
48
48
|
omdev/cexts/__init__.py,sha256=47DEQpj8HBSa-_TImW-5JCeuQeRkm5NMpJWZG3hSuFU,0
|
49
49
|
omdev/cexts/_boilerplate.cc,sha256=sbpXEgdFrkdzZXgaNWFFNN27fL9TZu6VrwvMY4-nnFM,1726
|
50
50
|
omdev/cexts/build.py,sha256=F3z1-CjDlEM-Gzi5IunKUBO52qdH_pMsFylobTdGJnI,2654
|
@@ -186,9 +186,9 @@ omdev/tools/json/rendering.py,sha256=tMcjOW5edfozcMSTxxvF7WVTsbYLoe9bCKFh50qyaGw
|
|
186
186
|
omdev/tools/pawk/__init__.py,sha256=47DEQpj8HBSa-_TImW-5JCeuQeRkm5NMpJWZG3hSuFU,0
|
187
187
|
omdev/tools/pawk/__main__.py,sha256=VCqeRVnqT1RPEoIrqHFSu4PXVMg4YEgF4qCQm90-eRI,66
|
188
188
|
omdev/tools/pawk/pawk.py,sha256=Eckymn22GfychCQcQi96BFqRo_LmiJ-EPhC8TTUJdB4,11446
|
189
|
-
omdev-0.0.0.
|
190
|
-
omdev-0.0.0.
|
191
|
-
omdev-0.0.0.
|
192
|
-
omdev-0.0.0.
|
193
|
-
omdev-0.0.0.
|
194
|
-
omdev-0.0.0.
|
189
|
+
omdev-0.0.0.dev207.dist-info/LICENSE,sha256=B_hVtavaA8zCYDW99DYdcpDLKz1n3BBRjZrcbv8uG8c,1451
|
190
|
+
omdev-0.0.0.dev207.dist-info/METADATA,sha256=1I_J2r3JxvcDNlH3hpUc45jZhdNWUuDG6x00ONFhvEA,1760
|
191
|
+
omdev-0.0.0.dev207.dist-info/WHEEL,sha256=In9FTNxeP60KnTkGw7wk6mJPYd_dQSjEZmXdBdMCI-8,91
|
192
|
+
omdev-0.0.0.dev207.dist-info/entry_points.txt,sha256=dHLXFmq5D9B8qUyhRtFqTGWGxlbx3t5ejedjrnXNYLU,33
|
193
|
+
omdev-0.0.0.dev207.dist-info/top_level.txt,sha256=1nr7j30fEWgLYHW3lGR9pkdHkb7knv1U1ES1XRNVQ6k,6
|
194
|
+
omdev-0.0.0.dev207.dist-info/RECORD,,
|
File without changes
|
File without changes
|
File without changes
|
File without changes
|