{"id":26555201,"url":"https://github.com/zbowling/depwise","last_synced_at":"2026-02-14T02:04:08.394Z","repository":{"id":283412950,"uuid":"951524870","full_name":"zbowling/depwise","owner":"zbowling","description":"A fast, comprehensive dependency analyzer for Python that detects unused, missing, and optional dependencies.","archived":false,"fork":false,"pushed_at":"2025-03-23T06:15:30.000Z","size":185,"stargazers_count":2,"open_issues_count":1,"forks_count":0,"subscribers_count":1,"default_branch":"main","last_synced_at":"2026-01-09T07:51:39.677Z","etag":null,"topics":["linter","python-tools","rust","tools"],"latest_commit_sha":null,"homepage":"","language":"Rust","has_issues":true,"has_wiki":null,"has_pages":null,"mirror_url":null,"source_name":null,"license":"mit","status":null,"scm":"git","pull_requests_enabled":true,"icon_url":"https://github.com/zbowling.png","metadata":{"files":{"readme":"README.md","changelog":"CHANGELOG.md","contributing":"CONTRIBUTING.md","funding":".github/FUNDING.yml","license":"LICENSE","code_of_conduct":"CODE_OF_CONDUCT.md","threat_model":null,"audit":null,"citation":null,"codeowners":null,"security":null,"support":null,"governance":null,"roadmap":null,"authors":null,"dei":null,"publiccode":null,"codemeta":null,"zenodo":null},"funding":{"github":["zbowling"],"buy_me_a_coffee":"zbowling","thanks_dev":"u/gh/zbowling"}},"created_at":"2025-03-19T20:19:53.000Z","updated_at":"2025-10-14T02:55:08.000Z","dependencies_parsed_at":"2025-06-03T08:17:01.308Z","dependency_job_id":null,"html_url":"https://github.com/zbowling/depwise","commit_stats":null,"previous_names":["zbowling/depwise"],"tags_count":1,"template":false,"template_full_name":null,"purl":"pkg:github/zbowling/depwise","repository_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/zbowling%2Fdepwise","tags_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/zbowling%2Fdepwise/tags","releases_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/zbowling%2Fdepwise/releases","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/zbowling%2Fdepwise/manifests","owner_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners/zbowling","download_url":"https://codeload.github.com/zbowling/depwise/tar.gz/refs/heads/main","sbom_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/zbowling%2Fdepwise/sbom","scorecard":null,"host":{"name":"GitHub","url":"https://github.com","kind":"github","repositories_count":286080680,"owners_count":29431593,"icon_url":"https://github.com/github.png","version":null,"created_at":"2022-05-30T11:31:42.601Z","updated_at":"2026-02-13T22:20:51.549Z","status":"online","status_checked_at":"2026-02-14T02:00:07.626Z","response_time":53,"last_error":null,"robots_txt_status":"success","robots_txt_updated_at":"2025-07-24T06:49:26.215Z","robots_txt_url":"https://github.com/robots.txt","online":true,"can_crawl_api":true,"host_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub","repositories_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories","repository_names_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repository_names","owners_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners"}},"keywords":["linter","python-tools","rust","tools"],"created_at":"2025-03-22T10:25:24.064Z","updated_at":"2026-02-14T02:04:08.367Z","avatar_url":"https://github.com/zbowling.png","language":"Rust","funding_links":["https://github.com/sponsors/zbowling","https://buymeacoffee.com/zbowling","https://thanks.dev/u/gh/zbowling"],"categories":[],"sub_categories":[],"readme":"# Depwise\n\n\u003e Depwise is pre-alpha software. It is not ready.\n\nA fast, comprehensive dependency analyzer for Python projects that detects unused, missing, and optional dependencies across multiple environments. Supports requirements.txt, conda, pyproject.toml, pixi, and setup.py without requiring installation. Features intelligent pattern detection for optional dependencies, synthetic fast-pass analysis, and validation against actual environments. Designed for pre-commit hooks and CI/CD pipelines.\n\n![Depwise Logo](depwise_logo.png)\n\n## Usage\n\n\nTo check a project, you can use the `depwise check` command.\n\n```bash\n# Check a project using a pyproject.toml file\ndepwise check --project \u003cpath-to-pyproject.toml\u003e \u003cpath to source code\u003e\n\n# Check a project using a requirements.txt file. Explictly treat the path as a module and not recursively check subdirectories.\ndepwise check --requirements \u003cpath-to-requirements.txt\u003e --module \u003cpath to source code\u003e\n\n# Check a project using a conda environment file. Explictly treat the path as a project and recursively check subdirectories.\ndepwise check --condayml \u003cpath-to-environment.yml\u003e --project \u003cpath to source code\u003e\n```\n\nTo check source code in the currently active Python environment, you can use the `depwise check` command with the `--current` flag.\n\n```bash\ndepwise check --current \u003cpath to source code\u003e\n```\n\nTo check a wheel, sdist, or conda package, you can use the `depwise check-package` command.\n\n```bash\ndepwise check-package \u003cpath-to-package\u003e\n```\n\n## Configuration\n\nTo make it easier to test multiple environments, Depwise can be configured using a `depwise.toml` or `pyproject.toml` (using the `[tool.depwise]` prefix) file.\n\n```toml\n[depwise]\n# Ignore these module imports\n\n# Configure a project\n[depwise.project.my-project]\ntype = \"pyproject\" # or \"requirements\", \"conda\", \"pixi\"\n# We will try to infer the path from the type given common conventions,\n# but you can specify it here\nproject = \"path/to/pyproject.toml\"\n\n# Test with and without specified optional-dependencies/extras\nextras = [\"*\"] # or specify a list of extras to test [\"extra1\", \"extra2\"]\n\n# Array of paths to sources to check\nsource = [\"path/to/source\"]\n\n# List of regexes to ignore imports matching these patterns\nignore = [\"^test_.*\"]\n\n# Ignore modules by name\nignore-imports = [\"dep1\", \"dep2\"]\n\n[depwise.package.default]\n# Test with and without specified optional-dependencies/extras\nextras = [\"*\"] # or specify a list of extras to test [\"extra1\", \"extra2\"]\n\n# List of regexes to ignore imports matching these patterns\nignore = [\"^test_.*\"]\n\n# Ignore modules by name\nignore-imports = [\"dep1\", \"dep2\"]\n\n\n\n```\n","project_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fzbowling%2Fdepwise","html_url":"https://awesome.ecosyste.ms/projects/github.com%2Fzbowling%2Fdepwise","lists_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fzbowling%2Fdepwise/lists"}