Skip to main content

Radon CI

A Python script that uses Radon to compute Cyclomatic Complexity and Mantainability Index, and generates output files in OpenMetrics and CodeClimate format. Mainly intended to run in Gitlab CI pipelines.

Disclaimer: Source code is entirely AI-generated.

Installation

First, create a virtual environment, for example using venv:

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

Then install the package:

pip install .

Or in editable mode:

pip install -e .

Usage

To see the full list of program options, type:

radon-ci --help

Example usage:

(.venv) /path/to/radon-ci$ radon-ci --openmetrics-output metrics.txt --codeclimate-output codeclimate.json --halstead-output halstead.txt src
Code quality report
===================
Source directory    : /path/to/radon-ci/src
Python files        : 3
Code blocks         : 37
Average CC          : 3.08 (rank A)
CC threshold        : <= 10.00 [PASS]
Average MI          : 66.83 (rank A, good)
MI threshold        : >= 50.00 [PASS]
OpenMetrics file    : /path/to/radon-ci/metrics.txt
Code Climate file   : /path/to/radon-ci/codeclimate.json
Code Climate issues : 2
Halstead text file  : /path/to/radon-ci/halstead.txt
Overall status      : PASS

Halstead metrics totals
=======================
h1                 15.000000
h2                 89.000000
N1                 55.000000
N2                 105.000000
vocabulary         104.000000
length             160.000000
calculated_length  615.839053
volume             1050.094090
difficulty         8.787356
effort             8665.475894
time               481.415327
bugs               0.350031

Cyclomatic Complexity breakdown
===============================
src/radon_ci/__init__.py
src/radon_ci/__main__.py
src/radon_ci/cli.py
    F 555:0 main - C (13)
    F 445:0 build_codeclimate_issues - B (8)
    F 145:0 compute_metrics - B (7)
    F 518:0 print_summary - B (6)
    F 109:0 safe_float - A (5)
    F 303:0 block_letter_color - A (4)
    F 323:0 print_all_cc_blocks - A (4)
    F 390:0 severity_for_cc - A (4)
    F 399:0 severity_for_mi - A (4)
    F 40:0 supports_color - A (3)
    F 54:0 iter_python_files - A (3)
    F 60:0 block_letter - A (3)
    F 94:0 mi_rank - A (3)
    F 134:0 collect_blocks_by_file - A (3)
    F 251:0 build_halstead_text_output - A (3)
    F 271:0 mi_color_label - A (3)
    F 357:0 print_mi_breakdown - A (3)
    F 415:0 build_codeclimate_issue - A (3)
    F 48:0 colorize - A (2)
    F 72:0 block_display_name - A (2)
    F 121:0 empty_halstead_totals - A (2)
    F 125:0 halstead_report_to_dict - A (2)
    F 129:0 add_halstead_totals - A (2)
    F 210:0 build_openmetrics - A (2)
    F 267:0 status_label - A (2)
    F 279:0 format_score - A (2)
    F 283:0 relative_display_path - A (2)
    F 291:0 cc_score_color - A (2)
    F 297:0 mi_score_color - A (2)
    F 380:0 print_halstead_totals - A (2)
    F 410:0 fingerprint_for_issue - A (2)
    F 68:0 block_complexity - A (1)
    F 78:0 block_col_offset - A (1)
    F 82:0 build_block_record - A (1)
    F 102:0 build_file_mi_record - A (1)
    F 313:0 format_cc_rank_and_score - A (1)
    F 318:0 format_mi_rank_and_score - A (1)

Maintainability Index breakdown
===============================
src/radon_ci/__init__.py - A (100)
src/radon_ci/__main__.py - A (84.58)
src/radon_ci/cli.py - B (15.90)

Metadata

Release files for radon-ci 0.3.0

For a detailed explanation of source distributions (sdists) and built distributions (wheels), please see the package formats documentation.

Source distribution (sdist)

Source distribution for radon-ci 0.3.0
File Size Uploaded
radon_ci-0.3.0.tar.gz 17.6 kB Details

Built distribution (wheel)

Table of built distributions (wheels) for radon-ci 0.3.0
File Interpreter ABI Platform
radon_ci-0.3.0-py3-none-any.whl Python 3 none any Details

Total release size: 33.1 kB

Release files / radon_ci-0.3.0.tar.gz

Download URL radon_ci-0.3.0.tar.gz
Size 17.6 kB
Tags Source
SHA-256 checksum
How to use checksums
4052547e782d8cf28b6cd5ad1a654ed36314b1e3ea8bac971eb92caa6e6fa6b9
BLAKE2b-256 checksum
How to use checksums
f9df2ec1648857ab5454ca3d89c64e479027d961de1a64ee44c333ec4d40863c
Upload date
Uploaded using Trusted Publishing?
What is trusted publishing?
No
Uploaded via twine/6.2.0 CPython/3.13.14

Release files / radon_ci-0.3.0-py3-none-any.whl

Download URL radon_ci-0.3.0-py3-none-any.whl
Size 15.5 kB
Tags Python 3
SHA-256 checksum
How to use checksums
ad85a53c8ab6fd19cda2a1d539a05502b33a7b1843924e7db4e5d278beb30ba8
BLAKE2b-256 checksum
How to use checksums
ef0e3e95e8bccb5f33959e362ee32c6909dfc8ce611ecd64752296db63f680a3
Upload date
Uploaded using Trusted Publishing?
What is trusted publishing?
No
Uploaded via twine/6.2.0 CPython/3.13.14

Release history Release notifications | RSS feed

This release

0.3.0 This release

2 release files

0.2.0

2 release files

0.1.0

2 release files

Anthropic, PBC Visionary sponsor Bloomberg Visionary sponsor Hudson River Trading Visionary sponsor Meta Visionary sponsor NVIDIA Visionary sponsor Microsoft Sustainability sponsor Depot Continuous Integration AWS Cloud computing and Security Sponsor Datadog Monitoring Fastly CDN Google Download Analytics Sentry Error logging StatusPage Status page