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
:
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
Release history Release notifications | RSS feed
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)
Built Distribution
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
Algorithm | Hash digest | |
---|---|---|
SHA256 | 67470811bbab34bf75d6ef298d6a6f35b1133c710e8fc15c793eb6755d07215f |
|
MD5 | e46774ee9d4f182cc7dd0b2900da7b6d |
|
BLAKE2b-256 | 1017ecb54db99380a8f0c332bf286a586c202925043ab4b1667ca9dee9ffac6b |
File details
Details for the file llvm_diagnostics-3.0.1-py3-none-any.whl
.
File metadata
- Download URL: llvm_diagnostics-3.0.1-py3-none-any.whl
- Upload date:
- Size: 11.3 kB
- Tags: Python 3
- Uploaded using Trusted Publishing? No
- Uploaded via: twine/4.0.2 CPython/3.7.17
File hashes
Algorithm | Hash digest | |
---|---|---|
SHA256 | 51aac4c0a29dc4bcd21c15bd7e2c050f2e5d59ef95ae0e8a1e0174b7964a386c |
|
MD5 | fb191bbc5f7a7784ae04d5a96185cafa |
|
BLAKE2b-256 | fb8f35f24961ecd06a81edface2212e7c32ea580c640943fd8a27e7a9b58f6b7 |