Classes
DiagnosticSeverity
0
▼
Severity assigned by the diagnostic producer.
DiagnosticSeverity
0
▼
Severity assigned by the diagnostic producer.
DiagnosticConfidence
0
▼
How conclusively Kida can make a diagnostic claim.
DiagnosticConfidence
0
▼
How conclusively Kida can make a diagnostic claim.
SourcePosition
3
▼
One source position using a 1-based line and optional 0-based column.
SourcePosition
3
▼
One source position using a 1-based line and optional 0-based column.
Attributes
| Name | Type | Description |
|---|---|---|
line |
int
|
— |
column |
int | None
|
— |
Methods
Internal Methods 1 ▼
__post_init__
0
▼
__post_init__
0
▼
def __post_init__(self) -> None
SourceSpan
5
▼
Logical template path and optional half-open source range.
SourceSpan
5
▼
Logical template path and optional half-open source range.
Attributes
| Name | Type | Description |
|---|---|---|
path |
str | None
|
— |
start |
SourcePosition | None
|
— |
end |
SourcePosition | None
|
— |
Methods
is_exact
0
bool
▼
Return whether the span is precise enough for a source edit.
property
is_exact
0
bool
▼
def is_exact(self) -> bool
Returns
bool
Internal Methods 1 ▼
__post_init__
0
▼
__post_init__
0
▼
def __post_init__(self) -> None
RelatedLocation
3
▼
A labeled source location related to the primary finding.
RelatedLocation
3
▼
A labeled source location related to the primary finding.
Attributes
| Name | Type | Description |
|---|---|---|
label |
str
|
— |
span |
SourceSpan
|
— |
Methods
Internal Methods 1 ▼
__post_init__
0
▼
__post_init__
0
▼
def __post_init__(self) -> None
SafeEdit
4
▼
An unambiguous replacement over an exact source span.
SafeEdit
4
▼
An unambiguous replacement over an exact source span.
Attributes
| Name | Type | Description |
|---|---|---|
span |
SourceSpan
|
— |
replacement |
str
|
— |
description |
str | None
|
— |
Methods
Internal Methods 1 ▼
__post_init__
0
▼
__post_init__
0
▼
def __post_init__(self) -> None
DiagnosticSnippet
4
▼
Plain source lines surrounding a diagnostic.
DiagnosticSnippet
4
▼
Plain source lines surrounding a diagnostic.
Attributes
| Name | Type | Description |
|---|---|---|
lines |
tuple[tuple[int, str], ...]
|
— |
error_line |
int
|
— |
column |
int | None
|
— |
Methods
Internal Methods 1 ▼
__post_init__
0
▼
__post_init__
0
▼
def __post_init__(self) -> None
Diagnostic
16
▼
One immutable Kida finding, independent of its output surface.
Diagnostic
16
▼
One immutable Kida finding, independent of its output surface.
Attributes
| Name | Type | Description |
|---|---|---|
code |
str
|
— |
category |
str
|
— |
severity |
DiagnosticSeverity
|
— |
message |
str
|
— |
span |
SourceSpan
|
— |
title |
str | None
|
— |
kind |
str | None
|
— |
suggestion |
str | None
|
— |
safe_edit |
SafeEdit | None
|
— |
related_locations |
tuple[RelatedLocation, ...]
|
— |
confidence |
DiagnosticConfidence
|
— |
notes |
tuple[str, ...]
|
— |
documentation_url |
str | None
|
— |
source_snippet |
DiagnosticSnippet | None
|
— |
metadata |
tuple[tuple[str, str], ...]
|
— |
Methods
Internal Methods 1 ▼
__post_init__
0
▼
__post_init__
0
▼
def __post_init__(self) -> None
DiagnosticConverter
1
▼
Pure conversion boundary from one producer record to ``Diagnostic``.
DiagnosticConverter
1
▼
Pure conversion boundary from one producer record toDiagnostic.
Methods
Internal Methods 1 ▼
__call__
1
Diagnostic
▼
__call__
1
Diagnostic
▼
def __call__(self, source: SourceT, /) -> Diagnostic
Parameters
| Name | Type | Description |
|---|---|---|
source |
— |
Returns
Diagnostic
DiagnosticOptions
5
▼
Opt-in static checks shared by source and directory diagnosis.
DiagnosticOptions
5
▼
Opt-in static checks shared by source and directory diagnosis.
Attributes
| Name | Type | Description |
|---|---|---|
strict |
bool
|
— |
validate_calls |
bool
|
— |
a11y |
bool
|
— |
typed |
bool
|
— |
lint_fragile_paths |
bool
|
— |
DiagnosticReport
2
▼
Policy-neutral result of one programmatic diagnostic request.
DiagnosticReport
2
▼
Policy-neutral result of one programmatic diagnostic request.
Attributes
| Name | Type | Description |
|---|---|---|
diagnostics |
tuple[Diagnostic, ...]
|
— |
partial |
bool
|
— |
Functions
diagnose_directory
2
DiagnosticReport
▼
Diagnose templates below *root* with the same collection as ``kida check``.
diagnose_directory
2
DiagnosticReport
▼
def diagnose_directory(root: str | PathLike[str], *, options: DiagnosticOptions = _DEFAULT_OPTIONS) -> DiagnosticReport
Parameters
| Name | Type | Description |
|---|---|---|
root |
str | PathLike[str] |
|
options |
DiagnosticOptions |
Default:_DEFAULT_OPTIONS
|
Returns
DiagnosticReport
diagnose_source
4
DiagnosticReport
▼
Diagnose an in-memory template without adding it to environment caches.
A supp…
diagnose_source
4
DiagnosticReport
▼
def diagnose_source(source: str, *, name: str = '<string>', environment: Environment | None = None, options: DiagnosticOptions = _DEFAULT_OPTIONS) -> DiagnosticReport
Diagnose an in-memory template without adding it to environment caches.
A supplied environment contributes lexer/parser configuration, extensions, autoescape selection, and loader-backed imported component metadata. Kida does not mutate its registries; resolving imports may use that environment's existing thread-safe template cache.
Parameters
| Name | Type | Description |
|---|---|---|
source |
str |
|
name |
str |
Default:'<string>'
|
environment |
Environment | None |
Default:None
|
options |
DiagnosticOptions |
Default:_DEFAULT_OPTIONS
|
Returns
DiagnosticReport
diagnostic_from_exception
2
Diagnostic
▼
Convert a Kida template or lexer exception into one public diagnostic.
``TypeE…
diagnostic_from_exception
2
Diagnostic
▼
def diagnostic_from_exception(error: Exception, *, path: str | None = None) -> Diagnostic
Convert a Kida template or lexer exception into one public diagnostic.
TypeErroris raised for unrelated Python exceptions so framework
adapters cannot accidentally relabel arbitrary application failures as Kida
diagnostics.
Parameters
| Name | Type | Description |
|---|---|---|
error |
Exception |
|
path |
str | None |
Default:None
|
Returns
Diagnostic
apply_safe_edits
3
str
▼
Apply non-overlapping, snapshot-matched safe edits for one template.
Diagnosti…
apply_safe_edits
3
str
▼
def apply_safe_edits(source: str, diagnostics: Iterable[Diagnostic], *, path: str) -> str
Apply non-overlapping, snapshot-matched safe edits for one template.
Diagnostics for other paths and diagnostics without a safe edit are
ignored. AValueErroris raised before any edit is applied when the
current source differs from the captured source lines, a snapshot is
incomplete, or two selected edits overlap.
Parameters
| Name | Type | Description |
|---|---|---|
source |
str |
|
diagnostics |
Iterable[Diagnostic] |
|
path |
str |
Returns
str