Пример #1
0
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}"')
Пример #2
0
 def __contains__(self, extension_type_name) -> bool:
     with suppress(ImportError):
         return import_any(extension_type_name) in self._extensions
     return False
Пример #3
0
 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)
Пример #4
0
def discover_extension_types() -> Set[Type[Extension]]:
    return {
        import_any(entry_point.value)
        for entry_point in entry_points()['betty.extensions']
    }
Пример #5
0
 def __contains__(self, plugin_type_name):
     try:
         return import_any(plugin_type_name) in self._plugins
     except ImportError:
         return False
Пример #6
0
 def __getitem__(self, plugin_type_name):
     return self._plugins[import_any(plugin_type_name)]
Пример #7
0
 def _importable(v):
     try:
         return import_any(v)
     except ImportError as e:
         raise Invalid(e)
Пример #8
0
 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)
Пример #9
0
 def __contains__(self, plugin_type_name) -> bool:
     with suppress(ImportError):
         return import_any(plugin_type_name) in self._plugins
     return False
Пример #10
0
 def extension_types(self) -> Sequence[Type[Extension]]:
     return [
         import_any(extension_name)
         for extension_name in self._EXTENSION_NAMES
     ]
Пример #11
0
 def test_with_importable_should_return(self):
     self.assertEqual(self.__class__, import_any('%s.%s' % (self.__module__, self.__class__.__name__)))
Пример #12
0
 def test_with_unknown_type_should_raise_invalid(self):
     with self.assertRaises(ImportError):
         import_any('%s.Foo' % self.__module__)
Пример #13
0
 def test_with_unknown_module_should_raise_invalid(self):
     with self.assertRaises(ImportError):
         import_any('foo.bar.Baz')
Пример #14
0
 def test_with_invalid_type_should_raise_invalid(self, importable_value):
     with self.assertRaises(ImportError):
         import_any(importable_value)