dycw-utilities 0.125.8__tar.gz → 0.125.9__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.125.8 → dycw_utilities-0.125.9}/PKG-INFO +1 -1
- {dycw_utilities-0.125.8 → dycw_utilities-0.125.9}/pyproject.toml +2 -2
- {dycw_utilities-0.125.8 → dycw_utilities-0.125.9}/src/tests/test_platform.py +45 -20
- {dycw_utilities-0.125.8 → dycw_utilities-0.125.9}/src/utilities/__init__.py +1 -1
- {dycw_utilities-0.125.8 → dycw_utilities-0.125.9}/src/utilities/platform.py +29 -0
- {dycw_utilities-0.125.8 → dycw_utilities-0.125.9}/.gitignore +0 -0
- {dycw_utilities-0.125.8 → dycw_utilities-0.125.9}/LICENSE +0 -0
- {dycw_utilities-0.125.8 → dycw_utilities-0.125.9}/README.md +0 -0
- {dycw_utilities-0.125.8 → dycw_utilities-0.125.9}/src/tests/__init__.py +0 -0
- {dycw_utilities-0.125.8 → dycw_utilities-0.125.9}/src/tests/conftest.py +0 -0
- {dycw_utilities-0.125.8 → dycw_utilities-0.125.9}/src/tests/modules/__init__.py +0 -0
- {dycw_utilities-0.125.8 → dycw_utilities-0.125.9}/src/tests/modules/package_missing/__init__.py +0 -0
- {dycw_utilities-0.125.8 → dycw_utilities-0.125.9}/src/tests/modules/package_missing/module.py +0 -0
- {dycw_utilities-0.125.8 → dycw_utilities-0.125.9}/src/tests/modules/package_with/__init__.py +0 -0
- {dycw_utilities-0.125.8 → dycw_utilities-0.125.9}/src/tests/modules/package_with/outer_1.py +0 -0
- {dycw_utilities-0.125.8 → dycw_utilities-0.125.9}/src/tests/modules/package_with/outer_2.py +0 -0
- {dycw_utilities-0.125.8 → dycw_utilities-0.125.9}/src/tests/modules/package_with/subpackage/__init__.py +0 -0
- {dycw_utilities-0.125.8 → dycw_utilities-0.125.9}/src/tests/modules/package_with/subpackage/inner_1.py +0 -0
- {dycw_utilities-0.125.8 → dycw_utilities-0.125.9}/src/tests/modules/package_with/subpackage/inner_2.py +0 -0
- {dycw_utilities-0.125.8 → dycw_utilities-0.125.9}/src/tests/modules/package_with/subpackage/inner_3.py +0 -0
- {dycw_utilities-0.125.8 → dycw_utilities-0.125.9}/src/tests/modules/package_without/__init__.py +0 -0
- {dycw_utilities-0.125.8 → dycw_utilities-0.125.9}/src/tests/modules/package_without/module_1.py +0 -0
- {dycw_utilities-0.125.8 → dycw_utilities-0.125.9}/src/tests/modules/package_without/module_2.py +0 -0
- {dycw_utilities-0.125.8 → dycw_utilities-0.125.9}/src/tests/modules/standalone.py +0 -0
- {dycw_utilities-0.125.8 → dycw_utilities-0.125.9}/src/tests/modules/with_imports.py +0 -0
- {dycw_utilities-0.125.8 → dycw_utilities-0.125.9}/src/tests/regressions/test_pytest_regressions/TestMultipleRegressionFixtures__test_main__obj.json +0 -0
- {dycw_utilities-0.125.8 → dycw_utilities-0.125.9}/src/tests/regressions/test_pytest_regressions/TestMultipleRegressionFixtures__test_main__series.json +0 -0
- {dycw_utilities-0.125.8 → dycw_utilities-0.125.9}/src/tests/regressions/test_pytest_regressions/TestOrjsonRegressionFixture__test_dataclass_int.json +0 -0
- {dycw_utilities-0.125.8 → dycw_utilities-0.125.9}/src/tests/regressions/test_pytest_regressions/TestOrjsonRegressionFixture__test_dataclass_literal__false.json +0 -0
- {dycw_utilities-0.125.8 → dycw_utilities-0.125.9}/src/tests/regressions/test_pytest_regressions/TestOrjsonRegressionFixture__test_dataclass_literal__true.json +0 -0
- {dycw_utilities-0.125.8 → dycw_utilities-0.125.9}/src/tests/regressions/test_pytest_regressions/TestOrjsonRegressionFixture__test_dataclass_nested.json +0 -0
- {dycw_utilities-0.125.8 → dycw_utilities-0.125.9}/src/tests/regressions/test_pytest_regressions/TestPolarsRegressionFixture__test_dataframe.json +0 -0
- {dycw_utilities-0.125.8 → dycw_utilities-0.125.9}/src/tests/regressions/test_pytest_regressions/TestPolarsRegressionFixture__test_series.json +0 -0
- {dycw_utilities-0.125.8 → dycw_utilities-0.125.9}/src/tests/test_altair.py +0 -0
- {dycw_utilities-0.125.8 → dycw_utilities-0.125.9}/src/tests/test_asyncio.py +0 -0
- {dycw_utilities-0.125.8 → dycw_utilities-0.125.9}/src/tests/test_atomicwrites.py +0 -0
- {dycw_utilities-0.125.8 → dycw_utilities-0.125.9}/src/tests/test_atools.py +0 -0
- {dycw_utilities-0.125.8 → dycw_utilities-0.125.9}/src/tests/test_cachetools.py +0 -0
- {dycw_utilities-0.125.8 → dycw_utilities-0.125.9}/src/tests/test_click.py +0 -0
- {dycw_utilities-0.125.8 → dycw_utilities-0.125.9}/src/tests/test_concurrent.py +0 -0
- {dycw_utilities-0.125.8 → dycw_utilities-0.125.9}/src/tests/test_contextlib.py +0 -0
- {dycw_utilities-0.125.8 → dycw_utilities-0.125.9}/src/tests/test_contextvars.py +0 -0
- {dycw_utilities-0.125.8 → dycw_utilities-0.125.9}/src/tests/test_cryptography.py +0 -0
- {dycw_utilities-0.125.8 → dycw_utilities-0.125.9}/src/tests/test_cvxpy.py +0 -0
- {dycw_utilities-0.125.8 → dycw_utilities-0.125.9}/src/tests/test_dataclasses.py +0 -0
- {dycw_utilities-0.125.8 → dycw_utilities-0.125.9}/src/tests/test_datetime.py +0 -0
- {dycw_utilities-0.125.8 → dycw_utilities-0.125.9}/src/tests/test_enum.py +0 -0
- {dycw_utilities-0.125.8 → dycw_utilities-0.125.9}/src/tests/test_errors.py +0 -0
- {dycw_utilities-0.125.8 → dycw_utilities-0.125.9}/src/tests/test_eventkit.py +0 -0
- {dycw_utilities-0.125.8 → dycw_utilities-0.125.9}/src/tests/test_fastapi.py +0 -0
- {dycw_utilities-0.125.8 → dycw_utilities-0.125.9}/src/tests/test_fpdf2.py +0 -0
- {dycw_utilities-0.125.8 → dycw_utilities-0.125.9}/src/tests/test_functions.py +0 -0
- {dycw_utilities-0.125.8 → dycw_utilities-0.125.9}/src/tests/test_functools.py +0 -0
- {dycw_utilities-0.125.8 → dycw_utilities-0.125.9}/src/tests/test_getpass.py +0 -0
- {dycw_utilities-0.125.8 → dycw_utilities-0.125.9}/src/tests/test_git.py +0 -0
- {dycw_utilities-0.125.8 → dycw_utilities-0.125.9}/src/tests/test_hashlib.py +0 -0
- {dycw_utilities-0.125.8 → dycw_utilities-0.125.9}/src/tests/test_http.py +0 -0
- {dycw_utilities-0.125.8 → dycw_utilities-0.125.9}/src/tests/test_hypothesis.py +0 -0
- {dycw_utilities-0.125.8 → dycw_utilities-0.125.9}/src/tests/test_importlib.py +0 -0
- {dycw_utilities-0.125.8 → dycw_utilities-0.125.9}/src/tests/test_ipython.py +0 -0
- {dycw_utilities-0.125.8 → dycw_utilities-0.125.9}/src/tests/test_iterables.py +0 -0
- {dycw_utilities-0.125.8 → dycw_utilities-0.125.9}/src/tests/test_jupyter.py +0 -0
- {dycw_utilities-0.125.8 → dycw_utilities-0.125.9}/src/tests/test_libcst.py +0 -0
- {dycw_utilities-0.125.8 → dycw_utilities-0.125.9}/src/tests/test_lightweight_charts.py +0 -0
- {dycw_utilities-0.125.8 → dycw_utilities-0.125.9}/src/tests/test_logging.py +0 -0
- {dycw_utilities-0.125.8 → dycw_utilities-0.125.9}/src/tests/test_loguru.py +0 -0
- {dycw_utilities-0.125.8 → dycw_utilities-0.125.9}/src/tests/test_luigi.py +0 -0
- {dycw_utilities-0.125.8 → dycw_utilities-0.125.9}/src/tests/test_math.py +0 -0
- {dycw_utilities-0.125.8 → dycw_utilities-0.125.9}/src/tests/test_memory_profiler.py +0 -0
- {dycw_utilities-0.125.8 → dycw_utilities-0.125.9}/src/tests/test_modules.py +0 -0
- {dycw_utilities-0.125.8 → dycw_utilities-0.125.9}/src/tests/test_more_itertools.py +0 -0
- {dycw_utilities-0.125.8 → dycw_utilities-0.125.9}/src/tests/test_numpy.py +0 -0
- {dycw_utilities-0.125.8 → dycw_utilities-0.125.9}/src/tests/test_operator.py +0 -0
- {dycw_utilities-0.125.8 → dycw_utilities-0.125.9}/src/tests/test_optuna.py +0 -0
- {dycw_utilities-0.125.8 → dycw_utilities-0.125.9}/src/tests/test_orjson.py +0 -0
- {dycw_utilities-0.125.8 → dycw_utilities-0.125.9}/src/tests/test_os.py +0 -0
- {dycw_utilities-0.125.8 → dycw_utilities-0.125.9}/src/tests/test_parse.py +0 -0
- {dycw_utilities-0.125.8 → dycw_utilities-0.125.9}/src/tests/test_pathlib.py +0 -0
- {dycw_utilities-0.125.8 → dycw_utilities-0.125.9}/src/tests/test_period.py +0 -0
- {dycw_utilities-0.125.8 → dycw_utilities-0.125.9}/src/tests/test_pickle.py +0 -0
- {dycw_utilities-0.125.8 → dycw_utilities-0.125.9}/src/tests/test_polars.py +0 -0
- {dycw_utilities-0.125.8 → dycw_utilities-0.125.9}/src/tests/test_polars_ols.py +0 -0
- {dycw_utilities-0.125.8 → dycw_utilities-0.125.9}/src/tests/test_pqdm.py +0 -0
- {dycw_utilities-0.125.8 → dycw_utilities-0.125.9}/src/tests/test_pydantic.py +0 -0
- {dycw_utilities-0.125.8 → dycw_utilities-0.125.9}/src/tests/test_pyinstrument.py +0 -0
- {dycw_utilities-0.125.8 → dycw_utilities-0.125.9}/src/tests/test_pyrsistent.py +0 -0
- {dycw_utilities-0.125.8 → dycw_utilities-0.125.9}/src/tests/test_pytest.py +0 -0
- {dycw_utilities-0.125.8 → dycw_utilities-0.125.9}/src/tests/test_pytest_regressions.py +0 -0
- {dycw_utilities-0.125.8 → dycw_utilities-0.125.9}/src/tests/test_python_dotenv.py +0 -0
- {dycw_utilities-0.125.8 → dycw_utilities-0.125.9}/src/tests/test_random.py +0 -0
- {dycw_utilities-0.125.8 → dycw_utilities-0.125.9}/src/tests/test_re.py +0 -0
- {dycw_utilities-0.125.8 → dycw_utilities-0.125.9}/src/tests/test_redis.py +0 -0
- {dycw_utilities-0.125.8 → dycw_utilities-0.125.9}/src/tests/test_reprlib.py +0 -0
- {dycw_utilities-0.125.8 → dycw_utilities-0.125.9}/src/tests/test_rich.py +0 -0
- {dycw_utilities-0.125.8 → dycw_utilities-0.125.9}/src/tests/test_scipy.py +0 -0
- {dycw_utilities-0.125.8 → dycw_utilities-0.125.9}/src/tests/test_sentinel.py +0 -0
- {dycw_utilities-0.125.8 → dycw_utilities-0.125.9}/src/tests/test_shelve.py +0 -0
- {dycw_utilities-0.125.8 → dycw_utilities-0.125.9}/src/tests/test_slack_sdk.py +0 -0
- {dycw_utilities-0.125.8 → dycw_utilities-0.125.9}/src/tests/test_socket.py +0 -0
- {dycw_utilities-0.125.8 → dycw_utilities-0.125.9}/src/tests/test_sqlalchemy.py +0 -0
- {dycw_utilities-0.125.8 → dycw_utilities-0.125.9}/src/tests/test_sqlalchemy_polars.py +0 -0
- {dycw_utilities-0.125.8 → dycw_utilities-0.125.9}/src/tests/test_statsmodel.py +0 -0
- {dycw_utilities-0.125.8 → dycw_utilities-0.125.9}/src/tests/test_streamlit.py +0 -0
- {dycw_utilities-0.125.8 → dycw_utilities-0.125.9}/src/tests/test_sys.py +0 -0
- {dycw_utilities-0.125.8 → dycw_utilities-0.125.9}/src/tests/test_tempfile.py +0 -0
- {dycw_utilities-0.125.8 → dycw_utilities-0.125.9}/src/tests/test_tenacity.py +0 -0
- {dycw_utilities-0.125.8 → dycw_utilities-0.125.9}/src/tests/test_text.py +0 -0
- {dycw_utilities-0.125.8 → dycw_utilities-0.125.9}/src/tests/test_threading.py +0 -0
- {dycw_utilities-0.125.8 → dycw_utilities-0.125.9}/src/tests/test_timer.py +0 -0
- {dycw_utilities-0.125.8 → dycw_utilities-0.125.9}/src/tests/test_traceback.py +0 -0
- {dycw_utilities-0.125.8 → dycw_utilities-0.125.9}/src/tests/test_traceback_funcs/__init__.py +0 -0
- {dycw_utilities-0.125.8 → dycw_utilities-0.125.9}/src/tests/test_traceback_funcs/chain.py +0 -0
- {dycw_utilities-0.125.8 → dycw_utilities-0.125.9}/src/tests/test_traceback_funcs/decorated_async.py +0 -0
- {dycw_utilities-0.125.8 → dycw_utilities-0.125.9}/src/tests/test_traceback_funcs/decorated_sync.py +0 -0
- {dycw_utilities-0.125.8 → dycw_utilities-0.125.9}/src/tests/test_traceback_funcs/error_bind.py +0 -0
- {dycw_utilities-0.125.8 → dycw_utilities-0.125.9}/src/tests/test_traceback_funcs/many.py +0 -0
- {dycw_utilities-0.125.8 → dycw_utilities-0.125.9}/src/tests/test_traceback_funcs/one.py +0 -0
- {dycw_utilities-0.125.8 → dycw_utilities-0.125.9}/src/tests/test_traceback_funcs/recursive.py +0 -0
- {dycw_utilities-0.125.8 → dycw_utilities-0.125.9}/src/tests/test_traceback_funcs/task_group_one.py +0 -0
- {dycw_utilities-0.125.8 → dycw_utilities-0.125.9}/src/tests/test_traceback_funcs/task_group_two.py +0 -0
- {dycw_utilities-0.125.8 → dycw_utilities-0.125.9}/src/tests/test_traceback_funcs/two.py +0 -0
- {dycw_utilities-0.125.8 → dycw_utilities-0.125.9}/src/tests/test_traceback_funcs/untraced.py +0 -0
- {dycw_utilities-0.125.8 → dycw_utilities-0.125.9}/src/tests/test_types.py +0 -0
- {dycw_utilities-0.125.8 → dycw_utilities-0.125.9}/src/tests/test_typing.py +0 -0
- {dycw_utilities-0.125.8 → dycw_utilities-0.125.9}/src/tests/test_typing_funcs/__init__.py +0 -0
- {dycw_utilities-0.125.8 → dycw_utilities-0.125.9}/src/tests/test_typing_funcs/no_future.py +0 -0
- {dycw_utilities-0.125.8 → dycw_utilities-0.125.9}/src/tests/test_typing_funcs/with_future.py +0 -0
- {dycw_utilities-0.125.8 → dycw_utilities-0.125.9}/src/tests/test_tzdata.py +0 -0
- {dycw_utilities-0.125.8 → dycw_utilities-0.125.9}/src/tests/test_tzlocal.py +0 -0
- {dycw_utilities-0.125.8 → dycw_utilities-0.125.9}/src/tests/test_uuid.py +0 -0
- {dycw_utilities-0.125.8 → dycw_utilities-0.125.9}/src/tests/test_version.py +0 -0
- {dycw_utilities-0.125.8 → dycw_utilities-0.125.9}/src/tests/test_warnings.py +0 -0
- {dycw_utilities-0.125.8 → dycw_utilities-0.125.9}/src/tests/test_whenever.py +0 -0
- {dycw_utilities-0.125.8 → dycw_utilities-0.125.9}/src/tests/test_zipfile.py +0 -0
- {dycw_utilities-0.125.8 → dycw_utilities-0.125.9}/src/tests/test_zoneinfo.py +0 -0
- {dycw_utilities-0.125.8 → dycw_utilities-0.125.9}/src/utilities/altair.py +0 -0
- {dycw_utilities-0.125.8 → dycw_utilities-0.125.9}/src/utilities/asyncio.py +0 -0
- {dycw_utilities-0.125.8 → dycw_utilities-0.125.9}/src/utilities/atomicwrites.py +0 -0
- {dycw_utilities-0.125.8 → dycw_utilities-0.125.9}/src/utilities/atools.py +0 -0
- {dycw_utilities-0.125.8 → dycw_utilities-0.125.9}/src/utilities/cachetools.py +0 -0
- {dycw_utilities-0.125.8 → dycw_utilities-0.125.9}/src/utilities/click.py +0 -0
- {dycw_utilities-0.125.8 → dycw_utilities-0.125.9}/src/utilities/concurrent.py +0 -0
- {dycw_utilities-0.125.8 → dycw_utilities-0.125.9}/src/utilities/contextlib.py +0 -0
- {dycw_utilities-0.125.8 → dycw_utilities-0.125.9}/src/utilities/contextvars.py +0 -0
- {dycw_utilities-0.125.8 → dycw_utilities-0.125.9}/src/utilities/cryptography.py +0 -0
- {dycw_utilities-0.125.8 → dycw_utilities-0.125.9}/src/utilities/cvxpy.py +0 -0
- {dycw_utilities-0.125.8 → dycw_utilities-0.125.9}/src/utilities/dataclasses.py +0 -0
- {dycw_utilities-0.125.8 → dycw_utilities-0.125.9}/src/utilities/datetime.py +0 -0
- {dycw_utilities-0.125.8 → dycw_utilities-0.125.9}/src/utilities/enum.py +0 -0
- {dycw_utilities-0.125.8 → dycw_utilities-0.125.9}/src/utilities/errors.py +0 -0
- {dycw_utilities-0.125.8 → dycw_utilities-0.125.9}/src/utilities/eventkit.py +0 -0
- {dycw_utilities-0.125.8 → dycw_utilities-0.125.9}/src/utilities/fastapi.py +0 -0
- {dycw_utilities-0.125.8 → dycw_utilities-0.125.9}/src/utilities/fpdf2.py +0 -0
- {dycw_utilities-0.125.8 → dycw_utilities-0.125.9}/src/utilities/functions.py +0 -0
- {dycw_utilities-0.125.8 → dycw_utilities-0.125.9}/src/utilities/functools.py +0 -0
- {dycw_utilities-0.125.8 → dycw_utilities-0.125.9}/src/utilities/getpass.py +0 -0
- {dycw_utilities-0.125.8 → dycw_utilities-0.125.9}/src/utilities/git.py +0 -0
- {dycw_utilities-0.125.8 → dycw_utilities-0.125.9}/src/utilities/hashlib.py +0 -0
- {dycw_utilities-0.125.8 → dycw_utilities-0.125.9}/src/utilities/http.py +0 -0
- {dycw_utilities-0.125.8 → dycw_utilities-0.125.9}/src/utilities/hypothesis.py +0 -0
- {dycw_utilities-0.125.8 → dycw_utilities-0.125.9}/src/utilities/importlib.py +0 -0
- {dycw_utilities-0.125.8 → dycw_utilities-0.125.9}/src/utilities/ipython.py +0 -0
- {dycw_utilities-0.125.8 → dycw_utilities-0.125.9}/src/utilities/iterables.py +0 -0
- {dycw_utilities-0.125.8 → dycw_utilities-0.125.9}/src/utilities/jupyter.py +0 -0
- {dycw_utilities-0.125.8 → dycw_utilities-0.125.9}/src/utilities/libcst.py +0 -0
- {dycw_utilities-0.125.8 → dycw_utilities-0.125.9}/src/utilities/lightweight_charts.py +0 -0
- {dycw_utilities-0.125.8 → dycw_utilities-0.125.9}/src/utilities/logging.py +0 -0
- {dycw_utilities-0.125.8 → dycw_utilities-0.125.9}/src/utilities/loguru.py +0 -0
- {dycw_utilities-0.125.8 → dycw_utilities-0.125.9}/src/utilities/luigi.py +0 -0
- {dycw_utilities-0.125.8 → dycw_utilities-0.125.9}/src/utilities/math.py +0 -0
- {dycw_utilities-0.125.8 → dycw_utilities-0.125.9}/src/utilities/memory_profiler.py +0 -0
- {dycw_utilities-0.125.8 → dycw_utilities-0.125.9}/src/utilities/modules.py +0 -0
- {dycw_utilities-0.125.8 → dycw_utilities-0.125.9}/src/utilities/more_itertools.py +0 -0
- {dycw_utilities-0.125.8 → dycw_utilities-0.125.9}/src/utilities/numpy.py +0 -0
- {dycw_utilities-0.125.8 → dycw_utilities-0.125.9}/src/utilities/operator.py +0 -0
- {dycw_utilities-0.125.8 → dycw_utilities-0.125.9}/src/utilities/optuna.py +0 -0
- {dycw_utilities-0.125.8 → dycw_utilities-0.125.9}/src/utilities/orjson.py +0 -0
- {dycw_utilities-0.125.8 → dycw_utilities-0.125.9}/src/utilities/os.py +0 -0
- {dycw_utilities-0.125.8 → dycw_utilities-0.125.9}/src/utilities/parse.py +0 -0
- {dycw_utilities-0.125.8 → dycw_utilities-0.125.9}/src/utilities/pathlib.py +0 -0
- {dycw_utilities-0.125.8 → dycw_utilities-0.125.9}/src/utilities/period.py +0 -0
- {dycw_utilities-0.125.8 → dycw_utilities-0.125.9}/src/utilities/pickle.py +0 -0
- {dycw_utilities-0.125.8 → dycw_utilities-0.125.9}/src/utilities/polars.py +0 -0
- {dycw_utilities-0.125.8 → dycw_utilities-0.125.9}/src/utilities/polars_ols.py +0 -0
- {dycw_utilities-0.125.8 → dycw_utilities-0.125.9}/src/utilities/pqdm.py +0 -0
- {dycw_utilities-0.125.8 → dycw_utilities-0.125.9}/src/utilities/py.typed +0 -0
- {dycw_utilities-0.125.8 → dycw_utilities-0.125.9}/src/utilities/pydantic.py +0 -0
- {dycw_utilities-0.125.8 → dycw_utilities-0.125.9}/src/utilities/pyinstrument.py +0 -0
- {dycw_utilities-0.125.8 → dycw_utilities-0.125.9}/src/utilities/pyrsistent.py +0 -0
- {dycw_utilities-0.125.8 → dycw_utilities-0.125.9}/src/utilities/pytest.py +0 -0
- {dycw_utilities-0.125.8 → dycw_utilities-0.125.9}/src/utilities/pytest_regressions.py +0 -0
- {dycw_utilities-0.125.8 → dycw_utilities-0.125.9}/src/utilities/python_dotenv.py +0 -0
- {dycw_utilities-0.125.8 → dycw_utilities-0.125.9}/src/utilities/random.py +0 -0
- {dycw_utilities-0.125.8 → dycw_utilities-0.125.9}/src/utilities/re.py +0 -0
- {dycw_utilities-0.125.8 → dycw_utilities-0.125.9}/src/utilities/redis.py +0 -0
- {dycw_utilities-0.125.8 → dycw_utilities-0.125.9}/src/utilities/reprlib.py +0 -0
- {dycw_utilities-0.125.8 → dycw_utilities-0.125.9}/src/utilities/rich.py +0 -0
- {dycw_utilities-0.125.8 → dycw_utilities-0.125.9}/src/utilities/scipy.py +0 -0
- {dycw_utilities-0.125.8 → dycw_utilities-0.125.9}/src/utilities/sentinel.py +0 -0
- {dycw_utilities-0.125.8 → dycw_utilities-0.125.9}/src/utilities/shelve.py +0 -0
- {dycw_utilities-0.125.8 → dycw_utilities-0.125.9}/src/utilities/slack_sdk.py +0 -0
- {dycw_utilities-0.125.8 → dycw_utilities-0.125.9}/src/utilities/socket.py +0 -0
- {dycw_utilities-0.125.8 → dycw_utilities-0.125.9}/src/utilities/sqlalchemy.py +0 -0
- {dycw_utilities-0.125.8 → dycw_utilities-0.125.9}/src/utilities/sqlalchemy_polars.py +0 -0
- {dycw_utilities-0.125.8 → dycw_utilities-0.125.9}/src/utilities/statsmodels.py +0 -0
- {dycw_utilities-0.125.8 → dycw_utilities-0.125.9}/src/utilities/streamlit.py +0 -0
- {dycw_utilities-0.125.8 → dycw_utilities-0.125.9}/src/utilities/sys.py +0 -0
- {dycw_utilities-0.125.8 → dycw_utilities-0.125.9}/src/utilities/tempfile.py +0 -0
- {dycw_utilities-0.125.8 → dycw_utilities-0.125.9}/src/utilities/tenacity.py +0 -0
- {dycw_utilities-0.125.8 → dycw_utilities-0.125.9}/src/utilities/text.py +0 -0
- {dycw_utilities-0.125.8 → dycw_utilities-0.125.9}/src/utilities/threading.py +0 -0
- {dycw_utilities-0.125.8 → dycw_utilities-0.125.9}/src/utilities/timer.py +0 -0
- {dycw_utilities-0.125.8 → dycw_utilities-0.125.9}/src/utilities/traceback.py +0 -0
- {dycw_utilities-0.125.8 → dycw_utilities-0.125.9}/src/utilities/types.py +0 -0
- {dycw_utilities-0.125.8 → dycw_utilities-0.125.9}/src/utilities/typing.py +0 -0
- {dycw_utilities-0.125.8 → dycw_utilities-0.125.9}/src/utilities/tzdata.py +0 -0
- {dycw_utilities-0.125.8 → dycw_utilities-0.125.9}/src/utilities/tzlocal.py +0 -0
- {dycw_utilities-0.125.8 → dycw_utilities-0.125.9}/src/utilities/uuid.py +0 -0
- {dycw_utilities-0.125.8 → dycw_utilities-0.125.9}/src/utilities/version.py +0 -0
- {dycw_utilities-0.125.8 → dycw_utilities-0.125.9}/src/utilities/warnings.py +0 -0
- {dycw_utilities-0.125.8 → dycw_utilities-0.125.9}/src/utilities/whenever.py +0 -0
- {dycw_utilities-0.125.8 → dycw_utilities-0.125.9}/src/utilities/zipfile.py +0 -0
- {dycw_utilities-0.125.8 → dycw_utilities-0.125.9}/src/utilities/zoneinfo.py +0 -0
@@ -93,7 +93,7 @@ dependencies = [
|
|
93
93
|
name = "dycw-utilities"
|
94
94
|
readme = "README.md"
|
95
95
|
requires-python = ">= 3.12"
|
96
|
-
version = "0.125.
|
96
|
+
version = "0.125.9"
|
97
97
|
|
98
98
|
[project.optional-dependencies]
|
99
99
|
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.125.
|
337
|
+
current_version = "0.125.9"
|
338
338
|
|
339
339
|
[[tool.bumpversion.files]]
|
340
340
|
filename = "src/utilities/__init__.py"
|
@@ -3,8 +3,7 @@ from __future__ import annotations
|
|
3
3
|
from typing import TYPE_CHECKING, assert_never
|
4
4
|
|
5
5
|
from hypothesis import given
|
6
|
-
from hypothesis.strategies import sets
|
7
|
-
from pytest import mark, param
|
6
|
+
from hypothesis.strategies import sampled_from, sets
|
8
7
|
|
9
8
|
from utilities.hypothesis import text_ascii
|
10
9
|
from utilities.platform import (
|
@@ -14,8 +13,10 @@ from utilities.platform import (
|
|
14
13
|
IS_NOT_MAC,
|
15
14
|
IS_NOT_WINDOWS,
|
16
15
|
IS_WINDOWS,
|
16
|
+
MAX_PID,
|
17
17
|
SYSTEM,
|
18
18
|
System,
|
19
|
+
get_max_pid,
|
19
20
|
get_system,
|
20
21
|
maybe_yield_lower_case,
|
21
22
|
)
|
@@ -25,38 +26,62 @@ if TYPE_CHECKING:
|
|
25
26
|
from collections.abc import Set as AbstractSet
|
26
27
|
|
27
28
|
|
28
|
-
class
|
29
|
-
|
30
|
-
|
31
|
-
result = set(maybe_yield_lower_case(text))
|
29
|
+
class TestGetMaxPID:
|
30
|
+
def test_function(self) -> None:
|
31
|
+
result = get_max_pid()
|
32
32
|
match SYSTEM:
|
33
33
|
case "windows": # skipif-not-windows
|
34
|
-
assert
|
34
|
+
assert result is None
|
35
35
|
case "mac": # skipif-not-macos
|
36
|
-
assert
|
36
|
+
assert isinstance(result, int)
|
37
37
|
case "linux": # skipif-not-linux
|
38
|
-
assert result
|
38
|
+
assert isinstance(result, int)
|
39
|
+
case _ as never:
|
40
|
+
assert_never(never)
|
41
|
+
|
42
|
+
def test_constant(self) -> None:
|
43
|
+
match SYSTEM:
|
44
|
+
case "windows": # skipif-not-windows
|
45
|
+
assert MAX_PID is None
|
46
|
+
case "mac": # skipif-not-macos
|
47
|
+
assert isinstance(MAX_PID, int)
|
48
|
+
case "linux": # skipif-not-linux
|
49
|
+
assert isinstance(MAX_PID, int)
|
39
50
|
case _ as never:
|
40
51
|
assert_never(never)
|
41
52
|
|
42
53
|
|
43
|
-
class
|
54
|
+
class TestGetSystem:
|
44
55
|
def test_function(self) -> None:
|
45
56
|
assert get_system() in get_args(System)
|
46
57
|
|
47
58
|
def test_constant(self) -> None:
|
48
59
|
assert SYSTEM in get_args(System)
|
49
60
|
|
50
|
-
@
|
51
|
-
|
52
|
-
|
53
|
-
|
54
|
-
|
55
|
-
|
56
|
-
|
57
|
-
|
58
|
-
|
59
|
-
],
|
61
|
+
@given(
|
62
|
+
predicate=sampled_from([
|
63
|
+
IS_WINDOWS,
|
64
|
+
IS_MAC,
|
65
|
+
IS_LINUX,
|
66
|
+
IS_NOT_WINDOWS,
|
67
|
+
IS_NOT_MAC,
|
68
|
+
IS_NOT_LINUX,
|
69
|
+
])
|
60
70
|
)
|
61
71
|
def test_predicates(self, *, predicate: bool) -> None:
|
62
72
|
assert isinstance(predicate, bool)
|
73
|
+
|
74
|
+
|
75
|
+
class TestMaybeYieldLowerCase:
|
76
|
+
@given(text=sets(text_ascii()))
|
77
|
+
def test_main(self, *, text: AbstractSet[str]) -> None:
|
78
|
+
result = set(maybe_yield_lower_case(text))
|
79
|
+
match SYSTEM:
|
80
|
+
case "windows": # skipif-not-windows
|
81
|
+
assert all(text == text.lower() for text in result)
|
82
|
+
case "mac": # skipif-not-macos
|
83
|
+
assert all(text == text.lower() for text in result)
|
84
|
+
case "linux": # skipif-not-linux
|
85
|
+
assert result == text
|
86
|
+
case _ as never:
|
87
|
+
assert_never(never)
|
@@ -1,6 +1,7 @@
|
|
1
1
|
from __future__ import annotations
|
2
2
|
|
3
3
|
from dataclasses import dataclass
|
4
|
+
from pathlib import Path
|
4
5
|
from platform import system
|
5
6
|
from typing import TYPE_CHECKING, Literal, assert_never, override
|
6
7
|
|
@@ -42,6 +43,32 @@ IS_NOT_MAC = not IS_MAC
|
|
42
43
|
IS_NOT_LINUX = not IS_LINUX
|
43
44
|
|
44
45
|
|
46
|
+
##
|
47
|
+
|
48
|
+
|
49
|
+
def get_max_pid() -> int | None:
|
50
|
+
"""Get the maximum process ID."""
|
51
|
+
match SYSTEM:
|
52
|
+
case "windows": # pragma: no cover
|
53
|
+
return None
|
54
|
+
case "mac": # skipif-not-macos
|
55
|
+
return 99999
|
56
|
+
case "linux": # skipif-not-linux
|
57
|
+
try:
|
58
|
+
with Path("/proc/sys/kernel/pid_max").open() as fh:
|
59
|
+
return int(fh.read())
|
60
|
+
except FileNotFoundError: # pragma: no cover
|
61
|
+
return None
|
62
|
+
case _ as never:
|
63
|
+
assert_never(never)
|
64
|
+
|
65
|
+
|
66
|
+
MAX_PID = get_max_pid()
|
67
|
+
|
68
|
+
|
69
|
+
##
|
70
|
+
|
71
|
+
|
45
72
|
def maybe_yield_lower_case(text: Iterable[str], /) -> Iterator[str]:
|
46
73
|
"""Yield lower-cased text if the platform is case-insentive."""
|
47
74
|
match SYSTEM:
|
@@ -62,9 +89,11 @@ __all__ = [
|
|
62
89
|
"IS_NOT_MAC",
|
63
90
|
"IS_NOT_WINDOWS",
|
64
91
|
"IS_WINDOWS",
|
92
|
+
"MAX_PID",
|
65
93
|
"SYSTEM",
|
66
94
|
"GetSystemError",
|
67
95
|
"System",
|
96
|
+
"get_max_pid",
|
68
97
|
"get_system",
|
69
98
|
"maybe_yield_lower_case",
|
70
99
|
]
|
File without changes
|
File without changes
|
File without changes
|
File without changes
|
File without changes
|
File without changes
|
{dycw_utilities-0.125.8 → dycw_utilities-0.125.9}/src/tests/modules/package_missing/__init__.py
RENAMED
File without changes
|
{dycw_utilities-0.125.8 → dycw_utilities-0.125.9}/src/tests/modules/package_missing/module.py
RENAMED
File without changes
|
{dycw_utilities-0.125.8 → dycw_utilities-0.125.9}/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.125.8 → dycw_utilities-0.125.9}/src/tests/modules/package_without/__init__.py
RENAMED
File without changes
|
{dycw_utilities-0.125.8 → dycw_utilities-0.125.9}/src/tests/modules/package_without/module_1.py
RENAMED
File without changes
|
{dycw_utilities-0.125.8 → dycw_utilities-0.125.9}/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
|
{dycw_utilities-0.125.8 → dycw_utilities-0.125.9}/src/tests/test_traceback_funcs/__init__.py
RENAMED
File without changes
|
File without changes
|
{dycw_utilities-0.125.8 → dycw_utilities-0.125.9}/src/tests/test_traceback_funcs/decorated_async.py
RENAMED
File without changes
|
{dycw_utilities-0.125.8 → dycw_utilities-0.125.9}/src/tests/test_traceback_funcs/decorated_sync.py
RENAMED
File without changes
|
{dycw_utilities-0.125.8 → dycw_utilities-0.125.9}/src/tests/test_traceback_funcs/error_bind.py
RENAMED
File without changes
|
File without changes
|
File without changes
|
{dycw_utilities-0.125.8 → dycw_utilities-0.125.9}/src/tests/test_traceback_funcs/recursive.py
RENAMED
File without changes
|
{dycw_utilities-0.125.8 → dycw_utilities-0.125.9}/src/tests/test_traceback_funcs/task_group_one.py
RENAMED
File without changes
|
{dycw_utilities-0.125.8 → dycw_utilities-0.125.9}/src/tests/test_traceback_funcs/task_group_two.py
RENAMED
File without changes
|
File without changes
|
{dycw_utilities-0.125.8 → dycw_utilities-0.125.9}/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.125.8 → dycw_utilities-0.125.9}/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
|