omdev 0.0.0.dev425__py3-none-any.whl → 0.0.0.dev427__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/ci/cache.py CHANGED
@@ -18,7 +18,7 @@ import urllib.request
18
18
  from omlish.lite.abstract import Abstract
19
19
  from omlish.lite.cached import cached_nullary
20
20
  from omlish.lite.check import check
21
- from omlish.lite.logs import log
21
+ from omlish.logs.modules import get_module_logger
22
22
  from omlish.os.temp import make_temp_file
23
23
 
24
24
  from .consts import CI_CACHE_VERSION
@@ -27,6 +27,9 @@ from .consts import CI_CACHE_VERSION
27
27
  CacheVersion = ta.NewType('CacheVersion', int)
28
28
 
29
29
 
30
+ log = get_module_logger(globals()) # noqa
31
+
32
+
30
33
  ##
31
34
 
32
35
 
omdev/ci/cli.py CHANGED
@@ -22,7 +22,7 @@ from omlish.argparse.cli import argparse_arg
22
22
  from omlish.argparse.cli import argparse_cmd
23
23
  from omlish.lite.check import check
24
24
  from omlish.lite.inject import inj
25
- from omlish.lite.logs import log
25
+ from omlish.logs.modules import get_module_logger
26
26
  from omlish.logs.standard import configure_standard_logging
27
27
 
28
28
  from .cache import DirectoryFileCache
@@ -35,6 +35,9 @@ from .requirements import build_requirements_hash
35
35
  from .shell import ShellCmd
36
36
 
37
37
 
38
+ log = get_module_logger(globals()) # noqa
39
+
40
+
38
41
  ##
39
42
 
40
43
 
@@ -10,11 +10,11 @@ from omlish.asyncs.asyncio.sockets import asyncio_wait_until_can_connect
10
10
  from omlish.asyncs.asyncio.subprocesses import asyncio_subprocesses
11
11
  from omlish.lite.check import check
12
12
  from omlish.lite.json import json_dumps_compact
13
- from omlish.lite.logs import log
14
13
  from omlish.lite.marshal import marshal_obj
15
14
  from omlish.lite.marshal import unmarshal_obj
16
15
  from omlish.lite.timeouts import Timeout
17
16
  from omlish.lite.timeouts import TimeoutLike
17
+ from omlish.logs.modules import get_module_logger
18
18
 
19
19
  from ....dataserver.server import DataServer
20
20
  from ....dataserver.targets import DataServerTarget
@@ -35,6 +35,9 @@ from .manifests import build_cache_served_docker_image_data_server_routes
35
35
  from .manifests import build_cache_served_docker_image_manifest
36
36
 
37
37
 
38
+ log = get_module_logger(globals()) # noqa
39
+
40
+
38
41
  ##
39
42
 
40
43
 
@@ -15,13 +15,16 @@ from omlish.http.urllib import NonRaisingUrllibErrorProcessor
15
15
  from omlish.lite.abstract import Abstract
16
16
  from omlish.lite.check import check
17
17
  from omlish.lite.json import json_dumps_compact
18
- from omlish.lite.logs import log
19
18
  from omlish.lite.timing import log_timing_context
19
+ from omlish.logs.modules import get_module_logger
20
20
 
21
21
  from ...consts import CI_CACHE_VERSION
22
22
  from ..env import register_github_env_var
23
23
 
24
24
 
25
+ log = get_module_logger(globals()) # noqa
26
+
27
+
25
28
  ##
26
29
 
27
30
 
@@ -6,8 +6,8 @@ import urllib.parse
6
6
  import urllib.request
7
7
 
8
8
  from omlish.lite.check import check
9
- from omlish.lite.logs import log
10
9
  from omlish.lite.timing import log_timing_context
10
+ from omlish.logs.modules import get_module_logger
11
11
 
12
12
  from ...env import register_github_env_var
13
13
  from ..clients import BaseGithubCacheClient
@@ -15,6 +15,9 @@ from ..clients import GithubCacheClient
15
15
  from .api import GithubCacheServiceV1
16
16
 
17
17
 
18
+ log = get_module_logger(globals()) # noqa
19
+
20
+
18
21
  ##
19
22
 
20
23
 
@@ -13,8 +13,11 @@ import xml.etree.ElementTree as ET
13
13
 
14
14
  from omlish.asyncs.asyncio.utils import asyncio_wait_concurrent
15
15
  from omlish.lite.check import check
16
- from omlish.lite.logs import log
17
16
  from omlish.lite.timing import log_timing_context
17
+ from omlish.logs.modules import get_module_logger
18
+
19
+
20
+ log = get_module_logger(globals()) # noqa
18
21
 
19
22
 
20
23
  ##
@@ -5,8 +5,8 @@ import typing as ta
5
5
  import urllib.request
6
6
 
7
7
  from omlish.lite.check import check
8
- from omlish.lite.logs import log
9
8
  from omlish.lite.timing import log_timing_context
9
+ from omlish.logs.modules import get_module_logger
10
10
 
11
11
  from ...env import register_github_env_var
12
12
  from ..clients import BaseGithubCacheClient
@@ -17,6 +17,9 @@ from .api import GithubCacheServiceV2ResponseT
17
17
  from .azure import AzureBlockBlobUploader
18
18
 
19
19
 
20
+ log = get_module_logger(globals()) # noqa
21
+
22
+
20
23
  ##
21
24
 
22
25
 
@@ -33,7 +33,10 @@ import urllib.request
33
33
 
34
34
  from omlish.lite.cached import cached_nullary
35
35
  from omlish.lite.check import check
36
- from omlish.lite.logs import log
36
+ from omlish.logs.modules import get_module_logger
37
+
38
+
39
+ log = get_module_logger(globals()) # noqa
37
40
 
38
41
 
39
42
  ##
@@ -188,7 +188,7 @@ class _AbstractCachedNullary:
188
188
  def __call__(self, *args, **kwargs): # noqa
189
189
  raise TypeError
190
190
 
191
- def __get__(self, instance, owner): # noqa
191
+ def __get__(self, instance, owner=None): # noqa
192
192
  bound = instance.__dict__[self._fn.__name__] = self.__class__(self._fn.__get__(instance, owner))
193
193
  return bound
194
194
 
@@ -963,13 +963,6 @@ def split_keep_delimiter(s, d):
963
963
  ##
964
964
 
965
965
 
966
- def attr_repr(obj: ta.Any, *attrs: str) -> str:
967
- return f'{type(obj).__name__}({", ".join(f"{attr}={getattr(obj, attr)!r}" for attr in attrs)})'
968
-
969
-
970
- ##
971
-
972
-
973
966
  FORMAT_NUM_BYTES_SUFFIXES: ta.Sequence[str] = ['B', 'kB', 'MB', 'GB', 'TB', 'PB', 'EB']
974
967
 
975
968
 
@@ -39,7 +39,7 @@ from omlish.lite.cached import cached_nullary
39
39
  from omlish.lite.check import check
40
40
  from omlish.lite.imports import import_attr
41
41
  from omlish.lite.json import json_dumps_pretty
42
- from omlish.lite.logs import log
42
+ from omlish.logs.modules import get_module_logger
43
43
  from omlish.manifests.base import ModAttrManifest
44
44
  from omlish.manifests.globals import GlobalManifestLoader
45
45
  from omlish.manifests.types import Manifest
@@ -53,6 +53,9 @@ T = ta.TypeVar('T')
53
53
  ManifestDumperTarget = ta.Union['InlineManifestDumperTarget', 'AttrManifestDumperTarget'] # ta.TypeAlias
54
54
 
55
55
 
56
+ log = get_module_logger(globals()) # noqa
57
+
58
+
56
59
  ##
57
60
 
58
61
 
@@ -14,13 +14,16 @@ import zipfile
14
14
 
15
15
  from omlish.lite.cached import cached_nullary
16
16
  from omlish.lite.check import check
17
- from omlish.lite.logs import log
17
+ from omlish.logs.modules import get_module_logger
18
18
  from omlish.logs.standard import configure_standard_logging
19
19
 
20
20
  from ..git.revisions import get_git_revision
21
21
  from .wheelfile import WheelFile
22
22
 
23
23
 
24
+ log = get_module_logger(globals()) # noqa
25
+
26
+
24
27
  ##
25
28
 
26
29
 
@@ -40,7 +40,7 @@ def max_line_width(ft: ptk.StyleAndTextTuples) -> int:
40
40
  return max(ptk.fragment_list_width(line) for line in ptk.split_lines(ft))
41
41
 
42
42
 
43
- def fragment_list_to_words(fragments: ptk.StyleAndTextTuples) -> ta.Iterable[ptk.OneStyleAndTextTuple]:
43
+ def fragment_list_to_words(fragments: ptk.StyleAndTextTuples) -> ta.Iterator[ptk.OneStyleAndTextTuple]:
44
44
  """Split formatted text into word fragments."""
45
45
 
46
46
  for style, string, *mouse_handler in fragments:
omdev/py/attrdocs.py CHANGED
@@ -24,12 +24,12 @@ class AttrDoc:
24
24
  trailing_comment: str | None = None
25
25
  preceding_comment: str | None = None
26
26
 
27
- __repr__ = lang.AttrRepr.of(
27
+ __repr__ = lang.attr_ops(
28
28
  'docstring',
29
29
  'trailing_comment',
30
30
  'preceding_comment',
31
- value_filter=bool,
32
- )
31
+ repr_filter=bool,
32
+ ).repr
33
33
 
34
34
 
35
35
  _EMPTY_ATTR_DOC = AttrDoc()
@@ -74,7 +74,7 @@ class Section:
74
74
  dashes = '-' * len(self.title)
75
75
  return rf'^({self.title})\s*?\n{dashes}\s*$'
76
76
 
77
- def parse(self, text: str) -> ta.Iterable[DocstringMeta]:
77
+ def parse(self, text: str) -> ta.Iterator[DocstringMeta]:
78
78
  """
79
79
  Parse ``DocstringMeta`` objects from the body of this section.
80
80
 
@@ -100,7 +100,7 @@ class _KVSection(Section, abc.ABC):
100
100
  def _parse_item(self, key: str, value: str) -> DocstringMeta:
101
101
  raise NotImplementedError
102
102
 
103
- def parse(self, text: str) -> ta.Iterable[DocstringMeta]:
103
+ def parse(self, text: str) -> ta.Iterator[DocstringMeta]:
104
104
  for match, next_match in _pairwise(KV_PAT.finditer(text)):
105
105
  start = match.end()
106
106
  end = next_match.start() if next_match is not None else None
@@ -227,7 +227,7 @@ class YieldsSection(ReturnsSection):
227
227
  class DeprecationSection(_SphinxSection):
228
228
  """Parser for numpydoc "deprecation warning" sections."""
229
229
 
230
- def parse(self, text: str) -> ta.Iterable[DocstringDeprecated]:
230
+ def parse(self, text: str) -> ta.Iterator[DocstringDeprecated]:
231
231
  version, desc, *_ = [*text.split(sep='\n', maxsplit=1), None, None]
232
232
 
233
233
  if desc is not None:
@@ -254,7 +254,7 @@ class ExamplesSection(Section):
254
254
  [ 6586976, 22740995]])
255
255
  """
256
256
 
257
- def parse(self, text: str) -> ta.Iterable[DocstringMeta]:
257
+ def parse(self, text: str) -> ta.Iterator[DocstringMeta]:
258
258
  """
259
259
  Parse ``DocstringExample`` objects from the body of this section.
260
260
 
@@ -32,7 +32,7 @@ def indexfn(
32
32
  return -1
33
33
 
34
34
 
35
- def interleave(sep: T, it: ta.Iterable[T]) -> ta.Iterable[T]:
35
+ def interleave(sep: T, it: ta.Iterable[T]) -> ta.Iterator[T]:
36
36
  for i, e in enumerate(it):
37
37
  if i > 0:
38
38
  yield sep
omdev/pyproject/pkg.py CHANGED
@@ -38,7 +38,7 @@ import typing as ta
38
38
  from omlish.formats.toml.writer import TomlWriter
39
39
  from omlish.lite.abstract import Abstract
40
40
  from omlish.lite.cached import cached_nullary
41
- from omlish.lite.logs import log
41
+ from omlish.logs.modules import get_module_logger
42
42
  from omlish.subprocesses.sync import subprocesses
43
43
 
44
44
  from ..cexts.magic import CextMagic
@@ -46,6 +46,9 @@ from ..magic.find import find_magic_files
46
46
  from ..packaging.revisions import GitRevisionAdder
47
47
 
48
48
 
49
+ log = get_module_logger(globals()) # noqa
50
+
51
+
49
52
  ##
50
53
 
51
54
 
omdev/pyproject/reqs.py CHANGED
@@ -8,7 +8,10 @@ import tempfile
8
8
  import typing as ta
9
9
 
10
10
  from omlish.lite.cached import cached_nullary
11
- from omlish.lite.logs import log
11
+ from omlish.logs.modules import get_module_logger
12
+
13
+
14
+ log = get_module_logger(globals()) # noqa
12
15
 
13
16
 
14
17
  ##
omdev/pyproject/venvs.py CHANGED
@@ -5,7 +5,7 @@ import typing as ta
5
5
 
6
6
  from omlish.lite.cached import async_cached_nullary
7
7
  from omlish.lite.cached import cached_nullary
8
- from omlish.lite.logs import log
8
+ from omlish.logs.modules import get_module_logger
9
9
 
10
10
  from ..interp.venvs import InterpVenv
11
11
  from ..interp.venvs import InterpVenvRequirementsProcessor
@@ -13,6 +13,9 @@ from .configs import VenvConfig
13
13
  from .reqs import RequirementsRewriter
14
14
 
15
15
 
16
+ log = get_module_logger(globals()) # noqa
17
+
18
+
16
19
  ##
17
20
 
18
21
 
omdev/scripts/ci.py CHANGED
@@ -620,7 +620,7 @@ class _AbstractCachedNullary:
620
620
  def __call__(self, *args, **kwargs): # noqa
621
621
  raise TypeError
622
622
 
623
- def __get__(self, instance, owner): # noqa
623
+ def __get__(self, instance, owner=None): # noqa
624
624
  bound = instance.__dict__[self._fn.__name__] = self.__class__(self._fn.__get__(instance, owner))
625
625
  return bound
626
626
 
@@ -1531,13 +1531,6 @@ json_dump_compact: ta.Callable[..., None] = functools.partial(json.dump, **JSON_
1531
1531
  json_dumps_compact: ta.Callable[..., str] = functools.partial(json.dumps, **JSON_COMPACT_KWARGS)
1532
1532
 
1533
1533
 
1534
- ########################################
1535
- # ../../../omlish/lite/logs.py
1536
-
1537
-
1538
- log = logging.getLogger(__name__)
1539
-
1540
-
1541
1534
  ########################################
1542
1535
  # ../../../omlish/lite/objects.py
1543
1536
 
@@ -1783,13 +1776,6 @@ def split_keep_delimiter(s, d):
1783
1776
  ##
1784
1777
 
1785
1778
 
1786
- def attr_repr(obj: ta.Any, *attrs: str) -> str:
1787
- return f'{type(obj).__name__}({", ".join(f"{attr}={getattr(obj, attr)!r}" for attr in attrs)})'
1788
-
1789
-
1790
- ##
1791
-
1792
-
1793
1779
  FORMAT_NUM_BYTES_SUFFIXES: ta.Sequence[str] = ['B', 'kB', 'MB', 'GB', 'TB', 'PB', 'EB']
1794
1780
 
1795
1781
 
@@ -1873,6 +1859,17 @@ NamedLogLevel.DEBUG = NamedLogLevel(logging.DEBUG)
1873
1859
  NamedLogLevel.NOTSET = NamedLogLevel(logging.NOTSET)
1874
1860
 
1875
1861
 
1862
+ ########################################
1863
+ # ../../../omlish/logs/modules.py
1864
+
1865
+
1866
+ ##
1867
+
1868
+
1869
+ def get_module_logger(mod_globals: ta.Mapping[str, ta.Any]) -> logging.Logger:
1870
+ return logging.getLogger(mod_globals.get('__name__'))
1871
+
1872
+
1876
1873
  ########################################
1877
1874
  # ../../../omlish/logs/std/filters.py
1878
1875
 
@@ -4539,6 +4536,7 @@ class _Maybe(Maybe[T], Abstract):
4539
4536
  return op and not sp
4540
4537
 
4541
4538
 
4539
+ @ta.final
4542
4540
  class _JustMaybe(_Maybe[T]):
4543
4541
  __slots__ = ('_v', '_hash')
4544
4542
 
@@ -4576,6 +4574,7 @@ class _JustMaybe(_Maybe[T]):
4576
4574
  )
4577
4575
 
4578
4576
 
4577
+ @ta.final
4579
4578
  class _EmptyMaybe(_Maybe[T]):
4580
4579
  __slots__ = ()
4581
4580
 
@@ -4836,19 +4835,19 @@ class LoggerLike(ta.Protocol):
4836
4835
 
4837
4836
  #
4838
4837
 
4839
- def debug(self, msg: str, *args: ta.Any, **kwargs: ta.Any) -> None: ... # noqa
4838
+ def log(self, level: LogLevel, msg: str, /, *args: ta.Any, **kwargs: ta.Any) -> None: ... # noqa
4840
4839
 
4841
- def info(self, msg: str, *args: ta.Any, **kwargs: ta.Any) -> None: ... # noqa
4840
+ def debug(self, msg: str, /, *args: ta.Any, **kwargs: ta.Any) -> None: ... # noqa
4842
4841
 
4843
- def warning(self, msg: str, *args: ta.Any, **kwargs: ta.Any) -> None: ... # noqa
4842
+ def info(self, msg: str, /, *args: ta.Any, **kwargs: ta.Any) -> None: ... # noqa
4844
4843
 
4845
- def error(self, msg: str, *args: ta.Any, **kwargs: ta.Any) -> None: ... # noqa
4844
+ def warning(self, msg: str, /, *args: ta.Any, **kwargs: ta.Any) -> None: ... # noqa
4846
4845
 
4847
- def exception(self, msg: str, *args: ta.Any, **kwargs: ta.Any) -> None: ... # noqa
4846
+ def error(self, msg: str, /, *args: ta.Any, **kwargs: ta.Any) -> None: ... # noqa
4848
4847
 
4849
- def critical(self, msg: str, *args: ta.Any, **kwargs: ta.Any) -> None: ... # noqa
4848
+ def exception(self, msg: str, /, *args: ta.Any, **kwargs: ta.Any) -> None: ... # noqa
4850
4849
 
4851
- def log(self, level: LogLevel, msg: str, *args: ta.Any, **kwargs: ta.Any) -> None: ... # noqa
4850
+ def critical(self, msg: str, /, *args: ta.Any, **kwargs: ta.Any) -> None: ... # noqa
4852
4851
 
4853
4852
 
4854
4853
  ########################################
@@ -5403,6 +5402,9 @@ TODO:
5403
5402
  CacheVersion = ta.NewType('CacheVersion', int)
5404
5403
 
5405
5404
 
5405
+ log = get_module_logger(globals()) # noqa
5406
+
5407
+
5406
5408
  ##
5407
5409
 
5408
5410
 
@@ -9210,6 +9212,9 @@ class CoroHttpServer:
9210
9212
  # ../../../omlish/lite/timing.py
9211
9213
 
9212
9214
 
9215
+ log = get_module_logger(globals()) # noqa
9216
+
9217
+
9213
9218
  LogTimingContext.DEFAULT_LOG = log
9214
9219
 
9215
9220
  log_timing_context = log_timing_context # noqa
@@ -9286,7 +9291,7 @@ def generate_temp_localhost_ssl_cert() -> TempSslCert:
9286
9291
  ##
9287
9292
 
9288
9293
 
9289
- class SocketServer(Abstract):
9294
+ class SocketServer:
9290
9295
  _DEFAULT_LOGGER = logging.getLogger('.'.join([__name__, 'SocketServer']))
9291
9296
 
9292
9297
  def __init__(
@@ -9943,6 +9948,9 @@ async def build_cache_served_docker_image_data_server_routes(
9943
9948
  # ../github/api/clients.py
9944
9949
 
9945
9950
 
9951
+ log = get_module_logger(globals()) # noqa
9952
+
9953
+
9946
9954
  ##
9947
9955
 
9948
9956
 
@@ -10412,6 +10420,9 @@ TODO:
10412
10420
  """
10413
10421
 
10414
10422
 
10423
+ log = get_module_logger(globals()) # noqa
10424
+
10425
+
10415
10426
  ##
10416
10427
 
10417
10428
 
@@ -11302,6 +11313,9 @@ SubprocessRun._DEFAULT_SUBPROCESSES = subprocesses # noqa
11302
11313
  # ../github/api/v1/client.py
11303
11314
 
11304
11315
 
11316
+ log = get_module_logger(globals()) # noqa
11317
+
11318
+
11305
11319
  ##
11306
11320
 
11307
11321
 
@@ -11462,6 +11476,9 @@ class GithubCacheServiceV1Client(BaseGithubCacheClient):
11462
11476
  # ../github/api/v2/client.py
11463
11477
 
11464
11478
 
11479
+ log = get_module_logger(globals()) # noqa
11480
+
11481
+
11465
11482
  ##
11466
11483
 
11467
11484
 
@@ -13074,6 +13091,9 @@ class DockerBuildCachingImpl(DockerBuildCaching):
13074
13091
  # ../docker/cacheserved/cache.py
13075
13092
 
13076
13093
 
13094
+ log = get_module_logger(globals()) # noqa
13095
+
13096
+
13077
13097
  ##
13078
13098
 
13079
13099
 
@@ -13662,6 +13682,9 @@ def bind_ci(
13662
13682
  # cli.py
13663
13683
 
13664
13684
 
13685
+ log = get_module_logger(globals()) # noqa
13686
+
13687
+
13665
13688
  ##
13666
13689
 
13667
13690
 
omdev/scripts/interp.py CHANGED
@@ -644,7 +644,7 @@ class _AbstractCachedNullary:
644
644
  def __call__(self, *args, **kwargs): # noqa
645
645
  raise TypeError
646
646
 
647
- def __get__(self, instance, owner): # noqa
647
+ def __get__(self, instance, owner=None): # noqa
648
648
  bound = instance.__dict__[self._fn.__name__] = self.__class__(self._fn.__get__(instance, owner))
649
649
  return bound
650
650
 
@@ -1370,13 +1370,6 @@ def split_keep_delimiter(s, d):
1370
1370
  ##
1371
1371
 
1372
1372
 
1373
- def attr_repr(obj: ta.Any, *attrs: str) -> str:
1374
- return f'{type(obj).__name__}({", ".join(f"{attr}={getattr(obj, attr)!r}" for attr in attrs)})'
1375
-
1376
-
1377
- ##
1378
-
1379
-
1380
1373
  FORMAT_NUM_BYTES_SUFFIXES: ta.Sequence[str] = ['B', 'kB', 'MB', 'GB', 'TB', 'PB', 'EB']
1381
1374
 
1382
1375
 
@@ -2472,6 +2465,7 @@ class _Maybe(Maybe[T], Abstract):
2472
2465
  return op and not sp
2473
2466
 
2474
2467
 
2468
+ @ta.final
2475
2469
  class _JustMaybe(_Maybe[T]):
2476
2470
  __slots__ = ('_v', '_hash')
2477
2471
 
@@ -2509,6 +2503,7 @@ class _JustMaybe(_Maybe[T]):
2509
2503
  )
2510
2504
 
2511
2505
 
2506
+ @ta.final
2512
2507
  class _EmptyMaybe(_Maybe[T]):
2513
2508
  __slots__ = ()
2514
2509
 
@@ -2068,7 +2068,7 @@ class _AbstractCachedNullary:
2068
2068
  def __call__(self, *args, **kwargs): # noqa
2069
2069
  raise TypeError
2070
2070
 
2071
- def __get__(self, instance, owner): # noqa
2071
+ def __get__(self, instance, owner=None): # noqa
2072
2072
  bound = instance.__dict__[self._fn.__name__] = self.__class__(self._fn.__get__(instance, owner))
2073
2073
  return bound
2074
2074
 
@@ -2629,13 +2629,6 @@ json_dump_compact: ta.Callable[..., None] = functools.partial(json.dump, **JSON_
2629
2629
  json_dumps_compact: ta.Callable[..., str] = functools.partial(json.dumps, **JSON_COMPACT_KWARGS)
2630
2630
 
2631
2631
 
2632
- ########################################
2633
- # ../../../omlish/lite/logs.py
2634
-
2635
-
2636
- log = logging.getLogger(__name__)
2637
-
2638
-
2639
2632
  ########################################
2640
2633
  # ../../../omlish/lite/objects.py
2641
2634
 
@@ -2881,13 +2874,6 @@ def split_keep_delimiter(s, d):
2881
2874
  ##
2882
2875
 
2883
2876
 
2884
- def attr_repr(obj: ta.Any, *attrs: str) -> str:
2885
- return f'{type(obj).__name__}({", ".join(f"{attr}={getattr(obj, attr)!r}" for attr in attrs)})'
2886
-
2887
-
2888
- ##
2889
-
2890
-
2891
2877
  FORMAT_NUM_BYTES_SUFFIXES: ta.Sequence[str] = ['B', 'kB', 'MB', 'GB', 'TB', 'PB', 'EB']
2892
2878
 
2893
2879
 
@@ -2961,6 +2947,17 @@ def typing_annotations_attr() -> str:
2961
2947
  return _TYPING_ANNOTATIONS_ATTR
2962
2948
 
2963
2949
 
2950
+ ########################################
2951
+ # ../../../omlish/logs/modules.py
2952
+
2953
+
2954
+ ##
2955
+
2956
+
2957
+ def get_module_logger(mod_globals: ta.Mapping[str, ta.Any]) -> logging.Logger:
2958
+ return logging.getLogger(mod_globals.get('__name__'))
2959
+
2960
+
2964
2961
  ########################################
2965
2962
  # ../../../omlish/logs/std/filters.py
2966
2963
 
@@ -3843,6 +3840,9 @@ TODO:
3843
3840
  """
3844
3841
 
3845
3842
 
3843
+ log = get_module_logger(globals()) # noqa
3844
+
3845
+
3846
3846
  ##
3847
3847
 
3848
3848
 
@@ -5129,6 +5129,7 @@ class _Maybe(Maybe[T], Abstract):
5129
5129
  return op and not sp
5130
5130
 
5131
5131
 
5132
+ @ta.final
5132
5133
  class _JustMaybe(_Maybe[T]):
5133
5134
  __slots__ = ('_v', '_hash')
5134
5135
 
@@ -5166,6 +5167,7 @@ class _JustMaybe(_Maybe[T]):
5166
5167
  )
5167
5168
 
5168
5169
 
5170
+ @ta.final
5169
5171
  class _EmptyMaybe(_Maybe[T]):
5170
5172
  __slots__ = ()
5171
5173
 
@@ -8065,6 +8067,9 @@ TODO:
8065
8067
  """
8066
8068
 
8067
8069
 
8070
+ log = get_module_logger(globals()) # noqa
8071
+
8072
+
8068
8073
  ##
8069
8074
 
8070
8075
 
@@ -8654,6 +8659,9 @@ vcs+protocol://repo_url/#egg=pkg&subdirectory=pkg_dir
8654
8659
  """ # noqa
8655
8660
 
8656
8661
 
8662
+ log = get_module_logger(globals()) # noqa
8663
+
8664
+
8657
8665
  ##
8658
8666
 
8659
8667
 
@@ -9638,6 +9646,9 @@ class PyprojectConfigPreparer:
9638
9646
  # ../venvs.py
9639
9647
 
9640
9648
 
9649
+ log = get_module_logger(globals()) # noqa
9650
+
9651
+
9641
9652
  ##
9642
9653
 
9643
9654
 
@@ -57,7 +57,7 @@ class Processor:
57
57
  factory=self._marshaler_factory(),
58
58
  ).marshal(v)
59
59
 
60
- def process(self, v: ta.Any) -> ta.Iterable[ta.Any]:
60
+ def process(self, v: ta.Any) -> ta.Iterator[ta.Any]:
61
61
  if self._jmespath_expr is not None:
62
62
  v = self._jmespath_expr.search(v)
63
63
 
@@ -1,6 +1,6 @@
1
1
  Metadata-Version: 2.4
2
2
  Name: omdev
3
- Version: 0.0.0.dev425
3
+ Version: 0.0.0.dev427
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.dev425
17
+ Requires-Dist: omlish==0.0.0.dev427
18
18
  Provides-Extra: all
19
19
  Requires-Dist: black~=25.1; extra == "all"
20
20
  Requires-Dist: pycparser~=2.22; extra == "all"
@@ -74,9 +74,9 @@ omdev/cexts/_distutils/compilers/options.py,sha256=H7r5IcLvga5Fs3jjXWIT-6ap3JBdu
74
74
  omdev/cexts/_distutils/compilers/unixccompiler.py,sha256=KO33tQYjgeRqvl0KOAD87tuChECPYYvJlpij440IE_4,15422
75
75
  omdev/ci/__init__.py,sha256=Y3l4WY4JRi2uLG6kgbGp93fuGfkxkKwZDvhsa0Rwgtk,15
76
76
  omdev/ci/__main__.py,sha256=Jsrv3P7LX2Cg08W7ByZfZ1JQT4lgLDPW1qNAmShFuMk,75
77
- omdev/ci/cache.py,sha256=LlxBTNr67IPYVrxFErHyvKOUPyUG3tLuVUbjMQL7UQg,8394
77
+ omdev/ci/cache.py,sha256=aKsNvl7fTJfjpFhUrWgKCNEwgoSfTZpEcn0NUY9BOCM,8456
78
78
  omdev/ci/ci.py,sha256=ZCBQuX5fiyzgBLFndxh1To2J-KrjoPlw4EvEruDIdjg,7923
79
- omdev/ci/cli.py,sha256=E7GiQQBf8E02TwGnLS0ZLiv0J5TasjgOjjgSsJEW60E,7194
79
+ omdev/ci/cli.py,sha256=jmvG-xTm97pRtoqtaF6qru4Cros-3e4r6q3h_V0XNoY,7256
80
80
  omdev/ci/compose.py,sha256=SXjWuHuLN9NQttvnJ440A88VI7JPU0sSaQhfWe_-IKs,4518
81
81
  omdev/ci/consts.py,sha256=HkSYz-_hHilcHPBvRs-SwcUxW7vMNlHXZ8OyIKnVQbQ,21
82
82
  omdev/ci/inject.py,sha256=Yk7bT7sRC76PUN9qQ07MiveAuQmi1LZBKxah7VKOB5Q,1930
@@ -94,7 +94,7 @@ omdev/ci/docker/packing.py,sha256=ePvHU6rtMh7fq8Ijethuw8eCfjOTi-xhzBQbLSk7M0A,20
94
94
  omdev/ci/docker/repositories.py,sha256=-uNB93u3pOxsOeib4xovixtbhwGhFWVfxQ00V8Yy89Y,1278
95
95
  omdev/ci/docker/utils.py,sha256=7Tobiq2hMxicGpQfTkDoU7oTa8Tyw47LpDh8C554LLs,1135
96
96
  omdev/ci/docker/cacheserved/__init__.py,sha256=47DEQpj8HBSa-_TImW-5JCeuQeRkm5NMpJWZG3hSuFU,0
97
- omdev/ci/docker/cacheserved/cache.py,sha256=V9R1_HBNJzMGFqiSnTAP1M4VAv9pJBsXYvR7I52wR50,7025
97
+ omdev/ci/docker/cacheserved/cache.py,sha256=T6V2e7aSZ0lTnldLln3YDPPcQE9JRQhSmsGJf9GB0bk,7087
98
98
  omdev/ci/docker/cacheserved/manifests.py,sha256=-T-KLDTLJ-HvcDn6E2tHc2B6KZQjW5Ev8lvNCcx9aHw,3614
99
99
  omdev/ci/github/__init__.py,sha256=47DEQpj8HBSa-_TImW-5JCeuQeRkm5NMpJWZG3hSuFU,0
100
100
  omdev/ci/github/bootstrap.py,sha256=yZnZVkz9bKCo5G7n-jRQFP8XR76yyuF1BVaTsmUpHdI,441
@@ -103,14 +103,14 @@ omdev/ci/github/cli.py,sha256=gvDz4Rd9Arw0VIptfbEVJG97kTuypYNdWGvODrjhA84,1132
103
103
  omdev/ci/github/env.py,sha256=HQOUPvKHNmHUkX7WjoStiLPLq_yGwR09jbZQJhmkKPs,405
104
104
  omdev/ci/github/inject.py,sha256=fxyjSiMhSCPKpYX-W6DM4b7QxKEBgkQ-AmZG6f9xgac,564
105
105
  omdev/ci/github/api/__init__.py,sha256=47DEQpj8HBSa-_TImW-5JCeuQeRkm5NMpJWZG3hSuFU,0
106
- omdev/ci/github/api/clients.py,sha256=bpOyYm9P_-ErfrAwCg6y8lAcXzZVEimCw6RHv5qVzNg,13550
106
+ omdev/ci/github/api/clients.py,sha256=BKZL7nTkH917U8dknSB3ZH7D4kVjk_Ow805wTor_oPs,13612
107
107
  omdev/ci/github/api/v1/__init__.py,sha256=47DEQpj8HBSa-_TImW-5JCeuQeRkm5NMpJWZG3hSuFU,0
108
108
  omdev/ci/github/api/v1/api.py,sha256=KPmPAiCKEGwz4busb9Ig1n2f_CIqqWb7E-9CZANxtSc,3199
109
- omdev/ci/github/api/v1/client.py,sha256=OM1e642eRz_cEJVb0hKoAs7vE_j_nGy0H4ePtiamYWY,4983
109
+ omdev/ci/github/api/v1/client.py,sha256=sc_xj3H_Nuh4CluZlQNLctdfFMa0EEck681VZBXo7Zg,5045
110
110
  omdev/ci/github/api/v2/__init__.py,sha256=47DEQpj8HBSa-_TImW-5JCeuQeRkm5NMpJWZG3hSuFU,0
111
111
  omdev/ci/github/api/v2/api.py,sha256=k7yn1ln1oBxFA9XC72bYUc_zZUIx4tSSF4-HZv9iK5g,3969
112
- omdev/ci/github/api/v2/azure.py,sha256=Xzn48-q7mWs39r6uZLJkjBFUJK8tsWkAQm-ssZSxNCg,5468
113
- omdev/ci/github/api/v2/client.py,sha256=bJtL_TZ4sB6IDuzfqtEXj-iWivKfyXQZ_MO30lgBlik,6354
112
+ omdev/ci/github/api/v2/azure.py,sha256=Dp0HzCXgaHQzWKPIctXKT_8mvBUnhLUG5nyebVVuFZI,5530
113
+ omdev/ci/github/api/v2/client.py,sha256=XuEAR46tNFZpGRPIPFgdpwTA10mC89wwj-X035Qi508,6416
114
114
  omdev/cli/__init__.py,sha256=V_l6VP1SZMlJbO-8CJwSuO9TThOy2S_oaPepNYgIrbE,37
115
115
  omdev/cli/__main__.py,sha256=mOJpgc07o0r5luQ1DlX4tk2PqZkgmbwPbdzJ3KmtjgQ,138
116
116
  omdev/cli/_pathhack.py,sha256=ABWxtuMY29WBOPqC-4LAZK9S9PwGY3zn5aK6HavFPh0,2125
@@ -164,7 +164,7 @@ omdev/interp/providers/__init__.py,sha256=47DEQpj8HBSa-_TImW-5JCeuQeRkm5NMpJWZG3
164
164
  omdev/interp/providers/base.py,sha256=zMtzMJIDvaI0q1gtsZTCvFiTc7qdhGbUcXRs6LCBmgo,1333
165
165
  omdev/interp/providers/inject.py,sha256=NSDFBQVD3ZR9Mf162XB9_VvTUAXGCRhPcrjVlYcFDJk,857
166
166
  omdev/interp/providers/running.py,sha256=M3Ni41f-iHRVEySyxogensOfh1RkONQ91kIMrfurY_M,786
167
- omdev/interp/providers/standalone.py,sha256=9YVU9uGGxDFidnGkQ1kSIvjKrFQyhWDu45gBboFVicI,7736
167
+ omdev/interp/providers/standalone.py,sha256=-aAXbuixpUGmjX3e-Cw8vZErgKcSPkjwdk8DOr6RQ-4,7798
168
168
  omdev/interp/providers/system.py,sha256=Lld7a-SZR9tELHxczm72gOYhjETM5nsz8r4l32y03vw,3991
169
169
  omdev/interp/pyenv/__init__.py,sha256=47DEQpj8HBSa-_TImW-5JCeuQeRkm5NMpJWZG3hSuFU,0
170
170
  omdev/interp/pyenv/inject.py,sha256=Qj9nCnZn0eZMOx1jNAYi5f2RlIy8SHmN3maPK1ZDWwo,616
@@ -184,8 +184,8 @@ omdev/magic/prepare.py,sha256=SEOK-bl4zDxq0aphYXsEI-hCjbkV908VNnJt-dk0kL4,594
184
184
  omdev/magic/styles.py,sha256=6LAL7XR3fkkH2rh-8nwUvdCYVHBkQxCfP0oEuPuw1Bg,670
185
185
  omdev/manifests/__init__.py,sha256=47DEQpj8HBSa-_TImW-5JCeuQeRkm5NMpJWZG3hSuFU,0
186
186
  omdev/manifests/__main__.py,sha256=JqyVDyV7_jo-NZ3wSs5clDU_xCMlxzJv-XFohoZWQ7E,174
187
- omdev/manifests/_dumping.py,sha256=LqrqmiiJp774xW2nxNqt4qWOzN-UhLSMJf_eUss8D0s,52703
188
- omdev/manifests/building.py,sha256=LHUUuu5a4_uG9kskQIFsHU-lyMnfToHyW2vS34yu35s,13846
187
+ omdev/manifests/_dumping.py,sha256=H0nFCPDg8ooiDFKv435XcW3iz-j9sd2hz-klt9K_DeA,52553
188
+ omdev/manifests/building.py,sha256=M3IHQljk0ca0J32-xNTOcFVvW07s_7fHQ7sGsCJeurU,13908
189
189
  omdev/manifests/dumping.py,sha256=WUIZDvOyO25AhnCPn5Nxj2OkMcZa1LRjGuCnpyx8AL8,4506
190
190
  omdev/manifests/main.py,sha256=mYb8iM5bdwaO8jSd9_hIBSoYLf2h7e0iLb9aCCbgJ6c,2175
191
191
  omdev/mypy/__init__.py,sha256=47DEQpj8HBSa-_TImW-5JCeuQeRkm5NMpJWZG3hSuFU,0
@@ -209,7 +209,7 @@ omdev/packaging/__init__.py,sha256=47DEQpj8HBSa-_TImW-5JCeuQeRkm5NMpJWZG3hSuFU,0
209
209
  omdev/packaging/marshal.py,sha256=nr7wN-Pi3FGAuh3HaladzDgOgyQl1-vtmxJ_AUOo4d8,2355
210
210
  omdev/packaging/names.py,sha256=-orp16m20gSFeKRiGkRNyqFVV4S1y_Djvjdq_5hNwpY,2533
211
211
  omdev/packaging/requires.py,sha256=rgEeJh8shqnFCPBtG_3Tu0vASXsvwK26ikJauFcrz0I,15691
212
- omdev/packaging/revisions.py,sha256=HXatkIyO_P6-hWAdvBEd_bEBj-Kc7KAuz_tqMgp_OYc,4993
212
+ omdev/packaging/revisions.py,sha256=tLNDVtPiygB8mSxwp-kDxeEHhpBzD0jayndjsgUOfkM,5055
213
213
  omdev/packaging/specifiers.py,sha256=ooNtc5gJM6d7EnltVFbWs00QfLMNvbgD2M8kguPtpcY,17455
214
214
  omdev/packaging/versions.py,sha256=aaB9zKTBCpILIsz6YRJLrmGoGv4gqyhsAFfZ6blye2A,12267
215
215
  omdev/packaging/wheelfile.py,sha256=xv-VpLwhgj1UKounbawAOtkJENRvkJJaHSjD4_zZz_o,10016
@@ -237,9 +237,9 @@ omdev/ptk/markdown/markdown.py,sha256=wRxCWSV2u71NP_MTi8A8vVLjZ1TmmaWUZMnvW468Ej
237
237
  omdev/ptk/markdown/parser.py,sha256=UppwouvAYh3qzQMKL-BjcyqBIl2KHcocXlWiKFZ7cBA,990
238
238
  omdev/ptk/markdown/styles.py,sha256=lc17zooXhff5_2tkqLsCmdq2b_rfSAehmHVR-8Lo2qk,777
239
239
  omdev/ptk/markdown/tags.py,sha256=6wF9lbqbpf_WCxEJ_tJP_QtaDCcQKCKYS1CMzHTQg2U,7020
240
- omdev/ptk/markdown/utils.py,sha256=bwhmV-L4wjLuNLZc-ieWioL1G-EmonmhB031pvpIejw,10513
240
+ omdev/ptk/markdown/utils.py,sha256=lApIIK_n9dgLaC9mHKJf8O8VPrYRHO9qjFON_mqXv1Y,10513
241
241
  omdev/py/__init__.py,sha256=u7tLEfRTnPVtWPmKK_ZIvnFkZwTe1q44UQ53cvsix3k,41
242
- omdev/py/attrdocs.py,sha256=oMDgVqjTgbyACEEZHFvWpg4WA5tG_aOF_HWJm3z5lT0,5169
242
+ omdev/py/attrdocs.py,sha256=Vp9TVMoINTQ_yIM3HB0hcu7owIm2xOztN0WewI4tlrQ,5170
243
243
  omdev/py/bracepy.py,sha256=tcZaljRkSsFYMewb1FULHet5HxV6GGqgbmLhlIGqdCw,2742
244
244
  omdev/py/classdot.py,sha256=7WVaVio1Q2B92bvVbXVNAubSkce8Zm-UbleBvXhc0IM,1655
245
245
  omdev/py/findimports.py,sha256=UPnBzPUwGrmakZ0RhaJdO3TNBQVk7IUREEqmIvsSxb0,4235
@@ -250,7 +250,7 @@ omdev/py/docstrings/attrdoc.py,sha256=xo-AFqEPfz1XppsCMJS80pG1Vdd2TiBsoxZ7YP6ZHC
250
250
  omdev/py/docstrings/common.py,sha256=7YUu5-RxhbCEKHMvfUNxXhTd9lcGTC8CGAmWeXZTta4,6378
251
251
  omdev/py/docstrings/epydoc.py,sha256=Z6Dg6ImKOY3hP-mZoiwU3nGOReap5vt_T_3LIGnpess,6177
252
252
  omdev/py/docstrings/google.py,sha256=zWrhzQ_QGOtH6s9SfmZGCduKv3JJVe6rJlDe-kAdUW8,10552
253
- omdev/py/docstrings/numpydoc.py,sha256=SLyIoPR5U5HtXJ18yeQf4HlYHtcro3THh9CqeWDDDH4,12266
253
+ omdev/py/docstrings/numpydoc.py,sha256=JxAzfoZDYHf7j6nAOzQHQ89RBm0lpSc5NIgJgJGI-qQ,12266
254
254
  omdev/py/docstrings/parser.py,sha256=umJEgQBkSXLwWIKZrBbFCfNrz847vpTNDqTTEwlvHpA,2324
255
255
  omdev/py/docstrings/rest.py,sha256=c2xPYg_W01W9eYY_KLKX69E4qu4jpkgUshi5K5EyVv8,5221
256
256
  omdev/py/scripts/__init__.py,sha256=47DEQpj8HBSa-_TImW-5JCeuQeRkm5NMpJWZG3hSuFU,0
@@ -259,23 +259,23 @@ omdev/py/scripts/execstat.py,sha256=-c5ioQRruBrD5M0QDzSMaaq4Oe3X3-1O_d63bXjE5EI,
259
259
  omdev/py/scripts/importtrace.py,sha256=OOf9GvB6PWP2uVzogSYsM5JGUAoSfMx1IKfYUXB8ABc,14245
260
260
  omdev/py/tools/__init__.py,sha256=47DEQpj8HBSa-_TImW-5JCeuQeRkm5NMpJWZG3hSuFU,0
261
261
  omdev/py/tools/importscan.py,sha256=4dCH0coX0OqNwesteKaTE8GxuSfLhgXYQlzNUXLiSNY,4640
262
- omdev/py/tools/mkrelimp.py,sha256=kuzfS4GWcGi-ItyhEHSW4hV9ZcfDJL6inDMhDp1V2lE,4049
262
+ omdev/py/tools/mkrelimp.py,sha256=F7g6Cesdb4MPz1EKiN1iQpqOUUwTNQAVEQZhK0l-yhc,4049
263
263
  omdev/pyproject/__init__.py,sha256=Y3l4WY4JRi2uLG6kgbGp93fuGfkxkKwZDvhsa0Rwgtk,15
264
264
  omdev/pyproject/__main__.py,sha256=gn3Rl1aYPYdiTtEqa9ifi0t-e4ZwPY0vhJ4UXvYdJDY,165
265
265
  omdev/pyproject/cexts.py,sha256=GLD4fe61M_fHhdMcKlcQNUoCb7MeVXY6Fw-grKH4hTU,4264
266
266
  omdev/pyproject/cli.py,sha256=Umsu2bcJUYeeVXICaZFhKckUBT6VWuYDL4htgCGGQIs,8749
267
267
  omdev/pyproject/configs.py,sha256=baNRwHtUW8S8DKCxuKlMbV3Gduujd1PyNURxQ48Nnxk,2813
268
268
  omdev/pyproject/inject.py,sha256=Von8_8ofkITLoCEwDHNRAwY0AEdFQg7r2ILS8kcTMuY,325
269
- omdev/pyproject/pkg.py,sha256=DYvq5j-Qsfi9ehUx1Dbvq3RhUsYpTq8ebzW_W9twNbQ,14902
270
- omdev/pyproject/reqs.py,sha256=PmML_hxPyt7HL4z4gd9Sr7OlExnRLGOYsf8QpD141c0,2418
271
- omdev/pyproject/venvs.py,sha256=_vwhcgMxWUpu1ojNyVw2Zlx1gWwpW_c5EfPMijUqwgU,1918
269
+ omdev/pyproject/pkg.py,sha256=CcWBhsOgim8MYe5ryKDGB8ClRIyiCX6YmYUHRbQ5q_Y,14964
270
+ omdev/pyproject/reqs.py,sha256=LrGr393-yqKbd2K_D-NePrvUIhMDjPG_1cEyQ3qesAM,2480
271
+ omdev/pyproject/venvs.py,sha256=4JIAlNGWNHm4U9OgqG2f1fNwbqEJgQc34bhp9_46MT0,1980
272
272
  omdev/pyproject/resources/__init__.py,sha256=47DEQpj8HBSa-_TImW-5JCeuQeRkm5NMpJWZG3hSuFU,0
273
273
  omdev/pyproject/resources/docker-dev.sh,sha256=DHkz5D18jok_oDolfg2mqrvGRWFoCe9GQo04dR1czcc,838
274
274
  omdev/pyproject/resources/python.sh,sha256=rFaN4SiJ9hdLDXXsDTwugI6zsw6EPkgYMmtacZeTbvw,749
275
275
  omdev/scripts/__init__.py,sha256=MKCvUAEQwsIvwLixwtPlpBqmkMXLCnjjXyAXvVpDwVk,91
276
- omdev/scripts/ci.py,sha256=a3m2wAGzXGBH7JpWTHBOnBfoMk6GY7tP4l330jqu_GU,374487
277
- omdev/scripts/interp.py,sha256=cUzE8sCoY0DmCNBl_mK1VV7TJhJ0JZP04UJM8Jrfn10,162610
278
- omdev/scripts/pyproject.py,sha256=rPADZxS4rElSZCuujtGNt98N_yoGhauGSdsiLCWLGIQ,278810
276
+ omdev/scripts/ci.py,sha256=2JDhh9NcdgY1YX3QfZ_-cI6FHK69P27L_mGX1rs1NNM,374839
277
+ omdev/scripts/interp.py,sha256=3rQWxkZiDgufJ1NBjGAZ4gwaDvOJyFT4aXoueKNuOxQ,162480
278
+ omdev/scripts/pyproject.py,sha256=ICrAsMoBtK_8KtQwnbJbVMoOPL7GkhG1aKqgZWQEG8c,278971
279
279
  omdev/scripts/slowcat.py,sha256=PwdT-pg62imEEb6kcOozl9_YUi-4KopvjvzWT1OmGb0,2717
280
280
  omdev/scripts/tmpexec.py,sha256=t0nErDRALjTk7H0X8ADjZUIDFjlPNzOOokmjCjBHdzs,1431
281
281
  omdev/tokens/__init__.py,sha256=47DEQpj8HBSa-_TImW-5JCeuQeRkm5NMpJWZG3hSuFU,0
@@ -308,7 +308,7 @@ omdev/tools/json/cli.py,sha256=8aXX3ijU3lvPZamkIyUOz-vlBmyIdaX7dCQq5rN7adE,10193
308
308
  omdev/tools/json/formats.py,sha256=1qGYb8Kq_yFpLMaecBg-XE3yWSvqRiRbBX8SAElpS9s,2643
309
309
  omdev/tools/json/io.py,sha256=sfj2hJS9Hy3aUR8a_lLzOrYcmL9fSKyvOHiofdUASsI,1427
310
310
  omdev/tools/json/parsing.py,sha256=xZiOH3jSVErNGKI8AysFf0zzyhivXvRakTQe7rWxhKQ,2052
311
- omdev/tools/json/processing.py,sha256=G0KVhlrfLQh-xEDNrJrO--LOc6IV8jdCzZmPjtPS62A,2387
311
+ omdev/tools/json/processing.py,sha256=jMSkTmIccdVkT_Q6Jf8Q4AG4BQecQfrp8G2bEtsklg8,2387
312
312
  omdev/tools/json/rendering.py,sha256=TXNP8KBWN-zT2nx0_LArdd6Wmff550hw-RyuB4Ydcjc,2661
313
313
  omdev/tools/jsonview/__init__.py,sha256=47DEQpj8HBSa-_TImW-5JCeuQeRkm5NMpJWZG3hSuFU,0
314
314
  omdev/tools/jsonview/__main__.py,sha256=BF-MVWpPJJeQYUqJA48G395kxw0lEJnV-hRLV_F9G2A,173
@@ -319,9 +319,9 @@ omdev/tools/jsonview/resources/jsonview.js,sha256=faDvXDOXKvEvjOuIlz4D3F2ReQXb_b
319
319
  omdev/tools/pawk/__init__.py,sha256=47DEQpj8HBSa-_TImW-5JCeuQeRkm5NMpJWZG3hSuFU,0
320
320
  omdev/tools/pawk/__main__.py,sha256=VCqeRVnqT1RPEoIrqHFSu4PXVMg4YEgF4qCQm90-eRI,66
321
321
  omdev/tools/pawk/pawk.py,sha256=ao5mdrpiSU4AZ8mBozoEaV3UVlmVTnRG9wD9XP70MZE,11429
322
- omdev-0.0.0.dev425.dist-info/licenses/LICENSE,sha256=B_hVtavaA8zCYDW99DYdcpDLKz1n3BBRjZrcbv8uG8c,1451
323
- omdev-0.0.0.dev425.dist-info/METADATA,sha256=Dd1v3YB72dri1LHiv9gxpaE4K4id4BRMcA6rj4Hooas,5100
324
- omdev-0.0.0.dev425.dist-info/WHEEL,sha256=_zCd3N1l69ArxyTb8rzEoP9TpbYXkqRFSNOD5OuxnTs,91
325
- omdev-0.0.0.dev425.dist-info/entry_points.txt,sha256=dHLXFmq5D9B8qUyhRtFqTGWGxlbx3t5ejedjrnXNYLU,33
326
- omdev-0.0.0.dev425.dist-info/top_level.txt,sha256=1nr7j30fEWgLYHW3lGR9pkdHkb7knv1U1ES1XRNVQ6k,6
327
- omdev-0.0.0.dev425.dist-info/RECORD,,
322
+ omdev-0.0.0.dev427.dist-info/licenses/LICENSE,sha256=B_hVtavaA8zCYDW99DYdcpDLKz1n3BBRjZrcbv8uG8c,1451
323
+ omdev-0.0.0.dev427.dist-info/METADATA,sha256=g-zwki8Kw1HtiGQwNLbc1FuWa6CPgu_nYVmU8kSVKZY,5100
324
+ omdev-0.0.0.dev427.dist-info/WHEEL,sha256=_zCd3N1l69ArxyTb8rzEoP9TpbYXkqRFSNOD5OuxnTs,91
325
+ omdev-0.0.0.dev427.dist-info/entry_points.txt,sha256=dHLXFmq5D9B8qUyhRtFqTGWGxlbx3t5ejedjrnXNYLU,33
326
+ omdev-0.0.0.dev427.dist-info/top_level.txt,sha256=1nr7j30fEWgLYHW3lGR9pkdHkb7knv1U1ES1XRNVQ6k,6
327
+ omdev-0.0.0.dev427.dist-info/RECORD,,