dycw-utilities 0.153.12__tar.gz → 0.153.15__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.153.12 → dycw_utilities-0.153.15}/PKG-INFO +1 -1
- {dycw_utilities-0.153.12 → dycw_utilities-0.153.15}/pyproject.toml +2 -2
- {dycw_utilities-0.153.12 → dycw_utilities-0.153.15}/src/tests/test_math.py +3 -0
- {dycw_utilities-0.153.12 → dycw_utilities-0.153.15}/src/tests/test_polars.py +26 -19
- {dycw_utilities-0.153.12 → dycw_utilities-0.153.15}/src/tests/test_random.py +32 -2
- {dycw_utilities-0.153.12 → dycw_utilities-0.153.15}/src/tests/test_uuid.py +12 -5
- {dycw_utilities-0.153.12 → dycw_utilities-0.153.15}/src/utilities/__init__.py +1 -1
- {dycw_utilities-0.153.12 → dycw_utilities-0.153.15}/src/utilities/polars.py +2 -1
- {dycw_utilities-0.153.12 → dycw_utilities-0.153.15}/src/utilities/random.py +3 -0
- {dycw_utilities-0.153.12 → dycw_utilities-0.153.15}/src/utilities/sqlalchemy.py +8 -2
- {dycw_utilities-0.153.12 → dycw_utilities-0.153.15}/.gitignore +0 -0
- {dycw_utilities-0.153.12 → dycw_utilities-0.153.15}/LICENSE +0 -0
- {dycw_utilities-0.153.12 → dycw_utilities-0.153.15}/README.md +0 -0
- {dycw_utilities-0.153.12 → dycw_utilities-0.153.15}/src/tests/__init__.py +0 -0
- {dycw_utilities-0.153.12 → dycw_utilities-0.153.15}/src/tests/conftest.py +0 -0
- {dycw_utilities-0.153.12 → dycw_utilities-0.153.15}/src/tests/modules/__init__.py +0 -0
- {dycw_utilities-0.153.12 → dycw_utilities-0.153.15}/src/tests/modules/package_missing/__init__.py +0 -0
- {dycw_utilities-0.153.12 → dycw_utilities-0.153.15}/src/tests/modules/package_missing/module.py +0 -0
- {dycw_utilities-0.153.12 → dycw_utilities-0.153.15}/src/tests/modules/package_with/__init__.py +0 -0
- {dycw_utilities-0.153.12 → dycw_utilities-0.153.15}/src/tests/modules/package_with/outer_1.py +0 -0
- {dycw_utilities-0.153.12 → dycw_utilities-0.153.15}/src/tests/modules/package_with/outer_2.py +0 -0
- {dycw_utilities-0.153.12 → dycw_utilities-0.153.15}/src/tests/modules/package_with/subpackage/__init__.py +0 -0
- {dycw_utilities-0.153.12 → dycw_utilities-0.153.15}/src/tests/modules/package_with/subpackage/inner_1.py +0 -0
- {dycw_utilities-0.153.12 → dycw_utilities-0.153.15}/src/tests/modules/package_with/subpackage/inner_2.py +0 -0
- {dycw_utilities-0.153.12 → dycw_utilities-0.153.15}/src/tests/modules/package_with/subpackage/inner_3.py +0 -0
- {dycw_utilities-0.153.12 → dycw_utilities-0.153.15}/src/tests/modules/package_without/__init__.py +0 -0
- {dycw_utilities-0.153.12 → dycw_utilities-0.153.15}/src/tests/modules/package_without/module_1.py +0 -0
- {dycw_utilities-0.153.12 → dycw_utilities-0.153.15}/src/tests/modules/package_without/module_2.py +0 -0
- {dycw_utilities-0.153.12 → dycw_utilities-0.153.15}/src/tests/modules/standalone.py +0 -0
- {dycw_utilities-0.153.12 → dycw_utilities-0.153.15}/src/tests/modules/with_imports.py +0 -0
- {dycw_utilities-0.153.12 → dycw_utilities-0.153.15}/src/tests/regressions/test_pytest_regressions/TestMultipleRegressionFixtures__test_main__obj.json +0 -0
- {dycw_utilities-0.153.12 → dycw_utilities-0.153.15}/src/tests/regressions/test_pytest_regressions/TestMultipleRegressionFixtures__test_main__series.json +0 -0
- {dycw_utilities-0.153.12 → dycw_utilities-0.153.15}/src/tests/regressions/test_pytest_regressions/TestOrjsonRegressionFixture__test_dataclass_int.json +0 -0
- {dycw_utilities-0.153.12 → dycw_utilities-0.153.15}/src/tests/regressions/test_pytest_regressions/TestOrjsonRegressionFixture__test_dataclass_literal__false.json +0 -0
- {dycw_utilities-0.153.12 → dycw_utilities-0.153.15}/src/tests/regressions/test_pytest_regressions/TestOrjsonRegressionFixture__test_dataclass_literal__true.json +0 -0
- {dycw_utilities-0.153.12 → dycw_utilities-0.153.15}/src/tests/regressions/test_pytest_regressions/TestOrjsonRegressionFixture__test_dataclass_nested.json +0 -0
- {dycw_utilities-0.153.12 → dycw_utilities-0.153.15}/src/tests/regressions/test_pytest_regressions/TestPolarsRegressionFixture__test_dataframe.json +0 -0
- {dycw_utilities-0.153.12 → dycw_utilities-0.153.15}/src/tests/regressions/test_pytest_regressions/TestPolarsRegressionFixture__test_series.json +0 -0
- {dycw_utilities-0.153.12 → dycw_utilities-0.153.15}/src/tests/test_altair.py +0 -0
- {dycw_utilities-0.153.12 → dycw_utilities-0.153.15}/src/tests/test_asyncio.py +0 -0
- {dycw_utilities-0.153.12 → dycw_utilities-0.153.15}/src/tests/test_atomicwrites.py +0 -0
- {dycw_utilities-0.153.12 → dycw_utilities-0.153.15}/src/tests/test_atools.py +0 -0
- {dycw_utilities-0.153.12 → dycw_utilities-0.153.15}/src/tests/test_cachetools.py +0 -0
- {dycw_utilities-0.153.12 → dycw_utilities-0.153.15}/src/tests/test_click.py +0 -0
- {dycw_utilities-0.153.12 → dycw_utilities-0.153.15}/src/tests/test_concurrent.py +0 -0
- {dycw_utilities-0.153.12 → dycw_utilities-0.153.15}/src/tests/test_contextlib.py +0 -0
- {dycw_utilities-0.153.12 → dycw_utilities-0.153.15}/src/tests/test_contextvars.py +0 -0
- {dycw_utilities-0.153.12 → dycw_utilities-0.153.15}/src/tests/test_cryptography.py +0 -0
- {dycw_utilities-0.153.12 → dycw_utilities-0.153.15}/src/tests/test_cvxpy.py +0 -0
- {dycw_utilities-0.153.12 → dycw_utilities-0.153.15}/src/tests/test_dataclasses.py +0 -0
- {dycw_utilities-0.153.12 → dycw_utilities-0.153.15}/src/tests/test_enum.py +0 -0
- {dycw_utilities-0.153.12 → dycw_utilities-0.153.15}/src/tests/test_errors.py +0 -0
- {dycw_utilities-0.153.12 → dycw_utilities-0.153.15}/src/tests/test_eventkit.py +0 -0
- {dycw_utilities-0.153.12 → dycw_utilities-0.153.15}/src/tests/test_fastapi.py +0 -0
- {dycw_utilities-0.153.12 → dycw_utilities-0.153.15}/src/tests/test_fpdf2.py +0 -0
- {dycw_utilities-0.153.12 → dycw_utilities-0.153.15}/src/tests/test_functions.py +0 -0
- {dycw_utilities-0.153.12 → dycw_utilities-0.153.15}/src/tests/test_functools.py +0 -0
- {dycw_utilities-0.153.12 → dycw_utilities-0.153.15}/src/tests/test_getpass.py +0 -0
- {dycw_utilities-0.153.12 → dycw_utilities-0.153.15}/src/tests/test_gzip.py +0 -0
- {dycw_utilities-0.153.12 → dycw_utilities-0.153.15}/src/tests/test_hashlib.py +0 -0
- {dycw_utilities-0.153.12 → dycw_utilities-0.153.15}/src/tests/test_http.py +0 -0
- {dycw_utilities-0.153.12 → dycw_utilities-0.153.15}/src/tests/test_hypothesis.py +0 -0
- {dycw_utilities-0.153.12 → dycw_utilities-0.153.15}/src/tests/test_importlib.py +0 -0
- {dycw_utilities-0.153.12 → dycw_utilities-0.153.15}/src/tests/test_inflect.py +0 -0
- {dycw_utilities-0.153.12 → dycw_utilities-0.153.15}/src/tests/test_ipython.py +0 -0
- {dycw_utilities-0.153.12 → dycw_utilities-0.153.15}/src/tests/test_iterables.py +0 -0
- {dycw_utilities-0.153.12 → dycw_utilities-0.153.15}/src/tests/test_json.py +0 -0
- {dycw_utilities-0.153.12 → dycw_utilities-0.153.15}/src/tests/test_jupyter.py +0 -0
- {dycw_utilities-0.153.12 → dycw_utilities-0.153.15}/src/tests/test_libcst.py +0 -0
- {dycw_utilities-0.153.12 → dycw_utilities-0.153.15}/src/tests/test_lightweight_charts.py +0 -0
- {dycw_utilities-0.153.12 → dycw_utilities-0.153.15}/src/tests/test_logging.py +0 -0
- {dycw_utilities-0.153.12 → dycw_utilities-0.153.15}/src/tests/test_memory_profiler.py +0 -0
- {dycw_utilities-0.153.12 → dycw_utilities-0.153.15}/src/tests/test_modules.py +0 -0
- {dycw_utilities-0.153.12 → dycw_utilities-0.153.15}/src/tests/test_more_itertools.py +0 -0
- {dycw_utilities-0.153.12 → dycw_utilities-0.153.15}/src/tests/test_numpy.py +0 -0
- {dycw_utilities-0.153.12 → dycw_utilities-0.153.15}/src/tests/test_objects/__init__.py +0 -0
- {dycw_utilities-0.153.12 → dycw_utilities-0.153.15}/src/tests/test_objects/objects.py +0 -0
- {dycw_utilities-0.153.12 → dycw_utilities-0.153.15}/src/tests/test_operator.py +0 -0
- {dycw_utilities-0.153.12 → dycw_utilities-0.153.15}/src/tests/test_optuna.py +0 -0
- {dycw_utilities-0.153.12 → dycw_utilities-0.153.15}/src/tests/test_orjson.py +0 -0
- {dycw_utilities-0.153.12 → dycw_utilities-0.153.15}/src/tests/test_os.py +0 -0
- {dycw_utilities-0.153.12 → dycw_utilities-0.153.15}/src/tests/test_parse.py +0 -0
- {dycw_utilities-0.153.12 → dycw_utilities-0.153.15}/src/tests/test_pathlib.py +0 -0
- {dycw_utilities-0.153.12 → dycw_utilities-0.153.15}/src/tests/test_pickle.py +0 -0
- {dycw_utilities-0.153.12 → dycw_utilities-0.153.15}/src/tests/test_platform.py +0 -0
- {dycw_utilities-0.153.12 → dycw_utilities-0.153.15}/src/tests/test_polars_ols.py +0 -0
- {dycw_utilities-0.153.12 → dycw_utilities-0.153.15}/src/tests/test_postgres.py +0 -0
- {dycw_utilities-0.153.12 → dycw_utilities-0.153.15}/src/tests/test_pottery.py +0 -0
- {dycw_utilities-0.153.12 → dycw_utilities-0.153.15}/src/tests/test_pqdm.py +0 -0
- {dycw_utilities-0.153.12 → dycw_utilities-0.153.15}/src/tests/test_psutil.py +0 -0
- {dycw_utilities-0.153.12 → dycw_utilities-0.153.15}/src/tests/test_pyinstrument.py +0 -0
- {dycw_utilities-0.153.12 → dycw_utilities-0.153.15}/src/tests/test_pytest.py +0 -0
- {dycw_utilities-0.153.12 → dycw_utilities-0.153.15}/src/tests/test_pytest_randomly.py +0 -0
- {dycw_utilities-0.153.12 → dycw_utilities-0.153.15}/src/tests/test_pytest_regressions.py +0 -0
- {dycw_utilities-0.153.12 → dycw_utilities-0.153.15}/src/tests/test_re.py +0 -0
- {dycw_utilities-0.153.12 → dycw_utilities-0.153.15}/src/tests/test_redis.py +0 -0
- {dycw_utilities-0.153.12 → dycw_utilities-0.153.15}/src/tests/test_reprlib.py +0 -0
- {dycw_utilities-0.153.12 → dycw_utilities-0.153.15}/src/tests/test_scipy.py +0 -0
- {dycw_utilities-0.153.12 → dycw_utilities-0.153.15}/src/tests/test_sentinel.py +0 -0
- {dycw_utilities-0.153.12 → dycw_utilities-0.153.15}/src/tests/test_shelve.py +0 -0
- {dycw_utilities-0.153.12 → dycw_utilities-0.153.15}/src/tests/test_slack_sdk.py +0 -0
- {dycw_utilities-0.153.12 → dycw_utilities-0.153.15}/src/tests/test_socket.py +0 -0
- {dycw_utilities-0.153.12 → dycw_utilities-0.153.15}/src/tests/test_sqlalchemy.py +0 -0
- {dycw_utilities-0.153.12 → dycw_utilities-0.153.15}/src/tests/test_sqlalchemy_polars.py +0 -0
- {dycw_utilities-0.153.12 → dycw_utilities-0.153.15}/src/tests/test_statsmodels.py +0 -0
- {dycw_utilities-0.153.12 → dycw_utilities-0.153.15}/src/tests/test_string.py +0 -0
- {dycw_utilities-0.153.12 → dycw_utilities-0.153.15}/src/tests/test_tempfile.py +0 -0
- {dycw_utilities-0.153.12 → dycw_utilities-0.153.15}/src/tests/test_text.py +0 -0
- {dycw_utilities-0.153.12 → dycw_utilities-0.153.15}/src/tests/test_threading.py +0 -0
- {dycw_utilities-0.153.12 → dycw_utilities-0.153.15}/src/tests/test_timer.py +0 -0
- {dycw_utilities-0.153.12 → dycw_utilities-0.153.15}/src/tests/test_traceback.py +0 -0
- {dycw_utilities-0.153.12 → dycw_utilities-0.153.15}/src/tests/test_typed_settings.py +0 -0
- {dycw_utilities-0.153.12 → dycw_utilities-0.153.15}/src/tests/test_types.py +0 -0
- {dycw_utilities-0.153.12 → dycw_utilities-0.153.15}/src/tests/test_typing.py +0 -0
- {dycw_utilities-0.153.12 → dycw_utilities-0.153.15}/src/tests/test_typing_funcs/__init__.py +0 -0
- {dycw_utilities-0.153.12 → dycw_utilities-0.153.15}/src/tests/test_typing_funcs/no_future.py +0 -0
- {dycw_utilities-0.153.12 → dycw_utilities-0.153.15}/src/tests/test_typing_funcs/with_future.py +0 -0
- {dycw_utilities-0.153.12 → dycw_utilities-0.153.15}/src/tests/test_tzdata.py +0 -0
- {dycw_utilities-0.153.12 → dycw_utilities-0.153.15}/src/tests/test_tzlocal.py +0 -0
- {dycw_utilities-0.153.12 → dycw_utilities-0.153.15}/src/tests/test_version.py +0 -0
- {dycw_utilities-0.153.12 → dycw_utilities-0.153.15}/src/tests/test_warnings.py +0 -0
- {dycw_utilities-0.153.12 → dycw_utilities-0.153.15}/src/tests/test_whenever.py +0 -0
- {dycw_utilities-0.153.12 → dycw_utilities-0.153.15}/src/tests/test_yield_access/__init__.py +0 -0
- {dycw_utilities-0.153.12 → dycw_utilities-0.153.15}/src/tests/test_yield_access/script.py +0 -0
- {dycw_utilities-0.153.12 → dycw_utilities-0.153.15}/src/tests/test_yield_access/script.sh +0 -0
- {dycw_utilities-0.153.12 → dycw_utilities-0.153.15}/src/tests/test_zipfile.py +0 -0
- {dycw_utilities-0.153.12 → dycw_utilities-0.153.15}/src/tests/test_zoneinfo.py +0 -0
- {dycw_utilities-0.153.12 → dycw_utilities-0.153.15}/src/utilities/altair.py +0 -0
- {dycw_utilities-0.153.12 → dycw_utilities-0.153.15}/src/utilities/asyncio.py +0 -0
- {dycw_utilities-0.153.12 → dycw_utilities-0.153.15}/src/utilities/atomicwrites.py +0 -0
- {dycw_utilities-0.153.12 → dycw_utilities-0.153.15}/src/utilities/atools.py +0 -0
- {dycw_utilities-0.153.12 → dycw_utilities-0.153.15}/src/utilities/cachetools.py +0 -0
- {dycw_utilities-0.153.12 → dycw_utilities-0.153.15}/src/utilities/click.py +0 -0
- {dycw_utilities-0.153.12 → dycw_utilities-0.153.15}/src/utilities/concurrent.py +0 -0
- {dycw_utilities-0.153.12 → dycw_utilities-0.153.15}/src/utilities/contextlib.py +0 -0
- {dycw_utilities-0.153.12 → dycw_utilities-0.153.15}/src/utilities/contextvars.py +0 -0
- {dycw_utilities-0.153.12 → dycw_utilities-0.153.15}/src/utilities/cryptography.py +0 -0
- {dycw_utilities-0.153.12 → dycw_utilities-0.153.15}/src/utilities/cvxpy.py +0 -0
- {dycw_utilities-0.153.12 → dycw_utilities-0.153.15}/src/utilities/dataclasses.py +0 -0
- {dycw_utilities-0.153.12 → dycw_utilities-0.153.15}/src/utilities/enum.py +0 -0
- {dycw_utilities-0.153.12 → dycw_utilities-0.153.15}/src/utilities/errors.py +0 -0
- {dycw_utilities-0.153.12 → dycw_utilities-0.153.15}/src/utilities/eventkit.py +0 -0
- {dycw_utilities-0.153.12 → dycw_utilities-0.153.15}/src/utilities/fastapi.py +0 -0
- {dycw_utilities-0.153.12 → dycw_utilities-0.153.15}/src/utilities/fpdf2.py +0 -0
- {dycw_utilities-0.153.12 → dycw_utilities-0.153.15}/src/utilities/functions.py +0 -0
- {dycw_utilities-0.153.12 → dycw_utilities-0.153.15}/src/utilities/functools.py +0 -0
- {dycw_utilities-0.153.12 → dycw_utilities-0.153.15}/src/utilities/getpass.py +0 -0
- {dycw_utilities-0.153.12 → dycw_utilities-0.153.15}/src/utilities/gzip.py +0 -0
- {dycw_utilities-0.153.12 → dycw_utilities-0.153.15}/src/utilities/hashlib.py +0 -0
- {dycw_utilities-0.153.12 → dycw_utilities-0.153.15}/src/utilities/http.py +0 -0
- {dycw_utilities-0.153.12 → dycw_utilities-0.153.15}/src/utilities/hypothesis.py +0 -0
- {dycw_utilities-0.153.12 → dycw_utilities-0.153.15}/src/utilities/importlib.py +0 -0
- {dycw_utilities-0.153.12 → dycw_utilities-0.153.15}/src/utilities/inflect.py +0 -0
- {dycw_utilities-0.153.12 → dycw_utilities-0.153.15}/src/utilities/ipython.py +0 -0
- {dycw_utilities-0.153.12 → dycw_utilities-0.153.15}/src/utilities/iterables.py +0 -0
- {dycw_utilities-0.153.12 → dycw_utilities-0.153.15}/src/utilities/json.py +0 -0
- {dycw_utilities-0.153.12 → dycw_utilities-0.153.15}/src/utilities/jupyter.py +0 -0
- {dycw_utilities-0.153.12 → dycw_utilities-0.153.15}/src/utilities/libcst.py +0 -0
- {dycw_utilities-0.153.12 → dycw_utilities-0.153.15}/src/utilities/lightweight_charts.py +0 -0
- {dycw_utilities-0.153.12 → dycw_utilities-0.153.15}/src/utilities/logging.py +0 -0
- {dycw_utilities-0.153.12 → dycw_utilities-0.153.15}/src/utilities/math.py +0 -0
- {dycw_utilities-0.153.12 → dycw_utilities-0.153.15}/src/utilities/memory_profiler.py +0 -0
- {dycw_utilities-0.153.12 → dycw_utilities-0.153.15}/src/utilities/modules.py +0 -0
- {dycw_utilities-0.153.12 → dycw_utilities-0.153.15}/src/utilities/more_itertools.py +0 -0
- {dycw_utilities-0.153.12 → dycw_utilities-0.153.15}/src/utilities/numpy.py +0 -0
- {dycw_utilities-0.153.12 → dycw_utilities-0.153.15}/src/utilities/operator.py +0 -0
- {dycw_utilities-0.153.12 → dycw_utilities-0.153.15}/src/utilities/optuna.py +0 -0
- {dycw_utilities-0.153.12 → dycw_utilities-0.153.15}/src/utilities/orjson.py +0 -0
- {dycw_utilities-0.153.12 → dycw_utilities-0.153.15}/src/utilities/os.py +0 -0
- {dycw_utilities-0.153.12 → dycw_utilities-0.153.15}/src/utilities/parse.py +0 -0
- {dycw_utilities-0.153.12 → dycw_utilities-0.153.15}/src/utilities/pathlib.py +0 -0
- {dycw_utilities-0.153.12 → dycw_utilities-0.153.15}/src/utilities/pickle.py +0 -0
- {dycw_utilities-0.153.12 → dycw_utilities-0.153.15}/src/utilities/platform.py +0 -0
- {dycw_utilities-0.153.12 → dycw_utilities-0.153.15}/src/utilities/polars_ols.py +0 -0
- {dycw_utilities-0.153.12 → dycw_utilities-0.153.15}/src/utilities/postgres.py +0 -0
- {dycw_utilities-0.153.12 → dycw_utilities-0.153.15}/src/utilities/pottery.py +0 -0
- {dycw_utilities-0.153.12 → dycw_utilities-0.153.15}/src/utilities/pqdm.py +0 -0
- {dycw_utilities-0.153.12 → dycw_utilities-0.153.15}/src/utilities/psutil.py +0 -0
- {dycw_utilities-0.153.12 → dycw_utilities-0.153.15}/src/utilities/py.typed +0 -0
- {dycw_utilities-0.153.12 → dycw_utilities-0.153.15}/src/utilities/pyinstrument.py +0 -0
- {dycw_utilities-0.153.12 → dycw_utilities-0.153.15}/src/utilities/pytest.py +0 -0
- {dycw_utilities-0.153.12 → dycw_utilities-0.153.15}/src/utilities/pytest_plugins/__init__.py +0 -0
- {dycw_utilities-0.153.12 → dycw_utilities-0.153.15}/src/utilities/pytest_plugins/pytest_randomly.py +0 -0
- {dycw_utilities-0.153.12 → dycw_utilities-0.153.15}/src/utilities/pytest_plugins/pytest_regressions.py +0 -0
- {dycw_utilities-0.153.12 → dycw_utilities-0.153.15}/src/utilities/pytest_regressions.py +0 -0
- {dycw_utilities-0.153.12 → dycw_utilities-0.153.15}/src/utilities/re.py +0 -0
- {dycw_utilities-0.153.12 → dycw_utilities-0.153.15}/src/utilities/redis.py +0 -0
- {dycw_utilities-0.153.12 → dycw_utilities-0.153.15}/src/utilities/reprlib.py +0 -0
- {dycw_utilities-0.153.12 → dycw_utilities-0.153.15}/src/utilities/scipy.py +0 -0
- {dycw_utilities-0.153.12 → dycw_utilities-0.153.15}/src/utilities/sentinel.py +0 -0
- {dycw_utilities-0.153.12 → dycw_utilities-0.153.15}/src/utilities/shelve.py +0 -0
- {dycw_utilities-0.153.12 → dycw_utilities-0.153.15}/src/utilities/slack_sdk.py +0 -0
- {dycw_utilities-0.153.12 → dycw_utilities-0.153.15}/src/utilities/socket.py +0 -0
- {dycw_utilities-0.153.12 → dycw_utilities-0.153.15}/src/utilities/sqlalchemy_polars.py +0 -0
- {dycw_utilities-0.153.12 → dycw_utilities-0.153.15}/src/utilities/statsmodels.py +0 -0
- {dycw_utilities-0.153.12 → dycw_utilities-0.153.15}/src/utilities/string.py +0 -0
- {dycw_utilities-0.153.12 → dycw_utilities-0.153.15}/src/utilities/tempfile.py +0 -0
- {dycw_utilities-0.153.12 → dycw_utilities-0.153.15}/src/utilities/text.py +0 -0
- {dycw_utilities-0.153.12 → dycw_utilities-0.153.15}/src/utilities/threading.py +0 -0
- {dycw_utilities-0.153.12 → dycw_utilities-0.153.15}/src/utilities/timer.py +0 -0
- {dycw_utilities-0.153.12 → dycw_utilities-0.153.15}/src/utilities/traceback.py +0 -0
- {dycw_utilities-0.153.12 → dycw_utilities-0.153.15}/src/utilities/typed_settings.py +0 -0
- {dycw_utilities-0.153.12 → dycw_utilities-0.153.15}/src/utilities/types.py +0 -0
- {dycw_utilities-0.153.12 → dycw_utilities-0.153.15}/src/utilities/typing.py +0 -0
- {dycw_utilities-0.153.12 → dycw_utilities-0.153.15}/src/utilities/tzdata.py +0 -0
- {dycw_utilities-0.153.12 → dycw_utilities-0.153.15}/src/utilities/tzlocal.py +0 -0
- {dycw_utilities-0.153.12 → dycw_utilities-0.153.15}/src/utilities/uuid.py +0 -0
- {dycw_utilities-0.153.12 → dycw_utilities-0.153.15}/src/utilities/version.py +0 -0
- {dycw_utilities-0.153.12 → dycw_utilities-0.153.15}/src/utilities/warnings.py +0 -0
- {dycw_utilities-0.153.12 → dycw_utilities-0.153.15}/src/utilities/whenever.py +0 -0
- {dycw_utilities-0.153.12 → dycw_utilities-0.153.15}/src/utilities/zipfile.py +0 -0
- {dycw_utilities-0.153.12 → dycw_utilities-0.153.15}/src/utilities/zoneinfo.py +0 -0
@@ -229,7 +229,7 @@ dependencies = [
|
|
229
229
|
name = "dycw-utilities"
|
230
230
|
readme = "README.md"
|
231
231
|
requires-python = ">= 3.12"
|
232
|
-
version = "0.153.
|
232
|
+
version = "0.153.15"
|
233
233
|
|
234
234
|
[project.entry-points.pytest11]
|
235
235
|
pytest-randomly = "utilities.pytest_plugins.pytest_randomly"
|
@@ -262,7 +262,7 @@ test = [
|
|
262
262
|
# bump-my-version
|
263
263
|
[tool.bumpversion]
|
264
264
|
allow_dirty = true
|
265
|
-
current_version = "0.153.
|
265
|
+
current_version = "0.153.15"
|
266
266
|
|
267
267
|
[[tool.bumpversion.files]]
|
268
268
|
filename = "src/utilities/__init__.py"
|
@@ -1175,6 +1175,9 @@ class TestRoundToFloat:
|
|
1175
1175
|
param(1.8, 0.5, 2.0),
|
1176
1176
|
param(1.9, 0.5, 2.0),
|
1177
1177
|
param(2.0, 0.5, 2.0),
|
1178
|
+
param(1.0745999813079834, 5e-5, 1.0746),
|
1179
|
+
param(1.0745500326156616, 5e-5, 1.07455),
|
1180
|
+
param(1.0745999813079834, 5e-5, 1.0746),
|
1178
1181
|
]
|
1179
1182
|
|
1180
1183
|
@mark.parametrize(("x", "y", "expected"), cases)
|
@@ -8,6 +8,7 @@ from enum import auto
|
|
8
8
|
from itertools import chain, repeat
|
9
9
|
from math import isfinite, nan
|
10
10
|
from pathlib import Path
|
11
|
+
from random import Random
|
11
12
|
from typing import TYPE_CHECKING, Any, ClassVar, Literal, assert_never, cast
|
12
13
|
from uuid import UUID, uuid4
|
13
14
|
|
@@ -202,7 +203,6 @@ from utilities.polars import (
|
|
202
203
|
zoned_datetime_dtype,
|
203
204
|
zoned_datetime_period_dtype,
|
204
205
|
)
|
205
|
-
from utilities.random import get_state
|
206
206
|
from utilities.sentinel import Sentinel, sentinel
|
207
207
|
from utilities.tzdata import HongKong, Tokyo, USCentral, USEastern
|
208
208
|
from utilities.whenever import get_now, get_today
|
@@ -1440,37 +1440,44 @@ class TestFiniteEWMMean:
|
|
1440
1440
|
6.849902999800129,
|
1441
1441
|
]
|
1442
1442
|
|
1443
|
-
@
|
1444
|
-
|
1445
|
-
|
1443
|
+
@mark.parametrize(
|
1444
|
+
("alpha", "exp_base", "min_weight", "exp_result"),
|
1445
|
+
[
|
1446
|
+
param(
|
1446
1447
|
0.75,
|
1447
|
-
0.9,
|
1448
1448
|
alpha_0_75_values,
|
1449
|
+
0.9,
|
1449
1450
|
[-8.28235294117647, -8.070588235294117, 3.2705882352941176],
|
1450
|
-
|
1451
|
-
|
1451
|
+
),
|
1452
|
+
param(
|
1452
1453
|
0.75,
|
1453
|
-
0.9999,
|
1454
1454
|
alpha_0_75_values,
|
1455
|
+
0.9999,
|
1455
1456
|
[-8.269864158112174, -8.06746317849418, 3.2331284833087284],
|
1456
|
-
|
1457
|
-
|
1457
|
+
),
|
1458
|
+
param(
|
1458
1459
|
0.99,
|
1459
|
-
0.9,
|
1460
1460
|
alpha_0_99_values,
|
1461
|
+
0.9,
|
1461
1462
|
[-8.970002970002971, -8.00970200970201, 6.849915849915851],
|
1462
|
-
|
1463
|
-
|
1463
|
+
),
|
1464
|
+
param(
|
1464
1465
|
0.99,
|
1465
|
-
0.9999,
|
1466
1466
|
alpha_0_99_values,
|
1467
|
+
0.9999,
|
1467
1468
|
[-8.970002000096999, -8.00970002000097, 6.84990300128499],
|
1468
|
-
|
1469
|
-
]
|
1469
|
+
),
|
1470
|
+
],
|
1470
1471
|
)
|
1471
|
-
def test_main(
|
1472
|
-
|
1473
|
-
|
1472
|
+
def test_main(
|
1473
|
+
self,
|
1474
|
+
*,
|
1475
|
+
alpha: float,
|
1476
|
+
exp_base: list[float],
|
1477
|
+
min_weight: float,
|
1478
|
+
exp_result: list[float],
|
1479
|
+
) -> None:
|
1480
|
+
state = Random(0)
|
1474
1481
|
series = Series(values=[state.randint(-10, 10) for _ in range(100)])
|
1475
1482
|
base = series.ewm_mean(alpha=alpha)
|
1476
1483
|
exp_base_sr = Series(values=exp_base, dtype=Float64)
|
@@ -32,6 +32,18 @@ class TestGetDockerName:
|
|
32
32
|
name = get_docker_name()
|
33
33
|
assert search(r"^[a-z]+_[a-z]+\d$", name)
|
34
34
|
|
35
|
+
def test_deterministic(self) -> None:
|
36
|
+
expected = [
|
37
|
+
"priceless_hypatia8",
|
38
|
+
"quizzical_aryabhata6",
|
39
|
+
"priceless_wing2",
|
40
|
+
"dazzling_mclean2",
|
41
|
+
"epic_montalcini8",
|
42
|
+
]
|
43
|
+
for exp in expected:
|
44
|
+
result = get_docker_name(TestGetDockerName.test_deterministic.__qualname__)
|
45
|
+
assert result == exp
|
46
|
+
|
35
47
|
|
36
48
|
class TestGetState:
|
37
49
|
@given(seed=integers() | just(SYSTEM_RANDOM))
|
@@ -39,6 +51,14 @@ class TestGetState:
|
|
39
51
|
state = get_state(seed)
|
40
52
|
assert isinstance(state, Random)
|
41
53
|
|
54
|
+
def test_deterministic(self) -> None:
|
55
|
+
expected = [6, 4, 8, 10, 6]
|
56
|
+
for exp in expected:
|
57
|
+
result = get_state(TestGetState.test_deterministic.__qualname__).randint(
|
58
|
+
0, 10
|
59
|
+
)
|
60
|
+
assert result == exp
|
61
|
+
|
42
62
|
|
43
63
|
class TestShuffle:
|
44
64
|
@given(iterable=iterables(integers()), seed=integers())
|
@@ -46,8 +66,18 @@ class TestShuffle:
|
|
46
66
|
as_set = set(iterable)
|
47
67
|
result = shuffle(as_set, seed=seed)
|
48
68
|
assert set(result) == as_set
|
49
|
-
|
50
|
-
|
69
|
+
|
70
|
+
def test_deterministic(self) -> None:
|
71
|
+
expected = [
|
72
|
+
[2, 3, 0, 4, 1],
|
73
|
+
[3, 1, 2, 0, 4],
|
74
|
+
[1, 0, 4, 3, 2],
|
75
|
+
[1, 0, 2, 3, 4],
|
76
|
+
[4, 0, 3, 1, 2],
|
77
|
+
]
|
78
|
+
for exp in expected:
|
79
|
+
result = shuffle(range(5), seed=TestShuffle.test_deterministic.__qualname__)
|
80
|
+
assert result == exp
|
51
81
|
|
52
82
|
|
53
83
|
class TestSystemRandom:
|
@@ -6,7 +6,7 @@ from typing import TYPE_CHECKING, Self
|
|
6
6
|
from uuid import UUID
|
7
7
|
|
8
8
|
from hypothesis import given
|
9
|
-
from hypothesis.strategies import
|
9
|
+
from hypothesis.strategies import none, randoms, uuids
|
10
10
|
|
11
11
|
from utilities.dataclasses import replace_non_sentinel
|
12
12
|
from utilities.hypothesis import pairs
|
@@ -25,10 +25,17 @@ class TestGetUUID:
|
|
25
25
|
def test_main(self, *, seed: Random | None) -> None:
|
26
26
|
assert isinstance(get_uuid(seed), UUID)
|
27
27
|
|
28
|
-
|
29
|
-
|
30
|
-
|
31
|
-
|
28
|
+
def test_deterministic(self) -> None:
|
29
|
+
expected = [
|
30
|
+
UUID("c1887c3c-6d8b-47e3-a6e9-e8b1e502cf8f"),
|
31
|
+
UUID("62333b56-33ff-4020-9126-b19ff1e86e12"),
|
32
|
+
UUID("db8ecae8-5dab-404b-88b0-8ed406820197"),
|
33
|
+
UUID("95977936-0733-413b-96db-a241c3cc55d8"),
|
34
|
+
UUID("24e9640f-8258-495d-899e-9139cf51a545"),
|
35
|
+
]
|
36
|
+
for exp in expected:
|
37
|
+
result = get_uuid(TestGetUUID.test_deterministic.__qualname__)
|
38
|
+
assert result == exp
|
32
39
|
|
33
40
|
|
34
41
|
class TestToUUID:
|
@@ -2383,7 +2383,8 @@ def round_to_float(
|
|
2383
2383
|
) -> ExprOrSeries:
|
2384
2384
|
"""Round a column to the nearest multiple of another float."""
|
2385
2385
|
x = ensure_expr_or_series(x)
|
2386
|
-
|
2386
|
+
z = (x / y).round(mode=mode) * y
|
2387
|
+
return z.round(decimals=number_of_decimals(y) + 1)
|
2387
2388
|
|
2388
2389
|
|
2389
2390
|
##
|
@@ -3,6 +3,8 @@ from __future__ import annotations
|
|
3
3
|
from random import Random, SystemRandom
|
4
4
|
from typing import TYPE_CHECKING
|
5
5
|
|
6
|
+
from utilities.functools import cache
|
7
|
+
|
6
8
|
if TYPE_CHECKING:
|
7
9
|
from collections.abc import Iterable
|
8
10
|
|
@@ -47,6 +49,7 @@ _DOCKER_SUFFIXES = [
|
|
47
49
|
##
|
48
50
|
|
49
51
|
|
52
|
+
@cache
|
50
53
|
def get_state(seed: Seed | None = None, /) -> Random:
|
51
54
|
"""Get a random state."""
|
52
55
|
return seed if isinstance(seed, Random) else Random(x=seed)
|
@@ -128,7 +128,7 @@ def check_connect(engine: Engine, /) -> bool:
|
|
128
128
|
try:
|
129
129
|
with engine.connect() as conn:
|
130
130
|
return bool(conn.execute(_SELECT).scalar_one())
|
131
|
-
except (gaierror, OperationalError, ProgrammingError):
|
131
|
+
except (gaierror, ConnectionRefusedError, OperationalError, ProgrammingError):
|
132
132
|
return False
|
133
133
|
|
134
134
|
|
@@ -139,7 +139,13 @@ async def check_connect_async(
|
|
139
139
|
try:
|
140
140
|
async with timeout_td(timeout), engine.connect() as conn:
|
141
141
|
return bool((await conn.execute(_SELECT)).scalar_one())
|
142
|
-
except (
|
142
|
+
except (
|
143
|
+
gaierror,
|
144
|
+
ConnectionRefusedError,
|
145
|
+
OperationalError,
|
146
|
+
ProgrammingError,
|
147
|
+
TimeoutError,
|
148
|
+
):
|
143
149
|
return False
|
144
150
|
|
145
151
|
|
File without changes
|
File without changes
|
File without changes
|
File without changes
|
File without changes
|
File without changes
|
{dycw_utilities-0.153.12 → dycw_utilities-0.153.15}/src/tests/modules/package_missing/__init__.py
RENAMED
File without changes
|
{dycw_utilities-0.153.12 → dycw_utilities-0.153.15}/src/tests/modules/package_missing/module.py
RENAMED
File without changes
|
{dycw_utilities-0.153.12 → dycw_utilities-0.153.15}/src/tests/modules/package_with/__init__.py
RENAMED
File without changes
|
{dycw_utilities-0.153.12 → dycw_utilities-0.153.15}/src/tests/modules/package_with/outer_1.py
RENAMED
File without changes
|
{dycw_utilities-0.153.12 → dycw_utilities-0.153.15}/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.153.12 → dycw_utilities-0.153.15}/src/tests/modules/package_without/__init__.py
RENAMED
File without changes
|
{dycw_utilities-0.153.12 → dycw_utilities-0.153.15}/src/tests/modules/package_without/module_1.py
RENAMED
File without changes
|
{dycw_utilities-0.153.12 → dycw_utilities-0.153.15}/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
|
{dycw_utilities-0.153.12 → dycw_utilities-0.153.15}/src/tests/test_typing_funcs/no_future.py
RENAMED
File without changes
|
{dycw_utilities-0.153.12 → dycw_utilities-0.153.15}/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.153.12 → dycw_utilities-0.153.15}/src/utilities/pytest_plugins/__init__.py
RENAMED
File without changes
|
{dycw_utilities-0.153.12 → dycw_utilities-0.153.15}/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
|