@@ -39,24 +39,38 @@ fn sys_getsizeof(vm: &mut VirtualMachine, args: PyFuncArgs) -> PyResult {
3939pub fn mk_module ( ctx : & PyContext ) -> PyObjectRef {
4040 let path_list = match env:: var_os ( "PYTHONPATH" ) {
4141 Some ( paths) => env:: split_paths ( & paths)
42- . map ( |path| ctx. new_str ( path. to_str ( ) . unwrap ( ) . to_string ( ) ) )
42+ . map ( |path| {
43+ ctx. new_str (
44+ path. to_str ( )
45+ . expect ( "PYTHONPATH isn't valid unicode" )
46+ . to_string ( ) ,
47+ )
48+ } )
4349 . collect ( ) ,
4450 None => vec ! [ ] ,
4551 } ;
4652 let path = ctx. new_list ( path_list) ;
53+
4754 let modules = ctx. new_dict ( ) ;
55+
4856 let sys_name = "sys" ;
4957 let sys_mod = ctx. new_module ( & sys_name, ctx. new_scope ( None ) ) ;
58+
5059 ctx. set_item ( & modules, sys_name, sys_mod. clone ( ) ) ;
60+
5161 ctx. set_item ( & sys_mod, "modules" , modules) ;
5262 ctx. set_item ( & sys_mod, "argv" , argv ( ctx) ) ;
5363 ctx. set_item ( & sys_mod, "getrefcount" , ctx. new_rustfunc ( sys_getrefcount) ) ;
5464 ctx. set_item ( & sys_mod, "getsizeof" , ctx. new_rustfunc ( sys_getsizeof) ) ;
55- let maxsize = ctx. new_int ( std:: usize:: MAX . to_bigint ( ) . unwrap ( ) ) ;
56- ctx. set_item ( & sys_mod, "maxsize" , maxsize) ;
65+ ctx. set_item (
66+ & sys_mod,
67+ "maxsize" ,
68+ ctx. new_int ( std:: usize:: MAX . to_bigint ( ) . unwrap ( ) ) ,
69+ ) ;
5770 ctx. set_item ( & sys_mod, "path" , path) ;
5871 ctx. set_item ( & sys_mod, "ps1" , ctx. new_str ( ">>>>> " . to_string ( ) ) ) ;
5972 ctx. set_item ( & sys_mod, "ps2" , ctx. new_str ( "..... " . to_string ( ) ) ) ;
6073 ctx. set_item ( & sys_mod, "_getframe" , ctx. new_rustfunc ( getframe) ) ;
74+
6175 sys_mod
6276}
0 commit comments