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
Built Distribution
Filter files by name, interpreter, ABI, and platform.
If you're not sure about the file name format, learn more about wheel file names.
Copy a direct link to the current filters
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
|