(
class: PyTypeRef,
iterable: ArgIterable,
value: OptionalArg<PyObjectRef>,
vm: &VirtualMachine,
)
| 270 | impl PyDict { |
| 271 | #[pyclassmethod] |
| 272 | fn fromkeys( |
| 273 | class: PyTypeRef, |
| 274 | iterable: ArgIterable, |
| 275 | value: OptionalArg<PyObjectRef>, |
| 276 | vm: &VirtualMachine, |
| 277 | ) -> PyResult { |
| 278 | let value = value.unwrap_or_none(vm); |
| 279 | let d = PyType::call(&class, ().into(), vm)?; |
| 280 | match d.downcast_exact::<Self>(vm) { |
| 281 | Ok(pydict) => { |
| 282 | for key in iterable.iter(vm)? { |
| 283 | pydict.__setitem__(key?, value.clone(), vm)?; |
| 284 | } |
| 285 | Ok(pydict.into_pyref().into()) |
| 286 | } |
| 287 | Err(pyobj) => { |
| 288 | for key in iterable.iter(vm)? { |
| 289 | pyobj.set_item(&*key?, value.clone(), vm)?; |
| 290 | } |
| 291 | Ok(pyobj) |
| 292 | } |
| 293 | } |
| 294 | } |
| 295 | |
| 296 | pub fn __len__(&self) -> usize { |
| 297 | self.entries.len() |
nothing calls this directly
no test coverage detected