Display module dependencies
Project description
.. -*- coding: utf-8 -*-
pydeps
======
.. image:: https://travis-ci.org/thebjorn/pydeps.svg
:target: https://travis-ci.org/thebjorn/pydeps
.. image:: https://coveralls.io/repos/thebjorn/pydeps/badge.png
:target: https://coveralls.io/r/thebjorn/pydeps
Python Dependency visualization. This package installs the ``pydeps``,
and normal usage will be to use it from the command line.
To create graphs you need to install Graphviz_ (make sure the ``dot``
command is on your path).
.. Note:: to display the resulting `.svg` files, it currently calls
``firefox foo.svg``. This is a bug/limitation that will
hopefully be fixed soon'ish. I would suggest creating a
script file called ``firefox`` that redirects to your
favorite viewer if you can't use ``firefox``. Pull requests
are very welcome.
This is the result of running ``pydeps`` on itself (``pydeps --show pydeps``):
.. image:: https://dl.dropboxusercontent.com/u/94882440/pydeps.svg
``pydeps`` also contains an Erdős-like scoring function (a.k.a. Bacon number,
from `Six degrees of Kevin Bacon`_[2]) that lets you filter out modules that
are more than a given number of 'hops' away from the module you're interested in.
This is useful for finding the interface a module has to the rest of the world.
To find pydeps' interface to the Python stdlib (less some very common modules).
::
pydeps pydeps --show --max-bacon 2 --pylib -x os re types _* enum
.. image:: https://dl.dropboxusercontent.com/u/94882440/pydeps-pylib.svg
``--max-bacon 2`` gives the modules that are at most 2 hops away, and modules
that belong together have similar colors. Compare that to the output
without the ``--max-bacon 2`` filter:
.. image:: https://dl.dropboxusercontent.com/u/94882440/pydeps-pylib-all.svg
:width: 40%
An attempt has been made to keep the intermediate formats readable,
eg. the output from ``pydeps --show-deps ..`` looks like this::
...
"pydeps.mf27": {
"imported_by": [
"__main__",
"pydeps.py2depgraph"
],
"kind": "imp.PY_SOURCE",
"name": "pydeps.mf27",
"path": "pydeps\\mf27.py"
},
"pydeps.py2depgraph": {
"imported_by": [
"__main__",
"pydeps.pydeps"
],
"imports": [
"pydeps.depgraph",
"pydeps.mf27"
],
"kind": "imp.PY_SOURCE",
"name": "pydeps.py2depgraph",
"path": "pydeps\\py2depgraph.py"
}, ...
Usage::
usage: pydeps-script.py [-h] [-v] [-o file] [-T FORMAT] [--show] [--show-deps]
[--show-dot] [--debug] [--pylib] [--pylib-all]
[-x EXCLUDE [EXCLUDE ...]]
fname
positional arguments:
fname filename
optional arguments:
-h, --help show this help message and exit
-v, --verbose be more verbose (-vv, -vvv for more verbosity)
-o file write output to 'file'
-T FORMAT output format (svg|png)
--show call external program to display graph
--show-deps show output of dependency analysis
--show-dot show output of dot conversion
--debug turn on all the show and verbose options
--pylib include python std lib modules
--pylib-all include python all std lib modules (incl. C modules)
-x EXCLUDE [EXCLUDE ...], --exclude EXCLUDE [EXCLUDE ...]
input files to skip
You can of course import ``pydeps`` from Python (look in the
``tests/test_relative_imports.py`` file for examples.
.. _[2]:: http://en.wikipedia.org/wiki/Six_Degrees_of_Kevin_Bacon
.. _Graphviz: http://www.graphviz.org/Download.php
pydeps
======
.. image:: https://travis-ci.org/thebjorn/pydeps.svg
:target: https://travis-ci.org/thebjorn/pydeps
.. image:: https://coveralls.io/repos/thebjorn/pydeps/badge.png
:target: https://coveralls.io/r/thebjorn/pydeps
Python Dependency visualization. This package installs the ``pydeps``,
and normal usage will be to use it from the command line.
To create graphs you need to install Graphviz_ (make sure the ``dot``
command is on your path).
.. Note:: to display the resulting `.svg` files, it currently calls
``firefox foo.svg``. This is a bug/limitation that will
hopefully be fixed soon'ish. I would suggest creating a
script file called ``firefox`` that redirects to your
favorite viewer if you can't use ``firefox``. Pull requests
are very welcome.
This is the result of running ``pydeps`` on itself (``pydeps --show pydeps``):
.. image:: https://dl.dropboxusercontent.com/u/94882440/pydeps.svg
``pydeps`` also contains an Erdős-like scoring function (a.k.a. Bacon number,
from `Six degrees of Kevin Bacon`_[2]) that lets you filter out modules that
are more than a given number of 'hops' away from the module you're interested in.
This is useful for finding the interface a module has to the rest of the world.
To find pydeps' interface to the Python stdlib (less some very common modules).
::
pydeps pydeps --show --max-bacon 2 --pylib -x os re types _* enum
.. image:: https://dl.dropboxusercontent.com/u/94882440/pydeps-pylib.svg
``--max-bacon 2`` gives the modules that are at most 2 hops away, and modules
that belong together have similar colors. Compare that to the output
without the ``--max-bacon 2`` filter:
.. image:: https://dl.dropboxusercontent.com/u/94882440/pydeps-pylib-all.svg
:width: 40%
An attempt has been made to keep the intermediate formats readable,
eg. the output from ``pydeps --show-deps ..`` looks like this::
...
"pydeps.mf27": {
"imported_by": [
"__main__",
"pydeps.py2depgraph"
],
"kind": "imp.PY_SOURCE",
"name": "pydeps.mf27",
"path": "pydeps\\mf27.py"
},
"pydeps.py2depgraph": {
"imported_by": [
"__main__",
"pydeps.pydeps"
],
"imports": [
"pydeps.depgraph",
"pydeps.mf27"
],
"kind": "imp.PY_SOURCE",
"name": "pydeps.py2depgraph",
"path": "pydeps\\py2depgraph.py"
}, ...
Usage::
usage: pydeps-script.py [-h] [-v] [-o file] [-T FORMAT] [--show] [--show-deps]
[--show-dot] [--debug] [--pylib] [--pylib-all]
[-x EXCLUDE [EXCLUDE ...]]
fname
positional arguments:
fname filename
optional arguments:
-h, --help show this help message and exit
-v, --verbose be more verbose (-vv, -vvv for more verbosity)
-o file write output to 'file'
-T FORMAT output format (svg|png)
--show call external program to display graph
--show-deps show output of dependency analysis
--show-dot show output of dot conversion
--debug turn on all the show and verbose options
--pylib include python std lib modules
--pylib-all include python all std lib modules (incl. C modules)
-x EXCLUDE [EXCLUDE ...], --exclude EXCLUDE [EXCLUDE ...]
input files to skip
You can of course import ``pydeps`` from Python (look in the
``tests/test_relative_imports.py`` file for examples.
.. _[2]:: http://en.wikipedia.org/wiki/Six_Degrees_of_Kevin_Bacon
.. _Graphviz: http://www.graphviz.org/Download.php
Project details
Release history Release notifications | RSS feed
Download files
Download the file for your platform. If you're not sure which to choose, learn more about installing packages.
Source Distributions
No source distribution files available for this release.See tutorial on generating distribution archives.
Built Distribution
pydeps-0.9.7-py2-none-any.whl
(24.7 kB
view details)
File details
Details for the file pydeps-0.9.7-py2-none-any.whl
.
File metadata
- Download URL: pydeps-0.9.7-py2-none-any.whl
- Upload date:
- Size: 24.7 kB
- Tags: Python 2
- Uploaded using Trusted Publishing? No
File hashes
Algorithm | Hash digest | |
---|---|---|
SHA256 | 5bf4323f6e362f43298844e136697aa697e1ba66e7f2d1237bb51598e0da4b66 |
|
MD5 | b13b515962de96ed59c87e9f29e7ebf4 |
|
BLAKE2b-256 | f398670b7bac5235cb7cc5ea91697376ce2d7269f6b4cce53634cdc9195eb619 |