dycw-utilities 0.126.3__tar.gz → 0.126.4__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.
- {dycw_utilities-0.126.3 → dycw_utilities-0.126.4}/PKG-INFO +3 -3
- {dycw_utilities-0.126.3 → dycw_utilities-0.126.4}/pyproject.toml +7 -6
- {dycw_utilities-0.126.3 → dycw_utilities-0.126.4}/src/tests/test_hypothesis.py +9 -14
- dycw_utilities-0.126.4/src/tests/test_pottery.py +32 -0
- {dycw_utilities-0.126.3 → dycw_utilities-0.126.4}/src/tests/test_redis.py +163 -184
- {dycw_utilities-0.126.3 → dycw_utilities-0.126.4}/src/utilities/__init__.py +1 -1
- {dycw_utilities-0.126.3 → dycw_utilities-0.126.4}/src/utilities/hypothesis.py +19 -46
- {dycw_utilities-0.126.3 → dycw_utilities-0.126.4}/src/utilities/libcst.py +1 -1
- dycw_utilities-0.126.4/src/utilities/pottery.py +50 -0
- {dycw_utilities-0.126.3 → dycw_utilities-0.126.4}/src/utilities/redis.py +0 -19
- {dycw_utilities-0.126.3 → dycw_utilities-0.126.4}/.gitignore +0 -0
- {dycw_utilities-0.126.3 → dycw_utilities-0.126.4}/LICENSE +0 -0
- {dycw_utilities-0.126.3 → dycw_utilities-0.126.4}/README.md +0 -0
- {dycw_utilities-0.126.3 → dycw_utilities-0.126.4}/src/tests/__init__.py +0 -0
- {dycw_utilities-0.126.3 → dycw_utilities-0.126.4}/src/tests/conftest.py +0 -0
- {dycw_utilities-0.126.3 → dycw_utilities-0.126.4}/src/tests/modules/__init__.py +0 -0
- {dycw_utilities-0.126.3 → dycw_utilities-0.126.4}/src/tests/modules/package_missing/__init__.py +0 -0
- {dycw_utilities-0.126.3 → dycw_utilities-0.126.4}/src/tests/modules/package_missing/module.py +0 -0
- {dycw_utilities-0.126.3 → dycw_utilities-0.126.4}/src/tests/modules/package_with/__init__.py +0 -0
- {dycw_utilities-0.126.3 → dycw_utilities-0.126.4}/src/tests/modules/package_with/outer_1.py +0 -0
- {dycw_utilities-0.126.3 → dycw_utilities-0.126.4}/src/tests/modules/package_with/outer_2.py +0 -0
- {dycw_utilities-0.126.3 → dycw_utilities-0.126.4}/src/tests/modules/package_with/subpackage/__init__.py +0 -0
- {dycw_utilities-0.126.3 → dycw_utilities-0.126.4}/src/tests/modules/package_with/subpackage/inner_1.py +0 -0
- {dycw_utilities-0.126.3 → dycw_utilities-0.126.4}/src/tests/modules/package_with/subpackage/inner_2.py +0 -0
- {dycw_utilities-0.126.3 → dycw_utilities-0.126.4}/src/tests/modules/package_with/subpackage/inner_3.py +0 -0
- {dycw_utilities-0.126.3 → dycw_utilities-0.126.4}/src/tests/modules/package_without/__init__.py +0 -0
- {dycw_utilities-0.126.3 → dycw_utilities-0.126.4}/src/tests/modules/package_without/module_1.py +0 -0
- {dycw_utilities-0.126.3 → dycw_utilities-0.126.4}/src/tests/modules/package_without/module_2.py +0 -0
- {dycw_utilities-0.126.3 → dycw_utilities-0.126.4}/src/tests/modules/standalone.py +0 -0
- {dycw_utilities-0.126.3 → dycw_utilities-0.126.4}/src/tests/modules/with_imports.py +0 -0
- {dycw_utilities-0.126.3 → dycw_utilities-0.126.4}/src/tests/regressions/test_pytest_regressions/TestMultipleRegressionFixtures__test_main__obj.json +0 -0
- {dycw_utilities-0.126.3 → dycw_utilities-0.126.4}/src/tests/regressions/test_pytest_regressions/TestMultipleRegressionFixtures__test_main__series.json +0 -0
- {dycw_utilities-0.126.3 → dycw_utilities-0.126.4}/src/tests/regressions/test_pytest_regressions/TestOrjsonRegressionFixture__test_dataclass_int.json +0 -0
- {dycw_utilities-0.126.3 → dycw_utilities-0.126.4}/src/tests/regressions/test_pytest_regressions/TestOrjsonRegressionFixture__test_dataclass_literal__false.json +0 -0
- {dycw_utilities-0.126.3 → dycw_utilities-0.126.4}/src/tests/regressions/test_pytest_regressions/TestOrjsonRegressionFixture__test_dataclass_literal__true.json +0 -0
- {dycw_utilities-0.126.3 → dycw_utilities-0.126.4}/src/tests/regressions/test_pytest_regressions/TestOrjsonRegressionFixture__test_dataclass_nested.json +0 -0
- {dycw_utilities-0.126.3 → dycw_utilities-0.126.4}/src/tests/regressions/test_pytest_regressions/TestPolarsRegressionFixture__test_dataframe.json +0 -0
- {dycw_utilities-0.126.3 → dycw_utilities-0.126.4}/src/tests/regressions/test_pytest_regressions/TestPolarsRegressionFixture__test_series.json +0 -0
- {dycw_utilities-0.126.3 → dycw_utilities-0.126.4}/src/tests/test_altair.py +0 -0
- {dycw_utilities-0.126.3 → dycw_utilities-0.126.4}/src/tests/test_asyncio.py +0 -0
- {dycw_utilities-0.126.3 → dycw_utilities-0.126.4}/src/tests/test_atomicwrites.py +0 -0
- {dycw_utilities-0.126.3 → dycw_utilities-0.126.4}/src/tests/test_atools.py +0 -0
- {dycw_utilities-0.126.3 → dycw_utilities-0.126.4}/src/tests/test_cachetools.py +0 -0
- {dycw_utilities-0.126.3 → dycw_utilities-0.126.4}/src/tests/test_click.py +0 -0
- {dycw_utilities-0.126.3 → dycw_utilities-0.126.4}/src/tests/test_concurrent.py +0 -0
- {dycw_utilities-0.126.3 → dycw_utilities-0.126.4}/src/tests/test_contextlib.py +0 -0
- {dycw_utilities-0.126.3 → dycw_utilities-0.126.4}/src/tests/test_contextvars.py +0 -0
- {dycw_utilities-0.126.3 → dycw_utilities-0.126.4}/src/tests/test_cryptography.py +0 -0
- {dycw_utilities-0.126.3 → dycw_utilities-0.126.4}/src/tests/test_cvxpy.py +0 -0
- {dycw_utilities-0.126.3 → dycw_utilities-0.126.4}/src/tests/test_dataclasses.py +0 -0
- {dycw_utilities-0.126.3 → dycw_utilities-0.126.4}/src/tests/test_datetime.py +0 -0
- {dycw_utilities-0.126.3 → dycw_utilities-0.126.4}/src/tests/test_enum.py +0 -0
- {dycw_utilities-0.126.3 → dycw_utilities-0.126.4}/src/tests/test_errors.py +0 -0
- {dycw_utilities-0.126.3 → dycw_utilities-0.126.4}/src/tests/test_eventkit.py +0 -0
- {dycw_utilities-0.126.3 → dycw_utilities-0.126.4}/src/tests/test_fastapi.py +0 -0
- {dycw_utilities-0.126.3 → dycw_utilities-0.126.4}/src/tests/test_fpdf2.py +0 -0
- {dycw_utilities-0.126.3 → dycw_utilities-0.126.4}/src/tests/test_functions.py +0 -0
- {dycw_utilities-0.126.3 → dycw_utilities-0.126.4}/src/tests/test_functools.py +0 -0
- {dycw_utilities-0.126.3 → dycw_utilities-0.126.4}/src/tests/test_getpass.py +0 -0
- {dycw_utilities-0.126.3 → dycw_utilities-0.126.4}/src/tests/test_git.py +0 -0
- {dycw_utilities-0.126.3 → dycw_utilities-0.126.4}/src/tests/test_hashlib.py +0 -0
- {dycw_utilities-0.126.3 → dycw_utilities-0.126.4}/src/tests/test_http.py +0 -0
- {dycw_utilities-0.126.3 → dycw_utilities-0.126.4}/src/tests/test_importlib.py +0 -0
- {dycw_utilities-0.126.3 → dycw_utilities-0.126.4}/src/tests/test_ipython.py +0 -0
- {dycw_utilities-0.126.3 → dycw_utilities-0.126.4}/src/tests/test_iterables.py +0 -0
- {dycw_utilities-0.126.3 → dycw_utilities-0.126.4}/src/tests/test_jupyter.py +0 -0
- {dycw_utilities-0.126.3 → dycw_utilities-0.126.4}/src/tests/test_libcst.py +0 -0
- {dycw_utilities-0.126.3 → dycw_utilities-0.126.4}/src/tests/test_lightweight_charts.py +0 -0
- {dycw_utilities-0.126.3 → dycw_utilities-0.126.4}/src/tests/test_logging.py +0 -0
- {dycw_utilities-0.126.3 → dycw_utilities-0.126.4}/src/tests/test_loguru.py +0 -0
- {dycw_utilities-0.126.3 → dycw_utilities-0.126.4}/src/tests/test_luigi.py +0 -0
- {dycw_utilities-0.126.3 → dycw_utilities-0.126.4}/src/tests/test_math.py +0 -0
- {dycw_utilities-0.126.3 → dycw_utilities-0.126.4}/src/tests/test_memory_profiler.py +0 -0
- {dycw_utilities-0.126.3 → dycw_utilities-0.126.4}/src/tests/test_modules.py +0 -0
- {dycw_utilities-0.126.3 → dycw_utilities-0.126.4}/src/tests/test_more_itertools.py +0 -0
- {dycw_utilities-0.126.3 → dycw_utilities-0.126.4}/src/tests/test_numpy.py +0 -0
- {dycw_utilities-0.126.3 → dycw_utilities-0.126.4}/src/tests/test_operator.py +0 -0
- {dycw_utilities-0.126.3 → dycw_utilities-0.126.4}/src/tests/test_optuna.py +0 -0
- {dycw_utilities-0.126.3 → dycw_utilities-0.126.4}/src/tests/test_orjson.py +0 -0
- {dycw_utilities-0.126.3 → dycw_utilities-0.126.4}/src/tests/test_os.py +0 -0
- {dycw_utilities-0.126.3 → dycw_utilities-0.126.4}/src/tests/test_parse.py +0 -0
- {dycw_utilities-0.126.3 → dycw_utilities-0.126.4}/src/tests/test_pathlib.py +0 -0
- {dycw_utilities-0.126.3 → dycw_utilities-0.126.4}/src/tests/test_period.py +0 -0
- {dycw_utilities-0.126.3 → dycw_utilities-0.126.4}/src/tests/test_pickle.py +0 -0
- {dycw_utilities-0.126.3 → dycw_utilities-0.126.4}/src/tests/test_platform.py +0 -0
- {dycw_utilities-0.126.3 → dycw_utilities-0.126.4}/src/tests/test_polars.py +0 -0
- {dycw_utilities-0.126.3 → dycw_utilities-0.126.4}/src/tests/test_polars_ols.py +0 -0
- {dycw_utilities-0.126.3 → dycw_utilities-0.126.4}/src/tests/test_pqdm.py +0 -0
- {dycw_utilities-0.126.3 → dycw_utilities-0.126.4}/src/tests/test_psutil.py +0 -0
- {dycw_utilities-0.126.3 → dycw_utilities-0.126.4}/src/tests/test_pydantic.py +0 -0
- {dycw_utilities-0.126.3 → dycw_utilities-0.126.4}/src/tests/test_pyinstrument.py +0 -0
- {dycw_utilities-0.126.3 → dycw_utilities-0.126.4}/src/tests/test_pyrsistent.py +0 -0
- {dycw_utilities-0.126.3 → dycw_utilities-0.126.4}/src/tests/test_pytest.py +0 -0
- {dycw_utilities-0.126.3 → dycw_utilities-0.126.4}/src/tests/test_pytest_regressions.py +0 -0
- {dycw_utilities-0.126.3 → dycw_utilities-0.126.4}/src/tests/test_python_dotenv.py +0 -0
- {dycw_utilities-0.126.3 → dycw_utilities-0.126.4}/src/tests/test_random.py +0 -0
- {dycw_utilities-0.126.3 → dycw_utilities-0.126.4}/src/tests/test_re.py +0 -0
- {dycw_utilities-0.126.3 → dycw_utilities-0.126.4}/src/tests/test_reprlib.py +0 -0
- {dycw_utilities-0.126.3 → dycw_utilities-0.126.4}/src/tests/test_rich.py +0 -0
- {dycw_utilities-0.126.3 → dycw_utilities-0.126.4}/src/tests/test_scipy.py +0 -0
- {dycw_utilities-0.126.3 → dycw_utilities-0.126.4}/src/tests/test_sentinel.py +0 -0
- {dycw_utilities-0.126.3 → dycw_utilities-0.126.4}/src/tests/test_shelve.py +0 -0
- {dycw_utilities-0.126.3 → dycw_utilities-0.126.4}/src/tests/test_slack_sdk.py +0 -0
- {dycw_utilities-0.126.3 → dycw_utilities-0.126.4}/src/tests/test_socket.py +0 -0
- {dycw_utilities-0.126.3 → dycw_utilities-0.126.4}/src/tests/test_sqlalchemy.py +0 -0
- {dycw_utilities-0.126.3 → dycw_utilities-0.126.4}/src/tests/test_sqlalchemy_polars.py +0 -0
- {dycw_utilities-0.126.3 → dycw_utilities-0.126.4}/src/tests/test_statsmodel.py +0 -0
- {dycw_utilities-0.126.3 → dycw_utilities-0.126.4}/src/tests/test_streamlit.py +0 -0
- {dycw_utilities-0.126.3 → dycw_utilities-0.126.4}/src/tests/test_string.py +0 -0
- {dycw_utilities-0.126.3 → dycw_utilities-0.126.4}/src/tests/test_sys.py +0 -0
- {dycw_utilities-0.126.3 → dycw_utilities-0.126.4}/src/tests/test_tempfile.py +0 -0
- {dycw_utilities-0.126.3 → dycw_utilities-0.126.4}/src/tests/test_tenacity.py +0 -0
- {dycw_utilities-0.126.3 → dycw_utilities-0.126.4}/src/tests/test_text.py +0 -0
- {dycw_utilities-0.126.3 → dycw_utilities-0.126.4}/src/tests/test_threading.py +0 -0
- {dycw_utilities-0.126.3 → dycw_utilities-0.126.4}/src/tests/test_timer.py +0 -0
- {dycw_utilities-0.126.3 → dycw_utilities-0.126.4}/src/tests/test_traceback.py +0 -0
- {dycw_utilities-0.126.3 → dycw_utilities-0.126.4}/src/tests/test_traceback_funcs/__init__.py +0 -0
- {dycw_utilities-0.126.3 → dycw_utilities-0.126.4}/src/tests/test_traceback_funcs/chain.py +0 -0
- {dycw_utilities-0.126.3 → dycw_utilities-0.126.4}/src/tests/test_traceback_funcs/decorated_async.py +0 -0
- {dycw_utilities-0.126.3 → dycw_utilities-0.126.4}/src/tests/test_traceback_funcs/decorated_sync.py +0 -0
- {dycw_utilities-0.126.3 → dycw_utilities-0.126.4}/src/tests/test_traceback_funcs/error_bind.py +0 -0
- {dycw_utilities-0.126.3 → dycw_utilities-0.126.4}/src/tests/test_traceback_funcs/many.py +0 -0
- {dycw_utilities-0.126.3 → dycw_utilities-0.126.4}/src/tests/test_traceback_funcs/one.py +0 -0
- {dycw_utilities-0.126.3 → dycw_utilities-0.126.4}/src/tests/test_traceback_funcs/recursive.py +0 -0
- {dycw_utilities-0.126.3 → dycw_utilities-0.126.4}/src/tests/test_traceback_funcs/task_group_one.py +0 -0
- {dycw_utilities-0.126.3 → dycw_utilities-0.126.4}/src/tests/test_traceback_funcs/task_group_two.py +0 -0
- {dycw_utilities-0.126.3 → dycw_utilities-0.126.4}/src/tests/test_traceback_funcs/two.py +0 -0
- {dycw_utilities-0.126.3 → dycw_utilities-0.126.4}/src/tests/test_traceback_funcs/untraced.py +0 -0
- {dycw_utilities-0.126.3 → dycw_utilities-0.126.4}/src/tests/test_types.py +0 -0
- {dycw_utilities-0.126.3 → dycw_utilities-0.126.4}/src/tests/test_typing.py +0 -0
- {dycw_utilities-0.126.3 → dycw_utilities-0.126.4}/src/tests/test_typing_funcs/__init__.py +0 -0
- {dycw_utilities-0.126.3 → dycw_utilities-0.126.4}/src/tests/test_typing_funcs/no_future.py +0 -0
- {dycw_utilities-0.126.3 → dycw_utilities-0.126.4}/src/tests/test_typing_funcs/with_future.py +0 -0
- {dycw_utilities-0.126.3 → dycw_utilities-0.126.4}/src/tests/test_tzdata.py +0 -0
- {dycw_utilities-0.126.3 → dycw_utilities-0.126.4}/src/tests/test_tzlocal.py +0 -0
- {dycw_utilities-0.126.3 → dycw_utilities-0.126.4}/src/tests/test_uuid.py +0 -0
- {dycw_utilities-0.126.3 → dycw_utilities-0.126.4}/src/tests/test_version.py +0 -0
- {dycw_utilities-0.126.3 → dycw_utilities-0.126.4}/src/tests/test_warnings.py +0 -0
- {dycw_utilities-0.126.3 → dycw_utilities-0.126.4}/src/tests/test_whenever.py +0 -0
- {dycw_utilities-0.126.3 → dycw_utilities-0.126.4}/src/tests/test_zipfile.py +0 -0
- {dycw_utilities-0.126.3 → dycw_utilities-0.126.4}/src/tests/test_zoneinfo.py +0 -0
- {dycw_utilities-0.126.3 → dycw_utilities-0.126.4}/src/utilities/altair.py +0 -0
- {dycw_utilities-0.126.3 → dycw_utilities-0.126.4}/src/utilities/asyncio.py +0 -0
- {dycw_utilities-0.126.3 → dycw_utilities-0.126.4}/src/utilities/atomicwrites.py +0 -0
- {dycw_utilities-0.126.3 → dycw_utilities-0.126.4}/src/utilities/atools.py +0 -0
- {dycw_utilities-0.126.3 → dycw_utilities-0.126.4}/src/utilities/cachetools.py +0 -0
- {dycw_utilities-0.126.3 → dycw_utilities-0.126.4}/src/utilities/click.py +0 -0
- {dycw_utilities-0.126.3 → dycw_utilities-0.126.4}/src/utilities/concurrent.py +0 -0
- {dycw_utilities-0.126.3 → dycw_utilities-0.126.4}/src/utilities/contextlib.py +0 -0
- {dycw_utilities-0.126.3 → dycw_utilities-0.126.4}/src/utilities/contextvars.py +0 -0
- {dycw_utilities-0.126.3 → dycw_utilities-0.126.4}/src/utilities/cryptography.py +0 -0
- {dycw_utilities-0.126.3 → dycw_utilities-0.126.4}/src/utilities/cvxpy.py +0 -0
- {dycw_utilities-0.126.3 → dycw_utilities-0.126.4}/src/utilities/dataclasses.py +0 -0
- {dycw_utilities-0.126.3 → dycw_utilities-0.126.4}/src/utilities/datetime.py +0 -0
- {dycw_utilities-0.126.3 → dycw_utilities-0.126.4}/src/utilities/enum.py +0 -0
- {dycw_utilities-0.126.3 → dycw_utilities-0.126.4}/src/utilities/errors.py +0 -0
- {dycw_utilities-0.126.3 → dycw_utilities-0.126.4}/src/utilities/eventkit.py +0 -0
- {dycw_utilities-0.126.3 → dycw_utilities-0.126.4}/src/utilities/fastapi.py +0 -0
- {dycw_utilities-0.126.3 → dycw_utilities-0.126.4}/src/utilities/fpdf2.py +0 -0
- {dycw_utilities-0.126.3 → dycw_utilities-0.126.4}/src/utilities/functions.py +0 -0
- {dycw_utilities-0.126.3 → dycw_utilities-0.126.4}/src/utilities/functools.py +0 -0
- {dycw_utilities-0.126.3 → dycw_utilities-0.126.4}/src/utilities/getpass.py +0 -0
- {dycw_utilities-0.126.3 → dycw_utilities-0.126.4}/src/utilities/git.py +0 -0
- {dycw_utilities-0.126.3 → dycw_utilities-0.126.4}/src/utilities/hashlib.py +0 -0
- {dycw_utilities-0.126.3 → dycw_utilities-0.126.4}/src/utilities/http.py +0 -0
- {dycw_utilities-0.126.3 → dycw_utilities-0.126.4}/src/utilities/importlib.py +0 -0
- {dycw_utilities-0.126.3 → dycw_utilities-0.126.4}/src/utilities/ipython.py +0 -0
- {dycw_utilities-0.126.3 → dycw_utilities-0.126.4}/src/utilities/iterables.py +0 -0
- {dycw_utilities-0.126.3 → dycw_utilities-0.126.4}/src/utilities/jupyter.py +0 -0
- {dycw_utilities-0.126.3 → dycw_utilities-0.126.4}/src/utilities/lightweight_charts.py +0 -0
- {dycw_utilities-0.126.3 → dycw_utilities-0.126.4}/src/utilities/logging.py +0 -0
- {dycw_utilities-0.126.3 → dycw_utilities-0.126.4}/src/utilities/loguru.py +0 -0
- {dycw_utilities-0.126.3 → dycw_utilities-0.126.4}/src/utilities/luigi.py +0 -0
- {dycw_utilities-0.126.3 → dycw_utilities-0.126.4}/src/utilities/math.py +0 -0
- {dycw_utilities-0.126.3 → dycw_utilities-0.126.4}/src/utilities/memory_profiler.py +0 -0
- {dycw_utilities-0.126.3 → dycw_utilities-0.126.4}/src/utilities/modules.py +0 -0
- {dycw_utilities-0.126.3 → dycw_utilities-0.126.4}/src/utilities/more_itertools.py +0 -0
- {dycw_utilities-0.126.3 → dycw_utilities-0.126.4}/src/utilities/numpy.py +0 -0
- {dycw_utilities-0.126.3 → dycw_utilities-0.126.4}/src/utilities/operator.py +0 -0
- {dycw_utilities-0.126.3 → dycw_utilities-0.126.4}/src/utilities/optuna.py +0 -0
- {dycw_utilities-0.126.3 → dycw_utilities-0.126.4}/src/utilities/orjson.py +0 -0
- {dycw_utilities-0.126.3 → dycw_utilities-0.126.4}/src/utilities/os.py +0 -0
- {dycw_utilities-0.126.3 → dycw_utilities-0.126.4}/src/utilities/parse.py +0 -0
- {dycw_utilities-0.126.3 → dycw_utilities-0.126.4}/src/utilities/pathlib.py +0 -0
- {dycw_utilities-0.126.3 → dycw_utilities-0.126.4}/src/utilities/period.py +0 -0
- {dycw_utilities-0.126.3 → dycw_utilities-0.126.4}/src/utilities/pickle.py +0 -0
- {dycw_utilities-0.126.3 → dycw_utilities-0.126.4}/src/utilities/platform.py +0 -0
- {dycw_utilities-0.126.3 → dycw_utilities-0.126.4}/src/utilities/polars.py +0 -0
- {dycw_utilities-0.126.3 → dycw_utilities-0.126.4}/src/utilities/polars_ols.py +0 -0
- {dycw_utilities-0.126.3 → dycw_utilities-0.126.4}/src/utilities/pqdm.py +0 -0
- {dycw_utilities-0.126.3 → dycw_utilities-0.126.4}/src/utilities/psutil.py +0 -0
- {dycw_utilities-0.126.3 → dycw_utilities-0.126.4}/src/utilities/py.typed +0 -0
- {dycw_utilities-0.126.3 → dycw_utilities-0.126.4}/src/utilities/pydantic.py +0 -0
- {dycw_utilities-0.126.3 → dycw_utilities-0.126.4}/src/utilities/pyinstrument.py +0 -0
- {dycw_utilities-0.126.3 → dycw_utilities-0.126.4}/src/utilities/pyrsistent.py +0 -0
- {dycw_utilities-0.126.3 → dycw_utilities-0.126.4}/src/utilities/pytest.py +0 -0
- {dycw_utilities-0.126.3 → dycw_utilities-0.126.4}/src/utilities/pytest_regressions.py +0 -0
- {dycw_utilities-0.126.3 → dycw_utilities-0.126.4}/src/utilities/python_dotenv.py +0 -0
- {dycw_utilities-0.126.3 → dycw_utilities-0.126.4}/src/utilities/random.py +0 -0
- {dycw_utilities-0.126.3 → dycw_utilities-0.126.4}/src/utilities/re.py +0 -0
- {dycw_utilities-0.126.3 → dycw_utilities-0.126.4}/src/utilities/reprlib.py +0 -0
- {dycw_utilities-0.126.3 → dycw_utilities-0.126.4}/src/utilities/rich.py +0 -0
- {dycw_utilities-0.126.3 → dycw_utilities-0.126.4}/src/utilities/scipy.py +0 -0
- {dycw_utilities-0.126.3 → dycw_utilities-0.126.4}/src/utilities/sentinel.py +0 -0
- {dycw_utilities-0.126.3 → dycw_utilities-0.126.4}/src/utilities/shelve.py +0 -0
- {dycw_utilities-0.126.3 → dycw_utilities-0.126.4}/src/utilities/slack_sdk.py +0 -0
- {dycw_utilities-0.126.3 → dycw_utilities-0.126.4}/src/utilities/socket.py +0 -0
- {dycw_utilities-0.126.3 → dycw_utilities-0.126.4}/src/utilities/sqlalchemy.py +0 -0
- {dycw_utilities-0.126.3 → dycw_utilities-0.126.4}/src/utilities/sqlalchemy_polars.py +0 -0
- {dycw_utilities-0.126.3 → dycw_utilities-0.126.4}/src/utilities/statsmodels.py +0 -0
- {dycw_utilities-0.126.3 → dycw_utilities-0.126.4}/src/utilities/streamlit.py +0 -0
- {dycw_utilities-0.126.3 → dycw_utilities-0.126.4}/src/utilities/string.py +0 -0
- {dycw_utilities-0.126.3 → dycw_utilities-0.126.4}/src/utilities/sys.py +0 -0
- {dycw_utilities-0.126.3 → dycw_utilities-0.126.4}/src/utilities/tempfile.py +0 -0
- {dycw_utilities-0.126.3 → dycw_utilities-0.126.4}/src/utilities/tenacity.py +0 -0
- {dycw_utilities-0.126.3 → dycw_utilities-0.126.4}/src/utilities/text.py +0 -0
- {dycw_utilities-0.126.3 → dycw_utilities-0.126.4}/src/utilities/threading.py +0 -0
- {dycw_utilities-0.126.3 → dycw_utilities-0.126.4}/src/utilities/timer.py +0 -0
- {dycw_utilities-0.126.3 → dycw_utilities-0.126.4}/src/utilities/traceback.py +0 -0
- {dycw_utilities-0.126.3 → dycw_utilities-0.126.4}/src/utilities/types.py +0 -0
- {dycw_utilities-0.126.3 → dycw_utilities-0.126.4}/src/utilities/typing.py +0 -0
- {dycw_utilities-0.126.3 → dycw_utilities-0.126.4}/src/utilities/tzdata.py +0 -0
- {dycw_utilities-0.126.3 → dycw_utilities-0.126.4}/src/utilities/tzlocal.py +0 -0
- {dycw_utilities-0.126.3 → dycw_utilities-0.126.4}/src/utilities/uuid.py +0 -0
- {dycw_utilities-0.126.3 → dycw_utilities-0.126.4}/src/utilities/version.py +0 -0
- {dycw_utilities-0.126.3 → dycw_utilities-0.126.4}/src/utilities/warnings.py +0 -0
- {dycw_utilities-0.126.3 → dycw_utilities-0.126.4}/src/utilities/whenever.py +0 -0
- {dycw_utilities-0.126.3 → dycw_utilities-0.126.4}/src/utilities/zipfile.py +0 -0
- {dycw_utilities-0.126.3 → dycw_utilities-0.126.4}/src/utilities/zoneinfo.py +0 -0
@@ -1,12 +1,12 @@
|
|
1
1
|
Metadata-Version: 2.4
|
2
2
|
Name: dycw-utilities
|
3
|
-
Version: 0.126.
|
3
|
+
Version: 0.126.4
|
4
4
|
Author-email: Derek Wan <d.wan@icloud.com>
|
5
5
|
License-File: LICENSE
|
6
6
|
Requires-Python: >=3.12
|
7
7
|
Requires-Dist: typing-extensions<4.14,>=4.13.1
|
8
8
|
Provides-Extra: test
|
9
|
-
Requires-Dist: hypothesis<6.
|
9
|
+
Requires-Dist: hypothesis<6.133,>=6.132.0; extra == 'test'
|
10
10
|
Requires-Dist: pytest-asyncio<1.1,>=1.0.0; extra == 'test'
|
11
11
|
Requires-Dist: pytest-cov<6.2,>=6.1.1; extra == 'test'
|
12
12
|
Requires-Dist: pytest-instafail<0.6,>=0.5.0; extra == 'test'
|
@@ -78,7 +78,7 @@ Provides-Extra: zzz-test-hypothesis
|
|
78
78
|
Requires-Dist: aiosqlite<0.22,>=0.21.0; extra == 'zzz-test-hypothesis'
|
79
79
|
Requires-Dist: asyncpg<0.31,>=0.30.0; extra == 'zzz-test-hypothesis'
|
80
80
|
Requires-Dist: greenlet<3.3,>=3.2.0; extra == 'zzz-test-hypothesis'
|
81
|
-
Requires-Dist: hypothesis<6.
|
81
|
+
Requires-Dist: hypothesis<6.133,>=6.132.0; extra == 'zzz-test-hypothesis'
|
82
82
|
Requires-Dist: luigi<3.7,>=3.6.0; extra == 'zzz-test-hypothesis'
|
83
83
|
Requires-Dist: numpy<2.3,>=2.2.6; extra == 'zzz-test-hypothesis'
|
84
84
|
Requires-Dist: pathvalidate<3.3,>=3.2.3; extra == 'zzz-test-hypothesis'
|
@@ -25,7 +25,7 @@ dev = [
|
|
25
25
|
"fpdf2 >= 2.8.3, < 2.9",
|
26
26
|
"greenlet >= 3.2.0, < 3.3", # for sqlalchemy async
|
27
27
|
"httpx >= 0.28.1, < 0.29", # for fastapi
|
28
|
-
"hypothesis >= 6.
|
28
|
+
"hypothesis >= 6.132.0, < 6.133",
|
29
29
|
"img2pdf >= 0.6.0, < 0.7",
|
30
30
|
"lightweight-charts >= 2.1, < 2.2",
|
31
31
|
"loguru >= 0.7.3, < 0.8",
|
@@ -41,9 +41,10 @@ dev = [
|
|
41
41
|
"pathvalidate >= 3.2.3, < 3.3",
|
42
42
|
"polars-lts-cpu >= 1.30.0, < 1.31",
|
43
43
|
"polars-ols >= 0.3.5, < 0.4",
|
44
|
+
"pottery >= 3.0.1, < 3.1",
|
44
45
|
"pqdm >= 0.2.0, < 0.3",
|
45
|
-
"psycopg2-binary >= 2.9.10, < 2.10", # for sqlalchemy
|
46
46
|
"psutil >= 7.0.0, < 7.1",
|
47
|
+
"psycopg2-binary >= 2.9.10, < 2.10", # for sqlalchemy
|
47
48
|
"pydantic >= 2.11.4, < 2.12",
|
48
49
|
"pyinstrument >= 5.0.2, < 5.1",
|
49
50
|
"pyright[nodejs] >= 1.1.401, < 1.2",
|
@@ -94,11 +95,11 @@ dependencies = [
|
|
94
95
|
name = "dycw-utilities"
|
95
96
|
readme = "README.md"
|
96
97
|
requires-python = ">= 3.12"
|
97
|
-
version = "0.126.
|
98
|
+
version = "0.126.4"
|
98
99
|
|
99
100
|
[project.optional-dependencies]
|
100
101
|
test = [
|
101
|
-
"hypothesis >= 6.
|
102
|
+
"hypothesis >= 6.132.0, < 6.133",
|
102
103
|
"pytest >= 8.3.5, < 8.4",
|
103
104
|
"pytest-asyncio >= 1.0.0, < 1.1",
|
104
105
|
"pytest-cov >= 6.1.1, < 6.2",
|
@@ -175,7 +176,7 @@ zzz-test-hypothesis = [
|
|
175
176
|
"aiosqlite >= 0.21.0, < 0.22",
|
176
177
|
"asyncpg >= 0.30.0, < 0.31", # for sqlalchemy async
|
177
178
|
"greenlet >= 3.2.0, < 3.3", # for sqlalchemy async
|
178
|
-
"hypothesis >= 6.
|
179
|
+
"hypothesis >= 6.132.0, < 6.133",
|
179
180
|
"luigi >= 3.6.0, < 3.7",
|
180
181
|
"numpy >= 2.2.6, < 2.3",
|
181
182
|
"pathvalidate >= 3.2.3, < 3.3",
|
@@ -335,7 +336,7 @@ zzz-test-zoneinfo = [
|
|
335
336
|
# bump-my-version
|
336
337
|
[tool.bumpversion]
|
337
338
|
allow_dirty = true
|
338
|
-
current_version = "0.126.
|
339
|
+
current_version = "0.126.4"
|
339
340
|
|
340
341
|
[[tool.bumpversion.files]]
|
341
342
|
filename = "src/utilities/__init__.py"
|
@@ -33,7 +33,7 @@ from pytest import mark, raises
|
|
33
33
|
from sqlalchemy import Column, Integer, MetaData, Table, insert, select
|
34
34
|
from sqlalchemy.ext.asyncio import AsyncEngine
|
35
35
|
|
36
|
-
from tests.conftest import
|
36
|
+
from tests.conftest import SKIPIF_CI_AND_WINDOWS
|
37
37
|
from utilities.datetime import (
|
38
38
|
MAX_DATE_TWO_DIGIT_YEAR,
|
39
39
|
MIN_DATE_TWO_DIGIT_YEAR,
|
@@ -99,8 +99,8 @@ from utilities.hypothesis import (
|
|
99
99
|
triples,
|
100
100
|
uint32s,
|
101
101
|
uint64s,
|
102
|
+
unique_strs,
|
102
103
|
versions,
|
103
|
-
yield_test_redis,
|
104
104
|
zoned_datetimes,
|
105
105
|
)
|
106
106
|
from utilities.math import (
|
@@ -1171,6 +1171,13 @@ class TestUInt64s:
|
|
1171
1171
|
assert max(min_value, MIN_UINT64) <= x <= min(max_value, MAX_UINT64)
|
1172
1172
|
|
1173
1173
|
|
1174
|
+
class TestUniqueStrs:
|
1175
|
+
@given(data=data())
|
1176
|
+
def test_main(self, *, data: DataObject) -> None:
|
1177
|
+
first, second = data.draw(pairs(unique_strs()))
|
1178
|
+
assert first != second
|
1179
|
+
|
1180
|
+
|
1174
1181
|
class TestVersions:
|
1175
1182
|
@given(data=data(), suffix=booleans())
|
1176
1183
|
def test_main(self, *, data: DataObject, suffix: bool) -> None:
|
@@ -1182,18 +1189,6 @@ class TestVersions:
|
|
1182
1189
|
assert version.suffix is None
|
1183
1190
|
|
1184
1191
|
|
1185
|
-
@SKIPIF_CI_AND_NOT_LINUX
|
1186
|
-
class TestYieldTestRedis:
|
1187
|
-
@given(data=data(), value=int32s())
|
1188
|
-
@settings_with_reduced_examples()
|
1189
|
-
async def test_core(self, *, data: DataObject, value: int) -> None:
|
1190
|
-
async with yield_test_redis(data) as test:
|
1191
|
-
assert not await test.redis.exists(test.key)
|
1192
|
-
_ = await test.redis.set(test.key, value)
|
1193
|
-
result = int(await test.redis.get(test.key))
|
1194
|
-
assert result == value
|
1195
|
-
|
1196
|
-
|
1197
1192
|
class TestZonedDateTimes:
|
1198
1193
|
@given(
|
1199
1194
|
data=data(),
|
@@ -0,0 +1,32 @@
|
|
1
|
+
from __future__ import annotations
|
2
|
+
|
3
|
+
from asyncio import TaskGroup, sleep
|
4
|
+
|
5
|
+
from hypothesis import Phase, given
|
6
|
+
|
7
|
+
from tests.conftest import SKIPIF_CI_AND_NOT_LINUX
|
8
|
+
from tests.test_redis import yield_test_redis
|
9
|
+
from utilities.hypothesis import settings_with_reduced_examples, unique_strs
|
10
|
+
from utilities.pottery import yield_locked_resource
|
11
|
+
from utilities.timer import Timer
|
12
|
+
|
13
|
+
|
14
|
+
async def _coroutine(key: str) -> None:
|
15
|
+
async with yield_test_redis() as redis, yield_locked_resource(redis, key):
|
16
|
+
await sleep(0.1)
|
17
|
+
|
18
|
+
|
19
|
+
async def _asyncio_runner(num_tasks: int, key: str) -> None:
|
20
|
+
async with TaskGroup() as tg:
|
21
|
+
_ = [tg.create_task(_coroutine(key)) for _ in range(num_tasks)]
|
22
|
+
|
23
|
+
|
24
|
+
class TestYieldLockedResource:
|
25
|
+
@given(key=unique_strs())
|
26
|
+
@settings_with_reduced_examples(phases={Phase.generate})
|
27
|
+
@SKIPIF_CI_AND_NOT_LINUX
|
28
|
+
async def test_single_process(self, *, key: str) -> None:
|
29
|
+
with Timer() as timer:
|
30
|
+
await _asyncio_runner(3, key)
|
31
|
+
min_time = 0.3
|
32
|
+
assert min_time <= float(timer) <= 3 * min_time
|