dycw-utilities 0.109.21__tar.gz → 0.109.22__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.109.21 → dycw_utilities-0.109.22}/PKG-INFO +3 -3
- {dycw_utilities-0.109.21 → dycw_utilities-0.109.22}/pyproject.toml +5 -5
- {dycw_utilities-0.109.21 → dycw_utilities-0.109.22}/src/tests/test_polars.py +8 -0
- {dycw_utilities-0.109.21 → dycw_utilities-0.109.22}/src/tests/test_statsmodel.py +8 -1
- {dycw_utilities-0.109.21 → dycw_utilities-0.109.22}/src/utilities/__init__.py +1 -1
- {dycw_utilities-0.109.21 → dycw_utilities-0.109.22}/src/utilities/polars.py +31 -0
- {dycw_utilities-0.109.21 → dycw_utilities-0.109.22}/src/utilities/statsmodels.py +34 -1
- {dycw_utilities-0.109.21 → dycw_utilities-0.109.22}/.gitignore +0 -0
- {dycw_utilities-0.109.21 → dycw_utilities-0.109.22}/LICENSE +0 -0
- {dycw_utilities-0.109.21 → dycw_utilities-0.109.22}/README.md +0 -0
- {dycw_utilities-0.109.21 → dycw_utilities-0.109.22}/src/tests/__init__.py +0 -0
- {dycw_utilities-0.109.21 → dycw_utilities-0.109.22}/src/tests/conftest.py +0 -0
- {dycw_utilities-0.109.21 → dycw_utilities-0.109.22}/src/tests/modules/__init__.py +0 -0
- {dycw_utilities-0.109.21 → dycw_utilities-0.109.22}/src/tests/modules/package_missing/__init__.py +0 -0
- {dycw_utilities-0.109.21 → dycw_utilities-0.109.22}/src/tests/modules/package_missing/module.py +0 -0
- {dycw_utilities-0.109.21 → dycw_utilities-0.109.22}/src/tests/modules/package_with/__init__.py +0 -0
- {dycw_utilities-0.109.21 → dycw_utilities-0.109.22}/src/tests/modules/package_with/outer_1.py +0 -0
- {dycw_utilities-0.109.21 → dycw_utilities-0.109.22}/src/tests/modules/package_with/outer_2.py +0 -0
- {dycw_utilities-0.109.21 → dycw_utilities-0.109.22}/src/tests/modules/package_with/subpackage/__init__.py +0 -0
- {dycw_utilities-0.109.21 → dycw_utilities-0.109.22}/src/tests/modules/package_with/subpackage/inner_1.py +0 -0
- {dycw_utilities-0.109.21 → dycw_utilities-0.109.22}/src/tests/modules/package_with/subpackage/inner_2.py +0 -0
- {dycw_utilities-0.109.21 → dycw_utilities-0.109.22}/src/tests/modules/package_with/subpackage/inner_3.py +0 -0
- {dycw_utilities-0.109.21 → dycw_utilities-0.109.22}/src/tests/modules/package_without/__init__.py +0 -0
- {dycw_utilities-0.109.21 → dycw_utilities-0.109.22}/src/tests/modules/package_without/module_1.py +0 -0
- {dycw_utilities-0.109.21 → dycw_utilities-0.109.22}/src/tests/modules/package_without/module_2.py +0 -0
- {dycw_utilities-0.109.21 → dycw_utilities-0.109.22}/src/tests/modules/standalone.py +0 -0
- {dycw_utilities-0.109.21 → dycw_utilities-0.109.22}/src/tests/modules/with_imports.py +0 -0
- {dycw_utilities-0.109.21 → dycw_utilities-0.109.22}/src/tests/regressions/test_pytest_regressions/TestMultipleRegressionFixtures__test_main__obj.json +0 -0
- {dycw_utilities-0.109.21 → dycw_utilities-0.109.22}/src/tests/regressions/test_pytest_regressions/TestMultipleRegressionFixtures__test_main__series.json +0 -0
- {dycw_utilities-0.109.21 → dycw_utilities-0.109.22}/src/tests/regressions/test_pytest_regressions/TestOrjsonRegressionFixture__test_dataclass_int.json +0 -0
- {dycw_utilities-0.109.21 → dycw_utilities-0.109.22}/src/tests/regressions/test_pytest_regressions/TestOrjsonRegressionFixture__test_dataclass_literal__false.json +0 -0
- {dycw_utilities-0.109.21 → dycw_utilities-0.109.22}/src/tests/regressions/test_pytest_regressions/TestOrjsonRegressionFixture__test_dataclass_literal__true.json +0 -0
- {dycw_utilities-0.109.21 → dycw_utilities-0.109.22}/src/tests/regressions/test_pytest_regressions/TestOrjsonRegressionFixture__test_dataclass_nested.json +0 -0
- {dycw_utilities-0.109.21 → dycw_utilities-0.109.22}/src/tests/regressions/test_pytest_regressions/TestPolarsRegressionFixture__test_dataframe.json +0 -0
- {dycw_utilities-0.109.21 → dycw_utilities-0.109.22}/src/tests/regressions/test_pytest_regressions/TestPolarsRegressionFixture__test_series.json +0 -0
- {dycw_utilities-0.109.21 → dycw_utilities-0.109.22}/src/tests/scripts/__init__.py +0 -0
- {dycw_utilities-0.109.21 → dycw_utilities-0.109.22}/src/tests/scripts/test_async_service/__init__.py +0 -0
- {dycw_utilities-0.109.21 → dycw_utilities-0.109.22}/src/tests/scripts/test_async_service/__main__.py +0 -0
- {dycw_utilities-0.109.21 → dycw_utilities-0.109.22}/src/tests/scripts/test_async_service/run.sh +0 -0
- {dycw_utilities-0.109.21 → dycw_utilities-0.109.22}/src/tests/scripts/test_queue_processor/__init__.py +0 -0
- {dycw_utilities-0.109.21 → dycw_utilities-0.109.22}/src/tests/scripts/test_queue_processor/__main__.py +0 -0
- {dycw_utilities-0.109.21 → dycw_utilities-0.109.22}/src/tests/scripts/test_queue_processor/run.sh +0 -0
- {dycw_utilities-0.109.21 → dycw_utilities-0.109.22}/src/tests/test_altair.py +0 -0
- {dycw_utilities-0.109.21 → dycw_utilities-0.109.22}/src/tests/test_astor.py +0 -0
- {dycw_utilities-0.109.21 → dycw_utilities-0.109.22}/src/tests/test_asyncio.py +0 -0
- {dycw_utilities-0.109.21 → dycw_utilities-0.109.22}/src/tests/test_atomicwrites.py +0 -0
- {dycw_utilities-0.109.21 → dycw_utilities-0.109.22}/src/tests/test_atools.py +0 -0
- {dycw_utilities-0.109.21 → dycw_utilities-0.109.22}/src/tests/test_cachetools.py +0 -0
- {dycw_utilities-0.109.21 → dycw_utilities-0.109.22}/src/tests/test_click.py +0 -0
- {dycw_utilities-0.109.21 → dycw_utilities-0.109.22}/src/tests/test_concurrent.py +0 -0
- {dycw_utilities-0.109.21 → dycw_utilities-0.109.22}/src/tests/test_contextlib.py +0 -0
- {dycw_utilities-0.109.21 → dycw_utilities-0.109.22}/src/tests/test_contextvars.py +0 -0
- {dycw_utilities-0.109.21 → dycw_utilities-0.109.22}/src/tests/test_cryptography.py +0 -0
- {dycw_utilities-0.109.21 → dycw_utilities-0.109.22}/src/tests/test_cvxpy.py +0 -0
- {dycw_utilities-0.109.21 → dycw_utilities-0.109.22}/src/tests/test_dataclasses.py +0 -0
- {dycw_utilities-0.109.21 → dycw_utilities-0.109.22}/src/tests/test_datetime.py +0 -0
- {dycw_utilities-0.109.21 → dycw_utilities-0.109.22}/src/tests/test_enum.py +0 -0
- {dycw_utilities-0.109.21 → dycw_utilities-0.109.22}/src/tests/test_errors.py +0 -0
- {dycw_utilities-0.109.21 → dycw_utilities-0.109.22}/src/tests/test_eventkit.py +0 -0
- {dycw_utilities-0.109.21 → dycw_utilities-0.109.22}/src/tests/test_fastapi.py +0 -0
- {dycw_utilities-0.109.21 → dycw_utilities-0.109.22}/src/tests/test_fpdf2.py +0 -0
- {dycw_utilities-0.109.21 → dycw_utilities-0.109.22}/src/tests/test_functions.py +0 -0
- {dycw_utilities-0.109.21 → dycw_utilities-0.109.22}/src/tests/test_functools.py +0 -0
- {dycw_utilities-0.109.21 → dycw_utilities-0.109.22}/src/tests/test_getpass.py +0 -0
- {dycw_utilities-0.109.21 → dycw_utilities-0.109.22}/src/tests/test_git.py +0 -0
- {dycw_utilities-0.109.21 → dycw_utilities-0.109.22}/src/tests/test_hashlib.py +0 -0
- {dycw_utilities-0.109.21 → dycw_utilities-0.109.22}/src/tests/test_http.py +0 -0
- {dycw_utilities-0.109.21 → dycw_utilities-0.109.22}/src/tests/test_hypothesis.py +0 -0
- {dycw_utilities-0.109.21 → dycw_utilities-0.109.22}/src/tests/test_ipython.py +0 -0
- {dycw_utilities-0.109.21 → dycw_utilities-0.109.22}/src/tests/test_iterables.py +0 -0
- {dycw_utilities-0.109.21 → dycw_utilities-0.109.22}/src/tests/test_jupyter.py +0 -0
- {dycw_utilities-0.109.21 → dycw_utilities-0.109.22}/src/tests/test_lightweight_charts.py +0 -0
- {dycw_utilities-0.109.21 → dycw_utilities-0.109.22}/src/tests/test_logging.py +0 -0
- {dycw_utilities-0.109.21 → dycw_utilities-0.109.22}/src/tests/test_loguru.py +0 -0
- {dycw_utilities-0.109.21 → dycw_utilities-0.109.22}/src/tests/test_luigi.py +0 -0
- {dycw_utilities-0.109.21 → dycw_utilities-0.109.22}/src/tests/test_math.py +0 -0
- {dycw_utilities-0.109.21 → dycw_utilities-0.109.22}/src/tests/test_memory_profiler.py +0 -0
- {dycw_utilities-0.109.21 → dycw_utilities-0.109.22}/src/tests/test_modules.py +0 -0
- {dycw_utilities-0.109.21 → dycw_utilities-0.109.22}/src/tests/test_more_itertools.py +0 -0
- {dycw_utilities-0.109.21 → dycw_utilities-0.109.22}/src/tests/test_numpy.py +0 -0
- {dycw_utilities-0.109.21 → dycw_utilities-0.109.22}/src/tests/test_operator.py +0 -0
- {dycw_utilities-0.109.21 → dycw_utilities-0.109.22}/src/tests/test_optuna.py +0 -0
- {dycw_utilities-0.109.21 → dycw_utilities-0.109.22}/src/tests/test_orjson.py +0 -0
- {dycw_utilities-0.109.21 → dycw_utilities-0.109.22}/src/tests/test_os.py +0 -0
- {dycw_utilities-0.109.21 → dycw_utilities-0.109.22}/src/tests/test_parse.py +0 -0
- {dycw_utilities-0.109.21 → dycw_utilities-0.109.22}/src/tests/test_pathlib.py +0 -0
- {dycw_utilities-0.109.21 → dycw_utilities-0.109.22}/src/tests/test_period.py +0 -0
- {dycw_utilities-0.109.21 → dycw_utilities-0.109.22}/src/tests/test_pickle.py +0 -0
- {dycw_utilities-0.109.21 → dycw_utilities-0.109.22}/src/tests/test_platform.py +0 -0
- {dycw_utilities-0.109.21 → dycw_utilities-0.109.22}/src/tests/test_polars_ols.py +0 -0
- {dycw_utilities-0.109.21 → dycw_utilities-0.109.22}/src/tests/test_pqdm.py +0 -0
- {dycw_utilities-0.109.21 → dycw_utilities-0.109.22}/src/tests/test_pydantic.py +0 -0
- {dycw_utilities-0.109.21 → dycw_utilities-0.109.22}/src/tests/test_pyinstrument.py +0 -0
- {dycw_utilities-0.109.21 → dycw_utilities-0.109.22}/src/tests/test_pyrsistent.py +0 -0
- {dycw_utilities-0.109.21 → dycw_utilities-0.109.22}/src/tests/test_pytest.py +0 -0
- {dycw_utilities-0.109.21 → dycw_utilities-0.109.22}/src/tests/test_pytest_regressions.py +0 -0
- {dycw_utilities-0.109.21 → dycw_utilities-0.109.22}/src/tests/test_python_dotenv.py +0 -0
- {dycw_utilities-0.109.21 → dycw_utilities-0.109.22}/src/tests/test_random.py +0 -0
- {dycw_utilities-0.109.21 → dycw_utilities-0.109.22}/src/tests/test_re.py +0 -0
- {dycw_utilities-0.109.21 → dycw_utilities-0.109.22}/src/tests/test_redis.py +0 -0
- {dycw_utilities-0.109.21 → dycw_utilities-0.109.22}/src/tests/test_reprlib.py +0 -0
- {dycw_utilities-0.109.21 → dycw_utilities-0.109.22}/src/tests/test_rich.py +0 -0
- {dycw_utilities-0.109.21 → dycw_utilities-0.109.22}/src/tests/test_scipy.py +0 -0
- {dycw_utilities-0.109.21 → dycw_utilities-0.109.22}/src/tests/test_sentinel.py +0 -0
- {dycw_utilities-0.109.21 → dycw_utilities-0.109.22}/src/tests/test_shelve.py +0 -0
- {dycw_utilities-0.109.21 → dycw_utilities-0.109.22}/src/tests/test_slack_sdk.py +0 -0
- {dycw_utilities-0.109.21 → dycw_utilities-0.109.22}/src/tests/test_socket.py +0 -0
- {dycw_utilities-0.109.21 → dycw_utilities-0.109.22}/src/tests/test_sqlalchemy.py +0 -0
- {dycw_utilities-0.109.21 → dycw_utilities-0.109.22}/src/tests/test_sqlalchemy_polars.py +0 -0
- {dycw_utilities-0.109.21 → dycw_utilities-0.109.22}/src/tests/test_streamlit.py +0 -0
- {dycw_utilities-0.109.21 → dycw_utilities-0.109.22}/src/tests/test_sys.py +0 -0
- {dycw_utilities-0.109.21 → dycw_utilities-0.109.22}/src/tests/test_tempfile.py +0 -0
- {dycw_utilities-0.109.21 → dycw_utilities-0.109.22}/src/tests/test_tenacity.py +0 -0
- {dycw_utilities-0.109.21 → dycw_utilities-0.109.22}/src/tests/test_text.py +0 -0
- {dycw_utilities-0.109.21 → dycw_utilities-0.109.22}/src/tests/test_threading.py +0 -0
- {dycw_utilities-0.109.21 → dycw_utilities-0.109.22}/src/tests/test_timer.py +0 -0
- {dycw_utilities-0.109.21 → dycw_utilities-0.109.22}/src/tests/test_traceback.py +0 -0
- {dycw_utilities-0.109.21 → dycw_utilities-0.109.22}/src/tests/test_traceback_funcs/__init__.py +0 -0
- {dycw_utilities-0.109.21 → dycw_utilities-0.109.22}/src/tests/test_traceback_funcs/chain.py +0 -0
- {dycw_utilities-0.109.21 → dycw_utilities-0.109.22}/src/tests/test_traceback_funcs/decorated_async.py +0 -0
- {dycw_utilities-0.109.21 → dycw_utilities-0.109.22}/src/tests/test_traceback_funcs/decorated_sync.py +0 -0
- {dycw_utilities-0.109.21 → dycw_utilities-0.109.22}/src/tests/test_traceback_funcs/error_bind.py +0 -0
- {dycw_utilities-0.109.21 → dycw_utilities-0.109.22}/src/tests/test_traceback_funcs/many.py +0 -0
- {dycw_utilities-0.109.21 → dycw_utilities-0.109.22}/src/tests/test_traceback_funcs/one.py +0 -0
- {dycw_utilities-0.109.21 → dycw_utilities-0.109.22}/src/tests/test_traceback_funcs/recursive.py +0 -0
- {dycw_utilities-0.109.21 → dycw_utilities-0.109.22}/src/tests/test_traceback_funcs/task_group_one.py +0 -0
- {dycw_utilities-0.109.21 → dycw_utilities-0.109.22}/src/tests/test_traceback_funcs/task_group_two.py +0 -0
- {dycw_utilities-0.109.21 → dycw_utilities-0.109.22}/src/tests/test_traceback_funcs/two.py +0 -0
- {dycw_utilities-0.109.21 → dycw_utilities-0.109.22}/src/tests/test_traceback_funcs/untraced.py +0 -0
- {dycw_utilities-0.109.21 → dycw_utilities-0.109.22}/src/tests/test_types.py +0 -0
- {dycw_utilities-0.109.21 → dycw_utilities-0.109.22}/src/tests/test_typing.py +0 -0
- {dycw_utilities-0.109.21 → dycw_utilities-0.109.22}/src/tests/test_typing_funcs/__init__.py +0 -0
- {dycw_utilities-0.109.21 → dycw_utilities-0.109.22}/src/tests/test_typing_funcs/no_future.py +0 -0
- {dycw_utilities-0.109.21 → dycw_utilities-0.109.22}/src/tests/test_typing_funcs/with_future.py +0 -0
- {dycw_utilities-0.109.21 → dycw_utilities-0.109.22}/src/tests/test_tzdata.py +0 -0
- {dycw_utilities-0.109.21 → dycw_utilities-0.109.22}/src/tests/test_tzlocal.py +0 -0
- {dycw_utilities-0.109.21 → dycw_utilities-0.109.22}/src/tests/test_uuid.py +0 -0
- {dycw_utilities-0.109.21 → dycw_utilities-0.109.22}/src/tests/test_version.py +0 -0
- {dycw_utilities-0.109.21 → dycw_utilities-0.109.22}/src/tests/test_warnings.py +0 -0
- {dycw_utilities-0.109.21 → dycw_utilities-0.109.22}/src/tests/test_whenever.py +0 -0
- {dycw_utilities-0.109.21 → dycw_utilities-0.109.22}/src/tests/test_zipfile.py +0 -0
- {dycw_utilities-0.109.21 → dycw_utilities-0.109.22}/src/tests/test_zoneinfo.py +0 -0
- {dycw_utilities-0.109.21 → dycw_utilities-0.109.22}/src/utilities/altair.py +0 -0
- {dycw_utilities-0.109.21 → dycw_utilities-0.109.22}/src/utilities/astor.py +0 -0
- {dycw_utilities-0.109.21 → dycw_utilities-0.109.22}/src/utilities/asyncio.py +0 -0
- {dycw_utilities-0.109.21 → dycw_utilities-0.109.22}/src/utilities/atomicwrites.py +0 -0
- {dycw_utilities-0.109.21 → dycw_utilities-0.109.22}/src/utilities/atools.py +0 -0
- {dycw_utilities-0.109.21 → dycw_utilities-0.109.22}/src/utilities/cachetools.py +0 -0
- {dycw_utilities-0.109.21 → dycw_utilities-0.109.22}/src/utilities/click.py +0 -0
- {dycw_utilities-0.109.21 → dycw_utilities-0.109.22}/src/utilities/concurrent.py +0 -0
- {dycw_utilities-0.109.21 → dycw_utilities-0.109.22}/src/utilities/contextlib.py +0 -0
- {dycw_utilities-0.109.21 → dycw_utilities-0.109.22}/src/utilities/contextvars.py +0 -0
- {dycw_utilities-0.109.21 → dycw_utilities-0.109.22}/src/utilities/cryptography.py +0 -0
- {dycw_utilities-0.109.21 → dycw_utilities-0.109.22}/src/utilities/cvxpy.py +0 -0
- {dycw_utilities-0.109.21 → dycw_utilities-0.109.22}/src/utilities/dataclasses.py +0 -0
- {dycw_utilities-0.109.21 → dycw_utilities-0.109.22}/src/utilities/datetime.py +0 -0
- {dycw_utilities-0.109.21 → dycw_utilities-0.109.22}/src/utilities/enum.py +0 -0
- {dycw_utilities-0.109.21 → dycw_utilities-0.109.22}/src/utilities/errors.py +0 -0
- {dycw_utilities-0.109.21 → dycw_utilities-0.109.22}/src/utilities/eventkit.py +0 -0
- {dycw_utilities-0.109.21 → dycw_utilities-0.109.22}/src/utilities/fastapi.py +0 -0
- {dycw_utilities-0.109.21 → dycw_utilities-0.109.22}/src/utilities/fpdf2.py +0 -0
- {dycw_utilities-0.109.21 → dycw_utilities-0.109.22}/src/utilities/functions.py +0 -0
- {dycw_utilities-0.109.21 → dycw_utilities-0.109.22}/src/utilities/functools.py +0 -0
- {dycw_utilities-0.109.21 → dycw_utilities-0.109.22}/src/utilities/getpass.py +0 -0
- {dycw_utilities-0.109.21 → dycw_utilities-0.109.22}/src/utilities/git.py +0 -0
- {dycw_utilities-0.109.21 → dycw_utilities-0.109.22}/src/utilities/hashlib.py +0 -0
- {dycw_utilities-0.109.21 → dycw_utilities-0.109.22}/src/utilities/http.py +0 -0
- {dycw_utilities-0.109.21 → dycw_utilities-0.109.22}/src/utilities/hypothesis.py +0 -0
- {dycw_utilities-0.109.21 → dycw_utilities-0.109.22}/src/utilities/ipython.py +0 -0
- {dycw_utilities-0.109.21 → dycw_utilities-0.109.22}/src/utilities/iterables.py +0 -0
- {dycw_utilities-0.109.21 → dycw_utilities-0.109.22}/src/utilities/jupyter.py +0 -0
- {dycw_utilities-0.109.21 → dycw_utilities-0.109.22}/src/utilities/lightweight_charts.py +0 -0
- {dycw_utilities-0.109.21 → dycw_utilities-0.109.22}/src/utilities/logging.py +0 -0
- {dycw_utilities-0.109.21 → dycw_utilities-0.109.22}/src/utilities/loguru.py +0 -0
- {dycw_utilities-0.109.21 → dycw_utilities-0.109.22}/src/utilities/luigi.py +0 -0
- {dycw_utilities-0.109.21 → dycw_utilities-0.109.22}/src/utilities/math.py +0 -0
- {dycw_utilities-0.109.21 → dycw_utilities-0.109.22}/src/utilities/memory_profiler.py +0 -0
- {dycw_utilities-0.109.21 → dycw_utilities-0.109.22}/src/utilities/modules.py +0 -0
- {dycw_utilities-0.109.21 → dycw_utilities-0.109.22}/src/utilities/more_itertools.py +0 -0
- {dycw_utilities-0.109.21 → dycw_utilities-0.109.22}/src/utilities/numpy.py +0 -0
- {dycw_utilities-0.109.21 → dycw_utilities-0.109.22}/src/utilities/operator.py +0 -0
- {dycw_utilities-0.109.21 → dycw_utilities-0.109.22}/src/utilities/optuna.py +0 -0
- {dycw_utilities-0.109.21 → dycw_utilities-0.109.22}/src/utilities/orjson.py +0 -0
- {dycw_utilities-0.109.21 → dycw_utilities-0.109.22}/src/utilities/os.py +0 -0
- {dycw_utilities-0.109.21 → dycw_utilities-0.109.22}/src/utilities/parse.py +0 -0
- {dycw_utilities-0.109.21 → dycw_utilities-0.109.22}/src/utilities/pathlib.py +0 -0
- {dycw_utilities-0.109.21 → dycw_utilities-0.109.22}/src/utilities/period.py +0 -0
- {dycw_utilities-0.109.21 → dycw_utilities-0.109.22}/src/utilities/pickle.py +0 -0
- {dycw_utilities-0.109.21 → dycw_utilities-0.109.22}/src/utilities/platform.py +0 -0
- {dycw_utilities-0.109.21 → dycw_utilities-0.109.22}/src/utilities/polars_ols.py +0 -0
- {dycw_utilities-0.109.21 → dycw_utilities-0.109.22}/src/utilities/pqdm.py +0 -0
- {dycw_utilities-0.109.21 → dycw_utilities-0.109.22}/src/utilities/py.typed +0 -0
- {dycw_utilities-0.109.21 → dycw_utilities-0.109.22}/src/utilities/pydantic.py +0 -0
- {dycw_utilities-0.109.21 → dycw_utilities-0.109.22}/src/utilities/pyinstrument.py +0 -0
- {dycw_utilities-0.109.21 → dycw_utilities-0.109.22}/src/utilities/pyrsistent.py +0 -0
- {dycw_utilities-0.109.21 → dycw_utilities-0.109.22}/src/utilities/pytest.py +0 -0
- {dycw_utilities-0.109.21 → dycw_utilities-0.109.22}/src/utilities/pytest_regressions.py +0 -0
- {dycw_utilities-0.109.21 → dycw_utilities-0.109.22}/src/utilities/python_dotenv.py +0 -0
- {dycw_utilities-0.109.21 → dycw_utilities-0.109.22}/src/utilities/random.py +0 -0
- {dycw_utilities-0.109.21 → dycw_utilities-0.109.22}/src/utilities/re.py +0 -0
- {dycw_utilities-0.109.21 → dycw_utilities-0.109.22}/src/utilities/redis.py +0 -0
- {dycw_utilities-0.109.21 → dycw_utilities-0.109.22}/src/utilities/reprlib.py +0 -0
- {dycw_utilities-0.109.21 → dycw_utilities-0.109.22}/src/utilities/rich.py +0 -0
- {dycw_utilities-0.109.21 → dycw_utilities-0.109.22}/src/utilities/scipy.py +0 -0
- {dycw_utilities-0.109.21 → dycw_utilities-0.109.22}/src/utilities/sentinel.py +0 -0
- {dycw_utilities-0.109.21 → dycw_utilities-0.109.22}/src/utilities/shelve.py +0 -0
- {dycw_utilities-0.109.21 → dycw_utilities-0.109.22}/src/utilities/slack_sdk.py +0 -0
- {dycw_utilities-0.109.21 → dycw_utilities-0.109.22}/src/utilities/socket.py +0 -0
- {dycw_utilities-0.109.21 → dycw_utilities-0.109.22}/src/utilities/sqlalchemy.py +0 -0
- {dycw_utilities-0.109.21 → dycw_utilities-0.109.22}/src/utilities/sqlalchemy_polars.py +0 -0
- {dycw_utilities-0.109.21 → dycw_utilities-0.109.22}/src/utilities/streamlit.py +0 -0
- {dycw_utilities-0.109.21 → dycw_utilities-0.109.22}/src/utilities/sys.py +0 -0
- {dycw_utilities-0.109.21 → dycw_utilities-0.109.22}/src/utilities/tempfile.py +0 -0
- {dycw_utilities-0.109.21 → dycw_utilities-0.109.22}/src/utilities/tenacity.py +0 -0
- {dycw_utilities-0.109.21 → dycw_utilities-0.109.22}/src/utilities/text.py +0 -0
- {dycw_utilities-0.109.21 → dycw_utilities-0.109.22}/src/utilities/threading.py +0 -0
- {dycw_utilities-0.109.21 → dycw_utilities-0.109.22}/src/utilities/timer.py +0 -0
- {dycw_utilities-0.109.21 → dycw_utilities-0.109.22}/src/utilities/traceback.py +0 -0
- {dycw_utilities-0.109.21 → dycw_utilities-0.109.22}/src/utilities/types.py +0 -0
- {dycw_utilities-0.109.21 → dycw_utilities-0.109.22}/src/utilities/typing.py +0 -0
- {dycw_utilities-0.109.21 → dycw_utilities-0.109.22}/src/utilities/tzdata.py +0 -0
- {dycw_utilities-0.109.21 → dycw_utilities-0.109.22}/src/utilities/tzlocal.py +0 -0
- {dycw_utilities-0.109.21 → dycw_utilities-0.109.22}/src/utilities/uuid.py +0 -0
- {dycw_utilities-0.109.21 → dycw_utilities-0.109.22}/src/utilities/version.py +0 -0
- {dycw_utilities-0.109.21 → dycw_utilities-0.109.22}/src/utilities/warnings.py +0 -0
- {dycw_utilities-0.109.21 → dycw_utilities-0.109.22}/src/utilities/whenever.py +0 -0
- {dycw_utilities-0.109.21 → dycw_utilities-0.109.22}/src/utilities/zipfile.py +0 -0
- {dycw_utilities-0.109.21 → dycw_utilities-0.109.22}/src/utilities/zoneinfo.py +0 -0
@@ -1,12 +1,12 @@
|
|
1
1
|
Metadata-Version: 2.4
|
2
2
|
Name: dycw-utilities
|
3
|
-
Version: 0.109.
|
3
|
+
Version: 0.109.22
|
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.132,>=6.131.
|
9
|
+
Requires-Dist: hypothesis<6.132,>=6.131.9; extra == 'test'
|
10
10
|
Requires-Dist: pytest-asyncio<0.27,>=0.26.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'
|
@@ -80,7 +80,7 @@ Provides-Extra: zzz-test-hypothesis
|
|
80
80
|
Requires-Dist: aiosqlite<0.22,>=0.21.0; extra == 'zzz-test-hypothesis'
|
81
81
|
Requires-Dist: asyncpg<0.31,>=0.30.0; extra == 'zzz-test-hypothesis'
|
82
82
|
Requires-Dist: greenlet<3.3,>=3.2.0; extra == 'zzz-test-hypothesis'
|
83
|
-
Requires-Dist: hypothesis<6.132,>=6.131.
|
83
|
+
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'
|
@@ -27,7 +27,7 @@ dev = [
|
|
27
27
|
"fpdf2 >= 2.8.3, < 2.9",
|
28
28
|
"greenlet >= 3.2.0, < 3.3", # for sqlalchemy async
|
29
29
|
"httpx >= 0.28.1, < 0.29", # for fastapi
|
30
|
-
"hypothesis >= 6.131.
|
30
|
+
"hypothesis >= 6.131.9, < 6.132",
|
31
31
|
"img2pdf >= 0.6.0, < 0.7",
|
32
32
|
"lightweight-charts >= 2.1, < 2.2",
|
33
33
|
"loguru >= 0.7.3, < 0.8",
|
@@ -93,11 +93,11 @@ dependencies = [
|
|
93
93
|
name = "dycw-utilities"
|
94
94
|
readme = "README.md"
|
95
95
|
requires-python = ">= 3.12"
|
96
|
-
version = "0.109.
|
96
|
+
version = "0.109.22"
|
97
97
|
|
98
98
|
[project.optional-dependencies]
|
99
99
|
test = [
|
100
|
-
"hypothesis >= 6.131.
|
100
|
+
"hypothesis >= 6.131.9, < 6.132",
|
101
101
|
"pytest >= 8.3.5, < 8.4",
|
102
102
|
"pytest-asyncio >= 0.26.0, < 0.27",
|
103
103
|
"pytest-cov >= 6.1.1, < 6.2",
|
@@ -175,7 +175,7 @@ zzz-test-hypothesis = [
|
|
175
175
|
"aiosqlite >= 0.21.0, < 0.22",
|
176
176
|
"asyncpg >= 0.30.0, < 0.31", # for sqlalchemy async
|
177
177
|
"greenlet >= 3.2.0, < 3.3", # for sqlalchemy async
|
178
|
-
"hypothesis >= 6.131.
|
178
|
+
"hypothesis >= 6.131.9, < 6.132",
|
179
179
|
"luigi >= 3.6.0, < 3.7",
|
180
180
|
"numpy >= 2.2.5, < 2.3",
|
181
181
|
"pathvalidate >= 3.2.3, < 3.3",
|
@@ -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.109.
|
339
|
+
current_version = "0.109.22"
|
340
340
|
|
341
341
|
[[tool.bumpversion.files]]
|
342
342
|
filename = "src/utilities/__init__.py"
|
@@ -108,6 +108,7 @@ from utilities.polars import (
|
|
108
108
|
_InsertBetweenMissingColumnsError,
|
109
109
|
_InsertBetweenNonConsecutiveError,
|
110
110
|
_yield_struct_series_element_remove_nulls,
|
111
|
+
ac_halflife,
|
111
112
|
acf,
|
112
113
|
adjust_frequencies,
|
113
114
|
append_dataclass,
|
@@ -223,6 +224,13 @@ class TestACF:
|
|
223
224
|
)
|
224
225
|
|
225
226
|
|
227
|
+
class TestACHalfLife:
|
228
|
+
def test_main(self) -> None:
|
229
|
+
series = Series(linspace(0, 2 * pi, 1000))
|
230
|
+
halflife = ac_halflife(series)
|
231
|
+
assert halflife == 169.94
|
232
|
+
|
233
|
+
|
226
234
|
class TestAdjustFrequencies:
|
227
235
|
def test_main(self) -> None:
|
228
236
|
n = 1000
|
@@ -2,7 +2,7 @@ from __future__ import annotations
|
|
2
2
|
|
3
3
|
from numpy import allclose, isclose, linspace, pi
|
4
4
|
|
5
|
-
from utilities.statsmodels import acf
|
5
|
+
from utilities.statsmodels import ac_halflife, acf
|
6
6
|
|
7
7
|
|
8
8
|
class TestACF:
|
@@ -42,3 +42,10 @@ class TestACF:
|
|
42
42
|
assert isclose(qstat[-1], 27769.955439016478)
|
43
43
|
assert pvalues.shape == (30,)
|
44
44
|
assert isclose(pvalues[-1], 0.0)
|
45
|
+
|
46
|
+
|
47
|
+
class TestACHalfLife:
|
48
|
+
def test_main(self) -> None:
|
49
|
+
x = linspace(0, 2 * pi, 1000)
|
50
|
+
halflife = ac_halflife(x)
|
51
|
+
assert halflife == 169.94
|
@@ -140,6 +140,32 @@ DatetimeUSEastern = Datetime(time_zone="US/Eastern")
|
|
140
140
|
DatetimeUTC = Datetime(time_zone="UTC")
|
141
141
|
_FINITE_EWM_MIN_WEIGHT = 0.9999
|
142
142
|
|
143
|
+
##
|
144
|
+
|
145
|
+
|
146
|
+
def ac_halflife(
|
147
|
+
series: Series,
|
148
|
+
/,
|
149
|
+
*,
|
150
|
+
adjusted: bool = False,
|
151
|
+
fft: bool = True,
|
152
|
+
bartlett_confint: bool = True,
|
153
|
+
missing: ACFMissing = "none",
|
154
|
+
step: float = 0.01,
|
155
|
+
) -> float:
|
156
|
+
"""Compute the autocorrelation halflife."""
|
157
|
+
import utilities.statsmodels
|
158
|
+
|
159
|
+
array = series.to_numpy()
|
160
|
+
return utilities.statsmodels.ac_halflife(
|
161
|
+
array,
|
162
|
+
adjusted=adjusted,
|
163
|
+
fft=fft,
|
164
|
+
bartlett_confint=bartlett_confint,
|
165
|
+
missing=missing,
|
166
|
+
step=step,
|
167
|
+
)
|
168
|
+
|
143
169
|
|
144
170
|
##
|
145
171
|
|
@@ -223,6 +249,11 @@ def _acf_process_qstats_pvalues(qstats: NDArrayF, pvalues: NDArrayF, /) -> DataF
|
|
223
249
|
##
|
224
250
|
|
225
251
|
|
252
|
+
# def acf_halflife(series: Series,/)
|
253
|
+
|
254
|
+
##
|
255
|
+
|
256
|
+
|
226
257
|
def adjust_frequencies(
|
227
258
|
series: Series,
|
228
259
|
/,
|
@@ -2,12 +2,45 @@ from __future__ import annotations
|
|
2
2
|
|
3
3
|
from typing import TYPE_CHECKING, Any, Literal, cast, overload
|
4
4
|
|
5
|
+
import numpy as np
|
5
6
|
import statsmodels.tsa.stattools
|
7
|
+
from numpy import arange, argmax, interp, nan
|
8
|
+
|
9
|
+
from utilities.numpy import shift
|
6
10
|
|
7
11
|
if TYPE_CHECKING:
|
8
12
|
from utilities.numpy import NDArrayF
|
9
13
|
|
10
14
|
|
15
|
+
def ac_halflife(
|
16
|
+
array: NDArrayF,
|
17
|
+
/,
|
18
|
+
*,
|
19
|
+
adjusted: bool = False,
|
20
|
+
fft: bool = True,
|
21
|
+
bartlett_confint: bool = True,
|
22
|
+
missing: ACFMissing = "none",
|
23
|
+
step: float = 0.01,
|
24
|
+
) -> float:
|
25
|
+
"""Compute the autocorrelation halflife."""
|
26
|
+
(n,) = array.shape
|
27
|
+
acfs = acf(
|
28
|
+
array,
|
29
|
+
adjusted=adjusted,
|
30
|
+
nlags=n,
|
31
|
+
fft=fft,
|
32
|
+
bartlett_confint=bartlett_confint,
|
33
|
+
missing=missing,
|
34
|
+
)
|
35
|
+
lags = arange(0, n, step=step)
|
36
|
+
interp_acfs = interp(lags, arange(n), acfs)
|
37
|
+
is_half = (shift(interp_acfs) > 0.5) & (interp_acfs <= 0.5)
|
38
|
+
return lags[argmax(is_half)].item() if np.any(is_half) else nan
|
39
|
+
|
40
|
+
|
41
|
+
##
|
42
|
+
|
43
|
+
|
11
44
|
type ACFMissing = Literal["none", "raise", "conservative", "drop"]
|
12
45
|
|
13
46
|
|
@@ -114,4 +147,4 @@ def acf(
|
|
114
147
|
)
|
115
148
|
|
116
149
|
|
117
|
-
__all__ = ["ACFMissing", "acf"]
|
150
|
+
__all__ = ["ACFMissing", "ac_halflife", "acf"]
|
File without changes
|
File without changes
|
File without changes
|
File without changes
|
File without changes
|
File without changes
|
{dycw_utilities-0.109.21 → dycw_utilities-0.109.22}/src/tests/modules/package_missing/__init__.py
RENAMED
File without changes
|
{dycw_utilities-0.109.21 → dycw_utilities-0.109.22}/src/tests/modules/package_missing/module.py
RENAMED
File without changes
|
{dycw_utilities-0.109.21 → dycw_utilities-0.109.22}/src/tests/modules/package_with/__init__.py
RENAMED
File without changes
|
{dycw_utilities-0.109.21 → dycw_utilities-0.109.22}/src/tests/modules/package_with/outer_1.py
RENAMED
File without changes
|
{dycw_utilities-0.109.21 → dycw_utilities-0.109.22}/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.109.21 → dycw_utilities-0.109.22}/src/tests/modules/package_without/__init__.py
RENAMED
File without changes
|
{dycw_utilities-0.109.21 → dycw_utilities-0.109.22}/src/tests/modules/package_without/module_1.py
RENAMED
File without changes
|
{dycw_utilities-0.109.21 → dycw_utilities-0.109.22}/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.109.21 → dycw_utilities-0.109.22}/src/tests/scripts/test_async_service/__init__.py
RENAMED
File without changes
|
{dycw_utilities-0.109.21 → dycw_utilities-0.109.22}/src/tests/scripts/test_async_service/__main__.py
RENAMED
File without changes
|
{dycw_utilities-0.109.21 → dycw_utilities-0.109.22}/src/tests/scripts/test_async_service/run.sh
RENAMED
File without changes
|
File without changes
|
File without changes
|
{dycw_utilities-0.109.21 → dycw_utilities-0.109.22}/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
|
{dycw_utilities-0.109.21 → dycw_utilities-0.109.22}/src/tests/test_traceback_funcs/__init__.py
RENAMED
File without changes
|
File without changes
|
File without changes
|
{dycw_utilities-0.109.21 → dycw_utilities-0.109.22}/src/tests/test_traceback_funcs/decorated_sync.py
RENAMED
File without changes
|
{dycw_utilities-0.109.21 → dycw_utilities-0.109.22}/src/tests/test_traceback_funcs/error_bind.py
RENAMED
File without changes
|
File without changes
|
File without changes
|
{dycw_utilities-0.109.21 → dycw_utilities-0.109.22}/src/tests/test_traceback_funcs/recursive.py
RENAMED
File without changes
|
{dycw_utilities-0.109.21 → dycw_utilities-0.109.22}/src/tests/test_traceback_funcs/task_group_one.py
RENAMED
File without changes
|
{dycw_utilities-0.109.21 → dycw_utilities-0.109.22}/src/tests/test_traceback_funcs/task_group_two.py
RENAMED
File without changes
|
File without changes
|
{dycw_utilities-0.109.21 → dycw_utilities-0.109.22}/src/tests/test_traceback_funcs/untraced.py
RENAMED
File without changes
|
File without changes
|
File without changes
|
File without changes
|
{dycw_utilities-0.109.21 → dycw_utilities-0.109.22}/src/tests/test_typing_funcs/no_future.py
RENAMED
File without changes
|
{dycw_utilities-0.109.21 → dycw_utilities-0.109.22}/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
|