def get_entity_type(entity_type_name: str) -> Type[Entity]: try: return import_any(entity_type_name) except ImportError: try: return import_any(f'betty.model.ancestry.{entity_type_name}') except ImportError: raise ValueError(f'Unknown entity type "{entity_type_name}"')
def __contains__(self, extension_type_name) -> bool: with suppress(ImportError): return import_any(extension_type_name) in self._extensions return False
def __getitem__(self, extension_type_name): try: return self._extensions[import_any(extension_type_name)] except ImportError: raise KeyError('Unknown extension "%s".' % extension_type_name)
def discover_extension_types() -> Set[Type[Extension]]: return { import_any(entry_point.value) for entry_point in entry_points()['betty.extensions'] }
def __contains__(self, plugin_type_name): try: return import_any(plugin_type_name) in self._plugins except ImportError: return False
def __getitem__(self, plugin_type_name): return self._plugins[import_any(plugin_type_name)]
def _importable(v): try: return import_any(v) except ImportError as e: raise Invalid(e)
def __getitem__(self, plugin_type_name): try: return self._plugins[import_any(plugin_type_name)] except ImportError: raise KeyError('Unknown plugin "%s".' % plugin_type_name)
def __contains__(self, plugin_type_name) -> bool: with suppress(ImportError): return import_any(plugin_type_name) in self._plugins return False
def extension_types(self) -> Sequence[Type[Extension]]: return [ import_any(extension_name) for extension_name in self._EXTENSION_NAMES ]
def test_with_importable_should_return(self): self.assertEqual(self.__class__, import_any('%s.%s' % (self.__module__, self.__class__.__name__)))
def test_with_unknown_type_should_raise_invalid(self): with self.assertRaises(ImportError): import_any('%s.Foo' % self.__module__)
def test_with_unknown_module_should_raise_invalid(self): with self.assertRaises(ImportError): import_any('foo.bar.Baz')
def test_with_invalid_type_should_raise_invalid(self, importable_value): with self.assertRaises(ImportError): import_any(importable_value)