Skip to content

Instantly share code, notes, and snippets.

@himaprasoonpt
Created February 26, 2019 07:44
Show Gist options
  • Save himaprasoonpt/6f741db3fef12e17f4c39da694568f36 to your computer and use it in GitHub Desktop.
Save himaprasoonpt/6f741db3fef12e17f4c39da694568f36 to your computer and use it in GitHub Desktop.
Blocks system import inside function
from functools import wraps
def block_imports(*imports):
def real_decorator(func):
@wraps(func)
def wrapper(*args, **kwargs):
saved = {}
import sys
for i in imports:
saved[i] = sys.modules[i]
sys.modules[i] = None
retval = func(*args, **kwargs)
for i in imports:
sys.modules[i] = saved[i]
return retval
return wrapper
return real_decorator
@block_imports("os")
def correct():
try:
import os
except ModuleNotFoundError:
print("os cannot be imported")
correct()
import os
print("import succeded outside function")
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment