omdev 0.0.0.dev281__py3-none-any.whl → 0.0.0.dev283__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 +16 -4
- omdev/attrdocs.py +177 -0
- omdev/bracepy.py +6 -0
- omdev/classdot.py +3 -0
- omdev/cmake.py +3 -0
- omdev/findimports.py +6 -0
- omdev/imgur.py +3 -0
- omdev/interp/pyenv/install.py +27 -5
- omdev/scripts/interp.py +27 -5
- omdev/scripts/pyproject.py +27 -5
- omdev/tokens/all.py +1 -0
- omdev/tokens/utils.py +9 -0
- {omdev-0.0.0.dev281.dist-info → omdev-0.0.0.dev283.dist-info}/METADATA +2 -2
- {omdev-0.0.0.dev281.dist-info → omdev-0.0.0.dev283.dist-info}/RECORD +18 -17
- {omdev-0.0.0.dev281.dist-info → omdev-0.0.0.dev283.dist-info}/WHEEL +0 -0
- {omdev-0.0.0.dev281.dist-info → omdev-0.0.0.dev283.dist-info}/entry_points.txt +0 -0
- {omdev-0.0.0.dev281.dist-info → omdev-0.0.0.dev283.dist-info}/licenses/LICENSE +0 -0
- {omdev-0.0.0.dev281.dist-info → omdev-0.0.0.dev283.dist-info}/top_level.txt +0 -0
omdev/.manifests.json
CHANGED
@@ -11,11 +11,23 @@
|
|
11
11
|
}
|
12
12
|
}
|
13
13
|
},
|
14
|
+
{
|
15
|
+
"module": ".attrdocs",
|
16
|
+
"attr": "_CLI_MODULE",
|
17
|
+
"file": "omdev/attrdocs.py",
|
18
|
+
"line": 146,
|
19
|
+
"value": {
|
20
|
+
"$.cli.types.CliModule": {
|
21
|
+
"cmd_name": "py/attrdocs",
|
22
|
+
"mod_name": "omdev.attrdocs"
|
23
|
+
}
|
24
|
+
}
|
25
|
+
},
|
14
26
|
{
|
15
27
|
"module": ".bracepy",
|
16
28
|
"attr": "_CLI_MODULE",
|
17
29
|
"file": "omdev/bracepy.py",
|
18
|
-
"line":
|
30
|
+
"line": 94,
|
19
31
|
"value": {
|
20
32
|
"$.cli.types.CliModule": {
|
21
33
|
"cmd_name": "bracepy",
|
@@ -51,7 +63,7 @@
|
|
51
63
|
"module": ".classdot",
|
52
64
|
"attr": "_CLI_MODULE",
|
53
65
|
"file": "omdev/classdot.py",
|
54
|
-
"line":
|
66
|
+
"line": 65,
|
55
67
|
"value": {
|
56
68
|
"$.cli.types.CliModule": {
|
57
69
|
"cmd_name": "py/classdot",
|
@@ -75,7 +87,7 @@
|
|
75
87
|
"module": ".findimports",
|
76
88
|
"attr": "_CLI_MODULE",
|
77
89
|
"file": "omdev/findimports.py",
|
78
|
-
"line":
|
90
|
+
"line": 87,
|
79
91
|
"value": {
|
80
92
|
"$.cli.types.CliModule": {
|
81
93
|
"cmd_name": "py/findimports",
|
@@ -87,7 +99,7 @@
|
|
87
99
|
"module": ".imgur",
|
88
100
|
"attr": "_FOO_CLI_MODULE",
|
89
101
|
"file": "omdev/imgur.py",
|
90
|
-
"line":
|
102
|
+
"line": 133,
|
91
103
|
"value": {
|
92
104
|
"$.cli.types.CliModule": {
|
93
105
|
"cmd_name": "imgur",
|
omdev/attrdocs.py
ADDED
@@ -0,0 +1,177 @@
|
|
1
|
+
# ruff: noqa: N802
|
2
|
+
import ast
|
3
|
+
import dataclasses as dc
|
4
|
+
import inspect
|
5
|
+
import typing as ta
|
6
|
+
|
7
|
+
from omlish import check
|
8
|
+
from omlish import lang
|
9
|
+
|
10
|
+
from .tokens import all as tks
|
11
|
+
|
12
|
+
|
13
|
+
##
|
14
|
+
|
15
|
+
|
16
|
+
@dc.dataclass(frozen=True)
|
17
|
+
class AttrDoc:
|
18
|
+
docstring: str | None = None
|
19
|
+
trailing_comment: str | None = None
|
20
|
+
preceding_comment: str | None = None
|
21
|
+
|
22
|
+
__repr__ = lang.AttrRepr.of(
|
23
|
+
'docstring',
|
24
|
+
'trailing_comment',
|
25
|
+
'preceding_comment',
|
26
|
+
value_filter=bool,
|
27
|
+
)
|
28
|
+
|
29
|
+
|
30
|
+
_EMPTY_ATTR_DOC = AttrDoc()
|
31
|
+
|
32
|
+
|
33
|
+
##
|
34
|
+
|
35
|
+
|
36
|
+
class _AttrDocAstVisitor(ast.NodeVisitor):
|
37
|
+
def __init__(
|
38
|
+
self,
|
39
|
+
*,
|
40
|
+
tok_lines: ta.Sequence[tks.Tokens] | None = None,
|
41
|
+
) -> None:
|
42
|
+
super().__init__()
|
43
|
+
|
44
|
+
self._tok_lines = tok_lines
|
45
|
+
|
46
|
+
self._attr_docs: dict[str, AttrDoc] = {}
|
47
|
+
self._target: str | None = None
|
48
|
+
self._prev_node_type: type[ast.AST] | None = None
|
49
|
+
|
50
|
+
@property
|
51
|
+
def attr_docs(self) -> ta.Mapping[str, AttrDoc]:
|
52
|
+
return self._attr_docs
|
53
|
+
|
54
|
+
#
|
55
|
+
|
56
|
+
def visit(self, node: ast.AST) -> ta.Any:
|
57
|
+
if isinstance(node, (ast.AsyncFunctionDef, ast.FunctionDef)):
|
58
|
+
self._prev_node_type = None
|
59
|
+
return None
|
60
|
+
node_result = super().visit(node)
|
61
|
+
self._prev_node_type = type(node)
|
62
|
+
return node_result
|
63
|
+
|
64
|
+
#
|
65
|
+
|
66
|
+
@staticmethod
|
67
|
+
def _comment_tok_src(tok: tks.Token) -> str:
|
68
|
+
check.state(tok.name == 'COMMENT')
|
69
|
+
tc = tok.src
|
70
|
+
check.state(tc[0] == '#')
|
71
|
+
return tc[1:].lstrip()
|
72
|
+
|
73
|
+
def _set_target(self, node: ast.Name) -> None:
|
74
|
+
self._target = node.id
|
75
|
+
|
76
|
+
ad = _EMPTY_ATTR_DOC
|
77
|
+
|
78
|
+
if self._tok_lines is not None:
|
79
|
+
line = self._tok_lines[node.lineno - 1]
|
80
|
+
for t in reversed(line):
|
81
|
+
if t.name not in tks.WS_NAMES:
|
82
|
+
break
|
83
|
+
if t.name == 'COMMENT':
|
84
|
+
ad = dc.replace(ad, trailing_comment=self._comment_tok_src(t))
|
85
|
+
break
|
86
|
+
|
87
|
+
pll: list[str] = []
|
88
|
+
pln = node.lineno - 1
|
89
|
+
while pln > 0:
|
90
|
+
line = self._tok_lines[pln - 1]
|
91
|
+
no_ws_line = list(tks.ignore_ws(line, keep={'COMMENT'}))
|
92
|
+
if not no_ws_line or no_ws_line[0].name != 'COMMENT': # noqa
|
93
|
+
break
|
94
|
+
pll.append(self._comment_tok_src(no_ws_line[0]))
|
95
|
+
pln -= 1
|
96
|
+
if pll:
|
97
|
+
ad = dc.replace(ad, preceding_comment='\n'.join(reversed(pll)))
|
98
|
+
|
99
|
+
if ad is not _EMPTY_ATTR_DOC:
|
100
|
+
self._attr_docs[node.id] = ad
|
101
|
+
|
102
|
+
def visit_AnnAssign(self, node: ast.AnnAssign) -> ta.Any:
|
103
|
+
if isinstance(target := node.target, ast.Name):
|
104
|
+
self._set_target(target)
|
105
|
+
|
106
|
+
def visit_Assign(self, node: ast.Assign) -> ta.Any:
|
107
|
+
if len(node.targets) == 1 and isinstance(target := node.targets[0], ast.Name):
|
108
|
+
self._set_target(target) # noqa
|
109
|
+
|
110
|
+
#
|
111
|
+
|
112
|
+
def visit_Expr(self, node: ast.Expr) -> ta.Any:
|
113
|
+
if (
|
114
|
+
isinstance(node.value, ast.Constant) and
|
115
|
+
isinstance(node.value.value, str) and
|
116
|
+
self._prev_node_type in (ast.Assign, ast.AnnAssign)
|
117
|
+
):
|
118
|
+
docstring = inspect.cleandoc(node.value.value)
|
119
|
+
if self._target:
|
120
|
+
ex = self._attr_docs.get(self._target, _EMPTY_ATTR_DOC)
|
121
|
+
check.none(ex.docstring)
|
122
|
+
self._attr_docs[self._target] = dc.replace(ex, docstring=docstring)
|
123
|
+
self._target = None
|
124
|
+
|
125
|
+
|
126
|
+
def extract_attr_docs(src: str) -> ta.Mapping[str, AttrDoc]:
|
127
|
+
if not src:
|
128
|
+
return {}
|
129
|
+
|
130
|
+
toks = tks.src_to_tokens(src)
|
131
|
+
tok_lines = tks.split_lines_dense(toks)
|
132
|
+
|
133
|
+
src_ast = ast.parse(src)
|
134
|
+
|
135
|
+
# import astpretty
|
136
|
+
# astpretty.pprint(src_ast)
|
137
|
+
|
138
|
+
ast_visitor = _AttrDocAstVisitor(tok_lines=tok_lines)
|
139
|
+
ast_visitor.visit(src_ast)
|
140
|
+
return ast_visitor.attr_docs
|
141
|
+
|
142
|
+
|
143
|
+
##
|
144
|
+
|
145
|
+
|
146
|
+
# @omlish-manifest
|
147
|
+
_CLI_MODULE = {'$omdev.cli.types.CliModule': {
|
148
|
+
'cmd_name': 'py/attrdocs',
|
149
|
+
'mod_name': __name__,
|
150
|
+
}}
|
151
|
+
|
152
|
+
|
153
|
+
if __name__ == '__main__':
|
154
|
+
def _main() -> None:
|
155
|
+
import argparse
|
156
|
+
|
157
|
+
parser = argparse.ArgumentParser()
|
158
|
+
parser.add_argument('file')
|
159
|
+
args = parser.parse_args()
|
160
|
+
|
161
|
+
#
|
162
|
+
|
163
|
+
with open(args.file) as f:
|
164
|
+
src = f.read()
|
165
|
+
|
166
|
+
attr_docs = extract_attr_docs(src)
|
167
|
+
|
168
|
+
#
|
169
|
+
|
170
|
+
import json
|
171
|
+
|
172
|
+
print(json.dumps({
|
173
|
+
a: {k: v for k, v in dc.asdict(ad).items() if v}
|
174
|
+
for a, ad in sorted(attr_docs.items(), key=lambda t: t[0])
|
175
|
+
}))
|
176
|
+
|
177
|
+
_main()
|
omdev/bracepy.py
CHANGED
@@ -7,6 +7,9 @@ import io
|
|
7
7
|
import tokenize
|
8
8
|
|
9
9
|
|
10
|
+
##
|
11
|
+
|
12
|
+
|
10
13
|
def translate_brace_python(
|
11
14
|
s: str,
|
12
15
|
*,
|
@@ -85,6 +88,9 @@ def translate_brace_python(
|
|
85
88
|
return ret.getvalue()
|
86
89
|
|
87
90
|
|
91
|
+
##
|
92
|
+
|
93
|
+
|
88
94
|
# @omlish-manifest
|
89
95
|
_CLI_MODULE = {'$omdev.cli.types.CliModule': {
|
90
96
|
'cmd_name': 'bracepy',
|
omdev/classdot.py
CHANGED
omdev/cmake.py
CHANGED
omdev/findimports.py
CHANGED
@@ -13,6 +13,9 @@ import sys
|
|
13
13
|
import typing as ta
|
14
14
|
|
15
15
|
|
16
|
+
##
|
17
|
+
|
18
|
+
|
16
19
|
_BUILTIN_MODULE_NAMES = frozenset([*sys.builtin_module_names, *sys.stdlib_module_names])
|
17
20
|
|
18
21
|
|
@@ -78,6 +81,9 @@ def get_import_deps(imps: set[str]) -> set[str]:
|
|
78
81
|
return {i for i in eimps if whichmod(i) != 'builtin'}
|
79
82
|
|
80
83
|
|
84
|
+
##
|
85
|
+
|
86
|
+
|
81
87
|
# @omlish-manifest
|
82
88
|
_CLI_MODULE = {'$omdev.cli.types.CliModule': {
|
83
89
|
'cmd_name': 'py/findimports',
|
omdev/imgur.py
CHANGED
omdev/interp/pyenv/install.py
CHANGED
@@ -38,16 +38,13 @@ class PyenvInstallOpts:
|
|
38
38
|
|
39
39
|
|
40
40
|
# TODO: https://github.com/pyenv/pyenv/blob/master/plugins/python-build/README.md#building-for-maximum-performance
|
41
|
-
|
41
|
+
_DEFAULT_PYENV_INSTALL_OPTS = PyenvInstallOpts(
|
42
42
|
opts=[
|
43
43
|
'-s',
|
44
44
|
'-v',
|
45
45
|
'-k',
|
46
46
|
],
|
47
47
|
conf_opts=[
|
48
|
-
# FIXME: breaks on mac for older py's
|
49
|
-
'--enable-loadable-sqlite-extensions',
|
50
|
-
|
51
48
|
# '--enable-shared',
|
52
49
|
|
53
50
|
'--enable-optimizations',
|
@@ -63,6 +60,27 @@ DEFAULT_PYENV_INSTALL_OPTS = PyenvInstallOpts(
|
|
63
60
|
],
|
64
61
|
)
|
65
62
|
|
63
|
+
|
64
|
+
def get_default_pyenv_install_opts(
|
65
|
+
version: str,
|
66
|
+
*,
|
67
|
+
platform: ta.Optional[str] = None,
|
68
|
+
) -> PyenvInstallOpts:
|
69
|
+
if platform is None:
|
70
|
+
platform = sys.platform
|
71
|
+
|
72
|
+
opts = _DEFAULT_PYENV_INSTALL_OPTS
|
73
|
+
|
74
|
+
ma, mi = map(int, version.split('.')[:2])
|
75
|
+
if not (platform == 'darwin' and (ma, mi) < (3, 11)):
|
76
|
+
opts = dc.replace(opts, conf_opts=[
|
77
|
+
*opts.conf_opts,
|
78
|
+
'--enable-loadable-sqlite-extensions',
|
79
|
+
])
|
80
|
+
|
81
|
+
return opts
|
82
|
+
|
83
|
+
|
66
84
|
DEBUG_PYENV_INSTALL_OPTS = PyenvInstallOpts(opts=['-g'])
|
67
85
|
|
68
86
|
THREADED_PYENV_INSTALL_OPTS = PyenvInstallOpts(conf_opts=['--disable-gil'])
|
@@ -188,7 +206,11 @@ class PyenvVersionInstaller:
|
|
188
206
|
if opts is None:
|
189
207
|
opts = PyenvInstallOpts()
|
190
208
|
else:
|
191
|
-
lst = [
|
209
|
+
lst: ta.List[PyenvInstallOpts] = []
|
210
|
+
if self._given_opts is not None:
|
211
|
+
lst.append(self._given_opts)
|
212
|
+
else:
|
213
|
+
lst.append(get_default_pyenv_install_opts(self._version))
|
192
214
|
if self._interp_opts.debug:
|
193
215
|
lst.append(DEBUG_PYENV_INSTALL_OPTS)
|
194
216
|
if self._interp_opts.threaded:
|
omdev/scripts/interp.py
CHANGED
@@ -4988,16 +4988,13 @@ class PyenvInstallOpts:
|
|
4988
4988
|
|
4989
4989
|
|
4990
4990
|
# TODO: https://github.com/pyenv/pyenv/blob/master/plugins/python-build/README.md#building-for-maximum-performance
|
4991
|
-
|
4991
|
+
_DEFAULT_PYENV_INSTALL_OPTS = PyenvInstallOpts(
|
4992
4992
|
opts=[
|
4993
4993
|
'-s',
|
4994
4994
|
'-v',
|
4995
4995
|
'-k',
|
4996
4996
|
],
|
4997
4997
|
conf_opts=[
|
4998
|
-
# FIXME: breaks on mac for older py's
|
4999
|
-
'--enable-loadable-sqlite-extensions',
|
5000
|
-
|
5001
4998
|
# '--enable-shared',
|
5002
4999
|
|
5003
5000
|
'--enable-optimizations',
|
@@ -5013,6 +5010,27 @@ DEFAULT_PYENV_INSTALL_OPTS = PyenvInstallOpts(
|
|
5013
5010
|
],
|
5014
5011
|
)
|
5015
5012
|
|
5013
|
+
|
5014
|
+
def get_default_pyenv_install_opts(
|
5015
|
+
version: str,
|
5016
|
+
*,
|
5017
|
+
platform: ta.Optional[str] = None,
|
5018
|
+
) -> PyenvInstallOpts:
|
5019
|
+
if platform is None:
|
5020
|
+
platform = sys.platform
|
5021
|
+
|
5022
|
+
opts = _DEFAULT_PYENV_INSTALL_OPTS
|
5023
|
+
|
5024
|
+
ma, mi = map(int, version.split('.')[:2])
|
5025
|
+
if not (platform == 'darwin' and (ma, mi) < (3, 11)):
|
5026
|
+
opts = dc.replace(opts, conf_opts=[
|
5027
|
+
*opts.conf_opts,
|
5028
|
+
'--enable-loadable-sqlite-extensions',
|
5029
|
+
])
|
5030
|
+
|
5031
|
+
return opts
|
5032
|
+
|
5033
|
+
|
5016
5034
|
DEBUG_PYENV_INSTALL_OPTS = PyenvInstallOpts(opts=['-g'])
|
5017
5035
|
|
5018
5036
|
THREADED_PYENV_INSTALL_OPTS = PyenvInstallOpts(conf_opts=['--disable-gil'])
|
@@ -5138,7 +5156,11 @@ class PyenvVersionInstaller:
|
|
5138
5156
|
if opts is None:
|
5139
5157
|
opts = PyenvInstallOpts()
|
5140
5158
|
else:
|
5141
|
-
lst = [
|
5159
|
+
lst: ta.List[PyenvInstallOpts] = []
|
5160
|
+
if self._given_opts is not None:
|
5161
|
+
lst.append(self._given_opts)
|
5162
|
+
else:
|
5163
|
+
lst.append(get_default_pyenv_install_opts(self._version))
|
5142
5164
|
if self._interp_opts.debug:
|
5143
5165
|
lst.append(DEBUG_PYENV_INSTALL_OPTS)
|
5144
5166
|
if self._interp_opts.threaded:
|
omdev/scripts/pyproject.py
CHANGED
@@ -7561,16 +7561,13 @@ class PyenvInstallOpts:
|
|
7561
7561
|
|
7562
7562
|
|
7563
7563
|
# TODO: https://github.com/pyenv/pyenv/blob/master/plugins/python-build/README.md#building-for-maximum-performance
|
7564
|
-
|
7564
|
+
_DEFAULT_PYENV_INSTALL_OPTS = PyenvInstallOpts(
|
7565
7565
|
opts=[
|
7566
7566
|
'-s',
|
7567
7567
|
'-v',
|
7568
7568
|
'-k',
|
7569
7569
|
],
|
7570
7570
|
conf_opts=[
|
7571
|
-
# FIXME: breaks on mac for older py's
|
7572
|
-
'--enable-loadable-sqlite-extensions',
|
7573
|
-
|
7574
7571
|
# '--enable-shared',
|
7575
7572
|
|
7576
7573
|
'--enable-optimizations',
|
@@ -7586,6 +7583,27 @@ DEFAULT_PYENV_INSTALL_OPTS = PyenvInstallOpts(
|
|
7586
7583
|
],
|
7587
7584
|
)
|
7588
7585
|
|
7586
|
+
|
7587
|
+
def get_default_pyenv_install_opts(
|
7588
|
+
version: str,
|
7589
|
+
*,
|
7590
|
+
platform: ta.Optional[str] = None,
|
7591
|
+
) -> PyenvInstallOpts:
|
7592
|
+
if platform is None:
|
7593
|
+
platform = sys.platform
|
7594
|
+
|
7595
|
+
opts = _DEFAULT_PYENV_INSTALL_OPTS
|
7596
|
+
|
7597
|
+
ma, mi = map(int, version.split('.')[:2])
|
7598
|
+
if not (platform == 'darwin' and (ma, mi) < (3, 11)):
|
7599
|
+
opts = dc.replace(opts, conf_opts=[
|
7600
|
+
*opts.conf_opts,
|
7601
|
+
'--enable-loadable-sqlite-extensions',
|
7602
|
+
])
|
7603
|
+
|
7604
|
+
return opts
|
7605
|
+
|
7606
|
+
|
7589
7607
|
DEBUG_PYENV_INSTALL_OPTS = PyenvInstallOpts(opts=['-g'])
|
7590
7608
|
|
7591
7609
|
THREADED_PYENV_INSTALL_OPTS = PyenvInstallOpts(conf_opts=['--disable-gil'])
|
@@ -7711,7 +7729,11 @@ class PyenvVersionInstaller:
|
|
7711
7729
|
if opts is None:
|
7712
7730
|
opts = PyenvInstallOpts()
|
7713
7731
|
else:
|
7714
|
-
lst = [
|
7732
|
+
lst: ta.List[PyenvInstallOpts] = []
|
7733
|
+
if self._given_opts is not None:
|
7734
|
+
lst.append(self._given_opts)
|
7735
|
+
else:
|
7736
|
+
lst.append(get_default_pyenv_install_opts(self._version))
|
7715
7737
|
if self._interp_opts.debug:
|
7716
7738
|
lst.append(DEBUG_PYENV_INSTALL_OPTS)
|
7717
7739
|
if self._interp_opts.threaded:
|
omdev/tokens/all.py
CHANGED
omdev/tokens/utils.py
CHANGED
@@ -42,6 +42,15 @@ def split_lines(ts: Tokens) -> list[Tokens]:
|
|
42
42
|
return [list(it) for g, it in itertools.groupby(ts, lambda t: t.line)]
|
43
43
|
|
44
44
|
|
45
|
+
def split_lines_dense(ts: Tokens) -> list[Tokens]:
|
46
|
+
lines: list[list[Token]] = []
|
47
|
+
for t in ts:
|
48
|
+
while len(lines) < (t.line or 0):
|
49
|
+
lines.append([])
|
50
|
+
lines[-1].append(t)
|
51
|
+
return lines # type: ignore[return-value]
|
52
|
+
|
53
|
+
|
45
54
|
def join_toks(ts: Tokens) -> str:
|
46
55
|
return ''.join(t.src for t in ts)
|
47
56
|
|
@@ -1,6 +1,6 @@
|
|
1
1
|
Metadata-Version: 2.4
|
2
2
|
Name: omdev
|
3
|
-
Version: 0.0.0.
|
3
|
+
Version: 0.0.0.dev283
|
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.dev283
|
16
16
|
Provides-Extra: all
|
17
17
|
Requires-Dist: black~=25.1; extra == "all"
|
18
18
|
Requires-Dist: pycparser~=2.22; extra == "all"
|
@@ -1,11 +1,12 @@
|
|
1
|
-
omdev/.manifests.json,sha256=
|
1
|
+
omdev/.manifests.json,sha256=gpOkgx7EEYTrLPBJ-QnaUrW0fpWe9Lj6T3Wsye9wHgg,10325
|
2
2
|
omdev/__about__.py,sha256=TeZN9riO-ekcaVodONcH5Es3OsQwWS7lu_dQHdzY_t4,1231
|
3
3
|
omdev/__init__.py,sha256=47DEQpj8HBSa-_TImW-5JCeuQeRkm5NMpJWZG3hSuFU,0
|
4
|
-
omdev/
|
5
|
-
omdev/
|
6
|
-
omdev/
|
7
|
-
omdev/
|
8
|
-
omdev/
|
4
|
+
omdev/attrdocs.py,sha256=XGY87xd9FZJqzGI8V9g4sSeQMWYu7oHD_klzC8YwZhk,4528
|
5
|
+
omdev/bracepy.py,sha256=PPPoTMj4FJ5Lk3GGPEEWBGU7Kl1eCJBApSJnRvRj2Ms,2753
|
6
|
+
omdev/classdot.py,sha256=Gmw4pFEFSnm6HBz65dI5-J8hNH1BSYgH_vsMcYKzbB4,1636
|
7
|
+
omdev/cmake.py,sha256=9rfSvFHPmKDj9ngvfDB2vK8O-xO_ZwUm7hMKLWA-yOw,4578
|
8
|
+
omdev/findimports.py,sha256=CDorwWr9hdIGnV-gvYQykdiz9hEsu8JrEZAF5sD_89w,2402
|
9
|
+
omdev/imgur.py,sha256=TkjK_M4nDarEmbP-FhVkt_VzSY2jHkZnKGnhnZ1zJAs,3010
|
9
10
|
omdev/pip.py,sha256=PqzAWDO_CbiZvXzJAZcCkFqWynUDls1jIgBWlrswQyA,2012
|
10
11
|
omdev/tagstrings.py,sha256=zIP7nzcsZf5te0lphu6k36ND_cOvNFRg00neoTcoCs8,5484
|
11
12
|
omdev/amalg/__init__.py,sha256=47DEQpj8HBSa-_TImW-5JCeuQeRkm5NMpJWZG3hSuFU,0
|
@@ -142,7 +143,7 @@ omdev/interp/providers/standalone.py,sha256=jJnncea4PIuaW-KwD2YiWDn8zTmwmsJNUKpF
|
|
142
143
|
omdev/interp/providers/system.py,sha256=2HnvN70fJyolfzRSay_gJbwS2JLuURp1VOKg2oc88ts,3985
|
143
144
|
omdev/interp/pyenv/__init__.py,sha256=47DEQpj8HBSa-_TImW-5JCeuQeRkm5NMpJWZG3hSuFU,0
|
144
145
|
omdev/interp/pyenv/inject.py,sha256=JZCSvkLYj5x_2LWScgYVOpmPrwrYQ8YVv7OeHbcH53s,605
|
145
|
-
omdev/interp/pyenv/install.py,sha256=
|
146
|
+
omdev/interp/pyenv/install.py,sha256=j9DrT7w5yZRhoDLTcZJCmhWXinXNqx0QSXwW2JabMgU,8346
|
146
147
|
omdev/interp/pyenv/provider.py,sha256=RvPWnT5Fpj85gYxfw9o8E4kNtgvM0AcXk8_7FUk7rTs,4445
|
147
148
|
omdev/interp/pyenv/pyenv.py,sha256=1Gt77di-lxeje9SnNYCWhYRo7CHdhTWZD0whvPanNP8,2643
|
148
149
|
omdev/interp/uv/__init__.py,sha256=47DEQpj8HBSa-_TImW-5JCeuQeRkm5NMpJWZG3hSuFU,0
|
@@ -214,14 +215,14 @@ omdev/scripts/ci.py,sha256=Z2Tufq5f072q7BQzvcqBpwLkvhBaqagA7lEbeazLXMg,333891
|
|
214
215
|
omdev/scripts/execrss.py,sha256=mR0G0wERBYtQmVIn63lCIIFb5zkCM6X_XOENDFYDBKc,651
|
215
216
|
omdev/scripts/exectime.py,sha256=S2O4MgtzTsFOY2IUJxsrnOIame9tEFc6aOlKP-F1JSg,1541
|
216
217
|
omdev/scripts/importtrace.py,sha256=NjRilVNBugswrNflIhPCPHRTd-vIijqSZ8C7J8lariI,14038
|
217
|
-
omdev/scripts/interp.py,sha256=
|
218
|
-
omdev/scripts/pyproject.py,sha256=
|
218
|
+
omdev/scripts/interp.py,sha256=HPJQlV2PEdVCcDto3MI9SWS-LmngPGJ05jbGXMCsx3g,151611
|
219
|
+
omdev/scripts/pyproject.py,sha256=dcWEUuHsE8_zIJ26s8MMlPlFgJzlE49kVhh2sQLDlKQ,260661
|
219
220
|
omdev/scripts/slowcat.py,sha256=lssv4yrgJHiWfOiHkUut2p8E8Tq32zB-ujXESQxFFHY,2728
|
220
221
|
omdev/scripts/tmpexec.py,sha256=WTYcf56Tj2qjYV14AWmV8SfT0u6Y8eIU6cKgQRvEK3c,1442
|
221
222
|
omdev/tokens/__init__.py,sha256=47DEQpj8HBSa-_TImW-5JCeuQeRkm5NMpJWZG3hSuFU,0
|
222
|
-
omdev/tokens/all.py,sha256=
|
223
|
+
omdev/tokens/all.py,sha256=YT7d-jrEssJBCTC8ljVcQT7BPrCW_r1JCmE8OFzbgFg,709
|
223
224
|
omdev/tokens/tokenizert.py,sha256=-KM5ajybESWCMtqxSm_5ktyu8s-p1MdTgYA4ungyrkM,7840
|
224
|
-
omdev/tokens/utils.py,sha256=
|
225
|
+
omdev/tokens/utils.py,sha256=HN3nZhaZ0Fc7PxuUWLIMIm-l7jTh3R83-1dULkX9i2g,1698
|
225
226
|
omdev/tools/__init__.py,sha256=iVJAOQ0viGTQOm0DLX4uZLro-9jOioYJGLg9s0kDx1A,78
|
226
227
|
omdev/tools/cloc.py,sha256=jYlMHBae9oGKN4VKeBGuqjiQNcM2be7KIoTF0oNwx_I,5205
|
227
228
|
omdev/tools/diff.py,sha256=_ThKWXFE-bG5SPDYNs8GqstEUPzL_PTWb03nJN0laLg,515
|
@@ -254,9 +255,9 @@ omdev/tools/json/rendering.py,sha256=tMcjOW5edfozcMSTxxvF7WVTsbYLoe9bCKFh50qyaGw
|
|
254
255
|
omdev/tools/pawk/__init__.py,sha256=47DEQpj8HBSa-_TImW-5JCeuQeRkm5NMpJWZG3hSuFU,0
|
255
256
|
omdev/tools/pawk/__main__.py,sha256=VCqeRVnqT1RPEoIrqHFSu4PXVMg4YEgF4qCQm90-eRI,66
|
256
257
|
omdev/tools/pawk/pawk.py,sha256=zsEkfQX0jF5bn712uqPAyBSdJt2dno1LH2oeSMNfXQI,11424
|
257
|
-
omdev-0.0.0.
|
258
|
-
omdev-0.0.0.
|
259
|
-
omdev-0.0.0.
|
260
|
-
omdev-0.0.0.
|
261
|
-
omdev-0.0.0.
|
262
|
-
omdev-0.0.0.
|
258
|
+
omdev-0.0.0.dev283.dist-info/licenses/LICENSE,sha256=B_hVtavaA8zCYDW99DYdcpDLKz1n3BBRjZrcbv8uG8c,1451
|
259
|
+
omdev-0.0.0.dev283.dist-info/METADATA,sha256=deF-r5kF_saAx6QkRAyDHWoQQlItNcTo9ejJRCZRkyc,1588
|
260
|
+
omdev-0.0.0.dev283.dist-info/WHEEL,sha256=CmyFI0kx5cdEMTLiONQRbGQwjIoR1aIYB7eCAQ4KPJ0,91
|
261
|
+
omdev-0.0.0.dev283.dist-info/entry_points.txt,sha256=dHLXFmq5D9B8qUyhRtFqTGWGxlbx3t5ejedjrnXNYLU,33
|
262
|
+
omdev-0.0.0.dev283.dist-info/top_level.txt,sha256=1nr7j30fEWgLYHW3lGR9pkdHkb7knv1U1ES1XRNVQ6k,6
|
263
|
+
omdev-0.0.0.dev283.dist-info/RECORD,,
|
File without changes
|
File without changes
|
File without changes
|
File without changes
|