def _get_root_extension_acl(context: IResource, registry: Registry) -> []: acm_cstruct = registry.queryAdapter(context, IRootACMExtension) if acm_cstruct is None: return [] else: acm = ACM().deserialize(acm_cstruct) acl = acm_to_acl(acm) return acl
def get_input_widget( registry: Registry, node: ColanderNode, node_type: Optional[colander.SchemaType] = None, ) -> Optional[InputWidget]: node_type = node_type or node.typ converter: Optional[InputConverter] = registry.queryAdapter( node_type, interfaces.ISchemaNodeToInputWidget) if converter: widget = converter(registry, node, node_type) if widget: widget = _try_convert_to_select_input(registry, widget, node) return widget
def convert_validators( registry: Registry, validator: Optional[ColanderValidator], ) -> Generator[Validator, Any, None]: if validator is None: return if isfunction(validator): adapter_name = f'{validator.__module__}.{validator.__qualname__}' validator = _FunctionBasedValidator(validator) else: adapter_name = '' converter: Optional[ValidatorConverter] = registry.queryAdapter( validator, interfaces.IValidatorConverter, name=adapter_name, ) if converter: for v in converter(registry, validator): if v is not None: yield v