dycw-utilities 0.166.29__py3-none-any.whl → 0.166.30__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.166.29.dist-info → dycw_utilities-0.166.30.dist-info}/METADATA +1 -1
- {dycw_utilities-0.166.29.dist-info → dycw_utilities-0.166.30.dist-info}/RECORD +7 -7
- utilities/__init__.py +1 -1
- utilities/pytest.py +28 -8
- {dycw_utilities-0.166.29.dist-info → dycw_utilities-0.166.30.dist-info}/WHEEL +0 -0
- {dycw_utilities-0.166.29.dist-info → dycw_utilities-0.166.30.dist-info}/entry_points.txt +0 -0
- {dycw_utilities-0.166.29.dist-info → dycw_utilities-0.166.30.dist-info}/licenses/LICENSE +0 -0
|
@@ -1,4 +1,4 @@
|
|
|
1
|
-
utilities/__init__.py,sha256=
|
|
1
|
+
utilities/__init__.py,sha256=1ZO_cavh1o4bHb63EXlMpG07TU7njs0GEuTie2-NSEo,61
|
|
2
2
|
utilities/aeventkit.py,sha256=ddoleSwW9zdc2tjX5Ge0pMKtYwV_JMxhHYOxnWX2AGM,12609
|
|
3
3
|
utilities/altair.py,sha256=nHdpWt8ZwdUwRQN970MvHd5bRWokNqzHcZQEdSHKRuE,9033
|
|
4
4
|
utilities/asyncio.py,sha256=60l1IwjnRGeaVphAFiwDIHyfKoZYKY-XGpptUxGiU-M,17034
|
|
@@ -56,7 +56,7 @@ utilities/py.typed,sha256=47DEQpj8HBSa-_TImW-5JCeuQeRkm5NMpJWZG3hSuFU,0
|
|
|
56
56
|
utilities/pydantic_settings.py,sha256=bFr9UDrVhdqTl7O_TPutCLdsQ5rUp--nO76-_F8z0bs,5102
|
|
57
57
|
utilities/pydantic_settings_sops.py,sha256=m2uB9wDw1PU2CiSL7KwxulDXT0STjOZTu3Ctc2q7jc0,1943
|
|
58
58
|
utilities/pyinstrument.py,sha256=hnXaL-4HE7wWBI5JKaPfYTpsrXe68YiuZKahHV0VJn8,841
|
|
59
|
-
utilities/pytest.py,sha256=
|
|
59
|
+
utilities/pytest.py,sha256=4KzMZYg5Zzfyjxrw8VlnZNYCD2S0Uee1JIFMIPyIkO8,10076
|
|
60
60
|
utilities/pytest_regressions.py,sha256=ocjHTtfOeiGfQAKIei8pKNd61sxN9dawrJJ9gPt2wzA,4097
|
|
61
61
|
utilities/random.py,sha256=hZlH4gnAtoaofWswuJYjcygejrY8db4CzP-z_adO2Mo,4165
|
|
62
62
|
utilities/re.py,sha256=S4h-DLL6ScMPqjboZ_uQ1BVTJajrqV06r_81D--_HCE,4573
|
|
@@ -91,8 +91,8 @@ utilities/zoneinfo.py,sha256=tdIScrTB2-B-LH0ukb1HUXKooLknOfJNwHk10MuMYvA,3619
|
|
|
91
91
|
utilities/pytest_plugins/__init__.py,sha256=U4S_2y3zgLZVfMenHRaJFBW8yqh2mUBuI291LGQVOJ8,35
|
|
92
92
|
utilities/pytest_plugins/pytest_randomly.py,sha256=B1qYVlExGOxTywq2r1SMi5o7btHLk2PNdY_b1p98dkE,409
|
|
93
93
|
utilities/pytest_plugins/pytest_regressions.py,sha256=mnHYBfdprz50UGVkVzV1bZERZN5CFfoF8YbokGxdFwU,1639
|
|
94
|
-
dycw_utilities-0.166.
|
|
95
|
-
dycw_utilities-0.166.
|
|
96
|
-
dycw_utilities-0.166.
|
|
97
|
-
dycw_utilities-0.166.
|
|
98
|
-
dycw_utilities-0.166.
|
|
94
|
+
dycw_utilities-0.166.30.dist-info/METADATA,sha256=lYac7uqJTy4ACG9-MmZeajuG8tiZBsBMh5kU0irWduQ,1700
|
|
95
|
+
dycw_utilities-0.166.30.dist-info/WHEEL,sha256=qtCwoSJWgHk21S1Kb4ihdzI2rlJ1ZKaIurTj_ngOhyQ,87
|
|
96
|
+
dycw_utilities-0.166.30.dist-info/entry_points.txt,sha256=BOD_SoDxwsfJYOLxhrSXhHP_T7iw-HXI9f2WVkzYxvQ,135
|
|
97
|
+
dycw_utilities-0.166.30.dist-info/licenses/LICENSE,sha256=gppZp16M6nSVpBbUBrNL6JuYfvKwZiKgV7XoKKsHzqo,1066
|
|
98
|
+
dycw_utilities-0.166.30.dist-info/RECORD,,
|
utilities/__init__.py
CHANGED
utilities/pytest.py
CHANGED
|
@@ -29,7 +29,8 @@ from utilities.platform import (
|
|
|
29
29
|
IS_WINDOWS,
|
|
30
30
|
)
|
|
31
31
|
from utilities.random import bernoulli
|
|
32
|
-
from utilities.
|
|
32
|
+
from utilities.text import to_bool
|
|
33
|
+
from utilities.types import MaybeCallableBoolLike, MaybeCoro, Seed
|
|
33
34
|
from utilities.whenever import SECOND, get_now_local
|
|
34
35
|
|
|
35
36
|
if TYPE_CHECKING:
|
|
@@ -168,21 +169,31 @@ class _NodeIdToPathNotGetTailError(NodeIdToPathError):
|
|
|
168
169
|
|
|
169
170
|
|
|
170
171
|
def run_frac[F: Callable[..., MaybeCoro[None]]](
|
|
171
|
-
*,
|
|
172
|
+
*,
|
|
173
|
+
predicate: MaybeCallableBoolLike | None = None,
|
|
174
|
+
frac: float = 0.5,
|
|
175
|
+
seed: Seed | None = None,
|
|
172
176
|
) -> Callable[[F], F]:
|
|
173
177
|
"""Run a test only a fraction of the time.."""
|
|
174
|
-
return cast(
|
|
178
|
+
return cast(
|
|
179
|
+
"Any", partial(_run_frac_inner, predicate=predicate, frac=frac, seed=seed)
|
|
180
|
+
)
|
|
175
181
|
|
|
176
182
|
|
|
177
183
|
def _run_frac_inner[F: Callable[..., MaybeCoro[None]]](
|
|
178
|
-
func: F,
|
|
184
|
+
func: F,
|
|
185
|
+
/,
|
|
186
|
+
*,
|
|
187
|
+
predicate: MaybeCallableBoolLike | None = None,
|
|
188
|
+
frac: float = 0.5,
|
|
189
|
+
seed: Seed | None = None,
|
|
179
190
|
) -> F:
|
|
180
191
|
match bool(iscoroutinefunction(func)):
|
|
181
192
|
case False:
|
|
182
193
|
|
|
183
194
|
@wraps(func)
|
|
184
195
|
def run_frac_sync(*args: Any, **kwargs: Any) -> None:
|
|
185
|
-
_skipif_frac(frac=frac, seed=seed)
|
|
196
|
+
_skipif_frac(predicate=predicate, frac=frac, seed=seed)
|
|
186
197
|
cast("Callable[..., None]", func)(*args, **kwargs)
|
|
187
198
|
|
|
188
199
|
return cast("Any", run_frac_sync)
|
|
@@ -191,7 +202,7 @@ def _run_frac_inner[F: Callable[..., MaybeCoro[None]]](
|
|
|
191
202
|
|
|
192
203
|
@wraps(func)
|
|
193
204
|
async def run_frac_async(*args: Any, **kwargs: Any) -> None:
|
|
194
|
-
_skipif_frac(frac=frac, seed=seed)
|
|
205
|
+
_skipif_frac(predicate=predicate, frac=frac, seed=seed)
|
|
195
206
|
await cast("Callable[..., Coro[None]]", func)(*args, **kwargs)
|
|
196
207
|
|
|
197
208
|
return cast("Any", run_frac_async)
|
|
@@ -200,8 +211,17 @@ def _run_frac_inner[F: Callable[..., MaybeCoro[None]]](
|
|
|
200
211
|
assert_never(never)
|
|
201
212
|
|
|
202
213
|
|
|
203
|
-
def _skipif_frac(
|
|
204
|
-
|
|
214
|
+
def _skipif_frac(
|
|
215
|
+
*,
|
|
216
|
+
predicate: MaybeCallableBoolLike | None = None,
|
|
217
|
+
frac: float = 0.5,
|
|
218
|
+
seed: Seed | None = None,
|
|
219
|
+
) -> None:
|
|
220
|
+
if skip is None:
|
|
221
|
+
return # pragma: no cover
|
|
222
|
+
if ((predicate is None) or to_bool(predicate)) and bernoulli(
|
|
223
|
+
true=1 - frac, seed=seed
|
|
224
|
+
):
|
|
205
225
|
_ = skip(reason=f"{_get_name()} skipped (run {frac:.0%})")
|
|
206
226
|
|
|
207
227
|
|
|
File without changes
|
|
File without changes
|
|
File without changes
|