omdev 0.0.0.dev9__py3-none-any.whl → 0.0.0.dev11__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.
Potentially problematic release.
This version of omdev might be problematic. Click here for more details.
- omdev/exts/cmake.py +18 -5
- omdev/interp/pyenv.py +5 -1
- omdev/pyproject/cli.py +11 -6
- omdev/pyproject/pkg.py +18 -1
- omdev/scripts/bracepy.py +105 -0
- omdev/scripts/interp.py +5 -1
- omdev/scripts/pyproject.py +34 -8
- omdev/tools/gittools.py +22 -0
- {omdev-0.0.0.dev9.dist-info → omdev-0.0.0.dev11.dist-info}/METADATA +8 -2
- {omdev-0.0.0.dev9.dist-info → omdev-0.0.0.dev11.dist-info}/RECORD +13 -11
- {omdev-0.0.0.dev9.dist-info → omdev-0.0.0.dev11.dist-info}/WHEEL +1 -1
- {omdev-0.0.0.dev9.dist-info → omdev-0.0.0.dev11.dist-info}/LICENSE +0 -0
- {omdev-0.0.0.dev9.dist-info → omdev-0.0.0.dev11.dist-info}/top_level.txt +0 -0
omdev/exts/cmake.py
CHANGED
|
@@ -18,18 +18,23 @@ Done:
|
|
|
18
18
|
|
|
19
19
|
""" # noqa
|
|
20
20
|
import io
|
|
21
|
+
import logging
|
|
21
22
|
import os.path
|
|
22
23
|
import shutil
|
|
23
24
|
import sys
|
|
24
25
|
import sysconfig
|
|
25
26
|
|
|
26
27
|
from omlish import check
|
|
28
|
+
from omlish import logs
|
|
27
29
|
|
|
28
30
|
from .. import cmake
|
|
29
31
|
|
|
30
32
|
|
|
33
|
+
log = logging.getLogger(__name__)
|
|
34
|
+
|
|
35
|
+
|
|
31
36
|
def _main() -> None:
|
|
32
|
-
|
|
37
|
+
logs.configure_standard_logging('INFO')
|
|
33
38
|
|
|
34
39
|
prj_root = os.path.abspath(os.getcwd())
|
|
35
40
|
if not os.path.isfile(os.path.join(prj_root, 'pyproject.toml')):
|
|
@@ -51,9 +56,13 @@ def _main() -> None:
|
|
|
51
56
|
with open(os.path.join(cmake_dir, '.gitignore'), 'w') as f:
|
|
52
57
|
f.write('\n'.join(sorted(['/cmake-*', '/build'])))
|
|
53
58
|
|
|
54
|
-
|
|
55
|
-
|
|
56
|
-
|
|
59
|
+
# idea_dir = os.path.join(cmake_dir, '.idea')
|
|
60
|
+
# if not os.path.isdir(idea_dir):
|
|
61
|
+
# os.mkdir(idea_dir)
|
|
62
|
+
# idea_name_file = os.path.join(idea_dir, '.name')
|
|
63
|
+
# if not os.path.isfile(idea_name_file):
|
|
64
|
+
# with open(idea_name_file, 'w') as f:
|
|
65
|
+
# f.write('omlish')
|
|
57
66
|
|
|
58
67
|
venv_exe = sys.executable
|
|
59
68
|
venv_root = os.path.abspath(os.path.join(os.path.dirname(venv_exe), '..'))
|
|
@@ -138,8 +147,12 @@ def _main() -> None:
|
|
|
138
147
|
'omdev/exts/_boilerplate.cc',
|
|
139
148
|
'x/dev/c/junk.cc',
|
|
140
149
|
'x/dev/c/_uuid.cc',
|
|
150
|
+
'x/dev/c/csv/_csvloader.cc',
|
|
141
151
|
]:
|
|
142
152
|
ext_name = ext_src.rpartition('.')[0].replace('/', '__')
|
|
153
|
+
|
|
154
|
+
log.info('Adding cmake c extension: %s -> %s', ext_src, ext_name)
|
|
155
|
+
|
|
143
156
|
so_name = ''.join([
|
|
144
157
|
os.path.basename(ext_src).split('.')[0],
|
|
145
158
|
'.',
|
|
@@ -186,7 +199,7 @@ def _main() -> None:
|
|
|
186
199
|
],
|
|
187
200
|
))
|
|
188
201
|
|
|
189
|
-
print(out.getvalue())
|
|
202
|
+
# print(out.getvalue())
|
|
190
203
|
with open(os.path.join(cmake_dir, 'CMakeLists.txt'), 'w') as f:
|
|
191
204
|
f.write(out.getvalue())
|
|
192
205
|
|
omdev/interp/pyenv.py
CHANGED
|
@@ -67,8 +67,10 @@ class Pyenv:
|
|
|
67
67
|
return os.path.join(check_not_none(self.root()), 'bin', 'pyenv')
|
|
68
68
|
|
|
69
69
|
def version_exes(self) -> ta.List[ta.Tuple[str, str]]:
|
|
70
|
+
if (root := self.root()) is None:
|
|
71
|
+
return []
|
|
70
72
|
ret = []
|
|
71
|
-
vp = os.path.join(
|
|
73
|
+
vp = os.path.join(root, 'versions')
|
|
72
74
|
for dn in os.listdir(vp):
|
|
73
75
|
ep = os.path.join(vp, dn, 'bin', 'python')
|
|
74
76
|
if not os.path.isfile(ep):
|
|
@@ -77,6 +79,8 @@ class Pyenv:
|
|
|
77
79
|
return ret
|
|
78
80
|
|
|
79
81
|
def installable_versions(self) -> ta.List[str]:
|
|
82
|
+
if self.root() is None:
|
|
83
|
+
return []
|
|
80
84
|
ret = []
|
|
81
85
|
s = subprocess_check_output_str(self.exe(), 'install', '--list')
|
|
82
86
|
for l in s.splitlines():
|
omdev/pyproject/cli.py
CHANGED
|
@@ -26,6 +26,7 @@ import dataclasses as dc
|
|
|
26
26
|
import functools
|
|
27
27
|
import glob
|
|
28
28
|
import itertools
|
|
29
|
+
import multiprocessing as mp
|
|
29
30
|
import os.path
|
|
30
31
|
import shlex
|
|
31
32
|
import shutil
|
|
@@ -247,13 +248,12 @@ def _venv_cmd(args) -> None:
|
|
|
247
248
|
)
|
|
248
249
|
return
|
|
249
250
|
|
|
250
|
-
venv.create()
|
|
251
|
-
|
|
252
251
|
cmd = args.cmd
|
|
253
252
|
if not cmd:
|
|
254
|
-
|
|
253
|
+
venv.create()
|
|
255
254
|
|
|
256
255
|
elif cmd == 'python':
|
|
256
|
+
venv.create()
|
|
257
257
|
os.execl(
|
|
258
258
|
(exe := venv.exe()),
|
|
259
259
|
exe,
|
|
@@ -261,10 +261,12 @@ def _venv_cmd(args) -> None:
|
|
|
261
261
|
)
|
|
262
262
|
|
|
263
263
|
elif cmd == 'exe':
|
|
264
|
+
venv.create()
|
|
264
265
|
check_not(args.args)
|
|
265
266
|
print(venv.exe())
|
|
266
267
|
|
|
267
268
|
elif cmd == 'run':
|
|
269
|
+
venv.create()
|
|
268
270
|
sh = check_not_none(shutil.which('bash'))
|
|
269
271
|
script = ' '.join(args.args)
|
|
270
272
|
if not script:
|
|
@@ -281,6 +283,7 @@ def _venv_cmd(args) -> None:
|
|
|
281
283
|
print('\n'.join(venv.srcs()))
|
|
282
284
|
|
|
283
285
|
elif cmd == 'test':
|
|
286
|
+
venv.create()
|
|
284
287
|
subprocess_check_call(venv.exe(), '-m', 'pytest', *(args.args or []), *venv.srcs())
|
|
285
288
|
|
|
286
289
|
else:
|
|
@@ -294,7 +297,10 @@ def _pkg_cmd(args) -> None:
|
|
|
294
297
|
run = Run()
|
|
295
298
|
|
|
296
299
|
cmd = args.cmd
|
|
297
|
-
if cmd
|
|
300
|
+
if not cmd:
|
|
301
|
+
raise Exception('must specify command')
|
|
302
|
+
|
|
303
|
+
elif cmd == 'gen':
|
|
298
304
|
build_root = os.path.join('.pkg')
|
|
299
305
|
|
|
300
306
|
if os.path.exists(build_root):
|
|
@@ -303,11 +309,10 @@ def _pkg_cmd(args) -> None:
|
|
|
303
309
|
build_output_dir = 'dist'
|
|
304
310
|
run_build = bool(args.build)
|
|
305
311
|
|
|
306
|
-
num_threads = 8
|
|
307
|
-
|
|
308
312
|
if run_build:
|
|
309
313
|
os.makedirs(build_output_dir, exist_ok=True)
|
|
310
314
|
|
|
315
|
+
num_threads = max(mp.cpu_count() // 2, 1)
|
|
311
316
|
with cf.ThreadPoolExecutor(num_threads) as ex:
|
|
312
317
|
futs = [
|
|
313
318
|
ex.submit(functools.partial(
|
omdev/pyproject/pkg.py
CHANGED
|
@@ -115,6 +115,8 @@ class PyprojectPackageGenerator:
|
|
|
115
115
|
def file_contents(self) -> FileContents:
|
|
116
116
|
pyp_dct = {}
|
|
117
117
|
|
|
118
|
+
#
|
|
119
|
+
|
|
118
120
|
pyp_dct['build-system'] = {
|
|
119
121
|
'requires': ['setuptools'],
|
|
120
122
|
'build-backend': 'setuptools.build_meta',
|
|
@@ -122,14 +124,29 @@ class PyprojectPackageGenerator:
|
|
|
122
124
|
|
|
123
125
|
prj = self._build_cls_dct(self.project_cls())
|
|
124
126
|
pyp_dct['project'] = prj
|
|
125
|
-
|
|
127
|
+
|
|
128
|
+
self._move_dict_key(prj, 'optional_dependencies', pyp_dct, extrask := 'project.optional-dependencies')
|
|
129
|
+
if (extras := pyp_dct.get(extrask)):
|
|
130
|
+
pyp_dct[extrask] = {
|
|
131
|
+
'all': [
|
|
132
|
+
e
|
|
133
|
+
for lst in extras.values()
|
|
134
|
+
for e in lst
|
|
135
|
+
],
|
|
136
|
+
**extras,
|
|
137
|
+
}
|
|
138
|
+
|
|
139
|
+
#
|
|
126
140
|
|
|
127
141
|
st = self._build_cls_dct(self.setuptools_cls())
|
|
128
142
|
pyp_dct['tool.setuptools'] = st
|
|
143
|
+
|
|
129
144
|
self._move_dict_key(st, 'find_packages', pyp_dct, 'tool.setuptools.packages.find')
|
|
130
145
|
|
|
131
146
|
mani_in = st.pop('manifest_in', None)
|
|
132
147
|
|
|
148
|
+
#
|
|
149
|
+
|
|
133
150
|
return self.FileContents(
|
|
134
151
|
pyp_dct,
|
|
135
152
|
mani_in,
|
omdev/scripts/bracepy.py
ADDED
|
@@ -0,0 +1,105 @@
|
|
|
1
|
+
# !/usr/bin/env python3
|
|
2
|
+
"""
|
|
3
|
+
https://github.com/umlet/pwk/blob/dc23b3400108a71947a695f1fa1df0f514b42528/pwk
|
|
4
|
+
"""
|
|
5
|
+
import io
|
|
6
|
+
import tokenize
|
|
7
|
+
|
|
8
|
+
|
|
9
|
+
def translate_brace_python(
|
|
10
|
+
s: str,
|
|
11
|
+
*,
|
|
12
|
+
indent_width: int = 4,
|
|
13
|
+
) -> str:
|
|
14
|
+
lt = tokenize.tokenize(io.BytesIO(s.encode('utf-8')).readline)
|
|
15
|
+
|
|
16
|
+
ret = io.StringIO()
|
|
17
|
+
|
|
18
|
+
indent = 0
|
|
19
|
+
open_braces = 0
|
|
20
|
+
|
|
21
|
+
newline = False
|
|
22
|
+
indent_up = False
|
|
23
|
+
indent_down = False
|
|
24
|
+
skip = False
|
|
25
|
+
|
|
26
|
+
while True:
|
|
27
|
+
try:
|
|
28
|
+
t = next(lt)
|
|
29
|
+
|
|
30
|
+
if t.type == tokenize.ENCODING:
|
|
31
|
+
last_t = t
|
|
32
|
+
continue
|
|
33
|
+
|
|
34
|
+
if t.type == tokenize.OP and t.string == ';':
|
|
35
|
+
newline = True
|
|
36
|
+
|
|
37
|
+
elif t.type == tokenize.OP and t.string == ':':
|
|
38
|
+
if open_braces == 0:
|
|
39
|
+
newline = True
|
|
40
|
+
indent_up = True
|
|
41
|
+
|
|
42
|
+
elif t.type == tokenize.OP and t.string == '{':
|
|
43
|
+
if last_t.type == tokenize.OP and last_t.string == ':': # noqa
|
|
44
|
+
skip = True
|
|
45
|
+
else:
|
|
46
|
+
open_braces += 1
|
|
47
|
+
|
|
48
|
+
elif t.type == tokenize.OP and t.string == '}':
|
|
49
|
+
if open_braces > 0:
|
|
50
|
+
open_braces -= 1
|
|
51
|
+
elif open_braces == 0:
|
|
52
|
+
if indent > 0:
|
|
53
|
+
newline = True
|
|
54
|
+
indent_down = True
|
|
55
|
+
skip = True
|
|
56
|
+
else:
|
|
57
|
+
raise Exception('Too many closing braces')
|
|
58
|
+
|
|
59
|
+
if indent_up:
|
|
60
|
+
indent += indent_width
|
|
61
|
+
elif indent_down:
|
|
62
|
+
indent -= indent_width
|
|
63
|
+
|
|
64
|
+
if newline and indent_up:
|
|
65
|
+
ret.write(':\n' + ' ' * indent)
|
|
66
|
+
elif newline:
|
|
67
|
+
ret.write('\n' + ' ' * indent)
|
|
68
|
+
elif not skip:
|
|
69
|
+
ret.write(t.string)
|
|
70
|
+
ret.write(' ')
|
|
71
|
+
|
|
72
|
+
newline = False
|
|
73
|
+
indent_up = False
|
|
74
|
+
indent_down = False
|
|
75
|
+
skip = False
|
|
76
|
+
last_t = t
|
|
77
|
+
|
|
78
|
+
except StopIteration:
|
|
79
|
+
break
|
|
80
|
+
except tokenize.TokenError:
|
|
81
|
+
continue
|
|
82
|
+
|
|
83
|
+
ret.write('\n')
|
|
84
|
+
return ret.getvalue()
|
|
85
|
+
|
|
86
|
+
|
|
87
|
+
def _main(argv=None) -> None:
|
|
88
|
+
import argparse
|
|
89
|
+
|
|
90
|
+
parser = argparse.ArgumentParser()
|
|
91
|
+
parser.add_argument('-x', '--exec', action='store_true')
|
|
92
|
+
parser.add_argument('cmd')
|
|
93
|
+
|
|
94
|
+
args = parser.parse_args(argv)
|
|
95
|
+
|
|
96
|
+
src = translate_brace_python(args.cmd)
|
|
97
|
+
|
|
98
|
+
if args.exec:
|
|
99
|
+
exec(src)
|
|
100
|
+
else:
|
|
101
|
+
print(src)
|
|
102
|
+
|
|
103
|
+
|
|
104
|
+
if __name__ == '__main__':
|
|
105
|
+
_main()
|
omdev/scripts/interp.py
CHANGED
|
@@ -1669,8 +1669,10 @@ class Pyenv:
|
|
|
1669
1669
|
return os.path.join(check_not_none(self.root()), 'bin', 'pyenv')
|
|
1670
1670
|
|
|
1671
1671
|
def version_exes(self) -> ta.List[ta.Tuple[str, str]]:
|
|
1672
|
+
if (root := self.root()) is None:
|
|
1673
|
+
return []
|
|
1672
1674
|
ret = []
|
|
1673
|
-
vp = os.path.join(
|
|
1675
|
+
vp = os.path.join(root, 'versions')
|
|
1674
1676
|
for dn in os.listdir(vp):
|
|
1675
1677
|
ep = os.path.join(vp, dn, 'bin', 'python')
|
|
1676
1678
|
if not os.path.isfile(ep):
|
|
@@ -1679,6 +1681,8 @@ class Pyenv:
|
|
|
1679
1681
|
return ret
|
|
1680
1682
|
|
|
1681
1683
|
def installable_versions(self) -> ta.List[str]:
|
|
1684
|
+
if self.root() is None:
|
|
1685
|
+
return []
|
|
1682
1686
|
ret = []
|
|
1683
1687
|
s = subprocess_check_output_str(self.exe(), 'install', '--list')
|
|
1684
1688
|
for l in s.splitlines():
|
omdev/scripts/pyproject.py
CHANGED
|
@@ -39,6 +39,7 @@ import inspect
|
|
|
39
39
|
import itertools
|
|
40
40
|
import json
|
|
41
41
|
import logging
|
|
42
|
+
import multiprocessing as mp
|
|
42
43
|
import os
|
|
43
44
|
import os.path
|
|
44
45
|
import re
|
|
@@ -2813,6 +2814,8 @@ class PyprojectPackageGenerator:
|
|
|
2813
2814
|
def file_contents(self) -> FileContents:
|
|
2814
2815
|
pyp_dct = {}
|
|
2815
2816
|
|
|
2817
|
+
#
|
|
2818
|
+
|
|
2816
2819
|
pyp_dct['build-system'] = {
|
|
2817
2820
|
'requires': ['setuptools'],
|
|
2818
2821
|
'build-backend': 'setuptools.build_meta',
|
|
@@ -2820,14 +2823,29 @@ class PyprojectPackageGenerator:
|
|
|
2820
2823
|
|
|
2821
2824
|
prj = self._build_cls_dct(self.project_cls())
|
|
2822
2825
|
pyp_dct['project'] = prj
|
|
2823
|
-
|
|
2826
|
+
|
|
2827
|
+
self._move_dict_key(prj, 'optional_dependencies', pyp_dct, extrask := 'project.optional-dependencies')
|
|
2828
|
+
if (extras := pyp_dct.get(extrask)):
|
|
2829
|
+
pyp_dct[extrask] = {
|
|
2830
|
+
'all': [
|
|
2831
|
+
e
|
|
2832
|
+
for lst in extras.values()
|
|
2833
|
+
for e in lst
|
|
2834
|
+
],
|
|
2835
|
+
**extras,
|
|
2836
|
+
}
|
|
2837
|
+
|
|
2838
|
+
#
|
|
2824
2839
|
|
|
2825
2840
|
st = self._build_cls_dct(self.setuptools_cls())
|
|
2826
2841
|
pyp_dct['tool.setuptools'] = st
|
|
2842
|
+
|
|
2827
2843
|
self._move_dict_key(st, 'find_packages', pyp_dct, 'tool.setuptools.packages.find')
|
|
2828
2844
|
|
|
2829
2845
|
mani_in = st.pop('manifest_in', None)
|
|
2830
2846
|
|
|
2847
|
+
#
|
|
2848
|
+
|
|
2831
2849
|
return self.FileContents(
|
|
2832
2850
|
pyp_dct,
|
|
2833
2851
|
mani_in,
|
|
@@ -3208,8 +3226,10 @@ class Pyenv:
|
|
|
3208
3226
|
return os.path.join(check_not_none(self.root()), 'bin', 'pyenv')
|
|
3209
3227
|
|
|
3210
3228
|
def version_exes(self) -> ta.List[ta.Tuple[str, str]]:
|
|
3229
|
+
if (root := self.root()) is None:
|
|
3230
|
+
return []
|
|
3211
3231
|
ret = []
|
|
3212
|
-
vp = os.path.join(
|
|
3232
|
+
vp = os.path.join(root, 'versions')
|
|
3213
3233
|
for dn in os.listdir(vp):
|
|
3214
3234
|
ep = os.path.join(vp, dn, 'bin', 'python')
|
|
3215
3235
|
if not os.path.isfile(ep):
|
|
@@ -3218,6 +3238,8 @@ class Pyenv:
|
|
|
3218
3238
|
return ret
|
|
3219
3239
|
|
|
3220
3240
|
def installable_versions(self) -> ta.List[str]:
|
|
3241
|
+
if self.root() is None:
|
|
3242
|
+
return []
|
|
3221
3243
|
ret = []
|
|
3222
3244
|
s = subprocess_check_output_str(self.exe(), 'install', '--list')
|
|
3223
3245
|
for l in s.splitlines():
|
|
@@ -3878,13 +3900,12 @@ def _venv_cmd(args) -> None:
|
|
|
3878
3900
|
)
|
|
3879
3901
|
return
|
|
3880
3902
|
|
|
3881
|
-
venv.create()
|
|
3882
|
-
|
|
3883
3903
|
cmd = args.cmd
|
|
3884
3904
|
if not cmd:
|
|
3885
|
-
|
|
3905
|
+
venv.create()
|
|
3886
3906
|
|
|
3887
3907
|
elif cmd == 'python':
|
|
3908
|
+
venv.create()
|
|
3888
3909
|
os.execl(
|
|
3889
3910
|
(exe := venv.exe()),
|
|
3890
3911
|
exe,
|
|
@@ -3892,10 +3913,12 @@ def _venv_cmd(args) -> None:
|
|
|
3892
3913
|
)
|
|
3893
3914
|
|
|
3894
3915
|
elif cmd == 'exe':
|
|
3916
|
+
venv.create()
|
|
3895
3917
|
check_not(args.args)
|
|
3896
3918
|
print(venv.exe())
|
|
3897
3919
|
|
|
3898
3920
|
elif cmd == 'run':
|
|
3921
|
+
venv.create()
|
|
3899
3922
|
sh = check_not_none(shutil.which('bash'))
|
|
3900
3923
|
script = ' '.join(args.args)
|
|
3901
3924
|
if not script:
|
|
@@ -3912,6 +3935,7 @@ def _venv_cmd(args) -> None:
|
|
|
3912
3935
|
print('\n'.join(venv.srcs()))
|
|
3913
3936
|
|
|
3914
3937
|
elif cmd == 'test':
|
|
3938
|
+
venv.create()
|
|
3915
3939
|
subprocess_check_call(venv.exe(), '-m', 'pytest', *(args.args or []), *venv.srcs())
|
|
3916
3940
|
|
|
3917
3941
|
else:
|
|
@@ -3925,7 +3949,10 @@ def _pkg_cmd(args) -> None:
|
|
|
3925
3949
|
run = Run()
|
|
3926
3950
|
|
|
3927
3951
|
cmd = args.cmd
|
|
3928
|
-
if cmd
|
|
3952
|
+
if not cmd:
|
|
3953
|
+
raise Exception('must specify command')
|
|
3954
|
+
|
|
3955
|
+
elif cmd == 'gen':
|
|
3929
3956
|
build_root = os.path.join('.pkg')
|
|
3930
3957
|
|
|
3931
3958
|
if os.path.exists(build_root):
|
|
@@ -3934,11 +3961,10 @@ def _pkg_cmd(args) -> None:
|
|
|
3934
3961
|
build_output_dir = 'dist'
|
|
3935
3962
|
run_build = bool(args.build)
|
|
3936
3963
|
|
|
3937
|
-
num_threads = 8
|
|
3938
|
-
|
|
3939
3964
|
if run_build:
|
|
3940
3965
|
os.makedirs(build_output_dir, exist_ok=True)
|
|
3941
3966
|
|
|
3967
|
+
num_threads = max(mp.cpu_count() // 2, 1)
|
|
3942
3968
|
with cf.ThreadPoolExecutor(num_threads) as ex:
|
|
3943
3969
|
futs = [
|
|
3944
3970
|
ex.submit(functools.partial(
|
omdev/tools/gittools.py
ADDED
|
@@ -0,0 +1,22 @@
|
|
|
1
|
+
import subprocess
|
|
2
|
+
|
|
3
|
+
from omlish import argparse as ap
|
|
4
|
+
from omlish import logs
|
|
5
|
+
|
|
6
|
+
|
|
7
|
+
class Cli(ap.Cli):
|
|
8
|
+
@ap.command()
|
|
9
|
+
def blob_sizes(self) -> None:
|
|
10
|
+
# https://stackoverflow.com/a/42544963
|
|
11
|
+
subprocess.check_call( # noqa
|
|
12
|
+
"git rev-list --objects --all | "
|
|
13
|
+
"git cat-file --batch-check='%(objecttype) %(objectname) %(objectsize) %(rest)' | "
|
|
14
|
+
"sed -n 's/^blob //p' | "
|
|
15
|
+
"sort --numeric-sort --key=2",
|
|
16
|
+
shell=True,
|
|
17
|
+
)
|
|
18
|
+
|
|
19
|
+
|
|
20
|
+
if __name__ == '__main__':
|
|
21
|
+
logs.configure_standard_logging('INFO')
|
|
22
|
+
Cli()()
|
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
Metadata-Version: 2.1
|
|
2
2
|
Name: omdev
|
|
3
|
-
Version: 0.0.0.
|
|
3
|
+
Version: 0.0.0.dev11
|
|
4
4
|
Summary: omdev
|
|
5
5
|
Author: wrmsr
|
|
6
6
|
License: BSD-3-Clause
|
|
@@ -12,7 +12,13 @@ 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.dev11
|
|
16
|
+
Provides-Extra: all
|
|
17
|
+
Requires-Dist: pycparser >=2.22 ; extra == 'all'
|
|
18
|
+
Requires-Dist: cffi >=1.17 ; extra == 'all'
|
|
19
|
+
Requires-Dist: pcpp >=1.30 ; extra == 'all'
|
|
20
|
+
Requires-Dist: mypy >=1.11 ; extra == 'all'
|
|
21
|
+
Requires-Dist: tokenize-rt >=6 ; extra == 'all'
|
|
16
22
|
Provides-Extra: c
|
|
17
23
|
Requires-Dist: pycparser >=2.22 ; extra == 'c'
|
|
18
24
|
Requires-Dist: cffi >=1.17 ; extra == 'c'
|
|
@@ -8,7 +8,7 @@ omdev/amalg/__main__.py,sha256=OE1udULO1g4McUbeg1CoHbSm4hbQ2kcE3ffEGxlnPh4,69
|
|
|
8
8
|
omdev/amalg/amalg.py,sha256=2k9oHxP5HDKopfWspABq2ZVjVsZpUZoejUnHeL7cE9M,11477
|
|
9
9
|
omdev/exts/__init__.py,sha256=47DEQpj8HBSa-_TImW-5JCeuQeRkm5NMpJWZG3hSuFU,0
|
|
10
10
|
omdev/exts/build.py,sha256=zViF1wYx6z5ACyifgNjlCAVoPAMCKpTr_VoAvwtmvtY,1013
|
|
11
|
-
omdev/exts/cmake.py,sha256=
|
|
11
|
+
omdev/exts/cmake.py,sha256=aUMk7irjo6Dr2BjpAyxmFE2V_a7jMCoa89kZmPx_f7w,5745
|
|
12
12
|
omdev/exts/importhook.py,sha256=HgEM6UD52BoQi4dhSSk8buoqV6YRUvzQOOWzX6W1aic,2306
|
|
13
13
|
omdev/exts/scan.py,sha256=rUfRFzKn8Tu_2B-en0bdkrjMlqb8qWK7SOCf7AF2-wk,1642
|
|
14
14
|
omdev/exts/_distutils/__init__.py,sha256=c1zImtnPh3uY8BUTV4RLKtGKqTPx3c_pBbhA6tPtNsE,297
|
|
@@ -31,7 +31,7 @@ omdev/interp/__main__.py,sha256=gFhR9DikwDZk0LqgdR3qq_aXQHThUOPllDmHDOfnFAU,67
|
|
|
31
31
|
omdev/interp/cli.py,sha256=pobok11AGS7UrlCcORyARiS03878rpSVTaFxfv5aaUE,1618
|
|
32
32
|
omdev/interp/inspect.py,sha256=SI4jQmWfXCnlceFTxlVRfTlEYYCjO_X12wuG5e74yto,2849
|
|
33
33
|
omdev/interp/providers.py,sha256=9eooFFf1qYK3k_84TTvMxCRmajyQKH1DpLdL8L523ww,1780
|
|
34
|
-
omdev/interp/pyenv.py,sha256=
|
|
34
|
+
omdev/interp/pyenv.py,sha256=7o0_9yH-7ynMzRBVBTq-vSz4haI7h6sA0bAWSC4_DUk,10563
|
|
35
35
|
omdev/interp/resolvers.py,sha256=RgNgoe7Q34ivi3d9uXhfmtTfnRwaNDnJieJLJB8H3js,2239
|
|
36
36
|
omdev/interp/standalone.py,sha256=XcltiL7ypcfV89C82_3knQ3Kx7aW4wnnxf2056ZXC3A,7731
|
|
37
37
|
omdev/interp/system.py,sha256=UFHfMR0CHCEnNx5fhrze8esAwigpRrJUA33ftq6nA0I,3514
|
|
@@ -40,28 +40,30 @@ omdev/mypy/__init__.py,sha256=47DEQpj8HBSa-_TImW-5JCeuQeRkm5NMpJWZG3hSuFU,0
|
|
|
40
40
|
omdev/mypy/debug.py,sha256=WcZw-3Z1njg_KFGqi3DB6RuqbBa3dLArJnjVCuY1Mn0,3003
|
|
41
41
|
omdev/pyproject/__init__.py,sha256=Y3l4WY4JRi2uLG6kgbGp93fuGfkxkKwZDvhsa0Rwgtk,15
|
|
42
42
|
omdev/pyproject/__main__.py,sha256=gFhR9DikwDZk0LqgdR3qq_aXQHThUOPllDmHDOfnFAU,67
|
|
43
|
-
omdev/pyproject/cli.py,sha256=
|
|
43
|
+
omdev/pyproject/cli.py,sha256=GdySmyf9sdphiFLuOqknStTrdX9A2vf1IxZ9eImRE7k,9755
|
|
44
44
|
omdev/pyproject/configs.py,sha256=MFHnmpMjlwxw74-SyX1Q1qNQ4ptwTXEzDGkeUcGY0mA,2822
|
|
45
45
|
omdev/pyproject/ext.py,sha256=x13piOOnNrYbA17qZLDVuR0p1sqhgEwpk4FtImX-klM,4281
|
|
46
|
-
omdev/pyproject/pkg.py,sha256=
|
|
46
|
+
omdev/pyproject/pkg.py,sha256=HgRFK9euQ8gmWHpnPgZkGHjOrIus_NSjAznn8yEQvBA,5690
|
|
47
47
|
omdev/scripts/__init__.py,sha256=47DEQpj8HBSa-_TImW-5JCeuQeRkm5NMpJWZG3hSuFU,0
|
|
48
|
+
omdev/scripts/bracepy.py,sha256=CUg3nNKE8n34a5j77SUli8ivsOj5ks6I_5VIF8bl-zY,2562
|
|
48
49
|
omdev/scripts/execrss.py,sha256=wBpdhWuQj_4EnEmvK_aLQHxaE-J52G9F6g0210fTNe8,307
|
|
49
50
|
omdev/scripts/findimports.py,sha256=d8Xf2TcE7hHh_lXUx2V1APF4Jggu2uO2K0ex6bfmqyQ,2030
|
|
50
51
|
omdev/scripts/findmagic.py,sha256=W7W07YR3zsA0hNej6-BPgQj2hWX1UydrbWnNMRdMA88,1893
|
|
51
|
-
omdev/scripts/interp.py,sha256=
|
|
52
|
-
omdev/scripts/pyproject.py,sha256=
|
|
52
|
+
omdev/scripts/interp.py,sha256=z66pI9s1yVOD-HMCDdHzq6gRfezoex5MjQ7jnJIAIuU,62939
|
|
53
|
+
omdev/scripts/pyproject.py,sha256=df2a4oKTWMohgSgiEKLshdABhkIapKH3arlbdJ71XeM,119248
|
|
53
54
|
omdev/scripts/traceimport.py,sha256=JmUgLEQLY7r3QNQ14Agarqh5qtMyRNenCb_OF5EIikY,13392
|
|
54
55
|
omdev/toml/__init__.py,sha256=Y3l4WY4JRi2uLG6kgbGp93fuGfkxkKwZDvhsa0Rwgtk,15
|
|
55
56
|
omdev/toml/parser.py,sha256=84bn09uhYHwQGyfww6Rw6y1RxPAE_HDltODOSakcqDM,29186
|
|
56
57
|
omdev/toml/writer.py,sha256=StGYPvqgN__A2IxTI4rYeHMx8dLAFt8uogHG8dJdShs,2781
|
|
57
58
|
omdev/tools/__init__.py,sha256=47DEQpj8HBSa-_TImW-5JCeuQeRkm5NMpJWZG3hSuFU,0
|
|
58
59
|
omdev/tools/dockertools.py,sha256=3844AhUst6kYo2xKNn-2Npi-f6r4rocxEOx0tHjE0dk,2063
|
|
60
|
+
omdev/tools/gittools.py,sha256=zPy2D5WDs-CbwT86_T_hbaq5yCuss5e-ouUccXC6xlg,578
|
|
59
61
|
omdev/tools/sqlrepl.py,sha256=v9uVQ4nvquSXcQVYIFq34ikumSILvKqzD6lUKLcncCE,5646
|
|
60
62
|
omdev/versioning/__init__.py,sha256=Y3l4WY4JRi2uLG6kgbGp93fuGfkxkKwZDvhsa0Rwgtk,15
|
|
61
63
|
omdev/versioning/specifiers.py,sha256=6Odf9e6farwlPRsD_YqwTfYKG-BXn_dIcKtqfkhfodI,17432
|
|
62
64
|
omdev/versioning/versions.py,sha256=ei2eopEsJq3zSMJmezK1nzZgikgCdxFtnF3f69nCRZQ,12246
|
|
63
|
-
omdev-0.0.0.
|
|
64
|
-
omdev-0.0.0.
|
|
65
|
-
omdev-0.0.0.
|
|
66
|
-
omdev-0.0.0.
|
|
67
|
-
omdev-0.0.0.
|
|
65
|
+
omdev-0.0.0.dev11.dist-info/LICENSE,sha256=B_hVtavaA8zCYDW99DYdcpDLKz1n3BBRjZrcbv8uG8c,1451
|
|
66
|
+
omdev-0.0.0.dev11.dist-info/METADATA,sha256=LKBayZPwTJ2L-NtTD5tbPJhkobNBYsJ8g2MO_mC0NKE,1008
|
|
67
|
+
omdev-0.0.0.dev11.dist-info/WHEEL,sha256=UvcQYKBHoFqaQd6LKyqHw9fxEolWLQnlzP0h_LgJAfI,91
|
|
68
|
+
omdev-0.0.0.dev11.dist-info/top_level.txt,sha256=1nr7j30fEWgLYHW3lGR9pkdHkb7knv1U1ES1XRNVQ6k,6
|
|
69
|
+
omdev-0.0.0.dev11.dist-info/RECORD,,
|
|
File without changes
|
|
File without changes
|