lawref.schemas
Реестр нормативных схем базового пакета (WP-03 + DECISION-0006).
Решение по кодогенерации (WP-03, зафиксировано): типы пишутся руками в обеих реализациях, схемы служат контрактом через валидацию — кодогенераторы из JSON Schema 2020-12 не переваривают allOf/if-then legal-ir и дают непригодные типы. Addendum-схемы (ontology-package, kz-corpus-*) — вне скоупа (план WP-03).
SPEC §0.1: схемы нормативно определяют форму, prose — семантику.
Attributes
| Name | Description |
|---|---|
IR_SCHEMA_VERSIONS | No description. |
NORMATIVE_SCHEMAS | No description. |
SCHEMA_BASE_URL | No description. |
SCHEMA_DIR | No description. |
VERDICT_CACHE_DIR | No description. |
Functions
| Name | Description |
|---|---|
cached_valid | Есть ли в кэше положительный вердикт для этих байтов под этой схемой. |
fast_validator | Скомпилированный fastjsonschema-валидатор схемы либо None, если |
load | Загрузка схемы по имени с self-check-ом (Draft 2020-12). |
registry | Registry for relative cross-schema references used by Core artifacts. |
remember_valid | Записать положительный вердикт (атомарно; ошибки ввода-вывода молча). |
schemas_fingerprint | sha256 байтов всех нормативных схем и формата кэша — отпечаток вердикта. |
validate | Список сообщений об ошибках; пустой — документ валиден. |
validate_bytes | validate с кэшем между запусками по байтам документа: raw — те |
validator | No description. |
IR_SCHEMA_VERSIONSattributemodule attribute#
IR_SCHEMA_VERSIONS = (
'law.core.ir/0.1',
'law.core.ir/0.2',
'law.core.ir/0.3',
'law.core.ir/0.4',
'law.core.ir/0.5'
)NORMATIVE_SCHEMASattributemodule attribute#
NORMATIVE_SCHEMAS = {
'concept-catalog-inputs': 'concept-catalog-inputs.schema.json',
'concept-alignment-policy': 'concept-alignment-policy.schema.json',
'concept-alignment-report': 'concept-alignment-report.schema.json',
'concept-rule-alignment-policy': 'concept-rule-alignment-policy.schema.json',
'concept-rule-alignment-report': 'concept-rule-alignment-report.schema.json',
'import-ir': 'import-ir.schema.json',
'import-mapping': 'import-mapping.schema.json',
'import-package-policy': 'import-package-policy.schema.json',
'import-package-plan': 'import-package-plan.schema.json',
'import-bundle': 'import-bundle.schema.json',
'import-report': 'import-report.schema.json',
'import-recipe': 'import-recipe.schema.json',
'native-records': 'native-records.schema.json',
'native-modules': 'native-modules.schema.json',
'import-diff': 'import-diff.schema.json',
'native-dag': 'native-dag.schema.json',
'import-inventory': 'import-inventory.schema.json',
'import-coverage': 'import-coverage.schema.json',
'import-adapter': 'import-adapter.schema.json',
'legal-ir': 'legal-ir.schema.json',
'evaluation': 'evaluation.schema.json',
'calendar-dataset': 'calendar-dataset.schema.json',
'package-manifest': 'package-manifest.schema.json',
'package-info': 'package-info.schema.json',
'package-passport': 'package-passport.schema.json',
'case-export': 'case-export.schema.json',
'profile': 'profile.schema.json',
'profile-descriptor': 'profile-descriptor.schema.json',
'package-report': 'package-report.schema.json',
'package-benchmark': 'package-benchmark.schema.json',
'lockfile': 'lockfile.schema.json',
'diagnostic': 'diagnostic.schema.json',
'editor-index': 'editor-index.schema.json',
'editor-source-map': 'editor-source-map.schema.json',
'law-expansion': 'law-expansion.schema.json',
'conformance-descriptor': 'conformance-descriptor.schema.json',
'review-approval': 'review-approval.schema.json',
'feature-registry': 'feature-registry.schema.json',
'parameter-dataset': 'parameter-dataset.schema.json',
'decision-table': 'decision-table.schema.json',
'external-snapshot': 'external-snapshot.schema.json',
'counterfactual-input': 'counterfactual-input.schema.json',
'counterfactual-result': 'counterfactual-result.schema.json',
'query-result': 'query-result.schema.json',
'query': 'query.schema.json',
'focused-evaluation': 'focused-evaluation.schema.json',
'business-requirements': 'business-requirements.schema.json',
'evaluation-request': 'evaluation-request.schema.json',
'screen-binding': 'screen-binding.schema.json',
'change-set': 'change-set.schema.json',
'change-dossier': 'change-dossier.schema.json',
'population-bank': 'population-bank.schema.json',
'population-binding': 'population-binding.schema.json',
'population-materialization': 'population-materialization.schema.json',
'population-impact-report': 'population-impact-report.schema.json',
'package-descriptor': 'package-descriptor.schema.json',
'package-questions': 'package-questions.schema.json'
}SCHEMA_BASE_URLattributemodule attribute#
SCHEMA_BASE_URL = 'https://law.arxo.io/schema/'SCHEMA_DIRattributemodule attribute#
SCHEMA_DIR = schema_dir()VERDICT_CACHE_DIRattributemodule attribute#
VERDICT_CACHE_DIR = cache_dir() / 'schema-verdicts'cached_validfunction#
def cached_valid(name: str, raw: bytes) -> boolЕсть ли в кэше положительный вердикт для этих байтов под этой схемой.
fast_validatorfunctioncached#
def fast_validator(name: str)Скомпилированный fastjsonschema-валидатор схемы либо None, если
зависимости нет или схема ему не по зубам (тогда только jsonschema).
loadfunctioncached#
def load(name: str) -> dictЗагрузка схемы по имени с self-check-ом (Draft 2020-12).
registryfunctioncached#
def registry() -> RegistryRegistry for relative cross-schema references used by Core artifacts.
remember_validfunction#
def remember_valid(name: str, raw: bytes) -> NoneЗаписать положительный вердикт (атомарно; ошибки ввода-вывода молча).
schemas_fingerprintfunctioncached#
def schemas_fingerprint() -> strsha256 байтов всех нормативных схем и формата кэша — отпечаток вердикта.
validatefunction#
def validate(name: str, document: dict) -> list[str]Список сообщений об ошибках; пустой — документ валиден.
Валидный документ (штатный путь: CLIR зависимостей при каждом ask,
минуты jsonschema на КоАП) проверяется скомпилированным
fastjsonschema — на порядок быстрее. Найденная им ошибка не
отчитывается его словами: документ заново проходит jsonschema, чьи
формулировки входят в конверты отказов и голдены; ответ тот же байт в байт.
validate_bytesfunction#
def validate_bytes(name: str, raw: bytes, document: dict) -> list[str]validate с кэшем между запусками по байтам документа: raw — те
самые байты, из которых разобран document.
validatorfunctioncached#
def validator(name: str) -> Draft202012ValidatorDocumentation for Arxo. Writings — blog.arxo.io.
Anonymous visit counts on stats.arxo.io, no cookies.