Skip to content

lawref.evaluator.engine

Конвейер вычисления: порядок фаз и запуск вектора.

Порядок фаз нормативен и проверяется differential-ом, менять его нельзя: context §89.1 → ingest §71–§73 → dynamic references §30.2 → манифест §170 → halt E-0001 → §194 → стратификация §110 → strict §103 → closure §70 → strict → defeasible §104–§115 → цепочка норм §143 → keys §45.1 → ветвь запроса.

Classes

NameDescription
EvaluationRequestТипизированный единственный вход evaluation (DECISION-0111 §2.2).
EvaluationRequestErrorNo description.
UnsupportedLanguageVersionErrorLDC-E1401 на evaluation boundary для отозванной семантики.

Functions

NameDescription
evaluateПубличная граница исполнения (DECISION-0111 §2.2).
run_vectorИсполнение evaluate-вектора: ('result', doc) | ('error', {'error': {...}}).

EvaluationRequestclassdataclass#

class EvaluationRequest(ir: dict, case: dict, query: dict, calendar_resource: bytes | None = None, external_snapshots: tuple[dict, ...] = tuple(), receipt: dict | None = None, semantic_version: str = '', editions_as_presented: str | None = None, proof_graph: bool = True)

Типизированный единственный вход evaluation (DECISION-0111 §2.2).

Семантические options живут только в case["options"]. Calendar, external snapshots и receipt — transport-поля запроса и не входят в caseHash. Неизвестный верхнеуровневый ключ wire-формы отклоняет схема.

calendar_resourceattributeclass attributeinstance attribute#

calendar_resource: bytes | None = None

caseattributeinstance attribute#

case: dict

editions_as_presentedattributeclass attributeinstance attribute#

editions_as_presented: str | None = None

external_snapshotsattributeclass attributeinstance attribute#

external_snapshots: tuple[dict, ...] = field(default_factory=tuple)

irattributeinstance attribute#

ir: dict

proof_graphattributeclass attributeinstance attribute#

proof_graph: bool = True

queryattributeinstance attribute#

query: dict

receiptattributeclass attributeinstance attribute#

receipt: dict | None = None

semantic_versionattributeclass attributeinstance attribute#

semantic_version: str = ''

buildmethodclassmethod#

def build(ir: dict, case: dict, query: dict, options: dict | None = None, external_snapshots: list[dict] | tuple[dict, ...] | None = None, *, semantic_version: str | None = None, editions_as_presented: str | None = None) -> 'EvaluationRequest'

Собрать typed request из внутренних объектов хоста.

options здесь — лишь адаптер старых хостовых переменных на единственное нормативное место case.options. Несемантические calendar/receipt извлекаются из него и в caseHash не попадают. Если хост не передал версию явно, она наследуется из закреплённого IR. Отозванная ветвь 0.1 отклоняется по обеим осям: ни IR, ни явная версия request не могут вернуть её в active evaluation. Публичная граница исполнения всё равно одна: evaluate(request).

from_dictmethodclassmethod#

def from_dict(document: dict) -> 'EvaluationRequest'

from_wire_bytesmethodclassmethod#

def from_wire_bytes(raw: bytes) -> 'EvaluationRequest'

Build a request from the exact bytes admitted to the verdict cache.

The cache key is safe only when this method itself parsed raw into the object passed to validation. Object callers use :meth:from_dict.

EvaluationRequestErrorclass#

class EvaluationRequestError(detail: str)

Bases: ValueError

codeattributeclass attributeinstance attribute#

code = 'EVALUATION_REQUEST_INVALID'

messageattributeinstance attribute#

message = EvaluationRequest не соответствует evaluation-request.schema.json: {detail} (DECISION-0111 §2.2)

UnsupportedLanguageVersionErrorclass#

class UnsupportedLanguageVersionError(version: str)

Bases: EvaluationRequestError

LDC-E1401 на evaluation boundary для отозванной семантики.

codeattributeclass attributeinstance attribute#

code = 'UNSUPPORTED_LANGUAGE_VERSION'

diagnostic_codeattributeclass attributeinstance attribute#

diagnostic_code = 'LDC-E1401'

messageattributeinstance attribute#

message = revision.withdrawn_evaluation_message(version)

evaluatefunction#

def evaluate(request: EvaluationRequest) -> dict

Публичная граница исполнения (DECISION-0111 §2.2).

Отчёт acceptance-фазы §78.2.7 вкладывается ЗДЕСЬ, одним владельцем на все девять ветвей запроса: _evaluate кладёт его в sink, а attach_acceptance вкладывает и пересчитывает resultHash. Без выбранной политики sink пуст и документ возвращается тем же объектом — байты прежние (§78.2.8).

run_vectorfunction#

def run_vector(vector_dir, layer: str | None = None, semantic_version: str | None = None) -> tuple[str, dict]

Исполнение evaluate-вектора: (‘result’, doc) | (‘error’, {‘error’: {…}}).

Артефакты: ir.json (hand-authored CLIR до появления парсера M3 — G-M1b заменит их выходом компилятора), case.json (интерим-JSON вместо .lawcase до M3), query.json, calendar.resource.json (для calendar_op), expected.json.

Documentation for Arxo. Writings — blog.arxo.io.

Anonymous visit counts on stats.arxo.io, no cookies.