Skip to main content

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

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

If you're not sure about the file name format, learn more about wheel file names.

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.

Release history Release notifications | RSS feed

This release

3.0.1 This release

2 files

3.0.0

2 files

2.1.2

2 files

2.1.1

2 files

2.1.0

2 files

2.0.1

2 files

2.0.0

2 files

1.0.0

2 files

0.1.0

2 files

0.0.2

2 files

0.0.1

2 files

Supported by

AWS Cloud computing and Security Sponsor Datadog Monitoring Depot Continuous Integration Fastly CDN Google Download Analytics Sentry Error logging StatusPage Status page