Metadata-Version: 2.3
Name: dycw-utilities
Version: 0.27.23
Author-email: Derek Wan <d.wan@icloud.com>
License-File: LICENSE
Requires-Python: >=3.10
Requires-Dist: typing-extensions<4.13,>=4.12.2
Provides-Extra: cacher
Requires-Dist: atomicwrites<1.5,>=1.4.1; extra == 'cacher'
Requires-Dist: cachetools<5.4,>=5.3.3; extra == 'cacher'
Provides-Extra: dev
Requires-Dist: altair<5.4,>=5.3.0; extra == 'dev'
Requires-Dist: ast-comments<1.3,>=1.2.2; extra == 'dev'
Requires-Dist: atomicwrites<1.5,>=1.4.1; extra == 'dev'
Requires-Dist: atools<0.15,>=0.14.2; extra == 'dev'
Requires-Dist: beartype<0.19,>=0.18.5; extra == 'dev'
Requires-Dist: beautifulsoup4<4.13,>=4.12.3; extra == 'dev'
Requires-Dist: bottleneck<1.5,>=1.4.0; extra == 'dev'
Requires-Dist: cachetools<5.4,>=5.3.3; extra == 'dev'
Requires-Dist: click<8.2,>=8.1.7; extra == 'dev'
Requires-Dist: coverage-conditional-plugin<0.10,>=0.9.0; extra == 'dev'
Requires-Dist: cryptography<42.1,>=42.0.7; extra == 'dev'
Requires-Dist: cvxpy<1.6,>=1.5.2; extra == 'dev'
Requires-Dist: exceptiongroup<1.3,>=1.2.1; extra == 'dev'
Requires-Dist: fastapi-slim<0.112,>=0.111.0; extra == 'dev'
Requires-Dist: fpdf2<2.8,>=2.7.9; extra == 'dev'
Requires-Dist: freezegun<1.6,>=1.5.1; extra == 'dev'
Requires-Dist: frozendict<2.5,>=2.4.4; extra == 'dev'
Requires-Dist: hatch<1.13,>=1.12.0; extra == 'dev'
Requires-Dist: holoviews<1.20,>=1.19.0; extra == 'dev'
Requires-Dist: hypothesis<6.104,>=6.103.2; extra == 'dev'
Requires-Dist: loguru<0.8,>=0.7.2; extra == 'dev'
Requires-Dist: luigi<3.6,>=3.5.1; extra == 'dev'
Requires-Dist: mdutils<1.7,>=1.6.0; extra == 'dev'
Requires-Dist: memory-profiler<0.62,>=0.61.0; extra == 'dev'
Requires-Dist: more-itertools<10.4,>=10.3.0; extra == 'dev'
Requires-Dist: numbagg<0.9,>=0.8.1; extra == 'dev'
Requires-Dist: numpy<1.27,>=1.26.4; extra == 'dev'
Requires-Dist: optuna<3.7,>=3.6.1; extra == 'dev'
Requires-Dist: pandas<2.3,>=2.2.2; extra == 'dev'
Requires-Dist: pathvalidate<3.3,>=3.2.0; extra == 'dev'
Requires-Dist: polars-lts-cpu<0.21,>=0.20.31; extra == 'dev'
Requires-Dist: pqdm<0.3,>=0.2.0; extra == 'dev'
Requires-Dist: psutil<5.10,>=5.9.8; extra == 'dev'
Requires-Dist: psycopg2-binary<2.10,>=2.9.9; extra == 'dev'
Requires-Dist: pydantic<2.8,>=2.7.4; extra == 'dev'
Requires-Dist: pyhumps<3.9,>=3.8.0; extra == 'dev'
Requires-Dist: pyinstrument<4.7,>=4.6.2; extra == 'dev'
Requires-Dist: pypiserver[passlib]<2.2,>=2.1.1; extra == 'dev'
Requires-Dist: pytest-asyncio<0.24,>=0.23.7; extra == 'dev'
Requires-Dist: pytest-check<2.4,>=2.3.1; extra == 'dev'
Requires-Dist: pytest-cov<5.1,>=5.0.0; extra == 'dev'
Requires-Dist: pytest-instafail<0.6,>=0.5.0; extra == 'dev'
Requires-Dist: pytest-only<2.2,>=2.1.2; extra == 'dev'
Requires-Dist: pytest-randomly<3.16,>=3.15.0; extra == 'dev'
Requires-Dist: pytest-rerunfailures<15,>=14.0; extra == 'dev'
Requires-Dist: pytest-xdist<3.7,>=3.6.1; extra == 'dev'
Requires-Dist: pytest<8.3,>=8.2.2; extra == 'dev'
Requires-Dist: rich<13.8,>=13.7.1; extra == 'dev'
Requires-Dist: scipy<1.14,>=1.13.1; extra == 'dev'
Requires-Dist: selenium<4.22,>=4.21.0; extra == 'dev'
Requires-Dist: semver<3.1,>=3.0.2; extra == 'dev'
Requires-Dist: sqlalchemy<2.1,>=2.0.30; extra == 'dev'
Requires-Dist: streamlit<1.36,>=1.35.0; extra == 'dev'
Requires-Dist: typed-settings<24.4,>=24.3.0; extra == 'dev'
Requires-Dist: vegafusion-python-embed<1.7,>=1.6.9; extra == 'dev'
Requires-Dist: vegafusion<1.7,>=1.6.9; extra == 'dev'
Requires-Dist: vl-convert-python<1.5,>=1.4.0; extra == 'dev'
Requires-Dist: win32-setctime<1.2,>=1.1.0; extra == 'dev'
Requires-Dist: xarray<2024.7,>=2024.6.0; extra == 'dev'
Requires-Dist: xlrd<2.1,>=2.0.1; extra == 'dev'
Requires-Dist: zarr<2.19,>=2.18.2; extra == 'dev'
Provides-Extra: scripts-clean-dir
Requires-Dist: click<8.2,>=8.1.7; extra == 'scripts-clean-dir'
Requires-Dist: loguru<0.8,>=0.7.2; extra == 'scripts-clean-dir'
Requires-Dist: typed-settings<24.4,>=24.3.0; extra == 'scripts-clean-dir'
Provides-Extra: scripts-csv-to-markdown
Requires-Dist: click<8.2,>=8.1.7; extra == 'scripts-csv-to-markdown'
Requires-Dist: loguru<0.8,>=0.7.2; extra == 'scripts-csv-to-markdown'
Requires-Dist: mdutils<1.7,>=1.6.0; extra == 'scripts-csv-to-markdown'
Requires-Dist: typed-settings<24.4,>=24.3.0; extra == 'scripts-csv-to-markdown'
Provides-Extra: scripts-generate-snippets
Requires-Dist: ast-comments<1.3,>=1.2.2; extra == 'scripts-generate-snippets'
Requires-Dist: click<8.2,>=8.1.7; extra == 'scripts-generate-snippets'
Requires-Dist: loguru<0.8,>=0.7.2; extra == 'scripts-generate-snippets'
Requires-Dist: pyhumps<3.9,>=3.8.0; extra == 'scripts-generate-snippets'
Requires-Dist: typed-settings<24.4,>=24.3.0; extra == 'scripts-generate-snippets'
Provides-Extra: scripts-luigi-server
Requires-Dist: click<8.2,>=8.1.7; extra == 'scripts-luigi-server'
Requires-Dist: loguru<0.8,>=0.7.2; extra == 'scripts-luigi-server'
Requires-Dist: luigi<3.6,>=3.5.1; extra == 'scripts-luigi-server'
Requires-Dist: typed-settings<24.4,>=24.3.0; extra == 'scripts-luigi-server'
Provides-Extra: scripts-monitor-memory
Requires-Dist: click<8.2,>=8.1.7; extra == 'scripts-monitor-memory'
Requires-Dist: loguru<0.8,>=0.7.2; extra == 'scripts-monitor-memory'
Requires-Dist: psutil<5.10,>=5.9.8; extra == 'scripts-monitor-memory'
Requires-Dist: typed-settings<24.4,>=24.3.0; extra == 'scripts-monitor-memory'
Provides-Extra: scripts-pypi-server
Requires-Dist: click<8.2,>=8.1.7; extra == 'scripts-pypi-server'
Requires-Dist: loguru<0.8,>=0.7.2; extra == 'scripts-pypi-server'
Requires-Dist: pypiserver[passlib]<2.2,>=2.1.1; extra == 'scripts-pypi-server'
Requires-Dist: typed-settings<24.4,>=24.3.0; extra == 'scripts-pypi-server'
Provides-Extra: test
Requires-Dist: exceptiongroup<1.3,>=1.2.1; extra == 'test'
Requires-Dist: hypothesis<6.104,>=6.103.2; extra == 'test'
Requires-Dist: pytest-randomly<3.16,>=3.15.0; extra == 'test'
Requires-Dist: pytest-rerunfailures<15,>=14.0; extra == 'test'
Requires-Dist: pytest-xdist<3.7,>=3.6.1; extra == 'test'
Requires-Dist: pytest<8.3,>=8.2.2; extra == 'test'
Provides-Extra: zzz-test-ast
Provides-Extra: zzz-test-atomicwrites
Requires-Dist: atomicwrites<1.5,>=1.4.1; extra == 'zzz-test-atomicwrites'
Provides-Extra: zzz-test-atools
Requires-Dist: atools<0.15,>=0.14.2; extra == 'zzz-test-atools'
Provides-Extra: zzz-test-beartype
Requires-Dist: beartype<0.19,>=0.18.5; extra == 'zzz-test-beartype'
Provides-Extra: zzz-test-bs4
Requires-Dist: beautifulsoup4<4.13,>=4.12.3; extra == 'zzz-test-bs4'
Requires-Dist: polars-lts-cpu<0.21,>=0.20.31; extra == 'zzz-test-bs4'
Provides-Extra: zzz-test-cacher
Requires-Dist: atomicwrites<1.5,>=1.4.1; extra == 'zzz-test-cacher'
Requires-Dist: cachetools<5.4,>=5.3.3; extra == 'zzz-test-cacher'
Provides-Extra: zzz-test-cachetools
Requires-Dist: cachetools<5.4,>=5.3.3; extra == 'zzz-test-cachetools'
Provides-Extra: zzz-test-click
Requires-Dist: click<8.2,>=8.1.7; extra == 'zzz-test-click'
Requires-Dist: sqlalchemy<2.1,>=2.0.30; extra == 'zzz-test-click'
Provides-Extra: zzz-test-cryptography
Requires-Dist: cryptography<42.1,>=42.0.7; extra == 'zzz-test-cryptography'
Provides-Extra: zzz-test-cvxpy
Requires-Dist: cvxpy<1.6,>=1.5.2; extra == 'zzz-test-cvxpy'
Requires-Dist: pandas<2.3,>=2.2.2; extra == 'zzz-test-cvxpy'
Provides-Extra: zzz-test-dataclasses
Provides-Extra: zzz-test-datetime
Provides-Extra: zzz-test-defaults
Requires-Dist: coverage-conditional-plugin<0.10,>=0.9.0; extra == 'zzz-test-defaults'
Requires-Dist: exceptiongroup<1.3,>=1.2.1; extra == 'zzz-test-defaults'
Requires-Dist: hypothesis<6.104,>=6.103.2; extra == 'zzz-test-defaults'
Requires-Dist: pytest-cov<5.1,>=5.0.0; extra == 'zzz-test-defaults'
Requires-Dist: pytest-randomly<3.16,>=3.15.0; extra == 'zzz-test-defaults'
Requires-Dist: pytest-rerunfailures<15,>=14.0; extra == 'zzz-test-defaults'
Requires-Dist: pytest<8.3,>=8.2.2; extra == 'zzz-test-defaults'
Provides-Extra: zzz-test-email
Provides-Extra: zzz-test-enum
Provides-Extra: zzz-test-errors
Provides-Extra: zzz-test-fastapi
Requires-Dist: fastapi-slim<0.112,>=0.111.0; extra == 'zzz-test-fastapi'
Provides-Extra: zzz-test-fpdf2
Requires-Dist: fpdf2<2.8,>=2.7.9; extra == 'zzz-test-fpdf2'
Requires-Dist: holoviews<1.19,>=1.18.3; extra == 'zzz-test-fpdf2'
Provides-Extra: zzz-test-functions
Provides-Extra: zzz-test-functools
Provides-Extra: zzz-test-getpass
Provides-Extra: zzz-test-git
Provides-Extra: zzz-test-hashlib
Provides-Extra: zzz-test-hatch
Requires-Dist: hatch<1.13,>=1.12.0; extra == 'zzz-test-hatch'
Provides-Extra: zzz-test-holoviews
Requires-Dist: holoviews<1.19,>=1.18.3; extra == 'zzz-test-holoviews'
Requires-Dist: numbagg<0.9,>=0.8.1; extra == 'zzz-test-holoviews'
Requires-Dist: xarray<2024.6,>=2024.5.0; extra == 'zzz-test-holoviews'
Provides-Extra: zzz-test-humps
Requires-Dist: pyhumps<3.9,>=3.8.0; extra == 'zzz-test-humps'
Provides-Extra: zzz-test-ipython
Requires-Dist: ipython<8.25,>=8.24.0; extra == 'zzz-test-ipython'
Provides-Extra: zzz-test-iterables
Provides-Extra: zzz-test-json
Requires-Dist: sqlalchemy<2.1,>=2.0.30; extra == 'zzz-test-json'
Provides-Extra: zzz-test-jupyter
Requires-Dist: jupyterlab<4.3,>=4.2.0; extra == 'zzz-test-jupyter'
Requires-Dist: pandas<2.3,>=2.2.2; extra == 'zzz-test-jupyter'
Requires-Dist: polars-lts-cpu<0.21,>=0.20.31; extra == 'zzz-test-jupyter'
Provides-Extra: zzz-test-locale
Provides-Extra: zzz-test-logging
Provides-Extra: zzz-test-loguru
Requires-Dist: loguru<0.8,>=0.7.2; extra == 'zzz-test-loguru'
Provides-Extra: zzz-test-luigi
Requires-Dist: freezegun<1.6,>=1.5.1; extra == 'zzz-test-luigi'
Requires-Dist: luigi<3.6,>=3.5.1; extra == 'zzz-test-luigi'
Requires-Dist: semver<3.1,>=3.0.2; extra == 'zzz-test-luigi'
Requires-Dist: sqlalchemy<2.1,>=2.0.30; extra == 'zzz-test-luigi'
Provides-Extra: zzz-test-math
Provides-Extra: zzz-test-memory-profiler
Requires-Dist: memory-profiler<0.62,>=0.61.0; extra == 'zzz-test-memory-profiler'
Provides-Extra: zzz-test-modules
Requires-Dist: ast-comments<1.3,>=1.2.2; extra == 'zzz-test-modules'
Requires-Dist: atomicwrites<1.5,>=1.4.1; extra == 'zzz-test-modules'
Requires-Dist: beartype<0.19,>=0.18.5; extra == 'zzz-test-modules'
Requires-Dist: beautifulsoup4<4.13,>=4.12.3; extra == 'zzz-test-modules'
Requires-Dist: cachetools<5.4,>=5.3.3; extra == 'zzz-test-modules'
Requires-Dist: click<8.2,>=8.1.7; extra == 'zzz-test-modules'
Requires-Dist: cryptography<42.1,>=42.0.7; extra == 'zzz-test-modules'
Requires-Dist: cvxpy<1.6,>=1.5.2; extra == 'zzz-test-modules'
Requires-Dist: fastapi-slim<0.112,>=0.111.0; extra == 'zzz-test-modules'
Requires-Dist: fpdf2<2.8,>=2.7.9; extra == 'zzz-test-modules'
Requires-Dist: hatch<1.13,>=1.12.0; extra == 'zzz-test-modules'
Requires-Dist: holoviews<1.19,>=1.18.3; extra == 'zzz-test-modules'
Requires-Dist: loguru<0.8,>=0.7.2; extra == 'zzz-test-modules'
Requires-Dist: luigi<3.6,>=3.5.1; extra == 'zzz-test-modules'
Requires-Dist: mdutils<1.7,>=1.6.0; extra == 'zzz-test-modules'
Requires-Dist: memory-profiler<0.62,>=0.61.0; extra == 'zzz-test-modules'
Requires-Dist: more-itertools<10.4,>=10.3.0; extra == 'zzz-test-modules'
Requires-Dist: numpy<1.27,>=1.26.4; extra == 'zzz-test-modules'
Requires-Dist: pathvalidate<3.3,>=3.2.0; extra == 'zzz-test-modules'
Requires-Dist: polars-lts-cpu<0.21,>=0.20.31; extra == 'zzz-test-modules'
Requires-Dist: pqdm<0.3,>=0.2.0; extra == 'zzz-test-modules'
Requires-Dist: pydantic<2.8,>=2.7.4; extra == 'zzz-test-modules'
Requires-Dist: pyhumps<3.9,>=3.8.0; extra == 'zzz-test-modules'
Requires-Dist: pyinstrument<4.7,>=4.6.2; extra == 'zzz-test-modules'
Requires-Dist: pytest-check<2.4,>=2.3.1; extra == 'zzz-test-modules'
Requires-Dist: scipy<1.14,>=1.13.1; extra == 'zzz-test-modules'
Requires-Dist: semver<3.1,>=3.0.2; extra == 'zzz-test-modules'
Requires-Dist: sqlalchemy<2.1,>=2.0.30; extra == 'zzz-test-modules'
Requires-Dist: streamlit<1.36,>=1.35.0; extra == 'zzz-test-modules'
Requires-Dist: typed-settings<24.4,>=24.3.0; extra == 'zzz-test-modules'
Requires-Dist: xarray<2024.6,>=2024.5.0; extra == 'zzz-test-modules'
Requires-Dist: xlrd<2.1,>=2.0.1; extra == 'zzz-test-modules'
Requires-Dist: zarr<2.19,>=2.18.2; extra == 'zzz-test-modules'
Provides-Extra: zzz-test-more-itertools
Requires-Dist: more-itertools<10.4,>=10.3.0; extra == 'zzz-test-more-itertools'
Provides-Extra: zzz-test-numpy
Requires-Dist: bottleneck<1.4,>=1.3.8; extra == 'zzz-test-numpy'
Requires-Dist: numbagg<0.9,>=0.8.1; extra == 'zzz-test-numpy'
Requires-Dist: pandas<2.3,>=2.2.2; extra == 'zzz-test-numpy'
Provides-Extra: zzz-test-optuna
Requires-Dist: optuna<3.7,>=3.6.1; extra == 'zzz-test-optuna'
Provides-Extra: zzz-test-os
Provides-Extra: zzz-test-pandas
Requires-Dist: pandas<2.3,>=2.2.2; extra == 'zzz-test-pandas'
Provides-Extra: zzz-test-pathlib
Requires-Dist: pathvalidate<3.3,>=3.2.0; extra == 'zzz-test-pathlib'
Provides-Extra: zzz-test-pathvalidate
Requires-Dist: pathvalidate<3.3,>=3.2.0; extra == 'zzz-test-pathvalidate'
Provides-Extra: zzz-test-pickle
Requires-Dist: atomicwrites<1.5,>=1.4.1; extra == 'zzz-test-pickle'
Provides-Extra: zzz-test-platform
Provides-Extra: zzz-test-polars
Requires-Dist: polars-lts-cpu<0.21,>=0.20.31; extra == 'zzz-test-polars'
Provides-Extra: zzz-test-pqdm
Requires-Dist: pqdm<0.3,>=0.2.0; extra == 'zzz-test-pqdm'
Provides-Extra: zzz-test-pydantic
Requires-Dist: atomicwrites<1.5,>=1.4.1; extra == 'zzz-test-pydantic'
Requires-Dist: pydantic<2.8,>=2.7.4; extra == 'zzz-test-pydantic'
Provides-Extra: zzz-test-pyinstrument
Requires-Dist: atomicwrites<1.5,>=1.4.1; extra == 'zzz-test-pyinstrument'
Requires-Dist: pyinstrument<4.7,>=4.6.2; extra == 'zzz-test-pyinstrument'
Provides-Extra: zzz-test-pytest
Requires-Dist: atomicwrites<1.5,>=1.4.1; extra == 'zzz-test-pytest'
Requires-Dist: pytest-asyncio<0.24,>=0.23.7; extra == 'zzz-test-pytest'
Provides-Extra: zzz-test-pytest-check
Requires-Dist: pytest-check<2.4,>=2.3.1; extra == 'zzz-test-pytest-check'
Provides-Extra: zzz-test-random
Provides-Extra: zzz-test-re
Provides-Extra: zzz-test-rich
Requires-Dist: rich<13.8,>=13.7.1; extra == 'zzz-test-rich'
Provides-Extra: zzz-test-scipy
Requires-Dist: scipy<1.14,>=1.13.1; extra == 'zzz-test-scipy'
Provides-Extra: zzz-test-scripts-clean-dir
Requires-Dist: click<8.2,>=8.1.7; extra == 'zzz-test-scripts-clean-dir'
Requires-Dist: freezegun<1.6,>=1.5.1; extra == 'zzz-test-scripts-clean-dir'
Requires-Dist: loguru<0.8,>=0.7.2; extra == 'zzz-test-scripts-clean-dir'
Requires-Dist: typed-settings<24.4,>=24.3.0; extra == 'zzz-test-scripts-clean-dir'
Provides-Extra: zzz-test-scripts-csv-to-markdown
Requires-Dist: click<8.2,>=8.1.7; extra == 'zzz-test-scripts-csv-to-markdown'
Requires-Dist: loguru<0.8,>=0.7.2; extra == 'zzz-test-scripts-csv-to-markdown'
Requires-Dist: mdutils<1.7,>=1.6.0; extra == 'zzz-test-scripts-csv-to-markdown'
Requires-Dist: typed-settings<24.4,>=24.3.0; extra == 'zzz-test-scripts-csv-to-markdown'
Provides-Extra: zzz-test-scripts-generate-snippets
Requires-Dist: ast-comments<1.3,>=1.2.2; extra == 'zzz-test-scripts-generate-snippets'
Requires-Dist: click<8.2,>=8.1.7; extra == 'zzz-test-scripts-generate-snippets'
Requires-Dist: loguru<0.8,>=0.7.2; extra == 'zzz-test-scripts-generate-snippets'
Requires-Dist: pyhumps<3.9,>=3.8.0; extra == 'zzz-test-scripts-generate-snippets'
Requires-Dist: typed-settings<24.4,>=24.3.0; extra == 'zzz-test-scripts-generate-snippets'
Provides-Extra: zzz-test-scripts-luigi-server
Requires-Dist: click<8.2,>=8.1.7; extra == 'zzz-test-scripts-luigi-server'
Requires-Dist: loguru<0.8,>=0.7.2; extra == 'zzz-test-scripts-luigi-server'
Requires-Dist: luigi<3.6,>=3.5.1; extra == 'zzz-test-scripts-luigi-server'
Requires-Dist: typed-settings<24.4,>=24.3.0; extra == 'zzz-test-scripts-luigi-server'
Provides-Extra: zzz-test-scripts-monitor-memory
Requires-Dist: click<8.2,>=8.1.7; extra == 'zzz-test-scripts-monitor-memory'
Requires-Dist: loguru<0.8,>=0.7.2; extra == 'zzz-test-scripts-monitor-memory'
Requires-Dist: psutil<5.10,>=5.9.8; extra == 'zzz-test-scripts-monitor-memory'
Requires-Dist: typed-settings<24.4,>=24.3.0; extra == 'zzz-test-scripts-monitor-memory'
Provides-Extra: zzz-test-scripts-pypi-server
Requires-Dist: click<8.2,>=8.1.7; extra == 'zzz-test-scripts-pypi-server'
Requires-Dist: loguru<0.8,>=0.7.2; extra == 'zzz-test-scripts-pypi-server'
Requires-Dist: pypiserver[passlib]<2.2,>=2.1.1; extra == 'zzz-test-scripts-pypi-server'
Requires-Dist: typed-settings<24.4,>=24.3.0; extra == 'zzz-test-scripts-pypi-server'
Provides-Extra: zzz-test-semver
Requires-Dist: semver<3.1,>=3.0.2; extra == 'zzz-test-semver'
Provides-Extra: zzz-test-sentinel
Provides-Extra: zzz-test-socket
Provides-Extra: zzz-test-sqlalchemy
Requires-Dist: psycopg2-binary<2.10,>=2.9.9; extra == 'zzz-test-sqlalchemy'
Requires-Dist: pyhumps<3.9,>=3.8.0; extra == 'zzz-test-sqlalchemy'
Requires-Dist: sqlalchemy<2.1,>=2.0.30; extra == 'zzz-test-sqlalchemy'
Provides-Extra: zzz-test-sqlalchemy-polars
Requires-Dist: polars-lts-cpu<0.21,>=0.20.31; extra == 'zzz-test-sqlalchemy-polars'
Requires-Dist: pyhumps<3.9,>=3.8.0; extra == 'zzz-test-sqlalchemy-polars'
Requires-Dist: sqlalchemy<2.1,>=2.0.30; extra == 'zzz-test-sqlalchemy-polars'
Provides-Extra: zzz-test-subprocess
Provides-Extra: zzz-test-sys
Provides-Extra: zzz-test-tempfile
Provides-Extra: zzz-test-text
Provides-Extra: zzz-test-timer
Provides-Extra: zzz-test-typed-settings
Requires-Dist: click<8.2,>=8.1.7; extra == 'zzz-test-typed-settings'
Requires-Dist: sqlalchemy<2.1,>=2.0.30; extra == 'zzz-test-typed-settings'
Requires-Dist: typed-settings<24.4,>=24.3.0; extra == 'zzz-test-typed-settings'
Provides-Extra: zzz-test-xarray
Requires-Dist: bottleneck<1.4,>=1.3.8; extra == 'zzz-test-xarray'
Requires-Dist: numbagg<0.9,>=0.8.1; extra == 'zzz-test-xarray'
Requires-Dist: xarray<2024.6,>=2024.5.0; extra == 'zzz-test-xarray'
Provides-Extra: zzz-test-xlrd
Requires-Dist: xlrd<2.1,>=2.0.1; extra == 'zzz-test-xlrd'
Provides-Extra: zzz-test-zarr
Requires-Dist: atomicwrites<1.5,>=1.4.1; extra == 'zzz-test-zarr'
Requires-Dist: zarr<2.19,>=2.18.2; extra == 'zzz-test-zarr'
Description-Content-Type: text/markdown

[![PyPI version](https://badge.fury.io/py/dycw-utilities.svg)](https://badge.fury.io/py/dycw-utilities)

# `dycw-utilities`

[All the Python functions I don't want to write twice.](https://github.com/nvim-lua/plenary.nvim)

## Installation

- `pip install dycw-utilities`

or with [extras](https://github.com/dycw/python-utilities/blob/master/pyproject.toml).
