| 76 | } |
| 77 | |
| 78 | pub fn import_frozen(vm: &VirtualMachine, module_name: &str) -> PyResult { |
| 79 | let frozen = vm.state.frozen.get(module_name).ok_or_else(|| { |
| 80 | vm.new_import_error( |
| 81 | format!("No such frozen object named {module_name}"), |
| 82 | vm.ctx.new_utf8_str(module_name), |
| 83 | ) |
| 84 | })?; |
| 85 | let module = import_code_obj(vm, module_name, vm.ctx.new_code(frozen.code), false)?; |
| 86 | debug_assert!(module.get_attr(identifier!(vm, __name__), vm).is_ok()); |
| 87 | let origname = resolve_frozen_alias(module_name); |
| 88 | module.set_attr("__origname__", vm.ctx.new_utf8_str(origname), vm)?; |
| 89 | Ok(module) |
| 90 | } |
| 91 | |
| 92 | pub fn import_builtin(vm: &VirtualMachine, module_name: &str) -> PyResult { |
| 93 | let sys_modules = vm.sys_module.get_attr("modules", vm)?; |