omdev 0.0.0.dev201__py3-none-any.whl → 0.0.0.dev203__py3-none-any.whl

Sign up to get free protection for your applications and to get access to all the features.
omdev/.manifests.json CHANGED
@@ -227,6 +227,18 @@
227
227
  }
228
228
  }
229
229
  },
230
+ {
231
+ "module": ".tools.cc",
232
+ "attr": "_CLI_MODULE",
233
+ "file": "omdev/tools/cc.py",
234
+ "line": 76,
235
+ "value": {
236
+ "$.cli.types.CliModule": {
237
+ "cmd_name": "cc",
238
+ "mod_name": "omdev.tools.cc"
239
+ }
240
+ }
241
+ },
230
242
  {
231
243
  "module": ".tools.cloc",
232
244
  "attr": "_CLI_MODULE",
@@ -267,7 +279,7 @@
267
279
  "module": ".tools.git",
268
280
  "attr": "_CLI_MODULE",
269
281
  "file": "omdev/tools/git.py",
270
- "line": 232,
282
+ "line": 231,
271
283
  "value": {
272
284
  "$.cli.types.CliModule": {
273
285
  "cmd_name": "git",
@@ -104,8 +104,7 @@ class SystemInterpProvider(InterpProvider):
104
104
  async def get_exe_version(self, exe: str) -> ta.Optional[InterpVersion]:
105
105
  if not self._options.inspect:
106
106
  s = os.path.basename(exe)
107
- if s.startswith('python'):
108
- s = s[len('python'):]
107
+ s = s.removeprefix('python')
109
108
  if '.' in s:
110
109
  try:
111
110
  return InterpVersion.parse(s)
omdev/scripts/interp.py CHANGED
@@ -4545,8 +4545,7 @@ class SystemInterpProvider(InterpProvider):
4545
4545
  async def get_exe_version(self, exe: str) -> ta.Optional[InterpVersion]:
4546
4546
  if not self._options.inspect:
4547
4547
  s = os.path.basename(exe)
4548
- if s.startswith('python'):
4549
- s = s[len('python'):]
4548
+ s = s.removeprefix('python')
4550
4549
  if '.' in s:
4551
4550
  try:
4552
4551
  return InterpVersion.parse(s)
@@ -6884,8 +6884,7 @@ class SystemInterpProvider(InterpProvider):
6884
6884
  async def get_exe_version(self, exe: str) -> ta.Optional[InterpVersion]:
6885
6885
  if not self._options.inspect:
6886
6886
  s = os.path.basename(exe)
6887
- if s.startswith('python'):
6888
- s = s[len('python'):]
6887
+ s = s.removeprefix('python')
6889
6888
  if '.' in s:
6890
6889
  try:
6891
6890
  return InterpVersion.parse(s)
omdev/tools/cc.py ADDED
@@ -0,0 +1,81 @@
1
+ """
2
+ //$(which true); exec om cc run "$0" "$@"
3
+ or
4
+ //usr/bin/true; exec om cc run "$0" "$@"
5
+
6
+ See: https://gist.github.com/jdarpinian/1952a58b823222627cc1a8b83a7aa4e2
7
+
8
+ ==
9
+
10
+ Freestanding options:
11
+
12
+ //usr/bin/env clang++ -std=c++20 -o ${X=`mktemp`} "$0" && exec -a "$0" "$X" "$@"
13
+ //usr/bin/env clang++ -std=c++20 -o ${D=`mktemp -d`}/x "$0" && ${D}/x ${@:1}; R=$?; rm -rf ${D}; exit $R
14
+ //$(which true); clang++ -std=c++20 -o ${D=`mktemp -d`}/x ${0} && ${D}/x ${@:1}; R=${?}; rm -rf ${D}; exit ${R}
15
+ """
16
+ import os
17
+ import shutil
18
+ import subprocess
19
+ import tempfile
20
+
21
+ from omlish import check
22
+ from omlish.argparse import all as ap
23
+
24
+ from ..cli import CliModule
25
+
26
+
27
+ class Cli(ap.Cli):
28
+ @ap.cmd(
29
+ ap.arg('src-file'),
30
+ ap.arg('args', nargs=ap.REMAINDER),
31
+ )
32
+ def run(self) -> int:
33
+ src_file = self.args.src_file
34
+ check.state(os.path.isfile(src_file))
35
+
36
+ src_file_name = os.path.basename(src_file)
37
+
38
+ tmp_dir = tempfile.mkdtemp()
39
+ try:
40
+ proc = subprocess.run(
41
+ [
42
+ check.non_empty_str(shutil.which('clang++')),
43
+ '-std=c++20',
44
+ os.path.abspath(src_file),
45
+ '-o',
46
+ src_file_name,
47
+ ],
48
+ cwd=tmp_dir,
49
+ check=False,
50
+ )
51
+
52
+ if rc := proc.returncode:
53
+ return rc
54
+
55
+ exe_file = os.path.join(tmp_dir, src_file_name)
56
+ check.state(os.path.isfile(exe_file))
57
+
58
+ proc = subprocess.run(
59
+ [
60
+ exe_file,
61
+ *self.args.args,
62
+ ],
63
+ check=False,
64
+ )
65
+
66
+ finally:
67
+ shutil.rmtree(tmp_dir)
68
+
69
+ return proc.returncode
70
+
71
+
72
+ def _main() -> None:
73
+ Cli().cli_run_and_exit()
74
+
75
+
76
+ # @omlish-manifest
77
+ _CLI_MODULE = CliModule('cc', __name__)
78
+
79
+
80
+ if __name__ == '__main__':
81
+ _main()
omdev/tools/git.py CHANGED
@@ -127,8 +127,7 @@ class Cli(ap.Cli):
127
127
 
128
128
  if rm_url.startswith(git_pfx := 'git@github.com:'):
129
129
  s = rm_url[len(git_pfx):]
130
- if s.endswith('.git'):
131
- s = s[:-4]
130
+ s = s.removesuffix('.git')
132
131
  user, repo = s.split('/')
133
132
 
134
133
  else:
@@ -1,6 +1,6 @@
1
1
  Metadata-Version: 2.2
2
2
  Name: omdev
3
- Version: 0.0.0.dev201
3
+ Version: 0.0.0.dev203
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.dev201
15
+ Requires-Dist: omlish==0.0.0.dev203
16
16
  Provides-Extra: all
17
17
  Requires-Dist: black~=24.10; extra == "all"
18
18
  Requires-Dist: pycparser~=2.22; extra == "all"
@@ -1,4 +1,4 @@
1
- omdev/.manifests.json,sha256=u3arSHz2TkzWc1jB0u6MFRJVTmjXS0SRcBvslqSxTt8,8575
1
+ omdev/.manifests.json,sha256=iH0-0wXP8oioPCMthf71d7WFepiNWBw8D2MPqPxBA5E,8812
2
2
  omdev/__about__.py,sha256=n5x-SO70OgbDQFzQ1d7sZDVMsnkQc4PxQZPFaIQFa0E,1281
3
3
  omdev/__init__.py,sha256=47DEQpj8HBSa-_TImW-5JCeuQeRkm5NMpJWZG3hSuFU,0
4
4
  omdev/bracepy.py,sha256=I8EdqtDvxzAi3I8TuMEW-RBfwXfqKbwp06CfOdj3L1o,2743
@@ -95,7 +95,7 @@ omdev/interp/providers/base.py,sha256=aftoEB3FQInKKGDHDSjpnI33cOLBpxPM4Cw_yOuV1f
95
95
  omdev/interp/providers/inject.py,sha256=2RT4imRqoqHWVwxzYKf_VAgp6iEcJD01fjD6tng2rso,846
96
96
  omdev/interp/providers/running.py,sha256=9MCJAcHotI0EmNIxPwt7b3W715Jp2Gfw1qtMhCEGsUQ,781
97
97
  omdev/interp/providers/standalone.py,sha256=jJnncea4PIuaW-KwD2YiWDn8zTmwmsJNUKpF-qC2bwo,7725
98
- omdev/interp/providers/system.py,sha256=KQ4Y2o8d5nrmsCtsQO_vCbJJCrhVFVjaS0k2lkc3kVw,3977
98
+ omdev/interp/providers/system.py,sha256=SLVAZ09EymHh0KPrDDbt9SySVpsLo6cZdkbD2r79VAY,3941
99
99
  omdev/interp/pyenv/__init__.py,sha256=47DEQpj8HBSa-_TImW-5JCeuQeRkm5NMpJWZG3hSuFU,0
100
100
  omdev/interp/pyenv/inject.py,sha256=JZCSvkLYj5x_2LWScgYVOpmPrwrYQ8YVv7OeHbcH53s,605
101
101
  omdev/interp/pyenv/install.py,sha256=LX5jDzQQR1X0C9OKi4masKWoMU3ms8XCfQPXS2kTZKI,7818
@@ -155,15 +155,16 @@ omdev/scripts/bumpversion.py,sha256=Kn7fo73Hs8uJh3Hi3EIyLOlzLPWAC6dwuD_lZ3cIzuY,
155
155
  omdev/scripts/execrss.py,sha256=mR0G0wERBYtQmVIn63lCIIFb5zkCM6X_XOENDFYDBKc,651
156
156
  omdev/scripts/exectime.py,sha256=sFb376GflU6s9gNX-2-we8hgH6w5MuQNS9g6i4SqJIo,610
157
157
  omdev/scripts/importtrace.py,sha256=oa7CtcWJVMNDbyIEiRHej6ICfABfErMeo4_haIqe18Q,14041
158
- omdev/scripts/interp.py,sha256=M_xCcROzRJsE0VpHRqMNoRjwRUy0XnQBZ7lb7nrDNW0,140898
159
- omdev/scripts/pyproject.py,sha256=lEOCcVdmzEKZZsw35xUJCZjrDSWpWQJupB88alTk-lY,242724
158
+ omdev/scripts/interp.py,sha256=HUX7XMk76H2VIX5anb_m7R_6jawXHzxPjY26N-gnTR0,140862
159
+ omdev/scripts/pyproject.py,sha256=EEwu-5Fl0cCe0X6CaHOmjSt1vANXRFgsbvn487uKJnI,242688
160
160
  omdev/scripts/slowcat.py,sha256=lssv4yrgJHiWfOiHkUut2p8E8Tq32zB-ujXESQxFFHY,2728
161
161
  omdev/scripts/tmpexec.py,sha256=WTYcf56Tj2qjYV14AWmV8SfT0u6Y8eIU6cKgQRvEK3c,1442
162
162
  omdev/tools/__init__.py,sha256=iVJAOQ0viGTQOm0DLX4uZLro-9jOioYJGLg9s0kDx1A,78
163
+ omdev/tools/cc.py,sha256=ERi5pqcvqnGADS4wqbFIktJeUzSxKoAea4cGcCC6sSM,1920
163
164
  omdev/tools/cloc.py,sha256=jYlMHBae9oGKN4VKeBGuqjiQNcM2be7KIoTF0oNwx_I,5205
164
165
  omdev/tools/doc.py,sha256=wvgGhv6aFaV-Zl-Qivejx37i-lKQ207rZ-4K2fPf-Ss,2547
165
166
  omdev/tools/docker.py,sha256=KVFckA8eAdiapFUr8xkfMw9Uv3Qy4oNq0e70Lqt1F7I,7352
166
- omdev/tools/git.py,sha256=gqbvt8FFiPsj3vrQ7TxUiq9FpYX2c9UZ54io2p3-x7w,7541
167
+ omdev/tools/git.py,sha256=fiQc4w2w63PELLLyMXdwpmgpzFzs7UNn35vewWckScM,7514
167
168
  omdev/tools/importscan.py,sha256=nhJIhtjDY6eFVlReP7fegvv6L5ZjN-Z2VeyhsBonev4,4639
168
169
  omdev/tools/linehisto.py,sha256=0ZNm34EuiZBE9Q2YC6KNLNNydNT8QPSOwvYzXiU9S2Q,8881
169
170
  omdev/tools/mkrelimp.py,sha256=kyu_BbUakKHEEOxNEvYWk7tH1ixCfVb3NqqT8U-BozE,4066
@@ -183,9 +184,9 @@ omdev/tools/json/rendering.py,sha256=tMcjOW5edfozcMSTxxvF7WVTsbYLoe9bCKFh50qyaGw
183
184
  omdev/tools/pawk/__init__.py,sha256=47DEQpj8HBSa-_TImW-5JCeuQeRkm5NMpJWZG3hSuFU,0
184
185
  omdev/tools/pawk/__main__.py,sha256=VCqeRVnqT1RPEoIrqHFSu4PXVMg4YEgF4qCQm90-eRI,66
185
186
  omdev/tools/pawk/pawk.py,sha256=Eckymn22GfychCQcQi96BFqRo_LmiJ-EPhC8TTUJdB4,11446
186
- omdev-0.0.0.dev201.dist-info/LICENSE,sha256=B_hVtavaA8zCYDW99DYdcpDLKz1n3BBRjZrcbv8uG8c,1451
187
- omdev-0.0.0.dev201.dist-info/METADATA,sha256=AcSPa0rj7gppXVaU3r8D2T2mrqusuJcPBEGTjO_5W_w,1760
188
- omdev-0.0.0.dev201.dist-info/WHEEL,sha256=In9FTNxeP60KnTkGw7wk6mJPYd_dQSjEZmXdBdMCI-8,91
189
- omdev-0.0.0.dev201.dist-info/entry_points.txt,sha256=dHLXFmq5D9B8qUyhRtFqTGWGxlbx3t5ejedjrnXNYLU,33
190
- omdev-0.0.0.dev201.dist-info/top_level.txt,sha256=1nr7j30fEWgLYHW3lGR9pkdHkb7knv1U1ES1XRNVQ6k,6
191
- omdev-0.0.0.dev201.dist-info/RECORD,,
187
+ omdev-0.0.0.dev203.dist-info/LICENSE,sha256=B_hVtavaA8zCYDW99DYdcpDLKz1n3BBRjZrcbv8uG8c,1451
188
+ omdev-0.0.0.dev203.dist-info/METADATA,sha256=jzSUBFsEwLH5crcjQpu2K_LpPSbhRR5QHz7OjkaJAd4,1760
189
+ omdev-0.0.0.dev203.dist-info/WHEEL,sha256=In9FTNxeP60KnTkGw7wk6mJPYd_dQSjEZmXdBdMCI-8,91
190
+ omdev-0.0.0.dev203.dist-info/entry_points.txt,sha256=dHLXFmq5D9B8qUyhRtFqTGWGxlbx3t5ejedjrnXNYLU,33
191
+ omdev-0.0.0.dev203.dist-info/top_level.txt,sha256=1nr7j30fEWgLYHW3lGR9pkdHkb7knv1U1ES1XRNVQ6k,6
192
+ omdev-0.0.0.dev203.dist-info/RECORD,,