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: <http://pypi.python.org/pypi/tl.eggdeps> You can access the source code repository at <https://svn.thomas-lotze.de/repos/public/eggdeps/>, or browse it using ViewCVS at <http://svn.thomas-lotze.de/svn-public/eggdeps/>. >From the documentation (see <http://www.thomas-lotze.de/en/software/eggdeps/readme.html>): 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 distributions. 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 ``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. -- Thomas -- http://mail.python.org/mailman/listinfo/python-announce-list Support the Python Software Foundation: http://www.python.org/psf/donations.html