dycw-utilities 0.125.7__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.7 → dycw_utilities-0.125.9}/PKG-INFO +1 -1
- {dycw_utilities-0.125.7 → dycw_utilities-0.125.9}/pyproject.toml +2 -2
- {dycw_utilities-0.125.7 → dycw_utilities-0.125.9}/src/tests/test_platform.py +45 -20
- {dycw_utilities-0.125.7 → dycw_utilities-0.125.9}/src/utilities/__init__.py +1 -1
- {dycw_utilities-0.125.7 → dycw_utilities-0.125.9}/src/utilities/libcst.py +5 -2
- {dycw_utilities-0.125.7 → dycw_utilities-0.125.9}/src/utilities/platform.py +29 -0
- {dycw_utilities-0.125.7 → dycw_utilities-0.125.9}/.gitignore +0 -0
- {dycw_utilities-0.125.7 → dycw_utilities-0.125.9}/LICENSE +0 -0
- {dycw_utilities-0.125.7 → dycw_utilities-0.125.9}/README.md +0 -0
- {dycw_utilities-0.125.7 → dycw_utilities-0.125.9}/src/tests/__init__.py +0 -0
- {dycw_utilities-0.125.7 → dycw_utilities-0.125.9}/src/tests/conftest.py +0 -0
- {dycw_utilities-0.125.7 → dycw_utilities-0.125.9}/src/tests/modules/__init__.py +0 -0
- {dycw_utilities-0.125.7 → dycw_utilities-0.125.9}/src/tests/modules/package_missing/__init__.py +0 -0
- {dycw_utilities-0.125.7 → dycw_utilities-0.125.9}/src/tests/modules/package_missing/module.py +0 -0
- {dycw_utilities-0.125.7 → dycw_utilities-0.125.9}/src/tests/modules/package_with/__init__.py +0 -0
- {dycw_utilities-0.125.7 → dycw_utilities-0.125.9}/src/tests/modules/package_with/outer_1.py +0 -0
- {dycw_utilities-0.125.7 → dycw_utilities-0.125.9}/src/tests/modules/package_with/outer_2.py +0 -0
- {dycw_utilities-0.125.7 → dycw_utilities-0.125.9}/src/tests/modules/package_with/subpackage/__init__.py +0 -0
- {dycw_utilities-0.125.7 → dycw_utilities-0.125.9}/src/tests/modules/package_with/subpackage/inner_1.py +0 -0
- {dycw_utilities-0.125.7 → dycw_utilities-0.125.9}/src/tests/modules/package_with/subpackage/inner_2.py +0 -0
- {dycw_utilities-0.125.7 → dycw_utilities-0.125.9}/src/tests/modules/package_with/subpackage/inner_3.py +0 -0
- {dycw_utilities-0.125.7 → dycw_utilities-0.125.9}/src/tests/modules/package_without/__init__.py +0 -0
- {dycw_utilities-0.125.7 → dycw_utilities-0.125.9}/src/tests/modules/package_without/module_1.py +0 -0
- {dycw_utilities-0.125.7 → dycw_utilities-0.125.9}/src/tests/modules/package_without/module_2.py +0 -0
- {dycw_utilities-0.125.7 → dycw_utilities-0.125.9}/src/tests/modules/standalone.py +0 -0
- {dycw_utilities-0.125.7 → dycw_utilities-0.125.9}/src/tests/modules/with_imports.py +0 -0
- {dycw_utilities-0.125.7 → dycw_utilities-0.125.9}/src/tests/regressions/test_pytest_regressions/TestMultipleRegressionFixtures__test_main__obj.json +0 -0
- {dycw_utilities-0.125.7 → dycw_utilities-0.125.9}/src/tests/regressions/test_pytest_regressions/TestMultipleRegressionFixtures__test_main__series.json +0 -0
- {dycw_utilities-0.125.7 → dycw_utilities-0.125.9}/src/tests/regressions/test_pytest_regressions/TestOrjsonRegressionFixture__test_dataclass_int.json +0 -0
- {dycw_utilities-0.125.7 → dycw_utilities-0.125.9}/src/tests/regressions/test_pytest_regressions/TestOrjsonRegressionFixture__test_dataclass_literal__false.json +0 -0
- {dycw_utilities-0.125.7 → dycw_utilities-0.125.9}/src/tests/regressions/test_pytest_regressions/TestOrjsonRegressionFixture__test_dataclass_literal__true.json +0 -0
- {dycw_utilities-0.125.7 → dycw_utilities-0.125.9}/src/tests/regressions/test_pytest_regressions/TestOrjsonRegressionFixture__test_dataclass_nested.json +0 -0
- {dycw_utilities-0.125.7 → dycw_utilities-0.125.9}/src/tests/regressions/test_pytest_regressions/TestPolarsRegressionFixture__test_dataframe.json +0 -0
- {dycw_utilities-0.125.7 → dycw_utilities-0.125.9}/src/tests/regressions/test_pytest_regressions/TestPolarsRegressionFixture__test_series.json +0 -0
- {dycw_utilities-0.125.7 → dycw_utilities-0.125.9}/src/tests/test_altair.py +0 -0
- {dycw_utilities-0.125.7 → dycw_utilities-0.125.9}/src/tests/test_asyncio.py +0 -0
- {dycw_utilities-0.125.7 → dycw_utilities-0.125.9}/src/tests/test_atomicwrites.py +0 -0
- {dycw_utilities-0.125.7 → dycw_utilities-0.125.9}/src/tests/test_atools.py +0 -0
- {dycw_utilities-0.125.7 → dycw_utilities-0.125.9}/src/tests/test_cachetools.py +0 -0
- {dycw_utilities-0.125.7 → dycw_utilities-0.125.9}/src/tests/test_click.py +0 -0
- {dycw_utilities-0.125.7 → dycw_utilities-0.125.9}/src/tests/test_concurrent.py +0 -0
- {dycw_utilities-0.125.7 → dycw_utilities-0.125.9}/src/tests/test_contextlib.py +0 -0
- {dycw_utilities-0.125.7 → dycw_utilities-0.125.9}/src/tests/test_contextvars.py +0 -0
- {dycw_utilities-0.125.7 → dycw_utilities-0.125.9}/src/tests/test_cryptography.py +0 -0
- {dycw_utilities-0.125.7 → dycw_utilities-0.125.9}/src/tests/test_cvxpy.py +0 -0
- {dycw_utilities-0.125.7 → dycw_utilities-0.125.9}/src/tests/test_dataclasses.py +0 -0
- {dycw_utilities-0.125.7 → dycw_utilities-0.125.9}/src/tests/test_datetime.py +0 -0
- {dycw_utilities-0.125.7 → dycw_utilities-0.125.9}/src/tests/test_enum.py +0 -0
- {dycw_utilities-0.125.7 → dycw_utilities-0.125.9}/src/tests/test_errors.py +0 -0
- {dycw_utilities-0.125.7 → dycw_utilities-0.125.9}/src/tests/test_eventkit.py +0 -0
- {dycw_utilities-0.125.7 → dycw_utilities-0.125.9}/src/tests/test_fastapi.py +0 -0
- {dycw_utilities-0.125.7 → dycw_utilities-0.125.9}/src/tests/test_fpdf2.py +0 -0
- {dycw_utilities-0.125.7 → dycw_utilities-0.125.9}/src/tests/test_functions.py +0 -0
- {dycw_utilities-0.125.7 → dycw_utilities-0.125.9}/src/tests/test_functools.py +0 -0
- {dycw_utilities-0.125.7 → dycw_utilities-0.125.9}/src/tests/test_getpass.py +0 -0
- {dycw_utilities-0.125.7 → dycw_utilities-0.125.9}/src/tests/test_git.py +0 -0
- {dycw_utilities-0.125.7 → dycw_utilities-0.125.9}/src/tests/test_hashlib.py +0 -0
- {dycw_utilities-0.125.7 → dycw_utilities-0.125.9}/src/tests/test_http.py +0 -0
- {dycw_utilities-0.125.7 → dycw_utilities-0.125.9}/src/tests/test_hypothesis.py +0 -0
- {dycw_utilities-0.125.7 → dycw_utilities-0.125.9}/src/tests/test_importlib.py +0 -0
- {dycw_utilities-0.125.7 → dycw_utilities-0.125.9}/src/tests/test_ipython.py +0 -0
- {dycw_utilities-0.125.7 → dycw_utilities-0.125.9}/src/tests/test_iterables.py +0 -0
- {dycw_utilities-0.125.7 → dycw_utilities-0.125.9}/src/tests/test_jupyter.py +0 -0
- {dycw_utilities-0.125.7 → dycw_utilities-0.125.9}/src/tests/test_libcst.py +0 -0
- {dycw_utilities-0.125.7 → dycw_utilities-0.125.9}/src/tests/test_lightweight_charts.py +0 -0
- {dycw_utilities-0.125.7 → dycw_utilities-0.125.9}/src/tests/test_logging.py +0 -0
- {dycw_utilities-0.125.7 → dycw_utilities-0.125.9}/src/tests/test_loguru.py +0 -0
- {dycw_utilities-0.125.7 → dycw_utilities-0.125.9}/src/tests/test_luigi.py +0 -0
- {dycw_utilities-0.125.7 → dycw_utilities-0.125.9}/src/tests/test_math.py +0 -0
- {dycw_utilities-0.125.7 → dycw_utilities-0.125.9}/src/tests/test_memory_profiler.py +0 -0
- {dycw_utilities-0.125.7 → dycw_utilities-0.125.9}/src/tests/test_modules.py +0 -0
- {dycw_utilities-0.125.7 → dycw_utilities-0.125.9}/src/tests/test_more_itertools.py +0 -0
- {dycw_utilities-0.125.7 → dycw_utilities-0.125.9}/src/tests/test_numpy.py +0 -0
- {dycw_utilities-0.125.7 → dycw_utilities-0.125.9}/src/tests/test_operator.py +0 -0
- {dycw_utilities-0.125.7 → dycw_utilities-0.125.9}/src/tests/test_optuna.py +0 -0
- {dycw_utilities-0.125.7 → dycw_utilities-0.125.9}/src/tests/test_orjson.py +0 -0
- {dycw_utilities-0.125.7 → dycw_utilities-0.125.9}/src/tests/test_os.py +0 -0
- {dycw_utilities-0.125.7 → dycw_utilities-0.125.9}/src/tests/test_parse.py +0 -0
- {dycw_utilities-0.125.7 → dycw_utilities-0.125.9}/src/tests/test_pathlib.py +0 -0
- {dycw_utilities-0.125.7 → dycw_utilities-0.125.9}/src/tests/test_period.py +0 -0
- {dycw_utilities-0.125.7 → dycw_utilities-0.125.9}/src/tests/test_pickle.py +0 -0
- {dycw_utilities-0.125.7 → dycw_utilities-0.125.9}/src/tests/test_polars.py +0 -0
- {dycw_utilities-0.125.7 → dycw_utilities-0.125.9}/src/tests/test_polars_ols.py +0 -0
- {dycw_utilities-0.125.7 → dycw_utilities-0.125.9}/src/tests/test_pqdm.py +0 -0
- {dycw_utilities-0.125.7 → dycw_utilities-0.125.9}/src/tests/test_pydantic.py +0 -0
- {dycw_utilities-0.125.7 → dycw_utilities-0.125.9}/src/tests/test_pyinstrument.py +0 -0
- {dycw_utilities-0.125.7 → dycw_utilities-0.125.9}/src/tests/test_pyrsistent.py +0 -0
- {dycw_utilities-0.125.7 → dycw_utilities-0.125.9}/src/tests/test_pytest.py +0 -0
- {dycw_utilities-0.125.7 → dycw_utilities-0.125.9}/src/tests/test_pytest_regressions.py +0 -0
- {dycw_utilities-0.125.7 → dycw_utilities-0.125.9}/src/tests/test_python_dotenv.py +0 -0
- {dycw_utilities-0.125.7 → dycw_utilities-0.125.9}/src/tests/test_random.py +0 -0
- {dycw_utilities-0.125.7 → dycw_utilities-0.125.9}/src/tests/test_re.py +0 -0
- {dycw_utilities-0.125.7 → dycw_utilities-0.125.9}/src/tests/test_redis.py +0 -0
- {dycw_utilities-0.125.7 → dycw_utilities-0.125.9}/src/tests/test_reprlib.py +0 -0
- {dycw_utilities-0.125.7 → dycw_utilities-0.125.9}/src/tests/test_rich.py +0 -0
- {dycw_utilities-0.125.7 → dycw_utilities-0.125.9}/src/tests/test_scipy.py +0 -0
- {dycw_utilities-0.125.7 → dycw_utilities-0.125.9}/src/tests/test_sentinel.py +0 -0
- {dycw_utilities-0.125.7 → dycw_utilities-0.125.9}/src/tests/test_shelve.py +0 -0
- {dycw_utilities-0.125.7 → dycw_utilities-0.125.9}/src/tests/test_slack_sdk.py +0 -0
- {dycw_utilities-0.125.7 → dycw_utilities-0.125.9}/src/tests/test_socket.py +0 -0
- {dycw_utilities-0.125.7 → dycw_utilities-0.125.9}/src/tests/test_sqlalchemy.py +0 -0
- {dycw_utilities-0.125.7 → dycw_utilities-0.125.9}/src/tests/test_sqlalchemy_polars.py +0 -0
- {dycw_utilities-0.125.7 → dycw_utilities-0.125.9}/src/tests/test_statsmodel.py +0 -0
- {dycw_utilities-0.125.7 → dycw_utilities-0.125.9}/src/tests/test_streamlit.py +0 -0
- {dycw_utilities-0.125.7 → dycw_utilities-0.125.9}/src/tests/test_sys.py +0 -0
- {dycw_utilities-0.125.7 → dycw_utilities-0.125.9}/src/tests/test_tempfile.py +0 -0
- {dycw_utilities-0.125.7 → dycw_utilities-0.125.9}/src/tests/test_tenacity.py +0 -0
- {dycw_utilities-0.125.7 → dycw_utilities-0.125.9}/src/tests/test_text.py +0 -0
- {dycw_utilities-0.125.7 → dycw_utilities-0.125.9}/src/tests/test_threading.py +0 -0
- {dycw_utilities-0.125.7 → dycw_utilities-0.125.9}/src/tests/test_timer.py +0 -0
- {dycw_utilities-0.125.7 → dycw_utilities-0.125.9}/src/tests/test_traceback.py +0 -0
- {dycw_utilities-0.125.7 → dycw_utilities-0.125.9}/src/tests/test_traceback_funcs/__init__.py +0 -0
- {dycw_utilities-0.125.7 → dycw_utilities-0.125.9}/src/tests/test_traceback_funcs/chain.py +0 -0
- {dycw_utilities-0.125.7 → dycw_utilities-0.125.9}/src/tests/test_traceback_funcs/decorated_async.py +0 -0
- {dycw_utilities-0.125.7 → dycw_utilities-0.125.9}/src/tests/test_traceback_funcs/decorated_sync.py +0 -0
- {dycw_utilities-0.125.7 → dycw_utilities-0.125.9}/src/tests/test_traceback_funcs/error_bind.py +0 -0
- {dycw_utilities-0.125.7 → dycw_utilities-0.125.9}/src/tests/test_traceback_funcs/many.py +0 -0
- {dycw_utilities-0.125.7 → dycw_utilities-0.125.9}/src/tests/test_traceback_funcs/one.py +0 -0
- {dycw_utilities-0.125.7 → dycw_utilities-0.125.9}/src/tests/test_traceback_funcs/recursive.py +0 -0
- {dycw_utilities-0.125.7 → dycw_utilities-0.125.9}/src/tests/test_traceback_funcs/task_group_one.py +0 -0
- {dycw_utilities-0.125.7 → dycw_utilities-0.125.9}/src/tests/test_traceback_funcs/task_group_two.py +0 -0
- {dycw_utilities-0.125.7 → dycw_utilities-0.125.9}/src/tests/test_traceback_funcs/two.py +0 -0
- {dycw_utilities-0.125.7 → dycw_utilities-0.125.9}/src/tests/test_traceback_funcs/untraced.py +0 -0
- {dycw_utilities-0.125.7 → dycw_utilities-0.125.9}/src/tests/test_types.py +0 -0
- {dycw_utilities-0.125.7 → dycw_utilities-0.125.9}/src/tests/test_typing.py +0 -0
- {dycw_utilities-0.125.7 → dycw_utilities-0.125.9}/src/tests/test_typing_funcs/__init__.py +0 -0
- {dycw_utilities-0.125.7 → dycw_utilities-0.125.9}/src/tests/test_typing_funcs/no_future.py +0 -0
- {dycw_utilities-0.125.7 → dycw_utilities-0.125.9}/src/tests/test_typing_funcs/with_future.py +0 -0
- {dycw_utilities-0.125.7 → dycw_utilities-0.125.9}/src/tests/test_tzdata.py +0 -0
- {dycw_utilities-0.125.7 → dycw_utilities-0.125.9}/src/tests/test_tzlocal.py +0 -0
- {dycw_utilities-0.125.7 → dycw_utilities-0.125.9}/src/tests/test_uuid.py +0 -0
- {dycw_utilities-0.125.7 → dycw_utilities-0.125.9}/src/tests/test_version.py +0 -0
- {dycw_utilities-0.125.7 → dycw_utilities-0.125.9}/src/tests/test_warnings.py +0 -0
- {dycw_utilities-0.125.7 → dycw_utilities-0.125.9}/src/tests/test_whenever.py +0 -0
- {dycw_utilities-0.125.7 → dycw_utilities-0.125.9}/src/tests/test_zipfile.py +0 -0
- {dycw_utilities-0.125.7 → dycw_utilities-0.125.9}/src/tests/test_zoneinfo.py +0 -0
- {dycw_utilities-0.125.7 → dycw_utilities-0.125.9}/src/utilities/altair.py +0 -0
- {dycw_utilities-0.125.7 → dycw_utilities-0.125.9}/src/utilities/asyncio.py +0 -0
- {dycw_utilities-0.125.7 → dycw_utilities-0.125.9}/src/utilities/atomicwrites.py +0 -0
- {dycw_utilities-0.125.7 → dycw_utilities-0.125.9}/src/utilities/atools.py +0 -0
- {dycw_utilities-0.125.7 → dycw_utilities-0.125.9}/src/utilities/cachetools.py +0 -0
- {dycw_utilities-0.125.7 → dycw_utilities-0.125.9}/src/utilities/click.py +0 -0
- {dycw_utilities-0.125.7 → dycw_utilities-0.125.9}/src/utilities/concurrent.py +0 -0
- {dycw_utilities-0.125.7 → dycw_utilities-0.125.9}/src/utilities/contextlib.py +0 -0
- {dycw_utilities-0.125.7 → dycw_utilities-0.125.9}/src/utilities/contextvars.py +0 -0
- {dycw_utilities-0.125.7 → dycw_utilities-0.125.9}/src/utilities/cryptography.py +0 -0
- {dycw_utilities-0.125.7 → dycw_utilities-0.125.9}/src/utilities/cvxpy.py +0 -0
- {dycw_utilities-0.125.7 → dycw_utilities-0.125.9}/src/utilities/dataclasses.py +0 -0
- {dycw_utilities-0.125.7 → dycw_utilities-0.125.9}/src/utilities/datetime.py +0 -0
- {dycw_utilities-0.125.7 → dycw_utilities-0.125.9}/src/utilities/enum.py +0 -0
- {dycw_utilities-0.125.7 → dycw_utilities-0.125.9}/src/utilities/errors.py +0 -0
- {dycw_utilities-0.125.7 → dycw_utilities-0.125.9}/src/utilities/eventkit.py +0 -0
- {dycw_utilities-0.125.7 → dycw_utilities-0.125.9}/src/utilities/fastapi.py +0 -0
- {dycw_utilities-0.125.7 → dycw_utilities-0.125.9}/src/utilities/fpdf2.py +0 -0
- {dycw_utilities-0.125.7 → dycw_utilities-0.125.9}/src/utilities/functions.py +0 -0
- {dycw_utilities-0.125.7 → dycw_utilities-0.125.9}/src/utilities/functools.py +0 -0
- {dycw_utilities-0.125.7 → dycw_utilities-0.125.9}/src/utilities/getpass.py +0 -0
- {dycw_utilities-0.125.7 → dycw_utilities-0.125.9}/src/utilities/git.py +0 -0
- {dycw_utilities-0.125.7 → dycw_utilities-0.125.9}/src/utilities/hashlib.py +0 -0
- {dycw_utilities-0.125.7 → dycw_utilities-0.125.9}/src/utilities/http.py +0 -0
- {dycw_utilities-0.125.7 → dycw_utilities-0.125.9}/src/utilities/hypothesis.py +0 -0
- {dycw_utilities-0.125.7 → dycw_utilities-0.125.9}/src/utilities/importlib.py +0 -0
- {dycw_utilities-0.125.7 → dycw_utilities-0.125.9}/src/utilities/ipython.py +0 -0
- {dycw_utilities-0.125.7 → dycw_utilities-0.125.9}/src/utilities/iterables.py +0 -0
- {dycw_utilities-0.125.7 → dycw_utilities-0.125.9}/src/utilities/jupyter.py +0 -0
- {dycw_utilities-0.125.7 → dycw_utilities-0.125.9}/src/utilities/lightweight_charts.py +0 -0
- {dycw_utilities-0.125.7 → dycw_utilities-0.125.9}/src/utilities/logging.py +0 -0
- {dycw_utilities-0.125.7 → dycw_utilities-0.125.9}/src/utilities/loguru.py +0 -0
- {dycw_utilities-0.125.7 → dycw_utilities-0.125.9}/src/utilities/luigi.py +0 -0
- {dycw_utilities-0.125.7 → dycw_utilities-0.125.9}/src/utilities/math.py +0 -0
- {dycw_utilities-0.125.7 → dycw_utilities-0.125.9}/src/utilities/memory_profiler.py +0 -0
- {dycw_utilities-0.125.7 → dycw_utilities-0.125.9}/src/utilities/modules.py +0 -0
- {dycw_utilities-0.125.7 → dycw_utilities-0.125.9}/src/utilities/more_itertools.py +0 -0
- {dycw_utilities-0.125.7 → dycw_utilities-0.125.9}/src/utilities/numpy.py +0 -0
- {dycw_utilities-0.125.7 → dycw_utilities-0.125.9}/src/utilities/operator.py +0 -0
- {dycw_utilities-0.125.7 → dycw_utilities-0.125.9}/src/utilities/optuna.py +0 -0
- {dycw_utilities-0.125.7 → dycw_utilities-0.125.9}/src/utilities/orjson.py +0 -0
- {dycw_utilities-0.125.7 → dycw_utilities-0.125.9}/src/utilities/os.py +0 -0
- {dycw_utilities-0.125.7 → dycw_utilities-0.125.9}/src/utilities/parse.py +0 -0
- {dycw_utilities-0.125.7 → dycw_utilities-0.125.9}/src/utilities/pathlib.py +0 -0
- {dycw_utilities-0.125.7 → dycw_utilities-0.125.9}/src/utilities/period.py +0 -0
- {dycw_utilities-0.125.7 → dycw_utilities-0.125.9}/src/utilities/pickle.py +0 -0
- {dycw_utilities-0.125.7 → dycw_utilities-0.125.9}/src/utilities/polars.py +0 -0
- {dycw_utilities-0.125.7 → dycw_utilities-0.125.9}/src/utilities/polars_ols.py +0 -0
- {dycw_utilities-0.125.7 → dycw_utilities-0.125.9}/src/utilities/pqdm.py +0 -0
- {dycw_utilities-0.125.7 → dycw_utilities-0.125.9}/src/utilities/py.typed +0 -0
- {dycw_utilities-0.125.7 → dycw_utilities-0.125.9}/src/utilities/pydantic.py +0 -0
- {dycw_utilities-0.125.7 → dycw_utilities-0.125.9}/src/utilities/pyinstrument.py +0 -0
- {dycw_utilities-0.125.7 → dycw_utilities-0.125.9}/src/utilities/pyrsistent.py +0 -0
- {dycw_utilities-0.125.7 → dycw_utilities-0.125.9}/src/utilities/pytest.py +0 -0
- {dycw_utilities-0.125.7 → dycw_utilities-0.125.9}/src/utilities/pytest_regressions.py +0 -0
- {dycw_utilities-0.125.7 → dycw_utilities-0.125.9}/src/utilities/python_dotenv.py +0 -0
- {dycw_utilities-0.125.7 → dycw_utilities-0.125.9}/src/utilities/random.py +0 -0
- {dycw_utilities-0.125.7 → dycw_utilities-0.125.9}/src/utilities/re.py +0 -0
- {dycw_utilities-0.125.7 → dycw_utilities-0.125.9}/src/utilities/redis.py +0 -0
- {dycw_utilities-0.125.7 → dycw_utilities-0.125.9}/src/utilities/reprlib.py +0 -0
- {dycw_utilities-0.125.7 → dycw_utilities-0.125.9}/src/utilities/rich.py +0 -0
- {dycw_utilities-0.125.7 → dycw_utilities-0.125.9}/src/utilities/scipy.py +0 -0
- {dycw_utilities-0.125.7 → dycw_utilities-0.125.9}/src/utilities/sentinel.py +0 -0
- {dycw_utilities-0.125.7 → dycw_utilities-0.125.9}/src/utilities/shelve.py +0 -0
- {dycw_utilities-0.125.7 → dycw_utilities-0.125.9}/src/utilities/slack_sdk.py +0 -0
- {dycw_utilities-0.125.7 → dycw_utilities-0.125.9}/src/utilities/socket.py +0 -0
- {dycw_utilities-0.125.7 → dycw_utilities-0.125.9}/src/utilities/sqlalchemy.py +0 -0
- {dycw_utilities-0.125.7 → dycw_utilities-0.125.9}/src/utilities/sqlalchemy_polars.py +0 -0
- {dycw_utilities-0.125.7 → dycw_utilities-0.125.9}/src/utilities/statsmodels.py +0 -0
- {dycw_utilities-0.125.7 → dycw_utilities-0.125.9}/src/utilities/streamlit.py +0 -0
- {dycw_utilities-0.125.7 → dycw_utilities-0.125.9}/src/utilities/sys.py +0 -0
- {dycw_utilities-0.125.7 → dycw_utilities-0.125.9}/src/utilities/tempfile.py +0 -0
- {dycw_utilities-0.125.7 → dycw_utilities-0.125.9}/src/utilities/tenacity.py +0 -0
- {dycw_utilities-0.125.7 → dycw_utilities-0.125.9}/src/utilities/text.py +0 -0
- {dycw_utilities-0.125.7 → dycw_utilities-0.125.9}/src/utilities/threading.py +0 -0
- {dycw_utilities-0.125.7 → dycw_utilities-0.125.9}/src/utilities/timer.py +0 -0
- {dycw_utilities-0.125.7 → dycw_utilities-0.125.9}/src/utilities/traceback.py +0 -0
- {dycw_utilities-0.125.7 → dycw_utilities-0.125.9}/src/utilities/types.py +0 -0
- {dycw_utilities-0.125.7 → dycw_utilities-0.125.9}/src/utilities/typing.py +0 -0
- {dycw_utilities-0.125.7 → dycw_utilities-0.125.9}/src/utilities/tzdata.py +0 -0
- {dycw_utilities-0.125.7 → dycw_utilities-0.125.9}/src/utilities/tzlocal.py +0 -0
- {dycw_utilities-0.125.7 → dycw_utilities-0.125.9}/src/utilities/uuid.py +0 -0
- {dycw_utilities-0.125.7 → dycw_utilities-0.125.9}/src/utilities/version.py +0 -0
- {dycw_utilities-0.125.7 → dycw_utilities-0.125.9}/src/utilities/warnings.py +0 -0
- {dycw_utilities-0.125.7 → dycw_utilities-0.125.9}/src/utilities/whenever.py +0 -0
- {dycw_utilities-0.125.7 → dycw_utilities-0.125.9}/src/utilities/zipfile.py +0 -0
- {dycw_utilities-0.125.7 → 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)
|
@@ -2,7 +2,7 @@ from __future__ import annotations
|
|
2
2
|
|
3
3
|
from collections.abc import Sequence
|
4
4
|
from dataclasses import dataclass
|
5
|
-
from subprocess import check_output
|
5
|
+
from subprocess import CalledProcessError, check_output
|
6
6
|
from typing import assert_never, override
|
7
7
|
|
8
8
|
from libcst import (
|
@@ -154,7 +154,10 @@ def render_module(source: str | Module, /) -> str:
|
|
154
154
|
"""Render a module."""
|
155
155
|
match source: # skipif-ci
|
156
156
|
case str() as text:
|
157
|
-
|
157
|
+
try:
|
158
|
+
return check_output(["ruff", "format", "-"], input=text, text=True)
|
159
|
+
except CalledProcessError:
|
160
|
+
return text
|
158
161
|
case Module() as module:
|
159
162
|
return render_module(module.code)
|
160
163
|
case _ as 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.7 → dycw_utilities-0.125.9}/src/tests/modules/package_missing/__init__.py
RENAMED
File without changes
|
{dycw_utilities-0.125.7 → dycw_utilities-0.125.9}/src/tests/modules/package_missing/module.py
RENAMED
File without changes
|
{dycw_utilities-0.125.7 → 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.7 → dycw_utilities-0.125.9}/src/tests/modules/package_without/__init__.py
RENAMED
File without changes
|
{dycw_utilities-0.125.7 → dycw_utilities-0.125.9}/src/tests/modules/package_without/module_1.py
RENAMED
File without changes
|
{dycw_utilities-0.125.7 → 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.7 → dycw_utilities-0.125.9}/src/tests/test_traceback_funcs/__init__.py
RENAMED
File without changes
|
File without changes
|
{dycw_utilities-0.125.7 → dycw_utilities-0.125.9}/src/tests/test_traceback_funcs/decorated_async.py
RENAMED
File without changes
|
{dycw_utilities-0.125.7 → dycw_utilities-0.125.9}/src/tests/test_traceback_funcs/decorated_sync.py
RENAMED
File without changes
|
{dycw_utilities-0.125.7 → 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.7 → dycw_utilities-0.125.9}/src/tests/test_traceback_funcs/recursive.py
RENAMED
File without changes
|
{dycw_utilities-0.125.7 → dycw_utilities-0.125.9}/src/tests/test_traceback_funcs/task_group_one.py
RENAMED
File without changes
|
{dycw_utilities-0.125.7 → 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.7 → 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.7 → 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
|