🚀 Big News: Socket Acquires Coana to Bring Reachability Analysis to Every Appsec Team.Learn more
Socket
Sign inDemoInstall
Socket

direct-deps

Package Overview
Dependencies
Maintainers
1
Alerts
File Explorer

Advanced tools

Socket logo

Install Socket

Detect and block malicious and high-risk dependencies

Install

direct-deps

A utility to analyze a Python project and its virtual environment to identify unused direct dependencies. Helps you keep your dependency list lean and accurate.

0.0.1
Source
PyPI
Maintainers
1

direct-deps

PyPI - Version PyPI - Python Version

Table of Contents

Introduction

A utility to analyze a Python project and its virtual environment to identify direct dependencies. Helps you keep your dependency list lean and accurate.

Installation

pip install direct-deps

Usage

Inside your project's virtualenv

source venv/bin/activate
pip install direct-deps
#  No need to specify venv since direct-deps can detect the virtualenv if installed in it.
direct-deps .

Installed outside your virtualenv

pipx install direct-deps

# You must pass in the location of your virtualenv
# hatch: hatch env find
# pipenv: pipenv --venv
direct-deps . --venv venv

Recommendation

To split packages and dev-packages you can do the following.

# Sample Project Structure
├── pyproject.toml
├── src
│   └── comma-cli
│       └── ...
└── tests
    └── ...
[flavio@Mac ~/dev/github.com/FlavioAmurrioCS/comma-cli]
$ hatch shell
source "/Users/flavio/Library/Application Support/hatch/env/virtual/comma-cli/NLCv5VCj/comma-cli/bin/activate"

(comma-cli)
[flavio@Mac ~/dev/github.com/FlavioAmurrioCS/comma-cli]
$ pip install direct-deps
...

(comma-cli)
[flavio@Mac ~/dev/github.com/FlavioAmurrioCS/comma-cli]
$ direct-deps src
Direct Dependencies:
 - persistent-cache-decorator
 - requests
 - rich
 - setuptools-scm
 - typedfzf
 - typer

(comma-cli)
[flavio@Mac ~/dev/github.com/FlavioAmurrioCS/comma-cli]
$ direct-deps tests
Direct Dependencies:
 - pytest
 - runtool
 - tomlkit
 - typer

# So my [packages] would be
  persistent-cache-decorator
  requests
  rich
  setuptools-scm
  typedfzf
  typer

# And my [dev-packages] would be, notice that since typer is a main dependency, there is no need to list it in this section.
  pytest
  runtool
  tomlkit

Limitations

This tool relies on being able to look at the import <package> and from <package> import ... as well as use your virtualenv to find the appropiate package name. This means that that anything not imported directly will not appear the the list such as plugins (pytest-cov) and static analysis tools(ruff, pre-commit).

License

direct-deps is distributed under the terms of the MIT license.

FAQs

Did you know?

Socket

Socket for GitHub automatically highlights issues in each pull request and monitors the health of all your open source dependencies. Discover the contents of your packages and block harmful activity before you install or update your dependencies.

Install

Related posts