dycw-utilities 0.166.32__tar.gz → 0.166.33__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.
Potentially problematic release.
This version of dycw-utilities might be problematic. Click here for more details.
- {dycw_utilities-0.166.32 → dycw_utilities-0.166.33}/PKG-INFO +3 -2
- {dycw_utilities-0.166.32 → dycw_utilities-0.166.33}/pyproject.toml +10 -6
- {dycw_utilities-0.166.32 → dycw_utilities-0.166.33}/src/tests/test_asyncio.py +1 -1
- dycw_utilities-0.166.33/src/tests/test_jinja2.py +26 -0
- {dycw_utilities-0.166.32 → dycw_utilities-0.166.33}/src/utilities/__init__.py +1 -1
- dycw_utilities-0.166.33/src/utilities/jinja2.py +86 -0
- {dycw_utilities-0.166.32 → dycw_utilities-0.166.33}/.gitignore +0 -0
- {dycw_utilities-0.166.32 → dycw_utilities-0.166.33}/LICENSE +0 -0
- {dycw_utilities-0.166.32 → dycw_utilities-0.166.33}/README.md +0 -0
- {dycw_utilities-0.166.32 → dycw_utilities-0.166.33}/src/tests/__init__.py +0 -0
- {dycw_utilities-0.166.32 → dycw_utilities-0.166.33}/src/tests/conftest.py +0 -0
- {dycw_utilities-0.166.32 → dycw_utilities-0.166.33}/src/tests/modules/__init__.py +0 -0
- {dycw_utilities-0.166.32 → dycw_utilities-0.166.33}/src/tests/modules/package_missing/__init__.py +0 -0
- {dycw_utilities-0.166.32 → dycw_utilities-0.166.33}/src/tests/modules/package_missing/module.py +0 -0
- {dycw_utilities-0.166.32 → dycw_utilities-0.166.33}/src/tests/modules/package_with/__init__.py +0 -0
- {dycw_utilities-0.166.32 → dycw_utilities-0.166.33}/src/tests/modules/package_with/outer_1.py +0 -0
- {dycw_utilities-0.166.32 → dycw_utilities-0.166.33}/src/tests/modules/package_with/outer_2.py +0 -0
- {dycw_utilities-0.166.32 → dycw_utilities-0.166.33}/src/tests/modules/package_with/subpackage/__init__.py +0 -0
- {dycw_utilities-0.166.32 → dycw_utilities-0.166.33}/src/tests/modules/package_with/subpackage/inner_1.py +0 -0
- {dycw_utilities-0.166.32 → dycw_utilities-0.166.33}/src/tests/modules/package_with/subpackage/inner_2.py +0 -0
- {dycw_utilities-0.166.32 → dycw_utilities-0.166.33}/src/tests/modules/package_with/subpackage/inner_3.py +0 -0
- {dycw_utilities-0.166.32 → dycw_utilities-0.166.33}/src/tests/modules/package_without/__init__.py +0 -0
- {dycw_utilities-0.166.32 → dycw_utilities-0.166.33}/src/tests/modules/package_without/module_1.py +0 -0
- {dycw_utilities-0.166.32 → dycw_utilities-0.166.33}/src/tests/modules/package_without/module_2.py +0 -0
- {dycw_utilities-0.166.32 → dycw_utilities-0.166.33}/src/tests/modules/standalone.py +0 -0
- {dycw_utilities-0.166.32 → dycw_utilities-0.166.33}/src/tests/modules/with_imports.py +0 -0
- {dycw_utilities-0.166.32 → dycw_utilities-0.166.33}/src/tests/regressions/test_pytest_regressions/TestMultipleRegressionFixtures__test_main__obj.json +0 -0
- {dycw_utilities-0.166.32 → dycw_utilities-0.166.33}/src/tests/regressions/test_pytest_regressions/TestMultipleRegressionFixtures__test_main__series.json +0 -0
- {dycw_utilities-0.166.32 → dycw_utilities-0.166.33}/src/tests/regressions/test_pytest_regressions/TestOrjsonRegressionFixture__test_dataclass_int.json +0 -0
- {dycw_utilities-0.166.32 → dycw_utilities-0.166.33}/src/tests/regressions/test_pytest_regressions/TestOrjsonRegressionFixture__test_dataclass_literal__false.json +0 -0
- {dycw_utilities-0.166.32 → dycw_utilities-0.166.33}/src/tests/regressions/test_pytest_regressions/TestOrjsonRegressionFixture__test_dataclass_literal__true.json +0 -0
- {dycw_utilities-0.166.32 → dycw_utilities-0.166.33}/src/tests/regressions/test_pytest_regressions/TestOrjsonRegressionFixture__test_dataclass_nested.json +0 -0
- {dycw_utilities-0.166.32 → dycw_utilities-0.166.33}/src/tests/regressions/test_pytest_regressions/TestPolarsRegressionFixture__test_dataframe.json +0 -0
- {dycw_utilities-0.166.32 → dycw_utilities-0.166.33}/src/tests/regressions/test_pytest_regressions/TestPolarsRegressionFixture__test_series.json +0 -0
- {dycw_utilities-0.166.32 → dycw_utilities-0.166.33}/src/tests/test_aeventkit.py +0 -0
- {dycw_utilities-0.166.32 → dycw_utilities-0.166.33}/src/tests/test_altair.py +0 -0
- {dycw_utilities-0.166.32 → dycw_utilities-0.166.33}/src/tests/test_atomicwrites.py +0 -0
- {dycw_utilities-0.166.32 → dycw_utilities-0.166.33}/src/tests/test_atools.py +0 -0
- {dycw_utilities-0.166.32 → dycw_utilities-0.166.33}/src/tests/test_cachetools.py +0 -0
- {dycw_utilities-0.166.32 → dycw_utilities-0.166.33}/src/tests/test_click.py +0 -0
- {dycw_utilities-0.166.32 → dycw_utilities-0.166.33}/src/tests/test_concurrent.py +0 -0
- {dycw_utilities-0.166.32 → dycw_utilities-0.166.33}/src/tests/test_contextlib.py +0 -0
- {dycw_utilities-0.166.32 → dycw_utilities-0.166.33}/src/tests/test_contextvars.py +0 -0
- {dycw_utilities-0.166.32 → dycw_utilities-0.166.33}/src/tests/test_cryptography.py +0 -0
- {dycw_utilities-0.166.32 → dycw_utilities-0.166.33}/src/tests/test_cvxpy.py +0 -0
- {dycw_utilities-0.166.32 → dycw_utilities-0.166.33}/src/tests/test_dataclasses.py +0 -0
- {dycw_utilities-0.166.32 → dycw_utilities-0.166.33}/src/tests/test_enum.py +0 -0
- {dycw_utilities-0.166.32 → dycw_utilities-0.166.33}/src/tests/test_errors.py +0 -0
- {dycw_utilities-0.166.32 → dycw_utilities-0.166.33}/src/tests/test_fastapi.py +0 -0
- {dycw_utilities-0.166.32 → dycw_utilities-0.166.33}/src/tests/test_fpdf2.py +0 -0
- {dycw_utilities-0.166.32 → dycw_utilities-0.166.33}/src/tests/test_functions.py +0 -0
- {dycw_utilities-0.166.32 → dycw_utilities-0.166.33}/src/tests/test_functools.py +0 -0
- {dycw_utilities-0.166.32 → dycw_utilities-0.166.33}/src/tests/test_getpass.py +0 -0
- {dycw_utilities-0.166.32 → dycw_utilities-0.166.33}/src/tests/test_git.py +0 -0
- {dycw_utilities-0.166.32 → dycw_utilities-0.166.33}/src/tests/test_gzip.py +0 -0
- {dycw_utilities-0.166.32 → dycw_utilities-0.166.33}/src/tests/test_hashlib.py +0 -0
- {dycw_utilities-0.166.32 → dycw_utilities-0.166.33}/src/tests/test_http.py +0 -0
- {dycw_utilities-0.166.32 → dycw_utilities-0.166.33}/src/tests/test_hypothesis.py +0 -0
- {dycw_utilities-0.166.32 → dycw_utilities-0.166.33}/src/tests/test_importlib.py +0 -0
- {dycw_utilities-0.166.32 → dycw_utilities-0.166.33}/src/tests/test_inflect.py +0 -0
- {dycw_utilities-0.166.32 → dycw_utilities-0.166.33}/src/tests/test_ipython.py +0 -0
- {dycw_utilities-0.166.32 → dycw_utilities-0.166.33}/src/tests/test_iterables.py +0 -0
- {dycw_utilities-0.166.32 → dycw_utilities-0.166.33}/src/tests/test_json.py +0 -0
- {dycw_utilities-0.166.32 → dycw_utilities-0.166.33}/src/tests/test_jupyter.py +0 -0
- {dycw_utilities-0.166.32 → dycw_utilities-0.166.33}/src/tests/test_libcst.py +0 -0
- {dycw_utilities-0.166.32 → dycw_utilities-0.166.33}/src/tests/test_lightweight_charts.py +0 -0
- {dycw_utilities-0.166.32 → dycw_utilities-0.166.33}/src/tests/test_logging.py +0 -0
- {dycw_utilities-0.166.32 → dycw_utilities-0.166.33}/src/tests/test_math.py +0 -0
- {dycw_utilities-0.166.32 → dycw_utilities-0.166.33}/src/tests/test_memory_profiler.py +0 -0
- {dycw_utilities-0.166.32 → dycw_utilities-0.166.33}/src/tests/test_modules.py +0 -0
- {dycw_utilities-0.166.32 → dycw_utilities-0.166.33}/src/tests/test_more_itertools.py +0 -0
- {dycw_utilities-0.166.32 → dycw_utilities-0.166.33}/src/tests/test_numpy.py +0 -0
- {dycw_utilities-0.166.32 → dycw_utilities-0.166.33}/src/tests/test_objects/__init__.py +0 -0
- {dycw_utilities-0.166.32 → dycw_utilities-0.166.33}/src/tests/test_objects/objects.py +0 -0
- {dycw_utilities-0.166.32 → dycw_utilities-0.166.33}/src/tests/test_operator.py +0 -0
- {dycw_utilities-0.166.32 → dycw_utilities-0.166.33}/src/tests/test_optuna.py +0 -0
- {dycw_utilities-0.166.32 → dycw_utilities-0.166.33}/src/tests/test_orjson.py +0 -0
- {dycw_utilities-0.166.32 → dycw_utilities-0.166.33}/src/tests/test_os.py +0 -0
- {dycw_utilities-0.166.32 → dycw_utilities-0.166.33}/src/tests/test_parse.py +0 -0
- {dycw_utilities-0.166.32 → dycw_utilities-0.166.33}/src/tests/test_pathlib.py +0 -0
- {dycw_utilities-0.166.32 → dycw_utilities-0.166.33}/src/tests/test_pickle.py +0 -0
- {dycw_utilities-0.166.32 → dycw_utilities-0.166.33}/src/tests/test_platform.py +0 -0
- {dycw_utilities-0.166.32 → dycw_utilities-0.166.33}/src/tests/test_polars.py +0 -0
- {dycw_utilities-0.166.32 → dycw_utilities-0.166.33}/src/tests/test_polars_ols.py +0 -0
- {dycw_utilities-0.166.32 → dycw_utilities-0.166.33}/src/tests/test_postgres.py +0 -0
- {dycw_utilities-0.166.32 → dycw_utilities-0.166.33}/src/tests/test_pottery.py +0 -0
- {dycw_utilities-0.166.32 → dycw_utilities-0.166.33}/src/tests/test_pqdm.py +0 -0
- {dycw_utilities-0.166.32 → dycw_utilities-0.166.33}/src/tests/test_psutil.py +0 -0
- {dycw_utilities-0.166.32 → dycw_utilities-0.166.33}/src/tests/test_pydantic_settings.py +0 -0
- {dycw_utilities-0.166.32 → dycw_utilities-0.166.33}/src/tests/test_pydantic_settings_sops.py +0 -0
- {dycw_utilities-0.166.32 → dycw_utilities-0.166.33}/src/tests/test_pyinstrument.py +0 -0
- {dycw_utilities-0.166.32 → dycw_utilities-0.166.33}/src/tests/test_pytest.py +0 -0
- {dycw_utilities-0.166.32 → dycw_utilities-0.166.33}/src/tests/test_pytest_randomly.py +0 -0
- {dycw_utilities-0.166.32 → dycw_utilities-0.166.33}/src/tests/test_pytest_regressions.py +0 -0
- {dycw_utilities-0.166.32 → dycw_utilities-0.166.33}/src/tests/test_random.py +0 -0
- {dycw_utilities-0.166.32 → dycw_utilities-0.166.33}/src/tests/test_re.py +0 -0
- {dycw_utilities-0.166.32 → dycw_utilities-0.166.33}/src/tests/test_redis.py +0 -0
- {dycw_utilities-0.166.32 → dycw_utilities-0.166.33}/src/tests/test_reprlib.py +0 -0
- {dycw_utilities-0.166.32 → dycw_utilities-0.166.33}/src/tests/test_scipy.py +0 -0
- {dycw_utilities-0.166.32 → dycw_utilities-0.166.33}/src/tests/test_sentinel.py +0 -0
- {dycw_utilities-0.166.32 → dycw_utilities-0.166.33}/src/tests/test_shelve.py +0 -0
- {dycw_utilities-0.166.32 → dycw_utilities-0.166.33}/src/tests/test_slack_sdk.py +0 -0
- {dycw_utilities-0.166.32 → dycw_utilities-0.166.33}/src/tests/test_socket.py +0 -0
- {dycw_utilities-0.166.32 → dycw_utilities-0.166.33}/src/tests/test_sqlalchemy.py +0 -0
- {dycw_utilities-0.166.32 → dycw_utilities-0.166.33}/src/tests/test_sqlalchemy_polars.py +0 -0
- {dycw_utilities-0.166.32 → dycw_utilities-0.166.33}/src/tests/test_statsmodels.py +0 -0
- {dycw_utilities-0.166.32 → dycw_utilities-0.166.33}/src/tests/test_string.py +0 -0
- {dycw_utilities-0.166.32 → dycw_utilities-0.166.33}/src/tests/test_tempfile.py +0 -0
- {dycw_utilities-0.166.32 → dycw_utilities-0.166.33}/src/tests/test_testbook.py +0 -0
- {dycw_utilities-0.166.32 → dycw_utilities-0.166.33}/src/tests/test_text.py +0 -0
- {dycw_utilities-0.166.32 → dycw_utilities-0.166.33}/src/tests/test_threading.py +0 -0
- {dycw_utilities-0.166.32 → dycw_utilities-0.166.33}/src/tests/test_timer.py +0 -0
- {dycw_utilities-0.166.32 → dycw_utilities-0.166.33}/src/tests/test_traceback.py +0 -0
- {dycw_utilities-0.166.32 → dycw_utilities-0.166.33}/src/tests/test_typed_settings.py +0 -0
- {dycw_utilities-0.166.32 → dycw_utilities-0.166.33}/src/tests/test_types.py +0 -0
- {dycw_utilities-0.166.32 → dycw_utilities-0.166.33}/src/tests/test_typing.py +0 -0
- {dycw_utilities-0.166.32 → dycw_utilities-0.166.33}/src/tests/test_typing_funcs/__init__.py +0 -0
- {dycw_utilities-0.166.32 → dycw_utilities-0.166.33}/src/tests/test_typing_funcs/no_future.py +0 -0
- {dycw_utilities-0.166.32 → dycw_utilities-0.166.33}/src/tests/test_typing_funcs/with_future.py +0 -0
- {dycw_utilities-0.166.32 → dycw_utilities-0.166.33}/src/tests/test_tzdata.py +0 -0
- {dycw_utilities-0.166.32 → dycw_utilities-0.166.33}/src/tests/test_tzlocal.py +0 -0
- {dycw_utilities-0.166.32 → dycw_utilities-0.166.33}/src/tests/test_uuid.py +0 -0
- {dycw_utilities-0.166.32 → dycw_utilities-0.166.33}/src/tests/test_version.py +0 -0
- {dycw_utilities-0.166.32 → dycw_utilities-0.166.33}/src/tests/test_warnings.py +0 -0
- {dycw_utilities-0.166.32 → dycw_utilities-0.166.33}/src/tests/test_whenever.py +0 -0
- {dycw_utilities-0.166.32 → dycw_utilities-0.166.33}/src/tests/test_zipfile.py +0 -0
- {dycw_utilities-0.166.32 → dycw_utilities-0.166.33}/src/tests/test_zoneinfo.py +0 -0
- {dycw_utilities-0.166.32 → dycw_utilities-0.166.33}/src/utilities/aeventkit.py +0 -0
- {dycw_utilities-0.166.32 → dycw_utilities-0.166.33}/src/utilities/altair.py +0 -0
- {dycw_utilities-0.166.32 → dycw_utilities-0.166.33}/src/utilities/asyncio.py +0 -0
- {dycw_utilities-0.166.32 → dycw_utilities-0.166.33}/src/utilities/atomicwrites.py +0 -0
- {dycw_utilities-0.166.32 → dycw_utilities-0.166.33}/src/utilities/atools.py +0 -0
- {dycw_utilities-0.166.32 → dycw_utilities-0.166.33}/src/utilities/cachetools.py +0 -0
- {dycw_utilities-0.166.32 → dycw_utilities-0.166.33}/src/utilities/click.py +0 -0
- {dycw_utilities-0.166.32 → dycw_utilities-0.166.33}/src/utilities/concurrent.py +0 -0
- {dycw_utilities-0.166.32 → dycw_utilities-0.166.33}/src/utilities/contextlib.py +0 -0
- {dycw_utilities-0.166.32 → dycw_utilities-0.166.33}/src/utilities/contextvars.py +0 -0
- {dycw_utilities-0.166.32 → dycw_utilities-0.166.33}/src/utilities/cryptography.py +0 -0
- {dycw_utilities-0.166.32 → dycw_utilities-0.166.33}/src/utilities/cvxpy.py +0 -0
- {dycw_utilities-0.166.32 → dycw_utilities-0.166.33}/src/utilities/dataclasses.py +0 -0
- {dycw_utilities-0.166.32 → dycw_utilities-0.166.33}/src/utilities/enum.py +0 -0
- {dycw_utilities-0.166.32 → dycw_utilities-0.166.33}/src/utilities/errors.py +0 -0
- {dycw_utilities-0.166.32 → dycw_utilities-0.166.33}/src/utilities/fastapi.py +0 -0
- {dycw_utilities-0.166.32 → dycw_utilities-0.166.33}/src/utilities/fpdf2.py +0 -0
- {dycw_utilities-0.166.32 → dycw_utilities-0.166.33}/src/utilities/functions.py +0 -0
- {dycw_utilities-0.166.32 → dycw_utilities-0.166.33}/src/utilities/functools.py +0 -0
- {dycw_utilities-0.166.32 → dycw_utilities-0.166.33}/src/utilities/getpass.py +0 -0
- {dycw_utilities-0.166.32 → dycw_utilities-0.166.33}/src/utilities/git.py +0 -0
- {dycw_utilities-0.166.32 → dycw_utilities-0.166.33}/src/utilities/gzip.py +0 -0
- {dycw_utilities-0.166.32 → dycw_utilities-0.166.33}/src/utilities/hashlib.py +0 -0
- {dycw_utilities-0.166.32 → dycw_utilities-0.166.33}/src/utilities/http.py +0 -0
- {dycw_utilities-0.166.32 → dycw_utilities-0.166.33}/src/utilities/hypothesis.py +0 -0
- {dycw_utilities-0.166.32 → dycw_utilities-0.166.33}/src/utilities/importlib.py +0 -0
- {dycw_utilities-0.166.32 → dycw_utilities-0.166.33}/src/utilities/inflect.py +0 -0
- {dycw_utilities-0.166.32 → dycw_utilities-0.166.33}/src/utilities/ipython.py +0 -0
- {dycw_utilities-0.166.32 → dycw_utilities-0.166.33}/src/utilities/iterables.py +0 -0
- {dycw_utilities-0.166.32 → dycw_utilities-0.166.33}/src/utilities/json.py +0 -0
- {dycw_utilities-0.166.32 → dycw_utilities-0.166.33}/src/utilities/jupyter.py +0 -0
- {dycw_utilities-0.166.32 → dycw_utilities-0.166.33}/src/utilities/libcst.py +0 -0
- {dycw_utilities-0.166.32 → dycw_utilities-0.166.33}/src/utilities/lightweight_charts.py +0 -0
- {dycw_utilities-0.166.32 → dycw_utilities-0.166.33}/src/utilities/logging.py +0 -0
- {dycw_utilities-0.166.32 → dycw_utilities-0.166.33}/src/utilities/math.py +0 -0
- {dycw_utilities-0.166.32 → dycw_utilities-0.166.33}/src/utilities/memory_profiler.py +0 -0
- {dycw_utilities-0.166.32 → dycw_utilities-0.166.33}/src/utilities/modules.py +0 -0
- {dycw_utilities-0.166.32 → dycw_utilities-0.166.33}/src/utilities/more_itertools.py +0 -0
- {dycw_utilities-0.166.32 → dycw_utilities-0.166.33}/src/utilities/numpy.py +0 -0
- {dycw_utilities-0.166.32 → dycw_utilities-0.166.33}/src/utilities/operator.py +0 -0
- {dycw_utilities-0.166.32 → dycw_utilities-0.166.33}/src/utilities/optuna.py +0 -0
- {dycw_utilities-0.166.32 → dycw_utilities-0.166.33}/src/utilities/orjson.py +0 -0
- {dycw_utilities-0.166.32 → dycw_utilities-0.166.33}/src/utilities/os.py +0 -0
- {dycw_utilities-0.166.32 → dycw_utilities-0.166.33}/src/utilities/parse.py +0 -0
- {dycw_utilities-0.166.32 → dycw_utilities-0.166.33}/src/utilities/pathlib.py +0 -0
- {dycw_utilities-0.166.32 → dycw_utilities-0.166.33}/src/utilities/pickle.py +0 -0
- {dycw_utilities-0.166.32 → dycw_utilities-0.166.33}/src/utilities/platform.py +0 -0
- {dycw_utilities-0.166.32 → dycw_utilities-0.166.33}/src/utilities/polars.py +0 -0
- {dycw_utilities-0.166.32 → dycw_utilities-0.166.33}/src/utilities/polars_ols.py +0 -0
- {dycw_utilities-0.166.32 → dycw_utilities-0.166.33}/src/utilities/postgres.py +0 -0
- {dycw_utilities-0.166.32 → dycw_utilities-0.166.33}/src/utilities/pottery.py +0 -0
- {dycw_utilities-0.166.32 → dycw_utilities-0.166.33}/src/utilities/pqdm.py +0 -0
- {dycw_utilities-0.166.32 → dycw_utilities-0.166.33}/src/utilities/psutil.py +0 -0
- {dycw_utilities-0.166.32 → dycw_utilities-0.166.33}/src/utilities/py.typed +0 -0
- {dycw_utilities-0.166.32 → dycw_utilities-0.166.33}/src/utilities/pydantic_settings.py +0 -0
- {dycw_utilities-0.166.32 → dycw_utilities-0.166.33}/src/utilities/pydantic_settings_sops.py +0 -0
- {dycw_utilities-0.166.32 → dycw_utilities-0.166.33}/src/utilities/pyinstrument.py +0 -0
- {dycw_utilities-0.166.32 → dycw_utilities-0.166.33}/src/utilities/pytest.py +0 -0
- {dycw_utilities-0.166.32 → dycw_utilities-0.166.33}/src/utilities/pytest_plugins/__init__.py +0 -0
- {dycw_utilities-0.166.32 → dycw_utilities-0.166.33}/src/utilities/pytest_plugins/pytest_randomly.py +0 -0
- {dycw_utilities-0.166.32 → dycw_utilities-0.166.33}/src/utilities/pytest_plugins/pytest_regressions.py +0 -0
- {dycw_utilities-0.166.32 → dycw_utilities-0.166.33}/src/utilities/pytest_regressions.py +0 -0
- {dycw_utilities-0.166.32 → dycw_utilities-0.166.33}/src/utilities/random.py +0 -0
- {dycw_utilities-0.166.32 → dycw_utilities-0.166.33}/src/utilities/re.py +0 -0
- {dycw_utilities-0.166.32 → dycw_utilities-0.166.33}/src/utilities/redis.py +0 -0
- {dycw_utilities-0.166.32 → dycw_utilities-0.166.33}/src/utilities/reprlib.py +0 -0
- {dycw_utilities-0.166.32 → dycw_utilities-0.166.33}/src/utilities/scipy.py +0 -0
- {dycw_utilities-0.166.32 → dycw_utilities-0.166.33}/src/utilities/sentinel.py +0 -0
- {dycw_utilities-0.166.32 → dycw_utilities-0.166.33}/src/utilities/shelve.py +0 -0
- {dycw_utilities-0.166.32 → dycw_utilities-0.166.33}/src/utilities/slack_sdk.py +0 -0
- {dycw_utilities-0.166.32 → dycw_utilities-0.166.33}/src/utilities/socket.py +0 -0
- {dycw_utilities-0.166.32 → dycw_utilities-0.166.33}/src/utilities/sqlalchemy.py +0 -0
- {dycw_utilities-0.166.32 → dycw_utilities-0.166.33}/src/utilities/sqlalchemy_polars.py +0 -0
- {dycw_utilities-0.166.32 → dycw_utilities-0.166.33}/src/utilities/statsmodels.py +0 -0
- {dycw_utilities-0.166.32 → dycw_utilities-0.166.33}/src/utilities/string.py +0 -0
- {dycw_utilities-0.166.32 → dycw_utilities-0.166.33}/src/utilities/tempfile.py +0 -0
- {dycw_utilities-0.166.32 → dycw_utilities-0.166.33}/src/utilities/testbook.py +0 -0
- {dycw_utilities-0.166.32 → dycw_utilities-0.166.33}/src/utilities/text.py +0 -0
- {dycw_utilities-0.166.32 → dycw_utilities-0.166.33}/src/utilities/threading.py +0 -0
- {dycw_utilities-0.166.32 → dycw_utilities-0.166.33}/src/utilities/timer.py +0 -0
- {dycw_utilities-0.166.32 → dycw_utilities-0.166.33}/src/utilities/traceback.py +0 -0
- {dycw_utilities-0.166.32 → dycw_utilities-0.166.33}/src/utilities/typed_settings.py +0 -0
- {dycw_utilities-0.166.32 → dycw_utilities-0.166.33}/src/utilities/types.py +0 -0
- {dycw_utilities-0.166.32 → dycw_utilities-0.166.33}/src/utilities/typing.py +0 -0
- {dycw_utilities-0.166.32 → dycw_utilities-0.166.33}/src/utilities/tzdata.py +0 -0
- {dycw_utilities-0.166.32 → dycw_utilities-0.166.33}/src/utilities/tzlocal.py +0 -0
- {dycw_utilities-0.166.32 → dycw_utilities-0.166.33}/src/utilities/uuid.py +0 -0
- {dycw_utilities-0.166.32 → dycw_utilities-0.166.33}/src/utilities/version.py +0 -0
- {dycw_utilities-0.166.32 → dycw_utilities-0.166.33}/src/utilities/warnings.py +0 -0
- {dycw_utilities-0.166.32 → dycw_utilities-0.166.33}/src/utilities/whenever.py +0 -0
- {dycw_utilities-0.166.32 → dycw_utilities-0.166.33}/src/utilities/zipfile.py +0 -0
- {dycw_utilities-0.166.32 → dycw_utilities-0.166.33}/src/utilities/zoneinfo.py +0 -0
|
@@ -1,10 +1,11 @@
|
|
|
1
1
|
Metadata-Version: 2.4
|
|
2
2
|
Name: dycw-utilities
|
|
3
|
-
Version: 0.166.
|
|
3
|
+
Version: 0.166.33
|
|
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: atomicwrites<1.5,>=1.4.1
|
|
8
|
+
Requires-Dist: jinja2>=3.1.6
|
|
8
9
|
Requires-Dist: typing-extensions<4.16,>=4.15.0
|
|
9
10
|
Requires-Dist: tzlocal<5.4,>=5.3.1
|
|
10
11
|
Requires-Dist: whenever<0.9,>=0.8.8
|
|
@@ -12,7 +13,7 @@ Provides-Extra: logging
|
|
|
12
13
|
Requires-Dist: coloredlogs<15.1,>=15.0.1; extra == 'logging'
|
|
13
14
|
Provides-Extra: test
|
|
14
15
|
Requires-Dist: dycw-pytest-only<2.2,>=2.1.1; extra == 'test'
|
|
15
|
-
Requires-Dist: hypothesis<6.
|
|
16
|
+
Requires-Dist: hypothesis<6.140,>=6.139.1; extra == 'test'
|
|
16
17
|
Requires-Dist: pytest-asyncio<1.3,>=1.2.0; extra == 'test'
|
|
17
18
|
Requires-Dist: pytest-cov<7.1,>=7.0.0; extra == 'test'
|
|
18
19
|
Requires-Dist: pytest-instafail<0.6,>=0.5.0; extra == 'test'
|
|
@@ -34,7 +34,7 @@ core = [
|
|
|
34
34
|
"whenever >=0.8.8, <0.9",
|
|
35
35
|
]
|
|
36
36
|
cryptography = [
|
|
37
|
-
"cryptography >=
|
|
37
|
+
"cryptography >=46.0.1, <46.1",
|
|
38
38
|
]
|
|
39
39
|
cvxpy = [
|
|
40
40
|
"cvxpy >=1.7.2, <1.8",
|
|
@@ -52,7 +52,7 @@ dev = [
|
|
|
52
52
|
"pytest-timeout >=2.4.0, <2.5",
|
|
53
53
|
]
|
|
54
54
|
fastapi = [
|
|
55
|
-
"fastapi >=0.116.
|
|
55
|
+
"fastapi >=0.116.2, <0.117",
|
|
56
56
|
]
|
|
57
57
|
fastapi-test = [
|
|
58
58
|
"httpx",
|
|
@@ -71,7 +71,7 @@ http-test = [
|
|
|
71
71
|
"orjson",
|
|
72
72
|
]
|
|
73
73
|
hypothesis = [
|
|
74
|
-
"hypothesis >=6.
|
|
74
|
+
"hypothesis >=6.139.1, <6.140",
|
|
75
75
|
]
|
|
76
76
|
hypothesis-test = [
|
|
77
77
|
"libcst",
|
|
@@ -82,6 +82,9 @@ hypothesis-test = [
|
|
|
82
82
|
inflect = [
|
|
83
83
|
"inflect >=7.5.0, <7.6",
|
|
84
84
|
]
|
|
85
|
+
jinja2 = [
|
|
86
|
+
"jinja2 >=3.1.6, <3.2",
|
|
87
|
+
]
|
|
85
88
|
jupyter-test = [
|
|
86
89
|
"pandas",
|
|
87
90
|
"polars",
|
|
@@ -239,6 +242,7 @@ whenever-test = [
|
|
|
239
242
|
authors = [{name = "Derek Wan", email = "d.wan@icloud.com"}]
|
|
240
243
|
dependencies = [
|
|
241
244
|
"atomicwrites >=1.4.1, <1.5",
|
|
245
|
+
"jinja2 >=3.1.6",
|
|
242
246
|
"typing-extensions >=4.15.0, <4.16",
|
|
243
247
|
"tzlocal >=5.3.1, <5.4",
|
|
244
248
|
"whenever >=0.8.8, <0.9",
|
|
@@ -246,7 +250,7 @@ dependencies = [
|
|
|
246
250
|
name = "dycw-utilities"
|
|
247
251
|
readme = "README.md"
|
|
248
252
|
requires-python = ">= 3.12"
|
|
249
|
-
version = "0.166.
|
|
253
|
+
version = "0.166.33"
|
|
250
254
|
|
|
251
255
|
[project.entry-points.pytest11]
|
|
252
256
|
pytest-randomly = "utilities.pytest_plugins.pytest_randomly"
|
|
@@ -258,7 +262,7 @@ logging = [
|
|
|
258
262
|
]
|
|
259
263
|
test = [
|
|
260
264
|
"dycw-pytest-only >=2.1.1, <2.2",
|
|
261
|
-
"hypothesis >=6.
|
|
265
|
+
"hypothesis >=6.139.1, <6.140",
|
|
262
266
|
"pytest >=8.4.2, <8.5",
|
|
263
267
|
"pytest-asyncio >=1.2.0, <1.3",
|
|
264
268
|
"pytest-cov >=7.0.0, <7.1",
|
|
@@ -279,7 +283,7 @@ test = [
|
|
|
279
283
|
# bump-my-version
|
|
280
284
|
[tool.bumpversion]
|
|
281
285
|
allow_dirty = true
|
|
282
|
-
current_version = "0.166.
|
|
286
|
+
current_version = "0.166.33"
|
|
283
287
|
|
|
284
288
|
[[tool.bumpversion.files]]
|
|
285
289
|
filename = "src/utilities/__init__.py"
|
|
@@ -240,7 +240,7 @@ class TestEnhancedTaskGroup:
|
|
|
240
240
|
async with EnhancedTaskGroup() as tg:
|
|
241
241
|
for _ in range(10):
|
|
242
242
|
_ = tg.create_task(sleep_td(self.delta))
|
|
243
|
-
assert timer <=
|
|
243
|
+
assert timer <= 3 * self.delta
|
|
244
244
|
|
|
245
245
|
async def test_max_tasks_enabled(self) -> None:
|
|
246
246
|
with Timer() as timer:
|
|
@@ -0,0 +1,26 @@
|
|
|
1
|
+
from __future__ import annotations
|
|
2
|
+
|
|
3
|
+
from jinja2 import DictLoader
|
|
4
|
+
|
|
5
|
+
from utilities.jinja2 import EnhancedEnvironment
|
|
6
|
+
from utilities.text import strip_and_dedent
|
|
7
|
+
|
|
8
|
+
|
|
9
|
+
class TestEnhancedTemplate:
|
|
10
|
+
def test_main(self) -> None:
|
|
11
|
+
env = EnhancedEnvironment(
|
|
12
|
+
loader=DictLoader({
|
|
13
|
+
"test.j2": strip_and_dedent("""
|
|
14
|
+
text = '{{ text }}'
|
|
15
|
+
pascal = '{{ text | pascal }}'
|
|
16
|
+
snake = '{{ text | snake }}'
|
|
17
|
+
""")
|
|
18
|
+
})
|
|
19
|
+
)
|
|
20
|
+
result = env.get_template("test.j2").render(text="multi-word string")
|
|
21
|
+
expected = strip_and_dedent("""
|
|
22
|
+
text = 'multi-word string'
|
|
23
|
+
pascal = 'MultiWordString'
|
|
24
|
+
snake = 'multi_word_string'
|
|
25
|
+
""")
|
|
26
|
+
assert result == expected
|
|
@@ -0,0 +1,86 @@
|
|
|
1
|
+
from __future__ import annotations
|
|
2
|
+
|
|
3
|
+
from typing import TYPE_CHECKING, Any, Literal, override
|
|
4
|
+
|
|
5
|
+
from jinja2 import BaseLoader, BytecodeCache, Environment, Undefined
|
|
6
|
+
from jinja2.defaults import (
|
|
7
|
+
BLOCK_END_STRING,
|
|
8
|
+
BLOCK_START_STRING,
|
|
9
|
+
COMMENT_END_STRING,
|
|
10
|
+
COMMENT_START_STRING,
|
|
11
|
+
KEEP_TRAILING_NEWLINE,
|
|
12
|
+
LINE_COMMENT_PREFIX,
|
|
13
|
+
LINE_STATEMENT_PREFIX,
|
|
14
|
+
LSTRIP_BLOCKS,
|
|
15
|
+
NEWLINE_SEQUENCE,
|
|
16
|
+
TRIM_BLOCKS,
|
|
17
|
+
VARIABLE_END_STRING,
|
|
18
|
+
VARIABLE_START_STRING,
|
|
19
|
+
)
|
|
20
|
+
|
|
21
|
+
from utilities.text import pascal_case, snake_case
|
|
22
|
+
|
|
23
|
+
if TYPE_CHECKING:
|
|
24
|
+
from collections.abc import Callable, Sequence
|
|
25
|
+
|
|
26
|
+
from jinja2.ext import Extension
|
|
27
|
+
|
|
28
|
+
|
|
29
|
+
class EnhancedEnvironment(Environment):
|
|
30
|
+
"""Environment with enhanced features."""
|
|
31
|
+
|
|
32
|
+
@override
|
|
33
|
+
def __init__(
|
|
34
|
+
self,
|
|
35
|
+
block_start_string: str = BLOCK_START_STRING,
|
|
36
|
+
block_end_string: str = BLOCK_END_STRING,
|
|
37
|
+
variable_start_string: str = VARIABLE_START_STRING,
|
|
38
|
+
variable_end_string: str = VARIABLE_END_STRING,
|
|
39
|
+
comment_start_string: str = COMMENT_START_STRING,
|
|
40
|
+
comment_end_string: str = COMMENT_END_STRING,
|
|
41
|
+
line_statement_prefix: str | None = LINE_STATEMENT_PREFIX,
|
|
42
|
+
line_comment_prefix: str | None = LINE_COMMENT_PREFIX,
|
|
43
|
+
trim_blocks: bool = TRIM_BLOCKS,
|
|
44
|
+
lstrip_blocks: bool = LSTRIP_BLOCKS,
|
|
45
|
+
newline_sequence: Literal["\n", "\r\n", "\r"] = NEWLINE_SEQUENCE,
|
|
46
|
+
keep_trailing_newline: bool = KEEP_TRAILING_NEWLINE,
|
|
47
|
+
extensions: Sequence[str | type[Extension]] = (),
|
|
48
|
+
optimized: bool = True,
|
|
49
|
+
undefined: type[Undefined] = Undefined,
|
|
50
|
+
finalize: Callable[..., Any] | None = None,
|
|
51
|
+
autoescape: bool | Callable[[str | None], bool] = False,
|
|
52
|
+
loader: BaseLoader | None = None,
|
|
53
|
+
cache_size: int = 400,
|
|
54
|
+
auto_reload: bool = True,
|
|
55
|
+
bytecode_cache: BytecodeCache | None = None,
|
|
56
|
+
enable_async: bool = False,
|
|
57
|
+
) -> None:
|
|
58
|
+
super().__init__(
|
|
59
|
+
block_start_string,
|
|
60
|
+
block_end_string,
|
|
61
|
+
variable_start_string,
|
|
62
|
+
variable_end_string,
|
|
63
|
+
comment_start_string,
|
|
64
|
+
comment_end_string,
|
|
65
|
+
line_statement_prefix,
|
|
66
|
+
line_comment_prefix,
|
|
67
|
+
trim_blocks,
|
|
68
|
+
lstrip_blocks,
|
|
69
|
+
newline_sequence,
|
|
70
|
+
keep_trailing_newline,
|
|
71
|
+
extensions,
|
|
72
|
+
optimized,
|
|
73
|
+
undefined,
|
|
74
|
+
finalize,
|
|
75
|
+
autoescape,
|
|
76
|
+
loader,
|
|
77
|
+
cache_size,
|
|
78
|
+
auto_reload,
|
|
79
|
+
bytecode_cache,
|
|
80
|
+
enable_async,
|
|
81
|
+
)
|
|
82
|
+
self.filters["snake"] = snake_case
|
|
83
|
+
self.filters["pascal"] = pascal_case
|
|
84
|
+
|
|
85
|
+
|
|
86
|
+
__all__ = ["EnhancedEnvironment"]
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
{dycw_utilities-0.166.32 → dycw_utilities-0.166.33}/src/tests/modules/package_missing/__init__.py
RENAMED
|
File without changes
|
{dycw_utilities-0.166.32 → dycw_utilities-0.166.33}/src/tests/modules/package_missing/module.py
RENAMED
|
File without changes
|
{dycw_utilities-0.166.32 → dycw_utilities-0.166.33}/src/tests/modules/package_with/__init__.py
RENAMED
|
File without changes
|
{dycw_utilities-0.166.32 → dycw_utilities-0.166.33}/src/tests/modules/package_with/outer_1.py
RENAMED
|
File without changes
|
{dycw_utilities-0.166.32 → dycw_utilities-0.166.33}/src/tests/modules/package_with/outer_2.py
RENAMED
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
{dycw_utilities-0.166.32 → dycw_utilities-0.166.33}/src/tests/modules/package_without/__init__.py
RENAMED
|
File without changes
|
{dycw_utilities-0.166.32 → dycw_utilities-0.166.33}/src/tests/modules/package_without/module_1.py
RENAMED
|
File without changes
|
{dycw_utilities-0.166.32 → dycw_utilities-0.166.33}/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
|
{dycw_utilities-0.166.32 → dycw_utilities-0.166.33}/src/tests/test_pydantic_settings_sops.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
|
{dycw_utilities-0.166.32 → dycw_utilities-0.166.33}/src/tests/test_typing_funcs/no_future.py
RENAMED
|
File without changes
|
{dycw_utilities-0.166.32 → dycw_utilities-0.166.33}/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
|
{dycw_utilities-0.166.32 → dycw_utilities-0.166.33}/src/utilities/pytest_plugins/__init__.py
RENAMED
|
File without changes
|
{dycw_utilities-0.166.32 → dycw_utilities-0.166.33}/src/utilities/pytest_plugins/pytest_randomly.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
|