if attribute is None: return False # Branch for data types if isinstance(attribute, Datum): if not i.is_of(attribute): return False if isinstance(attribute, FunctionType): if not i.is_of(attribute): return False return True def owner_of(m: ModuleType): _driver = rt.env.get('__Driver') or ContractDriver() owner = _driver.get_var(m.__name__, OWNER_KEY) return owner imports_module = ModuleType('importlib') imports_module.import_module = import_module imports_module.enforce_interface = enforce_interface imports_module.Func = Func imports_module.Var = Var imports_module.owner_of = owner_of exports = { 'importlib': imports_module, }