dycw-utilities 0.129.3__tar.gz → 0.129.5__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.129.3 → dycw_utilities-0.129.5}/PKG-INFO +1 -1
- {dycw_utilities-0.129.3 → dycw_utilities-0.129.5}/pyproject.toml +2 -2
- {dycw_utilities-0.129.3 → dycw_utilities-0.129.5}/src/tests/test_logging.py +47 -71
- {dycw_utilities-0.129.3 → dycw_utilities-0.129.5}/src/utilities/__init__.py +1 -1
- {dycw_utilities-0.129.3 → dycw_utilities-0.129.5}/src/utilities/logging.py +3 -28
- {dycw_utilities-0.129.3 → dycw_utilities-0.129.5}/.gitignore +0 -0
- {dycw_utilities-0.129.3 → dycw_utilities-0.129.5}/LICENSE +0 -0
- {dycw_utilities-0.129.3 → dycw_utilities-0.129.5}/README.md +0 -0
- {dycw_utilities-0.129.3 → dycw_utilities-0.129.5}/src/tests/__init__.py +0 -0
- {dycw_utilities-0.129.3 → dycw_utilities-0.129.5}/src/tests/conftest.py +0 -0
- {dycw_utilities-0.129.3 → dycw_utilities-0.129.5}/src/tests/modules/__init__.py +0 -0
- {dycw_utilities-0.129.3 → dycw_utilities-0.129.5}/src/tests/modules/package_missing/__init__.py +0 -0
- {dycw_utilities-0.129.3 → dycw_utilities-0.129.5}/src/tests/modules/package_missing/module.py +0 -0
- {dycw_utilities-0.129.3 → dycw_utilities-0.129.5}/src/tests/modules/package_with/__init__.py +0 -0
- {dycw_utilities-0.129.3 → dycw_utilities-0.129.5}/src/tests/modules/package_with/outer_1.py +0 -0
- {dycw_utilities-0.129.3 → dycw_utilities-0.129.5}/src/tests/modules/package_with/outer_2.py +0 -0
- {dycw_utilities-0.129.3 → dycw_utilities-0.129.5}/src/tests/modules/package_with/subpackage/__init__.py +0 -0
- {dycw_utilities-0.129.3 → dycw_utilities-0.129.5}/src/tests/modules/package_with/subpackage/inner_1.py +0 -0
- {dycw_utilities-0.129.3 → dycw_utilities-0.129.5}/src/tests/modules/package_with/subpackage/inner_2.py +0 -0
- {dycw_utilities-0.129.3 → dycw_utilities-0.129.5}/src/tests/modules/package_with/subpackage/inner_3.py +0 -0
- {dycw_utilities-0.129.3 → dycw_utilities-0.129.5}/src/tests/modules/package_without/__init__.py +0 -0
- {dycw_utilities-0.129.3 → dycw_utilities-0.129.5}/src/tests/modules/package_without/module_1.py +0 -0
- {dycw_utilities-0.129.3 → dycw_utilities-0.129.5}/src/tests/modules/package_without/module_2.py +0 -0
- {dycw_utilities-0.129.3 → dycw_utilities-0.129.5}/src/tests/modules/standalone.py +0 -0
- {dycw_utilities-0.129.3 → dycw_utilities-0.129.5}/src/tests/modules/with_imports.py +0 -0
- {dycw_utilities-0.129.3 → dycw_utilities-0.129.5}/src/tests/regressions/test_pytest_regressions/TestMultipleRegressionFixtures__test_main__obj.json +0 -0
- {dycw_utilities-0.129.3 → dycw_utilities-0.129.5}/src/tests/regressions/test_pytest_regressions/TestMultipleRegressionFixtures__test_main__series.json +0 -0
- {dycw_utilities-0.129.3 → dycw_utilities-0.129.5}/src/tests/regressions/test_pytest_regressions/TestOrjsonRegressionFixture__test_dataclass_int.json +0 -0
- {dycw_utilities-0.129.3 → dycw_utilities-0.129.5}/src/tests/regressions/test_pytest_regressions/TestOrjsonRegressionFixture__test_dataclass_literal__false.json +0 -0
- {dycw_utilities-0.129.3 → dycw_utilities-0.129.5}/src/tests/regressions/test_pytest_regressions/TestOrjsonRegressionFixture__test_dataclass_literal__true.json +0 -0
- {dycw_utilities-0.129.3 → dycw_utilities-0.129.5}/src/tests/regressions/test_pytest_regressions/TestOrjsonRegressionFixture__test_dataclass_nested.json +0 -0
- {dycw_utilities-0.129.3 → dycw_utilities-0.129.5}/src/tests/regressions/test_pytest_regressions/TestPolarsRegressionFixture__test_dataframe.json +0 -0
- {dycw_utilities-0.129.3 → dycw_utilities-0.129.5}/src/tests/regressions/test_pytest_regressions/TestPolarsRegressionFixture__test_series.json +0 -0
- {dycw_utilities-0.129.3 → dycw_utilities-0.129.5}/src/tests/test_altair.py +0 -0
- {dycw_utilities-0.129.3 → dycw_utilities-0.129.5}/src/tests/test_asyncio.py +0 -0
- {dycw_utilities-0.129.3 → dycw_utilities-0.129.5}/src/tests/test_asyncio_classes/__init__.py +0 -0
- {dycw_utilities-0.129.3 → dycw_utilities-0.129.5}/src/tests/test_asyncio_classes/loopers.py +0 -0
- {dycw_utilities-0.129.3 → dycw_utilities-0.129.5}/src/tests/test_asyncio_classes/redis.py +0 -0
- {dycw_utilities-0.129.3 → dycw_utilities-0.129.5}/src/tests/test_atomicwrites.py +0 -0
- {dycw_utilities-0.129.3 → dycw_utilities-0.129.5}/src/tests/test_atools.py +0 -0
- {dycw_utilities-0.129.3 → dycw_utilities-0.129.5}/src/tests/test_cachetools.py +0 -0
- {dycw_utilities-0.129.3 → dycw_utilities-0.129.5}/src/tests/test_click.py +0 -0
- {dycw_utilities-0.129.3 → dycw_utilities-0.129.5}/src/tests/test_concurrent.py +0 -0
- {dycw_utilities-0.129.3 → dycw_utilities-0.129.5}/src/tests/test_contextlib.py +0 -0
- {dycw_utilities-0.129.3 → dycw_utilities-0.129.5}/src/tests/test_contextvars.py +0 -0
- {dycw_utilities-0.129.3 → dycw_utilities-0.129.5}/src/tests/test_cryptography.py +0 -0
- {dycw_utilities-0.129.3 → dycw_utilities-0.129.5}/src/tests/test_cvxpy.py +0 -0
- {dycw_utilities-0.129.3 → dycw_utilities-0.129.5}/src/tests/test_dataclasses.py +0 -0
- {dycw_utilities-0.129.3 → dycw_utilities-0.129.5}/src/tests/test_datetime.py +0 -0
- {dycw_utilities-0.129.3 → dycw_utilities-0.129.5}/src/tests/test_enum.py +0 -0
- {dycw_utilities-0.129.3 → dycw_utilities-0.129.5}/src/tests/test_errors.py +0 -0
- {dycw_utilities-0.129.3 → dycw_utilities-0.129.5}/src/tests/test_eventkit.py +0 -0
- {dycw_utilities-0.129.3 → dycw_utilities-0.129.5}/src/tests/test_fastapi.py +0 -0
- {dycw_utilities-0.129.3 → dycw_utilities-0.129.5}/src/tests/test_fpdf2.py +0 -0
- {dycw_utilities-0.129.3 → dycw_utilities-0.129.5}/src/tests/test_functions.py +0 -0
- {dycw_utilities-0.129.3 → dycw_utilities-0.129.5}/src/tests/test_functools.py +0 -0
- {dycw_utilities-0.129.3 → dycw_utilities-0.129.5}/src/tests/test_getpass.py +0 -0
- {dycw_utilities-0.129.3 → dycw_utilities-0.129.5}/src/tests/test_hashlib.py +0 -0
- {dycw_utilities-0.129.3 → dycw_utilities-0.129.5}/src/tests/test_http.py +0 -0
- {dycw_utilities-0.129.3 → dycw_utilities-0.129.5}/src/tests/test_hypothesis.py +0 -0
- {dycw_utilities-0.129.3 → dycw_utilities-0.129.5}/src/tests/test_importlib.py +0 -0
- {dycw_utilities-0.129.3 → dycw_utilities-0.129.5}/src/tests/test_ipython.py +0 -0
- {dycw_utilities-0.129.3 → dycw_utilities-0.129.5}/src/tests/test_iterables.py +0 -0
- {dycw_utilities-0.129.3 → dycw_utilities-0.129.5}/src/tests/test_jupyter.py +0 -0
- {dycw_utilities-0.129.3 → dycw_utilities-0.129.5}/src/tests/test_libcst.py +0 -0
- {dycw_utilities-0.129.3 → dycw_utilities-0.129.5}/src/tests/test_lightweight_charts.py +0 -0
- {dycw_utilities-0.129.3 → dycw_utilities-0.129.5}/src/tests/test_loguru.py +0 -0
- {dycw_utilities-0.129.3 → dycw_utilities-0.129.5}/src/tests/test_luigi.py +0 -0
- {dycw_utilities-0.129.3 → dycw_utilities-0.129.5}/src/tests/test_math.py +0 -0
- {dycw_utilities-0.129.3 → dycw_utilities-0.129.5}/src/tests/test_memory_profiler.py +0 -0
- {dycw_utilities-0.129.3 → dycw_utilities-0.129.5}/src/tests/test_modules.py +0 -0
- {dycw_utilities-0.129.3 → dycw_utilities-0.129.5}/src/tests/test_more_itertools.py +0 -0
- {dycw_utilities-0.129.3 → dycw_utilities-0.129.5}/src/tests/test_numpy.py +0 -0
- {dycw_utilities-0.129.3 → dycw_utilities-0.129.5}/src/tests/test_operator.py +0 -0
- {dycw_utilities-0.129.3 → dycw_utilities-0.129.5}/src/tests/test_optuna.py +0 -0
- {dycw_utilities-0.129.3 → dycw_utilities-0.129.5}/src/tests/test_orjson.py +0 -0
- {dycw_utilities-0.129.3 → dycw_utilities-0.129.5}/src/tests/test_os.py +0 -0
- {dycw_utilities-0.129.3 → dycw_utilities-0.129.5}/src/tests/test_parse.py +0 -0
- {dycw_utilities-0.129.3 → dycw_utilities-0.129.5}/src/tests/test_pathlib.py +0 -0
- {dycw_utilities-0.129.3 → dycw_utilities-0.129.5}/src/tests/test_period.py +0 -0
- {dycw_utilities-0.129.3 → dycw_utilities-0.129.5}/src/tests/test_pickle.py +0 -0
- {dycw_utilities-0.129.3 → dycw_utilities-0.129.5}/src/tests/test_platform.py +0 -0
- {dycw_utilities-0.129.3 → dycw_utilities-0.129.5}/src/tests/test_polars.py +0 -0
- {dycw_utilities-0.129.3 → dycw_utilities-0.129.5}/src/tests/test_polars_ols.py +0 -0
- {dycw_utilities-0.129.3 → dycw_utilities-0.129.5}/src/tests/test_pottery.py +0 -0
- {dycw_utilities-0.129.3 → dycw_utilities-0.129.5}/src/tests/test_pqdm.py +0 -0
- {dycw_utilities-0.129.3 → dycw_utilities-0.129.5}/src/tests/test_psutil.py +0 -0
- {dycw_utilities-0.129.3 → dycw_utilities-0.129.5}/src/tests/test_pydantic.py +0 -0
- {dycw_utilities-0.129.3 → dycw_utilities-0.129.5}/src/tests/test_pyinstrument.py +0 -0
- {dycw_utilities-0.129.3 → dycw_utilities-0.129.5}/src/tests/test_pyrsistent.py +0 -0
- {dycw_utilities-0.129.3 → dycw_utilities-0.129.5}/src/tests/test_pytest.py +0 -0
- {dycw_utilities-0.129.3 → dycw_utilities-0.129.5}/src/tests/test_pytest_regressions.py +0 -0
- {dycw_utilities-0.129.3 → dycw_utilities-0.129.5}/src/tests/test_python_dotenv.py +0 -0
- {dycw_utilities-0.129.3 → dycw_utilities-0.129.5}/src/tests/test_random.py +0 -0
- {dycw_utilities-0.129.3 → dycw_utilities-0.129.5}/src/tests/test_re.py +0 -0
- {dycw_utilities-0.129.3 → dycw_utilities-0.129.5}/src/tests/test_redis.py +0 -0
- {dycw_utilities-0.129.3 → dycw_utilities-0.129.5}/src/tests/test_reprlib.py +0 -0
- {dycw_utilities-0.129.3 → dycw_utilities-0.129.5}/src/tests/test_scipy.py +0 -0
- {dycw_utilities-0.129.3 → dycw_utilities-0.129.5}/src/tests/test_sentinel.py +0 -0
- {dycw_utilities-0.129.3 → dycw_utilities-0.129.5}/src/tests/test_shelve.py +0 -0
- {dycw_utilities-0.129.3 → dycw_utilities-0.129.5}/src/tests/test_slack_sdk.py +0 -0
- {dycw_utilities-0.129.3 → dycw_utilities-0.129.5}/src/tests/test_socket.py +0 -0
- {dycw_utilities-0.129.3 → dycw_utilities-0.129.5}/src/tests/test_sqlalchemy.py +0 -0
- {dycw_utilities-0.129.3 → dycw_utilities-0.129.5}/src/tests/test_sqlalchemy_polars.py +0 -0
- {dycw_utilities-0.129.3 → dycw_utilities-0.129.5}/src/tests/test_statsmodel.py +0 -0
- {dycw_utilities-0.129.3 → dycw_utilities-0.129.5}/src/tests/test_streamlit.py +0 -0
- {dycw_utilities-0.129.3 → dycw_utilities-0.129.5}/src/tests/test_string.py +0 -0
- {dycw_utilities-0.129.3 → dycw_utilities-0.129.5}/src/tests/test_sys.py +0 -0
- {dycw_utilities-0.129.3 → dycw_utilities-0.129.5}/src/tests/test_tempfile.py +0 -0
- {dycw_utilities-0.129.3 → dycw_utilities-0.129.5}/src/tests/test_tenacity.py +0 -0
- {dycw_utilities-0.129.3 → dycw_utilities-0.129.5}/src/tests/test_text.py +0 -0
- {dycw_utilities-0.129.3 → dycw_utilities-0.129.5}/src/tests/test_threading.py +0 -0
- {dycw_utilities-0.129.3 → dycw_utilities-0.129.5}/src/tests/test_timer.py +0 -0
- {dycw_utilities-0.129.3 → dycw_utilities-0.129.5}/src/tests/test_traceback.py +0 -0
- {dycw_utilities-0.129.3 → dycw_utilities-0.129.5}/src/tests/test_traceback_funcs/__init__.py +0 -0
- {dycw_utilities-0.129.3 → dycw_utilities-0.129.5}/src/tests/test_traceback_funcs/chain.py +0 -0
- {dycw_utilities-0.129.3 → dycw_utilities-0.129.5}/src/tests/test_traceback_funcs/decorated_async.py +0 -0
- {dycw_utilities-0.129.3 → dycw_utilities-0.129.5}/src/tests/test_traceback_funcs/decorated_sync.py +0 -0
- {dycw_utilities-0.129.3 → dycw_utilities-0.129.5}/src/tests/test_traceback_funcs/error_bind.py +0 -0
- {dycw_utilities-0.129.3 → dycw_utilities-0.129.5}/src/tests/test_traceback_funcs/many.py +0 -0
- {dycw_utilities-0.129.3 → dycw_utilities-0.129.5}/src/tests/test_traceback_funcs/one.py +0 -0
- {dycw_utilities-0.129.3 → dycw_utilities-0.129.5}/src/tests/test_traceback_funcs/recursive.py +0 -0
- {dycw_utilities-0.129.3 → dycw_utilities-0.129.5}/src/tests/test_traceback_funcs/task_group_one.py +0 -0
- {dycw_utilities-0.129.3 → dycw_utilities-0.129.5}/src/tests/test_traceback_funcs/task_group_two.py +0 -0
- {dycw_utilities-0.129.3 → dycw_utilities-0.129.5}/src/tests/test_traceback_funcs/two.py +0 -0
- {dycw_utilities-0.129.3 → dycw_utilities-0.129.5}/src/tests/test_traceback_funcs/untraced.py +0 -0
- {dycw_utilities-0.129.3 → dycw_utilities-0.129.5}/src/tests/test_types.py +0 -0
- {dycw_utilities-0.129.3 → dycw_utilities-0.129.5}/src/tests/test_typing.py +0 -0
- {dycw_utilities-0.129.3 → dycw_utilities-0.129.5}/src/tests/test_typing_funcs/__init__.py +0 -0
- {dycw_utilities-0.129.3 → dycw_utilities-0.129.5}/src/tests/test_typing_funcs/no_future.py +0 -0
- {dycw_utilities-0.129.3 → dycw_utilities-0.129.5}/src/tests/test_typing_funcs/with_future.py +0 -0
- {dycw_utilities-0.129.3 → dycw_utilities-0.129.5}/src/tests/test_tzdata.py +0 -0
- {dycw_utilities-0.129.3 → dycw_utilities-0.129.5}/src/tests/test_tzlocal.py +0 -0
- {dycw_utilities-0.129.3 → dycw_utilities-0.129.5}/src/tests/test_uuid.py +0 -0
- {dycw_utilities-0.129.3 → dycw_utilities-0.129.5}/src/tests/test_version.py +0 -0
- {dycw_utilities-0.129.3 → dycw_utilities-0.129.5}/src/tests/test_warnings.py +0 -0
- {dycw_utilities-0.129.3 → dycw_utilities-0.129.5}/src/tests/test_whenever.py +0 -0
- {dycw_utilities-0.129.3 → dycw_utilities-0.129.5}/src/tests/test_zipfile.py +0 -0
- {dycw_utilities-0.129.3 → dycw_utilities-0.129.5}/src/tests/test_zoneinfo.py +0 -0
- {dycw_utilities-0.129.3 → dycw_utilities-0.129.5}/src/utilities/altair.py +0 -0
- {dycw_utilities-0.129.3 → dycw_utilities-0.129.5}/src/utilities/asyncio.py +0 -0
- {dycw_utilities-0.129.3 → dycw_utilities-0.129.5}/src/utilities/atomicwrites.py +0 -0
- {dycw_utilities-0.129.3 → dycw_utilities-0.129.5}/src/utilities/atools.py +0 -0
- {dycw_utilities-0.129.3 → dycw_utilities-0.129.5}/src/utilities/cachetools.py +0 -0
- {dycw_utilities-0.129.3 → dycw_utilities-0.129.5}/src/utilities/click.py +0 -0
- {dycw_utilities-0.129.3 → dycw_utilities-0.129.5}/src/utilities/concurrent.py +0 -0
- {dycw_utilities-0.129.3 → dycw_utilities-0.129.5}/src/utilities/contextlib.py +0 -0
- {dycw_utilities-0.129.3 → dycw_utilities-0.129.5}/src/utilities/contextvars.py +0 -0
- {dycw_utilities-0.129.3 → dycw_utilities-0.129.5}/src/utilities/cryptography.py +0 -0
- {dycw_utilities-0.129.3 → dycw_utilities-0.129.5}/src/utilities/cvxpy.py +0 -0
- {dycw_utilities-0.129.3 → dycw_utilities-0.129.5}/src/utilities/dataclasses.py +0 -0
- {dycw_utilities-0.129.3 → dycw_utilities-0.129.5}/src/utilities/datetime.py +0 -0
- {dycw_utilities-0.129.3 → dycw_utilities-0.129.5}/src/utilities/enum.py +0 -0
- {dycw_utilities-0.129.3 → dycw_utilities-0.129.5}/src/utilities/errors.py +0 -0
- {dycw_utilities-0.129.3 → dycw_utilities-0.129.5}/src/utilities/eventkit.py +0 -0
- {dycw_utilities-0.129.3 → dycw_utilities-0.129.5}/src/utilities/fastapi.py +0 -0
- {dycw_utilities-0.129.3 → dycw_utilities-0.129.5}/src/utilities/fpdf2.py +0 -0
- {dycw_utilities-0.129.3 → dycw_utilities-0.129.5}/src/utilities/functions.py +0 -0
- {dycw_utilities-0.129.3 → dycw_utilities-0.129.5}/src/utilities/functools.py +0 -0
- {dycw_utilities-0.129.3 → dycw_utilities-0.129.5}/src/utilities/getpass.py +0 -0
- {dycw_utilities-0.129.3 → dycw_utilities-0.129.5}/src/utilities/hashlib.py +0 -0
- {dycw_utilities-0.129.3 → dycw_utilities-0.129.5}/src/utilities/http.py +0 -0
- {dycw_utilities-0.129.3 → dycw_utilities-0.129.5}/src/utilities/hypothesis.py +0 -0
- {dycw_utilities-0.129.3 → dycw_utilities-0.129.5}/src/utilities/importlib.py +0 -0
- {dycw_utilities-0.129.3 → dycw_utilities-0.129.5}/src/utilities/ipython.py +0 -0
- {dycw_utilities-0.129.3 → dycw_utilities-0.129.5}/src/utilities/iterables.py +0 -0
- {dycw_utilities-0.129.3 → dycw_utilities-0.129.5}/src/utilities/jupyter.py +0 -0
- {dycw_utilities-0.129.3 → dycw_utilities-0.129.5}/src/utilities/libcst.py +0 -0
- {dycw_utilities-0.129.3 → dycw_utilities-0.129.5}/src/utilities/lightweight_charts.py +0 -0
- {dycw_utilities-0.129.3 → dycw_utilities-0.129.5}/src/utilities/loguru.py +0 -0
- {dycw_utilities-0.129.3 → dycw_utilities-0.129.5}/src/utilities/luigi.py +0 -0
- {dycw_utilities-0.129.3 → dycw_utilities-0.129.5}/src/utilities/math.py +0 -0
- {dycw_utilities-0.129.3 → dycw_utilities-0.129.5}/src/utilities/memory_profiler.py +0 -0
- {dycw_utilities-0.129.3 → dycw_utilities-0.129.5}/src/utilities/modules.py +0 -0
- {dycw_utilities-0.129.3 → dycw_utilities-0.129.5}/src/utilities/more_itertools.py +0 -0
- {dycw_utilities-0.129.3 → dycw_utilities-0.129.5}/src/utilities/numpy.py +0 -0
- {dycw_utilities-0.129.3 → dycw_utilities-0.129.5}/src/utilities/operator.py +0 -0
- {dycw_utilities-0.129.3 → dycw_utilities-0.129.5}/src/utilities/optuna.py +0 -0
- {dycw_utilities-0.129.3 → dycw_utilities-0.129.5}/src/utilities/orjson.py +0 -0
- {dycw_utilities-0.129.3 → dycw_utilities-0.129.5}/src/utilities/os.py +0 -0
- {dycw_utilities-0.129.3 → dycw_utilities-0.129.5}/src/utilities/parse.py +0 -0
- {dycw_utilities-0.129.3 → dycw_utilities-0.129.5}/src/utilities/pathlib.py +0 -0
- {dycw_utilities-0.129.3 → dycw_utilities-0.129.5}/src/utilities/period.py +0 -0
- {dycw_utilities-0.129.3 → dycw_utilities-0.129.5}/src/utilities/pickle.py +0 -0
- {dycw_utilities-0.129.3 → dycw_utilities-0.129.5}/src/utilities/platform.py +0 -0
- {dycw_utilities-0.129.3 → dycw_utilities-0.129.5}/src/utilities/polars.py +0 -0
- {dycw_utilities-0.129.3 → dycw_utilities-0.129.5}/src/utilities/polars_ols.py +0 -0
- {dycw_utilities-0.129.3 → dycw_utilities-0.129.5}/src/utilities/pottery.py +0 -0
- {dycw_utilities-0.129.3 → dycw_utilities-0.129.5}/src/utilities/pqdm.py +0 -0
- {dycw_utilities-0.129.3 → dycw_utilities-0.129.5}/src/utilities/psutil.py +0 -0
- {dycw_utilities-0.129.3 → dycw_utilities-0.129.5}/src/utilities/py.typed +0 -0
- {dycw_utilities-0.129.3 → dycw_utilities-0.129.5}/src/utilities/pydantic.py +0 -0
- {dycw_utilities-0.129.3 → dycw_utilities-0.129.5}/src/utilities/pyinstrument.py +0 -0
- {dycw_utilities-0.129.3 → dycw_utilities-0.129.5}/src/utilities/pyrsistent.py +0 -0
- {dycw_utilities-0.129.3 → dycw_utilities-0.129.5}/src/utilities/pytest.py +0 -0
- {dycw_utilities-0.129.3 → dycw_utilities-0.129.5}/src/utilities/pytest_regressions.py +0 -0
- {dycw_utilities-0.129.3 → dycw_utilities-0.129.5}/src/utilities/python_dotenv.py +0 -0
- {dycw_utilities-0.129.3 → dycw_utilities-0.129.5}/src/utilities/random.py +0 -0
- {dycw_utilities-0.129.3 → dycw_utilities-0.129.5}/src/utilities/re.py +0 -0
- {dycw_utilities-0.129.3 → dycw_utilities-0.129.5}/src/utilities/redis.py +0 -0
- {dycw_utilities-0.129.3 → dycw_utilities-0.129.5}/src/utilities/reprlib.py +0 -0
- {dycw_utilities-0.129.3 → dycw_utilities-0.129.5}/src/utilities/scipy.py +0 -0
- {dycw_utilities-0.129.3 → dycw_utilities-0.129.5}/src/utilities/sentinel.py +0 -0
- {dycw_utilities-0.129.3 → dycw_utilities-0.129.5}/src/utilities/shelve.py +0 -0
- {dycw_utilities-0.129.3 → dycw_utilities-0.129.5}/src/utilities/slack_sdk.py +0 -0
- {dycw_utilities-0.129.3 → dycw_utilities-0.129.5}/src/utilities/socket.py +0 -0
- {dycw_utilities-0.129.3 → dycw_utilities-0.129.5}/src/utilities/sqlalchemy.py +0 -0
- {dycw_utilities-0.129.3 → dycw_utilities-0.129.5}/src/utilities/sqlalchemy_polars.py +0 -0
- {dycw_utilities-0.129.3 → dycw_utilities-0.129.5}/src/utilities/statsmodels.py +0 -0
- {dycw_utilities-0.129.3 → dycw_utilities-0.129.5}/src/utilities/streamlit.py +0 -0
- {dycw_utilities-0.129.3 → dycw_utilities-0.129.5}/src/utilities/string.py +0 -0
- {dycw_utilities-0.129.3 → dycw_utilities-0.129.5}/src/utilities/sys.py +0 -0
- {dycw_utilities-0.129.3 → dycw_utilities-0.129.5}/src/utilities/tempfile.py +0 -0
- {dycw_utilities-0.129.3 → dycw_utilities-0.129.5}/src/utilities/tenacity.py +0 -0
- {dycw_utilities-0.129.3 → dycw_utilities-0.129.5}/src/utilities/text.py +0 -0
- {dycw_utilities-0.129.3 → dycw_utilities-0.129.5}/src/utilities/threading.py +0 -0
- {dycw_utilities-0.129.3 → dycw_utilities-0.129.5}/src/utilities/timer.py +0 -0
- {dycw_utilities-0.129.3 → dycw_utilities-0.129.5}/src/utilities/traceback.py +0 -0
- {dycw_utilities-0.129.3 → dycw_utilities-0.129.5}/src/utilities/types.py +0 -0
- {dycw_utilities-0.129.3 → dycw_utilities-0.129.5}/src/utilities/typing.py +0 -0
- {dycw_utilities-0.129.3 → dycw_utilities-0.129.5}/src/utilities/tzdata.py +0 -0
- {dycw_utilities-0.129.3 → dycw_utilities-0.129.5}/src/utilities/tzlocal.py +0 -0
- {dycw_utilities-0.129.3 → dycw_utilities-0.129.5}/src/utilities/uuid.py +0 -0
- {dycw_utilities-0.129.3 → dycw_utilities-0.129.5}/src/utilities/version.py +0 -0
- {dycw_utilities-0.129.3 → dycw_utilities-0.129.5}/src/utilities/warnings.py +0 -0
- {dycw_utilities-0.129.3 → dycw_utilities-0.129.5}/src/utilities/whenever.py +0 -0
- {dycw_utilities-0.129.3 → dycw_utilities-0.129.5}/src/utilities/zipfile.py +0 -0
- {dycw_utilities-0.129.3 → dycw_utilities-0.129.5}/src/utilities/zoneinfo.py +0 -0
@@ -94,7 +94,7 @@ dependencies = [
|
|
94
94
|
name = "dycw-utilities"
|
95
95
|
readme = "README.md"
|
96
96
|
requires-python = ">= 3.12"
|
97
|
-
version = "0.129.
|
97
|
+
version = "0.129.5"
|
98
98
|
|
99
99
|
[project.optional-dependencies]
|
100
100
|
test = [
|
@@ -334,7 +334,7 @@ zzz-test-zoneinfo = [
|
|
334
334
|
# bump-my-version
|
335
335
|
[tool.bumpversion]
|
336
336
|
allow_dirty = true
|
337
|
-
current_version = "0.129.
|
337
|
+
current_version = "0.129.5"
|
338
338
|
|
339
339
|
[[tool.bumpversion.files]]
|
340
340
|
filename = "src/utilities/__init__.py"
|
@@ -421,19 +421,6 @@ class TestSetupLogging:
|
|
421
421
|
expected = "int: 1, float: 12.35"
|
422
422
|
assert record.message == expected
|
423
423
|
|
424
|
-
@skipif_windows
|
425
|
-
def test_new_brace_formatting(
|
426
|
-
self, *, tmp_path: Path, caplog: LogCaptureFixture
|
427
|
-
) -> None:
|
428
|
-
name = str(tmp_path)
|
429
|
-
setup_logging(logger=name, files_dir=tmp_path)
|
430
|
-
logger = getLogger(name)
|
431
|
-
logger.info("int: {:d}, float: {:.2f}, percent: {:.2%}", 1, 12.3456, 0.123456)
|
432
|
-
record = one(caplog.records)
|
433
|
-
assert isinstance(record, _AdvancedLogRecord)
|
434
|
-
expected = "int: 1, float: 12.35, percent: 12.35%"
|
435
|
-
assert record.message == expected
|
436
|
-
|
437
424
|
@skipif_windows
|
438
425
|
def test_no_console(self, *, tmp_path: Path) -> None:
|
439
426
|
name = str(tmp_path)
|
@@ -507,66 +494,55 @@ class TestSizeAndTimeRotatingFileHandler:
|
|
507
494
|
filename=tmp_path.joinpath("log.txt"), maxBytes=100, backupCount=3
|
508
495
|
)
|
509
496
|
)
|
510
|
-
|
511
|
-
|
512
|
-
|
513
|
-
files = list(tmp_path.iterdir())
|
514
|
-
assert len(files) == 1
|
515
|
-
assert any(p for p in files if search(r"^log\.txt$", p.name))
|
516
|
-
|
517
|
-
logger.warning(10 * "message 3")
|
518
|
-
files = list(tmp_path.iterdir())
|
519
|
-
assert len(files) == 2
|
520
|
-
assert any(p for p in files if search(r"^log\.txt$", p.name))
|
521
|
-
assert any(p for p in files if search(r"^log\.1__[\dT]+\.txt$", p.name))
|
522
|
-
|
523
|
-
for i in range(4, 6):
|
524
|
-
logger.warning("message %d", i)
|
525
|
-
files = list(tmp_path.iterdir())
|
526
|
-
assert len(files) == 3
|
527
|
-
assert any(p for p in files if search(r"^log\.txt$", p.name))
|
528
|
-
assert any(
|
529
|
-
p for p in files if search(r"^log\.1__[\dT]+__[\dT]+\.txt$", p.name)
|
530
|
-
)
|
531
|
-
assert any(p for p in files if search(r"^log\.2__[\dT]+\.txt$", p.name))
|
532
|
-
|
533
|
-
logger.warning(10 * "message 6")
|
534
|
-
files = list(tmp_path.iterdir())
|
535
|
-
assert len(files) == 4
|
536
|
-
assert any(p for p in files if search(r"^log\.txt$", p.name))
|
537
|
-
assert any(p for p in files if search(r"^log\.1__[\dT]+__[\dT]+\.txt$", p.name))
|
538
|
-
assert any(p for p in files if search(r"^log\.2__[\dT]+__[\dT]+\.txt$", p.name))
|
539
|
-
assert any(p for p in files if search(r"^log\.3__[\dT]+\.txt$", p.name))
|
540
|
-
|
541
|
-
for _ in range(2):
|
542
|
-
for i in range(7, 9):
|
543
|
-
logger.warning("message %d", i)
|
497
|
+
for cycle in range(1, 10):
|
498
|
+
for i in range(1, 4):
|
499
|
+
logger.warning("%s message %d", 100 * "long" if i % 3 == 0 else "", i)
|
544
500
|
files = list(tmp_path.iterdir())
|
545
|
-
assert len(files) == 4
|
501
|
+
assert len(files) == min(cycle, 4)
|
546
502
|
assert any(p for p in files if search(r"^log\.txt$", p.name))
|
547
|
-
|
548
|
-
|
549
|
-
|
550
|
-
|
551
|
-
|
552
|
-
|
553
|
-
|
554
|
-
|
555
|
-
|
556
|
-
|
557
|
-
|
558
|
-
|
559
|
-
|
560
|
-
|
561
|
-
|
562
|
-
|
563
|
-
|
564
|
-
|
565
|
-
|
566
|
-
|
567
|
-
|
568
|
-
|
569
|
-
|
503
|
+
if cycle == 2:
|
504
|
+
assert any(
|
505
|
+
p for p in files if search(r"^log\.1__[\dT]+\.txt$", p.name)
|
506
|
+
)
|
507
|
+
elif cycle == 3:
|
508
|
+
assert any(
|
509
|
+
p
|
510
|
+
for p in files
|
511
|
+
if search(r"^log\.1__[\dT]+__[\dT]+\.txt$", p.name)
|
512
|
+
)
|
513
|
+
assert any(
|
514
|
+
p for p in files if search(r"^log\.2__[\dT]+\.txt$", p.name)
|
515
|
+
)
|
516
|
+
elif cycle == 4:
|
517
|
+
assert any(
|
518
|
+
p
|
519
|
+
for p in files
|
520
|
+
if search(r"^log\.1__[\dT]+__[\dT]+\.txt$", p.name)
|
521
|
+
)
|
522
|
+
assert any(
|
523
|
+
p
|
524
|
+
for p in files
|
525
|
+
if search(r"^log\.2__[\dT]+__[\dT]+\.txt$", p.name)
|
526
|
+
)
|
527
|
+
assert any(
|
528
|
+
p for p in files if search(r"^log\.3__[\dT]+\.txt$", p.name)
|
529
|
+
)
|
530
|
+
elif cycle >= 5:
|
531
|
+
assert any(
|
532
|
+
p
|
533
|
+
for p in files
|
534
|
+
if search(r"^log\.1__[\dT]+__[\dT]+\.txt$", p.name)
|
535
|
+
)
|
536
|
+
assert any(
|
537
|
+
p
|
538
|
+
for p in files
|
539
|
+
if search(r"^log\.2__[\dT]+__[\dT]+\.txt$", p.name)
|
540
|
+
)
|
541
|
+
assert any(
|
542
|
+
p
|
543
|
+
for p in files
|
544
|
+
if search(r"^log\.3__[\dT]+__[\dT]+\.txt$", p.name)
|
545
|
+
)
|
570
546
|
|
571
547
|
@mark.flaky
|
572
548
|
@skipif_windows
|
@@ -23,7 +23,7 @@ from logging import (
|
|
23
23
|
)
|
24
24
|
from logging.handlers import BaseRotatingHandler, TimedRotatingFileHandler
|
25
25
|
from pathlib import Path
|
26
|
-
from re import Pattern
|
26
|
+
from re import Pattern
|
27
27
|
from sys import stdout
|
28
28
|
from time import time
|
29
29
|
from typing import (
|
@@ -160,13 +160,11 @@ class SizeAndTimeRotatingFileHandler(BaseRotatingHandler):
|
|
160
160
|
def _should_rollover(self, record: LogRecord, /) -> bool:
|
161
161
|
if self._max_bytes is not None: # skipif-ci-and-windows
|
162
162
|
try:
|
163
|
-
|
163
|
+
size = self._filename.stat().st_size
|
164
164
|
except FileNotFoundError:
|
165
165
|
pass
|
166
166
|
else:
|
167
|
-
|
168
|
-
new = current + delta
|
169
|
-
if new >= self._max_bytes:
|
167
|
+
if size >= self._max_bytes:
|
170
168
|
return True
|
171
169
|
return bool(self._time_handler.shouldRollover(record)) # skipif-ci-and-windows
|
172
170
|
|
@@ -751,29 +749,6 @@ class _AdvancedLogRecord(LogRecord):
|
|
751
749
|
cls.time_zone = time_zone.key # skipif-ci-and-windows
|
752
750
|
super().__init_subclass__(**kwargs) # skipif-ci-and-windows
|
753
751
|
|
754
|
-
@override
|
755
|
-
def getMessage(self) -> str:
|
756
|
-
"""Return the message for this LogRecord."""
|
757
|
-
msg = str(self.msg) # pragma: no cover
|
758
|
-
if self.args: # pragma: no cover
|
759
|
-
try:
|
760
|
-
return msg % self.args # compability for 3rd party code
|
761
|
-
except ValueError as error:
|
762
|
-
if len(error.args) == 0:
|
763
|
-
raise
|
764
|
-
first = error.args[0]
|
765
|
-
if search("unsupported format character", first):
|
766
|
-
return msg.format(*self.args)
|
767
|
-
raise
|
768
|
-
except TypeError as error:
|
769
|
-
if len(error.args) == 0:
|
770
|
-
raise
|
771
|
-
first = error.args[0]
|
772
|
-
if search("not all arguments converted", first):
|
773
|
-
return msg.format(*self.args)
|
774
|
-
raise
|
775
|
-
return msg # pragma: no cover
|
776
|
-
|
777
752
|
@classmethod
|
778
753
|
def get_now(cls) -> Any:
|
779
754
|
"""Get the current zoned datetime."""
|
File without changes
|
File without changes
|
File without changes
|
File without changes
|
File without changes
|
File without changes
|
{dycw_utilities-0.129.3 → dycw_utilities-0.129.5}/src/tests/modules/package_missing/__init__.py
RENAMED
File without changes
|
{dycw_utilities-0.129.3 → dycw_utilities-0.129.5}/src/tests/modules/package_missing/module.py
RENAMED
File without changes
|
{dycw_utilities-0.129.3 → dycw_utilities-0.129.5}/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.129.3 → dycw_utilities-0.129.5}/src/tests/modules/package_without/__init__.py
RENAMED
File without changes
|
{dycw_utilities-0.129.3 → dycw_utilities-0.129.5}/src/tests/modules/package_without/module_1.py
RENAMED
File without changes
|
{dycw_utilities-0.129.3 → dycw_utilities-0.129.5}/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
|
{dycw_utilities-0.129.3 → dycw_utilities-0.129.5}/src/tests/test_asyncio_classes/__init__.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
|
{dycw_utilities-0.129.3 → dycw_utilities-0.129.5}/src/tests/test_traceback_funcs/__init__.py
RENAMED
File without changes
|
File without changes
|
{dycw_utilities-0.129.3 → dycw_utilities-0.129.5}/src/tests/test_traceback_funcs/decorated_async.py
RENAMED
File without changes
|
{dycw_utilities-0.129.3 → dycw_utilities-0.129.5}/src/tests/test_traceback_funcs/decorated_sync.py
RENAMED
File without changes
|
{dycw_utilities-0.129.3 → dycw_utilities-0.129.5}/src/tests/test_traceback_funcs/error_bind.py
RENAMED
File without changes
|
File without changes
|
File without changes
|
{dycw_utilities-0.129.3 → dycw_utilities-0.129.5}/src/tests/test_traceback_funcs/recursive.py
RENAMED
File without changes
|
{dycw_utilities-0.129.3 → dycw_utilities-0.129.5}/src/tests/test_traceback_funcs/task_group_one.py
RENAMED
File without changes
|
{dycw_utilities-0.129.3 → dycw_utilities-0.129.5}/src/tests/test_traceback_funcs/task_group_two.py
RENAMED
File without changes
|
File without changes
|
{dycw_utilities-0.129.3 → dycw_utilities-0.129.5}/src/tests/test_traceback_funcs/untraced.py
RENAMED
File without changes
|
File without changes
|
File without changes
|
File without changes
|
File without changes
|
{dycw_utilities-0.129.3 → dycw_utilities-0.129.5}/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
|
File without changes
|
File without changes
|
File without changes
|
File without changes
|
File without changes
|
File without changes
|
File without changes
|
File without changes
|
File without changes
|
File without changes
|
File without changes
|
File without changes
|
File without changes
|
File without changes
|
File without changes
|
File without changes
|
File without changes
|
File without changes
|
File without changes
|
File without changes
|
File without changes
|
File without changes
|
File without changes
|
File without changes
|
File without changes
|
File without changes
|
File without changes
|
File without changes
|