Skip to main content

Clinic Opinionated Codebase Oversight and Analysis

Project description

Clinic Opinionated Codebase Oversight and Analysis

Cocoa Error Analysis

This repository was developed in order to generate automated reports on how well codebases adhere to the coding standards of the University of Chicago's DSI Clinic course.

The goals of this codebase is to provide a quick and easy way to review code and to alert contributors where their code may be failing.

Installation

pip install dsi-cocoa

To install the package locally, run the following command from the root of the repository:

python3 -m pip install .

cocoa

This package contains a module evaluate_repo which runs code testing libraries against a repository. There are multiple ways that we want to be able to run this repo:

  1. We want to be able to clone cocoa and then use it as part of their process.
  2. We want administrators to be able to give it a list of repos to generate reports on all repos.
  3. (Eventually) We want it to be able to run as a github action on the repo itself.
  4. (Eventually) We want to be able to have adminstrative repo that can run it on other repos.

How to run

Via command line:

cocoa /path/to/repo

As a python script:

python3 src/cocoa/evaluate_repo.py /path/to/repo

As a Python module:

from cocoa.evaluate_repo import evaluate_repo

evaluate_repo('/path/to/repo', False)

A few important notes:

  1. Make sure to git pull before running this code.
  2. This will get branch information for all branches.
  3. This will only run the analysis (pyflakes on python files) for the code in the current branch. So if you run this while your current branch is main it will run on main.

Options

If you want to turn on linting, add the argument "--lint":

cocoa /path/to/repo --lint

Results are truncated by default. To print all results, use the verbose option:

cocoa /path/to/repo --verbose

If files modified/created only after a certain date are to be evaluated then use the date option:

cocoa /path/to/repo --date "YYYY-MM-DD"

Note: Please add date string in "YYYY-MM-DD" format.

All options can be combined like so:

cocoa /path/to/repo --lint --verbose --date "YYYY-MM-DD"

Checks

The code run multiple checks on each repo. For each check run there are three possibilities:

  1. WARNING: Most likely this needs to be fixed.
  2. INFO: Log information for additional context.
  3. ERROR: A critical issue that needs to be addressed.

For each of the checks below we have denoted what the check generates.

  • Branch Hygiene:
    • [WARNING] Branch names
    • [INFO] Commit information for live branches.
  • File Hygiene:
    • [ERROR] Unnecessary and cache file (such as .DS_Store or pycache files)
  • Notebook Files (*.ipynb):
    • [ERROR] Cells per notebook < 10, lines per cell < 15 and 0 functions defined
    • [ERROR] Linting: PyLint, Black, Flake and iSort
  • Python Files
    • [ERROR] All Code in Functions
    • [ERROR] All functions have docstrings
    • [ERROR] Code uses off-limit libraries (subprocess)
    • [ERROR] Linting: PyLint, Black, Flake and iSort

Github actions

For each of the ERRORS and WARNINGS above there is an associated github action that can be run to create a badge which we put in a table at the top of each clinic repo.

Project details


Download files

Download the file for your platform. If you're not sure which to choose, learn more about installing packages.

Source Distribution

dsi_cocoa-0.4.7.tar.gz (15.4 kB view details)

Uploaded Source

Built Distribution

If you're not sure about the file name format, learn more about wheel file names.

dsi_cocoa-0.4.7-py3-none-any.whl (11.8 kB view details)

Uploaded Python 3

File details

Details for the file dsi_cocoa-0.4.7.tar.gz.

File metadata

  • Download URL: dsi_cocoa-0.4.7.tar.gz
  • Upload date:
  • Size: 15.4 kB
  • Tags: Source
  • Uploaded using Trusted Publishing? Yes
  • Uploaded via: twine/5.0.0 CPython/3.12.3

File hashes

Hashes for dsi_cocoa-0.4.7.tar.gz
Algorithm Hash digest
SHA256 fa82828f5b70202689c60e5f4fe0ec48a949fcb7e2532a0295fb720f941fe4cb
MD5 ceeed4b8d8b9bd1b0f605c794b40bc84
BLAKE2b-256 1cabd7543c1e86a0260a274b3c3274643b787754afd97ee169b7d39966b20b4a

See more details on using hashes here.

File details

Details for the file dsi_cocoa-0.4.7-py3-none-any.whl.

File metadata

  • Download URL: dsi_cocoa-0.4.7-py3-none-any.whl
  • Upload date:
  • Size: 11.8 kB
  • Tags: Python 3
  • Uploaded using Trusted Publishing? Yes
  • Uploaded via: twine/5.0.0 CPython/3.12.3

File hashes

Hashes for dsi_cocoa-0.4.7-py3-none-any.whl
Algorithm Hash digest
SHA256 c3c698b485496cb2b7fad55c4fe60796b50ddc80b80f496d1c6f0fd1fca8256f
MD5 b5efa4df791e36bd385b9e9867f4dd7c
BLAKE2b-256 ddfd015c9ab5a2a050490a33dc5b6b76b470a71b2f02809c8d588e9fec45ed79

See more details on using hashes here.

Supported by

AWS Cloud computing and Security Sponsor Datadog Monitoring Depot Continuous Integration Fastly CDN Google Download Analytics Pingdom Monitoring Sentry Error logging StatusPage Status page