dycw-utilities 0.138.13__tar.gz → 0.138.14__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.138.13 → dycw_utilities-0.138.14}/PKG-INFO +1 -1
- {dycw_utilities-0.138.13 → dycw_utilities-0.138.14}/pyproject.toml +2 -2
- {dycw_utilities-0.138.13 → dycw_utilities-0.138.14}/src/tests/test_whenever.py +32 -0
- {dycw_utilities-0.138.13 → dycw_utilities-0.138.14}/src/utilities/__init__.py +1 -1
- {dycw_utilities-0.138.13 → dycw_utilities-0.138.14}/src/utilities/whenever.py +29 -0
- {dycw_utilities-0.138.13 → dycw_utilities-0.138.14}/.gitignore +0 -0
- {dycw_utilities-0.138.13 → dycw_utilities-0.138.14}/LICENSE +0 -0
- {dycw_utilities-0.138.13 → dycw_utilities-0.138.14}/README.md +0 -0
- {dycw_utilities-0.138.13 → dycw_utilities-0.138.14}/src/tests/__init__.py +0 -0
- {dycw_utilities-0.138.13 → dycw_utilities-0.138.14}/src/tests/conftest.py +0 -0
- {dycw_utilities-0.138.13 → dycw_utilities-0.138.14}/src/tests/modules/__init__.py +0 -0
- {dycw_utilities-0.138.13 → dycw_utilities-0.138.14}/src/tests/modules/package_missing/__init__.py +0 -0
- {dycw_utilities-0.138.13 → dycw_utilities-0.138.14}/src/tests/modules/package_missing/module.py +0 -0
- {dycw_utilities-0.138.13 → dycw_utilities-0.138.14}/src/tests/modules/package_with/__init__.py +0 -0
- {dycw_utilities-0.138.13 → dycw_utilities-0.138.14}/src/tests/modules/package_with/outer_1.py +0 -0
- {dycw_utilities-0.138.13 → dycw_utilities-0.138.14}/src/tests/modules/package_with/outer_2.py +0 -0
- {dycw_utilities-0.138.13 → dycw_utilities-0.138.14}/src/tests/modules/package_with/subpackage/__init__.py +0 -0
- {dycw_utilities-0.138.13 → dycw_utilities-0.138.14}/src/tests/modules/package_with/subpackage/inner_1.py +0 -0
- {dycw_utilities-0.138.13 → dycw_utilities-0.138.14}/src/tests/modules/package_with/subpackage/inner_2.py +0 -0
- {dycw_utilities-0.138.13 → dycw_utilities-0.138.14}/src/tests/modules/package_with/subpackage/inner_3.py +0 -0
- {dycw_utilities-0.138.13 → dycw_utilities-0.138.14}/src/tests/modules/package_without/__init__.py +0 -0
- {dycw_utilities-0.138.13 → dycw_utilities-0.138.14}/src/tests/modules/package_without/module_1.py +0 -0
- {dycw_utilities-0.138.13 → dycw_utilities-0.138.14}/src/tests/modules/package_without/module_2.py +0 -0
- {dycw_utilities-0.138.13 → dycw_utilities-0.138.14}/src/tests/modules/standalone.py +0 -0
- {dycw_utilities-0.138.13 → dycw_utilities-0.138.14}/src/tests/modules/with_imports.py +0 -0
- {dycw_utilities-0.138.13 → dycw_utilities-0.138.14}/src/tests/regressions/test_pytest_regressions/TestMultipleRegressionFixtures__test_main__obj.json +0 -0
- {dycw_utilities-0.138.13 → dycw_utilities-0.138.14}/src/tests/regressions/test_pytest_regressions/TestMultipleRegressionFixtures__test_main__series.json +0 -0
- {dycw_utilities-0.138.13 → dycw_utilities-0.138.14}/src/tests/regressions/test_pytest_regressions/TestOrjsonRegressionFixture__test_dataclass_int.json +0 -0
- {dycw_utilities-0.138.13 → dycw_utilities-0.138.14}/src/tests/regressions/test_pytest_regressions/TestOrjsonRegressionFixture__test_dataclass_literal__false.json +0 -0
- {dycw_utilities-0.138.13 → dycw_utilities-0.138.14}/src/tests/regressions/test_pytest_regressions/TestOrjsonRegressionFixture__test_dataclass_literal__true.json +0 -0
- {dycw_utilities-0.138.13 → dycw_utilities-0.138.14}/src/tests/regressions/test_pytest_regressions/TestOrjsonRegressionFixture__test_dataclass_nested.json +0 -0
- {dycw_utilities-0.138.13 → dycw_utilities-0.138.14}/src/tests/regressions/test_pytest_regressions/TestPolarsRegressionFixture__test_dataframe.json +0 -0
- {dycw_utilities-0.138.13 → dycw_utilities-0.138.14}/src/tests/regressions/test_pytest_regressions/TestPolarsRegressionFixture__test_series.json +0 -0
- {dycw_utilities-0.138.13 → dycw_utilities-0.138.14}/src/tests/test_aiolimiter.py +0 -0
- {dycw_utilities-0.138.13 → dycw_utilities-0.138.14}/src/tests/test_altair.py +0 -0
- {dycw_utilities-0.138.13 → dycw_utilities-0.138.14}/src/tests/test_asyncio.py +0 -0
- {dycw_utilities-0.138.13 → dycw_utilities-0.138.14}/src/tests/test_asyncio_classes/__init__.py +0 -0
- {dycw_utilities-0.138.13 → dycw_utilities-0.138.14}/src/tests/test_asyncio_classes/loopers.py +0 -0
- {dycw_utilities-0.138.13 → dycw_utilities-0.138.14}/src/tests/test_asyncio_classes/redis.py +0 -0
- {dycw_utilities-0.138.13 → dycw_utilities-0.138.14}/src/tests/test_atomicwrites.py +0 -0
- {dycw_utilities-0.138.13 → dycw_utilities-0.138.14}/src/tests/test_atools.py +0 -0
- {dycw_utilities-0.138.13 → dycw_utilities-0.138.14}/src/tests/test_cachetools.py +0 -0
- {dycw_utilities-0.138.13 → dycw_utilities-0.138.14}/src/tests/test_click.py +0 -0
- {dycw_utilities-0.138.13 → dycw_utilities-0.138.14}/src/tests/test_concurrent.py +0 -0
- {dycw_utilities-0.138.13 → dycw_utilities-0.138.14}/src/tests/test_contextlib.py +0 -0
- {dycw_utilities-0.138.13 → dycw_utilities-0.138.14}/src/tests/test_contextvars.py +0 -0
- {dycw_utilities-0.138.13 → dycw_utilities-0.138.14}/src/tests/test_cryptography.py +0 -0
- {dycw_utilities-0.138.13 → dycw_utilities-0.138.14}/src/tests/test_cvxpy.py +0 -0
- {dycw_utilities-0.138.13 → dycw_utilities-0.138.14}/src/tests/test_dataclasses.py +0 -0
- {dycw_utilities-0.138.13 → dycw_utilities-0.138.14}/src/tests/test_enum.py +0 -0
- {dycw_utilities-0.138.13 → dycw_utilities-0.138.14}/src/tests/test_errors.py +0 -0
- {dycw_utilities-0.138.13 → dycw_utilities-0.138.14}/src/tests/test_eventkit.py +0 -0
- {dycw_utilities-0.138.13 → dycw_utilities-0.138.14}/src/tests/test_fastapi.py +0 -0
- {dycw_utilities-0.138.13 → dycw_utilities-0.138.14}/src/tests/test_fpdf2.py +0 -0
- {dycw_utilities-0.138.13 → dycw_utilities-0.138.14}/src/tests/test_functions.py +0 -0
- {dycw_utilities-0.138.13 → dycw_utilities-0.138.14}/src/tests/test_functools.py +0 -0
- {dycw_utilities-0.138.13 → dycw_utilities-0.138.14}/src/tests/test_getpass.py +0 -0
- {dycw_utilities-0.138.13 → dycw_utilities-0.138.14}/src/tests/test_hashlib.py +0 -0
- {dycw_utilities-0.138.13 → dycw_utilities-0.138.14}/src/tests/test_http.py +0 -0
- {dycw_utilities-0.138.13 → dycw_utilities-0.138.14}/src/tests/test_hypothesis.py +0 -0
- {dycw_utilities-0.138.13 → dycw_utilities-0.138.14}/src/tests/test_importlib.py +0 -0
- {dycw_utilities-0.138.13 → dycw_utilities-0.138.14}/src/tests/test_inflect.py +0 -0
- {dycw_utilities-0.138.13 → dycw_utilities-0.138.14}/src/tests/test_ipython.py +0 -0
- {dycw_utilities-0.138.13 → dycw_utilities-0.138.14}/src/tests/test_iterables.py +0 -0
- {dycw_utilities-0.138.13 → dycw_utilities-0.138.14}/src/tests/test_jupyter.py +0 -0
- {dycw_utilities-0.138.13 → dycw_utilities-0.138.14}/src/tests/test_libcst.py +0 -0
- {dycw_utilities-0.138.13 → dycw_utilities-0.138.14}/src/tests/test_lightweight_charts.py +0 -0
- {dycw_utilities-0.138.13 → dycw_utilities-0.138.14}/src/tests/test_logging.py +0 -0
- {dycw_utilities-0.138.13 → dycw_utilities-0.138.14}/src/tests/test_luigi.py +0 -0
- {dycw_utilities-0.138.13 → dycw_utilities-0.138.14}/src/tests/test_math.py +0 -0
- {dycw_utilities-0.138.13 → dycw_utilities-0.138.14}/src/tests/test_memory_profiler.py +0 -0
- {dycw_utilities-0.138.13 → dycw_utilities-0.138.14}/src/tests/test_modules.py +0 -0
- {dycw_utilities-0.138.13 → dycw_utilities-0.138.14}/src/tests/test_more_itertools.py +0 -0
- {dycw_utilities-0.138.13 → dycw_utilities-0.138.14}/src/tests/test_numpy.py +0 -0
- {dycw_utilities-0.138.13 → dycw_utilities-0.138.14}/src/tests/test_objects/__init__.py +0 -0
- {dycw_utilities-0.138.13 → dycw_utilities-0.138.14}/src/tests/test_objects/objects.py +0 -0
- {dycw_utilities-0.138.13 → dycw_utilities-0.138.14}/src/tests/test_operator.py +0 -0
- {dycw_utilities-0.138.13 → dycw_utilities-0.138.14}/src/tests/test_optuna.py +0 -0
- {dycw_utilities-0.138.13 → dycw_utilities-0.138.14}/src/tests/test_orjson.py +0 -0
- {dycw_utilities-0.138.13 → dycw_utilities-0.138.14}/src/tests/test_os.py +0 -0
- {dycw_utilities-0.138.13 → dycw_utilities-0.138.14}/src/tests/test_parse.py +0 -0
- {dycw_utilities-0.138.13 → dycw_utilities-0.138.14}/src/tests/test_pathlib.py +0 -0
- {dycw_utilities-0.138.13 → dycw_utilities-0.138.14}/src/tests/test_period.py +0 -0
- {dycw_utilities-0.138.13 → dycw_utilities-0.138.14}/src/tests/test_pickle.py +0 -0
- {dycw_utilities-0.138.13 → dycw_utilities-0.138.14}/src/tests/test_platform.py +0 -0
- {dycw_utilities-0.138.13 → dycw_utilities-0.138.14}/src/tests/test_polars.py +0 -0
- {dycw_utilities-0.138.13 → dycw_utilities-0.138.14}/src/tests/test_polars_ols.py +0 -0
- {dycw_utilities-0.138.13 → dycw_utilities-0.138.14}/src/tests/test_pottery.py +0 -0
- {dycw_utilities-0.138.13 → dycw_utilities-0.138.14}/src/tests/test_pqdm.py +0 -0
- {dycw_utilities-0.138.13 → dycw_utilities-0.138.14}/src/tests/test_psutil.py +0 -0
- {dycw_utilities-0.138.13 → dycw_utilities-0.138.14}/src/tests/test_pydantic.py +0 -0
- {dycw_utilities-0.138.13 → dycw_utilities-0.138.14}/src/tests/test_pyinstrument.py +0 -0
- {dycw_utilities-0.138.13 → dycw_utilities-0.138.14}/src/tests/test_pytest.py +0 -0
- {dycw_utilities-0.138.13 → dycw_utilities-0.138.14}/src/tests/test_pytest_regressions.py +0 -0
- {dycw_utilities-0.138.13 → dycw_utilities-0.138.14}/src/tests/test_python_dotenv.py +0 -0
- {dycw_utilities-0.138.13 → dycw_utilities-0.138.14}/src/tests/test_random.py +0 -0
- {dycw_utilities-0.138.13 → dycw_utilities-0.138.14}/src/tests/test_re.py +0 -0
- {dycw_utilities-0.138.13 → dycw_utilities-0.138.14}/src/tests/test_redis.py +0 -0
- {dycw_utilities-0.138.13 → dycw_utilities-0.138.14}/src/tests/test_reprlib.py +0 -0
- {dycw_utilities-0.138.13 → dycw_utilities-0.138.14}/src/tests/test_scipy.py +0 -0
- {dycw_utilities-0.138.13 → dycw_utilities-0.138.14}/src/tests/test_sentinel.py +0 -0
- {dycw_utilities-0.138.13 → dycw_utilities-0.138.14}/src/tests/test_shelve.py +0 -0
- {dycw_utilities-0.138.13 → dycw_utilities-0.138.14}/src/tests/test_slack_sdk.py +0 -0
- {dycw_utilities-0.138.13 → dycw_utilities-0.138.14}/src/tests/test_socket.py +0 -0
- {dycw_utilities-0.138.13 → dycw_utilities-0.138.14}/src/tests/test_sqlalchemy.py +0 -0
- {dycw_utilities-0.138.13 → dycw_utilities-0.138.14}/src/tests/test_sqlalchemy_polars.py +0 -0
- {dycw_utilities-0.138.13 → dycw_utilities-0.138.14}/src/tests/test_statsmodels.py +0 -0
- {dycw_utilities-0.138.13 → dycw_utilities-0.138.14}/src/tests/test_streamlit.py +0 -0
- {dycw_utilities-0.138.13 → dycw_utilities-0.138.14}/src/tests/test_string.py +0 -0
- {dycw_utilities-0.138.13 → dycw_utilities-0.138.14}/src/tests/test_tempfile.py +0 -0
- {dycw_utilities-0.138.13 → dycw_utilities-0.138.14}/src/tests/test_text.py +0 -0
- {dycw_utilities-0.138.13 → dycw_utilities-0.138.14}/src/tests/test_threading.py +0 -0
- {dycw_utilities-0.138.13 → dycw_utilities-0.138.14}/src/tests/test_timer.py +0 -0
- {dycw_utilities-0.138.13 → dycw_utilities-0.138.14}/src/tests/test_traceback.py +0 -0
- {dycw_utilities-0.138.13 → dycw_utilities-0.138.14}/src/tests/test_typed_settings.py +0 -0
- {dycw_utilities-0.138.13 → dycw_utilities-0.138.14}/src/tests/test_types.py +0 -0
- {dycw_utilities-0.138.13 → dycw_utilities-0.138.14}/src/tests/test_typing.py +0 -0
- {dycw_utilities-0.138.13 → dycw_utilities-0.138.14}/src/tests/test_typing_funcs/__init__.py +0 -0
- {dycw_utilities-0.138.13 → dycw_utilities-0.138.14}/src/tests/test_typing_funcs/no_future.py +0 -0
- {dycw_utilities-0.138.13 → dycw_utilities-0.138.14}/src/tests/test_typing_funcs/with_future.py +0 -0
- {dycw_utilities-0.138.13 → dycw_utilities-0.138.14}/src/tests/test_tzdata.py +0 -0
- {dycw_utilities-0.138.13 → dycw_utilities-0.138.14}/src/tests/test_tzlocal.py +0 -0
- {dycw_utilities-0.138.13 → dycw_utilities-0.138.14}/src/tests/test_uuid.py +0 -0
- {dycw_utilities-0.138.13 → dycw_utilities-0.138.14}/src/tests/test_version.py +0 -0
- {dycw_utilities-0.138.13 → dycw_utilities-0.138.14}/src/tests/test_warnings.py +0 -0
- {dycw_utilities-0.138.13 → dycw_utilities-0.138.14}/src/tests/test_zipfile.py +0 -0
- {dycw_utilities-0.138.13 → dycw_utilities-0.138.14}/src/tests/test_zoneinfo.py +0 -0
- {dycw_utilities-0.138.13 → dycw_utilities-0.138.14}/src/utilities/aiolimiter.py +0 -0
- {dycw_utilities-0.138.13 → dycw_utilities-0.138.14}/src/utilities/altair.py +0 -0
- {dycw_utilities-0.138.13 → dycw_utilities-0.138.14}/src/utilities/asyncio.py +0 -0
- {dycw_utilities-0.138.13 → dycw_utilities-0.138.14}/src/utilities/atomicwrites.py +0 -0
- {dycw_utilities-0.138.13 → dycw_utilities-0.138.14}/src/utilities/atools.py +0 -0
- {dycw_utilities-0.138.13 → dycw_utilities-0.138.14}/src/utilities/cachetools.py +0 -0
- {dycw_utilities-0.138.13 → dycw_utilities-0.138.14}/src/utilities/click.py +0 -0
- {dycw_utilities-0.138.13 → dycw_utilities-0.138.14}/src/utilities/concurrent.py +0 -0
- {dycw_utilities-0.138.13 → dycw_utilities-0.138.14}/src/utilities/contextlib.py +0 -0
- {dycw_utilities-0.138.13 → dycw_utilities-0.138.14}/src/utilities/contextvars.py +0 -0
- {dycw_utilities-0.138.13 → dycw_utilities-0.138.14}/src/utilities/cryptography.py +0 -0
- {dycw_utilities-0.138.13 → dycw_utilities-0.138.14}/src/utilities/cvxpy.py +0 -0
- {dycw_utilities-0.138.13 → dycw_utilities-0.138.14}/src/utilities/dataclasses.py +0 -0
- {dycw_utilities-0.138.13 → dycw_utilities-0.138.14}/src/utilities/enum.py +0 -0
- {dycw_utilities-0.138.13 → dycw_utilities-0.138.14}/src/utilities/errors.py +0 -0
- {dycw_utilities-0.138.13 → dycw_utilities-0.138.14}/src/utilities/eventkit.py +0 -0
- {dycw_utilities-0.138.13 → dycw_utilities-0.138.14}/src/utilities/fastapi.py +0 -0
- {dycw_utilities-0.138.13 → dycw_utilities-0.138.14}/src/utilities/fpdf2.py +0 -0
- {dycw_utilities-0.138.13 → dycw_utilities-0.138.14}/src/utilities/functions.py +0 -0
- {dycw_utilities-0.138.13 → dycw_utilities-0.138.14}/src/utilities/functools.py +0 -0
- {dycw_utilities-0.138.13 → dycw_utilities-0.138.14}/src/utilities/getpass.py +0 -0
- {dycw_utilities-0.138.13 → dycw_utilities-0.138.14}/src/utilities/hashlib.py +0 -0
- {dycw_utilities-0.138.13 → dycw_utilities-0.138.14}/src/utilities/http.py +0 -0
- {dycw_utilities-0.138.13 → dycw_utilities-0.138.14}/src/utilities/hypothesis.py +0 -0
- {dycw_utilities-0.138.13 → dycw_utilities-0.138.14}/src/utilities/importlib.py +0 -0
- {dycw_utilities-0.138.13 → dycw_utilities-0.138.14}/src/utilities/inflect.py +0 -0
- {dycw_utilities-0.138.13 → dycw_utilities-0.138.14}/src/utilities/ipython.py +0 -0
- {dycw_utilities-0.138.13 → dycw_utilities-0.138.14}/src/utilities/iterables.py +0 -0
- {dycw_utilities-0.138.13 → dycw_utilities-0.138.14}/src/utilities/jupyter.py +0 -0
- {dycw_utilities-0.138.13 → dycw_utilities-0.138.14}/src/utilities/libcst.py +0 -0
- {dycw_utilities-0.138.13 → dycw_utilities-0.138.14}/src/utilities/lightweight_charts.py +0 -0
- {dycw_utilities-0.138.13 → dycw_utilities-0.138.14}/src/utilities/logging.py +0 -0
- {dycw_utilities-0.138.13 → dycw_utilities-0.138.14}/src/utilities/luigi.py +0 -0
- {dycw_utilities-0.138.13 → dycw_utilities-0.138.14}/src/utilities/math.py +0 -0
- {dycw_utilities-0.138.13 → dycw_utilities-0.138.14}/src/utilities/memory_profiler.py +0 -0
- {dycw_utilities-0.138.13 → dycw_utilities-0.138.14}/src/utilities/modules.py +0 -0
- {dycw_utilities-0.138.13 → dycw_utilities-0.138.14}/src/utilities/more_itertools.py +0 -0
- {dycw_utilities-0.138.13 → dycw_utilities-0.138.14}/src/utilities/numpy.py +0 -0
- {dycw_utilities-0.138.13 → dycw_utilities-0.138.14}/src/utilities/operator.py +0 -0
- {dycw_utilities-0.138.13 → dycw_utilities-0.138.14}/src/utilities/optuna.py +0 -0
- {dycw_utilities-0.138.13 → dycw_utilities-0.138.14}/src/utilities/orjson.py +0 -0
- {dycw_utilities-0.138.13 → dycw_utilities-0.138.14}/src/utilities/os.py +0 -0
- {dycw_utilities-0.138.13 → dycw_utilities-0.138.14}/src/utilities/parse.py +0 -0
- {dycw_utilities-0.138.13 → dycw_utilities-0.138.14}/src/utilities/pathlib.py +0 -0
- {dycw_utilities-0.138.13 → dycw_utilities-0.138.14}/src/utilities/period.py +0 -0
- {dycw_utilities-0.138.13 → dycw_utilities-0.138.14}/src/utilities/pickle.py +0 -0
- {dycw_utilities-0.138.13 → dycw_utilities-0.138.14}/src/utilities/platform.py +0 -0
- {dycw_utilities-0.138.13 → dycw_utilities-0.138.14}/src/utilities/polars.py +0 -0
- {dycw_utilities-0.138.13 → dycw_utilities-0.138.14}/src/utilities/polars_ols.py +0 -0
- {dycw_utilities-0.138.13 → dycw_utilities-0.138.14}/src/utilities/pottery.py +0 -0
- {dycw_utilities-0.138.13 → dycw_utilities-0.138.14}/src/utilities/pqdm.py +0 -0
- {dycw_utilities-0.138.13 → dycw_utilities-0.138.14}/src/utilities/psutil.py +0 -0
- {dycw_utilities-0.138.13 → dycw_utilities-0.138.14}/src/utilities/py.typed +0 -0
- {dycw_utilities-0.138.13 → dycw_utilities-0.138.14}/src/utilities/pydantic.py +0 -0
- {dycw_utilities-0.138.13 → dycw_utilities-0.138.14}/src/utilities/pyinstrument.py +0 -0
- {dycw_utilities-0.138.13 → dycw_utilities-0.138.14}/src/utilities/pytest.py +0 -0
- {dycw_utilities-0.138.13 → dycw_utilities-0.138.14}/src/utilities/pytest_regressions.py +0 -0
- {dycw_utilities-0.138.13 → dycw_utilities-0.138.14}/src/utilities/pytest_regressions_plugin.py +0 -0
- {dycw_utilities-0.138.13 → dycw_utilities-0.138.14}/src/utilities/python_dotenv.py +0 -0
- {dycw_utilities-0.138.13 → dycw_utilities-0.138.14}/src/utilities/random.py +0 -0
- {dycw_utilities-0.138.13 → dycw_utilities-0.138.14}/src/utilities/re.py +0 -0
- {dycw_utilities-0.138.13 → dycw_utilities-0.138.14}/src/utilities/redis.py +0 -0
- {dycw_utilities-0.138.13 → dycw_utilities-0.138.14}/src/utilities/reprlib.py +0 -0
- {dycw_utilities-0.138.13 → dycw_utilities-0.138.14}/src/utilities/scipy.py +0 -0
- {dycw_utilities-0.138.13 → dycw_utilities-0.138.14}/src/utilities/sentinel.py +0 -0
- {dycw_utilities-0.138.13 → dycw_utilities-0.138.14}/src/utilities/shelve.py +0 -0
- {dycw_utilities-0.138.13 → dycw_utilities-0.138.14}/src/utilities/slack_sdk.py +0 -0
- {dycw_utilities-0.138.13 → dycw_utilities-0.138.14}/src/utilities/socket.py +0 -0
- {dycw_utilities-0.138.13 → dycw_utilities-0.138.14}/src/utilities/sqlalchemy.py +0 -0
- {dycw_utilities-0.138.13 → dycw_utilities-0.138.14}/src/utilities/sqlalchemy_polars.py +0 -0
- {dycw_utilities-0.138.13 → dycw_utilities-0.138.14}/src/utilities/statsmodels.py +0 -0
- {dycw_utilities-0.138.13 → dycw_utilities-0.138.14}/src/utilities/streamlit.py +0 -0
- {dycw_utilities-0.138.13 → dycw_utilities-0.138.14}/src/utilities/string.py +0 -0
- {dycw_utilities-0.138.13 → dycw_utilities-0.138.14}/src/utilities/tempfile.py +0 -0
- {dycw_utilities-0.138.13 → dycw_utilities-0.138.14}/src/utilities/text.py +0 -0
- {dycw_utilities-0.138.13 → dycw_utilities-0.138.14}/src/utilities/threading.py +0 -0
- {dycw_utilities-0.138.13 → dycw_utilities-0.138.14}/src/utilities/timer.py +0 -0
- {dycw_utilities-0.138.13 → dycw_utilities-0.138.14}/src/utilities/traceback.py +0 -0
- {dycw_utilities-0.138.13 → dycw_utilities-0.138.14}/src/utilities/typed_settings.py +0 -0
- {dycw_utilities-0.138.13 → dycw_utilities-0.138.14}/src/utilities/types.py +0 -0
- {dycw_utilities-0.138.13 → dycw_utilities-0.138.14}/src/utilities/typing.py +0 -0
- {dycw_utilities-0.138.13 → dycw_utilities-0.138.14}/src/utilities/tzdata.py +0 -0
- {dycw_utilities-0.138.13 → dycw_utilities-0.138.14}/src/utilities/tzlocal.py +0 -0
- {dycw_utilities-0.138.13 → dycw_utilities-0.138.14}/src/utilities/uuid.py +0 -0
- {dycw_utilities-0.138.13 → dycw_utilities-0.138.14}/src/utilities/version.py +0 -0
- {dycw_utilities-0.138.13 → dycw_utilities-0.138.14}/src/utilities/warnings.py +0 -0
- {dycw_utilities-0.138.13 → dycw_utilities-0.138.14}/src/utilities/zipfile.py +0 -0
- {dycw_utilities-0.138.13 → dycw_utilities-0.138.14}/src/utilities/zoneinfo.py +0 -0
@@ -106,7 +106,7 @@ dependencies = [
|
|
106
106
|
name = "dycw-utilities"
|
107
107
|
readme = "README.md"
|
108
108
|
requires-python = ">= 3.12"
|
109
|
-
version = "0.138.
|
109
|
+
version = "0.138.14"
|
110
110
|
|
111
111
|
[project.entry-points.pytest11]
|
112
112
|
pytest-regressions = "utilities.pytest_regressions_plugin"
|
@@ -137,7 +137,7 @@ test = [
|
|
137
137
|
# bump-my-version
|
138
138
|
[tool.bumpversion]
|
139
139
|
allow_dirty = true
|
140
|
-
current_version = "0.138.
|
140
|
+
current_version = "0.138.14"
|
141
141
|
|
142
142
|
[[tool.bumpversion.files]]
|
143
143
|
filename = "src/utilities/__init__.py"
|
@@ -75,6 +75,7 @@ from utilities.whenever import (
|
|
75
75
|
_MinMaxDateMinDateError,
|
76
76
|
_MinMaxDatePeriodError,
|
77
77
|
datetime_utc,
|
78
|
+
diff_year_month,
|
78
79
|
format_compact,
|
79
80
|
from_timestamp,
|
80
81
|
from_timestamp_millis,
|
@@ -99,6 +100,8 @@ from utilities.whenever import (
|
|
99
100
|
from utilities.zoneinfo import UTC
|
100
101
|
|
101
102
|
if TYPE_CHECKING:
|
103
|
+
from _pytest.mark import ParameterSet
|
104
|
+
|
102
105
|
from utilities.sentinel import Sentinel
|
103
106
|
from utilities.types import MaybeCallableDate, MaybeCallableZonedDateTime
|
104
107
|
|
@@ -118,6 +121,35 @@ class TestDatetimeUTC:
|
|
118
121
|
assert result == datetime
|
119
122
|
|
120
123
|
|
124
|
+
class TestDiffYearMonth:
|
125
|
+
x: ClassVar[YearMonth] = YearMonth(2005, 7)
|
126
|
+
cases: ClassVar[list[ParameterSet]] = [
|
127
|
+
param(YearMonth(2004, 7), 1, 0),
|
128
|
+
param(YearMonth(2004, 8), 0, 11),
|
129
|
+
param(YearMonth(2005, 1), 0, 6),
|
130
|
+
param(YearMonth(2005, 5), 0, 2),
|
131
|
+
param(YearMonth(2005, 6), 0, 1),
|
132
|
+
param(YearMonth(2005, 7), 0, 0),
|
133
|
+
param(YearMonth(2005, 8), 0, -1),
|
134
|
+
param(YearMonth(2005, 9), 0, -2),
|
135
|
+
param(YearMonth(2006, 1), 0, -6),
|
136
|
+
param(YearMonth(2006, 6), 0, -11),
|
137
|
+
param(YearMonth(2006, 7), -1, 0),
|
138
|
+
]
|
139
|
+
|
140
|
+
@mark.parametrize(("y", "year", "month"), cases)
|
141
|
+
def test_main(self, *, y: YearMonth, year: int, month: int) -> None:
|
142
|
+
result = diff_year_month(self.x, y)
|
143
|
+
expected = 12 * year + month
|
144
|
+
assert result == expected
|
145
|
+
|
146
|
+
@mark.parametrize(("y", "year", "month"), cases)
|
147
|
+
def test_year_and_month(self, *, y: YearMonth, year: int, month: int) -> None:
|
148
|
+
result = diff_year_month(self.x, y, years=True)
|
149
|
+
expected = (year, month)
|
150
|
+
assert result == expected
|
151
|
+
|
152
|
+
|
121
153
|
class TestFormatCompact:
|
122
154
|
@given(date=dates())
|
123
155
|
def test_date(self, *, date: Date) -> None:
|
@@ -155,6 +155,34 @@ def datetime_utc(
|
|
155
155
|
##
|
156
156
|
|
157
157
|
|
158
|
+
@overload
|
159
|
+
def diff_year_month(
|
160
|
+
x: YearMonth, y: YearMonth, /, *, years: Literal[True]
|
161
|
+
) -> tuple[int, int]: ...
|
162
|
+
@overload
|
163
|
+
def diff_year_month(
|
164
|
+
x: YearMonth, y: YearMonth, /, *, years: Literal[False] = False
|
165
|
+
) -> int: ...
|
166
|
+
@overload
|
167
|
+
def diff_year_month(
|
168
|
+
x: YearMonth, y: YearMonth, /, *, years: bool = False
|
169
|
+
) -> int | tuple[int, int]: ...
|
170
|
+
def diff_year_month(
|
171
|
+
x: YearMonth, y: YearMonth, /, *, years: bool = False
|
172
|
+
) -> int | tuple[int, int]:
|
173
|
+
"""Compute the difference between two year-months."""
|
174
|
+
x_date, y_date = x.on_day(1), y.on_day(1)
|
175
|
+
diff = x_date - y_date
|
176
|
+
if years:
|
177
|
+
yrs, mth, _ = diff.in_years_months_days()
|
178
|
+
return yrs, mth
|
179
|
+
mth, _ = diff.in_months_days()
|
180
|
+
return mth
|
181
|
+
|
182
|
+
|
183
|
+
##
|
184
|
+
|
185
|
+
|
158
186
|
def format_compact(
|
159
187
|
obj: Date | Time | PlainDateTime | ZonedDateTime, /, *, fmt: str | None = None
|
160
188
|
) -> str:
|
@@ -826,6 +854,7 @@ __all__ = [
|
|
826
854
|
"ToPyTimeDeltaError",
|
827
855
|
"WheneverLogRecord",
|
828
856
|
"datetime_utc",
|
857
|
+
"diff_year_month",
|
829
858
|
"format_compact",
|
830
859
|
"from_timestamp",
|
831
860
|
"from_timestamp_millis",
|
File without changes
|
File without changes
|
File without changes
|
File without changes
|
File without changes
|
File without changes
|
{dycw_utilities-0.138.13 → dycw_utilities-0.138.14}/src/tests/modules/package_missing/__init__.py
RENAMED
File without changes
|
{dycw_utilities-0.138.13 → dycw_utilities-0.138.14}/src/tests/modules/package_missing/module.py
RENAMED
File without changes
|
{dycw_utilities-0.138.13 → dycw_utilities-0.138.14}/src/tests/modules/package_with/__init__.py
RENAMED
File without changes
|
{dycw_utilities-0.138.13 → dycw_utilities-0.138.14}/src/tests/modules/package_with/outer_1.py
RENAMED
File without changes
|
{dycw_utilities-0.138.13 → dycw_utilities-0.138.14}/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.138.13 → dycw_utilities-0.138.14}/src/tests/modules/package_without/__init__.py
RENAMED
File without changes
|
{dycw_utilities-0.138.13 → dycw_utilities-0.138.14}/src/tests/modules/package_without/module_1.py
RENAMED
File without changes
|
{dycw_utilities-0.138.13 → dycw_utilities-0.138.14}/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
|
{dycw_utilities-0.138.13 → dycw_utilities-0.138.14}/src/tests/test_asyncio_classes/__init__.py
RENAMED
File without changes
|
{dycw_utilities-0.138.13 → dycw_utilities-0.138.14}/src/tests/test_asyncio_classes/loopers.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
|
{dycw_utilities-0.138.13 → dycw_utilities-0.138.14}/src/tests/test_typing_funcs/no_future.py
RENAMED
File without changes
|
{dycw_utilities-0.138.13 → dycw_utilities-0.138.14}/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
|
{dycw_utilities-0.138.13 → dycw_utilities-0.138.14}/src/utilities/pytest_regressions_plugin.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
|