tl.eggdeps 0.2.1

Thomas Lotze thomas at
Mon Aug 6 10:24:40 CEST 2007

tl.eggdeps 0.2.1 has been released.

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.

tl.eggdeps is released under the Zope Public License, version 2.1.

The package is available from the Python package index as a source
distribution and Python 2.4 and 2.5 eggs:

You can access the source code repository at
or browse it using ViewCVS at

>From the documentation (see

Graph building strategies

The dependency graph may be built following either of two strategies:

:Analysing the whole working set:
  Nodes correspond exactly to the distributions in the working set. Edges
  corresponding to all conceivable dependencies between any active
  distributions are included, but only if the required distribution is active
  at the correct version. The roots of the graph correspond to those
  distributions no other active distributions depend upon.

:Starting from one or more eggs:
  Nodes include all packages depended upon by the specified distributions and
  extras, as well as their deep dependencies. They may cover only part of the
  working set, as well as include nodes for distributions that are not active
  at the required versions or not active at all (so their dependencies can not
  be followed). The roots of the graph correspond to the specified

Some information will be lost while building the graph:

- If a dependency occurs both mandatorily and by way of one or more extras, it
  will be recorded as a plain mandatory 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 required
  extras, even if they individually require none or only a few of them.

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 ``*`` 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.


More information about the Python-announce-list mailing list