ominfra 0.0.0.dev363__py3-none-any.whl → 0.0.0.dev365__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.
@@ -1666,7 +1666,7 @@ class Checks:
1666
1666
  render_fmt='%s',
1667
1667
  )
1668
1668
 
1669
- return v # type: ignore
1669
+ return v
1670
1670
 
1671
1671
  def non_empty_str(self, v: ta.Optional[str], msg: CheckMessage = None) -> str:
1672
1672
  if not isinstance(v, str) or not v:
ominfra/scripts/manage.py CHANGED
@@ -2916,7 +2916,7 @@ class Checks:
2916
2916
  render_fmt='%s',
2917
2917
  )
2918
2918
 
2919
- return v # type: ignore
2919
+ return v
2920
2920
 
2921
2921
  def non_empty_str(self, v: ta.Optional[str], msg: CheckMessage = None) -> str:
2922
2922
  if not isinstance(v, str) or not v:
@@ -4360,6 +4360,31 @@ class LinuxOsRelease:
4360
4360
  ##
4361
4361
 
4362
4362
 
4363
+ @ta.overload
4364
+ def path_dirname(p: str, n: int = 1) -> str:
4365
+ ...
4366
+
4367
+
4368
+ @ta.overload
4369
+ def path_dirname(p: bytes, n: int = 1) -> bytes:
4370
+ ...
4371
+
4372
+
4373
+ def path_dirname(p, n=1):
4374
+ if isinstance(p, bytes):
4375
+ sep: ta.Any = b'/'
4376
+ else:
4377
+ sep = '/'
4378
+ p = os.fspath(p)
4379
+ i = -1
4380
+ for _ in range(n):
4381
+ i = p.rindex(sep, 0, i)
4382
+ head = p[:i + 1]
4383
+ if head and head != sep * len(head):
4384
+ head = head.rstrip(sep)
4385
+ return head
4386
+
4387
+
4363
4388
  def abs_real_path(p: str) -> str:
4364
4389
  return os.path.abspath(os.path.realpath(p))
4365
4390
 
@@ -5611,7 +5636,7 @@ class ArgparseCli:
5611
5636
 
5612
5637
  if self._unknown_args and not (cmd is not None and cmd.accepts_unknown):
5613
5638
  msg = f'unrecognized arguments: {" ".join(self._unknown_args)}'
5614
- if (parser := self.get_parser()).exit_on_error: # type: ignore
5639
+ if (parser := self.get_parser()).exit_on_error:
5615
5640
  parser.error(msg)
5616
5641
  else:
5617
5642
  raise argparse.ArgumentError(None, msg)
@@ -8142,7 +8167,7 @@ class SubprocessRun:
8142
8167
  ) -> SubprocessRunOutput:
8143
8168
  if subprocesses is None:
8144
8169
  subprocesses = self._DEFAULT_SUBPROCESSES
8145
- return check.not_none(subprocesses).run_(self.replace(**kwargs)) # type: ignore[attr-defined]
8170
+ return check.not_none(subprocesses).run_(self.replace(**kwargs))
8146
8171
 
8147
8172
  _DEFAULT_ASYNC_SUBPROCESSES: ta.ClassVar[ta.Optional[ta.Any]] = None # AbstractAsyncSubprocesses
8148
8173
 
@@ -8153,7 +8178,7 @@ class SubprocessRun:
8153
8178
  ) -> SubprocessRunOutput:
8154
8179
  if async_subprocesses is None:
8155
8180
  async_subprocesses = self._DEFAULT_ASYNC_SUBPROCESSES
8156
- return await check.not_none(async_subprocesses).run_(self.replace(**kwargs)) # type: ignore[attr-defined]
8181
+ return await check.not_none(async_subprocesses).run_(self.replace(**kwargs))
8157
8182
 
8158
8183
 
8159
8184
  SubprocessRun._FIELD_NAMES = frozenset(fld.name for fld in dc.fields(SubprocessRun)) # noqa
@@ -2441,7 +2441,7 @@ class Checks:
2441
2441
  render_fmt='%s',
2442
2442
  )
2443
2443
 
2444
- return v # type: ignore
2444
+ return v
2445
2445
 
2446
2446
  def non_empty_str(self, v: ta.Optional[str], msg: CheckMessage = None) -> str:
2447
2447
  if not isinstance(v, str) or not v:
@@ -1,6 +1,6 @@
1
1
  Metadata-Version: 2.4
2
2
  Name: ominfra
3
- Version: 0.0.0.dev363
3
+ Version: 0.0.0.dev365
4
4
  Summary: ominfra
5
5
  Author: wrmsr
6
6
  License: BSD-3-Clause
@@ -12,8 +12,8 @@ Classifier: Operating System :: OS Independent
12
12
  Classifier: Operating System :: POSIX
13
13
  Requires-Python: >=3.13
14
14
  License-File: LICENSE
15
- Requires-Dist: omdev==0.0.0.dev363
16
- Requires-Dist: omlish==0.0.0.dev363
15
+ Requires-Dist: omdev==0.0.0.dev365
16
+ Requires-Dist: omlish==0.0.0.dev365
17
17
  Provides-Extra: all
18
18
  Requires-Dist: paramiko~=3.5; extra == "all"
19
19
  Requires-Dist: asyncssh~=2.21; extra == "all"
@@ -112,9 +112,9 @@ ominfra/manage/targets/connection.py,sha256=Ut-R_PvQN9tPBacZD0ODmLIYvLsgS51qvOGr
112
112
  ominfra/manage/targets/inject.py,sha256=3M4wBkxtvymq_yhiotHlTN8iydELMjVCndyp9Bq-4eo,1572
113
113
  ominfra/manage/targets/targets.py,sha256=WmasYmL6xfAI7F0XvDhScFdBVxkqPkmo_gRgABmmkGA,1891
114
114
  ominfra/scripts/__init__.py,sha256=47DEQpj8HBSa-_TImW-5JCeuQeRkm5NMpJWZG3hSuFU,0
115
- ominfra/scripts/journald2aws.py,sha256=cgb5LB2htweJ7LFWMDVTxqWAuDsG2wde22VPiROxbbk,171940
116
- ominfra/scripts/manage.py,sha256=-O4ucxZ-b8IMf-pQxcU8q2IY7RIC_B4pxUpCusTLrDU,390186
117
- ominfra/scripts/supervisor.py,sha256=z31BDyREaJ8EMFM6PHYjWB3po8sep-uWqdrA5XaC0WQ,304425
115
+ ominfra/scripts/journald2aws.py,sha256=4OP1vqQE0Ry_uVgqlYPlYqRG6Q081A0YcmRNxs7oXoo,171924
116
+ ominfra/scripts/manage.py,sha256=Ze0_y2EzuKua5MJNBnu-uRY9zo66jDl0AW6xoI5pf1w,390543
117
+ ominfra/scripts/supervisor.py,sha256=cJaEII4eaHSAFTrQuec2YhYQE0n3EkPAUFn5GE7oivQ,304409
118
118
  ominfra/supervisor/LICENSE.txt,sha256=ZrHY15PVR98y26Yg6iQfa-SXnUaYTDhrUsPVcEO5OKM,1874
119
119
  ominfra/supervisor/__init__.py,sha256=Y3l4WY4JRi2uLG6kgbGp93fuGfkxkKwZDvhsa0Rwgtk,15
120
120
  ominfra/supervisor/__main__.py,sha256=I0yFw-C08OOiZ3BF6lF1Oiv789EQXu-_j6whDhQUTEA,66
@@ -156,9 +156,9 @@ ominfra/tailscale/api.py,sha256=XASv9C_CWI-u-yX5jVzhJrkJhlwQRkYQWQQG1uJwAd8,1375
156
156
  ominfra/tailscale/cli.py,sha256=zRV7-tKB7kBah1oTVZlol-vwx1FBlnfzYAPGkeU5jX4,3543
157
157
  ominfra/tools/__init__.py,sha256=47DEQpj8HBSa-_TImW-5JCeuQeRkm5NMpJWZG3hSuFU,0
158
158
  ominfra/tools/listresources.py,sha256=auGP1LlbBJSFKUWNvQo_UzA8IsBNZBTMwEkFFRJ4FX4,6185
159
- ominfra-0.0.0.dev363.dist-info/licenses/LICENSE,sha256=B_hVtavaA8zCYDW99DYdcpDLKz1n3BBRjZrcbv8uG8c,1451
160
- ominfra-0.0.0.dev363.dist-info/METADATA,sha256=9oxbgSqA8pvM-oX5ygkkUh-5Da0e_LUaPvSC4Gatmgs,753
161
- ominfra-0.0.0.dev363.dist-info/WHEEL,sha256=_zCd3N1l69ArxyTb8rzEoP9TpbYXkqRFSNOD5OuxnTs,91
162
- ominfra-0.0.0.dev363.dist-info/entry_points.txt,sha256=kgecQ2MgGrM9qK744BoKS3tMesaC3yjLnl9pa5CRczg,37
163
- ominfra-0.0.0.dev363.dist-info/top_level.txt,sha256=E-b2OHkk_AOBLXHYZQ2EOFKl-_6uOGd8EjeG-Zy6h_w,8
164
- ominfra-0.0.0.dev363.dist-info/RECORD,,
159
+ ominfra-0.0.0.dev365.dist-info/licenses/LICENSE,sha256=B_hVtavaA8zCYDW99DYdcpDLKz1n3BBRjZrcbv8uG8c,1451
160
+ ominfra-0.0.0.dev365.dist-info/METADATA,sha256=prAk5036CE4owc2cDZWTN7UkrgOTRtY0UU91WcdTiLM,753
161
+ ominfra-0.0.0.dev365.dist-info/WHEEL,sha256=_zCd3N1l69ArxyTb8rzEoP9TpbYXkqRFSNOD5OuxnTs,91
162
+ ominfra-0.0.0.dev365.dist-info/entry_points.txt,sha256=kgecQ2MgGrM9qK744BoKS3tMesaC3yjLnl9pa5CRczg,37
163
+ ominfra-0.0.0.dev365.dist-info/top_level.txt,sha256=E-b2OHkk_AOBLXHYZQ2EOFKl-_6uOGd8EjeG-Zy6h_w,8
164
+ ominfra-0.0.0.dev365.dist-info/RECORD,,