dycw-utilities 0.166.2__tar.gz → 0.166.4__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.166.2 → dycw_utilities-0.166.4}/PKG-INFO +3 -3
- {dycw_utilities-0.166.2 → dycw_utilities-0.166.4}/pyproject.toml +9 -9
- {dycw_utilities-0.166.2 → dycw_utilities-0.166.4}/src/tests/test_whenever.py +74 -1
- {dycw_utilities-0.166.2 → dycw_utilities-0.166.4}/src/utilities/__init__.py +1 -1
- {dycw_utilities-0.166.2 → dycw_utilities-0.166.4}/src/utilities/types.py +2 -0
- {dycw_utilities-0.166.2 → dycw_utilities-0.166.4}/src/utilities/whenever.py +117 -58
- {dycw_utilities-0.166.2 → dycw_utilities-0.166.4}/.gitignore +0 -0
- {dycw_utilities-0.166.2 → dycw_utilities-0.166.4}/LICENSE +0 -0
- {dycw_utilities-0.166.2 → dycw_utilities-0.166.4}/README.md +0 -0
- {dycw_utilities-0.166.2 → dycw_utilities-0.166.4}/src/tests/__init__.py +0 -0
- {dycw_utilities-0.166.2 → dycw_utilities-0.166.4}/src/tests/conftest.py +0 -0
- {dycw_utilities-0.166.2 → dycw_utilities-0.166.4}/src/tests/modules/__init__.py +0 -0
- {dycw_utilities-0.166.2 → dycw_utilities-0.166.4}/src/tests/modules/package_missing/__init__.py +0 -0
- {dycw_utilities-0.166.2 → dycw_utilities-0.166.4}/src/tests/modules/package_missing/module.py +0 -0
- {dycw_utilities-0.166.2 → dycw_utilities-0.166.4}/src/tests/modules/package_with/__init__.py +0 -0
- {dycw_utilities-0.166.2 → dycw_utilities-0.166.4}/src/tests/modules/package_with/outer_1.py +0 -0
- {dycw_utilities-0.166.2 → dycw_utilities-0.166.4}/src/tests/modules/package_with/outer_2.py +0 -0
- {dycw_utilities-0.166.2 → dycw_utilities-0.166.4}/src/tests/modules/package_with/subpackage/__init__.py +0 -0
- {dycw_utilities-0.166.2 → dycw_utilities-0.166.4}/src/tests/modules/package_with/subpackage/inner_1.py +0 -0
- {dycw_utilities-0.166.2 → dycw_utilities-0.166.4}/src/tests/modules/package_with/subpackage/inner_2.py +0 -0
- {dycw_utilities-0.166.2 → dycw_utilities-0.166.4}/src/tests/modules/package_with/subpackage/inner_3.py +0 -0
- {dycw_utilities-0.166.2 → dycw_utilities-0.166.4}/src/tests/modules/package_without/__init__.py +0 -0
- {dycw_utilities-0.166.2 → dycw_utilities-0.166.4}/src/tests/modules/package_without/module_1.py +0 -0
- {dycw_utilities-0.166.2 → dycw_utilities-0.166.4}/src/tests/modules/package_without/module_2.py +0 -0
- {dycw_utilities-0.166.2 → dycw_utilities-0.166.4}/src/tests/modules/standalone.py +0 -0
- {dycw_utilities-0.166.2 → dycw_utilities-0.166.4}/src/tests/modules/with_imports.py +0 -0
- {dycw_utilities-0.166.2 → dycw_utilities-0.166.4}/src/tests/regressions/test_pytest_regressions/TestMultipleRegressionFixtures__test_main__obj.json +0 -0
- {dycw_utilities-0.166.2 → dycw_utilities-0.166.4}/src/tests/regressions/test_pytest_regressions/TestMultipleRegressionFixtures__test_main__series.json +0 -0
- {dycw_utilities-0.166.2 → dycw_utilities-0.166.4}/src/tests/regressions/test_pytest_regressions/TestOrjsonRegressionFixture__test_dataclass_int.json +0 -0
- {dycw_utilities-0.166.2 → dycw_utilities-0.166.4}/src/tests/regressions/test_pytest_regressions/TestOrjsonRegressionFixture__test_dataclass_literal__false.json +0 -0
- {dycw_utilities-0.166.2 → dycw_utilities-0.166.4}/src/tests/regressions/test_pytest_regressions/TestOrjsonRegressionFixture__test_dataclass_literal__true.json +0 -0
- {dycw_utilities-0.166.2 → dycw_utilities-0.166.4}/src/tests/regressions/test_pytest_regressions/TestOrjsonRegressionFixture__test_dataclass_nested.json +0 -0
- {dycw_utilities-0.166.2 → dycw_utilities-0.166.4}/src/tests/regressions/test_pytest_regressions/TestPolarsRegressionFixture__test_dataframe.json +0 -0
- {dycw_utilities-0.166.2 → dycw_utilities-0.166.4}/src/tests/regressions/test_pytest_regressions/TestPolarsRegressionFixture__test_series.json +0 -0
- {dycw_utilities-0.166.2 → dycw_utilities-0.166.4}/src/tests/test_aeventkit.py +0 -0
- {dycw_utilities-0.166.2 → dycw_utilities-0.166.4}/src/tests/test_altair.py +0 -0
- {dycw_utilities-0.166.2 → dycw_utilities-0.166.4}/src/tests/test_asyncio.py +0 -0
- {dycw_utilities-0.166.2 → dycw_utilities-0.166.4}/src/tests/test_atomicwrites.py +0 -0
- {dycw_utilities-0.166.2 → dycw_utilities-0.166.4}/src/tests/test_atools.py +0 -0
- {dycw_utilities-0.166.2 → dycw_utilities-0.166.4}/src/tests/test_cachetools.py +0 -0
- {dycw_utilities-0.166.2 → dycw_utilities-0.166.4}/src/tests/test_click.py +0 -0
- {dycw_utilities-0.166.2 → dycw_utilities-0.166.4}/src/tests/test_concurrent.py +0 -0
- {dycw_utilities-0.166.2 → dycw_utilities-0.166.4}/src/tests/test_contextlib.py +0 -0
- {dycw_utilities-0.166.2 → dycw_utilities-0.166.4}/src/tests/test_contextvars.py +0 -0
- {dycw_utilities-0.166.2 → dycw_utilities-0.166.4}/src/tests/test_cryptography.py +0 -0
- {dycw_utilities-0.166.2 → dycw_utilities-0.166.4}/src/tests/test_cvxpy.py +0 -0
- {dycw_utilities-0.166.2 → dycw_utilities-0.166.4}/src/tests/test_dataclasses.py +0 -0
- {dycw_utilities-0.166.2 → dycw_utilities-0.166.4}/src/tests/test_enum.py +0 -0
- {dycw_utilities-0.166.2 → dycw_utilities-0.166.4}/src/tests/test_errors.py +0 -0
- {dycw_utilities-0.166.2 → dycw_utilities-0.166.4}/src/tests/test_fastapi.py +0 -0
- {dycw_utilities-0.166.2 → dycw_utilities-0.166.4}/src/tests/test_fpdf2.py +0 -0
- {dycw_utilities-0.166.2 → dycw_utilities-0.166.4}/src/tests/test_functions.py +0 -0
- {dycw_utilities-0.166.2 → dycw_utilities-0.166.4}/src/tests/test_functools.py +0 -0
- {dycw_utilities-0.166.2 → dycw_utilities-0.166.4}/src/tests/test_getpass.py +0 -0
- {dycw_utilities-0.166.2 → dycw_utilities-0.166.4}/src/tests/test_gzip.py +0 -0
- {dycw_utilities-0.166.2 → dycw_utilities-0.166.4}/src/tests/test_hashlib.py +0 -0
- {dycw_utilities-0.166.2 → dycw_utilities-0.166.4}/src/tests/test_http.py +0 -0
- {dycw_utilities-0.166.2 → dycw_utilities-0.166.4}/src/tests/test_hypothesis.py +0 -0
- {dycw_utilities-0.166.2 → dycw_utilities-0.166.4}/src/tests/test_importlib.py +0 -0
- {dycw_utilities-0.166.2 → dycw_utilities-0.166.4}/src/tests/test_inflect.py +0 -0
- {dycw_utilities-0.166.2 → dycw_utilities-0.166.4}/src/tests/test_ipython.py +0 -0
- {dycw_utilities-0.166.2 → dycw_utilities-0.166.4}/src/tests/test_iterables.py +0 -0
- {dycw_utilities-0.166.2 → dycw_utilities-0.166.4}/src/tests/test_json.py +0 -0
- {dycw_utilities-0.166.2 → dycw_utilities-0.166.4}/src/tests/test_jupyter.py +0 -0
- {dycw_utilities-0.166.2 → dycw_utilities-0.166.4}/src/tests/test_libcst.py +0 -0
- {dycw_utilities-0.166.2 → dycw_utilities-0.166.4}/src/tests/test_lightweight_charts.py +0 -0
- {dycw_utilities-0.166.2 → dycw_utilities-0.166.4}/src/tests/test_logging.py +0 -0
- {dycw_utilities-0.166.2 → dycw_utilities-0.166.4}/src/tests/test_math.py +0 -0
- {dycw_utilities-0.166.2 → dycw_utilities-0.166.4}/src/tests/test_memory_profiler.py +0 -0
- {dycw_utilities-0.166.2 → dycw_utilities-0.166.4}/src/tests/test_modules.py +0 -0
- {dycw_utilities-0.166.2 → dycw_utilities-0.166.4}/src/tests/test_more_itertools.py +0 -0
- {dycw_utilities-0.166.2 → dycw_utilities-0.166.4}/src/tests/test_numpy.py +0 -0
- {dycw_utilities-0.166.2 → dycw_utilities-0.166.4}/src/tests/test_objects/__init__.py +0 -0
- {dycw_utilities-0.166.2 → dycw_utilities-0.166.4}/src/tests/test_objects/objects.py +0 -0
- {dycw_utilities-0.166.2 → dycw_utilities-0.166.4}/src/tests/test_operator.py +0 -0
- {dycw_utilities-0.166.2 → dycw_utilities-0.166.4}/src/tests/test_optuna.py +0 -0
- {dycw_utilities-0.166.2 → dycw_utilities-0.166.4}/src/tests/test_orjson.py +0 -0
- {dycw_utilities-0.166.2 → dycw_utilities-0.166.4}/src/tests/test_os.py +0 -0
- {dycw_utilities-0.166.2 → dycw_utilities-0.166.4}/src/tests/test_parse.py +0 -0
- {dycw_utilities-0.166.2 → dycw_utilities-0.166.4}/src/tests/test_pathlib.py +0 -0
- {dycw_utilities-0.166.2 → dycw_utilities-0.166.4}/src/tests/test_pickle.py +0 -0
- {dycw_utilities-0.166.2 → dycw_utilities-0.166.4}/src/tests/test_platform.py +0 -0
- {dycw_utilities-0.166.2 → dycw_utilities-0.166.4}/src/tests/test_polars.py +0 -0
- {dycw_utilities-0.166.2 → dycw_utilities-0.166.4}/src/tests/test_polars_ols.py +0 -0
- {dycw_utilities-0.166.2 → dycw_utilities-0.166.4}/src/tests/test_postgres.py +0 -0
- {dycw_utilities-0.166.2 → dycw_utilities-0.166.4}/src/tests/test_pottery.py +0 -0
- {dycw_utilities-0.166.2 → dycw_utilities-0.166.4}/src/tests/test_pqdm.py +0 -0
- {dycw_utilities-0.166.2 → dycw_utilities-0.166.4}/src/tests/test_psutil.py +0 -0
- {dycw_utilities-0.166.2 → dycw_utilities-0.166.4}/src/tests/test_pyinstrument.py +0 -0
- {dycw_utilities-0.166.2 → dycw_utilities-0.166.4}/src/tests/test_pytest.py +0 -0
- {dycw_utilities-0.166.2 → dycw_utilities-0.166.4}/src/tests/test_pytest_randomly.py +0 -0
- {dycw_utilities-0.166.2 → dycw_utilities-0.166.4}/src/tests/test_pytest_regressions.py +0 -0
- {dycw_utilities-0.166.2 → dycw_utilities-0.166.4}/src/tests/test_random.py +0 -0
- {dycw_utilities-0.166.2 → dycw_utilities-0.166.4}/src/tests/test_re.py +0 -0
- {dycw_utilities-0.166.2 → dycw_utilities-0.166.4}/src/tests/test_redis.py +0 -0
- {dycw_utilities-0.166.2 → dycw_utilities-0.166.4}/src/tests/test_reprlib.py +0 -0
- {dycw_utilities-0.166.2 → dycw_utilities-0.166.4}/src/tests/test_scipy.py +0 -0
- {dycw_utilities-0.166.2 → dycw_utilities-0.166.4}/src/tests/test_sentinel.py +0 -0
- {dycw_utilities-0.166.2 → dycw_utilities-0.166.4}/src/tests/test_shelve.py +0 -0
- {dycw_utilities-0.166.2 → dycw_utilities-0.166.4}/src/tests/test_slack_sdk.py +0 -0
- {dycw_utilities-0.166.2 → dycw_utilities-0.166.4}/src/tests/test_socket.py +0 -0
- {dycw_utilities-0.166.2 → dycw_utilities-0.166.4}/src/tests/test_sqlalchemy.py +0 -0
- {dycw_utilities-0.166.2 → dycw_utilities-0.166.4}/src/tests/test_sqlalchemy_polars.py +0 -0
- {dycw_utilities-0.166.2 → dycw_utilities-0.166.4}/src/tests/test_statsmodels.py +0 -0
- {dycw_utilities-0.166.2 → dycw_utilities-0.166.4}/src/tests/test_string.py +0 -0
- {dycw_utilities-0.166.2 → dycw_utilities-0.166.4}/src/tests/test_tempfile.py +0 -0
- {dycw_utilities-0.166.2 → dycw_utilities-0.166.4}/src/tests/test_testbook.py +0 -0
- {dycw_utilities-0.166.2 → dycw_utilities-0.166.4}/src/tests/test_text.py +0 -0
- {dycw_utilities-0.166.2 → dycw_utilities-0.166.4}/src/tests/test_threading.py +0 -0
- {dycw_utilities-0.166.2 → dycw_utilities-0.166.4}/src/tests/test_timer.py +0 -0
- {dycw_utilities-0.166.2 → dycw_utilities-0.166.4}/src/tests/test_traceback.py +0 -0
- {dycw_utilities-0.166.2 → dycw_utilities-0.166.4}/src/tests/test_typed_settings.py +0 -0
- {dycw_utilities-0.166.2 → dycw_utilities-0.166.4}/src/tests/test_types.py +0 -0
- {dycw_utilities-0.166.2 → dycw_utilities-0.166.4}/src/tests/test_typing.py +0 -0
- {dycw_utilities-0.166.2 → dycw_utilities-0.166.4}/src/tests/test_typing_funcs/__init__.py +0 -0
- {dycw_utilities-0.166.2 → dycw_utilities-0.166.4}/src/tests/test_typing_funcs/no_future.py +0 -0
- {dycw_utilities-0.166.2 → dycw_utilities-0.166.4}/src/tests/test_typing_funcs/with_future.py +0 -0
- {dycw_utilities-0.166.2 → dycw_utilities-0.166.4}/src/tests/test_tzdata.py +0 -0
- {dycw_utilities-0.166.2 → dycw_utilities-0.166.4}/src/tests/test_tzlocal.py +0 -0
- {dycw_utilities-0.166.2 → dycw_utilities-0.166.4}/src/tests/test_uuid.py +0 -0
- {dycw_utilities-0.166.2 → dycw_utilities-0.166.4}/src/tests/test_version.py +0 -0
- {dycw_utilities-0.166.2 → dycw_utilities-0.166.4}/src/tests/test_warnings.py +0 -0
- {dycw_utilities-0.166.2 → dycw_utilities-0.166.4}/src/tests/test_zipfile.py +0 -0
- {dycw_utilities-0.166.2 → dycw_utilities-0.166.4}/src/tests/test_zoneinfo.py +0 -0
- {dycw_utilities-0.166.2 → dycw_utilities-0.166.4}/src/utilities/aeventkit.py +0 -0
- {dycw_utilities-0.166.2 → dycw_utilities-0.166.4}/src/utilities/altair.py +0 -0
- {dycw_utilities-0.166.2 → dycw_utilities-0.166.4}/src/utilities/asyncio.py +0 -0
- {dycw_utilities-0.166.2 → dycw_utilities-0.166.4}/src/utilities/atomicwrites.py +0 -0
- {dycw_utilities-0.166.2 → dycw_utilities-0.166.4}/src/utilities/atools.py +0 -0
- {dycw_utilities-0.166.2 → dycw_utilities-0.166.4}/src/utilities/cachetools.py +0 -0
- {dycw_utilities-0.166.2 → dycw_utilities-0.166.4}/src/utilities/click.py +0 -0
- {dycw_utilities-0.166.2 → dycw_utilities-0.166.4}/src/utilities/concurrent.py +0 -0
- {dycw_utilities-0.166.2 → dycw_utilities-0.166.4}/src/utilities/contextlib.py +0 -0
- {dycw_utilities-0.166.2 → dycw_utilities-0.166.4}/src/utilities/contextvars.py +0 -0
- {dycw_utilities-0.166.2 → dycw_utilities-0.166.4}/src/utilities/cryptography.py +0 -0
- {dycw_utilities-0.166.2 → dycw_utilities-0.166.4}/src/utilities/cvxpy.py +0 -0
- {dycw_utilities-0.166.2 → dycw_utilities-0.166.4}/src/utilities/dataclasses.py +0 -0
- {dycw_utilities-0.166.2 → dycw_utilities-0.166.4}/src/utilities/enum.py +0 -0
- {dycw_utilities-0.166.2 → dycw_utilities-0.166.4}/src/utilities/errors.py +0 -0
- {dycw_utilities-0.166.2 → dycw_utilities-0.166.4}/src/utilities/fastapi.py +0 -0
- {dycw_utilities-0.166.2 → dycw_utilities-0.166.4}/src/utilities/fpdf2.py +0 -0
- {dycw_utilities-0.166.2 → dycw_utilities-0.166.4}/src/utilities/functions.py +0 -0
- {dycw_utilities-0.166.2 → dycw_utilities-0.166.4}/src/utilities/functools.py +0 -0
- {dycw_utilities-0.166.2 → dycw_utilities-0.166.4}/src/utilities/getpass.py +0 -0
- {dycw_utilities-0.166.2 → dycw_utilities-0.166.4}/src/utilities/gzip.py +0 -0
- {dycw_utilities-0.166.2 → dycw_utilities-0.166.4}/src/utilities/hashlib.py +0 -0
- {dycw_utilities-0.166.2 → dycw_utilities-0.166.4}/src/utilities/http.py +0 -0
- {dycw_utilities-0.166.2 → dycw_utilities-0.166.4}/src/utilities/hypothesis.py +0 -0
- {dycw_utilities-0.166.2 → dycw_utilities-0.166.4}/src/utilities/importlib.py +0 -0
- {dycw_utilities-0.166.2 → dycw_utilities-0.166.4}/src/utilities/inflect.py +0 -0
- {dycw_utilities-0.166.2 → dycw_utilities-0.166.4}/src/utilities/ipython.py +0 -0
- {dycw_utilities-0.166.2 → dycw_utilities-0.166.4}/src/utilities/iterables.py +0 -0
- {dycw_utilities-0.166.2 → dycw_utilities-0.166.4}/src/utilities/json.py +0 -0
- {dycw_utilities-0.166.2 → dycw_utilities-0.166.4}/src/utilities/jupyter.py +0 -0
- {dycw_utilities-0.166.2 → dycw_utilities-0.166.4}/src/utilities/libcst.py +0 -0
- {dycw_utilities-0.166.2 → dycw_utilities-0.166.4}/src/utilities/lightweight_charts.py +0 -0
- {dycw_utilities-0.166.2 → dycw_utilities-0.166.4}/src/utilities/logging.py +0 -0
- {dycw_utilities-0.166.2 → dycw_utilities-0.166.4}/src/utilities/math.py +0 -0
- {dycw_utilities-0.166.2 → dycw_utilities-0.166.4}/src/utilities/memory_profiler.py +0 -0
- {dycw_utilities-0.166.2 → dycw_utilities-0.166.4}/src/utilities/modules.py +0 -0
- {dycw_utilities-0.166.2 → dycw_utilities-0.166.4}/src/utilities/more_itertools.py +0 -0
- {dycw_utilities-0.166.2 → dycw_utilities-0.166.4}/src/utilities/numpy.py +0 -0
- {dycw_utilities-0.166.2 → dycw_utilities-0.166.4}/src/utilities/operator.py +0 -0
- {dycw_utilities-0.166.2 → dycw_utilities-0.166.4}/src/utilities/optuna.py +0 -0
- {dycw_utilities-0.166.2 → dycw_utilities-0.166.4}/src/utilities/orjson.py +0 -0
- {dycw_utilities-0.166.2 → dycw_utilities-0.166.4}/src/utilities/os.py +0 -0
- {dycw_utilities-0.166.2 → dycw_utilities-0.166.4}/src/utilities/parse.py +0 -0
- {dycw_utilities-0.166.2 → dycw_utilities-0.166.4}/src/utilities/pathlib.py +0 -0
- {dycw_utilities-0.166.2 → dycw_utilities-0.166.4}/src/utilities/pickle.py +0 -0
- {dycw_utilities-0.166.2 → dycw_utilities-0.166.4}/src/utilities/platform.py +0 -0
- {dycw_utilities-0.166.2 → dycw_utilities-0.166.4}/src/utilities/polars.py +0 -0
- {dycw_utilities-0.166.2 → dycw_utilities-0.166.4}/src/utilities/polars_ols.py +0 -0
- {dycw_utilities-0.166.2 → dycw_utilities-0.166.4}/src/utilities/postgres.py +0 -0
- {dycw_utilities-0.166.2 → dycw_utilities-0.166.4}/src/utilities/pottery.py +0 -0
- {dycw_utilities-0.166.2 → dycw_utilities-0.166.4}/src/utilities/pqdm.py +0 -0
- {dycw_utilities-0.166.2 → dycw_utilities-0.166.4}/src/utilities/psutil.py +0 -0
- {dycw_utilities-0.166.2 → dycw_utilities-0.166.4}/src/utilities/py.typed +0 -0
- {dycw_utilities-0.166.2 → dycw_utilities-0.166.4}/src/utilities/pyinstrument.py +0 -0
- {dycw_utilities-0.166.2 → dycw_utilities-0.166.4}/src/utilities/pytest.py +0 -0
- {dycw_utilities-0.166.2 → dycw_utilities-0.166.4}/src/utilities/pytest_plugins/__init__.py +0 -0
- {dycw_utilities-0.166.2 → dycw_utilities-0.166.4}/src/utilities/pytest_plugins/pytest_randomly.py +0 -0
- {dycw_utilities-0.166.2 → dycw_utilities-0.166.4}/src/utilities/pytest_plugins/pytest_regressions.py +0 -0
- {dycw_utilities-0.166.2 → dycw_utilities-0.166.4}/src/utilities/pytest_regressions.py +0 -0
- {dycw_utilities-0.166.2 → dycw_utilities-0.166.4}/src/utilities/random.py +0 -0
- {dycw_utilities-0.166.2 → dycw_utilities-0.166.4}/src/utilities/re.py +0 -0
- {dycw_utilities-0.166.2 → dycw_utilities-0.166.4}/src/utilities/redis.py +0 -0
- {dycw_utilities-0.166.2 → dycw_utilities-0.166.4}/src/utilities/reprlib.py +0 -0
- {dycw_utilities-0.166.2 → dycw_utilities-0.166.4}/src/utilities/scipy.py +0 -0
- {dycw_utilities-0.166.2 → dycw_utilities-0.166.4}/src/utilities/sentinel.py +0 -0
- {dycw_utilities-0.166.2 → dycw_utilities-0.166.4}/src/utilities/shelve.py +0 -0
- {dycw_utilities-0.166.2 → dycw_utilities-0.166.4}/src/utilities/slack_sdk.py +0 -0
- {dycw_utilities-0.166.2 → dycw_utilities-0.166.4}/src/utilities/socket.py +0 -0
- {dycw_utilities-0.166.2 → dycw_utilities-0.166.4}/src/utilities/sqlalchemy.py +0 -0
- {dycw_utilities-0.166.2 → dycw_utilities-0.166.4}/src/utilities/sqlalchemy_polars.py +0 -0
- {dycw_utilities-0.166.2 → dycw_utilities-0.166.4}/src/utilities/statsmodels.py +0 -0
- {dycw_utilities-0.166.2 → dycw_utilities-0.166.4}/src/utilities/string.py +0 -0
- {dycw_utilities-0.166.2 → dycw_utilities-0.166.4}/src/utilities/tempfile.py +0 -0
- {dycw_utilities-0.166.2 → dycw_utilities-0.166.4}/src/utilities/testbook.py +0 -0
- {dycw_utilities-0.166.2 → dycw_utilities-0.166.4}/src/utilities/text.py +0 -0
- {dycw_utilities-0.166.2 → dycw_utilities-0.166.4}/src/utilities/threading.py +0 -0
- {dycw_utilities-0.166.2 → dycw_utilities-0.166.4}/src/utilities/timer.py +0 -0
- {dycw_utilities-0.166.2 → dycw_utilities-0.166.4}/src/utilities/traceback.py +0 -0
- {dycw_utilities-0.166.2 → dycw_utilities-0.166.4}/src/utilities/typed_settings.py +0 -0
- {dycw_utilities-0.166.2 → dycw_utilities-0.166.4}/src/utilities/typing.py +0 -0
- {dycw_utilities-0.166.2 → dycw_utilities-0.166.4}/src/utilities/tzdata.py +0 -0
- {dycw_utilities-0.166.2 → dycw_utilities-0.166.4}/src/utilities/tzlocal.py +0 -0
- {dycw_utilities-0.166.2 → dycw_utilities-0.166.4}/src/utilities/uuid.py +0 -0
- {dycw_utilities-0.166.2 → dycw_utilities-0.166.4}/src/utilities/version.py +0 -0
- {dycw_utilities-0.166.2 → dycw_utilities-0.166.4}/src/utilities/warnings.py +0 -0
- {dycw_utilities-0.166.2 → dycw_utilities-0.166.4}/src/utilities/zipfile.py +0 -0
- {dycw_utilities-0.166.2 → dycw_utilities-0.166.4}/src/utilities/zoneinfo.py +0 -0
@@ -1,18 +1,18 @@
|
|
1
1
|
Metadata-Version: 2.4
|
2
2
|
Name: dycw-utilities
|
3
|
-
Version: 0.166.
|
3
|
+
Version: 0.166.4
|
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: atomicwrites<1.5,>=1.4.1
|
8
|
-
Requires-Dist: typing-extensions<4.
|
8
|
+
Requires-Dist: typing-extensions<4.16,>=4.15.0
|
9
9
|
Requires-Dist: tzlocal<5.4,>=5.3.1
|
10
10
|
Requires-Dist: whenever<0.9,>=0.8.8
|
11
11
|
Provides-Extra: logging
|
12
12
|
Requires-Dist: coloredlogs<15.1,>=15.0.1; extra == 'logging'
|
13
13
|
Provides-Extra: test
|
14
14
|
Requires-Dist: dycw-pytest-only<2.2,>=2.1.1; extra == 'test'
|
15
|
-
Requires-Dist: hypothesis<6.139,>=6.138.
|
15
|
+
Requires-Dist: hypothesis<6.139,>=6.138.6; extra == 'test'
|
16
16
|
Requires-Dist: pytest-asyncio<1.2,>=1.1.0; extra == 'test'
|
17
17
|
Requires-Dist: pytest-cov<6.3,>=6.2.1; extra == 'test'
|
18
18
|
Requires-Dist: pytest-instafail<0.6,>=0.5.0; extra == 'test'
|
@@ -22,14 +22,14 @@ atools = [
|
|
22
22
|
"atools >=0.14.2, <0.15",
|
23
23
|
]
|
24
24
|
cachetools = [
|
25
|
-
"cachetools >=6.
|
25
|
+
"cachetools >=6.2.0, <6.3",
|
26
26
|
]
|
27
27
|
click = [
|
28
28
|
"click >=8.2.1, <8.3",
|
29
29
|
]
|
30
30
|
core = [
|
31
31
|
"atomicwrites >=1.4.1, <1.5",
|
32
|
-
"typing-extensions >=4.
|
32
|
+
"typing-extensions >=4.15.0, <4.16",
|
33
33
|
"tzlocal >=5.3.1, <5.4",
|
34
34
|
"whenever >=0.8.8, <0.9",
|
35
35
|
]
|
@@ -37,7 +37,7 @@ cryptography = [
|
|
37
37
|
"cryptography >=45.0.4, <45.1",
|
38
38
|
]
|
39
39
|
cvxpy = [
|
40
|
-
"cvxpy >=1.7.
|
40
|
+
"cvxpy >=1.7.2, <1.8",
|
41
41
|
]
|
42
42
|
dataclasses-test = [
|
43
43
|
"orjson",
|
@@ -68,7 +68,7 @@ http-test = [
|
|
68
68
|
"orjson",
|
69
69
|
]
|
70
70
|
hypothesis = [
|
71
|
-
"hypothesis >=6.138.
|
71
|
+
"hypothesis >=6.138.6, <6.139",
|
72
72
|
]
|
73
73
|
hypothesis-test = [
|
74
74
|
"libcst",
|
@@ -112,7 +112,7 @@ optuna = [
|
|
112
112
|
"optuna >=4.5.0, <4.6",
|
113
113
|
]
|
114
114
|
orjson = [
|
115
|
-
"orjson >=3.11.
|
115
|
+
"orjson >=3.11.3, <3.12",
|
116
116
|
]
|
117
117
|
orjson-test = [
|
118
118
|
"polars",
|
@@ -226,14 +226,14 @@ whenever-test = [
|
|
226
226
|
authors = [{name = "Derek Wan", email = "d.wan@icloud.com"}]
|
227
227
|
dependencies = [
|
228
228
|
"atomicwrites >=1.4.1, <1.5",
|
229
|
-
"typing-extensions >=4.
|
229
|
+
"typing-extensions >=4.15.0, <4.16",
|
230
230
|
"tzlocal >=5.3.1, <5.4",
|
231
231
|
"whenever >=0.8.8, <0.9",
|
232
232
|
]
|
233
233
|
name = "dycw-utilities"
|
234
234
|
readme = "README.md"
|
235
235
|
requires-python = ">= 3.12"
|
236
|
-
version = "0.166.
|
236
|
+
version = "0.166.4"
|
237
237
|
|
238
238
|
[project.entry-points.pytest11]
|
239
239
|
pytest-randomly = "utilities.pytest_plugins.pytest_randomly"
|
@@ -245,7 +245,7 @@ logging = [
|
|
245
245
|
]
|
246
246
|
test = [
|
247
247
|
"dycw-pytest-only >=2.1.1, <2.2",
|
248
|
-
"hypothesis >=6.138.
|
248
|
+
"hypothesis >=6.138.6, <6.139",
|
249
249
|
"pytest >=8.4.1, <8.5",
|
250
250
|
"pytest-asyncio >=1.1.0, <1.2",
|
251
251
|
"pytest-cov >=6.2.1, <6.3",
|
@@ -266,7 +266,7 @@ test = [
|
|
266
266
|
# bump-my-version
|
267
267
|
[tool.bumpversion]
|
268
268
|
allow_dirty = true
|
269
|
-
current_version = "0.166.
|
269
|
+
current_version = "0.166.4"
|
270
270
|
|
271
271
|
[[tool.bumpversion.files]]
|
272
272
|
filename = "src/utilities/__init__.py"
|
@@ -40,7 +40,7 @@ from utilities.hypothesis import (
|
|
40
40
|
zoned_date_times_2000,
|
41
41
|
)
|
42
42
|
from utilities.sentinel import Sentinel, sentinel
|
43
|
-
from utilities.types import TIME_ZONES
|
43
|
+
from utilities.types import TIME_ZONES, MaybeCallableTimeLike
|
44
44
|
from utilities.tzdata import HongKong, Tokyo, USCentral, USEastern
|
45
45
|
from utilities.tzlocal import LOCAL_TIME_ZONE_NAME
|
46
46
|
from utilities.whenever import (
|
@@ -63,6 +63,8 @@ from utilities.whenever import (
|
|
63
63
|
SECOND,
|
64
64
|
TIME_DELTA_MAX,
|
65
65
|
TIME_DELTA_MIN,
|
66
|
+
TIME_LOCAL,
|
67
|
+
TIME_UTC,
|
66
68
|
TODAY_LOCAL,
|
67
69
|
TODAY_UTC,
|
68
70
|
ZERO_DAYS,
|
@@ -119,6 +121,8 @@ from utilities.whenever import (
|
|
119
121
|
get_now_local,
|
120
122
|
get_now_local_plain,
|
121
123
|
get_now_plain,
|
124
|
+
get_time,
|
125
|
+
get_time_local,
|
122
126
|
get_today,
|
123
127
|
get_today_local,
|
124
128
|
mean_datetime,
|
@@ -138,6 +142,7 @@ from utilities.whenever import (
|
|
138
142
|
to_py_date_or_date_time,
|
139
143
|
to_py_time_delta,
|
140
144
|
to_seconds,
|
145
|
+
to_time,
|
141
146
|
to_time_delta,
|
142
147
|
to_weeks,
|
143
148
|
to_years,
|
@@ -465,6 +470,25 @@ class TestGetNowPlain:
|
|
465
470
|
assert isinstance(NOW_PLAIN, PlainDateTime)
|
466
471
|
|
467
472
|
|
473
|
+
class TestGetTime:
|
474
|
+
@given(time_zone=zone_infos())
|
475
|
+
def test_function(self, *, time_zone: ZoneInfo) -> None:
|
476
|
+
now = get_time(time_zone)
|
477
|
+
assert isinstance(now, Time)
|
478
|
+
|
479
|
+
def test_constant(self) -> None:
|
480
|
+
assert isinstance(TIME_UTC, Time)
|
481
|
+
|
482
|
+
|
483
|
+
class TestGetTimeLocal:
|
484
|
+
def test_function(self) -> None:
|
485
|
+
now = get_time_local()
|
486
|
+
assert isinstance(now, Time)
|
487
|
+
|
488
|
+
def test_constant(self) -> None:
|
489
|
+
assert isinstance(TIME_LOCAL, Time)
|
490
|
+
|
491
|
+
|
468
492
|
class TestGetToday:
|
469
493
|
def test_function(self) -> None:
|
470
494
|
today = get_today()
|
@@ -1310,6 +1334,55 @@ class TestToSeconds:
|
|
1310
1334
|
_ = to_seconds(delta)
|
1311
1335
|
|
1312
1336
|
|
1337
|
+
class TestToTime:
|
1338
|
+
def test_default(self) -> None:
|
1339
|
+
first = get_today().at(to_time()).assume_tz(UTC.key)
|
1340
|
+
second = get_today().at(to_time()).assume_tz(UTC.key)
|
1341
|
+
assert abs(first - second) <= SECOND
|
1342
|
+
|
1343
|
+
@given(time=times())
|
1344
|
+
def test_time(self, *, time: Time) -> None:
|
1345
|
+
assert to_time(time) == time
|
1346
|
+
|
1347
|
+
@given(time=times())
|
1348
|
+
def test_str(self, *, time: Time) -> None:
|
1349
|
+
assert to_time(time.format_common_iso()) == time
|
1350
|
+
|
1351
|
+
@given(time=times())
|
1352
|
+
def test_py_time(self, *, time: Time) -> None:
|
1353
|
+
assert to_time(time.py_time()) == time
|
1354
|
+
|
1355
|
+
@given(time=times())
|
1356
|
+
def test_callable(self, *, time: Time) -> None:
|
1357
|
+
assert to_time(lambda: time) == time
|
1358
|
+
|
1359
|
+
def test_none(self) -> None:
|
1360
|
+
first = get_today().at(to_time(None)).assume_tz(UTC.key)
|
1361
|
+
second = get_today().at(get_time()).assume_tz(UTC.key)
|
1362
|
+
assert abs(first - second) <= SECOND
|
1363
|
+
|
1364
|
+
def test_sentinel(self) -> None:
|
1365
|
+
assert to_time(sentinel) is sentinel
|
1366
|
+
|
1367
|
+
@given(times=pairs(times()))
|
1368
|
+
def test_replace_non_sentinel(self, *, times: tuple[Time, Time]) -> None:
|
1369
|
+
time1, time2 = times
|
1370
|
+
|
1371
|
+
@dataclass(kw_only=True, slots=True)
|
1372
|
+
class Example:
|
1373
|
+
time: Time = field(default_factory=get_time)
|
1374
|
+
|
1375
|
+
def replace(
|
1376
|
+
self, *, time: MaybeCallableTimeLike | Sentinel = sentinel
|
1377
|
+
) -> Self:
|
1378
|
+
return replace_non_sentinel(self, time=to_time(time))
|
1379
|
+
|
1380
|
+
obj = Example(time=time1)
|
1381
|
+
assert obj.time == time1
|
1382
|
+
assert obj.replace().time == time1
|
1383
|
+
assert obj.replace(time=time2).time == time2
|
1384
|
+
|
1385
|
+
|
1313
1386
|
class TestToWeeks:
|
1314
1387
|
@given(cls=sampled_from([DateDelta, DateTimeDelta]), weeks=integers())
|
1315
1388
|
def test_date_or_date_time_delta(
|
@@ -255,6 +255,7 @@ type DateTimeRoundMode = Literal[
|
|
255
255
|
]
|
256
256
|
type Delta = DateDelta | TimeDelta | DateTimeDelta
|
257
257
|
type MaybeCallableDateLike = MaybeCallable[DateLike]
|
258
|
+
type MaybeCallableTimeLike = MaybeCallable[TimeLike]
|
258
259
|
type MaybeCallableZonedDateTimeLike = MaybeCallable[ZonedDateTimeLike]
|
259
260
|
type MonthDayLike = MaybeStr[MonthDay]
|
260
261
|
type PlainDateTimeLike = MaybeStr[PlainDateTime]
|
@@ -308,6 +309,7 @@ __all__ = [
|
|
308
309
|
"MaybeCallableDateLike",
|
309
310
|
"MaybeCallablePathLike",
|
310
311
|
"MaybeCallableStr",
|
312
|
+
"MaybeCallableTimeLike",
|
311
313
|
"MaybeCallableUUIDLike",
|
312
314
|
"MaybeCallableZonedDateTimeLike",
|
313
315
|
"MaybeCollection",
|
@@ -46,6 +46,7 @@ if TYPE_CHECKING:
|
|
46
46
|
DateTimeRoundMode,
|
47
47
|
Delta,
|
48
48
|
MaybeCallableDateLike,
|
49
|
+
MaybeCallableTimeLike,
|
49
50
|
MaybeCallableZonedDateTimeLike,
|
50
51
|
TimeOrDateTimeDelta,
|
51
52
|
TimeZoneLike,
|
@@ -368,7 +369,7 @@ NOW_UTC = get_now(UTC)
|
|
368
369
|
|
369
370
|
|
370
371
|
def get_now_local() -> ZonedDateTime:
|
371
|
-
"""Get the current
|
372
|
+
"""Get the current zoned date-time in the local time-zone."""
|
372
373
|
return get_now(LOCAL_TIME_ZONE)
|
373
374
|
|
374
375
|
|
@@ -376,7 +377,7 @@ NOW_LOCAL = get_now_local()
|
|
376
377
|
|
377
378
|
|
378
379
|
def get_now_plain(time_zone: TimeZoneLike = UTC, /) -> PlainDateTime:
|
379
|
-
"""Get the current
|
380
|
+
"""Get the current plain date-time."""
|
380
381
|
return get_now(time_zone).to_plain()
|
381
382
|
|
382
383
|
|
@@ -384,7 +385,7 @@ NOW_PLAIN = get_now_plain()
|
|
384
385
|
|
385
386
|
|
386
387
|
def get_now_local_plain() -> PlainDateTime:
|
387
|
-
"""Get the current
|
388
|
+
"""Get the current plain date-time in the local time-zone."""
|
388
389
|
return get_now_local().to_plain()
|
389
390
|
|
390
391
|
|
@@ -394,6 +395,25 @@ NOW_LOCAL_PLAIN = get_now_local_plain()
|
|
394
395
|
##
|
395
396
|
|
396
397
|
|
398
|
+
def get_time(time_zone: TimeZoneLike = UTC, /) -> Time:
|
399
|
+
"""Get the current time."""
|
400
|
+
return get_now(time_zone).time()
|
401
|
+
|
402
|
+
|
403
|
+
TIME_UTC = get_time(UTC)
|
404
|
+
|
405
|
+
|
406
|
+
def get_time_local() -> Time:
|
407
|
+
"""Get the current time in the local time-zone."""
|
408
|
+
return get_time(LOCAL_TIME_ZONE)
|
409
|
+
|
410
|
+
|
411
|
+
TIME_LOCAL = get_time_local()
|
412
|
+
|
413
|
+
|
414
|
+
##
|
415
|
+
|
416
|
+
|
397
417
|
def get_today(time_zone: TimeZoneLike = UTC, /) -> Date:
|
398
418
|
"""Get the current, timezone-aware local date."""
|
399
419
|
return get_now(time_zone).date()
|
@@ -1378,6 +1398,95 @@ class ToPyTimeDeltaError(Exception):
|
|
1378
1398
|
##
|
1379
1399
|
|
1380
1400
|
|
1401
|
+
def to_seconds(delta: Delta, /) -> int:
|
1402
|
+
"""Compute the number of seconds in a delta."""
|
1403
|
+
match delta:
|
1404
|
+
case DateDelta():
|
1405
|
+
try:
|
1406
|
+
days = to_days(delta)
|
1407
|
+
except _ToDaysMonthsError as error:
|
1408
|
+
raise _ToSecondsMonthsError(delta=delta, months=error.months) from None
|
1409
|
+
return 24 * 60 * 60 * days
|
1410
|
+
case TimeDelta():
|
1411
|
+
nanos = to_nanoseconds(delta)
|
1412
|
+
seconds, remainder = divmod(nanos, int(1e9))
|
1413
|
+
if remainder != 0:
|
1414
|
+
raise _ToSecondsNanosecondsError(delta=delta, nanoseconds=remainder)
|
1415
|
+
return seconds
|
1416
|
+
case DateTimeDelta():
|
1417
|
+
try:
|
1418
|
+
return to_seconds(delta.date_part()) + to_seconds(delta.time_part())
|
1419
|
+
except _ToSecondsMonthsError as error:
|
1420
|
+
raise _ToSecondsMonthsError(delta=delta, months=error.months) from None
|
1421
|
+
except _ToSecondsNanosecondsError as error:
|
1422
|
+
raise _ToSecondsNanosecondsError(
|
1423
|
+
delta=delta, nanoseconds=error.nanoseconds
|
1424
|
+
) from None
|
1425
|
+
case never:
|
1426
|
+
assert_never(never)
|
1427
|
+
|
1428
|
+
|
1429
|
+
@dataclass(kw_only=True, slots=True)
|
1430
|
+
class ToSecondsError(Exception): ...
|
1431
|
+
|
1432
|
+
|
1433
|
+
@dataclass(kw_only=True, slots=True)
|
1434
|
+
class _ToSecondsMonthsError(ToSecondsError):
|
1435
|
+
delta: DateOrDateTimeDelta
|
1436
|
+
months: int
|
1437
|
+
|
1438
|
+
@override
|
1439
|
+
def __str__(self) -> str:
|
1440
|
+
return f"Delta must not contain months; got {self.months}"
|
1441
|
+
|
1442
|
+
|
1443
|
+
@dataclass(kw_only=True, slots=True)
|
1444
|
+
class _ToSecondsNanosecondsError(ToSecondsError):
|
1445
|
+
delta: TimeOrDateTimeDelta
|
1446
|
+
nanoseconds: int
|
1447
|
+
|
1448
|
+
@override
|
1449
|
+
def __str__(self) -> str:
|
1450
|
+
return f"Delta must not contain extra nanoseconds; got {self.nanoseconds}"
|
1451
|
+
|
1452
|
+
|
1453
|
+
##
|
1454
|
+
|
1455
|
+
|
1456
|
+
@overload
|
1457
|
+
def to_time(time: Sentinel, /, *, time_zone: TimeZoneLike = UTC) -> Sentinel: ...
|
1458
|
+
@overload
|
1459
|
+
def to_time(
|
1460
|
+
time: MaybeCallableTimeLike | None | dt.time = get_time,
|
1461
|
+
/,
|
1462
|
+
*,
|
1463
|
+
time_zone: TimeZoneLike = UTC,
|
1464
|
+
) -> Time: ...
|
1465
|
+
def to_time(
|
1466
|
+
time: MaybeCallableTimeLike | dt.time | None | Sentinel = get_time,
|
1467
|
+
/,
|
1468
|
+
*,
|
1469
|
+
time_zone: TimeZoneLike = UTC,
|
1470
|
+
) -> Time | Sentinel:
|
1471
|
+
"""Convert to a time."""
|
1472
|
+
match time:
|
1473
|
+
case Time() | Sentinel():
|
1474
|
+
return time
|
1475
|
+
case None:
|
1476
|
+
return get_time(time_zone)
|
1477
|
+
case str():
|
1478
|
+
return Time.parse_common_iso(time)
|
1479
|
+
case dt.time():
|
1480
|
+
return Time.from_py_time(time)
|
1481
|
+
case Callable() as func:
|
1482
|
+
return to_time(func(), time_zone=time_zone)
|
1483
|
+
case never:
|
1484
|
+
assert_never(never)
|
1485
|
+
|
1486
|
+
|
1487
|
+
##
|
1488
|
+
|
1489
|
+
|
1381
1490
|
def to_time_delta(nanos: int, /) -> TimeDelta:
|
1382
1491
|
"""Construct a time delta."""
|
1383
1492
|
components = _to_time_delta_components(nanos)
|
@@ -1456,61 +1565,6 @@ def _to_time_delta_components(nanos: int, /) -> _TimeDeltaComponents:
|
|
1456
1565
|
##
|
1457
1566
|
|
1458
1567
|
|
1459
|
-
def to_seconds(delta: Delta, /) -> int:
|
1460
|
-
"""Compute the number of seconds in a delta."""
|
1461
|
-
match delta:
|
1462
|
-
case DateDelta():
|
1463
|
-
try:
|
1464
|
-
days = to_days(delta)
|
1465
|
-
except _ToDaysMonthsError as error:
|
1466
|
-
raise _ToSecondsMonthsError(delta=delta, months=error.months) from None
|
1467
|
-
return 24 * 60 * 60 * days
|
1468
|
-
case TimeDelta():
|
1469
|
-
nanos = to_nanoseconds(delta)
|
1470
|
-
seconds, remainder = divmod(nanos, int(1e9))
|
1471
|
-
if remainder != 0:
|
1472
|
-
raise _ToSecondsNanosecondsError(delta=delta, nanoseconds=remainder)
|
1473
|
-
return seconds
|
1474
|
-
case DateTimeDelta():
|
1475
|
-
try:
|
1476
|
-
return to_seconds(delta.date_part()) + to_seconds(delta.time_part())
|
1477
|
-
except _ToSecondsMonthsError as error:
|
1478
|
-
raise _ToSecondsMonthsError(delta=delta, months=error.months) from None
|
1479
|
-
except _ToSecondsNanosecondsError as error:
|
1480
|
-
raise _ToSecondsNanosecondsError(
|
1481
|
-
delta=delta, nanoseconds=error.nanoseconds
|
1482
|
-
) from None
|
1483
|
-
case never:
|
1484
|
-
assert_never(never)
|
1485
|
-
|
1486
|
-
|
1487
|
-
@dataclass(kw_only=True, slots=True)
|
1488
|
-
class ToSecondsError(Exception): ...
|
1489
|
-
|
1490
|
-
|
1491
|
-
@dataclass(kw_only=True, slots=True)
|
1492
|
-
class _ToSecondsMonthsError(ToSecondsError):
|
1493
|
-
delta: DateOrDateTimeDelta
|
1494
|
-
months: int
|
1495
|
-
|
1496
|
-
@override
|
1497
|
-
def __str__(self) -> str:
|
1498
|
-
return f"Delta must not contain months; got {self.months}"
|
1499
|
-
|
1500
|
-
|
1501
|
-
@dataclass(kw_only=True, slots=True)
|
1502
|
-
class _ToSecondsNanosecondsError(ToSecondsError):
|
1503
|
-
delta: TimeOrDateTimeDelta
|
1504
|
-
nanoseconds: int
|
1505
|
-
|
1506
|
-
@override
|
1507
|
-
def __str__(self) -> str:
|
1508
|
-
return f"Delta must not contain extra nanoseconds; got {self.nanoseconds}"
|
1509
|
-
|
1510
|
-
|
1511
|
-
##
|
1512
|
-
|
1513
|
-
|
1514
1568
|
def to_weeks(delta: Delta, /) -> int:
|
1515
1569
|
"""Compute the number of weeks in a delta."""
|
1516
1570
|
try:
|
@@ -1935,6 +1989,8 @@ __all__ = [
|
|
1935
1989
|
"SECOND",
|
1936
1990
|
"TIME_DELTA_MAX",
|
1937
1991
|
"TIME_DELTA_MIN",
|
1992
|
+
"TIME_LOCAL",
|
1993
|
+
"TIME_UTC",
|
1938
1994
|
"TODAY_LOCAL",
|
1939
1995
|
"TODAY_UTC",
|
1940
1996
|
"WEEK",
|
@@ -1973,6 +2029,8 @@ __all__ = [
|
|
1973
2029
|
"get_now_local",
|
1974
2030
|
"get_now_local_plain",
|
1975
2031
|
"get_now_plain",
|
2032
|
+
"get_time",
|
2033
|
+
"get_time_local",
|
1976
2034
|
"get_today",
|
1977
2035
|
"get_today_local",
|
1978
2036
|
"mean_datetime",
|
@@ -1991,6 +2049,7 @@ __all__ = [
|
|
1991
2049
|
"to_py_date_or_date_time",
|
1992
2050
|
"to_py_time_delta",
|
1993
2051
|
"to_seconds",
|
2052
|
+
"to_time",
|
1994
2053
|
"to_weeks",
|
1995
2054
|
"to_years",
|
1996
2055
|
"to_zoned_date_time",
|
File without changes
|
File without changes
|
File without changes
|
File without changes
|
File without changes
|
File without changes
|
{dycw_utilities-0.166.2 → dycw_utilities-0.166.4}/src/tests/modules/package_missing/__init__.py
RENAMED
File without changes
|
{dycw_utilities-0.166.2 → dycw_utilities-0.166.4}/src/tests/modules/package_missing/module.py
RENAMED
File without changes
|
{dycw_utilities-0.166.2 → dycw_utilities-0.166.4}/src/tests/modules/package_with/__init__.py
RENAMED
File without changes
|
File without changes
|
File without changes
|
File without changes
|
File without changes
|
File without changes
|
File without changes
|
{dycw_utilities-0.166.2 → dycw_utilities-0.166.4}/src/tests/modules/package_without/__init__.py
RENAMED
File without changes
|
{dycw_utilities-0.166.2 → dycw_utilities-0.166.4}/src/tests/modules/package_without/module_1.py
RENAMED
File without changes
|
{dycw_utilities-0.166.2 → dycw_utilities-0.166.4}/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
|