{ "info": { "author": "elmotec", "author_email": "elmotec@gmx.com", "bugtrack_url": null, "classifiers": [ "Development Status :: 4 - Beta", "Environment :: Console", "Intended Audience :: Developers", "Intended Audience :: Education", "License :: OSI Approved :: MIT License", "Natural Language :: English", "Programming Language :: Python :: 3.6", "Programming Language :: Python :: 3.7", "Topic :: Software Development", "Topic :: Software Development :: Version Control", "Topic :: Utilities" ], "description": ".. image:: https://img.shields.io/pypi/v/codemetrics.svg\n :target: https://pypi.python.org/pypi/codemetrics/\n :alt: PyPi version\n\n.. image:: https://img.shields.io/pypi/pyversions/codemetrics.svg\n :target: https://pypi.python.org/pypi/codemetrics/\n :alt: Python compatibility\n\n.. image:: https://img.shields.io/travis/elmotec/codemetrics/master?label=Travis\n :target: https://travis-ci.org/elmotec/codemetrics\n :alt: Travis master status\n\n.. image:: https://img.shields.io/appveyor/ci/elmotec/codemetrics/master?label=AppVeyor\n :target: https://ci.appveyor.com/project/elmotec/codemetrics\n :alt: AppVeyor master status\n\n.. image:: https://img.shields.io/librariesio/release/pypi/codemetrics.svg?label=libraries.io\n :alt: Libraries.io dependency status for latest release\n :target: https://libraries.io/pypi/codemetrics\n\n.. image:: https://img.shields.io/readthedocs/codemetrics.svg\n :target: https://codemetrics.readthedocs.org/\n :alt: Documentation\n\n.. image:: https://coveralls.io/repos/elmotec/codemetrics/badge.svg\n :target: https://coveralls.io/r/elmotec/codemetrics\n :alt: Coverage\n\n.. image:: https://img.shields.io/codacy/grade/dd4a11eb66674b3bbe518d8f829b6234.svg\n :target: https://www.codacy.com/app/elmotec/codemetrics/dashboard\n :alt: Codacy\n\n\n===========\ncodemetrics\n===========\n\nMine your SCM for insight on your software. A work of love\ninspired by `Adam Tornhill`_'s books.\n\nCode metrics is a simple Python module that leverage pandas and your source control management (SCM) tool togenerate\ninsight on your code base.\n\n- pandas_: for data munching.\n- lizard_: for code complexity calculation.\n- cloc.pl (script): for line counts from cloc_\n- For now, only Subversion and git are supported.\n\n\nInstallation\n------------\n\nTo install codemetrics, simply use pip:\n\n::\n\n pip install codemetrics\n\n\n\nUsage\n-----\n\nThis is a simple tool that makes it easy to retrieve information from your\nSource Control Management (SCM) repository and hopefully gain insight from it.\n\n::\n\n import codemetrics as cm\n import cm.git\n\n log_df = cm.get_git_log()\n ages_df = cm.get_ages(log_df)\n\n\nTo retrieve the number of lines changed by revision with Subversion:\n\n::\n\n import codemetrics as cm\n import cm.git\n\n log_df = cm.get_svn_log().set_index(['revision', 'path'])\n log_df.loc[:, ['added', 'removed']] = log_df.reset_index().\\\n groupby('revision').\\\n apply(cm.svn.get_diff_stats, chunks=False)\n\nSee `module documentation`_ for more advanced functions or the `example notebook`_\n\n\nLicense\n-------\n\nLicensed under the term of `MIT License`_. See attached file LICENSE.txt.\n\n\nCredits\n-------\n\n- This package was inspired by `Adam Tornhill`_'s books.\n- This package was created with Cookiecutter_.\n\n\n.. _Cookiecutter: https://github.com/audreyr/cookiecutter\n.. _lizard: https://github.com/terryyin/lizard\n.. _pandas: https://pandas.pydata.org/\n.. _cloc: http://cloc.sourceforge.net/\n.. _Pandas documentation: https://pandas.pydata.org/pandas-docs/stable/text.html\n.. _MIT License: https://en.wikipedia.org/wiki/MIT_License\n.. _Adam Tornhill: https://www.adamtornhill.com/\n.. _module documentation: https://codemetrics.readthedocs.org/\n.. _example notebook: https://github.com/elmotec/codemetrics/tree/master/notebooks\n\n\n=======\nHistory\n=======\n\n0.9.6 (2019-09-29)\n------------------\n* Fixed incorrect usage of subprocess.run(). See https://github.com/elmotec/codemetrics/issues/1.\n\n0.9.5 (2019-09-05)\n------------------\n* Factored common logic between git and svn. Bug fixes.\n\n0.9.4 (2019-09-02)\n------------------\n* Fixed test_core following https://github.com/pandas-dev/pandas/pull/24748 (Pandas 0.25.X)\n* Added script `cm_func_stats` that generates statistics on the function passed as argument.\n* Added appveyor support for Windows.\n* Documentation.\n\n0.9.3 (2019-04-01)\n------------------\n* Fixed retrieval of added and removed lines when there are spaces in a file name.\n* Fixed indexed input in `get_mass_changes`.\n* Fixed handling of removed files in `svn.get_diff_stats`.\n* Fixed handling of branches in `svn.get_diff_stats`.\n\n0.9 (2019-03-19)\n----------------\n\n* Started changing interfaces to leverage apply and groupby.\n* Added lines added/removed for Subversion.\n\n0.8.2 (2019-02-26)\n------------------\n\n* Added `svn.get_diff_stats` to retrieve line changes stats per diff.\n\n0.8 (2019-02-13)\n----------------\n\n* Integrated lizard to calculate average and function level cyclomatic complexity.\n\n0.7 (2019-01-09)\n----------------\n\n* Function oriented interface.\n* Visualization via Vega, Altair.\n* Documentation.\n\n0.6\n---\n\n* Alpha work.\n\n0.5 (2018-05-12)\n----------------\n\n* First release on PyPI.", "description_content_type": "text/x-rst", "docs_url": null, "download_url": "", "downloads": { "last_day": -1, "last_month": -1, "last_week": -1 }, "home_page": "http://github.com/elmotec/codemetrics", "keywords": "code metrics mining scm subversion svn Adam Tornhill utilities", "license": "MIT", "maintainer": "", "maintainer_email": "", "name": "codemetrics", "package_url": "https://pypi.org/project/codemetrics/", "platform": "", "project_url": "https://pypi.org/project/codemetrics/", "project_urls": { "Homepage": "http://github.com/elmotec/codemetrics" }, "release_url": "https://pypi.org/project/codemetrics/0.9.6/", "requires_dist": null, "requires_python": ">=3.6", "summary": "SCM mining utility classes", "version": "0.9.6" }, "last_serial": 5903604, "releases": { "0.5": [ { "comment_text": "", "digests": { "md5": "b78d4bb8212833da54493d8dc22995f7", "sha256": "52d4a7f65043b441748618ab5cc1bd719add711c384391748d3dc1c2e9a24956" }, "downloads": -1, "filename": "codemetrics-0.5.tar.gz", "has_sig": false, "md5_digest": "b78d4bb8212833da54493d8dc22995f7", "packagetype": "sdist", "python_version": "source", "requires_python": ">=3.6", "size": 7772, "upload_time": "2018-05-12T18:35:03", "url": "https://files.pythonhosted.org/packages/4e/ea/4db7ecdb00db21274ed57dd682104db0803adf4470139a316b70caf136dc/codemetrics-0.5.tar.gz" } ], "0.5.1": [ { "comment_text": "", "digests": { "md5": "e5c008752d97d5a09a1a470c64a80275", "sha256": "bde768f623d70f9d447bfcfee47b4673f11091d07b5a7f1257ff3d5399566886" }, "downloads": -1, "filename": "codemetrics-0.5.1.tar.gz", "has_sig": false, "md5_digest": "e5c008752d97d5a09a1a470c64a80275", "packagetype": "sdist", "python_version": "source", "requires_python": ">=3.6", "size": 8433, "upload_time": "2018-05-12T19:34:45", "url": "https://files.pythonhosted.org/packages/95/54/06634dddd5c92eecd874c764779b9925adf91c22dce6a7003f6d73447fc2/codemetrics-0.5.1.tar.gz" } ], "0.5.2": [ { "comment_text": "", "digests": { "md5": "12496af68c35426a340c69ab23cd7fbe", "sha256": "c58d3ec7bb46c54803d2c106ceb01989e8f0dfad7410b6817d0165f5776bbc3f" }, "downloads": -1, "filename": "codemetrics-0.5.2.tar.gz", "has_sig": false, "md5_digest": "12496af68c35426a340c69ab23cd7fbe", "packagetype": "sdist", "python_version": "source", "requires_python": ">=3.6", "size": 8442, "upload_time": "2018-05-12T19:40:58", "url": "https://files.pythonhosted.org/packages/c5/9f/ff0c2f96746cbb7868807184cb2fb4f53f9222891cbae42b178e3dc063d8/codemetrics-0.5.2.tar.gz" } ], "0.6": [ { "comment_text": "", "digests": { "md5": "0d6a904562cb4a0f90560a6ea1e7cca1", "sha256": "cf7e6408a8931c2ef1d4f1c0d7b865d0fb4ab58eb2ef3d5e57542ed57e841716" }, "downloads": -1, "filename": "codemetrics-0.6.tar.gz", "has_sig": false, "md5_digest": "0d6a904562cb4a0f90560a6ea1e7cca1", "packagetype": "sdist", "python_version": "source", "requires_python": ">=3.6", "size": 8644, "upload_time": "2018-05-14T01:43:20", "url": "https://files.pythonhosted.org/packages/ae/e3/f6e270cfc9fa65ef0949886f35728c3ca7bf8ea6bb9f2e3533244b412982/codemetrics-0.6.tar.gz" } ], "0.6.1": [ { "comment_text": "", "digests": { "md5": "5cdd4021488f122784616e862c66e4ad", "sha256": "b756bd85ff47bb43fd0920ffb9b532ca184318589a0accf5d91333d5d0a4d6fd" }, "downloads": -1, "filename": "codemetrics-0.6.1.tar.gz", "has_sig": false, "md5_digest": "5cdd4021488f122784616e862c66e4ad", "packagetype": "sdist", "python_version": "source", "requires_python": ">=3.6", "size": 8665, "upload_time": "2018-07-27T02:38:18", "url": "https://files.pythonhosted.org/packages/e0/c2/8dc3ac46a3541e9f4c3e8e4d74fdd70750287d4a8a95acdd8ab2c449114c/codemetrics-0.6.1.tar.gz" } ], "0.7.0": [ { "comment_text": "", "digests": { "md5": "ba38eb072b470c1e87122c3c3ff2978e", "sha256": "f49058be3a0bf37402b79be001c99bbda75f567de00f57ccc49d3b467e615d4a" }, "downloads": -1, "filename": "codemetrics-0.7.0.tar.gz", "has_sig": false, "md5_digest": "ba38eb072b470c1e87122c3c3ff2978e", "packagetype": "sdist", "python_version": "source", "requires_python": ">=3.6", "size": 30111, "upload_time": "2019-01-10T03:01:04", "url": "https://files.pythonhosted.org/packages/46/c2/36aa689a8ab5f15134fb50936a803f8e40d3f66e5ead91db35dec46ebb7e/codemetrics-0.7.0.tar.gz" } ], "0.7.1": [ { "comment_text": "", "digests": { "md5": "6506907212757ec7b7f130175016bbc7", "sha256": "07a4de6c99f7aece249b8e116f99dc8a4977a4bbe4a4191f52f7318da0603699" }, "downloads": -1, "filename": "codemetrics-0.7.1.tar.gz", "has_sig": false, "md5_digest": "6506907212757ec7b7f130175016bbc7", "packagetype": "sdist", "python_version": "source", "requires_python": ">=3.6", "size": 30543, "upload_time": "2019-01-26T15:34:59", "url": "https://files.pythonhosted.org/packages/37/f7/cd1e595ac86a4f09d296fe03f256741e15f860aff15a1482a15a033d7599/codemetrics-0.7.1.tar.gz" } ], "0.8.0": [ { "comment_text": "", "digests": { "md5": "9b19a4c9a1b52012f068124289b7efec", "sha256": "cc9b1b9856103d9743f949af91c2d45e0252023f255d91cc91ef9987794ae8a9" }, "downloads": -1, "filename": "codemetrics-0.8.0.tar.gz", "has_sig": false, "md5_digest": "9b19a4c9a1b52012f068124289b7efec", "packagetype": "sdist", "python_version": "source", "requires_python": ">=3.6", "size": 41658, "upload_time": "2019-02-14T01:41:25", "url": "https://files.pythonhosted.org/packages/7f/fc/15498982e469a7537b3ca9bacb7b787e991967412608729a25254de3a045/codemetrics-0.8.0.tar.gz" } ], "0.8.1": [ { "comment_text": "", "digests": { "md5": "f70cab1a68f93502c7364b4762f589e4", "sha256": "c88dfcfb9d4a7b127453ad496225591fe42a9eacaaeaf7da974665e269c661e5" }, "downloads": -1, "filename": "codemetrics-0.8.1.tar.gz", "has_sig": false, "md5_digest": "f70cab1a68f93502c7364b4762f589e4", "packagetype": "sdist", "python_version": "source", "requires_python": ">=3.6", "size": 43786, "upload_time": "2019-02-26T12:03:35", "url": "https://files.pythonhosted.org/packages/1f/13/c5c2785b4d043848721ae3017bd7a5f270d297b3fe3dbd4f6065912ff190/codemetrics-0.8.1.tar.gz" } ], "0.8.2": [ { "comment_text": "", "digests": { "md5": "db2a2cb3cfc11c48337404db01d4410c", "sha256": "21818e677aa3bd1d5bfcc17f5d7d4e69604d19a0671a51a501a017927b25c70e" }, "downloads": -1, "filename": "codemetrics-0.8.2.tar.gz", "has_sig": false, "md5_digest": "db2a2cb3cfc11c48337404db01d4410c", "packagetype": "sdist", "python_version": "source", "requires_python": ">=3.6", "size": 44228, "upload_time": "2019-02-28T02:55:35", "url": "https://files.pythonhosted.org/packages/e5/87/1f01ca38271c82129849a006528d71eac72030970a4f0fc449693eab9387/codemetrics-0.8.2.tar.gz" } ], "0.9.0": [ { "comment_text": "", "digests": { "md5": "337df1b8cbd0ebcfe0da98d7de42477d", "sha256": "d5b43bd10f1db9c9c0d33e1295a3d7bf6bdae3def8d4b299587e4805ee02a3ac" }, "downloads": -1, "filename": "codemetrics-0.9.0.tar.gz", "has_sig": false, "md5_digest": "337df1b8cbd0ebcfe0da98d7de42477d", "packagetype": "sdist", "python_version": "source", "requires_python": ">=3.6", "size": 46945, "upload_time": "2019-03-20T01:34:45", "url": "https://files.pythonhosted.org/packages/61/f4/eb7efedba8b873058042d2d89f0a899c35911343941f7c171b0f754297f8/codemetrics-0.9.0.tar.gz" } ], "0.9.1": [ { "comment_text": "", "digests": { "md5": "452a6924c4d6773fc489ee437c2f52e4", "sha256": "c11b311f04ae79e33f1b54e2ad7d2b2ed725d4c031ed2c7837694cca6f7434a1" }, "downloads": -1, "filename": "codemetrics-0.9.1.tar.gz", "has_sig": false, "md5_digest": "452a6924c4d6773fc489ee437c2f52e4", "packagetype": "sdist", "python_version": "source", "requires_python": ">=3.6", "size": 48826, "upload_time": "2019-03-23T20:37:55", "url": "https://files.pythonhosted.org/packages/ac/2f/d6ab42713e20ee6b7e3019194f0795821140b522df2489e9082b6206f76e/codemetrics-0.9.1.tar.gz" } ], "0.9.2": [ { "comment_text": "", "digests": { "md5": "6cc56c0e932451d3f072db391e57b914", "sha256": "49b026fd49078ab4ef2180af026733772d1f3c47d3c33525bb1db162b893fbea" }, "downloads": -1, "filename": "codemetrics-0.9.2.tar.gz", "has_sig": false, "md5_digest": "6cc56c0e932451d3f072db391e57b914", "packagetype": "sdist", "python_version": "source", "requires_python": ">=3.6", "size": 49003, "upload_time": "2019-03-29T00:52:40", "url": "https://files.pythonhosted.org/packages/05/62/b394e2af21e5c5a151219fadb14d5e8d819671eab6e8e33289e68ae541ea/codemetrics-0.9.2.tar.gz" } ], "0.9.3": [ { "comment_text": "", "digests": { "md5": "c382af7822efb093934a2ba62fa1f58d", "sha256": "d64532b2fecded93f47682d2d5a8096cf00711e86d4af69a3dd85c889ec7c639" }, "downloads": -1, "filename": "codemetrics-0.9.3.tar.gz", "has_sig": false, "md5_digest": "c382af7822efb093934a2ba62fa1f58d", "packagetype": "sdist", "python_version": "source", "requires_python": ">=3.6", "size": 49265, "upload_time": "2019-04-01T22:40:15", "url": "https://files.pythonhosted.org/packages/e6/e4/3e3e8537ae66bb1f6e2932c9713c4b2b3b41f641bd46cbc486099daccbe0/codemetrics-0.9.3.tar.gz" } ], "0.9.4": [ { "comment_text": "", "digests": { "md5": "c2acf88fdcb7de04b9a6501e637b5bef", "sha256": "87b7b6fa08cbbe80322c1adc24fec74cbb9d83e49c890b8c4f649bace13ee4a2" }, "downloads": -1, "filename": "codemetrics-0.9.4.tar.gz", "has_sig": false, "md5_digest": "c2acf88fdcb7de04b9a6501e637b5bef", "packagetype": "sdist", "python_version": "source", "requires_python": ">=3.6", "size": 53135, "upload_time": "2019-09-03T01:44:18", "url": "https://files.pythonhosted.org/packages/00/0b/5941b066e0992b83827454d695cf5cef8f011a6b267ff901479f81160e19/codemetrics-0.9.4.tar.gz" } ], "0.9.5": [ { "comment_text": "", "digests": { "md5": "ed739f946bf12b6d2bafedf5f067c04c", "sha256": "950bdce22689dfd4421c36141a55c2949ffe1219d7a970ca6a7591d8db3d4f2b" }, "downloads": -1, "filename": "codemetrics-0.9.5.tar.gz", "has_sig": false, "md5_digest": "ed739f946bf12b6d2bafedf5f067c04c", "packagetype": "sdist", "python_version": "source", "requires_python": ">=3.6", "size": 55321, "upload_time": "2019-09-06T01:14:16", "url": "https://files.pythonhosted.org/packages/67/ae/3ebd75e99116a5c089cb9c992156a01453d2a80421a9cb1bd3bb9592f448/codemetrics-0.9.5.tar.gz" } ], "0.9.6": [ { "comment_text": "", "digests": { "md5": "49792415c424c7134ccebf79e7cabb35", "sha256": "36eac826dfb411bc19ca82f8560c6e9df96c04c3b7aa501b829c105bbb275988" }, "downloads": -1, "filename": "codemetrics-0.9.6.tar.gz", "has_sig": false, "md5_digest": "49792415c424c7134ccebf79e7cabb35", "packagetype": "sdist", "python_version": "source", "requires_python": ">=3.6", "size": 55409, "upload_time": "2019-09-29T19:38:46", "url": "https://files.pythonhosted.org/packages/52/64/7a60e53e87e38ebd260089f0a9760df7841f871738962a6b65c7be3c737e/codemetrics-0.9.6.tar.gz" } ] }, "urls": [ { "comment_text": "", "digests": { "md5": "49792415c424c7134ccebf79e7cabb35", "sha256": "36eac826dfb411bc19ca82f8560c6e9df96c04c3b7aa501b829c105bbb275988" }, "downloads": -1, "filename": "codemetrics-0.9.6.tar.gz", "has_sig": false, "md5_digest": "49792415c424c7134ccebf79e7cabb35", "packagetype": "sdist", "python_version": "source", "requires_python": ">=3.6", "size": 55409, "upload_time": "2019-09-29T19:38:46", "url": "https://files.pythonhosted.org/packages/52/64/7a60e53e87e38ebd260089f0a9760df7841f871738962a6b65c7be3c737e/codemetrics-0.9.6.tar.gz" } ] }