dycw-utilities 0.166.13__tar.gz → 0.166.14__tar.gz
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- {dycw_utilities-0.166.13 → dycw_utilities-0.166.14}/PKG-INFO +2 -2
- {dycw_utilities-0.166.13 → dycw_utilities-0.166.14}/pyproject.toml +3 -3
- {dycw_utilities-0.166.13 → dycw_utilities-0.166.14}/src/tests/conftest.py +3 -3
- dycw_utilities-0.166.14/src/tests/regressions/test_pytest_regressions/TestMultipleRegressionFixtures__test_main__obj.json +5 -0
- dycw_utilities-0.166.14/src/tests/regressions/test_pytest_regressions/TestMultipleRegressionFixtures__test_main__series.json +71 -0
- dycw_utilities-0.166.14/src/tests/regressions/test_pytest_regressions/TestOrjsonRegressionFixture__test_dataclass_int.json +5 -0
- dycw_utilities-0.166.14/src/tests/regressions/test_pytest_regressions/TestOrjsonRegressionFixture__test_dataclass_literal__false.json +5 -0
- dycw_utilities-0.166.14/src/tests/regressions/test_pytest_regressions/TestOrjsonRegressionFixture__test_dataclass_literal__true.json +5 -0
- dycw_utilities-0.166.14/src/tests/regressions/test_pytest_regressions/TestOrjsonRegressionFixture__test_dataclass_nested.json +9 -0
- dycw_utilities-0.166.14/src/tests/regressions/test_pytest_regressions/TestPolarsRegressionFixture__test_dataframe.json +74 -0
- dycw_utilities-0.166.14/src/tests/regressions/test_pytest_regressions/TestPolarsRegressionFixture__test_series.json +71 -0
- {dycw_utilities-0.166.13 → dycw_utilities-0.166.14}/src/tests/test_hypothesis.py +5 -4
- {dycw_utilities-0.166.13 → dycw_utilities-0.166.14}/src/tests/test_iterables.py +1 -1
- {dycw_utilities-0.166.13 → dycw_utilities-0.166.14}/src/tests/test_pytest.py +4 -6
- {dycw_utilities-0.166.13 → dycw_utilities-0.166.14}/src/tests/test_re.py +1 -5
- {dycw_utilities-0.166.13 → dycw_utilities-0.166.14}/src/tests/test_redis.py +6 -6
- {dycw_utilities-0.166.13 → dycw_utilities-0.166.14}/src/tests/test_text.py +18 -18
- {dycw_utilities-0.166.13 → dycw_utilities-0.166.14}/src/utilities/__init__.py +1 -1
- {dycw_utilities-0.166.13 → dycw_utilities-0.166.14}/src/utilities/altair.py +1 -3
- {dycw_utilities-0.166.13 → dycw_utilities-0.166.14}/src/utilities/click.py +4 -4
- {dycw_utilities-0.166.13 → dycw_utilities-0.166.14}/src/utilities/hypothesis.py +3 -7
- {dycw_utilities-0.166.13 → dycw_utilities-0.166.14}/src/utilities/libcst.py +1 -1
- {dycw_utilities-0.166.13 → dycw_utilities-0.166.14}/src/utilities/polars.py +1 -1
- {dycw_utilities-0.166.13 → dycw_utilities-0.166.14}/src/utilities/pytest.py +3 -3
- {dycw_utilities-0.166.13 → dycw_utilities-0.166.14}/src/utilities/sqlalchemy.py +1 -1
- {dycw_utilities-0.166.13 → dycw_utilities-0.166.14}/src/utilities/text.py +6 -6
- {dycw_utilities-0.166.13 → dycw_utilities-0.166.14}/src/utilities/traceback.py +2 -2
- dycw_utilities-0.166.13/src/tests/regressions/test_pytest_regressions/TestMultipleRegressionFixtures__test_main__obj.json +0 -1
- dycw_utilities-0.166.13/src/tests/regressions/test_pytest_regressions/TestMultipleRegressionFixtures__test_main__series.json +0 -26
- dycw_utilities-0.166.13/src/tests/regressions/test_pytest_regressions/TestOrjsonRegressionFixture__test_dataclass_int.json +0 -1
- dycw_utilities-0.166.13/src/tests/regressions/test_pytest_regressions/TestOrjsonRegressionFixture__test_dataclass_literal__false.json +0 -1
- dycw_utilities-0.166.13/src/tests/regressions/test_pytest_regressions/TestOrjsonRegressionFixture__test_dataclass_literal__true.json +0 -1
- dycw_utilities-0.166.13/src/tests/regressions/test_pytest_regressions/TestOrjsonRegressionFixture__test_dataclass_nested.json +0 -5
- dycw_utilities-0.166.13/src/tests/regressions/test_pytest_regressions/TestPolarsRegressionFixture__test_dataframe.json +0 -25
- dycw_utilities-0.166.13/src/tests/regressions/test_pytest_regressions/TestPolarsRegressionFixture__test_series.json +0 -26
- {dycw_utilities-0.166.13 → dycw_utilities-0.166.14}/.gitignore +0 -0
- {dycw_utilities-0.166.13 → dycw_utilities-0.166.14}/LICENSE +0 -0
- {dycw_utilities-0.166.13 → dycw_utilities-0.166.14}/README.md +0 -0
- {dycw_utilities-0.166.13 → dycw_utilities-0.166.14}/src/tests/__init__.py +0 -0
- {dycw_utilities-0.166.13 → dycw_utilities-0.166.14}/src/tests/modules/__init__.py +0 -0
- {dycw_utilities-0.166.13 → dycw_utilities-0.166.14}/src/tests/modules/package_missing/__init__.py +0 -0
- {dycw_utilities-0.166.13 → dycw_utilities-0.166.14}/src/tests/modules/package_missing/module.py +0 -0
- {dycw_utilities-0.166.13 → dycw_utilities-0.166.14}/src/tests/modules/package_with/__init__.py +0 -0
- {dycw_utilities-0.166.13 → dycw_utilities-0.166.14}/src/tests/modules/package_with/outer_1.py +0 -0
- {dycw_utilities-0.166.13 → dycw_utilities-0.166.14}/src/tests/modules/package_with/outer_2.py +0 -0
- {dycw_utilities-0.166.13 → dycw_utilities-0.166.14}/src/tests/modules/package_with/subpackage/__init__.py +0 -0
- {dycw_utilities-0.166.13 → dycw_utilities-0.166.14}/src/tests/modules/package_with/subpackage/inner_1.py +0 -0
- {dycw_utilities-0.166.13 → dycw_utilities-0.166.14}/src/tests/modules/package_with/subpackage/inner_2.py +0 -0
- {dycw_utilities-0.166.13 → dycw_utilities-0.166.14}/src/tests/modules/package_with/subpackage/inner_3.py +0 -0
- {dycw_utilities-0.166.13 → dycw_utilities-0.166.14}/src/tests/modules/package_without/__init__.py +0 -0
- {dycw_utilities-0.166.13 → dycw_utilities-0.166.14}/src/tests/modules/package_without/module_1.py +0 -0
- {dycw_utilities-0.166.13 → dycw_utilities-0.166.14}/src/tests/modules/package_without/module_2.py +0 -0
- {dycw_utilities-0.166.13 → dycw_utilities-0.166.14}/src/tests/modules/standalone.py +0 -0
- {dycw_utilities-0.166.13 → dycw_utilities-0.166.14}/src/tests/modules/with_imports.py +0 -0
- {dycw_utilities-0.166.13 → dycw_utilities-0.166.14}/src/tests/test_aeventkit.py +0 -0
- {dycw_utilities-0.166.13 → dycw_utilities-0.166.14}/src/tests/test_altair.py +0 -0
- {dycw_utilities-0.166.13 → dycw_utilities-0.166.14}/src/tests/test_asyncio.py +0 -0
- {dycw_utilities-0.166.13 → dycw_utilities-0.166.14}/src/tests/test_atomicwrites.py +0 -0
- {dycw_utilities-0.166.13 → dycw_utilities-0.166.14}/src/tests/test_atools.py +0 -0
- {dycw_utilities-0.166.13 → dycw_utilities-0.166.14}/src/tests/test_cachetools.py +0 -0
- {dycw_utilities-0.166.13 → dycw_utilities-0.166.14}/src/tests/test_click.py +0 -0
- {dycw_utilities-0.166.13 → dycw_utilities-0.166.14}/src/tests/test_concurrent.py +0 -0
- {dycw_utilities-0.166.13 → dycw_utilities-0.166.14}/src/tests/test_contextlib.py +0 -0
- {dycw_utilities-0.166.13 → dycw_utilities-0.166.14}/src/tests/test_contextvars.py +0 -0
- {dycw_utilities-0.166.13 → dycw_utilities-0.166.14}/src/tests/test_cryptography.py +0 -0
- {dycw_utilities-0.166.13 → dycw_utilities-0.166.14}/src/tests/test_cvxpy.py +0 -0
- {dycw_utilities-0.166.13 → dycw_utilities-0.166.14}/src/tests/test_dataclasses.py +0 -0
- {dycw_utilities-0.166.13 → dycw_utilities-0.166.14}/src/tests/test_enum.py +0 -0
- {dycw_utilities-0.166.13 → dycw_utilities-0.166.14}/src/tests/test_errors.py +0 -0
- {dycw_utilities-0.166.13 → dycw_utilities-0.166.14}/src/tests/test_fastapi.py +0 -0
- {dycw_utilities-0.166.13 → dycw_utilities-0.166.14}/src/tests/test_fpdf2.py +0 -0
- {dycw_utilities-0.166.13 → dycw_utilities-0.166.14}/src/tests/test_functions.py +0 -0
- {dycw_utilities-0.166.13 → dycw_utilities-0.166.14}/src/tests/test_functools.py +0 -0
- {dycw_utilities-0.166.13 → dycw_utilities-0.166.14}/src/tests/test_getpass.py +0 -0
- {dycw_utilities-0.166.13 → dycw_utilities-0.166.14}/src/tests/test_git.py +0 -0
- {dycw_utilities-0.166.13 → dycw_utilities-0.166.14}/src/tests/test_gzip.py +0 -0
- {dycw_utilities-0.166.13 → dycw_utilities-0.166.14}/src/tests/test_hashlib.py +0 -0
- {dycw_utilities-0.166.13 → dycw_utilities-0.166.14}/src/tests/test_http.py +0 -0
- {dycw_utilities-0.166.13 → dycw_utilities-0.166.14}/src/tests/test_importlib.py +0 -0
- {dycw_utilities-0.166.13 → dycw_utilities-0.166.14}/src/tests/test_inflect.py +0 -0
- {dycw_utilities-0.166.13 → dycw_utilities-0.166.14}/src/tests/test_ipython.py +0 -0
- {dycw_utilities-0.166.13 → dycw_utilities-0.166.14}/src/tests/test_json.py +0 -0
- {dycw_utilities-0.166.13 → dycw_utilities-0.166.14}/src/tests/test_jupyter.py +0 -0
- {dycw_utilities-0.166.13 → dycw_utilities-0.166.14}/src/tests/test_libcst.py +0 -0
- {dycw_utilities-0.166.13 → dycw_utilities-0.166.14}/src/tests/test_lightweight_charts.py +0 -0
- {dycw_utilities-0.166.13 → dycw_utilities-0.166.14}/src/tests/test_logging.py +0 -0
- {dycw_utilities-0.166.13 → dycw_utilities-0.166.14}/src/tests/test_math.py +0 -0
- {dycw_utilities-0.166.13 → dycw_utilities-0.166.14}/src/tests/test_memory_profiler.py +0 -0
- {dycw_utilities-0.166.13 → dycw_utilities-0.166.14}/src/tests/test_modules.py +0 -0
- {dycw_utilities-0.166.13 → dycw_utilities-0.166.14}/src/tests/test_more_itertools.py +0 -0
- {dycw_utilities-0.166.13 → dycw_utilities-0.166.14}/src/tests/test_numpy.py +0 -0
- {dycw_utilities-0.166.13 → dycw_utilities-0.166.14}/src/tests/test_objects/__init__.py +0 -0
- {dycw_utilities-0.166.13 → dycw_utilities-0.166.14}/src/tests/test_objects/objects.py +0 -0
- {dycw_utilities-0.166.13 → dycw_utilities-0.166.14}/src/tests/test_operator.py +0 -0
- {dycw_utilities-0.166.13 → dycw_utilities-0.166.14}/src/tests/test_optuna.py +0 -0
- {dycw_utilities-0.166.13 → dycw_utilities-0.166.14}/src/tests/test_orjson.py +0 -0
- {dycw_utilities-0.166.13 → dycw_utilities-0.166.14}/src/tests/test_os.py +0 -0
- {dycw_utilities-0.166.13 → dycw_utilities-0.166.14}/src/tests/test_parse.py +0 -0
- {dycw_utilities-0.166.13 → dycw_utilities-0.166.14}/src/tests/test_pathlib.py +0 -0
- {dycw_utilities-0.166.13 → dycw_utilities-0.166.14}/src/tests/test_pickle.py +0 -0
- {dycw_utilities-0.166.13 → dycw_utilities-0.166.14}/src/tests/test_platform.py +0 -0
- {dycw_utilities-0.166.13 → dycw_utilities-0.166.14}/src/tests/test_polars.py +0 -0
- {dycw_utilities-0.166.13 → dycw_utilities-0.166.14}/src/tests/test_polars_ols.py +0 -0
- {dycw_utilities-0.166.13 → dycw_utilities-0.166.14}/src/tests/test_postgres.py +0 -0
- {dycw_utilities-0.166.13 → dycw_utilities-0.166.14}/src/tests/test_pottery.py +0 -0
- {dycw_utilities-0.166.13 → dycw_utilities-0.166.14}/src/tests/test_pqdm.py +0 -0
- {dycw_utilities-0.166.13 → dycw_utilities-0.166.14}/src/tests/test_psutil.py +0 -0
- {dycw_utilities-0.166.13 → dycw_utilities-0.166.14}/src/tests/test_pydantic_settings.py +0 -0
- {dycw_utilities-0.166.13 → dycw_utilities-0.166.14}/src/tests/test_pydantic_settings_sops.py +0 -0
- {dycw_utilities-0.166.13 → dycw_utilities-0.166.14}/src/tests/test_pyinstrument.py +0 -0
- {dycw_utilities-0.166.13 → dycw_utilities-0.166.14}/src/tests/test_pytest_randomly.py +0 -0
- {dycw_utilities-0.166.13 → dycw_utilities-0.166.14}/src/tests/test_pytest_regressions.py +0 -0
- {dycw_utilities-0.166.13 → dycw_utilities-0.166.14}/src/tests/test_random.py +0 -0
- {dycw_utilities-0.166.13 → dycw_utilities-0.166.14}/src/tests/test_reprlib.py +0 -0
- {dycw_utilities-0.166.13 → dycw_utilities-0.166.14}/src/tests/test_scipy.py +0 -0
- {dycw_utilities-0.166.13 → dycw_utilities-0.166.14}/src/tests/test_sentinel.py +0 -0
- {dycw_utilities-0.166.13 → dycw_utilities-0.166.14}/src/tests/test_shelve.py +0 -0
- {dycw_utilities-0.166.13 → dycw_utilities-0.166.14}/src/tests/test_slack_sdk.py +0 -0
- {dycw_utilities-0.166.13 → dycw_utilities-0.166.14}/src/tests/test_socket.py +0 -0
- {dycw_utilities-0.166.13 → dycw_utilities-0.166.14}/src/tests/test_sqlalchemy.py +0 -0
- {dycw_utilities-0.166.13 → dycw_utilities-0.166.14}/src/tests/test_sqlalchemy_polars.py +0 -0
- {dycw_utilities-0.166.13 → dycw_utilities-0.166.14}/src/tests/test_statsmodels.py +0 -0
- {dycw_utilities-0.166.13 → dycw_utilities-0.166.14}/src/tests/test_string.py +0 -0
- {dycw_utilities-0.166.13 → dycw_utilities-0.166.14}/src/tests/test_tempfile.py +0 -0
- {dycw_utilities-0.166.13 → dycw_utilities-0.166.14}/src/tests/test_testbook.py +0 -0
- {dycw_utilities-0.166.13 → dycw_utilities-0.166.14}/src/tests/test_threading.py +0 -0
- {dycw_utilities-0.166.13 → dycw_utilities-0.166.14}/src/tests/test_timer.py +0 -0
- {dycw_utilities-0.166.13 → dycw_utilities-0.166.14}/src/tests/test_traceback.py +0 -0
- {dycw_utilities-0.166.13 → dycw_utilities-0.166.14}/src/tests/test_typed_settings.py +0 -0
- {dycw_utilities-0.166.13 → dycw_utilities-0.166.14}/src/tests/test_types.py +0 -0
- {dycw_utilities-0.166.13 → dycw_utilities-0.166.14}/src/tests/test_typing.py +0 -0
- {dycw_utilities-0.166.13 → dycw_utilities-0.166.14}/src/tests/test_typing_funcs/__init__.py +0 -0
- {dycw_utilities-0.166.13 → dycw_utilities-0.166.14}/src/tests/test_typing_funcs/no_future.py +0 -0
- {dycw_utilities-0.166.13 → dycw_utilities-0.166.14}/src/tests/test_typing_funcs/with_future.py +0 -0
- {dycw_utilities-0.166.13 → dycw_utilities-0.166.14}/src/tests/test_tzdata.py +0 -0
- {dycw_utilities-0.166.13 → dycw_utilities-0.166.14}/src/tests/test_tzlocal.py +0 -0
- {dycw_utilities-0.166.13 → dycw_utilities-0.166.14}/src/tests/test_uuid.py +0 -0
- {dycw_utilities-0.166.13 → dycw_utilities-0.166.14}/src/tests/test_version.py +0 -0
- {dycw_utilities-0.166.13 → dycw_utilities-0.166.14}/src/tests/test_warnings.py +0 -0
- {dycw_utilities-0.166.13 → dycw_utilities-0.166.14}/src/tests/test_whenever.py +0 -0
- {dycw_utilities-0.166.13 → dycw_utilities-0.166.14}/src/tests/test_zipfile.py +0 -0
- {dycw_utilities-0.166.13 → dycw_utilities-0.166.14}/src/tests/test_zoneinfo.py +0 -0
- {dycw_utilities-0.166.13 → dycw_utilities-0.166.14}/src/utilities/aeventkit.py +0 -0
- {dycw_utilities-0.166.13 → dycw_utilities-0.166.14}/src/utilities/asyncio.py +0 -0
- {dycw_utilities-0.166.13 → dycw_utilities-0.166.14}/src/utilities/atomicwrites.py +0 -0
- {dycw_utilities-0.166.13 → dycw_utilities-0.166.14}/src/utilities/atools.py +0 -0
- {dycw_utilities-0.166.13 → dycw_utilities-0.166.14}/src/utilities/cachetools.py +0 -0
- {dycw_utilities-0.166.13 → dycw_utilities-0.166.14}/src/utilities/concurrent.py +0 -0
- {dycw_utilities-0.166.13 → dycw_utilities-0.166.14}/src/utilities/contextlib.py +0 -0
- {dycw_utilities-0.166.13 → dycw_utilities-0.166.14}/src/utilities/contextvars.py +0 -0
- {dycw_utilities-0.166.13 → dycw_utilities-0.166.14}/src/utilities/cryptography.py +0 -0
- {dycw_utilities-0.166.13 → dycw_utilities-0.166.14}/src/utilities/cvxpy.py +0 -0
- {dycw_utilities-0.166.13 → dycw_utilities-0.166.14}/src/utilities/dataclasses.py +0 -0
- {dycw_utilities-0.166.13 → dycw_utilities-0.166.14}/src/utilities/enum.py +0 -0
- {dycw_utilities-0.166.13 → dycw_utilities-0.166.14}/src/utilities/errors.py +0 -0
- {dycw_utilities-0.166.13 → dycw_utilities-0.166.14}/src/utilities/fastapi.py +0 -0
- {dycw_utilities-0.166.13 → dycw_utilities-0.166.14}/src/utilities/fpdf2.py +0 -0
- {dycw_utilities-0.166.13 → dycw_utilities-0.166.14}/src/utilities/functions.py +0 -0
- {dycw_utilities-0.166.13 → dycw_utilities-0.166.14}/src/utilities/functools.py +0 -0
- {dycw_utilities-0.166.13 → dycw_utilities-0.166.14}/src/utilities/getpass.py +0 -0
- {dycw_utilities-0.166.13 → dycw_utilities-0.166.14}/src/utilities/git.py +0 -0
- {dycw_utilities-0.166.13 → dycw_utilities-0.166.14}/src/utilities/gzip.py +0 -0
- {dycw_utilities-0.166.13 → dycw_utilities-0.166.14}/src/utilities/hashlib.py +0 -0
- {dycw_utilities-0.166.13 → dycw_utilities-0.166.14}/src/utilities/http.py +0 -0
- {dycw_utilities-0.166.13 → dycw_utilities-0.166.14}/src/utilities/importlib.py +0 -0
- {dycw_utilities-0.166.13 → dycw_utilities-0.166.14}/src/utilities/inflect.py +0 -0
- {dycw_utilities-0.166.13 → dycw_utilities-0.166.14}/src/utilities/ipython.py +0 -0
- {dycw_utilities-0.166.13 → dycw_utilities-0.166.14}/src/utilities/iterables.py +0 -0
- {dycw_utilities-0.166.13 → dycw_utilities-0.166.14}/src/utilities/json.py +0 -0
- {dycw_utilities-0.166.13 → dycw_utilities-0.166.14}/src/utilities/jupyter.py +0 -0
- {dycw_utilities-0.166.13 → dycw_utilities-0.166.14}/src/utilities/lightweight_charts.py +0 -0
- {dycw_utilities-0.166.13 → dycw_utilities-0.166.14}/src/utilities/logging.py +0 -0
- {dycw_utilities-0.166.13 → dycw_utilities-0.166.14}/src/utilities/math.py +0 -0
- {dycw_utilities-0.166.13 → dycw_utilities-0.166.14}/src/utilities/memory_profiler.py +0 -0
- {dycw_utilities-0.166.13 → dycw_utilities-0.166.14}/src/utilities/modules.py +0 -0
- {dycw_utilities-0.166.13 → dycw_utilities-0.166.14}/src/utilities/more_itertools.py +0 -0
- {dycw_utilities-0.166.13 → dycw_utilities-0.166.14}/src/utilities/numpy.py +0 -0
- {dycw_utilities-0.166.13 → dycw_utilities-0.166.14}/src/utilities/operator.py +0 -0
- {dycw_utilities-0.166.13 → dycw_utilities-0.166.14}/src/utilities/optuna.py +0 -0
- {dycw_utilities-0.166.13 → dycw_utilities-0.166.14}/src/utilities/orjson.py +0 -0
- {dycw_utilities-0.166.13 → dycw_utilities-0.166.14}/src/utilities/os.py +0 -0
- {dycw_utilities-0.166.13 → dycw_utilities-0.166.14}/src/utilities/parse.py +0 -0
- {dycw_utilities-0.166.13 → dycw_utilities-0.166.14}/src/utilities/pathlib.py +0 -0
- {dycw_utilities-0.166.13 → dycw_utilities-0.166.14}/src/utilities/pickle.py +0 -0
- {dycw_utilities-0.166.13 → dycw_utilities-0.166.14}/src/utilities/platform.py +0 -0
- {dycw_utilities-0.166.13 → dycw_utilities-0.166.14}/src/utilities/polars_ols.py +0 -0
- {dycw_utilities-0.166.13 → dycw_utilities-0.166.14}/src/utilities/postgres.py +0 -0
- {dycw_utilities-0.166.13 → dycw_utilities-0.166.14}/src/utilities/pottery.py +0 -0
- {dycw_utilities-0.166.13 → dycw_utilities-0.166.14}/src/utilities/pqdm.py +0 -0
- {dycw_utilities-0.166.13 → dycw_utilities-0.166.14}/src/utilities/psutil.py +0 -0
- {dycw_utilities-0.166.13 → dycw_utilities-0.166.14}/src/utilities/py.typed +0 -0
- {dycw_utilities-0.166.13 → dycw_utilities-0.166.14}/src/utilities/pydantic_settings.py +0 -0
- {dycw_utilities-0.166.13 → dycw_utilities-0.166.14}/src/utilities/pydantic_settings_sops.py +0 -0
- {dycw_utilities-0.166.13 → dycw_utilities-0.166.14}/src/utilities/pyinstrument.py +0 -0
- {dycw_utilities-0.166.13 → dycw_utilities-0.166.14}/src/utilities/pytest_plugins/__init__.py +0 -0
- {dycw_utilities-0.166.13 → dycw_utilities-0.166.14}/src/utilities/pytest_plugins/pytest_randomly.py +0 -0
- {dycw_utilities-0.166.13 → dycw_utilities-0.166.14}/src/utilities/pytest_plugins/pytest_regressions.py +0 -0
- {dycw_utilities-0.166.13 → dycw_utilities-0.166.14}/src/utilities/pytest_regressions.py +0 -0
- {dycw_utilities-0.166.13 → dycw_utilities-0.166.14}/src/utilities/random.py +0 -0
- {dycw_utilities-0.166.13 → dycw_utilities-0.166.14}/src/utilities/re.py +0 -0
- {dycw_utilities-0.166.13 → dycw_utilities-0.166.14}/src/utilities/redis.py +0 -0
- {dycw_utilities-0.166.13 → dycw_utilities-0.166.14}/src/utilities/reprlib.py +0 -0
- {dycw_utilities-0.166.13 → dycw_utilities-0.166.14}/src/utilities/scipy.py +0 -0
- {dycw_utilities-0.166.13 → dycw_utilities-0.166.14}/src/utilities/sentinel.py +0 -0
- {dycw_utilities-0.166.13 → dycw_utilities-0.166.14}/src/utilities/shelve.py +0 -0
- {dycw_utilities-0.166.13 → dycw_utilities-0.166.14}/src/utilities/slack_sdk.py +0 -0
- {dycw_utilities-0.166.13 → dycw_utilities-0.166.14}/src/utilities/socket.py +0 -0
- {dycw_utilities-0.166.13 → dycw_utilities-0.166.14}/src/utilities/sqlalchemy_polars.py +0 -0
- {dycw_utilities-0.166.13 → dycw_utilities-0.166.14}/src/utilities/statsmodels.py +0 -0
- {dycw_utilities-0.166.13 → dycw_utilities-0.166.14}/src/utilities/string.py +0 -0
- {dycw_utilities-0.166.13 → dycw_utilities-0.166.14}/src/utilities/tempfile.py +0 -0
- {dycw_utilities-0.166.13 → dycw_utilities-0.166.14}/src/utilities/testbook.py +0 -0
- {dycw_utilities-0.166.13 → dycw_utilities-0.166.14}/src/utilities/threading.py +0 -0
- {dycw_utilities-0.166.13 → dycw_utilities-0.166.14}/src/utilities/timer.py +0 -0
- {dycw_utilities-0.166.13 → dycw_utilities-0.166.14}/src/utilities/typed_settings.py +0 -0
- {dycw_utilities-0.166.13 → dycw_utilities-0.166.14}/src/utilities/types.py +0 -0
- {dycw_utilities-0.166.13 → dycw_utilities-0.166.14}/src/utilities/typing.py +0 -0
- {dycw_utilities-0.166.13 → dycw_utilities-0.166.14}/src/utilities/tzdata.py +0 -0
- {dycw_utilities-0.166.13 → dycw_utilities-0.166.14}/src/utilities/tzlocal.py +0 -0
- {dycw_utilities-0.166.13 → dycw_utilities-0.166.14}/src/utilities/uuid.py +0 -0
- {dycw_utilities-0.166.13 → dycw_utilities-0.166.14}/src/utilities/version.py +0 -0
- {dycw_utilities-0.166.13 → dycw_utilities-0.166.14}/src/utilities/warnings.py +0 -0
- {dycw_utilities-0.166.13 → dycw_utilities-0.166.14}/src/utilities/whenever.py +0 -0
- {dycw_utilities-0.166.13 → dycw_utilities-0.166.14}/src/utilities/zipfile.py +0 -0
- {dycw_utilities-0.166.13 → dycw_utilities-0.166.14}/src/utilities/zoneinfo.py +0 -0
@@ -1,6 +1,6 @@
|
|
1
1
|
Metadata-Version: 2.4
|
2
2
|
Name: dycw-utilities
|
3
|
-
Version: 0.166.
|
3
|
+
Version: 0.166.14
|
4
4
|
Author-email: Derek Wan <d.wan@icloud.com>
|
5
5
|
License-File: LICENSE
|
6
6
|
Requires-Python: >=3.12
|
@@ -20,7 +20,7 @@ Requires-Dist: pytest-lazy-fixtures<1.4,>=1.3.4; extra == 'test'
|
|
20
20
|
Requires-Dist: pytest-randomly<3.17,>=3.16.0; extra == 'test'
|
21
21
|
Requires-Dist: pytest-regressions<2.9,>=2.8.2; extra == 'test'
|
22
22
|
Requires-Dist: pytest-repeat<0.10,>=0.9.4; extra == 'test'
|
23
|
-
Requires-Dist: pytest-rerunfailures<16,>=
|
23
|
+
Requires-Dist: pytest-rerunfailures<16.1,>=16.0.1; extra == 'test'
|
24
24
|
Requires-Dist: pytest-rng<1.1,>=1.0.0; extra == 'test'
|
25
25
|
Requires-Dist: pytest-timeout<2.5,>=2.4.0; extra == 'test'
|
26
26
|
Requires-Dist: pytest-xdist<3.9,>=3.8.0; extra == 'test'
|
@@ -242,7 +242,7 @@ dependencies = [
|
|
242
242
|
name = "dycw-utilities"
|
243
243
|
readme = "README.md"
|
244
244
|
requires-python = ">= 3.12"
|
245
|
-
version = "0.166.
|
245
|
+
version = "0.166.14"
|
246
246
|
|
247
247
|
[project.entry-points.pytest11]
|
248
248
|
pytest-randomly = "utilities.pytest_plugins.pytest_randomly"
|
@@ -263,7 +263,7 @@ test = [
|
|
263
263
|
"pytest-randomly >=3.16.0, <3.17",
|
264
264
|
"pytest-regressions >=2.8.2, <2.9",
|
265
265
|
"pytest-repeat >=0.9.4, <0.10",
|
266
|
-
"pytest-rerunfailures >=
|
266
|
+
"pytest-rerunfailures >=16.0.1, <16.1",
|
267
267
|
"pytest-rng >=1.0.0, <1.1",
|
268
268
|
"pytest-timeout >=2.4.0, <2.5",
|
269
269
|
"pytest-xdist >=3.8.0, <3.9",
|
@@ -275,7 +275,7 @@ test = [
|
|
275
275
|
# bump-my-version
|
276
276
|
[tool.bumpversion]
|
277
277
|
allow_dirty = true
|
278
|
-
current_version = "0.166.
|
278
|
+
current_version = "0.166.14"
|
279
279
|
|
280
280
|
[[tool.bumpversion.files]]
|
281
281
|
filename = "src/utilities/__init__.py"
|
@@ -15,7 +15,7 @@ from utilities.re import ExtractGroupError, extract_group
|
|
15
15
|
from utilities.whenever import MINUTE, get_now_local_plain
|
16
16
|
|
17
17
|
if TYPE_CHECKING:
|
18
|
-
from collections.abc import AsyncIterator, Iterator
|
18
|
+
from collections.abc import AsyncIterator, Iterator
|
19
19
|
from pathlib import Path
|
20
20
|
|
21
21
|
from _pytest.fixtures import SubRequest
|
@@ -99,7 +99,7 @@ def test_engine(*, request: SubRequest, tmp_path: Path) -> Engine:
|
|
99
99
|
)
|
100
100
|
try:
|
101
101
|
with engine.begin() as conn:
|
102
|
-
tables:
|
102
|
+
tables: list[str] = list(
|
103
103
|
conn.execute(_select_tables()).scalars().all()
|
104
104
|
)
|
105
105
|
except OperationalError:
|
@@ -157,7 +157,7 @@ async def test_async_postgres_engine() -> AsyncEngine:
|
|
157
157
|
)
|
158
158
|
try:
|
159
159
|
async with engine.begin() as conn:
|
160
|
-
tables:
|
160
|
+
tables: list[str] = list(
|
161
161
|
(await conn.execute(_select_tables())).scalars().all()
|
162
162
|
)
|
163
163
|
except InvalidCatalogNameError:
|
@@ -0,0 +1,71 @@
|
|
1
|
+
{
|
2
|
+
"describe": [
|
3
|
+
{
|
4
|
+
"statistic": "count",
|
5
|
+
"value": 10.0
|
6
|
+
},
|
7
|
+
{
|
8
|
+
"statistic": "null_count",
|
9
|
+
"value": 0.0
|
10
|
+
},
|
11
|
+
{
|
12
|
+
"statistic": "mean",
|
13
|
+
"value": 4.5
|
14
|
+
},
|
15
|
+
{
|
16
|
+
"statistic": "std",
|
17
|
+
"value": 3.0276503540974917
|
18
|
+
},
|
19
|
+
{
|
20
|
+
"statistic": "min",
|
21
|
+
"value": 0.0
|
22
|
+
},
|
23
|
+
{
|
24
|
+
"statistic": "10%",
|
25
|
+
"value": 1.0
|
26
|
+
},
|
27
|
+
{
|
28
|
+
"statistic": "20%",
|
29
|
+
"value": 2.0
|
30
|
+
},
|
31
|
+
{
|
32
|
+
"statistic": "30%",
|
33
|
+
"value": 3.0
|
34
|
+
},
|
35
|
+
{
|
36
|
+
"statistic": "40%",
|
37
|
+
"value": 4.0
|
38
|
+
},
|
39
|
+
{
|
40
|
+
"statistic": "50%",
|
41
|
+
"value": 5.0
|
42
|
+
},
|
43
|
+
{
|
44
|
+
"statistic": "60%",
|
45
|
+
"value": 5.0
|
46
|
+
},
|
47
|
+
{
|
48
|
+
"statistic": "70%",
|
49
|
+
"value": 6.0
|
50
|
+
},
|
51
|
+
{
|
52
|
+
"statistic": "80%",
|
53
|
+
"value": 7.0
|
54
|
+
},
|
55
|
+
{
|
56
|
+
"statistic": "90%",
|
57
|
+
"value": 8.0
|
58
|
+
},
|
59
|
+
{
|
60
|
+
"statistic": "max",
|
61
|
+
"value": 9.0
|
62
|
+
}
|
63
|
+
],
|
64
|
+
"estimated_size": 80,
|
65
|
+
"has_nulls": false,
|
66
|
+
"is_empty": false,
|
67
|
+
"is_sorted": true,
|
68
|
+
"len": 10,
|
69
|
+
"n_unique": 10,
|
70
|
+
"null_count": 0
|
71
|
+
}
|
@@ -0,0 +1,74 @@
|
|
1
|
+
{
|
2
|
+
"approx_n_unique": {
|
3
|
+
"value": 10
|
4
|
+
},
|
5
|
+
"describe": [
|
6
|
+
{
|
7
|
+
"statistic": "count",
|
8
|
+
"value": 10.0
|
9
|
+
},
|
10
|
+
{
|
11
|
+
"statistic": "null_count",
|
12
|
+
"value": 0.0
|
13
|
+
},
|
14
|
+
{
|
15
|
+
"statistic": "mean",
|
16
|
+
"value": 4.5
|
17
|
+
},
|
18
|
+
{
|
19
|
+
"statistic": "std",
|
20
|
+
"value": 3.0276503540974917
|
21
|
+
},
|
22
|
+
{
|
23
|
+
"statistic": "min",
|
24
|
+
"value": 0.0
|
25
|
+
},
|
26
|
+
{
|
27
|
+
"statistic": "10%",
|
28
|
+
"value": 1.0
|
29
|
+
},
|
30
|
+
{
|
31
|
+
"statistic": "20%",
|
32
|
+
"value": 2.0
|
33
|
+
},
|
34
|
+
{
|
35
|
+
"statistic": "30%",
|
36
|
+
"value": 3.0
|
37
|
+
},
|
38
|
+
{
|
39
|
+
"statistic": "40%",
|
40
|
+
"value": 4.0
|
41
|
+
},
|
42
|
+
{
|
43
|
+
"statistic": "50%",
|
44
|
+
"value": 5.0
|
45
|
+
},
|
46
|
+
{
|
47
|
+
"statistic": "60%",
|
48
|
+
"value": 5.0
|
49
|
+
},
|
50
|
+
{
|
51
|
+
"statistic": "70%",
|
52
|
+
"value": 6.0
|
53
|
+
},
|
54
|
+
{
|
55
|
+
"statistic": "80%",
|
56
|
+
"value": 7.0
|
57
|
+
},
|
58
|
+
{
|
59
|
+
"statistic": "90%",
|
60
|
+
"value": 8.0
|
61
|
+
},
|
62
|
+
{
|
63
|
+
"statistic": "max",
|
64
|
+
"value": 9.0
|
65
|
+
}
|
66
|
+
],
|
67
|
+
"estimated_size": 80,
|
68
|
+
"glimpse": "Rows: 10\nColumns: 1\n$ value <i64> 0, 1, 2, 3, 4, 5, 6, 7, 8, 9\n",
|
69
|
+
"is_empty": false,
|
70
|
+
"n_unique": 10,
|
71
|
+
"null_count": {
|
72
|
+
"value": 0
|
73
|
+
}
|
74
|
+
}
|
@@ -0,0 +1,71 @@
|
|
1
|
+
{
|
2
|
+
"describe": [
|
3
|
+
{
|
4
|
+
"statistic": "count",
|
5
|
+
"value": 10.0
|
6
|
+
},
|
7
|
+
{
|
8
|
+
"statistic": "null_count",
|
9
|
+
"value": 0.0
|
10
|
+
},
|
11
|
+
{
|
12
|
+
"statistic": "mean",
|
13
|
+
"value": 4.5
|
14
|
+
},
|
15
|
+
{
|
16
|
+
"statistic": "std",
|
17
|
+
"value": 3.0276503540974917
|
18
|
+
},
|
19
|
+
{
|
20
|
+
"statistic": "min",
|
21
|
+
"value": 0.0
|
22
|
+
},
|
23
|
+
{
|
24
|
+
"statistic": "10%",
|
25
|
+
"value": 1.0
|
26
|
+
},
|
27
|
+
{
|
28
|
+
"statistic": "20%",
|
29
|
+
"value": 2.0
|
30
|
+
},
|
31
|
+
{
|
32
|
+
"statistic": "30%",
|
33
|
+
"value": 3.0
|
34
|
+
},
|
35
|
+
{
|
36
|
+
"statistic": "40%",
|
37
|
+
"value": 4.0
|
38
|
+
},
|
39
|
+
{
|
40
|
+
"statistic": "50%",
|
41
|
+
"value": 5.0
|
42
|
+
},
|
43
|
+
{
|
44
|
+
"statistic": "60%",
|
45
|
+
"value": 5.0
|
46
|
+
},
|
47
|
+
{
|
48
|
+
"statistic": "70%",
|
49
|
+
"value": 6.0
|
50
|
+
},
|
51
|
+
{
|
52
|
+
"statistic": "80%",
|
53
|
+
"value": 7.0
|
54
|
+
},
|
55
|
+
{
|
56
|
+
"statistic": "90%",
|
57
|
+
"value": 8.0
|
58
|
+
},
|
59
|
+
{
|
60
|
+
"statistic": "max",
|
61
|
+
"value": 9.0
|
62
|
+
}
|
63
|
+
],
|
64
|
+
"estimated_size": 80,
|
65
|
+
"has_nulls": false,
|
66
|
+
"is_empty": false,
|
67
|
+
"is_sorted": true,
|
68
|
+
"len": 10,
|
69
|
+
"n_unique": 10,
|
70
|
+
"null_count": 0
|
71
|
+
}
|
@@ -760,10 +760,11 @@ class TestPairs:
|
|
760
760
|
|
761
761
|
|
762
762
|
class TestPaths:
|
763
|
-
@given(data=data())
|
764
|
-
def test_main(
|
765
|
-
|
766
|
-
|
763
|
+
@given(data=data(), depths=pairs(integers(0, 3) | none()))
|
764
|
+
def test_main(
|
765
|
+
self, *, data: DataObject, depths: tuple[int | None, int | None]
|
766
|
+
) -> None:
|
767
|
+
min_depth, max_depth = depths
|
767
768
|
with assume_does_not_raise(InvalidArgument):
|
768
769
|
path = data.draw(paths(min_depth=min_depth, max_depth=max_depth))
|
769
770
|
assert isinstance(path, Path)
|
@@ -575,7 +575,7 @@ class TestChunked:
|
|
575
575
|
],
|
576
576
|
)
|
577
577
|
def test_main(
|
578
|
-
self, *, iterable: Iterable[str], expected: Sequence[
|
578
|
+
self, *, iterable: Iterable[str], expected: Sequence[list[str]]
|
579
579
|
) -> None:
|
580
580
|
result = list(chunked(iterable, 3))
|
581
581
|
assert result == expected
|
@@ -12,8 +12,6 @@ from utilities.os import temp_environ
|
|
12
12
|
from utilities.pytest import NodeIdToPathError, node_id_path, throttle
|
13
13
|
|
14
14
|
if TYPE_CHECKING:
|
15
|
-
from collections.abc import Sequence
|
16
|
-
|
17
15
|
from _pytest.legacypath import Testdir
|
18
16
|
|
19
17
|
|
@@ -117,10 +115,10 @@ class TestPytestOptions:
|
|
117
115
|
self,
|
118
116
|
*,
|
119
117
|
testdir: Testdir,
|
120
|
-
case:
|
118
|
+
case: list[str],
|
121
119
|
passed: int,
|
122
120
|
skipped: int,
|
123
|
-
matches:
|
121
|
+
matches: list[str],
|
124
122
|
) -> None:
|
125
123
|
_ = testdir.makeconftest(
|
126
124
|
"""
|
@@ -183,10 +181,10 @@ class TestPytestOptions:
|
|
183
181
|
self,
|
184
182
|
*,
|
185
183
|
testdir: Testdir,
|
186
|
-
case:
|
184
|
+
case: list[str],
|
187
185
|
passed: int,
|
188
186
|
skipped: int,
|
189
|
-
matches:
|
187
|
+
matches: list[str],
|
190
188
|
) -> None:
|
191
189
|
_ = testdir.makeconftest(
|
192
190
|
"""
|
@@ -2,7 +2,6 @@ from __future__ import annotations
|
|
2
2
|
|
3
3
|
import re
|
4
4
|
from re import DOTALL
|
5
|
-
from typing import TYPE_CHECKING
|
6
5
|
|
7
6
|
from pytest import mark, param, raises
|
8
7
|
|
@@ -19,9 +18,6 @@ from utilities.re import (
|
|
19
18
|
extract_groups,
|
20
19
|
)
|
21
20
|
|
22
|
-
if TYPE_CHECKING:
|
23
|
-
from collections.abc import Sequence
|
24
|
-
|
25
21
|
|
26
22
|
class TestEnsurePattern:
|
27
23
|
def test_pattern(self) -> None:
|
@@ -81,7 +77,7 @@ class TestExtractGroups:
|
|
81
77
|
("pattern", "text", "expected"),
|
82
78
|
[param(r"(\d)", "A0A", ["0"]), param(r"(\d)(\w)", "A0A0", ["0", "A"])],
|
83
79
|
)
|
84
|
-
def test_main(self, *, pattern: str, text: str, expected:
|
80
|
+
def test_main(self, *, pattern: str, text: str, expected: list[str]) -> None:
|
85
81
|
assert extract_groups(pattern, text) == expected
|
86
82
|
|
87
83
|
def test_with_flags(self) -> None:
|
@@ -246,7 +246,7 @@ class TestPublish:
|
|
246
246
|
phases={Phase.generate},
|
247
247
|
suppress_health_check={HealthCheck.function_scoped_fixture},
|
248
248
|
)
|
249
|
-
async def test_text(self, *, test_redis: Redis, messages:
|
249
|
+
async def test_text(self, *, test_redis: Redis, messages: list[str]) -> None:
|
250
250
|
channel = f"test_{unique_str()}"
|
251
251
|
queue: Queue[str] = Queue()
|
252
252
|
async with subscribe(test_redis, channel, queue):
|
@@ -291,7 +291,7 @@ class TestPublishMany:
|
|
291
291
|
phases={Phase.generate},
|
292
292
|
suppress_health_check={HealthCheck.function_scoped_fixture},
|
293
293
|
)
|
294
|
-
async def test_timeout(self, *, test_redis: Redis, messages:
|
294
|
+
async def test_timeout(self, *, test_redis: Redis, messages: list[str]) -> None:
|
295
295
|
result = await publish_many(
|
296
296
|
test_redis, unique_str(), messages, timeout=MICROSECOND
|
297
297
|
)
|
@@ -687,8 +687,8 @@ class TestSubscribe:
|
|
687
687
|
*,
|
688
688
|
test_redis: Redis,
|
689
689
|
data: DataObject,
|
690
|
-
short_messages:
|
691
|
-
long_messages:
|
690
|
+
short_messages: list[str],
|
691
|
+
long_messages: list[str],
|
692
692
|
) -> None:
|
693
693
|
channel = unique_str()
|
694
694
|
messages = data.draw(permutations(list(chain(short_messages, long_messages))))
|
@@ -713,7 +713,7 @@ class TestSubscribe:
|
|
713
713
|
phases={Phase.generate},
|
714
714
|
suppress_health_check={HealthCheck.function_scoped_fixture},
|
715
715
|
)
|
716
|
-
async def test_raw(self, *, test_redis: Redis, messages:
|
716
|
+
async def test_raw(self, *, test_redis: Redis, messages: list[str]) -> None:
|
717
717
|
channel = f"test_{unique_str()}"
|
718
718
|
queue: Queue[_RedisMessage] = Queue()
|
719
719
|
async with subscribe(test_redis, channel, queue, output="raw"):
|
@@ -737,7 +737,7 @@ class TestSubscribe:
|
|
737
737
|
phases={Phase.generate},
|
738
738
|
suppress_health_check={HealthCheck.function_scoped_fixture},
|
739
739
|
)
|
740
|
-
async def test_text(self, *, test_redis: Redis, messages:
|
740
|
+
async def test_text(self, *, test_redis: Redis, messages: list[str]) -> None:
|
741
741
|
channel = f"test_{unique_str()}"
|
742
742
|
queue: Queue[_RedisMessage] = Queue()
|
743
743
|
async with subscribe(test_redis, channel, queue, output="raw"):
|
@@ -241,15 +241,15 @@ class TestSplitAndJoinStr:
|
|
241
241
|
@mark.parametrize(
|
242
242
|
("text", "n", "expected"),
|
243
243
|
[
|
244
|
-
param("", 0,
|
245
|
-
param(r"\,", 1,
|
246
|
-
param(",", 2,
|
247
|
-
param(",,", 3,
|
248
|
-
param("1", 1,
|
249
|
-
param("1,22", 2,
|
250
|
-
param("1,22,333", 3,
|
251
|
-
param("1,,333", 3,
|
252
|
-
param("1,(22,22,22),333", 5,
|
244
|
+
param("", 0, ()),
|
245
|
+
param(r"\,", 1, ("",)),
|
246
|
+
param(",", 2, ("", "")),
|
247
|
+
param(",,", 3, ("", "", "")),
|
248
|
+
param("1", 1, ("1",)),
|
249
|
+
param("1,22", 2, ("1", "22")),
|
250
|
+
param("1,22,333", 3, ("1", "22", "333")),
|
251
|
+
param("1,,333", 3, ("1", "", "333")),
|
252
|
+
param("1,(22,22,22),333", 5, ("1", "(22", "22", "22)", "333")),
|
253
253
|
],
|
254
254
|
)
|
255
255
|
def test_main(
|
@@ -267,12 +267,12 @@ class TestSplitAndJoinStr:
|
|
267
267
|
@mark.parametrize(
|
268
268
|
("text", "n", "expected"),
|
269
269
|
[
|
270
|
-
param("1", 1,
|
271
|
-
param("1,22", 2,
|
272
|
-
param("1,22,333", 3,
|
273
|
-
param("1,(22),333", 3,
|
274
|
-
param("1,(22,22),333", 3,
|
275
|
-
param("1,(22,22,22),333", 3,
|
270
|
+
param("1", 1, ("1",)),
|
271
|
+
param("1,22", 2, ("1", "22")),
|
272
|
+
param("1,22,333", 3, ("1", "22", "333")),
|
273
|
+
param("1,(22),333", 3, ("1", "(22)", "333")),
|
274
|
+
param("1,(22,22),333", 3, ("1", "(22,22)", "333")),
|
275
|
+
param("1,(22,22,22),333", 3, ("1", "(22,22,22)", "333")),
|
276
276
|
],
|
277
277
|
)
|
278
278
|
def test_brackets(
|
@@ -286,13 +286,13 @@ class TestSplitAndJoinStr:
|
|
286
286
|
assert result == tuple(expected)
|
287
287
|
assert join_strs(result) == text
|
288
288
|
|
289
|
-
@given(texts=lists(text_ascii()))
|
290
|
-
def test_generic(self, *, texts:
|
289
|
+
@given(texts=lists(text_ascii()).map(tuple))
|
290
|
+
def test_generic(self, *, texts: tuple[str, ...]) -> None:
|
291
291
|
assert split_str(join_strs(texts)) == texts
|
292
292
|
|
293
293
|
@given(texts=sets(text_ascii()))
|
294
294
|
def test_sort(self, *, texts: set[str]) -> None:
|
295
|
-
assert split_str(join_strs(texts, sort=True)) == sorted(texts)
|
295
|
+
assert split_str(join_strs(texts, sort=True)) == tuple(sorted(texts))
|
296
296
|
|
297
297
|
def test_error_closing_bracket_mismatched(self) -> None:
|
298
298
|
with raises(
|
@@ -29,8 +29,6 @@ from utilities.iterables import always_iterable
|
|
29
29
|
from utilities.tempfile import TemporaryDirectory
|
30
30
|
|
31
31
|
if TYPE_CHECKING:
|
32
|
-
from collections.abc import Sequence
|
33
|
-
|
34
32
|
from polars import DataFrame
|
35
33
|
|
36
34
|
from utilities.types import PathLike
|
@@ -43,7 +41,7 @@ _WIDTH = 800
|
|
43
41
|
|
44
42
|
@dataclass(kw_only=True, slots=True)
|
45
43
|
class _PlotDataFramesSpec:
|
46
|
-
y:
|
44
|
+
y: list[str]
|
47
45
|
height: int = _HEIGHT
|
48
46
|
|
49
47
|
|
@@ -17,7 +17,7 @@ from utilities.parse import ParseObjectError, parse_object
|
|
17
17
|
from utilities.text import split_str
|
18
18
|
|
19
19
|
if TYPE_CHECKING:
|
20
|
-
from collections.abc import Iterable
|
20
|
+
from collections.abc import Iterable
|
21
21
|
|
22
22
|
from utilities.types import (
|
23
23
|
DateDeltaLike,
|
@@ -38,7 +38,7 @@ if TYPE_CHECKING:
|
|
38
38
|
|
39
39
|
|
40
40
|
class _HelpOptionNames(TypedDict):
|
41
|
-
help_option_names:
|
41
|
+
help_option_names: list[str]
|
42
42
|
|
43
43
|
|
44
44
|
class _ContextSettings(TypedDict):
|
@@ -469,7 +469,7 @@ class FrozenSetChoices(FrozenSetParameter[Choice, str]):
|
|
469
469
|
@override
|
470
470
|
def __init__(
|
471
471
|
self,
|
472
|
-
choices:
|
472
|
+
choices: list[str],
|
473
473
|
/,
|
474
474
|
*,
|
475
475
|
case_sensitive: bool = False,
|
@@ -554,7 +554,7 @@ class ListChoices(ListParameter[Choice, str]):
|
|
554
554
|
@override
|
555
555
|
def __init__(
|
556
556
|
self,
|
557
|
-
choices:
|
557
|
+
choices: list[str],
|
558
558
|
/,
|
559
559
|
*,
|
560
560
|
case_sensitive: bool = False,
|
@@ -847,13 +847,9 @@ def paths(
|
|
847
847
|
) -> Path:
|
848
848
|
"""Strategy for generating `Path`s."""
|
849
849
|
min_depth_, max_depth_ = [draw2(draw, d) for d in [min_depth, max_depth]]
|
850
|
-
|
851
|
-
|
852
|
-
|
853
|
-
min_size=0 if min_depth_ is None else min_depth_,
|
854
|
-
max_size=max_depth_,
|
855
|
-
)
|
856
|
-
)
|
850
|
+
min_depth_ = max_nullable([min_depth_, 0])
|
851
|
+
max_depth_ = min_nullable([max_depth_, 10])
|
852
|
+
parts = draw(lists(_path_parts(), min_size=min_depth_, max_size=max_depth_))
|
857
853
|
return Path(*parts)
|
858
854
|
|
859
855
|
|
@@ -150,7 +150,7 @@ def split_dotted_str(dotted: str, /) -> Name | Attribute:
|
|
150
150
|
|
151
151
|
def join_dotted_str(name_or_attr: Name | Attribute, /) -> str:
|
152
152
|
"""Join a dotted from from a name/attribute."""
|
153
|
-
parts:
|
153
|
+
parts: list[str] = []
|
154
154
|
curr: BaseExpression | Name | Attribute = name_or_attr
|
155
155
|
while True:
|
156
156
|
match curr:
|
@@ -564,7 +564,7 @@ def _check_polars_dataframe_columns(df: DataFrame, columns: Iterable[str], /) ->
|
|
564
564
|
|
565
565
|
@dataclass(kw_only=True, slots=True)
|
566
566
|
class _CheckPolarsDataFrameColumnsError(CheckPolarsDataFrameError):
|
567
|
-
columns:
|
567
|
+
columns: list[str]
|
568
568
|
|
569
569
|
@override
|
570
570
|
def __str__(self) -> str:
|
@@ -26,7 +26,7 @@ from utilities.types import MaybeCoro
|
|
26
26
|
from utilities.whenever import SECOND, get_now_local
|
27
27
|
|
28
28
|
if TYPE_CHECKING:
|
29
|
-
from collections.abc import Callable, Iterable
|
29
|
+
from collections.abc import Callable, Iterable
|
30
30
|
|
31
31
|
from utilities.types import Coro, Delta, PathLike
|
32
32
|
|
@@ -52,7 +52,7 @@ else:
|
|
52
52
|
skipif_not_linux = mark.skipif(IS_NOT_LINUX, reason="Skipped for non-Linux")
|
53
53
|
|
54
54
|
|
55
|
-
def add_pytest_addoption(parser: Parser, options:
|
55
|
+
def add_pytest_addoption(parser: Parser, options: list[str], /) -> None:
|
56
56
|
"""Add the `--slow`, etc options to pytest.
|
57
57
|
|
58
58
|
Usage:
|
@@ -73,7 +73,7 @@ def add_pytest_addoption(parser: Parser, options: Sequence[str], /) -> None:
|
|
73
73
|
|
74
74
|
|
75
75
|
def add_pytest_collection_modifyitems(
|
76
|
-
config: Config, items: Iterable[Function], options:
|
76
|
+
config: Config, items: Iterable[Function], options: list[str], /
|
77
77
|
) -> None:
|
78
78
|
"""Add the @mark.skips as necessary.
|
79
79
|
|
@@ -1073,7 +1073,7 @@ def _map_mapping_to_table(
|
|
1073
1073
|
@dataclass(kw_only=True, slots=True)
|
1074
1074
|
class _MapMappingToTableError(Exception):
|
1075
1075
|
mapping: StrMapping
|
1076
|
-
columns:
|
1076
|
+
columns: list[str]
|
1077
1077
|
|
1078
1078
|
|
1079
1079
|
@dataclass(kw_only=True, slots=True)
|