omdev 0.0.0.dev179__py3-none-any.whl → 0.0.0.dev180__py3-none-any.whl
Sign up to get free protection for your applications and to get access to all the features.
- omdev/.manifests.json +5 -5
- omdev/cli/clicli.py +6 -6
- omdev/imgur.py +1 -1
- omdev/interp/cli.py +3 -3
- omdev/magic/__main__.py +11 -0
- omdev/magic/cli.py +54 -0
- omdev/magic/find.py +0 -45
- omdev/pycharm/cli.py +3 -3
- omdev/pyproject/cli.py +3 -3
- omdev/scripts/interp.py +15 -15
- omdev/scripts/pyproject.py +15 -25
- omdev/tools/doc.py +2 -2
- omdev/tools/docker.py +8 -8
- omdev/tools/git.py +7 -7
- omdev/tools/notebook.py +1 -1
- omdev/tools/pip.py +4 -4
- omdev/tools/prof.py +1 -1
- omdev/tools/sqlrepl.py +1 -1
- {omdev-0.0.0.dev179.dist-info → omdev-0.0.0.dev180.dist-info}/METADATA +2 -2
- {omdev-0.0.0.dev179.dist-info → omdev-0.0.0.dev180.dist-info}/RECORD +24 -22
- {omdev-0.0.0.dev179.dist-info → omdev-0.0.0.dev180.dist-info}/LICENSE +0 -0
- {omdev-0.0.0.dev179.dist-info → omdev-0.0.0.dev180.dist-info}/WHEEL +0 -0
- {omdev-0.0.0.dev179.dist-info → omdev-0.0.0.dev180.dist-info}/entry_points.txt +0 -0
- {omdev-0.0.0.dev179.dist-info → omdev-0.0.0.dev180.dist-info}/top_level.txt +0 -0
omdev/.manifests.json
CHANGED
@@ -96,14 +96,14 @@
|
|
96
96
|
}
|
97
97
|
},
|
98
98
|
{
|
99
|
-
"module": ".magic.
|
99
|
+
"module": ".magic.__main__",
|
100
100
|
"attr": "_CLI_MODULE",
|
101
|
-
"file": "omdev/magic/
|
102
|
-
"line":
|
101
|
+
"file": "omdev/magic/__main__.py",
|
102
|
+
"line": 4,
|
103
103
|
"value": {
|
104
104
|
"$.cli.types.CliModule": {
|
105
|
-
"cmd_name": "
|
106
|
-
"mod_name": "omdev.magic.
|
105
|
+
"cmd_name": "magic",
|
106
|
+
"mod_name": "omdev.magic.__main__"
|
107
107
|
}
|
108
108
|
}
|
109
109
|
},
|
omdev/cli/clicli.py
CHANGED
@@ -21,15 +21,15 @@ class CliCli(ap.Cli):
|
|
21
21
|
|
22
22
|
#
|
23
23
|
|
24
|
-
@ap.
|
24
|
+
@ap.cmd(name='version', aliases=['ver'])
|
25
25
|
def print_version(self) -> None:
|
26
26
|
print(__about__.__version__)
|
27
27
|
|
28
|
-
@ap.
|
28
|
+
@ap.cmd(name='revision', aliases=['rev'])
|
29
29
|
def print_revision(self) -> None:
|
30
30
|
print(__about__.__revision__)
|
31
31
|
|
32
|
-
@ap.
|
32
|
+
@ap.cmd(name='home')
|
33
33
|
def print_home(self) -> None:
|
34
34
|
print(sys.prefix)
|
35
35
|
|
@@ -52,7 +52,7 @@ class CliCli(ap.Cli):
|
|
52
52
|
],
|
53
53
|
)
|
54
54
|
|
55
|
-
@ap.
|
55
|
+
@ap.cmd(
|
56
56
|
ap.arg('args', nargs=ap.REMAINDER),
|
57
57
|
name='python',
|
58
58
|
accepts_unknown=True,
|
@@ -60,7 +60,7 @@ class CliCli(ap.Cli):
|
|
60
60
|
def python_cmd(self) -> None:
|
61
61
|
self._passthrough_args_cmd(sys.executable)
|
62
62
|
|
63
|
-
@ap.
|
63
|
+
@ap.cmd(
|
64
64
|
ap.arg('args', nargs=ap.REMAINDER),
|
65
65
|
name='pip',
|
66
66
|
accepts_unknown=True,
|
@@ -70,7 +70,7 @@ class CliCli(ap.Cli):
|
|
70
70
|
|
71
71
|
#
|
72
72
|
|
73
|
-
@ap.
|
73
|
+
@ap.cmd(
|
74
74
|
ap.arg('--url', default=DEFAULT_REINSTALL_URL),
|
75
75
|
ap.arg('--local', action='store_true'),
|
76
76
|
ap.arg('extra_deps', nargs='*'),
|
omdev/imgur.py
CHANGED
omdev/interp/cli.py
CHANGED
@@ -12,7 +12,7 @@ import typing as ta
|
|
12
12
|
|
13
13
|
from omlish.argparse.cli import ArgparseCli
|
14
14
|
from omlish.argparse.cli import argparse_arg
|
15
|
-
from omlish.argparse.cli import
|
15
|
+
from omlish.argparse.cli import argparse_cmd
|
16
16
|
from omlish.lite.cached import cached_nullary
|
17
17
|
from omlish.lite.check import check
|
18
18
|
from omlish.lite.inject import Injector
|
@@ -37,7 +37,7 @@ class InterpCli(ArgparseCli):
|
|
37
37
|
|
38
38
|
#
|
39
39
|
|
40
|
-
@
|
40
|
+
@argparse_cmd(
|
41
41
|
argparse_arg('version'),
|
42
42
|
argparse_arg('-d', '--debug', action='store_true'),
|
43
43
|
)
|
@@ -46,7 +46,7 @@ class InterpCli(ArgparseCli):
|
|
46
46
|
s = InterpSpecifier.parse(self.args.version)
|
47
47
|
await r.list(s)
|
48
48
|
|
49
|
-
@
|
49
|
+
@argparse_cmd(
|
50
50
|
argparse_arg('version'),
|
51
51
|
argparse_arg('-p', '--provider'),
|
52
52
|
argparse_arg('-d', '--debug', action='store_true'),
|
omdev/magic/__main__.py
ADDED
omdev/magic/cli.py
ADDED
@@ -0,0 +1,54 @@
|
|
1
|
+
# ruff: noqa: UP006 UP007
|
2
|
+
import typing as ta
|
3
|
+
|
4
|
+
from omlish.argparse.cli import ArgparseCli
|
5
|
+
from omlish.argparse.cli import argparse_arg
|
6
|
+
from omlish.argparse.cli import argparse_cmd
|
7
|
+
|
8
|
+
from .find import find_magic_files
|
9
|
+
from .find import find_magic_py_modules
|
10
|
+
from .styles import C_MAGIC_STYLE
|
11
|
+
from .styles import PY_MAGIC_STYLE
|
12
|
+
|
13
|
+
|
14
|
+
##
|
15
|
+
|
16
|
+
|
17
|
+
class MagicCli(ArgparseCli):
|
18
|
+
@argparse_cmd(
|
19
|
+
argparse_arg('--style', '-s', default='py'),
|
20
|
+
argparse_arg('--key', '-k', dest='keys', action='append'),
|
21
|
+
argparse_arg('--modules', action='store_true'),
|
22
|
+
argparse_arg('roots', nargs='*'),
|
23
|
+
)
|
24
|
+
def find(self) -> None:
|
25
|
+
style = {
|
26
|
+
'py': PY_MAGIC_STYLE,
|
27
|
+
'c': C_MAGIC_STYLE,
|
28
|
+
}[self.args.style]
|
29
|
+
|
30
|
+
kw: dict = dict(
|
31
|
+
roots=self.args.roots,
|
32
|
+
style=style,
|
33
|
+
keys=self.args.keys,
|
34
|
+
)
|
35
|
+
|
36
|
+
fn: ta.Callable
|
37
|
+
if self.args.modules:
|
38
|
+
fn = find_magic_py_modules
|
39
|
+
else:
|
40
|
+
fn = find_magic_files
|
41
|
+
|
42
|
+
for out in fn(**kw):
|
43
|
+
print(out)
|
44
|
+
|
45
|
+
|
46
|
+
##
|
47
|
+
|
48
|
+
|
49
|
+
def _main(argv=None) -> None:
|
50
|
+
MagicCli(argv).cli_run_and_exit()
|
51
|
+
|
52
|
+
|
53
|
+
if __name__ == '__main__':
|
54
|
+
_main()
|
omdev/magic/find.py
CHANGED
@@ -7,7 +7,6 @@ import typing as ta
|
|
7
7
|
from .magic import Magic
|
8
8
|
from .prepare import MagicPrepareError
|
9
9
|
from .prepare import py_compile_magic_preparer
|
10
|
-
from .styles import C_MAGIC_STYLE
|
11
10
|
from .styles import PY_MAGIC_STYLE
|
12
11
|
from .styles import MagicStyle
|
13
12
|
|
@@ -222,47 +221,3 @@ def find_magic_py_modules(
|
|
222
221
|
yield fp[:-3].replace(os.sep, '.')
|
223
222
|
else:
|
224
223
|
yield fp
|
225
|
-
|
226
|
-
|
227
|
-
##
|
228
|
-
|
229
|
-
|
230
|
-
# @omlish-manifest
|
231
|
-
_CLI_MODULE = {'$omdev.cli.types.CliModule': {
|
232
|
-
'cmd_name': 'py/findmagic',
|
233
|
-
'mod_name': __name__,
|
234
|
-
}}
|
235
|
-
|
236
|
-
|
237
|
-
if __name__ == '__main__':
|
238
|
-
def _main(argv=None) -> None:
|
239
|
-
import argparse
|
240
|
-
|
241
|
-
arg_parser = argparse.ArgumentParser()
|
242
|
-
arg_parser.add_argument('--style', '-s', default='py')
|
243
|
-
arg_parser.add_argument('--key', '-k', dest='keys', action='append')
|
244
|
-
arg_parser.add_argument('--modules', action='store_true')
|
245
|
-
arg_parser.add_argument('roots', nargs='*')
|
246
|
-
args = arg_parser.parse_args(argv)
|
247
|
-
|
248
|
-
style = {
|
249
|
-
'py': PY_MAGIC_STYLE,
|
250
|
-
'c': C_MAGIC_STYLE,
|
251
|
-
}[args.style]
|
252
|
-
|
253
|
-
kw: dict = dict(
|
254
|
-
roots=args.roots,
|
255
|
-
style=style,
|
256
|
-
keys=args.keys,
|
257
|
-
)
|
258
|
-
|
259
|
-
fn: ta.Callable
|
260
|
-
if args.modules:
|
261
|
-
fn = find_magic_py_modules
|
262
|
-
else:
|
263
|
-
fn = find_magic_files
|
264
|
-
|
265
|
-
for out in fn(**kw):
|
266
|
-
print(out)
|
267
|
-
|
268
|
-
_main()
|
omdev/pycharm/cli.py
CHANGED
@@ -77,11 +77,11 @@ def parse_wmctrl_lxp_line(l: str) -> WmctrlLine:
|
|
77
77
|
|
78
78
|
|
79
79
|
class Cli(ap.Cli):
|
80
|
-
@ap.
|
80
|
+
@ap.cmd()
|
81
81
|
def version(self) -> None:
|
82
82
|
print(get_pycharm_version())
|
83
83
|
|
84
|
-
@ap.
|
84
|
+
@ap.cmd(
|
85
85
|
ap.arg('python-exe'),
|
86
86
|
ap.arg('args', nargs=ap.REMAINDER),
|
87
87
|
)
|
@@ -99,7 +99,7 @@ class Cli(ap.Cli):
|
|
99
99
|
proc = subprocess.run([exe, src_file, *self.args.args], check=False)
|
100
100
|
return proc.returncode
|
101
101
|
|
102
|
-
@ap.
|
102
|
+
@ap.cmd(
|
103
103
|
ap.arg('dir', nargs='?'),
|
104
104
|
ap.arg('--clion', action='store_true'),
|
105
105
|
)
|
omdev/pyproject/cli.py
CHANGED
@@ -35,7 +35,7 @@ import typing as ta
|
|
35
35
|
|
36
36
|
from omlish.argparse.cli import ArgparseCli
|
37
37
|
from omlish.argparse.cli import argparse_arg
|
38
|
-
from omlish.argparse.cli import
|
38
|
+
from omlish.argparse.cli import argparse_cmd
|
39
39
|
from omlish.asyncs.asyncio.subprocesses import asyncio_subprocesses
|
40
40
|
from omlish.lite.cached import cached_nullary
|
41
41
|
from omlish.lite.check import check
|
@@ -141,7 +141,7 @@ class Run:
|
|
141
141
|
class PyprojectCli(ArgparseCli):
|
142
142
|
_docker_container = argparse_arg('--_docker_container', help=argparse.SUPPRESS)
|
143
143
|
|
144
|
-
@
|
144
|
+
@argparse_cmd(
|
145
145
|
argparse_arg('name'),
|
146
146
|
argparse_arg('-e', '--docker-env', action='append'),
|
147
147
|
argparse_arg('cmd', nargs='?'),
|
@@ -223,7 +223,7 @@ class PyprojectCli(ArgparseCli):
|
|
223
223
|
else:
|
224
224
|
raise Exception(f'unknown subcommand: {cmd}')
|
225
225
|
|
226
|
-
@
|
226
|
+
@argparse_cmd(
|
227
227
|
argparse_arg('-b', '--build', action='store_true'),
|
228
228
|
argparse_arg('-r', '--revision', action='store_true'),
|
229
229
|
argparse_arg('-j', '--jobs', type=int),
|
omdev/scripts/interp.py
CHANGED
@@ -78,7 +78,7 @@ UnparsedVersionVar = ta.TypeVar('UnparsedVersionVar', bound=UnparsedVersion)
|
|
78
78
|
CallableVersionOperator = ta.Callable[['Version', str], bool]
|
79
79
|
|
80
80
|
# ../../omlish/argparse/cli.py
|
81
|
-
|
81
|
+
ArgparseCmdFn = ta.Callable[[], ta.Optional[int]] # ta.TypeAlias
|
82
82
|
|
83
83
|
# ../../omlish/lite/inject.py
|
84
84
|
U = ta.TypeVar('U')
|
@@ -1953,15 +1953,15 @@ def argparse_arg(*args, **kwargs) -> ArgparseArg:
|
|
1953
1953
|
|
1954
1954
|
|
1955
1955
|
@dc.dataclass(eq=False)
|
1956
|
-
class
|
1956
|
+
class ArgparseCmd:
|
1957
1957
|
name: str
|
1958
|
-
fn:
|
1958
|
+
fn: ArgparseCmdFn
|
1959
1959
|
args: ta.Sequence[ArgparseArg] = () # noqa
|
1960
1960
|
|
1961
1961
|
# _: dc.KW_ONLY
|
1962
1962
|
|
1963
1963
|
aliases: ta.Optional[ta.Sequence[str]] = None
|
1964
|
-
parent: ta.Optional['
|
1964
|
+
parent: ta.Optional['ArgparseCmd'] = None
|
1965
1965
|
accepts_unknown: bool = False
|
1966
1966
|
|
1967
1967
|
def __post_init__(self) -> None:
|
@@ -1976,7 +1976,7 @@ class ArgparseCommand:
|
|
1976
1976
|
|
1977
1977
|
check.arg(callable(self.fn))
|
1978
1978
|
check.arg(all(isinstance(a, ArgparseArg) for a in self.args))
|
1979
|
-
check.isinstance(self.parent, (
|
1979
|
+
check.isinstance(self.parent, (ArgparseCmd, type(None)))
|
1980
1980
|
check.isinstance(self.accepts_unknown, bool)
|
1981
1981
|
|
1982
1982
|
functools.update_wrapper(self, self.fn)
|
@@ -1990,21 +1990,21 @@ class ArgparseCommand:
|
|
1990
1990
|
return self.fn(*args, **kwargs)
|
1991
1991
|
|
1992
1992
|
|
1993
|
-
def
|
1993
|
+
def argparse_cmd(
|
1994
1994
|
*args: ArgparseArg,
|
1995
1995
|
name: ta.Optional[str] = None,
|
1996
1996
|
aliases: ta.Optional[ta.Iterable[str]] = None,
|
1997
|
-
parent: ta.Optional[
|
1997
|
+
parent: ta.Optional[ArgparseCmd] = None,
|
1998
1998
|
accepts_unknown: bool = False,
|
1999
|
-
) -> ta.Any: # ta.Callable[[
|
1999
|
+
) -> ta.Any: # ta.Callable[[ArgparseCmdFn], ArgparseCmd]: # FIXME
|
2000
2000
|
for arg in args:
|
2001
2001
|
check.isinstance(arg, ArgparseArg)
|
2002
2002
|
check.isinstance(name, (str, type(None)))
|
2003
|
-
check.isinstance(parent, (
|
2003
|
+
check.isinstance(parent, (ArgparseCmd, type(None)))
|
2004
2004
|
check.not_isinstance(aliases, str)
|
2005
2005
|
|
2006
2006
|
def inner(fn):
|
2007
|
-
return
|
2007
|
+
return ArgparseCmd(
|
2008
2008
|
(name if name is not None else fn.__name__).replace('_', '-'),
|
2009
2009
|
fn,
|
2010
2010
|
args,
|
@@ -2059,7 +2059,7 @@ class ArgparseCli:
|
|
2059
2059
|
for bns in [bcls.__dict__ for bcls in reversed(mro)] + [ns]:
|
2060
2060
|
bseen = set() # type: ignore
|
2061
2061
|
for k, v in bns.items():
|
2062
|
-
if isinstance(v, (
|
2062
|
+
if isinstance(v, (ArgparseCmd, ArgparseArg)):
|
2063
2063
|
check.not_in(v, bseen)
|
2064
2064
|
bseen.add(v)
|
2065
2065
|
objs[k] = v
|
@@ -2086,7 +2086,7 @@ class ArgparseCli:
|
|
2086
2086
|
subparsers = parser.add_subparsers()
|
2087
2087
|
|
2088
2088
|
for att, obj in objs.items():
|
2089
|
-
if isinstance(obj,
|
2089
|
+
if isinstance(obj, ArgparseCmd):
|
2090
2090
|
if obj.parent is not None:
|
2091
2091
|
raise NotImplementedError
|
2092
2092
|
|
@@ -2148,7 +2148,7 @@ class ArgparseCli:
|
|
2148
2148
|
|
2149
2149
|
#
|
2150
2150
|
|
2151
|
-
def _bind_cli_cmd(self, cmd:
|
2151
|
+
def _bind_cli_cmd(self, cmd: ArgparseCmd) -> ta.Callable:
|
2152
2152
|
return cmd.__get__(self, type(self))
|
2153
2153
|
|
2154
2154
|
def prepare_cli_run(self) -> ta.Optional[ta.Callable]:
|
@@ -5034,7 +5034,7 @@ class InterpCli(ArgparseCli):
|
|
5034
5034
|
|
5035
5035
|
#
|
5036
5036
|
|
5037
|
-
@
|
5037
|
+
@argparse_cmd(
|
5038
5038
|
argparse_arg('version'),
|
5039
5039
|
argparse_arg('-d', '--debug', action='store_true'),
|
5040
5040
|
)
|
@@ -5043,7 +5043,7 @@ class InterpCli(ArgparseCli):
|
|
5043
5043
|
s = InterpSpecifier.parse(self.args.version)
|
5044
5044
|
await r.list(s)
|
5045
5045
|
|
5046
|
-
@
|
5046
|
+
@argparse_cmd(
|
5047
5047
|
argparse_arg('version'),
|
5048
5048
|
argparse_arg('-p', '--provider'),
|
5049
5049
|
argparse_arg('-d', '--debug', action='store_true'),
|
omdev/scripts/pyproject.py
CHANGED
@@ -114,7 +114,7 @@ UnparsedVersionVar = ta.TypeVar('UnparsedVersionVar', bound=UnparsedVersion)
|
|
114
114
|
CallableVersionOperator = ta.Callable[['Version', str], bool]
|
115
115
|
|
116
116
|
# ../../omlish/argparse/cli.py
|
117
|
-
|
117
|
+
ArgparseCmdFn = ta.Callable[[], ta.Optional[int]] # ta.TypeAlias
|
118
118
|
|
119
119
|
# ../../omlish/lite/inject.py
|
120
120
|
U = ta.TypeVar('U')
|
@@ -2910,16 +2910,6 @@ def find_magic_py_modules(
|
|
2910
2910
|
yield fp
|
2911
2911
|
|
2912
2912
|
|
2913
|
-
##
|
2914
|
-
|
2915
|
-
|
2916
|
-
# # @omlish-manifest
|
2917
|
-
# _CLI_MODULE = {'$omdev.cli.types.CliModule': {
|
2918
|
-
# 'cmd_name': 'py/findmagic',
|
2919
|
-
# 'mod_name': __name__,
|
2920
|
-
# }}
|
2921
|
-
|
2922
|
-
|
2923
2913
|
########################################
|
2924
2914
|
# ../../packaging/specifiers.py
|
2925
2915
|
# Copyright (c) Donald Stufft and individual contributors.
|
@@ -3553,15 +3543,15 @@ def argparse_arg(*args, **kwargs) -> ArgparseArg:
|
|
3553
3543
|
|
3554
3544
|
|
3555
3545
|
@dc.dataclass(eq=False)
|
3556
|
-
class
|
3546
|
+
class ArgparseCmd:
|
3557
3547
|
name: str
|
3558
|
-
fn:
|
3548
|
+
fn: ArgparseCmdFn
|
3559
3549
|
args: ta.Sequence[ArgparseArg] = () # noqa
|
3560
3550
|
|
3561
3551
|
# _: dc.KW_ONLY
|
3562
3552
|
|
3563
3553
|
aliases: ta.Optional[ta.Sequence[str]] = None
|
3564
|
-
parent: ta.Optional['
|
3554
|
+
parent: ta.Optional['ArgparseCmd'] = None
|
3565
3555
|
accepts_unknown: bool = False
|
3566
3556
|
|
3567
3557
|
def __post_init__(self) -> None:
|
@@ -3576,7 +3566,7 @@ class ArgparseCommand:
|
|
3576
3566
|
|
3577
3567
|
check.arg(callable(self.fn))
|
3578
3568
|
check.arg(all(isinstance(a, ArgparseArg) for a in self.args))
|
3579
|
-
check.isinstance(self.parent, (
|
3569
|
+
check.isinstance(self.parent, (ArgparseCmd, type(None)))
|
3580
3570
|
check.isinstance(self.accepts_unknown, bool)
|
3581
3571
|
|
3582
3572
|
functools.update_wrapper(self, self.fn)
|
@@ -3590,21 +3580,21 @@ class ArgparseCommand:
|
|
3590
3580
|
return self.fn(*args, **kwargs)
|
3591
3581
|
|
3592
3582
|
|
3593
|
-
def
|
3583
|
+
def argparse_cmd(
|
3594
3584
|
*args: ArgparseArg,
|
3595
3585
|
name: ta.Optional[str] = None,
|
3596
3586
|
aliases: ta.Optional[ta.Iterable[str]] = None,
|
3597
|
-
parent: ta.Optional[
|
3587
|
+
parent: ta.Optional[ArgparseCmd] = None,
|
3598
3588
|
accepts_unknown: bool = False,
|
3599
|
-
) -> ta.Any: # ta.Callable[[
|
3589
|
+
) -> ta.Any: # ta.Callable[[ArgparseCmdFn], ArgparseCmd]: # FIXME
|
3600
3590
|
for arg in args:
|
3601
3591
|
check.isinstance(arg, ArgparseArg)
|
3602
3592
|
check.isinstance(name, (str, type(None)))
|
3603
|
-
check.isinstance(parent, (
|
3593
|
+
check.isinstance(parent, (ArgparseCmd, type(None)))
|
3604
3594
|
check.not_isinstance(aliases, str)
|
3605
3595
|
|
3606
3596
|
def inner(fn):
|
3607
|
-
return
|
3597
|
+
return ArgparseCmd(
|
3608
3598
|
(name if name is not None else fn.__name__).replace('_', '-'),
|
3609
3599
|
fn,
|
3610
3600
|
args,
|
@@ -3659,7 +3649,7 @@ class ArgparseCli:
|
|
3659
3649
|
for bns in [bcls.__dict__ for bcls in reversed(mro)] + [ns]:
|
3660
3650
|
bseen = set() # type: ignore
|
3661
3651
|
for k, v in bns.items():
|
3662
|
-
if isinstance(v, (
|
3652
|
+
if isinstance(v, (ArgparseCmd, ArgparseArg)):
|
3663
3653
|
check.not_in(v, bseen)
|
3664
3654
|
bseen.add(v)
|
3665
3655
|
objs[k] = v
|
@@ -3686,7 +3676,7 @@ class ArgparseCli:
|
|
3686
3676
|
subparsers = parser.add_subparsers()
|
3687
3677
|
|
3688
3678
|
for att, obj in objs.items():
|
3689
|
-
if isinstance(obj,
|
3679
|
+
if isinstance(obj, ArgparseCmd):
|
3690
3680
|
if obj.parent is not None:
|
3691
3681
|
raise NotImplementedError
|
3692
3682
|
|
@@ -3748,7 +3738,7 @@ class ArgparseCli:
|
|
3748
3738
|
|
3749
3739
|
#
|
3750
3740
|
|
3751
|
-
def _bind_cli_cmd(self, cmd:
|
3741
|
+
def _bind_cli_cmd(self, cmd: ArgparseCmd) -> ta.Callable:
|
3752
3742
|
return cmd.__get__(self, type(self))
|
3753
3743
|
|
3754
3744
|
def prepare_cli_run(self) -> ta.Optional[ta.Callable]:
|
@@ -8152,7 +8142,7 @@ class Run:
|
|
8152
8142
|
class PyprojectCli(ArgparseCli):
|
8153
8143
|
_docker_container = argparse_arg('--_docker_container', help=argparse.SUPPRESS)
|
8154
8144
|
|
8155
|
-
@
|
8145
|
+
@argparse_cmd(
|
8156
8146
|
argparse_arg('name'),
|
8157
8147
|
argparse_arg('-e', '--docker-env', action='append'),
|
8158
8148
|
argparse_arg('cmd', nargs='?'),
|
@@ -8234,7 +8224,7 @@ class PyprojectCli(ArgparseCli):
|
|
8234
8224
|
else:
|
8235
8225
|
raise Exception(f'unknown subcommand: {cmd}')
|
8236
8226
|
|
8237
|
-
@
|
8227
|
+
@argparse_cmd(
|
8238
8228
|
argparse_arg('-b', '--build', action='store_true'),
|
8239
8229
|
argparse_arg('-r', '--revision', action='store_true'),
|
8240
8230
|
argparse_arg('-j', '--jobs', type=int),
|
omdev/tools/doc.py
CHANGED
@@ -64,7 +64,7 @@ class Cli(ap.Cli):
|
|
64
64
|
|
65
65
|
return src, name
|
66
66
|
|
67
|
-
@ap.
|
67
|
+
@ap.cmd(
|
68
68
|
ap.arg('input-file', nargs='?'),
|
69
69
|
ap.arg('--report-level', type=int),
|
70
70
|
ap.arg('-O', '--open', action='store_true'),
|
@@ -85,7 +85,7 @@ class Cli(ap.Cli):
|
|
85
85
|
else:
|
86
86
|
print(html)
|
87
87
|
|
88
|
-
@ap.
|
88
|
+
@ap.cmd(
|
89
89
|
ap.arg('input-file', nargs='?'),
|
90
90
|
ap.arg('-O', '--open', action='store_true'),
|
91
91
|
)
|
omdev/tools/docker.py
CHANGED
@@ -37,7 +37,7 @@ def get_local_platform() -> str:
|
|
37
37
|
|
38
38
|
|
39
39
|
class Cli(ap.Cli):
|
40
|
-
@ap.
|
40
|
+
@ap.cmd(
|
41
41
|
ap.arg('args', nargs='*'),
|
42
42
|
)
|
43
43
|
def ns1(self) -> None:
|
@@ -69,7 +69,7 @@ class Cli(ap.Cli):
|
|
69
69
|
*self.args.args,
|
70
70
|
)
|
71
71
|
|
72
|
-
@ap.
|
72
|
+
@ap.cmd(
|
73
73
|
ap.arg('--amd64', action='store_true'),
|
74
74
|
)
|
75
75
|
def enable_ptrace(self) -> None:
|
@@ -87,7 +87,7 @@ class Cli(ap.Cli):
|
|
87
87
|
'sh', '-c', 'echo 0 > /proc/sys/kernel/yama/ptrace_scope',
|
88
88
|
)
|
89
89
|
|
90
|
-
@ap.
|
90
|
+
@ap.cmd(
|
91
91
|
ap.arg('-f', '--file'),
|
92
92
|
ap.arg('-w', '--write', action='store_true'),
|
93
93
|
ap.arg('-q', '--quiet', action='store_true'),
|
@@ -182,7 +182,7 @@ class Cli(ap.Cli):
|
|
182
182
|
with open(yml_file, 'w') as f:
|
183
183
|
f.write(new_src)
|
184
184
|
|
185
|
-
@ap.
|
185
|
+
@ap.cmd(
|
186
186
|
ap.arg('repo'),
|
187
187
|
ap.arg('tags', nargs='*'),
|
188
188
|
)
|
@@ -192,7 +192,7 @@ class Cli(ap.Cli):
|
|
192
192
|
print(json.dumps_pretty(msh.marshal(info)))
|
193
193
|
return 0
|
194
194
|
|
195
|
-
@ap.
|
195
|
+
@ap.cmd(
|
196
196
|
ap.arg('image'),
|
197
197
|
)
|
198
198
|
def repo_latest_image(self) -> int:
|
@@ -205,7 +205,7 @@ class Cli(ap.Cli):
|
|
205
205
|
print(dck.select_latest_tag(info.tags, base=base))
|
206
206
|
return 0
|
207
207
|
|
208
|
-
@ap.
|
208
|
+
@ap.cmd(
|
209
209
|
ap.arg('-f', '--file'),
|
210
210
|
)
|
211
211
|
def compose_image_updates(self) -> None:
|
@@ -234,7 +234,7 @@ class Cli(ap.Cli):
|
|
234
234
|
|
235
235
|
#
|
236
236
|
|
237
|
-
@ap.
|
237
|
+
@ap.cmd()
|
238
238
|
def dockly(self) -> None:
|
239
239
|
os.execl(
|
240
240
|
exe := docker_exe(),
|
@@ -244,7 +244,7 @@ class Cli(ap.Cli):
|
|
244
244
|
'lirantal/dockly',
|
245
245
|
)
|
246
246
|
|
247
|
-
@ap.
|
247
|
+
@ap.cmd()
|
248
248
|
def lazy(self) -> None:
|
249
249
|
os.execl(
|
250
250
|
exe := docker_exe(),
|
omdev/tools/git.py
CHANGED
@@ -43,7 +43,7 @@ def get_first_commit_of_day(rev: str) -> str | None:
|
|
43
43
|
|
44
44
|
|
45
45
|
class Cli(ap.Cli):
|
46
|
-
@ap.
|
46
|
+
@ap.cmd()
|
47
47
|
def blob_sizes(self) -> None:
|
48
48
|
# https://stackoverflow.com/a/42544963
|
49
49
|
subprocess.check_call( # noqa
|
@@ -56,7 +56,7 @@ class Cli(ap.Cli):
|
|
56
56
|
|
57
57
|
#
|
58
58
|
|
59
|
-
@ap.
|
59
|
+
@ap.cmd()
|
60
60
|
def commits_by_date(self) -> None:
|
61
61
|
subprocess.check_call(['git log --date=short --pretty=format:%ad | sort | uniq -c'], shell=True) # noqa
|
62
62
|
|
@@ -64,7 +64,7 @@ class Cli(ap.Cli):
|
|
64
64
|
|
65
65
|
_GITHUB_PAT = re.compile(r'((http(s)?://)?(www\./)?github(\.com)?/)?(?P<user>[^/.]+)/(?P<repo>[^/.]+)(/.*)?')
|
66
66
|
|
67
|
-
@ap.
|
67
|
+
@ap.cmd(
|
68
68
|
ap.arg('repo'),
|
69
69
|
ap.arg('args', nargs=ap.REMAINDER),
|
70
70
|
accepts_unknown=True,
|
@@ -107,7 +107,7 @@ class Cli(ap.Cli):
|
|
107
107
|
finally:
|
108
108
|
print(out_dir)
|
109
109
|
|
110
|
-
@ap.
|
110
|
+
@ap.cmd(
|
111
111
|
ap.arg('rev', nargs='?', default='HEAD'),
|
112
112
|
ap.arg('-d', '--diff', action='store_true'),
|
113
113
|
ap.arg('-s', '--stat', action='store_true'),
|
@@ -147,7 +147,7 @@ class Cli(ap.Cli):
|
|
147
147
|
else:
|
148
148
|
print(base_rev)
|
149
149
|
|
150
|
-
@ap.
|
150
|
+
@ap.cmd(
|
151
151
|
ap.arg('-v', '--verbose', action='store_true'),
|
152
152
|
)
|
153
153
|
def status(self) -> None:
|
@@ -184,7 +184,7 @@ class Cli(ap.Cli):
|
|
184
184
|
|
185
185
|
# Lazy helpers
|
186
186
|
|
187
|
-
@ap.
|
187
|
+
@ap.cmd(
|
188
188
|
ap.arg('-m', '--message', nargs='?'),
|
189
189
|
ap.arg('--time-fmt', default='%Y-%m-%dT%H:%M:%SZ'),
|
190
190
|
aliases=['acp'],
|
@@ -204,7 +204,7 @@ class Cli(ap.Cli):
|
|
204
204
|
|
205
205
|
subprocess.check_call(['git', 'push'])
|
206
206
|
|
207
|
-
@ap.
|
207
|
+
@ap.cmd(
|
208
208
|
aliases=['psu'],
|
209
209
|
)
|
210
210
|
def pull_submodule_update(self) -> None:
|
omdev/tools/notebook.py
CHANGED
omdev/tools/pip.py
CHANGED
@@ -20,20 +20,20 @@ from ..pip import lookup_latest_package_version
|
|
20
20
|
|
21
21
|
|
22
22
|
class Cli(ap.Cli):
|
23
|
-
@ap.
|
23
|
+
@ap.cmd(
|
24
24
|
ap.arg('package'),
|
25
25
|
)
|
26
26
|
def lookup_latest_version(self) -> None:
|
27
27
|
print(lookup_latest_package_version(self.args.package))
|
28
28
|
|
29
|
-
@ap.
|
29
|
+
@ap.cmd(
|
30
30
|
ap.arg('path', nargs='*'),
|
31
31
|
)
|
32
32
|
def list_root_dists(self) -> None:
|
33
33
|
for d in get_root_dists(paths=self.args.path):
|
34
34
|
print(d)
|
35
35
|
|
36
|
-
@ap.
|
36
|
+
@ap.cmd(
|
37
37
|
ap.arg('file'),
|
38
38
|
ap.arg('-w', '--write', action='store_true'),
|
39
39
|
ap.arg('-q', '--quiet', action='store_true'),
|
@@ -57,7 +57,7 @@ class Cli(ap.Cli):
|
|
57
57
|
with open(self.args.file, 'w') as f:
|
58
58
|
f.write(new_src)
|
59
59
|
|
60
|
-
@ap.
|
60
|
+
@ap.cmd(
|
61
61
|
ap.arg('files', nargs='*'),
|
62
62
|
ap.arg('-r', '--follow-requirements', action='store_true'),
|
63
63
|
ap.arg('-j', '--json', action='store_true'),
|
omdev/tools/prof.py
CHANGED
omdev/tools/sqlrepl.py
CHANGED
@@ -1,6 +1,6 @@
|
|
1
1
|
Metadata-Version: 2.1
|
2
2
|
Name: omdev
|
3
|
-
Version: 0.0.0.
|
3
|
+
Version: 0.0.0.dev180
|
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.dev180
|
16
16
|
Provides-Extra: all
|
17
17
|
Requires-Dist: black~=24.10; extra == "all"
|
18
18
|
Requires-Dist: pycparser~=2.22; extra == "all"
|
@@ -1,11 +1,11 @@
|
|
1
|
-
omdev/.manifests.json,sha256=
|
1
|
+
omdev/.manifests.json,sha256=nfFGet5cWIICf5szYBXbQvnH2TrJD-jtyBxuwKeA7ZY,8309
|
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
|
5
5
|
omdev/classdot.py,sha256=YOvgy6x295I_8NKBbBlRVd3AN7Osirm_Lqt4Wj0j9rY,1631
|
6
6
|
omdev/cmake.py,sha256=Diy2ry65806dQP125DAstD3w46z_wszMH7PwC2-6iik,4578
|
7
7
|
omdev/findimports.py,sha256=2t8QP852saEEJFeXySEzhi_nxRSxghlkXz2jVdvy08M,2392
|
8
|
-
omdev/imgur.py,sha256=
|
8
|
+
omdev/imgur.py,sha256=PNRrA440WP10DGm2bpXhisZdA4ODYCpOj1HqEzNx0Fs,2992
|
9
9
|
omdev/pip.py,sha256=7cZ_IOpekQvgPm_gKnX3Pr8xjqUid50PPScTlZCYVlM,2118
|
10
10
|
omdev/revisions.py,sha256=7Bgwd7cuKtcXJE4eDXmWP4Qx1aqZqf_LNFkOCuYS9I0,5008
|
11
11
|
omdev/secrets.py,sha256=bcquaBIDKqX4UIKOzUuKrX7nxVCenj67rRHIMIrd9bk,540
|
@@ -67,7 +67,7 @@ omdev/cexts/_distutils/compilers/unixccompiler.py,sha256=o1h8QuyupLntv4F21_XjzAZ
|
|
67
67
|
omdev/cli/__init__.py,sha256=V_l6VP1SZMlJbO-8CJwSuO9TThOy2S_oaPepNYgIrbE,37
|
68
68
|
omdev/cli/__main__.py,sha256=mOJpgc07o0r5luQ1DlX4tk2PqZkgmbwPbdzJ3KmtjgQ,138
|
69
69
|
omdev/cli/_pathhack.py,sha256=kxqb2kHap68Lkh8b211rDbcgj06hidBiAKA3f9posyc,2119
|
70
|
-
omdev/cli/clicli.py,sha256=
|
70
|
+
omdev/cli/clicli.py,sha256=RiB-0Wis3L3Y0xet9Imm6V1tN87d9FN2rQhcdeXA9bg,3484
|
71
71
|
omdev/cli/install.py,sha256=C-W171YlIHt4Cfok-nWSMbHwWhqF_PFqq2HixFttYx8,4460
|
72
72
|
omdev/cli/main.py,sha256=OY7ir2WWuDUM1Urmh-WdEv7uEhidRRGnE4FNYHaEN3s,7033
|
73
73
|
omdev/cli/managers.py,sha256=BV98_n30Jj63OJrFgRoVZRfICxMLXEZKoEn4rMj9LV4,1160
|
@@ -82,7 +82,7 @@ omdev/git/status.py,sha256=s_5kzyaSO-ikimdi54A6DrjOQPMeM5SRXLTrb22Alp4,8106
|
|
82
82
|
omdev/git/subtrees.py,sha256=XFxE74PBqu_E5arpkCRRgsus5nof0TBfd2nmgh4cczA,2398
|
83
83
|
omdev/interp/__init__.py,sha256=Y3l4WY4JRi2uLG6kgbGp93fuGfkxkKwZDvhsa0Rwgtk,15
|
84
84
|
omdev/interp/__main__.py,sha256=GMCqeGYltgt5dlJzHxY9gqisa8cRkrPfmZYuZnjg4WI,162
|
85
|
-
omdev/interp/cli.py,sha256=
|
85
|
+
omdev/interp/cli.py,sha256=_oaG5fN-UE2sQUNeCi4b9m5UF_lPEJ2S9nO_no1cvXI,2394
|
86
86
|
omdev/interp/default.py,sha256=FTFQVvA8Lipe8k5eFbf-mLIbrcmfuEXka4ifPyQP8CA,285
|
87
87
|
omdev/interp/inject.py,sha256=BE3VjFxU0gJ7KwSdKaNIlgXD7EAr-nidlJqSLwhGeNk,1479
|
88
88
|
omdev/interp/inspect.py,sha256=ufYKUsGc_C1hwWDKqsfu1Cm7Hks7lAc5l8gt1MUKNDQ,2849
|
@@ -101,7 +101,9 @@ omdev/interp/uv/__init__.py,sha256=47DEQpj8HBSa-_TImW-5JCeuQeRkm5NMpJWZG3hSuFU,0
|
|
101
101
|
omdev/interp/uv/inject.py,sha256=3nHYu8qQMbV5iXdp-ItzNtfYE0zkIxrzmt7QdV7WiXU,314
|
102
102
|
omdev/interp/uv/uv.py,sha256=oP4V6WJ0aYLIzFwkIvKMPLD_5HxppTuhd8fvtz6UoXs,671
|
103
103
|
omdev/magic/__init__.py,sha256=CBzRB71RLyylkrj8dph6JUEddA8KSMJvDgriHqFfJGU,478
|
104
|
-
omdev/magic/
|
104
|
+
omdev/magic/__main__.py,sha256=1_BAKDtA6Rn5hswyl4S5J78BPRbynX4is_wQsD0U7jI,161
|
105
|
+
omdev/magic/cli.py,sha256=puL5Snnc-i9Dpa3AU8DtaCp5qUd_7RXwv-qWU_B2fa8,1184
|
106
|
+
omdev/magic/find.py,sha256=lnVWO4Ux0BkatBihVloZ7XrsOJ4Tsc-YRhGd4ENL3Ro,6037
|
105
107
|
omdev/magic/magic.py,sha256=h1nxoW6CV1MRCiHjDt3sO4kmG0qTtTRbkDNiPLGo2BE,224
|
106
108
|
omdev/magic/prepare.py,sha256=V5jYT2AeFmazzPwk9sNismSouLwFXEoik6FwKcWCNUY,589
|
107
109
|
omdev/magic/styles.py,sha256=YQ-HgwfvFWPj-o_705E7A-yehEn1G1hRNLPWpeWCK0U,605
|
@@ -130,11 +132,11 @@ omdev/ptk/apps/__init__.py,sha256=47DEQpj8HBSa-_TImW-5JCeuQeRkm5NMpJWZG3hSuFU,0
|
|
130
132
|
omdev/ptk/apps/ncdu.py,sha256=dOkEJoc2Wjv1u_Uge7Vpei_LvXldoPP5833Eia355tc,4548
|
131
133
|
omdev/pycharm/__init__.py,sha256=47DEQpj8HBSa-_TImW-5JCeuQeRkm5NMpJWZG3hSuFU,0
|
132
134
|
omdev/pycharm/__main__.py,sha256=hUPp11D024eMdT86BxXiRVtF7AGBk5W6Zn8_mEHSksY,163
|
133
|
-
omdev/pycharm/cli.py,sha256=
|
135
|
+
omdev/pycharm/cli.py,sha256=a7qnTeN0g0FwMqSy2b49DLoTO0yC662tSr4qKuvclGs,3785
|
134
136
|
omdev/pyproject/__init__.py,sha256=Y3l4WY4JRi2uLG6kgbGp93fuGfkxkKwZDvhsa0Rwgtk,15
|
135
137
|
omdev/pyproject/__main__.py,sha256=gn3Rl1aYPYdiTtEqa9ifi0t-e4ZwPY0vhJ4UXvYdJDY,165
|
136
138
|
omdev/pyproject/cexts.py,sha256=x13piOOnNrYbA17qZLDVuR0p1sqhgEwpk4FtImX-klM,4281
|
137
|
-
omdev/pyproject/cli.py,sha256=
|
139
|
+
omdev/pyproject/cli.py,sha256=ViNZUqFXcm8lIDCeNI6uy4OuHuo9aEV0S_jKoyanuf4,8753
|
138
140
|
omdev/pyproject/configs.py,sha256=K9H5cGwVLgHi8wKwtYvlXHZ9ThtmnI4jo8JAb-t1-70,2859
|
139
141
|
omdev/pyproject/pkg.py,sha256=x71WLK3Amnt2Wjhpqz3_lBRGEdsjN5vRGlAr5eDVFqE,14552
|
140
142
|
omdev/pyproject/reqs.py,sha256=8feZ71YnGzwKbLK4zO28CDQeNcZIIuq6cnkBhs6M-7E,2406
|
@@ -144,8 +146,8 @@ omdev/scripts/bumpversion.py,sha256=Kn7fo73Hs8uJh3Hi3EIyLOlzLPWAC6dwuD_lZ3cIzuY,
|
|
144
146
|
omdev/scripts/execrss.py,sha256=mR0G0wERBYtQmVIn63lCIIFb5zkCM6X_XOENDFYDBKc,651
|
145
147
|
omdev/scripts/exectime.py,sha256=sFb376GflU6s9gNX-2-we8hgH6w5MuQNS9g6i4SqJIo,610
|
146
148
|
omdev/scripts/importtrace.py,sha256=oa7CtcWJVMNDbyIEiRHej6ICfABfErMeo4_haIqe18Q,14041
|
147
|
-
omdev/scripts/interp.py,sha256=
|
148
|
-
omdev/scripts/pyproject.py,sha256=
|
149
|
+
omdev/scripts/interp.py,sha256=rtGqd0vYT2f7dy8rWXu8KIRnt_baBgN7nynJCsniGfs,140481
|
150
|
+
omdev/scripts/pyproject.py,sha256=Q_CjZ_q-Fvhlb_guUg7GVE0cbovaQvuBgWTXGCCCmlw,239074
|
149
151
|
omdev/scripts/slowcat.py,sha256=lssv4yrgJHiWfOiHkUut2p8E8Tq32zB-ujXESQxFFHY,2728
|
150
152
|
omdev/scripts/tmpexec.py,sha256=WTYcf56Tj2qjYV14AWmV8SfT0u6Y8eIU6cKgQRvEK3c,1442
|
151
153
|
omdev/toml/__init__.py,sha256=Y3l4WY4JRi2uLG6kgbGp93fuGfkxkKwZDvhsa0Rwgtk,15
|
@@ -153,16 +155,16 @@ omdev/toml/parser.py,sha256=ojhCYIk23ELRx2f9xUCwLTRq13UM6wrYGWoyxZBurlo,29327
|
|
153
155
|
omdev/toml/writer.py,sha256=lk3on3YXVbWuLJa-xsOzOhs1bBAT1vXqw4mBbluZl_w,3040
|
154
156
|
omdev/tools/__init__.py,sha256=iVJAOQ0viGTQOm0DLX4uZLro-9jOioYJGLg9s0kDx1A,78
|
155
157
|
omdev/tools/cloc.py,sha256=r5HkvaLoGw8djgvGdt_W_CjfSklW585dar9bDhDFeF8,5098
|
156
|
-
omdev/tools/doc.py,sha256=
|
157
|
-
omdev/tools/docker.py,sha256=
|
158
|
-
omdev/tools/git.py,sha256=
|
158
|
+
omdev/tools/doc.py,sha256=wvgGhv6aFaV-Zl-Qivejx37i-lKQ207rZ-4K2fPf-Ss,2547
|
159
|
+
omdev/tools/docker.py,sha256=KVFckA8eAdiapFUr8xkfMw9Uv3Qy4oNq0e70Lqt1F7I,7352
|
160
|
+
omdev/tools/git.py,sha256=VPx61R-UC2IH4s1tEnCsBp6kSsM6r9fimQfF8amg5kE,6986
|
159
161
|
omdev/tools/importscan.py,sha256=nhJIhtjDY6eFVlReP7fegvv6L5ZjN-Z2VeyhsBonev4,4639
|
160
162
|
omdev/tools/mkrelimp.py,sha256=kyu_BbUakKHEEOxNEvYWk7tH1ixCfVb3NqqT8U-BozE,4066
|
161
|
-
omdev/tools/notebook.py,sha256=
|
162
|
-
omdev/tools/pip.py,sha256=
|
163
|
-
omdev/tools/prof.py,sha256=
|
163
|
+
omdev/tools/notebook.py,sha256=q1YMGwM1skHv-dPbtT_cM7UOGFNiMEAxjr6rr6rbobk,3494
|
164
|
+
omdev/tools/pip.py,sha256=eBD41hp-V3thGfhUBM3Erxl4CSG-5LG6Szo1sA76P2k,3459
|
165
|
+
omdev/tools/prof.py,sha256=hQakAsViJD4gLJpLLZnTkOqmTDAwM48Nx5q-O_aFlYM,1467
|
164
166
|
omdev/tools/qr.py,sha256=tm68lPwEAkEwIL2sUKPKBYfwwPtjVWG1DBZwur8_jY8,1737
|
165
|
-
omdev/tools/sqlrepl.py,sha256=
|
167
|
+
omdev/tools/sqlrepl.py,sha256=wAjrfXNrRV63-NJCC2HlGQnFh7lUH0bHMnOjYotQqFs,5753
|
166
168
|
omdev/tools/json/__init__.py,sha256=47DEQpj8HBSa-_TImW-5JCeuQeRkm5NMpJWZG3hSuFU,0
|
167
169
|
omdev/tools/json/__main__.py,sha256=wqpkN_NsQyNwKW4qjVj8ADJ4_C98KhrFBtE-Z1UamfU,168
|
168
170
|
omdev/tools/json/cli.py,sha256=EubIMT-n2XsjWBZjSy2fWXqijlwrIhLsfbkg3SZzi28,9586
|
@@ -174,9 +176,9 @@ omdev/tools/json/rendering.py,sha256=jNShMfCpFR9-Kcn6cUFuOChXHjg71diuTC4x7Ofmz-o
|
|
174
176
|
omdev/tools/pawk/__init__.py,sha256=47DEQpj8HBSa-_TImW-5JCeuQeRkm5NMpJWZG3hSuFU,0
|
175
177
|
omdev/tools/pawk/__main__.py,sha256=VCqeRVnqT1RPEoIrqHFSu4PXVMg4YEgF4qCQm90-eRI,66
|
176
178
|
omdev/tools/pawk/pawk.py,sha256=Eckymn22GfychCQcQi96BFqRo_LmiJ-EPhC8TTUJdB4,11446
|
177
|
-
omdev-0.0.0.
|
178
|
-
omdev-0.0.0.
|
179
|
-
omdev-0.0.0.
|
180
|
-
omdev-0.0.0.
|
181
|
-
omdev-0.0.0.
|
182
|
-
omdev-0.0.0.
|
179
|
+
omdev-0.0.0.dev180.dist-info/LICENSE,sha256=B_hVtavaA8zCYDW99DYdcpDLKz1n3BBRjZrcbv8uG8c,1451
|
180
|
+
omdev-0.0.0.dev180.dist-info/METADATA,sha256=mqiMhNfVPplwJ5oOFoyh-rWp7N4cfr3v2AICPOSK21E,1760
|
181
|
+
omdev-0.0.0.dev180.dist-info/WHEEL,sha256=PZUExdf71Ui_so67QXpySuHtCi3-J3wvF4ORK6k_S8U,91
|
182
|
+
omdev-0.0.0.dev180.dist-info/entry_points.txt,sha256=dHLXFmq5D9B8qUyhRtFqTGWGxlbx3t5ejedjrnXNYLU,33
|
183
|
+
omdev-0.0.0.dev180.dist-info/top_level.txt,sha256=1nr7j30fEWgLYHW3lGR9pkdHkb7knv1U1ES1XRNVQ6k,6
|
184
|
+
omdev-0.0.0.dev180.dist-info/RECORD,,
|
File without changes
|
File without changes
|
File without changes
|
File without changes
|