Skip to content

Commit ce13fc5

Browse files
authored
Merge pull request RustPython#4898 from youknowone/pymodule-expose
module objects' type as PyModule
2 parents c16f813 + 1922450 commit ce13fc5

30 files changed

+95
-88
lines changed

compiler/ast/asdl_rs.py

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -474,7 +474,7 @@ class ExtendModuleVisitor(EmitVisitor):
474474
def visitModule(self, mod):
475475
depth = 0
476476
self.emit(
477-
"pub fn extend_module_nodes(vm: &VirtualMachine, module: &PyObject) {",
477+
"pub fn extend_module_nodes(vm: &VirtualMachine, module: &Py<PyModule>) {",
478478
depth,
479479
)
480480
self.emit("extend_module!(vm, module, {", depth + 1)

derive-impl/src/pymodule.rs

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -114,7 +114,7 @@ pub fn impl_pymodule(attr: AttributeArgs, module_item: Item) -> Result<TokenStre
114114
parse_quote! {
115115
pub(crate) fn extend_module(
116116
vm: &::rustpython_vm::VirtualMachine,
117-
module: &::rustpython_vm::PyObject,
117+
module: &::rustpython_vm::Py<::rustpython_vm::builtins::PyModule>,
118118
) {
119119
#module_extend_items
120120
}
@@ -123,7 +123,7 @@ pub fn impl_pymodule(attr: AttributeArgs, module_item: Item) -> Result<TokenStre
123123
#[allow(dead_code)]
124124
pub(crate) fn make_module(
125125
vm: &::rustpython_vm::VirtualMachine
126-
) -> ::rustpython_vm::PyObjectRef {
126+
) -> ::rustpython_vm::PyRef<::rustpython_vm::builtins::PyModule> {
127127
let module = vm.new_module(MODULE_NAME, vm.ctx.new_dict(), DOC);
128128
extend_module(vm, &module);
129129
module

src/lib.rs

Lines changed: 2 additions & 5 deletions
Original file line numberDiff line numberDiff line change
@@ -99,15 +99,12 @@ fn setup_main_module(vm: &VirtualMachine) -> PyResult<Scope> {
9999
let main_module = vm.new_module("__main__", scope.globals.clone(), None);
100100
main_module
101101
.dict()
102-
.and_then(|d| {
103-
d.set_item("__annotations__", vm.ctx.new_dict().into(), vm)
104-
.ok()
105-
})
102+
.set_item("__annotations__", vm.ctx.new_dict().into(), vm)
106103
.expect("Failed to initialize __main__.__annotations__");
107104

108105
vm.sys_module
109106
.get_attr("modules", vm)?
110-
.set_item("__main__", main_module, vm)?;
107+
.set_item("__main__", main_module.into(), vm)?;
111108

112109
Ok(scope)
113110
}

stdlib/src/array.rs

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -1,8 +1,8 @@
11
// spell-checker:ignore typecode tofile tolist fromfile
22

3-
use rustpython_vm::{PyObjectRef, VirtualMachine};
3+
use rustpython_vm::{builtins::PyModule, PyRef, VirtualMachine};
44

5-
pub(crate) fn make_module(vm: &VirtualMachine) -> PyObjectRef {
5+
pub(crate) fn make_module(vm: &VirtualMachine) -> PyRef<PyModule> {
66
let module = array::make_module(vm);
77

88
let array = module

stdlib/src/pyexpat.rs

Lines changed: 3 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -3,12 +3,12 @@
33
*
44
*/
55

6-
use crate::vm::{extend_module, PyObjectRef, VirtualMachine};
6+
use crate::vm::{builtins::PyModule, extend_module, PyRef, VirtualMachine};
77

8-
pub fn make_module(vm: &VirtualMachine) -> PyObjectRef {
8+
pub fn make_module(vm: &VirtualMachine) -> PyRef<PyModule> {
99
let module = _pyexpat::make_module(vm);
1010

11-
extend_module!(vm, module, {
11+
extend_module!(vm, &module, {
1212
"errors" => _errors::make_module(vm),
1313
"model" => _model::make_module(vm),
1414
});

stdlib/src/select.rs

Lines changed: 3 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -1,9 +1,10 @@
11
use crate::vm::{
2-
builtins::PyListRef, PyObject, PyObjectRef, PyResult, TryFromObject, VirtualMachine,
2+
builtins::PyListRef, builtins::PyModule, PyObject, PyObjectRef, PyRef, PyResult, TryFromObject,
3+
VirtualMachine,
34
};
45
use std::{io, mem};
56

6-
pub(crate) fn make_module(vm: &VirtualMachine) -> PyObjectRef {
7+
pub(crate) fn make_module(vm: &VirtualMachine) -> PyRef<PyModule> {
78
#[cfg(windows)]
89
crate::vm::stdlib::nt::init_winsock();
910

stdlib/src/socket.rs

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -1,8 +1,8 @@
1-
use crate::vm::{PyObjectRef, VirtualMachine};
1+
use crate::vm::{builtins::PyModule, PyRef, VirtualMachine};
22
#[cfg(feature = "ssl")]
33
pub(super) use _socket::{sock_select, timeout_error_msg, PySocket, SelectKind};
44

5-
pub fn make_module(vm: &VirtualMachine) -> PyObjectRef {
5+
pub fn make_module(vm: &VirtualMachine) -> PyRef<PyModule> {
66
#[cfg(windows)]
77
crate::vm::stdlib::nt::init_winsock();
88
_socket::make_module(vm)

stdlib/src/sqlite.rs

Lines changed: 3 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -8,13 +8,13 @@
88
// spell-checker:ignore cantlock commithook foreignkey notnull primarykey gettemppath autoindex convpath
99
// spell-checker:ignore dbmoved vnode nbytes
1010

11-
use rustpython_vm::{PyObjectRef, VirtualMachine};
11+
use rustpython_vm::{builtins::PyModule, AsObject, PyRef, VirtualMachine};
1212

1313
// pub(crate) use _sqlite::make_module;
14-
pub(crate) fn make_module(vm: &VirtualMachine) -> PyObjectRef {
14+
pub(crate) fn make_module(vm: &VirtualMachine) -> PyRef<PyModule> {
1515
// TODO: sqlite version check
1616
let module = _sqlite::make_module(vm);
17-
_sqlite::setup_module(&module, vm);
17+
_sqlite::setup_module(module.as_object(), vm);
1818
module
1919
}
2020

stdlib/src/ssl.rs

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -1,6 +1,6 @@
1-
use crate::vm::{PyObjectRef, VirtualMachine};
1+
use crate::vm::{builtins::PyModule, PyRef, VirtualMachine};
22

3-
pub(crate) fn make_module(vm: &VirtualMachine) -> PyObjectRef {
3+
pub(crate) fn make_module(vm: &VirtualMachine) -> PyRef<PyModule> {
44
// if openssl is vendored, it doesn't know the locations of system certificates
55
#[cfg(feature = "ssl-vendor")]
66
if let None | Some("0") = option_env!("OPENSSL_NO_VENDOR") {

stdlib/src/unicodedata.rs

Lines changed: 3 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -5,11 +5,11 @@
55
// spell-checker:ignore nfkc unistr unidata
66

77
use crate::vm::{
8-
builtins::PyStr, convert::TryFromBorrowedObject, PyObject, PyObjectRef, PyPayload, PyResult,
9-
VirtualMachine,
8+
builtins::PyModule, builtins::PyStr, convert::TryFromBorrowedObject, PyObject, PyObjectRef,
9+
PyPayload, PyRef, PyResult, VirtualMachine,
1010
};
1111

12-
pub fn make_module(vm: &VirtualMachine) -> PyObjectRef {
12+
pub fn make_module(vm: &VirtualMachine) -> PyRef<PyModule> {
1313
let module = unicodedata::make_module(vm);
1414

1515
let ucd: PyObjectRef = unicodedata::Ucd::new(unic_ucd_age::UNICODE_VERSION)

0 commit comments

Comments
 (0)