Secure your code as it's written. Use Snyk Code to scan source code in minutes - no build needed - and fix issues immediately.
One or both of element/class name must be specified.
Args:
element_name: The name of the element type.
class_name: The class name of the element type.
create_missing: Whether classes should be auto-created if no
existing match is found.
Returns:
A Resource class.
"""
if not element_name and not class_name:
raise Error('One of element_name,class_name must be specified.')
elif not element_name:
element_name = util.underscore(class_name)
elif not class_name:
class_name = util.camelize(element_name)
module_path = cls.__module__.split('.')
for depth in range(len(module_path), 0, -1):
try:
__import__('.'.join(module_path[:depth]))
module = sys.modules['.'.join(module_path[:depth])]
except ImportError:
continue
try:
klass = getattr(module, class_name)
return klass
except AttributeError:
try:
__import__('.'.join([module.__name__, element_name]))
submodule = sys.modules['.'.join([module.__name__,
element_name])]