dycw-utilities 0.175.11__py3-none-any.whl → 0.175.13__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.
- {dycw_utilities-0.175.11.dist-info → dycw_utilities-0.175.13.dist-info}/METADATA +1 -1
- {dycw_utilities-0.175.11.dist-info → dycw_utilities-0.175.13.dist-info}/RECORD +6 -6
- utilities/__init__.py +1 -1
- utilities/subprocess.py +21 -0
- {dycw_utilities-0.175.11.dist-info → dycw_utilities-0.175.13.dist-info}/WHEEL +0 -0
- {dycw_utilities-0.175.11.dist-info → dycw_utilities-0.175.13.dist-info}/entry_points.txt +0 -0
|
@@ -1,4 +1,4 @@
|
|
|
1
|
-
utilities/__init__.py,sha256=
|
|
1
|
+
utilities/__init__.py,sha256=rn68oFi0llJJbsq0IE3UHX95wFkFFAgE8pxnKhJghXs,61
|
|
2
2
|
utilities/altair.py,sha256=TLfRFbG9HwG7SLXoJ-v0r-t49ZaGgTQZD82cpjVi4vs,9085
|
|
3
3
|
utilities/asyncio.py,sha256=aJySVxBY0gqsIYnoNmH7-1r8djKuf4vSsU69VCD08t8,16772
|
|
4
4
|
utilities/atomicwrites.py,sha256=tPo6r-Rypd9u99u66B9z86YBPpnLrlHtwox_8Z7T34Y,5790
|
|
@@ -80,7 +80,7 @@ utilities/sqlalchemy.py,sha256=HQYpd7LFxdTF5WYVWYtCJeEBI71EJm7ytvCGyAH9B-U,37163
|
|
|
80
80
|
utilities/sqlalchemy_polars.py,sha256=JCGhB37raSR7fqeWV5dTsciRTMVzIdVT9YSqKT0piT0,13370
|
|
81
81
|
utilities/statsmodels.py,sha256=koyiBHvpMcSiBfh99wFUfSggLNx7cuAw3rwyfAhoKpQ,3410
|
|
82
82
|
utilities/string.py,sha256=shmBK87zZwzGyixuNuXCiUbqzfeZ9xlrFwz6JTaRvDk,582
|
|
83
|
-
utilities/subprocess.py,sha256=
|
|
83
|
+
utilities/subprocess.py,sha256=TZZ4C197fwsL71diaMID1sIfxxCOoR6aVq3RSsSRd-Y,41809
|
|
84
84
|
utilities/tempfile.py,sha256=QyvIdfV4r4YZ0NeNYsg0tCijThLKa7Z32u5Kxy6ZsGo,3619
|
|
85
85
|
utilities/testbook.py,sha256=j1KmaVbrX9VrbeMgtPh5gk55myAsn3dyRUn7jGbPbRk,1294
|
|
86
86
|
utilities/text.py,sha256=7SvwcSR2l_5cOrm1samGnR4C-ZI6qyFLHLzSpO1zeHQ,13958
|
|
@@ -97,7 +97,7 @@ utilities/warnings.py,sha256=un1LvHv70PU-LLv8RxPVmugTzDJkkGXRMZTE2-fTQHw,1771
|
|
|
97
97
|
utilities/whenever.py,sha256=F4ek0-OBWxHYrZdmoZt76N2RnNyKY5KrEHt7rqO4AQE,60183
|
|
98
98
|
utilities/zipfile.py,sha256=24lQc9ATcJxHXBPc_tBDiJk48pWyRrlxO2fIsFxU0A8,699
|
|
99
99
|
utilities/zoneinfo.py,sha256=tdIScrTB2-B-LH0ukb1HUXKooLknOfJNwHk10MuMYvA,3619
|
|
100
|
-
dycw_utilities-0.175.
|
|
101
|
-
dycw_utilities-0.175.
|
|
102
|
-
dycw_utilities-0.175.
|
|
103
|
-
dycw_utilities-0.175.
|
|
100
|
+
dycw_utilities-0.175.13.dist-info/WHEEL,sha256=RRVLqVugUmFOqBedBFAmA4bsgFcROUBiSUKlERi0Hcg,79
|
|
101
|
+
dycw_utilities-0.175.13.dist-info/entry_points.txt,sha256=cOGtKeJI0KXLSV7MJ8Dhc2G8jPgDcBDm53MVNJU4ycI,136
|
|
102
|
+
dycw_utilities-0.175.13.dist-info/METADATA,sha256=Qz05dYabUPFOjKVwOmKSJDAY4MDh0ZYT9oLnIShoaXo,1443
|
|
103
|
+
dycw_utilities-0.175.13.dist-info/RECORD,,
|
utilities/__init__.py
CHANGED
utilities/subprocess.py
CHANGED
|
@@ -18,6 +18,7 @@ from typing import IO, TYPE_CHECKING, Literal, assert_never, overload, override
|
|
|
18
18
|
from utilities.errors import ImpossibleCaseError
|
|
19
19
|
from utilities.iterables import always_iterable
|
|
20
20
|
from utilities.logging import to_logger
|
|
21
|
+
from utilities.pathlib import PWD
|
|
21
22
|
from utilities.permissions import Permissions, ensure_perms
|
|
22
23
|
from utilities.tempfile import TemporaryDirectory
|
|
23
24
|
from utilities.text import strip_and_dedent
|
|
@@ -349,6 +350,24 @@ def mv_cmd(src: PathLike, dest: PathLike, /) -> list[str]:
|
|
|
349
350
|
##
|
|
350
351
|
|
|
351
352
|
|
|
353
|
+
def ripgrep(*args: str, path: PathLike = PWD) -> str | None:
|
|
354
|
+
"""Search for lines."""
|
|
355
|
+
try: # skipif-ci
|
|
356
|
+
return run(*ripgrep_cmd(*args, path=path), return_=True)
|
|
357
|
+
except CalledProcessError as error: # skipif-ci
|
|
358
|
+
if error.returncode == 1:
|
|
359
|
+
return None
|
|
360
|
+
raise
|
|
361
|
+
|
|
362
|
+
|
|
363
|
+
def ripgrep_cmd(*args: str, path: PathLike = PWD) -> list[str]:
|
|
364
|
+
"""Command to use 'ripgrep' to search for lines."""
|
|
365
|
+
return ["rg", *args, str(path)]
|
|
366
|
+
|
|
367
|
+
|
|
368
|
+
##
|
|
369
|
+
|
|
370
|
+
|
|
352
371
|
def rm(path: PathLike, /, *paths: PathLike, sudo: bool = False) -> None:
|
|
353
372
|
"""Remove a file/directory."""
|
|
354
373
|
if sudo: # pragma: no cover
|
|
@@ -1445,6 +1464,8 @@ __all__ = [
|
|
|
1445
1464
|
"mkdir_cmd",
|
|
1446
1465
|
"mv",
|
|
1447
1466
|
"mv_cmd",
|
|
1467
|
+
"ripgrep",
|
|
1468
|
+
"ripgrep_cmd",
|
|
1448
1469
|
"rm",
|
|
1449
1470
|
"rm_cmd",
|
|
1450
1471
|
"rsync",
|
|
File without changes
|
|
File without changes
|