Skip to content

Commit 338374a

Browse files
committed
revise interface
1 parent 054b125 commit 338374a

File tree

12 files changed

+38
-39
lines changed

12 files changed

+38
-39
lines changed

benches/microbenchmarks.rs

Lines changed: 1 addition & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -114,9 +114,7 @@ fn bench_rustpython_code(group: &mut BenchmarkGroup<WallTime>, bench: &MicroBenc
114114
settings.user_site_directory = false;
115115

116116
Interpreter::with_init(settings, |vm| {
117-
for (name, init) in rustpython_stdlib::get_module_inits() {
118-
vm.add_native_module(name, init);
119-
}
117+
vm.add_native_module_defs(rustpython_stdlib::get_module_defs());
120118
})
121119
.enter(|vm| {
122120
let setup_code = vm

crates/derive/src/lib.rs

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -143,8 +143,8 @@ pub fn pyexception(attr: TokenStream, item: TokenStream) -> TokenStream {
143143
}
144144

145145
/// This attribute must be applied to an inline module.
146-
/// It defines a Python module in the form a `make_module` function in the module;
147-
/// this has to be used in a `get_module_inits` to properly register the module.
146+
/// It defines a Python module in the form of a `module_def` function in the module;
147+
/// this has to be used in a `get_module_defs` to properly register the module.
148148
/// Additionally, this macro defines 'MODULE_NAME' and 'DOC' in the module.
149149
/// # Arguments
150150
/// - `name`: the name of the python module,

crates/vm/src/vm/interpreter.rs

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -38,7 +38,7 @@ impl Interpreter {
3838
/// use rustpython_vm::Interpreter;
3939
/// Interpreter::with_init(Default::default(), |vm| {
4040
/// // put this line to add stdlib to the vm
41-
/// // vm.add_native_modules(rustpython_stdlib::get_module_inits());
41+
/// // vm.add_native_module_defs(rustpython_stdlib::get_module_defs());
4242
/// }).enter(|vm| {
4343
/// vm.run_code_string(vm.new_scope_with_builtins(), "print(1)", "<...>".to_owned());
4444
/// });

crates/vm/src/vm/mod.rs

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -1264,7 +1264,7 @@ fn test_nested_frozen() {
12641264
use rustpython_vm as vm;
12651265

12661266
vm::Interpreter::with_init(Default::default(), |vm| {
1267-
// vm.add_native_modules(rustpython_stdlib::get_module_inits());
1267+
// vm.add_native_module_defs(rustpython_stdlib::get_module_defs());
12681268
vm.add_frozen(rustpython_vm::py_freeze!(
12691269
dir = "../../extra_tests/snippets"
12701270
));

crates/wasm/src/browser_module.rs

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -1,6 +1,6 @@
11
use rustpython_vm::VirtualMachine;
22

3-
pub(crate) use _browser::make_module;
3+
pub(crate) use _browser::module_def;
44

55
#[pymodule]
66
mod _browser {
@@ -259,6 +259,6 @@ mod _browser {
259259
}
260260

261261
pub fn setup_browser_module(vm: &mut VirtualMachine) {
262-
vm.add_native_module("_browser".to_owned(), Box::new(make_module));
262+
vm.add_native_module_def("_browser".to_owned(), module_def);
263263
vm.add_frozen(py_freeze!(dir = "Lib"));
264264
}

crates/wasm/src/js_module.rs

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -621,8 +621,8 @@ mod _js {
621621
}
622622
}
623623

624-
pub(crate) use _js::make_module;
624+
pub(crate) use _js::module_def;
625625

626626
pub fn setup_js_module(vm: &mut VirtualMachine) {
627-
vm.add_native_module("_js".to_owned(), Box::new(make_module));
627+
vm.add_native_module_def("_js".to_owned(), module_def);
628628
}

crates/wasm/src/vm_class.rs

Lines changed: 13 additions & 17 deletions
Original file line numberDiff line numberDiff line change
@@ -8,9 +8,7 @@ use core::cell::RefCell;
88
use js_sys::{Object, TypeError};
99
use rustpython_vm::{
1010
Interpreter, PyObjectRef, PyPayload, PyRef, PyResult, Settings, VirtualMachine,
11-
builtins::{PyModule, PyWeak},
12-
compiler::Mode,
13-
scope::Scope,
11+
builtins::PyWeak, compiler::Mode, scope::Scope,
1412
};
1513
use std::collections::HashMap;
1614
use wasm_bindgen::prelude::*;
@@ -24,16 +22,17 @@ pub(crate) struct StoredVirtualMachine {
2422
}
2523

2624
#[pymodule]
27-
mod _window {}
28-
29-
fn init_window_module(vm: &VirtualMachine) -> PyRef<PyModule> {
30-
let module = _window::make_module(vm);
31-
32-
module_exec!(vm, &module, {
33-
"window" => js_module::PyJsValue::new(wasm_builtins::window()).into_ref(&vm.ctx),
34-
});
35-
36-
module
25+
mod _window {
26+
use super::{js_module, wasm_builtins};
27+
use rustpython_vm::{Py, PyResult, VirtualMachine, builtins::PyModule};
28+
29+
pub(crate) fn module_exec(vm: &VirtualMachine, module: &Py<PyModule>) -> PyResult<()> {
30+
__module_exec(vm, module);
31+
module_exec!(vm, module, {
32+
"window" => js_module::PyJsValue::new(wasm_builtins::window()).into_ref(&vm.ctx),
33+
});
34+
Ok(())
35+
}
3736
}
3837

3938
impl StoredVirtualMachine {
@@ -45,17 +44,14 @@ impl StoredVirtualMachine {
4544
#[cfg(feature = "freeze-stdlib")]
4645
vm.add_native_module_defs(rustpython_stdlib::get_module_defs());
4746

48-
#[cfg(feature = "freeze-stdlib")]
49-
vm.add_native_modules(rustpython_stdlib::get_module_inits());
50-
5147
#[cfg(feature = "freeze-stdlib")]
5248
vm.add_frozen(rustpython_pylib::FROZEN_STDLIB);
5349

5450
vm.wasm_id = Some(id);
5551

5652
js_module::setup_js_module(vm);
5753
if inject_browser_module {
58-
vm.add_native_module("_window".to_owned(), Box::new(init_window_module));
54+
vm.add_native_module_def("_window".to_owned(), _window::module_def);
5955
setup_browser_module(vm);
6056
}
6157

examples/call_between_rust_and_python.rs

Lines changed: 1 addition & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -6,10 +6,7 @@ pub fn main() {
66
let interp = rustpython::InterpreterConfig::new()
77
.init_stdlib()
88
.init_hook(Box::new(|vm| {
9-
vm.add_native_module(
10-
"rust_py_module".to_owned(),
11-
Box::new(rust_py_module::make_module),
12-
);
9+
vm.add_native_module_def("rust_py_module".to_owned(), rust_py_module::module_def);
1310
}))
1411
.interpreter();
1512

examples/generator.rs

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -43,7 +43,7 @@ gen()
4343

4444
fn main() -> ExitCode {
4545
let interp = vm::Interpreter::with_init(Default::default(), |vm| {
46-
vm.add_native_modules(rustpython_stdlib::get_module_inits());
46+
vm.add_native_module_defs(rustpython_stdlib::get_module_defs());
4747
});
4848
let result = py_main(&interp);
4949
vm::common::os::exit_code(interp.run(|_vm| result))

examples/package_embed.rs

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -20,7 +20,7 @@ fn main() -> ExitCode {
2020
let mut settings = vm::Settings::default();
2121
settings.path_list.push("Lib".to_owned());
2222
let interp = vm::Interpreter::with_init(settings, |vm| {
23-
vm.add_native_modules(rustpython_stdlib::get_module_inits());
23+
vm.add_native_module_defs(rustpython_stdlib::get_module_defs());
2424
});
2525
let result = py_main(&interp);
2626
let result = result.map(|result| {

0 commit comments

Comments
 (0)