Module qimview.utils.import_tools

Expand source code
import sys, importlib
from pathlib import Path

def import_parents(current_file, level=1):
    global __package__
    file = Path(current_file).resolve()
    parent, top = file.parent, file.parents[level]
    
    sys.path.append(str(top))
    try:
        sys.path.remove(str(parent))
    except ValueError: # already removed
        pass

    __package__ = '.'.join(parent.parts[len(top.parts):])
    importlib.import_module(__package__) # won't be needed after that

Functions

def import_parents(current_file, level=1)
Expand source code
def import_parents(current_file, level=1):
    global __package__
    file = Path(current_file).resolve()
    parent, top = file.parent, file.parents[level]
    
    sys.path.append(str(top))
    try:
        sys.path.remove(str(parent))
    except ValueError: # already removed
        pass

    __package__ = '.'.join(parent.parts[len(top.parts):])
    importlib.import_module(__package__) # won't be needed after that