carocad/CodeInk

View on GitHub
README.rst

Summary

Maintainability
Test Coverage
=======
CodeInk
=======
.. image:: https://img.shields.io/badge/license-Apache%202.0-blue.svg
    :alt: LICENSE
    :target: LICENSE
    
.. image:: https://travis-ci.org/carocad/CodeInk.svg?branch=master
    :target: https://travis-ci.org/carocad/CodeInk

.. image:: https://coveralls.io/repos/carocad/CodeInk/badge.svg?branch=master
  :target: https://coveralls.io/r/carocad/CodeInk?branch=master
  
.. image:: https://codeclimate.com/github/carocad/CodeInk/badges/gpa.svg
   :target: https://codeclimate.com/github/carocad/CodeInk
   :alt: Code Climate

CodeInk is a Python source code analyzer focused on complexity and interrelation of modules.

CodeInk draws the ihnerent relations of your modules along with their complexity and
maintanability indexes in a beautiful graph powered by D3.js.

.. image:: https://raw.githubusercontent.com/carocad/CodeInk/master/radon_art.png
    :alt: drawing of radon v1.2

- drawing of radon v1.2
- hover over a rounded rectangle to check which module is it

o.O?
----

the animations that CodeInk creates are base on:

* symbols: ``squares = modules``, ``circle = Python``, ``cross = target module``, ``class = diamond``, ``function = triangle-up``, ``method = triangle-down``
* lines: each line represents an import
* color: module maintainability index ``green = :)`` --> ``red = :(``
* size: ciclomatic complexity ``small = :)`` --> ``big = :(``

*hint: if A imports B, and B imports C, then A imports B and C, right?*
A --> B, B --> C, A --> B & C

install
=======
with pip::

    pip install codeink
    
manually::

    git clone https://github.com/carocad/CodeInk.git
    python3 setup.py install

usage
=====

draw a package structure::

    codeink draw /path/to/project

trace a module's imports::

    codeink trace /path/to/module.py

check who imports a module::

    codeink blame /path/to/module.py

get an overview of a module::

    codeink portrait /path/to/module.py

requirements
============
* python v2.6 - v3.4
* `docopt v0.6.2 <https://pypi.python.org/pypi/docopt>`_
* `networkx v1.9.1 <https://pypi.python.org/pypi/networkx/1.9.1>`_
* `radon v1.2 <https://pypi.python.org/pypi/radon/1.2.1>`_
* `astunparse v1.2 <https://pypi.python.org/pypi/astunparse/1.2.2>`_
* `D3.js <http://d3js.org>`_ (used automatically in the html head)

notes
=====
In order to use CodeInk you must make sure that your python version uses the same syntax as the code that you are analyzing i.e. analyzing a code written with Python v2.7 syntax while using Python v3.x will result in an error.