| 12345678910111213141516171819202122232425262728293031323334 |
- import sys
- import inspect
- import importlib
- from pathlib import Path
- VENDOR_DIR = Path(__file__).parent
- VENDORED_LIBS = {
- # sys.path dir: library name
- 'python-atomicwrites': 'atomicwrites',
- 'django-taggit': 'taggit',
- 'pydantic-pkgr': 'pydantic_pkgr',
- 'pocket': 'pocket',
- 'base32-crockford': 'base32_crockford',
- }
- def load_vendored_libs():
- for lib_subdir, lib_name in VENDORED_LIBS.items():
- lib_dir = VENDOR_DIR / lib_subdir
- assert lib_dir.is_dir(), 'Expected vendor libary {lib_name} could not be found in {lib_dir}'
- try:
- lib = importlib.import_module(lib_name)
- # print(f"Successfully imported lib from environment {lib_name}: {inspect.getfile(lib)}")
- except ImportError:
- sys.path.append(str(lib_dir))
- try:
- lib = importlib.import_module(lib_name)
- # print(f"Successfully imported lib from vendored fallback {lib_name}: {inspect.getfile(lib)}")
- except ImportError as e:
- print(f"Failed to import lib from environment or vendored fallback {lib_name}: {e}", file=sys.stderr)
- sys.exit(1)
-
|