omdev 0.0.0.dev300__py3-none-any.whl → 0.0.0.dev302__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/.manifests.json CHANGED
@@ -39,7 +39,7 @@
39
39
  "module": ".cli.clicli",
40
40
  "attr": "_CLI_MODULE",
41
41
  "file": "omdev/cli/clicli.py",
42
- "line": 173,
42
+ "line": 176,
43
43
  "value": {
44
44
  "$.cli.types.CliModule": {
45
45
  "cmd_name": "cli",
@@ -477,7 +477,7 @@
477
477
  "module": ".tools.shadow",
478
478
  "attr": "_CLI_MODULE",
479
479
  "file": "omdev/tools/shadow.py",
480
- "line": 64,
480
+ "line": 68,
481
481
  "value": {
482
482
  "$.cli.types.CliModule": {
483
483
  "cmd_name": "shadow",
omdev/cc/cli.py CHANGED
@@ -18,6 +18,7 @@ Freestanding options:
18
18
  TODO:
19
19
  - cext interop
20
20
  - gen cmake
21
+ - nanobind
21
22
  - fix CFLAGS/CCFLAGS/CPPFLAGS/CXXFLAGS
22
23
  - jit-gen cmake mode? multi-src builds
23
24
  """
omdev/cli/_pathhack.py CHANGED
@@ -16,6 +16,9 @@ import site
16
16
  import sys
17
17
 
18
18
 
19
+ ##
20
+
21
+
19
22
  class _PathHackMetaFinder:
20
23
  def __init__(
21
24
  self,
omdev/cli/clicli.py CHANGED
@@ -17,6 +17,9 @@ from . import install
17
17
  from .types import CliModule
18
18
 
19
19
 
20
+ ##
21
+
22
+
20
23
  DEFAULT_REINSTALL_URL = 'https://raw.githubusercontent.com/wrmsr/omlish/master/omdev/cli/install.py'
21
24
 
22
25
 
omdev/cli/install.py CHANGED
@@ -2,7 +2,7 @@
2
2
  # @omlish-lite
3
3
  # @omlish-script
4
4
  """
5
- curl -LsSf https://raw.githubusercontent.com/wrmsr/omlish/master/omdev/cli/install.py | python3 -
5
+ curl -LsSf 'https://raw.githubusercontent.com/wrmsr/omlish/master/omdev/cli/install.py' | python3 -
6
6
  """
7
7
  import abc
8
8
  import argparse
@@ -15,6 +15,9 @@ import sys
15
15
  import typing as ta
16
16
 
17
17
 
18
+ ##
19
+
20
+
18
21
  DEFAULT_CLI_PKG = 'omdev-cli'
19
22
  DEFAULT_PY_VER = '3.12'
20
23
 
omdev/cli/types.py CHANGED
@@ -3,6 +3,9 @@ import dataclasses as dc
3
3
  import typing as ta
4
4
 
5
5
 
6
+ ##
7
+
8
+
6
9
  @dc.dataclass(frozen=True)
7
10
  class CliCmd:
8
11
  cmd_name: ta.Union[str, ta.Sequence[str]]
@@ -34,10 +34,10 @@ class Markdown:
34
34
  """A markdown formatted text renderer. Accepts a markdown string and renders it at a given width."""
35
35
 
36
36
  def __init__(
37
- self,
38
- markup: str,
39
- width: int | None = None,
40
- strip_trailing_lines: bool = True,
37
+ self,
38
+ markup: str,
39
+ width: int | None = None,
40
+ strip_trailing_lines: bool = True,
41
41
  ) -> None:
42
42
  """
43
43
  Initialize the markdown formatter.
@@ -73,7 +73,7 @@ class Markdown:
73
73
  )
74
74
 
75
75
  def render(
76
- self,
76
+ self,
77
77
  tokens: ta.Sequence['Token'],
78
78
  width: int = 80,
79
79
  left: int = 0,
@@ -142,10 +142,10 @@ class Markdown:
142
142
  return ft
143
143
 
144
144
  def render_block(
145
- self,
146
- tokens: ta.Sequence['Token'],
147
- width: int,
148
- left: int = 0,
145
+ self,
146
+ tokens: ta.Sequence['Token'],
147
+ width: int,
148
+ left: int = 0,
149
149
  ) -> ptk.StyleAndTextTuples:
150
150
  """
151
151
  Render a list of parsed markdown tokens representing a block element.
@@ -191,10 +191,10 @@ class Markdown:
191
191
  return ft
192
192
 
193
193
  def render_ordered_list(
194
- self,
195
- tokens: ta.Sequence['Token'],
196
- width: int,
197
- left: int = 0,
194
+ self,
195
+ tokens: ta.Sequence['Token'],
196
+ width: int,
197
+ left: int = 0,
198
198
  ) -> ptk.StyleAndTextTuples:
199
199
  """Render an ordered list by adding indices to the child list items."""
200
200
 
@@ -220,11 +220,11 @@ class Markdown:
220
220
  )
221
221
 
222
222
  def render_table(
223
- self,
224
- tokens: ta.Sequence['Token'],
225
- width: int,
226
- left: int = 0,
227
- border: type[Border] = SquareBorder,
223
+ self,
224
+ tokens: ta.Sequence['Token'],
225
+ width: int,
226
+ left: int = 0,
227
+ border: type[Border] = SquareBorder,
228
228
  ) -> ptk.StyleAndTextTuples:
229
229
  """
230
230
  Render a list of parsed markdown tokens representing a table element.
omdev/pyproject/pkg.py CHANGED
@@ -184,8 +184,14 @@ class BasePyprojectPackageGenerator(abc.ABC):
184
184
 
185
185
  def _symlink_standard_files(self) -> None:
186
186
  for fn in self._STANDARD_FILES:
187
- if os.path.exists(fn):
188
- os.symlink(os.path.relpath(fn, self._pkg_dir()), os.path.join(self._pkg_dir(), fn))
187
+ for tp in [
188
+ [self._pkg_dir(), self._dir_name],
189
+ [],
190
+ ]:
191
+ fp = os.path.join(*tp, fn)
192
+ if os.path.exists(fp):
193
+ os.symlink(os.path.relpath(fp, self._pkg_dir()), os.path.join(self._pkg_dir(), fn))
194
+ break
189
195
 
190
196
  #
191
197
 
omdev/scripts/ci.py CHANGED
@@ -656,7 +656,15 @@ class Checks:
656
656
  spec = (object,)
657
657
  return spec
658
658
 
659
- def isinstance(self, v: ta.Any, spec: ta.Union[ta.Type[T], tuple], msg: CheckMessage = None) -> T: # noqa
659
+ @ta.overload
660
+ def isinstance(self, v: ta.Any, spec: ta.Type[T], msg: CheckMessage = None) -> T:
661
+ ...
662
+
663
+ @ta.overload
664
+ def isinstance(self, v: ta.Any, spec: ta.Any, msg: CheckMessage = None) -> ta.Any:
665
+ ...
666
+
667
+ def isinstance(self, v, spec, msg=None):
660
668
  if not isinstance(v, self._unpack_isinstance_spec(spec)):
661
669
  self._raise(
662
670
  TypeError,
@@ -668,7 +676,15 @@ class Checks:
668
676
 
669
677
  return v
670
678
 
671
- def of_isinstance(self, spec: ta.Union[ta.Type[T], tuple], msg: CheckMessage = None) -> ta.Callable[[ta.Any], T]:
679
+ @ta.overload
680
+ def of_isinstance(self, spec: ta.Type[T], msg: CheckMessage = None) -> ta.Callable[[ta.Any], T]:
681
+ ...
682
+
683
+ @ta.overload
684
+ def of_isinstance(self, spec: ta.Any, msg: CheckMessage = None) -> ta.Callable[[ta.Any], ta.Any]:
685
+ ...
686
+
687
+ def of_isinstance(self, spec, msg=None):
672
688
  def inner(v):
673
689
  return self.isinstance(v, self._unpack_isinstance_spec(spec), msg)
674
690
 
@@ -11436,7 +11452,7 @@ class AsyncioSubprocesses(AbstractAsyncSubprocesses):
11436
11452
  async with self.popen(*run.cmd, **kwargs) as proc:
11437
11453
  stdout, stderr = await self.communicate(proc, run.input, run.timeout)
11438
11454
 
11439
- if check and proc.returncode:
11455
+ if run.check and proc.returncode:
11440
11456
  raise subprocess.CalledProcessError(
11441
11457
  proc.returncode,
11442
11458
  run.cmd,
omdev/scripts/interp.py CHANGED
@@ -692,7 +692,15 @@ class Checks:
692
692
  spec = (object,)
693
693
  return spec
694
694
 
695
- def isinstance(self, v: ta.Any, spec: ta.Union[ta.Type[T], tuple], msg: CheckMessage = None) -> T: # noqa
695
+ @ta.overload
696
+ def isinstance(self, v: ta.Any, spec: ta.Type[T], msg: CheckMessage = None) -> T:
697
+ ...
698
+
699
+ @ta.overload
700
+ def isinstance(self, v: ta.Any, spec: ta.Any, msg: CheckMessage = None) -> ta.Any:
701
+ ...
702
+
703
+ def isinstance(self, v, spec, msg=None):
696
704
  if not isinstance(v, self._unpack_isinstance_spec(spec)):
697
705
  self._raise(
698
706
  TypeError,
@@ -704,7 +712,15 @@ class Checks:
704
712
 
705
713
  return v
706
714
 
707
- def of_isinstance(self, spec: ta.Union[ta.Type[T], tuple], msg: CheckMessage = None) -> ta.Callable[[ta.Any], T]:
715
+ @ta.overload
716
+ def of_isinstance(self, spec: ta.Type[T], msg: CheckMessage = None) -> ta.Callable[[ta.Any], T]:
717
+ ...
718
+
719
+ @ta.overload
720
+ def of_isinstance(self, spec: ta.Any, msg: CheckMessage = None) -> ta.Callable[[ta.Any], ta.Any]:
721
+ ...
722
+
723
+ def of_isinstance(self, spec, msg=None):
708
724
  def inner(v):
709
725
  return self.isinstance(v, self._unpack_isinstance_spec(spec), msg)
710
726
 
@@ -4610,7 +4626,7 @@ class AsyncioSubprocesses(AbstractAsyncSubprocesses):
4610
4626
  async with self.popen(*run.cmd, **kwargs) as proc:
4611
4627
  stdout, stderr = await self.communicate(proc, run.input, run.timeout)
4612
4628
 
4613
- if check and proc.returncode:
4629
+ if run.check and proc.returncode:
4614
4630
  raise subprocess.CalledProcessError(
4615
4631
  proc.returncode,
4616
4632
  run.cmd,
@@ -949,6 +949,7 @@ class TomlDecodeError(ValueError):
949
949
 
950
950
  def toml_load(fp: ta.BinaryIO, /, *, parse_float: TomlParseFloat = float) -> ta.Dict[str, ta.Any]:
951
951
  """Parse TOML from a binary file object."""
952
+
952
953
  b = fp.read()
953
954
  try:
954
955
  s = b.decode()
@@ -1992,7 +1993,15 @@ class Checks:
1992
1993
  spec = (object,)
1993
1994
  return spec
1994
1995
 
1995
- def isinstance(self, v: ta.Any, spec: ta.Union[ta.Type[T], tuple], msg: CheckMessage = None) -> T: # noqa
1996
+ @ta.overload
1997
+ def isinstance(self, v: ta.Any, spec: ta.Type[T], msg: CheckMessage = None) -> T:
1998
+ ...
1999
+
2000
+ @ta.overload
2001
+ def isinstance(self, v: ta.Any, spec: ta.Any, msg: CheckMessage = None) -> ta.Any:
2002
+ ...
2003
+
2004
+ def isinstance(self, v, spec, msg=None):
1996
2005
  if not isinstance(v, self._unpack_isinstance_spec(spec)):
1997
2006
  self._raise(
1998
2007
  TypeError,
@@ -2004,7 +2013,15 @@ class Checks:
2004
2013
 
2005
2014
  return v
2006
2015
 
2007
- def of_isinstance(self, spec: ta.Union[ta.Type[T], tuple], msg: CheckMessage = None) -> ta.Callable[[ta.Any], T]:
2016
+ @ta.overload
2017
+ def of_isinstance(self, spec: ta.Type[T], msg: CheckMessage = None) -> ta.Callable[[ta.Any], T]:
2018
+ ...
2019
+
2020
+ @ta.overload
2021
+ def of_isinstance(self, spec: ta.Any, msg: CheckMessage = None) -> ta.Callable[[ta.Any], ta.Any]:
2022
+ ...
2023
+
2024
+ def of_isinstance(self, spec, msg=None):
2008
2025
  def inner(v):
2009
2026
  return self.isinstance(v, self._unpack_isinstance_spec(spec), msg)
2010
2027
 
@@ -7063,7 +7080,7 @@ class AsyncioSubprocesses(AbstractAsyncSubprocesses):
7063
7080
  async with self.popen(*run.cmd, **kwargs) as proc:
7064
7081
  stdout, stderr = await self.communicate(proc, run.input, run.timeout)
7065
7082
 
7066
- if check and proc.returncode:
7083
+ if run.check and proc.returncode:
7067
7084
  raise subprocess.CalledProcessError(
7068
7085
  proc.returncode,
7069
7086
  run.cmd,
@@ -7982,8 +7999,14 @@ class BasePyprojectPackageGenerator(abc.ABC):
7982
7999
 
7983
8000
  def _symlink_standard_files(self) -> None:
7984
8001
  for fn in self._STANDARD_FILES:
7985
- if os.path.exists(fn):
7986
- os.symlink(os.path.relpath(fn, self._pkg_dir()), os.path.join(self._pkg_dir(), fn))
8002
+ for tp in [
8003
+ [self._pkg_dir(), self._dir_name],
8004
+ [],
8005
+ ]:
8006
+ fp = os.path.join(*tp, fn)
8007
+ if os.path.exists(fp):
8008
+ os.symlink(os.path.relpath(fp, self._pkg_dir()), os.path.join(self._pkg_dir(), fn))
8009
+ break
7987
8010
 
7988
8011
  #
7989
8012
 
omdev/tools/shadow.py CHANGED
@@ -1,7 +1,6 @@
1
1
  """
2
2
  TODO:
3
3
  - 'edit', default cwd - use git's
4
- - git var GIT_EDITOR
5
4
  - delete?
6
5
  - 'purge'?
7
6
  - 'validate' - at least formats
@@ -12,6 +11,7 @@ import shutil
12
11
  from omlish import check
13
12
  from omlish.argparse import all as ap
14
13
  from omlish.configs.shadow import FileShadowConfigs
14
+ from omlish.subprocesses.editor import get_user_text_editor
15
15
 
16
16
  from ..cli.types import CliModule
17
17
  from ..home.shadow import get_shadow_configs
@@ -36,7 +36,11 @@ class ShadowCli(ap.Cli):
36
36
  def edit(self) -> None:
37
37
  shd_file = self._get_shadow_file(self._args.path)
38
38
  os.makedirs(os.path.dirname(shd_file), exist_ok=True)
39
- os.execl(check.not_none(shutil.which('vim')), 'vim', shd_file)
39
+
40
+ ed = get_user_text_editor()
41
+ ed_exe = check.not_none(shutil.which(ed))
42
+
43
+ os.execl(ed_exe, ed_exe, shd_file)
40
44
 
41
45
  @ap.cmd(
42
46
  ap.arg('path', nargs='?'),
@@ -1,6 +1,6 @@
1
1
  Metadata-Version: 2.4
2
2
  Name: omdev
3
- Version: 0.0.0.dev300
3
+ Version: 0.0.0.dev302
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.dev300
15
+ Requires-Dist: omlish==0.0.0.dev302
16
16
  Provides-Extra: all
17
17
  Requires-Dist: black~=25.1; extra == "all"
18
18
  Requires-Dist: pycparser~=2.22; extra == "all"
@@ -1,4 +1,4 @@
1
- omdev/.manifests.json,sha256=dGVYrnJAvQf447hWZwk5SO7-PdQh0XH_sDs7eX4CAds,10721
1
+ omdev/.manifests.json,sha256=ouzCsEt6dHvLXr-DyZ-gLxbnizOFe0BE6u6xKH3RKEI,10721
2
2
  omdev/__about__.py,sha256=16xa_1BdZanTpZbkjAOQ11_x5kJcb1m1tKdvb06J7VI,1202
3
3
  omdev/__init__.py,sha256=47DEQpj8HBSa-_TImW-5JCeuQeRkm5NMpJWZG3hSuFU,0
4
4
  omdev/cmake.py,sha256=9rfSvFHPmKDj9ngvfDB2vK8O-xO_ZwUm7hMKLWA-yOw,4578
@@ -39,7 +39,7 @@ omdev/cc/__init__.py,sha256=47DEQpj8HBSa-_TImW-5JCeuQeRkm5NMpJWZG3hSuFU,0
39
39
  omdev/cc/__main__.py,sha256=n7gxSRYZ1QZOUxQPCT0_n9Xl26zi2UIvCwyGW_m67nA,166
40
40
  omdev/cc/cdeps.py,sha256=33_XLbLZMptyJIkzas6ruSHsaNi95pRQj5BNQInG75o,1546
41
41
  omdev/cc/cdeps.toml,sha256=MqZ1OQHQ2JPvQpHRL32GpRgQWQRtzjPI2EWl4EqSm-I,1004
42
- omdev/cc/cli.py,sha256=B_JmY2hFfWaCc7IpISmcbMTWuzGN4xtpHkzaGLQIkL0,4412
42
+ omdev/cc/cli.py,sha256=h_eIA370FLJTzzSmPlk4WEcJZMuH_zeeokztG0FZMFI,4425
43
43
  omdev/cexts/__init__.py,sha256=47DEQpj8HBSa-_TImW-5JCeuQeRkm5NMpJWZG3hSuFU,0
44
44
  omdev/cexts/_boilerplate.cc,sha256=sbpXEgdFrkdzZXgaNWFFNN27fL9TZu6VrwvMY4-nnFM,1726
45
45
  omdev/cexts/build.py,sha256=F3z1-CjDlEM-Gzi5IunKUBO52qdH_pMsFylobTdGJnI,2654
@@ -104,12 +104,12 @@ omdev/ci/github/api/v2/azure.py,sha256=N2Z1525WMCAyYSfDqICneRT6itwkAoX3_qp8OlE-j
104
104
  omdev/ci/github/api/v2/client.py,sha256=scY_Nmzt6wKjFt_YjTq0CjBHArV8DnLQeLlxlpShOOI,6348
105
105
  omdev/cli/__init__.py,sha256=V_l6VP1SZMlJbO-8CJwSuO9TThOy2S_oaPepNYgIrbE,37
106
106
  omdev/cli/__main__.py,sha256=mOJpgc07o0r5luQ1DlX4tk2PqZkgmbwPbdzJ3KmtjgQ,138
107
- omdev/cli/_pathhack.py,sha256=kxqb2kHap68Lkh8b211rDbcgj06hidBiAKA3f9posyc,2119
108
- omdev/cli/clicli.py,sha256=KWDQl1tsJctk-3AOWOf7IP2b4khoUhb0kyfrj3Df5VU,4476
109
- omdev/cli/install.py,sha256=C-W171YlIHt4Cfok-nWSMbHwWhqF_PFqq2HixFttYx8,4460
107
+ omdev/cli/_pathhack.py,sha256=UshIZX3oeXq0De-9X28gy2LgKMZDf_dzabdkUhZJdNA,2124
108
+ omdev/cli/clicli.py,sha256=LuOdHYh_YFULDxZCX6X0sB6JFpu6ogntVtN4WdT0o3Q,4481
109
+ omdev/cli/install.py,sha256=Vy2-Qxgjua_80KLOAa7cUNn-WxtG7ebAmlkHfSTXkFM,4467
110
110
  omdev/cli/main.py,sha256=dxZFyzKuwRykHHhoKKUA0fUa9QsY0dgdvLHbXNuIPCY,6694
111
111
  omdev/cli/managers.py,sha256=BV98_n30Jj63OJrFgRoVZRfICxMLXEZKoEn4rMj9LV4,1160
112
- omdev/cli/types.py,sha256=bqKw9SbtBtAip2vF9v4khh0CqKG6LBr6n9VzWBz7AJE,474
112
+ omdev/cli/types.py,sha256=_aFoUxSOQX_RzRiauy0UNfnUqVXuea9WtWSCGkHtJuw,479
113
113
  omdev/clipboard/__init__.py,sha256=47DEQpj8HBSa-_TImW-5JCeuQeRkm5NMpJWZG3hSuFU,0
114
114
  omdev/clipboard/clipboard.py,sha256=9HFpcijpn0XDTI89ZRm2WA1G7O4HsTdVXZHqMULu3N0,1630
115
115
  omdev/clipboard/darwin_cf.py,sha256=1gFkxEN6w9HTcA0eiWw14oL7xjC1wSmY_hUrRr5OU4Y,7687
@@ -207,7 +207,7 @@ omdev/ptk/markdown/__init__.py,sha256=f3vF1fbLTKcSC6SYcFPWULiiCOO-DpGH2LVFyu2Vzg
207
207
  omdev/ptk/markdown/__main__.py,sha256=zaZuKy3-llEztkpoIAIzvspOyCsTJQI33ZuadvSHJKM,181
208
208
  omdev/ptk/markdown/border.py,sha256=4gWpwTimurgJ_MjE-UKMCDMb4DnVcgFPfXutObQWOxk,1726
209
209
  omdev/ptk/markdown/cli.py,sha256=FlV12qpyVWgpfeOzyFg9DlgLkss3rgCet_Jebs6_Xqo,537
210
- omdev/ptk/markdown/markdown.py,sha256=fppron-ZOOnUy5MJsKLnU6ysaldK_D62XF-LjnlszO4,12206
210
+ omdev/ptk/markdown/markdown.py,sha256=B45hRwgX46z5fJFUsJ2jCVn6kc_vpwPjRjLDdILKlfA,12278
211
211
  omdev/ptk/markdown/parser.py,sha256=UppwouvAYh3qzQMKL-BjcyqBIl2KHcocXlWiKFZ7cBA,990
212
212
  omdev/ptk/markdown/styles.py,sha256=lc17zooXhff5_2tkqLsCmdq2b_rfSAehmHVR-8Lo2qk,777
213
213
  omdev/ptk/markdown/tags.py,sha256=askGU252Zu8KxG2menVHZHXZ4fGbItgy0G4UW9F3mFI,6983
@@ -231,16 +231,16 @@ omdev/pyproject/cexts.py,sha256=x13piOOnNrYbA17qZLDVuR0p1sqhgEwpk4FtImX-klM,4281
231
231
  omdev/pyproject/cli.py,sha256=Jp3OTevYndvtid2fr-Q7rWza29GnLexotmf19JJcX-o,8743
232
232
  omdev/pyproject/configs.py,sha256=HEo90bPUAo6CBnBHZFDYohlwiRD-4cxZCYR6oXv-5lQ,2802
233
233
  omdev/pyproject/inject.py,sha256=PgZnfWGoqjHsaHLUEPJaQW_66h1LRuSm8Njl--KDzOw,314
234
- omdev/pyproject/pkg.py,sha256=evhx3W7Os4V8y4cugp5-6KhmVe2-mxRel-IgrMZZoHQ,14657
234
+ omdev/pyproject/pkg.py,sha256=0h1UKKywuO3fjqyV-zIdQq-z3bVDtIYJoSRl1T5kKOA,14844
235
235
  omdev/pyproject/reqs.py,sha256=8feZ71YnGzwKbLK4zO28CDQeNcZIIuq6cnkBhs6M-7E,2406
236
236
  omdev/pyproject/venvs.py,sha256=GUurjC7qzGlFL-su4C0YPO_pxbwDAyl1CqyLOB3WLCA,1911
237
237
  omdev/pyproject/resources/__init__.py,sha256=47DEQpj8HBSa-_TImW-5JCeuQeRkm5NMpJWZG3hSuFU,0
238
238
  omdev/pyproject/resources/docker-dev.sh,sha256=DHkz5D18jok_oDolfg2mqrvGRWFoCe9GQo04dR1czcc,838
239
239
  omdev/pyproject/resources/python.sh,sha256=rFaN4SiJ9hdLDXXsDTwugI6zsw6EPkgYMmtacZeTbvw,749
240
240
  omdev/scripts/__init__.py,sha256=MKCvUAEQwsIvwLixwtPlpBqmkMXLCnjjXyAXvVpDwVk,91
241
- omdev/scripts/ci.py,sha256=Yn2-t6f2mu6f8wMzFyQrg2aRizfP2p42VkGgFesaMa0,353283
242
- omdev/scripts/interp.py,sha256=S2WRMSm75MDMZaJQiHqjmWJFt5LTujFE_lFHCQCsk8w,151816
243
- omdev/scripts/pyproject.py,sha256=alHl9jCosMFVGWyYYdLGAC0U8J00iEgNgASo4Od09Ag,260967
241
+ omdev/scripts/ci.py,sha256=NrDC4nDgNx_G4MIZHrDNgwunj0PYd27KITB8Klwr0Ww,353644
242
+ omdev/scripts/interp.py,sha256=-aW0Jbqc0VyioTtup7LCmzsifNrbXKDtN3m_hDdRnuU,152177
243
+ omdev/scripts/pyproject.py,sha256=MLG_Srv7HfM24IU6H93J5ouQYUVX0m-08cVam9du_pM,261516
244
244
  omdev/scripts/slowcat.py,sha256=lssv4yrgJHiWfOiHkUut2p8E8Tq32zB-ujXESQxFFHY,2728
245
245
  omdev/scripts/tmpexec.py,sha256=WTYcf56Tj2qjYV14AWmV8SfT0u6Y8eIU6cKgQRvEK3c,1442
246
246
  omdev/tokens/__init__.py,sha256=47DEQpj8HBSa-_TImW-5JCeuQeRkm5NMpJWZG3hSuFU,0
@@ -259,7 +259,7 @@ omdev/tools/notebook.py,sha256=q1YMGwM1skHv-dPbtT_cM7UOGFNiMEAxjr6rr6rbobk,3494
259
259
  omdev/tools/pip.py,sha256=eBD41hp-V3thGfhUBM3Erxl4CSG-5LG6Szo1sA76P2k,3459
260
260
  omdev/tools/prof.py,sha256=hQakAsViJD4gLJpLLZnTkOqmTDAwM48Nx5q-O_aFlYM,1467
261
261
  omdev/tools/qr.py,sha256=tm68lPwEAkEwIL2sUKPKBYfwwPtjVWG1DBZwur8_jY8,1737
262
- omdev/tools/shadow.py,sha256=e0-R3Ss9CaZbGSUzSSr29OVj9mUQ-Oelh-66Dfkx5nk,1600
262
+ omdev/tools/shadow.py,sha256=4E2ilxa16liIvQxvgU37ITkOMrP6ufShRQfeW7wwtRc,1697
263
263
  omdev/tools/sqlrepl.py,sha256=wAjrfXNrRV63-NJCC2HlGQnFh7lUH0bHMnOjYotQqFs,5753
264
264
  omdev/tools/git/__init__.py,sha256=47DEQpj8HBSa-_TImW-5JCeuQeRkm5NMpJWZG3hSuFU,0
265
265
  omdev/tools/git/__main__.py,sha256=gI87SBUgTkKUcUM-RtZWnei-UUDDqzbr5aPztb-gvbE,168
@@ -277,9 +277,9 @@ omdev/tools/json/rendering.py,sha256=tMcjOW5edfozcMSTxxvF7WVTsbYLoe9bCKFh50qyaGw
277
277
  omdev/tools/pawk/__init__.py,sha256=47DEQpj8HBSa-_TImW-5JCeuQeRkm5NMpJWZG3hSuFU,0
278
278
  omdev/tools/pawk/__main__.py,sha256=VCqeRVnqT1RPEoIrqHFSu4PXVMg4YEgF4qCQm90-eRI,66
279
279
  omdev/tools/pawk/pawk.py,sha256=zsEkfQX0jF5bn712uqPAyBSdJt2dno1LH2oeSMNfXQI,11424
280
- omdev-0.0.0.dev300.dist-info/licenses/LICENSE,sha256=B_hVtavaA8zCYDW99DYdcpDLKz1n3BBRjZrcbv8uG8c,1451
281
- omdev-0.0.0.dev300.dist-info/METADATA,sha256=B3yRNUWi0T1-pScP_7JQMWCyrFpgxMsmOZ_6rE0XdV8,1674
282
- omdev-0.0.0.dev300.dist-info/WHEEL,sha256=pxyMxgL8-pra_rKaQ4drOZAegBVuX-G_4nRHjjgWbmo,91
283
- omdev-0.0.0.dev300.dist-info/entry_points.txt,sha256=dHLXFmq5D9B8qUyhRtFqTGWGxlbx3t5ejedjrnXNYLU,33
284
- omdev-0.0.0.dev300.dist-info/top_level.txt,sha256=1nr7j30fEWgLYHW3lGR9pkdHkb7knv1U1ES1XRNVQ6k,6
285
- omdev-0.0.0.dev300.dist-info/RECORD,,
280
+ omdev-0.0.0.dev302.dist-info/licenses/LICENSE,sha256=B_hVtavaA8zCYDW99DYdcpDLKz1n3BBRjZrcbv8uG8c,1451
281
+ omdev-0.0.0.dev302.dist-info/METADATA,sha256=TFQLqSQxAlJ5SfRQVn6PLJgaq4aZXoU4loXHnTDOUsM,1674
282
+ omdev-0.0.0.dev302.dist-info/WHEEL,sha256=ck4Vq1_RXyvS4Jt6SI0Vz6fyVs4GWg7AINwpsaGEgPE,91
283
+ omdev-0.0.0.dev302.dist-info/entry_points.txt,sha256=dHLXFmq5D9B8qUyhRtFqTGWGxlbx3t5ejedjrnXNYLU,33
284
+ omdev-0.0.0.dev302.dist-info/top_level.txt,sha256=1nr7j30fEWgLYHW3lGR9pkdHkb7knv1U1ES1XRNVQ6k,6
285
+ omdev-0.0.0.dev302.dist-info/RECORD,,
@@ -1,5 +1,5 @@
1
1
  Wheel-Version: 1.0
2
- Generator: setuptools (79.0.0)
2
+ Generator: setuptools (80.0.0)
3
3
  Root-Is-Purelib: true
4
4
  Tag: py3-none-any
5
5