Skip to main content

PyCodemark – a full-featured code review tool for Python.

Project description

PyCodemark

PyPI version Python Version License Build


Overview

PyCodemark is a full-featured Python code review tool that automatically detects style issues, missing docstrings, and other code quality problems.
It supports terminal, JSON, and SARIF output for CI/CD integration and is extensible via plugins.


Features

  • Detect missing docstrings, PEP8 violations, and clarity issues
  • JSON and SARIF output for CI pipelines
  • Plugin system for custom checks
  • Pre-commit integration
  • Configurable via pyproject.toml
  • Works with Python 3.13+

Installation

Clone the repository:

git clone https://github.com/roshanguptamca/pycodemark.git
cd pycodemark

Create a Python 3.13 virtual environment:

python3.13 -m venv venv 
source venv/bin/activate
poetry install

Quick Start

Quick Start with PyCodemark

PyCodemark is a full-featured Python code review tool that detects style issues, missing docstrings, and other code quality problems. It supports terminal, JSON, and SARIF output for CI integration.

Installation

Install PyCodemark via pip:

pip install pycodemark

Or with Poetry:

poetry add pycodemark 

poetry run pycodemark review src/
poetry run  pycodemark review src/ --format json
poetry run pycodemark review src/ --format sarif  

Run a basic code review:

pycodemark review src/
pycodemark review src/ --format json
pycodemark review src/ --format sarif    

Environment Variables

PyCodemark requires an OpenAI API key to perform AI-powered smart code reviews. You can also optionally specify which OpenAI model to use.

  1. OpenAI API Key

Set your API key as an environment variable:

export OPENAI_API_KEY="sk-xxxxxxxxxxxxxxxxxxxxxxxx" 

This is required for the smart-review command.

The tool will use this key to authenticate with the OpenAI API.

You can obtain your key from OpenAI API Keys 2.Optional: Specify AI Model

By default, PyCodemark uses the gpt-5 model for smart reviews. You can override it with the environment variable CODEMARK_MODEL:

export CODEMARK_MODEL="gpt-5" 

If not set, gpt-5 will be used automatically. You can specify any OpenAI chat-capable model available to your account. Example models: gpt-5, gpt-5.1, gpt-4, gpt-4-32k.

Quick Example:

export OPENAI_API_KEY="sk-xxxx"
export CODEMARK_MODEL="gpt-5"

# Run AI-powered review
pycodemark smart-review src/

Any issues detected by the AI will appear in the terminal table, JSON, or SARIF output depending on the chosen --format.

If your quota is exceeded or the API fails, the tool will log the error in the report.

  1. Security Tips Do not commit your API key to version control. Store keys securely in environment variables or secret managers. You can also use .env files with tools like direnv or python-dotenv.

Plugins Extend PyCodemark by adding custom checks under src/codemark/plugins/. Each plugin must implement: ```python` def run(file_path, config): """Return a list of issues detected in the file.""" return []

Pre-commit Integration

Add to your .pre-commit-config.yaml:
```yaml repos:
  - repo: local
    hooks:
      - id: codemark
        name: codemark-review
        entry: codemark review --format terminal
        language: system
        types: [python]     
```

Then run:
```bashpre-commit install
```pre-commit install

CI/CD Integration (GitHub Actions)

You can integrate PyCodemark in CI pipelines with SARIF reporting. Example workflow file: .github/workflows/codemark.yml

Runs PyCodemark on every push or pull request

Uploads SARIF results to GitHub for code scanning

Provides automated code quality checks

Configuration

Configure PyCodemark via pyproject.toml:

[tool.pycodemark]
max_line_length = 88
rules = ["PEP8", "clarity", "docstrings"]
exclude = ["tests/", "migrations/"]

Makefile Commands:

  • make lint: Run code linting
  • make venv # Create virtual environment
  • make install # Install dependencies via Poetry
  • make build # Build package
  • make test # Run tests
  • make lint # Run linter
  • make lint-fix # Automatically fix lint issues
  • make review # Run terminal review
  • make review-json # Run review with JSON output
  • make review-sarif # Run review with SARIF output
  • make publish # Publish to PyPI

Download Documentation: PDF HTML

License

MIT License © Roshan Gupta

---

If you want, I can also provide a **one-liner command** so you can generate this README automatically on your Mac without manually copying it.  

Do you want me to do that next?

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

pycodemark-0.4.1.tar.gz (9.7 kB view details)

Uploaded Source

Built Distribution

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

pycodemark-0.4.1-py3-none-any.whl (11.7 kB view details)

Uploaded Python 3

File details

Details for the file pycodemark-0.4.1.tar.gz.

File metadata

  • Download URL: pycodemark-0.4.1.tar.gz
  • Upload date:
  • Size: 9.7 kB
  • Tags: Source
  • Uploaded using Trusted Publishing? No
  • Uploaded via: poetry/2.1.3 CPython/3.13.5 Darwin/25.0.0

File hashes

Hashes for pycodemark-0.4.1.tar.gz
Algorithm Hash digest
SHA256 e22db19c689a5dfa2cbb1ff83d7283d4b3aee77a6dbbbbbc3fecd3a938cdf99f
MD5 04693c7309bf3b563b22640c5dc90abf
BLAKE2b-256 3e513db9d73c2d55d39688ac8128f84f89970053bf3ad13aaf53397376359739

See more details on using hashes here.

File details

Details for the file pycodemark-0.4.1-py3-none-any.whl.

File metadata

  • Download URL: pycodemark-0.4.1-py3-none-any.whl
  • Upload date:
  • Size: 11.7 kB
  • Tags: Python 3
  • Uploaded using Trusted Publishing? No
  • Uploaded via: poetry/2.1.3 CPython/3.13.5 Darwin/25.0.0

File hashes

Hashes for pycodemark-0.4.1-py3-none-any.whl
Algorithm Hash digest
SHA256 f3f5bd3af53df0e1341a83d3283290c30ca9d69b85262842060d354e3a3be154
MD5 4ef4048c390e5e8140ccd30104bf6b7a
BLAKE2b-256 4f59ff083083ee1da668367f402bedea12bee5a498d3b02a22060357a0bab4ea

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