11use super :: pystr:: IntoPyStrRef ;
22use super :: { PyDictRef , PyStr , PyStrRef , PyTypeRef } ;
33use crate :: {
4+ builtins:: PyStrInterned ,
45 class:: PyClassImpl ,
56 convert:: ToPyObject ,
67 function:: FuncArgs ,
@@ -48,7 +49,7 @@ impl PyModule {
4849 {
4950 return Ok ( attr) ;
5051 }
51- if let Ok ( getattr) = zelf. dict ( ) . get_item ( " __getattr__" , vm) {
52+ if let Ok ( getattr) = zelf. dict ( ) . get_item ( identifier ! ( vm , __getattr__) , vm) {
5253 return vm. invoke ( & getattr, ( name, ) ) ;
5354 }
5455 let module_name = if let Some ( name) = Self :: name ( zelf. to_owned ( ) , vm) {
@@ -61,7 +62,7 @@ impl PyModule {
6162
6263 fn name ( zelf : PyRef < Self > , vm : & VirtualMachine ) -> Option < PyStrRef > {
6364 zelf. as_object ( )
64- . generic_getattr_opt ( PyStr :: from ( " __name__" ) . into_ref ( vm ) , None , vm)
65+ . generic_getattr_opt ( identifier ! ( vm , __name__) . to_owned ( ) , None , vm)
6566 . unwrap_or ( None )
6667 . and_then ( |obj| obj. downcast :: < PyStr > ( ) . ok ( ) )
6768 }
@@ -92,14 +93,14 @@ impl Py<PyModule> {
9293 // TODO: should be on PyModule, not Py<PyModule>
9394 pub ( crate ) fn init_module_dict (
9495 & self ,
95- name : PyObjectRef ,
96+ name : & ' static PyStrInterned ,
9697 doc : PyObjectRef ,
9798 vm : & VirtualMachine ,
9899 ) {
99100 let dict = self . dict ( ) ;
100- dict. set_item ( " __name__" , name, vm)
101+ dict. set_item ( identifier ! ( vm , __name__) , name. to_object ( ) , vm)
101102 . expect ( "Failed to set __name__ on module" ) ;
102- dict. set_item ( " __doc__" , doc, vm)
103+ dict. set_item ( identifier ! ( vm , __doc__) , doc, vm)
103104 . expect ( "Failed to set __doc__ on module" ) ;
104105 dict. set_item ( "__package__" , vm. ctx . none ( ) , vm)
105106 . expect ( "Failed to set __package__ on module" ) ;
@@ -131,7 +132,11 @@ impl Initializer for PyModule {
131132 . slots
132133 . flags
133134 . has_feature( crate :: types:: PyTypeFlags :: HAS_DICT ) ) ;
134- zelf. init_module_dict ( args. name . into ( ) , args. doc . to_pyobject ( vm) , vm) ;
135+ zelf. init_module_dict (
136+ vm. ctx . intern_str ( args. name . as_str ( ) ) ,
137+ args. doc . to_pyobject ( vm) ,
138+ vm,
139+ ) ;
135140 Ok ( ( ) )
136141 }
137142}
0 commit comments