Skip to main content

Python module for creating diagnostics using the LLVM diagnostics specification

Project description

llvm-diagnostics

Python module for creating diagnostics using the LLVM diagnostics specification

Installation

% pip install llvm-diagnostics

Usage

Parsing a log file containing LLVM Diagnostics messages

Parsing a logging file can be done as follows:

from llvm_diagnostics.parser import diagnostics_messages_from_file

for error in list(diagnostics_messages_from_file("test/resources/test.out")):
   print(f"Diagnostics Message found:")
   print(f"  File: {error.file_path}")
   print(f"  Level: {error.level}")
   print(f"  Message: {error.message}")

Which will result in output similar to:

Diagnostics Message found:
  File: /code/supermarket-buyer-supplier/src/offers/convert_customer_receipt.cpp
  Level: DiagnosticsLevel.WARNING
  Message: 'fruit_section' is deprecated: 2021.Q2 Deprecated Use application::supermarket_app::receipt_engine::receipt::FruitInformation::fruit_section_labels [-Wdeprecated-declarations]

Reporting on Diagnostics messages

You can use llvm-diagnostics to create your own Diagnostics messages.

Reporting a message in LLVM Diagnostics format

import llvm_diagnostics as logger

message = logger.Warning(
   file_path='fake_file.py',
   line_number=logger.Range(start=10),
   column_number=logger.Range(start=15, range=3),
   line="mPercentage = 105",
   expectations="100",
   message='Value exceeds maximum, automatically capped to 100',
).report()

This will result in the following message on stderr:

example

Reporting a message in GitHub format

import llvm_diagnostics as logger

logger.config(logger.formatters.GitHub())

message = logger.Warning(
   file_path='fake_file.py',
   line_number=logger.Range(start=10),
   column_number=logger.Range(start=15, range=3),
   line="mPercentage = 105",
   expectations="100",
   message='Value exceeds maximum, automatically capped to 100',
).report()

This will result in the following message on stderr:

::warning file=fake_file.py,line=10,col=15,endColumn=18::Value exceeds maximum, automatically capped to 100

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

llvm-diagnostics-3.0.1.tar.gz (35.6 kB view details)

Uploaded Source

Built Distribution

llvm_diagnostics-3.0.1-py3-none-any.whl (11.3 kB view details)

Uploaded Python 3

File details

Details for the file llvm-diagnostics-3.0.1.tar.gz.

File metadata

  • Download URL: llvm-diagnostics-3.0.1.tar.gz
  • Upload date:
  • Size: 35.6 kB
  • Tags: Source
  • Uploaded using Trusted Publishing? No
  • Uploaded via: twine/4.0.2 CPython/3.7.17

File hashes

Hashes for llvm-diagnostics-3.0.1.tar.gz
Algorithm Hash digest
SHA256 67470811bbab34bf75d6ef298d6a6f35b1133c710e8fc15c793eb6755d07215f
MD5 e46774ee9d4f182cc7dd0b2900da7b6d
BLAKE2b-256 1017ecb54db99380a8f0c332bf286a586c202925043ab4b1667ca9dee9ffac6b

See more details on using hashes here.

File details

Details for the file llvm_diagnostics-3.0.1-py3-none-any.whl.

File metadata

File hashes

Hashes for llvm_diagnostics-3.0.1-py3-none-any.whl
Algorithm Hash digest
SHA256 51aac4c0a29dc4bcd21c15bd7e2c050f2e5d59ef95ae0e8a1e0174b7964a386c
MD5 fb191bbc5f7a7784ae04d5a96185cafa
BLAKE2b-256 fb8f35f24961ecd06a81edface2212e7c32ea580c640943fd8a27e7a9b58f6b7

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