look_up_frozen + use_frozen in import.c
(name: &str, vm: &VirtualMachine)
| 137 | |
| 138 | // look_up_frozen + use_frozen in import.c |
| 139 | fn find_frozen(name: &str, vm: &VirtualMachine) -> Result<FrozenModule, FrozenError> { |
| 140 | let frozen = vm |
| 141 | .state |
| 142 | .frozen |
| 143 | .get(name) |
| 144 | .copied() |
| 145 | .ok_or(FrozenError::NotFound)?; |
| 146 | |
| 147 | // Bootstrap modules are always available regardless of override flag |
| 148 | if matches!( |
| 149 | name, |
| 150 | "_frozen_importlib" | "_frozen_importlib_external" | "zipimport" |
| 151 | ) { |
| 152 | return Ok(frozen); |
| 153 | } |
| 154 | |
| 155 | // use_frozen(): override > 0 → true, override < 0 → false, 0 → default (true) |
| 156 | // When disabled, non-bootstrap modules are simply not found (same as look_up_frozen) |
| 157 | let override_val = vm.state.override_frozen_modules.load(); |
| 158 | if override_val < 0 { |
| 159 | return Err(FrozenError::NotFound); |
| 160 | } |
| 161 | |
| 162 | Ok(frozen) |
| 163 | } |
| 164 | |
| 165 | #[pymodule(with(lock))] |
| 166 | mod _imp { |
no test coverage detected