Skip to content

ruff

Location

Bases: BaseModel

A location in a file.

Attributes:

Name Type Description
row int

...

column int

...

Source code in m/ci/celt/post_processors/ruff.py
class Location(BaseModel):
    """A location in a file."""

    row: int
    column: int

RuffViolation

Bases: BaseModel

A violation from ruff.

Attributes:

Name Type Description
code str

...

filename str

...

location Location

...

message str

...

Source code in m/ci/celt/post_processors/ruff.py
class RuffViolation(BaseModel):
    """A violation from ruff."""

    code: str
    filename: str
    location: Location
    message: str

read_payload(payload)

Transform a pylint payload to a list of FileReport instances.

Parameters:

Name Type Description Default
payload str

The raw payload from pylint.

required

Returns:

Type Description
Res[list[FileReport]]

A OneOf containing an Issue or a list of FileReport instances.

Source code in m/ci/celt/post_processors/ruff.py
def read_payload(payload: str) -> Res[list[FileReport]]:
    """Transform a pylint payload to a list of `FileReport` instances.

    Args:
        payload: The raw payload from pylint.

    Returns:
        A `OneOf` containing an `Issue` or a list of `FileReport` instances.
    """
    context = {'suggestion': 'run ruff check --format json'}
    return one_of(lambda: [
        [
            FileReport(file_path=name, violations=violations)
            for name, violations in report.items()
        ]
        for json_payload in json.parse_json(payload)
        for violations in parse_model(list[RuffViolation], json_payload)
        for report in _index_violations(violations)
    ]).flat_map_bad(hone('invalid_ruff_output_payload', context))