dycw-utilities 0.116.5__tar.gz → 0.116.6__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.116.5 → dycw_utilities-0.116.6}/PKG-INFO +3 -3
- {dycw_utilities-0.116.5 → dycw_utilities-0.116.6}/pyproject.toml +5 -5
- {dycw_utilities-0.116.5 → dycw_utilities-0.116.6}/src/tests/test_asyncio.py +44 -0
- {dycw_utilities-0.116.5 → dycw_utilities-0.116.6}/src/utilities/__init__.py +1 -1
- {dycw_utilities-0.116.5 → dycw_utilities-0.116.6}/src/utilities/asyncio.py +12 -0
- {dycw_utilities-0.116.5 → dycw_utilities-0.116.6}/.gitignore +0 -0
- {dycw_utilities-0.116.5 → dycw_utilities-0.116.6}/LICENSE +0 -0
- {dycw_utilities-0.116.5 → dycw_utilities-0.116.6}/README.md +0 -0
- {dycw_utilities-0.116.5 → dycw_utilities-0.116.6}/src/tests/__init__.py +0 -0
- {dycw_utilities-0.116.5 → dycw_utilities-0.116.6}/src/tests/conftest.py +0 -0
- {dycw_utilities-0.116.5 → dycw_utilities-0.116.6}/src/tests/modules/__init__.py +0 -0
- {dycw_utilities-0.116.5 → dycw_utilities-0.116.6}/src/tests/modules/package_missing/__init__.py +0 -0
- {dycw_utilities-0.116.5 → dycw_utilities-0.116.6}/src/tests/modules/package_missing/module.py +0 -0
- {dycw_utilities-0.116.5 → dycw_utilities-0.116.6}/src/tests/modules/package_with/__init__.py +0 -0
- {dycw_utilities-0.116.5 → dycw_utilities-0.116.6}/src/tests/modules/package_with/outer_1.py +0 -0
- {dycw_utilities-0.116.5 → dycw_utilities-0.116.6}/src/tests/modules/package_with/outer_2.py +0 -0
- {dycw_utilities-0.116.5 → dycw_utilities-0.116.6}/src/tests/modules/package_with/subpackage/__init__.py +0 -0
- {dycw_utilities-0.116.5 → dycw_utilities-0.116.6}/src/tests/modules/package_with/subpackage/inner_1.py +0 -0
- {dycw_utilities-0.116.5 → dycw_utilities-0.116.6}/src/tests/modules/package_with/subpackage/inner_2.py +0 -0
- {dycw_utilities-0.116.5 → dycw_utilities-0.116.6}/src/tests/modules/package_with/subpackage/inner_3.py +0 -0
- {dycw_utilities-0.116.5 → dycw_utilities-0.116.6}/src/tests/modules/package_without/__init__.py +0 -0
- {dycw_utilities-0.116.5 → dycw_utilities-0.116.6}/src/tests/modules/package_without/module_1.py +0 -0
- {dycw_utilities-0.116.5 → dycw_utilities-0.116.6}/src/tests/modules/package_without/module_2.py +0 -0
- {dycw_utilities-0.116.5 → dycw_utilities-0.116.6}/src/tests/modules/standalone.py +0 -0
- {dycw_utilities-0.116.5 → dycw_utilities-0.116.6}/src/tests/modules/with_imports.py +0 -0
- {dycw_utilities-0.116.5 → dycw_utilities-0.116.6}/src/tests/regressions/test_pytest_regressions/TestMultipleRegressionFixtures__test_main__obj.json +0 -0
- {dycw_utilities-0.116.5 → dycw_utilities-0.116.6}/src/tests/regressions/test_pytest_regressions/TestMultipleRegressionFixtures__test_main__series.json +0 -0
- {dycw_utilities-0.116.5 → dycw_utilities-0.116.6}/src/tests/regressions/test_pytest_regressions/TestOrjsonRegressionFixture__test_dataclass_int.json +0 -0
- {dycw_utilities-0.116.5 → dycw_utilities-0.116.6}/src/tests/regressions/test_pytest_regressions/TestOrjsonRegressionFixture__test_dataclass_literal__false.json +0 -0
- {dycw_utilities-0.116.5 → dycw_utilities-0.116.6}/src/tests/regressions/test_pytest_regressions/TestOrjsonRegressionFixture__test_dataclass_literal__true.json +0 -0
- {dycw_utilities-0.116.5 → dycw_utilities-0.116.6}/src/tests/regressions/test_pytest_regressions/TestOrjsonRegressionFixture__test_dataclass_nested.json +0 -0
- {dycw_utilities-0.116.5 → dycw_utilities-0.116.6}/src/tests/regressions/test_pytest_regressions/TestPolarsRegressionFixture__test_dataframe.json +0 -0
- {dycw_utilities-0.116.5 → dycw_utilities-0.116.6}/src/tests/regressions/test_pytest_regressions/TestPolarsRegressionFixture__test_series.json +0 -0
- {dycw_utilities-0.116.5 → dycw_utilities-0.116.6}/src/tests/scripts/__init__.py +0 -0
- {dycw_utilities-0.116.5 → dycw_utilities-0.116.6}/src/tests/scripts/test_async_service/__init__.py +0 -0
- {dycw_utilities-0.116.5 → dycw_utilities-0.116.6}/src/tests/scripts/test_async_service/__main__.py +0 -0
- {dycw_utilities-0.116.5 → dycw_utilities-0.116.6}/src/tests/scripts/test_async_service/run.sh +0 -0
- {dycw_utilities-0.116.5 → dycw_utilities-0.116.6}/src/tests/scripts/test_queue_processor/__init__.py +0 -0
- {dycw_utilities-0.116.5 → dycw_utilities-0.116.6}/src/tests/scripts/test_queue_processor/__main__.py +0 -0
- {dycw_utilities-0.116.5 → dycw_utilities-0.116.6}/src/tests/scripts/test_queue_processor/run.sh +0 -0
- {dycw_utilities-0.116.5 → dycw_utilities-0.116.6}/src/tests/test_altair.py +0 -0
- {dycw_utilities-0.116.5 → dycw_utilities-0.116.6}/src/tests/test_astor.py +0 -0
- {dycw_utilities-0.116.5 → dycw_utilities-0.116.6}/src/tests/test_atomicwrites.py +0 -0
- {dycw_utilities-0.116.5 → dycw_utilities-0.116.6}/src/tests/test_atools.py +0 -0
- {dycw_utilities-0.116.5 → dycw_utilities-0.116.6}/src/tests/test_cachetools.py +0 -0
- {dycw_utilities-0.116.5 → dycw_utilities-0.116.6}/src/tests/test_click.py +0 -0
- {dycw_utilities-0.116.5 → dycw_utilities-0.116.6}/src/tests/test_concurrent.py +0 -0
- {dycw_utilities-0.116.5 → dycw_utilities-0.116.6}/src/tests/test_contextlib.py +0 -0
- {dycw_utilities-0.116.5 → dycw_utilities-0.116.6}/src/tests/test_contextvars.py +0 -0
- {dycw_utilities-0.116.5 → dycw_utilities-0.116.6}/src/tests/test_cryptography.py +0 -0
- {dycw_utilities-0.116.5 → dycw_utilities-0.116.6}/src/tests/test_cvxpy.py +0 -0
- {dycw_utilities-0.116.5 → dycw_utilities-0.116.6}/src/tests/test_dataclasses.py +0 -0
- {dycw_utilities-0.116.5 → dycw_utilities-0.116.6}/src/tests/test_datetime.py +0 -0
- {dycw_utilities-0.116.5 → dycw_utilities-0.116.6}/src/tests/test_enum.py +0 -0
- {dycw_utilities-0.116.5 → dycw_utilities-0.116.6}/src/tests/test_errors.py +0 -0
- {dycw_utilities-0.116.5 → dycw_utilities-0.116.6}/src/tests/test_eventkit.py +0 -0
- {dycw_utilities-0.116.5 → dycw_utilities-0.116.6}/src/tests/test_fastapi.py +0 -0
- {dycw_utilities-0.116.5 → dycw_utilities-0.116.6}/src/tests/test_fpdf2.py +0 -0
- {dycw_utilities-0.116.5 → dycw_utilities-0.116.6}/src/tests/test_functions.py +0 -0
- {dycw_utilities-0.116.5 → dycw_utilities-0.116.6}/src/tests/test_functools.py +0 -0
- {dycw_utilities-0.116.5 → dycw_utilities-0.116.6}/src/tests/test_getpass.py +0 -0
- {dycw_utilities-0.116.5 → dycw_utilities-0.116.6}/src/tests/test_git.py +0 -0
- {dycw_utilities-0.116.5 → dycw_utilities-0.116.6}/src/tests/test_hashlib.py +0 -0
- {dycw_utilities-0.116.5 → dycw_utilities-0.116.6}/src/tests/test_http.py +0 -0
- {dycw_utilities-0.116.5 → dycw_utilities-0.116.6}/src/tests/test_hypothesis.py +0 -0
- {dycw_utilities-0.116.5 → dycw_utilities-0.116.6}/src/tests/test_importlib.py +0 -0
- {dycw_utilities-0.116.5 → dycw_utilities-0.116.6}/src/tests/test_ipython.py +0 -0
- {dycw_utilities-0.116.5 → dycw_utilities-0.116.6}/src/tests/test_iterables.py +0 -0
- {dycw_utilities-0.116.5 → dycw_utilities-0.116.6}/src/tests/test_jupyter.py +0 -0
- {dycw_utilities-0.116.5 → dycw_utilities-0.116.6}/src/tests/test_lightweight_charts.py +0 -0
- {dycw_utilities-0.116.5 → dycw_utilities-0.116.6}/src/tests/test_logging.py +0 -0
- {dycw_utilities-0.116.5 → dycw_utilities-0.116.6}/src/tests/test_loguru.py +0 -0
- {dycw_utilities-0.116.5 → dycw_utilities-0.116.6}/src/tests/test_luigi.py +0 -0
- {dycw_utilities-0.116.5 → dycw_utilities-0.116.6}/src/tests/test_math.py +0 -0
- {dycw_utilities-0.116.5 → dycw_utilities-0.116.6}/src/tests/test_memory_profiler.py +0 -0
- {dycw_utilities-0.116.5 → dycw_utilities-0.116.6}/src/tests/test_modules.py +0 -0
- {dycw_utilities-0.116.5 → dycw_utilities-0.116.6}/src/tests/test_more_itertools.py +0 -0
- {dycw_utilities-0.116.5 → dycw_utilities-0.116.6}/src/tests/test_numpy.py +0 -0
- {dycw_utilities-0.116.5 → dycw_utilities-0.116.6}/src/tests/test_operator.py +0 -0
- {dycw_utilities-0.116.5 → dycw_utilities-0.116.6}/src/tests/test_optuna.py +0 -0
- {dycw_utilities-0.116.5 → dycw_utilities-0.116.6}/src/tests/test_orjson.py +0 -0
- {dycw_utilities-0.116.5 → dycw_utilities-0.116.6}/src/tests/test_os.py +0 -0
- {dycw_utilities-0.116.5 → dycw_utilities-0.116.6}/src/tests/test_parse.py +0 -0
- {dycw_utilities-0.116.5 → dycw_utilities-0.116.6}/src/tests/test_pathlib.py +0 -0
- {dycw_utilities-0.116.5 → dycw_utilities-0.116.6}/src/tests/test_period.py +0 -0
- {dycw_utilities-0.116.5 → dycw_utilities-0.116.6}/src/tests/test_pickle.py +0 -0
- {dycw_utilities-0.116.5 → dycw_utilities-0.116.6}/src/tests/test_platform.py +0 -0
- {dycw_utilities-0.116.5 → dycw_utilities-0.116.6}/src/tests/test_polars.py +0 -0
- {dycw_utilities-0.116.5 → dycw_utilities-0.116.6}/src/tests/test_polars_ols.py +0 -0
- {dycw_utilities-0.116.5 → dycw_utilities-0.116.6}/src/tests/test_pqdm.py +0 -0
- {dycw_utilities-0.116.5 → dycw_utilities-0.116.6}/src/tests/test_pydantic.py +0 -0
- {dycw_utilities-0.116.5 → dycw_utilities-0.116.6}/src/tests/test_pyinstrument.py +0 -0
- {dycw_utilities-0.116.5 → dycw_utilities-0.116.6}/src/tests/test_pyrsistent.py +0 -0
- {dycw_utilities-0.116.5 → dycw_utilities-0.116.6}/src/tests/test_pytest.py +0 -0
- {dycw_utilities-0.116.5 → dycw_utilities-0.116.6}/src/tests/test_pytest_regressions.py +0 -0
- {dycw_utilities-0.116.5 → dycw_utilities-0.116.6}/src/tests/test_python_dotenv.py +0 -0
- {dycw_utilities-0.116.5 → dycw_utilities-0.116.6}/src/tests/test_random.py +0 -0
- {dycw_utilities-0.116.5 → dycw_utilities-0.116.6}/src/tests/test_re.py +0 -0
- {dycw_utilities-0.116.5 → dycw_utilities-0.116.6}/src/tests/test_redis.py +0 -0
- {dycw_utilities-0.116.5 → dycw_utilities-0.116.6}/src/tests/test_reprlib.py +0 -0
- {dycw_utilities-0.116.5 → dycw_utilities-0.116.6}/src/tests/test_rich.py +0 -0
- {dycw_utilities-0.116.5 → dycw_utilities-0.116.6}/src/tests/test_scipy.py +0 -0
- {dycw_utilities-0.116.5 → dycw_utilities-0.116.6}/src/tests/test_sentinel.py +0 -0
- {dycw_utilities-0.116.5 → dycw_utilities-0.116.6}/src/tests/test_shelve.py +0 -0
- {dycw_utilities-0.116.5 → dycw_utilities-0.116.6}/src/tests/test_slack_sdk.py +0 -0
- {dycw_utilities-0.116.5 → dycw_utilities-0.116.6}/src/tests/test_socket.py +0 -0
- {dycw_utilities-0.116.5 → dycw_utilities-0.116.6}/src/tests/test_sqlalchemy.py +0 -0
- {dycw_utilities-0.116.5 → dycw_utilities-0.116.6}/src/tests/test_sqlalchemy_polars.py +0 -0
- {dycw_utilities-0.116.5 → dycw_utilities-0.116.6}/src/tests/test_statsmodel.py +0 -0
- {dycw_utilities-0.116.5 → dycw_utilities-0.116.6}/src/tests/test_streamlit.py +0 -0
- {dycw_utilities-0.116.5 → dycw_utilities-0.116.6}/src/tests/test_sys.py +0 -0
- {dycw_utilities-0.116.5 → dycw_utilities-0.116.6}/src/tests/test_tempfile.py +0 -0
- {dycw_utilities-0.116.5 → dycw_utilities-0.116.6}/src/tests/test_tenacity.py +0 -0
- {dycw_utilities-0.116.5 → dycw_utilities-0.116.6}/src/tests/test_text.py +0 -0
- {dycw_utilities-0.116.5 → dycw_utilities-0.116.6}/src/tests/test_threading.py +0 -0
- {dycw_utilities-0.116.5 → dycw_utilities-0.116.6}/src/tests/test_timer.py +0 -0
- {dycw_utilities-0.116.5 → dycw_utilities-0.116.6}/src/tests/test_traceback.py +0 -0
- {dycw_utilities-0.116.5 → dycw_utilities-0.116.6}/src/tests/test_traceback_funcs/__init__.py +0 -0
- {dycw_utilities-0.116.5 → dycw_utilities-0.116.6}/src/tests/test_traceback_funcs/chain.py +0 -0
- {dycw_utilities-0.116.5 → dycw_utilities-0.116.6}/src/tests/test_traceback_funcs/decorated_async.py +0 -0
- {dycw_utilities-0.116.5 → dycw_utilities-0.116.6}/src/tests/test_traceback_funcs/decorated_sync.py +0 -0
- {dycw_utilities-0.116.5 → dycw_utilities-0.116.6}/src/tests/test_traceback_funcs/error_bind.py +0 -0
- {dycw_utilities-0.116.5 → dycw_utilities-0.116.6}/src/tests/test_traceback_funcs/many.py +0 -0
- {dycw_utilities-0.116.5 → dycw_utilities-0.116.6}/src/tests/test_traceback_funcs/one.py +0 -0
- {dycw_utilities-0.116.5 → dycw_utilities-0.116.6}/src/tests/test_traceback_funcs/recursive.py +0 -0
- {dycw_utilities-0.116.5 → dycw_utilities-0.116.6}/src/tests/test_traceback_funcs/task_group_one.py +0 -0
- {dycw_utilities-0.116.5 → dycw_utilities-0.116.6}/src/tests/test_traceback_funcs/task_group_two.py +0 -0
- {dycw_utilities-0.116.5 → dycw_utilities-0.116.6}/src/tests/test_traceback_funcs/two.py +0 -0
- {dycw_utilities-0.116.5 → dycw_utilities-0.116.6}/src/tests/test_traceback_funcs/untraced.py +0 -0
- {dycw_utilities-0.116.5 → dycw_utilities-0.116.6}/src/tests/test_types.py +0 -0
- {dycw_utilities-0.116.5 → dycw_utilities-0.116.6}/src/tests/test_typing.py +0 -0
- {dycw_utilities-0.116.5 → dycw_utilities-0.116.6}/src/tests/test_typing_funcs/__init__.py +0 -0
- {dycw_utilities-0.116.5 → dycw_utilities-0.116.6}/src/tests/test_typing_funcs/no_future.py +0 -0
- {dycw_utilities-0.116.5 → dycw_utilities-0.116.6}/src/tests/test_typing_funcs/with_future.py +0 -0
- {dycw_utilities-0.116.5 → dycw_utilities-0.116.6}/src/tests/test_tzdata.py +0 -0
- {dycw_utilities-0.116.5 → dycw_utilities-0.116.6}/src/tests/test_tzlocal.py +0 -0
- {dycw_utilities-0.116.5 → dycw_utilities-0.116.6}/src/tests/test_uuid.py +0 -0
- {dycw_utilities-0.116.5 → dycw_utilities-0.116.6}/src/tests/test_version.py +0 -0
- {dycw_utilities-0.116.5 → dycw_utilities-0.116.6}/src/tests/test_warnings.py +0 -0
- {dycw_utilities-0.116.5 → dycw_utilities-0.116.6}/src/tests/test_whenever.py +0 -0
- {dycw_utilities-0.116.5 → dycw_utilities-0.116.6}/src/tests/test_zipfile.py +0 -0
- {dycw_utilities-0.116.5 → dycw_utilities-0.116.6}/src/tests/test_zoneinfo.py +0 -0
- {dycw_utilities-0.116.5 → dycw_utilities-0.116.6}/src/utilities/altair.py +0 -0
- {dycw_utilities-0.116.5 → dycw_utilities-0.116.6}/src/utilities/astor.py +0 -0
- {dycw_utilities-0.116.5 → dycw_utilities-0.116.6}/src/utilities/atomicwrites.py +0 -0
- {dycw_utilities-0.116.5 → dycw_utilities-0.116.6}/src/utilities/atools.py +0 -0
- {dycw_utilities-0.116.5 → dycw_utilities-0.116.6}/src/utilities/cachetools.py +0 -0
- {dycw_utilities-0.116.5 → dycw_utilities-0.116.6}/src/utilities/click.py +0 -0
- {dycw_utilities-0.116.5 → dycw_utilities-0.116.6}/src/utilities/concurrent.py +0 -0
- {dycw_utilities-0.116.5 → dycw_utilities-0.116.6}/src/utilities/contextlib.py +0 -0
- {dycw_utilities-0.116.5 → dycw_utilities-0.116.6}/src/utilities/contextvars.py +0 -0
- {dycw_utilities-0.116.5 → dycw_utilities-0.116.6}/src/utilities/cryptography.py +0 -0
- {dycw_utilities-0.116.5 → dycw_utilities-0.116.6}/src/utilities/cvxpy.py +0 -0
- {dycw_utilities-0.116.5 → dycw_utilities-0.116.6}/src/utilities/dataclasses.py +0 -0
- {dycw_utilities-0.116.5 → dycw_utilities-0.116.6}/src/utilities/datetime.py +0 -0
- {dycw_utilities-0.116.5 → dycw_utilities-0.116.6}/src/utilities/enum.py +0 -0
- {dycw_utilities-0.116.5 → dycw_utilities-0.116.6}/src/utilities/errors.py +0 -0
- {dycw_utilities-0.116.5 → dycw_utilities-0.116.6}/src/utilities/eventkit.py +0 -0
- {dycw_utilities-0.116.5 → dycw_utilities-0.116.6}/src/utilities/fastapi.py +0 -0
- {dycw_utilities-0.116.5 → dycw_utilities-0.116.6}/src/utilities/fpdf2.py +0 -0
- {dycw_utilities-0.116.5 → dycw_utilities-0.116.6}/src/utilities/functions.py +0 -0
- {dycw_utilities-0.116.5 → dycw_utilities-0.116.6}/src/utilities/functools.py +0 -0
- {dycw_utilities-0.116.5 → dycw_utilities-0.116.6}/src/utilities/getpass.py +0 -0
- {dycw_utilities-0.116.5 → dycw_utilities-0.116.6}/src/utilities/git.py +0 -0
- {dycw_utilities-0.116.5 → dycw_utilities-0.116.6}/src/utilities/hashlib.py +0 -0
- {dycw_utilities-0.116.5 → dycw_utilities-0.116.6}/src/utilities/http.py +0 -0
- {dycw_utilities-0.116.5 → dycw_utilities-0.116.6}/src/utilities/hypothesis.py +0 -0
- {dycw_utilities-0.116.5 → dycw_utilities-0.116.6}/src/utilities/importlib.py +0 -0
- {dycw_utilities-0.116.5 → dycw_utilities-0.116.6}/src/utilities/ipython.py +0 -0
- {dycw_utilities-0.116.5 → dycw_utilities-0.116.6}/src/utilities/iterables.py +0 -0
- {dycw_utilities-0.116.5 → dycw_utilities-0.116.6}/src/utilities/jupyter.py +0 -0
- {dycw_utilities-0.116.5 → dycw_utilities-0.116.6}/src/utilities/lightweight_charts.py +0 -0
- {dycw_utilities-0.116.5 → dycw_utilities-0.116.6}/src/utilities/logging.py +0 -0
- {dycw_utilities-0.116.5 → dycw_utilities-0.116.6}/src/utilities/loguru.py +0 -0
- {dycw_utilities-0.116.5 → dycw_utilities-0.116.6}/src/utilities/luigi.py +0 -0
- {dycw_utilities-0.116.5 → dycw_utilities-0.116.6}/src/utilities/math.py +0 -0
- {dycw_utilities-0.116.5 → dycw_utilities-0.116.6}/src/utilities/memory_profiler.py +0 -0
- {dycw_utilities-0.116.5 → dycw_utilities-0.116.6}/src/utilities/modules.py +0 -0
- {dycw_utilities-0.116.5 → dycw_utilities-0.116.6}/src/utilities/more_itertools.py +0 -0
- {dycw_utilities-0.116.5 → dycw_utilities-0.116.6}/src/utilities/numpy.py +0 -0
- {dycw_utilities-0.116.5 → dycw_utilities-0.116.6}/src/utilities/operator.py +0 -0
- {dycw_utilities-0.116.5 → dycw_utilities-0.116.6}/src/utilities/optuna.py +0 -0
- {dycw_utilities-0.116.5 → dycw_utilities-0.116.6}/src/utilities/orjson.py +0 -0
- {dycw_utilities-0.116.5 → dycw_utilities-0.116.6}/src/utilities/os.py +0 -0
- {dycw_utilities-0.116.5 → dycw_utilities-0.116.6}/src/utilities/parse.py +0 -0
- {dycw_utilities-0.116.5 → dycw_utilities-0.116.6}/src/utilities/pathlib.py +0 -0
- {dycw_utilities-0.116.5 → dycw_utilities-0.116.6}/src/utilities/period.py +0 -0
- {dycw_utilities-0.116.5 → dycw_utilities-0.116.6}/src/utilities/pickle.py +0 -0
- {dycw_utilities-0.116.5 → dycw_utilities-0.116.6}/src/utilities/platform.py +0 -0
- {dycw_utilities-0.116.5 → dycw_utilities-0.116.6}/src/utilities/polars.py +0 -0
- {dycw_utilities-0.116.5 → dycw_utilities-0.116.6}/src/utilities/polars_ols.py +0 -0
- {dycw_utilities-0.116.5 → dycw_utilities-0.116.6}/src/utilities/pqdm.py +0 -0
- {dycw_utilities-0.116.5 → dycw_utilities-0.116.6}/src/utilities/py.typed +0 -0
- {dycw_utilities-0.116.5 → dycw_utilities-0.116.6}/src/utilities/pydantic.py +0 -0
- {dycw_utilities-0.116.5 → dycw_utilities-0.116.6}/src/utilities/pyinstrument.py +0 -0
- {dycw_utilities-0.116.5 → dycw_utilities-0.116.6}/src/utilities/pyrsistent.py +0 -0
- {dycw_utilities-0.116.5 → dycw_utilities-0.116.6}/src/utilities/pytest.py +0 -0
- {dycw_utilities-0.116.5 → dycw_utilities-0.116.6}/src/utilities/pytest_regressions.py +0 -0
- {dycw_utilities-0.116.5 → dycw_utilities-0.116.6}/src/utilities/python_dotenv.py +0 -0
- {dycw_utilities-0.116.5 → dycw_utilities-0.116.6}/src/utilities/random.py +0 -0
- {dycw_utilities-0.116.5 → dycw_utilities-0.116.6}/src/utilities/re.py +0 -0
- {dycw_utilities-0.116.5 → dycw_utilities-0.116.6}/src/utilities/redis.py +0 -0
- {dycw_utilities-0.116.5 → dycw_utilities-0.116.6}/src/utilities/reprlib.py +0 -0
- {dycw_utilities-0.116.5 → dycw_utilities-0.116.6}/src/utilities/rich.py +0 -0
- {dycw_utilities-0.116.5 → dycw_utilities-0.116.6}/src/utilities/scipy.py +0 -0
- {dycw_utilities-0.116.5 → dycw_utilities-0.116.6}/src/utilities/sentinel.py +0 -0
- {dycw_utilities-0.116.5 → dycw_utilities-0.116.6}/src/utilities/shelve.py +0 -0
- {dycw_utilities-0.116.5 → dycw_utilities-0.116.6}/src/utilities/slack_sdk.py +0 -0
- {dycw_utilities-0.116.5 → dycw_utilities-0.116.6}/src/utilities/socket.py +0 -0
- {dycw_utilities-0.116.5 → dycw_utilities-0.116.6}/src/utilities/sqlalchemy.py +0 -0
- {dycw_utilities-0.116.5 → dycw_utilities-0.116.6}/src/utilities/sqlalchemy_polars.py +0 -0
- {dycw_utilities-0.116.5 → dycw_utilities-0.116.6}/src/utilities/statsmodels.py +0 -0
- {dycw_utilities-0.116.5 → dycw_utilities-0.116.6}/src/utilities/streamlit.py +0 -0
- {dycw_utilities-0.116.5 → dycw_utilities-0.116.6}/src/utilities/sys.py +0 -0
- {dycw_utilities-0.116.5 → dycw_utilities-0.116.6}/src/utilities/tempfile.py +0 -0
- {dycw_utilities-0.116.5 → dycw_utilities-0.116.6}/src/utilities/tenacity.py +0 -0
- {dycw_utilities-0.116.5 → dycw_utilities-0.116.6}/src/utilities/text.py +0 -0
- {dycw_utilities-0.116.5 → dycw_utilities-0.116.6}/src/utilities/threading.py +0 -0
- {dycw_utilities-0.116.5 → dycw_utilities-0.116.6}/src/utilities/timer.py +0 -0
- {dycw_utilities-0.116.5 → dycw_utilities-0.116.6}/src/utilities/traceback.py +0 -0
- {dycw_utilities-0.116.5 → dycw_utilities-0.116.6}/src/utilities/types.py +0 -0
- {dycw_utilities-0.116.5 → dycw_utilities-0.116.6}/src/utilities/typing.py +0 -0
- {dycw_utilities-0.116.5 → dycw_utilities-0.116.6}/src/utilities/tzdata.py +0 -0
- {dycw_utilities-0.116.5 → dycw_utilities-0.116.6}/src/utilities/tzlocal.py +0 -0
- {dycw_utilities-0.116.5 → dycw_utilities-0.116.6}/src/utilities/uuid.py +0 -0
- {dycw_utilities-0.116.5 → dycw_utilities-0.116.6}/src/utilities/version.py +0 -0
- {dycw_utilities-0.116.5 → dycw_utilities-0.116.6}/src/utilities/warnings.py +0 -0
- {dycw_utilities-0.116.5 → dycw_utilities-0.116.6}/src/utilities/whenever.py +0 -0
- {dycw_utilities-0.116.5 → dycw_utilities-0.116.6}/src/utilities/zipfile.py +0 -0
- {dycw_utilities-0.116.5 → dycw_utilities-0.116.6}/src/utilities/zoneinfo.py +0 -0
@@ -1,12 +1,12 @@
|
|
1
1
|
Metadata-Version: 2.4
|
2
2
|
Name: dycw-utilities
|
3
|
-
Version: 0.116.
|
3
|
+
Version: 0.116.6
|
4
4
|
Author-email: Derek Wan <d.wan@icloud.com>
|
5
5
|
License-File: LICENSE
|
6
6
|
Requires-Python: >=3.12
|
7
7
|
Requires-Dist: typing-extensions<4.14,>=4.13.1
|
8
8
|
Provides-Extra: test
|
9
|
-
Requires-Dist: hypothesis<6.132,>=6.131.
|
9
|
+
Requires-Dist: hypothesis<6.132,>=6.131.19; extra == 'test'
|
10
10
|
Requires-Dist: pytest-asyncio<0.27,>=0.26.0; extra == 'test'
|
11
11
|
Requires-Dist: pytest-cov<6.2,>=6.1.1; extra == 'test'
|
12
12
|
Requires-Dist: pytest-instafail<0.6,>=0.5.0; extra == 'test'
|
@@ -80,7 +80,7 @@ Provides-Extra: zzz-test-hypothesis
|
|
80
80
|
Requires-Dist: aiosqlite<0.22,>=0.21.0; extra == 'zzz-test-hypothesis'
|
81
81
|
Requires-Dist: asyncpg<0.31,>=0.30.0; extra == 'zzz-test-hypothesis'
|
82
82
|
Requires-Dist: greenlet<3.3,>=3.2.0; extra == 'zzz-test-hypothesis'
|
83
|
-
Requires-Dist: hypothesis<6.132,>=6.131.
|
83
|
+
Requires-Dist: hypothesis<6.132,>=6.131.19; extra == 'zzz-test-hypothesis'
|
84
84
|
Requires-Dist: luigi<3.7,>=3.6.0; extra == 'zzz-test-hypothesis'
|
85
85
|
Requires-Dist: numpy<2.3,>=2.2.5; extra == 'zzz-test-hypothesis'
|
86
86
|
Requires-Dist: pathvalidate<3.3,>=3.2.3; extra == 'zzz-test-hypothesis'
|
@@ -26,7 +26,7 @@ dev = [
|
|
26
26
|
"fpdf2 >= 2.8.3, < 2.9",
|
27
27
|
"greenlet >= 3.2.0, < 3.3", # for sqlalchemy async
|
28
28
|
"httpx >= 0.28.1, < 0.29", # for fastapi
|
29
|
-
"hypothesis >= 6.131.
|
29
|
+
"hypothesis >= 6.131.19, < 6.132",
|
30
30
|
"img2pdf >= 0.6.0, < 0.7",
|
31
31
|
"lightweight-charts >= 2.1, < 2.2",
|
32
32
|
"loguru >= 0.7.3, < 0.8",
|
@@ -92,11 +92,11 @@ dependencies = [
|
|
92
92
|
name = "dycw-utilities"
|
93
93
|
readme = "README.md"
|
94
94
|
requires-python = ">= 3.12"
|
95
|
-
version = "0.116.
|
95
|
+
version = "0.116.6"
|
96
96
|
|
97
97
|
[project.optional-dependencies]
|
98
98
|
test = [
|
99
|
-
"hypothesis >= 6.131.
|
99
|
+
"hypothesis >= 6.131.19, < 6.132",
|
100
100
|
"pytest >= 8.3.5, < 8.4",
|
101
101
|
"pytest-asyncio >= 0.26.0, < 0.27",
|
102
102
|
"pytest-cov >= 6.1.1, < 6.2",
|
@@ -174,7 +174,7 @@ zzz-test-hypothesis = [
|
|
174
174
|
"aiosqlite >= 0.21.0, < 0.22",
|
175
175
|
"asyncpg >= 0.30.0, < 0.31", # for sqlalchemy async
|
176
176
|
"greenlet >= 3.2.0, < 3.3", # for sqlalchemy async
|
177
|
-
"hypothesis >= 6.131.
|
177
|
+
"hypothesis >= 6.131.19, < 6.132",
|
178
178
|
"luigi >= 3.6.0, < 3.7",
|
179
179
|
"numpy >= 2.2.5, < 2.3",
|
180
180
|
"pathvalidate >= 3.2.3, < 3.3",
|
@@ -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.116.
|
337
|
+
current_version = "0.116.6"
|
338
338
|
|
339
339
|
[[tool.bumpversion.files]]
|
340
340
|
filename = "src/utilities/__init__.py"
|
@@ -602,6 +602,22 @@ class TestInfiniteQueueLooper:
|
|
602
602
|
_ = tg.create_task(add_items())
|
603
603
|
assert 15 <= len(looper.output) <= 20
|
604
604
|
|
605
|
+
@given(n=integers(1, 10))
|
606
|
+
def test_len_and_empty(self, *, n: int) -> None:
|
607
|
+
class Example(InfiniteQueueLooper[None, int]):
|
608
|
+
output: set[int] = field(default_factory=set)
|
609
|
+
|
610
|
+
@override
|
611
|
+
async def _process_items(self, *items: int) -> None:
|
612
|
+
self.output.update(items)
|
613
|
+
|
614
|
+
looper = Example(sleep_core=0.05)
|
615
|
+
assert len(looper) == 0
|
616
|
+
assert looper.empty()
|
617
|
+
looper.put_items_nowait(*range(n))
|
618
|
+
assert len(looper) == n
|
619
|
+
assert not looper.empty()
|
620
|
+
|
605
621
|
async def test_no_items(self) -> None:
|
606
622
|
@dataclass(kw_only=True)
|
607
623
|
class Example(InfiniteQueueLooper[None, int]):
|
@@ -616,6 +632,34 @@ class TestInfiniteQueueLooper:
|
|
616
632
|
async with timeout_dur(duration=0.5):
|
617
633
|
_ = await looper()
|
618
634
|
|
635
|
+
async def test_run_until_empty(self) -> None:
|
636
|
+
@dataclass(kw_only=True)
|
637
|
+
class Example(InfiniteQueueLooper[None, int]):
|
638
|
+
output: set[int] = field(default_factory=set)
|
639
|
+
|
640
|
+
@override
|
641
|
+
async def _process_items(self, *items: int) -> None:
|
642
|
+
self.output.update(items)
|
643
|
+
|
644
|
+
looper = Example(sleep_core=0.5)
|
645
|
+
|
646
|
+
async def add_items() -> None:
|
647
|
+
for i in count():
|
648
|
+
looper.put_items_nowait(i)
|
649
|
+
await sleep(0.01)
|
650
|
+
|
651
|
+
with raises(ExceptionGroup): # noqa: PT012
|
652
|
+
async with EnhancedTaskGroup(timeout=1.0) as tg:
|
653
|
+
_ = tg.create_task(looper())
|
654
|
+
_ = tg.create_task(add_items())
|
655
|
+
|
656
|
+
tasks = len(looper)
|
657
|
+
assert tasks >= 1
|
658
|
+
await sleep(0.1)
|
659
|
+
assert len(looper) == tasks
|
660
|
+
await looper.run_until_empty()
|
661
|
+
assert looper.empty()
|
662
|
+
|
619
663
|
@given(logger=just("logger") | none())
|
620
664
|
async def test_error_process_items(self, *, logger: str | None) -> None:
|
621
665
|
class CustomError(Exception): ...
|
@@ -490,6 +490,9 @@ class InfiniteQueueLooper(InfiniteLooper[THashable], Generic[THashable, _T]):
|
|
490
490
|
super().__post_init__()
|
491
491
|
self._queue = self.queue_type()
|
492
492
|
|
493
|
+
def __len__(self) -> int:
|
494
|
+
return self._queue.qsize()
|
495
|
+
|
493
496
|
@override
|
494
497
|
async def _core(self) -> None:
|
495
498
|
"""Run the core part of the loop."""
|
@@ -505,10 +508,19 @@ class InfiniteQueueLooper(InfiniteLooper[THashable], Generic[THashable, _T]):
|
|
505
508
|
async def _process_items(self, *items: _T) -> None:
|
506
509
|
"""Process the items."""
|
507
510
|
|
511
|
+
def empty(self) -> bool:
|
512
|
+
"""Check if the queue is empty."""
|
513
|
+
return self._queue.empty()
|
514
|
+
|
508
515
|
def put_items_nowait(self, *items: _T) -> None:
|
509
516
|
"""Put items into the queue."""
|
510
517
|
put_items_nowait(items, self._queue)
|
511
518
|
|
519
|
+
async def run_until_empty(self) -> None:
|
520
|
+
"""Run until the queue is empty."""
|
521
|
+
while not self.empty():
|
522
|
+
await self._process_items(*get_items_nowait(self._queue))
|
523
|
+
|
512
524
|
@override
|
513
525
|
def _error_upon_core(self, error: Exception, /) -> None:
|
514
526
|
"""Handle any errors upon running the core function."""
|
File without changes
|
File without changes
|
File without changes
|
File without changes
|
File without changes
|
File without changes
|
{dycw_utilities-0.116.5 → dycw_utilities-0.116.6}/src/tests/modules/package_missing/__init__.py
RENAMED
File without changes
|
{dycw_utilities-0.116.5 → dycw_utilities-0.116.6}/src/tests/modules/package_missing/module.py
RENAMED
File without changes
|
{dycw_utilities-0.116.5 → dycw_utilities-0.116.6}/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.116.5 → dycw_utilities-0.116.6}/src/tests/modules/package_without/__init__.py
RENAMED
File without changes
|
{dycw_utilities-0.116.5 → dycw_utilities-0.116.6}/src/tests/modules/package_without/module_1.py
RENAMED
File without changes
|
{dycw_utilities-0.116.5 → dycw_utilities-0.116.6}/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
|
{dycw_utilities-0.116.5 → dycw_utilities-0.116.6}/src/tests/scripts/test_async_service/__init__.py
RENAMED
File without changes
|
{dycw_utilities-0.116.5 → dycw_utilities-0.116.6}/src/tests/scripts/test_async_service/__main__.py
RENAMED
File without changes
|
{dycw_utilities-0.116.5 → dycw_utilities-0.116.6}/src/tests/scripts/test_async_service/run.sh
RENAMED
File without changes
|
{dycw_utilities-0.116.5 → dycw_utilities-0.116.6}/src/tests/scripts/test_queue_processor/__init__.py
RENAMED
File without changes
|
{dycw_utilities-0.116.5 → dycw_utilities-0.116.6}/src/tests/scripts/test_queue_processor/__main__.py
RENAMED
File without changes
|
{dycw_utilities-0.116.5 → dycw_utilities-0.116.6}/src/tests/scripts/test_queue_processor/run.sh
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
|
{dycw_utilities-0.116.5 → dycw_utilities-0.116.6}/src/tests/test_traceback_funcs/__init__.py
RENAMED
File without changes
|
File without changes
|
{dycw_utilities-0.116.5 → dycw_utilities-0.116.6}/src/tests/test_traceback_funcs/decorated_async.py
RENAMED
File without changes
|
{dycw_utilities-0.116.5 → dycw_utilities-0.116.6}/src/tests/test_traceback_funcs/decorated_sync.py
RENAMED
File without changes
|
{dycw_utilities-0.116.5 → dycw_utilities-0.116.6}/src/tests/test_traceback_funcs/error_bind.py
RENAMED
File without changes
|
File without changes
|
File without changes
|
{dycw_utilities-0.116.5 → dycw_utilities-0.116.6}/src/tests/test_traceback_funcs/recursive.py
RENAMED
File without changes
|
{dycw_utilities-0.116.5 → dycw_utilities-0.116.6}/src/tests/test_traceback_funcs/task_group_one.py
RENAMED
File without changes
|
{dycw_utilities-0.116.5 → dycw_utilities-0.116.6}/src/tests/test_traceback_funcs/task_group_two.py
RENAMED
File without changes
|
File without changes
|
{dycw_utilities-0.116.5 → dycw_utilities-0.116.6}/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.116.5 → dycw_utilities-0.116.6}/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
|