lawref.official_text
Точные байты официального текста фрагмента в CLIR (SPEC §13, §28, §208; errata E-0248, DECISION-0375).
Канон §208 требует NFC у каждой строки документа, §13 — хранить исходные
байты официального text block. Оба требования выполняются двумя полями
элемента Fragment.texts[]: text — NFC-форма, exactBytes — точные
байты в каноническом base64 RFC 4648 §4, присутствующие ТОЛЬКО когда они
отличаются от UTF-8 text. Сравнение строк идёт по text, проверки
целостности (content hash §194, вхождение в публикацию, text coverage §33.1)
— по точным байтам.
Порт — law_canon::official_text в lawc; причины отказа и их порядок
входят в байтовый контракт evaluation-документа (§28).
Attributes
| Name | Description |
|---|---|
EXACT_BYTES | No description. |
REASON_BASE64 | No description. |
REASON_NFC | No description. |
REASON_REDUNDANT | No description. |
REASON_UTF8 | No description. |
Functions
| Name | Description |
|---|---|
content_hash | Digest §194 точных байтов официального текста. |
encode | Поля text/exactBytes для исходного текста raw (§13). |
exact_bytes | Точные байты элемента texts[] либо причина незаконного носителя. |
EXACT_BYTESattributemodule attribute#
EXACT_BYTES = 'exactBytes'REASON_BASE64attributemodule attribute#
REASON_BASE64 = 'не каноническая запись base64 RFC 4648 §4'REASON_NFCattributemodule attribute#
REASON_NFC = 'NFC байтов не равна text'REASON_REDUNDANTattributemodule attribute#
REASON_REDUNDANT = 'байты равны UTF-8 text — поле обязано отсутствовать'REASON_UTF8attributemodule attribute#
REASON_UTF8 = 'байты не UTF-8'content_hashfunction#
def content_hash(data: bytes) -> strDigest §194 точных байтов официального текста.
encodefunction#
def encode(raw: str) -> dict[str, str]Поля text/exactBytes для исходного текста raw (§13).
exactBytes есть только у текста, чьи байты отличаются от UTF-8 его
NFC-формы; у NFC-текста результат — ровно прежний {"text": raw}.
exact_bytesfunction#
def exact_bytes(text_item: dict) -> tuple[bytes | None, str | None]Точные байты элемента texts[] либо причина незаконного носителя.
Возвращает (bytes, None) у законного элемента и (None, причина)
у незаконного. Условия проверяются в порядке §28.
Documentation for Arxo. Writings — blog.arxo.io.
Anonymous visit counts on stats.arxo.io, no cookies.