dycw-utilities 0.138.3__py3-none-any.whl → 0.138.4__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.
@@ -1,6 +1,6 @@
1
1
  Metadata-Version: 2.4
2
2
  Name: dycw-utilities
3
- Version: 0.138.3
3
+ Version: 0.138.4
4
4
  Author-email: Derek Wan <d.wan@icloud.com>
5
5
  License-File: LICENSE
6
6
  Requires-Python: >=3.12
@@ -1,4 +1,4 @@
1
- utilities/__init__.py,sha256=Tsb-lVma-ORGyB_i5MZSmb8W5vzY38b-c9EWIKbjGng,60
1
+ utilities/__init__.py,sha256=AJA02WwvABRcKbyBb6aLadckmkmDr4Ah5qHq77UCnD8,60
2
2
  utilities/aiolimiter.py,sha256=mD0wEiqMgwpty4XTbawFpnkkmJS6R4JRsVXFUaoitSU,628
3
3
  utilities/altair.py,sha256=HeZBVUocjkrTNwwKrClppsIqgNFF-ykv05HfZSoHYno,9104
4
4
  utilities/asyncio.py,sha256=dcGeKQzjLBXxKzZkVIk5oZsFXEcynVbRB9iNB5XEDZk,38526
@@ -20,7 +20,6 @@ utilities/fpdf2.py,sha256=776PkEX5xEK-whFOzqaVaQVHPy1Xf01kCSyj7TEp80g,1886
20
20
  utilities/functions.py,sha256=qefAfW0zz7OEiRuBtKF-3tI3NaufcwAULRIFv24gZ2Q,28533
21
21
  utilities/functools.py,sha256=I00ru2gQPakZw2SHVeKIKXfTv741655s6HI0lUoE0D4,1552
22
22
  utilities/getpass.py,sha256=DfN5UgMAtFCqS3dSfFHUfqIMZX2shXvwphOz_6J6f6A,103
23
- utilities/git.py,sha256=oi7-_l5e9haSANSCvQw25ufYGoNahuUPHAZ6114s3JQ,1191
24
23
  utilities/hashlib.py,sha256=SVTgtguur0P4elppvzOBbLEjVM3Pea0eWB61yg2ilxo,309
25
24
  utilities/http.py,sha256=WcahTcKYRtZ04WXQoWt5EGCgFPcyHD3EJdlMfxvDt-0,946
26
25
  utilities/hypothesis.py,sha256=2VJy9Pxqjy4_ldAwZAR6XEGuG2ZmAN1ycpA_VIGnKew,38819
@@ -55,7 +54,7 @@ utilities/psutil.py,sha256=0j4YxtVb8VjaaKKiHg6UEK95SUPkEcENgPtLgPJsNv0,3760
55
54
  utilities/py.typed,sha256=47DEQpj8HBSa-_TImW-5JCeuQeRkm5NMpJWZG3hSuFU,0
56
55
  utilities/pydantic.py,sha256=CmxCi4sukeHM3JGjJ1Rbp8UAvcx4MZapLg10mFYJ-nk,1771
57
56
  utilities/pyinstrument.py,sha256=HrTGJ2niUAHUFMSN3im9BeedC0faq2DqoFccDxPpsP8,884
58
- utilities/pytest.py,sha256=vv5ZpePZS6pBxl5jY3XQR5SnAhgd4f0sSMyRsvHWg60,8086
57
+ utilities/pytest.py,sha256=f6Yl2vHimin2Ulg0aUsNhdWmf6dC1Hs6nDTFOCOpRJI,8029
59
58
  utilities/pytest_regressions.py,sha256=YI55B7EtLjhz7zPJZ6NK9bWrxrKCKabWZJe1cwcbA5o,5082
60
59
  utilities/python_dotenv.py,sha256=dYooRYwqrvhSoZWuiVbCiKUWiS-M5b5yv2zDWGYPEvI,3209
61
60
  utilities/random.py,sha256=YWYzWxQDeyJRiuHGnO1OxF6dDucpq7qc1tH_ealwCRg,4130
@@ -88,7 +87,7 @@ utilities/warnings.py,sha256=un1LvHv70PU-LLv8RxPVmugTzDJkkGXRMZTE2-fTQHw,1771
88
87
  utilities/whenever.py,sha256=R5d9UCNCdAOyjwLUmfH2Vn8Ykee8OHQi2skRTFfbZMM,20492
89
88
  utilities/zipfile.py,sha256=24lQc9ATcJxHXBPc_tBDiJk48pWyRrlxO2fIsFxU0A8,699
90
89
  utilities/zoneinfo.py,sha256=oEH-nL3t4h9uawyZqWDtNtDAl6M-CLpLYGI_nI6DulM,1971
91
- dycw_utilities-0.138.3.dist-info/METADATA,sha256=7JJYj8lFUbH2lDMsYk53t5e0mvDzRG8mD2j1gwSGASA,1638
92
- dycw_utilities-0.138.3.dist-info/WHEEL,sha256=qtCwoSJWgHk21S1Kb4ihdzI2rlJ1ZKaIurTj_ngOhyQ,87
93
- dycw_utilities-0.138.3.dist-info/licenses/LICENSE,sha256=gppZp16M6nSVpBbUBrNL6JuYfvKwZiKgV7XoKKsHzqo,1066
94
- dycw_utilities-0.138.3.dist-info/RECORD,,
90
+ dycw_utilities-0.138.4.dist-info/METADATA,sha256=Am7nGDdcdeHFgK71Hso5euQ7WwzvnqcQoRuqGb-uPBw,1638
91
+ dycw_utilities-0.138.4.dist-info/WHEEL,sha256=qtCwoSJWgHk21S1Kb4ihdzI2rlJ1ZKaIurTj_ngOhyQ,87
92
+ dycw_utilities-0.138.4.dist-info/licenses/LICENSE,sha256=gppZp16M6nSVpBbUBrNL6JuYfvKwZiKgV7XoKKsHzqo,1066
93
+ dycw_utilities-0.138.4.dist-info/RECORD,,
utilities/__init__.py CHANGED
@@ -1,3 +1,3 @@
1
1
  from __future__ import annotations
2
2
 
3
- __version__ = "0.138.3"
3
+ __version__ = "0.138.4"
utilities/pytest.py CHANGED
@@ -12,9 +12,8 @@ from whenever import ZonedDateTime
12
12
 
13
13
  from utilities.atomicwrites import writer
14
14
  from utilities.functools import cache
15
- from utilities.git import get_repo_root
16
15
  from utilities.hashlib import md5_hash
17
- from utilities.pathlib import ensure_suffix
16
+ from utilities.pathlib import ensure_suffix, get_root
18
17
  from utilities.platform import (
19
18
  IS_LINUX,
20
19
  IS_MAC,
@@ -241,9 +240,7 @@ def _skipif_recent(*, root: PathLike | None = None, delta: TimeDelta = SECOND) -
241
240
 
242
241
  def _get_path(*, root: PathLike | None = None) -> Path:
243
242
  if root is None:
244
- root_use = get_repo_root().joinpath( # pragma: no cover
245
- ".pytest_cache", "throttle"
246
- )
243
+ root_use = get_root().joinpath(".pytest_cache", "throttle") # pragma: no cover
247
244
  else:
248
245
  root_use = root
249
246
  return Path(root_use, _md5_hash_cached(_get_name()))
utilities/git.py DELETED
@@ -1,40 +0,0 @@
1
- from __future__ import annotations
2
-
3
- from dataclasses import dataclass
4
- from pathlib import Path
5
- from re import IGNORECASE, search
6
- from subprocess import PIPE, CalledProcessError, check_output
7
- from typing import TYPE_CHECKING, override
8
-
9
- from utilities.pathlib import PWD
10
-
11
- if TYPE_CHECKING:
12
- from utilities.types import PathLike
13
-
14
-
15
- def get_repo_root(*, path: PathLike = PWD) -> Path:
16
- """Get the repo root."""
17
- try:
18
- output = check_output(
19
- ["git", "rev-parse", "--show-toplevel"], stderr=PIPE, cwd=path, text=True
20
- )
21
- except CalledProcessError as error:
22
- # newer versions of git report "Not a git repository", whilst older
23
- # versions report "not a git repository"
24
- if search("fatal: not a git repository", error.stderr, flags=IGNORECASE):
25
- raise GetRepoRootError(cwd=path) from error
26
- raise # pragma: no cover
27
- else:
28
- return Path(output.strip("\n"))
29
-
30
-
31
- @dataclass(kw_only=True, slots=True)
32
- class GetRepoRootError(Exception):
33
- cwd: PathLike
34
-
35
- @override
36
- def __str__(self) -> str:
37
- return f"Path is not part of a `git` repository: {self.cwd}"
38
-
39
-
40
- __all__ = ["GetRepoRootError", "get_repo_root"]