Metadata-Version: 2.0
Name: archan
Version: 1.0.0
Summary: A Python module that analyses your achitecture strength based on DSM data.
Home-page: https://github.com/Pawamoy/archan
Author: Timothee Mazzucotelli
Author-email: timothee.mazzucotelli@gmail.com
License: MPL 2.0
Platform: UNKNOWN
Classifier: Development Status :: 5 - Production/Stable
Classifier: Intended Audience :: Developers
Classifier: License :: OSI Approved :: Mozilla Public License 2.0 (MPL 2.0)
Classifier: Operating System :: Unix
Classifier: Operating System :: POSIX
Classifier: Operating System :: Microsoft :: Windows
Classifier: Programming Language :: Python
Classifier: Programming Language :: Python :: 2.7
Classifier: Programming Language :: Python :: 3
Classifier: Programming Language :: Python :: 3.3
Classifier: Programming Language :: Python :: 3.4
Classifier: Programming Language :: Python :: 3.5
Classifier: Programming Language :: Python :: Implementation :: CPython
Classifier: Programming Language :: Python :: Implementation :: PyPy
Classifier: Topic :: Utilities

========
Overview
========



A Python module that analyses your achitecture strength based on DSM data.

Archan is a Python module that analyzes the strength of your
project architecture according to some criteria described in
"`The Protection of Information in Computer Systems`_", written by
Jerome H. Saltzer and Michael D. Schroeder.

.. _The Protection of Information in Computer Systems : https://www.cs.virginia.edu/~evans/cs551/saltzer/

Archan is used in combination with `dependenpy`_ in the Django app called
`django-meerkat`_.

.. _dependenpy: https://github.com/Pawamoy/dependenpy
.. _django-meerkat: https://github.com/Pawamoy/django-meerkat


License
=======

Software licensed under `MPL 2.0`_ license.

.. _BSD-2 : https://opensource.org/licenses/BSD-2-Clause
.. _MPL 2.0 : https://www.mozilla.org/en-US/MPL/2.0/

Installation
============

Just run ``pip install archan``.

Usage
=====

Archan takes a dependency matrix as parameter. It is a list of list of
numeric values, representing the dependencies between the packages
that are used in your project. It also needs the keys (one string for each
row of the matrix), and their associated
group type.

In django-meerkat, these data are provided by the dependenpy Python module,
but you can build and use your own:

.. code:: python

    from archan.dsm import DesignStructureMatrix
    from archan.checker import Archan

    my_matrix = [[0, 1, 2, 0],
                 [1, 1, 1, 0],
                 [0, 0, 0, 3],
                 [3, 3, 0, 1]]

    my_keys = ['core', 'some_app', 'whatever', 'feature']
    my_groups = ['core_lib', 'app_module', 'app_module', 'app_module']

    my_dsm = DesignStructureMatrix(my_groups, my_keys, my_matrix)
    archan = Archan()
    results = archan.check(dsm)
    print(results)


Documentation
=============

https://github.com/Pawamoy/archan.wiki

Development
===========

To run all the tests: ``tox``

=========
Changelog
=========

0.1.0 (2016-10-06)
==================

* Alpha release on PyPI.


