Downloads in the 30 and 7 days to October 10, 2026. Refreshed weekly.
Package Information
No reported malware or high/critical advisories · Details
The current version has no OSV.dev malware reports and no critical or high-severity vulnerabilities.
Package Insights
((week_daily_avg - month_daily_avg) / month_daily_avg) * 100More insights and metrics
Downloads by OS
Python Versions
Top Countries
Weekly Downloads
GitHub Stars
Dependencies
330 optional dependencies
-
aiohasupervisor[ha-api]extra == "ha-api"
-
aiohasupervisor[all]extra == "all"
-
aiomqtt[all]extra == "all"
-
aiomqtt[mqtt]extra == "mqtt"
-
appdirs[path-app]extra == "path-app"
-
appdirs[all]extra == "all"
-
av[all]extra == "all"
-
av[av]extra == "av"
-
beanie[dev]extra == "dev"
-
beanie[all]extra == "all"
-
beanie[db-document]extra == "db-document"
-
bokeh[parallel]extra == "parallel"
-
bokeh[all]extra == "all"
-
build[dev]extra == "dev"
-
build[infra]extra == "infra"
-
build[all]extra == "all"
-
cachetools[dns]extra == "dns"
-
cachetools[all]extra == "all"
-
cachetools[caching]extra == "caching"
-
contexttimer[all]extra == "all"
-
contexttimer[profiling]extra == "profiling"
-
dask[all]extra == "all"
-
dask[parallel]extra == "parallel"
-
decode-config[all]extra == "all"
-
decode-config[tasmota]extra == "tasmota"
-
deepdiff[all]extra == "all"
-
deepdiff[db-search-compute]extra == "db-search-compute"
-
deepdiff[metrics]extra == "metrics"
-
deepdiff[semantic]extra == "semantic"
-
deepdiff[tabular]extra == "tabular"
-
deepmerge[all]extra == "all"
-
deepmerge[dev]extra == "dev"
-
deepmerge[infra]extra == "infra"
-
deepmerge[merging]extra == "merging"
-
diskcache[all]extra == "all"
-
diskcache[caching]extra == "caching"
-
diskcache[dns]extra == "dns"
-
distributed[all]extra == "all"
-
distributed[parallel]extra == "parallel"
-
dnspython[all]extra == "all"
-
dnspython[dns]extra == "dns"
-
dotenv[all]extra == "all"
-
dotenv[dev]extra == "dev"
-
dotenv[env-io]extra == "env-io"
-
dotenv[ha]extra == "ha"
-
dotenv[ha-api]extra == "ha-api"
-
dotenv[infra]extra == "infra"
-
dotenv[sec]extra == "sec"
-
dotenv[secrets]extra == "secrets"
-
esptool[all]extra == "all"
-
esptool[tasmota]extra == "tasmota"
-
faker[all]extra == "all"
-
faker[augmentation]extra == "augmentation"
-
fastapi[all]extra == "all"
-
fastapi[api]extra == "api"
-
fastapi[api-mcp]extra == "api-mcp"
-
fastapi[dev]extra == "dev"
-
fastapi[infra]extra == "infra"
-
fastmcp[all]extra == "all"
-
fastmcp[api-mcp]extra == "api-mcp"
-
filetype[all]extra == "all"
-
filetype[path-type]extra == "path-type"
-
flagembedding[all]extra == "all"
-
flagembedding[db-search-compute]extra == "db-search-compute"
-
flet<0.80.0[all]extra == "all"
-
flet<0.80.0[interface]extra == "interface"
-
flet-video[all]extra == "all"
-
flet-video[interface]extra == "interface"
-
flet-webview[all]extra == "all"
-
flet-webview[interface]extra == "interface"
-
google-api-python-client[all]extra == "all"
-
google-api-python-client[google-api]extra == "google-api"
-
google-auth[all]extra == "all"
-
google-auth[google-api]extra == "google-api"
-
google-auth-httplib2[all]extra == "all"
-
google-auth-httplib2[google-api]extra == "google-api"
-
google-auth-oauthlib[all]extra == "all"
-
google-auth-oauthlib[google-api]extra == "google-api"
-
homeassistant-api[all]extra == "all"
-
homeassistant-api[ha-api]extra == "ha-api"
-
html2text[html]extra == "html"
-
html2text[all]extra == "all"
-
httpx[all]extra == "all"
-
httpx[api]extra == "api"
-
httpx[api-mcp]extra == "api-mcp"
-
httpx[db-search]extra == "db-search"
-
httpx[db-search-compute]extra == "db-search-compute"
-
httpx[dev]extra == "dev"
-
httpx[dhcp]extra == "dhcp"
-
httpx[dns]extra == "dns"
-
httpx[http]extra == "http"
-
httpx[infra]extra == "infra"
-
httpx[webhook]extra == "webhook"
-
httpx-retries[all]extra == "all"
-
httpx-retries[db-search]extra == "db-search"
-
httpx-retries[db-search-compute]extra == "db-search-compute"
-
httpx-retries[dev]extra == "dev"
-
httpx-retries[dhcp]extra == "dhcp"
-
httpx-retries[dns]extra == "dns"
-
httpx-retries[http]extra == "http"
-
httpx-retries[infra]extra == "infra"
-
httpx-retries[webhook]extra == "webhook"
-
huggingface-hub[all]extra == "all"
-
huggingface-hub[hfh]extra == "hfh"
-
logfire[all]extra == "all"
-
logfire[api]extra == "api"
-
logfire[api-mcp]extra == "api-mcp"
-
logfire[cli]extra == "cli"
-
logfire[db-search]extra == "db-search"
-
logfire[db-search-compute]extra == "db-search-compute"
-
logfire[dev]extra == "dev"
-
logfire[dhcp]extra == "dhcp"
-
logfire[dns]extra == "dns"
-
logfire[http]extra == "http"
-
logfire[infra]extra == "infra"
-
logfire[logging]extra == "logging"
-
logfire[process]extra == "process"
-
logfire[sec]extra == "sec"
-
logfire[secrets]extra == "secrets"
-
logfire[webhook]extra == "webhook"
-
mike[all]extra == "all"
-
mike[dev]extra == "dev"
-
mike[doc]extra == "doc"
-
mike[infra]extra == "infra"
-
mkdocs[all]extra == "all"
-
mkdocs[dev]extra == "dev"
-
mkdocs[doc]extra == "doc"
-
mkdocs[infra]extra == "infra"
-
mkdocs-include-dir-to-nav[all]extra == "all"
-
mkdocs-include-dir-to-nav[dev]extra == "dev"
-
mkdocs-include-dir-to-nav[doc]extra == "doc"
-
mkdocs-include-dir-to-nav[infra]extra == "infra"
-
mkdocs-material[all]extra == "all"
-
mkdocs-material[dev]extra == "dev"
-
mkdocs-material[doc]extra == "doc"
-
mkdocs-material[infra]extra == "infra"
-
mkdocstrings[all]extra == "all"
-
mkdocstrings[dev]extra == "dev"
-
mkdocstrings[doc]extra == "doc"
-
mkdocstrings[infra]extra == "infra"
-
odfpy[all]extra == "all"
-
odfpy[db-search-compute]extra == "db-search-compute"
-
odfpy[metrics]extra == "metrics"
-
odfpy[semantic]extra == "semantic"
-
odfpy[tabular]extra == "tabular"
-
openai[all]extra == "all"
-
openai[openai-api]extra == "openai-api"
-
openpyxl[all]extra == "all"
-
openpyxl[db-search-compute]extra == "db-search-compute"
-
openpyxl[metrics]extra == "metrics"
-
openpyxl[semantic]extra == "semantic"
-
openpyxl[tabular]extra == "tabular"
-
packaging[all]extra == "all"
-
packaging[dev]extra == "dev"
-
packaging[infra]extra == "infra"
-
pandas[all]extra == "all"
-
pandas[db-search-compute]extra == "db-search-compute"
-
pandas[metrics]extra == "metrics"
-
pandas[semantic]extra == "semantic"
-
pandas[tabular]extra == "tabular"
-
peft[ai]extra == "ai"
-
peft[all]extra == "all"
-
playwright==1.61.0[all]extra == "all"
-
playwright==1.61.0[browsers]extra == "browsers"
-
pycountry[ai]extra == "ai"
-
pycountry[all]extra == "all"
-
pycountry[api]extra == "api"
-
pycountry[api-mcp]extra == "api-mcp"
-
pycountry[cli]extra == "cli"
-
pycountry[db-search]extra == "db-search"
-
pycountry[db-search-compute]extra == "db-search-compute"
-
pycountry[dev]extra == "dev"
-
pycountry[dm]extra == "dm"
-
pycountry[infra]extra == "infra"
-
pycountry[pdf]extra == "pdf"
-
pycountry[sec]extra == "sec"
-
pycountry[secrets]extra == "secrets"
-
pycountry[sets]extra == "sets"
-
pydantic[ai]extra == "ai"
-
pydantic[all]extra == "all"
-
pydantic[api]extra == "api"
-
pydantic[api-mcp]extra == "api-mcp"
-
pydantic[cli]extra == "cli"
-
pydantic[db-search]extra == "db-search"
-
pydantic[db-search-compute]extra == "db-search-compute"
-
pydantic[dev]extra == "dev"
-
pydantic[dm]extra == "dm"
-
pydantic[infra]extra == "infra"
-
pydantic[pdf]extra == "pdf"
-
pydantic[sec]extra == "sec"
-
pydantic[secrets]extra == "secrets"
-
pydantic[sets]extra == "sets"
-
pydantic-extra-types[ai]extra == "ai"
-
pydantic-extra-types[all]extra == "all"
-
pydantic-extra-types[api]extra == "api"
-
pydantic-extra-types[api-mcp]extra == "api-mcp"
-
pydantic-extra-types[cli]extra == "cli"
-
pydantic-extra-types[db-search]extra == "db-search"
-
pydantic-extra-types[db-search-compute]extra == "db-search-compute"
-
pydantic-extra-types[dev]extra == "dev"
-
pydantic-extra-types[dm]extra == "dm"
-
pydantic-extra-types[infra]extra == "infra"
-
pydantic-extra-types[pdf]extra == "pdf"
-
pydantic-extra-types[sec]extra == "sec"
-
pydantic-extra-types[secrets]extra == "secrets"
-
pydantic-extra-types[sets]extra == "sets"
-
pydantic-settings[all]extra == "all"
-
pydantic-settings[cli]extra == "cli"
-
pydantic-settings[dev]extra == "dev"
-
pydantic-settings[infra]extra == "infra"
-
pydantic-settings[sec]extra == "sec"
-
pydantic-settings[secrets]extra == "secrets"
-
pydantic-settings[sets]extra == "sets"
-
pydevd-pycharm~=261.26222.68[all]extra == "all"
-
pydevd-pycharm~=261.26222.68[debug]extra == "debug"
-
pydevd-pycharm~=261.26222.68[dev]extra == "dev"
-
pygit2[all]extra == "all"
-
pygit2[dev]extra == "dev"
-
pygit2[infra]extra == "infra"
-
pygit2[sec]extra == "sec"
-
pygit2[secrets]extra == "secrets"
-
pygit2[vcs]extra == "vcs"
-
pymupdf[all]extra == "all"
-
pymupdf[pdf]extra == "pdf"
-
pymupdf4llm[all]extra == "all"
-
pymupdf4llm[pdf]extra == "pdf"
-
pyrage[all]extra == "all"
-
pyrage[dev]extra == "dev"
-
pyrage[encrypt]extra == "encrypt"
-
pyrage[infra]extra == "infra"
-
pyrage[sec]extra == "sec"
-
pyrage[secrets]extra == "secrets"
-
pytest[all]extra == "all"
-
pytest[dev]extra == "dev"
-
pytest[infra]extra == "infra"
-
pytest[test]extra == "test"
-
pytest-asyncio[all]extra == "all"
-
pytest-asyncio[dev]extra == "dev"
-
pytest-asyncio[infra]extra == "infra"
-
pytest-asyncio[test]extra == "test"
-
pytest-cov[all]extra == "all"
-
pytest-cov[dev]extra == "dev"
-
pytest-cov[infra]extra == "infra"
-
pytest-cov[test]extra == "test"
-
python-on-whales[all]extra == "all"
-
python-on-whales[dev]extra == "dev"
-
python-on-whales[docker-client]extra == "docker-client"
-
python-on-whales[infra]extra == "infra"
-
pytubefix[all]extra == "all"
-
pytubefix[youtube]extra == "youtube"
-
pyyaml[all]extra == "all"
-
pyyaml[cli]extra == "cli"
-
pyyaml[dev]extra == "dev"
-
pyyaml[infra]extra == "infra"
-
pyyaml[sec]extra == "sec"
-
pyyaml[secrets]extra == "secrets"
-
pyyaml[sets]extra == "sets"
-
pyyaml[yaml]extra == "yaml"
-
pyyaml[yml]extra == "yml"
-
qdrant-client[all]extra == "all"
-
qdrant-client[db-search]extra == "db-search"
-
qdrant-client[db-search-compute]extra == "db-search-compute"
-
qdrant-client[dev]extra == "dev"
-
ranx[all]extra == "all"
-
ranx[db-search-compute]extra == "db-search-compute"
-
ranx[metrics]extra == "metrics"
-
ranx[semantic]extra == "semantic"
-
regex[all]extra == "all"
-
regex[patterns]extra == "patterns"
-
ripgrep-rs[all]extra == "all"
-
ripgrep-rs[dev]extra == "dev"
-
ripgrep-rs[path-search]extra == "path-search"
-
semver[all]extra == "all"
-
semver[dev]extra == "dev"
-
semver[infra]extra == "infra"
-
semver[version-dev]extra == "version-dev"
-
sentence-transformers[all]extra == "all"
-
sentence-transformers[semantic]extra == "semantic"
-
setuptools[all]extra == "all"
-
setuptools[dev]extra == "dev"
-
setuptools[infra]extra == "infra"
-
setuptools[setup]extra == "setup"
-
sre-yield[all]extra == "all"
-
sre-yield[augmentation]extra == "augmentation"
-
tabulate[all]extra == "all"
-
tabulate[db-search-compute]extra == "db-search-compute"
-
tabulate[metrics]extra == "metrics"
-
tabulate[semantic]extra == "semantic"
-
tabulate[tabular]extra == "tabular"
-
tinynetrc[all]extra == "all"
-
tinynetrc[netrc]extra == "netrc"
-
tinynetrc[spaces]extra == "spaces"
-
tokenizers[all]extra == "all"
-
tokenizers[tokenization]extra == "tokenization"
-
tomlkit[all]extra == "all"
-
tomlkit[dev]extra == "dev"
-
tomlkit[infra]extra == "infra"
-
tomlkit[toml-write]extra == "toml-write"
-
torch>=2.12[all]extra == "all"
-
torch>=2.12[compute]extra == "compute"
-
torch>=2.12[db-search-compute]extra == "db-search-compute"
-
torchaudio[ai]extra == "ai"
-
torchaudio[all]extra == "all"
-
torchaudio[compute]extra == "compute"
-
torchaudio[db-search-compute]extra == "db-search-compute"
-
torchvision[ai]extra == "ai"
-
torchvision[all]extra == "all"
-
torchvision[compute]extra == "compute"
-
torchvision[db-search-compute]extra == "db-search-compute"
-
transformers[ai]extra == "ai"
-
transformers[all]extra == "all"
-
twine[all]extra == "all"
-
twine[dev]extra == "dev"
-
twine[infra]extra == "infra"
-
unidecode[all]extra == "all"
-
unidecode[unicode]extra == "unicode"
-
uvicorn[all]extra == "all"
-
uvicorn[api]extra == "api"
-
uvicorn[api-mcp]extra == "api-mcp"
-
uvicorn[dev]extra == "dev"
-
uvicorn[infra]extra == "infra"
-
yamlscript>=0.2.20[all]extra == "all"
-
yamlscript>=0.2.20[cli]extra == "cli"
-
yamlscript>=0.2.20[dev]extra == "dev"
-
yamlscript>=0.2.20[infra]extra == "infra"
-
yamlscript>=0.2.20[sec]extra == "sec"
-
yamlscript>=0.2.20[secrets]extra == "secrets"
-
yamlscript>=0.2.20[sets]extra == "sets"
-
yamlscript>=0.2.20[yaml]extra == "yaml"
-
yamlscript>=0.2.20[yml]extra == "yml"