omdev 0.0.0.dev406__py3-none-any.whl → 0.0.0.dev408__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.
Files changed (39) hide show
  1. omdev/.manifests.json +2 -2
  2. omdev/amalg/__main__.py +1 -1
  3. omdev/amalg/cli/__init__.py +0 -0
  4. omdev/amalg/{main.py → cli/main.py} +2 -2
  5. omdev/amalg/gen/__init__.py +0 -0
  6. omdev/amalg/{gen.py → gen/gen.py} +2 -2
  7. omdev/amalg/{imports.py → gen/imports.py} +1 -1
  8. omdev/amalg/{manifests.py → gen/manifests.py} +1 -1
  9. omdev/amalg/{resources.py → gen/resources.py} +1 -1
  10. omdev/amalg/{srcfiles.py → gen/srcfiles.py} +1 -1
  11. omdev/amalg/{strip.py → gen/strip.py} +2 -2
  12. omdev/amalg/{types.py → gen/types.py} +1 -1
  13. omdev/amalg/{typing.py → gen/typing.py} +1 -1
  14. omdev/amalg/sources.py +51 -0
  15. omdev/cache/data/cache.py +1 -0
  16. omdev/cexts/cmake.py +2 -0
  17. omdev/cexts/importhook.py +2 -0
  18. omdev/cli/_pathhack.py +1 -0
  19. omdev/dataclasses/codegen.py +1 -1
  20. omdev/intellij/ides.py +9 -1
  21. omdev/interp/providers/base.py +1 -0
  22. omdev/manifests/_dumping.py +1 -0
  23. omdev/oci/media.py +1 -0
  24. omdev/packaging/requires.py +1 -0
  25. omdev/packaging/revisions.py +1 -0
  26. omdev/pyproject/pkg.py +1 -0
  27. omdev/pyproject/reqs.py +1 -0
  28. omdev/pyproject/venvs.py +1 -0
  29. omdev/scripts/ci.py +4 -0
  30. omdev/scripts/interp.py +4 -0
  31. omdev/scripts/pyproject.py +9 -0
  32. omdev/tools/json/rendering.py +1 -0
  33. omdev/tools/prof.py +7 -3
  34. {omdev-0.0.0.dev406.dist-info → omdev-0.0.0.dev408.dist-info}/METADATA +2 -2
  35. {omdev-0.0.0.dev406.dist-info → omdev-0.0.0.dev408.dist-info}/RECORD +39 -36
  36. {omdev-0.0.0.dev406.dist-info → omdev-0.0.0.dev408.dist-info}/WHEEL +0 -0
  37. {omdev-0.0.0.dev406.dist-info → omdev-0.0.0.dev408.dist-info}/entry_points.txt +0 -0
  38. {omdev-0.0.0.dev406.dist-info → omdev-0.0.0.dev408.dist-info}/licenses/LICENSE +0 -0
  39. {omdev-0.0.0.dev406.dist-info → omdev-0.0.0.dev408.dist-info}/top_level.txt +0 -0
omdev/.manifests.json CHANGED
@@ -27,7 +27,7 @@
27
27
  "module": ".cexts.cmake",
28
28
  "attr": "_CLI_MODULE",
29
29
  "file": "omdev/cexts/cmake.py",
30
- "line": 331,
30
+ "line": 333,
31
31
  "value": {
32
32
  "!.cli.types.CliModule": {
33
33
  "name": "cmake",
@@ -515,7 +515,7 @@
515
515
  "module": ".tools.prof",
516
516
  "attr": "_CLI_MODULE",
517
517
  "file": "omdev/tools/prof.py",
518
- "line": 128,
518
+ "line": 132,
519
519
  "value": {
520
520
  "!.cli.types.CliModule": {
521
521
  "name": "prof",
omdev/amalg/__main__.py CHANGED
@@ -6,6 +6,6 @@ _CLI_MODULE = CliModule('amalg', __name__)
6
6
 
7
7
 
8
8
  if __name__ == '__main__':
9
- from .main import _main # noqa
9
+ from .cli.main import _main # noqa
10
10
 
11
11
  _main()
File without changes
@@ -34,8 +34,8 @@ import typing as ta
34
34
  from omlish import check
35
35
  from omlish.logs import all as logs
36
36
 
37
- from .gen import SCAN_COMMENT
38
- from .gen import AmalgGenerator
37
+ from ..gen.gen import SCAN_COMMENT
38
+ from ..gen.gen import AmalgGenerator
39
39
 
40
40
 
41
41
  log = logging.getLogger(__name__)
File without changes
@@ -8,8 +8,8 @@ from omlish import lang
8
8
  from omlish.algorithm import all as alg
9
9
  from omlish.lite.runtime import LITE_REQUIRED_PYTHON_VERSION
10
10
 
11
- from ..git.magic import GIT_DIFF_OMIT_MAGIC
12
- from ..tokens import all as tks
11
+ from ...git.magic import GIT_DIFF_OMIT_MAGIC
12
+ from ...tokens import all as tks
13
13
  from .srcfiles import SrcFile
14
14
  from .srcfiles import make_src_file
15
15
  from .strip import strip_main_lines
@@ -4,7 +4,7 @@ import typing as ta
4
4
 
5
5
  from omlish import check
6
6
 
7
- from ..tokens import all as tks
7
+ from ...tokens import all as tks
8
8
 
9
9
 
10
10
  ##
@@ -2,7 +2,7 @@ import ast
2
2
 
3
3
  from omlish import check
4
4
 
5
- from ..tokens import all as tks
5
+ from ...tokens import all as tks
6
6
 
7
7
 
8
8
  ##
@@ -4,7 +4,7 @@ import itertools
4
4
  import os.path
5
5
  import typing as ta
6
6
 
7
- from ..tokens import all as tks
7
+ from ...tokens import all as tks
8
8
 
9
9
 
10
10
  ##
@@ -4,7 +4,7 @@ import typing as ta
4
4
  from omlish import collections as col
5
5
  from omlish import lang
6
6
 
7
- from ..tokens import all as tks
7
+ from ...tokens import all as tks
8
8
  from .imports import Import
9
9
  from .imports import make_import
10
10
  from .manifests import comment_out_manifest_comment
@@ -1,8 +1,8 @@
1
1
  import re
2
2
  import typing as ta
3
3
 
4
- from .. import magic
5
- from ..tokens import all as tks
4
+ from ... import magic
5
+ from ...tokens import all as tks
6
6
 
7
7
 
8
8
  ##
@@ -1,6 +1,6 @@
1
1
  import typing as ta
2
2
 
3
- from ..tokens import all as tks
3
+ from ...tokens import all as tks
4
4
 
5
5
 
6
6
  Tokens: ta.TypeAlias = tks.Tokens
@@ -2,7 +2,7 @@ import dataclasses as dc
2
2
 
3
3
  from omlish import check
4
4
 
5
- from ..tokens import all as tks
5
+ from ...tokens import all as tks
6
6
 
7
7
 
8
8
  ##
omdev/amalg/sources.py ADDED
@@ -0,0 +1,51 @@
1
+ # ruff: noqa: UP045
2
+ # @omlish-lite
3
+ import typing as ta
4
+
5
+ from omlish.lite.cached import cached_nullary
6
+
7
+
8
+ ##
9
+
10
+
11
+ class AmalgSources:
12
+ def __init__(
13
+ self,
14
+ *,
15
+ name: ta.Optional[str] = None,
16
+ package: ta.Optional[str] = None,
17
+ ) -> None:
18
+ super().__init__()
19
+
20
+ self._name = name or __name__
21
+ self._package = package or __package__
22
+
23
+ @cached_nullary
24
+ def get_mod(self) -> ta.Any:
25
+ import sys # noqa
26
+ return sys.modules[self._name]
27
+
28
+ @cached_nullary
29
+ def get_src(self) -> str:
30
+ import inspect # noqa
31
+ return inspect.getsource(self.get_mod())
32
+
33
+ @classmethod
34
+ def is_src_amalg(cls, src: str) -> bool:
35
+ for l in src.splitlines(): # noqa
36
+ if l.startswith('# @omlish-amalg-output '):
37
+ return True
38
+ return False
39
+
40
+ @cached_nullary
41
+ def is_amalg(self) -> bool:
42
+ return self.is_src_amalg(self.get_src())
43
+
44
+ # TODO: read `@omlish-amalg ../scripts/manage.py`, given self._name/self._package, convert to resources path to read
45
+ # @cached_nullary
46
+ # def get_amalg_src(self) -> str:
47
+ # if _is_self_amalg():
48
+ # return _get_self_src()
49
+ #
50
+ # import importlib.resources # noqa
51
+ # return importlib.resources.files(__package__.split('.')[0] + '.scripts').joinpath('manage.py').read_text()
omdev/cache/data/cache.py CHANGED
@@ -97,6 +97,7 @@ def _url_retrieve(
97
97
  class Cache:
98
98
  def __init__(self, base_dir: str) -> None:
99
99
  super().__init__()
100
+
100
101
  self._base_dir = base_dir
101
102
 
102
103
  self._items_dir = os.path.join(base_dir, 'items')
omdev/cexts/cmake.py CHANGED
@@ -76,6 +76,7 @@ class CmakeProjectGen:
76
76
  use_exe_realpath: bool = False,
77
77
  ) -> None:
78
78
  super().__init__()
79
+
79
80
  self._exts = check.not_isinstance(exts, str)
80
81
  self._prj_root = os.path.abspath(prj_root) if prj_root is not None else os.getcwd()
81
82
  self._use_exe_realpath = use_exe_realpath
@@ -164,6 +165,7 @@ class CmakeProjectGen:
164
165
  out: ta.TextIO,
165
166
  ) -> None:
166
167
  super().__init__()
168
+
167
169
  self.p = p
168
170
  self.g = cmake.CmakeGen(out)
169
171
 
omdev/cexts/importhook.py CHANGED
@@ -38,6 +38,7 @@ class CextImportLoader(importlib.machinery.ExtensionFileLoader):
38
38
  filename: str,
39
39
  ) -> None:
40
40
  module_name = os.path.splitext(os.path.basename(filename))[0]
41
+
41
42
  super().__init__(module_name, filename)
42
43
 
43
44
  def create_module(self, spec: importlib.machinery.ModuleSpec) -> types.ModuleType:
@@ -59,6 +60,7 @@ class CextImportMetaFinder(importlib.abc.MetaPathFinder):
59
60
  extensions: ta.AbstractSet[str] = frozenset(CEXT_EXTENSIONS),
60
61
  ) -> None:
61
62
  super().__init__()
63
+
62
64
  self._extensions = extensions
63
65
 
64
66
  def find_spec(
omdev/cli/_pathhack.py CHANGED
@@ -25,6 +25,7 @@ class _PathHackMetaFinder:
25
25
  removed_paths=None, # type: list[str] | None
26
26
  ) -> None:
27
27
  super().__init__()
28
+
28
29
  if removed_paths is None:
29
30
  removed_paths = ['', '.', os.getcwd()]
30
31
  self._removed_paths = removed_paths
@@ -91,5 +91,5 @@ class DataclassCodeGen:
91
91
 
92
92
  config_trie = self.build_config_trie(root_dirs)
93
93
 
94
- for pkg_parts, pkg_config in config_trie.iter_items(sort_children=True):
94
+ for pkg_parts, pkg_config in config_trie.iteritems(sort_children=True):
95
95
  self.run_package_config('.'.join(pkg_parts), pkg_config)
omdev/intellij/ides.py CHANGED
@@ -24,6 +24,7 @@ class Ide(enum.Enum):
24
24
 
25
25
 
26
26
  _INFER_FILE_NAME_SETS_BY_IDE: ta.Mapping[Ide, ta.AbstractSet[str]] = {
27
+
27
28
  Ide.PYCHARM: frozenset([
28
29
  'setup.py',
29
30
  'setup.cfg',
@@ -36,6 +37,7 @@ _INFER_FILE_NAME_SETS_BY_IDE: ta.Mapping[Ide, ta.AbstractSet[str]] = {
36
37
  'asgi.py',
37
38
  'manage.py',
38
39
  ]),
40
+
39
41
  Ide.IDEA: frozenset([
40
42
  'pom.xml',
41
43
  'mvnw',
@@ -45,21 +47,27 @@ _INFER_FILE_NAME_SETS_BY_IDE: ta.Mapping[Ide, ta.AbstractSet[str]] = {
45
47
  'module-info.java',
46
48
  '.java-version',
47
49
  ]),
50
+
48
51
  Ide.CLION: frozenset([
49
52
  'CMakeLists.txt',
53
+ 'Cargo.toml',
54
+ 'config.h.in',
50
55
  'configure.ac',
51
56
  'configure.in',
52
- 'config.h.in',
57
+ 'rust-toolchain.toml',
53
58
  'vcpkg.json',
54
59
  ]),
60
+
55
61
  Ide.WEBSTORM: frozenset([
56
62
  'package.json',
57
63
  'package-lock.json',
58
64
  ]),
65
+
59
66
  Ide.GOLAND: frozenset([
60
67
  'go.mod',
61
68
  'go.sum',
62
69
  ]),
70
+
63
71
  }
64
72
 
65
73
 
@@ -24,6 +24,7 @@ class InterpProvider(abc.ABC):
24
24
 
25
25
  def __init_subclass__(cls, **kwargs: ta.Any) -> None:
26
26
  super().__init_subclass__(**kwargs)
27
+
27
28
  if abc.ABC not in cls.__bases__ and 'name' not in cls.__dict__:
28
29
  sfx = 'InterpProvider'
29
30
  if not cls.__name__.endswith(sfx):
@@ -60,6 +60,7 @@ CheckArgsRenderer = ta.Callable[..., ta.Optional[str]] # ta.TypeAlias
60
60
  class _AbstractCachedNullary:
61
61
  def __init__(self, fn):
62
62
  super().__init__()
63
+
63
64
  self._fn = fn
64
65
  self._value = self._missing = object()
65
66
  functools.update_wrapper(self, fn)
omdev/oci/media.py CHANGED
@@ -40,6 +40,7 @@ class OciMediaDataclass(abc.ABC): # noqa
40
40
 
41
41
  def __init_subclass__(cls, **kwargs: ta.Any) -> None:
42
42
  super().__init_subclass__(**kwargs)
43
+
43
44
  for a in OCI_MEDIA_FIELDS:
44
45
  check.in_(a, cls.__dict__)
45
46
 
@@ -121,6 +121,7 @@ class RequiresTokenizer:
121
121
  rules: ta.Dict[str, ta.Union[str, ta.Pattern[str]]],
122
122
  ) -> None:
123
123
  super().__init__()
124
+
124
125
  self.source = source
125
126
  self.rules: ta.Dict[str, ta.Pattern[str]] = {name: re.compile(pattern) for name, pattern in rules.items()}
126
127
  self.next_token: ta.Optional[RequiresToken] = None
@@ -31,6 +31,7 @@ class GitRevisionAdder:
31
31
  output_suffix: ta.Optional[str] = None,
32
32
  ) -> None:
33
33
  super().__init__()
34
+
34
35
  self._given_revision = revision
35
36
  self._output_suffix = output_suffix
36
37
 
omdev/pyproject/pkg.py CHANGED
@@ -57,6 +57,7 @@ class BasePyprojectPackageGenerator(abc.ABC):
57
57
  pkg_suffix: str = '',
58
58
  ) -> None:
59
59
  super().__init__()
60
+
60
61
  self._dir_name = dir_name
61
62
  self._pkgs_root = pkgs_root
62
63
  self._pkg_suffix = pkg_suffix
omdev/pyproject/reqs.py CHANGED
@@ -20,6 +20,7 @@ class RequirementsRewriter:
20
20
  venv: ta.Optional[str] = None,
21
21
  ) -> None:
22
22
  super().__init__()
23
+
23
24
  self._venv = venv
24
25
 
25
26
  @cached_nullary
omdev/pyproject/venvs.py CHANGED
@@ -23,6 +23,7 @@ class Venv:
23
23
  cfg: VenvConfig,
24
24
  ) -> None:
25
25
  super().__init__()
26
+
26
27
  self._name = name
27
28
  self._cfg = cfg
28
29
 
omdev/scripts/ci.py CHANGED
@@ -489,6 +489,7 @@ class HttpProtocolVersions:
489
489
  class _AbstractCachedNullary:
490
490
  def __init__(self, fn):
491
491
  super().__init__()
492
+
492
493
  self._fn = fn
493
494
  self._value = self._missing = object()
494
495
  functools.update_wrapper(self, fn)
@@ -4264,6 +4265,7 @@ class ContextvarInjectorScope(InjectorScope, abc.ABC):
4264
4265
 
4265
4266
  def __init_subclass__(cls, **kwargs: ta.Any) -> None:
4266
4267
  super().__init_subclass__(**kwargs)
4268
+
4267
4269
  check.not_in(abc.ABC, cls.__bases__)
4268
4270
  check.state(not hasattr(cls, '_cv'))
4269
4271
  cls._cv = contextvars.ContextVar(f'{cls.__name__}_cv')
@@ -4538,6 +4540,7 @@ class _Injector(Injector):
4538
4540
  class _Request:
4539
4541
  def __init__(self, injector: '_Injector') -> None:
4540
4542
  super().__init__()
4543
+
4541
4544
  self._injector = injector
4542
4545
  self._provisions: ta.Dict[InjectorKey, Maybe] = {}
4543
4546
  self._seen_keys: ta.Set[InjectorKey] = set()
@@ -8959,6 +8962,7 @@ class OciMediaDataclass(abc.ABC): # noqa
8959
8962
 
8960
8963
  def __init_subclass__(cls, **kwargs: ta.Any) -> None:
8961
8964
  super().__init_subclass__(**kwargs)
8965
+
8962
8966
  for a in OCI_MEDIA_FIELDS:
8963
8967
  check.in_(a, cls.__dict__)
8964
8968
 
omdev/scripts/interp.py CHANGED
@@ -516,6 +516,7 @@ def canonicalize_version(
516
516
  class _AbstractCachedNullary:
517
517
  def __init__(self, fn):
518
518
  super().__init__()
519
+
519
520
  self._fn = fn
520
521
  self._value = self._missing = object()
521
522
  functools.update_wrapper(self, fn)
@@ -3024,6 +3025,7 @@ class ContextvarInjectorScope(InjectorScope, abc.ABC):
3024
3025
 
3025
3026
  def __init_subclass__(cls, **kwargs: ta.Any) -> None:
3026
3027
  super().__init_subclass__(**kwargs)
3028
+
3027
3029
  check.not_in(abc.ABC, cls.__bases__)
3028
3030
  check.state(not hasattr(cls, '_cv'))
3029
3031
  cls._cv = contextvars.ContextVar(f'{cls.__name__}_cv')
@@ -3298,6 +3300,7 @@ class _Injector(Injector):
3298
3300
  class _Request:
3299
3301
  def __init__(self, injector: '_Injector') -> None:
3300
3302
  super().__init__()
3303
+
3301
3304
  self._injector = injector
3302
3305
  self._provisions: ta.Dict[InjectorKey, Maybe] = {}
3303
3306
  self._seen_keys: ta.Set[InjectorKey] = set()
@@ -4227,6 +4230,7 @@ class InterpProvider(abc.ABC):
4227
4230
 
4228
4231
  def __init_subclass__(cls, **kwargs: ta.Any) -> None:
4229
4232
  super().__init_subclass__(**kwargs)
4233
+
4230
4234
  if abc.ABC not in cls.__bases__ and 'name' not in cls.__dict__:
4231
4235
  sfx = 'InterpProvider'
4232
4236
  if not cls.__name__.endswith(sfx):
@@ -1817,6 +1817,7 @@ class TomlWriter:
1817
1817
 
1818
1818
  def __init__(self, out: ta.TextIO) -> None:
1819
1819
  super().__init__()
1820
+
1820
1821
  self._out = out
1821
1822
 
1822
1823
  self._indent = 0
@@ -1939,6 +1940,7 @@ class TomlWriter:
1939
1940
  class _AbstractCachedNullary:
1940
1941
  def __init__(self, fn):
1941
1942
  super().__init__()
1943
+
1942
1944
  self._fn = fn
1943
1945
  self._value = self._missing = object()
1944
1946
  functools.update_wrapper(self, fn)
@@ -4070,6 +4072,7 @@ class RequirementsRewriter:
4070
4072
  venv: ta.Optional[str] = None,
4071
4073
  ) -> None:
4072
4074
  super().__init__()
4075
+
4073
4076
  self._venv = venv
4074
4077
 
4075
4078
  @cached_nullary
@@ -4826,6 +4829,7 @@ class ContextvarInjectorScope(InjectorScope, abc.ABC):
4826
4829
 
4827
4830
  def __init_subclass__(cls, **kwargs: ta.Any) -> None:
4828
4831
  super().__init_subclass__(**kwargs)
4832
+
4829
4833
  check.not_in(abc.ABC, cls.__bases__)
4830
4834
  check.state(not hasattr(cls, '_cv'))
4831
4835
  cls._cv = contextvars.ContextVar(f'{cls.__name__}_cv')
@@ -5100,6 +5104,7 @@ class _Injector(Injector):
5100
5104
  class _Request:
5101
5105
  def __init__(self, injector: '_Injector') -> None:
5102
5106
  super().__init__()
5107
+
5103
5108
  self._injector = injector
5104
5109
  self._provisions: ta.Dict[InjectorKey, Maybe] = {}
5105
5110
  self._seen_keys: ta.Set[InjectorKey] = set()
@@ -6687,6 +6692,7 @@ class InterpProvider(abc.ABC):
6687
6692
 
6688
6693
  def __init_subclass__(cls, **kwargs: ta.Any) -> None:
6689
6694
  super().__init_subclass__(**kwargs)
6695
+
6690
6696
  if abc.ABC not in cls.__bases__ and 'name' not in cls.__dict__:
6691
6697
  sfx = 'InterpProvider'
6692
6698
  if not cls.__name__.endswith(sfx):
@@ -7771,6 +7777,7 @@ class GitRevisionAdder:
7771
7777
  output_suffix: ta.Optional[str] = None,
7772
7778
  ) -> None:
7773
7779
  super().__init__()
7780
+
7774
7781
  self._given_revision = revision
7775
7782
  self._output_suffix = output_suffix
7776
7783
 
@@ -8361,6 +8368,7 @@ class BasePyprojectPackageGenerator(abc.ABC):
8361
8368
  pkg_suffix: str = '',
8362
8369
  ) -> None:
8363
8370
  super().__init__()
8371
+
8364
8372
  self._dir_name = dir_name
8365
8373
  self._pkgs_root = pkgs_root
8366
8374
  self._pkg_suffix = pkg_suffix
@@ -9342,6 +9350,7 @@ class Venv:
9342
9350
  cfg: VenvConfig,
9343
9351
  ) -> None:
9344
9352
  super().__init__()
9353
+
9345
9354
  self._name = name
9346
9355
  self._cfg = cfg
9347
9356
 
@@ -37,6 +37,7 @@ def make_render_kwargs(opts: RenderingOptions) -> ta.Mapping[str, ta.Any]:
37
37
  class Renderer(lang.Abstract):
38
38
  def __init__(self, opts: RenderingOptions) -> None:
39
39
  super().__init__()
40
+
40
41
  self._opts = opts
41
42
  self._kw = make_render_kwargs(opts)
42
43
 
omdev/tools/prof.py CHANGED
@@ -71,6 +71,7 @@ class Cli(ap.Cli):
71
71
  ap.arg('-p', '--pdf', action='store_true'),
72
72
  ap.arg('-o', '--open', action='store_true'),
73
73
  ap.arg('-O', '--overwrite', action='store_true'),
74
+ ap.arg('-x', '--exe'),
74
75
  )
75
76
  def pstats_exec(self) -> None:
76
77
  if self.args.out_file is not None:
@@ -85,10 +86,13 @@ class Cli(ap.Cli):
85
86
 
86
87
  pstats_file = os.path.join(tmp_dir, 'prof.pstats')
87
88
 
89
+ if (exe := self.args.exe) is None:
90
+ exe = sys.executable
91
+
88
92
  # TODO: --python - and handle env vars, unset venv and pythonpath stuff - helper for this, scrub env
89
93
  # - share with execstat, -x
90
94
  subprocess.check_call([
91
- sys.executable,
95
+ exe,
92
96
  '-m', 'cProfile',
93
97
  '-o', pstats_file,
94
98
  os.path.abspath(src_file),
@@ -118,8 +122,8 @@ class Cli(ap.Cli):
118
122
  else:
119
123
  # Alt: python -i <setup.py> where setup.py is 'import pstats; stats = pstats.Stats(<out_file>)'
120
124
  os.execl(
121
- sys.executable,
122
- sys.executable,
125
+ exe,
126
+ exe,
123
127
  '-m', 'pstats',
124
128
  out_file,
125
129
  )
@@ -1,6 +1,6 @@
1
1
  Metadata-Version: 2.4
2
2
  Name: omdev
3
- Version: 0.0.0.dev406
3
+ Version: 0.0.0.dev408
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.dev406
17
+ Requires-Dist: omlish==0.0.0.dev408
18
18
  Provides-Extra: all
19
19
  Requires-Dist: black~=25.1; extra == "all"
20
20
  Requires-Dist: pycparser~=2.22; extra == "all"
@@ -1,4 +1,4 @@
1
- omdev/.manifests.json,sha256=TDhqwua2JLR05eVC2mJIlb_dlnwQTatHMnP3zRL5HyA,12182
1
+ omdev/.manifests.json,sha256=ZAZsJbIOCRvMs_KnlVkZov1U0KUzvvprzUP3UtLSpX8,12182
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
@@ -6,16 +6,19 @@ 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
9
- omdev/amalg/__main__.py,sha256=1sZH8SLAueWxMxK9ngvndUW3L_rw7f-s_jK3ZP1yAH8,170
10
- omdev/amalg/gen.py,sha256=LFkob-UhqnOnnwuUeMkPuGUjQRMhw-jGYVePIPMRQZ4,6192
11
- omdev/amalg/imports.py,sha256=me-I_FOD5874NVebZGt_wlc9kxEpuZV-XGuifbNkgNk,2073
12
- omdev/amalg/main.py,sha256=CNkpAMVXlBoaCmgs68rKSUlL8Xh4AuNdZjSFZPeao_4,4313
13
- omdev/amalg/manifests.py,sha256=CGwh-DiOU4ZKv0p_uUvdpBl2H72g468kvBHtguOHGMA,902
14
- omdev/amalg/resources.py,sha256=aIqVd1tbGCv4vIt6gbzqnB0L3PsQsAeqVaZJ_J7QSz8,2692
15
- omdev/amalg/srcfiles.py,sha256=TKSYSfv78Wb8bcsQS3V76dV_H_MICPwzv06Ar09ew9U,3079
16
- omdev/amalg/strip.py,sha256=dWQQ5WbtcebLi_PGjPzVYey2mJOnrRES8rkoUS8L52w,1444
17
- omdev/amalg/types.py,sha256=BXXJI0VctKTsZv_wXiyMMq3-xShxZ1ak0wxXUK8n9_g,89
18
- omdev/amalg/typing.py,sha256=GZX0O7J6lgxOX0mZV3T9M8IkVJpyohKj2vHF4UaUpHk,2300
9
+ omdev/amalg/__main__.py,sha256=nGxQ4PLd2u7zf6dH4TDWZg6yrVe3FxIVn9sGT5w8O-o,174
10
+ omdev/amalg/sources.py,sha256=wxPxPFnxRhPSRhQoWn9bpTYopXW-tanJQLvVQkf2K_A,1379
11
+ omdev/amalg/cli/__init__.py,sha256=47DEQpj8HBSa-_TImW-5JCeuQeRkm5NMpJWZG3hSuFU,0
12
+ omdev/amalg/cli/main.py,sha256=U1PQ8JfdzQ1l4m-TS9YECTcTLltuQSxB6oIomVemg6w,4323
13
+ omdev/amalg/gen/__init__.py,sha256=47DEQpj8HBSa-_TImW-5JCeuQeRkm5NMpJWZG3hSuFU,0
14
+ omdev/amalg/gen/gen.py,sha256=95iQT0At_NsMf4IEg702ZOmmyEdhCZJGcSCFypm1BTk,6194
15
+ omdev/amalg/gen/imports.py,sha256=Bv3xNgej1Nsuv5R_y-9wd9b8cPtWljZsxjMh9bolJWc,2074
16
+ omdev/amalg/gen/manifests.py,sha256=SN4wvPZ8iNTcQIdpSZ6d64cL32pSlT_ak_GwctTPn_Y,903
17
+ omdev/amalg/gen/resources.py,sha256=wxqrudGbHzru2KWu-a_4LDmOf7tRRCd8NM0BXx_ZU9I,2693
18
+ omdev/amalg/gen/srcfiles.py,sha256=UUAW2XtzaMv6-ACr364gyAxa-W3bAawRIwTiXE3-ndQ,3080
19
+ omdev/amalg/gen/strip.py,sha256=GW76ZWJNdwH8dxLDG7gVHFi_CnS958fWvSfroD0HCaw,1446
20
+ omdev/amalg/gen/types.py,sha256=DvxUmEenqCeXycRHi4brxAkSjztq800qT1XlT94bXAY,90
21
+ omdev/amalg/gen/typing.py,sha256=VWw4_iZXqM_29ElSVUlLTO6-KLUCQPdieQDvG_q1YsI,2301
19
22
  omdev/cache/__init__.py,sha256=47DEQpj8HBSa-_TImW-5JCeuQeRkm5NMpJWZG3hSuFU,0
20
23
  omdev/cache/compute/__init__.py,sha256=47DEQpj8HBSa-_TImW-5JCeuQeRkm5NMpJWZG3hSuFU,0
21
24
  omdev/cache/compute/cache.py,sha256=7cJmxiHwbnitMZaLZEZVjEq0v1JJN7HKBK-BH_EtVY4,3628
@@ -27,7 +30,7 @@ omdev/cache/compute/storage.py,sha256=DxuaWYIzb40U_Tvbr7f9VbkGkKI50TXO6RR9uVHj56
27
30
  omdev/cache/compute/types.py,sha256=pF5htSH7oXyky2mxCqGhb_xhOc_GKnjnBAu6lzxaeM8,2645
28
31
  omdev/cache/data/__init__.py,sha256=SQXtugLceRif463rcoklpQ33pxYLgEIm0xiI6NvOI6M,301
29
32
  omdev/cache/data/actions.py,sha256=Mv7eXeZuohCjQLpmLyvqvGjjBacXIvTYzIRMVpEh-zM,1037
30
- omdev/cache/data/cache.py,sha256=oveyGl6gfTmQ4fKVO-NbB5Zx4rmEcti3BdZIvv5C6CU,7632
33
+ omdev/cache/data/cache.py,sha256=thX1Xk_s7WeAfSer2T40ZUJHSz91pPKy1alcN-7jt-w,7633
31
34
  omdev/cache/data/consts.py,sha256=d6W_aeMqgah6PmPYi9RA8Be54oQ4BcNCy8kDQ7FlB_Q,26
32
35
  omdev/cache/data/defaults.py,sha256=NL_mT7kaSLm2Mk9VO5wdSu-DIcHTR1KgcihJqdSd4TY,312
33
36
  omdev/cache/data/manifests.py,sha256=NweXxbkuLMBG1DiUFliOSYeXBrLPMIY4GA_gOZzHwho,949
@@ -49,8 +52,8 @@ omdev/cc/srclangs.py,sha256=3u_APHgknuc-BPRQSDISwSzouluKsnLlBxodp-XCl_E,728
49
52
  omdev/cexts/__init__.py,sha256=47DEQpj8HBSa-_TImW-5JCeuQeRkm5NMpJWZG3hSuFU,0
50
53
  omdev/cexts/_boilerplate.cc,sha256=sbpXEgdFrkdzZXgaNWFFNN27fL9TZu6VrwvMY4-nnFM,1726
51
54
  omdev/cexts/build.py,sha256=JxEuqSpspnY6kWn8eB89FjcSjF4bpNgVYNeIvwmWehY,2659
52
- omdev/cexts/cmake.py,sha256=x4WtT2OMQqrfdW-ZvE6JnbFDLpvVl6v_4qwqkb0Ks3E,10057
53
- omdev/cexts/importhook.py,sha256=QAHmUdsTUoN7HkzJbKI6bSqlqflpkChjaDJOSHrM5rM,3560
55
+ omdev/cexts/cmake.py,sha256=yqSRV3K0Shsk3z_GMKDbwJiX_C4L4AZ7NJXupGpe1vE,10059
56
+ omdev/cexts/importhook.py,sha256=GZ04bE6tMQ8uQUUzGr22Rt9cwyI6kkoK4t7xpLP2Lrs,3562
54
57
  omdev/cexts/magic.py,sha256=DglhjCXEiL28pFTN4lrmUW6ZLn6HaumR13ptyaFOez4,131
55
58
  omdev/cexts/scan.py,sha256=lhK5-8bylu6qZcAfoS-rjdx8c9TLVzqnrPm44cIowKQ,1682
56
59
  omdev/cexts/_distutils/LICENSE,sha256=22p14FIRp3F4Cb7Mj_GK33PKr25issFGHC2JN6dg9vc,1023
@@ -110,7 +113,7 @@ omdev/ci/github/api/v2/azure.py,sha256=Xzn48-q7mWs39r6uZLJkjBFUJK8tsWkAQm-ssZSxN
110
113
  omdev/ci/github/api/v2/client.py,sha256=bJtL_TZ4sB6IDuzfqtEXj-iWivKfyXQZ_MO30lgBlik,6354
111
114
  omdev/cli/__init__.py,sha256=V_l6VP1SZMlJbO-8CJwSuO9TThOy2S_oaPepNYgIrbE,37
112
115
  omdev/cli/__main__.py,sha256=mOJpgc07o0r5luQ1DlX4tk2PqZkgmbwPbdzJ3KmtjgQ,138
113
- omdev/cli/_pathhack.py,sha256=UshIZX3oeXq0De-9X28gy2LgKMZDf_dzabdkUhZJdNA,2124
116
+ omdev/cli/_pathhack.py,sha256=ABWxtuMY29WBOPqC-4LAZK9S9PwGY3zn5aK6HavFPh0,2125
114
117
  omdev/cli/clicli.py,sha256=TZnQYHyyh97B6N_pVYYduYgt03s8Yp5mrJ7wblXWSWY,6308
115
118
  omdev/cli/install.py,sha256=oB34AOwu07sqEztW_z5mgorAFoP_Tw556XiTPj2WSM0,4904
116
119
  omdev/cli/main.py,sha256=ZbRst-axMDzlFvFptMrSpdbBjjo2JN6PWBYZNBIzz2k,6869
@@ -128,7 +131,7 @@ omdev/cmdlog/cmdlog.py,sha256=MJqfCG7sVWjSK_i1shD7cgWpFZXZkPvGhGEh-yd6iwM,1982
128
131
  omdev/dataclasses/__init__.py,sha256=47DEQpj8HBSa-_TImW-5JCeuQeRkm5NMpJWZG3hSuFU,0
129
132
  omdev/dataclasses/__main__.py,sha256=N-a0Lf_s7D0VajuZCCY_dt8R4rSpeck9inbCsoIvciQ,175
130
133
  omdev/dataclasses/cli.py,sha256=j5GfpJQSkA_jmV94XTVb3amCFYjgrasMs-bp_zJEkqE,445
131
- omdev/dataclasses/codegen.py,sha256=sxWe791RvRQqqBTofwiEknbT7XV2TZHTXuR6FbR3zzU,3025
134
+ omdev/dataclasses/codegen.py,sha256=ELl9WajZp_w3xSuVgIqbu44C0NHHWBEb5EoF34caW30,3024
132
135
  omdev/dataserver/__init__.py,sha256=Y3l4WY4JRi2uLG6kgbGp93fuGfkxkKwZDvhsa0Rwgtk,15
133
136
  omdev/dataserver/handlers.py,sha256=YTuRfZehP9panTwq8dPReHZwXF1_fFIueh-_ZoztA98,5446
134
137
  omdev/dataserver/http.py,sha256=SMS6w-GVevG58FypqmPytcEqW8aUWpd2_F6JlBDIuBc,1730
@@ -146,7 +149,7 @@ omdev/home/secrets.py,sha256=Bq9Pak4lzsogw5GvOeQ4zs3Yatmn7glGH0q-b0Sf6h8,2003
146
149
  omdev/home/shadow.py,sha256=6mGDJV70IExa-nzd7mOUW4R3OZIXO0fBwmOUU9T9f4M,295
147
150
  omdev/intellij/__init__.py,sha256=OkihYdld_LTk_gTcyzOWc9Nze_drjsIYMYpbA5DG6m4,132
148
151
  omdev/intellij/cli.py,sha256=Sds9Xj_OHgbm76j70frhwrZEzlVi-1Rd93g0ypIe6t4,2038
149
- omdev/intellij/ides.py,sha256=uYSbVDPOlhKeImRCPV6HdcrO2JtACBPUpElbecTz7uM,1580
152
+ omdev/intellij/ides.py,sha256=5YSJZ0Sbe6UPExn6atOlZd7j3WK1hptHh4RDxSh6CkI,1639
150
153
  omdev/intellij/open.py,sha256=3HlbJsGkwZ28UBi1P7dVJMRDMLbJyOGQs9QMQqgYVus,2679
151
154
  omdev/interp/__init__.py,sha256=Y3l4WY4JRi2uLG6kgbGp93fuGfkxkKwZDvhsa0Rwgtk,15
152
155
  omdev/interp/__main__.py,sha256=GMCqeGYltgt5dlJzHxY9gqisa8cRkrPfmZYuZnjg4WI,162
@@ -158,7 +161,7 @@ omdev/interp/resolvers.py,sha256=9ExwP0wcQ4mzyTLNurSG4Dg1AQ_IqLfR2ZyqR4VRANE,259
158
161
  omdev/interp/types.py,sha256=Pr0wrVpNasoCw-ThEvKC5LG30Civ7YJ4EONwrwBLpy0,2516
159
162
  omdev/interp/venvs.py,sha256=B46sYxamM2X5BG_5KNk07ERtCHFF5Aqz47EGcCZMtP4,3280
160
163
  omdev/interp/providers/__init__.py,sha256=47DEQpj8HBSa-_TImW-5JCeuQeRkm5NMpJWZG3hSuFU,0
161
- omdev/interp/providers/base.py,sha256=aftoEB3FQInKKGDHDSjpnI33cOLBpxPM4Cw_yOuV1fQ,1288
164
+ omdev/interp/providers/base.py,sha256=ZhrURltAfzL6KKFw5r9RExmBl14xo6lNHX1H6BwNrek,1289
162
165
  omdev/interp/providers/inject.py,sha256=NSDFBQVD3ZR9Mf162XB9_VvTUAXGCRhPcrjVlYcFDJk,857
163
166
  omdev/interp/providers/running.py,sha256=M3Ni41f-iHRVEySyxogensOfh1RkONQ91kIMrfurY_M,786
164
167
  omdev/interp/providers/standalone.py,sha256=9YVU9uGGxDFidnGkQ1kSIvjKrFQyhWDu45gBboFVicI,7736
@@ -181,7 +184,7 @@ omdev/magic/prepare.py,sha256=SEOK-bl4zDxq0aphYXsEI-hCjbkV908VNnJt-dk0kL4,594
181
184
  omdev/magic/styles.py,sha256=6LAL7XR3fkkH2rh-8nwUvdCYVHBkQxCfP0oEuPuw1Bg,670
182
185
  omdev/manifests/__init__.py,sha256=47DEQpj8HBSa-_TImW-5JCeuQeRkm5NMpJWZG3hSuFU,0
183
186
  omdev/manifests/__main__.py,sha256=JqyVDyV7_jo-NZ3wSs5clDU_xCMlxzJv-XFohoZWQ7E,174
184
- omdev/manifests/_dumping.py,sha256=26EcI-fKSwhZZMYWlx6j_mThMdoipulPMlhtkxBuBz4,44356
187
+ omdev/manifests/_dumping.py,sha256=0-Wm-IMyH-z8-puhhPFjC-cJYQn5dpE4pBYSqvtAPJU,44357
185
188
  omdev/manifests/building.py,sha256=vdUJNcuZtJUNDLjnEOIXsptnGh_oxNEclQGMUM6HGKA,13832
186
189
  omdev/manifests/dumping.py,sha256=WUIZDvOyO25AhnCPn5Nxj2OkMcZa1LRjGuCnpyx8AL8,4506
187
190
  omdev/manifests/main.py,sha256=mYb8iM5bdwaO8jSd9_hIBSoYLf2h7e0iLb9aCCbgJ6c,2175
@@ -195,7 +198,7 @@ omdev/oci/data.py,sha256=uvtUIRdaNo_CYiYbZ6ZxnpwZnQyTh9SLlZLnlA-bpoY,4914
195
198
  omdev/oci/datarefs.py,sha256=iG5bjYO6I09zzl56l8kSD6caMha0T8tQMAwzjfC3YVo,2768
196
199
  omdev/oci/dataserver.py,sha256=YGYrVW2X3rwa4i0FudfjGeZl39F2dDNPnoGH9xOZMhI,1869
197
200
  omdev/oci/loading.py,sha256=ZKy2x-j0KkpyAt4zlslSOP5mk9UBxNMQWMGu9TygoXA,3861
198
- omdev/oci/media.py,sha256=lI8b-zw3OPXx_y9m0uqeqb38MWE5sdzVWHrafwl1hlY,5357
201
+ omdev/oci/media.py,sha256=1Zb-IyvXTzcGP5e05zy0TW7dQE_3ZKyTP3uOP8raRQA,5358
199
202
  omdev/oci/repositories.py,sha256=SG31QBMuMCuC9gJCUKmxG6O_Anze9XF1aTsV_zEvMxI,4519
200
203
  omdev/oci/tars.py,sha256=UCO1y8zoZMBOg6DOvw7dtMs3W9PVGRQ-bIvf349PFDk,3408
201
204
  omdev/oci/pack/__init__.py,sha256=47DEQpj8HBSa-_TImW-5JCeuQeRkm5NMpJWZG3hSuFU,0
@@ -205,8 +208,8 @@ omdev/oci/pack/unpacking.py,sha256=tVYw8REKuYd4ciGXwMmXxlp4CRLHdET_gB9ShYh1d_M,6
205
208
  omdev/packaging/__init__.py,sha256=47DEQpj8HBSa-_TImW-5JCeuQeRkm5NMpJWZG3hSuFU,0
206
209
  omdev/packaging/marshal.py,sha256=YMXXkoWkjYoOAyD6RHsmaHGwlIsDQjnMtfa6e9-l4_A,2348
207
210
  omdev/packaging/names.py,sha256=-orp16m20gSFeKRiGkRNyqFVV4S1y_Djvjdq_5hNwpY,2533
208
- omdev/packaging/requires.py,sha256=joUO3l4bmrPPnf8hPzGiH7IHP3x8ILFD60iD0aV-e-o,15690
209
- omdev/packaging/revisions.py,sha256=Xa0hH9d_hMtPQJxOmNBU8d_nEoywlHDBCmvnlmFRMTY,4992
211
+ omdev/packaging/requires.py,sha256=rgEeJh8shqnFCPBtG_3Tu0vASXsvwK26ikJauFcrz0I,15691
212
+ omdev/packaging/revisions.py,sha256=HXatkIyO_P6-hWAdvBEd_bEBj-Kc7KAuz_tqMgp_OYc,4993
210
213
  omdev/packaging/specifiers.py,sha256=2lcLbgtFl-A2qR06ifxNMnMxD9AtuN2IUDbLNM_xmMg,17437
211
214
  omdev/packaging/versions.py,sha256=aaB9zKTBCpILIsz6YRJLrmGoGv4gqyhsAFfZ6blye2A,12267
212
215
  omdev/packaging/wheelfile.py,sha256=e3CzmDYaj7bS1gkiY_Mwft5Jnds3vGHcPXPg31P5T0I,10016
@@ -263,16 +266,16 @@ omdev/pyproject/cexts.py,sha256=GLD4fe61M_fHhdMcKlcQNUoCb7MeVXY6Fw-grKH4hTU,4264
263
266
  omdev/pyproject/cli.py,sha256=Umsu2bcJUYeeVXICaZFhKckUBT6VWuYDL4htgCGGQIs,8749
264
267
  omdev/pyproject/configs.py,sha256=baNRwHtUW8S8DKCxuKlMbV3Gduujd1PyNURxQ48Nnxk,2813
265
268
  omdev/pyproject/inject.py,sha256=Von8_8ofkITLoCEwDHNRAwY0AEdFQg7r2ILS8kcTMuY,325
266
- omdev/pyproject/pkg.py,sha256=oLZyG02JHGaFwFO4oCRzTjMFfDohav7KPcJ1CSu3dEA,14851
267
- omdev/pyproject/reqs.py,sha256=p7rynDjLHnyziMPg07hGF96htPWbpiIiK8-0nqZ59W8,2417
268
- omdev/pyproject/venvs.py,sha256=JUHw7L226PRg2Rl1gqhrEVHRT_7VbwqAJbrTmVmWxrc,1917
269
+ omdev/pyproject/pkg.py,sha256=jxOeu_e2LcpN3tGOBJU3qfNK5F2poZEGnN-_dUMbUJ8,14852
270
+ omdev/pyproject/reqs.py,sha256=PmML_hxPyt7HL4z4gd9Sr7OlExnRLGOYsf8QpD141c0,2418
271
+ omdev/pyproject/venvs.py,sha256=_vwhcgMxWUpu1ojNyVw2Zlx1gWwpW_c5EfPMijUqwgU,1918
269
272
  omdev/pyproject/resources/__init__.py,sha256=47DEQpj8HBSa-_TImW-5JCeuQeRkm5NMpJWZG3hSuFU,0
270
273
  omdev/pyproject/resources/docker-dev.sh,sha256=DHkz5D18jok_oDolfg2mqrvGRWFoCe9GQo04dR1czcc,838
271
274
  omdev/pyproject/resources/python.sh,sha256=rFaN4SiJ9hdLDXXsDTwugI6zsw6EPkgYMmtacZeTbvw,749
272
275
  omdev/scripts/__init__.py,sha256=MKCvUAEQwsIvwLixwtPlpBqmkMXLCnjjXyAXvVpDwVk,91
273
- omdev/scripts/ci.py,sha256=fqphFyV5xdBNC5QtxmGmCWL__na7c7E2ygWloRJBNZo,362813
274
- omdev/scripts/interp.py,sha256=8FR5-a95K1bL7YHNBiX1XVDPYhqw_jTWz8mVNDts6pI,158710
275
- omdev/scripts/pyproject.py,sha256=qgAW607OVKaeGma7XuxzyhuFyJLoKIcT9nZ52cl3KKU,270298
276
+ omdev/scripts/ci.py,sha256=_wBk8mb4EkUB3ZS_ozXtuxmdA31i2H1rf-iG4z2kknA,362817
277
+ omdev/scripts/interp.py,sha256=mJ8ks6-Pj1k5F0QDt_pdvFGlha1cGe1o7_eemPLIlGc,158714
278
+ omdev/scripts/pyproject.py,sha256=zdCCzAuEYyzmdyyYViMNNgXJgh4VWAZJvP2y2wYpVr8,270307
276
279
  omdev/scripts/slowcat.py,sha256=PwdT-pg62imEEb6kcOozl9_YUi-4KopvjvzWT1OmGb0,2717
277
280
  omdev/scripts/tmpexec.py,sha256=t0nErDRALjTk7H0X8ADjZUIDFjlPNzOOokmjCjBHdzs,1431
278
281
  omdev/tokens/__init__.py,sha256=47DEQpj8HBSa-_TImW-5JCeuQeRkm5NMpJWZG3hSuFU,0
@@ -288,7 +291,7 @@ omdev/tools/linehisto.py,sha256=0ZNm34EuiZBE9Q2YC6KNLNNydNT8QPSOwvYzXiU9S2Q,8881
288
291
  omdev/tools/mkenv.py,sha256=nqUcQgVznF0UKYd5toXCb0WIGVBkduh5Cd31q1zou3o,2289
289
292
  omdev/tools/notebook.py,sha256=MGi2JEwyIPR1n7gakaaYZL1HHbSVmDKGQROqH56ppgU,3499
290
293
  omdev/tools/pip.py,sha256=HF5ILsNcU1IGn9bRthwjp4XicafZWR7zdp6rOhqSMiw,3464
291
- omdev/tools/prof.py,sha256=AWcuToo3VACxyFRdUEmdqtGcfidPlvJCwkD-q_b6uIs,3485
294
+ omdev/tools/prof.py,sha256=-nei6BgAQpaSfVi5cqeRXPc9zIAW-DgMJxnKoD520Zg,3560
292
295
  omdev/tools/qr.py,sha256=1p4tMJmImDa4YTQQNPwQPkM8FnhGRYj6J79BJR-MNHo,1742
293
296
  omdev/tools/shadow.py,sha256=4E2ilxa16liIvQxvgU37ITkOMrP6ufShRQfeW7wwtRc,1697
294
297
  omdev/tools/shell.py,sha256=5hF_8DCtB3XrzJSfmQDsr7X3Fi9KRV4M70q9qp0KREA,2341
@@ -311,7 +314,7 @@ omdev/tools/json/formats.py,sha256=1qGYb8Kq_yFpLMaecBg-XE3yWSvqRiRbBX8SAElpS9s,2
311
314
  omdev/tools/json/io.py,sha256=sfj2hJS9Hy3aUR8a_lLzOrYcmL9fSKyvOHiofdUASsI,1427
312
315
  omdev/tools/json/parsing.py,sha256=xZiOH3jSVErNGKI8AysFf0zzyhivXvRakTQe7rWxhKQ,2052
313
316
  omdev/tools/json/processing.py,sha256=a999e1VKeFR38eS7Pmcr8YCnzAk22Url7NuZ1fBCmts,2362
314
- omdev/tools/json/rendering.py,sha256=KilwK8ziHGy3Z76H9CC04x2ro5Rkws1d06D0j6TnHA4,2660
317
+ omdev/tools/json/rendering.py,sha256=TXNP8KBWN-zT2nx0_LArdd6Wmff550hw-RyuB4Ydcjc,2661
315
318
  omdev/tools/jsonview/__init__.py,sha256=47DEQpj8HBSa-_TImW-5JCeuQeRkm5NMpJWZG3hSuFU,0
316
319
  omdev/tools/jsonview/__main__.py,sha256=BF-MVWpPJJeQYUqJA48G395kxw0lEJnV-hRLV_F9G2A,173
317
320
  omdev/tools/jsonview/cli.py,sha256=8pHULS_xxDV00kM8bO5dLH7i-zqQIoNjXTKFwhxSZ_A,4245
@@ -321,9 +324,9 @@ omdev/tools/jsonview/resources/jsonview.js,sha256=faDvXDOXKvEvjOuIlz4D3F2ReQXb_b
321
324
  omdev/tools/pawk/__init__.py,sha256=47DEQpj8HBSa-_TImW-5JCeuQeRkm5NMpJWZG3hSuFU,0
322
325
  omdev/tools/pawk/__main__.py,sha256=VCqeRVnqT1RPEoIrqHFSu4PXVMg4YEgF4qCQm90-eRI,66
323
326
  omdev/tools/pawk/pawk.py,sha256=ao5mdrpiSU4AZ8mBozoEaV3UVlmVTnRG9wD9XP70MZE,11429
324
- omdev-0.0.0.dev406.dist-info/licenses/LICENSE,sha256=B_hVtavaA8zCYDW99DYdcpDLKz1n3BBRjZrcbv8uG8c,1451
325
- omdev-0.0.0.dev406.dist-info/METADATA,sha256=TgWLbumDDGmszENgutEPGy3ntm4STBY0_d7meVC20vs,5094
326
- omdev-0.0.0.dev406.dist-info/WHEEL,sha256=_zCd3N1l69ArxyTb8rzEoP9TpbYXkqRFSNOD5OuxnTs,91
327
- omdev-0.0.0.dev406.dist-info/entry_points.txt,sha256=dHLXFmq5D9B8qUyhRtFqTGWGxlbx3t5ejedjrnXNYLU,33
328
- omdev-0.0.0.dev406.dist-info/top_level.txt,sha256=1nr7j30fEWgLYHW3lGR9pkdHkb7knv1U1ES1XRNVQ6k,6
329
- omdev-0.0.0.dev406.dist-info/RECORD,,
327
+ omdev-0.0.0.dev408.dist-info/licenses/LICENSE,sha256=B_hVtavaA8zCYDW99DYdcpDLKz1n3BBRjZrcbv8uG8c,1451
328
+ omdev-0.0.0.dev408.dist-info/METADATA,sha256=CAmjEP6qcyWfIuRRP4sKxgay7CZIxcfUzcdiZfiEQYk,5094
329
+ omdev-0.0.0.dev408.dist-info/WHEEL,sha256=_zCd3N1l69ArxyTb8rzEoP9TpbYXkqRFSNOD5OuxnTs,91
330
+ omdev-0.0.0.dev408.dist-info/entry_points.txt,sha256=dHLXFmq5D9B8qUyhRtFqTGWGxlbx3t5ejedjrnXNYLU,33
331
+ omdev-0.0.0.dev408.dist-info/top_level.txt,sha256=1nr7j30fEWgLYHW3lGR9pkdHkb7knv1U1ES1XRNVQ6k,6
332
+ omdev-0.0.0.dev408.dist-info/RECORD,,