Skip to main content

Eggs grow on trees. Dependency trees.

Project description

The eggdeps tool reports dependencies between eggs in the working set. Dependencies are considered recursively, creating a directed graph. This graph is printed to standard output either as plain text, or as an input file to the graphviz tools.

Usage

eggdeps [options] [specifications]

Specifications must follow the usual syntax for specifying distributions of Python packages as defined by pkg_resources.

  • If any specifications are given, the corresponding distributions will make up the roots of the dependency graph, and the graph will be restricted to their dependencies.

  • If no specifications are given, the graph will map the possible dependencies between all eggs in the working set and its roots will be those distributions that aren’t dependencies of any other distributions.

options:
-h, --help

show this help message and exit

-i IGNORE, --ignore=IGNORE

project names to ignore

-I RE_IGNORE, --re-ignore=RE_IGNORE

regular expression for project names to ignore

-e DEAD_ENDS, --dead-end=DEAD_ENDS

names of projects whose dependencies to ignore

-E RE_DEAD_ENDS, --re-dead-end=RE_DEAD_ENDS

regular expression for project names whose dependencies to ignore

-n, --no-extras

always omit extra dependencies

-d, --dot

produce a dot graph

-c, --cluster

in a dot graph, cluster direct dependencies of each root distribution

The -i, -I, -e, and -E options may occur multiple times.

Documentation

Working set

The working set eggdeps operates on is defined by the egg distributions available to the running Python interpreter. For example, these may be the distributions activated by easy_install or installed in a zc.buildout environment.

If the graph is to be calculated to such specifications that not all required distributions are in the working set, the missing ones will be marked in the output, and their dependencies cannot be determined. The same happens if any distribution that is either specified on the command line or required by any other distribution is available in the working set, but at a version incompatible with the specified requirement.

Reducing the graph

In order to reduce an otherwise big and tangled dependency graph, certain nodes and edges may be omitted.

Ignored nodes:

Nodes may be ignored completely by exact name or regular expression matching. This is useful if a very basic distribution is a depedency of a lot of others. An example might be setuptools.

Dead ends:

Distributions may be declared dead ends by exact name or regular expression matching. Dead ends are included in the graph but their own dependencies will be ignored. This allows for large subsystems of distributions to be blotted out except for their “entry points”. As an example, one might declare zope.app.* dead ends in the context of zope.* packages.

No extras:

Reporting and following extra dependencies may be switched off completely. This will probably make most sense when analysing the working set rather than the dependencies of specified distributions.

Output

In all cases, the output of eggdeps is a directed dependency graph with nodes that represent egg distributions and edges which represent either direct or extra dependencies between them. Some information will be lost while building the graph:

  • If a dependency occurs both directly and by way of one or more extras, it will be recorded as a plain direct dependency.

  • If a distribution A with installed extras is a dependency of multiple other distributions, they will all appear to depend on A with all its extras, even if they individually require none or only a few of them.

Contact

This package is written by Thomas Lotze. Please contact the author at <thomas@thomas-lotze.de> to provide feedback, suggestions, or contributions.

See also <http://www.thomas-lotze.de/en/software/eggdeps/>.

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

tl.eggdeps-0.1.tar.gz (9.3 kB view details)

Uploaded Source

Built Distributions

tl.eggdeps-0.1-py2.5.egg (19.9 kB view details)

Uploaded Egg

tl.eggdeps-0.1-py2.4.egg (20.1 kB view details)

Uploaded Egg

File details

Details for the file tl.eggdeps-0.1.tar.gz.

File metadata

  • Download URL: tl.eggdeps-0.1.tar.gz
  • Upload date:
  • Size: 9.3 kB
  • Tags: Source
  • Uploaded using Trusted Publishing? No

File hashes

Hashes for tl.eggdeps-0.1.tar.gz
Algorithm Hash digest
SHA256 41e8001871ce19cb1bb8c0f477dc8496517d1fcea31ef88783a7e53d5d2c5eb8
MD5 b6d447b8c0e5e4d3d0d6f0f068257bcf
BLAKE2b-256 d5170f7b5d728ea246399de618857a315a21ead7b57c40dae54fe61e98eeabad

See more details on using hashes here.

File details

Details for the file tl.eggdeps-0.1-py2.5.egg.

File metadata

File hashes

Hashes for tl.eggdeps-0.1-py2.5.egg
Algorithm Hash digest
SHA256 dcba73458b928f84e354f434ec7d675b1d91e6da671a0fc94355d21799066611
MD5 3991d7b37cfd3b848bcd94061d54c15c
BLAKE2b-256 65328e67c4aa4e6a36d062578cc8afdad196fbb8b1f831e798bfbb85e16dcdcc

See more details on using hashes here.

File details

Details for the file tl.eggdeps-0.1-py2.4.egg.

File metadata

File hashes

Hashes for tl.eggdeps-0.1-py2.4.egg
Algorithm Hash digest
SHA256 73e9955dfcf2eb91a131ef80b50ba13164d523ee8406980cc3b47c199d8cdc97
MD5 7ebcaf2a40de26986261f98fcc324073
BLAKE2b-256 5c9a301a5cd26980b0dd20b600c5368c52fd56035384d6484bf4dd8b1f7cb931

See more details on using hashes here.

Supported by

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