INNER CODE UNIT · Python
_validate_binding
WMAL/kodachios · Kodachi-OS-10-stable/open/dock/lib/kodachi_direct.py:178
def _validate_binding(binding, identity, cells, linux_executables):
if not isinstance(binding, dict):
raise DirectContractError(f"{identity}: direct binding is not an object")
kind = binding.get("kind")
if kind not in DIRECT_KINDS:
raise DirectContractError(f"{identity}: unsupported direct kind {kind!r}")
executable = binding.get("executable")
if not isinstance(executable, str) or not executable.startswith("/"):
raise DirectContractError(f"{identity}: executable is not absolute")
if os.path.basename(executable) in PROXY_BASENAMES:
raise DirectContractError(
f"{identity}: presentation proxy {executable!r} cannot execute a GTK control"
)
if executable in DENIED_EXECUTABLES:
raise DirectContractError(
f"{identity}: denied executable {executable!r} cannot execute a GTK control")
if kind == "linux" and executable not in linux_executables:
raise DirectContractError(