Source code for xsdata.codegen.mixins

import abc
from typing import Callable
from typing import Iterator
from typing import List
from typing import Optional

from xsdata.codegen.models import Class

Condition = Optional[Callable]


[docs]class ContainerInterface(metaclass=abc.ABCMeta): """Wrap a list of classes and expose a simple api for easy access and process."""
[docs] @abc.abstractmethod def iterate(self) -> Iterator[Class]: """Create an iterator for the class map values."""
[docs] @abc.abstractmethod def find(self, qname: str, condition: Condition = None) -> Optional[Class]: """Search by qualified name for a specific class with an optional condition callable."""
[docs] @abc.abstractmethod def add(self, item: Class): """Add class item to the container."""
[docs] @abc.abstractmethod def extend(self, items: List[Class]): """Add a list of classes the container."""
[docs]class HandlerInterface(metaclass=abc.ABCMeta): """Class handler interface."""
[docs] @abc.abstractmethod def process(self, target: Class): """Process the given target class."""