omdev 0.0.0.dev393__py3-none-any.whl → 0.0.0.dev395__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/cache/data/manifests.py +3 -2
- omdev/cli/main.py +5 -2
- omdev/imgur.py +1 -1
- omdev/intellij/ides.py +1 -1
- omdev/manifests/_dumping.py +1586 -0
- omdev/manifests/building.py +15 -17
- omdev/manifests/dumping.py +98 -75
- omdev/manifests/main.py +0 -2
- omdev/precheck/manifests.py +1 -1
- omdev/tools/git/messages.py +2 -2
- {omdev-0.0.0.dev393.dist-info → omdev-0.0.0.dev395.dist-info}/METADATA +2 -2
- {omdev-0.0.0.dev393.dist-info → omdev-0.0.0.dev395.dist-info}/RECORD +16 -15
- {omdev-0.0.0.dev393.dist-info → omdev-0.0.0.dev395.dist-info}/WHEEL +0 -0
- {omdev-0.0.0.dev393.dist-info → omdev-0.0.0.dev395.dist-info}/entry_points.txt +0 -0
- {omdev-0.0.0.dev393.dist-info → omdev-0.0.0.dev395.dist-info}/licenses/LICENSE +0 -0
- {omdev-0.0.0.dev393.dist-info → omdev-0.0.0.dev395.dist-info}/top_level.txt +0 -0
omdev/manifests/building.py
CHANGED
@@ -1,5 +1,3 @@
|
|
1
|
-
# ruff: noqa: UP006 UP007 UP045
|
2
|
-
# @omlish-lite
|
3
1
|
"""
|
4
2
|
TODO:
|
5
3
|
- verify classes instantiate
|
@@ -39,12 +37,11 @@ from omlish.lite.imports import import_attr
|
|
39
37
|
from omlish.lite.json import json_dumps_pretty
|
40
38
|
from omlish.lite.logs import log
|
41
39
|
from omlish.manifests.base import ModAttrManifest
|
42
|
-
from omlish.manifests.
|
40
|
+
from omlish.manifests.globals import MANIFEST_LOADER
|
43
41
|
from omlish.manifests.types import Manifest
|
44
42
|
from omlish.manifests.types import ManifestOrigin
|
45
43
|
|
46
44
|
from .. import magic
|
47
|
-
from .dumping import _ModuleManifestDumper
|
48
45
|
|
49
46
|
|
50
47
|
T = ta.TypeVar('T')
|
@@ -65,7 +62,7 @@ _NAME_PAT_PART = rf'(?P<name>{_IDENT_PAT_PART})'
|
|
65
62
|
@dc.dataclass(frozen=True)
|
66
63
|
class _ManifestGlobalPat:
|
67
64
|
name_pat: re.Pattern
|
68
|
-
skip_pat:
|
65
|
+
skip_pat: re.Pattern | None = None
|
69
66
|
|
70
67
|
|
71
68
|
_MANIFEST_GLOBAL_PATS: ta.Sequence[_ManifestGlobalPat] = [
|
@@ -114,7 +111,8 @@ class AttrManifestDumperTarget(ta.TypedDict):
|
|
114
111
|
|
115
112
|
@cached_nullary
|
116
113
|
def _module_manifest_dumper_payload_src() -> str:
|
117
|
-
|
114
|
+
from . import _dumping
|
115
|
+
return inspect.getsource(_dumping)
|
118
116
|
|
119
117
|
|
120
118
|
class ManifestBuilder:
|
@@ -123,8 +121,8 @@ class ManifestBuilder:
|
|
123
121
|
base_dir: str,
|
124
122
|
concurrency: int = 8,
|
125
123
|
*,
|
126
|
-
subprocess_kwargs: ta.
|
127
|
-
module_dumper_payload_src:
|
124
|
+
subprocess_kwargs: ta.Mapping[str, ta.Any] | None = None,
|
125
|
+
module_dumper_payload_src: str | None = None,
|
128
126
|
) -> None:
|
129
127
|
super().__init__()
|
130
128
|
|
@@ -161,7 +159,7 @@ class ManifestBuilder:
|
|
161
159
|
|
162
160
|
#
|
163
161
|
|
164
|
-
def collect_module_manifest_targets(self, fm: FileModule) ->
|
162
|
+
def collect_module_manifest_targets(self, fm: FileModule) -> list[ManifestDumperTarget]:
|
165
163
|
with open(os.path.join(self._base_dir, fm.file)) as f: # noqa
|
166
164
|
src = f.read()
|
167
165
|
|
@@ -180,8 +178,8 @@ class ManifestBuilder:
|
|
180
178
|
preparer=prepare,
|
181
179
|
)
|
182
180
|
|
183
|
-
origins:
|
184
|
-
targets:
|
181
|
+
origins: list[ManifestOrigin] = []
|
182
|
+
targets: list[ManifestDumperTarget] = []
|
185
183
|
for m in magics:
|
186
184
|
if m.body:
|
187
185
|
body = m.body
|
@@ -268,7 +266,7 @@ class ManifestBuilder:
|
|
268
266
|
targets: ta.Sequence[ManifestDumperTarget],
|
269
267
|
*,
|
270
268
|
shell_wrap: bool = True,
|
271
|
-
warn_threshold_s:
|
269
|
+
warn_threshold_s: float | None = 1.,
|
272
270
|
):
|
273
271
|
dumper_payload_src: str
|
274
272
|
if self._module_dumper_payload_src is not None:
|
@@ -318,8 +316,8 @@ class ManifestBuilder:
|
|
318
316
|
self,
|
319
317
|
fm: FileModule,
|
320
318
|
sp_outs: ta.Sequence[ta.Mapping[str, ta.Any]],
|
321
|
-
) ->
|
322
|
-
out:
|
319
|
+
) -> list[Manifest]:
|
320
|
+
out: list[Manifest] = []
|
323
321
|
for sp_out in sp_outs:
|
324
322
|
value = sp_out['value']
|
325
323
|
|
@@ -380,7 +378,7 @@ class ManifestBuilder:
|
|
380
378
|
name: str,
|
381
379
|
*,
|
382
380
|
write: bool = False,
|
383
|
-
) ->
|
381
|
+
) -> list[Manifest]:
|
384
382
|
pkg_dir = os.path.join(self._base_dir, name)
|
385
383
|
if not os.path.isdir(pkg_dir) or not os.path.isfile(os.path.join(pkg_dir, '__init__.py')):
|
386
384
|
raise Exception(pkg_dir)
|
@@ -390,7 +388,7 @@ class ManifestBuilder:
|
|
390
388
|
[pkg_dir],
|
391
389
|
keys=[MANIFEST_MAGIC_KEY],
|
392
390
|
))
|
393
|
-
manifests:
|
391
|
+
manifests: list[Manifest] = list(itertools.chain.from_iterable(await asyncio.gather(*[
|
394
392
|
self._spawn(
|
395
393
|
self.build_module_manifests,
|
396
394
|
os.path.relpath(file, self._base_dir),
|
@@ -430,4 +428,4 @@ def check_package_manifests(
|
|
430
428
|
if key.startswith('$.'):
|
431
429
|
key = f'${name}{key[1:]}'
|
432
430
|
cls = MANIFEST_LOADER.load_cls(key)
|
433
|
-
value = cls
|
431
|
+
value = MANIFEST_LOADER.instantiate_cls(cls, **value_dct) # noqa
|
omdev/manifests/dumping.py
CHANGED
@@ -1,7 +1,17 @@
|
|
1
1
|
# ruff: noqa: UP006 UP007 UP037 UP045
|
2
2
|
# @omlish-lite
|
3
|
+
# @omlish-amalg _dumping.py
|
4
|
+
import collections.abc
|
5
|
+
import dataclasses as dc
|
6
|
+
import functools
|
7
|
+
import importlib
|
8
|
+
import json
|
3
9
|
import typing as ta
|
4
10
|
|
11
|
+
from omlish.lite.cached import cached_nullary
|
12
|
+
from omlish.lite.marshal import marshal_obj
|
13
|
+
from omlish.lite.marshal import unmarshal_obj
|
14
|
+
|
5
15
|
|
6
16
|
##
|
7
17
|
|
@@ -11,7 +21,7 @@ class _ModuleManifestDumper:
|
|
11
21
|
self,
|
12
22
|
spec: str,
|
13
23
|
*,
|
14
|
-
output:
|
24
|
+
output: ta.Optional[ta.Callable[[str], None]] = None,
|
15
25
|
) -> None:
|
16
26
|
super().__init__()
|
17
27
|
|
@@ -20,21 +30,70 @@ class _ModuleManifestDumper:
|
|
20
30
|
output = print
|
21
31
|
self._output = output
|
22
32
|
|
23
|
-
|
33
|
+
#
|
34
|
+
|
35
|
+
@cached_nullary
|
36
|
+
def _mod(self) -> ta.Any:
|
37
|
+
return importlib.import_module(self._spec)
|
38
|
+
|
39
|
+
#
|
40
|
+
|
41
|
+
def _build_manifest_dct(self, manifest: ta.Any) -> ta.Mapping[str, ta.Any]:
|
42
|
+
manifest_json = json.dumps(marshal_obj(manifest))
|
43
|
+
manifest_dct = json.loads(manifest_json)
|
44
|
+
|
45
|
+
rt_manifest: ta.Any = unmarshal_obj(manifest_dct, type(manifest))
|
46
|
+
rt_manifest_json: ta.Any = json.dumps(marshal_obj(rt_manifest))
|
47
|
+
rt_manifest_dct: ta.Any = json.loads(rt_manifest_json)
|
48
|
+
if rt_manifest_dct != manifest_dct:
|
49
|
+
raise Exception(
|
50
|
+
f'Manifest failed to roundtrip: '
|
51
|
+
f'{manifest} => {manifest_dct} != {rt_manifest} => {rt_manifest_dct}',
|
52
|
+
)
|
53
|
+
|
54
|
+
return manifest_dct
|
55
|
+
|
56
|
+
#
|
57
|
+
|
58
|
+
def _load_attr_manifest(self, target: dict) -> dict:
|
59
|
+
attr = target['attr']
|
60
|
+
manifest = getattr(self._mod(), attr)
|
61
|
+
|
62
|
+
if dc.is_dataclass(manifest):
|
63
|
+
# Support static dataclasses
|
64
|
+
if isinstance(manifest, type):
|
65
|
+
manifest = manifest()
|
24
66
|
|
25
|
-
|
26
|
-
if (mod := self._imported_mod) is not None:
|
27
|
-
return mod
|
67
|
+
manifest_dct = self._build_manifest_dct(manifest)
|
28
68
|
|
29
|
-
|
69
|
+
cls = type(manifest)
|
70
|
+
key = f'${cls.__module__}.{cls.__qualname__}'
|
30
71
|
|
31
|
-
|
72
|
+
return {key: manifest_dct}
|
32
73
|
|
33
|
-
|
34
|
-
|
74
|
+
elif isinstance(manifest, collections.abc.Mapping):
|
75
|
+
[(key, manifest_dct)] = manifest.items()
|
76
|
+
if not key.startswith('$'): # noqa
|
77
|
+
raise Exception(f'Bad key: {key}')
|
78
|
+
|
79
|
+
if not isinstance(manifest_dct, collections.abc.Mapping):
|
80
|
+
raise Exception(f'Bad value: {manifest_dct}')
|
81
|
+
|
82
|
+
manifest_json = json.dumps(manifest_dct)
|
83
|
+
|
84
|
+
rt_manifest_dct = json.loads(manifest_json)
|
85
|
+
if rt_manifest_dct != manifest_dct:
|
86
|
+
raise Exception(f'Manifest failed to roundtrip: {manifest_dct} != {rt_manifest_dct}')
|
87
|
+
|
88
|
+
return {key: manifest_dct}
|
89
|
+
|
90
|
+
else:
|
91
|
+
raise TypeError(f'Manifest must be dataclass or mapping: {manifest!r}')
|
92
|
+
|
93
|
+
#
|
35
94
|
|
36
95
|
class _LazyGlobals(dict):
|
37
|
-
def __init__(self, get_missing:
|
96
|
+
def __init__(self, get_missing: ta.Callable[[str], ta.Any]) -> None:
|
38
97
|
super().__init__()
|
39
98
|
|
40
99
|
self.__get_missing = get_missing
|
@@ -42,82 +101,46 @@ class _ModuleManifestDumper:
|
|
42
101
|
def __missing__(self, key):
|
43
102
|
return self.__get_missing(key)
|
44
103
|
|
45
|
-
def
|
46
|
-
|
47
|
-
|
48
|
-
|
49
|
-
|
50
|
-
|
51
|
-
import functools
|
52
|
-
import importlib
|
53
|
-
import json
|
54
|
-
|
55
|
-
cls: 'ta.Any'
|
56
|
-
|
57
|
-
out = []
|
58
|
-
for target in targets:
|
59
|
-
origin = target['origin']
|
60
|
-
|
61
|
-
if target['kind'] == 'attr':
|
62
|
-
attr = target['attr']
|
63
|
-
manifest = getattr(self._mod(), attr)
|
104
|
+
def _load_inline_manifest(self, target: dict) -> dict:
|
105
|
+
cls: ta.Any = importlib.import_module(target['cls_mod_name'])
|
106
|
+
for p in target['cls_qualname'].split('.'):
|
107
|
+
cls = getattr(cls, p)
|
108
|
+
if not isinstance(cls, type) or not dc.is_dataclass(cls):
|
109
|
+
raise TypeError(cls)
|
64
110
|
|
65
|
-
|
66
|
-
|
67
|
-
if isinstance(manifest, type):
|
68
|
-
manifest = manifest()
|
111
|
+
cls_fac = functools.partial(cls, **target['kwargs'])
|
112
|
+
eval_attr_name = '__manifest_factory__'
|
69
113
|
|
70
|
-
|
71
|
-
|
72
|
-
|
114
|
+
inl_glo = self._LazyGlobals(lambda k: getattr(self._mod(), k))
|
115
|
+
inl_glo.update({
|
116
|
+
eval_attr_name: cls_fac,
|
117
|
+
})
|
73
118
|
|
74
|
-
|
75
|
-
|
76
|
-
raise Exception(f'Manifest failed to roundtrip: {manifest} => {manifest_dct} != {rt_manifest}')
|
119
|
+
inl_src = eval_attr_name + target['init_src']
|
120
|
+
inl_code = compile(inl_src, '<magic>', 'eval')
|
77
121
|
|
78
|
-
|
79
|
-
out_value = {key: manifest_dct}
|
122
|
+
manifest = eval(inl_code, inl_glo) # noqa
|
80
123
|
|
81
|
-
|
82
|
-
[(key, manifest_dct)] = manifest.items()
|
83
|
-
if not key.startswith('$'): # noqa
|
84
|
-
raise Exception(f'Bad key: {key}')
|
124
|
+
manifest_dct = self._build_manifest_dct(manifest)
|
85
125
|
|
86
|
-
|
87
|
-
|
126
|
+
key = f'${cls.__module__}.{cls.__qualname__}'
|
127
|
+
return {key: manifest_dct}
|
88
128
|
|
89
|
-
|
90
|
-
rt_manifest_dct = json.loads(manifest_json)
|
91
|
-
if manifest_dct != rt_manifest_dct:
|
92
|
-
raise Exception(f'Manifest failed to roundtrip: {manifest_dct} != {rt_manifest_dct}')
|
129
|
+
#
|
93
130
|
|
94
|
-
|
131
|
+
def __call__(
|
132
|
+
self,
|
133
|
+
*targets: dict, # .build.ManifestDumperTarget
|
134
|
+
) -> None:
|
135
|
+
out = []
|
136
|
+
for target in targets:
|
137
|
+
origin = target['origin']
|
95
138
|
|
96
|
-
|
97
|
-
|
139
|
+
if target['kind'] == 'attr':
|
140
|
+
out_value = self._load_attr_manifest(target)
|
98
141
|
|
99
142
|
elif target['kind'] == 'inline':
|
100
|
-
|
101
|
-
for p in target['cls_qualname'].split('.'):
|
102
|
-
cls = getattr(cls, p)
|
103
|
-
if not isinstance(cls, type) or not dc.is_dataclass(cls):
|
104
|
-
raise TypeError(cls)
|
105
|
-
|
106
|
-
cls_fac = functools.partial(cls, **target['kwargs'])
|
107
|
-
eval_attr_name = '__manifest_factory__'
|
108
|
-
|
109
|
-
inl_glo = self._LazyGlobals(lambda k: getattr(self._mod(), k))
|
110
|
-
inl_glo.update({
|
111
|
-
eval_attr_name: cls_fac,
|
112
|
-
})
|
113
|
-
|
114
|
-
inl_src = eval_attr_name + target['init_src']
|
115
|
-
inl_code = compile(inl_src, '<magic>', 'eval')
|
116
|
-
manifest = eval(inl_code, inl_glo) # noqa
|
117
|
-
manifest_json = json.dumps(dc.asdict(manifest))
|
118
|
-
manifest_dct = json.loads(manifest_json)
|
119
|
-
key = f'${cls.__module__}.{cls.__qualname__}'
|
120
|
-
out_value = {key: manifest_dct}
|
143
|
+
out_value = self._load_inline_manifest(target)
|
121
144
|
|
122
145
|
else:
|
123
146
|
raise ValueError(target)
|
omdev/manifests/main.py
CHANGED
omdev/precheck/manifests.py
CHANGED
omdev/tools/git/messages.py
CHANGED
@@ -6,7 +6,7 @@ from omlish import cached
|
|
6
6
|
from omlish import check
|
7
7
|
from omlish import dataclasses as dc
|
8
8
|
from omlish import lang
|
9
|
-
from omlish.manifests import
|
9
|
+
from omlish.manifests import globals as manifest_globals
|
10
10
|
from omlish.manifests.base import ModAttrManifest
|
11
11
|
from omlish.manifests.base import NameAliasesManifest
|
12
12
|
from omlish.manifests.static import StaticModAttrManifest
|
@@ -54,7 +54,7 @@ class StaticGitMessageGeneratorManifest(StaticModAttrManifest, GitMessageGenerat
|
|
54
54
|
|
55
55
|
@cached.function
|
56
56
|
def load_message_generator_manifests() -> ta.Sequence[GitMessageGeneratorManifest]:
|
57
|
-
ldr =
|
57
|
+
ldr = manifest_globals.MANIFEST_LOADER
|
58
58
|
pkgs = ldr.scan_or_discover_pkgs(fallback_root=os.getcwd())
|
59
59
|
mfs = ldr.load(*pkgs, only=[GitMessageGeneratorManifest])
|
60
60
|
return [mf.value for mf in mfs]
|
@@ -1,6 +1,6 @@
|
|
1
1
|
Metadata-Version: 2.4
|
2
2
|
Name: omdev
|
3
|
-
Version: 0.0.0.
|
3
|
+
Version: 0.0.0.dev395
|
4
4
|
Summary: omdev
|
5
5
|
Author: wrmsr
|
6
6
|
License-Expression: BSD-3-Clause
|
@@ -14,7 +14,7 @@ Classifier: Programming Language :: Python :: 3.13
|
|
14
14
|
Requires-Python: >=3.13
|
15
15
|
Description-Content-Type: text/markdown
|
16
16
|
License-File: LICENSE
|
17
|
-
Requires-Dist: omlish==0.0.0.
|
17
|
+
Requires-Dist: omlish==0.0.0.dev395
|
18
18
|
Provides-Extra: all
|
19
19
|
Requires-Dist: black~=25.1; extra == "all"
|
20
20
|
Requires-Dist: pycparser~=2.22; extra == "all"
|
@@ -2,7 +2,7 @@ omdev/.manifests.json,sha256=IuYiaGqGlhwqLm9NpW2koVLjr5dmDxt-BztIpn3E9YQ,12170
|
|
2
2
|
omdev/__about__.py,sha256=fQNmzSa1MntcPSrzg_Vpo6JRU2RbXik2NqRz0oQCApE,1202
|
3
3
|
omdev/__init__.py,sha256=47DEQpj8HBSa-_TImW-5JCeuQeRkm5NMpJWZG3hSuFU,0
|
4
4
|
omdev/cmake.py,sha256=9rfSvFHPmKDj9ngvfDB2vK8O-xO_ZwUm7hMKLWA-yOw,4578
|
5
|
-
omdev/imgur.py,sha256=
|
5
|
+
omdev/imgur.py,sha256=oG4jZH2EAk1my0JzoPNes-4LCtF2_aU08vmKbGzmuxo,3129
|
6
6
|
omdev/pip.py,sha256=PqzAWDO_CbiZvXzJAZcCkFqWynUDls1jIgBWlrswQyA,2012
|
7
7
|
omdev/tagstrings.py,sha256=cBmAc9-TtOBupvGQ9G4T1jjjtzijx4ihQCBu6FezzV0,5490
|
8
8
|
omdev/amalg/__init__.py,sha256=47DEQpj8HBSa-_TImW-5JCeuQeRkm5NMpJWZG3hSuFU,0
|
@@ -30,7 +30,7 @@ omdev/cache/data/actions.py,sha256=Mv7eXeZuohCjQLpmLyvqvGjjBacXIvTYzIRMVpEh-zM,1
|
|
30
30
|
omdev/cache/data/cache.py,sha256=oveyGl6gfTmQ4fKVO-NbB5Zx4rmEcti3BdZIvv5C6CU,7632
|
31
31
|
omdev/cache/data/consts.py,sha256=d6W_aeMqgah6PmPYi9RA8Be54oQ4BcNCy8kDQ7FlB_Q,26
|
32
32
|
omdev/cache/data/defaults.py,sha256=NL_mT7kaSLm2Mk9VO5wdSu-DIcHTR1KgcihJqdSd4TY,312
|
33
|
-
omdev/cache/data/manifests.py,sha256=
|
33
|
+
omdev/cache/data/manifests.py,sha256=3bgVaduql65Jy3a7CXlBLQN4NzFGIUD2fMSmWCE2Rg8,1023
|
34
34
|
omdev/cache/data/specs.py,sha256=P50VSvMf2Jp3VHjhHy4i1-PwYwEGD4MMXEpxIg0CQis,2468
|
35
35
|
omdev/capi/__init__.py,sha256=47DEQpj8HBSa-_TImW-5JCeuQeRkm5NMpJWZG3hSuFU,0
|
36
36
|
omdev/capi/darwin/__init__.py,sha256=iAlc3ReV3LJOv5X9zGME1FKeZ2yf0auUuj1I3sGSo4E,86
|
@@ -113,7 +113,7 @@ omdev/cli/__main__.py,sha256=mOJpgc07o0r5luQ1DlX4tk2PqZkgmbwPbdzJ3KmtjgQ,138
|
|
113
113
|
omdev/cli/_pathhack.py,sha256=UshIZX3oeXq0De-9X28gy2LgKMZDf_dzabdkUhZJdNA,2124
|
114
114
|
omdev/cli/clicli.py,sha256=TZnQYHyyh97B6N_pVYYduYgt03s8Yp5mrJ7wblXWSWY,6308
|
115
115
|
omdev/cli/install.py,sha256=oB34AOwu07sqEztW_z5mgorAFoP_Tw556XiTPj2WSM0,4904
|
116
|
-
omdev/cli/main.py,sha256=
|
116
|
+
omdev/cli/main.py,sha256=M3r8ARUKJbI3U7xVNI6a1i64YWBkt-NNC8jTJzCYUOE,6772
|
117
117
|
omdev/cli/managers.py,sha256=BV98_n30Jj63OJrFgRoVZRfICxMLXEZKoEn4rMj9LV4,1160
|
118
118
|
omdev/cli/types.py,sha256=SH88B81otsSYNM-PM3Ry1wgLLvyg2M6fBJkWOajWIWM,485
|
119
119
|
omdev/clipboard/__init__.py,sha256=47DEQpj8HBSa-_TImW-5JCeuQeRkm5NMpJWZG3hSuFU,0
|
@@ -142,7 +142,7 @@ omdev/home/secrets.py,sha256=Bq9Pak4lzsogw5GvOeQ4zs3Yatmn7glGH0q-b0Sf6h8,2003
|
|
142
142
|
omdev/home/shadow.py,sha256=6mGDJV70IExa-nzd7mOUW4R3OZIXO0fBwmOUU9T9f4M,295
|
143
143
|
omdev/intellij/__init__.py,sha256=OkihYdld_LTk_gTcyzOWc9Nze_drjsIYMYpbA5DG6m4,132
|
144
144
|
omdev/intellij/cli.py,sha256=Sds9Xj_OHgbm76j70frhwrZEzlVi-1Rd93g0ypIe6t4,2038
|
145
|
-
omdev/intellij/ides.py,sha256=
|
145
|
+
omdev/intellij/ides.py,sha256=uYSbVDPOlhKeImRCPV6HdcrO2JtACBPUpElbecTz7uM,1580
|
146
146
|
omdev/intellij/open.py,sha256=3HlbJsGkwZ28UBi1P7dVJMRDMLbJyOGQs9QMQqgYVus,2679
|
147
147
|
omdev/interp/__init__.py,sha256=Y3l4WY4JRi2uLG6kgbGp93fuGfkxkKwZDvhsa0Rwgtk,15
|
148
148
|
omdev/interp/__main__.py,sha256=GMCqeGYltgt5dlJzHxY9gqisa8cRkrPfmZYuZnjg4WI,162
|
@@ -177,9 +177,10 @@ omdev/magic/prepare.py,sha256=SEOK-bl4zDxq0aphYXsEI-hCjbkV908VNnJt-dk0kL4,594
|
|
177
177
|
omdev/magic/styles.py,sha256=6LAL7XR3fkkH2rh-8nwUvdCYVHBkQxCfP0oEuPuw1Bg,670
|
178
178
|
omdev/manifests/__init__.py,sha256=47DEQpj8HBSa-_TImW-5JCeuQeRkm5NMpJWZG3hSuFU,0
|
179
179
|
omdev/manifests/__main__.py,sha256=JqyVDyV7_jo-NZ3wSs5clDU_xCMlxzJv-XFohoZWQ7E,174
|
180
|
-
omdev/manifests/
|
181
|
-
omdev/manifests/
|
182
|
-
omdev/manifests/
|
180
|
+
omdev/manifests/_dumping.py,sha256=RyphKkXhTnb8zWqcWjAR-GN8vNbBM9-PrZ3fJEvF1RE,44230
|
181
|
+
omdev/manifests/building.py,sha256=e1cNN3wPrINlRROu2hW8W9Jz0PmIByZCD5RvoNr-J8Y,13287
|
182
|
+
omdev/manifests/dumping.py,sha256=WF911eYL3LT6powrQT3w83XIM_RdExDgTSsGiNomSIo,4506
|
183
|
+
omdev/manifests/main.py,sha256=mYb8iM5bdwaO8jSd9_hIBSoYLf2h7e0iLb9aCCbgJ6c,2175
|
183
184
|
omdev/mypy/__init__.py,sha256=47DEQpj8HBSa-_TImW-5JCeuQeRkm5NMpJWZG3hSuFU,0
|
184
185
|
omdev/mypy/debug.py,sha256=VskRcr9trNhyPG2ErZZ7IX_v1DLKTLBOjp34o-fEWaM,3294
|
185
186
|
omdev/mypy/report.py,sha256=faX1GmbX_irmZptsOZN2HJnmHxxnrqxScmPdl7B3BI4,1570
|
@@ -213,7 +214,7 @@ omdev/precheck/git.py,sha256=O8rNQZ_vlHec0pOFbK6LOkbly5ZIUYT_HXRMqQX8GaI,774
|
|
213
214
|
omdev/precheck/imports.py,sha256=3loQxHMrpI0ce4-le77NCSxutLac_5vDW4UDX7KWWg8,2565
|
214
215
|
omdev/precheck/lite.py,sha256=qd6nXWEVut8aBSRD_NxnxXGRNa9ue8mu8ND8rGLisE4,4710
|
215
216
|
omdev/precheck/main.py,sha256=_1A5wiu9p2th1dn_17w1ZIFtMmCIOaTFpWyvK0jopEA,4374
|
216
|
-
omdev/precheck/manifests.py,sha256=
|
217
|
+
omdev/precheck/manifests.py,sha256=96deAjSGCqKPJz8sAqzx8YY3SCbMzO9v-hytfxPPDJU,789
|
217
218
|
omdev/precheck/scripts.py,sha256=244Jq5xee2QErn0gvpt0hmdYg95TYtuefMDXaE9YPws,1344
|
218
219
|
omdev/precheck/unicode.py,sha256=VUNDCrlfUas_U8ugV_q0eFUXuBgKjS8YdCFm0FXREXo,2583
|
219
220
|
omdev/ptk/__init__.py,sha256=4zhIfvhebFj4TJRRN1SQkcAe-7elizcfZLsD-fIlZsI,5198
|
@@ -298,7 +299,7 @@ omdev/tools/git/__main__.py,sha256=gI87SBUgTkKUcUM-RtZWnei-UUDDqzbr5aPztb-gvbE,1
|
|
298
299
|
omdev/tools/git/cli.py,sha256=I4AiCTz4OCzK6s8J2TJF1eYw9FH2JIK_CsdjQH_9UTE,16757
|
299
300
|
omdev/tools/git/cloning.py,sha256=CNGBBMoWaTBJW4SZTf1VvhDFSm0yg7qDfNwZun_PFbU,891
|
300
301
|
omdev/tools/git/consts.py,sha256=JuXivUNDkNhM4pe97icjRVAKM8cNRbrODquHINNKqOE,40
|
301
|
-
omdev/tools/git/messages.py,sha256=
|
302
|
+
omdev/tools/git/messages.py,sha256=yYJL8O3d2DJbtH0C850Dx5u7Wo9zhiX_ijKFpWnVRow,2433
|
302
303
|
omdev/tools/json/__init__.py,sha256=47DEQpj8HBSa-_TImW-5JCeuQeRkm5NMpJWZG3hSuFU,0
|
303
304
|
omdev/tools/json/__main__.py,sha256=wqpkN_NsQyNwKW4qjVj8ADJ4_C98KhrFBtE-Z1UamfU,168
|
304
305
|
omdev/tools/json/cli.py,sha256=8aXX3ijU3lvPZamkIyUOz-vlBmyIdaX7dCQq5rN7adE,10193
|
@@ -316,9 +317,9 @@ omdev/tools/jsonview/resources/jsonview.js,sha256=faDvXDOXKvEvjOuIlz4D3F2ReQXb_b
|
|
316
317
|
omdev/tools/pawk/__init__.py,sha256=47DEQpj8HBSa-_TImW-5JCeuQeRkm5NMpJWZG3hSuFU,0
|
317
318
|
omdev/tools/pawk/__main__.py,sha256=VCqeRVnqT1RPEoIrqHFSu4PXVMg4YEgF4qCQm90-eRI,66
|
318
319
|
omdev/tools/pawk/pawk.py,sha256=ao5mdrpiSU4AZ8mBozoEaV3UVlmVTnRG9wD9XP70MZE,11429
|
319
|
-
omdev-0.0.0.
|
320
|
-
omdev-0.0.0.
|
321
|
-
omdev-0.0.0.
|
322
|
-
omdev-0.0.0.
|
323
|
-
omdev-0.0.0.
|
324
|
-
omdev-0.0.0.
|
320
|
+
omdev-0.0.0.dev395.dist-info/licenses/LICENSE,sha256=B_hVtavaA8zCYDW99DYdcpDLKz1n3BBRjZrcbv8uG8c,1451
|
321
|
+
omdev-0.0.0.dev395.dist-info/METADATA,sha256=y91uxnWMPgach_tKBqEg8wNntllDmyEseaH-IzoFY_o,5094
|
322
|
+
omdev-0.0.0.dev395.dist-info/WHEEL,sha256=_zCd3N1l69ArxyTb8rzEoP9TpbYXkqRFSNOD5OuxnTs,91
|
323
|
+
omdev-0.0.0.dev395.dist-info/entry_points.txt,sha256=dHLXFmq5D9B8qUyhRtFqTGWGxlbx3t5ejedjrnXNYLU,33
|
324
|
+
omdev-0.0.0.dev395.dist-info/top_level.txt,sha256=1nr7j30fEWgLYHW3lGR9pkdHkb7knv1U1ES1XRNVQ6k,6
|
325
|
+
omdev-0.0.0.dev395.dist-info/RECORD,,
|
File without changes
|
File without changes
|
File without changes
|
File without changes
|