__init__.py 831 B

123456789101112131415161718192021222324252627282930
  1. # lsup_rdf package.
  2. # All "modules" are inside the monolythic lsup_rdf extension because they have
  3. # cross-linked symbols, so they need a bit of work to be exposed at the main
  4. # level.
  5. import importlib.util
  6. import sys
  7. import _lsup_rdf
  8. from _lsup_rdf import env_init
  9. pkg_path = _lsup_rdf.__file__
  10. def _load_module(mod_name, path):
  11. """
  12. Replacement of deprecated imp.load_dynamic(). See
  13. https://docs.python.org/3/library/importlib.html#importing-a-source-file-directly
  14. """
  15. spec = importlib.util.spec_from_file_location(mod_name, path)
  16. module = importlib.util.module_from_spec(spec)
  17. sys.modules['lsup_rdf.' + mod_name] = module
  18. spec.loader.exec_module(module)
  19. return module
  20. for mod_name in ('term', 'triple', 'namespace', 'graph'):
  21. locals()[mod_name] = _load_module(mod_name, pkg_path)