Skip to content

Commit 5d1e0a9

Browse files
authored
Merge pull request #3131 from youknowone/exc-builtins
Expose exception types under vm::builtins
2 parents 65d0eb3 + d269255 commit 5d1e0a9

29 files changed

+649
-640
lines changed

derive/src/pyclass.rs

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -346,7 +346,7 @@ pub(crate) fn impl_define_exception(
346346

347347
#[pymethod(magic)]
348348
pub(crate) fn init(
349-
zelf: ::rustpython_vm::PyRef<::rustpython_vm::exceptions::PyBaseException>,
349+
zelf: ::rustpython_vm::PyRef<::rustpython_vm::builtins::PyBaseException>,
350350
args: ::rustpython_vm::function::FuncArgs,
351351
vm: &::rustpython_vm::VirtualMachine,
352352
) -> ::rustpython_vm::PyResult<()> {

src/shell.rs

Lines changed: 2 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -3,8 +3,9 @@ mod helper;
33
use rustpython_parser::error::{LexicalErrorType, ParseErrorType};
44
use rustpython_vm::readline::{Readline, ReadlineResult};
55
use rustpython_vm::{
6+
builtins::PyBaseExceptionRef,
67
compile::{self, CompileError, CompileErrorType},
7-
exceptions::{print_exception, PyBaseExceptionRef},
8+
exceptions::print_exception,
89
scope::Scope,
910
PyResult, TypeProtocol, VirtualMachine,
1011
};

vm/src/builtins/asyncgenerator.rs

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -1,7 +1,7 @@
11
use super::{PyCode, PyStrRef, PyTypeRef};
22
use crate::{
3+
builtins::PyBaseExceptionRef,
34
coroutine::{Coro, Variant},
4-
exceptions::PyBaseExceptionRef,
55
frame::FrameRef,
66
function::OptionalArg,
77
slots::{IteratorIterable, PyIter},

vm/src/builtins/dict.rs

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -1,8 +1,8 @@
11
use super::{IterStatus, PySet, PyStrRef, PyTypeRef};
22
use crate::{
3+
builtins::PyBaseExceptionRef,
34
common::ascii,
45
dictdatatype::{self, DictKey},
5-
exceptions::PyBaseExceptionRef,
66
function::{ArgIterable, FuncArgs, KwArgs, OptionalArg},
77
iterator,
88
slots::{Comparable, Hashable, Iterable, IteratorIterable, PyComparisonOp, PyIter, Unhashable},

vm/src/builtins/function/jitfunc.rs

Lines changed: 6 additions & 9 deletions
Original file line numberDiff line numberDiff line change
@@ -1,12 +1,9 @@
1-
use crate::builtins::dict::PyDictRef;
2-
use crate::builtins::function::{PyFunction, PyFunctionRef};
3-
use crate::builtins::{float, int, pybool, PyStrRef};
4-
use crate::bytecode::CodeFlags;
5-
use crate::exceptions::PyBaseExceptionRef;
6-
use crate::function::FuncArgs;
7-
use crate::VirtualMachine;
81
use crate::{
9-
IdProtocol, IntoPyObject, ItemProtocol, PyObjectRef, PyResult, TryFromObject, TypeProtocol,
2+
builtins::{float, int, pybool, PyBaseExceptionRef, PyDictRef, PyFunction, PyStrRef},
3+
bytecode::CodeFlags,
4+
function::FuncArgs,
5+
IdProtocol, IntoPyObject, ItemProtocol, PyObjectRef, PyRef, PyResult, TryFromObject,
6+
TypeProtocol, VirtualMachine,
107
};
118
use num_traits::ToPrimitive;
129
use rustpython_jit::{AbiValue, Args, CompiledCode, JitArgumentError, JitType};
@@ -66,7 +63,7 @@ fn get_jit_arg_type(dict: &PyDictRef, name: &str, vm: &VirtualMachine) -> PyResu
6663
}
6764
}
6865

69-
pub fn get_jit_arg_types(func: &PyFunctionRef, vm: &VirtualMachine) -> PyResult<Vec<JitType>> {
66+
pub fn get_jit_arg_types(func: &PyRef<PyFunction>, vm: &VirtualMachine) -> PyResult<Vec<JitType>> {
7067
let arg_names = func.code.arg_names();
7168

7269
if func

vm/src/builtins/mod.rs

Lines changed: 2 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -86,3 +86,5 @@ pub use int::try_to_float as try_bigint_to_f64;
8686

8787
mod make_module;
8888
pub use make_module::{ascii, make_module, print};
89+
90+
pub use crate::exceptions::types::*;

vm/src/builtins/singletons.rs

Lines changed: 2 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -1,13 +1,12 @@
11
use super::PyTypeRef;
22
use crate::{
3-
slots::SlotConstructor, IntoPyObject, PyClassImpl, PyContext, PyObjectRef, PyRef, PyResult,
4-
PyValue, TypeProtocol, VirtualMachine,
3+
slots::SlotConstructor, IntoPyObject, PyClassImpl, PyContext, PyObjectRef, PyResult, PyValue,
4+
TypeProtocol, VirtualMachine,
55
};
66

77
#[pyclass(module = false, name = "NoneType")]
88
#[derive(Debug)]
99
pub struct PyNone;
10-
pub type PyNoneRef = PyRef<PyNone>;
1110

1211
impl PyValue for PyNone {
1312
fn class(vm: &VirtualMachine) -> &PyTypeRef {

vm/src/codecs.rs

Lines changed: 6 additions & 6 deletions
Original file line numberDiff line numberDiff line change
@@ -1,13 +1,13 @@
1+
use crate::{
2+
builtins::{PyBaseExceptionRef, PyBytesRef, PyStr, PyStrRef, PyTuple, PyTupleRef},
3+
common::{ascii, lock::PyRwLock},
4+
IntoPyObject, PyContext, PyObjectRef, PyResult, PyValue, TryFromObject, TypeProtocol,
5+
VirtualMachine,
6+
};
17
use std::borrow::Cow;
28
use std::collections::HashMap;
39
use std::ops::Range;
410

5-
use crate::builtins::{PyBytesRef, PyStr, PyStrRef, PyTuple, PyTupleRef};
6-
use crate::common::{ascii, lock::PyRwLock};
7-
use crate::exceptions::PyBaseExceptionRef;
8-
use crate::VirtualMachine;
9-
use crate::{IntoPyObject, PyContext, PyObjectRef, PyResult, PyValue, TryFromObject, TypeProtocol};
10-
1111
pub struct CodecsRegistry {
1212
inner: PyRwLock<RegistryInner>,
1313
}

vm/src/coroutine.rs

Lines changed: 7 additions & 7 deletions
Original file line numberDiff line numberDiff line change
@@ -1,10 +1,10 @@
1-
use crate::builtins::{PyStrRef, PyTypeRef};
2-
use crate::exceptions::{self, PyBaseExceptionRef};
3-
use crate::frame::{ExecutionResult, FrameRef};
4-
use crate::VirtualMachine;
5-
use crate::{PyObjectRef, PyResult, TypeProtocol};
6-
7-
use crate::common::lock::PyMutex;
1+
use crate::{
2+
builtins::{PyBaseExceptionRef, PyStrRef, PyTypeRef},
3+
common::lock::PyMutex,
4+
exceptions,
5+
frame::{ExecutionResult, FrameRef},
6+
PyObjectRef, PyResult, TypeProtocol, VirtualMachine,
7+
};
88
use crossbeam_utils::atomic::AtomicCell;
99

1010
#[derive(Debug, PartialEq, Clone, Copy)]

0 commit comments

Comments
 (0)