SCM mining utility classes
Mine your SCM for insight on your software. A work of love inspired by Adam Tornhill’s books.
Code metrics is a simple Python module that leverage pandas and your source control management (SCM) tool togenerate insight on your code base.
- pandas: for data munching.
- lizard: for code complexity calculation.
- cloc.pl (script): for line counts from cloc
- For now, only Subversion and git are supported.
To install codemetrics, simply use pip:
pip install codemetrics
This is a simple tool that makes it easy to retrieve information from your Source Control Management (SCM) repository and hopefully gain insight from it.
import codemetrics as cm import cm.git log_df = cm.get_git_log() ages_df = cm.get_ages(log_df)
To retrieve the number of lines changed by revision with Subversion:
import codemetrics as cm import cm.git log_df = cm.get_svn_log().set_index(['revision', 'path']) log_df.loc[:, ['added', 'removed']] = log_df.reset_index().\ groupby('revision').\ apply(cm.svn.get_diff_stats, chunks=False)
Licensed under the term of MIT License. See attached file LICENSE.txt.
- Fixed incorrect usage of subprocess.run(). See https://github.com/elmotec/codemetrics/issues/1.
- Factored common logic between git and svn. Bug fixes.
- Fixed test_core following https://github.com/pandas-dev/pandas/pull/24748 (Pandas 0.25.X)
- Added script cm_func_stats that generates statistics on the function passed as argument.
- Added appveyor support for Windows.
- Fixed retrieval of added and removed lines when there are spaces in a file name.
- Fixed indexed input in get_mass_changes.
- Fixed handling of removed files in svn.get_diff_stats.
- Fixed handling of branches in svn.get_diff_stats.
- Started changing interfaces to leverage apply and groupby.
- Added lines added/removed for Subversion.
- Added svn.get_diff_stats to retrieve line changes stats per diff.
- Integrated lizard to calculate average and function level cyclomatic complexity.
- Function oriented interface.
- Visualization via Vega, Altair.
- Alpha work.
- First release on PyPI.
Release history Release notifications
Download the file for your platform. If you're not sure which to choose, learn more about installing packages.
|Filename, size||File type||Python version||Upload date||Hashes|
|Filename, size codemetrics-0.9.6.tar.gz (55.4 kB)||File type Source||Python version None||Upload date||Hashes View|