omdev 0.0.0.dev179__py3-none-any.whl → 0.0.0.dev180__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.
- 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
|