nac3artiq: avoid using py.eval to get id of class virtual

This commit is contained in:
ychenfo 2021-11-11 14:18:52 +08:00
parent a3faa9b7dd
commit 9406a645c7
1 changed files with 11 additions and 5 deletions

View File

@ -274,11 +274,17 @@ impl Nac3 {
let typing_mod = PyModule::import(py, "typing").unwrap(); let typing_mod = PyModule::import(py, "typing").unwrap();
let types_mod = PyModule::import(py, "types").unwrap(); let types_mod = PyModule::import(py, "types").unwrap();
let primitive_ids = PrimitivePythonId { let primitive_ids = PrimitivePythonId {
virtual_id: py.eval( virtual_id: id_fn
"id(virtual)", .call1((builtins_mod
Some(builtins_mod.getattr("globals").unwrap().call0().unwrap().extract().unwrap()), .getattr("globals")
None .unwrap()
).unwrap().extract().unwrap(), .call0()
.unwrap()
.get_item("virtual")
.unwrap(),
)).unwrap()
.extract()
.unwrap(),
generic_alias: ( generic_alias: (
id_fn id_fn
.call1((typing_mod.getattr("_GenericAlias").unwrap(),)) .call1((typing_mod.getattr("_GenericAlias").unwrap(),))