omdev 0.0.0.dev301__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
@@ -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
  """
@@ -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/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
 
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
 
@@ -1993,7 +1993,15 @@ class Checks:
1993
1993
  spec = (object,)
1994
1994
  return spec
1995
1995
 
1996
- 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):
1997
2005
  if not isinstance(v, self._unpack_isinstance_spec(spec)):
1998
2006
  self._raise(
1999
2007
  TypeError,
@@ -2005,7 +2013,15 @@ class Checks:
2005
2013
 
2006
2014
  return v
2007
2015
 
2008
- 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):
2009
2025
  def inner(v):
2010
2026
  return self.isinstance(v, self._unpack_isinstance_spec(spec), msg)
2011
2027
 
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.dev301
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.dev301
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=bjE9Iw6Zx6fqBBkH-mTcTLze6jxh126JRSBxdMVPQjU,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
@@ -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
@@ -238,9 +238,9 @@ omdev/pyproject/resources/__init__.py,sha256=47DEQpj8HBSa-_TImW-5JCeuQeRkm5NMpJW
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=qTqXdGd0T1Lp4OfVm8dO080seeeYTubD6QBYr_3EQI8,353287
242
- omdev/scripts/interp.py,sha256=EnXhNiIPrVq-NlSeNPOQik8xTetB2i-d92U8_OpmTxg,151820
243
- omdev/scripts/pyproject.py,sha256=GOUqmpbb4XuYhBp2GmkI-P92lC7CsYYfC277hyE4CTk,261159
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.dev301.dist-info/licenses/LICENSE,sha256=B_hVtavaA8zCYDW99DYdcpDLKz1n3BBRjZrcbv8uG8c,1451
281
- omdev-0.0.0.dev301.dist-info/METADATA,sha256=RTtM2hskW9-UBits6U6nanzEeFrc3qsHOVDuruRi-vA,1674
282
- omdev-0.0.0.dev301.dist-info/WHEEL,sha256=SmOxYU7pzNKBqASvQJ7DjX3XGUF92lrGhMb3R6_iiqI,91
283
- omdev-0.0.0.dev301.dist-info/entry_points.txt,sha256=dHLXFmq5D9B8qUyhRtFqTGWGxlbx3t5ejedjrnXNYLU,33
284
- omdev-0.0.0.dev301.dist-info/top_level.txt,sha256=1nr7j30fEWgLYHW3lGR9pkdHkb7knv1U1ES1XRNVQ6k,6
285
- omdev-0.0.0.dev301.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.1)
2
+ Generator: setuptools (80.0.0)
3
3
  Root-Is-Purelib: true
4
4
  Tag: py3-none-any
5
5