Skip to content

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

NameDescription
EXACT_BYTESNo description.
REASON_BASE64No description.
REASON_NFCNo description.
REASON_REDUNDANTNo description.
REASON_UTF8No description.

Functions

NameDescription
content_hashDigest §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) -> str

Digest §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.