xsdata.resolver module

class xsdata.resolver.DependenciesResolver(packages=<factory>, aliases=<factory>, imports=<factory>)[source]

Bases: object

packages: Dict[QName, str] = None
aliases: Dict[QName, str] = None
imports: List[Package] = None
class_list: List[QName] = None
class_map: Dict[QName, Class] = None
package: str = None
process(classes)[source]

Resolve the dependencies for the given list of classes and the target package.

Reset aliases and imports from any previous runs keep the record of the processed class names

sorted_imports()[source]

Return a new sorted by name list of import packages.

Return type

List[Package]

sorted_classes()[source]

Return an iterator of classes property sorted for generation and apply import aliases.

Return type

List[Class]

apply_aliases(obj)[source]

Walk the attributes tree and set the type aliases.

resolve_imports()[source]

Walk the import qualified names, check for naming collisions and add the necessary code generator import instance.

add_import(qname, package, exists=False)[source]

Append an import package to the list of imports with any if necessary aliases if the import name exists in the local module.

find_package(qname)[source]

Return the package name for the given qualified class name.

Raises

ResolverValueError – if name doesn’t exist.

Return type

str

import_classes()[source]

Return a list of class that need to be imported.

Return type

List[QName]

static create_class_list(classes)[source]

Use topology sort to return a flat list for all the dependencies.

static create_class_map(classes)[source]

Index the list of classes by name.