[Date Prev][Date Next] [Thread Prev][Thread Next] [Date Index] [Thread Index]

Bug#510350: ITP: snakefood -- Python dependency grapher

Package: wnpp
Severity: wishlist
Owner: Sandro Tosi <morph@debian.org>

* Package name    : snakefood
  Version         : 1.3.1
  Upstream Author : Martin Blais <blais@furius.ca>
* URL             : http://furius.ca/snakefood/
* License         : GPL2+
  Programming Lang: Python
  Description     : Python dependency grapher

 Generate dependency graphs from Python code. This dependency tracker
 package has a few distinguishing characteristics:
  * It uses the AST to parse the Python files. This is very reliable,
    it always runs.
  * No module is loaded. Loading modules to figure out dependencies is
    almost always problem, because a lot of codebases run
    initialization code in the global namespace, which often requires
    additional setup. Snakefood is guaranteed not to have this problem
    (it just runs, no matter what).
  * It works on a set of files, i.e. you do not have to specify a
    single script, you can select a directory (package or else) or a
    set of files. It finds all the Python files recursively
  * Automatic/no configuration: your PYTHONPATH is automatically
    adjusted to include the required package roots. It figures out the
    paths that are required from the files/directories given as
    input. You should not have to setup ANYTHING.
  * It does not have to automatically 'follow' dependencies between
    modules, i.e. by default it only considers the files and
    directories you specify on the command-line and their immediate
    dependencies. It also has an option to automatically include only
    the dependencies within the packages of the files you specify.
  * It follows the UNIX philosophy of small programs that do one thing
    well: it consists of a few simple programs whose outputs you
    combine via pipes. Graphing dependencies always requires the user
    to filter and cluster the filenames, so this is appropriate. You
    can combine it with your favourite tools, grep, sed, etc.

Reply to: