dycw-utilities 0.149.1__tar.gz → 0.149.3__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.149.1 → dycw_utilities-0.149.3}/PKG-INFO +1 -1
- {dycw_utilities-0.149.1 → dycw_utilities-0.149.3}/pyproject.toml +2 -2
- {dycw_utilities-0.149.1 → dycw_utilities-0.149.3}/src/tests/test_click.py +5 -0
- {dycw_utilities-0.149.1 → dycw_utilities-0.149.3}/src/tests/test_postgres.py +16 -4
- {dycw_utilities-0.149.1 → dycw_utilities-0.149.3}/src/tests/test_typed_settings.py +3 -0
- {dycw_utilities-0.149.1 → dycw_utilities-0.149.3}/src/utilities/__init__.py +1 -1
- {dycw_utilities-0.149.1 → dycw_utilities-0.149.3}/src/utilities/click.py +28 -0
- {dycw_utilities-0.149.1 → dycw_utilities-0.149.3}/src/utilities/postgres.py +35 -23
- {dycw_utilities-0.149.1 → dycw_utilities-0.149.3}/src/utilities/typed_settings.py +2 -0
- {dycw_utilities-0.149.1 → dycw_utilities-0.149.3}/.gitignore +0 -0
- {dycw_utilities-0.149.1 → dycw_utilities-0.149.3}/LICENSE +0 -0
- {dycw_utilities-0.149.1 → dycw_utilities-0.149.3}/README.md +0 -0
- {dycw_utilities-0.149.1 → dycw_utilities-0.149.3}/src/tests/__init__.py +0 -0
- {dycw_utilities-0.149.1 → dycw_utilities-0.149.3}/src/tests/conftest.py +0 -0
- {dycw_utilities-0.149.1 → dycw_utilities-0.149.3}/src/tests/modules/__init__.py +0 -0
- {dycw_utilities-0.149.1 → dycw_utilities-0.149.3}/src/tests/modules/package_missing/__init__.py +0 -0
- {dycw_utilities-0.149.1 → dycw_utilities-0.149.3}/src/tests/modules/package_missing/module.py +0 -0
- {dycw_utilities-0.149.1 → dycw_utilities-0.149.3}/src/tests/modules/package_with/__init__.py +0 -0
- {dycw_utilities-0.149.1 → dycw_utilities-0.149.3}/src/tests/modules/package_with/outer_1.py +0 -0
- {dycw_utilities-0.149.1 → dycw_utilities-0.149.3}/src/tests/modules/package_with/outer_2.py +0 -0
- {dycw_utilities-0.149.1 → dycw_utilities-0.149.3}/src/tests/modules/package_with/subpackage/__init__.py +0 -0
- {dycw_utilities-0.149.1 → dycw_utilities-0.149.3}/src/tests/modules/package_with/subpackage/inner_1.py +0 -0
- {dycw_utilities-0.149.1 → dycw_utilities-0.149.3}/src/tests/modules/package_with/subpackage/inner_2.py +0 -0
- {dycw_utilities-0.149.1 → dycw_utilities-0.149.3}/src/tests/modules/package_with/subpackage/inner_3.py +0 -0
- {dycw_utilities-0.149.1 → dycw_utilities-0.149.3}/src/tests/modules/package_without/__init__.py +0 -0
- {dycw_utilities-0.149.1 → dycw_utilities-0.149.3}/src/tests/modules/package_without/module_1.py +0 -0
- {dycw_utilities-0.149.1 → dycw_utilities-0.149.3}/src/tests/modules/package_without/module_2.py +0 -0
- {dycw_utilities-0.149.1 → dycw_utilities-0.149.3}/src/tests/modules/standalone.py +0 -0
- {dycw_utilities-0.149.1 → dycw_utilities-0.149.3}/src/tests/modules/with_imports.py +0 -0
- {dycw_utilities-0.149.1 → dycw_utilities-0.149.3}/src/tests/regressions/test_pytest_regressions/TestMultipleRegressionFixtures__test_main__obj.json +0 -0
- {dycw_utilities-0.149.1 → dycw_utilities-0.149.3}/src/tests/regressions/test_pytest_regressions/TestMultipleRegressionFixtures__test_main__series.json +0 -0
- {dycw_utilities-0.149.1 → dycw_utilities-0.149.3}/src/tests/regressions/test_pytest_regressions/TestOrjsonRegressionFixture__test_dataclass_int.json +0 -0
- {dycw_utilities-0.149.1 → dycw_utilities-0.149.3}/src/tests/regressions/test_pytest_regressions/TestOrjsonRegressionFixture__test_dataclass_literal__false.json +0 -0
- {dycw_utilities-0.149.1 → dycw_utilities-0.149.3}/src/tests/regressions/test_pytest_regressions/TestOrjsonRegressionFixture__test_dataclass_literal__true.json +0 -0
- {dycw_utilities-0.149.1 → dycw_utilities-0.149.3}/src/tests/regressions/test_pytest_regressions/TestOrjsonRegressionFixture__test_dataclass_nested.json +0 -0
- {dycw_utilities-0.149.1 → dycw_utilities-0.149.3}/src/tests/regressions/test_pytest_regressions/TestPolarsRegressionFixture__test_dataframe.json +0 -0
- {dycw_utilities-0.149.1 → dycw_utilities-0.149.3}/src/tests/regressions/test_pytest_regressions/TestPolarsRegressionFixture__test_series.json +0 -0
- {dycw_utilities-0.149.1 → dycw_utilities-0.149.3}/src/tests/test_altair.py +0 -0
- {dycw_utilities-0.149.1 → dycw_utilities-0.149.3}/src/tests/test_asyncio.py +0 -0
- {dycw_utilities-0.149.1 → dycw_utilities-0.149.3}/src/tests/test_atomicwrites.py +0 -0
- {dycw_utilities-0.149.1 → dycw_utilities-0.149.3}/src/tests/test_atools.py +0 -0
- {dycw_utilities-0.149.1 → dycw_utilities-0.149.3}/src/tests/test_cachetools.py +0 -0
- {dycw_utilities-0.149.1 → dycw_utilities-0.149.3}/src/tests/test_concurrent.py +0 -0
- {dycw_utilities-0.149.1 → dycw_utilities-0.149.3}/src/tests/test_contextlib.py +0 -0
- {dycw_utilities-0.149.1 → dycw_utilities-0.149.3}/src/tests/test_contextvars.py +0 -0
- {dycw_utilities-0.149.1 → dycw_utilities-0.149.3}/src/tests/test_cryptography.py +0 -0
- {dycw_utilities-0.149.1 → dycw_utilities-0.149.3}/src/tests/test_cvxpy.py +0 -0
- {dycw_utilities-0.149.1 → dycw_utilities-0.149.3}/src/tests/test_dataclasses.py +0 -0
- {dycw_utilities-0.149.1 → dycw_utilities-0.149.3}/src/tests/test_enum.py +0 -0
- {dycw_utilities-0.149.1 → dycw_utilities-0.149.3}/src/tests/test_errors.py +0 -0
- {dycw_utilities-0.149.1 → dycw_utilities-0.149.3}/src/tests/test_eventkit.py +0 -0
- {dycw_utilities-0.149.1 → dycw_utilities-0.149.3}/src/tests/test_fastapi.py +0 -0
- {dycw_utilities-0.149.1 → dycw_utilities-0.149.3}/src/tests/test_fpdf2.py +0 -0
- {dycw_utilities-0.149.1 → dycw_utilities-0.149.3}/src/tests/test_functions.py +0 -0
- {dycw_utilities-0.149.1 → dycw_utilities-0.149.3}/src/tests/test_functools.py +0 -0
- {dycw_utilities-0.149.1 → dycw_utilities-0.149.3}/src/tests/test_getpass.py +0 -0
- {dycw_utilities-0.149.1 → dycw_utilities-0.149.3}/src/tests/test_gzip.py +0 -0
- {dycw_utilities-0.149.1 → dycw_utilities-0.149.3}/src/tests/test_hashlib.py +0 -0
- {dycw_utilities-0.149.1 → dycw_utilities-0.149.3}/src/tests/test_http.py +0 -0
- {dycw_utilities-0.149.1 → dycw_utilities-0.149.3}/src/tests/test_hypothesis.py +0 -0
- {dycw_utilities-0.149.1 → dycw_utilities-0.149.3}/src/tests/test_importlib.py +0 -0
- {dycw_utilities-0.149.1 → dycw_utilities-0.149.3}/src/tests/test_inflect.py +0 -0
- {dycw_utilities-0.149.1 → dycw_utilities-0.149.3}/src/tests/test_ipython.py +0 -0
- {dycw_utilities-0.149.1 → dycw_utilities-0.149.3}/src/tests/test_iterables.py +0 -0
- {dycw_utilities-0.149.1 → dycw_utilities-0.149.3}/src/tests/test_json.py +0 -0
- {dycw_utilities-0.149.1 → dycw_utilities-0.149.3}/src/tests/test_jupyter.py +0 -0
- {dycw_utilities-0.149.1 → dycw_utilities-0.149.3}/src/tests/test_libcst.py +0 -0
- {dycw_utilities-0.149.1 → dycw_utilities-0.149.3}/src/tests/test_lightweight_charts.py +0 -0
- {dycw_utilities-0.149.1 → dycw_utilities-0.149.3}/src/tests/test_logging.py +0 -0
- {dycw_utilities-0.149.1 → dycw_utilities-0.149.3}/src/tests/test_math.py +0 -0
- {dycw_utilities-0.149.1 → dycw_utilities-0.149.3}/src/tests/test_memory_profiler.py +0 -0
- {dycw_utilities-0.149.1 → dycw_utilities-0.149.3}/src/tests/test_modules.py +0 -0
- {dycw_utilities-0.149.1 → dycw_utilities-0.149.3}/src/tests/test_more_itertools.py +0 -0
- {dycw_utilities-0.149.1 → dycw_utilities-0.149.3}/src/tests/test_numpy.py +0 -0
- {dycw_utilities-0.149.1 → dycw_utilities-0.149.3}/src/tests/test_objects/__init__.py +0 -0
- {dycw_utilities-0.149.1 → dycw_utilities-0.149.3}/src/tests/test_objects/objects.py +0 -0
- {dycw_utilities-0.149.1 → dycw_utilities-0.149.3}/src/tests/test_operator.py +0 -0
- {dycw_utilities-0.149.1 → dycw_utilities-0.149.3}/src/tests/test_optuna.py +0 -0
- {dycw_utilities-0.149.1 → dycw_utilities-0.149.3}/src/tests/test_orjson.py +0 -0
- {dycw_utilities-0.149.1 → dycw_utilities-0.149.3}/src/tests/test_os.py +0 -0
- {dycw_utilities-0.149.1 → dycw_utilities-0.149.3}/src/tests/test_parse.py +0 -0
- {dycw_utilities-0.149.1 → dycw_utilities-0.149.3}/src/tests/test_pathlib.py +0 -0
- {dycw_utilities-0.149.1 → dycw_utilities-0.149.3}/src/tests/test_period.py +0 -0
- {dycw_utilities-0.149.1 → dycw_utilities-0.149.3}/src/tests/test_pickle.py +0 -0
- {dycw_utilities-0.149.1 → dycw_utilities-0.149.3}/src/tests/test_platform.py +0 -0
- {dycw_utilities-0.149.1 → dycw_utilities-0.149.3}/src/tests/test_polars.py +0 -0
- {dycw_utilities-0.149.1 → dycw_utilities-0.149.3}/src/tests/test_polars_ols.py +0 -0
- {dycw_utilities-0.149.1 → dycw_utilities-0.149.3}/src/tests/test_pottery.py +0 -0
- {dycw_utilities-0.149.1 → dycw_utilities-0.149.3}/src/tests/test_pqdm.py +0 -0
- {dycw_utilities-0.149.1 → dycw_utilities-0.149.3}/src/tests/test_psutil.py +0 -0
- {dycw_utilities-0.149.1 → dycw_utilities-0.149.3}/src/tests/test_pyinstrument.py +0 -0
- {dycw_utilities-0.149.1 → dycw_utilities-0.149.3}/src/tests/test_pytest.py +0 -0
- {dycw_utilities-0.149.1 → dycw_utilities-0.149.3}/src/tests/test_pytest_randomly.py +0 -0
- {dycw_utilities-0.149.1 → dycw_utilities-0.149.3}/src/tests/test_pytest_regressions.py +0 -0
- {dycw_utilities-0.149.1 → dycw_utilities-0.149.3}/src/tests/test_random.py +0 -0
- {dycw_utilities-0.149.1 → dycw_utilities-0.149.3}/src/tests/test_re.py +0 -0
- {dycw_utilities-0.149.1 → dycw_utilities-0.149.3}/src/tests/test_redis.py +0 -0
- {dycw_utilities-0.149.1 → dycw_utilities-0.149.3}/src/tests/test_reprlib.py +0 -0
- {dycw_utilities-0.149.1 → dycw_utilities-0.149.3}/src/tests/test_scipy.py +0 -0
- {dycw_utilities-0.149.1 → dycw_utilities-0.149.3}/src/tests/test_sentinel.py +0 -0
- {dycw_utilities-0.149.1 → dycw_utilities-0.149.3}/src/tests/test_shelve.py +0 -0
- {dycw_utilities-0.149.1 → dycw_utilities-0.149.3}/src/tests/test_slack_sdk.py +0 -0
- {dycw_utilities-0.149.1 → dycw_utilities-0.149.3}/src/tests/test_socket.py +0 -0
- {dycw_utilities-0.149.1 → dycw_utilities-0.149.3}/src/tests/test_sqlalchemy.py +0 -0
- {dycw_utilities-0.149.1 → dycw_utilities-0.149.3}/src/tests/test_sqlalchemy_polars.py +0 -0
- {dycw_utilities-0.149.1 → dycw_utilities-0.149.3}/src/tests/test_statsmodels.py +0 -0
- {dycw_utilities-0.149.1 → dycw_utilities-0.149.3}/src/tests/test_string.py +0 -0
- {dycw_utilities-0.149.1 → dycw_utilities-0.149.3}/src/tests/test_tempfile.py +0 -0
- {dycw_utilities-0.149.1 → dycw_utilities-0.149.3}/src/tests/test_text.py +0 -0
- {dycw_utilities-0.149.1 → dycw_utilities-0.149.3}/src/tests/test_threading.py +0 -0
- {dycw_utilities-0.149.1 → dycw_utilities-0.149.3}/src/tests/test_timer.py +0 -0
- {dycw_utilities-0.149.1 → dycw_utilities-0.149.3}/src/tests/test_traceback.py +0 -0
- {dycw_utilities-0.149.1 → dycw_utilities-0.149.3}/src/tests/test_types.py +0 -0
- {dycw_utilities-0.149.1 → dycw_utilities-0.149.3}/src/tests/test_typing.py +0 -0
- {dycw_utilities-0.149.1 → dycw_utilities-0.149.3}/src/tests/test_typing_funcs/__init__.py +0 -0
- {dycw_utilities-0.149.1 → dycw_utilities-0.149.3}/src/tests/test_typing_funcs/no_future.py +0 -0
- {dycw_utilities-0.149.1 → dycw_utilities-0.149.3}/src/tests/test_typing_funcs/with_future.py +0 -0
- {dycw_utilities-0.149.1 → dycw_utilities-0.149.3}/src/tests/test_tzdata.py +0 -0
- {dycw_utilities-0.149.1 → dycw_utilities-0.149.3}/src/tests/test_tzlocal.py +0 -0
- {dycw_utilities-0.149.1 → dycw_utilities-0.149.3}/src/tests/test_uuid.py +0 -0
- {dycw_utilities-0.149.1 → dycw_utilities-0.149.3}/src/tests/test_version.py +0 -0
- {dycw_utilities-0.149.1 → dycw_utilities-0.149.3}/src/tests/test_warnings.py +0 -0
- {dycw_utilities-0.149.1 → dycw_utilities-0.149.3}/src/tests/test_whenever.py +0 -0
- {dycw_utilities-0.149.1 → dycw_utilities-0.149.3}/src/tests/test_yield_access/__init__.py +0 -0
- {dycw_utilities-0.149.1 → dycw_utilities-0.149.3}/src/tests/test_yield_access/script.py +0 -0
- {dycw_utilities-0.149.1 → dycw_utilities-0.149.3}/src/tests/test_yield_access/script.sh +0 -0
- {dycw_utilities-0.149.1 → dycw_utilities-0.149.3}/src/tests/test_zipfile.py +0 -0
- {dycw_utilities-0.149.1 → dycw_utilities-0.149.3}/src/tests/test_zoneinfo.py +0 -0
- {dycw_utilities-0.149.1 → dycw_utilities-0.149.3}/src/utilities/altair.py +0 -0
- {dycw_utilities-0.149.1 → dycw_utilities-0.149.3}/src/utilities/asyncio.py +0 -0
- {dycw_utilities-0.149.1 → dycw_utilities-0.149.3}/src/utilities/atomicwrites.py +0 -0
- {dycw_utilities-0.149.1 → dycw_utilities-0.149.3}/src/utilities/atools.py +0 -0
- {dycw_utilities-0.149.1 → dycw_utilities-0.149.3}/src/utilities/cachetools.py +0 -0
- {dycw_utilities-0.149.1 → dycw_utilities-0.149.3}/src/utilities/concurrent.py +0 -0
- {dycw_utilities-0.149.1 → dycw_utilities-0.149.3}/src/utilities/contextlib.py +0 -0
- {dycw_utilities-0.149.1 → dycw_utilities-0.149.3}/src/utilities/contextvars.py +0 -0
- {dycw_utilities-0.149.1 → dycw_utilities-0.149.3}/src/utilities/cryptography.py +0 -0
- {dycw_utilities-0.149.1 → dycw_utilities-0.149.3}/src/utilities/cvxpy.py +0 -0
- {dycw_utilities-0.149.1 → dycw_utilities-0.149.3}/src/utilities/dataclasses.py +0 -0
- {dycw_utilities-0.149.1 → dycw_utilities-0.149.3}/src/utilities/enum.py +0 -0
- {dycw_utilities-0.149.1 → dycw_utilities-0.149.3}/src/utilities/errors.py +0 -0
- {dycw_utilities-0.149.1 → dycw_utilities-0.149.3}/src/utilities/eventkit.py +0 -0
- {dycw_utilities-0.149.1 → dycw_utilities-0.149.3}/src/utilities/fastapi.py +0 -0
- {dycw_utilities-0.149.1 → dycw_utilities-0.149.3}/src/utilities/fpdf2.py +0 -0
- {dycw_utilities-0.149.1 → dycw_utilities-0.149.3}/src/utilities/functions.py +0 -0
- {dycw_utilities-0.149.1 → dycw_utilities-0.149.3}/src/utilities/functools.py +0 -0
- {dycw_utilities-0.149.1 → dycw_utilities-0.149.3}/src/utilities/getpass.py +0 -0
- {dycw_utilities-0.149.1 → dycw_utilities-0.149.3}/src/utilities/gzip.py +0 -0
- {dycw_utilities-0.149.1 → dycw_utilities-0.149.3}/src/utilities/hashlib.py +0 -0
- {dycw_utilities-0.149.1 → dycw_utilities-0.149.3}/src/utilities/http.py +0 -0
- {dycw_utilities-0.149.1 → dycw_utilities-0.149.3}/src/utilities/hypothesis.py +0 -0
- {dycw_utilities-0.149.1 → dycw_utilities-0.149.3}/src/utilities/importlib.py +0 -0
- {dycw_utilities-0.149.1 → dycw_utilities-0.149.3}/src/utilities/inflect.py +0 -0
- {dycw_utilities-0.149.1 → dycw_utilities-0.149.3}/src/utilities/ipython.py +0 -0
- {dycw_utilities-0.149.1 → dycw_utilities-0.149.3}/src/utilities/iterables.py +0 -0
- {dycw_utilities-0.149.1 → dycw_utilities-0.149.3}/src/utilities/json.py +0 -0
- {dycw_utilities-0.149.1 → dycw_utilities-0.149.3}/src/utilities/jupyter.py +0 -0
- {dycw_utilities-0.149.1 → dycw_utilities-0.149.3}/src/utilities/libcst.py +0 -0
- {dycw_utilities-0.149.1 → dycw_utilities-0.149.3}/src/utilities/lightweight_charts.py +0 -0
- {dycw_utilities-0.149.1 → dycw_utilities-0.149.3}/src/utilities/logging.py +0 -0
- {dycw_utilities-0.149.1 → dycw_utilities-0.149.3}/src/utilities/math.py +0 -0
- {dycw_utilities-0.149.1 → dycw_utilities-0.149.3}/src/utilities/memory_profiler.py +0 -0
- {dycw_utilities-0.149.1 → dycw_utilities-0.149.3}/src/utilities/modules.py +0 -0
- {dycw_utilities-0.149.1 → dycw_utilities-0.149.3}/src/utilities/more_itertools.py +0 -0
- {dycw_utilities-0.149.1 → dycw_utilities-0.149.3}/src/utilities/numpy.py +0 -0
- {dycw_utilities-0.149.1 → dycw_utilities-0.149.3}/src/utilities/operator.py +0 -0
- {dycw_utilities-0.149.1 → dycw_utilities-0.149.3}/src/utilities/optuna.py +0 -0
- {dycw_utilities-0.149.1 → dycw_utilities-0.149.3}/src/utilities/orjson.py +0 -0
- {dycw_utilities-0.149.1 → dycw_utilities-0.149.3}/src/utilities/os.py +0 -0
- {dycw_utilities-0.149.1 → dycw_utilities-0.149.3}/src/utilities/parse.py +0 -0
- {dycw_utilities-0.149.1 → dycw_utilities-0.149.3}/src/utilities/pathlib.py +0 -0
- {dycw_utilities-0.149.1 → dycw_utilities-0.149.3}/src/utilities/period.py +0 -0
- {dycw_utilities-0.149.1 → dycw_utilities-0.149.3}/src/utilities/pickle.py +0 -0
- {dycw_utilities-0.149.1 → dycw_utilities-0.149.3}/src/utilities/platform.py +0 -0
- {dycw_utilities-0.149.1 → dycw_utilities-0.149.3}/src/utilities/polars.py +0 -0
- {dycw_utilities-0.149.1 → dycw_utilities-0.149.3}/src/utilities/polars_ols.py +0 -0
- {dycw_utilities-0.149.1 → dycw_utilities-0.149.3}/src/utilities/pottery.py +0 -0
- {dycw_utilities-0.149.1 → dycw_utilities-0.149.3}/src/utilities/pqdm.py +0 -0
- {dycw_utilities-0.149.1 → dycw_utilities-0.149.3}/src/utilities/psutil.py +0 -0
- {dycw_utilities-0.149.1 → dycw_utilities-0.149.3}/src/utilities/py.typed +0 -0
- {dycw_utilities-0.149.1 → dycw_utilities-0.149.3}/src/utilities/pyinstrument.py +0 -0
- {dycw_utilities-0.149.1 → dycw_utilities-0.149.3}/src/utilities/pytest.py +0 -0
- {dycw_utilities-0.149.1 → dycw_utilities-0.149.3}/src/utilities/pytest_plugins/__init__.py +0 -0
- {dycw_utilities-0.149.1 → dycw_utilities-0.149.3}/src/utilities/pytest_plugins/pytest_randomly.py +0 -0
- {dycw_utilities-0.149.1 → dycw_utilities-0.149.3}/src/utilities/pytest_plugins/pytest_regressions.py +0 -0
- {dycw_utilities-0.149.1 → dycw_utilities-0.149.3}/src/utilities/pytest_regressions.py +0 -0
- {dycw_utilities-0.149.1 → dycw_utilities-0.149.3}/src/utilities/random.py +0 -0
- {dycw_utilities-0.149.1 → dycw_utilities-0.149.3}/src/utilities/re.py +0 -0
- {dycw_utilities-0.149.1 → dycw_utilities-0.149.3}/src/utilities/redis.py +0 -0
- {dycw_utilities-0.149.1 → dycw_utilities-0.149.3}/src/utilities/reprlib.py +0 -0
- {dycw_utilities-0.149.1 → dycw_utilities-0.149.3}/src/utilities/scipy.py +0 -0
- {dycw_utilities-0.149.1 → dycw_utilities-0.149.3}/src/utilities/sentinel.py +0 -0
- {dycw_utilities-0.149.1 → dycw_utilities-0.149.3}/src/utilities/shelve.py +0 -0
- {dycw_utilities-0.149.1 → dycw_utilities-0.149.3}/src/utilities/slack_sdk.py +0 -0
- {dycw_utilities-0.149.1 → dycw_utilities-0.149.3}/src/utilities/socket.py +0 -0
- {dycw_utilities-0.149.1 → dycw_utilities-0.149.3}/src/utilities/sqlalchemy.py +0 -0
- {dycw_utilities-0.149.1 → dycw_utilities-0.149.3}/src/utilities/sqlalchemy_polars.py +0 -0
- {dycw_utilities-0.149.1 → dycw_utilities-0.149.3}/src/utilities/statsmodels.py +0 -0
- {dycw_utilities-0.149.1 → dycw_utilities-0.149.3}/src/utilities/string.py +0 -0
- {dycw_utilities-0.149.1 → dycw_utilities-0.149.3}/src/utilities/tempfile.py +0 -0
- {dycw_utilities-0.149.1 → dycw_utilities-0.149.3}/src/utilities/text.py +0 -0
- {dycw_utilities-0.149.1 → dycw_utilities-0.149.3}/src/utilities/threading.py +0 -0
- {dycw_utilities-0.149.1 → dycw_utilities-0.149.3}/src/utilities/timer.py +0 -0
- {dycw_utilities-0.149.1 → dycw_utilities-0.149.3}/src/utilities/traceback.py +0 -0
- {dycw_utilities-0.149.1 → dycw_utilities-0.149.3}/src/utilities/types.py +0 -0
- {dycw_utilities-0.149.1 → dycw_utilities-0.149.3}/src/utilities/typing.py +0 -0
- {dycw_utilities-0.149.1 → dycw_utilities-0.149.3}/src/utilities/tzdata.py +0 -0
- {dycw_utilities-0.149.1 → dycw_utilities-0.149.3}/src/utilities/tzlocal.py +0 -0
- {dycw_utilities-0.149.1 → dycw_utilities-0.149.3}/src/utilities/uuid.py +0 -0
- {dycw_utilities-0.149.1 → dycw_utilities-0.149.3}/src/utilities/version.py +0 -0
- {dycw_utilities-0.149.1 → dycw_utilities-0.149.3}/src/utilities/warnings.py +0 -0
- {dycw_utilities-0.149.1 → dycw_utilities-0.149.3}/src/utilities/whenever.py +0 -0
- {dycw_utilities-0.149.1 → dycw_utilities-0.149.3}/src/utilities/zipfile.py +0 -0
- {dycw_utilities-0.149.1 → dycw_utilities-0.149.3}/src/utilities/zoneinfo.py +0 -0
@@ -102,7 +102,7 @@ dependencies = [
|
|
102
102
|
name = "dycw-utilities"
|
103
103
|
readme = "README.md"
|
104
104
|
requires-python = ">= 3.12"
|
105
|
-
version = "0.149.
|
105
|
+
version = "0.149.3"
|
106
106
|
|
107
107
|
[project.entry-points.pytest11]
|
108
108
|
pytest-randomly = "utilities.pytest_plugins.pytest_randomly"
|
@@ -135,7 +135,7 @@ test = [
|
|
135
135
|
# bump-my-version
|
136
136
|
[tool.bumpversion]
|
137
137
|
allow_dirty = true
|
138
|
-
current_version = "0.149.
|
138
|
+
current_version = "0.149.3"
|
139
139
|
|
140
140
|
[[tool.bumpversion.files]]
|
141
141
|
filename = "src/utilities/__init__.py"
|
@@ -20,11 +20,13 @@ from hypothesis.strategies import (
|
|
20
20
|
ip_addresses,
|
21
21
|
lists,
|
22
22
|
sampled_from,
|
23
|
+
uuids,
|
23
24
|
)
|
24
25
|
from pytest import mark, param
|
25
26
|
|
26
27
|
from utilities.click import (
|
27
28
|
CONTEXT_SETTINGS_HELP_OPTION_NAMES,
|
29
|
+
UUID,
|
28
30
|
Date,
|
29
31
|
DateDelta,
|
30
32
|
DateTimeDelta,
|
@@ -320,6 +322,9 @@ class TestParameters:
|
|
320
322
|
serialize=whenever.TimeDelta.format_common_iso,
|
321
323
|
failable=True,
|
322
324
|
),
|
325
|
+
_Case(
|
326
|
+
param=UUID(), name="uuid", strategy=uuids(), serialize=str, failable=True
|
327
|
+
),
|
323
328
|
_Case(
|
324
329
|
param=YearMonth(),
|
325
330
|
name="year-month",
|
@@ -61,7 +61,10 @@ class TestPGDump:
|
|
61
61
|
@given(
|
62
62
|
url=urls(),
|
63
63
|
path=temp_paths(),
|
64
|
+
format_=sampled_from(get_literal_elements(_PGDumpFormat)),
|
64
65
|
jobs=integers(min_value=0) | none(),
|
66
|
+
data_only=booleans(),
|
67
|
+
clean=booleans(),
|
65
68
|
schemas=lists(text_ascii(min_size=1)) | none(),
|
66
69
|
schemas_exc=lists(text_ascii(min_size=1)) | none(),
|
67
70
|
tables=tables() | none(),
|
@@ -75,7 +78,10 @@ class TestPGDump:
|
|
75
78
|
*,
|
76
79
|
url: URL,
|
77
80
|
path: Path,
|
81
|
+
format_: _PGDumpFormat,
|
78
82
|
jobs: int | None,
|
83
|
+
data_only: bool,
|
84
|
+
clean: bool,
|
79
85
|
schemas: list[str] | None,
|
80
86
|
schemas_exc: list[str] | None,
|
81
87
|
tables: list[Table | str] | None,
|
@@ -87,11 +93,14 @@ class TestPGDump:
|
|
87
93
|
_ = _build_pg_dump(
|
88
94
|
url,
|
89
95
|
path,
|
96
|
+
format_=format_,
|
90
97
|
jobs=jobs,
|
91
|
-
|
92
|
-
|
93
|
-
|
94
|
-
|
98
|
+
data_only=data_only,
|
99
|
+
clean=clean,
|
100
|
+
schema=schemas,
|
101
|
+
schema_exc=schemas_exc,
|
102
|
+
table=tables,
|
103
|
+
table_exc=tables_exc,
|
95
104
|
inserts=inserts,
|
96
105
|
on_conflict_do_nothing=on_conflict_do_nothing,
|
97
106
|
docker=docker,
|
@@ -114,6 +123,7 @@ class TestRestore:
|
|
114
123
|
psql=booleans(),
|
115
124
|
database=text_ascii(min_size=1) | none(),
|
116
125
|
data_only=booleans(),
|
126
|
+
clean=booleans(),
|
117
127
|
jobs=integers(min_value=0) | none(),
|
118
128
|
schemas=lists(text_ascii(min_size=1)) | none(),
|
119
129
|
schemas_exc=lists(text_ascii(min_size=1)) | none(),
|
@@ -128,6 +138,7 @@ class TestRestore:
|
|
128
138
|
psql: bool,
|
129
139
|
database: str | None,
|
130
140
|
data_only: bool,
|
141
|
+
clean: bool,
|
131
142
|
jobs: int | None,
|
132
143
|
schemas: list[str] | None,
|
133
144
|
schemas_exc: list[str] | None,
|
@@ -140,6 +151,7 @@ class TestRestore:
|
|
140
151
|
psql=psql,
|
141
152
|
database=database,
|
142
153
|
data_only=data_only,
|
154
|
+
clean=clean,
|
143
155
|
jobs=jobs,
|
144
156
|
schemas=schemas,
|
145
157
|
schemas_exc=schemas_exc,
|
@@ -3,6 +3,7 @@ from dataclasses import dataclass
|
|
3
3
|
from ipaddress import IPv4Address, IPv6Address
|
4
4
|
from pathlib import Path
|
5
5
|
from typing import Any, ClassVar, assert_never
|
6
|
+
from uuid import UUID
|
6
7
|
|
7
8
|
import typed_settings
|
8
9
|
from hypothesis import given
|
@@ -13,6 +14,7 @@ from hypothesis.strategies import (
|
|
13
14
|
data,
|
14
15
|
ip_addresses,
|
15
16
|
tuples,
|
17
|
+
uuids,
|
16
18
|
)
|
17
19
|
from pytest import mark, param, raises
|
18
20
|
from typed_settings import EnvLoader, FileLoader, TomlFormat
|
@@ -87,6 +89,7 @@ class TestExtendedTSConverter:
|
|
87
89
|
_Case(
|
88
90
|
cls=TimeDelta, strategy=time_deltas(), serialize=TimeDelta.format_common_iso
|
89
91
|
),
|
92
|
+
_Case(cls=UUID, strategy=uuids(), serialize=str),
|
90
93
|
_Case(
|
91
94
|
cls=YearMonth, strategy=year_months(), serialize=YearMonth.format_common_iso
|
92
95
|
),
|
@@ -3,6 +3,7 @@ from __future__ import annotations
|
|
3
3
|
import enum
|
4
4
|
import ipaddress
|
5
5
|
import pathlib
|
6
|
+
import uuid
|
6
7
|
from typing import TYPE_CHECKING, TypedDict, assert_never, override
|
7
8
|
|
8
9
|
import click
|
@@ -329,6 +330,32 @@ class TimeDelta(ParamType):
|
|
329
330
|
assert_never(never)
|
330
331
|
|
331
332
|
|
333
|
+
class UUID(ParamType):
|
334
|
+
"""A UUID-valued parameter."""
|
335
|
+
|
336
|
+
name = "uuid"
|
337
|
+
|
338
|
+
@override
|
339
|
+
def __repr__(self) -> str:
|
340
|
+
return self.name.upper()
|
341
|
+
|
342
|
+
@override
|
343
|
+
def convert(
|
344
|
+
self, value: uuid.UUID | str, param: Parameter | None, ctx: Context | None
|
345
|
+
) -> uuid.UUID:
|
346
|
+
"""Convert a value into the `UUID` type."""
|
347
|
+
match value:
|
348
|
+
case uuid.UUID():
|
349
|
+
return value
|
350
|
+
case str():
|
351
|
+
try:
|
352
|
+
return uuid.UUID(value)
|
353
|
+
except ValueError as error:
|
354
|
+
self.fail(str(error), param, ctx)
|
355
|
+
case _ as never:
|
356
|
+
assert_never(never)
|
357
|
+
|
358
|
+
|
332
359
|
class YearMonth(ParamType):
|
333
360
|
"""A year-month parameter."""
|
334
361
|
|
@@ -561,6 +588,7 @@ def _make_metavar(param: Parameter, desc: str, /) -> str:
|
|
561
588
|
|
562
589
|
__all__ = [
|
563
590
|
"CONTEXT_SETTINGS_HELP_OPTION_NAMES",
|
591
|
+
"UUID",
|
564
592
|
"Date",
|
565
593
|
"DateDelta",
|
566
594
|
"DateTimeDelta",
|
@@ -34,10 +34,12 @@ async def pg_dump(
|
|
34
34
|
*,
|
35
35
|
format_: _PGDumpFormat = "plain",
|
36
36
|
jobs: int | None = None,
|
37
|
-
|
38
|
-
|
39
|
-
|
40
|
-
|
37
|
+
data_only: bool = False,
|
38
|
+
clean: bool = False,
|
39
|
+
schema: MaybeListStr | None = None,
|
40
|
+
schema_exc: MaybeListStr | None = None,
|
41
|
+
table: MaybeSequence[TableOrORMInstOrClass | str] | None = None,
|
42
|
+
table_exc: MaybeSequence[TableOrORMInstOrClass | str] | None = None,
|
41
43
|
inserts: bool = False,
|
42
44
|
on_conflict_do_nothing: bool = False,
|
43
45
|
docker: str | None = None,
|
@@ -52,10 +54,12 @@ async def pg_dump(
|
|
52
54
|
path,
|
53
55
|
format_=format_,
|
54
56
|
jobs=jobs,
|
55
|
-
|
56
|
-
|
57
|
-
|
58
|
-
|
57
|
+
data_only=data_only,
|
58
|
+
clean=clean,
|
59
|
+
schema=schema,
|
60
|
+
schema_exc=schema_exc,
|
61
|
+
table=table,
|
62
|
+
table_exc=table_exc,
|
59
63
|
inserts=inserts,
|
60
64
|
on_conflict_do_nothing=on_conflict_do_nothing,
|
61
65
|
docker=docker,
|
@@ -98,10 +102,12 @@ def _build_pg_dump(
|
|
98
102
|
*,
|
99
103
|
format_: _PGDumpFormat = "plain",
|
100
104
|
jobs: int | None = None,
|
101
|
-
|
102
|
-
|
103
|
-
|
104
|
-
|
105
|
+
data_only: bool = False,
|
106
|
+
clean: bool = False,
|
107
|
+
schema: MaybeListStr | None = None,
|
108
|
+
schema_exc: MaybeListStr | None = None,
|
109
|
+
table: MaybeSequence[TableOrORMInstOrClass | str] | None = None,
|
110
|
+
table_exc: MaybeSequence[TableOrORMInstOrClass | str] | None = None,
|
105
111
|
inserts: bool = False,
|
106
112
|
on_conflict_do_nothing: bool = False,
|
107
113
|
docker: str | None = None,
|
@@ -117,10 +123,9 @@ def _build_pg_dump(
|
|
117
123
|
"--verbose",
|
118
124
|
# output options
|
119
125
|
"--large-objects",
|
120
|
-
"--
|
126
|
+
"--create",
|
121
127
|
"--no-owner",
|
122
128
|
"--no-privileges",
|
123
|
-
"--if-exists",
|
124
129
|
# connection options
|
125
130
|
f"--host={host}",
|
126
131
|
f"--port={port}",
|
@@ -128,15 +133,19 @@ def _build_pg_dump(
|
|
128
133
|
]
|
129
134
|
if (format_ == "directory") and (jobs is not None):
|
130
135
|
parts.append(f"--jobs={jobs}")
|
131
|
-
if
|
132
|
-
parts.
|
133
|
-
if
|
134
|
-
parts.extend([
|
135
|
-
if
|
136
|
-
parts.extend([f"--
|
137
|
-
if
|
136
|
+
if data_only:
|
137
|
+
parts.append("--data-only")
|
138
|
+
if clean:
|
139
|
+
parts.extend(["--clean", "--if-exists"])
|
140
|
+
if schema is not None:
|
141
|
+
parts.extend([f"--schema={s}" for s in always_iterable(schema)])
|
142
|
+
if schema_exc is not None:
|
143
|
+
parts.extend([f"--exclude-schema={s}" for s in always_iterable(schema_exc)])
|
144
|
+
if table is not None:
|
145
|
+
parts.extend([f"--table={_get_table_name(t)}" for t in always_iterable(table)])
|
146
|
+
if table_exc is not None:
|
138
147
|
parts.extend([
|
139
|
-
f"--exclude-table={_get_table_name(t)}" for t in always_iterable(
|
148
|
+
f"--exclude-table={_get_table_name(t)}" for t in always_iterable(table_exc)
|
140
149
|
])
|
141
150
|
if inserts:
|
142
151
|
parts.append("--inserts")
|
@@ -239,6 +248,7 @@ def _build_pg_restore_or_psql(
|
|
239
248
|
psql: bool = False,
|
240
249
|
database: str | None = None,
|
241
250
|
data_only: bool = False,
|
251
|
+
clean: bool = False,
|
242
252
|
jobs: int | None = None,
|
243
253
|
schemas: MaybeListStr | None = None,
|
244
254
|
schemas_exc: MaybeListStr | None = None,
|
@@ -253,6 +263,7 @@ def _build_pg_restore_or_psql(
|
|
253
263
|
path,
|
254
264
|
database=database,
|
255
265
|
data_only=data_only,
|
266
|
+
clean=clean,
|
256
267
|
jobs=jobs,
|
257
268
|
schemas=schemas,
|
258
269
|
schemas_exc=schemas_exc,
|
@@ -268,6 +279,7 @@ def _build_pg_restore(
|
|
268
279
|
*,
|
269
280
|
database: str | None = None,
|
270
281
|
data_only: bool = False,
|
282
|
+
clean: bool = False,
|
271
283
|
jobs: int | None = None,
|
272
284
|
schemas: MaybeListStr | None = None,
|
273
285
|
schemas_exc: MaybeListStr | None = None,
|
@@ -293,7 +305,7 @@ def _build_pg_restore(
|
|
293
305
|
]
|
294
306
|
if data_only:
|
295
307
|
parts.append("--data-only")
|
296
|
-
|
308
|
+
if clean:
|
297
309
|
parts.extend(["--clean", "--if-exists"])
|
298
310
|
if jobs is not None:
|
299
311
|
parts.append(f"--jobs={jobs}")
|
@@ -7,6 +7,7 @@ from os import environ
|
|
7
7
|
from pathlib import Path
|
8
8
|
from re import search
|
9
9
|
from typing import TYPE_CHECKING, Any, assert_never, override
|
10
|
+
from uuid import UUID
|
10
11
|
|
11
12
|
import typed_settings
|
12
13
|
from typed_settings import EnvLoader, FileLoader, find
|
@@ -62,6 +63,7 @@ class ExtendedTSConverter(TSConverter):
|
|
62
63
|
(PlainDateTime, PlainDateTime.parse_common_iso),
|
63
64
|
(Time, Time.parse_common_iso),
|
64
65
|
(TimeDelta, TimeDelta.parse_common_iso),
|
66
|
+
(UUID, UUID),
|
65
67
|
(YearMonth, YearMonth.parse_common_iso),
|
66
68
|
(ZonedDateTime, ZonedDateTime.parse_common_iso),
|
67
69
|
]
|
File without changes
|
File without changes
|
File without changes
|
File without changes
|
File without changes
|
File without changes
|
{dycw_utilities-0.149.1 → dycw_utilities-0.149.3}/src/tests/modules/package_missing/__init__.py
RENAMED
File without changes
|
{dycw_utilities-0.149.1 → dycw_utilities-0.149.3}/src/tests/modules/package_missing/module.py
RENAMED
File without changes
|
{dycw_utilities-0.149.1 → dycw_utilities-0.149.3}/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.149.1 → dycw_utilities-0.149.3}/src/tests/modules/package_without/__init__.py
RENAMED
File without changes
|
{dycw_utilities-0.149.1 → dycw_utilities-0.149.3}/src/tests/modules/package_without/module_1.py
RENAMED
File without changes
|
{dycw_utilities-0.149.1 → dycw_utilities-0.149.3}/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
|
{dycw_utilities-0.149.1 → dycw_utilities-0.149.3}/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
|
{dycw_utilities-0.149.1 → dycw_utilities-0.149.3}/src/utilities/pytest_plugins/pytest_randomly.py
RENAMED
File without changes
|
{dycw_utilities-0.149.1 → dycw_utilities-0.149.3}/src/utilities/pytest_plugins/pytest_regressions.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
|