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.
@@ -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.load import MANIFEST_LOADER
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: ta.Optional[re.Pattern] = None
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
- return inspect.getsource(_ModuleManifestDumper)
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.Optional[ta.Mapping[str, ta.Any]] = None,
127
- module_dumper_payload_src: ta.Optional[str] = None,
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) -> ta.List[ManifestDumperTarget]:
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: ta.List[ManifestOrigin] = []
184
- targets: ta.List[ManifestDumperTarget] = []
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: ta.Optional[float] = 1.,
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
- ) -> ta.List[Manifest]:
322
- out: ta.List[Manifest] = []
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
- ) -> ta.List[Manifest]:
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: ta.List[Manifest] = list(itertools.chain.from_iterable(await asyncio.gather(*[
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(**value_dct) # noqa
431
+ value = MANIFEST_LOADER.instantiate_cls(cls, **value_dct) # noqa
@@ -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: 'ta.Optional[ta.Callable[[str], None]]' = None,
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
- self._imported_mod: 'ta.Optional[ta.Any]' = None
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
- def _mod(self) -> 'ta.Any':
26
- if (mod := self._imported_mod) is not None:
27
- return mod
67
+ manifest_dct = self._build_manifest_dct(manifest)
28
68
 
29
- import importlib
69
+ cls = type(manifest)
70
+ key = f'${cls.__module__}.{cls.__qualname__}'
30
71
 
31
- mod = importlib.import_module(self._spec)
72
+ return {key: manifest_dct}
32
73
 
33
- self._imported_mod = mod
34
- return mod
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: 'ta.Callable[[str], ta.Any]') -> None:
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 __call__(
46
- self,
47
- *targets: dict, # .build.ManifestDumperTarget
48
- ) -> None:
49
- import collections.abc
50
- import dataclasses as dc # noqa
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
- if dc.is_dataclass(manifest):
66
- # Support static dataclasses
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
- cls = type(manifest)
71
- manifest_json = json.dumps(dc.asdict(manifest))
72
- manifest_dct = json.loads(manifest_json)
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
- rt_manifest = cls(**manifest_dct)
75
- if rt_manifest != manifest:
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
- key = f'${cls.__module__}.{cls.__qualname__}'
79
- out_value = {key: manifest_dct}
122
+ manifest = eval(inl_code, inl_glo) # noqa
80
123
 
81
- elif isinstance(manifest, collections.abc.Mapping):
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
- if not isinstance(manifest_dct, collections.abc.Mapping):
87
- raise Exception(f'Bad value: {manifest_dct}')
126
+ key = f'${cls.__module__}.{cls.__qualname__}'
127
+ return {key: manifest_dct}
88
128
 
89
- manifest_json = json.dumps(manifest_dct)
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
- out_value = {key: manifest_dct}
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
- else:
97
- raise TypeError(f'Manifest must be dataclass or mapping: {manifest!r}')
139
+ if target['kind'] == 'attr':
140
+ out_value = self._load_attr_manifest(target)
98
141
 
99
142
  elif target['kind'] == 'inline':
100
- cls = importlib.import_module(target['cls_mod_name'])
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
@@ -1,5 +1,3 @@
1
- # ruff: noqa: UP006 UP007 UP045
2
- # @omlish-lite
3
1
  import argparse
4
2
  import asyncio
5
3
  import dataclasses as dc
@@ -1,7 +1,7 @@
1
1
  import dataclasses as dc
2
2
  import typing as ta
3
3
 
4
- from omlish.manifests.load import MANIFEST_LOADER
4
+ from omlish.manifests.globals import MANIFEST_LOADER
5
5
 
6
6
  from .base import Precheck
7
7
  from .base import PrecheckContext
@@ -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 load as manifest_load
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 = manifest_load.MANIFEST_LOADER
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.dev393
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.dev393
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=4XolajBnAJ1U2zvT6Y0fiUyBi_a8G9arXffvPxf3w-M,3103
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=4BparztsMZo9DDVVPhv6iv5g4kK7QAi8Vqtj3PbKkco,989
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=dxZFyzKuwRykHHhoKKUA0fUa9QsY0dgdvLHbXNuIPCY,6694
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=ll-NKTKeS6ZgcWB3xYXr3gxGFgNOc0ZPulTimHkvU9Y,1573
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/building.py,sha256=VMTSHQgIYv7ysm-ne2aIjj1RDeyh57rgtV0RiarK1RI,13372
181
- omdev/manifests/dumping.py,sha256=CKUCHeO-7cLwCDmzc75FX7fvqIRmOx4s10Vx7nB3C6w,4342
182
- omdev/manifests/main.py,sha256=jh7YN2D8YCDkT1ptDIv-HK0aMJJzuTw6CZXIM98mTgs,2222
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=1CG0PG0feagydT-cgxiOBvQKhoILjZVXk4MYf65wkkM,786
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=NWztIK0nAKJIOVzuVQcR_5LHZUgqyVkrOlpl7dFLMdU,2424
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.dev393.dist-info/licenses/LICENSE,sha256=B_hVtavaA8zCYDW99DYdcpDLKz1n3BBRjZrcbv8uG8c,1451
320
- omdev-0.0.0.dev393.dist-info/METADATA,sha256=eQk1MmelIztqeIJPUYpqr501nWXSQSIBkD5ZzgXHh4M,5094
321
- omdev-0.0.0.dev393.dist-info/WHEEL,sha256=_zCd3N1l69ArxyTb8rzEoP9TpbYXkqRFSNOD5OuxnTs,91
322
- omdev-0.0.0.dev393.dist-info/entry_points.txt,sha256=dHLXFmq5D9B8qUyhRtFqTGWGxlbx3t5ejedjrnXNYLU,33
323
- omdev-0.0.0.dev393.dist-info/top_level.txt,sha256=1nr7j30fEWgLYHW3lGR9pkdHkb7knv1U1ES1XRNVQ6k,6
324
- omdev-0.0.0.dev393.dist-info/RECORD,,
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,,