dycw-utilities 0.147.0__tar.gz → 0.147.1__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.147.0 → dycw_utilities-0.147.1}/PKG-INFO +1 -1
- {dycw_utilities-0.147.0 → dycw_utilities-0.147.1}/pyproject.toml +2 -2
- {dycw_utilities-0.147.0 → dycw_utilities-0.147.1}/src/tests/test_traceback.py +13 -6
- {dycw_utilities-0.147.0 → dycw_utilities-0.147.1}/src/utilities/__init__.py +1 -1
- {dycw_utilities-0.147.0 → dycw_utilities-0.147.1}/src/utilities/slack_sdk.py +1 -1
- {dycw_utilities-0.147.0 → dycw_utilities-0.147.1}/src/utilities/traceback.py +13 -3
- {dycw_utilities-0.147.0 → dycw_utilities-0.147.1}/.gitignore +0 -0
- {dycw_utilities-0.147.0 → dycw_utilities-0.147.1}/LICENSE +0 -0
- {dycw_utilities-0.147.0 → dycw_utilities-0.147.1}/README.md +0 -0
- {dycw_utilities-0.147.0 → dycw_utilities-0.147.1}/src/tests/__init__.py +0 -0
- {dycw_utilities-0.147.0 → dycw_utilities-0.147.1}/src/tests/conftest.py +0 -0
- {dycw_utilities-0.147.0 → dycw_utilities-0.147.1}/src/tests/modules/__init__.py +0 -0
- {dycw_utilities-0.147.0 → dycw_utilities-0.147.1}/src/tests/modules/package_missing/__init__.py +0 -0
- {dycw_utilities-0.147.0 → dycw_utilities-0.147.1}/src/tests/modules/package_missing/module.py +0 -0
- {dycw_utilities-0.147.0 → dycw_utilities-0.147.1}/src/tests/modules/package_with/__init__.py +0 -0
- {dycw_utilities-0.147.0 → dycw_utilities-0.147.1}/src/tests/modules/package_with/outer_1.py +0 -0
- {dycw_utilities-0.147.0 → dycw_utilities-0.147.1}/src/tests/modules/package_with/outer_2.py +0 -0
- {dycw_utilities-0.147.0 → dycw_utilities-0.147.1}/src/tests/modules/package_with/subpackage/__init__.py +0 -0
- {dycw_utilities-0.147.0 → dycw_utilities-0.147.1}/src/tests/modules/package_with/subpackage/inner_1.py +0 -0
- {dycw_utilities-0.147.0 → dycw_utilities-0.147.1}/src/tests/modules/package_with/subpackage/inner_2.py +0 -0
- {dycw_utilities-0.147.0 → dycw_utilities-0.147.1}/src/tests/modules/package_with/subpackage/inner_3.py +0 -0
- {dycw_utilities-0.147.0 → dycw_utilities-0.147.1}/src/tests/modules/package_without/__init__.py +0 -0
- {dycw_utilities-0.147.0 → dycw_utilities-0.147.1}/src/tests/modules/package_without/module_1.py +0 -0
- {dycw_utilities-0.147.0 → dycw_utilities-0.147.1}/src/tests/modules/package_without/module_2.py +0 -0
- {dycw_utilities-0.147.0 → dycw_utilities-0.147.1}/src/tests/modules/standalone.py +0 -0
- {dycw_utilities-0.147.0 → dycw_utilities-0.147.1}/src/tests/modules/with_imports.py +0 -0
- {dycw_utilities-0.147.0 → dycw_utilities-0.147.1}/src/tests/regressions/test_pytest_regressions/TestMultipleRegressionFixtures__test_main__obj.json +0 -0
- {dycw_utilities-0.147.0 → dycw_utilities-0.147.1}/src/tests/regressions/test_pytest_regressions/TestMultipleRegressionFixtures__test_main__series.json +0 -0
- {dycw_utilities-0.147.0 → dycw_utilities-0.147.1}/src/tests/regressions/test_pytest_regressions/TestOrjsonRegressionFixture__test_dataclass_int.json +0 -0
- {dycw_utilities-0.147.0 → dycw_utilities-0.147.1}/src/tests/regressions/test_pytest_regressions/TestOrjsonRegressionFixture__test_dataclass_literal__false.json +0 -0
- {dycw_utilities-0.147.0 → dycw_utilities-0.147.1}/src/tests/regressions/test_pytest_regressions/TestOrjsonRegressionFixture__test_dataclass_literal__true.json +0 -0
- {dycw_utilities-0.147.0 → dycw_utilities-0.147.1}/src/tests/regressions/test_pytest_regressions/TestOrjsonRegressionFixture__test_dataclass_nested.json +0 -0
- {dycw_utilities-0.147.0 → dycw_utilities-0.147.1}/src/tests/regressions/test_pytest_regressions/TestPolarsRegressionFixture__test_dataframe.json +0 -0
- {dycw_utilities-0.147.0 → dycw_utilities-0.147.1}/src/tests/regressions/test_pytest_regressions/TestPolarsRegressionFixture__test_series.json +0 -0
- {dycw_utilities-0.147.0 → dycw_utilities-0.147.1}/src/tests/test_altair.py +0 -0
- {dycw_utilities-0.147.0 → dycw_utilities-0.147.1}/src/tests/test_asyncio.py +0 -0
- {dycw_utilities-0.147.0 → dycw_utilities-0.147.1}/src/tests/test_atomicwrites.py +0 -0
- {dycw_utilities-0.147.0 → dycw_utilities-0.147.1}/src/tests/test_atools.py +0 -0
- {dycw_utilities-0.147.0 → dycw_utilities-0.147.1}/src/tests/test_cachetools.py +0 -0
- {dycw_utilities-0.147.0 → dycw_utilities-0.147.1}/src/tests/test_click.py +0 -0
- {dycw_utilities-0.147.0 → dycw_utilities-0.147.1}/src/tests/test_concurrent.py +0 -0
- {dycw_utilities-0.147.0 → dycw_utilities-0.147.1}/src/tests/test_contextlib.py +0 -0
- {dycw_utilities-0.147.0 → dycw_utilities-0.147.1}/src/tests/test_contextvars.py +0 -0
- {dycw_utilities-0.147.0 → dycw_utilities-0.147.1}/src/tests/test_cryptography.py +0 -0
- {dycw_utilities-0.147.0 → dycw_utilities-0.147.1}/src/tests/test_cvxpy.py +0 -0
- {dycw_utilities-0.147.0 → dycw_utilities-0.147.1}/src/tests/test_dataclasses.py +0 -0
- {dycw_utilities-0.147.0 → dycw_utilities-0.147.1}/src/tests/test_enum.py +0 -0
- {dycw_utilities-0.147.0 → dycw_utilities-0.147.1}/src/tests/test_errors.py +0 -0
- {dycw_utilities-0.147.0 → dycw_utilities-0.147.1}/src/tests/test_eventkit.py +0 -0
- {dycw_utilities-0.147.0 → dycw_utilities-0.147.1}/src/tests/test_fastapi.py +0 -0
- {dycw_utilities-0.147.0 → dycw_utilities-0.147.1}/src/tests/test_fpdf2.py +0 -0
- {dycw_utilities-0.147.0 → dycw_utilities-0.147.1}/src/tests/test_functions.py +0 -0
- {dycw_utilities-0.147.0 → dycw_utilities-0.147.1}/src/tests/test_functools.py +0 -0
- {dycw_utilities-0.147.0 → dycw_utilities-0.147.1}/src/tests/test_getpass.py +0 -0
- {dycw_utilities-0.147.0 → dycw_utilities-0.147.1}/src/tests/test_gzip.py +0 -0
- {dycw_utilities-0.147.0 → dycw_utilities-0.147.1}/src/tests/test_hashlib.py +0 -0
- {dycw_utilities-0.147.0 → dycw_utilities-0.147.1}/src/tests/test_http.py +0 -0
- {dycw_utilities-0.147.0 → dycw_utilities-0.147.1}/src/tests/test_hypothesis.py +0 -0
- {dycw_utilities-0.147.0 → dycw_utilities-0.147.1}/src/tests/test_importlib.py +0 -0
- {dycw_utilities-0.147.0 → dycw_utilities-0.147.1}/src/tests/test_inflect.py +0 -0
- {dycw_utilities-0.147.0 → dycw_utilities-0.147.1}/src/tests/test_ipython.py +0 -0
- {dycw_utilities-0.147.0 → dycw_utilities-0.147.1}/src/tests/test_iterables.py +0 -0
- {dycw_utilities-0.147.0 → dycw_utilities-0.147.1}/src/tests/test_json.py +0 -0
- {dycw_utilities-0.147.0 → dycw_utilities-0.147.1}/src/tests/test_jupyter.py +0 -0
- {dycw_utilities-0.147.0 → dycw_utilities-0.147.1}/src/tests/test_libcst.py +0 -0
- {dycw_utilities-0.147.0 → dycw_utilities-0.147.1}/src/tests/test_lightweight_charts.py +0 -0
- {dycw_utilities-0.147.0 → dycw_utilities-0.147.1}/src/tests/test_logging.py +0 -0
- {dycw_utilities-0.147.0 → dycw_utilities-0.147.1}/src/tests/test_math.py +0 -0
- {dycw_utilities-0.147.0 → dycw_utilities-0.147.1}/src/tests/test_memory_profiler.py +0 -0
- {dycw_utilities-0.147.0 → dycw_utilities-0.147.1}/src/tests/test_modules.py +0 -0
- {dycw_utilities-0.147.0 → dycw_utilities-0.147.1}/src/tests/test_more_itertools.py +0 -0
- {dycw_utilities-0.147.0 → dycw_utilities-0.147.1}/src/tests/test_numpy.py +0 -0
- {dycw_utilities-0.147.0 → dycw_utilities-0.147.1}/src/tests/test_objects/__init__.py +0 -0
- {dycw_utilities-0.147.0 → dycw_utilities-0.147.1}/src/tests/test_objects/objects.py +0 -0
- {dycw_utilities-0.147.0 → dycw_utilities-0.147.1}/src/tests/test_operator.py +0 -0
- {dycw_utilities-0.147.0 → dycw_utilities-0.147.1}/src/tests/test_optuna.py +0 -0
- {dycw_utilities-0.147.0 → dycw_utilities-0.147.1}/src/tests/test_orjson.py +0 -0
- {dycw_utilities-0.147.0 → dycw_utilities-0.147.1}/src/tests/test_os.py +0 -0
- {dycw_utilities-0.147.0 → dycw_utilities-0.147.1}/src/tests/test_parse.py +0 -0
- {dycw_utilities-0.147.0 → dycw_utilities-0.147.1}/src/tests/test_pathlib.py +0 -0
- {dycw_utilities-0.147.0 → dycw_utilities-0.147.1}/src/tests/test_period.py +0 -0
- {dycw_utilities-0.147.0 → dycw_utilities-0.147.1}/src/tests/test_pickle.py +0 -0
- {dycw_utilities-0.147.0 → dycw_utilities-0.147.1}/src/tests/test_platform.py +0 -0
- {dycw_utilities-0.147.0 → dycw_utilities-0.147.1}/src/tests/test_polars.py +0 -0
- {dycw_utilities-0.147.0 → dycw_utilities-0.147.1}/src/tests/test_polars_ols.py +0 -0
- {dycw_utilities-0.147.0 → dycw_utilities-0.147.1}/src/tests/test_postgres.py +0 -0
- {dycw_utilities-0.147.0 → dycw_utilities-0.147.1}/src/tests/test_pottery.py +0 -0
- {dycw_utilities-0.147.0 → dycw_utilities-0.147.1}/src/tests/test_pqdm.py +0 -0
- {dycw_utilities-0.147.0 → dycw_utilities-0.147.1}/src/tests/test_psutil.py +0 -0
- {dycw_utilities-0.147.0 → dycw_utilities-0.147.1}/src/tests/test_pyinstrument.py +0 -0
- {dycw_utilities-0.147.0 → dycw_utilities-0.147.1}/src/tests/test_pytest.py +0 -0
- {dycw_utilities-0.147.0 → dycw_utilities-0.147.1}/src/tests/test_pytest_randomly.py +0 -0
- {dycw_utilities-0.147.0 → dycw_utilities-0.147.1}/src/tests/test_pytest_regressions.py +0 -0
- {dycw_utilities-0.147.0 → dycw_utilities-0.147.1}/src/tests/test_random.py +0 -0
- {dycw_utilities-0.147.0 → dycw_utilities-0.147.1}/src/tests/test_re.py +0 -0
- {dycw_utilities-0.147.0 → dycw_utilities-0.147.1}/src/tests/test_redis.py +0 -0
- {dycw_utilities-0.147.0 → dycw_utilities-0.147.1}/src/tests/test_reprlib.py +0 -0
- {dycw_utilities-0.147.0 → dycw_utilities-0.147.1}/src/tests/test_scipy.py +0 -0
- {dycw_utilities-0.147.0 → dycw_utilities-0.147.1}/src/tests/test_sentinel.py +0 -0
- {dycw_utilities-0.147.0 → dycw_utilities-0.147.1}/src/tests/test_shelve.py +0 -0
- {dycw_utilities-0.147.0 → dycw_utilities-0.147.1}/src/tests/test_slack_sdk.py +0 -0
- {dycw_utilities-0.147.0 → dycw_utilities-0.147.1}/src/tests/test_socket.py +0 -0
- {dycw_utilities-0.147.0 → dycw_utilities-0.147.1}/src/tests/test_sqlalchemy.py +0 -0
- {dycw_utilities-0.147.0 → dycw_utilities-0.147.1}/src/tests/test_sqlalchemy_polars.py +0 -0
- {dycw_utilities-0.147.0 → dycw_utilities-0.147.1}/src/tests/test_statsmodels.py +0 -0
- {dycw_utilities-0.147.0 → dycw_utilities-0.147.1}/src/tests/test_string.py +0 -0
- {dycw_utilities-0.147.0 → dycw_utilities-0.147.1}/src/tests/test_tempfile.py +0 -0
- {dycw_utilities-0.147.0 → dycw_utilities-0.147.1}/src/tests/test_text.py +0 -0
- {dycw_utilities-0.147.0 → dycw_utilities-0.147.1}/src/tests/test_threading.py +0 -0
- {dycw_utilities-0.147.0 → dycw_utilities-0.147.1}/src/tests/test_timer.py +0 -0
- {dycw_utilities-0.147.0 → dycw_utilities-0.147.1}/src/tests/test_typed_settings.py +0 -0
- {dycw_utilities-0.147.0 → dycw_utilities-0.147.1}/src/tests/test_types.py +0 -0
- {dycw_utilities-0.147.0 → dycw_utilities-0.147.1}/src/tests/test_typing.py +0 -0
- {dycw_utilities-0.147.0 → dycw_utilities-0.147.1}/src/tests/test_typing_funcs/__init__.py +0 -0
- {dycw_utilities-0.147.0 → dycw_utilities-0.147.1}/src/tests/test_typing_funcs/no_future.py +0 -0
- {dycw_utilities-0.147.0 → dycw_utilities-0.147.1}/src/tests/test_typing_funcs/with_future.py +0 -0
- {dycw_utilities-0.147.0 → dycw_utilities-0.147.1}/src/tests/test_tzdata.py +0 -0
- {dycw_utilities-0.147.0 → dycw_utilities-0.147.1}/src/tests/test_tzlocal.py +0 -0
- {dycw_utilities-0.147.0 → dycw_utilities-0.147.1}/src/tests/test_uuid.py +0 -0
- {dycw_utilities-0.147.0 → dycw_utilities-0.147.1}/src/tests/test_version.py +0 -0
- {dycw_utilities-0.147.0 → dycw_utilities-0.147.1}/src/tests/test_warnings.py +0 -0
- {dycw_utilities-0.147.0 → dycw_utilities-0.147.1}/src/tests/test_whenever.py +0 -0
- {dycw_utilities-0.147.0 → dycw_utilities-0.147.1}/src/tests/test_zipfile.py +0 -0
- {dycw_utilities-0.147.0 → dycw_utilities-0.147.1}/src/tests/test_zoneinfo.py +0 -0
- {dycw_utilities-0.147.0 → dycw_utilities-0.147.1}/src/utilities/altair.py +0 -0
- {dycw_utilities-0.147.0 → dycw_utilities-0.147.1}/src/utilities/asyncio.py +0 -0
- {dycw_utilities-0.147.0 → dycw_utilities-0.147.1}/src/utilities/atomicwrites.py +0 -0
- {dycw_utilities-0.147.0 → dycw_utilities-0.147.1}/src/utilities/atools.py +0 -0
- {dycw_utilities-0.147.0 → dycw_utilities-0.147.1}/src/utilities/cachetools.py +0 -0
- {dycw_utilities-0.147.0 → dycw_utilities-0.147.1}/src/utilities/click.py +0 -0
- {dycw_utilities-0.147.0 → dycw_utilities-0.147.1}/src/utilities/concurrent.py +0 -0
- {dycw_utilities-0.147.0 → dycw_utilities-0.147.1}/src/utilities/contextlib.py +0 -0
- {dycw_utilities-0.147.0 → dycw_utilities-0.147.1}/src/utilities/contextvars.py +0 -0
- {dycw_utilities-0.147.0 → dycw_utilities-0.147.1}/src/utilities/cryptography.py +0 -0
- {dycw_utilities-0.147.0 → dycw_utilities-0.147.1}/src/utilities/cvxpy.py +0 -0
- {dycw_utilities-0.147.0 → dycw_utilities-0.147.1}/src/utilities/dataclasses.py +0 -0
- {dycw_utilities-0.147.0 → dycw_utilities-0.147.1}/src/utilities/enum.py +0 -0
- {dycw_utilities-0.147.0 → dycw_utilities-0.147.1}/src/utilities/errors.py +0 -0
- {dycw_utilities-0.147.0 → dycw_utilities-0.147.1}/src/utilities/eventkit.py +0 -0
- {dycw_utilities-0.147.0 → dycw_utilities-0.147.1}/src/utilities/fastapi.py +0 -0
- {dycw_utilities-0.147.0 → dycw_utilities-0.147.1}/src/utilities/fpdf2.py +0 -0
- {dycw_utilities-0.147.0 → dycw_utilities-0.147.1}/src/utilities/functions.py +0 -0
- {dycw_utilities-0.147.0 → dycw_utilities-0.147.1}/src/utilities/functools.py +0 -0
- {dycw_utilities-0.147.0 → dycw_utilities-0.147.1}/src/utilities/getpass.py +0 -0
- {dycw_utilities-0.147.0 → dycw_utilities-0.147.1}/src/utilities/gzip.py +0 -0
- {dycw_utilities-0.147.0 → dycw_utilities-0.147.1}/src/utilities/hashlib.py +0 -0
- {dycw_utilities-0.147.0 → dycw_utilities-0.147.1}/src/utilities/http.py +0 -0
- {dycw_utilities-0.147.0 → dycw_utilities-0.147.1}/src/utilities/hypothesis.py +0 -0
- {dycw_utilities-0.147.0 → dycw_utilities-0.147.1}/src/utilities/importlib.py +0 -0
- {dycw_utilities-0.147.0 → dycw_utilities-0.147.1}/src/utilities/inflect.py +0 -0
- {dycw_utilities-0.147.0 → dycw_utilities-0.147.1}/src/utilities/ipython.py +0 -0
- {dycw_utilities-0.147.0 → dycw_utilities-0.147.1}/src/utilities/iterables.py +0 -0
- {dycw_utilities-0.147.0 → dycw_utilities-0.147.1}/src/utilities/json.py +0 -0
- {dycw_utilities-0.147.0 → dycw_utilities-0.147.1}/src/utilities/jupyter.py +0 -0
- {dycw_utilities-0.147.0 → dycw_utilities-0.147.1}/src/utilities/libcst.py +0 -0
- {dycw_utilities-0.147.0 → dycw_utilities-0.147.1}/src/utilities/lightweight_charts.py +0 -0
- {dycw_utilities-0.147.0 → dycw_utilities-0.147.1}/src/utilities/logging.py +0 -0
- {dycw_utilities-0.147.0 → dycw_utilities-0.147.1}/src/utilities/math.py +0 -0
- {dycw_utilities-0.147.0 → dycw_utilities-0.147.1}/src/utilities/memory_profiler.py +0 -0
- {dycw_utilities-0.147.0 → dycw_utilities-0.147.1}/src/utilities/modules.py +0 -0
- {dycw_utilities-0.147.0 → dycw_utilities-0.147.1}/src/utilities/more_itertools.py +0 -0
- {dycw_utilities-0.147.0 → dycw_utilities-0.147.1}/src/utilities/numpy.py +0 -0
- {dycw_utilities-0.147.0 → dycw_utilities-0.147.1}/src/utilities/operator.py +0 -0
- {dycw_utilities-0.147.0 → dycw_utilities-0.147.1}/src/utilities/optuna.py +0 -0
- {dycw_utilities-0.147.0 → dycw_utilities-0.147.1}/src/utilities/orjson.py +0 -0
- {dycw_utilities-0.147.0 → dycw_utilities-0.147.1}/src/utilities/os.py +0 -0
- {dycw_utilities-0.147.0 → dycw_utilities-0.147.1}/src/utilities/parse.py +0 -0
- {dycw_utilities-0.147.0 → dycw_utilities-0.147.1}/src/utilities/pathlib.py +0 -0
- {dycw_utilities-0.147.0 → dycw_utilities-0.147.1}/src/utilities/period.py +0 -0
- {dycw_utilities-0.147.0 → dycw_utilities-0.147.1}/src/utilities/pickle.py +0 -0
- {dycw_utilities-0.147.0 → dycw_utilities-0.147.1}/src/utilities/platform.py +0 -0
- {dycw_utilities-0.147.0 → dycw_utilities-0.147.1}/src/utilities/polars.py +0 -0
- {dycw_utilities-0.147.0 → dycw_utilities-0.147.1}/src/utilities/polars_ols.py +0 -0
- {dycw_utilities-0.147.0 → dycw_utilities-0.147.1}/src/utilities/postgres.py +0 -0
- {dycw_utilities-0.147.0 → dycw_utilities-0.147.1}/src/utilities/pottery.py +0 -0
- {dycw_utilities-0.147.0 → dycw_utilities-0.147.1}/src/utilities/pqdm.py +0 -0
- {dycw_utilities-0.147.0 → dycw_utilities-0.147.1}/src/utilities/psutil.py +0 -0
- {dycw_utilities-0.147.0 → dycw_utilities-0.147.1}/src/utilities/py.typed +0 -0
- {dycw_utilities-0.147.0 → dycw_utilities-0.147.1}/src/utilities/pyinstrument.py +0 -0
- {dycw_utilities-0.147.0 → dycw_utilities-0.147.1}/src/utilities/pytest.py +0 -0
- {dycw_utilities-0.147.0 → dycw_utilities-0.147.1}/src/utilities/pytest_plugins/__init__.py +0 -0
- {dycw_utilities-0.147.0 → dycw_utilities-0.147.1}/src/utilities/pytest_plugins/pytest_randomly.py +0 -0
- {dycw_utilities-0.147.0 → dycw_utilities-0.147.1}/src/utilities/pytest_plugins/pytest_regressions.py +0 -0
- {dycw_utilities-0.147.0 → dycw_utilities-0.147.1}/src/utilities/pytest_regressions.py +0 -0
- {dycw_utilities-0.147.0 → dycw_utilities-0.147.1}/src/utilities/random.py +0 -0
- {dycw_utilities-0.147.0 → dycw_utilities-0.147.1}/src/utilities/re.py +0 -0
- {dycw_utilities-0.147.0 → dycw_utilities-0.147.1}/src/utilities/redis.py +0 -0
- {dycw_utilities-0.147.0 → dycw_utilities-0.147.1}/src/utilities/reprlib.py +0 -0
- {dycw_utilities-0.147.0 → dycw_utilities-0.147.1}/src/utilities/scipy.py +0 -0
- {dycw_utilities-0.147.0 → dycw_utilities-0.147.1}/src/utilities/sentinel.py +0 -0
- {dycw_utilities-0.147.0 → dycw_utilities-0.147.1}/src/utilities/shelve.py +0 -0
- {dycw_utilities-0.147.0 → dycw_utilities-0.147.1}/src/utilities/socket.py +0 -0
- {dycw_utilities-0.147.0 → dycw_utilities-0.147.1}/src/utilities/sqlalchemy.py +0 -0
- {dycw_utilities-0.147.0 → dycw_utilities-0.147.1}/src/utilities/sqlalchemy_polars.py +0 -0
- {dycw_utilities-0.147.0 → dycw_utilities-0.147.1}/src/utilities/statsmodels.py +0 -0
- {dycw_utilities-0.147.0 → dycw_utilities-0.147.1}/src/utilities/string.py +0 -0
- {dycw_utilities-0.147.0 → dycw_utilities-0.147.1}/src/utilities/tempfile.py +0 -0
- {dycw_utilities-0.147.0 → dycw_utilities-0.147.1}/src/utilities/text.py +0 -0
- {dycw_utilities-0.147.0 → dycw_utilities-0.147.1}/src/utilities/threading.py +0 -0
- {dycw_utilities-0.147.0 → dycw_utilities-0.147.1}/src/utilities/timer.py +0 -0
- {dycw_utilities-0.147.0 → dycw_utilities-0.147.1}/src/utilities/typed_settings.py +0 -0
- {dycw_utilities-0.147.0 → dycw_utilities-0.147.1}/src/utilities/types.py +0 -0
- {dycw_utilities-0.147.0 → dycw_utilities-0.147.1}/src/utilities/typing.py +0 -0
- {dycw_utilities-0.147.0 → dycw_utilities-0.147.1}/src/utilities/tzdata.py +0 -0
- {dycw_utilities-0.147.0 → dycw_utilities-0.147.1}/src/utilities/tzlocal.py +0 -0
- {dycw_utilities-0.147.0 → dycw_utilities-0.147.1}/src/utilities/uuid.py +0 -0
- {dycw_utilities-0.147.0 → dycw_utilities-0.147.1}/src/utilities/version.py +0 -0
- {dycw_utilities-0.147.0 → dycw_utilities-0.147.1}/src/utilities/warnings.py +0 -0
- {dycw_utilities-0.147.0 → dycw_utilities-0.147.1}/src/utilities/whenever.py +0 -0
- {dycw_utilities-0.147.0 → dycw_utilities-0.147.1}/src/utilities/zipfile.py +0 -0
- {dycw_utilities-0.147.0 → dycw_utilities-0.147.1}/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.147.
|
105
|
+
version = "0.147.1"
|
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.147.
|
138
|
+
current_version = "0.147.1"
|
139
139
|
|
140
140
|
[[tool.bumpversion.files]]
|
141
141
|
filename = "src/utilities/__init__.py"
|
@@ -8,7 +8,7 @@ from typing import TYPE_CHECKING
|
|
8
8
|
|
9
9
|
from hypothesis import given
|
10
10
|
from hypothesis.strategies import sampled_from
|
11
|
-
from pytest import CaptureFixture, raises
|
11
|
+
from pytest import CaptureFixture, mark, param, raises
|
12
12
|
|
13
13
|
from utilities.iterables import one
|
14
14
|
from utilities.traceback import (
|
@@ -17,10 +17,14 @@ from utilities.traceback import (
|
|
17
17
|
format_exception_stack,
|
18
18
|
make_except_hook,
|
19
19
|
)
|
20
|
+
from utilities.tzlocal import LOCAL_TIME_ZONE_NAME
|
21
|
+
from utilities.whenever import get_now
|
20
22
|
|
21
23
|
if TYPE_CHECKING:
|
22
24
|
from collections.abc import Iterable
|
23
25
|
|
26
|
+
from utilities.types import MaybeCallableZonedDateTime
|
27
|
+
|
24
28
|
|
25
29
|
class TestFormatExceptionStack:
|
26
30
|
@classmethod
|
@@ -41,15 +45,18 @@ class TestFormatExceptionStack:
|
|
41
45
|
result = format_exception_stack(error).splitlines()
|
42
46
|
self._assert_lines(result)
|
43
47
|
|
44
|
-
|
48
|
+
@mark.parametrize("start", [param(get_now), param(None)])
|
49
|
+
def test_header(self, *, start: MaybeCallableZonedDateTime) -> None:
|
45
50
|
try:
|
46
51
|
_ = self.func(1, 2, 3, 4, c=5, d=6, e=7)
|
47
52
|
except AssertionError as error:
|
48
|
-
result = format_exception_stack(
|
53
|
+
result = format_exception_stack(
|
54
|
+
error, header=True, start=start
|
55
|
+
).splitlines()
|
49
56
|
patterns = [
|
50
|
-
|
51
|
-
|
52
|
-
r"^Duration \|
|
57
|
+
rf"^Date/time \| \d{{8}}T\d{{6}}\[{LOCAL_TIME_ZONE_NAME}\]$",
|
58
|
+
rf"^Started \| (\d{{8}}T\d{{6}}\[{LOCAL_TIME_ZONE_NAME}\]|)$",
|
59
|
+
r"^Duration \| (-?PT\d+\.\d+S|)$",
|
53
60
|
r"^User \| .+$",
|
54
61
|
r"^Host \| .+$",
|
55
62
|
r"^Process ID \| \d+$",
|
@@ -66,7 +66,7 @@ class SendToSlackError(Exception):
|
|
66
66
|
def __str__(self) -> str:
|
67
67
|
code = self.response.status_code # pragma: no cover
|
68
68
|
phrase = HTTPStatus(code).phrase # pragma: no cover
|
69
|
-
return f"Error sending to Slack
|
69
|
+
return f"Error sending to Slack; got error code {code} ({phrase})" # pragma: no cover
|
70
70
|
|
71
71
|
|
72
72
|
__all__ = ["SendToSlackError", "send_to_slack", "send_to_slack_async"]
|
@@ -6,6 +6,7 @@ from dataclasses import dataclass
|
|
6
6
|
from functools import partial
|
7
7
|
from getpass import getuser
|
8
8
|
from itertools import repeat
|
9
|
+
from logging import exception
|
9
10
|
from os import getpid
|
10
11
|
from pathlib import Path
|
11
12
|
from socket import gethostname
|
@@ -26,6 +27,7 @@ from utilities.reprlib import (
|
|
26
27
|
RICH_MAX_WIDTH,
|
27
28
|
yield_mapping_repr,
|
28
29
|
)
|
30
|
+
from utilities.tzlocal import LOCAL_TIME_ZONE_NAME
|
29
31
|
from utilities.version import get_version
|
30
32
|
from utilities.whenever import (
|
31
33
|
format_compact,
|
@@ -98,7 +100,10 @@ def _yield_header_lines(
|
|
98
100
|
now = get_now_local()
|
99
101
|
start_use = to_zoned_date_time(date_time=start)
|
100
102
|
yield f"Date/time | {format_compact(now)}"
|
101
|
-
|
103
|
+
if start_use is None:
|
104
|
+
start_str = ""
|
105
|
+
else:
|
106
|
+
start_str = format_compact(start_use.to_tz(LOCAL_TIME_ZONE_NAME))
|
102
107
|
yield f"Started | {start_str}"
|
103
108
|
delta = None if start_use is None else (now - start_use)
|
104
109
|
delta_str = "" if delta is None else delta.format_common_iso()
|
@@ -277,9 +282,14 @@ def _make_except_hook_inner(
|
|
277
282
|
with writer(path, overwrite=True) as temp:
|
278
283
|
_ = temp.write_text(full)
|
279
284
|
if slack_url is not None: # pragma: no cover
|
280
|
-
from utilities.slack_sdk import send_to_slack
|
285
|
+
from utilities.slack_sdk import SendToSlackError, send_to_slack
|
286
|
+
|
287
|
+
try:
|
288
|
+
send_to_slack(slack_url, f"```{slim}```")
|
289
|
+
except SendToSlackError as error:
|
290
|
+
msg = str(error)
|
291
|
+
exception(msg) # noqa: LOG015
|
281
292
|
|
282
|
-
send_to_slack(slack_url, f"```{slim}```")
|
283
293
|
if to_bool(bool_=pudb): # pragma: no cover
|
284
294
|
from pudb import post_mortem
|
285
295
|
|
File without changes
|
File without changes
|
File without changes
|
File without changes
|
File without changes
|
File without changes
|
{dycw_utilities-0.147.0 → dycw_utilities-0.147.1}/src/tests/modules/package_missing/__init__.py
RENAMED
File without changes
|
{dycw_utilities-0.147.0 → dycw_utilities-0.147.1}/src/tests/modules/package_missing/module.py
RENAMED
File without changes
|
{dycw_utilities-0.147.0 → dycw_utilities-0.147.1}/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.147.0 → dycw_utilities-0.147.1}/src/tests/modules/package_without/__init__.py
RENAMED
File without changes
|
{dycw_utilities-0.147.0 → dycw_utilities-0.147.1}/src/tests/modules/package_without/module_1.py
RENAMED
File without changes
|
{dycw_utilities-0.147.0 → dycw_utilities-0.147.1}/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
|
{dycw_utilities-0.147.0 → dycw_utilities-0.147.1}/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
|
{dycw_utilities-0.147.0 → dycw_utilities-0.147.1}/src/utilities/pytest_plugins/pytest_randomly.py
RENAMED
File without changes
|
{dycw_utilities-0.147.0 → dycw_utilities-0.147.1}/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
|