dycw-utilities 0.151.10__tar.gz → 0.151.11__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.151.10 → dycw_utilities-0.151.11}/PKG-INFO +1 -1
- {dycw_utilities-0.151.10 → dycw_utilities-0.151.11}/pyproject.toml +2 -2
- {dycw_utilities-0.151.10 → dycw_utilities-0.151.11}/src/tests/test_period.py +4 -4
- {dycw_utilities-0.151.10 → dycw_utilities-0.151.11}/src/utilities/__init__.py +1 -1
- {dycw_utilities-0.151.10 → dycw_utilities-0.151.11}/src/utilities/period.py +33 -12
- {dycw_utilities-0.151.10 → dycw_utilities-0.151.11}/.gitignore +0 -0
- {dycw_utilities-0.151.10 → dycw_utilities-0.151.11}/LICENSE +0 -0
- {dycw_utilities-0.151.10 → dycw_utilities-0.151.11}/README.md +0 -0
- {dycw_utilities-0.151.10 → dycw_utilities-0.151.11}/src/tests/__init__.py +0 -0
- {dycw_utilities-0.151.10 → dycw_utilities-0.151.11}/src/tests/conftest.py +0 -0
- {dycw_utilities-0.151.10 → dycw_utilities-0.151.11}/src/tests/modules/__init__.py +0 -0
- {dycw_utilities-0.151.10 → dycw_utilities-0.151.11}/src/tests/modules/package_missing/__init__.py +0 -0
- {dycw_utilities-0.151.10 → dycw_utilities-0.151.11}/src/tests/modules/package_missing/module.py +0 -0
- {dycw_utilities-0.151.10 → dycw_utilities-0.151.11}/src/tests/modules/package_with/__init__.py +0 -0
- {dycw_utilities-0.151.10 → dycw_utilities-0.151.11}/src/tests/modules/package_with/outer_1.py +0 -0
- {dycw_utilities-0.151.10 → dycw_utilities-0.151.11}/src/tests/modules/package_with/outer_2.py +0 -0
- {dycw_utilities-0.151.10 → dycw_utilities-0.151.11}/src/tests/modules/package_with/subpackage/__init__.py +0 -0
- {dycw_utilities-0.151.10 → dycw_utilities-0.151.11}/src/tests/modules/package_with/subpackage/inner_1.py +0 -0
- {dycw_utilities-0.151.10 → dycw_utilities-0.151.11}/src/tests/modules/package_with/subpackage/inner_2.py +0 -0
- {dycw_utilities-0.151.10 → dycw_utilities-0.151.11}/src/tests/modules/package_with/subpackage/inner_3.py +0 -0
- {dycw_utilities-0.151.10 → dycw_utilities-0.151.11}/src/tests/modules/package_without/__init__.py +0 -0
- {dycw_utilities-0.151.10 → dycw_utilities-0.151.11}/src/tests/modules/package_without/module_1.py +0 -0
- {dycw_utilities-0.151.10 → dycw_utilities-0.151.11}/src/tests/modules/package_without/module_2.py +0 -0
- {dycw_utilities-0.151.10 → dycw_utilities-0.151.11}/src/tests/modules/standalone.py +0 -0
- {dycw_utilities-0.151.10 → dycw_utilities-0.151.11}/src/tests/modules/with_imports.py +0 -0
- {dycw_utilities-0.151.10 → dycw_utilities-0.151.11}/src/tests/regressions/test_pytest_regressions/TestMultipleRegressionFixtures__test_main__obj.json +0 -0
- {dycw_utilities-0.151.10 → dycw_utilities-0.151.11}/src/tests/regressions/test_pytest_regressions/TestMultipleRegressionFixtures__test_main__series.json +0 -0
- {dycw_utilities-0.151.10 → dycw_utilities-0.151.11}/src/tests/regressions/test_pytest_regressions/TestOrjsonRegressionFixture__test_dataclass_int.json +0 -0
- {dycw_utilities-0.151.10 → dycw_utilities-0.151.11}/src/tests/regressions/test_pytest_regressions/TestOrjsonRegressionFixture__test_dataclass_literal__false.json +0 -0
- {dycw_utilities-0.151.10 → dycw_utilities-0.151.11}/src/tests/regressions/test_pytest_regressions/TestOrjsonRegressionFixture__test_dataclass_literal__true.json +0 -0
- {dycw_utilities-0.151.10 → dycw_utilities-0.151.11}/src/tests/regressions/test_pytest_regressions/TestOrjsonRegressionFixture__test_dataclass_nested.json +0 -0
- {dycw_utilities-0.151.10 → dycw_utilities-0.151.11}/src/tests/regressions/test_pytest_regressions/TestPolarsRegressionFixture__test_dataframe.json +0 -0
- {dycw_utilities-0.151.10 → dycw_utilities-0.151.11}/src/tests/regressions/test_pytest_regressions/TestPolarsRegressionFixture__test_series.json +0 -0
- {dycw_utilities-0.151.10 → dycw_utilities-0.151.11}/src/tests/test_altair.py +0 -0
- {dycw_utilities-0.151.10 → dycw_utilities-0.151.11}/src/tests/test_asyncio.py +0 -0
- {dycw_utilities-0.151.10 → dycw_utilities-0.151.11}/src/tests/test_atomicwrites.py +0 -0
- {dycw_utilities-0.151.10 → dycw_utilities-0.151.11}/src/tests/test_atools.py +0 -0
- {dycw_utilities-0.151.10 → dycw_utilities-0.151.11}/src/tests/test_cachetools.py +0 -0
- {dycw_utilities-0.151.10 → dycw_utilities-0.151.11}/src/tests/test_click.py +0 -0
- {dycw_utilities-0.151.10 → dycw_utilities-0.151.11}/src/tests/test_concurrent.py +0 -0
- {dycw_utilities-0.151.10 → dycw_utilities-0.151.11}/src/tests/test_contextlib.py +0 -0
- {dycw_utilities-0.151.10 → dycw_utilities-0.151.11}/src/tests/test_contextvars.py +0 -0
- {dycw_utilities-0.151.10 → dycw_utilities-0.151.11}/src/tests/test_cryptography.py +0 -0
- {dycw_utilities-0.151.10 → dycw_utilities-0.151.11}/src/tests/test_cvxpy.py +0 -0
- {dycw_utilities-0.151.10 → dycw_utilities-0.151.11}/src/tests/test_dataclasses.py +0 -0
- {dycw_utilities-0.151.10 → dycw_utilities-0.151.11}/src/tests/test_dnspython.py +0 -0
- {dycw_utilities-0.151.10 → dycw_utilities-0.151.11}/src/tests/test_enum.py +0 -0
- {dycw_utilities-0.151.10 → dycw_utilities-0.151.11}/src/tests/test_errors.py +0 -0
- {dycw_utilities-0.151.10 → dycw_utilities-0.151.11}/src/tests/test_eventkit.py +0 -0
- {dycw_utilities-0.151.10 → dycw_utilities-0.151.11}/src/tests/test_fastapi.py +0 -0
- {dycw_utilities-0.151.10 → dycw_utilities-0.151.11}/src/tests/test_fpdf2.py +0 -0
- {dycw_utilities-0.151.10 → dycw_utilities-0.151.11}/src/tests/test_functions.py +0 -0
- {dycw_utilities-0.151.10 → dycw_utilities-0.151.11}/src/tests/test_functools.py +0 -0
- {dycw_utilities-0.151.10 → dycw_utilities-0.151.11}/src/tests/test_getpass.py +0 -0
- {dycw_utilities-0.151.10 → dycw_utilities-0.151.11}/src/tests/test_gzip.py +0 -0
- {dycw_utilities-0.151.10 → dycw_utilities-0.151.11}/src/tests/test_hashlib.py +0 -0
- {dycw_utilities-0.151.10 → dycw_utilities-0.151.11}/src/tests/test_http.py +0 -0
- {dycw_utilities-0.151.10 → dycw_utilities-0.151.11}/src/tests/test_hypothesis.py +0 -0
- {dycw_utilities-0.151.10 → dycw_utilities-0.151.11}/src/tests/test_importlib.py +0 -0
- {dycw_utilities-0.151.10 → dycw_utilities-0.151.11}/src/tests/test_inflect.py +0 -0
- {dycw_utilities-0.151.10 → dycw_utilities-0.151.11}/src/tests/test_ipython.py +0 -0
- {dycw_utilities-0.151.10 → dycw_utilities-0.151.11}/src/tests/test_iterables.py +0 -0
- {dycw_utilities-0.151.10 → dycw_utilities-0.151.11}/src/tests/test_json.py +0 -0
- {dycw_utilities-0.151.10 → dycw_utilities-0.151.11}/src/tests/test_jupyter.py +0 -0
- {dycw_utilities-0.151.10 → dycw_utilities-0.151.11}/src/tests/test_libcst.py +0 -0
- {dycw_utilities-0.151.10 → dycw_utilities-0.151.11}/src/tests/test_lightweight_charts.py +0 -0
- {dycw_utilities-0.151.10 → dycw_utilities-0.151.11}/src/tests/test_logging.py +0 -0
- {dycw_utilities-0.151.10 → dycw_utilities-0.151.11}/src/tests/test_math.py +0 -0
- {dycw_utilities-0.151.10 → dycw_utilities-0.151.11}/src/tests/test_memory_profiler.py +0 -0
- {dycw_utilities-0.151.10 → dycw_utilities-0.151.11}/src/tests/test_modules.py +0 -0
- {dycw_utilities-0.151.10 → dycw_utilities-0.151.11}/src/tests/test_more_itertools.py +0 -0
- {dycw_utilities-0.151.10 → dycw_utilities-0.151.11}/src/tests/test_numpy.py +0 -0
- {dycw_utilities-0.151.10 → dycw_utilities-0.151.11}/src/tests/test_objects/__init__.py +0 -0
- {dycw_utilities-0.151.10 → dycw_utilities-0.151.11}/src/tests/test_objects/objects.py +0 -0
- {dycw_utilities-0.151.10 → dycw_utilities-0.151.11}/src/tests/test_operator.py +0 -0
- {dycw_utilities-0.151.10 → dycw_utilities-0.151.11}/src/tests/test_optuna.py +0 -0
- {dycw_utilities-0.151.10 → dycw_utilities-0.151.11}/src/tests/test_orjson.py +0 -0
- {dycw_utilities-0.151.10 → dycw_utilities-0.151.11}/src/tests/test_os.py +0 -0
- {dycw_utilities-0.151.10 → dycw_utilities-0.151.11}/src/tests/test_parse.py +0 -0
- {dycw_utilities-0.151.10 → dycw_utilities-0.151.11}/src/tests/test_pathlib.py +0 -0
- {dycw_utilities-0.151.10 → dycw_utilities-0.151.11}/src/tests/test_pickle.py +0 -0
- {dycw_utilities-0.151.10 → dycw_utilities-0.151.11}/src/tests/test_platform.py +0 -0
- {dycw_utilities-0.151.10 → dycw_utilities-0.151.11}/src/tests/test_polars.py +0 -0
- {dycw_utilities-0.151.10 → dycw_utilities-0.151.11}/src/tests/test_polars_ols.py +0 -0
- {dycw_utilities-0.151.10 → dycw_utilities-0.151.11}/src/tests/test_postgres.py +0 -0
- {dycw_utilities-0.151.10 → dycw_utilities-0.151.11}/src/tests/test_pottery.py +0 -0
- {dycw_utilities-0.151.10 → dycw_utilities-0.151.11}/src/tests/test_pqdm.py +0 -0
- {dycw_utilities-0.151.10 → dycw_utilities-0.151.11}/src/tests/test_psutil.py +0 -0
- {dycw_utilities-0.151.10 → dycw_utilities-0.151.11}/src/tests/test_pyinstrument.py +0 -0
- {dycw_utilities-0.151.10 → dycw_utilities-0.151.11}/src/tests/test_pytest.py +0 -0
- {dycw_utilities-0.151.10 → dycw_utilities-0.151.11}/src/tests/test_pytest_randomly.py +0 -0
- {dycw_utilities-0.151.10 → dycw_utilities-0.151.11}/src/tests/test_pytest_regressions.py +0 -0
- {dycw_utilities-0.151.10 → dycw_utilities-0.151.11}/src/tests/test_random.py +0 -0
- {dycw_utilities-0.151.10 → dycw_utilities-0.151.11}/src/tests/test_re.py +0 -0
- {dycw_utilities-0.151.10 → dycw_utilities-0.151.11}/src/tests/test_redis.py +0 -0
- {dycw_utilities-0.151.10 → dycw_utilities-0.151.11}/src/tests/test_reprlib.py +0 -0
- {dycw_utilities-0.151.10 → dycw_utilities-0.151.11}/src/tests/test_scipy.py +0 -0
- {dycw_utilities-0.151.10 → dycw_utilities-0.151.11}/src/tests/test_sentinel.py +0 -0
- {dycw_utilities-0.151.10 → dycw_utilities-0.151.11}/src/tests/test_shelve.py +0 -0
- {dycw_utilities-0.151.10 → dycw_utilities-0.151.11}/src/tests/test_slack_sdk.py +0 -0
- {dycw_utilities-0.151.10 → dycw_utilities-0.151.11}/src/tests/test_socket.py +0 -0
- {dycw_utilities-0.151.10 → dycw_utilities-0.151.11}/src/tests/test_sqlalchemy.py +0 -0
- {dycw_utilities-0.151.10 → dycw_utilities-0.151.11}/src/tests/test_sqlalchemy_polars.py +0 -0
- {dycw_utilities-0.151.10 → dycw_utilities-0.151.11}/src/tests/test_statsmodels.py +0 -0
- {dycw_utilities-0.151.10 → dycw_utilities-0.151.11}/src/tests/test_string.py +0 -0
- {dycw_utilities-0.151.10 → dycw_utilities-0.151.11}/src/tests/test_tempfile.py +0 -0
- {dycw_utilities-0.151.10 → dycw_utilities-0.151.11}/src/tests/test_text.py +0 -0
- {dycw_utilities-0.151.10 → dycw_utilities-0.151.11}/src/tests/test_threading.py +0 -0
- {dycw_utilities-0.151.10 → dycw_utilities-0.151.11}/src/tests/test_timer.py +0 -0
- {dycw_utilities-0.151.10 → dycw_utilities-0.151.11}/src/tests/test_traceback.py +0 -0
- {dycw_utilities-0.151.10 → dycw_utilities-0.151.11}/src/tests/test_typed_settings.py +0 -0
- {dycw_utilities-0.151.10 → dycw_utilities-0.151.11}/src/tests/test_types.py +0 -0
- {dycw_utilities-0.151.10 → dycw_utilities-0.151.11}/src/tests/test_typing.py +0 -0
- {dycw_utilities-0.151.10 → dycw_utilities-0.151.11}/src/tests/test_typing_funcs/__init__.py +0 -0
- {dycw_utilities-0.151.10 → dycw_utilities-0.151.11}/src/tests/test_typing_funcs/no_future.py +0 -0
- {dycw_utilities-0.151.10 → dycw_utilities-0.151.11}/src/tests/test_typing_funcs/with_future.py +0 -0
- {dycw_utilities-0.151.10 → dycw_utilities-0.151.11}/src/tests/test_tzdata.py +0 -0
- {dycw_utilities-0.151.10 → dycw_utilities-0.151.11}/src/tests/test_tzlocal.py +0 -0
- {dycw_utilities-0.151.10 → dycw_utilities-0.151.11}/src/tests/test_uuid.py +0 -0
- {dycw_utilities-0.151.10 → dycw_utilities-0.151.11}/src/tests/test_version.py +0 -0
- {dycw_utilities-0.151.10 → dycw_utilities-0.151.11}/src/tests/test_warnings.py +0 -0
- {dycw_utilities-0.151.10 → dycw_utilities-0.151.11}/src/tests/test_whenever.py +0 -0
- {dycw_utilities-0.151.10 → dycw_utilities-0.151.11}/src/tests/test_yield_access/__init__.py +0 -0
- {dycw_utilities-0.151.10 → dycw_utilities-0.151.11}/src/tests/test_yield_access/script.py +0 -0
- {dycw_utilities-0.151.10 → dycw_utilities-0.151.11}/src/tests/test_yield_access/script.sh +0 -0
- {dycw_utilities-0.151.10 → dycw_utilities-0.151.11}/src/tests/test_zipfile.py +0 -0
- {dycw_utilities-0.151.10 → dycw_utilities-0.151.11}/src/tests/test_zoneinfo.py +0 -0
- {dycw_utilities-0.151.10 → dycw_utilities-0.151.11}/src/utilities/altair.py +0 -0
- {dycw_utilities-0.151.10 → dycw_utilities-0.151.11}/src/utilities/asyncio.py +0 -0
- {dycw_utilities-0.151.10 → dycw_utilities-0.151.11}/src/utilities/atomicwrites.py +0 -0
- {dycw_utilities-0.151.10 → dycw_utilities-0.151.11}/src/utilities/atools.py +0 -0
- {dycw_utilities-0.151.10 → dycw_utilities-0.151.11}/src/utilities/cachetools.py +0 -0
- {dycw_utilities-0.151.10 → dycw_utilities-0.151.11}/src/utilities/click.py +0 -0
- {dycw_utilities-0.151.10 → dycw_utilities-0.151.11}/src/utilities/concurrent.py +0 -0
- {dycw_utilities-0.151.10 → dycw_utilities-0.151.11}/src/utilities/contextlib.py +0 -0
- {dycw_utilities-0.151.10 → dycw_utilities-0.151.11}/src/utilities/contextvars.py +0 -0
- {dycw_utilities-0.151.10 → dycw_utilities-0.151.11}/src/utilities/cryptography.py +0 -0
- {dycw_utilities-0.151.10 → dycw_utilities-0.151.11}/src/utilities/cvxpy.py +0 -0
- {dycw_utilities-0.151.10 → dycw_utilities-0.151.11}/src/utilities/dataclasses.py +0 -0
- {dycw_utilities-0.151.10 → dycw_utilities-0.151.11}/src/utilities/dnspython.py +0 -0
- {dycw_utilities-0.151.10 → dycw_utilities-0.151.11}/src/utilities/enum.py +0 -0
- {dycw_utilities-0.151.10 → dycw_utilities-0.151.11}/src/utilities/errors.py +0 -0
- {dycw_utilities-0.151.10 → dycw_utilities-0.151.11}/src/utilities/eventkit.py +0 -0
- {dycw_utilities-0.151.10 → dycw_utilities-0.151.11}/src/utilities/fastapi.py +0 -0
- {dycw_utilities-0.151.10 → dycw_utilities-0.151.11}/src/utilities/fpdf2.py +0 -0
- {dycw_utilities-0.151.10 → dycw_utilities-0.151.11}/src/utilities/functions.py +0 -0
- {dycw_utilities-0.151.10 → dycw_utilities-0.151.11}/src/utilities/functools.py +0 -0
- {dycw_utilities-0.151.10 → dycw_utilities-0.151.11}/src/utilities/getpass.py +0 -0
- {dycw_utilities-0.151.10 → dycw_utilities-0.151.11}/src/utilities/gzip.py +0 -0
- {dycw_utilities-0.151.10 → dycw_utilities-0.151.11}/src/utilities/hashlib.py +0 -0
- {dycw_utilities-0.151.10 → dycw_utilities-0.151.11}/src/utilities/http.py +0 -0
- {dycw_utilities-0.151.10 → dycw_utilities-0.151.11}/src/utilities/hypothesis.py +0 -0
- {dycw_utilities-0.151.10 → dycw_utilities-0.151.11}/src/utilities/importlib.py +0 -0
- {dycw_utilities-0.151.10 → dycw_utilities-0.151.11}/src/utilities/inflect.py +0 -0
- {dycw_utilities-0.151.10 → dycw_utilities-0.151.11}/src/utilities/ipython.py +0 -0
- {dycw_utilities-0.151.10 → dycw_utilities-0.151.11}/src/utilities/iterables.py +0 -0
- {dycw_utilities-0.151.10 → dycw_utilities-0.151.11}/src/utilities/json.py +0 -0
- {dycw_utilities-0.151.10 → dycw_utilities-0.151.11}/src/utilities/jupyter.py +0 -0
- {dycw_utilities-0.151.10 → dycw_utilities-0.151.11}/src/utilities/libcst.py +0 -0
- {dycw_utilities-0.151.10 → dycw_utilities-0.151.11}/src/utilities/lightweight_charts.py +0 -0
- {dycw_utilities-0.151.10 → dycw_utilities-0.151.11}/src/utilities/logging.py +0 -0
- {dycw_utilities-0.151.10 → dycw_utilities-0.151.11}/src/utilities/math.py +0 -0
- {dycw_utilities-0.151.10 → dycw_utilities-0.151.11}/src/utilities/memory_profiler.py +0 -0
- {dycw_utilities-0.151.10 → dycw_utilities-0.151.11}/src/utilities/modules.py +0 -0
- {dycw_utilities-0.151.10 → dycw_utilities-0.151.11}/src/utilities/more_itertools.py +0 -0
- {dycw_utilities-0.151.10 → dycw_utilities-0.151.11}/src/utilities/numpy.py +0 -0
- {dycw_utilities-0.151.10 → dycw_utilities-0.151.11}/src/utilities/operator.py +0 -0
- {dycw_utilities-0.151.10 → dycw_utilities-0.151.11}/src/utilities/optuna.py +0 -0
- {dycw_utilities-0.151.10 → dycw_utilities-0.151.11}/src/utilities/orjson.py +0 -0
- {dycw_utilities-0.151.10 → dycw_utilities-0.151.11}/src/utilities/os.py +0 -0
- {dycw_utilities-0.151.10 → dycw_utilities-0.151.11}/src/utilities/parse.py +0 -0
- {dycw_utilities-0.151.10 → dycw_utilities-0.151.11}/src/utilities/pathlib.py +0 -0
- {dycw_utilities-0.151.10 → dycw_utilities-0.151.11}/src/utilities/pickle.py +0 -0
- {dycw_utilities-0.151.10 → dycw_utilities-0.151.11}/src/utilities/platform.py +0 -0
- {dycw_utilities-0.151.10 → dycw_utilities-0.151.11}/src/utilities/polars.py +0 -0
- {dycw_utilities-0.151.10 → dycw_utilities-0.151.11}/src/utilities/polars_ols.py +0 -0
- {dycw_utilities-0.151.10 → dycw_utilities-0.151.11}/src/utilities/postgres.py +0 -0
- {dycw_utilities-0.151.10 → dycw_utilities-0.151.11}/src/utilities/pottery.py +0 -0
- {dycw_utilities-0.151.10 → dycw_utilities-0.151.11}/src/utilities/pqdm.py +0 -0
- {dycw_utilities-0.151.10 → dycw_utilities-0.151.11}/src/utilities/psutil.py +0 -0
- {dycw_utilities-0.151.10 → dycw_utilities-0.151.11}/src/utilities/py.typed +0 -0
- {dycw_utilities-0.151.10 → dycw_utilities-0.151.11}/src/utilities/pyinstrument.py +0 -0
- {dycw_utilities-0.151.10 → dycw_utilities-0.151.11}/src/utilities/pytest.py +0 -0
- {dycw_utilities-0.151.10 → dycw_utilities-0.151.11}/src/utilities/pytest_plugins/__init__.py +0 -0
- {dycw_utilities-0.151.10 → dycw_utilities-0.151.11}/src/utilities/pytest_plugins/pytest_randomly.py +0 -0
- {dycw_utilities-0.151.10 → dycw_utilities-0.151.11}/src/utilities/pytest_plugins/pytest_regressions.py +0 -0
- {dycw_utilities-0.151.10 → dycw_utilities-0.151.11}/src/utilities/pytest_regressions.py +0 -0
- {dycw_utilities-0.151.10 → dycw_utilities-0.151.11}/src/utilities/random.py +0 -0
- {dycw_utilities-0.151.10 → dycw_utilities-0.151.11}/src/utilities/re.py +0 -0
- {dycw_utilities-0.151.10 → dycw_utilities-0.151.11}/src/utilities/redis.py +0 -0
- {dycw_utilities-0.151.10 → dycw_utilities-0.151.11}/src/utilities/reprlib.py +0 -0
- {dycw_utilities-0.151.10 → dycw_utilities-0.151.11}/src/utilities/scipy.py +0 -0
- {dycw_utilities-0.151.10 → dycw_utilities-0.151.11}/src/utilities/sentinel.py +0 -0
- {dycw_utilities-0.151.10 → dycw_utilities-0.151.11}/src/utilities/shelve.py +0 -0
- {dycw_utilities-0.151.10 → dycw_utilities-0.151.11}/src/utilities/slack_sdk.py +0 -0
- {dycw_utilities-0.151.10 → dycw_utilities-0.151.11}/src/utilities/socket.py +0 -0
- {dycw_utilities-0.151.10 → dycw_utilities-0.151.11}/src/utilities/sqlalchemy.py +0 -0
- {dycw_utilities-0.151.10 → dycw_utilities-0.151.11}/src/utilities/sqlalchemy_polars.py +0 -0
- {dycw_utilities-0.151.10 → dycw_utilities-0.151.11}/src/utilities/statsmodels.py +0 -0
- {dycw_utilities-0.151.10 → dycw_utilities-0.151.11}/src/utilities/string.py +0 -0
- {dycw_utilities-0.151.10 → dycw_utilities-0.151.11}/src/utilities/tempfile.py +0 -0
- {dycw_utilities-0.151.10 → dycw_utilities-0.151.11}/src/utilities/text.py +0 -0
- {dycw_utilities-0.151.10 → dycw_utilities-0.151.11}/src/utilities/threading.py +0 -0
- {dycw_utilities-0.151.10 → dycw_utilities-0.151.11}/src/utilities/timer.py +0 -0
- {dycw_utilities-0.151.10 → dycw_utilities-0.151.11}/src/utilities/traceback.py +0 -0
- {dycw_utilities-0.151.10 → dycw_utilities-0.151.11}/src/utilities/typed_settings.py +0 -0
- {dycw_utilities-0.151.10 → dycw_utilities-0.151.11}/src/utilities/types.py +0 -0
- {dycw_utilities-0.151.10 → dycw_utilities-0.151.11}/src/utilities/typing.py +0 -0
- {dycw_utilities-0.151.10 → dycw_utilities-0.151.11}/src/utilities/tzdata.py +0 -0
- {dycw_utilities-0.151.10 → dycw_utilities-0.151.11}/src/utilities/tzlocal.py +0 -0
- {dycw_utilities-0.151.10 → dycw_utilities-0.151.11}/src/utilities/uuid.py +0 -0
- {dycw_utilities-0.151.10 → dycw_utilities-0.151.11}/src/utilities/version.py +0 -0
- {dycw_utilities-0.151.10 → dycw_utilities-0.151.11}/src/utilities/warnings.py +0 -0
- {dycw_utilities-0.151.10 → dycw_utilities-0.151.11}/src/utilities/whenever.py +0 -0
- {dycw_utilities-0.151.10 → dycw_utilities-0.151.11}/src/utilities/zipfile.py +0 -0
- {dycw_utilities-0.151.10 → dycw_utilities-0.151.11}/src/utilities/zoneinfo.py +0 -0
@@ -232,7 +232,7 @@ dependencies = [
|
|
232
232
|
name = "dycw-utilities"
|
233
233
|
readme = "README.md"
|
234
234
|
requires-python = ">= 3.12"
|
235
|
-
version = "0.151.
|
235
|
+
version = "0.151.11"
|
236
236
|
|
237
237
|
[project.entry-points.pytest11]
|
238
238
|
pytest-randomly = "utilities.pytest_plugins.pytest_randomly"
|
@@ -265,7 +265,7 @@ test = [
|
|
265
265
|
# bump-my-version
|
266
266
|
[tool.bumpversion]
|
267
267
|
allow_dirty = true
|
268
|
-
current_version = "0.151.
|
268
|
+
current_version = "0.151.11"
|
269
269
|
|
270
270
|
[[tool.bumpversion.files]]
|
271
271
|
filename = "src/utilities/__init__.py"
|
@@ -21,9 +21,9 @@ from utilities.hypothesis import (
|
|
21
21
|
)
|
22
22
|
from utilities.period import (
|
23
23
|
DatePeriod,
|
24
|
+
PeriodDict,
|
24
25
|
TimePeriod,
|
25
26
|
ZonedDateTimePeriod,
|
26
|
-
_PeriodAsDict,
|
27
27
|
_PeriodExactEqArgumentsError,
|
28
28
|
_PeriodInvalidError,
|
29
29
|
_PeriodTimeZoneError,
|
@@ -154,7 +154,7 @@ class TestDatePeriod:
|
|
154
154
|
period = DatePeriod(start, end)
|
155
155
|
dict1 = period.to_dict()
|
156
156
|
dstart, dend = dict1["start"], dict1["end"]
|
157
|
-
dict2 =
|
157
|
+
dict2 = PeriodDict(
|
158
158
|
start=data.draw(sampled_from([dstart, dstart.py_date()])),
|
159
159
|
end=data.draw(sampled_from([dend, dend.py_date()])),
|
160
160
|
)
|
@@ -240,7 +240,7 @@ class TestTimePeriod:
|
|
240
240
|
period = TimePeriod(start, end)
|
241
241
|
dict1 = period.to_dict()
|
242
242
|
dstart, dend = dict1["start"], dict1["end"]
|
243
|
-
dict2 =
|
243
|
+
dict2 = PeriodDict(
|
244
244
|
start=data.draw(sampled_from([dstart, dstart.py_time()])),
|
245
245
|
end=data.draw(sampled_from([dend, dend.py_time()])),
|
246
246
|
)
|
@@ -478,7 +478,7 @@ class TestZonedDateTimePeriod:
|
|
478
478
|
period = ZonedDateTimePeriod(start, end)
|
479
479
|
dict1 = period.to_dict()
|
480
480
|
dstart, dend = dict1["start"], dict1["end"]
|
481
|
-
dict2 =
|
481
|
+
dict2 = PeriodDict(
|
482
482
|
start=data.draw(sampled_from([dstart, dstart.py_datetime()])),
|
483
483
|
end=data.draw(sampled_from([dend, dend.py_datetime()])),
|
484
484
|
)
|
@@ -2,7 +2,16 @@ from __future__ import annotations
|
|
2
2
|
|
3
3
|
import datetime as dt
|
4
4
|
from dataclasses import dataclass
|
5
|
-
from typing import
|
5
|
+
from typing import (
|
6
|
+
TYPE_CHECKING,
|
7
|
+
Any,
|
8
|
+
Self,
|
9
|
+
TypedDict,
|
10
|
+
TypeVar,
|
11
|
+
assert_never,
|
12
|
+
overload,
|
13
|
+
override,
|
14
|
+
)
|
6
15
|
from zoneinfo import ZoneInfo
|
7
16
|
|
8
17
|
from whenever import Date, DateDelta, PlainDateTime, Time, TimeDelta, ZonedDateTime
|
@@ -16,8 +25,14 @@ from utilities.zoneinfo import UTC, ensure_time_zone, get_time_zone_name
|
|
16
25
|
if TYPE_CHECKING:
|
17
26
|
from utilities.types import TimeZoneLike
|
18
27
|
|
28
|
+
_TDate_co = TypeVar("_TDate_co", bound=Date | dt.date, covariant=True)
|
29
|
+
_TTime_co = TypeVar("_TTime_co", bound=Time | dt.time, covariant=True)
|
30
|
+
_TDateTime_co = TypeVar(
|
31
|
+
"_TDateTime_co", bound=ZonedDateTime | dt.datetime, covariant=True
|
32
|
+
)
|
19
33
|
|
20
|
-
|
34
|
+
|
35
|
+
class PeriodDict[T: Date | Time | ZonedDateTime | dt.date | dt.time | dt.datetime](
|
21
36
|
TypedDict
|
22
37
|
):
|
23
38
|
start: T
|
@@ -85,7 +100,7 @@ class DatePeriod:
|
|
85
100
|
return f"{fc(start)}-{fc(end)}"
|
86
101
|
|
87
102
|
@classmethod
|
88
|
-
def from_dict(cls, mapping:
|
103
|
+
def from_dict(cls, mapping: PeriodDict[_TDate_co], /) -> Self:
|
89
104
|
"""Convert the dictionary to a period."""
|
90
105
|
match mapping["start"]:
|
91
106
|
case Date() as start:
|
@@ -109,9 +124,9 @@ class DatePeriod:
|
|
109
124
|
"""Replace elements of the period."""
|
110
125
|
return replace_non_sentinel(self, start=start, end=end)
|
111
126
|
|
112
|
-
def to_dict(self) ->
|
127
|
+
def to_dict(self) -> PeriodDict[Date]:
|
113
128
|
"""Convert the period to a dictionary."""
|
114
|
-
return
|
129
|
+
return PeriodDict(start=self.start, end=self.end)
|
115
130
|
|
116
131
|
|
117
132
|
@dataclass(repr=False, order=True, unsafe_hash=True, kw_only=False)
|
@@ -140,7 +155,7 @@ class TimePeriod:
|
|
140
155
|
return DatePeriod(start, end).at((self.start, self.end), time_zone=time_zone)
|
141
156
|
|
142
157
|
@classmethod
|
143
|
-
def from_dict(cls, mapping:
|
158
|
+
def from_dict(cls, mapping: PeriodDict[_TTime_co], /) -> Self:
|
144
159
|
"""Convert the dictionary to a period."""
|
145
160
|
match mapping["start"]:
|
146
161
|
case Time() as start:
|
@@ -164,9 +179,9 @@ class TimePeriod:
|
|
164
179
|
"""Replace elements of the period."""
|
165
180
|
return replace_non_sentinel(self, start=start, end=end)
|
166
181
|
|
167
|
-
def to_dict(self) ->
|
182
|
+
def to_dict(self) -> PeriodDict[Time]:
|
168
183
|
"""Convert the period to a dictionary."""
|
169
|
-
return
|
184
|
+
return PeriodDict(start=self.start, end=self.end)
|
170
185
|
|
171
186
|
|
172
187
|
@dataclass(repr=False, order=True, unsafe_hash=True, kw_only=False)
|
@@ -271,7 +286,7 @@ class ZonedDateTimePeriod:
|
|
271
286
|
return f"{fc(start.to_plain())}-{fc(end, fmt='%Y%m%dT%H')}"
|
272
287
|
|
273
288
|
@classmethod
|
274
|
-
def from_dict(cls, mapping:
|
289
|
+
def from_dict(cls, mapping: PeriodDict[_TDateTime_co], /) -> Self:
|
275
290
|
"""Convert the dictionary to a period."""
|
276
291
|
match mapping["start"]:
|
277
292
|
case ZonedDateTime() as start:
|
@@ -303,9 +318,9 @@ class ZonedDateTimePeriod:
|
|
303
318
|
"""The time zone of the period."""
|
304
319
|
return ZoneInfo(self.start.tz)
|
305
320
|
|
306
|
-
def to_dict(self) ->
|
321
|
+
def to_dict(self) -> PeriodDict[ZonedDateTime]:
|
307
322
|
"""Convert the period to a dictionary."""
|
308
|
-
return
|
323
|
+
return PeriodDict(start=self.start, end=self.end)
|
309
324
|
|
310
325
|
def to_tz(self, time_zone: TimeZoneLike, /) -> Self:
|
311
326
|
"""Convert the time zone."""
|
@@ -346,4 +361,10 @@ class _PeriodExactEqArgumentsError(PeriodError):
|
|
346
361
|
return f"Invalid arguments; got {self.args}"
|
347
362
|
|
348
363
|
|
349
|
-
__all__ = [
|
364
|
+
__all__ = [
|
365
|
+
"DatePeriod",
|
366
|
+
"PeriodDict",
|
367
|
+
"PeriodError",
|
368
|
+
"TimePeriod",
|
369
|
+
"ZonedDateTimePeriod",
|
370
|
+
]
|
File without changes
|
File without changes
|
File without changes
|
File without changes
|
File without changes
|
File without changes
|
{dycw_utilities-0.151.10 → dycw_utilities-0.151.11}/src/tests/modules/package_missing/__init__.py
RENAMED
File without changes
|
{dycw_utilities-0.151.10 → dycw_utilities-0.151.11}/src/tests/modules/package_missing/module.py
RENAMED
File without changes
|
{dycw_utilities-0.151.10 → dycw_utilities-0.151.11}/src/tests/modules/package_with/__init__.py
RENAMED
File without changes
|
{dycw_utilities-0.151.10 → dycw_utilities-0.151.11}/src/tests/modules/package_with/outer_1.py
RENAMED
File without changes
|
{dycw_utilities-0.151.10 → dycw_utilities-0.151.11}/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.151.10 → dycw_utilities-0.151.11}/src/tests/modules/package_without/__init__.py
RENAMED
File without changes
|
{dycw_utilities-0.151.10 → dycw_utilities-0.151.11}/src/tests/modules/package_without/module_1.py
RENAMED
File without changes
|
{dycw_utilities-0.151.10 → dycw_utilities-0.151.11}/src/tests/modules/package_without/module_2.py
RENAMED
File without changes
|
File without changes
|
File without changes
|
File without changes
|
File without changes
|
File without changes
|
File without changes
|
File without changes
|
File without changes
|
File without changes
|
File without changes
|
File without changes
|
File without changes
|
File without changes
|
File without changes
|
File without changes
|
File without changes
|
File without changes
|
File without changes
|
File without changes
|
File without changes
|
File without changes
|
File without changes
|
File without changes
|
File without changes
|
File without changes
|
File without changes
|
File without changes
|
File without changes
|
File without changes
|
File without changes
|
File without changes
|
File without changes
|
File without changes
|
File without changes
|
File without changes
|
File without changes
|
File without changes
|
File without changes
|
File without changes
|
File without changes
|
File without changes
|
File without changes
|
File without changes
|
File without changes
|
File without changes
|
File without changes
|
File without changes
|
File without changes
|
File without changes
|
File without changes
|
File without changes
|
File without changes
|
File without changes
|
File without changes
|
File without changes
|
File without changes
|
File without changes
|
File without changes
|
File without changes
|
File without changes
|
File without changes
|
File without changes
|
File without changes
|
File without changes
|
File without changes
|
File without changes
|
File without changes
|
File without changes
|
File without changes
|
File without changes
|
File without changes
|
File without changes
|
File without changes
|
File without changes
|
File without changes
|
File without changes
|
File without changes
|
File without changes
|
File without changes
|
File without changes
|
File without changes
|
File without changes
|
File without changes
|
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.151.10 → dycw_utilities-0.151.11}/src/tests/test_typing_funcs/no_future.py
RENAMED
File without changes
|
{dycw_utilities-0.151.10 → dycw_utilities-0.151.11}/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
|
{dycw_utilities-0.151.10 → dycw_utilities-0.151.11}/src/utilities/pytest_plugins/__init__.py
RENAMED
File without changes
|
{dycw_utilities-0.151.10 → dycw_utilities-0.151.11}/src/utilities/pytest_plugins/pytest_randomly.py
RENAMED
File without changes
|
File without changes
|
File without changes
|
File without changes
|
File without changes
|
File without changes
|
File without changes
|
File without changes
|
File without changes
|
File without changes
|
File without changes
|
File without changes
|
File without changes
|
File without changes
|
File without changes
|
File without changes
|
File without changes
|
File without changes
|
File without changes
|
File without changes
|
File without changes
|
File without changes
|
File without changes
|
File without changes
|
File without changes
|
File without changes
|
File without changes
|
File without changes
|
File without changes
|
File without changes
|
File without changes
|
File without changes
|