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
from llvm_diagnostics import (
DiagnosticsWarning,
DiagnosticsRange,
)
message = DiagnosticsWarning(
file_path='fake_file.py',
line_number=DiagnosticsRange(start=10),
column_number=DiagnosticsRange(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
from llvm_diagnostics import (
DiagnosticsWarning,
DiagnosticsRange,
)
from llvm_diagnostics.formatters import GitHubFormatter
message = DiagnosticsWarning(
file_path='fake_file.py',
line_number=DiagnosticsRange(start=10),
column_number=DiagnosticsRange(start=15, range=3),
line="mPercentage = 105",
expectations="100",
message='Value exceeds maximum, automatically capped to 100',
formatter=GitHubFormatter(),
).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-2.1.2.tar.gz
(35.5 kB
view hashes)
Built Distribution
Close
Hashes for llvm_diagnostics-2.1.2-py3-none-any.whl
Algorithm | Hash digest | |
---|---|---|
SHA256 | 6a50d1c9c6fbc0dfdd68d337d97dd61bcab842691775b12e1adca877a25afcc6 |
|
MD5 | 850b22b4d23b5d2e0dd7c7e2a93af740 |
|
BLAKE2b-256 | 083beecea919852a0981d829ae241e7e425fdcf7ca9e8c22ab53c6bc8563728f |