Skip to main content

Ciqar

Ciqar is a tool for creating useful and (at least somewhat) pretty HTML reports from different code quality analyzers output in case the analyzers do not provide sufficient report or you want a uniform style. The report is generated from a Jinja template so that it can be customized. At the moment, MyPy and Pyright are supported as analyzers.

The name is made up from how we pronounced the earliest project name cqr (which is the abbreviation for code quality reports) as a word. Do not confuse it with Cigar 😉

Have a look at two HTML reports for Ciqar version 0.1.0 (some violations were added purposely 😉):

Build status

Installation

Ciqar releases are available on PyPI, so you can easily install it via pip:

pip install ciqar

Alternatively you can install from source code:

cd /path/to/ciqar/source
pip install -e .

Usage

Tell Ciqar the location of the analyzer output and the paths to search for source files. The search path configuration is usually the same as for your static code analyzer.

ciqar --analyzer-result mypy:/path/to/mypy.log --source /path/to/src/dir --output /path/to/destination/dir

The "Analyzer result URL" (--analyzer-result) is a URL string with the scheme part defining which code analyzer has been used and the path containing the path to result data. The kind of the path object (e.g. directory or file, file type) depends on the chosen analyzer. Currently supported analyzers:

Analyzer URL Scheme URL path
MyPy "mypy" Single file with the stdout output of the MyPy run.
Pyright "pyright" Single JSON file generated by pyright --outputjson.
ruff "ruff" Single JSON file generated by ruff --output-format json.

--source may be provided several times to search more than one directory. In addition (or alternatively) it is also possible to exclude files or directories from the configured search paths with the --exclude option, which may also be provided several times:

ciqar --source /path/to/src/dir --exclude /path/to/src/dir/examples --exclude /path/to/src/dir/snippet.py --analyzer-result [...] --output [...]

The --output option simply defines the directory to write the report into. Any existing files will be overwritten.

The optional --template parameter defines the report template to use, allowing to generate different kinds of reports. The template name must be specified by its name:

ciqar -r mypy:mypy.log -s src -o output -t html_detailed

At the moment the following report templates are available:

Template name Description
html_detailed Detailed HTML report including file lists, rule list and source code listings.
html_singlepage More compact, single-page HTML report listing all violations.

Examples (run from the repository root)

Create MyPy report for Ciqar:

mypy --config-file mypy.ini src test | tee mypy.log
ciqar -r mypy:mypy.log -s src -s test -o report-mypy

Create Pyright report for Ciqar:

pyright --outputjson src test > pyright.json
ciqar -r pyright:pyright.json -s src -s test -o report-pyright

Create ruff report for Ciqar:

ruff check src/ test/ --output-format json > ruff.json
ciqar -r ruff:ruff.json -s src -s test -o report-ruff

Some hints

For MyPy reports, it is necessary to set hide_error_codes = False in the config (which is default).

Release files for ciqar 1.1.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 ciqar 1.1.0
File Size Uploaded
ciqar-1.1.0.tar.gz 60.0 kB Details

Built distribution (wheel)

Table of built distributions (wheels) for ciqar 1.1.0
File Interpreter ABI Platform
ciqar-1.1.0-py3-none-any.whl Python 3 none any Details

Total release size: 108.1 kB

Release files / ciqar-1.1.0.tar.gz

Download URL ciqar-1.1.0.tar.gz
Size 60.0 kB
Tags Source
SHA-256 checksum
How to use checksums
967936b0bb5b8d8bb8848dea695bd59dc720dd8306d1e087b996e18b53a275b9
BLAKE2b-256 checksum
How to use checksums
cc5231eeb4e470dde268426076732ce477c14ef5017ddf158727fd17644ff25a
Upload date
Uploaded using Trusted Publishing?
What is trusted publishing?
No
Uploaded via python-requests/2.32.3

Release files / ciqar-1.1.0-py3-none-any.whl

Download URL ciqar-1.1.0-py3-none-any.whl
Size 48.1 kB
Tags Python 3
SHA-256 checksum
How to use checksums
29df8919599f9d919dae4dbe208a191d5d9f7575f8ab223bcdee01f21db3f25a
BLAKE2b-256 checksum
How to use checksums
8966bdab7605033398a4b2adbd65b01953b7a736b32a2dfbb1b68fa0bc31e431
Upload date
Uploaded using Trusted Publishing?
What is trusted publishing?
No
Uploaded via python-requests/2.32.3

Release history Release notifications | RSS feed

This release

1.1.0 This release

2 release files

1.0.0

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