MCPcopy Create free account
hub / github.com/sissaschool/xmlschema / EncodeContext

Class EncodeContext

xmlschema/validators/validation.py:374–465  ·  view source on GitHub ↗

A context for handling validated encoding processes.

Source from the content-addressed store, hash-verified

372
373
374class EncodeContext(ValidationContext):
375 """A context for handling validated encoding processes."""
376 source: Any
377 converter: XMLSchemaConverter
378
379 _arguments = EncodeArguments
380
381 __slots__ = ('unordered', 'untyped_data', 'indent', 'etree_element_class')
382
383 def __init__(self,
384 source: Any,
385 converter: Optional[XMLSchemaConverter] = None,
386 unordered: bool = False,
387 untyped_data: bool = False,
388 **kwargs: Any) -> None:
389
390 if not isinstance(converter, XMLSchemaConverter):
391 converter = XMLSchemaConverter(**kwargs)
392
393 self.unordered = unordered
394 self.untyped_data = untyped_data
395 self.indent = converter.indent
396 self.etree_element_class = converter.etree_element_class
397
398 super().__init__(source, converter, **kwargs)
399
400 def encode_error(self,
401 validation: str,
402 validator: 'XsdValidator',
403 obj: Any,
404 encoder: Any,
405 error: Union[str, Exception]) -> XMLSchemaValidationError:
406
407 error = XMLSchemaEncodeError(
408 validator=validator,
409 obj=obj,
410 encoder=encoder,
411 reason=str(error),
412 source=self.source,
413 namespaces=self.namespaces,
414 )
415 return self.raise_or_collect(validation, error)
416
417 def create_element(self, tag: str) -> ElementType:
418 """
419 Create an ElementTree's Element using converter setting.
420
421 :param tag: the Element tag string.
422 """
423 if self.etree_element_class is Element:
424 return Element(tag)
425 else:
426 nsmap = {prefix if prefix else None: uri
427 for prefix, uri in self.namespaces.items() if uri}
428 try:
429 return self.etree_element_class(
430 tag, None, nsmap # type: ignore[call-arg, arg-type]
431 )

Callers 3

iter_encodeMethod · 0.85
encodeMethod · 0.85
iter_encodeMethod · 0.85

Calls

no outgoing calls

Tested by

no test coverage detected

Used in the wild real call sites across dependent graphs

searching dependent graphs…