dycw-utilities 0.129.13__tar.gz → 0.129.15__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.129.13 → dycw_utilities-0.129.15}/PKG-INFO +26 -26
- {dycw_utilities-0.129.13 → dycw_utilities-0.129.15}/pyproject.toml +31 -30
- dycw_utilities-0.129.15/src/tests/test_inflect.py +20 -0
- {dycw_utilities-0.129.13 → dycw_utilities-0.129.15}/src/utilities/__init__.py +1 -1
- {dycw_utilities-0.129.13 → dycw_utilities-0.129.15}/src/utilities/asyncio.py +9 -4
- dycw_utilities-0.129.15/src/utilities/inflect.py +17 -0
- {dycw_utilities-0.129.13 → dycw_utilities-0.129.15}/src/utilities/redis.py +3 -3
- {dycw_utilities-0.129.13 → dycw_utilities-0.129.15}/src/utilities/sqlalchemy.py +8 -2
- {dycw_utilities-0.129.13 → dycw_utilities-0.129.15}/src/utilities/sqlalchemy_polars.py +2 -2
- {dycw_utilities-0.129.13 → dycw_utilities-0.129.15}/.gitignore +0 -0
- {dycw_utilities-0.129.13 → dycw_utilities-0.129.15}/LICENSE +0 -0
- {dycw_utilities-0.129.13 → dycw_utilities-0.129.15}/README.md +0 -0
- {dycw_utilities-0.129.13 → dycw_utilities-0.129.15}/src/tests/__init__.py +0 -0
- {dycw_utilities-0.129.13 → dycw_utilities-0.129.15}/src/tests/conftest.py +0 -0
- {dycw_utilities-0.129.13 → dycw_utilities-0.129.15}/src/tests/modules/__init__.py +0 -0
- {dycw_utilities-0.129.13 → dycw_utilities-0.129.15}/src/tests/modules/package_missing/__init__.py +0 -0
- {dycw_utilities-0.129.13 → dycw_utilities-0.129.15}/src/tests/modules/package_missing/module.py +0 -0
- {dycw_utilities-0.129.13 → dycw_utilities-0.129.15}/src/tests/modules/package_with/__init__.py +0 -0
- {dycw_utilities-0.129.13 → dycw_utilities-0.129.15}/src/tests/modules/package_with/outer_1.py +0 -0
- {dycw_utilities-0.129.13 → dycw_utilities-0.129.15}/src/tests/modules/package_with/outer_2.py +0 -0
- {dycw_utilities-0.129.13 → dycw_utilities-0.129.15}/src/tests/modules/package_with/subpackage/__init__.py +0 -0
- {dycw_utilities-0.129.13 → dycw_utilities-0.129.15}/src/tests/modules/package_with/subpackage/inner_1.py +0 -0
- {dycw_utilities-0.129.13 → dycw_utilities-0.129.15}/src/tests/modules/package_with/subpackage/inner_2.py +0 -0
- {dycw_utilities-0.129.13 → dycw_utilities-0.129.15}/src/tests/modules/package_with/subpackage/inner_3.py +0 -0
- {dycw_utilities-0.129.13 → dycw_utilities-0.129.15}/src/tests/modules/package_without/__init__.py +0 -0
- {dycw_utilities-0.129.13 → dycw_utilities-0.129.15}/src/tests/modules/package_without/module_1.py +0 -0
- {dycw_utilities-0.129.13 → dycw_utilities-0.129.15}/src/tests/modules/package_without/module_2.py +0 -0
- {dycw_utilities-0.129.13 → dycw_utilities-0.129.15}/src/tests/modules/standalone.py +0 -0
- {dycw_utilities-0.129.13 → dycw_utilities-0.129.15}/src/tests/modules/with_imports.py +0 -0
- {dycw_utilities-0.129.13 → dycw_utilities-0.129.15}/src/tests/regressions/test_pytest_regressions/TestMultipleRegressionFixtures__test_main__obj.json +0 -0
- {dycw_utilities-0.129.13 → dycw_utilities-0.129.15}/src/tests/regressions/test_pytest_regressions/TestMultipleRegressionFixtures__test_main__series.json +0 -0
- {dycw_utilities-0.129.13 → dycw_utilities-0.129.15}/src/tests/regressions/test_pytest_regressions/TestOrjsonRegressionFixture__test_dataclass_int.json +0 -0
- {dycw_utilities-0.129.13 → dycw_utilities-0.129.15}/src/tests/regressions/test_pytest_regressions/TestOrjsonRegressionFixture__test_dataclass_literal__false.json +0 -0
- {dycw_utilities-0.129.13 → dycw_utilities-0.129.15}/src/tests/regressions/test_pytest_regressions/TestOrjsonRegressionFixture__test_dataclass_literal__true.json +0 -0
- {dycw_utilities-0.129.13 → dycw_utilities-0.129.15}/src/tests/regressions/test_pytest_regressions/TestOrjsonRegressionFixture__test_dataclass_nested.json +0 -0
- {dycw_utilities-0.129.13 → dycw_utilities-0.129.15}/src/tests/regressions/test_pytest_regressions/TestPolarsRegressionFixture__test_dataframe.json +0 -0
- {dycw_utilities-0.129.13 → dycw_utilities-0.129.15}/src/tests/regressions/test_pytest_regressions/TestPolarsRegressionFixture__test_series.json +0 -0
- {dycw_utilities-0.129.13 → dycw_utilities-0.129.15}/src/tests/test_aiolimiter.py +0 -0
- {dycw_utilities-0.129.13 → dycw_utilities-0.129.15}/src/tests/test_altair.py +0 -0
- {dycw_utilities-0.129.13 → dycw_utilities-0.129.15}/src/tests/test_asyncio.py +0 -0
- {dycw_utilities-0.129.13 → dycw_utilities-0.129.15}/src/tests/test_asyncio_classes/__init__.py +0 -0
- {dycw_utilities-0.129.13 → dycw_utilities-0.129.15}/src/tests/test_asyncio_classes/loopers.py +0 -0
- {dycw_utilities-0.129.13 → dycw_utilities-0.129.15}/src/tests/test_asyncio_classes/redis.py +0 -0
- {dycw_utilities-0.129.13 → dycw_utilities-0.129.15}/src/tests/test_atomicwrites.py +0 -0
- {dycw_utilities-0.129.13 → dycw_utilities-0.129.15}/src/tests/test_atools.py +0 -0
- {dycw_utilities-0.129.13 → dycw_utilities-0.129.15}/src/tests/test_cachetools.py +0 -0
- {dycw_utilities-0.129.13 → dycw_utilities-0.129.15}/src/tests/test_click.py +0 -0
- {dycw_utilities-0.129.13 → dycw_utilities-0.129.15}/src/tests/test_concurrent.py +0 -0
- {dycw_utilities-0.129.13 → dycw_utilities-0.129.15}/src/tests/test_contextlib.py +0 -0
- {dycw_utilities-0.129.13 → dycw_utilities-0.129.15}/src/tests/test_contextvars.py +0 -0
- {dycw_utilities-0.129.13 → dycw_utilities-0.129.15}/src/tests/test_cryptography.py +0 -0
- {dycw_utilities-0.129.13 → dycw_utilities-0.129.15}/src/tests/test_cvxpy.py +0 -0
- {dycw_utilities-0.129.13 → dycw_utilities-0.129.15}/src/tests/test_dataclasses.py +0 -0
- {dycw_utilities-0.129.13 → dycw_utilities-0.129.15}/src/tests/test_datetime.py +0 -0
- {dycw_utilities-0.129.13 → dycw_utilities-0.129.15}/src/tests/test_enum.py +0 -0
- {dycw_utilities-0.129.13 → dycw_utilities-0.129.15}/src/tests/test_errors.py +0 -0
- {dycw_utilities-0.129.13 → dycw_utilities-0.129.15}/src/tests/test_eventkit.py +0 -0
- {dycw_utilities-0.129.13 → dycw_utilities-0.129.15}/src/tests/test_fastapi.py +0 -0
- {dycw_utilities-0.129.13 → dycw_utilities-0.129.15}/src/tests/test_fpdf2.py +0 -0
- {dycw_utilities-0.129.13 → dycw_utilities-0.129.15}/src/tests/test_functions.py +0 -0
- {dycw_utilities-0.129.13 → dycw_utilities-0.129.15}/src/tests/test_functools.py +0 -0
- {dycw_utilities-0.129.13 → dycw_utilities-0.129.15}/src/tests/test_getpass.py +0 -0
- {dycw_utilities-0.129.13 → dycw_utilities-0.129.15}/src/tests/test_git.py +0 -0
- {dycw_utilities-0.129.13 → dycw_utilities-0.129.15}/src/tests/test_hashlib.py +0 -0
- {dycw_utilities-0.129.13 → dycw_utilities-0.129.15}/src/tests/test_http.py +0 -0
- {dycw_utilities-0.129.13 → dycw_utilities-0.129.15}/src/tests/test_hypothesis.py +0 -0
- {dycw_utilities-0.129.13 → dycw_utilities-0.129.15}/src/tests/test_importlib.py +0 -0
- {dycw_utilities-0.129.13 → dycw_utilities-0.129.15}/src/tests/test_ipython.py +0 -0
- {dycw_utilities-0.129.13 → dycw_utilities-0.129.15}/src/tests/test_iterables.py +0 -0
- {dycw_utilities-0.129.13 → dycw_utilities-0.129.15}/src/tests/test_jupyter.py +0 -0
- {dycw_utilities-0.129.13 → dycw_utilities-0.129.15}/src/tests/test_libcst.py +0 -0
- {dycw_utilities-0.129.13 → dycw_utilities-0.129.15}/src/tests/test_lightweight_charts.py +0 -0
- {dycw_utilities-0.129.13 → dycw_utilities-0.129.15}/src/tests/test_logging.py +0 -0
- {dycw_utilities-0.129.13 → dycw_utilities-0.129.15}/src/tests/test_loguru.py +0 -0
- {dycw_utilities-0.129.13 → dycw_utilities-0.129.15}/src/tests/test_luigi.py +0 -0
- {dycw_utilities-0.129.13 → dycw_utilities-0.129.15}/src/tests/test_math.py +0 -0
- {dycw_utilities-0.129.13 → dycw_utilities-0.129.15}/src/tests/test_memory_profiler.py +0 -0
- {dycw_utilities-0.129.13 → dycw_utilities-0.129.15}/src/tests/test_modules.py +0 -0
- {dycw_utilities-0.129.13 → dycw_utilities-0.129.15}/src/tests/test_more_itertools.py +0 -0
- {dycw_utilities-0.129.13 → dycw_utilities-0.129.15}/src/tests/test_numpy.py +0 -0
- {dycw_utilities-0.129.13 → dycw_utilities-0.129.15}/src/tests/test_operator.py +0 -0
- {dycw_utilities-0.129.13 → dycw_utilities-0.129.15}/src/tests/test_optuna.py +0 -0
- {dycw_utilities-0.129.13 → dycw_utilities-0.129.15}/src/tests/test_orjson.py +0 -0
- {dycw_utilities-0.129.13 → dycw_utilities-0.129.15}/src/tests/test_os.py +0 -0
- {dycw_utilities-0.129.13 → dycw_utilities-0.129.15}/src/tests/test_parse.py +0 -0
- {dycw_utilities-0.129.13 → dycw_utilities-0.129.15}/src/tests/test_pathlib.py +0 -0
- {dycw_utilities-0.129.13 → dycw_utilities-0.129.15}/src/tests/test_period.py +0 -0
- {dycw_utilities-0.129.13 → dycw_utilities-0.129.15}/src/tests/test_pickle.py +0 -0
- {dycw_utilities-0.129.13 → dycw_utilities-0.129.15}/src/tests/test_platform.py +0 -0
- {dycw_utilities-0.129.13 → dycw_utilities-0.129.15}/src/tests/test_polars.py +0 -0
- {dycw_utilities-0.129.13 → dycw_utilities-0.129.15}/src/tests/test_polars_ols.py +0 -0
- {dycw_utilities-0.129.13 → dycw_utilities-0.129.15}/src/tests/test_pottery.py +0 -0
- {dycw_utilities-0.129.13 → dycw_utilities-0.129.15}/src/tests/test_pqdm.py +0 -0
- {dycw_utilities-0.129.13 → dycw_utilities-0.129.15}/src/tests/test_psutil.py +0 -0
- {dycw_utilities-0.129.13 → dycw_utilities-0.129.15}/src/tests/test_pydantic.py +0 -0
- {dycw_utilities-0.129.13 → dycw_utilities-0.129.15}/src/tests/test_pyinstrument.py +0 -0
- {dycw_utilities-0.129.13 → dycw_utilities-0.129.15}/src/tests/test_pyrsistent.py +0 -0
- {dycw_utilities-0.129.13 → dycw_utilities-0.129.15}/src/tests/test_pytest.py +0 -0
- {dycw_utilities-0.129.13 → dycw_utilities-0.129.15}/src/tests/test_pytest_regressions.py +0 -0
- {dycw_utilities-0.129.13 → dycw_utilities-0.129.15}/src/tests/test_python_dotenv.py +0 -0
- {dycw_utilities-0.129.13 → dycw_utilities-0.129.15}/src/tests/test_random.py +0 -0
- {dycw_utilities-0.129.13 → dycw_utilities-0.129.15}/src/tests/test_re.py +0 -0
- {dycw_utilities-0.129.13 → dycw_utilities-0.129.15}/src/tests/test_redis.py +0 -0
- {dycw_utilities-0.129.13 → dycw_utilities-0.129.15}/src/tests/test_reprlib.py +0 -0
- {dycw_utilities-0.129.13 → dycw_utilities-0.129.15}/src/tests/test_scipy.py +0 -0
- {dycw_utilities-0.129.13 → dycw_utilities-0.129.15}/src/tests/test_sentinel.py +0 -0
- {dycw_utilities-0.129.13 → dycw_utilities-0.129.15}/src/tests/test_shelve.py +0 -0
- {dycw_utilities-0.129.13 → dycw_utilities-0.129.15}/src/tests/test_slack_sdk.py +0 -0
- {dycw_utilities-0.129.13 → dycw_utilities-0.129.15}/src/tests/test_socket.py +0 -0
- {dycw_utilities-0.129.13 → dycw_utilities-0.129.15}/src/tests/test_sqlalchemy.py +0 -0
- {dycw_utilities-0.129.13 → dycw_utilities-0.129.15}/src/tests/test_sqlalchemy_polars.py +0 -0
- {dycw_utilities-0.129.13 → dycw_utilities-0.129.15}/src/tests/test_statsmodel.py +0 -0
- {dycw_utilities-0.129.13 → dycw_utilities-0.129.15}/src/tests/test_streamlit.py +0 -0
- {dycw_utilities-0.129.13 → dycw_utilities-0.129.15}/src/tests/test_string.py +0 -0
- {dycw_utilities-0.129.13 → dycw_utilities-0.129.15}/src/tests/test_sys.py +0 -0
- {dycw_utilities-0.129.13 → dycw_utilities-0.129.15}/src/tests/test_tempfile.py +0 -0
- {dycw_utilities-0.129.13 → dycw_utilities-0.129.15}/src/tests/test_tenacity.py +0 -0
- {dycw_utilities-0.129.13 → dycw_utilities-0.129.15}/src/tests/test_text.py +0 -0
- {dycw_utilities-0.129.13 → dycw_utilities-0.129.15}/src/tests/test_threading.py +0 -0
- {dycw_utilities-0.129.13 → dycw_utilities-0.129.15}/src/tests/test_timer.py +0 -0
- {dycw_utilities-0.129.13 → dycw_utilities-0.129.15}/src/tests/test_traceback.py +0 -0
- {dycw_utilities-0.129.13 → dycw_utilities-0.129.15}/src/tests/test_traceback_funcs/__init__.py +0 -0
- {dycw_utilities-0.129.13 → dycw_utilities-0.129.15}/src/tests/test_traceback_funcs/chain.py +0 -0
- {dycw_utilities-0.129.13 → dycw_utilities-0.129.15}/src/tests/test_traceback_funcs/decorated_async.py +0 -0
- {dycw_utilities-0.129.13 → dycw_utilities-0.129.15}/src/tests/test_traceback_funcs/decorated_sync.py +0 -0
- {dycw_utilities-0.129.13 → dycw_utilities-0.129.15}/src/tests/test_traceback_funcs/error_bind.py +0 -0
- {dycw_utilities-0.129.13 → dycw_utilities-0.129.15}/src/tests/test_traceback_funcs/many.py +0 -0
- {dycw_utilities-0.129.13 → dycw_utilities-0.129.15}/src/tests/test_traceback_funcs/one.py +0 -0
- {dycw_utilities-0.129.13 → dycw_utilities-0.129.15}/src/tests/test_traceback_funcs/recursive.py +0 -0
- {dycw_utilities-0.129.13 → dycw_utilities-0.129.15}/src/tests/test_traceback_funcs/task_group_one.py +0 -0
- {dycw_utilities-0.129.13 → dycw_utilities-0.129.15}/src/tests/test_traceback_funcs/task_group_two.py +0 -0
- {dycw_utilities-0.129.13 → dycw_utilities-0.129.15}/src/tests/test_traceback_funcs/two.py +0 -0
- {dycw_utilities-0.129.13 → dycw_utilities-0.129.15}/src/tests/test_traceback_funcs/untraced.py +0 -0
- {dycw_utilities-0.129.13 → dycw_utilities-0.129.15}/src/tests/test_types.py +0 -0
- {dycw_utilities-0.129.13 → dycw_utilities-0.129.15}/src/tests/test_typing.py +0 -0
- {dycw_utilities-0.129.13 → dycw_utilities-0.129.15}/src/tests/test_typing_funcs/__init__.py +0 -0
- {dycw_utilities-0.129.13 → dycw_utilities-0.129.15}/src/tests/test_typing_funcs/no_future.py +0 -0
- {dycw_utilities-0.129.13 → dycw_utilities-0.129.15}/src/tests/test_typing_funcs/with_future.py +0 -0
- {dycw_utilities-0.129.13 → dycw_utilities-0.129.15}/src/tests/test_tzdata.py +0 -0
- {dycw_utilities-0.129.13 → dycw_utilities-0.129.15}/src/tests/test_tzlocal.py +0 -0
- {dycw_utilities-0.129.13 → dycw_utilities-0.129.15}/src/tests/test_uuid.py +0 -0
- {dycw_utilities-0.129.13 → dycw_utilities-0.129.15}/src/tests/test_version.py +0 -0
- {dycw_utilities-0.129.13 → dycw_utilities-0.129.15}/src/tests/test_warnings.py +0 -0
- {dycw_utilities-0.129.13 → dycw_utilities-0.129.15}/src/tests/test_whenever.py +0 -0
- {dycw_utilities-0.129.13 → dycw_utilities-0.129.15}/src/tests/test_zipfile.py +0 -0
- {dycw_utilities-0.129.13 → dycw_utilities-0.129.15}/src/tests/test_zoneinfo.py +0 -0
- {dycw_utilities-0.129.13 → dycw_utilities-0.129.15}/src/utilities/aiolimiter.py +0 -0
- {dycw_utilities-0.129.13 → dycw_utilities-0.129.15}/src/utilities/altair.py +0 -0
- {dycw_utilities-0.129.13 → dycw_utilities-0.129.15}/src/utilities/atomicwrites.py +0 -0
- {dycw_utilities-0.129.13 → dycw_utilities-0.129.15}/src/utilities/atools.py +0 -0
- {dycw_utilities-0.129.13 → dycw_utilities-0.129.15}/src/utilities/cachetools.py +0 -0
- {dycw_utilities-0.129.13 → dycw_utilities-0.129.15}/src/utilities/click.py +0 -0
- {dycw_utilities-0.129.13 → dycw_utilities-0.129.15}/src/utilities/concurrent.py +0 -0
- {dycw_utilities-0.129.13 → dycw_utilities-0.129.15}/src/utilities/contextlib.py +0 -0
- {dycw_utilities-0.129.13 → dycw_utilities-0.129.15}/src/utilities/contextvars.py +0 -0
- {dycw_utilities-0.129.13 → dycw_utilities-0.129.15}/src/utilities/cryptography.py +0 -0
- {dycw_utilities-0.129.13 → dycw_utilities-0.129.15}/src/utilities/cvxpy.py +0 -0
- {dycw_utilities-0.129.13 → dycw_utilities-0.129.15}/src/utilities/dataclasses.py +0 -0
- {dycw_utilities-0.129.13 → dycw_utilities-0.129.15}/src/utilities/datetime.py +0 -0
- {dycw_utilities-0.129.13 → dycw_utilities-0.129.15}/src/utilities/enum.py +0 -0
- {dycw_utilities-0.129.13 → dycw_utilities-0.129.15}/src/utilities/errors.py +0 -0
- {dycw_utilities-0.129.13 → dycw_utilities-0.129.15}/src/utilities/eventkit.py +0 -0
- {dycw_utilities-0.129.13 → dycw_utilities-0.129.15}/src/utilities/fastapi.py +0 -0
- {dycw_utilities-0.129.13 → dycw_utilities-0.129.15}/src/utilities/fpdf2.py +0 -0
- {dycw_utilities-0.129.13 → dycw_utilities-0.129.15}/src/utilities/functions.py +0 -0
- {dycw_utilities-0.129.13 → dycw_utilities-0.129.15}/src/utilities/functools.py +0 -0
- {dycw_utilities-0.129.13 → dycw_utilities-0.129.15}/src/utilities/getpass.py +0 -0
- {dycw_utilities-0.129.13 → dycw_utilities-0.129.15}/src/utilities/git.py +0 -0
- {dycw_utilities-0.129.13 → dycw_utilities-0.129.15}/src/utilities/hashlib.py +0 -0
- {dycw_utilities-0.129.13 → dycw_utilities-0.129.15}/src/utilities/http.py +0 -0
- {dycw_utilities-0.129.13 → dycw_utilities-0.129.15}/src/utilities/hypothesis.py +0 -0
- {dycw_utilities-0.129.13 → dycw_utilities-0.129.15}/src/utilities/importlib.py +0 -0
- {dycw_utilities-0.129.13 → dycw_utilities-0.129.15}/src/utilities/ipython.py +0 -0
- {dycw_utilities-0.129.13 → dycw_utilities-0.129.15}/src/utilities/iterables.py +0 -0
- {dycw_utilities-0.129.13 → dycw_utilities-0.129.15}/src/utilities/jupyter.py +0 -0
- {dycw_utilities-0.129.13 → dycw_utilities-0.129.15}/src/utilities/libcst.py +0 -0
- {dycw_utilities-0.129.13 → dycw_utilities-0.129.15}/src/utilities/lightweight_charts.py +0 -0
- {dycw_utilities-0.129.13 → dycw_utilities-0.129.15}/src/utilities/logging.py +0 -0
- {dycw_utilities-0.129.13 → dycw_utilities-0.129.15}/src/utilities/loguru.py +0 -0
- {dycw_utilities-0.129.13 → dycw_utilities-0.129.15}/src/utilities/luigi.py +0 -0
- {dycw_utilities-0.129.13 → dycw_utilities-0.129.15}/src/utilities/math.py +0 -0
- {dycw_utilities-0.129.13 → dycw_utilities-0.129.15}/src/utilities/memory_profiler.py +0 -0
- {dycw_utilities-0.129.13 → dycw_utilities-0.129.15}/src/utilities/modules.py +0 -0
- {dycw_utilities-0.129.13 → dycw_utilities-0.129.15}/src/utilities/more_itertools.py +0 -0
- {dycw_utilities-0.129.13 → dycw_utilities-0.129.15}/src/utilities/numpy.py +0 -0
- {dycw_utilities-0.129.13 → dycw_utilities-0.129.15}/src/utilities/operator.py +0 -0
- {dycw_utilities-0.129.13 → dycw_utilities-0.129.15}/src/utilities/optuna.py +0 -0
- {dycw_utilities-0.129.13 → dycw_utilities-0.129.15}/src/utilities/orjson.py +0 -0
- {dycw_utilities-0.129.13 → dycw_utilities-0.129.15}/src/utilities/os.py +0 -0
- {dycw_utilities-0.129.13 → dycw_utilities-0.129.15}/src/utilities/parse.py +0 -0
- {dycw_utilities-0.129.13 → dycw_utilities-0.129.15}/src/utilities/pathlib.py +0 -0
- {dycw_utilities-0.129.13 → dycw_utilities-0.129.15}/src/utilities/period.py +0 -0
- {dycw_utilities-0.129.13 → dycw_utilities-0.129.15}/src/utilities/pickle.py +0 -0
- {dycw_utilities-0.129.13 → dycw_utilities-0.129.15}/src/utilities/platform.py +0 -0
- {dycw_utilities-0.129.13 → dycw_utilities-0.129.15}/src/utilities/polars.py +0 -0
- {dycw_utilities-0.129.13 → dycw_utilities-0.129.15}/src/utilities/polars_ols.py +0 -0
- {dycw_utilities-0.129.13 → dycw_utilities-0.129.15}/src/utilities/pottery.py +0 -0
- {dycw_utilities-0.129.13 → dycw_utilities-0.129.15}/src/utilities/pqdm.py +0 -0
- {dycw_utilities-0.129.13 → dycw_utilities-0.129.15}/src/utilities/psutil.py +0 -0
- {dycw_utilities-0.129.13 → dycw_utilities-0.129.15}/src/utilities/py.typed +0 -0
- {dycw_utilities-0.129.13 → dycw_utilities-0.129.15}/src/utilities/pydantic.py +0 -0
- {dycw_utilities-0.129.13 → dycw_utilities-0.129.15}/src/utilities/pyinstrument.py +0 -0
- {dycw_utilities-0.129.13 → dycw_utilities-0.129.15}/src/utilities/pyrsistent.py +0 -0
- {dycw_utilities-0.129.13 → dycw_utilities-0.129.15}/src/utilities/pytest.py +0 -0
- {dycw_utilities-0.129.13 → dycw_utilities-0.129.15}/src/utilities/pytest_regressions.py +0 -0
- {dycw_utilities-0.129.13 → dycw_utilities-0.129.15}/src/utilities/python_dotenv.py +0 -0
- {dycw_utilities-0.129.13 → dycw_utilities-0.129.15}/src/utilities/random.py +0 -0
- {dycw_utilities-0.129.13 → dycw_utilities-0.129.15}/src/utilities/re.py +0 -0
- {dycw_utilities-0.129.13 → dycw_utilities-0.129.15}/src/utilities/reprlib.py +0 -0
- {dycw_utilities-0.129.13 → dycw_utilities-0.129.15}/src/utilities/scipy.py +0 -0
- {dycw_utilities-0.129.13 → dycw_utilities-0.129.15}/src/utilities/sentinel.py +0 -0
- {dycw_utilities-0.129.13 → dycw_utilities-0.129.15}/src/utilities/shelve.py +0 -0
- {dycw_utilities-0.129.13 → dycw_utilities-0.129.15}/src/utilities/slack_sdk.py +0 -0
- {dycw_utilities-0.129.13 → dycw_utilities-0.129.15}/src/utilities/socket.py +0 -0
- {dycw_utilities-0.129.13 → dycw_utilities-0.129.15}/src/utilities/statsmodels.py +0 -0
- {dycw_utilities-0.129.13 → dycw_utilities-0.129.15}/src/utilities/streamlit.py +0 -0
- {dycw_utilities-0.129.13 → dycw_utilities-0.129.15}/src/utilities/string.py +0 -0
- {dycw_utilities-0.129.13 → dycw_utilities-0.129.15}/src/utilities/sys.py +0 -0
- {dycw_utilities-0.129.13 → dycw_utilities-0.129.15}/src/utilities/tempfile.py +0 -0
- {dycw_utilities-0.129.13 → dycw_utilities-0.129.15}/src/utilities/tenacity.py +0 -0
- {dycw_utilities-0.129.13 → dycw_utilities-0.129.15}/src/utilities/text.py +0 -0
- {dycw_utilities-0.129.13 → dycw_utilities-0.129.15}/src/utilities/threading.py +0 -0
- {dycw_utilities-0.129.13 → dycw_utilities-0.129.15}/src/utilities/timer.py +0 -0
- {dycw_utilities-0.129.13 → dycw_utilities-0.129.15}/src/utilities/traceback.py +0 -0
- {dycw_utilities-0.129.13 → dycw_utilities-0.129.15}/src/utilities/types.py +0 -0
- {dycw_utilities-0.129.13 → dycw_utilities-0.129.15}/src/utilities/typing.py +0 -0
- {dycw_utilities-0.129.13 → dycw_utilities-0.129.15}/src/utilities/tzdata.py +0 -0
- {dycw_utilities-0.129.13 → dycw_utilities-0.129.15}/src/utilities/tzlocal.py +0 -0
- {dycw_utilities-0.129.13 → dycw_utilities-0.129.15}/src/utilities/uuid.py +0 -0
- {dycw_utilities-0.129.13 → dycw_utilities-0.129.15}/src/utilities/version.py +0 -0
- {dycw_utilities-0.129.13 → dycw_utilities-0.129.15}/src/utilities/warnings.py +0 -0
- {dycw_utilities-0.129.13 → dycw_utilities-0.129.15}/src/utilities/whenever.py +0 -0
- {dycw_utilities-0.129.13 → dycw_utilities-0.129.15}/src/utilities/zipfile.py +0 -0
- {dycw_utilities-0.129.13 → dycw_utilities-0.129.15}/src/utilities/zoneinfo.py +0 -0
@@ -1,6 +1,6 @@
|
|
1
1
|
Metadata-Version: 2.4
|
2
2
|
Name: dycw-utilities
|
3
|
-
Version: 0.129.
|
3
|
+
Version: 0.129.15
|
4
4
|
Author-email: Derek Wan <d.wan@icloud.com>
|
5
5
|
License-File: LICENSE
|
6
6
|
Requires-Python: >=3.12
|
@@ -9,7 +9,7 @@ Provides-Extra: logging
|
|
9
9
|
Requires-Dist: atomicwrites<1.5,>=1.4.1; extra == 'logging'
|
10
10
|
Requires-Dist: coloredlogs<15.1,>=15.0.1; extra == 'logging'
|
11
11
|
Requires-Dist: tzlocal<5.4,>=5.3.1; extra == 'logging'
|
12
|
-
Requires-Dist: whenever<0.9,>=0.8.
|
12
|
+
Requires-Dist: whenever<0.9,>=0.8.5; extra == 'logging'
|
13
13
|
Provides-Extra: test
|
14
14
|
Requires-Dist: dycw-pytest-only<2.2,>=2.1.1; extra == 'test'
|
15
15
|
Requires-Dist: hypothesis<6.136,>=6.135.2; extra == 'test'
|
@@ -32,7 +32,7 @@ Requires-Dist: atomicwrites<1.5,>=1.4.1; extra == 'zzz-test-altair'
|
|
32
32
|
Requires-Dist: img2pdf<0.7,>=0.6.0; extra == 'zzz-test-altair'
|
33
33
|
Requires-Dist: polars-lts-cpu<1.31,>=1.30.0; extra == 'zzz-test-altair'
|
34
34
|
Requires-Dist: vl-convert-python<1.9,>=1.8.0; extra == 'zzz-test-altair'
|
35
|
-
Requires-Dist: whenever<0.9,>=0.8.
|
35
|
+
Requires-Dist: whenever<0.9,>=0.8.5; extra == 'zzz-test-altair'
|
36
36
|
Provides-Extra: zzz-test-asyncio
|
37
37
|
Provides-Extra: zzz-test-atomicwrites
|
38
38
|
Requires-Dist: atomicwrites<1.5,>=1.4.1; extra == 'zzz-test-atomicwrites'
|
@@ -43,20 +43,20 @@ Requires-Dist: cachetools<5.6,>=5.5.2; extra == 'zzz-test-cachetools'
|
|
43
43
|
Provides-Extra: zzz-test-click
|
44
44
|
Requires-Dist: click<8.3,>=8.2.1; extra == 'zzz-test-click'
|
45
45
|
Requires-Dist: sqlalchemy<2.1,>=2.0.41; extra == 'zzz-test-click'
|
46
|
-
Requires-Dist: whenever<0.9,>=0.8.
|
46
|
+
Requires-Dist: whenever<0.9,>=0.8.5; extra == 'zzz-test-click'
|
47
47
|
Provides-Extra: zzz-test-contextlib
|
48
48
|
Provides-Extra: zzz-test-contextvars
|
49
49
|
Provides-Extra: zzz-test-cryptography
|
50
|
-
Requires-Dist: cryptography<45.1,>=45.0.
|
50
|
+
Requires-Dist: cryptography<45.1,>=45.0.4; extra == 'zzz-test-cryptography'
|
51
51
|
Provides-Extra: zzz-test-cvxpy
|
52
52
|
Requires-Dist: cvxpy<1.7,>=1.6.5; extra == 'zzz-test-cvxpy'
|
53
53
|
Provides-Extra: zzz-test-dataclasses
|
54
54
|
Requires-Dist: orjson<3.11,>=3.10.15; extra == 'zzz-test-dataclasses'
|
55
55
|
Requires-Dist: polars-lts-cpu<1.31,>=1.30.0; extra == 'zzz-test-dataclasses'
|
56
|
-
Requires-Dist: whenever<0.9,>=0.8.
|
56
|
+
Requires-Dist: whenever<0.9,>=0.8.5; extra == 'zzz-test-dataclasses'
|
57
57
|
Provides-Extra: zzz-test-datetime
|
58
58
|
Requires-Dist: tzlocal<5.4,>=5.3.1; extra == 'zzz-test-datetime'
|
59
|
-
Requires-Dist: whenever<0.9,>=0.8.
|
59
|
+
Requires-Dist: whenever<0.9,>=0.8.5; extra == 'zzz-test-datetime'
|
60
60
|
Provides-Extra: zzz-test-enum
|
61
61
|
Provides-Extra: zzz-test-errors
|
62
62
|
Provides-Extra: zzz-test-eventkit
|
@@ -75,11 +75,11 @@ Provides-Extra: zzz-test-git
|
|
75
75
|
Provides-Extra: zzz-test-hashlib
|
76
76
|
Requires-Dist: orjson<3.11,>=3.10.15; extra == 'zzz-test-hashlib'
|
77
77
|
Requires-Dist: polars-lts-cpu<1.31,>=1.30.0; extra == 'zzz-test-hashlib'
|
78
|
-
Requires-Dist: whenever<0.9,>=0.8.
|
78
|
+
Requires-Dist: whenever<0.9,>=0.8.5; extra == 'zzz-test-hashlib'
|
79
79
|
Provides-Extra: zzz-test-http
|
80
80
|
Requires-Dist: atomicwrites<1.5,>=1.4.1; extra == 'zzz-test-http'
|
81
81
|
Requires-Dist: orjson<3.11,>=3.10.18; extra == 'zzz-test-http'
|
82
|
-
Requires-Dist: whenever<0.9,>=0.8.
|
82
|
+
Requires-Dist: whenever<0.9,>=0.8.5; extra == 'zzz-test-http'
|
83
83
|
Provides-Extra: zzz-test-hypothesis
|
84
84
|
Requires-Dist: aiosqlite<0.22,>=0.21.0; extra == 'zzz-test-hypothesis'
|
85
85
|
Requires-Dist: asyncpg<0.31,>=0.30.0; extra == 'zzz-test-hypothesis'
|
@@ -92,12 +92,12 @@ Requires-Dist: redis<6.3,>=6.2.0; extra == 'zzz-test-hypothesis'
|
|
92
92
|
Requires-Dist: sqlalchemy<2.1,>=2.0.41; extra == 'zzz-test-hypothesis'
|
93
93
|
Requires-Dist: tenacity<9.0,>=8.5.0; extra == 'zzz-test-hypothesis'
|
94
94
|
Requires-Dist: tzlocal<5.4,>=5.3.1; extra == 'zzz-test-hypothesis'
|
95
|
-
Requires-Dist: whenever<0.9,>=0.8.
|
95
|
+
Requires-Dist: whenever<0.9,>=0.8.5; extra == 'zzz-test-hypothesis'
|
96
96
|
Provides-Extra: zzz-test-ipython
|
97
97
|
Requires-Dist: ipython<9.1,>=9.0.1; extra == 'zzz-test-ipython'
|
98
98
|
Provides-Extra: zzz-test-iterables
|
99
99
|
Requires-Dist: polars-lts-cpu<1.31,>=1.30.0; extra == 'zzz-test-iterables'
|
100
|
-
Requires-Dist: whenever<0.9,>=0.8.
|
100
|
+
Requires-Dist: whenever<0.9,>=0.8.5; extra == 'zzz-test-iterables'
|
101
101
|
Provides-Extra: zzz-test-jupyter
|
102
102
|
Requires-Dist: jupyterlab<4.3,>=4.2.0; extra == 'zzz-test-jupyter'
|
103
103
|
Requires-Dist: pandas<2.4,>=2.3.0; extra == 'zzz-test-jupyter'
|
@@ -108,12 +108,12 @@ Requires-Dist: coloredlogs<15.1,>=15.0.1; extra == 'zzz-test-logging'
|
|
108
108
|
Requires-Dist: rich<14.1,>=14.0.0; extra == 'zzz-test-logging'
|
109
109
|
Requires-Dist: tomlkit<0.14,>=0.13.2; extra == 'zzz-test-logging'
|
110
110
|
Requires-Dist: tzlocal<5.4,>=5.3.1; extra == 'zzz-test-logging'
|
111
|
-
Requires-Dist: whenever<0.9,>=0.8.
|
111
|
+
Requires-Dist: whenever<0.9,>=0.8.5; extra == 'zzz-test-logging'
|
112
112
|
Provides-Extra: zzz-test-loguru
|
113
113
|
Requires-Dist: loguru<0.8,>=0.7.3; extra == 'zzz-test-loguru'
|
114
114
|
Provides-Extra: zzz-test-luigi
|
115
115
|
Requires-Dist: luigi<3.7,>=3.6.0; extra == 'zzz-test-luigi'
|
116
|
-
Requires-Dist: whenever<0.9,>=0.8.
|
116
|
+
Requires-Dist: whenever<0.9,>=0.8.5; extra == 'zzz-test-luigi'
|
117
117
|
Provides-Extra: zzz-test-math
|
118
118
|
Requires-Dist: numpy<2.4,>=2.3.0; extra == 'zzz-test-math'
|
119
119
|
Provides-Extra: zzz-test-memory-profiler
|
@@ -125,7 +125,7 @@ Provides-Extra: zzz-test-numpy
|
|
125
125
|
Requires-Dist: numpy<2.4,>=2.3.0; extra == 'zzz-test-numpy'
|
126
126
|
Provides-Extra: zzz-test-operator
|
127
127
|
Requires-Dist: polars-lts-cpu<1.31,>=1.30.0; extra == 'zzz-test-operator'
|
128
|
-
Requires-Dist: whenever<0.9,>=0.8.
|
128
|
+
Requires-Dist: whenever<0.9,>=0.8.5; extra == 'zzz-test-operator'
|
129
129
|
Provides-Extra: zzz-test-optuna
|
130
130
|
Requires-Dist: optuna<4.4,>=4.3.0; extra == 'zzz-test-optuna'
|
131
131
|
Provides-Extra: zzz-test-orjson
|
@@ -133,7 +133,7 @@ Requires-Dist: orjson<3.11,>=3.10.15; extra == 'zzz-test-orjson'
|
|
133
133
|
Requires-Dist: polars-lts-cpu<1.31,>=1.30.0; extra == 'zzz-test-orjson'
|
134
134
|
Requires-Dist: rich<14.1,>=14.0.0; extra == 'zzz-test-orjson'
|
135
135
|
Requires-Dist: tzlocal<5.4,>=5.3.1; extra == 'zzz-test-orjson'
|
136
|
-
Requires-Dist: whenever<0.9,>=0.8.
|
136
|
+
Requires-Dist: whenever<0.9,>=0.8.5; extra == 'zzz-test-orjson'
|
137
137
|
Provides-Extra: zzz-test-os
|
138
138
|
Provides-Extra: zzz-test-pathlib
|
139
139
|
Provides-Extra: zzz-test-pickle
|
@@ -141,7 +141,7 @@ Requires-Dist: atomicwrites<1.5,>=1.4.1; extra == 'zzz-test-pickle'
|
|
141
141
|
Provides-Extra: zzz-test-platform
|
142
142
|
Provides-Extra: zzz-test-polars
|
143
143
|
Requires-Dist: polars-lts-cpu<1.31,>=1.30.0; extra == 'zzz-test-polars'
|
144
|
-
Requires-Dist: whenever<0.9,>=0.8.
|
144
|
+
Requires-Dist: whenever<0.9,>=0.8.5; extra == 'zzz-test-polars'
|
145
145
|
Provides-Extra: zzz-test-pqdm
|
146
146
|
Requires-Dist: pqdm<0.3,>=0.2.0; extra == 'zzz-test-pqdm'
|
147
147
|
Provides-Extra: zzz-test-pydantic
|
@@ -156,12 +156,12 @@ Requires-Dist: pyrsistent<0.21,>=0.20.0; extra == 'zzz-test-pyrsistent'
|
|
156
156
|
Provides-Extra: zzz-test-pytest
|
157
157
|
Requires-Dist: atomicwrites<1.5,>=1.4.1; extra == 'zzz-test-pytest'
|
158
158
|
Requires-Dist: orjson<3.11,>=3.10.18; extra == 'zzz-test-pytest'
|
159
|
-
Requires-Dist: whenever<0.9,>=0.8.
|
159
|
+
Requires-Dist: whenever<0.9,>=0.8.5; extra == 'zzz-test-pytest'
|
160
160
|
Provides-Extra: zzz-test-pytest-regressions
|
161
161
|
Requires-Dist: pytest-regressions<2.9,>=2.8.0; extra == 'zzz-test-pytest-regressions'
|
162
162
|
Provides-Extra: zzz-test-python-dotenv
|
163
163
|
Requires-Dist: python-dotenv<1.2,>=1.1.0; extra == 'zzz-test-python-dotenv'
|
164
|
-
Requires-Dist: whenever<0.9,>=0.8.
|
164
|
+
Requires-Dist: whenever<0.9,>=0.8.5; extra == 'zzz-test-python-dotenv'
|
165
165
|
Provides-Extra: zzz-test-random
|
166
166
|
Provides-Extra: zzz-test-re
|
167
167
|
Provides-Extra: zzz-test-redis
|
@@ -171,7 +171,7 @@ Requires-Dist: redis<6.3,>=6.2.0; extra == 'zzz-test-redis'
|
|
171
171
|
Requires-Dist: rich<14.1,>=14.0.0; extra == 'zzz-test-redis'
|
172
172
|
Requires-Dist: tenacity<9.0,>=8.5.0; extra == 'zzz-test-redis'
|
173
173
|
Requires-Dist: tzlocal<5.4,>=5.3.1; extra == 'zzz-test-redis'
|
174
|
-
Requires-Dist: whenever<0.9,>=0.8.
|
174
|
+
Requires-Dist: whenever<0.9,>=0.8.5; extra == 'zzz-test-redis'
|
175
175
|
Provides-Extra: zzz-test-rich
|
176
176
|
Requires-Dist: rich<14.1,>=14.0.0; extra == 'zzz-test-rich'
|
177
177
|
Provides-Extra: zzz-test-scipy
|
@@ -179,7 +179,7 @@ Requires-Dist: scipy<1.16,>=1.15.3; extra == 'zzz-test-scipy'
|
|
179
179
|
Provides-Extra: zzz-test-sentinel
|
180
180
|
Provides-Extra: zzz-test-shelve
|
181
181
|
Provides-Extra: zzz-test-slack-sdk
|
182
|
-
Requires-Dist: aiohttp<3.13,>=3.12.
|
182
|
+
Requires-Dist: aiohttp<3.13,>=3.12.12; extra == 'zzz-test-slack-sdk'
|
183
183
|
Requires-Dist: slack-sdk<3.36,>=3.35.0; extra == 'zzz-test-slack-sdk'
|
184
184
|
Provides-Extra: zzz-test-socket
|
185
185
|
Provides-Extra: zzz-test-sqlalchemy
|
@@ -197,7 +197,7 @@ Requires-Dist: nest-asyncio<1.7,>=1.6.0; extra == 'zzz-test-sqlalchemy-polars'
|
|
197
197
|
Requires-Dist: polars-lts-cpu<1.31,>=1.30.0; extra == 'zzz-test-sqlalchemy-polars'
|
198
198
|
Requires-Dist: sqlalchemy<2.1,>=2.0.41; extra == 'zzz-test-sqlalchemy-polars'
|
199
199
|
Requires-Dist: tenacity<9.0,>=8.5.0; extra == 'zzz-test-sqlalchemy-polars'
|
200
|
-
Requires-Dist: whenever<0.9,>=0.8.
|
200
|
+
Requires-Dist: whenever<0.9,>=0.8.5; extra == 'zzz-test-sqlalchemy-polars'
|
201
201
|
Provides-Extra: zzz-test-streamlit
|
202
202
|
Requires-Dist: streamlit<1.46,>=1.45.0; extra == 'zzz-test-streamlit'
|
203
203
|
Provides-Extra: zzz-test-sys
|
@@ -205,7 +205,7 @@ Requires-Dist: atomicwrites<1.5,>=1.4.1; extra == 'zzz-test-sys'
|
|
205
205
|
Requires-Dist: rich<14.1,>=14.0.0; extra == 'zzz-test-sys'
|
206
206
|
Requires-Dist: tomlkit<0.14,>=0.13.2; extra == 'zzz-test-sys'
|
207
207
|
Requires-Dist: tzlocal<5.4,>=5.3.1; extra == 'zzz-test-sys'
|
208
|
-
Requires-Dist: whenever<0.9,>=0.8.
|
208
|
+
Requires-Dist: whenever<0.9,>=0.8.5; extra == 'zzz-test-sys'
|
209
209
|
Provides-Extra: zzz-test-tempfile
|
210
210
|
Provides-Extra: zzz-test-tenacity
|
211
211
|
Requires-Dist: tenacity<9.0,>=8.5.0; extra == 'zzz-test-tenacity'
|
@@ -216,11 +216,11 @@ Provides-Extra: zzz-test-traceback
|
|
216
216
|
Requires-Dist: rich<14.1,>=14.0.0; extra == 'zzz-test-traceback'
|
217
217
|
Requires-Dist: tomlkit<0.14,>=0.13.2; extra == 'zzz-test-traceback'
|
218
218
|
Requires-Dist: tzlocal<5.4,>=5.3.1; extra == 'zzz-test-traceback'
|
219
|
-
Requires-Dist: whenever<0.9,>=0.8.
|
219
|
+
Requires-Dist: whenever<0.9,>=0.8.5; extra == 'zzz-test-traceback'
|
220
220
|
Provides-Extra: zzz-test-types
|
221
221
|
Provides-Extra: zzz-test-typing
|
222
222
|
Requires-Dist: polars-lts-cpu<1.31,>=1.30.0; extra == 'zzz-test-typing'
|
223
|
-
Requires-Dist: whenever<0.9,>=0.8.
|
223
|
+
Requires-Dist: whenever<0.9,>=0.8.5; extra == 'zzz-test-typing'
|
224
224
|
Provides-Extra: zzz-test-tzlocal
|
225
225
|
Requires-Dist: tzlocal<5.4,>=5.3.1; extra == 'zzz-test-tzlocal'
|
226
226
|
Provides-Extra: zzz-test-uuid
|
@@ -228,11 +228,11 @@ Provides-Extra: zzz-test-version
|
|
228
228
|
Requires-Dist: tomlkit<0.14,>=0.13.2; extra == 'zzz-test-version'
|
229
229
|
Provides-Extra: zzz-test-warnings
|
230
230
|
Provides-Extra: zzz-test-whenever
|
231
|
-
Requires-Dist: whenever<0.9,>=0.8.
|
231
|
+
Requires-Dist: whenever<0.9,>=0.8.5; extra == 'zzz-test-whenever'
|
232
232
|
Provides-Extra: zzz-test-zipfile
|
233
233
|
Provides-Extra: zzz-test-zoneinfo
|
234
234
|
Requires-Dist: tzdata<2025.3,>=2025.2; extra == 'zzz-test-zoneinfo'
|
235
|
-
Requires-Dist: whenever<0.9,>=0.8.
|
235
|
+
Requires-Dist: whenever<0.9,>=0.8.5; extra == 'zzz-test-zoneinfo'
|
236
236
|
Description-Content-Type: text/markdown
|
237
237
|
|
238
238
|
[](https://badge.fury.io/py/dycw-utilities)
|
@@ -8,7 +8,7 @@ requires = ["hatchling"]
|
|
8
8
|
# dependency groups
|
9
9
|
[dependency-groups]
|
10
10
|
dev = [
|
11
|
-
"aiohttp >= 3.12.
|
11
|
+
"aiohttp >= 3.12.12, < 3.13", # for slack
|
12
12
|
"aiolimiter >= 1.2.1, < 1.3",
|
13
13
|
"aiosqlite >= 0.21.0, < 0.22",
|
14
14
|
"altair >= 5.5.0, < 5.6",
|
@@ -18,7 +18,7 @@ dev = [
|
|
18
18
|
"cachetools >= 5.5.2, < 5.6",
|
19
19
|
"click >= 8.2.1, < 8.3",
|
20
20
|
"coloredlogs >= 15.0.1, < 15.1",
|
21
|
-
"cryptography >= 45.0.
|
21
|
+
"cryptography >= 45.0.4, < 45.1",
|
22
22
|
"cvxpy >= 1.6.5, < 1.7",
|
23
23
|
"eventkit >= 1.0.3, < 1.1",
|
24
24
|
"fastapi >= 0.115.11, < 0.116",
|
@@ -27,6 +27,7 @@ dev = [
|
|
27
27
|
"httpx >= 0.28.1, < 0.29", # for fastapi
|
28
28
|
"hypothesis >= 6.135.2, < 6.136",
|
29
29
|
"img2pdf >= 0.6.0, < 0.7",
|
30
|
+
"inflect >= 7.5.0, < 7.6",
|
30
31
|
"lightweight-charts >= 2.1, < 2.2",
|
31
32
|
"loguru >= 0.7.3, < 0.8",
|
32
33
|
"luigi >= 3.6.0, < 3.7",
|
@@ -68,7 +69,7 @@ dev = [
|
|
68
69
|
"vegafusion >= 2.0.2, < 2.1",
|
69
70
|
"vegafusion-python-embed >= 1.6.9, < 1.7",
|
70
71
|
"vl-convert-python >= 1.8.0, < 1.9",
|
71
|
-
"whenever >= 0.8.
|
72
|
+
"whenever >= 0.8.5, < 0.9",
|
72
73
|
# test
|
73
74
|
"coverage-conditional-plugin >= 0.9.0, < 0.10",
|
74
75
|
"dycw-pytest-only >= 2.1.1, < 2.2",
|
@@ -95,14 +96,14 @@ dependencies = [
|
|
95
96
|
name = "dycw-utilities"
|
96
97
|
readme = "README.md"
|
97
98
|
requires-python = ">= 3.12"
|
98
|
-
version = "0.129.
|
99
|
+
version = "0.129.15"
|
99
100
|
|
100
101
|
[project.optional-dependencies]
|
101
102
|
logging = [
|
102
103
|
"atomicwrites >= 1.4.1, < 1.5",
|
103
104
|
"coloredlogs >= 15.0.1, < 15.1",
|
104
105
|
"tzlocal >= 5.3.1, < 5.4",
|
105
|
-
"whenever >= 0.8.
|
106
|
+
"whenever >= 0.8.5, < 0.9",
|
106
107
|
]
|
107
108
|
test = [
|
108
109
|
"dycw-pytest-only >= 2.1.1, < 2.2",
|
@@ -128,7 +129,7 @@ zzz-test-altair = [
|
|
128
129
|
"img2pdf >= 0.6.0, < 0.7",
|
129
130
|
"polars-lts-cpu >= 1.30.0, < 1.31",
|
130
131
|
"vl-convert-python >= 1.8.0, < 1.9",
|
131
|
-
"whenever >= 0.8.
|
132
|
+
"whenever >= 0.8.5, < 0.9",
|
132
133
|
]
|
133
134
|
zzz-test-asyncio = []
|
134
135
|
zzz-test-atomicwrites = ["atomicwrites >= 1.4.1, < 1.5"]
|
@@ -139,20 +140,20 @@ zzz-test-cachetools = ["cachetools >= 5.5.2, < 5.6"]
|
|
139
140
|
zzz-test-click = [
|
140
141
|
"click >= 8.2.1, < 8.3",
|
141
142
|
"sqlalchemy >= 2.0.41, < 2.1",
|
142
|
-
"whenever >= 0.8.
|
143
|
+
"whenever >= 0.8.5, < 0.9",
|
143
144
|
]
|
144
145
|
zzz-test-contextlib = []
|
145
146
|
zzz-test-contextvars = []
|
146
|
-
zzz-test-cryptography = ["cryptography >= 45.0.
|
147
|
+
zzz-test-cryptography = ["cryptography >= 45.0.4, < 45.1"]
|
147
148
|
zzz-test-cvxpy = ["cvxpy >= 1.6.5, < 1.7"]
|
148
149
|
zzz-test-dataclasses = [
|
149
150
|
"orjson >= 3.10.15, < 3.11",
|
150
151
|
"polars-lts-cpu >= 1.30.0, < 1.31",
|
151
|
-
"whenever >= 0.8.
|
152
|
+
"whenever >= 0.8.5, < 0.9",
|
152
153
|
]
|
153
154
|
zzz-test-datetime = [
|
154
155
|
"tzlocal >= 5.3.1, < 5.4",
|
155
|
-
"whenever >= 0.8.
|
156
|
+
"whenever >= 0.8.5, < 0.9",
|
156
157
|
]
|
157
158
|
zzz-test-enum = []
|
158
159
|
zzz-test-errors = []
|
@@ -173,12 +174,12 @@ zzz-test-git = []
|
|
173
174
|
zzz-test-hashlib = [
|
174
175
|
"polars-lts-cpu >= 1.30.0, < 1.31",
|
175
176
|
"orjson >= 3.10.15, < 3.11",
|
176
|
-
"whenever >= 0.8.
|
177
|
+
"whenever >= 0.8.5, < 0.9",
|
177
178
|
]
|
178
179
|
zzz-test-http = [
|
179
180
|
"atomicwrites >= 1.4.1, < 1.5",
|
180
181
|
"orjson >= 3.10.18, < 3.11",
|
181
|
-
"whenever >= 0.8.
|
182
|
+
"whenever >= 0.8.5, < 0.9",
|
182
183
|
]
|
183
184
|
zzz-test-hypothesis = [
|
184
185
|
"aiosqlite >= 0.21.0, < 0.22",
|
@@ -192,12 +193,12 @@ zzz-test-hypothesis = [
|
|
192
193
|
"sqlalchemy >= 2.0.41, < 2.1",
|
193
194
|
"tenacity >= 8.5.0, < 9.0", # limited by luigi
|
194
195
|
"tzlocal >= 5.3.1, < 5.4",
|
195
|
-
"whenever >= 0.8.
|
196
|
+
"whenever >= 0.8.5, < 0.9",
|
196
197
|
]
|
197
198
|
zzz-test-ipython = ["ipython >= 9.0.1, < 9.1"]
|
198
199
|
zzz-test-iterables = [
|
199
200
|
"polars-lts-cpu >= 1.30.0, < 1.31",
|
200
|
-
"whenever >= 0.8.
|
201
|
+
"whenever >= 0.8.5, < 0.9",
|
201
202
|
]
|
202
203
|
zzz-test-jupyter = [
|
203
204
|
"jupyterlab >= 4.2.0, < 4.3",
|
@@ -210,12 +211,12 @@ zzz-test-logging = [
|
|
210
211
|
"rich >= 14.0.0, < 14.1",
|
211
212
|
"tomlkit >= 0.13.2, < 0.14",
|
212
213
|
"tzlocal >= 5.3.1, < 5.4",
|
213
|
-
"whenever >= 0.8.
|
214
|
+
"whenever >= 0.8.5, < 0.9",
|
214
215
|
]
|
215
216
|
zzz-test-loguru = ["loguru >= 0.7.3, < 0.8"]
|
216
217
|
zzz-test-luigi = [
|
217
218
|
"luigi >= 3.6.0, < 3.7",
|
218
|
-
"whenever >= 0.8.
|
219
|
+
"whenever >= 0.8.5, < 0.9",
|
219
220
|
]
|
220
221
|
zzz-test-math = ["numpy >= 2.3.0, < 2.4"]
|
221
222
|
zzz-test-memory-profiler = ["memory-profiler >= 0.61.0, < 0.62"]
|
@@ -224,7 +225,7 @@ zzz-test-more-itertools = ["more-itertools >= 10.7.0, < 10.8"]
|
|
224
225
|
zzz-test-numpy = ["numpy >= 2.3.0, < 2.4"]
|
225
226
|
zzz-test-operator = [
|
226
227
|
"polars-lts-cpu >= 1.30.0, < 1.31",
|
227
|
-
"whenever >= 0.8.
|
228
|
+
"whenever >= 0.8.5, < 0.9",
|
228
229
|
]
|
229
230
|
zzz-test-optuna = ["optuna >= 4.3.0, < 4.4"]
|
230
231
|
zzz-test-orjson = [
|
@@ -232,7 +233,7 @@ zzz-test-orjson = [
|
|
232
233
|
"polars-lts-cpu >= 1.30.0, < 1.31",
|
233
234
|
"rich >= 14.0.0, < 14.1",
|
234
235
|
"tzlocal >= 5.3.1, < 5.4",
|
235
|
-
"whenever >= 0.8.
|
236
|
+
"whenever >= 0.8.5, < 0.9",
|
236
237
|
]
|
237
238
|
zzz-test-os = []
|
238
239
|
zzz-test-pathlib = []
|
@@ -240,7 +241,7 @@ zzz-test-pickle = ["atomicwrites >= 1.4.1, < 1.5"]
|
|
240
241
|
zzz-test-platform = []
|
241
242
|
zzz-test-polars = [
|
242
243
|
"polars-lts-cpu >= 1.30.0, < 1.31",
|
243
|
-
"whenever >= 0.8.
|
244
|
+
"whenever >= 0.8.5, < 0.9",
|
244
245
|
]
|
245
246
|
zzz-test-pqdm = ["pqdm >= 0.2.0, < 0.3"]
|
246
247
|
zzz-test-pydantic = [
|
@@ -256,12 +257,12 @@ zzz-test-pyrsistent = ["pyrsistent >= 0.20.0, < 0.21"]
|
|
256
257
|
zzz-test-pytest = [
|
257
258
|
"atomicwrites >= 1.4.1, < 1.5",
|
258
259
|
"orjson >= 3.10.18, < 3.11",
|
259
|
-
"whenever >= 0.8.
|
260
|
+
"whenever >= 0.8.5, < 0.9",
|
260
261
|
]
|
261
262
|
zzz-test-pytest-regressions = ["pytest-regressions >= 2.8.0, < 2.9"]
|
262
263
|
zzz-test-python-dotenv = [
|
263
264
|
"python-dotenv >= 1.1.0, < 1.2",
|
264
|
-
"whenever >= 0.8.
|
265
|
+
"whenever >= 0.8.5, < 0.9",
|
265
266
|
]
|
266
267
|
zzz-test-random = []
|
267
268
|
zzz-test-re = []
|
@@ -272,14 +273,14 @@ zzz-test-redis = [
|
|
272
273
|
"rich >= 14.0.0, < 14.1",
|
273
274
|
"tenacity >= 8.5.0, < 9.0", # limited by luigi
|
274
275
|
"tzlocal >= 5.3.1, < 5.4",
|
275
|
-
"whenever >= 0.8.
|
276
|
+
"whenever >= 0.8.5, < 0.9",
|
276
277
|
]
|
277
278
|
zzz-test-rich = ["rich >= 14.0.0, < 14.1"]
|
278
279
|
zzz-test-scipy = ["scipy >= 1.15.3, < 1.16"]
|
279
280
|
zzz-test-sentinel = []
|
280
281
|
zzz-test-shelve = []
|
281
282
|
zzz-test-slack-sdk = [
|
282
|
-
"aiohttp >= 3.12.
|
283
|
+
"aiohttp >= 3.12.12, < 3.13", # for slack
|
283
284
|
"slack-sdk >= 3.35.0, < 3.36",
|
284
285
|
]
|
285
286
|
zzz-test-socket = []
|
@@ -299,7 +300,7 @@ zzz-test-sqlalchemy-polars = [
|
|
299
300
|
"polars-lts-cpu >= 1.30.0, < 1.31",
|
300
301
|
"sqlalchemy >= 2.0.41, < 2.1",
|
301
302
|
"tenacity >= 8.5.0, < 9.0", # limited by luigi
|
302
|
-
"whenever >= 0.8.
|
303
|
+
"whenever >= 0.8.5, < 0.9",
|
303
304
|
]
|
304
305
|
zzz-test-streamlit = ["streamlit >= 1.45.0, < 1.46"]
|
305
306
|
zzz-test-sys = [
|
@@ -307,7 +308,7 @@ zzz-test-sys = [
|
|
307
308
|
"rich >= 14.0.0, < 14.1",
|
308
309
|
"tomlkit >= 0.13.2, < 0.14",
|
309
310
|
"tzlocal >= 5.3.1, < 5.4",
|
310
|
-
"whenever >= 0.8.
|
311
|
+
"whenever >= 0.8.5, < 0.9",
|
311
312
|
]
|
312
313
|
zzz-test-tempfile = []
|
313
314
|
zzz-test-tenacity = [
|
@@ -320,22 +321,22 @@ zzz-test-traceback = [
|
|
320
321
|
"rich >= 14.0.0, < 14.1",
|
321
322
|
"tomlkit >= 0.13.2, < 0.14",
|
322
323
|
"tzlocal >= 5.3.1, < 5.4",
|
323
|
-
"whenever >= 0.8.
|
324
|
+
"whenever >= 0.8.5, < 0.9",
|
324
325
|
]
|
325
326
|
zzz-test-types = []
|
326
327
|
zzz-test-typing = [
|
327
328
|
"polars-lts-cpu >= 1.30.0, < 1.31",
|
328
|
-
"whenever >= 0.8.
|
329
|
+
"whenever >= 0.8.5, < 0.9",
|
329
330
|
]
|
330
331
|
zzz-test-tzlocal = ["tzlocal >= 5.3.1, < 5.4"]
|
331
332
|
zzz-test-uuid = []
|
332
333
|
zzz-test-version = ["tomlkit >= 0.13.2, < 0.14"]
|
333
334
|
zzz-test-warnings = []
|
334
|
-
zzz-test-whenever = ["whenever >= 0.8.
|
335
|
+
zzz-test-whenever = ["whenever >= 0.8.5, < 0.9"]
|
335
336
|
zzz-test-zipfile = []
|
336
337
|
zzz-test-zoneinfo = [
|
337
338
|
"tzdata >= 2025.2, < 2025.3",
|
338
|
-
"whenever >= 0.8.
|
339
|
+
"whenever >= 0.8.5, < 0.9",
|
339
340
|
]
|
340
341
|
|
341
342
|
[project.scripts]
|
@@ -343,7 +344,7 @@ zzz-test-zoneinfo = [
|
|
343
344
|
# bump-my-version
|
344
345
|
[tool.bumpversion]
|
345
346
|
allow_dirty = true
|
346
|
-
current_version = "0.129.
|
347
|
+
current_version = "0.129.15"
|
347
348
|
|
348
349
|
[[tool.bumpversion.files]]
|
349
350
|
filename = "src/utilities/__init__.py"
|
@@ -0,0 +1,20 @@
|
|
1
|
+
from __future__ import annotations
|
2
|
+
|
3
|
+
from pytest import mark, param
|
4
|
+
|
5
|
+
from utilities.inflect import counted_noun
|
6
|
+
|
7
|
+
|
8
|
+
class TestCountedNoun:
|
9
|
+
@mark.parametrize(
|
10
|
+
("num", "expected"),
|
11
|
+
[
|
12
|
+
param(0, "0 words"),
|
13
|
+
param(1, "1 word"),
|
14
|
+
param(2, "2 words"),
|
15
|
+
param(3, "3 words"),
|
16
|
+
],
|
17
|
+
)
|
18
|
+
def test_main(self, *, num: int, expected: str) -> None:
|
19
|
+
result = counted_noun(num, "word")
|
20
|
+
assert result == expected
|
@@ -55,7 +55,12 @@ from utilities.errors import repr_error
|
|
55
55
|
from utilities.functions import ensure_int, ensure_not_none
|
56
56
|
from utilities.random import SYSTEM_RANDOM
|
57
57
|
from utilities.sentinel import Sentinel, sentinel
|
58
|
-
from utilities.types import
|
58
|
+
from utilities.types import (
|
59
|
+
MaybeCallableEvent,
|
60
|
+
MaybeType,
|
61
|
+
THashable,
|
62
|
+
TSupportsRichComparison,
|
63
|
+
)
|
59
64
|
|
60
65
|
if TYPE_CHECKING:
|
61
66
|
import datetime as dt
|
@@ -239,7 +244,7 @@ class EnhancedTaskGroup(TaskGroup):
|
|
239
244
|
|
240
245
|
_semaphore: Semaphore | None
|
241
246
|
_timeout: Duration | None
|
242
|
-
_error:
|
247
|
+
_error: MaybeType[BaseException]
|
243
248
|
_stack: AsyncExitStack
|
244
249
|
_timeout_cm: _AsyncGeneratorContextManager[None] | None
|
245
250
|
|
@@ -249,7 +254,7 @@ class EnhancedTaskGroup(TaskGroup):
|
|
249
254
|
*,
|
250
255
|
max_tasks: int | None = None,
|
251
256
|
timeout: Duration | None = None,
|
252
|
-
error:
|
257
|
+
error: MaybeType[BaseException] = TimeoutError,
|
253
258
|
) -> None:
|
254
259
|
super().__init__()
|
255
260
|
self._semaphore = None if max_tasks is None else Semaphore(max_tasks)
|
@@ -1051,7 +1056,7 @@ async def _stream_one(
|
|
1051
1056
|
|
1052
1057
|
@asynccontextmanager
|
1053
1058
|
async def timeout_dur(
|
1054
|
-
*, duration: Duration | None = None, error:
|
1059
|
+
*, duration: Duration | None = None, error: MaybeType[BaseException] = TimeoutError
|
1055
1060
|
) -> AsyncIterator[None]:
|
1056
1061
|
"""Timeout context manager which accepts durations."""
|
1057
1062
|
delay = None if duration is None else datetime_duration_to_float(duration)
|
@@ -0,0 +1,17 @@
|
|
1
|
+
from __future__ import annotations
|
2
|
+
|
3
|
+
from typing import cast
|
4
|
+
|
5
|
+
from inflect import Word, engine
|
6
|
+
|
7
|
+
_ENGINE = engine()
|
8
|
+
|
9
|
+
|
10
|
+
def counted_noun(num: int, noun: str, /) -> str:
|
11
|
+
"""Construct a counted noun."""
|
12
|
+
word = cast("Word", noun)
|
13
|
+
sin_or_plu = _ENGINE.plural_noun(word, count=num)
|
14
|
+
return f"{num} {sin_or_plu}"
|
15
|
+
|
16
|
+
|
17
|
+
__all__ = ["counted_noun"]
|
@@ -53,7 +53,7 @@ if TYPE_CHECKING:
|
|
53
53
|
from redis.typing import EncodableT, ResponseT
|
54
54
|
|
55
55
|
from utilities.iterables import MaybeIterable
|
56
|
-
from utilities.types import Duration, TypeLike
|
56
|
+
from utilities.types import Duration, MaybeType, TypeLike
|
57
57
|
|
58
58
|
|
59
59
|
_K = TypeVar("_K")
|
@@ -90,7 +90,7 @@ class RedisHashMapKey(Generic[_K, _V]):
|
|
90
90
|
value_serializer: Callable[[_V], bytes] | None = None
|
91
91
|
value_deserializer: Callable[[bytes], _V] | None = None
|
92
92
|
timeout: Duration | None = None
|
93
|
-
error:
|
93
|
+
error: MaybeType[BaseException] = TimeoutError
|
94
94
|
ttl: Duration | None = None
|
95
95
|
|
96
96
|
async def delete(self, redis: Redis, key: _K, /) -> int:
|
@@ -402,7 +402,7 @@ class RedisKey(Generic[_T]):
|
|
402
402
|
serializer: Callable[[_T], bytes] | None = None
|
403
403
|
deserializer: Callable[[bytes], _T] | None = None
|
404
404
|
timeout: Duration | None = None
|
405
|
-
error:
|
405
|
+
error: MaybeType[BaseException] = TimeoutError
|
406
406
|
ttl: Duration | None = None
|
407
407
|
|
408
408
|
async def delete(self, redis: Redis, /) -> int:
|
@@ -82,7 +82,13 @@ from utilities.iterables import (
|
|
82
82
|
)
|
83
83
|
from utilities.reprlib import get_repr
|
84
84
|
from utilities.text import snake_case
|
85
|
-
from utilities.types import
|
85
|
+
from utilities.types import (
|
86
|
+
Duration,
|
87
|
+
MaybeIterable,
|
88
|
+
MaybeType,
|
89
|
+
StrMapping,
|
90
|
+
TupleOrStrMapping,
|
91
|
+
)
|
86
92
|
|
87
93
|
_T = TypeVar("_T")
|
88
94
|
type _EngineOrConnectionOrAsync = Engine | Connection | AsyncEngine | AsyncConnection
|
@@ -830,7 +836,7 @@ async def yield_connection(
|
|
830
836
|
/,
|
831
837
|
*,
|
832
838
|
timeout: Duration | None = None,
|
833
|
-
error:
|
839
|
+
error: MaybeType[BaseException] = TimeoutError,
|
834
840
|
) -> AsyncIterator[AsyncConnection]:
|
835
841
|
"""Yield an async connection."""
|
836
842
|
async with timeout_dur(duration=timeout, error=error), engine.begin() as conn:
|
@@ -68,7 +68,7 @@ if TYPE_CHECKING:
|
|
68
68
|
from tenacity.wait import WaitBaseT
|
69
69
|
|
70
70
|
import utilities.types
|
71
|
-
from utilities.types import TimeZoneLike
|
71
|
+
from utilities.types import MaybeType, TimeZoneLike
|
72
72
|
|
73
73
|
|
74
74
|
async def insert_dataframe(
|
@@ -303,7 +303,7 @@ async def select_to_dataframe(
|
|
303
303
|
in_clauses_chunk_size: int | None = None,
|
304
304
|
chunk_size_frac: float = CHUNK_SIZE_FRAC,
|
305
305
|
timeout: utilities.types.Duration | None = None,
|
306
|
-
error:
|
306
|
+
error: MaybeType[BaseException] = TimeoutError,
|
307
307
|
**kwargs: Any,
|
308
308
|
) -> DataFrame | Iterable[DataFrame] | AsyncIterable[DataFrame]:
|
309
309
|
"""Read a table from a database into a DataFrame."""
|
File without changes
|
File without changes
|
File without changes
|
File without changes
|
File without changes
|
File without changes
|
{dycw_utilities-0.129.13 → dycw_utilities-0.129.15}/src/tests/modules/package_missing/__init__.py
RENAMED
File without changes
|
{dycw_utilities-0.129.13 → dycw_utilities-0.129.15}/src/tests/modules/package_missing/module.py
RENAMED
File without changes
|
{dycw_utilities-0.129.13 → dycw_utilities-0.129.15}/src/tests/modules/package_with/__init__.py
RENAMED
File without changes
|
{dycw_utilities-0.129.13 → dycw_utilities-0.129.15}/src/tests/modules/package_with/outer_1.py
RENAMED
File without changes
|
{dycw_utilities-0.129.13 → dycw_utilities-0.129.15}/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.129.13 → dycw_utilities-0.129.15}/src/tests/modules/package_without/__init__.py
RENAMED
File without changes
|
{dycw_utilities-0.129.13 → dycw_utilities-0.129.15}/src/tests/modules/package_without/module_1.py
RENAMED
File without changes
|
{dycw_utilities-0.129.13 → dycw_utilities-0.129.15}/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
|