omdev 0.0.0.dev24__py3-none-any.whl → 0.0.0.dev26__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.

Potentially problematic release.


This version of omdev might be problematic. Click here for more details.

@@ -3,7 +3,7 @@
3
3
  # @omlish-lite
4
4
  # @omlish-script
5
5
  # @omdev-amalg-output ../pyproject/cli.py
6
- # ruff: noqa: UP006 UP007
6
+ # ruff: noqa: N802 TCH003 UP006 UP007 UP036
7
7
  """
8
8
  TODO:
9
9
  - check / tests, src dir sets
@@ -66,6 +66,17 @@ import weakref # noqa
66
66
  import zipfile
67
67
 
68
68
 
69
+ ########################################
70
+
71
+
72
+ if sys.version_info < (3, 8):
73
+ raise OSError(
74
+ f'Requires python (3, 8), got {sys.version_info} from {sys.executable}') # noqa
75
+
76
+
77
+ ########################################
78
+
79
+
69
80
  # ../../toml/parser.py
70
81
  TomlParseFloat = ta.Callable[[str], ta.Any]
71
82
  TomlKey = ta.Tuple[str, ...]
@@ -101,7 +112,6 @@ class CextMagic:
101
112
 
102
113
  ########################################
103
114
  # ../../findmagic.py
104
- # @omlish-script
105
115
 
106
116
 
107
117
  def compile_magic_pat(m: str) -> re.Pattern:
@@ -115,6 +125,13 @@ def find_magic(
115
125
  *,
116
126
  py: bool = False,
117
127
  ) -> ta.Iterator[str]:
128
+ if isinstance(roots, str):
129
+ raise TypeError(roots)
130
+ if isinstance(magics, str):
131
+ raise TypeError(magics)
132
+ if isinstance(exts, str):
133
+ raise TypeError(exts)
134
+
118
135
  if not magics:
119
136
  raise Exception('Must specify magics')
120
137
  if not exts:
@@ -196,7 +213,6 @@ def find_magic(
196
213
  # License Agreement.
197
214
  #
198
215
  # https://github.com/python/cpython/blob/f5009b69e0cd94b990270e04e65b9d4d2b365844/Lib/tomllib/_parser.py
199
- # ruff: noqa: UP006 UP007
200
216
 
201
217
 
202
218
  ##
@@ -1102,7 +1118,6 @@ class TomlWriter:
1102
1118
  # Apache License, Version 2.0, and the BSD License. See the LICENSE file in the root of this repository for complete
1103
1119
  # details.
1104
1120
  # https://github.com/pypa/packaging/blob/2c885fe91a54559e2382902dce28428ad2887be5/src/packaging/version.py
1105
- # ruff: noqa: UP006 UP007
1106
1121
 
1107
1122
 
1108
1123
  ##
@@ -1488,7 +1503,6 @@ def canonicalize_version(
1488
1503
 
1489
1504
  ########################################
1490
1505
  # ../../wheelfile.py
1491
- # ruff: noqa: UP006 UP007
1492
1506
  # https://github.com/pypa/wheel/blob/7bb46d7727e6e89fe56b3c78297b3af2672bbbe2/src/wheel/wheelfile.py
1493
1507
  # MIT License
1494
1508
  #
@@ -1748,7 +1762,6 @@ class cached_nullary: # noqa
1748
1762
 
1749
1763
  ########################################
1750
1764
  # ../../../omlish/lite/check.py
1751
- # ruff: noqa: UP006 UP007
1752
1765
 
1753
1766
 
1754
1767
  def check_isinstance(v: T, spec: ta.Union[ta.Type[T], tuple]) -> T:
@@ -1808,7 +1821,6 @@ json_dumps_compact: ta.Callable[..., str] = functools.partial(json.dumps, **JSON
1808
1821
 
1809
1822
  ########################################
1810
1823
  # ../../../omlish/lite/reflect.py
1811
- # ruff: noqa: UP006
1812
1824
 
1813
1825
 
1814
1826
  _GENERIC_ALIAS_TYPES = (
@@ -1891,7 +1903,6 @@ def is_sunder(name: str) -> bool:
1891
1903
  TODO:
1892
1904
  - embed pip._internal.req.parse_requirements, add additional env stuff? breaks compat with raw pip
1893
1905
  """
1894
- # ruff: noqa: UP007
1895
1906
 
1896
1907
 
1897
1908
  class RequirementsRewriter:
@@ -1986,7 +1997,6 @@ class RequirementsRewriter:
1986
1997
  # Apache License, Version 2.0, and the BSD License. See the LICENSE file in the root of this repository for complete
1987
1998
  # details.
1988
1999
  # https://github.com/pypa/packaging/blob/2c885fe91a54559e2382902dce28428ad2887be5/src/packaging/specifiers.py
1989
- # ruff: noqa: UP006 UP007
1990
2000
 
1991
2001
 
1992
2002
  ##
@@ -2492,7 +2502,6 @@ TODO:
2492
2502
  - translate json keys
2493
2503
  - debug
2494
2504
  """
2495
- # ruff: noqa: UP006 UP007 N802
2496
2505
 
2497
2506
 
2498
2507
  log = logging.getLogger(__name__)
@@ -2691,46 +2700,51 @@ def configure_standard_logging(
2691
2700
  *,
2692
2701
  json: bool = False,
2693
2702
  target: ta.Optional[logging.Logger] = None,
2694
- no_check: bool = False,
2703
+ force: bool = False,
2695
2704
  ) -> ta.Optional[StandardLogHandler]:
2696
- if target is None:
2697
- target = logging.root
2705
+ logging._acquireLock() # type: ignore # noqa
2706
+ try:
2707
+ if target is None:
2708
+ target = logging.root
2698
2709
 
2699
- #
2710
+ #
2700
2711
 
2701
- if not no_check:
2702
- if any(isinstance(h, StandardLogHandler) for h in list(target.handlers)):
2703
- return None
2712
+ if not force:
2713
+ if any(isinstance(h, StandardLogHandler) for h in list(target.handlers)):
2714
+ return None
2704
2715
 
2705
- #
2716
+ #
2706
2717
 
2707
- handler = logging.StreamHandler()
2718
+ handler = logging.StreamHandler()
2708
2719
 
2709
- #
2720
+ #
2710
2721
 
2711
- formatter: logging.Formatter
2712
- if json:
2713
- formatter = JsonLogFormatter()
2714
- else:
2715
- formatter = StandardLogFormatter(StandardLogFormatter.build_log_format(STANDARD_LOG_FORMAT_PARTS))
2716
- handler.setFormatter(formatter)
2722
+ formatter: logging.Formatter
2723
+ if json:
2724
+ formatter = JsonLogFormatter()
2725
+ else:
2726
+ formatter = StandardLogFormatter(StandardLogFormatter.build_log_format(STANDARD_LOG_FORMAT_PARTS))
2727
+ handler.setFormatter(formatter)
2717
2728
 
2718
- #
2729
+ #
2719
2730
 
2720
- handler.addFilter(TidLogFilter())
2731
+ handler.addFilter(TidLogFilter())
2721
2732
 
2722
- #
2733
+ #
2723
2734
 
2724
- target.addHandler(handler)
2735
+ target.addHandler(handler)
2725
2736
 
2726
- #
2737
+ #
2727
2738
 
2728
- if level is not None:
2729
- target.setLevel(level)
2739
+ if level is not None:
2740
+ target.setLevel(level)
2730
2741
 
2731
- #
2742
+ #
2732
2743
 
2733
- return StandardLogHandler(handler)
2744
+ return StandardLogHandler(handler)
2745
+
2746
+ finally:
2747
+ logging._releaseLock() # type: ignore # noqa
2734
2748
 
2735
2749
 
2736
2750
  ########################################
@@ -2740,7 +2754,6 @@ TODO:
2740
2754
  - pickle stdlib objs? have to pin to 3.8 pickle protocol, will be cross-version
2741
2755
  - nonstrict toggle
2742
2756
  """
2743
- # ruff: noqa: UP006 UP007
2744
2757
 
2745
2758
 
2746
2759
  ##
@@ -3056,7 +3069,6 @@ def check_runtime_version() -> None:
3056
3069
 
3057
3070
  ########################################
3058
3071
  # ../../interp/types.py
3059
- # ruff: noqa: UP006
3060
3072
 
3061
3073
 
3062
3074
  # See https://peps.python.org/pep-3149/
@@ -3148,7 +3160,6 @@ class Interp:
3148
3160
 
3149
3161
  ########################################
3150
3162
  # ../configs.py
3151
- # ruff: noqa: UP006 UP007
3152
3163
 
3153
3164
 
3154
3165
  @dc.dataclass(frozen=True)
@@ -3252,7 +3263,6 @@ TODO:
3252
3263
  - omlish-lite, move to pyproject/
3253
3264
  - vendor-lite wheel.wheelfile
3254
3265
  """
3255
- # ruff: noqa: TCH003 UP006 UP007
3256
3266
 
3257
3267
 
3258
3268
  ##
@@ -3392,7 +3402,6 @@ class GitRevisionAdder:
3392
3402
 
3393
3403
  ########################################
3394
3404
  # ../../../omlish/lite/subprocesses.py
3395
- # ruff: noqa: UP006 UP007
3396
3405
 
3397
3406
 
3398
3407
  ##
@@ -3499,7 +3508,6 @@ def subprocess_try_output_str(*args: str, **kwargs: ta.Any) -> ta.Optional[str]:
3499
3508
 
3500
3509
  ########################################
3501
3510
  # ../../interp/inspect.py
3502
- # ruff: noqa: UP006 UP007
3503
3511
 
3504
3512
 
3505
3513
  @dc.dataclass(frozen=True)
@@ -3622,7 +3630,6 @@ https://pip.pypa.io/en/stable/cli/pip_install/#vcs-support
3622
3630
  vcs+protocol://repo_url/#egg=pkg&subdirectory=pkg_dir
3623
3631
  'git+https://github.com/wrmsr/omlish@master#subdirectory=.pip/omlish'
3624
3632
  """ # noqa
3625
- # ruff: noqa: UP006 UP007
3626
3633
 
3627
3634
 
3628
3635
  #
@@ -3742,13 +3749,12 @@ class BasePyprojectPackageGenerator(abc.ABC):
3742
3749
  build_output_dir: ta.Optional[str] = None,
3743
3750
  *,
3744
3751
  add_revision: bool = False,
3752
+ test: bool = False,
3745
3753
  ) -> None:
3746
- subprocess.check_call(
3747
- [
3748
- sys.executable,
3749
- '-m',
3750
- 'build',
3751
- ],
3754
+ subprocess_check_call(
3755
+ sys.executable,
3756
+ '-m',
3757
+ 'build',
3752
3758
  cwd=self._pkg_dir(),
3753
3759
  )
3754
3760
 
@@ -3757,6 +3763,25 @@ class BasePyprojectPackageGenerator(abc.ABC):
3757
3763
  if add_revision:
3758
3764
  GitRevisionAdder().add_to(dist_dir)
3759
3765
 
3766
+ if test:
3767
+ for fn in os.listdir(dist_dir):
3768
+ tmp_dir = tempfile.mkdtemp()
3769
+
3770
+ subprocess_check_call(
3771
+ sys.executable,
3772
+ '-m', 'venv',
3773
+ 'test-install',
3774
+ cwd=tmp_dir,
3775
+ )
3776
+
3777
+ subprocess_check_call(
3778
+ os.path.join(tmp_dir, 'test-install', 'bin', 'python3'),
3779
+ '-m', 'pip',
3780
+ 'install',
3781
+ os.path.abspath(os.path.join(dist_dir, fn)),
3782
+ cwd=tmp_dir,
3783
+ )
3784
+
3760
3785
  if build_output_dir is not None:
3761
3786
  for fn in os.listdir(dist_dir):
3762
3787
  shutil.copyfile(os.path.join(dist_dir, fn), os.path.join(build_output_dir, fn))
@@ -3836,6 +3861,7 @@ class PyprojectPackageGenerator(BasePyprojectPackageGenerator):
3836
3861
  st.pop('cexts', None)
3837
3862
 
3838
3863
  self._move_dict_key(st, 'find_packages', pyp_dct, 'tool.setuptools.packages.find')
3864
+ self._move_dict_key(st, 'package_data', pyp_dct, 'tool.setuptools.package-data')
3839
3865
 
3840
3866
  mani_in = st.pop('manifest_in', None)
3841
3867
 
@@ -3918,9 +3944,14 @@ class _PyprojectCextPackageGenerator(BasePyprojectPackageGenerator):
3918
3944
  st = specs.setuptools
3919
3945
  pyp_dct['tool.setuptools'] = st
3920
3946
 
3921
- st.pop('cexts', None)
3922
- st.pop('find_packages', None)
3923
- st.pop('manifest_in', None)
3947
+ for k in [
3948
+ 'cexts',
3949
+
3950
+ 'find_packages',
3951
+ 'package_data',
3952
+ 'manifest_in',
3953
+ ]:
3954
+ st.pop(k, None)
3924
3955
 
3925
3956
  pyp_dct['tool.setuptools.packages.find'] = {
3926
3957
  'include': [],
@@ -4038,7 +4069,6 @@ TODO:
4038
4069
  - optionally install / upgrade pyenv itself
4039
4070
  - new vers dont need these custom mac opts, only run on old vers
4040
4071
  """
4041
- # ruff: noqa: UP006 UP007
4042
4072
 
4043
4073
 
4044
4074
  ##
@@ -4433,7 +4463,6 @@ TODO:
4433
4463
  - python, python3, python3.12, ...
4434
4464
  - check if path py's are venvs: sys.prefix != sys.base_prefix
4435
4465
  """
4436
- # ruff: noqa: UP006 UP007
4437
4466
 
4438
4467
 
4439
4468
  ##
@@ -4542,7 +4571,6 @@ class SystemInterpProvider(InterpProvider):
4542
4571
 
4543
4572
  ########################################
4544
4573
  # ../../interp/resolvers.py
4545
- # ruff: noqa: UP006 UP007
4546
4574
 
4547
4575
 
4548
4576
  INTERP_PROVIDER_TYPES_BY_NAME: ta.Mapping[str, ta.Type[InterpProvider]] = {
@@ -1,11 +1,18 @@
1
+ """
2
+ TODO:
3
+ - check for updates
4
+ """
1
5
  import os
6
+ import re
2
7
  import shutil
3
8
  import subprocess
9
+ import typing as ta
4
10
 
5
11
  from omlish import argparse as ap
6
12
  from omlish import check
7
13
  from omlish import lang
8
14
  from omlish import logs
15
+ from omlish.formats import yaml
9
16
 
10
17
 
11
18
  @lang.cached_function
@@ -75,6 +82,101 @@ class Cli(ap.Cli):
75
82
  'sh', '-c', 'echo 0 > /proc/sys/kernel/yama/ptrace_scope',
76
83
  )
77
84
 
85
+ @ap.command(
86
+ ap.arg('-f', '--file'),
87
+ ap.arg('-w', '--write', action='store_true'),
88
+ ap.arg('-q', '--quiet', action='store_true'),
89
+ ap.arg('base', type=int),
90
+ )
91
+ def reset_compose_ports(self) -> None:
92
+ base_port = int(self.args.base)
93
+ if not base_port:
94
+ raise Exception('Invalid base port')
95
+
96
+ if self.args.file:
97
+ yml_file = self.args.file
98
+ else:
99
+ yml_file = os.path.join('docker', 'compose.yml')
100
+
101
+ with open(yml_file) as f:
102
+ yml_src = f.read()
103
+
104
+ #
105
+
106
+ port_pat = re.compile(r'(?P<l>\d+):(?P<r>\d+)')
107
+ port_line_pat = re.compile(r"( )+- '(?P<l>\d+):(?P<r>\d+)'\s*")
108
+
109
+ class PortEntry(ta.NamedTuple):
110
+ l: int
111
+ s: str
112
+
113
+ dct: dict[str, list[PortEntry]] = {}
114
+
115
+ with lang.disposing(yaml.WrappedLoaders.base(yml_src)) as loader:
116
+ val = check.not_none(loader.get_single_data()) # type: ignore
117
+ root = check.isinstance(val.value, ta.Mapping)
118
+
119
+ services = check.isinstance(
120
+ check.single(
121
+ v.value # type: ignore
122
+ for k, v in root.items()
123
+ if k.value == 'services' # type: ignore
124
+ ),
125
+ ta.Mapping,
126
+ )
127
+ for name_w, cfg_w in services.items():
128
+ name = check.isinstance(name_w.value, str) # type: ignore
129
+ cfg = check.isinstance(cfg_w.value, ta.Mapping) # type: ignore
130
+
131
+ ports = check.opt_single(v.value for k, v in cfg.items() if k.value == 'ports') # type: ignore
132
+ if not ports:
133
+ continue
134
+
135
+ lst: list[PortEntry] = []
136
+ for port_w in ports:
137
+ port = check.isinstance(port_w.value, str)
138
+ if not re.fullmatch(port_pat, port):
139
+ raise Exception(f'Bad port: {port}')
140
+
141
+ lst.append(PortEntry(
142
+ l=port_w.node.start_mark.line,
143
+ s=port,
144
+ ))
145
+
146
+ dct[name] = lst
147
+
148
+ #
149
+
150
+ src_lines = yml_src.splitlines(keepends=True)
151
+ cur_port = base_port
152
+
153
+ for ps in dct.values():
154
+ for p in ps:
155
+ l = src_lines[p.l]
156
+ if not (m := port_line_pat.fullmatch(l)):
157
+ raise Exception(f'Bad port line: {p} {l!r}')
158
+
159
+ p_l, p_r = map(int, p.s.split(':'))
160
+ l_l, l_r = map(int, [(gd := m.groupdict())['l'], gd['r']])
161
+ if p_l != l_l or p_r != l_r:
162
+ raise Exception(f'Port mismatch: {p}')
163
+
164
+ new_l = l.partition("'")[0] + f"'{cur_port}:{l_r}'\n"
165
+ src_lines[p.l] = new_l
166
+
167
+ cur_port += 1
168
+
169
+ new_src = ''.join(src_lines)
170
+
171
+ #
172
+
173
+ if not self.args.quiet:
174
+ print(new_src)
175
+
176
+ if self.args.write:
177
+ with open(yml_file, 'w') as f:
178
+ f.write(new_src)
179
+
78
180
 
79
181
  if __name__ == '__main__':
80
182
  logs.configure_standard_logging('INFO')
@@ -1,6 +1,6 @@
1
1
  Metadata-Version: 2.1
2
2
  Name: omdev
3
- Version: 0.0.0.dev24
3
+ Version: 0.0.0.dev26
4
4
  Summary: omdev
5
5
  Author: wrmsr
6
6
  License: BSD-3-Clause
@@ -12,7 +12,7 @@ Classifier: Operating System :: OS Independent
12
12
  Classifier: Operating System :: POSIX
13
13
  Requires-Python: ~=3.12
14
14
  License-File: LICENSE
15
- Requires-Dist: omlish ==0.0.0.dev24
15
+ Requires-Dist: omlish ==0.0.0.dev26
16
16
  Provides-Extra: all
17
17
  Requires-Dist: pycparser ~=2.22 ; extra == 'all'
18
18
  Requires-Dist: cffi ~=1.17 ; extra == 'all'
@@ -1,22 +1,27 @@
1
1
  omdev/__about__.py,sha256=788lo_UuOSYF74y1RBiNlWkDdPnRFcmBAV5qYkaFJzE,868
2
2
  omdev/__init__.py,sha256=47DEQpj8HBSa-_TImW-5JCeuQeRkm5NMpJWZG3hSuFU,0
3
+ omdev/_manifests.json,sha256=N1F-Xz3GaBn2H1p7uKzhkhKCQV8QVR0t76XD6wmFtXA,3
3
4
  omdev/bracepy.py,sha256=HwBK5XmlOsF_juTel25fRLJK9vHSJCWXuCc-OZlevRQ,2619
4
5
  omdev/classdot.py,sha256=urN5Pzd2ooAwnfkH0z-muQxdO90IMo-sX2WB-A37lVU,1533
5
6
  omdev/cmake.py,sha256=Diy2ry65806dQP125DAstD3w46z_wszMH7PwC2-6iik,4578
6
7
  omdev/findimports.py,sha256=P8v4I1tm6g-PEWJiNwAKxErvWwL-Nop83vAuwq1kR5A,2246
7
- omdev/findmagic.py,sha256=t8q1OoWVTFXTSDS36dr79ScTYLYk786Z9wFj8UObneQ,2170
8
+ omdev/findmagic.py,sha256=DhBYHHP_dzwM5pIh21xnQPnkZ2YmAXCjithsr7X0ScU,2357
9
+ omdev/git.py,sha256=TgZ3V38DbBMhcKm6fZdQr4bKygRCLC-nMNUL5HYcIHc,1277
10
+ omdev/manifests.py,sha256=sXK8D7FY-oGsOoLH4xdYNgrOJnuD9eBIwMjpTGWylIc,6620
8
11
  omdev/revisions.py,sha256=kYrYoxmUkpwgbmLEijHu5bwjyOxggCt8N6bnWFwA-60,5392
9
12
  omdev/tokens.py,sha256=GusxQ1Cd_eiScuR8XTTtc9QFhOgYviYGBZmFnn3Hj7s,756
10
13
  omdev/wheelfile.py,sha256=yfupGcGkbFlmzGzKU64k_vmOKpaKnUlDWxeGn2KdekU,10005
11
14
  omdev/amalg/__init__.py,sha256=47DEQpj8HBSa-_TImW-5JCeuQeRkm5NMpJWZG3hSuFU,0
12
15
  omdev/amalg/__main__.py,sha256=OE1udULO1g4McUbeg1CoHbSm4hbQ2kcE3ffEGxlnPh4,69
13
- omdev/amalg/amalg.py,sha256=YEyH097MZop-f1qobZJW__srtyLFS3rI7M2MaRtshKg,13057
16
+ omdev/amalg/amalg.py,sha256=g7wwcPE2G9qmzh8M9eZAscOYWKo3ldI8bNxEXFnmzLE,14064
14
17
  omdev/cexts/__init__.py,sha256=47DEQpj8HBSa-_TImW-5JCeuQeRkm5NMpJWZG3hSuFU,0
15
- omdev/cexts/build.py,sha256=zViF1wYx6z5ACyifgNjlCAVoPAMCKpTr_VoAvwtmvtY,1013
18
+ omdev/cexts/_boilerplate.cc,sha256=aOWF_5C2pqnIrkT1ykEaL7N2pIpamW6pdXriRbd3lvs,1725
19
+ omdev/cexts/build.py,sha256=F3z1-CjDlEM-Gzi5IunKUBO52qdH_pMsFylobTdGJnI,2654
16
20
  omdev/cexts/cmake.py,sha256=WiGcxmsI9dGQ5rM5ByMtHdG_MBP1dhj3gkbwUWY9rm8,9741
17
- omdev/cexts/importhook.py,sha256=nljqEuPopuh10DPeSrIYKmkV4z-Wk5Q7WpUid1JEmkg,3530
21
+ omdev/cexts/importhook.py,sha256=ko0KRxah_ZHhLVcCigYIIDvNHCfHpJ8qhmmuHKbCOt4,3546
18
22
  omdev/cexts/magic.py,sha256=LhC31I2GiCq3NRU5dpy_9do6IVjhdGu58uPPFffQx5Q,135
19
23
  omdev/cexts/scan.py,sha256=_U5DX9ksHP1845PdGxWh4Rf1a6x_sG1MH3uL_hwBnKY,1669
24
+ omdev/cexts/_distutils/LICENSE,sha256=22p14FIRp3F4Cb7Mj_GK33PKr25issFGHC2JN6dg9vc,1023
20
25
  omdev/cexts/_distutils/__init__.py,sha256=c1zImtnPh3uY8BUTV4RLKtGKqTPx3c_pBbhA6tPtNsE,297
21
26
  omdev/cexts/_distutils/build_ext.py,sha256=STHl9Rq2KeWJ3dQ8j8LwIQ-vFc4-3XsYWQ8Qc5_VByU,13833
22
27
  omdev/cexts/_distutils/dir_util.py,sha256=xxfAIPHbjlh-aW9OX6UGDrXiXfB5biG4xEC5RA6oszM,2882
@@ -32,6 +37,12 @@ omdev/cexts/_distutils/compilers/__init__.py,sha256=amL_zrFlba0lHIvpqDne9uhqhLem
32
37
  omdev/cexts/_distutils/compilers/ccompiler.py,sha256=cTs88qrvj0hBVXHfemSDE_du_nEA4_qo3Qst5TpQkVI,43606
33
38
  omdev/cexts/_distutils/compilers/options.py,sha256=H7r5IcLvga5Fs3jjXWIT-6ap3JBduXRKgtpDmSGCZxs,3818
34
39
  omdev/cexts/_distutils/compilers/unixccompiler.py,sha256=o1h8QuyupLntv4F21_XjzAZmCiwwxJuTmOirvBSL-Qw,15419
40
+ omdev/datacache/__init__.py,sha256=OUHQqJgp8q1xnQYJfV21EcXDzjn1k69QCFoT9KThl9s,297
41
+ omdev/datacache/cache.py,sha256=EBugj3D5pDV4YkDHhE0ZJ54S7eug2kgv2yiQZcfvNT0,4238
42
+ omdev/datacache/consts.py,sha256=hv1M8MOHgivZuFLUm6UVHQWcv7Daksr3mED6EyyoiEg,20
43
+ omdev/datacache/default.py,sha256=93gc6cFb3Av5HNE-RKmkCrcXRtxX02p1RlNzFqraKtI,1157
44
+ omdev/datacache/manifests.py,sha256=mGW7g9h8KMDO8ihvdGKrqe8XyFW9Cv9VM6etXZlZQ-4,975
45
+ omdev/datacache/specs.py,sha256=4wRFwgtHxjNOIPKZduv9xMcCtizawxr53CsSQt7r__s,2256
35
46
  omdev/interp/__init__.py,sha256=Y3l4WY4JRi2uLG6kgbGp93fuGfkxkKwZDvhsa0Rwgtk,15
36
47
  omdev/interp/__main__.py,sha256=gFhR9DikwDZk0LqgdR3qq_aXQHThUOPllDmHDOfnFAU,67
37
48
  omdev/interp/cli.py,sha256=8T3qLXTC2mni5FXDHkHN3mZG9_BnjkDMXYy6EYbAYR8,1679
@@ -52,18 +63,18 @@ omdev/pyproject/__main__.py,sha256=gFhR9DikwDZk0LqgdR3qq_aXQHThUOPllDmHDOfnFAU,6
52
63
  omdev/pyproject/cexts.py,sha256=x13piOOnNrYbA17qZLDVuR0p1sqhgEwpk4FtImX-klM,4281
53
64
  omdev/pyproject/cli.py,sha256=qBVsQDcNSCC3i78X9jFlPZ3ahDSY-0OD0UN1mbqLgYE,10649
54
65
  omdev/pyproject/configs.py,sha256=K9H5cGwVLgHi8wKwtYvlXHZ9ThtmnI4jo8JAb-t1-70,2859
55
- omdev/pyproject/pkg.py,sha256=1HcVUoTE_vdc5bAW3AUFcM-3BWI1ICoXEJlkTFIAmh4,9856
66
+ omdev/pyproject/pkg.py,sha256=DavdxE3RsjyXgAmhiDsgGtcjmyzBm6PfihnQo9lwHQc,10654
56
67
  omdev/pyproject/reqs.py,sha256=coq21cdWQIPs06-iuRnwc6F2Sf-IxpqoT6DEMhol2kA,2298
57
68
  omdev/scripts/__init__.py,sha256=MKCvUAEQwsIvwLixwtPlpBqmkMXLCnjjXyAXvVpDwVk,91
58
69
  omdev/scripts/bumpversion.py,sha256=Kn7fo73Hs8uJh3Hi3EIyLOlzLPWAC6dwuD_lZ3cIzuY,1064
59
70
  omdev/scripts/execrss.py,sha256=HzDNmwXOO8fMwIRXw9q8CUnVfLFCQASyU2tfY_y2Vf8,324
60
- omdev/scripts/interp.py,sha256=gMFw-FbHvMO706wrLbOBY-kZlB3fNYJXMTwJlyVIQQc,68506
61
- omdev/scripts/pyproject.py,sha256=X0Aw7LWf1dDrh6cIbI_u7rapKYYPymscKyePPrcjbxY,148048
71
+ omdev/scripts/interp.py,sha256=uvQ-IBqNFuWWKP5W_Xxmi_NzZX5vV3Sw_ZYPTh1vXm8,68689
72
+ omdev/scripts/pyproject.py,sha256=u5e-IiETnyeS5-i6JIUmuDvgPEShMEJ8LN2ZxnbdxVI,148960
62
73
  omdev/toml/__init__.py,sha256=Y3l4WY4JRi2uLG6kgbGp93fuGfkxkKwZDvhsa0Rwgtk,15
63
74
  omdev/toml/parser.py,sha256=84bn09uhYHwQGyfww6Rw6y1RxPAE_HDltODOSakcqDM,29186
64
75
  omdev/toml/writer.py,sha256=dwz_Qw8z5Z_nmWpXqch63W6S_j6n256erb7AGFTVzB4,2872
65
76
  omdev/tools/__init__.py,sha256=iVJAOQ0viGTQOm0DLX4uZLro-9jOioYJGLg9s0kDx1A,78
66
- omdev/tools/dockertools.py,sha256=3844AhUst6kYo2xKNn-2Npi-f6r4rocxEOx0tHjE0dk,2063
77
+ omdev/tools/dockertools.py,sha256=0RoUThTqv4ySJZX0aufYeQWD2bp-BMplQ8Y4WvDpguA,5204
67
78
  omdev/tools/gittools.py,sha256=zPy2D5WDs-CbwT86_T_hbaq5yCuss5e-ouUccXC6xlg,578
68
79
  omdev/tools/importscan.py,sha256=XRLiasVSaTIp-jnO0-Nfhi0t6gnv_hVy5j2nVfEvuMI,3831
69
80
  omdev/tools/importtrace.py,sha256=oDry9CwIv5h96wSaTVKJ0qQ5vMGxYE5oBtfF-GYNLJs,13430
@@ -72,8 +83,8 @@ omdev/tools/sqlrepl.py,sha256=v9uVQ4nvquSXcQVYIFq34ikumSILvKqzD6lUKLcncCE,5646
72
83
  omdev/versioning/__init__.py,sha256=Y3l4WY4JRi2uLG6kgbGp93fuGfkxkKwZDvhsa0Rwgtk,15
73
84
  omdev/versioning/specifiers.py,sha256=6Odf9e6farwlPRsD_YqwTfYKG-BXn_dIcKtqfkhfodI,17432
74
85
  omdev/versioning/versions.py,sha256=ei2eopEsJq3zSMJmezK1nzZgikgCdxFtnF3f69nCRZQ,12246
75
- omdev-0.0.0.dev24.dist-info/LICENSE,sha256=B_hVtavaA8zCYDW99DYdcpDLKz1n3BBRjZrcbv8uG8c,1451
76
- omdev-0.0.0.dev24.dist-info/METADATA,sha256=aKMRukPrnmd7ZvW0-L-rvtXL4QpczmUX4yW3PegnvbA,1252
77
- omdev-0.0.0.dev24.dist-info/WHEEL,sha256=cVxcB9AmuTcXqmwrtPhNK88dr7IR_b6qagTj0UvIEbY,91
78
- omdev-0.0.0.dev24.dist-info/top_level.txt,sha256=1nr7j30fEWgLYHW3lGR9pkdHkb7knv1U1ES1XRNVQ6k,6
79
- omdev-0.0.0.dev24.dist-info/RECORD,,
86
+ omdev-0.0.0.dev26.dist-info/LICENSE,sha256=B_hVtavaA8zCYDW99DYdcpDLKz1n3BBRjZrcbv8uG8c,1451
87
+ omdev-0.0.0.dev26.dist-info/METADATA,sha256=hrw_5c90Y6M895gXQIhQkCKQNiefSsuhjnebfJ_zeAo,1252
88
+ omdev-0.0.0.dev26.dist-info/WHEEL,sha256=GV9aMThwP_4oNCtvEC2ec3qUYutgWeAzklro_0m4WJQ,91
89
+ omdev-0.0.0.dev26.dist-info/top_level.txt,sha256=1nr7j30fEWgLYHW3lGR9pkdHkb7knv1U1ES1XRNVQ6k,6
90
+ omdev-0.0.0.dev26.dist-info/RECORD,,
@@ -1,5 +1,5 @@
1
1
  Wheel-Version: 1.0
2
- Generator: setuptools (74.1.2)
2
+ Generator: setuptools (75.1.0)
3
3
  Root-Is-Purelib: true
4
4
  Tag: py3-none-any
5
5