omdev 0.0.0.dev49__py3-none-any.whl → 0.0.0.dev51__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/.manifests.json +12 -0
- omdev/cli/install.py +0 -5
- omdev/cli/main.py +0 -2
- omdev/cli/managers.py +1 -1
- omdev/interp/pyenv.py +6 -5
- omdev/pyproject/reqs.py +2 -0
- omdev/scripts/interp.py +6 -5
- omdev/scripts/pyproject.py +83 -81
- omdev/tools/mkrelimp.py +169 -0
- {omdev-0.0.0.dev49.dist-info → omdev-0.0.0.dev51.dist-info}/METADATA +2 -2
- {omdev-0.0.0.dev49.dist-info → omdev-0.0.0.dev51.dist-info}/RECORD +15 -14
- {omdev-0.0.0.dev49.dist-info → omdev-0.0.0.dev51.dist-info}/LICENSE +0 -0
- {omdev-0.0.0.dev49.dist-info → omdev-0.0.0.dev51.dist-info}/WHEEL +0 -0
- {omdev-0.0.0.dev49.dist-info → omdev-0.0.0.dev51.dist-info}/entry_points.txt +0 -0
- {omdev-0.0.0.dev49.dist-info → omdev-0.0.0.dev51.dist-info}/top_level.txt +0 -0
omdev/.manifests.json
CHANGED
|
@@ -155,6 +155,18 @@
|
|
|
155
155
|
}
|
|
156
156
|
}
|
|
157
157
|
},
|
|
158
|
+
{
|
|
159
|
+
"module": ".tools.mkrelimp",
|
|
160
|
+
"attr": "_CLI_MODULE",
|
|
161
|
+
"file": "omdev/tools/mkrelimp.py",
|
|
162
|
+
"line": 148,
|
|
163
|
+
"value": {
|
|
164
|
+
"$.cli.types.CliModule": {
|
|
165
|
+
"cmd_name": "mkrelimp",
|
|
166
|
+
"mod_name": "omdev.tools.mkrelimp"
|
|
167
|
+
}
|
|
168
|
+
}
|
|
169
|
+
},
|
|
158
170
|
{
|
|
159
171
|
"module": ".tools.piptools",
|
|
160
172
|
"attr": "_CLI_MODULE",
|
omdev/cli/install.py
CHANGED
omdev/cli/main.py
CHANGED
|
@@ -3,8 +3,6 @@ TODO:
|
|
|
3
3
|
- cache ldr.discover() somehow if in uvx/pipx - very slow
|
|
4
4
|
- <venv-root>/.omdev-cli-manifest-cache.json - {pkg_name: manifests_json}
|
|
5
5
|
- allow manually specifying manifest packages
|
|
6
|
-
- https://packaging.python.org/en/latest/guides/writing-pyproject-toml/#creating-executable-scripts
|
|
7
|
-
- https://packaging.python.org/en/latest/specifications/entry-points/#entry-points
|
|
8
6
|
"""
|
|
9
7
|
import argparse
|
|
10
8
|
import os
|
omdev/cli/managers.py
CHANGED
|
@@ -52,7 +52,7 @@ def detect_install_manager(cli_pkg: str) -> ManagerType | None:
|
|
|
52
52
|
# code runs before the problematic empty string is added, so a sys.meta_path hook is prepended.
|
|
53
53
|
#
|
|
54
54
|
# See:
|
|
55
|
-
#
|
|
55
|
+
# https://github.com/python/cpython/blob/da1e5526aee674bb33c17a498aa3781587b9850c/Python/sysmodule.c#L3939
|
|
56
56
|
|
|
57
57
|
|
|
58
58
|
def _remove_empty_from_sys_path() -> None:
|
omdev/interp/pyenv.py
CHANGED
|
@@ -76,11 +76,12 @@ class Pyenv:
|
|
|
76
76
|
return []
|
|
77
77
|
ret = []
|
|
78
78
|
vp = os.path.join(root, 'versions')
|
|
79
|
-
|
|
80
|
-
|
|
81
|
-
|
|
82
|
-
|
|
83
|
-
|
|
79
|
+
if os.path.isdir(vp):
|
|
80
|
+
for dn in os.listdir(vp):
|
|
81
|
+
ep = os.path.join(vp, dn, 'bin', 'python')
|
|
82
|
+
if not os.path.isfile(ep):
|
|
83
|
+
continue
|
|
84
|
+
ret.append((dn, ep))
|
|
84
85
|
return ret
|
|
85
86
|
|
|
86
87
|
def installable_versions(self) -> ta.List[str]:
|
omdev/pyproject/reqs.py
CHANGED
|
@@ -8,6 +8,7 @@ import tempfile
|
|
|
8
8
|
import typing as ta
|
|
9
9
|
|
|
10
10
|
from omlish.lite.cached import cached_nullary
|
|
11
|
+
from omlish.lite.logs import log
|
|
11
12
|
|
|
12
13
|
|
|
13
14
|
class RequirementsRewriter:
|
|
@@ -57,6 +58,7 @@ class RequirementsRewriter:
|
|
|
57
58
|
|
|
58
59
|
with open(out_file, 'w') as f:
|
|
59
60
|
f.write(''.join(out_lines))
|
|
61
|
+
log.info('Rewrote requirements file %s to %s', in_file, out_file)
|
|
60
62
|
return out_file
|
|
61
63
|
|
|
62
64
|
def rewrite(self, in_req: str, *, for_file: bool = False) -> str:
|
omdev/scripts/interp.py
CHANGED
|
@@ -1851,11 +1851,12 @@ class Pyenv:
|
|
|
1851
1851
|
return []
|
|
1852
1852
|
ret = []
|
|
1853
1853
|
vp = os.path.join(root, 'versions')
|
|
1854
|
-
|
|
1855
|
-
|
|
1856
|
-
|
|
1857
|
-
|
|
1858
|
-
|
|
1854
|
+
if os.path.isdir(vp):
|
|
1855
|
+
for dn in os.listdir(vp):
|
|
1856
|
+
ep = os.path.join(vp, dn, 'bin', 'python')
|
|
1857
|
+
if not os.path.isfile(ep):
|
|
1858
|
+
continue
|
|
1859
|
+
ret.append((dn, ep))
|
|
1859
1860
|
return ret
|
|
1860
1861
|
|
|
1861
1862
|
def installable_versions(self) -> ta.List[str]:
|
omdev/scripts/pyproject.py
CHANGED
|
@@ -2539,82 +2539,6 @@ class SpecifierSet(BaseSpecifier):
|
|
|
2539
2539
|
return iter(filtered)
|
|
2540
2540
|
|
|
2541
2541
|
|
|
2542
|
-
########################################
|
|
2543
|
-
# ../reqs.py
|
|
2544
|
-
"""
|
|
2545
|
-
TODO:
|
|
2546
|
-
- embed pip._internal.req.parse_requirements, add additional env stuff? breaks compat with raw pip
|
|
2547
|
-
"""
|
|
2548
|
-
|
|
2549
|
-
|
|
2550
|
-
class RequirementsRewriter:
|
|
2551
|
-
def __init__(
|
|
2552
|
-
self,
|
|
2553
|
-
venv: ta.Optional[str] = None,
|
|
2554
|
-
) -> None:
|
|
2555
|
-
super().__init__()
|
|
2556
|
-
self._venv = venv
|
|
2557
|
-
|
|
2558
|
-
@cached_nullary
|
|
2559
|
-
def _tmp_dir(self) -> str:
|
|
2560
|
-
return tempfile.mkdtemp('-omlish-reqs')
|
|
2561
|
-
|
|
2562
|
-
VENV_MAGIC = '# @omlish-venv'
|
|
2563
|
-
|
|
2564
|
-
def rewrite_file(self, in_file: str) -> str:
|
|
2565
|
-
with open(in_file) as f:
|
|
2566
|
-
src = f.read()
|
|
2567
|
-
|
|
2568
|
-
in_lines = src.splitlines(keepends=True)
|
|
2569
|
-
out_lines = []
|
|
2570
|
-
|
|
2571
|
-
for l in in_lines:
|
|
2572
|
-
if self.VENV_MAGIC in l:
|
|
2573
|
-
lp, _, rp = l.partition(self.VENV_MAGIC)
|
|
2574
|
-
rp = rp.partition('#')[0]
|
|
2575
|
-
omit = False
|
|
2576
|
-
for v in rp.split():
|
|
2577
|
-
if v[0] == '!':
|
|
2578
|
-
if self._venv is not None and self._venv == v[1:]:
|
|
2579
|
-
omit = True
|
|
2580
|
-
break
|
|
2581
|
-
else:
|
|
2582
|
-
raise NotImplementedError
|
|
2583
|
-
|
|
2584
|
-
if omit:
|
|
2585
|
-
out_lines.append('# OMITTED: ' + l)
|
|
2586
|
-
continue
|
|
2587
|
-
|
|
2588
|
-
out_req = self.rewrite(l.rstrip('\n'), for_file=True)
|
|
2589
|
-
out_lines.append(out_req + '\n')
|
|
2590
|
-
|
|
2591
|
-
out_file = os.path.join(self._tmp_dir(), os.path.basename(in_file))
|
|
2592
|
-
if os.path.exists(out_file):
|
|
2593
|
-
raise Exception(f'file exists: {out_file}')
|
|
2594
|
-
|
|
2595
|
-
with open(out_file, 'w') as f:
|
|
2596
|
-
f.write(''.join(out_lines))
|
|
2597
|
-
return out_file
|
|
2598
|
-
|
|
2599
|
-
def rewrite(self, in_req: str, *, for_file: bool = False) -> str:
|
|
2600
|
-
if in_req.strip().startswith('-r'):
|
|
2601
|
-
l = in_req.strip()
|
|
2602
|
-
lp, _, rp = l.partition(' ')
|
|
2603
|
-
if lp == '-r':
|
|
2604
|
-
inc_in_file, _, rest = rp.partition(' ')
|
|
2605
|
-
else:
|
|
2606
|
-
inc_in_file, rest = lp[2:], rp
|
|
2607
|
-
|
|
2608
|
-
inc_out_file = self.rewrite_file(inc_in_file)
|
|
2609
|
-
if for_file:
|
|
2610
|
-
return ' '.join(['-r ', inc_out_file, rest])
|
|
2611
|
-
else:
|
|
2612
|
-
return '-r' + inc_out_file
|
|
2613
|
-
|
|
2614
|
-
else:
|
|
2615
|
-
return in_req
|
|
2616
|
-
|
|
2617
|
-
|
|
2618
2542
|
########################################
|
|
2619
2543
|
# ../../../omlish/lite/logs.py
|
|
2620
2544
|
"""
|
|
@@ -3390,6 +3314,83 @@ class PyprojectConfigPreparer:
|
|
|
3390
3314
|
return pcfg
|
|
3391
3315
|
|
|
3392
3316
|
|
|
3317
|
+
########################################
|
|
3318
|
+
# ../reqs.py
|
|
3319
|
+
"""
|
|
3320
|
+
TODO:
|
|
3321
|
+
- embed pip._internal.req.parse_requirements, add additional env stuff? breaks compat with raw pip
|
|
3322
|
+
"""
|
|
3323
|
+
|
|
3324
|
+
|
|
3325
|
+
class RequirementsRewriter:
|
|
3326
|
+
def __init__(
|
|
3327
|
+
self,
|
|
3328
|
+
venv: ta.Optional[str] = None,
|
|
3329
|
+
) -> None:
|
|
3330
|
+
super().__init__()
|
|
3331
|
+
self._venv = venv
|
|
3332
|
+
|
|
3333
|
+
@cached_nullary
|
|
3334
|
+
def _tmp_dir(self) -> str:
|
|
3335
|
+
return tempfile.mkdtemp('-omlish-reqs')
|
|
3336
|
+
|
|
3337
|
+
VENV_MAGIC = '# @omlish-venv'
|
|
3338
|
+
|
|
3339
|
+
def rewrite_file(self, in_file: str) -> str:
|
|
3340
|
+
with open(in_file) as f:
|
|
3341
|
+
src = f.read()
|
|
3342
|
+
|
|
3343
|
+
in_lines = src.splitlines(keepends=True)
|
|
3344
|
+
out_lines = []
|
|
3345
|
+
|
|
3346
|
+
for l in in_lines:
|
|
3347
|
+
if self.VENV_MAGIC in l:
|
|
3348
|
+
lp, _, rp = l.partition(self.VENV_MAGIC)
|
|
3349
|
+
rp = rp.partition('#')[0]
|
|
3350
|
+
omit = False
|
|
3351
|
+
for v in rp.split():
|
|
3352
|
+
if v[0] == '!':
|
|
3353
|
+
if self._venv is not None and self._venv == v[1:]:
|
|
3354
|
+
omit = True
|
|
3355
|
+
break
|
|
3356
|
+
else:
|
|
3357
|
+
raise NotImplementedError
|
|
3358
|
+
|
|
3359
|
+
if omit:
|
|
3360
|
+
out_lines.append('# OMITTED: ' + l)
|
|
3361
|
+
continue
|
|
3362
|
+
|
|
3363
|
+
out_req = self.rewrite(l.rstrip('\n'), for_file=True)
|
|
3364
|
+
out_lines.append(out_req + '\n')
|
|
3365
|
+
|
|
3366
|
+
out_file = os.path.join(self._tmp_dir(), os.path.basename(in_file))
|
|
3367
|
+
if os.path.exists(out_file):
|
|
3368
|
+
raise Exception(f'file exists: {out_file}')
|
|
3369
|
+
|
|
3370
|
+
with open(out_file, 'w') as f:
|
|
3371
|
+
f.write(''.join(out_lines))
|
|
3372
|
+
log.info('Rewrote requirements file %s to %s', in_file, out_file)
|
|
3373
|
+
return out_file
|
|
3374
|
+
|
|
3375
|
+
def rewrite(self, in_req: str, *, for_file: bool = False) -> str:
|
|
3376
|
+
if in_req.strip().startswith('-r'):
|
|
3377
|
+
l = in_req.strip()
|
|
3378
|
+
lp, _, rp = l.partition(' ')
|
|
3379
|
+
if lp == '-r':
|
|
3380
|
+
inc_in_file, _, rest = rp.partition(' ')
|
|
3381
|
+
else:
|
|
3382
|
+
inc_in_file, rest = lp[2:], rp
|
|
3383
|
+
|
|
3384
|
+
inc_out_file = self.rewrite_file(inc_in_file)
|
|
3385
|
+
if for_file:
|
|
3386
|
+
return ' '.join(['-r ', inc_out_file, rest])
|
|
3387
|
+
else:
|
|
3388
|
+
return '-r' + inc_out_file
|
|
3389
|
+
|
|
3390
|
+
else:
|
|
3391
|
+
return in_req
|
|
3392
|
+
|
|
3393
|
+
|
|
3393
3394
|
########################################
|
|
3394
3395
|
# ../../revisions.py
|
|
3395
3396
|
"""
|
|
@@ -4386,11 +4387,12 @@ class Pyenv:
|
|
|
4386
4387
|
return []
|
|
4387
4388
|
ret = []
|
|
4388
4389
|
vp = os.path.join(root, 'versions')
|
|
4389
|
-
|
|
4390
|
-
|
|
4391
|
-
|
|
4392
|
-
|
|
4393
|
-
|
|
4390
|
+
if os.path.isdir(vp):
|
|
4391
|
+
for dn in os.listdir(vp):
|
|
4392
|
+
ep = os.path.join(vp, dn, 'bin', 'python')
|
|
4393
|
+
if not os.path.isfile(ep):
|
|
4394
|
+
continue
|
|
4395
|
+
ret.append((dn, ep))
|
|
4394
4396
|
return ret
|
|
4395
4397
|
|
|
4396
4398
|
def installable_versions(self) -> ta.List[str]:
|
omdev/tools/mkrelimp.py
ADDED
|
@@ -0,0 +1,169 @@
|
|
|
1
|
+
import argparse
|
|
2
|
+
import itertools
|
|
3
|
+
import logging
|
|
4
|
+
import os.path
|
|
5
|
+
import typing as ta
|
|
6
|
+
|
|
7
|
+
import tokenize_rt as trt
|
|
8
|
+
|
|
9
|
+
from omlish import logs
|
|
10
|
+
|
|
11
|
+
from .. import tokens as tks
|
|
12
|
+
from ..cli import CliModule
|
|
13
|
+
|
|
14
|
+
|
|
15
|
+
T = ta.TypeVar('T')
|
|
16
|
+
|
|
17
|
+
|
|
18
|
+
log = logging.getLogger(__name__)
|
|
19
|
+
|
|
20
|
+
|
|
21
|
+
def indexfn(
|
|
22
|
+
fn: ta.Callable[[T], bool],
|
|
23
|
+
it: ta.Iterable[T],
|
|
24
|
+
start: int = 0,
|
|
25
|
+
stop: int | None = None,
|
|
26
|
+
step: int = 1,
|
|
27
|
+
) -> int:
|
|
28
|
+
for i, e in enumerate(itertools.islice(it, start, stop, step)):
|
|
29
|
+
if fn(e):
|
|
30
|
+
return start + i * step
|
|
31
|
+
return -1
|
|
32
|
+
|
|
33
|
+
|
|
34
|
+
def interleave(sep: T, it: ta.Iterable[T]) -> ta.Iterable[T]:
|
|
35
|
+
for i, e in enumerate(it):
|
|
36
|
+
if i > 0:
|
|
37
|
+
yield sep
|
|
38
|
+
yield e
|
|
39
|
+
|
|
40
|
+
|
|
41
|
+
class Processor:
|
|
42
|
+
def __init__(
|
|
43
|
+
self,
|
|
44
|
+
base_dir: str,
|
|
45
|
+
mod_name: str | None = None,
|
|
46
|
+
*,
|
|
47
|
+
write: bool = False,
|
|
48
|
+
) -> None:
|
|
49
|
+
super().__init__()
|
|
50
|
+
|
|
51
|
+
self._base_dir = base_dir
|
|
52
|
+
self._mod_name = mod_name if mod_name is not None else os.path.basename(base_dir)
|
|
53
|
+
self._write = write
|
|
54
|
+
|
|
55
|
+
def process_line_tks(
|
|
56
|
+
self,
|
|
57
|
+
in_tks: tks.Tokens,
|
|
58
|
+
src_file: str,
|
|
59
|
+
) -> tks.Tokens:
|
|
60
|
+
lst = list(in_tks)
|
|
61
|
+
pfx = []
|
|
62
|
+
while lst and (tks.is_ws(lst[0]) or lst[0].name in ('INDENT', 'DEDENT')):
|
|
63
|
+
pfx.append(lst.pop(0))
|
|
64
|
+
|
|
65
|
+
if (
|
|
66
|
+
len(lst) < 3 or
|
|
67
|
+
lst[0].name != 'NAME' or
|
|
68
|
+
lst[0].src not in ('import', 'from') or
|
|
69
|
+
lst[2].name != 'NAME' or
|
|
70
|
+
lst[2].src != self._mod_name
|
|
71
|
+
):
|
|
72
|
+
return in_tks
|
|
73
|
+
|
|
74
|
+
##
|
|
75
|
+
|
|
76
|
+
ws_pos = indexfn(tks.is_ws, lst, 3)
|
|
77
|
+
imp_name_tks = list(lst[2:ws_pos])
|
|
78
|
+
imp_name_parts = [t.src for t in imp_name_tks if t.name == 'NAME']
|
|
79
|
+
|
|
80
|
+
##
|
|
81
|
+
|
|
82
|
+
src_dir = os.path.dirname(src_file)
|
|
83
|
+
rel_path = os.path.relpath(os.path.join(self._base_dir, *imp_name_parts[1:]), src_dir)
|
|
84
|
+
rel_path_parts = rel_path.split(os.sep)
|
|
85
|
+
pd_pos = indexfn(lambda s: s != '..', rel_path_parts)
|
|
86
|
+
if pd_pos < 0:
|
|
87
|
+
rel_imp_name_parts = ['.' * (len(rel_path_parts) + 1)]
|
|
88
|
+
else:
|
|
89
|
+
rel_imp_name_parts = ['.' * pd_pos, *rel_path_parts[pd_pos:]]
|
|
90
|
+
|
|
91
|
+
##
|
|
92
|
+
|
|
93
|
+
new_tks = list(interleave(
|
|
94
|
+
trt.Token(name='OP', src='.'),
|
|
95
|
+
[trt.Token(name='NAME', src=p) for p in rel_imp_name_parts],
|
|
96
|
+
))
|
|
97
|
+
out_tks = [
|
|
98
|
+
*pfx,
|
|
99
|
+
*lst[:2],
|
|
100
|
+
*new_tks,
|
|
101
|
+
*lst[ws_pos:],
|
|
102
|
+
]
|
|
103
|
+
return out_tks
|
|
104
|
+
|
|
105
|
+
def process_file(
|
|
106
|
+
self,
|
|
107
|
+
src_file: str,
|
|
108
|
+
) -> None:
|
|
109
|
+
log.info('Processing file: %s : %s', self._mod_name, src_file)
|
|
110
|
+
|
|
111
|
+
with open(src_file) as f:
|
|
112
|
+
src = f.read()
|
|
113
|
+
|
|
114
|
+
ts = trt.src_to_tokens(src)
|
|
115
|
+
in_ls = tks.split_lines(ts)
|
|
116
|
+
out_ls = [
|
|
117
|
+
self.process_line_tks(
|
|
118
|
+
l,
|
|
119
|
+
src_file,
|
|
120
|
+
)
|
|
121
|
+
for l in in_ls
|
|
122
|
+
]
|
|
123
|
+
out_src = tks.join_lines(out_ls)
|
|
124
|
+
|
|
125
|
+
if self._write:
|
|
126
|
+
with open(src_file, 'w') as f:
|
|
127
|
+
f.write(out_src)
|
|
128
|
+
|
|
129
|
+
else:
|
|
130
|
+
print(out_src)
|
|
131
|
+
print()
|
|
132
|
+
|
|
133
|
+
def process_dir(
|
|
134
|
+
self,
|
|
135
|
+
base_dir: str,
|
|
136
|
+
) -> None:
|
|
137
|
+
for dp, _, fns in os.walk(base_dir):
|
|
138
|
+
for fn in fns:
|
|
139
|
+
if not fn.endswith('.py'):
|
|
140
|
+
continue
|
|
141
|
+
|
|
142
|
+
self.process_file(os.path.join(dp, fn))
|
|
143
|
+
|
|
144
|
+
def process(self) -> None:
|
|
145
|
+
self.process_dir(self._base_dir)
|
|
146
|
+
|
|
147
|
+
|
|
148
|
+
# @omlish-manifest
|
|
149
|
+
_CLI_MODULE = CliModule('mkrelimp', __name__)
|
|
150
|
+
|
|
151
|
+
|
|
152
|
+
def _main() -> None:
|
|
153
|
+
parser = argparse.ArgumentParser()
|
|
154
|
+
parser.add_argument('base_dir')
|
|
155
|
+
parser.add_argument('mod_name', nargs='?')
|
|
156
|
+
parser.add_argument('-w', '--write', action='store_true')
|
|
157
|
+
args = parser.parse_args()
|
|
158
|
+
|
|
159
|
+
logs.configure_standard_logging('INFO')
|
|
160
|
+
|
|
161
|
+
Processor(
|
|
162
|
+
args.base_dir,
|
|
163
|
+
args.mod_name,
|
|
164
|
+
write=args.write,
|
|
165
|
+
).process()
|
|
166
|
+
|
|
167
|
+
|
|
168
|
+
if __name__ == '__main__':
|
|
169
|
+
_main()
|
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
Metadata-Version: 2.1
|
|
2
2
|
Name: omdev
|
|
3
|
-
Version: 0.0.0.
|
|
3
|
+
Version: 0.0.0.dev51
|
|
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.dev51
|
|
16
16
|
Provides-Extra: all
|
|
17
17
|
Requires-Dist: pycparser ~=2.22 ; extra == 'all'
|
|
18
18
|
Requires-Dist: cffi ~=1.17 ; extra == 'all'
|
|
@@ -1,4 +1,4 @@
|
|
|
1
|
-
omdev/.manifests.json,sha256=
|
|
1
|
+
omdev/.manifests.json,sha256=aVWfRH5ZXkRF1MSMHfbCjmPop-yoc_r1PAwzZfInWVk,4180
|
|
2
2
|
omdev/__about__.py,sha256=LqSNNFFcT84xW3W8fIOJ78kPYJKFLIXZyDX-AJREvN0,1005
|
|
3
3
|
omdev/__init__.py,sha256=47DEQpj8HBSa-_TImW-5JCeuQeRkm5NMpJWZG3hSuFU,0
|
|
4
4
|
omdev/bracepy.py,sha256=HwBK5XmlOsF_juTel25fRLJK9vHSJCWXuCc-OZlevRQ,2619
|
|
@@ -56,16 +56,16 @@ omdev/cexts/_distutils/compilers/unixccompiler.py,sha256=o1h8QuyupLntv4F21_XjzAZ
|
|
|
56
56
|
omdev/cli/__init__.py,sha256=V_l6VP1SZMlJbO-8CJwSuO9TThOy2S_oaPepNYgIrbE,37
|
|
57
57
|
omdev/cli/__main__.py,sha256=5IeIERm-371fSI5ZvPv8eldAJBwgKwpR0R49pTsILNM,76
|
|
58
58
|
omdev/cli/clicli.py,sha256=rQ9-F9XI3BevnfIVALHVKrrHNQPdYhkQ-IKESTNB5RA,2447
|
|
59
|
-
omdev/cli/install.py,sha256=
|
|
60
|
-
omdev/cli/main.py,sha256=
|
|
61
|
-
omdev/cli/managers.py,sha256=
|
|
59
|
+
omdev/cli/install.py,sha256=C-W171YlIHt4Cfok-nWSMbHwWhqF_PFqq2HixFttYx8,4460
|
|
60
|
+
omdev/cli/main.py,sha256=wVhrzwEfUFKjlfSeJK5CM23yId4v3-36IuY4VbrOSQA,1873
|
|
61
|
+
omdev/cli/managers.py,sha256=zqhMgNnv2VbXoTP6SgZeSuWfAVo1Ge-HJnQ1ftL-Mq8,2590
|
|
62
62
|
omdev/cli/types.py,sha256=7_Owg0P8C8oOObSuOp6aEYSjkEukVFxTT00SRy1bLHM,250
|
|
63
63
|
omdev/interp/__init__.py,sha256=Y3l4WY4JRi2uLG6kgbGp93fuGfkxkKwZDvhsa0Rwgtk,15
|
|
64
64
|
omdev/interp/__main__.py,sha256=GMCqeGYltgt5dlJzHxY9gqisa8cRkrPfmZYuZnjg4WI,162
|
|
65
65
|
omdev/interp/cli.py,sha256=sh7PZQoLletUViw1Y9OXNr9ekyNZ6YyxYuOQ_n9hyqU,2072
|
|
66
66
|
omdev/interp/inspect.py,sha256=55_il4ehoW6Q468YE57w5CyZxHLNsndkRIH4W80OplM,2848
|
|
67
67
|
omdev/interp/providers.py,sha256=PFEjozW0c33eqg8sno-GHMKbhVUzQF9jrAx-M0uQimk,1787
|
|
68
|
-
omdev/interp/pyenv.py,sha256=
|
|
68
|
+
omdev/interp/pyenv.py,sha256=0RJvW_kltDPANIHBgG0Ak02BXJfFMvr-4AWi6ATmTXo,13791
|
|
69
69
|
omdev/interp/resolvers.py,sha256=tpzlmqGp1C4QKdA6TfcPmtmaygu7mb6WK2RPSbyNQ6s,3022
|
|
70
70
|
omdev/interp/standalone.py,sha256=XcltiL7ypcfV89C82_3knQ3Kx7aW4wnnxf2056ZXC3A,7731
|
|
71
71
|
omdev/interp/system.py,sha256=bI-JhX4GVJqW7wMxnIa-DGJWnCLmFcIsnl9pc1RGY2g,3513
|
|
@@ -94,14 +94,14 @@ omdev/pyproject/cexts.py,sha256=x13piOOnNrYbA17qZLDVuR0p1sqhgEwpk4FtImX-klM,4281
|
|
|
94
94
|
omdev/pyproject/cli.py,sha256=QnlptoCJQ0yvJ1C2mXEYfOMS6agRQMn2nGS9KgWoJ5U,11358
|
|
95
95
|
omdev/pyproject/configs.py,sha256=K9H5cGwVLgHi8wKwtYvlXHZ9ThtmnI4jo8JAb-t1-70,2859
|
|
96
96
|
omdev/pyproject/pkg.py,sha256=rNKzJOIgPDrtT2i14Pebldoboz45w00sKb5l_kYFaRI,14562
|
|
97
|
-
omdev/pyproject/reqs.py,sha256=
|
|
97
|
+
omdev/pyproject/reqs.py,sha256=8feZ71YnGzwKbLK4zO28CDQeNcZIIuq6cnkBhs6M-7E,2406
|
|
98
98
|
omdev/scripts/__init__.py,sha256=MKCvUAEQwsIvwLixwtPlpBqmkMXLCnjjXyAXvVpDwVk,91
|
|
99
99
|
omdev/scripts/bumpversion.py,sha256=Kn7fo73Hs8uJh3Hi3EIyLOlzLPWAC6dwuD_lZ3cIzuY,1064
|
|
100
100
|
omdev/scripts/execrss.py,sha256=d6purJqU99OkMcNxCS1kG2CMfSsw7wjnvBQW7SjyJ70,448
|
|
101
101
|
omdev/scripts/exectime.py,sha256=LRVIJsnvGYUqH-zfCdFnrQCZv1KLXJPtWBWplXMDwhI,407
|
|
102
102
|
omdev/scripts/importtrace.py,sha256=4ozdphT4VuP8L0kE0HmGMyWaWHnXg1KEukbET4pFgJU,14064
|
|
103
|
-
omdev/scripts/interp.py,sha256=
|
|
104
|
-
omdev/scripts/pyproject.py,sha256=
|
|
103
|
+
omdev/scripts/interp.py,sha256=7xeihsrt3DI_s1fZqNweivBUUwuGkS5C5cWw4QY6q30,70999
|
|
104
|
+
omdev/scripts/pyproject.py,sha256=ETGBPUdMeifuDdG7lcf8HUBVRwLPdx3VE_GfvhulTrY,157486
|
|
105
105
|
omdev/toml/__init__.py,sha256=Y3l4WY4JRi2uLG6kgbGp93fuGfkxkKwZDvhsa0Rwgtk,15
|
|
106
106
|
omdev/toml/parser.py,sha256=84bn09uhYHwQGyfww6Rw6y1RxPAE_HDltODOSakcqDM,29186
|
|
107
107
|
omdev/toml/writer.py,sha256=lk3on3YXVbWuLJa-xsOzOhs1bBAT1vXqw4mBbluZl_w,3040
|
|
@@ -109,13 +109,14 @@ omdev/tools/__init__.py,sha256=iVJAOQ0viGTQOm0DLX4uZLro-9jOioYJGLg9s0kDx1A,78
|
|
|
109
109
|
omdev/tools/dockertools.py,sha256=x00GV8j1KReMXwxJ641GlcsVwHoWeuzdIKVBp36BqwU,5298
|
|
110
110
|
omdev/tools/gittools.py,sha256=i2WFM2pX5riDJBchFXMmegOCuLSjvTkKC1ltqShSo7E,1773
|
|
111
111
|
omdev/tools/importscan.py,sha256=vxOMdAABShqt5-G3n6DGHopCZ5uGgciThY0MCa5W0mA,4066
|
|
112
|
+
omdev/tools/mkrelimp.py,sha256=fwt4GWzenuLNVtzdK2uaJJTSuJbUVJZquF5adwAwlPg,4051
|
|
112
113
|
omdev/tools/piptools.py,sha256=-jR5q3w4sHqntxCLExFCBNIARB788FUsAbJ62PK2sBU,2774
|
|
113
114
|
omdev/tools/proftools.py,sha256=xKSm_yPoCnfsvS3iT9MblDqFMuZmGfI3_koGj8amMyU,145
|
|
114
115
|
omdev/tools/rst.py,sha256=6dWk8QZHoGiLSuBw3TKsXZjjFK6wWBEtPi9krdCLKKg,977
|
|
115
116
|
omdev/tools/sqlrepl.py,sha256=tmFZh80-xsGM62dyQ7_UGLebChrj7IHbIPYBWDJMgVk,5741
|
|
116
|
-
omdev-0.0.0.
|
|
117
|
-
omdev-0.0.0.
|
|
118
|
-
omdev-0.0.0.
|
|
119
|
-
omdev-0.0.0.
|
|
120
|
-
omdev-0.0.0.
|
|
121
|
-
omdev-0.0.0.
|
|
117
|
+
omdev-0.0.0.dev51.dist-info/LICENSE,sha256=B_hVtavaA8zCYDW99DYdcpDLKz1n3BBRjZrcbv8uG8c,1451
|
|
118
|
+
omdev-0.0.0.dev51.dist-info/METADATA,sha256=bye62BhCshzoGHXvt3-Sq5KrSI2PusmaAym3CnvT0M8,1252
|
|
119
|
+
omdev-0.0.0.dev51.dist-info/WHEEL,sha256=GV9aMThwP_4oNCtvEC2ec3qUYutgWeAzklro_0m4WJQ,91
|
|
120
|
+
omdev-0.0.0.dev51.dist-info/entry_points.txt,sha256=dHLXFmq5D9B8qUyhRtFqTGWGxlbx3t5ejedjrnXNYLU,33
|
|
121
|
+
omdev-0.0.0.dev51.dist-info/top_level.txt,sha256=1nr7j30fEWgLYHW3lGR9pkdHkb7knv1U1ES1XRNVQ6k,6
|
|
122
|
+
omdev-0.0.0.dev51.dist-info/RECORD,,
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|