dycw-utilities 0.150.15__tar.gz → 0.151.0__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.150.15 → dycw_utilities-0.151.0}/PKG-INFO +1 -1
- {dycw_utilities-0.150.15 → dycw_utilities-0.151.0}/pyproject.toml +2 -2
- {dycw_utilities-0.150.15 → dycw_utilities-0.151.0}/src/tests/test_altair.py +5 -2
- {dycw_utilities-0.150.15 → dycw_utilities-0.151.0}/src/tests/test_orjson.py +2 -2
- {dycw_utilities-0.150.15 → dycw_utilities-0.151.0}/src/tests/test_polars.py +19 -15
- {dycw_utilities-0.150.15 → dycw_utilities-0.151.0}/src/utilities/__init__.py +1 -1
- {dycw_utilities-0.150.15 → dycw_utilities-0.151.0}/src/utilities/polars.py +22 -4
- {dycw_utilities-0.150.15 → dycw_utilities-0.151.0}/src/utilities/sqlalchemy_polars.py +2 -2
- {dycw_utilities-0.150.15 → dycw_utilities-0.151.0}/.gitignore +0 -0
- {dycw_utilities-0.150.15 → dycw_utilities-0.151.0}/LICENSE +0 -0
- {dycw_utilities-0.150.15 → dycw_utilities-0.151.0}/README.md +0 -0
- {dycw_utilities-0.150.15 → dycw_utilities-0.151.0}/src/tests/__init__.py +0 -0
- {dycw_utilities-0.150.15 → dycw_utilities-0.151.0}/src/tests/conftest.py +0 -0
- {dycw_utilities-0.150.15 → dycw_utilities-0.151.0}/src/tests/modules/__init__.py +0 -0
- {dycw_utilities-0.150.15 → dycw_utilities-0.151.0}/src/tests/modules/package_missing/__init__.py +0 -0
- {dycw_utilities-0.150.15 → dycw_utilities-0.151.0}/src/tests/modules/package_missing/module.py +0 -0
- {dycw_utilities-0.150.15 → dycw_utilities-0.151.0}/src/tests/modules/package_with/__init__.py +0 -0
- {dycw_utilities-0.150.15 → dycw_utilities-0.151.0}/src/tests/modules/package_with/outer_1.py +0 -0
- {dycw_utilities-0.150.15 → dycw_utilities-0.151.0}/src/tests/modules/package_with/outer_2.py +0 -0
- {dycw_utilities-0.150.15 → dycw_utilities-0.151.0}/src/tests/modules/package_with/subpackage/__init__.py +0 -0
- {dycw_utilities-0.150.15 → dycw_utilities-0.151.0}/src/tests/modules/package_with/subpackage/inner_1.py +0 -0
- {dycw_utilities-0.150.15 → dycw_utilities-0.151.0}/src/tests/modules/package_with/subpackage/inner_2.py +0 -0
- {dycw_utilities-0.150.15 → dycw_utilities-0.151.0}/src/tests/modules/package_with/subpackage/inner_3.py +0 -0
- {dycw_utilities-0.150.15 → dycw_utilities-0.151.0}/src/tests/modules/package_without/__init__.py +0 -0
- {dycw_utilities-0.150.15 → dycw_utilities-0.151.0}/src/tests/modules/package_without/module_1.py +0 -0
- {dycw_utilities-0.150.15 → dycw_utilities-0.151.0}/src/tests/modules/package_without/module_2.py +0 -0
- {dycw_utilities-0.150.15 → dycw_utilities-0.151.0}/src/tests/modules/standalone.py +0 -0
- {dycw_utilities-0.150.15 → dycw_utilities-0.151.0}/src/tests/modules/with_imports.py +0 -0
- {dycw_utilities-0.150.15 → dycw_utilities-0.151.0}/src/tests/regressions/test_pytest_regressions/TestMultipleRegressionFixtures__test_main__obj.json +0 -0
- {dycw_utilities-0.150.15 → dycw_utilities-0.151.0}/src/tests/regressions/test_pytest_regressions/TestMultipleRegressionFixtures__test_main__series.json +0 -0
- {dycw_utilities-0.150.15 → dycw_utilities-0.151.0}/src/tests/regressions/test_pytest_regressions/TestOrjsonRegressionFixture__test_dataclass_int.json +0 -0
- {dycw_utilities-0.150.15 → dycw_utilities-0.151.0}/src/tests/regressions/test_pytest_regressions/TestOrjsonRegressionFixture__test_dataclass_literal__false.json +0 -0
- {dycw_utilities-0.150.15 → dycw_utilities-0.151.0}/src/tests/regressions/test_pytest_regressions/TestOrjsonRegressionFixture__test_dataclass_literal__true.json +0 -0
- {dycw_utilities-0.150.15 → dycw_utilities-0.151.0}/src/tests/regressions/test_pytest_regressions/TestOrjsonRegressionFixture__test_dataclass_nested.json +0 -0
- {dycw_utilities-0.150.15 → dycw_utilities-0.151.0}/src/tests/regressions/test_pytest_regressions/TestPolarsRegressionFixture__test_dataframe.json +0 -0
- {dycw_utilities-0.150.15 → dycw_utilities-0.151.0}/src/tests/regressions/test_pytest_regressions/TestPolarsRegressionFixture__test_series.json +0 -0
- {dycw_utilities-0.150.15 → dycw_utilities-0.151.0}/src/tests/test_asyncio.py +0 -0
- {dycw_utilities-0.150.15 → dycw_utilities-0.151.0}/src/tests/test_atomicwrites.py +0 -0
- {dycw_utilities-0.150.15 → dycw_utilities-0.151.0}/src/tests/test_atools.py +0 -0
- {dycw_utilities-0.150.15 → dycw_utilities-0.151.0}/src/tests/test_cachetools.py +0 -0
- {dycw_utilities-0.150.15 → dycw_utilities-0.151.0}/src/tests/test_click.py +0 -0
- {dycw_utilities-0.150.15 → dycw_utilities-0.151.0}/src/tests/test_concurrent.py +0 -0
- {dycw_utilities-0.150.15 → dycw_utilities-0.151.0}/src/tests/test_contextlib.py +0 -0
- {dycw_utilities-0.150.15 → dycw_utilities-0.151.0}/src/tests/test_contextvars.py +0 -0
- {dycw_utilities-0.150.15 → dycw_utilities-0.151.0}/src/tests/test_cryptography.py +0 -0
- {dycw_utilities-0.150.15 → dycw_utilities-0.151.0}/src/tests/test_cvxpy.py +0 -0
- {dycw_utilities-0.150.15 → dycw_utilities-0.151.0}/src/tests/test_dataclasses.py +0 -0
- {dycw_utilities-0.150.15 → dycw_utilities-0.151.0}/src/tests/test_dnspython.py +0 -0
- {dycw_utilities-0.150.15 → dycw_utilities-0.151.0}/src/tests/test_enum.py +0 -0
- {dycw_utilities-0.150.15 → dycw_utilities-0.151.0}/src/tests/test_errors.py +0 -0
- {dycw_utilities-0.150.15 → dycw_utilities-0.151.0}/src/tests/test_eventkit.py +0 -0
- {dycw_utilities-0.150.15 → dycw_utilities-0.151.0}/src/tests/test_fastapi.py +0 -0
- {dycw_utilities-0.150.15 → dycw_utilities-0.151.0}/src/tests/test_fpdf2.py +0 -0
- {dycw_utilities-0.150.15 → dycw_utilities-0.151.0}/src/tests/test_functions.py +0 -0
- {dycw_utilities-0.150.15 → dycw_utilities-0.151.0}/src/tests/test_functools.py +0 -0
- {dycw_utilities-0.150.15 → dycw_utilities-0.151.0}/src/tests/test_getpass.py +0 -0
- {dycw_utilities-0.150.15 → dycw_utilities-0.151.0}/src/tests/test_gzip.py +0 -0
- {dycw_utilities-0.150.15 → dycw_utilities-0.151.0}/src/tests/test_hashlib.py +0 -0
- {dycw_utilities-0.150.15 → dycw_utilities-0.151.0}/src/tests/test_http.py +0 -0
- {dycw_utilities-0.150.15 → dycw_utilities-0.151.0}/src/tests/test_hypothesis.py +0 -0
- {dycw_utilities-0.150.15 → dycw_utilities-0.151.0}/src/tests/test_importlib.py +0 -0
- {dycw_utilities-0.150.15 → dycw_utilities-0.151.0}/src/tests/test_inflect.py +0 -0
- {dycw_utilities-0.150.15 → dycw_utilities-0.151.0}/src/tests/test_ipython.py +0 -0
- {dycw_utilities-0.150.15 → dycw_utilities-0.151.0}/src/tests/test_iterables.py +0 -0
- {dycw_utilities-0.150.15 → dycw_utilities-0.151.0}/src/tests/test_json.py +0 -0
- {dycw_utilities-0.150.15 → dycw_utilities-0.151.0}/src/tests/test_jupyter.py +0 -0
- {dycw_utilities-0.150.15 → dycw_utilities-0.151.0}/src/tests/test_libcst.py +0 -0
- {dycw_utilities-0.150.15 → dycw_utilities-0.151.0}/src/tests/test_lightweight_charts.py +0 -0
- {dycw_utilities-0.150.15 → dycw_utilities-0.151.0}/src/tests/test_logging.py +0 -0
- {dycw_utilities-0.150.15 → dycw_utilities-0.151.0}/src/tests/test_math.py +0 -0
- {dycw_utilities-0.150.15 → dycw_utilities-0.151.0}/src/tests/test_memory_profiler.py +0 -0
- {dycw_utilities-0.150.15 → dycw_utilities-0.151.0}/src/tests/test_modules.py +0 -0
- {dycw_utilities-0.150.15 → dycw_utilities-0.151.0}/src/tests/test_more_itertools.py +0 -0
- {dycw_utilities-0.150.15 → dycw_utilities-0.151.0}/src/tests/test_numpy.py +0 -0
- {dycw_utilities-0.150.15 → dycw_utilities-0.151.0}/src/tests/test_objects/__init__.py +0 -0
- {dycw_utilities-0.150.15 → dycw_utilities-0.151.0}/src/tests/test_objects/objects.py +0 -0
- {dycw_utilities-0.150.15 → dycw_utilities-0.151.0}/src/tests/test_operator.py +0 -0
- {dycw_utilities-0.150.15 → dycw_utilities-0.151.0}/src/tests/test_optuna.py +0 -0
- {dycw_utilities-0.150.15 → dycw_utilities-0.151.0}/src/tests/test_os.py +0 -0
- {dycw_utilities-0.150.15 → dycw_utilities-0.151.0}/src/tests/test_parse.py +0 -0
- {dycw_utilities-0.150.15 → dycw_utilities-0.151.0}/src/tests/test_pathlib.py +0 -0
- {dycw_utilities-0.150.15 → dycw_utilities-0.151.0}/src/tests/test_period.py +0 -0
- {dycw_utilities-0.150.15 → dycw_utilities-0.151.0}/src/tests/test_pickle.py +0 -0
- {dycw_utilities-0.150.15 → dycw_utilities-0.151.0}/src/tests/test_platform.py +0 -0
- {dycw_utilities-0.150.15 → dycw_utilities-0.151.0}/src/tests/test_polars_ols.py +0 -0
- {dycw_utilities-0.150.15 → dycw_utilities-0.151.0}/src/tests/test_postgres.py +0 -0
- {dycw_utilities-0.150.15 → dycw_utilities-0.151.0}/src/tests/test_pottery.py +0 -0
- {dycw_utilities-0.150.15 → dycw_utilities-0.151.0}/src/tests/test_pqdm.py +0 -0
- {dycw_utilities-0.150.15 → dycw_utilities-0.151.0}/src/tests/test_psutil.py +0 -0
- {dycw_utilities-0.150.15 → dycw_utilities-0.151.0}/src/tests/test_pyinstrument.py +0 -0
- {dycw_utilities-0.150.15 → dycw_utilities-0.151.0}/src/tests/test_pytest.py +0 -0
- {dycw_utilities-0.150.15 → dycw_utilities-0.151.0}/src/tests/test_pytest_randomly.py +0 -0
- {dycw_utilities-0.150.15 → dycw_utilities-0.151.0}/src/tests/test_pytest_regressions.py +0 -0
- {dycw_utilities-0.150.15 → dycw_utilities-0.151.0}/src/tests/test_random.py +0 -0
- {dycw_utilities-0.150.15 → dycw_utilities-0.151.0}/src/tests/test_re.py +0 -0
- {dycw_utilities-0.150.15 → dycw_utilities-0.151.0}/src/tests/test_redis.py +0 -0
- {dycw_utilities-0.150.15 → dycw_utilities-0.151.0}/src/tests/test_reprlib.py +0 -0
- {dycw_utilities-0.150.15 → dycw_utilities-0.151.0}/src/tests/test_scipy.py +0 -0
- {dycw_utilities-0.150.15 → dycw_utilities-0.151.0}/src/tests/test_sentinel.py +0 -0
- {dycw_utilities-0.150.15 → dycw_utilities-0.151.0}/src/tests/test_shelve.py +0 -0
- {dycw_utilities-0.150.15 → dycw_utilities-0.151.0}/src/tests/test_slack_sdk.py +0 -0
- {dycw_utilities-0.150.15 → dycw_utilities-0.151.0}/src/tests/test_socket.py +0 -0
- {dycw_utilities-0.150.15 → dycw_utilities-0.151.0}/src/tests/test_sqlalchemy.py +0 -0
- {dycw_utilities-0.150.15 → dycw_utilities-0.151.0}/src/tests/test_sqlalchemy_polars.py +0 -0
- {dycw_utilities-0.150.15 → dycw_utilities-0.151.0}/src/tests/test_statsmodels.py +0 -0
- {dycw_utilities-0.150.15 → dycw_utilities-0.151.0}/src/tests/test_string.py +0 -0
- {dycw_utilities-0.150.15 → dycw_utilities-0.151.0}/src/tests/test_tempfile.py +0 -0
- {dycw_utilities-0.150.15 → dycw_utilities-0.151.0}/src/tests/test_text.py +0 -0
- {dycw_utilities-0.150.15 → dycw_utilities-0.151.0}/src/tests/test_threading.py +0 -0
- {dycw_utilities-0.150.15 → dycw_utilities-0.151.0}/src/tests/test_timer.py +0 -0
- {dycw_utilities-0.150.15 → dycw_utilities-0.151.0}/src/tests/test_traceback.py +0 -0
- {dycw_utilities-0.150.15 → dycw_utilities-0.151.0}/src/tests/test_typed_settings.py +0 -0
- {dycw_utilities-0.150.15 → dycw_utilities-0.151.0}/src/tests/test_types.py +0 -0
- {dycw_utilities-0.150.15 → dycw_utilities-0.151.0}/src/tests/test_typing.py +0 -0
- {dycw_utilities-0.150.15 → dycw_utilities-0.151.0}/src/tests/test_typing_funcs/__init__.py +0 -0
- {dycw_utilities-0.150.15 → dycw_utilities-0.151.0}/src/tests/test_typing_funcs/no_future.py +0 -0
- {dycw_utilities-0.150.15 → dycw_utilities-0.151.0}/src/tests/test_typing_funcs/with_future.py +0 -0
- {dycw_utilities-0.150.15 → dycw_utilities-0.151.0}/src/tests/test_tzdata.py +0 -0
- {dycw_utilities-0.150.15 → dycw_utilities-0.151.0}/src/tests/test_tzlocal.py +0 -0
- {dycw_utilities-0.150.15 → dycw_utilities-0.151.0}/src/tests/test_uuid.py +0 -0
- {dycw_utilities-0.150.15 → dycw_utilities-0.151.0}/src/tests/test_version.py +0 -0
- {dycw_utilities-0.150.15 → dycw_utilities-0.151.0}/src/tests/test_warnings.py +0 -0
- {dycw_utilities-0.150.15 → dycw_utilities-0.151.0}/src/tests/test_whenever.py +0 -0
- {dycw_utilities-0.150.15 → dycw_utilities-0.151.0}/src/tests/test_yield_access/__init__.py +0 -0
- {dycw_utilities-0.150.15 → dycw_utilities-0.151.0}/src/tests/test_yield_access/script.py +0 -0
- {dycw_utilities-0.150.15 → dycw_utilities-0.151.0}/src/tests/test_yield_access/script.sh +0 -0
- {dycw_utilities-0.150.15 → dycw_utilities-0.151.0}/src/tests/test_zipfile.py +0 -0
- {dycw_utilities-0.150.15 → dycw_utilities-0.151.0}/src/tests/test_zoneinfo.py +0 -0
- {dycw_utilities-0.150.15 → dycw_utilities-0.151.0}/src/utilities/altair.py +0 -0
- {dycw_utilities-0.150.15 → dycw_utilities-0.151.0}/src/utilities/asyncio.py +0 -0
- {dycw_utilities-0.150.15 → dycw_utilities-0.151.0}/src/utilities/atomicwrites.py +0 -0
- {dycw_utilities-0.150.15 → dycw_utilities-0.151.0}/src/utilities/atools.py +0 -0
- {dycw_utilities-0.150.15 → dycw_utilities-0.151.0}/src/utilities/cachetools.py +0 -0
- {dycw_utilities-0.150.15 → dycw_utilities-0.151.0}/src/utilities/click.py +0 -0
- {dycw_utilities-0.150.15 → dycw_utilities-0.151.0}/src/utilities/concurrent.py +0 -0
- {dycw_utilities-0.150.15 → dycw_utilities-0.151.0}/src/utilities/contextlib.py +0 -0
- {dycw_utilities-0.150.15 → dycw_utilities-0.151.0}/src/utilities/contextvars.py +0 -0
- {dycw_utilities-0.150.15 → dycw_utilities-0.151.0}/src/utilities/cryptography.py +0 -0
- {dycw_utilities-0.150.15 → dycw_utilities-0.151.0}/src/utilities/cvxpy.py +0 -0
- {dycw_utilities-0.150.15 → dycw_utilities-0.151.0}/src/utilities/dataclasses.py +0 -0
- {dycw_utilities-0.150.15 → dycw_utilities-0.151.0}/src/utilities/dnspython.py +0 -0
- {dycw_utilities-0.150.15 → dycw_utilities-0.151.0}/src/utilities/enum.py +0 -0
- {dycw_utilities-0.150.15 → dycw_utilities-0.151.0}/src/utilities/errors.py +0 -0
- {dycw_utilities-0.150.15 → dycw_utilities-0.151.0}/src/utilities/eventkit.py +0 -0
- {dycw_utilities-0.150.15 → dycw_utilities-0.151.0}/src/utilities/fastapi.py +0 -0
- {dycw_utilities-0.150.15 → dycw_utilities-0.151.0}/src/utilities/fpdf2.py +0 -0
- {dycw_utilities-0.150.15 → dycw_utilities-0.151.0}/src/utilities/functions.py +0 -0
- {dycw_utilities-0.150.15 → dycw_utilities-0.151.0}/src/utilities/functools.py +0 -0
- {dycw_utilities-0.150.15 → dycw_utilities-0.151.0}/src/utilities/getpass.py +0 -0
- {dycw_utilities-0.150.15 → dycw_utilities-0.151.0}/src/utilities/gzip.py +0 -0
- {dycw_utilities-0.150.15 → dycw_utilities-0.151.0}/src/utilities/hashlib.py +0 -0
- {dycw_utilities-0.150.15 → dycw_utilities-0.151.0}/src/utilities/http.py +0 -0
- {dycw_utilities-0.150.15 → dycw_utilities-0.151.0}/src/utilities/hypothesis.py +0 -0
- {dycw_utilities-0.150.15 → dycw_utilities-0.151.0}/src/utilities/importlib.py +0 -0
- {dycw_utilities-0.150.15 → dycw_utilities-0.151.0}/src/utilities/inflect.py +0 -0
- {dycw_utilities-0.150.15 → dycw_utilities-0.151.0}/src/utilities/ipython.py +0 -0
- {dycw_utilities-0.150.15 → dycw_utilities-0.151.0}/src/utilities/iterables.py +0 -0
- {dycw_utilities-0.150.15 → dycw_utilities-0.151.0}/src/utilities/json.py +0 -0
- {dycw_utilities-0.150.15 → dycw_utilities-0.151.0}/src/utilities/jupyter.py +0 -0
- {dycw_utilities-0.150.15 → dycw_utilities-0.151.0}/src/utilities/libcst.py +0 -0
- {dycw_utilities-0.150.15 → dycw_utilities-0.151.0}/src/utilities/lightweight_charts.py +0 -0
- {dycw_utilities-0.150.15 → dycw_utilities-0.151.0}/src/utilities/logging.py +0 -0
- {dycw_utilities-0.150.15 → dycw_utilities-0.151.0}/src/utilities/math.py +0 -0
- {dycw_utilities-0.150.15 → dycw_utilities-0.151.0}/src/utilities/memory_profiler.py +0 -0
- {dycw_utilities-0.150.15 → dycw_utilities-0.151.0}/src/utilities/modules.py +0 -0
- {dycw_utilities-0.150.15 → dycw_utilities-0.151.0}/src/utilities/more_itertools.py +0 -0
- {dycw_utilities-0.150.15 → dycw_utilities-0.151.0}/src/utilities/numpy.py +0 -0
- {dycw_utilities-0.150.15 → dycw_utilities-0.151.0}/src/utilities/operator.py +0 -0
- {dycw_utilities-0.150.15 → dycw_utilities-0.151.0}/src/utilities/optuna.py +0 -0
- {dycw_utilities-0.150.15 → dycw_utilities-0.151.0}/src/utilities/orjson.py +0 -0
- {dycw_utilities-0.150.15 → dycw_utilities-0.151.0}/src/utilities/os.py +0 -0
- {dycw_utilities-0.150.15 → dycw_utilities-0.151.0}/src/utilities/parse.py +0 -0
- {dycw_utilities-0.150.15 → dycw_utilities-0.151.0}/src/utilities/pathlib.py +0 -0
- {dycw_utilities-0.150.15 → dycw_utilities-0.151.0}/src/utilities/period.py +0 -0
- {dycw_utilities-0.150.15 → dycw_utilities-0.151.0}/src/utilities/pickle.py +0 -0
- {dycw_utilities-0.150.15 → dycw_utilities-0.151.0}/src/utilities/platform.py +0 -0
- {dycw_utilities-0.150.15 → dycw_utilities-0.151.0}/src/utilities/polars_ols.py +0 -0
- {dycw_utilities-0.150.15 → dycw_utilities-0.151.0}/src/utilities/postgres.py +0 -0
- {dycw_utilities-0.150.15 → dycw_utilities-0.151.0}/src/utilities/pottery.py +0 -0
- {dycw_utilities-0.150.15 → dycw_utilities-0.151.0}/src/utilities/pqdm.py +0 -0
- {dycw_utilities-0.150.15 → dycw_utilities-0.151.0}/src/utilities/psutil.py +0 -0
- {dycw_utilities-0.150.15 → dycw_utilities-0.151.0}/src/utilities/py.typed +0 -0
- {dycw_utilities-0.150.15 → dycw_utilities-0.151.0}/src/utilities/pyinstrument.py +0 -0
- {dycw_utilities-0.150.15 → dycw_utilities-0.151.0}/src/utilities/pytest.py +0 -0
- {dycw_utilities-0.150.15 → dycw_utilities-0.151.0}/src/utilities/pytest_plugins/__init__.py +0 -0
- {dycw_utilities-0.150.15 → dycw_utilities-0.151.0}/src/utilities/pytest_plugins/pytest_randomly.py +0 -0
- {dycw_utilities-0.150.15 → dycw_utilities-0.151.0}/src/utilities/pytest_plugins/pytest_regressions.py +0 -0
- {dycw_utilities-0.150.15 → dycw_utilities-0.151.0}/src/utilities/pytest_regressions.py +0 -0
- {dycw_utilities-0.150.15 → dycw_utilities-0.151.0}/src/utilities/random.py +0 -0
- {dycw_utilities-0.150.15 → dycw_utilities-0.151.0}/src/utilities/re.py +0 -0
- {dycw_utilities-0.150.15 → dycw_utilities-0.151.0}/src/utilities/redis.py +0 -0
- {dycw_utilities-0.150.15 → dycw_utilities-0.151.0}/src/utilities/reprlib.py +0 -0
- {dycw_utilities-0.150.15 → dycw_utilities-0.151.0}/src/utilities/scipy.py +0 -0
- {dycw_utilities-0.150.15 → dycw_utilities-0.151.0}/src/utilities/sentinel.py +0 -0
- {dycw_utilities-0.150.15 → dycw_utilities-0.151.0}/src/utilities/shelve.py +0 -0
- {dycw_utilities-0.150.15 → dycw_utilities-0.151.0}/src/utilities/slack_sdk.py +0 -0
- {dycw_utilities-0.150.15 → dycw_utilities-0.151.0}/src/utilities/socket.py +0 -0
- {dycw_utilities-0.150.15 → dycw_utilities-0.151.0}/src/utilities/sqlalchemy.py +0 -0
- {dycw_utilities-0.150.15 → dycw_utilities-0.151.0}/src/utilities/statsmodels.py +0 -0
- {dycw_utilities-0.150.15 → dycw_utilities-0.151.0}/src/utilities/string.py +0 -0
- {dycw_utilities-0.150.15 → dycw_utilities-0.151.0}/src/utilities/tempfile.py +0 -0
- {dycw_utilities-0.150.15 → dycw_utilities-0.151.0}/src/utilities/text.py +0 -0
- {dycw_utilities-0.150.15 → dycw_utilities-0.151.0}/src/utilities/threading.py +0 -0
- {dycw_utilities-0.150.15 → dycw_utilities-0.151.0}/src/utilities/timer.py +0 -0
- {dycw_utilities-0.150.15 → dycw_utilities-0.151.0}/src/utilities/traceback.py +0 -0
- {dycw_utilities-0.150.15 → dycw_utilities-0.151.0}/src/utilities/typed_settings.py +0 -0
- {dycw_utilities-0.150.15 → dycw_utilities-0.151.0}/src/utilities/types.py +0 -0
- {dycw_utilities-0.150.15 → dycw_utilities-0.151.0}/src/utilities/typing.py +0 -0
- {dycw_utilities-0.150.15 → dycw_utilities-0.151.0}/src/utilities/tzdata.py +0 -0
- {dycw_utilities-0.150.15 → dycw_utilities-0.151.0}/src/utilities/tzlocal.py +0 -0
- {dycw_utilities-0.150.15 → dycw_utilities-0.151.0}/src/utilities/uuid.py +0 -0
- {dycw_utilities-0.150.15 → dycw_utilities-0.151.0}/src/utilities/version.py +0 -0
- {dycw_utilities-0.150.15 → dycw_utilities-0.151.0}/src/utilities/warnings.py +0 -0
- {dycw_utilities-0.150.15 → dycw_utilities-0.151.0}/src/utilities/whenever.py +0 -0
- {dycw_utilities-0.150.15 → dycw_utilities-0.151.0}/src/utilities/zipfile.py +0 -0
- {dycw_utilities-0.150.15 → dycw_utilities-0.151.0}/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.
|
235
|
+
version = "0.151.0"
|
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.
|
268
|
+
current_version = "0.151.0"
|
269
269
|
|
270
270
|
[[tool.bumpversion.files]]
|
271
271
|
filename = "src/utilities/__init__.py"
|
@@ -28,7 +28,7 @@ from utilities.altair import (
|
|
28
28
|
)
|
29
29
|
from utilities.functions import ensure_class
|
30
30
|
from utilities.hypothesis import dates, text_ascii, zoned_datetimes
|
31
|
-
from utilities.polars import DatetimeUTC,
|
31
|
+
from utilities.polars import DatetimeUTC, zoned_datetime_dtype
|
32
32
|
from utilities.tzdata import HongKong, Tokyo
|
33
33
|
from utilities.whenever import get_now
|
34
34
|
from utilities.zoneinfo import UTC
|
@@ -97,7 +97,10 @@ class TestPlotDataFrames:
|
|
97
97
|
def test_auto_localization(self, *, time_zone: ZoneInfo) -> None:
|
98
98
|
df = DataFrame(
|
99
99
|
data=[(dt.datetime(2000, 1, 1, 12, tzinfo=time_zone), 0.0)],
|
100
|
-
schema={
|
100
|
+
schema={
|
101
|
+
"datetime": zoned_datetime_dtype(time_zone=time_zone),
|
102
|
+
"value": Float64,
|
103
|
+
},
|
101
104
|
orient="row",
|
102
105
|
)
|
103
106
|
chart = plot_dataframes(df, x="datetime", y="value")
|
@@ -79,7 +79,7 @@ from utilities.orjson import (
|
|
79
79
|
serialize,
|
80
80
|
write_object,
|
81
81
|
)
|
82
|
-
from utilities.polars import check_polars_dataframe,
|
82
|
+
from utilities.polars import check_polars_dataframe, zoned_datetime_dtype
|
83
83
|
from utilities.sentinel import Sentinel, sentinel
|
84
84
|
from utilities.types import LogLevel, MaybeIterable, PathLike
|
85
85
|
from utilities.typing import get_args
|
@@ -174,7 +174,7 @@ class TestGetLogRecords:
|
|
174
174
|
"level": UInt64,
|
175
175
|
"path_name": String,
|
176
176
|
"line_num": UInt64,
|
177
|
-
"datetime":
|
177
|
+
"datetime": zoned_datetime_dtype(time_zone=LOCAL_TIME_ZONE),
|
178
178
|
"func_name": String,
|
179
179
|
"stack_info": String,
|
180
180
|
"extra": Object,
|
@@ -187,7 +187,8 @@ from utilities.polars import (
|
|
187
187
|
week_num,
|
188
188
|
write_dataframe,
|
189
189
|
write_series,
|
190
|
-
|
190
|
+
zoned_datetime_dtype,
|
191
|
+
zoned_datetime_period_dtype,
|
191
192
|
)
|
192
193
|
from utilities.random import get_state
|
193
194
|
from utilities.sentinel import Sentinel, sentinel
|
@@ -1023,7 +1024,9 @@ class TestDataClassToDataFrame:
|
|
1023
1024
|
):
|
1024
1025
|
df = dataclass_to_dataframe(objs, localns=locals())
|
1025
1026
|
check_polars_dataframe(
|
1026
|
-
df,
|
1027
|
+
df,
|
1028
|
+
height=len(objs),
|
1029
|
+
schema_list={"x": zoned_datetime_dtype(time_zone=time_zone)},
|
1027
1030
|
)
|
1028
1031
|
|
1029
1032
|
def test_error_empty(self) -> None:
|
@@ -1117,7 +1120,7 @@ class TestDataClassToSchema:
|
|
1117
1120
|
|
1118
1121
|
obj = Example()
|
1119
1122
|
result = dataclass_to_schema(obj)
|
1120
|
-
expected = {"x":
|
1123
|
+
expected = {"x": zoned_datetime_dtype(time_zone=time_zone)}
|
1121
1124
|
assert result == expected
|
1122
1125
|
|
1123
1126
|
def test_enum(self) -> None:
|
@@ -1249,7 +1252,7 @@ class TestDataClassToSchema:
|
|
1249
1252
|
|
1250
1253
|
obj = Example()
|
1251
1254
|
result = dataclass_to_schema(obj)
|
1252
|
-
expected = {"x":
|
1255
|
+
expected = {"x": zoned_datetime_dtype(time_zone=time_zone)}
|
1253
1256
|
assert result == expected
|
1254
1257
|
|
1255
1258
|
@given(start=timezones(), end=timezones())
|
@@ -1269,12 +1272,7 @@ class TestDataClassToSchema:
|
|
1269
1272
|
|
1270
1273
|
obj = Outer()
|
1271
1274
|
result = dataclass_to_schema(obj, localns=locals())
|
1272
|
-
expected = {
|
1273
|
-
"inner": Struct({
|
1274
|
-
"start": zoned_datetime(time_zone=start),
|
1275
|
-
"end": zoned_datetime(time_zone=end),
|
1276
|
-
})
|
1277
|
-
}
|
1275
|
+
expected = {"inner": zoned_datetime_period_dtype(time_zone=(start, end))}
|
1278
1276
|
assert result == expected
|
1279
1277
|
|
1280
1278
|
def test_containers(self) -> None:
|
@@ -1490,7 +1488,7 @@ class TestGetDataTypeOrSeriesTimeZone:
|
|
1490
1488
|
def test_main(
|
1491
1489
|
self, *, time_zone: ZoneInfo, case: Literal["dtype", "series"]
|
1492
1490
|
) -> None:
|
1493
|
-
dtype =
|
1491
|
+
dtype = zoned_datetime_dtype(time_zone=time_zone)
|
1494
1492
|
match case:
|
1495
1493
|
case "dtype":
|
1496
1494
|
dtype_or_series = dtype
|
@@ -2823,9 +2821,15 @@ class TestWeekNum:
|
|
2823
2821
|
assert_series_equal(result, expected)
|
2824
2822
|
|
2825
2823
|
|
2826
|
-
class
|
2827
|
-
|
2828
|
-
|
2829
|
-
dtype = zoned_datetime(time_zone=time_zone)
|
2824
|
+
class TestZonedDateTimeDType:
|
2825
|
+
def test_main(self) -> None:
|
2826
|
+
dtype = zoned_datetime_dtype(time_zone=UTC)
|
2830
2827
|
assert isinstance(dtype, Datetime)
|
2831
2828
|
assert dtype.time_zone is not None
|
2829
|
+
|
2830
|
+
|
2831
|
+
class TestZonedDateTimePeriodDType:
|
2832
|
+
@given(time_zone=sampled_from([UTC, (UTC, UTC)]))
|
2833
|
+
def test_main(self, *, time_zone: ZoneInfo | tuple[ZoneInfo, ZoneInfo]) -> None:
|
2834
|
+
dtype = zoned_datetime_period_dtype(time_zone=time_zone)
|
2835
|
+
assert isinstance(dtype, Struct)
|
@@ -1097,7 +1097,7 @@ def _dataclass_to_schema_datetime(
|
|
1097
1097
|
) -> PolarsDataType:
|
1098
1098
|
if field.value.tzinfo is None:
|
1099
1099
|
return Datetime
|
1100
|
-
return
|
1100
|
+
return zoned_datetime_dtype(time_zone=ensure_time_zone(field.value.tzinfo))
|
1101
1101
|
|
1102
1102
|
|
1103
1103
|
def _dataclass_to_schema_one(
|
@@ -2259,7 +2259,7 @@ def _struct_from_dataclass_one(
|
|
2259
2259
|
if ann is dt.datetime:
|
2260
2260
|
if time_zone is None:
|
2261
2261
|
raise _StructFromDataClassTimeZoneMissingError
|
2262
|
-
return
|
2262
|
+
return zoned_datetime_dtype(time_zone=time_zone)
|
2263
2263
|
if is_dataclass_class(ann):
|
2264
2264
|
return struct_from_dataclass(ann, time_zone=time_zone)
|
2265
2265
|
if (isinstance(ann, type) and issubclass(ann, enum.Enum)) or (
|
@@ -2388,13 +2388,30 @@ def week_num(column: IntoExprColumn, /, *, start: WeekDay = "mon") -> Expr | Ser
|
|
2388
2388
|
##
|
2389
2389
|
|
2390
2390
|
|
2391
|
-
def
|
2391
|
+
def zoned_datetime_dtype(
|
2392
2392
|
*, time_unit: TimeUnit = "us", time_zone: TimeZoneLike = UTC
|
2393
2393
|
) -> Datetime:
|
2394
2394
|
"""Create a zoned datetime data type."""
|
2395
2395
|
return Datetime(time_unit=time_unit, time_zone=get_time_zone_name(time_zone))
|
2396
2396
|
|
2397
2397
|
|
2398
|
+
def zoned_datetime_period_dtype(
|
2399
|
+
*,
|
2400
|
+
time_unit: TimeUnit = "us",
|
2401
|
+
time_zone: TimeZoneLike | tuple[TimeZoneLike, TimeZoneLike] = UTC,
|
2402
|
+
) -> Struct:
|
2403
|
+
"""Create a zoned datetime period data type."""
|
2404
|
+
match time_zone:
|
2405
|
+
case start, end:
|
2406
|
+
return struct_dtype(
|
2407
|
+
start=zoned_datetime_dtype(time_unit=time_unit, time_zone=start),
|
2408
|
+
end=zoned_datetime_dtype(time_unit=time_unit, time_zone=end),
|
2409
|
+
)
|
2410
|
+
case _:
|
2411
|
+
dtype = zoned_datetime_dtype(time_unit=time_unit, time_zone=time_zone)
|
2412
|
+
return struct_dtype(start=dtype, end=dtype)
|
2413
|
+
|
2414
|
+
|
2398
2415
|
__all__ = [
|
2399
2416
|
"BooleanValueCountsError",
|
2400
2417
|
"CheckPolarsDataFrameError",
|
@@ -2470,5 +2487,6 @@ __all__ = [
|
|
2470
2487
|
"unique_element",
|
2471
2488
|
"write_dataframe",
|
2472
2489
|
"write_series",
|
2473
|
-
"
|
2490
|
+
"zoned_datetime_dtype",
|
2491
|
+
"zoned_datetime_period_dtype",
|
2474
2492
|
]
|
@@ -35,7 +35,7 @@ from utilities.iterables import (
|
|
35
35
|
chunked,
|
36
36
|
one,
|
37
37
|
)
|
38
|
-
from utilities.polars import
|
38
|
+
from utilities.polars import zoned_datetime_dtype
|
39
39
|
from utilities.reprlib import get_repr
|
40
40
|
from utilities.sqlalchemy import (
|
41
41
|
CHUNK_SIZE_FRAC,
|
@@ -390,7 +390,7 @@ def _select_to_dataframe_map_table_column_type_to_dtype(
|
|
390
390
|
return pl.Date
|
391
391
|
if is_subclass_gen(py_type, dt.datetime):
|
392
392
|
has_tz: bool = type_use.timezone
|
393
|
-
return
|
393
|
+
return zoned_datetime_dtype(time_zone=time_zone) if has_tz else Datetime()
|
394
394
|
if issubclass(py_type, dt.time):
|
395
395
|
return Time
|
396
396
|
if issubclass(py_type, dt.timedelta):
|
File without changes
|
File without changes
|
File without changes
|
File without changes
|
File without changes
|
File without changes
|
{dycw_utilities-0.150.15 → dycw_utilities-0.151.0}/src/tests/modules/package_missing/__init__.py
RENAMED
File without changes
|
{dycw_utilities-0.150.15 → dycw_utilities-0.151.0}/src/tests/modules/package_missing/module.py
RENAMED
File without changes
|
{dycw_utilities-0.150.15 → dycw_utilities-0.151.0}/src/tests/modules/package_with/__init__.py
RENAMED
File without changes
|
{dycw_utilities-0.150.15 → dycw_utilities-0.151.0}/src/tests/modules/package_with/outer_1.py
RENAMED
File without changes
|
{dycw_utilities-0.150.15 → dycw_utilities-0.151.0}/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.150.15 → dycw_utilities-0.151.0}/src/tests/modules/package_without/__init__.py
RENAMED
File without changes
|
{dycw_utilities-0.150.15 → dycw_utilities-0.151.0}/src/tests/modules/package_without/module_1.py
RENAMED
File without changes
|
{dycw_utilities-0.150.15 → dycw_utilities-0.151.0}/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
|
{dycw_utilities-0.150.15 → dycw_utilities-0.151.0}/src/tests/test_typing_funcs/with_future.py
RENAMED
File without changes
|
File without changes
|
File without changes
|
File without changes
|
File without changes
|
File without changes
|
File without changes
|
File without changes
|
File without changes
|
File without changes
|
File without changes
|
File without changes
|
File without changes
|
File without changes
|
File without changes
|
File without changes
|
File without changes
|
File without changes
|
File without changes
|
File without changes
|
File without changes
|
File without changes
|
File without changes
|
File without changes
|
File without changes
|
File without changes
|
File without changes
|
File without changes
|
File without changes
|
File without changes
|
File without changes
|
File without changes
|
File without changes
|
File without changes
|
File without changes
|
File without changes
|
File without changes
|
File without changes
|
File without changes
|
File without changes
|
File without changes
|
File without changes
|
File without changes
|
File without changes
|
File without changes
|
File without changes
|
File without changes
|
File without changes
|
File without changes
|
File without changes
|
File without changes
|
File without changes
|
File without changes
|
File without changes
|
File without changes
|
File without changes
|
File without changes
|
File without changes
|
File without changes
|
File without changes
|
File without changes
|
File without changes
|
File without changes
|
File without changes
|
File without changes
|
File without changes
|
File without changes
|
File without changes
|
File without changes
|
{dycw_utilities-0.150.15 → dycw_utilities-0.151.0}/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
|