dycw-utilities 0.112.11__tar.gz → 0.112.13__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.112.11 → dycw_utilities-0.112.13}/PKG-INFO +3 -3
- {dycw_utilities-0.112.11 → dycw_utilities-0.112.13}/pyproject.toml +5 -5
- {dycw_utilities-0.112.11 → dycw_utilities-0.112.13}/src/tests/test_redis.py +27 -0
- {dycw_utilities-0.112.11 → dycw_utilities-0.112.13}/src/utilities/__init__.py +1 -1
- {dycw_utilities-0.112.11 → dycw_utilities-0.112.13}/src/utilities/redis.py +9 -5
- {dycw_utilities-0.112.11 → dycw_utilities-0.112.13}/.gitignore +0 -0
- {dycw_utilities-0.112.11 → dycw_utilities-0.112.13}/LICENSE +0 -0
- {dycw_utilities-0.112.11 → dycw_utilities-0.112.13}/README.md +0 -0
- {dycw_utilities-0.112.11 → dycw_utilities-0.112.13}/src/tests/__init__.py +0 -0
- {dycw_utilities-0.112.11 → dycw_utilities-0.112.13}/src/tests/conftest.py +0 -0
- {dycw_utilities-0.112.11 → dycw_utilities-0.112.13}/src/tests/modules/__init__.py +0 -0
- {dycw_utilities-0.112.11 → dycw_utilities-0.112.13}/src/tests/modules/package_missing/__init__.py +0 -0
- {dycw_utilities-0.112.11 → dycw_utilities-0.112.13}/src/tests/modules/package_missing/module.py +0 -0
- {dycw_utilities-0.112.11 → dycw_utilities-0.112.13}/src/tests/modules/package_with/__init__.py +0 -0
- {dycw_utilities-0.112.11 → dycw_utilities-0.112.13}/src/tests/modules/package_with/outer_1.py +0 -0
- {dycw_utilities-0.112.11 → dycw_utilities-0.112.13}/src/tests/modules/package_with/outer_2.py +0 -0
- {dycw_utilities-0.112.11 → dycw_utilities-0.112.13}/src/tests/modules/package_with/subpackage/__init__.py +0 -0
- {dycw_utilities-0.112.11 → dycw_utilities-0.112.13}/src/tests/modules/package_with/subpackage/inner_1.py +0 -0
- {dycw_utilities-0.112.11 → dycw_utilities-0.112.13}/src/tests/modules/package_with/subpackage/inner_2.py +0 -0
- {dycw_utilities-0.112.11 → dycw_utilities-0.112.13}/src/tests/modules/package_with/subpackage/inner_3.py +0 -0
- {dycw_utilities-0.112.11 → dycw_utilities-0.112.13}/src/tests/modules/package_without/__init__.py +0 -0
- {dycw_utilities-0.112.11 → dycw_utilities-0.112.13}/src/tests/modules/package_without/module_1.py +0 -0
- {dycw_utilities-0.112.11 → dycw_utilities-0.112.13}/src/tests/modules/package_without/module_2.py +0 -0
- {dycw_utilities-0.112.11 → dycw_utilities-0.112.13}/src/tests/modules/standalone.py +0 -0
- {dycw_utilities-0.112.11 → dycw_utilities-0.112.13}/src/tests/modules/with_imports.py +0 -0
- {dycw_utilities-0.112.11 → dycw_utilities-0.112.13}/src/tests/regressions/test_pytest_regressions/TestMultipleRegressionFixtures__test_main__obj.json +0 -0
- {dycw_utilities-0.112.11 → dycw_utilities-0.112.13}/src/tests/regressions/test_pytest_regressions/TestMultipleRegressionFixtures__test_main__series.json +0 -0
- {dycw_utilities-0.112.11 → dycw_utilities-0.112.13}/src/tests/regressions/test_pytest_regressions/TestOrjsonRegressionFixture__test_dataclass_int.json +0 -0
- {dycw_utilities-0.112.11 → dycw_utilities-0.112.13}/src/tests/regressions/test_pytest_regressions/TestOrjsonRegressionFixture__test_dataclass_literal__false.json +0 -0
- {dycw_utilities-0.112.11 → dycw_utilities-0.112.13}/src/tests/regressions/test_pytest_regressions/TestOrjsonRegressionFixture__test_dataclass_literal__true.json +0 -0
- {dycw_utilities-0.112.11 → dycw_utilities-0.112.13}/src/tests/regressions/test_pytest_regressions/TestOrjsonRegressionFixture__test_dataclass_nested.json +0 -0
- {dycw_utilities-0.112.11 → dycw_utilities-0.112.13}/src/tests/regressions/test_pytest_regressions/TestPolarsRegressionFixture__test_dataframe.json +0 -0
- {dycw_utilities-0.112.11 → dycw_utilities-0.112.13}/src/tests/regressions/test_pytest_regressions/TestPolarsRegressionFixture__test_series.json +0 -0
- {dycw_utilities-0.112.11 → dycw_utilities-0.112.13}/src/tests/scripts/__init__.py +0 -0
- {dycw_utilities-0.112.11 → dycw_utilities-0.112.13}/src/tests/scripts/test_async_service/__init__.py +0 -0
- {dycw_utilities-0.112.11 → dycw_utilities-0.112.13}/src/tests/scripts/test_async_service/__main__.py +0 -0
- {dycw_utilities-0.112.11 → dycw_utilities-0.112.13}/src/tests/scripts/test_async_service/run.sh +0 -0
- {dycw_utilities-0.112.11 → dycw_utilities-0.112.13}/src/tests/scripts/test_queue_processor/__init__.py +0 -0
- {dycw_utilities-0.112.11 → dycw_utilities-0.112.13}/src/tests/scripts/test_queue_processor/__main__.py +0 -0
- {dycw_utilities-0.112.11 → dycw_utilities-0.112.13}/src/tests/scripts/test_queue_processor/run.sh +0 -0
- {dycw_utilities-0.112.11 → dycw_utilities-0.112.13}/src/tests/test_altair.py +0 -0
- {dycw_utilities-0.112.11 → dycw_utilities-0.112.13}/src/tests/test_astor.py +0 -0
- {dycw_utilities-0.112.11 → dycw_utilities-0.112.13}/src/tests/test_asyncio.py +0 -0
- {dycw_utilities-0.112.11 → dycw_utilities-0.112.13}/src/tests/test_atomicwrites.py +0 -0
- {dycw_utilities-0.112.11 → dycw_utilities-0.112.13}/src/tests/test_atools.py +0 -0
- {dycw_utilities-0.112.11 → dycw_utilities-0.112.13}/src/tests/test_cachetools.py +0 -0
- {dycw_utilities-0.112.11 → dycw_utilities-0.112.13}/src/tests/test_click.py +0 -0
- {dycw_utilities-0.112.11 → dycw_utilities-0.112.13}/src/tests/test_concurrent.py +0 -0
- {dycw_utilities-0.112.11 → dycw_utilities-0.112.13}/src/tests/test_contextlib.py +0 -0
- {dycw_utilities-0.112.11 → dycw_utilities-0.112.13}/src/tests/test_contextvars.py +0 -0
- {dycw_utilities-0.112.11 → dycw_utilities-0.112.13}/src/tests/test_cryptography.py +0 -0
- {dycw_utilities-0.112.11 → dycw_utilities-0.112.13}/src/tests/test_cvxpy.py +0 -0
- {dycw_utilities-0.112.11 → dycw_utilities-0.112.13}/src/tests/test_dataclasses.py +0 -0
- {dycw_utilities-0.112.11 → dycw_utilities-0.112.13}/src/tests/test_datetime.py +0 -0
- {dycw_utilities-0.112.11 → dycw_utilities-0.112.13}/src/tests/test_enum.py +0 -0
- {dycw_utilities-0.112.11 → dycw_utilities-0.112.13}/src/tests/test_errors.py +0 -0
- {dycw_utilities-0.112.11 → dycw_utilities-0.112.13}/src/tests/test_eventkit.py +0 -0
- {dycw_utilities-0.112.11 → dycw_utilities-0.112.13}/src/tests/test_fastapi.py +0 -0
- {dycw_utilities-0.112.11 → dycw_utilities-0.112.13}/src/tests/test_fpdf2.py +0 -0
- {dycw_utilities-0.112.11 → dycw_utilities-0.112.13}/src/tests/test_functions.py +0 -0
- {dycw_utilities-0.112.11 → dycw_utilities-0.112.13}/src/tests/test_functools.py +0 -0
- {dycw_utilities-0.112.11 → dycw_utilities-0.112.13}/src/tests/test_getpass.py +0 -0
- {dycw_utilities-0.112.11 → dycw_utilities-0.112.13}/src/tests/test_git.py +0 -0
- {dycw_utilities-0.112.11 → dycw_utilities-0.112.13}/src/tests/test_hashlib.py +0 -0
- {dycw_utilities-0.112.11 → dycw_utilities-0.112.13}/src/tests/test_http.py +0 -0
- {dycw_utilities-0.112.11 → dycw_utilities-0.112.13}/src/tests/test_hypothesis.py +0 -0
- {dycw_utilities-0.112.11 → dycw_utilities-0.112.13}/src/tests/test_ipython.py +0 -0
- {dycw_utilities-0.112.11 → dycw_utilities-0.112.13}/src/tests/test_iterables.py +0 -0
- {dycw_utilities-0.112.11 → dycw_utilities-0.112.13}/src/tests/test_jupyter.py +0 -0
- {dycw_utilities-0.112.11 → dycw_utilities-0.112.13}/src/tests/test_lightweight_charts.py +0 -0
- {dycw_utilities-0.112.11 → dycw_utilities-0.112.13}/src/tests/test_logging.py +0 -0
- {dycw_utilities-0.112.11 → dycw_utilities-0.112.13}/src/tests/test_loguru.py +0 -0
- {dycw_utilities-0.112.11 → dycw_utilities-0.112.13}/src/tests/test_luigi.py +0 -0
- {dycw_utilities-0.112.11 → dycw_utilities-0.112.13}/src/tests/test_math.py +0 -0
- {dycw_utilities-0.112.11 → dycw_utilities-0.112.13}/src/tests/test_memory_profiler.py +0 -0
- {dycw_utilities-0.112.11 → dycw_utilities-0.112.13}/src/tests/test_modules.py +0 -0
- {dycw_utilities-0.112.11 → dycw_utilities-0.112.13}/src/tests/test_more_itertools.py +0 -0
- {dycw_utilities-0.112.11 → dycw_utilities-0.112.13}/src/tests/test_numpy.py +0 -0
- {dycw_utilities-0.112.11 → dycw_utilities-0.112.13}/src/tests/test_operator.py +0 -0
- {dycw_utilities-0.112.11 → dycw_utilities-0.112.13}/src/tests/test_optuna.py +0 -0
- {dycw_utilities-0.112.11 → dycw_utilities-0.112.13}/src/tests/test_orjson.py +0 -0
- {dycw_utilities-0.112.11 → dycw_utilities-0.112.13}/src/tests/test_os.py +0 -0
- {dycw_utilities-0.112.11 → dycw_utilities-0.112.13}/src/tests/test_parse.py +0 -0
- {dycw_utilities-0.112.11 → dycw_utilities-0.112.13}/src/tests/test_pathlib.py +0 -0
- {dycw_utilities-0.112.11 → dycw_utilities-0.112.13}/src/tests/test_period.py +0 -0
- {dycw_utilities-0.112.11 → dycw_utilities-0.112.13}/src/tests/test_pickle.py +0 -0
- {dycw_utilities-0.112.11 → dycw_utilities-0.112.13}/src/tests/test_platform.py +0 -0
- {dycw_utilities-0.112.11 → dycw_utilities-0.112.13}/src/tests/test_polars.py +0 -0
- {dycw_utilities-0.112.11 → dycw_utilities-0.112.13}/src/tests/test_polars_ols.py +0 -0
- {dycw_utilities-0.112.11 → dycw_utilities-0.112.13}/src/tests/test_pqdm.py +0 -0
- {dycw_utilities-0.112.11 → dycw_utilities-0.112.13}/src/tests/test_pydantic.py +0 -0
- {dycw_utilities-0.112.11 → dycw_utilities-0.112.13}/src/tests/test_pyinstrument.py +0 -0
- {dycw_utilities-0.112.11 → dycw_utilities-0.112.13}/src/tests/test_pyrsistent.py +0 -0
- {dycw_utilities-0.112.11 → dycw_utilities-0.112.13}/src/tests/test_pytest.py +0 -0
- {dycw_utilities-0.112.11 → dycw_utilities-0.112.13}/src/tests/test_pytest_regressions.py +0 -0
- {dycw_utilities-0.112.11 → dycw_utilities-0.112.13}/src/tests/test_python_dotenv.py +0 -0
- {dycw_utilities-0.112.11 → dycw_utilities-0.112.13}/src/tests/test_random.py +0 -0
- {dycw_utilities-0.112.11 → dycw_utilities-0.112.13}/src/tests/test_re.py +0 -0
- {dycw_utilities-0.112.11 → dycw_utilities-0.112.13}/src/tests/test_reprlib.py +0 -0
- {dycw_utilities-0.112.11 → dycw_utilities-0.112.13}/src/tests/test_rich.py +0 -0
- {dycw_utilities-0.112.11 → dycw_utilities-0.112.13}/src/tests/test_scipy.py +0 -0
- {dycw_utilities-0.112.11 → dycw_utilities-0.112.13}/src/tests/test_sentinel.py +0 -0
- {dycw_utilities-0.112.11 → dycw_utilities-0.112.13}/src/tests/test_shelve.py +0 -0
- {dycw_utilities-0.112.11 → dycw_utilities-0.112.13}/src/tests/test_slack_sdk.py +0 -0
- {dycw_utilities-0.112.11 → dycw_utilities-0.112.13}/src/tests/test_socket.py +0 -0
- {dycw_utilities-0.112.11 → dycw_utilities-0.112.13}/src/tests/test_sqlalchemy.py +0 -0
- {dycw_utilities-0.112.11 → dycw_utilities-0.112.13}/src/tests/test_sqlalchemy_polars.py +0 -0
- {dycw_utilities-0.112.11 → dycw_utilities-0.112.13}/src/tests/test_statsmodel.py +0 -0
- {dycw_utilities-0.112.11 → dycw_utilities-0.112.13}/src/tests/test_streamlit.py +0 -0
- {dycw_utilities-0.112.11 → dycw_utilities-0.112.13}/src/tests/test_sys.py +0 -0
- {dycw_utilities-0.112.11 → dycw_utilities-0.112.13}/src/tests/test_tempfile.py +0 -0
- {dycw_utilities-0.112.11 → dycw_utilities-0.112.13}/src/tests/test_tenacity.py +0 -0
- {dycw_utilities-0.112.11 → dycw_utilities-0.112.13}/src/tests/test_text.py +0 -0
- {dycw_utilities-0.112.11 → dycw_utilities-0.112.13}/src/tests/test_threading.py +0 -0
- {dycw_utilities-0.112.11 → dycw_utilities-0.112.13}/src/tests/test_timer.py +0 -0
- {dycw_utilities-0.112.11 → dycw_utilities-0.112.13}/src/tests/test_traceback.py +0 -0
- {dycw_utilities-0.112.11 → dycw_utilities-0.112.13}/src/tests/test_traceback_funcs/__init__.py +0 -0
- {dycw_utilities-0.112.11 → dycw_utilities-0.112.13}/src/tests/test_traceback_funcs/chain.py +0 -0
- {dycw_utilities-0.112.11 → dycw_utilities-0.112.13}/src/tests/test_traceback_funcs/decorated_async.py +0 -0
- {dycw_utilities-0.112.11 → dycw_utilities-0.112.13}/src/tests/test_traceback_funcs/decorated_sync.py +0 -0
- {dycw_utilities-0.112.11 → dycw_utilities-0.112.13}/src/tests/test_traceback_funcs/error_bind.py +0 -0
- {dycw_utilities-0.112.11 → dycw_utilities-0.112.13}/src/tests/test_traceback_funcs/many.py +0 -0
- {dycw_utilities-0.112.11 → dycw_utilities-0.112.13}/src/tests/test_traceback_funcs/one.py +0 -0
- {dycw_utilities-0.112.11 → dycw_utilities-0.112.13}/src/tests/test_traceback_funcs/recursive.py +0 -0
- {dycw_utilities-0.112.11 → dycw_utilities-0.112.13}/src/tests/test_traceback_funcs/task_group_one.py +0 -0
- {dycw_utilities-0.112.11 → dycw_utilities-0.112.13}/src/tests/test_traceback_funcs/task_group_two.py +0 -0
- {dycw_utilities-0.112.11 → dycw_utilities-0.112.13}/src/tests/test_traceback_funcs/two.py +0 -0
- {dycw_utilities-0.112.11 → dycw_utilities-0.112.13}/src/tests/test_traceback_funcs/untraced.py +0 -0
- {dycw_utilities-0.112.11 → dycw_utilities-0.112.13}/src/tests/test_types.py +0 -0
- {dycw_utilities-0.112.11 → dycw_utilities-0.112.13}/src/tests/test_typing.py +0 -0
- {dycw_utilities-0.112.11 → dycw_utilities-0.112.13}/src/tests/test_typing_funcs/__init__.py +0 -0
- {dycw_utilities-0.112.11 → dycw_utilities-0.112.13}/src/tests/test_typing_funcs/no_future.py +0 -0
- {dycw_utilities-0.112.11 → dycw_utilities-0.112.13}/src/tests/test_typing_funcs/with_future.py +0 -0
- {dycw_utilities-0.112.11 → dycw_utilities-0.112.13}/src/tests/test_tzdata.py +0 -0
- {dycw_utilities-0.112.11 → dycw_utilities-0.112.13}/src/tests/test_tzlocal.py +0 -0
- {dycw_utilities-0.112.11 → dycw_utilities-0.112.13}/src/tests/test_uuid.py +0 -0
- {dycw_utilities-0.112.11 → dycw_utilities-0.112.13}/src/tests/test_version.py +0 -0
- {dycw_utilities-0.112.11 → dycw_utilities-0.112.13}/src/tests/test_warnings.py +0 -0
- {dycw_utilities-0.112.11 → dycw_utilities-0.112.13}/src/tests/test_whenever.py +0 -0
- {dycw_utilities-0.112.11 → dycw_utilities-0.112.13}/src/tests/test_zipfile.py +0 -0
- {dycw_utilities-0.112.11 → dycw_utilities-0.112.13}/src/tests/test_zoneinfo.py +0 -0
- {dycw_utilities-0.112.11 → dycw_utilities-0.112.13}/src/utilities/altair.py +0 -0
- {dycw_utilities-0.112.11 → dycw_utilities-0.112.13}/src/utilities/astor.py +0 -0
- {dycw_utilities-0.112.11 → dycw_utilities-0.112.13}/src/utilities/asyncio.py +0 -0
- {dycw_utilities-0.112.11 → dycw_utilities-0.112.13}/src/utilities/atomicwrites.py +0 -0
- {dycw_utilities-0.112.11 → dycw_utilities-0.112.13}/src/utilities/atools.py +0 -0
- {dycw_utilities-0.112.11 → dycw_utilities-0.112.13}/src/utilities/cachetools.py +0 -0
- {dycw_utilities-0.112.11 → dycw_utilities-0.112.13}/src/utilities/click.py +0 -0
- {dycw_utilities-0.112.11 → dycw_utilities-0.112.13}/src/utilities/concurrent.py +0 -0
- {dycw_utilities-0.112.11 → dycw_utilities-0.112.13}/src/utilities/contextlib.py +0 -0
- {dycw_utilities-0.112.11 → dycw_utilities-0.112.13}/src/utilities/contextvars.py +0 -0
- {dycw_utilities-0.112.11 → dycw_utilities-0.112.13}/src/utilities/cryptography.py +0 -0
- {dycw_utilities-0.112.11 → dycw_utilities-0.112.13}/src/utilities/cvxpy.py +0 -0
- {dycw_utilities-0.112.11 → dycw_utilities-0.112.13}/src/utilities/dataclasses.py +0 -0
- {dycw_utilities-0.112.11 → dycw_utilities-0.112.13}/src/utilities/datetime.py +0 -0
- {dycw_utilities-0.112.11 → dycw_utilities-0.112.13}/src/utilities/enum.py +0 -0
- {dycw_utilities-0.112.11 → dycw_utilities-0.112.13}/src/utilities/errors.py +0 -0
- {dycw_utilities-0.112.11 → dycw_utilities-0.112.13}/src/utilities/eventkit.py +0 -0
- {dycw_utilities-0.112.11 → dycw_utilities-0.112.13}/src/utilities/fastapi.py +0 -0
- {dycw_utilities-0.112.11 → dycw_utilities-0.112.13}/src/utilities/fpdf2.py +0 -0
- {dycw_utilities-0.112.11 → dycw_utilities-0.112.13}/src/utilities/functions.py +0 -0
- {dycw_utilities-0.112.11 → dycw_utilities-0.112.13}/src/utilities/functools.py +0 -0
- {dycw_utilities-0.112.11 → dycw_utilities-0.112.13}/src/utilities/getpass.py +0 -0
- {dycw_utilities-0.112.11 → dycw_utilities-0.112.13}/src/utilities/git.py +0 -0
- {dycw_utilities-0.112.11 → dycw_utilities-0.112.13}/src/utilities/hashlib.py +0 -0
- {dycw_utilities-0.112.11 → dycw_utilities-0.112.13}/src/utilities/http.py +0 -0
- {dycw_utilities-0.112.11 → dycw_utilities-0.112.13}/src/utilities/hypothesis.py +0 -0
- {dycw_utilities-0.112.11 → dycw_utilities-0.112.13}/src/utilities/ipython.py +0 -0
- {dycw_utilities-0.112.11 → dycw_utilities-0.112.13}/src/utilities/iterables.py +0 -0
- {dycw_utilities-0.112.11 → dycw_utilities-0.112.13}/src/utilities/jupyter.py +0 -0
- {dycw_utilities-0.112.11 → dycw_utilities-0.112.13}/src/utilities/lightweight_charts.py +0 -0
- {dycw_utilities-0.112.11 → dycw_utilities-0.112.13}/src/utilities/logging.py +0 -0
- {dycw_utilities-0.112.11 → dycw_utilities-0.112.13}/src/utilities/loguru.py +0 -0
- {dycw_utilities-0.112.11 → dycw_utilities-0.112.13}/src/utilities/luigi.py +0 -0
- {dycw_utilities-0.112.11 → dycw_utilities-0.112.13}/src/utilities/math.py +0 -0
- {dycw_utilities-0.112.11 → dycw_utilities-0.112.13}/src/utilities/memory_profiler.py +0 -0
- {dycw_utilities-0.112.11 → dycw_utilities-0.112.13}/src/utilities/modules.py +0 -0
- {dycw_utilities-0.112.11 → dycw_utilities-0.112.13}/src/utilities/more_itertools.py +0 -0
- {dycw_utilities-0.112.11 → dycw_utilities-0.112.13}/src/utilities/numpy.py +0 -0
- {dycw_utilities-0.112.11 → dycw_utilities-0.112.13}/src/utilities/operator.py +0 -0
- {dycw_utilities-0.112.11 → dycw_utilities-0.112.13}/src/utilities/optuna.py +0 -0
- {dycw_utilities-0.112.11 → dycw_utilities-0.112.13}/src/utilities/orjson.py +0 -0
- {dycw_utilities-0.112.11 → dycw_utilities-0.112.13}/src/utilities/os.py +0 -0
- {dycw_utilities-0.112.11 → dycw_utilities-0.112.13}/src/utilities/parse.py +0 -0
- {dycw_utilities-0.112.11 → dycw_utilities-0.112.13}/src/utilities/pathlib.py +0 -0
- {dycw_utilities-0.112.11 → dycw_utilities-0.112.13}/src/utilities/period.py +0 -0
- {dycw_utilities-0.112.11 → dycw_utilities-0.112.13}/src/utilities/pickle.py +0 -0
- {dycw_utilities-0.112.11 → dycw_utilities-0.112.13}/src/utilities/platform.py +0 -0
- {dycw_utilities-0.112.11 → dycw_utilities-0.112.13}/src/utilities/polars.py +0 -0
- {dycw_utilities-0.112.11 → dycw_utilities-0.112.13}/src/utilities/polars_ols.py +0 -0
- {dycw_utilities-0.112.11 → dycw_utilities-0.112.13}/src/utilities/pqdm.py +0 -0
- {dycw_utilities-0.112.11 → dycw_utilities-0.112.13}/src/utilities/py.typed +0 -0
- {dycw_utilities-0.112.11 → dycw_utilities-0.112.13}/src/utilities/pydantic.py +0 -0
- {dycw_utilities-0.112.11 → dycw_utilities-0.112.13}/src/utilities/pyinstrument.py +0 -0
- {dycw_utilities-0.112.11 → dycw_utilities-0.112.13}/src/utilities/pyrsistent.py +0 -0
- {dycw_utilities-0.112.11 → dycw_utilities-0.112.13}/src/utilities/pytest.py +0 -0
- {dycw_utilities-0.112.11 → dycw_utilities-0.112.13}/src/utilities/pytest_regressions.py +0 -0
- {dycw_utilities-0.112.11 → dycw_utilities-0.112.13}/src/utilities/python_dotenv.py +0 -0
- {dycw_utilities-0.112.11 → dycw_utilities-0.112.13}/src/utilities/random.py +0 -0
- {dycw_utilities-0.112.11 → dycw_utilities-0.112.13}/src/utilities/re.py +0 -0
- {dycw_utilities-0.112.11 → dycw_utilities-0.112.13}/src/utilities/reprlib.py +0 -0
- {dycw_utilities-0.112.11 → dycw_utilities-0.112.13}/src/utilities/rich.py +0 -0
- {dycw_utilities-0.112.11 → dycw_utilities-0.112.13}/src/utilities/scipy.py +0 -0
- {dycw_utilities-0.112.11 → dycw_utilities-0.112.13}/src/utilities/sentinel.py +0 -0
- {dycw_utilities-0.112.11 → dycw_utilities-0.112.13}/src/utilities/shelve.py +0 -0
- {dycw_utilities-0.112.11 → dycw_utilities-0.112.13}/src/utilities/slack_sdk.py +0 -0
- {dycw_utilities-0.112.11 → dycw_utilities-0.112.13}/src/utilities/socket.py +0 -0
- {dycw_utilities-0.112.11 → dycw_utilities-0.112.13}/src/utilities/sqlalchemy.py +0 -0
- {dycw_utilities-0.112.11 → dycw_utilities-0.112.13}/src/utilities/sqlalchemy_polars.py +0 -0
- {dycw_utilities-0.112.11 → dycw_utilities-0.112.13}/src/utilities/statsmodels.py +0 -0
- {dycw_utilities-0.112.11 → dycw_utilities-0.112.13}/src/utilities/streamlit.py +0 -0
- {dycw_utilities-0.112.11 → dycw_utilities-0.112.13}/src/utilities/sys.py +0 -0
- {dycw_utilities-0.112.11 → dycw_utilities-0.112.13}/src/utilities/tempfile.py +0 -0
- {dycw_utilities-0.112.11 → dycw_utilities-0.112.13}/src/utilities/tenacity.py +0 -0
- {dycw_utilities-0.112.11 → dycw_utilities-0.112.13}/src/utilities/text.py +0 -0
- {dycw_utilities-0.112.11 → dycw_utilities-0.112.13}/src/utilities/threading.py +0 -0
- {dycw_utilities-0.112.11 → dycw_utilities-0.112.13}/src/utilities/timer.py +0 -0
- {dycw_utilities-0.112.11 → dycw_utilities-0.112.13}/src/utilities/traceback.py +0 -0
- {dycw_utilities-0.112.11 → dycw_utilities-0.112.13}/src/utilities/types.py +0 -0
- {dycw_utilities-0.112.11 → dycw_utilities-0.112.13}/src/utilities/typing.py +0 -0
- {dycw_utilities-0.112.11 → dycw_utilities-0.112.13}/src/utilities/tzdata.py +0 -0
- {dycw_utilities-0.112.11 → dycw_utilities-0.112.13}/src/utilities/tzlocal.py +0 -0
- {dycw_utilities-0.112.11 → dycw_utilities-0.112.13}/src/utilities/uuid.py +0 -0
- {dycw_utilities-0.112.11 → dycw_utilities-0.112.13}/src/utilities/version.py +0 -0
- {dycw_utilities-0.112.11 → dycw_utilities-0.112.13}/src/utilities/warnings.py +0 -0
- {dycw_utilities-0.112.11 → dycw_utilities-0.112.13}/src/utilities/whenever.py +0 -0
- {dycw_utilities-0.112.11 → dycw_utilities-0.112.13}/src/utilities/zipfile.py +0 -0
- {dycw_utilities-0.112.11 → dycw_utilities-0.112.13}/src/utilities/zoneinfo.py +0 -0
@@ -1,6 +1,6 @@
|
|
1
1
|
Metadata-Version: 2.4
|
2
2
|
Name: dycw-utilities
|
3
|
-
Version: 0.112.
|
3
|
+
Version: 0.112.13
|
4
4
|
Author-email: Derek Wan <d.wan@icloud.com>
|
5
5
|
License-File: LICENSE
|
6
6
|
Requires-Python: >=3.12
|
@@ -84,7 +84,7 @@ Requires-Dist: hypothesis<6.132,>=6.131.9; extra == 'zzz-test-hypothesis'
|
|
84
84
|
Requires-Dist: luigi<3.7,>=3.6.0; extra == 'zzz-test-hypothesis'
|
85
85
|
Requires-Dist: numpy<2.3,>=2.2.5; extra == 'zzz-test-hypothesis'
|
86
86
|
Requires-Dist: pathvalidate<3.3,>=3.2.3; extra == 'zzz-test-hypothesis'
|
87
|
-
Requires-Dist: redis<
|
87
|
+
Requires-Dist: redis<6.1,>=6.0.0; extra == 'zzz-test-hypothesis'
|
88
88
|
Requires-Dist: sqlalchemy<2.1,>=2.0.40; extra == 'zzz-test-hypothesis'
|
89
89
|
Requires-Dist: tenacity<9.0,>=8.5.0; extra == 'zzz-test-hypothesis'
|
90
90
|
Requires-Dist: tzlocal<5.4,>=5.3.1; extra == 'zzz-test-hypothesis'
|
@@ -165,7 +165,7 @@ Provides-Extra: zzz-test-re
|
|
165
165
|
Provides-Extra: zzz-test-redis
|
166
166
|
Requires-Dist: orjson<3.11,>=3.10.15; extra == 'zzz-test-redis'
|
167
167
|
Requires-Dist: polars-lts-cpu<1.30,>=1.29.0; extra == 'zzz-test-redis'
|
168
|
-
Requires-Dist: redis<
|
168
|
+
Requires-Dist: redis<6.1,>=6.0.0; extra == 'zzz-test-redis'
|
169
169
|
Requires-Dist: rich<14.1,>=14.0.0; extra == 'zzz-test-redis'
|
170
170
|
Requires-Dist: tenacity<9.0,>=8.5.0; extra == 'zzz-test-redis'
|
171
171
|
Requires-Dist: tzlocal<5.4,>=5.3.1; extra == 'zzz-test-redis'
|
@@ -50,7 +50,7 @@ dev = [
|
|
50
50
|
"pytest >= 8.3.5, < 8.4",
|
51
51
|
"pytest-regressions >= 2.7.0, < 2.8",
|
52
52
|
"python-dotenv >= 1.1.0, < 1.2",
|
53
|
-
"redis >=
|
53
|
+
"redis >= 6.0.0, < 6.1",
|
54
54
|
"rich >= 14.0.0, < 14.1",
|
55
55
|
"scikit-learn >= 1.6.1, < 1.7",
|
56
56
|
"scipy >= 1.15.2, < 1.16",
|
@@ -93,7 +93,7 @@ dependencies = [
|
|
93
93
|
name = "dycw-utilities"
|
94
94
|
readme = "README.md"
|
95
95
|
requires-python = ">= 3.12"
|
96
|
-
version = "0.112.
|
96
|
+
version = "0.112.13"
|
97
97
|
|
98
98
|
[project.optional-dependencies]
|
99
99
|
test = [
|
@@ -179,7 +179,7 @@ zzz-test-hypothesis = [
|
|
179
179
|
"luigi >= 3.6.0, < 3.7",
|
180
180
|
"numpy >= 2.2.5, < 2.3",
|
181
181
|
"pathvalidate >= 3.2.3, < 3.3",
|
182
|
-
"redis >=
|
182
|
+
"redis >= 6.0.0, < 6.1",
|
183
183
|
"sqlalchemy >= 2.0.40, < 2.1",
|
184
184
|
"tenacity >= 8.5.0, < 9.0", # limited by luigi
|
185
185
|
"tzlocal >= 5.3.1, < 5.4",
|
@@ -261,7 +261,7 @@ zzz-test-re = []
|
|
261
261
|
zzz-test-redis = [
|
262
262
|
"orjson >= 3.10.15, < 3.11",
|
263
263
|
"polars-lts-cpu >= 1.29.0, < 1.30",
|
264
|
-
"redis >=
|
264
|
+
"redis >= 6.0.0, < 6.1",
|
265
265
|
"rich >= 14.0.0, < 14.1",
|
266
266
|
"tenacity >= 8.5.0, < 9.0", # limited by luigi
|
267
267
|
"tzlocal >= 5.3.1, < 5.4",
|
@@ -336,7 +336,7 @@ zzz-test-zoneinfo = [
|
|
336
336
|
# bump-my-version
|
337
337
|
[tool.bumpversion]
|
338
338
|
allow_dirty = true
|
339
|
-
current_version = "0.112.
|
339
|
+
current_version = "0.112.13"
|
340
340
|
|
341
341
|
[[tool.bumpversion.files]]
|
342
342
|
filename = "src/utilities/__init__.py"
|
@@ -20,6 +20,7 @@ from tests.test_operator import make_objects
|
|
20
20
|
from utilities.functions import get_class_name
|
21
21
|
from utilities.hypothesis import (
|
22
22
|
int64s,
|
23
|
+
pairs,
|
23
24
|
settings_with_reduced_examples,
|
24
25
|
text_ascii,
|
25
26
|
yield_test_redis,
|
@@ -323,6 +324,20 @@ class TestRedisHashMapKey:
|
|
323
324
|
with raises(KeyError):
|
324
325
|
_ = await hm_key.get(test.redis, key)
|
325
326
|
|
327
|
+
@given(data=data(), key=pairs(int64s()), value=booleans())
|
328
|
+
@settings_with_reduced_examples(phases={Phase.generate})
|
329
|
+
@SKIPIF_CI_AND_NOT_LINUX
|
330
|
+
async def test_delete_compound(
|
331
|
+
self, *, data: DataObject, key: tuple[int, int], value: bool
|
332
|
+
) -> None:
|
333
|
+
async with yield_test_redis(data) as test:
|
334
|
+
hm_key = redis_hash_map_key(test.key, tuple[int, int], bool)
|
335
|
+
_ = await hm_key.set(test.redis, key, value)
|
336
|
+
assert await hm_key.get(test.redis, key) is value
|
337
|
+
_ = await hm_key.delete(test.redis, key)
|
338
|
+
with raises(KeyError):
|
339
|
+
_ = await hm_key.get(test.redis, key)
|
340
|
+
|
326
341
|
@given(data=data(), key=int64s(), value=booleans())
|
327
342
|
@settings_with_reduced_examples(phases={Phase.generate})
|
328
343
|
@SKIPIF_CI_AND_NOT_LINUX
|
@@ -333,6 +348,18 @@ class TestRedisHashMapKey:
|
|
333
348
|
_ = await hm_key.set(test.redis, key, value)
|
334
349
|
assert await hm_key.exists(test.redis, key)
|
335
350
|
|
351
|
+
@given(data=data(), key=pairs(int64s()), value=booleans())
|
352
|
+
@settings_with_reduced_examples(phases={Phase.generate})
|
353
|
+
@SKIPIF_CI_AND_NOT_LINUX
|
354
|
+
async def test_exists_compound(
|
355
|
+
self, *, data: DataObject, key: tuple[int, int], value: bool
|
356
|
+
) -> None:
|
357
|
+
async with yield_test_redis(data) as test:
|
358
|
+
hm_key = redis_hash_map_key(test.key, tuple[int, int], bool)
|
359
|
+
assert not (await hm_key.exists(test.redis, key))
|
360
|
+
_ = await hm_key.set(test.redis, key, value)
|
361
|
+
assert await hm_key.exists(test.redis, key)
|
362
|
+
|
336
363
|
@given(data=data(), mapping=dictionaries(int64s(), booleans()))
|
337
364
|
@settings_with_reduced_examples(phases={Phase.generate})
|
338
365
|
@SKIPIF_CI_AND_NOT_LINUX
|
@@ -88,20 +88,24 @@ class RedisHashMapKey(Generic[_K, _V]):
|
|
88
88
|
|
89
89
|
async def delete(self, redis: Redis, key: _K, /) -> int:
|
90
90
|
"""Delete a key from a hashmap in `redis`."""
|
91
|
+
ser = _serialize( # skipif-ci-and-not-linux
|
92
|
+
key, serializer=self.key_serializer
|
93
|
+
).decode()
|
91
94
|
async with timeout_dur( # skipif-ci-and-not-linux
|
92
95
|
duration=self.timeout, error=self.error
|
93
96
|
):
|
94
|
-
return await cast("Awaitable[int]", redis.hdel(self.name,
|
97
|
+
return await cast("Awaitable[int]", redis.hdel(self.name, ser))
|
95
98
|
raise ImpossibleCaseError(case=[f"{redis=}", f"{key=}"]) # pragma: no cover
|
96
99
|
|
97
100
|
async def exists(self, redis: Redis, key: _K, /) -> bool:
|
98
101
|
"""Check if the key exists in a hashmap in `redis`."""
|
102
|
+
ser = _serialize( # skipif-ci-and-not-linux
|
103
|
+
key, serializer=self.key_serializer
|
104
|
+
).decode()
|
99
105
|
async with timeout_dur( # skipif-ci-and-not-linux
|
100
106
|
duration=self.timeout, error=self.error
|
101
107
|
):
|
102
|
-
return await cast(
|
103
|
-
"Awaitable[bool]", redis.hexists(self.name, cast("str", key))
|
104
|
-
)
|
108
|
+
return await cast("Awaitable[bool]", redis.hexists(self.name, ser))
|
105
109
|
|
106
110
|
async def get(self, redis: Redis, key: _K, /) -> _V:
|
107
111
|
"""Get a value from a hashmap in `redis`."""
|
@@ -413,7 +417,7 @@ class RedisKey(Generic[_T]):
|
|
413
417
|
case _ as never:
|
414
418
|
assert_never(never)
|
415
419
|
|
416
|
-
async def get(self, redis: Redis, /) -> _T
|
420
|
+
async def get(self, redis: Redis, /) -> _T:
|
417
421
|
"""Get a value from `redis`."""
|
418
422
|
async with timeout_dur( # skipif-ci-and-not-linux
|
419
423
|
duration=self.timeout, error=self.error
|
File without changes
|
File without changes
|
File without changes
|
File without changes
|
File without changes
|
File without changes
|
{dycw_utilities-0.112.11 → dycw_utilities-0.112.13}/src/tests/modules/package_missing/__init__.py
RENAMED
File without changes
|
{dycw_utilities-0.112.11 → dycw_utilities-0.112.13}/src/tests/modules/package_missing/module.py
RENAMED
File without changes
|
{dycw_utilities-0.112.11 → dycw_utilities-0.112.13}/src/tests/modules/package_with/__init__.py
RENAMED
File without changes
|
{dycw_utilities-0.112.11 → dycw_utilities-0.112.13}/src/tests/modules/package_with/outer_1.py
RENAMED
File without changes
|
{dycw_utilities-0.112.11 → dycw_utilities-0.112.13}/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.112.11 → dycw_utilities-0.112.13}/src/tests/modules/package_without/__init__.py
RENAMED
File without changes
|
{dycw_utilities-0.112.11 → dycw_utilities-0.112.13}/src/tests/modules/package_without/module_1.py
RENAMED
File without changes
|
{dycw_utilities-0.112.11 → dycw_utilities-0.112.13}/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
|
{dycw_utilities-0.112.11 → dycw_utilities-0.112.13}/src/tests/scripts/test_async_service/__init__.py
RENAMED
File without changes
|
{dycw_utilities-0.112.11 → dycw_utilities-0.112.13}/src/tests/scripts/test_async_service/__main__.py
RENAMED
File without changes
|
{dycw_utilities-0.112.11 → dycw_utilities-0.112.13}/src/tests/scripts/test_async_service/run.sh
RENAMED
File without changes
|
File without changes
|
File without changes
|
{dycw_utilities-0.112.11 → dycw_utilities-0.112.13}/src/tests/scripts/test_queue_processor/run.sh
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
|
File without changes
|
File without changes
|
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.112.11 → dycw_utilities-0.112.13}/src/tests/test_traceback_funcs/__init__.py
RENAMED
File without changes
|
File without changes
|
File without changes
|
{dycw_utilities-0.112.11 → dycw_utilities-0.112.13}/src/tests/test_traceback_funcs/decorated_sync.py
RENAMED
File without changes
|
{dycw_utilities-0.112.11 → dycw_utilities-0.112.13}/src/tests/test_traceback_funcs/error_bind.py
RENAMED
File without changes
|
File without changes
|
File without changes
|
{dycw_utilities-0.112.11 → dycw_utilities-0.112.13}/src/tests/test_traceback_funcs/recursive.py
RENAMED
File without changes
|
{dycw_utilities-0.112.11 → dycw_utilities-0.112.13}/src/tests/test_traceback_funcs/task_group_one.py
RENAMED
File without changes
|
{dycw_utilities-0.112.11 → dycw_utilities-0.112.13}/src/tests/test_traceback_funcs/task_group_two.py
RENAMED
File without changes
|
File without changes
|
{dycw_utilities-0.112.11 → dycw_utilities-0.112.13}/src/tests/test_traceback_funcs/untraced.py
RENAMED
File without changes
|
File without changes
|
File without changes
|
File without changes
|
{dycw_utilities-0.112.11 → dycw_utilities-0.112.13}/src/tests/test_typing_funcs/no_future.py
RENAMED
File without changes
|
{dycw_utilities-0.112.11 → dycw_utilities-0.112.13}/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
|
File without changes
|
File without changes
|
File without changes
|
File without changes
|
File without changes
|
File without changes
|
File without changes
|
File without changes
|
File without changes
|
File without changes
|
File without changes
|
File without changes
|
File without changes
|
File without changes
|
File without changes
|
File without changes
|
File without changes
|
File without changes
|
File without changes
|
File without changes
|
File without changes
|
File without changes
|
File without changes
|
File without changes
|
File without changes
|
File without changes
|
File without changes
|
File without changes
|
File without changes
|
File without changes
|