With this command you can calculate the maintainability index for your whole project.
In your settings you have to add a dictionary called `RADON_MI_SETTINGS`. It could be like this:
```python
RADON_MI_SETTINGS = {
'paths': ['projectname'],
'exclude': 'projectname/some_app/some_file.py',
'ignore': 'migrations,tests',
}
```
I had to add following packages:
```
radon==3.0.1
progress==1.5
plotly==3.7.0
GitPython==2.1.11
```
Following commands are available:
* `python manage.py calculate_maintainability_index`
Only display the maintainability index of the project. The average from every file is build by using the logical lines of code per file.
* `python manage.py calculate_maintainability_index --init`
Go through every commit filtered by their commit_message (is set to “bump version” currently) and calculate the maintainability index for the whole project. This creates a file with the history.
* `python manage.py calculate_maintainability_index --showhistory`
Display the history of the maintainability_index in a graph in your browser.
* `python manage.py calculate_maintainability_index --commit`
Calculate the current maintainability_index and append it to your history. Commit your edited history file.
* `python manage.py calculate_maintainability_index --fail`
Calculate the current maintainability_index and raise an Error, if it is lower than the last entry in your history. Useful for use in an automated pipeline.
Hints:
* radon has a problem with large lists and dictionaries. If you have a file with a list or dictionary with more than 100 entries, you should exclude it.
* To initialize your history you should change the commitmessage filter to something, that suits your needs.
Created by Martin Becker at [Jonas und der Wolf GmbH](https://www.jonasundderwolf.de)
- django
- command
- git
- maintainability