Skip to main content

Clinic Opinionated Codebase Oversight and Analysis

Project description

Clinic Opinionated Codebase Oversight and Analysis

Cocoa Error Analysis

Pre-commit

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 goal 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

This package depends on ruff being available in your environment.

python3 -m pip install dsi-cocoa ruff==0.4.10

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

Options

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

cocoa /path/to/repo --verbose

Cocoa evaluates the main branch by default. To evaluate a different branch, use the branch argument:

cocoa /path/to/repo --branch branch-name

To evaluate files created or modified after a certain date, use the date option:

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

All options can be combined like so:

cocoa /path/to/repo --verbose --branch <branch-name> --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

There is a Github action located here that runs cocoa on pushes to the main branch. The action has an associated badge that can be displayed at the top of your repo to show passing or failing status. The badge code can be copied from the raw text of this readme.

To override the --date or --branch options run in the action, create an environment named "cocoa_standards" in your repository, then create environment variables called BRANCH_NAME and REVIEW_AFTER_DATE.

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.5.8.tar.gz (14.1 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.5.8-py3-none-any.whl (10.3 kB view details)

Uploaded Python 3

File details

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

File metadata

  • Download URL: dsi_cocoa-0.5.8.tar.gz
  • Upload date:
  • Size: 14.1 kB
  • Tags: Source
  • Uploaded using Trusted Publishing? Yes
  • Uploaded via: twine/5.1.0 CPython/3.12.4

File hashes

Hashes for dsi_cocoa-0.5.8.tar.gz
Algorithm Hash digest
SHA256 6f8dd52f5f08e51da7e7bb8b23e4ff6eb9411623ba06433c1a7a7d695e45d01d
MD5 195c99ceeae2e2298d36b22280ef27e3
BLAKE2b-256 d202443db7bc90fad472dc83222df3ebf2b719022ca752b3488a50486c8a363d

See more details on using hashes here.

File details

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

File metadata

  • Download URL: dsi_cocoa-0.5.8-py3-none-any.whl
  • Upload date:
  • Size: 10.3 kB
  • Tags: Python 3
  • Uploaded using Trusted Publishing? Yes
  • Uploaded via: twine/5.1.0 CPython/3.12.4

File hashes

Hashes for dsi_cocoa-0.5.8-py3-none-any.whl
Algorithm Hash digest
SHA256 6e5c4a70351a8567c46c08c2d8175a8bdcdd9edf600dca89c383a7b5dc4e3ab7
MD5 564ddb2f2d7a7292c810b904a5272146
BLAKE2b-256 9fd0bf7b827d34ec21af7068f8f00c30afcb08a76af1c7f12380906b60af47c3

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