dycw-utilities 0.166.29__tar.gz → 0.166.30__tar.gz
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.
Potentially problematic release.
This version of dycw-utilities might be problematic. Click here for more details.
- {dycw_utilities-0.166.29 → dycw_utilities-0.166.30}/PKG-INFO +1 -1
- {dycw_utilities-0.166.29 → dycw_utilities-0.166.30}/pyproject.toml +2 -2
- {dycw_utilities-0.166.29 → dycw_utilities-0.166.30}/src/tests/test_pytest.py +13 -0
- {dycw_utilities-0.166.29 → dycw_utilities-0.166.30}/src/utilities/__init__.py +1 -1
- {dycw_utilities-0.166.29 → dycw_utilities-0.166.30}/src/utilities/pytest.py +28 -8
- {dycw_utilities-0.166.29 → dycw_utilities-0.166.30}/.gitignore +0 -0
- {dycw_utilities-0.166.29 → dycw_utilities-0.166.30}/LICENSE +0 -0
- {dycw_utilities-0.166.29 → dycw_utilities-0.166.30}/README.md +0 -0
- {dycw_utilities-0.166.29 → dycw_utilities-0.166.30}/src/tests/__init__.py +0 -0
- {dycw_utilities-0.166.29 → dycw_utilities-0.166.30}/src/tests/conftest.py +0 -0
- {dycw_utilities-0.166.29 → dycw_utilities-0.166.30}/src/tests/modules/__init__.py +0 -0
- {dycw_utilities-0.166.29 → dycw_utilities-0.166.30}/src/tests/modules/package_missing/__init__.py +0 -0
- {dycw_utilities-0.166.29 → dycw_utilities-0.166.30}/src/tests/modules/package_missing/module.py +0 -0
- {dycw_utilities-0.166.29 → dycw_utilities-0.166.30}/src/tests/modules/package_with/__init__.py +0 -0
- {dycw_utilities-0.166.29 → dycw_utilities-0.166.30}/src/tests/modules/package_with/outer_1.py +0 -0
- {dycw_utilities-0.166.29 → dycw_utilities-0.166.30}/src/tests/modules/package_with/outer_2.py +0 -0
- {dycw_utilities-0.166.29 → dycw_utilities-0.166.30}/src/tests/modules/package_with/subpackage/__init__.py +0 -0
- {dycw_utilities-0.166.29 → dycw_utilities-0.166.30}/src/tests/modules/package_with/subpackage/inner_1.py +0 -0
- {dycw_utilities-0.166.29 → dycw_utilities-0.166.30}/src/tests/modules/package_with/subpackage/inner_2.py +0 -0
- {dycw_utilities-0.166.29 → dycw_utilities-0.166.30}/src/tests/modules/package_with/subpackage/inner_3.py +0 -0
- {dycw_utilities-0.166.29 → dycw_utilities-0.166.30}/src/tests/modules/package_without/__init__.py +0 -0
- {dycw_utilities-0.166.29 → dycw_utilities-0.166.30}/src/tests/modules/package_without/module_1.py +0 -0
- {dycw_utilities-0.166.29 → dycw_utilities-0.166.30}/src/tests/modules/package_without/module_2.py +0 -0
- {dycw_utilities-0.166.29 → dycw_utilities-0.166.30}/src/tests/modules/standalone.py +0 -0
- {dycw_utilities-0.166.29 → dycw_utilities-0.166.30}/src/tests/modules/with_imports.py +0 -0
- {dycw_utilities-0.166.29 → dycw_utilities-0.166.30}/src/tests/regressions/test_pytest_regressions/TestMultipleRegressionFixtures__test_main__obj.json +0 -0
- {dycw_utilities-0.166.29 → dycw_utilities-0.166.30}/src/tests/regressions/test_pytest_regressions/TestMultipleRegressionFixtures__test_main__series.json +0 -0
- {dycw_utilities-0.166.29 → dycw_utilities-0.166.30}/src/tests/regressions/test_pytest_regressions/TestOrjsonRegressionFixture__test_dataclass_int.json +0 -0
- {dycw_utilities-0.166.29 → dycw_utilities-0.166.30}/src/tests/regressions/test_pytest_regressions/TestOrjsonRegressionFixture__test_dataclass_literal__false.json +0 -0
- {dycw_utilities-0.166.29 → dycw_utilities-0.166.30}/src/tests/regressions/test_pytest_regressions/TestOrjsonRegressionFixture__test_dataclass_literal__true.json +0 -0
- {dycw_utilities-0.166.29 → dycw_utilities-0.166.30}/src/tests/regressions/test_pytest_regressions/TestOrjsonRegressionFixture__test_dataclass_nested.json +0 -0
- {dycw_utilities-0.166.29 → dycw_utilities-0.166.30}/src/tests/regressions/test_pytest_regressions/TestPolarsRegressionFixture__test_dataframe.json +0 -0
- {dycw_utilities-0.166.29 → dycw_utilities-0.166.30}/src/tests/regressions/test_pytest_regressions/TestPolarsRegressionFixture__test_series.json +0 -0
- {dycw_utilities-0.166.29 → dycw_utilities-0.166.30}/src/tests/test_aeventkit.py +0 -0
- {dycw_utilities-0.166.29 → dycw_utilities-0.166.30}/src/tests/test_altair.py +0 -0
- {dycw_utilities-0.166.29 → dycw_utilities-0.166.30}/src/tests/test_asyncio.py +0 -0
- {dycw_utilities-0.166.29 → dycw_utilities-0.166.30}/src/tests/test_atomicwrites.py +0 -0
- {dycw_utilities-0.166.29 → dycw_utilities-0.166.30}/src/tests/test_atools.py +0 -0
- {dycw_utilities-0.166.29 → dycw_utilities-0.166.30}/src/tests/test_cachetools.py +0 -0
- {dycw_utilities-0.166.29 → dycw_utilities-0.166.30}/src/tests/test_click.py +0 -0
- {dycw_utilities-0.166.29 → dycw_utilities-0.166.30}/src/tests/test_concurrent.py +0 -0
- {dycw_utilities-0.166.29 → dycw_utilities-0.166.30}/src/tests/test_contextlib.py +0 -0
- {dycw_utilities-0.166.29 → dycw_utilities-0.166.30}/src/tests/test_contextvars.py +0 -0
- {dycw_utilities-0.166.29 → dycw_utilities-0.166.30}/src/tests/test_cryptography.py +0 -0
- {dycw_utilities-0.166.29 → dycw_utilities-0.166.30}/src/tests/test_cvxpy.py +0 -0
- {dycw_utilities-0.166.29 → dycw_utilities-0.166.30}/src/tests/test_dataclasses.py +0 -0
- {dycw_utilities-0.166.29 → dycw_utilities-0.166.30}/src/tests/test_enum.py +0 -0
- {dycw_utilities-0.166.29 → dycw_utilities-0.166.30}/src/tests/test_errors.py +0 -0
- {dycw_utilities-0.166.29 → dycw_utilities-0.166.30}/src/tests/test_fastapi.py +0 -0
- {dycw_utilities-0.166.29 → dycw_utilities-0.166.30}/src/tests/test_fpdf2.py +0 -0
- {dycw_utilities-0.166.29 → dycw_utilities-0.166.30}/src/tests/test_functions.py +0 -0
- {dycw_utilities-0.166.29 → dycw_utilities-0.166.30}/src/tests/test_functools.py +0 -0
- {dycw_utilities-0.166.29 → dycw_utilities-0.166.30}/src/tests/test_getpass.py +0 -0
- {dycw_utilities-0.166.29 → dycw_utilities-0.166.30}/src/tests/test_git.py +0 -0
- {dycw_utilities-0.166.29 → dycw_utilities-0.166.30}/src/tests/test_gzip.py +0 -0
- {dycw_utilities-0.166.29 → dycw_utilities-0.166.30}/src/tests/test_hashlib.py +0 -0
- {dycw_utilities-0.166.29 → dycw_utilities-0.166.30}/src/tests/test_http.py +0 -0
- {dycw_utilities-0.166.29 → dycw_utilities-0.166.30}/src/tests/test_hypothesis.py +0 -0
- {dycw_utilities-0.166.29 → dycw_utilities-0.166.30}/src/tests/test_importlib.py +0 -0
- {dycw_utilities-0.166.29 → dycw_utilities-0.166.30}/src/tests/test_inflect.py +0 -0
- {dycw_utilities-0.166.29 → dycw_utilities-0.166.30}/src/tests/test_ipython.py +0 -0
- {dycw_utilities-0.166.29 → dycw_utilities-0.166.30}/src/tests/test_iterables.py +0 -0
- {dycw_utilities-0.166.29 → dycw_utilities-0.166.30}/src/tests/test_json.py +0 -0
- {dycw_utilities-0.166.29 → dycw_utilities-0.166.30}/src/tests/test_jupyter.py +0 -0
- {dycw_utilities-0.166.29 → dycw_utilities-0.166.30}/src/tests/test_libcst.py +0 -0
- {dycw_utilities-0.166.29 → dycw_utilities-0.166.30}/src/tests/test_lightweight_charts.py +0 -0
- {dycw_utilities-0.166.29 → dycw_utilities-0.166.30}/src/tests/test_logging.py +0 -0
- {dycw_utilities-0.166.29 → dycw_utilities-0.166.30}/src/tests/test_math.py +0 -0
- {dycw_utilities-0.166.29 → dycw_utilities-0.166.30}/src/tests/test_memory_profiler.py +0 -0
- {dycw_utilities-0.166.29 → dycw_utilities-0.166.30}/src/tests/test_modules.py +0 -0
- {dycw_utilities-0.166.29 → dycw_utilities-0.166.30}/src/tests/test_more_itertools.py +0 -0
- {dycw_utilities-0.166.29 → dycw_utilities-0.166.30}/src/tests/test_numpy.py +0 -0
- {dycw_utilities-0.166.29 → dycw_utilities-0.166.30}/src/tests/test_objects/__init__.py +0 -0
- {dycw_utilities-0.166.29 → dycw_utilities-0.166.30}/src/tests/test_objects/objects.py +0 -0
- {dycw_utilities-0.166.29 → dycw_utilities-0.166.30}/src/tests/test_operator.py +0 -0
- {dycw_utilities-0.166.29 → dycw_utilities-0.166.30}/src/tests/test_optuna.py +0 -0
- {dycw_utilities-0.166.29 → dycw_utilities-0.166.30}/src/tests/test_orjson.py +0 -0
- {dycw_utilities-0.166.29 → dycw_utilities-0.166.30}/src/tests/test_os.py +0 -0
- {dycw_utilities-0.166.29 → dycw_utilities-0.166.30}/src/tests/test_parse.py +0 -0
- {dycw_utilities-0.166.29 → dycw_utilities-0.166.30}/src/tests/test_pathlib.py +0 -0
- {dycw_utilities-0.166.29 → dycw_utilities-0.166.30}/src/tests/test_pickle.py +0 -0
- {dycw_utilities-0.166.29 → dycw_utilities-0.166.30}/src/tests/test_platform.py +0 -0
- {dycw_utilities-0.166.29 → dycw_utilities-0.166.30}/src/tests/test_polars.py +0 -0
- {dycw_utilities-0.166.29 → dycw_utilities-0.166.30}/src/tests/test_polars_ols.py +0 -0
- {dycw_utilities-0.166.29 → dycw_utilities-0.166.30}/src/tests/test_postgres.py +0 -0
- {dycw_utilities-0.166.29 → dycw_utilities-0.166.30}/src/tests/test_pottery.py +0 -0
- {dycw_utilities-0.166.29 → dycw_utilities-0.166.30}/src/tests/test_pqdm.py +0 -0
- {dycw_utilities-0.166.29 → dycw_utilities-0.166.30}/src/tests/test_psutil.py +0 -0
- {dycw_utilities-0.166.29 → dycw_utilities-0.166.30}/src/tests/test_pydantic_settings.py +0 -0
- {dycw_utilities-0.166.29 → dycw_utilities-0.166.30}/src/tests/test_pydantic_settings_sops.py +0 -0
- {dycw_utilities-0.166.29 → dycw_utilities-0.166.30}/src/tests/test_pyinstrument.py +0 -0
- {dycw_utilities-0.166.29 → dycw_utilities-0.166.30}/src/tests/test_pytest_randomly.py +0 -0
- {dycw_utilities-0.166.29 → dycw_utilities-0.166.30}/src/tests/test_pytest_regressions.py +0 -0
- {dycw_utilities-0.166.29 → dycw_utilities-0.166.30}/src/tests/test_random.py +0 -0
- {dycw_utilities-0.166.29 → dycw_utilities-0.166.30}/src/tests/test_re.py +0 -0
- {dycw_utilities-0.166.29 → dycw_utilities-0.166.30}/src/tests/test_redis.py +0 -0
- {dycw_utilities-0.166.29 → dycw_utilities-0.166.30}/src/tests/test_reprlib.py +0 -0
- {dycw_utilities-0.166.29 → dycw_utilities-0.166.30}/src/tests/test_scipy.py +0 -0
- {dycw_utilities-0.166.29 → dycw_utilities-0.166.30}/src/tests/test_sentinel.py +0 -0
- {dycw_utilities-0.166.29 → dycw_utilities-0.166.30}/src/tests/test_shelve.py +0 -0
- {dycw_utilities-0.166.29 → dycw_utilities-0.166.30}/src/tests/test_slack_sdk.py +0 -0
- {dycw_utilities-0.166.29 → dycw_utilities-0.166.30}/src/tests/test_socket.py +0 -0
- {dycw_utilities-0.166.29 → dycw_utilities-0.166.30}/src/tests/test_sqlalchemy.py +0 -0
- {dycw_utilities-0.166.29 → dycw_utilities-0.166.30}/src/tests/test_sqlalchemy_polars.py +0 -0
- {dycw_utilities-0.166.29 → dycw_utilities-0.166.30}/src/tests/test_statsmodels.py +0 -0
- {dycw_utilities-0.166.29 → dycw_utilities-0.166.30}/src/tests/test_string.py +0 -0
- {dycw_utilities-0.166.29 → dycw_utilities-0.166.30}/src/tests/test_tempfile.py +0 -0
- {dycw_utilities-0.166.29 → dycw_utilities-0.166.30}/src/tests/test_testbook.py +0 -0
- {dycw_utilities-0.166.29 → dycw_utilities-0.166.30}/src/tests/test_text.py +0 -0
- {dycw_utilities-0.166.29 → dycw_utilities-0.166.30}/src/tests/test_threading.py +0 -0
- {dycw_utilities-0.166.29 → dycw_utilities-0.166.30}/src/tests/test_timer.py +0 -0
- {dycw_utilities-0.166.29 → dycw_utilities-0.166.30}/src/tests/test_traceback.py +0 -0
- {dycw_utilities-0.166.29 → dycw_utilities-0.166.30}/src/tests/test_typed_settings.py +0 -0
- {dycw_utilities-0.166.29 → dycw_utilities-0.166.30}/src/tests/test_types.py +0 -0
- {dycw_utilities-0.166.29 → dycw_utilities-0.166.30}/src/tests/test_typing.py +0 -0
- {dycw_utilities-0.166.29 → dycw_utilities-0.166.30}/src/tests/test_typing_funcs/__init__.py +0 -0
- {dycw_utilities-0.166.29 → dycw_utilities-0.166.30}/src/tests/test_typing_funcs/no_future.py +0 -0
- {dycw_utilities-0.166.29 → dycw_utilities-0.166.30}/src/tests/test_typing_funcs/with_future.py +0 -0
- {dycw_utilities-0.166.29 → dycw_utilities-0.166.30}/src/tests/test_tzdata.py +0 -0
- {dycw_utilities-0.166.29 → dycw_utilities-0.166.30}/src/tests/test_tzlocal.py +0 -0
- {dycw_utilities-0.166.29 → dycw_utilities-0.166.30}/src/tests/test_uuid.py +0 -0
- {dycw_utilities-0.166.29 → dycw_utilities-0.166.30}/src/tests/test_version.py +0 -0
- {dycw_utilities-0.166.29 → dycw_utilities-0.166.30}/src/tests/test_warnings.py +0 -0
- {dycw_utilities-0.166.29 → dycw_utilities-0.166.30}/src/tests/test_whenever.py +0 -0
- {dycw_utilities-0.166.29 → dycw_utilities-0.166.30}/src/tests/test_zipfile.py +0 -0
- {dycw_utilities-0.166.29 → dycw_utilities-0.166.30}/src/tests/test_zoneinfo.py +0 -0
- {dycw_utilities-0.166.29 → dycw_utilities-0.166.30}/src/utilities/aeventkit.py +0 -0
- {dycw_utilities-0.166.29 → dycw_utilities-0.166.30}/src/utilities/altair.py +0 -0
- {dycw_utilities-0.166.29 → dycw_utilities-0.166.30}/src/utilities/asyncio.py +0 -0
- {dycw_utilities-0.166.29 → dycw_utilities-0.166.30}/src/utilities/atomicwrites.py +0 -0
- {dycw_utilities-0.166.29 → dycw_utilities-0.166.30}/src/utilities/atools.py +0 -0
- {dycw_utilities-0.166.29 → dycw_utilities-0.166.30}/src/utilities/cachetools.py +0 -0
- {dycw_utilities-0.166.29 → dycw_utilities-0.166.30}/src/utilities/click.py +0 -0
- {dycw_utilities-0.166.29 → dycw_utilities-0.166.30}/src/utilities/concurrent.py +0 -0
- {dycw_utilities-0.166.29 → dycw_utilities-0.166.30}/src/utilities/contextlib.py +0 -0
- {dycw_utilities-0.166.29 → dycw_utilities-0.166.30}/src/utilities/contextvars.py +0 -0
- {dycw_utilities-0.166.29 → dycw_utilities-0.166.30}/src/utilities/cryptography.py +0 -0
- {dycw_utilities-0.166.29 → dycw_utilities-0.166.30}/src/utilities/cvxpy.py +0 -0
- {dycw_utilities-0.166.29 → dycw_utilities-0.166.30}/src/utilities/dataclasses.py +0 -0
- {dycw_utilities-0.166.29 → dycw_utilities-0.166.30}/src/utilities/enum.py +0 -0
- {dycw_utilities-0.166.29 → dycw_utilities-0.166.30}/src/utilities/errors.py +0 -0
- {dycw_utilities-0.166.29 → dycw_utilities-0.166.30}/src/utilities/fastapi.py +0 -0
- {dycw_utilities-0.166.29 → dycw_utilities-0.166.30}/src/utilities/fpdf2.py +0 -0
- {dycw_utilities-0.166.29 → dycw_utilities-0.166.30}/src/utilities/functions.py +0 -0
- {dycw_utilities-0.166.29 → dycw_utilities-0.166.30}/src/utilities/functools.py +0 -0
- {dycw_utilities-0.166.29 → dycw_utilities-0.166.30}/src/utilities/getpass.py +0 -0
- {dycw_utilities-0.166.29 → dycw_utilities-0.166.30}/src/utilities/git.py +0 -0
- {dycw_utilities-0.166.29 → dycw_utilities-0.166.30}/src/utilities/gzip.py +0 -0
- {dycw_utilities-0.166.29 → dycw_utilities-0.166.30}/src/utilities/hashlib.py +0 -0
- {dycw_utilities-0.166.29 → dycw_utilities-0.166.30}/src/utilities/http.py +0 -0
- {dycw_utilities-0.166.29 → dycw_utilities-0.166.30}/src/utilities/hypothesis.py +0 -0
- {dycw_utilities-0.166.29 → dycw_utilities-0.166.30}/src/utilities/importlib.py +0 -0
- {dycw_utilities-0.166.29 → dycw_utilities-0.166.30}/src/utilities/inflect.py +0 -0
- {dycw_utilities-0.166.29 → dycw_utilities-0.166.30}/src/utilities/ipython.py +0 -0
- {dycw_utilities-0.166.29 → dycw_utilities-0.166.30}/src/utilities/iterables.py +0 -0
- {dycw_utilities-0.166.29 → dycw_utilities-0.166.30}/src/utilities/json.py +0 -0
- {dycw_utilities-0.166.29 → dycw_utilities-0.166.30}/src/utilities/jupyter.py +0 -0
- {dycw_utilities-0.166.29 → dycw_utilities-0.166.30}/src/utilities/libcst.py +0 -0
- {dycw_utilities-0.166.29 → dycw_utilities-0.166.30}/src/utilities/lightweight_charts.py +0 -0
- {dycw_utilities-0.166.29 → dycw_utilities-0.166.30}/src/utilities/logging.py +0 -0
- {dycw_utilities-0.166.29 → dycw_utilities-0.166.30}/src/utilities/math.py +0 -0
- {dycw_utilities-0.166.29 → dycw_utilities-0.166.30}/src/utilities/memory_profiler.py +0 -0
- {dycw_utilities-0.166.29 → dycw_utilities-0.166.30}/src/utilities/modules.py +0 -0
- {dycw_utilities-0.166.29 → dycw_utilities-0.166.30}/src/utilities/more_itertools.py +0 -0
- {dycw_utilities-0.166.29 → dycw_utilities-0.166.30}/src/utilities/numpy.py +0 -0
- {dycw_utilities-0.166.29 → dycw_utilities-0.166.30}/src/utilities/operator.py +0 -0
- {dycw_utilities-0.166.29 → dycw_utilities-0.166.30}/src/utilities/optuna.py +0 -0
- {dycw_utilities-0.166.29 → dycw_utilities-0.166.30}/src/utilities/orjson.py +0 -0
- {dycw_utilities-0.166.29 → dycw_utilities-0.166.30}/src/utilities/os.py +0 -0
- {dycw_utilities-0.166.29 → dycw_utilities-0.166.30}/src/utilities/parse.py +0 -0
- {dycw_utilities-0.166.29 → dycw_utilities-0.166.30}/src/utilities/pathlib.py +0 -0
- {dycw_utilities-0.166.29 → dycw_utilities-0.166.30}/src/utilities/pickle.py +0 -0
- {dycw_utilities-0.166.29 → dycw_utilities-0.166.30}/src/utilities/platform.py +0 -0
- {dycw_utilities-0.166.29 → dycw_utilities-0.166.30}/src/utilities/polars.py +0 -0
- {dycw_utilities-0.166.29 → dycw_utilities-0.166.30}/src/utilities/polars_ols.py +0 -0
- {dycw_utilities-0.166.29 → dycw_utilities-0.166.30}/src/utilities/postgres.py +0 -0
- {dycw_utilities-0.166.29 → dycw_utilities-0.166.30}/src/utilities/pottery.py +0 -0
- {dycw_utilities-0.166.29 → dycw_utilities-0.166.30}/src/utilities/pqdm.py +0 -0
- {dycw_utilities-0.166.29 → dycw_utilities-0.166.30}/src/utilities/psutil.py +0 -0
- {dycw_utilities-0.166.29 → dycw_utilities-0.166.30}/src/utilities/py.typed +0 -0
- {dycw_utilities-0.166.29 → dycw_utilities-0.166.30}/src/utilities/pydantic_settings.py +0 -0
- {dycw_utilities-0.166.29 → dycw_utilities-0.166.30}/src/utilities/pydantic_settings_sops.py +0 -0
- {dycw_utilities-0.166.29 → dycw_utilities-0.166.30}/src/utilities/pyinstrument.py +0 -0
- {dycw_utilities-0.166.29 → dycw_utilities-0.166.30}/src/utilities/pytest_plugins/__init__.py +0 -0
- {dycw_utilities-0.166.29 → dycw_utilities-0.166.30}/src/utilities/pytest_plugins/pytest_randomly.py +0 -0
- {dycw_utilities-0.166.29 → dycw_utilities-0.166.30}/src/utilities/pytest_plugins/pytest_regressions.py +0 -0
- {dycw_utilities-0.166.29 → dycw_utilities-0.166.30}/src/utilities/pytest_regressions.py +0 -0
- {dycw_utilities-0.166.29 → dycw_utilities-0.166.30}/src/utilities/random.py +0 -0
- {dycw_utilities-0.166.29 → dycw_utilities-0.166.30}/src/utilities/re.py +0 -0
- {dycw_utilities-0.166.29 → dycw_utilities-0.166.30}/src/utilities/redis.py +0 -0
- {dycw_utilities-0.166.29 → dycw_utilities-0.166.30}/src/utilities/reprlib.py +0 -0
- {dycw_utilities-0.166.29 → dycw_utilities-0.166.30}/src/utilities/scipy.py +0 -0
- {dycw_utilities-0.166.29 → dycw_utilities-0.166.30}/src/utilities/sentinel.py +0 -0
- {dycw_utilities-0.166.29 → dycw_utilities-0.166.30}/src/utilities/shelve.py +0 -0
- {dycw_utilities-0.166.29 → dycw_utilities-0.166.30}/src/utilities/slack_sdk.py +0 -0
- {dycw_utilities-0.166.29 → dycw_utilities-0.166.30}/src/utilities/socket.py +0 -0
- {dycw_utilities-0.166.29 → dycw_utilities-0.166.30}/src/utilities/sqlalchemy.py +0 -0
- {dycw_utilities-0.166.29 → dycw_utilities-0.166.30}/src/utilities/sqlalchemy_polars.py +0 -0
- {dycw_utilities-0.166.29 → dycw_utilities-0.166.30}/src/utilities/statsmodels.py +0 -0
- {dycw_utilities-0.166.29 → dycw_utilities-0.166.30}/src/utilities/string.py +0 -0
- {dycw_utilities-0.166.29 → dycw_utilities-0.166.30}/src/utilities/tempfile.py +0 -0
- {dycw_utilities-0.166.29 → dycw_utilities-0.166.30}/src/utilities/testbook.py +0 -0
- {dycw_utilities-0.166.29 → dycw_utilities-0.166.30}/src/utilities/text.py +0 -0
- {dycw_utilities-0.166.29 → dycw_utilities-0.166.30}/src/utilities/threading.py +0 -0
- {dycw_utilities-0.166.29 → dycw_utilities-0.166.30}/src/utilities/timer.py +0 -0
- {dycw_utilities-0.166.29 → dycw_utilities-0.166.30}/src/utilities/traceback.py +0 -0
- {dycw_utilities-0.166.29 → dycw_utilities-0.166.30}/src/utilities/typed_settings.py +0 -0
- {dycw_utilities-0.166.29 → dycw_utilities-0.166.30}/src/utilities/types.py +0 -0
- {dycw_utilities-0.166.29 → dycw_utilities-0.166.30}/src/utilities/typing.py +0 -0
- {dycw_utilities-0.166.29 → dycw_utilities-0.166.30}/src/utilities/tzdata.py +0 -0
- {dycw_utilities-0.166.29 → dycw_utilities-0.166.30}/src/utilities/tzlocal.py +0 -0
- {dycw_utilities-0.166.29 → dycw_utilities-0.166.30}/src/utilities/uuid.py +0 -0
- {dycw_utilities-0.166.29 → dycw_utilities-0.166.30}/src/utilities/version.py +0 -0
- {dycw_utilities-0.166.29 → dycw_utilities-0.166.30}/src/utilities/warnings.py +0 -0
- {dycw_utilities-0.166.29 → dycw_utilities-0.166.30}/src/utilities/whenever.py +0 -0
- {dycw_utilities-0.166.29 → dycw_utilities-0.166.30}/src/utilities/zipfile.py +0 -0
- {dycw_utilities-0.166.29 → dycw_utilities-0.166.30}/src/utilities/zoneinfo.py +0 -0
|
@@ -246,7 +246,7 @@ dependencies = [
|
|
|
246
246
|
name = "dycw-utilities"
|
|
247
247
|
readme = "README.md"
|
|
248
248
|
requires-python = ">= 3.12"
|
|
249
|
-
version = "0.166.
|
|
249
|
+
version = "0.166.30"
|
|
250
250
|
|
|
251
251
|
[project.entry-points.pytest11]
|
|
252
252
|
pytest-randomly = "utilities.pytest_plugins.pytest_randomly"
|
|
@@ -279,7 +279,7 @@ test = [
|
|
|
279
279
|
# bump-my-version
|
|
280
280
|
[tool.bumpversion]
|
|
281
281
|
allow_dirty = true
|
|
282
|
-
current_version = "0.166.
|
|
282
|
+
current_version = "0.166.30"
|
|
283
283
|
|
|
284
284
|
[[tool.bumpversion.files]]
|
|
285
285
|
filename = "src/utilities/__init__.py"
|
|
@@ -302,6 +302,19 @@ class TestRunFrac:
|
|
|
302
302
|
)
|
|
303
303
|
self._run_test(testdir)
|
|
304
304
|
|
|
305
|
+
@mark.flaky
|
|
306
|
+
def test_predicate(self, *, testdir: Testdir) -> None:
|
|
307
|
+
_ = testdir.makepyfile(
|
|
308
|
+
"""
|
|
309
|
+
from utilities.pytest import run_frac
|
|
310
|
+
|
|
311
|
+
@run_frac(predicate=False)
|
|
312
|
+
def test_main() -> None:
|
|
313
|
+
assert True
|
|
314
|
+
"""
|
|
315
|
+
)
|
|
316
|
+
testdir.runpytest().assert_outcomes(passed=1)
|
|
317
|
+
|
|
305
318
|
def _run_test(self, testdir: Testdir, /) -> None:
|
|
306
319
|
result = testdir.runpytest()
|
|
307
320
|
try:
|
|
@@ -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
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
{dycw_utilities-0.166.29 → dycw_utilities-0.166.30}/src/tests/modules/package_missing/__init__.py
RENAMED
|
File without changes
|
{dycw_utilities-0.166.29 → dycw_utilities-0.166.30}/src/tests/modules/package_missing/module.py
RENAMED
|
File without changes
|
{dycw_utilities-0.166.29 → dycw_utilities-0.166.30}/src/tests/modules/package_with/__init__.py
RENAMED
|
File without changes
|
{dycw_utilities-0.166.29 → dycw_utilities-0.166.30}/src/tests/modules/package_with/outer_1.py
RENAMED
|
File without changes
|
{dycw_utilities-0.166.29 → dycw_utilities-0.166.30}/src/tests/modules/package_with/outer_2.py
RENAMED
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
{dycw_utilities-0.166.29 → dycw_utilities-0.166.30}/src/tests/modules/package_without/__init__.py
RENAMED
|
File without changes
|
{dycw_utilities-0.166.29 → dycw_utilities-0.166.30}/src/tests/modules/package_without/module_1.py
RENAMED
|
File without changes
|
{dycw_utilities-0.166.29 → dycw_utilities-0.166.30}/src/tests/modules/package_without/module_2.py
RENAMED
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
{dycw_utilities-0.166.29 → dycw_utilities-0.166.30}/src/tests/test_pydantic_settings_sops.py
RENAMED
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
{dycw_utilities-0.166.29 → dycw_utilities-0.166.30}/src/tests/test_typing_funcs/no_future.py
RENAMED
|
File without changes
|
{dycw_utilities-0.166.29 → dycw_utilities-0.166.30}/src/tests/test_typing_funcs/with_future.py
RENAMED
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
{dycw_utilities-0.166.29 → dycw_utilities-0.166.30}/src/utilities/pytest_plugins/__init__.py
RENAMED
|
File without changes
|
{dycw_utilities-0.166.29 → dycw_utilities-0.166.30}/src/utilities/pytest_plugins/pytest_randomly.py
RENAMED
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|