2
0
mirror of https://github.com/m-labs/artiq.git synced 2024-12-26 11:48:27 +08:00

tools/file_import: restore sys.modules. Closes #976

This commit is contained in:
Sebastien Bourdeauducq 2018-05-01 22:15:19 +08:00
parent 84e1f05559
commit b48e782dd6

View File

@ -6,6 +6,7 @@ import collections
import atexit import atexit
import string import string
import os import os
from copy import copy
import numpy as np import numpy as np
@ -83,9 +84,13 @@ def file_import(filename, prefix="file_import_"):
path = os.path.dirname(os.path.realpath(filename)) path = os.path.dirname(os.path.realpath(filename))
sys.path.insert(0, path) sys.path.insert(0, path)
try:
previous_modules = copy(sys.modules)
try: try:
loader = importlib.machinery.SourceFileLoader(modname, filename) loader = importlib.machinery.SourceFileLoader(modname, filename)
module = loader.load_module() module = loader.load_module()
finally:
sys.modules = previous_modules
finally: finally:
sys.path.remove(path) sys.path.remove(path)