namespace Base { using BaseType = Type; } This is the Type class Base.BaseType class. This class is not intended to create instances of itself, but to get information from the different types and create instances of them. Regarding instantiation, this is possible in cases that inherit from the Base::BaseClass class and are not abstract classes. fromName(name) -> Base.BaseType Returns a type object by name. name : str fromKey(key) -> Base.BaseType Returns a type id object by key. key : int getNumTypes() -> int Returns the number of type ids created so far. getBadType() -> Base.BaseType Returns an invalid type id. getAllDerivedFrom(type) -> list Returns all descendants from the given type id. type : str, Base.BaseType getParent() -> Base.BaseType Returns the parent type id. isBad() -> bool Checks if the type id is invalid. isDerivedFrom(type) -> bool Returns true if given type id is a father of this type id. type : str, Base.BaseType getAllDerived() -> list Returns all descendants from this type id. createInstance() -> object Creates an instance of this type id. createInstanceByName(name, load=False) -> object Creates an instance of the named type id. name : str load : bool Load named type id module. The name of the type id. The key of the type id. Module in which this class is defined.