INNER CODE UNIT · Python
_read_contract
WMAL/kodachios · Kodachi-OS-10-stable/open/dock/lib/kodachi_direct.py:127
def _read_contract(path=None):
source = Path(path) if path is not None else _contract_path()
try:
document = json.loads(source.read_text(encoding="utf-8"))
except (OSError, ValueError) as exc:
raise DirectContractError(
f"the GTK direct-operation contract is unreadable: {exc}"
) from exc
if document.get("schemaVersion") != SCHEMA_VERSION:
raise DirectContractError("the contract schema version is unsupported")
denominators = document.get("actionableControlDenominators")
if (not isinstance(denominators, dict)
or denominators != EXPECTED_ACTIONABLE_DENOMINATORS
or document.get("gtkActionableControlOccurrenceCount")
!= sum(EXPECTED_ACTIONABLE_DENOMINATORS.values())):
raise DirectContractError(
"the contract actionable-control denominator is not generator-derived")
if document.get("gtkProxyCellCount") != 0: