Skip to main content

Convert black --diff output to a Code Climate report

Project description

black-codeclimate

PyPI version

Convert the output of black --diff to a report conforming to the Code Climate spec. It is made to be used in GitLab CI to generate a Code Quality report, which will show a nice widget in merge requests listing the file and the lines affected by the reformatting.

black-codeclimate uses unidiff to parse a diff file and detect changes, and outputs a JSON array of Code Climate issue objects reporting the filename and line range of the change. In theory it could be used on any unified diff data, but I only tested it with black --diff's output. Hit me up in the issues if you use it for anything else :)

Usage

Pipe the output of black --diff into black-codeclimate:

black --diff src/ | black-codeclimate > black_report.json

Or specify a file to use as input:

black-codeclimate black.diff > black_report.json

You can also change the severity, description and check_name of the issues in the resulting report by specifying command line flags:

black-codeclimate --severity blocker --description "would reformat [black]" --check-name "black" black.diff > black_report.json

Run black-codeclimate -h to see a list of the available flags.

Adding it to GitLab

Add this step to your .gitlab-ci.yml file:

lint:black:
  stage: lint
  before_script:
    - # Install black and black-codeclimate...
  script:
    # --check fails the job if any inconsistent formatting is detected.
    - black --diff --check src/ > black.diff
  after_script:
    - black-codeclimate black.diff > black_report.json
  artifacts:
    reports:
      codequality: black_report.json
    when: always

This will upload the black_report.json as a GitLab Code Quality artifact. The lines that would be reformatted by black will show up as a merge request widget.

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

black_codeclimate-1.0.3.tar.gz (4.3 kB view details)

Uploaded Source

Built Distribution

black_codeclimate-1.0.3-py3-none-any.whl (5.5 kB view details)

Uploaded Python 3

File details

Details for the file black_codeclimate-1.0.3.tar.gz.

File metadata

  • Download URL: black_codeclimate-1.0.3.tar.gz
  • Upload date:
  • Size: 4.3 kB
  • Tags: Source
  • Uploaded using Trusted Publishing? No
  • Uploaded via: poetry/1.7.1 CPython/3.11.6 Darwin/23.2.0

File hashes

Hashes for black_codeclimate-1.0.3.tar.gz
Algorithm Hash digest
SHA256 1cccba9928561502349e5b6c2d6f69b9c3cdd2f8a54864068a4b281c432e5055
MD5 69c202b61b711d2135bdc348369c41d4
BLAKE2b-256 7a1a453564deb8a0849d9e9a02f79b3a11a37c9c82eae20837b23426dd942a0d

See more details on using hashes here.

File details

Details for the file black_codeclimate-1.0.3-py3-none-any.whl.

File metadata

File hashes

Hashes for black_codeclimate-1.0.3-py3-none-any.whl
Algorithm Hash digest
SHA256 d99caf76f4c53d4e0ec513f6bc2cf58cca7c977cef36bf57e8d5143b6aee7521
MD5 d63557d20ba6e94a33f0cb459b7e621c
BLAKE2b-256 18d93eb2af0c8cf3e5020e894cf684f9f38b0ee592ff96b876b38c24be736935

See more details on using hashes here.

Supported by

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