Source code for dowhy.graph_learners

import string
from importlib import import_module

from dowhy.graph_learner import GraphLearner


[docs]def get_discovery_class_object(method_name, *args, **kwargs): """ Import class from graph_learners. """ # from https://www.bnmetrics.com/blog/factory-pattern-in-python3-simple-version try: module_name = method_name class_name = module_name.upper() discovery_module = import_module("." + module_name, package="dowhy.graph_learners") discovery_class = getattr(discovery_module, class_name) assert issubclass(discovery_class, GraphLearner) except (AttributeError, AssertionError, ImportError): raise ImportError("{} is not an existing causal discovery method.".format(method_name)) return discovery_class
[docs]def get_library_class_object(module_method_name, *args, **kwargs): """ Import library for causal inference. """ # from https://www.bnmetrics.com/blog/factory-pattern-in-python3-simple-version try: (module_name, _, class_name) = module_method_name.rpartition(".") discovery_module = import_module(module_name) discovery_class = getattr(discovery_module, class_name) except (AttributeError, AssertionError, ImportError): raise ImportError( "Error loading {}.{}. Double-check the method name and ensure that all library dependencies are installed.".format( module_name, class_name ) ) return discovery_class