dycw-utilities 0.166.27__tar.gz → 0.166.29__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.27 → dycw_utilities-0.166.29}/PKG-INFO +3 -3
- {dycw_utilities-0.166.27 → dycw_utilities-0.166.29}/pyproject.toml +6 -6
- {dycw_utilities-0.166.27 → dycw_utilities-0.166.29}/src/tests/test_os.py +4 -0
- {dycw_utilities-0.166.27 → dycw_utilities-0.166.29}/src/tests/test_pytest.py +53 -0
- {dycw_utilities-0.166.27 → dycw_utilities-0.166.29}/src/utilities/__init__.py +1 -1
- {dycw_utilities-0.166.27 → dycw_utilities-0.166.29}/src/utilities/os.py +1 -1
- {dycw_utilities-0.166.27 → dycw_utilities-0.166.29}/src/utilities/pytest.py +44 -2
- {dycw_utilities-0.166.27 → dycw_utilities-0.166.29}/.gitignore +0 -0
- {dycw_utilities-0.166.27 → dycw_utilities-0.166.29}/LICENSE +0 -0
- {dycw_utilities-0.166.27 → dycw_utilities-0.166.29}/README.md +0 -0
- {dycw_utilities-0.166.27 → dycw_utilities-0.166.29}/src/tests/__init__.py +0 -0
- {dycw_utilities-0.166.27 → dycw_utilities-0.166.29}/src/tests/conftest.py +0 -0
- {dycw_utilities-0.166.27 → dycw_utilities-0.166.29}/src/tests/modules/__init__.py +0 -0
- {dycw_utilities-0.166.27 → dycw_utilities-0.166.29}/src/tests/modules/package_missing/__init__.py +0 -0
- {dycw_utilities-0.166.27 → dycw_utilities-0.166.29}/src/tests/modules/package_missing/module.py +0 -0
- {dycw_utilities-0.166.27 → dycw_utilities-0.166.29}/src/tests/modules/package_with/__init__.py +0 -0
- {dycw_utilities-0.166.27 → dycw_utilities-0.166.29}/src/tests/modules/package_with/outer_1.py +0 -0
- {dycw_utilities-0.166.27 → dycw_utilities-0.166.29}/src/tests/modules/package_with/outer_2.py +0 -0
- {dycw_utilities-0.166.27 → dycw_utilities-0.166.29}/src/tests/modules/package_with/subpackage/__init__.py +0 -0
- {dycw_utilities-0.166.27 → dycw_utilities-0.166.29}/src/tests/modules/package_with/subpackage/inner_1.py +0 -0
- {dycw_utilities-0.166.27 → dycw_utilities-0.166.29}/src/tests/modules/package_with/subpackage/inner_2.py +0 -0
- {dycw_utilities-0.166.27 → dycw_utilities-0.166.29}/src/tests/modules/package_with/subpackage/inner_3.py +0 -0
- {dycw_utilities-0.166.27 → dycw_utilities-0.166.29}/src/tests/modules/package_without/__init__.py +0 -0
- {dycw_utilities-0.166.27 → dycw_utilities-0.166.29}/src/tests/modules/package_without/module_1.py +0 -0
- {dycw_utilities-0.166.27 → dycw_utilities-0.166.29}/src/tests/modules/package_without/module_2.py +0 -0
- {dycw_utilities-0.166.27 → dycw_utilities-0.166.29}/src/tests/modules/standalone.py +0 -0
- {dycw_utilities-0.166.27 → dycw_utilities-0.166.29}/src/tests/modules/with_imports.py +0 -0
- {dycw_utilities-0.166.27 → dycw_utilities-0.166.29}/src/tests/regressions/test_pytest_regressions/TestMultipleRegressionFixtures__test_main__obj.json +0 -0
- {dycw_utilities-0.166.27 → dycw_utilities-0.166.29}/src/tests/regressions/test_pytest_regressions/TestMultipleRegressionFixtures__test_main__series.json +0 -0
- {dycw_utilities-0.166.27 → dycw_utilities-0.166.29}/src/tests/regressions/test_pytest_regressions/TestOrjsonRegressionFixture__test_dataclass_int.json +0 -0
- {dycw_utilities-0.166.27 → dycw_utilities-0.166.29}/src/tests/regressions/test_pytest_regressions/TestOrjsonRegressionFixture__test_dataclass_literal__false.json +0 -0
- {dycw_utilities-0.166.27 → dycw_utilities-0.166.29}/src/tests/regressions/test_pytest_regressions/TestOrjsonRegressionFixture__test_dataclass_literal__true.json +0 -0
- {dycw_utilities-0.166.27 → dycw_utilities-0.166.29}/src/tests/regressions/test_pytest_regressions/TestOrjsonRegressionFixture__test_dataclass_nested.json +0 -0
- {dycw_utilities-0.166.27 → dycw_utilities-0.166.29}/src/tests/regressions/test_pytest_regressions/TestPolarsRegressionFixture__test_dataframe.json +0 -0
- {dycw_utilities-0.166.27 → dycw_utilities-0.166.29}/src/tests/regressions/test_pytest_regressions/TestPolarsRegressionFixture__test_series.json +0 -0
- {dycw_utilities-0.166.27 → dycw_utilities-0.166.29}/src/tests/test_aeventkit.py +0 -0
- {dycw_utilities-0.166.27 → dycw_utilities-0.166.29}/src/tests/test_altair.py +0 -0
- {dycw_utilities-0.166.27 → dycw_utilities-0.166.29}/src/tests/test_asyncio.py +0 -0
- {dycw_utilities-0.166.27 → dycw_utilities-0.166.29}/src/tests/test_atomicwrites.py +0 -0
- {dycw_utilities-0.166.27 → dycw_utilities-0.166.29}/src/tests/test_atools.py +0 -0
- {dycw_utilities-0.166.27 → dycw_utilities-0.166.29}/src/tests/test_cachetools.py +0 -0
- {dycw_utilities-0.166.27 → dycw_utilities-0.166.29}/src/tests/test_click.py +0 -0
- {dycw_utilities-0.166.27 → dycw_utilities-0.166.29}/src/tests/test_concurrent.py +0 -0
- {dycw_utilities-0.166.27 → dycw_utilities-0.166.29}/src/tests/test_contextlib.py +0 -0
- {dycw_utilities-0.166.27 → dycw_utilities-0.166.29}/src/tests/test_contextvars.py +0 -0
- {dycw_utilities-0.166.27 → dycw_utilities-0.166.29}/src/tests/test_cryptography.py +0 -0
- {dycw_utilities-0.166.27 → dycw_utilities-0.166.29}/src/tests/test_cvxpy.py +0 -0
- {dycw_utilities-0.166.27 → dycw_utilities-0.166.29}/src/tests/test_dataclasses.py +0 -0
- {dycw_utilities-0.166.27 → dycw_utilities-0.166.29}/src/tests/test_enum.py +0 -0
- {dycw_utilities-0.166.27 → dycw_utilities-0.166.29}/src/tests/test_errors.py +0 -0
- {dycw_utilities-0.166.27 → dycw_utilities-0.166.29}/src/tests/test_fastapi.py +0 -0
- {dycw_utilities-0.166.27 → dycw_utilities-0.166.29}/src/tests/test_fpdf2.py +0 -0
- {dycw_utilities-0.166.27 → dycw_utilities-0.166.29}/src/tests/test_functions.py +0 -0
- {dycw_utilities-0.166.27 → dycw_utilities-0.166.29}/src/tests/test_functools.py +0 -0
- {dycw_utilities-0.166.27 → dycw_utilities-0.166.29}/src/tests/test_getpass.py +0 -0
- {dycw_utilities-0.166.27 → dycw_utilities-0.166.29}/src/tests/test_git.py +0 -0
- {dycw_utilities-0.166.27 → dycw_utilities-0.166.29}/src/tests/test_gzip.py +0 -0
- {dycw_utilities-0.166.27 → dycw_utilities-0.166.29}/src/tests/test_hashlib.py +0 -0
- {dycw_utilities-0.166.27 → dycw_utilities-0.166.29}/src/tests/test_http.py +0 -0
- {dycw_utilities-0.166.27 → dycw_utilities-0.166.29}/src/tests/test_hypothesis.py +0 -0
- {dycw_utilities-0.166.27 → dycw_utilities-0.166.29}/src/tests/test_importlib.py +0 -0
- {dycw_utilities-0.166.27 → dycw_utilities-0.166.29}/src/tests/test_inflect.py +0 -0
- {dycw_utilities-0.166.27 → dycw_utilities-0.166.29}/src/tests/test_ipython.py +0 -0
- {dycw_utilities-0.166.27 → dycw_utilities-0.166.29}/src/tests/test_iterables.py +0 -0
- {dycw_utilities-0.166.27 → dycw_utilities-0.166.29}/src/tests/test_json.py +0 -0
- {dycw_utilities-0.166.27 → dycw_utilities-0.166.29}/src/tests/test_jupyter.py +0 -0
- {dycw_utilities-0.166.27 → dycw_utilities-0.166.29}/src/tests/test_libcst.py +0 -0
- {dycw_utilities-0.166.27 → dycw_utilities-0.166.29}/src/tests/test_lightweight_charts.py +0 -0
- {dycw_utilities-0.166.27 → dycw_utilities-0.166.29}/src/tests/test_logging.py +0 -0
- {dycw_utilities-0.166.27 → dycw_utilities-0.166.29}/src/tests/test_math.py +0 -0
- {dycw_utilities-0.166.27 → dycw_utilities-0.166.29}/src/tests/test_memory_profiler.py +0 -0
- {dycw_utilities-0.166.27 → dycw_utilities-0.166.29}/src/tests/test_modules.py +0 -0
- {dycw_utilities-0.166.27 → dycw_utilities-0.166.29}/src/tests/test_more_itertools.py +0 -0
- {dycw_utilities-0.166.27 → dycw_utilities-0.166.29}/src/tests/test_numpy.py +0 -0
- {dycw_utilities-0.166.27 → dycw_utilities-0.166.29}/src/tests/test_objects/__init__.py +0 -0
- {dycw_utilities-0.166.27 → dycw_utilities-0.166.29}/src/tests/test_objects/objects.py +0 -0
- {dycw_utilities-0.166.27 → dycw_utilities-0.166.29}/src/tests/test_operator.py +0 -0
- {dycw_utilities-0.166.27 → dycw_utilities-0.166.29}/src/tests/test_optuna.py +0 -0
- {dycw_utilities-0.166.27 → dycw_utilities-0.166.29}/src/tests/test_orjson.py +0 -0
- {dycw_utilities-0.166.27 → dycw_utilities-0.166.29}/src/tests/test_parse.py +0 -0
- {dycw_utilities-0.166.27 → dycw_utilities-0.166.29}/src/tests/test_pathlib.py +0 -0
- {dycw_utilities-0.166.27 → dycw_utilities-0.166.29}/src/tests/test_pickle.py +0 -0
- {dycw_utilities-0.166.27 → dycw_utilities-0.166.29}/src/tests/test_platform.py +0 -0
- {dycw_utilities-0.166.27 → dycw_utilities-0.166.29}/src/tests/test_polars.py +0 -0
- {dycw_utilities-0.166.27 → dycw_utilities-0.166.29}/src/tests/test_polars_ols.py +0 -0
- {dycw_utilities-0.166.27 → dycw_utilities-0.166.29}/src/tests/test_postgres.py +0 -0
- {dycw_utilities-0.166.27 → dycw_utilities-0.166.29}/src/tests/test_pottery.py +0 -0
- {dycw_utilities-0.166.27 → dycw_utilities-0.166.29}/src/tests/test_pqdm.py +0 -0
- {dycw_utilities-0.166.27 → dycw_utilities-0.166.29}/src/tests/test_psutil.py +0 -0
- {dycw_utilities-0.166.27 → dycw_utilities-0.166.29}/src/tests/test_pydantic_settings.py +0 -0
- {dycw_utilities-0.166.27 → dycw_utilities-0.166.29}/src/tests/test_pydantic_settings_sops.py +0 -0
- {dycw_utilities-0.166.27 → dycw_utilities-0.166.29}/src/tests/test_pyinstrument.py +0 -0
- {dycw_utilities-0.166.27 → dycw_utilities-0.166.29}/src/tests/test_pytest_randomly.py +0 -0
- {dycw_utilities-0.166.27 → dycw_utilities-0.166.29}/src/tests/test_pytest_regressions.py +0 -0
- {dycw_utilities-0.166.27 → dycw_utilities-0.166.29}/src/tests/test_random.py +0 -0
- {dycw_utilities-0.166.27 → dycw_utilities-0.166.29}/src/tests/test_re.py +0 -0
- {dycw_utilities-0.166.27 → dycw_utilities-0.166.29}/src/tests/test_redis.py +0 -0
- {dycw_utilities-0.166.27 → dycw_utilities-0.166.29}/src/tests/test_reprlib.py +0 -0
- {dycw_utilities-0.166.27 → dycw_utilities-0.166.29}/src/tests/test_scipy.py +0 -0
- {dycw_utilities-0.166.27 → dycw_utilities-0.166.29}/src/tests/test_sentinel.py +0 -0
- {dycw_utilities-0.166.27 → dycw_utilities-0.166.29}/src/tests/test_shelve.py +0 -0
- {dycw_utilities-0.166.27 → dycw_utilities-0.166.29}/src/tests/test_slack_sdk.py +0 -0
- {dycw_utilities-0.166.27 → dycw_utilities-0.166.29}/src/tests/test_socket.py +0 -0
- {dycw_utilities-0.166.27 → dycw_utilities-0.166.29}/src/tests/test_sqlalchemy.py +0 -0
- {dycw_utilities-0.166.27 → dycw_utilities-0.166.29}/src/tests/test_sqlalchemy_polars.py +0 -0
- {dycw_utilities-0.166.27 → dycw_utilities-0.166.29}/src/tests/test_statsmodels.py +0 -0
- {dycw_utilities-0.166.27 → dycw_utilities-0.166.29}/src/tests/test_string.py +0 -0
- {dycw_utilities-0.166.27 → dycw_utilities-0.166.29}/src/tests/test_tempfile.py +0 -0
- {dycw_utilities-0.166.27 → dycw_utilities-0.166.29}/src/tests/test_testbook.py +0 -0
- {dycw_utilities-0.166.27 → dycw_utilities-0.166.29}/src/tests/test_text.py +0 -0
- {dycw_utilities-0.166.27 → dycw_utilities-0.166.29}/src/tests/test_threading.py +0 -0
- {dycw_utilities-0.166.27 → dycw_utilities-0.166.29}/src/tests/test_timer.py +0 -0
- {dycw_utilities-0.166.27 → dycw_utilities-0.166.29}/src/tests/test_traceback.py +0 -0
- {dycw_utilities-0.166.27 → dycw_utilities-0.166.29}/src/tests/test_typed_settings.py +0 -0
- {dycw_utilities-0.166.27 → dycw_utilities-0.166.29}/src/tests/test_types.py +0 -0
- {dycw_utilities-0.166.27 → dycw_utilities-0.166.29}/src/tests/test_typing.py +0 -0
- {dycw_utilities-0.166.27 → dycw_utilities-0.166.29}/src/tests/test_typing_funcs/__init__.py +0 -0
- {dycw_utilities-0.166.27 → dycw_utilities-0.166.29}/src/tests/test_typing_funcs/no_future.py +0 -0
- {dycw_utilities-0.166.27 → dycw_utilities-0.166.29}/src/tests/test_typing_funcs/with_future.py +0 -0
- {dycw_utilities-0.166.27 → dycw_utilities-0.166.29}/src/tests/test_tzdata.py +0 -0
- {dycw_utilities-0.166.27 → dycw_utilities-0.166.29}/src/tests/test_tzlocal.py +0 -0
- {dycw_utilities-0.166.27 → dycw_utilities-0.166.29}/src/tests/test_uuid.py +0 -0
- {dycw_utilities-0.166.27 → dycw_utilities-0.166.29}/src/tests/test_version.py +0 -0
- {dycw_utilities-0.166.27 → dycw_utilities-0.166.29}/src/tests/test_warnings.py +0 -0
- {dycw_utilities-0.166.27 → dycw_utilities-0.166.29}/src/tests/test_whenever.py +0 -0
- {dycw_utilities-0.166.27 → dycw_utilities-0.166.29}/src/tests/test_zipfile.py +0 -0
- {dycw_utilities-0.166.27 → dycw_utilities-0.166.29}/src/tests/test_zoneinfo.py +0 -0
- {dycw_utilities-0.166.27 → dycw_utilities-0.166.29}/src/utilities/aeventkit.py +0 -0
- {dycw_utilities-0.166.27 → dycw_utilities-0.166.29}/src/utilities/altair.py +0 -0
- {dycw_utilities-0.166.27 → dycw_utilities-0.166.29}/src/utilities/asyncio.py +0 -0
- {dycw_utilities-0.166.27 → dycw_utilities-0.166.29}/src/utilities/atomicwrites.py +0 -0
- {dycw_utilities-0.166.27 → dycw_utilities-0.166.29}/src/utilities/atools.py +0 -0
- {dycw_utilities-0.166.27 → dycw_utilities-0.166.29}/src/utilities/cachetools.py +0 -0
- {dycw_utilities-0.166.27 → dycw_utilities-0.166.29}/src/utilities/click.py +0 -0
- {dycw_utilities-0.166.27 → dycw_utilities-0.166.29}/src/utilities/concurrent.py +0 -0
- {dycw_utilities-0.166.27 → dycw_utilities-0.166.29}/src/utilities/contextlib.py +0 -0
- {dycw_utilities-0.166.27 → dycw_utilities-0.166.29}/src/utilities/contextvars.py +0 -0
- {dycw_utilities-0.166.27 → dycw_utilities-0.166.29}/src/utilities/cryptography.py +0 -0
- {dycw_utilities-0.166.27 → dycw_utilities-0.166.29}/src/utilities/cvxpy.py +0 -0
- {dycw_utilities-0.166.27 → dycw_utilities-0.166.29}/src/utilities/dataclasses.py +0 -0
- {dycw_utilities-0.166.27 → dycw_utilities-0.166.29}/src/utilities/enum.py +0 -0
- {dycw_utilities-0.166.27 → dycw_utilities-0.166.29}/src/utilities/errors.py +0 -0
- {dycw_utilities-0.166.27 → dycw_utilities-0.166.29}/src/utilities/fastapi.py +0 -0
- {dycw_utilities-0.166.27 → dycw_utilities-0.166.29}/src/utilities/fpdf2.py +0 -0
- {dycw_utilities-0.166.27 → dycw_utilities-0.166.29}/src/utilities/functions.py +0 -0
- {dycw_utilities-0.166.27 → dycw_utilities-0.166.29}/src/utilities/functools.py +0 -0
- {dycw_utilities-0.166.27 → dycw_utilities-0.166.29}/src/utilities/getpass.py +0 -0
- {dycw_utilities-0.166.27 → dycw_utilities-0.166.29}/src/utilities/git.py +0 -0
- {dycw_utilities-0.166.27 → dycw_utilities-0.166.29}/src/utilities/gzip.py +0 -0
- {dycw_utilities-0.166.27 → dycw_utilities-0.166.29}/src/utilities/hashlib.py +0 -0
- {dycw_utilities-0.166.27 → dycw_utilities-0.166.29}/src/utilities/http.py +0 -0
- {dycw_utilities-0.166.27 → dycw_utilities-0.166.29}/src/utilities/hypothesis.py +0 -0
- {dycw_utilities-0.166.27 → dycw_utilities-0.166.29}/src/utilities/importlib.py +0 -0
- {dycw_utilities-0.166.27 → dycw_utilities-0.166.29}/src/utilities/inflect.py +0 -0
- {dycw_utilities-0.166.27 → dycw_utilities-0.166.29}/src/utilities/ipython.py +0 -0
- {dycw_utilities-0.166.27 → dycw_utilities-0.166.29}/src/utilities/iterables.py +0 -0
- {dycw_utilities-0.166.27 → dycw_utilities-0.166.29}/src/utilities/json.py +0 -0
- {dycw_utilities-0.166.27 → dycw_utilities-0.166.29}/src/utilities/jupyter.py +0 -0
- {dycw_utilities-0.166.27 → dycw_utilities-0.166.29}/src/utilities/libcst.py +0 -0
- {dycw_utilities-0.166.27 → dycw_utilities-0.166.29}/src/utilities/lightweight_charts.py +0 -0
- {dycw_utilities-0.166.27 → dycw_utilities-0.166.29}/src/utilities/logging.py +0 -0
- {dycw_utilities-0.166.27 → dycw_utilities-0.166.29}/src/utilities/math.py +0 -0
- {dycw_utilities-0.166.27 → dycw_utilities-0.166.29}/src/utilities/memory_profiler.py +0 -0
- {dycw_utilities-0.166.27 → dycw_utilities-0.166.29}/src/utilities/modules.py +0 -0
- {dycw_utilities-0.166.27 → dycw_utilities-0.166.29}/src/utilities/more_itertools.py +0 -0
- {dycw_utilities-0.166.27 → dycw_utilities-0.166.29}/src/utilities/numpy.py +0 -0
- {dycw_utilities-0.166.27 → dycw_utilities-0.166.29}/src/utilities/operator.py +0 -0
- {dycw_utilities-0.166.27 → dycw_utilities-0.166.29}/src/utilities/optuna.py +0 -0
- {dycw_utilities-0.166.27 → dycw_utilities-0.166.29}/src/utilities/orjson.py +0 -0
- {dycw_utilities-0.166.27 → dycw_utilities-0.166.29}/src/utilities/parse.py +0 -0
- {dycw_utilities-0.166.27 → dycw_utilities-0.166.29}/src/utilities/pathlib.py +0 -0
- {dycw_utilities-0.166.27 → dycw_utilities-0.166.29}/src/utilities/pickle.py +0 -0
- {dycw_utilities-0.166.27 → dycw_utilities-0.166.29}/src/utilities/platform.py +0 -0
- {dycw_utilities-0.166.27 → dycw_utilities-0.166.29}/src/utilities/polars.py +0 -0
- {dycw_utilities-0.166.27 → dycw_utilities-0.166.29}/src/utilities/polars_ols.py +0 -0
- {dycw_utilities-0.166.27 → dycw_utilities-0.166.29}/src/utilities/postgres.py +0 -0
- {dycw_utilities-0.166.27 → dycw_utilities-0.166.29}/src/utilities/pottery.py +0 -0
- {dycw_utilities-0.166.27 → dycw_utilities-0.166.29}/src/utilities/pqdm.py +0 -0
- {dycw_utilities-0.166.27 → dycw_utilities-0.166.29}/src/utilities/psutil.py +0 -0
- {dycw_utilities-0.166.27 → dycw_utilities-0.166.29}/src/utilities/py.typed +0 -0
- {dycw_utilities-0.166.27 → dycw_utilities-0.166.29}/src/utilities/pydantic_settings.py +0 -0
- {dycw_utilities-0.166.27 → dycw_utilities-0.166.29}/src/utilities/pydantic_settings_sops.py +0 -0
- {dycw_utilities-0.166.27 → dycw_utilities-0.166.29}/src/utilities/pyinstrument.py +0 -0
- {dycw_utilities-0.166.27 → dycw_utilities-0.166.29}/src/utilities/pytest_plugins/__init__.py +0 -0
- {dycw_utilities-0.166.27 → dycw_utilities-0.166.29}/src/utilities/pytest_plugins/pytest_randomly.py +0 -0
- {dycw_utilities-0.166.27 → dycw_utilities-0.166.29}/src/utilities/pytest_plugins/pytest_regressions.py +0 -0
- {dycw_utilities-0.166.27 → dycw_utilities-0.166.29}/src/utilities/pytest_regressions.py +0 -0
- {dycw_utilities-0.166.27 → dycw_utilities-0.166.29}/src/utilities/random.py +0 -0
- {dycw_utilities-0.166.27 → dycw_utilities-0.166.29}/src/utilities/re.py +0 -0
- {dycw_utilities-0.166.27 → dycw_utilities-0.166.29}/src/utilities/redis.py +0 -0
- {dycw_utilities-0.166.27 → dycw_utilities-0.166.29}/src/utilities/reprlib.py +0 -0
- {dycw_utilities-0.166.27 → dycw_utilities-0.166.29}/src/utilities/scipy.py +0 -0
- {dycw_utilities-0.166.27 → dycw_utilities-0.166.29}/src/utilities/sentinel.py +0 -0
- {dycw_utilities-0.166.27 → dycw_utilities-0.166.29}/src/utilities/shelve.py +0 -0
- {dycw_utilities-0.166.27 → dycw_utilities-0.166.29}/src/utilities/slack_sdk.py +0 -0
- {dycw_utilities-0.166.27 → dycw_utilities-0.166.29}/src/utilities/socket.py +0 -0
- {dycw_utilities-0.166.27 → dycw_utilities-0.166.29}/src/utilities/sqlalchemy.py +0 -0
- {dycw_utilities-0.166.27 → dycw_utilities-0.166.29}/src/utilities/sqlalchemy_polars.py +0 -0
- {dycw_utilities-0.166.27 → dycw_utilities-0.166.29}/src/utilities/statsmodels.py +0 -0
- {dycw_utilities-0.166.27 → dycw_utilities-0.166.29}/src/utilities/string.py +0 -0
- {dycw_utilities-0.166.27 → dycw_utilities-0.166.29}/src/utilities/tempfile.py +0 -0
- {dycw_utilities-0.166.27 → dycw_utilities-0.166.29}/src/utilities/testbook.py +0 -0
- {dycw_utilities-0.166.27 → dycw_utilities-0.166.29}/src/utilities/text.py +0 -0
- {dycw_utilities-0.166.27 → dycw_utilities-0.166.29}/src/utilities/threading.py +0 -0
- {dycw_utilities-0.166.27 → dycw_utilities-0.166.29}/src/utilities/timer.py +0 -0
- {dycw_utilities-0.166.27 → dycw_utilities-0.166.29}/src/utilities/traceback.py +0 -0
- {dycw_utilities-0.166.27 → dycw_utilities-0.166.29}/src/utilities/typed_settings.py +0 -0
- {dycw_utilities-0.166.27 → dycw_utilities-0.166.29}/src/utilities/types.py +0 -0
- {dycw_utilities-0.166.27 → dycw_utilities-0.166.29}/src/utilities/typing.py +0 -0
- {dycw_utilities-0.166.27 → dycw_utilities-0.166.29}/src/utilities/tzdata.py +0 -0
- {dycw_utilities-0.166.27 → dycw_utilities-0.166.29}/src/utilities/tzlocal.py +0 -0
- {dycw_utilities-0.166.27 → dycw_utilities-0.166.29}/src/utilities/uuid.py +0 -0
- {dycw_utilities-0.166.27 → dycw_utilities-0.166.29}/src/utilities/version.py +0 -0
- {dycw_utilities-0.166.27 → dycw_utilities-0.166.29}/src/utilities/warnings.py +0 -0
- {dycw_utilities-0.166.27 → dycw_utilities-0.166.29}/src/utilities/whenever.py +0 -0
- {dycw_utilities-0.166.27 → dycw_utilities-0.166.29}/src/utilities/zipfile.py +0 -0
- {dycw_utilities-0.166.27 → dycw_utilities-0.166.29}/src/utilities/zoneinfo.py +0 -0
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
Metadata-Version: 2.4
|
|
2
2
|
Name: dycw-utilities
|
|
3
|
-
Version: 0.166.
|
|
3
|
+
Version: 0.166.29
|
|
4
4
|
Author-email: Derek Wan <d.wan@icloud.com>
|
|
5
5
|
License-File: LICENSE
|
|
6
6
|
Requires-Python: >=3.12
|
|
@@ -12,8 +12,8 @@ Provides-Extra: logging
|
|
|
12
12
|
Requires-Dist: coloredlogs<15.1,>=15.0.1; extra == 'logging'
|
|
13
13
|
Provides-Extra: test
|
|
14
14
|
Requires-Dist: dycw-pytest-only<2.2,>=2.1.1; extra == 'test'
|
|
15
|
-
Requires-Dist: hypothesis<6.139,>=6.138.
|
|
16
|
-
Requires-Dist: pytest-asyncio<1.
|
|
15
|
+
Requires-Dist: hypothesis<6.139,>=6.138.16; extra == 'test'
|
|
16
|
+
Requires-Dist: pytest-asyncio<1.3,>=1.2.0; extra == 'test'
|
|
17
17
|
Requires-Dist: pytest-cov<7.1,>=7.0.0; extra == 'test'
|
|
18
18
|
Requires-Dist: pytest-instafail<0.6,>=0.5.0; extra == 'test'
|
|
19
19
|
Requires-Dist: pytest-lazy-fixtures<1.4,>=1.3.4; extra == 'test'
|
|
@@ -71,7 +71,7 @@ http-test = [
|
|
|
71
71
|
"orjson",
|
|
72
72
|
]
|
|
73
73
|
hypothesis = [
|
|
74
|
-
"hypothesis >=6.138.
|
|
74
|
+
"hypothesis >=6.138.16, <6.139",
|
|
75
75
|
]
|
|
76
76
|
hypothesis-test = [
|
|
77
77
|
"libcst",
|
|
@@ -161,7 +161,7 @@ pyinstrument = [
|
|
|
161
161
|
]
|
|
162
162
|
pytest = [
|
|
163
163
|
"pytest >=8.4.2, <8.5",
|
|
164
|
-
"pytest-asyncio >=1.
|
|
164
|
+
"pytest-asyncio >=1.2.0, <1.3",
|
|
165
165
|
"pytest-randomly >=4.0.1, <4.1",
|
|
166
166
|
"pytest-timeout >=2.4.0, <2.5",
|
|
167
167
|
"pytest-xdist >=3.8.0, <3.9",
|
|
@@ -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.29"
|
|
250
250
|
|
|
251
251
|
[project.entry-points.pytest11]
|
|
252
252
|
pytest-randomly = "utilities.pytest_plugins.pytest_randomly"
|
|
@@ -258,9 +258,9 @@ logging = [
|
|
|
258
258
|
]
|
|
259
259
|
test = [
|
|
260
260
|
"dycw-pytest-only >=2.1.1, <2.2",
|
|
261
|
-
"hypothesis >=6.138.
|
|
261
|
+
"hypothesis >=6.138.16, <6.139",
|
|
262
262
|
"pytest >=8.4.2, <8.5",
|
|
263
|
-
"pytest-asyncio >=1.
|
|
263
|
+
"pytest-asyncio >=1.2.0, <1.3",
|
|
264
264
|
"pytest-cov >=7.0.0, <7.1",
|
|
265
265
|
"pytest-instafail >=0.5.0, <0.6",
|
|
266
266
|
"pytest-lazy-fixtures >=1.3.4, <1.4",
|
|
@@ -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.29"
|
|
283
283
|
|
|
284
284
|
[[tool.bumpversion.files]]
|
|
285
285
|
filename = "src/utilities/__init__.py"
|
|
@@ -134,6 +134,10 @@ class TestIsPytest:
|
|
|
134
134
|
def test_main(self) -> None:
|
|
135
135
|
assert is_pytest()
|
|
136
136
|
|
|
137
|
+
def test_off(self) -> None:
|
|
138
|
+
with temp_environ(PYTEST_VERSION=None):
|
|
139
|
+
assert not is_pytest()
|
|
140
|
+
|
|
137
141
|
|
|
138
142
|
class TestTempEnviron:
|
|
139
143
|
@given(key=text.map(_prefix), value=text)
|
|
@@ -257,6 +257,59 @@ class TestPytestOptions:
|
|
|
257
257
|
result.stdout.re_match_lines(list(matches))
|
|
258
258
|
|
|
259
259
|
|
|
260
|
+
class TestRunFrac:
|
|
261
|
+
@mark.flaky
|
|
262
|
+
def test_basic(self, *, testdir: Testdir) -> None:
|
|
263
|
+
_ = testdir.makepyfile(
|
|
264
|
+
"""
|
|
265
|
+
from utilities.pytest import run_frac
|
|
266
|
+
|
|
267
|
+
@run_frac()
|
|
268
|
+
def test_main() -> None:
|
|
269
|
+
assert True
|
|
270
|
+
"""
|
|
271
|
+
)
|
|
272
|
+
self._run_test(testdir)
|
|
273
|
+
|
|
274
|
+
@mark.flaky
|
|
275
|
+
@mark.parametrize("asyncio_first", [param(True), param(False)])
|
|
276
|
+
def test_async(self, *, testdir: Testdir, asyncio_first: bool) -> None:
|
|
277
|
+
if asyncio_first:
|
|
278
|
+
_ = testdir.makepyfile(
|
|
279
|
+
"""
|
|
280
|
+
from pytest import mark
|
|
281
|
+
|
|
282
|
+
from utilities.pytest import run_frac
|
|
283
|
+
|
|
284
|
+
@mark.asyncio
|
|
285
|
+
@run_frac()
|
|
286
|
+
async def test_main() -> None:
|
|
287
|
+
assert True
|
|
288
|
+
"""
|
|
289
|
+
)
|
|
290
|
+
else:
|
|
291
|
+
_ = testdir.makepyfile(
|
|
292
|
+
"""
|
|
293
|
+
from pytest import mark
|
|
294
|
+
|
|
295
|
+
from utilities.pytest import run_frac
|
|
296
|
+
|
|
297
|
+
@run_frac()
|
|
298
|
+
@mark.asyncio
|
|
299
|
+
async def test_main() -> None:
|
|
300
|
+
assert True
|
|
301
|
+
"""
|
|
302
|
+
)
|
|
303
|
+
self._run_test(testdir)
|
|
304
|
+
|
|
305
|
+
def _run_test(self, testdir: Testdir, /) -> None:
|
|
306
|
+
result = testdir.runpytest()
|
|
307
|
+
try:
|
|
308
|
+
result.assert_outcomes(passed=1)
|
|
309
|
+
except AssertionError:
|
|
310
|
+
result.assert_outcomes(skipped=1)
|
|
311
|
+
|
|
312
|
+
|
|
260
313
|
class TestThrottle:
|
|
261
314
|
delta: ClassVar[float] = 0.5
|
|
262
315
|
|
|
@@ -28,7 +28,8 @@ from utilities.platform import (
|
|
|
28
28
|
IS_NOT_WINDOWS,
|
|
29
29
|
IS_WINDOWS,
|
|
30
30
|
)
|
|
31
|
-
from utilities.
|
|
31
|
+
from utilities.random import bernoulli
|
|
32
|
+
from utilities.types import MaybeCoro, Seed
|
|
32
33
|
from utilities.whenever import SECOND, get_now_local
|
|
33
34
|
|
|
34
35
|
if TYPE_CHECKING:
|
|
@@ -166,6 +167,47 @@ class _NodeIdToPathNotGetTailError(NodeIdToPathError):
|
|
|
166
167
|
##
|
|
167
168
|
|
|
168
169
|
|
|
170
|
+
def run_frac[F: Callable[..., MaybeCoro[None]]](
|
|
171
|
+
*, frac: float = 0.5, seed: Seed | None = None
|
|
172
|
+
) -> Callable[[F], F]:
|
|
173
|
+
"""Run a test only a fraction of the time.."""
|
|
174
|
+
return cast("Any", partial(_run_frac_inner, frac=frac, seed=seed))
|
|
175
|
+
|
|
176
|
+
|
|
177
|
+
def _run_frac_inner[F: Callable[..., MaybeCoro[None]]](
|
|
178
|
+
func: F, /, *, frac: float = 0.5, seed: Seed | None = None
|
|
179
|
+
) -> F:
|
|
180
|
+
match bool(iscoroutinefunction(func)):
|
|
181
|
+
case False:
|
|
182
|
+
|
|
183
|
+
@wraps(func)
|
|
184
|
+
def run_frac_sync(*args: Any, **kwargs: Any) -> None:
|
|
185
|
+
_skipif_frac(frac=frac, seed=seed)
|
|
186
|
+
cast("Callable[..., None]", func)(*args, **kwargs)
|
|
187
|
+
|
|
188
|
+
return cast("Any", run_frac_sync)
|
|
189
|
+
|
|
190
|
+
case True:
|
|
191
|
+
|
|
192
|
+
@wraps(func)
|
|
193
|
+
async def run_frac_async(*args: Any, **kwargs: Any) -> None:
|
|
194
|
+
_skipif_frac(frac=frac, seed=seed)
|
|
195
|
+
await cast("Callable[..., Coro[None]]", func)(*args, **kwargs)
|
|
196
|
+
|
|
197
|
+
return cast("Any", run_frac_async)
|
|
198
|
+
|
|
199
|
+
case never:
|
|
200
|
+
assert_never(never)
|
|
201
|
+
|
|
202
|
+
|
|
203
|
+
def _skipif_frac(*, frac: float = 0.5, seed: Seed | None = None) -> None:
|
|
204
|
+
if (skip is not None) and bernoulli(true=1 - frac, seed=seed):
|
|
205
|
+
_ = skip(reason=f"{_get_name()} skipped (run {frac:.0%})")
|
|
206
|
+
|
|
207
|
+
|
|
208
|
+
##
|
|
209
|
+
|
|
210
|
+
|
|
169
211
|
def throttle[F: Callable[..., MaybeCoro[None]]](
|
|
170
212
|
*, root: PathLike | None = None, delta: Delta = SECOND, on_try: bool = False
|
|
171
213
|
) -> Callable[[F], F]:
|
|
@@ -181,7 +223,6 @@ def _throttle_inner[F: Callable[..., MaybeCoro[None]]](
|
|
|
181
223
|
delta: Delta = SECOND,
|
|
182
224
|
on_try: bool = False,
|
|
183
225
|
) -> F:
|
|
184
|
-
"""Throttle a test function/method."""
|
|
185
226
|
if get_env_var("THROTTLE", nullable=True) is not None:
|
|
186
227
|
return func
|
|
187
228
|
match bool(iscoroutinefunction(func)), on_try:
|
|
@@ -276,6 +317,7 @@ __all__ = [
|
|
|
276
317
|
"add_pytest_collection_modifyitems",
|
|
277
318
|
"add_pytest_configure",
|
|
278
319
|
"node_id_path",
|
|
320
|
+
"run_frac",
|
|
279
321
|
"skipif_linux",
|
|
280
322
|
"skipif_mac",
|
|
281
323
|
"skipif_not_linux",
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
{dycw_utilities-0.166.27 → dycw_utilities-0.166.29}/src/tests/modules/package_missing/__init__.py
RENAMED
|
File without changes
|
{dycw_utilities-0.166.27 → dycw_utilities-0.166.29}/src/tests/modules/package_missing/module.py
RENAMED
|
File without changes
|
{dycw_utilities-0.166.27 → dycw_utilities-0.166.29}/src/tests/modules/package_with/__init__.py
RENAMED
|
File without changes
|
{dycw_utilities-0.166.27 → dycw_utilities-0.166.29}/src/tests/modules/package_with/outer_1.py
RENAMED
|
File without changes
|
{dycw_utilities-0.166.27 → dycw_utilities-0.166.29}/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.27 → dycw_utilities-0.166.29}/src/tests/modules/package_without/__init__.py
RENAMED
|
File without changes
|
{dycw_utilities-0.166.27 → dycw_utilities-0.166.29}/src/tests/modules/package_without/module_1.py
RENAMED
|
File without changes
|
{dycw_utilities-0.166.27 → dycw_utilities-0.166.29}/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
|
{dycw_utilities-0.166.27 → dycw_utilities-0.166.29}/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.27 → dycw_utilities-0.166.29}/src/tests/test_typing_funcs/no_future.py
RENAMED
|
File without changes
|
{dycw_utilities-0.166.27 → dycw_utilities-0.166.29}/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
|
{dycw_utilities-0.166.27 → dycw_utilities-0.166.29}/src/utilities/pytest_plugins/__init__.py
RENAMED
|
File without changes
|
{dycw_utilities-0.166.27 → dycw_utilities-0.166.29}/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
|