factory module¶
Factory base class.
- class gemseo.core.factory.Factory(*args, **kwargs)[source]¶
Bases:
object
Factory of class objects with cache.
This factory can create an object from a base class or any of its subclasses that can be imported from the given modules sources. There are 3 sources of modules that can be searched:
fully qualified module names (such as gemseo.problems, …),
the environment variable “GEMSEO_PATH” may contain the list of directories,
GEMSEO plugins, i.e. packages which have declared a setuptools entry point.
A setuptools entry point is declared in a plugin
setup.cfg
file, with a section:[options.entry_points] gemseo_plugins = a-name = plugin_package_name
Above
a-name
is not used and can be any name, but we advise to use the plugin name.The plugin entry point searched by the factory could be changed with
Factory.PLUGIN_ENTRY_POINT
.If a class, despite being a subclass of the base class, or even the base class itself, does not belong to the modules sources then it is not taken into account by the factory.
The created objects are cached: more calls to the constructor with the same call signature will return the object in cache instead of instantiating a new one.
- Parameters:
base_class – The base class to be considered.
module_names – The fully qualified modules names to be searched.
args (Any) –
kwargs (Any) –
- get_class(name)[source]¶
Return a class from its name.
- Parameters:
name (str) – The name of the class.
- Returns:
The class.
- Raises:
ImportError – If the class is not available.
- Return type:
- get_default_sub_options_values(name, **options)[source]¶
Return the default values of the sub options of a class.
- Parameters:
- Returns:
The JSON grammar.
- Return type:
- get_options_grammar(name, write_schema=False, schema_path=None)[source]¶
Return the options JSON grammar for a class.
Attempt to generate a JSONGrammar from the arguments of the __init__ method of the class.
- Parameters:
- Returns:
The JSON grammar.
- Return type:
- get_sub_options_grammar(name, **options)[source]¶
Return the JSONGrammar of the sub options of a class.
- Parameters:
- Returns:
The JSON grammar.
- Return type:
- update()[source]¶
Search for the classes that can be instantiated.
- The search is done in the following order:
The fully qualified module names
The plugin packages
The packages from the environment variables
- Return type:
None
- PLUGIN_ENTRY_POINT = 'gemseo_plugins'¶