import importlib.util, os, sys; trusted_root = os.path.realpath(sys.argv.pop(1)); module_name = sys.argv.pop(1); package_name = module_name.split('.', 1)[0]; package_root = os.path.join(trusted_root, package_name); module_path = os.path.join(package_root, *module_name.split('.')[1:]) + '.py'; cwd = os.path.realpath(os.getcwd()); normalize = lambda entry: cwd if entry in ('', '.', os.curdir) else os.path.realpath(entry); blocked_entries = {cwd, trusted_root}; sys.path = [trusted_root, *[entry for entry in sys.path if normalize(entry) not in blocked_entries]]; package_spec = importlib.util.spec_from_file_location(package_name, os.path.join(package_root, '__init__.py'), submodule_search_locations=[package_root],); package_module = importlib.util.module_from_spec(package_spec); sys.modules[package_name] = package_module; package_spec.loader.exec_module(package_module); module_spec = importlib.util.spec_from_file_location(module_name, module_path); module = importlib.util.module_from_spec(module_spec); module.__package__ = package_name; sys.modules[module_name] = module; module_spec.loader.exec_module(module); sys.argv[0] = module_path; raise SystemExit(module.main(sys.argv[1:]))
