dycw-utilities 0.150.7__tar.gz → 0.150.8__tar.gz
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- {dycw_utilities-0.150.7 → dycw_utilities-0.150.8}/PKG-INFO +1 -1
- {dycw_utilities-0.150.7 → dycw_utilities-0.150.8}/pyproject.toml +2 -2
- {dycw_utilities-0.150.7 → dycw_utilities-0.150.8}/src/tests/test_text.py +59 -51
- {dycw_utilities-0.150.7 → dycw_utilities-0.150.8}/src/utilities/__init__.py +1 -1
- {dycw_utilities-0.150.7 → dycw_utilities-0.150.8}/src/utilities/text.py +20 -1
- {dycw_utilities-0.150.7 → dycw_utilities-0.150.8}/.gitignore +0 -0
- {dycw_utilities-0.150.7 → dycw_utilities-0.150.8}/LICENSE +0 -0
- {dycw_utilities-0.150.7 → dycw_utilities-0.150.8}/README.md +0 -0
- {dycw_utilities-0.150.7 → dycw_utilities-0.150.8}/src/tests/__init__.py +0 -0
- {dycw_utilities-0.150.7 → dycw_utilities-0.150.8}/src/tests/conftest.py +0 -0
- {dycw_utilities-0.150.7 → dycw_utilities-0.150.8}/src/tests/modules/__init__.py +0 -0
- {dycw_utilities-0.150.7 → dycw_utilities-0.150.8}/src/tests/modules/package_missing/__init__.py +0 -0
- {dycw_utilities-0.150.7 → dycw_utilities-0.150.8}/src/tests/modules/package_missing/module.py +0 -0
- {dycw_utilities-0.150.7 → dycw_utilities-0.150.8}/src/tests/modules/package_with/__init__.py +0 -0
- {dycw_utilities-0.150.7 → dycw_utilities-0.150.8}/src/tests/modules/package_with/outer_1.py +0 -0
- {dycw_utilities-0.150.7 → dycw_utilities-0.150.8}/src/tests/modules/package_with/outer_2.py +0 -0
- {dycw_utilities-0.150.7 → dycw_utilities-0.150.8}/src/tests/modules/package_with/subpackage/__init__.py +0 -0
- {dycw_utilities-0.150.7 → dycw_utilities-0.150.8}/src/tests/modules/package_with/subpackage/inner_1.py +0 -0
- {dycw_utilities-0.150.7 → dycw_utilities-0.150.8}/src/tests/modules/package_with/subpackage/inner_2.py +0 -0
- {dycw_utilities-0.150.7 → dycw_utilities-0.150.8}/src/tests/modules/package_with/subpackage/inner_3.py +0 -0
- {dycw_utilities-0.150.7 → dycw_utilities-0.150.8}/src/tests/modules/package_without/__init__.py +0 -0
- {dycw_utilities-0.150.7 → dycw_utilities-0.150.8}/src/tests/modules/package_without/module_1.py +0 -0
- {dycw_utilities-0.150.7 → dycw_utilities-0.150.8}/src/tests/modules/package_without/module_2.py +0 -0
- {dycw_utilities-0.150.7 → dycw_utilities-0.150.8}/src/tests/modules/standalone.py +0 -0
- {dycw_utilities-0.150.7 → dycw_utilities-0.150.8}/src/tests/modules/with_imports.py +0 -0
- {dycw_utilities-0.150.7 → dycw_utilities-0.150.8}/src/tests/regressions/test_pytest_regressions/TestMultipleRegressionFixtures__test_main__obj.json +0 -0
- {dycw_utilities-0.150.7 → dycw_utilities-0.150.8}/src/tests/regressions/test_pytest_regressions/TestMultipleRegressionFixtures__test_main__series.json +0 -0
- {dycw_utilities-0.150.7 → dycw_utilities-0.150.8}/src/tests/regressions/test_pytest_regressions/TestOrjsonRegressionFixture__test_dataclass_int.json +0 -0
- {dycw_utilities-0.150.7 → dycw_utilities-0.150.8}/src/tests/regressions/test_pytest_regressions/TestOrjsonRegressionFixture__test_dataclass_literal__false.json +0 -0
- {dycw_utilities-0.150.7 → dycw_utilities-0.150.8}/src/tests/regressions/test_pytest_regressions/TestOrjsonRegressionFixture__test_dataclass_literal__true.json +0 -0
- {dycw_utilities-0.150.7 → dycw_utilities-0.150.8}/src/tests/regressions/test_pytest_regressions/TestOrjsonRegressionFixture__test_dataclass_nested.json +0 -0
- {dycw_utilities-0.150.7 → dycw_utilities-0.150.8}/src/tests/regressions/test_pytest_regressions/TestPolarsRegressionFixture__test_dataframe.json +0 -0
- {dycw_utilities-0.150.7 → dycw_utilities-0.150.8}/src/tests/regressions/test_pytest_regressions/TestPolarsRegressionFixture__test_series.json +0 -0
- {dycw_utilities-0.150.7 → dycw_utilities-0.150.8}/src/tests/test_altair.py +0 -0
- {dycw_utilities-0.150.7 → dycw_utilities-0.150.8}/src/tests/test_asyncio.py +0 -0
- {dycw_utilities-0.150.7 → dycw_utilities-0.150.8}/src/tests/test_atomicwrites.py +0 -0
- {dycw_utilities-0.150.7 → dycw_utilities-0.150.8}/src/tests/test_atools.py +0 -0
- {dycw_utilities-0.150.7 → dycw_utilities-0.150.8}/src/tests/test_cachetools.py +0 -0
- {dycw_utilities-0.150.7 → dycw_utilities-0.150.8}/src/tests/test_click.py +0 -0
- {dycw_utilities-0.150.7 → dycw_utilities-0.150.8}/src/tests/test_concurrent.py +0 -0
- {dycw_utilities-0.150.7 → dycw_utilities-0.150.8}/src/tests/test_contextlib.py +0 -0
- {dycw_utilities-0.150.7 → dycw_utilities-0.150.8}/src/tests/test_contextvars.py +0 -0
- {dycw_utilities-0.150.7 → dycw_utilities-0.150.8}/src/tests/test_cryptography.py +0 -0
- {dycw_utilities-0.150.7 → dycw_utilities-0.150.8}/src/tests/test_cvxpy.py +0 -0
- {dycw_utilities-0.150.7 → dycw_utilities-0.150.8}/src/tests/test_dataclasses.py +0 -0
- {dycw_utilities-0.150.7 → dycw_utilities-0.150.8}/src/tests/test_dnspython.py +0 -0
- {dycw_utilities-0.150.7 → dycw_utilities-0.150.8}/src/tests/test_enum.py +0 -0
- {dycw_utilities-0.150.7 → dycw_utilities-0.150.8}/src/tests/test_errors.py +0 -0
- {dycw_utilities-0.150.7 → dycw_utilities-0.150.8}/src/tests/test_eventkit.py +0 -0
- {dycw_utilities-0.150.7 → dycw_utilities-0.150.8}/src/tests/test_fastapi.py +0 -0
- {dycw_utilities-0.150.7 → dycw_utilities-0.150.8}/src/tests/test_fpdf2.py +0 -0
- {dycw_utilities-0.150.7 → dycw_utilities-0.150.8}/src/tests/test_functions.py +0 -0
- {dycw_utilities-0.150.7 → dycw_utilities-0.150.8}/src/tests/test_functools.py +0 -0
- {dycw_utilities-0.150.7 → dycw_utilities-0.150.8}/src/tests/test_getpass.py +0 -0
- {dycw_utilities-0.150.7 → dycw_utilities-0.150.8}/src/tests/test_gzip.py +0 -0
- {dycw_utilities-0.150.7 → dycw_utilities-0.150.8}/src/tests/test_hashlib.py +0 -0
- {dycw_utilities-0.150.7 → dycw_utilities-0.150.8}/src/tests/test_http.py +0 -0
- {dycw_utilities-0.150.7 → dycw_utilities-0.150.8}/src/tests/test_hypothesis.py +0 -0
- {dycw_utilities-0.150.7 → dycw_utilities-0.150.8}/src/tests/test_importlib.py +0 -0
- {dycw_utilities-0.150.7 → dycw_utilities-0.150.8}/src/tests/test_inflect.py +0 -0
- {dycw_utilities-0.150.7 → dycw_utilities-0.150.8}/src/tests/test_ipython.py +0 -0
- {dycw_utilities-0.150.7 → dycw_utilities-0.150.8}/src/tests/test_iterables.py +0 -0
- {dycw_utilities-0.150.7 → dycw_utilities-0.150.8}/src/tests/test_json.py +0 -0
- {dycw_utilities-0.150.7 → dycw_utilities-0.150.8}/src/tests/test_jupyter.py +0 -0
- {dycw_utilities-0.150.7 → dycw_utilities-0.150.8}/src/tests/test_libcst.py +0 -0
- {dycw_utilities-0.150.7 → dycw_utilities-0.150.8}/src/tests/test_lightweight_charts.py +0 -0
- {dycw_utilities-0.150.7 → dycw_utilities-0.150.8}/src/tests/test_logging.py +0 -0
- {dycw_utilities-0.150.7 → dycw_utilities-0.150.8}/src/tests/test_math.py +0 -0
- {dycw_utilities-0.150.7 → dycw_utilities-0.150.8}/src/tests/test_memory_profiler.py +0 -0
- {dycw_utilities-0.150.7 → dycw_utilities-0.150.8}/src/tests/test_modules.py +0 -0
- {dycw_utilities-0.150.7 → dycw_utilities-0.150.8}/src/tests/test_more_itertools.py +0 -0
- {dycw_utilities-0.150.7 → dycw_utilities-0.150.8}/src/tests/test_numpy.py +0 -0
- {dycw_utilities-0.150.7 → dycw_utilities-0.150.8}/src/tests/test_objects/__init__.py +0 -0
- {dycw_utilities-0.150.7 → dycw_utilities-0.150.8}/src/tests/test_objects/objects.py +0 -0
- {dycw_utilities-0.150.7 → dycw_utilities-0.150.8}/src/tests/test_operator.py +0 -0
- {dycw_utilities-0.150.7 → dycw_utilities-0.150.8}/src/tests/test_optuna.py +0 -0
- {dycw_utilities-0.150.7 → dycw_utilities-0.150.8}/src/tests/test_orjson.py +0 -0
- {dycw_utilities-0.150.7 → dycw_utilities-0.150.8}/src/tests/test_os.py +0 -0
- {dycw_utilities-0.150.7 → dycw_utilities-0.150.8}/src/tests/test_parse.py +0 -0
- {dycw_utilities-0.150.7 → dycw_utilities-0.150.8}/src/tests/test_pathlib.py +0 -0
- {dycw_utilities-0.150.7 → dycw_utilities-0.150.8}/src/tests/test_period.py +0 -0
- {dycw_utilities-0.150.7 → dycw_utilities-0.150.8}/src/tests/test_pickle.py +0 -0
- {dycw_utilities-0.150.7 → dycw_utilities-0.150.8}/src/tests/test_platform.py +0 -0
- {dycw_utilities-0.150.7 → dycw_utilities-0.150.8}/src/tests/test_polars.py +0 -0
- {dycw_utilities-0.150.7 → dycw_utilities-0.150.8}/src/tests/test_polars_ols.py +0 -0
- {dycw_utilities-0.150.7 → dycw_utilities-0.150.8}/src/tests/test_postgres.py +0 -0
- {dycw_utilities-0.150.7 → dycw_utilities-0.150.8}/src/tests/test_pottery.py +0 -0
- {dycw_utilities-0.150.7 → dycw_utilities-0.150.8}/src/tests/test_pqdm.py +0 -0
- {dycw_utilities-0.150.7 → dycw_utilities-0.150.8}/src/tests/test_psutil.py +0 -0
- {dycw_utilities-0.150.7 → dycw_utilities-0.150.8}/src/tests/test_pyinstrument.py +0 -0
- {dycw_utilities-0.150.7 → dycw_utilities-0.150.8}/src/tests/test_pytest.py +0 -0
- {dycw_utilities-0.150.7 → dycw_utilities-0.150.8}/src/tests/test_pytest_randomly.py +0 -0
- {dycw_utilities-0.150.7 → dycw_utilities-0.150.8}/src/tests/test_pytest_regressions.py +0 -0
- {dycw_utilities-0.150.7 → dycw_utilities-0.150.8}/src/tests/test_random.py +0 -0
- {dycw_utilities-0.150.7 → dycw_utilities-0.150.8}/src/tests/test_re.py +0 -0
- {dycw_utilities-0.150.7 → dycw_utilities-0.150.8}/src/tests/test_redis.py +0 -0
- {dycw_utilities-0.150.7 → dycw_utilities-0.150.8}/src/tests/test_reprlib.py +0 -0
- {dycw_utilities-0.150.7 → dycw_utilities-0.150.8}/src/tests/test_scipy.py +0 -0
- {dycw_utilities-0.150.7 → dycw_utilities-0.150.8}/src/tests/test_sentinel.py +0 -0
- {dycw_utilities-0.150.7 → dycw_utilities-0.150.8}/src/tests/test_shelve.py +0 -0
- {dycw_utilities-0.150.7 → dycw_utilities-0.150.8}/src/tests/test_slack_sdk.py +0 -0
- {dycw_utilities-0.150.7 → dycw_utilities-0.150.8}/src/tests/test_socket.py +0 -0
- {dycw_utilities-0.150.7 → dycw_utilities-0.150.8}/src/tests/test_sqlalchemy.py +0 -0
- {dycw_utilities-0.150.7 → dycw_utilities-0.150.8}/src/tests/test_sqlalchemy_polars.py +0 -0
- {dycw_utilities-0.150.7 → dycw_utilities-0.150.8}/src/tests/test_statsmodels.py +0 -0
- {dycw_utilities-0.150.7 → dycw_utilities-0.150.8}/src/tests/test_string.py +0 -0
- {dycw_utilities-0.150.7 → dycw_utilities-0.150.8}/src/tests/test_tempfile.py +0 -0
- {dycw_utilities-0.150.7 → dycw_utilities-0.150.8}/src/tests/test_threading.py +0 -0
- {dycw_utilities-0.150.7 → dycw_utilities-0.150.8}/src/tests/test_timer.py +0 -0
- {dycw_utilities-0.150.7 → dycw_utilities-0.150.8}/src/tests/test_traceback.py +0 -0
- {dycw_utilities-0.150.7 → dycw_utilities-0.150.8}/src/tests/test_typed_settings.py +0 -0
- {dycw_utilities-0.150.7 → dycw_utilities-0.150.8}/src/tests/test_types.py +0 -0
- {dycw_utilities-0.150.7 → dycw_utilities-0.150.8}/src/tests/test_typing.py +0 -0
- {dycw_utilities-0.150.7 → dycw_utilities-0.150.8}/src/tests/test_typing_funcs/__init__.py +0 -0
- {dycw_utilities-0.150.7 → dycw_utilities-0.150.8}/src/tests/test_typing_funcs/no_future.py +0 -0
- {dycw_utilities-0.150.7 → dycw_utilities-0.150.8}/src/tests/test_typing_funcs/with_future.py +0 -0
- {dycw_utilities-0.150.7 → dycw_utilities-0.150.8}/src/tests/test_tzdata.py +0 -0
- {dycw_utilities-0.150.7 → dycw_utilities-0.150.8}/src/tests/test_tzlocal.py +0 -0
- {dycw_utilities-0.150.7 → dycw_utilities-0.150.8}/src/tests/test_uuid.py +0 -0
- {dycw_utilities-0.150.7 → dycw_utilities-0.150.8}/src/tests/test_version.py +0 -0
- {dycw_utilities-0.150.7 → dycw_utilities-0.150.8}/src/tests/test_warnings.py +0 -0
- {dycw_utilities-0.150.7 → dycw_utilities-0.150.8}/src/tests/test_whenever.py +0 -0
- {dycw_utilities-0.150.7 → dycw_utilities-0.150.8}/src/tests/test_yield_access/__init__.py +0 -0
- {dycw_utilities-0.150.7 → dycw_utilities-0.150.8}/src/tests/test_yield_access/script.py +0 -0
- {dycw_utilities-0.150.7 → dycw_utilities-0.150.8}/src/tests/test_yield_access/script.sh +0 -0
- {dycw_utilities-0.150.7 → dycw_utilities-0.150.8}/src/tests/test_zipfile.py +0 -0
- {dycw_utilities-0.150.7 → dycw_utilities-0.150.8}/src/tests/test_zoneinfo.py +0 -0
- {dycw_utilities-0.150.7 → dycw_utilities-0.150.8}/src/utilities/altair.py +0 -0
- {dycw_utilities-0.150.7 → dycw_utilities-0.150.8}/src/utilities/asyncio.py +0 -0
- {dycw_utilities-0.150.7 → dycw_utilities-0.150.8}/src/utilities/atomicwrites.py +0 -0
- {dycw_utilities-0.150.7 → dycw_utilities-0.150.8}/src/utilities/atools.py +0 -0
- {dycw_utilities-0.150.7 → dycw_utilities-0.150.8}/src/utilities/cachetools.py +0 -0
- {dycw_utilities-0.150.7 → dycw_utilities-0.150.8}/src/utilities/click.py +0 -0
- {dycw_utilities-0.150.7 → dycw_utilities-0.150.8}/src/utilities/concurrent.py +0 -0
- {dycw_utilities-0.150.7 → dycw_utilities-0.150.8}/src/utilities/contextlib.py +0 -0
- {dycw_utilities-0.150.7 → dycw_utilities-0.150.8}/src/utilities/contextvars.py +0 -0
- {dycw_utilities-0.150.7 → dycw_utilities-0.150.8}/src/utilities/cryptography.py +0 -0
- {dycw_utilities-0.150.7 → dycw_utilities-0.150.8}/src/utilities/cvxpy.py +0 -0
- {dycw_utilities-0.150.7 → dycw_utilities-0.150.8}/src/utilities/dataclasses.py +0 -0
- {dycw_utilities-0.150.7 → dycw_utilities-0.150.8}/src/utilities/dnspython.py +0 -0
- {dycw_utilities-0.150.7 → dycw_utilities-0.150.8}/src/utilities/enum.py +0 -0
- {dycw_utilities-0.150.7 → dycw_utilities-0.150.8}/src/utilities/errors.py +0 -0
- {dycw_utilities-0.150.7 → dycw_utilities-0.150.8}/src/utilities/eventkit.py +0 -0
- {dycw_utilities-0.150.7 → dycw_utilities-0.150.8}/src/utilities/fastapi.py +0 -0
- {dycw_utilities-0.150.7 → dycw_utilities-0.150.8}/src/utilities/fpdf2.py +0 -0
- {dycw_utilities-0.150.7 → dycw_utilities-0.150.8}/src/utilities/functions.py +0 -0
- {dycw_utilities-0.150.7 → dycw_utilities-0.150.8}/src/utilities/functools.py +0 -0
- {dycw_utilities-0.150.7 → dycw_utilities-0.150.8}/src/utilities/getpass.py +0 -0
- {dycw_utilities-0.150.7 → dycw_utilities-0.150.8}/src/utilities/gzip.py +0 -0
- {dycw_utilities-0.150.7 → dycw_utilities-0.150.8}/src/utilities/hashlib.py +0 -0
- {dycw_utilities-0.150.7 → dycw_utilities-0.150.8}/src/utilities/http.py +0 -0
- {dycw_utilities-0.150.7 → dycw_utilities-0.150.8}/src/utilities/hypothesis.py +0 -0
- {dycw_utilities-0.150.7 → dycw_utilities-0.150.8}/src/utilities/importlib.py +0 -0
- {dycw_utilities-0.150.7 → dycw_utilities-0.150.8}/src/utilities/inflect.py +0 -0
- {dycw_utilities-0.150.7 → dycw_utilities-0.150.8}/src/utilities/ipython.py +0 -0
- {dycw_utilities-0.150.7 → dycw_utilities-0.150.8}/src/utilities/iterables.py +0 -0
- {dycw_utilities-0.150.7 → dycw_utilities-0.150.8}/src/utilities/json.py +0 -0
- {dycw_utilities-0.150.7 → dycw_utilities-0.150.8}/src/utilities/jupyter.py +0 -0
- {dycw_utilities-0.150.7 → dycw_utilities-0.150.8}/src/utilities/libcst.py +0 -0
- {dycw_utilities-0.150.7 → dycw_utilities-0.150.8}/src/utilities/lightweight_charts.py +0 -0
- {dycw_utilities-0.150.7 → dycw_utilities-0.150.8}/src/utilities/logging.py +0 -0
- {dycw_utilities-0.150.7 → dycw_utilities-0.150.8}/src/utilities/math.py +0 -0
- {dycw_utilities-0.150.7 → dycw_utilities-0.150.8}/src/utilities/memory_profiler.py +0 -0
- {dycw_utilities-0.150.7 → dycw_utilities-0.150.8}/src/utilities/modules.py +0 -0
- {dycw_utilities-0.150.7 → dycw_utilities-0.150.8}/src/utilities/more_itertools.py +0 -0
- {dycw_utilities-0.150.7 → dycw_utilities-0.150.8}/src/utilities/numpy.py +0 -0
- {dycw_utilities-0.150.7 → dycw_utilities-0.150.8}/src/utilities/operator.py +0 -0
- {dycw_utilities-0.150.7 → dycw_utilities-0.150.8}/src/utilities/optuna.py +0 -0
- {dycw_utilities-0.150.7 → dycw_utilities-0.150.8}/src/utilities/orjson.py +0 -0
- {dycw_utilities-0.150.7 → dycw_utilities-0.150.8}/src/utilities/os.py +0 -0
- {dycw_utilities-0.150.7 → dycw_utilities-0.150.8}/src/utilities/parse.py +0 -0
- {dycw_utilities-0.150.7 → dycw_utilities-0.150.8}/src/utilities/pathlib.py +0 -0
- {dycw_utilities-0.150.7 → dycw_utilities-0.150.8}/src/utilities/period.py +0 -0
- {dycw_utilities-0.150.7 → dycw_utilities-0.150.8}/src/utilities/pickle.py +0 -0
- {dycw_utilities-0.150.7 → dycw_utilities-0.150.8}/src/utilities/platform.py +0 -0
- {dycw_utilities-0.150.7 → dycw_utilities-0.150.8}/src/utilities/polars.py +0 -0
- {dycw_utilities-0.150.7 → dycw_utilities-0.150.8}/src/utilities/polars_ols.py +0 -0
- {dycw_utilities-0.150.7 → dycw_utilities-0.150.8}/src/utilities/postgres.py +0 -0
- {dycw_utilities-0.150.7 → dycw_utilities-0.150.8}/src/utilities/pottery.py +0 -0
- {dycw_utilities-0.150.7 → dycw_utilities-0.150.8}/src/utilities/pqdm.py +0 -0
- {dycw_utilities-0.150.7 → dycw_utilities-0.150.8}/src/utilities/psutil.py +0 -0
- {dycw_utilities-0.150.7 → dycw_utilities-0.150.8}/src/utilities/py.typed +0 -0
- {dycw_utilities-0.150.7 → dycw_utilities-0.150.8}/src/utilities/pyinstrument.py +0 -0
- {dycw_utilities-0.150.7 → dycw_utilities-0.150.8}/src/utilities/pytest.py +0 -0
- {dycw_utilities-0.150.7 → dycw_utilities-0.150.8}/src/utilities/pytest_plugins/__init__.py +0 -0
- {dycw_utilities-0.150.7 → dycw_utilities-0.150.8}/src/utilities/pytest_plugins/pytest_randomly.py +0 -0
- {dycw_utilities-0.150.7 → dycw_utilities-0.150.8}/src/utilities/pytest_plugins/pytest_regressions.py +0 -0
- {dycw_utilities-0.150.7 → dycw_utilities-0.150.8}/src/utilities/pytest_regressions.py +0 -0
- {dycw_utilities-0.150.7 → dycw_utilities-0.150.8}/src/utilities/random.py +0 -0
- {dycw_utilities-0.150.7 → dycw_utilities-0.150.8}/src/utilities/re.py +0 -0
- {dycw_utilities-0.150.7 → dycw_utilities-0.150.8}/src/utilities/redis.py +0 -0
- {dycw_utilities-0.150.7 → dycw_utilities-0.150.8}/src/utilities/reprlib.py +0 -0
- {dycw_utilities-0.150.7 → dycw_utilities-0.150.8}/src/utilities/scipy.py +0 -0
- {dycw_utilities-0.150.7 → dycw_utilities-0.150.8}/src/utilities/sentinel.py +0 -0
- {dycw_utilities-0.150.7 → dycw_utilities-0.150.8}/src/utilities/shelve.py +0 -0
- {dycw_utilities-0.150.7 → dycw_utilities-0.150.8}/src/utilities/slack_sdk.py +0 -0
- {dycw_utilities-0.150.7 → dycw_utilities-0.150.8}/src/utilities/socket.py +0 -0
- {dycw_utilities-0.150.7 → dycw_utilities-0.150.8}/src/utilities/sqlalchemy.py +0 -0
- {dycw_utilities-0.150.7 → dycw_utilities-0.150.8}/src/utilities/sqlalchemy_polars.py +0 -0
- {dycw_utilities-0.150.7 → dycw_utilities-0.150.8}/src/utilities/statsmodels.py +0 -0
- {dycw_utilities-0.150.7 → dycw_utilities-0.150.8}/src/utilities/string.py +0 -0
- {dycw_utilities-0.150.7 → dycw_utilities-0.150.8}/src/utilities/tempfile.py +0 -0
- {dycw_utilities-0.150.7 → dycw_utilities-0.150.8}/src/utilities/threading.py +0 -0
- {dycw_utilities-0.150.7 → dycw_utilities-0.150.8}/src/utilities/timer.py +0 -0
- {dycw_utilities-0.150.7 → dycw_utilities-0.150.8}/src/utilities/traceback.py +0 -0
- {dycw_utilities-0.150.7 → dycw_utilities-0.150.8}/src/utilities/typed_settings.py +0 -0
- {dycw_utilities-0.150.7 → dycw_utilities-0.150.8}/src/utilities/types.py +0 -0
- {dycw_utilities-0.150.7 → dycw_utilities-0.150.8}/src/utilities/typing.py +0 -0
- {dycw_utilities-0.150.7 → dycw_utilities-0.150.8}/src/utilities/tzdata.py +0 -0
- {dycw_utilities-0.150.7 → dycw_utilities-0.150.8}/src/utilities/tzlocal.py +0 -0
- {dycw_utilities-0.150.7 → dycw_utilities-0.150.8}/src/utilities/uuid.py +0 -0
- {dycw_utilities-0.150.7 → dycw_utilities-0.150.8}/src/utilities/version.py +0 -0
- {dycw_utilities-0.150.7 → dycw_utilities-0.150.8}/src/utilities/warnings.py +0 -0
- {dycw_utilities-0.150.7 → dycw_utilities-0.150.8}/src/utilities/whenever.py +0 -0
- {dycw_utilities-0.150.7 → dycw_utilities-0.150.8}/src/utilities/zipfile.py +0 -0
- {dycw_utilities-0.150.7 → dycw_utilities-0.150.8}/src/utilities/zoneinfo.py +0 -0
@@ -103,7 +103,7 @@ dependencies = [
|
|
103
103
|
name = "dycw-utilities"
|
104
104
|
readme = "README.md"
|
105
105
|
requires-python = ">= 3.12"
|
106
|
-
version = "0.150.
|
106
|
+
version = "0.150.8"
|
107
107
|
|
108
108
|
[project.entry-points.pytest11]
|
109
109
|
pytest-randomly = "utilities.pytest_plugins.pytest_randomly"
|
@@ -136,7 +136,7 @@ test = [
|
|
136
136
|
# bump-my-version
|
137
137
|
[tool.bumpversion]
|
138
138
|
allow_dirty = true
|
139
|
-
current_version = "0.150.
|
139
|
+
current_version = "0.150.8"
|
140
140
|
|
141
141
|
[[tool.bumpversion.files]]
|
142
142
|
filename = "src/utilities/__init__.py"
|
@@ -31,6 +31,7 @@ from utilities.text import (
|
|
31
31
|
parse_bool,
|
32
32
|
parse_none,
|
33
33
|
repr_encode,
|
34
|
+
secret_str,
|
34
35
|
snake_case,
|
35
36
|
split_key_value_pairs,
|
36
37
|
split_str,
|
@@ -105,6 +106,64 @@ class TestReprEncode:
|
|
105
106
|
assert result == expected
|
106
107
|
|
107
108
|
|
109
|
+
class TestSecretStr:
|
110
|
+
def test_main(self) -> None:
|
111
|
+
s = secret_str("text")
|
112
|
+
assert repr(s) == secret_str._REPR
|
113
|
+
assert str(s) == secret_str._REPR
|
114
|
+
|
115
|
+
|
116
|
+
class TestSnakeCase:
|
117
|
+
@given(
|
118
|
+
case=sampled_from([
|
119
|
+
("API", "api"),
|
120
|
+
("APIResponse", "api_response"),
|
121
|
+
("ApplicationController", "application_controller"),
|
122
|
+
("Area51Controller", "area51_controller"),
|
123
|
+
("FreeBSD", "free_bsd"),
|
124
|
+
("HTML", "html"),
|
125
|
+
("HTMLTidy", "html_tidy"),
|
126
|
+
("HTMLTidyGenerator", "html_tidy_generator"),
|
127
|
+
("HTMLVersion", "html_version"),
|
128
|
+
("NoHTML", "no_html"),
|
129
|
+
("One Two", "one_two"),
|
130
|
+
("One Two", "one_two"),
|
131
|
+
("One Two", "one_two"),
|
132
|
+
("OneTwo", "one_two"),
|
133
|
+
("One_Two", "one_two"),
|
134
|
+
("One__Two", "one_two"),
|
135
|
+
("One___Two", "one_two"),
|
136
|
+
("Product", "product"),
|
137
|
+
("SpecialGuest", "special_guest"),
|
138
|
+
("Text", "text"),
|
139
|
+
("Text123", "text123"),
|
140
|
+
("_APIResponse_", "_api_response_"),
|
141
|
+
("_API_", "_api_"),
|
142
|
+
("__APIResponse__", "_api_response_"),
|
143
|
+
("__API__", "_api_"),
|
144
|
+
("__impliedVolatility_", "_implied_volatility_"),
|
145
|
+
("_itemID", "_item_id"),
|
146
|
+
("_lastPrice__", "_last_price_"),
|
147
|
+
("_symbol", "_symbol"),
|
148
|
+
("aB", "a_b"),
|
149
|
+
("changePct", "change_pct"),
|
150
|
+
("changePct_", "change_pct_"),
|
151
|
+
("impliedVolatility", "implied_volatility"),
|
152
|
+
("lastPrice", "last_price"),
|
153
|
+
("memMB", "mem_mb"),
|
154
|
+
("sizeX", "size_x"),
|
155
|
+
("symbol", "symbol"),
|
156
|
+
("testNTest", "test_n_test"),
|
157
|
+
("text", "text"),
|
158
|
+
("text123", "text123"),
|
159
|
+
])
|
160
|
+
)
|
161
|
+
def test_main(self, *, case: tuple[str, str]) -> None:
|
162
|
+
text, expected = case
|
163
|
+
result = snake_case(text)
|
164
|
+
assert result == expected
|
165
|
+
|
166
|
+
|
108
167
|
class TestSplitKeyValuePairs:
|
109
168
|
@given(
|
110
169
|
case=sampled_from([
|
@@ -237,57 +296,6 @@ class TestSplitAndJoinStr:
|
|
237
296
|
_ = split_str("1,(22,333", brackets=[("(", ")")])
|
238
297
|
|
239
298
|
|
240
|
-
class TestSnakeCase:
|
241
|
-
@given(
|
242
|
-
case=sampled_from([
|
243
|
-
("API", "api"),
|
244
|
-
("APIResponse", "api_response"),
|
245
|
-
("ApplicationController", "application_controller"),
|
246
|
-
("Area51Controller", "area51_controller"),
|
247
|
-
("FreeBSD", "free_bsd"),
|
248
|
-
("HTML", "html"),
|
249
|
-
("HTMLTidy", "html_tidy"),
|
250
|
-
("HTMLTidyGenerator", "html_tidy_generator"),
|
251
|
-
("HTMLVersion", "html_version"),
|
252
|
-
("NoHTML", "no_html"),
|
253
|
-
("One Two", "one_two"),
|
254
|
-
("One Two", "one_two"),
|
255
|
-
("One Two", "one_two"),
|
256
|
-
("OneTwo", "one_two"),
|
257
|
-
("One_Two", "one_two"),
|
258
|
-
("One__Two", "one_two"),
|
259
|
-
("One___Two", "one_two"),
|
260
|
-
("Product", "product"),
|
261
|
-
("SpecialGuest", "special_guest"),
|
262
|
-
("Text", "text"),
|
263
|
-
("Text123", "text123"),
|
264
|
-
("_APIResponse_", "_api_response_"),
|
265
|
-
("_API_", "_api_"),
|
266
|
-
("__APIResponse__", "_api_response_"),
|
267
|
-
("__API__", "_api_"),
|
268
|
-
("__impliedVolatility_", "_implied_volatility_"),
|
269
|
-
("_itemID", "_item_id"),
|
270
|
-
("_lastPrice__", "_last_price_"),
|
271
|
-
("_symbol", "_symbol"),
|
272
|
-
("aB", "a_b"),
|
273
|
-
("changePct", "change_pct"),
|
274
|
-
("changePct_", "change_pct_"),
|
275
|
-
("impliedVolatility", "implied_volatility"),
|
276
|
-
("lastPrice", "last_price"),
|
277
|
-
("memMB", "mem_mb"),
|
278
|
-
("sizeX", "size_x"),
|
279
|
-
("symbol", "symbol"),
|
280
|
-
("testNTest", "test_n_test"),
|
281
|
-
("text", "text"),
|
282
|
-
("text123", "text123"),
|
283
|
-
])
|
284
|
-
)
|
285
|
-
def test_main(self, *, case: tuple[str, str]) -> None:
|
286
|
-
text, expected = case
|
287
|
-
result = snake_case(text)
|
288
|
-
assert result == expected
|
289
|
-
|
290
|
-
|
291
299
|
class TestStrEncode:
|
292
300
|
@given(n=integers())
|
293
301
|
def test_main(self, *, n: int) -> None:
|
@@ -9,7 +9,7 @@ from re import IGNORECASE, Match, escape, search
|
|
9
9
|
from textwrap import dedent
|
10
10
|
from threading import get_ident
|
11
11
|
from time import time_ns
|
12
|
-
from typing import TYPE_CHECKING, Any, Literal, overload, override
|
12
|
+
from typing import TYPE_CHECKING, Any, ClassVar, Literal, overload, override
|
13
13
|
from uuid import uuid4
|
14
14
|
|
15
15
|
from utilities.iterables import CheckDuplicatesError, check_duplicates, transpose
|
@@ -385,6 +385,24 @@ def _escape_separator(*, separator: str = DEFAULT_SEPARATOR) -> str:
|
|
385
385
|
##
|
386
386
|
|
387
387
|
|
388
|
+
class secret_str(str): # noqa: N801
|
389
|
+
"""A string with an obfuscated representation."""
|
390
|
+
|
391
|
+
__slots__ = ()
|
392
|
+
_REPR: ClassVar[str] = "***"
|
393
|
+
|
394
|
+
@override
|
395
|
+
def __repr__(self) -> str:
|
396
|
+
return self._REPR
|
397
|
+
|
398
|
+
@override
|
399
|
+
def __str__(self) -> str:
|
400
|
+
return self._REPR
|
401
|
+
|
402
|
+
|
403
|
+
##
|
404
|
+
|
405
|
+
|
388
406
|
def str_encode(obj: Any, /) -> bytes:
|
389
407
|
"""Return the string representation of the object encoded as bytes."""
|
390
408
|
return str(obj).encode()
|
@@ -424,6 +442,7 @@ __all__ = [
|
|
424
442
|
"parse_bool",
|
425
443
|
"parse_none",
|
426
444
|
"repr_encode",
|
445
|
+
"secret_str",
|
427
446
|
"snake_case",
|
428
447
|
"split_key_value_pairs",
|
429
448
|
"split_str",
|
File without changes
|
File without changes
|
File without changes
|
File without changes
|
File without changes
|
File without changes
|
{dycw_utilities-0.150.7 → dycw_utilities-0.150.8}/src/tests/modules/package_missing/__init__.py
RENAMED
File without changes
|
{dycw_utilities-0.150.7 → dycw_utilities-0.150.8}/src/tests/modules/package_missing/module.py
RENAMED
File without changes
|
{dycw_utilities-0.150.7 → dycw_utilities-0.150.8}/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.150.7 → dycw_utilities-0.150.8}/src/tests/modules/package_without/__init__.py
RENAMED
File without changes
|
{dycw_utilities-0.150.7 → dycw_utilities-0.150.8}/src/tests/modules/package_without/module_1.py
RENAMED
File without changes
|
{dycw_utilities-0.150.7 → dycw_utilities-0.150.8}/src/tests/modules/package_without/module_2.py
RENAMED
File without changes
|
File without changes
|
File without changes
|
File without changes
|
File without changes
|
File without changes
|
File without changes
|
File without changes
|
File without changes
|
File without changes
|
File without changes
|
File without changes
|
File without changes
|
File without changes
|
File without changes
|
File without changes
|
File without changes
|
File without changes
|
File without changes
|
File without changes
|
File without changes
|
File without changes
|
File without changes
|
File without changes
|
File without changes
|
File without changes
|
File without changes
|
File without changes
|
File without changes
|
File without changes
|
File without changes
|
File without changes
|
File without changes
|
File without changes
|
File without changes
|
File without changes
|
File without changes
|
File without changes
|
File without changes
|
File without changes
|
File without changes
|
File without changes
|
File without changes
|
File without changes
|
File without changes
|
File without changes
|
File without changes
|
File without changes
|
File without changes
|
File without changes
|
File without changes
|
File without changes
|
File without changes
|
File without changes
|
File without changes
|
File without changes
|
File without changes
|
File without changes
|
File without changes
|
File without changes
|
File without changes
|
File without changes
|
File without changes
|
File without changes
|
File without changes
|
File without changes
|
File without changes
|
File without changes
|
File without changes
|
File without changes
|
File without changes
|
File without changes
|
File without changes
|
File without changes
|
File without changes
|
File without changes
|
File without changes
|
File without changes
|
File without changes
|
File without changes
|
File without changes
|
File without changes
|
File without changes
|
File without changes
|
File without changes
|
File without changes
|
File without changes
|
File without changes
|
File without changes
|
File without changes
|
File without changes
|
File without changes
|
File without changes
|
{dycw_utilities-0.150.7 → dycw_utilities-0.150.8}/src/tests/test_typing_funcs/with_future.py
RENAMED
File without changes
|
File without changes
|
File without changes
|
File without changes
|
File without changes
|
File without changes
|
File without changes
|
File without changes
|
File without changes
|
File without changes
|
File without changes
|
File without changes
|
File without changes
|
File without changes
|
File without changes
|
File without changes
|
File without changes
|
File without changes
|
File without changes
|
File without changes
|
File without changes
|
File without changes
|
File without changes
|
File without changes
|
File without changes
|
File without changes
|
File without changes
|
File without changes
|
File without changes
|
File without changes
|
File without changes
|
File without changes
|
File without changes
|
File without changes
|
File without changes
|
File without changes
|
File without changes
|
File without changes
|
File without changes
|
File without changes
|
File without changes
|
File without changes
|
File without changes
|
File without changes
|
File without changes
|
File without changes
|
File without changes
|
File without changes
|
File without changes
|
File without changes
|
File without changes
|
File without changes
|
File without changes
|
File without changes
|
File without changes
|
File without changes
|
File without changes
|
File without changes
|
File without changes
|
File without changes
|
File without changes
|
File without changes
|
File without changes
|
File without changes
|
File without changes
|
File without changes
|
File without changes
|
File without changes
|
File without changes
|
File without changes
|
{dycw_utilities-0.150.7 → dycw_utilities-0.150.8}/src/utilities/pytest_plugins/pytest_randomly.py
RENAMED
File without changes
|
{dycw_utilities-0.150.7 → dycw_utilities-0.150.8}/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
|