omdev 0.0.0.dev284__py3-none-any.whl → 0.0.0.dev286__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 +14 -2
- omdev/py/attrdocs.py +34 -15
- omdev/py/findimports.py +2 -0
- omdev/py/srcheaders.py +98 -0
- omdev/scripts/ci.py +16 -0
- omdev/scripts/interp.py +16 -0
- omdev/scripts/pyproject.py +16 -0
- omdev/tokens/all.py +1 -0
- omdev/tokens/tokenizert.py +9 -8
- {omdev-0.0.0.dev284.dist-info → omdev-0.0.0.dev286.dist-info}/METADATA +2 -2
- {omdev-0.0.0.dev284.dist-info → omdev-0.0.0.dev286.dist-info}/RECORD +15 -14
- {omdev-0.0.0.dev284.dist-info → omdev-0.0.0.dev286.dist-info}/WHEEL +0 -0
- {omdev-0.0.0.dev284.dist-info → omdev-0.0.0.dev286.dist-info}/entry_points.txt +0 -0
- {omdev-0.0.0.dev284.dist-info → omdev-0.0.0.dev286.dist-info}/licenses/LICENSE +0 -0
- {omdev-0.0.0.dev284.dist-info → omdev-0.0.0.dev286.dist-info}/top_level.txt +0 -0
omdev/.manifests.json
CHANGED
@@ -123,7 +123,7 @@
|
|
123
123
|
"module": ".py.attrdocs",
|
124
124
|
"attr": "_CLI_MODULE",
|
125
125
|
"file": "omdev/py/attrdocs.py",
|
126
|
-
"line":
|
126
|
+
"line": 155,
|
127
127
|
"value": {
|
128
128
|
"$.cli.types.CliModule": {
|
129
129
|
"cmd_name": "py/attrdocs",
|
@@ -159,7 +159,7 @@
|
|
159
159
|
"module": ".py.findimports",
|
160
160
|
"attr": "_CLI_MODULE",
|
161
161
|
"file": "omdev/py/findimports.py",
|
162
|
-
"line":
|
162
|
+
"line": 89,
|
163
163
|
"value": {
|
164
164
|
"$.cli.types.CliModule": {
|
165
165
|
"cmd_name": "py/findimports",
|
@@ -203,6 +203,18 @@
|
|
203
203
|
}
|
204
204
|
}
|
205
205
|
},
|
206
|
+
{
|
207
|
+
"module": ".py.srcheaders",
|
208
|
+
"attr": "_CLI_MODULE",
|
209
|
+
"file": "omdev/py/srcheaders.py",
|
210
|
+
"line": 65,
|
211
|
+
"value": {
|
212
|
+
"$.cli.types.CliModule": {
|
213
|
+
"cmd_name": "py/srcheaders",
|
214
|
+
"mod_name": "omdev.py.srcheaders"
|
215
|
+
}
|
216
|
+
}
|
217
|
+
},
|
206
218
|
{
|
207
219
|
"module": ".py.tools.importscan",
|
208
220
|
"attr": "_CLI_MODULE",
|
omdev/py/attrdocs.py
CHANGED
@@ -44,7 +44,8 @@ class _AttrDocAstVisitor(ast.NodeVisitor):
|
|
44
44
|
self._tok_lines = tok_lines
|
45
45
|
|
46
46
|
self._attr_docs: dict[str, AttrDoc] = {}
|
47
|
-
self.
|
47
|
+
self._class_stack: list[str] = []
|
48
|
+
self._attr_target: str | None = None
|
48
49
|
self._prev_node_type: type[ast.AST] | None = None
|
49
50
|
|
50
51
|
@property
|
@@ -63,6 +64,13 @@ class _AttrDocAstVisitor(ast.NodeVisitor):
|
|
63
64
|
|
64
65
|
#
|
65
66
|
|
67
|
+
def visit_ClassDef(self, node: ast.ClassDef) -> ta.Any:
|
68
|
+
self._class_stack.append(node.name)
|
69
|
+
self.generic_visit(node)
|
70
|
+
check.equal(self._class_stack.pop(), node.name)
|
71
|
+
|
72
|
+
#
|
73
|
+
|
66
74
|
@staticmethod
|
67
75
|
def _comment_tok_src(tok: tks.Token) -> str:
|
68
76
|
check.state(tok.name == 'COMMENT')
|
@@ -70,8 +78,8 @@ class _AttrDocAstVisitor(ast.NodeVisitor):
|
|
70
78
|
check.state(tc[0] == '#')
|
71
79
|
return tc[1:].lstrip()
|
72
80
|
|
73
|
-
def
|
74
|
-
self.
|
81
|
+
def _set_attr_target(self, node: ast.Name) -> None:
|
82
|
+
self._attr_target = '.'.join([*self._class_stack, node.id])
|
75
83
|
|
76
84
|
ad = _EMPTY_ATTR_DOC
|
77
85
|
|
@@ -97,15 +105,15 @@ class _AttrDocAstVisitor(ast.NodeVisitor):
|
|
97
105
|
ad = dc.replace(ad, preceding_comment='\n'.join(reversed(pll)))
|
98
106
|
|
99
107
|
if ad is not _EMPTY_ATTR_DOC:
|
100
|
-
self._attr_docs[
|
108
|
+
self._attr_docs[self._attr_target] = ad
|
101
109
|
|
102
110
|
def visit_AnnAssign(self, node: ast.AnnAssign) -> ta.Any:
|
103
111
|
if isinstance(target := node.target, ast.Name):
|
104
|
-
self.
|
112
|
+
self._set_attr_target(target)
|
105
113
|
|
106
114
|
def visit_Assign(self, node: ast.Assign) -> ta.Any:
|
107
115
|
if len(node.targets) == 1 and isinstance(target := node.targets[0], ast.Name):
|
108
|
-
self.
|
116
|
+
self._set_attr_target(target) # noqa
|
109
117
|
|
110
118
|
#
|
111
119
|
|
@@ -115,12 +123,13 @@ class _AttrDocAstVisitor(ast.NodeVisitor):
|
|
115
123
|
isinstance(node.value.value, str) and
|
116
124
|
self._prev_node_type in (ast.Assign, ast.AnnAssign)
|
117
125
|
):
|
118
|
-
|
119
|
-
|
120
|
-
ex = self._attr_docs.get(self.
|
126
|
+
if self._attr_target:
|
127
|
+
docstring = inspect.cleandoc(node.value.value)
|
128
|
+
ex = self._attr_docs.get(self._attr_target, _EMPTY_ATTR_DOC)
|
121
129
|
check.none(ex.docstring)
|
122
|
-
self._attr_docs[self.
|
123
|
-
|
130
|
+
self._attr_docs[self._attr_target] = dc.replace(ex, docstring=docstring)
|
131
|
+
|
132
|
+
self._attr_target = None
|
124
133
|
|
125
134
|
|
126
135
|
def extract_attr_docs(src: str) -> ta.Mapping[str, AttrDoc]:
|
@@ -163,15 +172,25 @@ if __name__ == '__main__':
|
|
163
172
|
with open(args.file) as f:
|
164
173
|
src = f.read()
|
165
174
|
|
175
|
+
#
|
176
|
+
|
166
177
|
attr_docs = extract_attr_docs(src)
|
167
178
|
|
168
179
|
#
|
169
180
|
|
181
|
+
nested_attr_docs: dict = {}
|
182
|
+
for k, v in attr_docs.items():
|
183
|
+
cur = nested_attr_docs
|
184
|
+
*kps, ekp = [f'.{kp}' for kp in k.split('.')]
|
185
|
+
for kp in kps:
|
186
|
+
cur = cur.setdefault(kp, {})
|
187
|
+
check.not_in(ekp, cur)
|
188
|
+
cur[ekp] = {k: v for k, v in dc.asdict(v).items() if v}
|
189
|
+
|
190
|
+
#
|
191
|
+
|
170
192
|
import json
|
171
193
|
|
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
|
-
}))
|
194
|
+
print(json.dumps(nested_attr_docs, indent=2))
|
176
195
|
|
177
196
|
_main()
|
omdev/py/findimports.py
CHANGED
omdev/py/srcheaders.py
ADDED
@@ -0,0 +1,98 @@
|
|
1
|
+
import ast
|
2
|
+
import dataclasses as dc
|
3
|
+
import typing as ta
|
4
|
+
|
5
|
+
from omlish.lite.check import check
|
6
|
+
|
7
|
+
from ..tokens import all as tks
|
8
|
+
|
9
|
+
|
10
|
+
##
|
11
|
+
|
12
|
+
|
13
|
+
@dc.dataclass(frozen=True)
|
14
|
+
class PyHeaderLine:
|
15
|
+
kind: ta.Literal['comment', 'string']
|
16
|
+
src: str
|
17
|
+
content: str
|
18
|
+
line: int
|
19
|
+
col: int
|
20
|
+
|
21
|
+
|
22
|
+
def get_py_header_lines(src: str) -> list[PyHeaderLine]:
|
23
|
+
ret: list[PyHeaderLine] = []
|
24
|
+
|
25
|
+
src_toks = tks.iter_src_to_tokens(src)
|
26
|
+
hdr_toks = (
|
27
|
+
tok
|
28
|
+
for tok in src_toks
|
29
|
+
if tok.name == 'COMMENT' or
|
30
|
+
(tok.name not in tks.WS_NAMES and tok.name != 'NL')
|
31
|
+
)
|
32
|
+
|
33
|
+
for tok in hdr_toks:
|
34
|
+
if tok.name == 'COMMENT':
|
35
|
+
cs = tok.src.lstrip()
|
36
|
+
check.state(cs.startswith('#'))
|
37
|
+
cs = cs[1:].lstrip()
|
38
|
+
ret.append(PyHeaderLine(
|
39
|
+
kind='comment',
|
40
|
+
src=tok.src,
|
41
|
+
content=cs,
|
42
|
+
line=check.isinstance(tok.line, int),
|
43
|
+
col=check.isinstance(tok.utf8_byte_offset, int),
|
44
|
+
))
|
45
|
+
|
46
|
+
elif tok.name == 'STRING':
|
47
|
+
ss = ast.literal_eval(tok.src)
|
48
|
+
ret.append(PyHeaderLine(
|
49
|
+
kind='string',
|
50
|
+
src=tok.src,
|
51
|
+
content=ss,
|
52
|
+
line=check.isinstance(tok.line, int),
|
53
|
+
col=check.isinstance(tok.utf8_byte_offset, int),
|
54
|
+
))
|
55
|
+
|
56
|
+
else:
|
57
|
+
break
|
58
|
+
|
59
|
+
return ret
|
60
|
+
|
61
|
+
|
62
|
+
##
|
63
|
+
|
64
|
+
|
65
|
+
# @omlish-manifest
|
66
|
+
_CLI_MODULE = {'$omdev.cli.types.CliModule': {
|
67
|
+
'cmd_name': 'py/srcheaders',
|
68
|
+
'mod_name': __name__,
|
69
|
+
}}
|
70
|
+
|
71
|
+
|
72
|
+
if __name__ == '__main__':
|
73
|
+
def _main() -> None:
|
74
|
+
import argparse
|
75
|
+
|
76
|
+
parser = argparse.ArgumentParser()
|
77
|
+
parser.add_argument('file')
|
78
|
+
args = parser.parse_args()
|
79
|
+
|
80
|
+
#
|
81
|
+
|
82
|
+
with open(args.file) as f:
|
83
|
+
src = f.read()
|
84
|
+
|
85
|
+
#
|
86
|
+
|
87
|
+
hls = get_py_header_lines(src)
|
88
|
+
|
89
|
+
#
|
90
|
+
|
91
|
+
import json
|
92
|
+
|
93
|
+
print(json.dumps(
|
94
|
+
[dc.asdict(hl) for hl in hls],
|
95
|
+
indent=2,
|
96
|
+
))
|
97
|
+
|
98
|
+
_main()
|
omdev/scripts/ci.py
CHANGED
@@ -1096,6 +1096,9 @@ log = logging.getLogger(__name__)
|
|
1096
1096
|
# ../../../omlish/lite/maybes.py
|
1097
1097
|
|
1098
1098
|
|
1099
|
+
##
|
1100
|
+
|
1101
|
+
|
1099
1102
|
class Maybe(ta.Generic[T]):
|
1100
1103
|
@property
|
1101
1104
|
@abc.abstractmethod
|
@@ -1136,6 +1139,19 @@ class _Maybe(Maybe[T], tuple):
|
|
1136
1139
|
Maybe._empty = tuple.__new__(_Maybe, ()) # noqa
|
1137
1140
|
|
1138
1141
|
|
1142
|
+
##
|
1143
|
+
|
1144
|
+
|
1145
|
+
@functools.singledispatch
|
1146
|
+
def as_maybe(obj: ta.Any) -> Maybe:
|
1147
|
+
raise TypeError(obj)
|
1148
|
+
|
1149
|
+
|
1150
|
+
@as_maybe.register
|
1151
|
+
def _(obj: Maybe) -> Maybe:
|
1152
|
+
return obj
|
1153
|
+
|
1154
|
+
|
1139
1155
|
########################################
|
1140
1156
|
# ../../../omlish/lite/reflect.py
|
1141
1157
|
|
omdev/scripts/interp.py
CHANGED
@@ -1069,6 +1069,9 @@ json_dumps_compact: ta.Callable[..., str] = functools.partial(json.dumps, **JSON
|
|
1069
1069
|
# ../../../omlish/lite/maybes.py
|
1070
1070
|
|
1071
1071
|
|
1072
|
+
##
|
1073
|
+
|
1074
|
+
|
1072
1075
|
class Maybe(ta.Generic[T]):
|
1073
1076
|
@property
|
1074
1077
|
@abc.abstractmethod
|
@@ -1109,6 +1112,19 @@ class _Maybe(Maybe[T], tuple):
|
|
1109
1112
|
Maybe._empty = tuple.__new__(_Maybe, ()) # noqa
|
1110
1113
|
|
1111
1114
|
|
1115
|
+
##
|
1116
|
+
|
1117
|
+
|
1118
|
+
@functools.singledispatch
|
1119
|
+
def as_maybe(obj: ta.Any) -> Maybe:
|
1120
|
+
raise TypeError(obj)
|
1121
|
+
|
1122
|
+
|
1123
|
+
@as_maybe.register
|
1124
|
+
def _(obj: Maybe) -> Maybe:
|
1125
|
+
return obj
|
1126
|
+
|
1127
|
+
|
1112
1128
|
########################################
|
1113
1129
|
# ../../../omlish/lite/reflect.py
|
1114
1130
|
|
omdev/scripts/pyproject.py
CHANGED
@@ -2376,6 +2376,9 @@ log = logging.getLogger(__name__)
|
|
2376
2376
|
# ../../../omlish/lite/maybes.py
|
2377
2377
|
|
2378
2378
|
|
2379
|
+
##
|
2380
|
+
|
2381
|
+
|
2379
2382
|
class Maybe(ta.Generic[T]):
|
2380
2383
|
@property
|
2381
2384
|
@abc.abstractmethod
|
@@ -2416,6 +2419,19 @@ class _Maybe(Maybe[T], tuple):
|
|
2416
2419
|
Maybe._empty = tuple.__new__(_Maybe, ()) # noqa
|
2417
2420
|
|
2418
2421
|
|
2422
|
+
##
|
2423
|
+
|
2424
|
+
|
2425
|
+
@functools.singledispatch
|
2426
|
+
def as_maybe(obj: ta.Any) -> Maybe:
|
2427
|
+
raise TypeError(obj)
|
2428
|
+
|
2429
|
+
|
2430
|
+
@as_maybe.register
|
2431
|
+
def _(obj: Maybe) -> Maybe:
|
2432
|
+
return obj
|
2433
|
+
|
2434
|
+
|
2419
2435
|
########################################
|
2420
2436
|
# ../../../omlish/lite/reflect.py
|
2421
2437
|
|
omdev/tokens/all.py
CHANGED
@@ -30,6 +30,7 @@ UNIMPORTANT_WS = TokenNames.UNIMPORTANT_WS # noqa
|
|
30
30
|
NON_CODING_TOKENS = TokenNames.NON_CODING_TOKENS # noqa
|
31
31
|
|
32
32
|
curly_escape = Tokenization.curly_escape # noqa
|
33
|
+
iter_src_to_tokens = Tokenization.iter_src_to_tokens # noqa
|
33
34
|
src_to_tokens = Tokenization.src_to_tokens # noqa
|
34
35
|
parse_string_literal = Tokenization.parse_string_literal # noqa
|
35
36
|
tokens_to_src = Tokenization.tokens_to_src # noqa
|
omdev/tokens/tokenizert.py
CHANGED
@@ -82,13 +82,12 @@ class Tokenization:
|
|
82
82
|
return (s, '', '')
|
83
83
|
|
84
84
|
@classmethod
|
85
|
-
def
|
85
|
+
def iter_src_to_tokens(cls, src: str) -> ta.Iterator[Token]:
|
86
86
|
tokenize_target = io.StringIO(src)
|
87
87
|
lines = ('', *tokenize_target)
|
88
88
|
|
89
89
|
tokenize_target.seek(0)
|
90
90
|
|
91
|
-
tokens = []
|
92
91
|
last_line = 1
|
93
92
|
last_col = 0
|
94
93
|
end_offset = 0
|
@@ -106,20 +105,20 @@ class Tokenization:
|
|
106
105
|
while cls._ESCAPED_NL_RE.search(newtok):
|
107
106
|
ws, nl, newtok = cls._re_partition(cls._ESCAPED_NL_RE, newtok)
|
108
107
|
if ws:
|
109
|
-
|
108
|
+
yield Token(TokenNames.UNIMPORTANT_WS, ws, last_line, end_offset)
|
110
109
|
end_offset += len(ws.encode())
|
111
|
-
|
110
|
+
yield Token(TokenNames.ESCAPED_NL, nl, last_line, end_offset)
|
112
111
|
end_offset = 0
|
113
112
|
last_line += 1
|
114
113
|
if newtok:
|
115
|
-
|
114
|
+
yield Token(TokenNames.UNIMPORTANT_WS, newtok, sline, 0)
|
116
115
|
end_offset = len(newtok.encode())
|
117
116
|
else:
|
118
117
|
end_offset = 0
|
119
118
|
|
120
119
|
elif scol > last_col:
|
121
120
|
newtok = line[last_col:scol]
|
122
|
-
|
121
|
+
yield Token(TokenNames.UNIMPORTANT_WS, newtok, sline, end_offset)
|
123
122
|
end_offset += len(newtok.encode())
|
124
123
|
|
125
124
|
tok_name = tokenize.tok_name[tok_type]
|
@@ -130,14 +129,16 @@ class Tokenization:
|
|
130
129
|
ecol += len(new_tok_text) - len(tok_text)
|
131
130
|
tok_text = new_tok_text
|
132
131
|
|
133
|
-
|
132
|
+
yield Token(tok_name, tok_text, sline, end_offset)
|
134
133
|
last_line, last_col = eline, ecol
|
135
134
|
if sline != eline:
|
136
135
|
end_offset = len(lines[last_line][:last_col].encode())
|
137
136
|
else:
|
138
137
|
end_offset += len(tok_text.encode())
|
139
138
|
|
140
|
-
|
139
|
+
@classmethod
|
140
|
+
def src_to_tokens(cls, src: str) -> ta.List[Token]:
|
141
|
+
return list(cls.iter_src_to_tokens(src))
|
141
142
|
|
142
143
|
@classmethod
|
143
144
|
def parse_string_literal(cls, src: str) -> ta.Tuple[str, str]:
|
@@ -1,6 +1,6 @@
|
|
1
1
|
Metadata-Version: 2.4
|
2
2
|
Name: omdev
|
3
|
-
Version: 0.0.0.
|
3
|
+
Version: 0.0.0.dev286
|
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.dev286
|
16
16
|
Provides-Extra: all
|
17
17
|
Requires-Dist: black~=25.1; extra == "all"
|
18
18
|
Requires-Dist: pycparser~=2.22; extra == "all"
|
@@ -1,4 +1,4 @@
|
|
1
|
-
omdev/.manifests.json,sha256=
|
1
|
+
omdev/.manifests.json,sha256=itAg3qiuZHPqPj0Eb1rvKeRsuhQ8VeoZTPTsZ5aVc-U,10669
|
2
2
|
omdev/__about__.py,sha256=OgO_8azOzKriF2qPeDWRLcRe9p1XW5kYdJCq5vewff0,1171
|
3
3
|
omdev/__init__.py,sha256=47DEQpj8HBSa-_TImW-5JCeuQeRkm5NMpJWZG3hSuFU,0
|
4
4
|
omdev/cmake.py,sha256=9rfSvFHPmKDj9ngvfDB2vK8O-xO_ZwUm7hMKLWA-yOw,4578
|
@@ -194,10 +194,11 @@ omdev/ptk/__init__.py,sha256=Km0B3IYeljiFfSo7uywH55EU7mo1fZOrbUs8tN735rI,4957
|
|
194
194
|
omdev/ptk/apps/__init__.py,sha256=47DEQpj8HBSa-_TImW-5JCeuQeRkm5NMpJWZG3hSuFU,0
|
195
195
|
omdev/ptk/apps/ncdu.py,sha256=dOkEJoc2Wjv1u_Uge7Vpei_LvXldoPP5833Eia355tc,4548
|
196
196
|
omdev/py/__init__.py,sha256=u7tLEfRTnPVtWPmKK_ZIvnFkZwTe1q44UQ53cvsix3k,41
|
197
|
-
omdev/py/attrdocs.py,sha256=
|
197
|
+
omdev/py/attrdocs.py,sha256=5qR5Wo5VWiKgf7Jd-pmYSsUnGda32FoOJpKG9rGMuPw,5113
|
198
198
|
omdev/py/bracepy.py,sha256=PPPoTMj4FJ5Lk3GGPEEWBGU7Kl1eCJBApSJnRvRj2Ms,2753
|
199
199
|
omdev/py/classdot.py,sha256=CAHL39nhQWnELVe1L6HIOyLha2h3pf4f1vKyLZTHhkM,1666
|
200
|
-
omdev/py/findimports.py,sha256=
|
200
|
+
omdev/py/findimports.py,sha256=V3GcFhqYOiPQtAOpTi4Pmeb3_c5mKqlEwah7v9vCBjg,2476
|
201
|
+
omdev/py/srcheaders.py,sha256=cMopJr-QpOmzEBow-4mVupxdULE8QdSaSLH2aJV5Xxg,1993
|
201
202
|
omdev/py/scripts/__init__.py,sha256=47DEQpj8HBSa-_TImW-5JCeuQeRkm5NMpJWZG3hSuFU,0
|
202
203
|
omdev/py/scripts/bumpversion.py,sha256=2NnfRsJiZNTg-LubIwXCm2vklG7-kIR8_xFUEZNxtiY,1119
|
203
204
|
omdev/py/scripts/execrss.py,sha256=mR0G0wERBYtQmVIn63lCIIFb5zkCM6X_XOENDFYDBKc,651
|
@@ -219,14 +220,14 @@ omdev/pyproject/resources/__init__.py,sha256=47DEQpj8HBSa-_TImW-5JCeuQeRkm5NMpJW
|
|
219
220
|
omdev/pyproject/resources/docker-dev.sh,sha256=DHkz5D18jok_oDolfg2mqrvGRWFoCe9GQo04dR1czcc,838
|
220
221
|
omdev/pyproject/resources/python.sh,sha256=rFaN4SiJ9hdLDXXsDTwugI6zsw6EPkgYMmtacZeTbvw,749
|
221
222
|
omdev/scripts/__init__.py,sha256=MKCvUAEQwsIvwLixwtPlpBqmkMXLCnjjXyAXvVpDwVk,91
|
222
|
-
omdev/scripts/ci.py,sha256=
|
223
|
-
omdev/scripts/interp.py,sha256=
|
224
|
-
omdev/scripts/pyproject.py,sha256=
|
223
|
+
omdev/scripts/ci.py,sha256=JDOd6Z0GLZD7f487DZQwRF_T4XVkWPNOjjNR81Tfms8,335706
|
224
|
+
omdev/scripts/interp.py,sha256=xIPlK_zF_6qqyZev8hsCrx5YQYMAPkYpa1i61ouOyEc,151774
|
225
|
+
omdev/scripts/pyproject.py,sha256=aHyxQmxNI2V_xB_Kqqw2mx0lOtEciA8b_-loAmNqR9w,260824
|
225
226
|
omdev/scripts/slowcat.py,sha256=lssv4yrgJHiWfOiHkUut2p8E8Tq32zB-ujXESQxFFHY,2728
|
226
227
|
omdev/scripts/tmpexec.py,sha256=WTYcf56Tj2qjYV14AWmV8SfT0u6Y8eIU6cKgQRvEK3c,1442
|
227
228
|
omdev/tokens/__init__.py,sha256=47DEQpj8HBSa-_TImW-5JCeuQeRkm5NMpJWZG3hSuFU,0
|
228
|
-
omdev/tokens/all.py,sha256=
|
229
|
-
omdev/tokens/tokenizert.py,sha256
|
229
|
+
omdev/tokens/all.py,sha256=a_fJ9vp9_Sky4OgtxQ6e6JXwvFSaY0XluVjKeBYCheU,770
|
230
|
+
omdev/tokens/tokenizert.py,sha256=KYGgMX0eeEXZxyztIWgXTO7d9bgVgEyiWTXw9hjoPQY,7884
|
230
231
|
omdev/tokens/utils.py,sha256=vF2c8vHwe1zfSXNeU0q1CaA_66oZl0YdkqBKzNhFsAM,1758
|
231
232
|
omdev/tools/__init__.py,sha256=iVJAOQ0viGTQOm0DLX4uZLro-9jOioYJGLg9s0kDx1A,78
|
232
233
|
omdev/tools/cloc.py,sha256=jYlMHBae9oGKN4VKeBGuqjiQNcM2be7KIoTF0oNwx_I,5205
|
@@ -258,9 +259,9 @@ omdev/tools/json/rendering.py,sha256=tMcjOW5edfozcMSTxxvF7WVTsbYLoe9bCKFh50qyaGw
|
|
258
259
|
omdev/tools/pawk/__init__.py,sha256=47DEQpj8HBSa-_TImW-5JCeuQeRkm5NMpJWZG3hSuFU,0
|
259
260
|
omdev/tools/pawk/__main__.py,sha256=VCqeRVnqT1RPEoIrqHFSu4PXVMg4YEgF4qCQm90-eRI,66
|
260
261
|
omdev/tools/pawk/pawk.py,sha256=zsEkfQX0jF5bn712uqPAyBSdJt2dno1LH2oeSMNfXQI,11424
|
261
|
-
omdev-0.0.0.
|
262
|
-
omdev-0.0.0.
|
263
|
-
omdev-0.0.0.
|
264
|
-
omdev-0.0.0.
|
265
|
-
omdev-0.0.0.
|
266
|
-
omdev-0.0.0.
|
262
|
+
omdev-0.0.0.dev286.dist-info/licenses/LICENSE,sha256=B_hVtavaA8zCYDW99DYdcpDLKz1n3BBRjZrcbv8uG8c,1451
|
263
|
+
omdev-0.0.0.dev286.dist-info/METADATA,sha256=IzjfM0MT5p1WggRTYQ5Q9ZXsStyITdl9yYt0WWcgtcw,1478
|
264
|
+
omdev-0.0.0.dev286.dist-info/WHEEL,sha256=CmyFI0kx5cdEMTLiONQRbGQwjIoR1aIYB7eCAQ4KPJ0,91
|
265
|
+
omdev-0.0.0.dev286.dist-info/entry_points.txt,sha256=dHLXFmq5D9B8qUyhRtFqTGWGxlbx3t5ejedjrnXNYLU,33
|
266
|
+
omdev-0.0.0.dev286.dist-info/top_level.txt,sha256=1nr7j30fEWgLYHW3lGR9pkdHkb7knv1U1ES1XRNVQ6k,6
|
267
|
+
omdev-0.0.0.dev286.dist-info/RECORD,,
|
File without changes
|
File without changes
|
File without changes
|
File without changes
|