Skip to main content

Show why a Python package is installed by tracing its lock file dependency graph

Project description

whydep

Lint Test Bump Release

A fast Rust CLI that answers "why is this Python package installed?" by tracing your project's lock file dependency graph and showing which source files use it.

Install

pip install whydep
# or
uv add --dev whydep

Usage

# Run from your project directory
wd certifi
whydep certifi        # same tool, longer alias

# Point at a different project
wd certifi --dir /path/to/my-project

Example output

For a transitive dependency:

Why is 'MarkupSafe' installed?

└── jinja2
    └── flask
        · src/main.py:1: import flask
        · src/main.py:2: from flask import Flask, request
        └── (project root)

For a direct dependency:

Why is 'flask' installed?

· src/main.py:1: import flask
· src/main.py:2: from flask import Flask, request

└── (project root)

Lines starting with · show where your code imports the direct dependency that pulled the package in.

Supported lock files

Tool Lock file
uv uv.lock
Poetry poetry.lock

uv.lock is preferred when both exist. The lock file is searched in the given directory and up to 3 parent directories.

Configuration

Add a [tool.whydep] section to your pyproject.toml to limit source scanning to specific directories (faster, less noise):

[tool.whydep]
src = "src"              # single directory
# src = ["src", "tests"] # or multiple

Without this setting the entire project directory is scanned.

Project details


Download files

Download the file for your platform. If you're not sure which to choose, learn more about installing packages.

Source Distribution

whydep-0.1.1.tar.gz (14.8 kB view details)

Uploaded Source

Built Distributions

If you're not sure about the file name format, learn more about wheel file names.

whydep-0.1.1-py3-none-win_amd64.whl (945.6 kB view details)

Uploaded Python 3Windows x86-64

whydep-0.1.1-py3-none-manylinux_2_17_x86_64.manylinux2014_x86_64.whl (1.3 MB view details)

Uploaded Python 3manylinux: glibc 2.17+ x86-64

whydep-0.1.1-py3-none-manylinux_2_17_aarch64.manylinux2014_aarch64.whl (1.2 MB view details)

Uploaded Python 3manylinux: glibc 2.17+ ARM64

whydep-0.1.1-py3-none-macosx_11_0_arm64.whl (1.2 MB view details)

Uploaded Python 3macOS 11.0+ ARM64

whydep-0.1.1-py3-none-macosx_10_12_x86_64.whl (1.2 MB view details)

Uploaded Python 3macOS 10.12+ x86-64

File details

Details for the file whydep-0.1.1.tar.gz.

File metadata

  • Download URL: whydep-0.1.1.tar.gz
  • Upload date:
  • Size: 14.8 kB
  • Tags: Source
  • Uploaded using Trusted Publishing? Yes
  • Uploaded via: twine/6.1.0 CPython/3.13.12

File hashes

Hashes for whydep-0.1.1.tar.gz
Algorithm Hash digest
SHA256 a256f410615df937366c7979e8a5d55f36c372b0089abc8c08f5441d0b04fef5
MD5 a3768acdc8d06efbc6a921141567a2f9
BLAKE2b-256 ee9b4e3f0f4b846091d57c4673cf4ec4bbf308862e871d564aa2afed3652bb37

See more details on using hashes here.

Provenance

The following attestation bundles were made for whydep-0.1.1.tar.gz:

Publisher: release.yml on colour-white/whydep

Attestations: Values shown here reflect the state when the release was signed and may no longer be current.

File details

Details for the file whydep-0.1.1-py3-none-win_amd64.whl.

File metadata

  • Download URL: whydep-0.1.1-py3-none-win_amd64.whl
  • Upload date:
  • Size: 945.6 kB
  • Tags: Python 3, Windows x86-64
  • Uploaded using Trusted Publishing? Yes
  • Uploaded via: twine/6.1.0 CPython/3.13.12

File hashes

Hashes for whydep-0.1.1-py3-none-win_amd64.whl
Algorithm Hash digest
SHA256 7a1ec8bb89dc81988eb58f4d7b7b560c6e261e7e9974e351a44c41f4a99e915c
MD5 1c868d26c5b137a32c7c7c97de6a7d9b
BLAKE2b-256 a235bed4794a1320fc3848dc97211c200f5cf82c83d27604a0db02ab3b3130f4

See more details on using hashes here.

Provenance

The following attestation bundles were made for whydep-0.1.1-py3-none-win_amd64.whl:

Publisher: release.yml on colour-white/whydep

Attestations: Values shown here reflect the state when the release was signed and may no longer be current.

File details

Details for the file whydep-0.1.1-py3-none-manylinux_2_17_x86_64.manylinux2014_x86_64.whl.

File metadata

File hashes

Hashes for whydep-0.1.1-py3-none-manylinux_2_17_x86_64.manylinux2014_x86_64.whl
Algorithm Hash digest
SHA256 0aa5360d0ebde2f85df821ed7006aa28f6805085682fddf4531056ab691351e0
MD5 83cdc98ebc90fa093e608f39dd0bbd69
BLAKE2b-256 04c6c0d6b92431ee96a5ab34b64bfe77b17244a3668dc9d9018754f930222037

See more details on using hashes here.

Provenance

The following attestation bundles were made for whydep-0.1.1-py3-none-manylinux_2_17_x86_64.manylinux2014_x86_64.whl:

Publisher: release.yml on colour-white/whydep

Attestations: Values shown here reflect the state when the release was signed and may no longer be current.

File details

Details for the file whydep-0.1.1-py3-none-manylinux_2_17_aarch64.manylinux2014_aarch64.whl.

File metadata

File hashes

Hashes for whydep-0.1.1-py3-none-manylinux_2_17_aarch64.manylinux2014_aarch64.whl
Algorithm Hash digest
SHA256 f81ed027a24d4085644e04e7b066d6873988c176508cffdf71535b0fc6bf925a
MD5 26155ba3635e3b80aff5d1efd5fc6afc
BLAKE2b-256 02bd35f438f52cd002504b74db4d0e0c48234f50908c1f6b7c78c9556ea7fca0

See more details on using hashes here.

Provenance

The following attestation bundles were made for whydep-0.1.1-py3-none-manylinux_2_17_aarch64.manylinux2014_aarch64.whl:

Publisher: release.yml on colour-white/whydep

Attestations: Values shown here reflect the state when the release was signed and may no longer be current.

File details

Details for the file whydep-0.1.1-py3-none-macosx_11_0_arm64.whl.

File metadata

File hashes

Hashes for whydep-0.1.1-py3-none-macosx_11_0_arm64.whl
Algorithm Hash digest
SHA256 ce2f25951177820c63f71063359c38b77e4070abb253191f22e5028d05aa50bc
MD5 06e2ce57a213aaadd45ace1088f13225
BLAKE2b-256 a0b527ef5ddec9ddcb29c92322643e9c8caeeccb96a6013f05a092ab34a0b852

See more details on using hashes here.

Provenance

The following attestation bundles were made for whydep-0.1.1-py3-none-macosx_11_0_arm64.whl:

Publisher: release.yml on colour-white/whydep

Attestations: Values shown here reflect the state when the release was signed and may no longer be current.

File details

Details for the file whydep-0.1.1-py3-none-macosx_10_12_x86_64.whl.

File metadata

File hashes

Hashes for whydep-0.1.1-py3-none-macosx_10_12_x86_64.whl
Algorithm Hash digest
SHA256 081e03950486a173c70c724dbf1ec7437f6d6b7e35a2b8a322b8be5a8223a36f
MD5 61a0f5265a4efac64e5aea6a9bb8c14d
BLAKE2b-256 deb8478afd02995eeeeeae15cb96b3c6ab420d2b827a007a6d13523004ddd9dd

See more details on using hashes here.

Provenance

The following attestation bundles were made for whydep-0.1.1-py3-none-macosx_10_12_x86_64.whl:

Publisher: release.yml on colour-white/whydep

Attestations: Values shown here reflect the state when the release was signed and may no longer be current.

Supported by

AWS Cloud computing and Security Sponsor Datadog Monitoring Depot Continuous Integration Fastly CDN Google Download Analytics Pingdom Monitoring Sentry Error logging StatusPage Status page