This is a pre-production deployment of Warehouse. Changes made here affect the production instance of PyPI (pypi.python.org).
Help us improve Python packaging - Donate today!
Project Description

# pycflow2dot

## Summary

Draw call graphs for C source codes using dot and cflow. Typeset PDF with a page per source file and clickable cross-file function references.

cflow2dot -i hello_simple.c -f png produces:

![](https://raw.githubusercontent.com/johnyf/binaries/master/pycflow2dot/hello_simple.png)

from [hello_simple.c](https://github.com/johnyf/pycflow2dot/blob/master/examples/simple/hello_simple.c).

## Description

Draw the call graph of C source code using [cflow](http://en.wikipedia.org/wiki/GNU_cflow) and [dot](http://www.graphviz.org/). Output to LaTeX, .dot, .PDF, .SVG, .PNG and from dot to all formats supported from it. The LaTeX output is obtained by including the SVG via [Inkscape](http://inkscape.org/)’s LaTeX [export](http://mirror.math.ku.edu/tex-archive/info/svg-inkscape/InkscapePDFLaTeX.pdf) functionality.

Multi-file sources are converted to multiple SVG files, one for each source. These contain links using the LaTeX package [hyperref](http://ctan.org/pkg/hyperref), so that after compilation one can click on the name of a function call and be taken to its definition, even if that definition is in another page of the PDF, because the function is defined in another source file than the one corresponding to the current PDF page.

Note that if a file containing the definition is missing, then the hyperref link is omitted, so that no dead links result after compiling with LaTeX. This might be the case of for example the file with the definitions is available, but is not passed to pycflow2dot, e.g., for the purpose of focusing on a subset of the sources.

For now the LaTeX result has to be manually compiled, though this extra step will be automated in the future. Multi-SVG export will still be available, so that the results can be included in a larger document, e.g., a report.

PyCflow2dot is a Python port of the Perl script cflow2dot. Tested with Python 3.2 (NetworkX not yet available in 3.3.).

## Installation

Use [pip](https://en.wikipedia.org/wiki/Pip_%28package_manager%29) with Python 3 or 2:

pip install pycflow2dot

You also need to install the following non-Python dependencies:

Optionally, [cpp](http://en.wikipedia.org/wiki/C_preprocessor) too.

## License

PyCflow2dot is licensed under the GNU GPL v3.

Release History

Release History

0.2.1

This version

History Node

TODO: Figure out how to actually get changelog content.

Changelog content for this version goes here.

Donec et mollis dolor. Praesent et diam eget libero egestas mattis sit amet vitae augue. Nam tincidunt congue enim, ut porta lorem lacinia consectetur. Donec ut libero sed arcu vehicula ultricies a non tortor. Lorem ipsum dolor sit amet, consectetur adipiscing elit.

Show More

0.2

History Node

TODO: Figure out how to actually get changelog content.

Changelog content for this version goes here.

Donec et mollis dolor. Praesent et diam eget libero egestas mattis sit amet vitae augue. Nam tincidunt congue enim, ut porta lorem lacinia consectetur. Donec ut libero sed arcu vehicula ultricies a non tortor. Lorem ipsum dolor sit amet, consectetur adipiscing elit.

Show More

Download Files

Download Files

Download the file for your platform. If you're not sure which to choose, learn more about installing packages.

File Name & Checksum SHA256 Checksum Help Version File Type Upload Date
pycflow2dot-0.2.1.tar.gz (7.6 kB) Copy SHA256 Checksum SHA256 Source Mar 9, 2017

Supported By

WebFaction WebFaction Technical Writing Elastic Elastic Search Pingdom Pingdom Monitoring Dyn Dyn DNS Sentry Sentry Error Logging CloudAMQP CloudAMQP RabbitMQ Heroku Heroku PaaS Kabu Creative Kabu Creative UX & Design Fastly Fastly CDN DigiCert DigiCert EV Certificate Rackspace Rackspace Cloud Servers DreamHost DreamHost Log Hosting