diff --git a/src/lib.rs b/src/lib.rs index bf0ad6be3..247a4ecfd 100644 --- a/src/lib.rs +++ b/src/lib.rs @@ -52,7 +52,7 @@ use rustpython_vm::{ scope::Scope, stdlib::{atexit, sys}, AsPyObject, InitParameter, Interpreter, PyObjectRef, PyResult, PySettings, TryFromObject, - TypeProtocol, VirtualMachine, + VirtualMachine, }; use std::{env, path::Path, process, str::FromStr}; diff --git a/src/shell.rs b/src/shell.rs index 26c00b8b8..7bffc45c6 100644 --- a/src/shell.rs +++ b/src/shell.rs @@ -6,7 +6,7 @@ use rustpython_vm::{ builtins::PyBaseExceptionRef, compile::{self, CompileError, CompileErrorType}, scope::Scope, - PyResult, TypeProtocol, VirtualMachine, + AsPyObject, PyResult, VirtualMachine, }; enum ShellExecResult { diff --git a/stdlib/src/array.rs b/stdlib/src/array.rs index 137a1cd78..9516ceb3b 100644 --- a/stdlib/src/array.rs +++ b/stdlib/src/array.rs @@ -34,7 +34,7 @@ mod array { PyComparisonOp, }, AsPyObject, PyObject, PyObjectRef, PyObjectView, PyRef, PyResult, PyValue, - TryFromBorrowedObject, TryFromObject, TypeProtocol, VirtualMachine, + TryFromBorrowedObject, TryFromObject, VirtualMachine, }, }; use itertools::Itertools; diff --git a/stdlib/src/csv.rs b/stdlib/src/csv.rs index bb94fa360..72954eff8 100644 --- a/stdlib/src/csv.rs +++ b/stdlib/src/csv.rs @@ -16,7 +16,7 @@ mod _csv { match_class, protocol::{PyIter, PyIterReturn}, types::{IterNext, IterNextIterable}, - PyObjectRef, PyObjectView, PyResult, PyValue, TryFromObject, TypeProtocol, VirtualMachine, + AsPyObject, PyObjectRef, PyObjectView, PyResult, PyValue, TryFromObject, VirtualMachine, }; use itertools::{self, Itertools}; use std::fmt; diff --git a/stdlib/src/math.rs b/stdlib/src/math.rs index 42d150fd0..17379f27b 100644 --- a/stdlib/src/math.rs +++ b/stdlib/src/math.rs @@ -6,7 +6,7 @@ mod math { builtins::{try_bigint_to_f64, try_f64_to_bigint, PyFloat, PyInt, PyIntRef}, function::{ArgIntoFloat, ArgIterable, OptionalArg, PosArgs}, utils::Either, - PyObject, PyObjectRef, PyRef, PyResult, TypeProtocol, VirtualMachine, + AsPyObject, PyObject, PyObjectRef, PyRef, PyResult, VirtualMachine, }; use num_bigint::BigInt; use num_traits::{One, Signed, Zero}; diff --git a/stdlib/src/pystruct.rs b/stdlib/src/pystruct.rs index e504d4c9c..da736f87e 100644 --- a/stdlib/src/pystruct.rs +++ b/stdlib/src/pystruct.rs @@ -16,7 +16,7 @@ pub(crate) mod _struct { match_class, protocol::PyIterReturn, types::{Constructor, IterNext, IterNextIterable}, - PyObjectRef, PyObjectView, PyResult, PyValue, TryFromObject, TypeProtocol, VirtualMachine, + AsPyObject, PyObjectRef, PyObjectView, PyResult, PyValue, TryFromObject, VirtualMachine, }; use crossbeam_utils::atomic::AtomicCell; diff --git a/stdlib/src/select.rs b/stdlib/src/select.rs index 226250efb..c4d9267c6 100644 --- a/stdlib/src/select.rs +++ b/stdlib/src/select.rs @@ -266,7 +266,7 @@ mod decl { common::lock::PyMutex, function::{IntoPyObject, OptionalArg}, stdlib::io::Fildes, - PyValue, TypeProtocol, + AsPyObject, PyValue, }; use libc::pollfd; use num_traits::ToPrimitive; diff --git a/stdlib/src/socket.rs b/stdlib/src/socket.rs index 378d3f7dc..fe0c475b3 100644 --- a/stdlib/src/socket.rs +++ b/stdlib/src/socket.rs @@ -18,7 +18,7 @@ mod _socket { OptionalOption, }, utils::{Either, ToCString}, - PyObjectRef, PyResult, PyValue, TryFromBorrowedObject, TryFromObject, TypeProtocol, + AsPyObject, PyObjectRef, PyResult, PyValue, TryFromBorrowedObject, TryFromObject, VirtualMachine, }; use crossbeam_utils::atomic::AtomicCell; diff --git a/vm/src/anystr.rs b/vm/src/anystr.rs index faeea9b2a..bcf209d69 100644 --- a/vm/src/anystr.rs +++ b/vm/src/anystr.rs @@ -3,7 +3,7 @@ use crate::{ cformat::CFormatString, function::{single_or_tuple_any, OptionalOption}, protocol::PyIterIter, - PyObjectRef, PyResult, TryFromObject, TypeProtocol, VirtualMachine, + AsPyObject, PyObjectRef, PyResult, TryFromObject, VirtualMachine, }; use num_traits::{cast::ToPrimitive, sign::Signed}; use std::str::FromStr; diff --git a/vm/src/builtins/asyncgenerator.rs b/vm/src/builtins/asyncgenerator.rs index c6304cca5..6b029ded9 100644 --- a/vm/src/builtins/asyncgenerator.rs +++ b/vm/src/builtins/asyncgenerator.rs @@ -7,7 +7,7 @@ use crate::{ protocol::PyIterReturn, pyclass::PyClassImpl, types::{Constructor, IterNext, IterNextIterable, Unconstructible}, - AsPyObject, PyContext, PyObjectRef, PyRef, PyResult, PyValue, TypeProtocol, VirtualMachine, + AsPyObject, PyContext, PyObjectRef, PyRef, PyResult, PyValue, VirtualMachine, }; use crossbeam_utils::atomic::AtomicCell; diff --git a/vm/src/builtins/builtinfunc.rs b/vm/src/builtins/builtinfunc.rs index f8dc8eeb0..af05e3619 100644 --- a/vm/src/builtins/builtinfunc.rs +++ b/vm/src/builtins/builtinfunc.rs @@ -4,7 +4,7 @@ use crate::{ function::{FuncArgs, IntoPyNativeFunc, PyNativeFunc}, pyclass::PyClassImpl, types::{Callable, Constructor, GetDescriptor, Unconstructible}, - PyContext, PyObjectRef, PyRef, PyResult, PyValue, TypeProtocol, VirtualMachine, + AsPyObject, PyContext, PyObjectRef, PyRef, PyResult, PyValue, VirtualMachine, }; use std::fmt; diff --git a/vm/src/builtins/bytearray.rs b/vm/src/builtins/bytearray.rs index 2cd935870..d8fe1c65f 100644 --- a/vm/src/builtins/bytearray.rs +++ b/vm/src/builtins/bytearray.rs @@ -34,7 +34,7 @@ use crate::{ }, utils::Either, AsPyObject, PyContext, PyObject, PyObjectRef, PyObjectView, PyObjectWrap, PyRef, PyResult, - PyValue, TryFromBorrowedObject, TryFromObject, TypeProtocol, VirtualMachine, + PyValue, TryFromBorrowedObject, TryFromObject, VirtualMachine, }; use bstr::ByteSlice; use std::{borrow::Cow, mem::size_of}; diff --git a/vm/src/builtins/bytes.rs b/vm/src/builtins/bytes.rs index fbd459a83..159633a39 100644 --- a/vm/src/builtins/bytes.rs +++ b/vm/src/builtins/bytes.rs @@ -23,7 +23,7 @@ use crate::{ }, utils::Either, AsPyObject, PyContext, PyObject, PyObjectRef, PyObjectView, PyObjectWrap, PyRef, PyResult, - PyValue, TryFromBorrowedObject, TryFromObject, TypeProtocol, VirtualMachine, + PyValue, TryFromBorrowedObject, TryFromObject, VirtualMachine, }; use bstr::ByteSlice; use std::{borrow::Cow, mem::size_of, ops::Deref}; diff --git a/vm/src/builtins/classmethod.rs b/vm/src/builtins/classmethod.rs index 2405c418e..b8a60e438 100644 --- a/vm/src/builtins/classmethod.rs +++ b/vm/src/builtins/classmethod.rs @@ -3,7 +3,7 @@ use crate::{ builtins::PyBoundMethod, pyclass::PyClassImpl, types::{Constructor, GetDescriptor}, - PyContext, PyObjectRef, PyRef, PyResult, PyValue, TypeProtocol, VirtualMachine, + AsPyObject, PyContext, PyObjectRef, PyRef, PyResult, PyValue, VirtualMachine, }; /// classmethod(function) -> method diff --git a/vm/src/builtins/code.rs b/vm/src/builtins/code.rs index 3e10632a6..25c0d3a55 100644 --- a/vm/src/builtins/code.rs +++ b/vm/src/builtins/code.rs @@ -7,8 +7,7 @@ use crate::{ bytecode::{self, BorrowedConstant, Constant, ConstantBag}, function::FuncArgs, pyclass::{PyClassImpl, StaticType}, - AsPyObject, PyContext, PyObject, PyObjectRef, PyRef, PyResult, PyValue, TypeProtocol, - VirtualMachine, + AsPyObject, PyContext, PyObject, PyObjectRef, PyRef, PyResult, PyValue, VirtualMachine, }; use num_traits::Zero; use std::{fmt, ops::Deref}; diff --git a/vm/src/builtins/complex.rs b/vm/src/builtins/complex.rs index 1aa41e035..41f1f99fa 100644 --- a/vm/src/builtins/complex.rs +++ b/vm/src/builtins/complex.rs @@ -7,8 +7,7 @@ use crate::{ }, pyclass::PyClassImpl, types::{Comparable, Constructor, Hashable, PyComparisonOp}, - AsPyObject, PyContext, PyObject, PyObjectRef, PyRef, PyResult, PyValue, TypeProtocol, - VirtualMachine, + AsPyObject, PyContext, PyObject, PyObjectRef, PyRef, PyResult, PyValue, VirtualMachine, }; use num_complex::Complex64; use num_traits::Zero; diff --git a/vm/src/builtins/dict.rs b/vm/src/builtins/dict.rs index 299037110..0a3953f19 100644 --- a/vm/src/builtins/dict.rs +++ b/vm/src/builtins/dict.rs @@ -22,7 +22,7 @@ use crate::{ }, vm::{ReprGuard, VirtualMachine}, AsPyObject, PyContext, PyObject, PyObjectRef, PyObjectView, PyRef, PyResult, PyValue, - TryFromObject, TypeProtocol, + TryFromObject, }; use rustpython_common::lock::PyMutex; use std::{borrow::Cow, fmt}; diff --git a/vm/src/builtins/enumerate.rs b/vm/src/builtins/enumerate.rs index e63ca95f8..f1db88e79 100644 --- a/vm/src/builtins/enumerate.rs +++ b/vm/src/builtins/enumerate.rs @@ -5,7 +5,7 @@ use crate::{ protocol::{PyIter, PyIterReturn}, pyclass::PyClassImpl, types::{Constructor, IterNext, IterNextIterable}, - PyContext, PyObjectRef, PyRef, PyResult, PyValue, TypeProtocol, VirtualMachine, + AsPyObject, PyContext, PyObjectRef, PyRef, PyResult, PyValue, VirtualMachine, }; use num_bigint::BigInt; use num_traits::Zero; diff --git a/vm/src/builtins/float.rs b/vm/src/builtins/float.rs index de888f594..7fb7e7792 100644 --- a/vm/src/builtins/float.rs +++ b/vm/src/builtins/float.rs @@ -10,7 +10,7 @@ use crate::{ pyclass::PyClassImpl, types::{Comparable, Constructor, Hashable, PyComparisonOp}, AsPyObject, PyContext, PyObject, PyObjectRef, PyRef, PyResult, PyValue, TryFromBorrowedObject, - TryFromObject, TypeProtocol, VirtualMachine, + TryFromObject, VirtualMachine, }; use num_bigint::{BigInt, ToBigInt}; use num_complex::Complex64; diff --git a/vm/src/builtins/function.rs b/vm/src/builtins/function.rs index 1e3f9c777..339cb44ce 100644 --- a/vm/src/builtins/function.rs +++ b/vm/src/builtins/function.rs @@ -14,8 +14,7 @@ use crate::{ pyclass::PyClassImpl, scope::Scope, types::{Callable, Comparable, Constructor, GetAttr, GetDescriptor, PyComparisonOp}, - AsPyObject, PyContext, PyObject, PyObjectRef, PyRef, PyResult, PyValue, TypeProtocol, - VirtualMachine, + AsPyObject, PyContext, PyObject, PyObjectRef, PyRef, PyResult, PyValue, VirtualMachine, }; #[cfg(feature = "jit")] use crate::{common::lock::OnceCell, function::IntoPyObject}; diff --git a/vm/src/builtins/function/jitfunc.rs b/vm/src/builtins/function/jitfunc.rs index 9ced316fd..ee38cc402 100644 --- a/vm/src/builtins/function/jitfunc.rs +++ b/vm/src/builtins/function/jitfunc.rs @@ -2,7 +2,7 @@ use crate::{ builtins::{float, int, pybool, PyBaseExceptionRef, PyDictRef, PyFunction, PyStrRef}, bytecode::CodeFlags, function::{FuncArgs, IntoPyObject}, - AsPyObject, PyObject, PyObjectRef, PyResult, TryFromObject, TypeProtocol, VirtualMachine, + AsPyObject, PyObject, PyObjectRef, PyResult, TryFromObject, VirtualMachine, }; use num_traits::ToPrimitive; use rustpython_jit::{AbiValue, Args, CompiledCode, JitArgumentError, JitType}; diff --git a/vm/src/builtins/genericalias.rs b/vm/src/builtins/genericalias.rs index d6d793360..104919d8b 100644 --- a/vm/src/builtins/genericalias.rs +++ b/vm/src/builtins/genericalias.rs @@ -6,7 +6,7 @@ use crate::{ pyclass::PyClassImpl, types::{AsMapping, Callable, Comparable, Constructor, GetAttr, Hashable, PyComparisonOp}, AsPyObject, PyContext, PyObject, PyObjectRef, PyObjectView, PyRef, PyResult, PyValue, - TryFromObject, TypeProtocol, VirtualMachine, + TryFromObject, VirtualMachine, }; use std::fmt; diff --git a/vm/src/builtins/getset.rs b/vm/src/builtins/getset.rs index 022a4b6a1..bae3f9423 100644 --- a/vm/src/builtins/getset.rs +++ b/vm/src/builtins/getset.rs @@ -7,7 +7,7 @@ use crate::{ pyclass::PyClassImpl, pyobject::PyThreadingConstraint, types::{Constructor, GetDescriptor, Unconstructible}, - PyContext, PyObjectRef, PyRef, PyResult, PyValue, TryFromObject, TypeProtocol, VirtualMachine, + AsPyObject, PyContext, PyObjectRef, PyRef, PyResult, PyValue, TryFromObject, VirtualMachine, }; pub type PyGetterFunc = Box PyResult)>; diff --git a/vm/src/builtins/int.rs b/vm/src/builtins/int.rs index da837a099..d49a47f7b 100644 --- a/vm/src/builtins/int.rs +++ b/vm/src/builtins/int.rs @@ -10,7 +10,7 @@ use crate::{ pyclass::PyClassImpl, types::{Comparable, Constructor, Hashable, PyComparisonOp}, AsPyObject, PyContext, PyObject, PyObjectRef, PyRef, PyResult, PyValue, TryFromBorrowedObject, - TypeProtocol, VirtualMachine, + VirtualMachine, }; use bstr::ByteSlice; use num_bigint::{BigInt, BigUint, Sign}; diff --git a/vm/src/builtins/list.rs b/vm/src/builtins/list.rs index 622f56153..75fefc421 100644 --- a/vm/src/builtins/list.rs +++ b/vm/src/builtins/list.rs @@ -16,7 +16,7 @@ use crate::{ utils::collection_repr, vm::{ReprGuard, VirtualMachine}, AsPyObject, PyContext, PyObject, PyObjectRef, PyObjectView, PyObjectWrap, PyRef, PyResult, - PyValue, TypeProtocol, + PyValue, }; use std::{borrow::Cow, fmt, ops::DerefMut}; diff --git a/vm/src/builtins/mappingproxy.rs b/vm/src/builtins/mappingproxy.rs index 826f963bb..049e530e2 100644 --- a/vm/src/builtins/mappingproxy.rs +++ b/vm/src/builtins/mappingproxy.rs @@ -6,7 +6,7 @@ use crate::{ protocol::{PyMapping, PyMappingMethods, PySequence, PySequenceMethods}, pyclass::PyClassImpl, types::{AsMapping, AsSequence, Constructor, Iterable}, - PyContext, PyObject, PyObjectRef, PyRef, PyResult, PyValue, TryFromObject, TypeProtocol, + AsPyObject, PyContext, PyObject, PyObjectRef, PyRef, PyResult, PyValue, TryFromObject, VirtualMachine, }; diff --git a/vm/src/builtins/memory.rs b/vm/src/builtins/memory.rs index 6a12551c8..8bfebc8a8 100644 --- a/vm/src/builtins/memory.rs +++ b/vm/src/builtins/memory.rs @@ -19,7 +19,7 @@ use crate::{ types::{AsBuffer, AsMapping, AsSequence, Comparable, Constructor, Hashable, PyComparisonOp}, utils::Either, AsPyObject, PyContext, PyObject, PyObjectRef, PyObjectView, PyObjectWrap, PyRef, PyResult, - PyValue, TryFromBorrowedObject, TryFromObject, TypeProtocol, VirtualMachine, + PyValue, TryFromBorrowedObject, TryFromObject, VirtualMachine, }; use crossbeam_utils::atomic::AtomicCell; use itertools::Itertools; diff --git a/vm/src/builtins/module.rs b/vm/src/builtins/module.rs index 1586c9371..c142eb381 100644 --- a/vm/src/builtins/module.rs +++ b/vm/src/builtins/module.rs @@ -42,7 +42,7 @@ impl PyModule { #[pymethod(magic)] fn init(zelf: PyRef, args: ModuleInitArgs, vm: &VirtualMachine) { - debug_assert!(crate::TypeProtocol::class(zelf.as_object()) + debug_assert!(crate::AsPyObject::class(zelf.as_object()) .slots .flags .has_feature(crate::types::PyTypeFlags::HAS_DICT)); diff --git a/vm/src/builtins/namespace.rs b/vm/src/builtins/namespace.rs index aaebfdb3e..441b60d46 100644 --- a/vm/src/builtins/namespace.rs +++ b/vm/src/builtins/namespace.rs @@ -5,7 +5,7 @@ use crate::{ pyclass::PyClassImpl, types::{Comparable, Constructor, PyComparisonOp}, vm::ReprGuard, - AsPyObject, PyContext, PyObject, PyRef, PyResult, PyValue, TypeProtocol, VirtualMachine, + AsPyObject, PyContext, PyObject, PyRef, PyResult, PyValue, VirtualMachine, }; /// A simple attribute-based namespace. diff --git a/vm/src/builtins/object.rs b/vm/src/builtins/object.rs index a079cb3ab..ccd12c882 100644 --- a/vm/src/builtins/object.rs +++ b/vm/src/builtins/object.rs @@ -5,7 +5,7 @@ use crate::{ pyclass::PyClassImpl, types::PyComparisonOp, utils::Either, - AsPyObject, PyContext, PyObject, PyObjectRef, PyResult, PyValue, TypeProtocol, VirtualMachine, + AsPyObject, PyContext, PyObject, PyObjectRef, PyResult, PyValue, VirtualMachine, }; /// object() diff --git a/vm/src/builtins/property.rs b/vm/src/builtins/property.rs index 60f714061..3a1505cd6 100644 --- a/vm/src/builtins/property.rs +++ b/vm/src/builtins/property.rs @@ -4,8 +4,8 @@ use super::PyTypeRef; use crate::common::lock::PyRwLock; use crate::{ - function::FuncArgs, pyclass::PyClassImpl, types::GetDescriptor, PyContext, PyObjectRef, PyRef, - PyResult, PyValue, TryFromObject, TypeProtocol, VirtualMachine, + function::FuncArgs, pyclass::PyClassImpl, types::GetDescriptor, AsPyObject, PyContext, + PyObjectRef, PyRef, PyResult, PyValue, TryFromObject, VirtualMachine, }; /// Property attribute. @@ -185,7 +185,7 @@ impl PyProperty { deleter: PyRwLock::new(zelf.fdel()), doc: PyRwLock::new(None), } - .into_ref_with_type(vm, TypeProtocol::clone_class(&zelf)) + .into_ref_with_type(vm, AsPyObject::clone_class(&zelf)) } #[pymethod] @@ -200,7 +200,7 @@ impl PyProperty { deleter: PyRwLock::new(zelf.fdel()), doc: PyRwLock::new(None), } - .into_ref_with_type(vm, TypeProtocol::clone_class(&zelf)) + .into_ref_with_type(vm, AsPyObject::clone_class(&zelf)) } #[pymethod] @@ -215,7 +215,7 @@ impl PyProperty { deleter: PyRwLock::new(deleter.or_else(|| zelf.fdel())), doc: PyRwLock::new(None), } - .into_ref_with_type(vm, TypeProtocol::clone_class(&zelf)) + .into_ref_with_type(vm, AsPyObject::clone_class(&zelf)) } #[pyproperty(magic)] diff --git a/vm/src/builtins/pybool.rs b/vm/src/builtins/pybool.rs index 98315b954..3e211f8c8 100644 --- a/vm/src/builtins/pybool.rs +++ b/vm/src/builtins/pybool.rs @@ -4,7 +4,7 @@ use crate::{ pyclass::PyClassImpl, types::Constructor, AsPyObject, PyContext, PyObject, PyObjectRef, PyResult, PyValue, TryFromBorrowedObject, - TypeProtocol, VirtualMachine, + VirtualMachine, }; use num_bigint::Sign; use num_traits::Zero; diff --git a/vm/src/builtins/pystr.rs b/vm/src/builtins/pystr.rs index 9ee232a0b..939ba3d9e 100644 --- a/vm/src/builtins/pystr.rs +++ b/vm/src/builtins/pystr.rs @@ -19,7 +19,7 @@ use crate::{ Iterable, PyComparisonOp, Unconstructible, }, AsPyObject, PyContext, PyObject, PyObjectRef, PyObjectView, PyRef, PyResult, PyValue, - TryFromBorrowedObject, TypeProtocol, VirtualMachine, + TryFromBorrowedObject, VirtualMachine, }; use ascii::{AsciiStr, AsciiString}; use bstr::ByteSlice; diff --git a/vm/src/builtins/pysuper.rs b/vm/src/builtins/pysuper.rs index ea01de8bf..95ced84d5 100644 --- a/vm/src/builtins/pysuper.rs +++ b/vm/src/builtins/pysuper.rs @@ -8,7 +8,7 @@ use crate::{ function::OptionalArg, pyclass::PyClassImpl, types::{Constructor, GetAttr, GetDescriptor}, - AsPyObject, PyContext, PyObjectRef, PyRef, PyResult, PyValue, TypeProtocol, VirtualMachine, + AsPyObject, PyContext, PyObjectRef, PyRef, PyResult, PyValue, VirtualMachine, }; #[pyclass(module = false, name = "super")] diff --git a/vm/src/builtins/pytype.rs b/vm/src/builtins/pytype.rs index 8798bca74..ccedd61eb 100644 --- a/vm/src/builtins/pytype.rs +++ b/vm/src/builtins/pytype.rs @@ -12,8 +12,7 @@ use crate::{ pyclass::{PyClassImpl, StaticType}, pyobject::PyLease, types::{Callable, GetAttr, PyTypeFlags, PyTypeSlots, SetAttr}, - AsPyObject, PyContext, PyObjectRef, PyObjectWeak, PyRef, PyResult, PyValue, TypeProtocol, - VirtualMachine, + AsPyObject, PyContext, PyObjectRef, PyObjectWeak, PyRef, PyResult, PyValue, VirtualMachine, }; use itertools::Itertools; use std::{ diff --git a/vm/src/builtins/pyunion.rs b/vm/src/builtins/pyunion.rs index 42a184666..46b735d69 100644 --- a/vm/src/builtins/pyunion.rs +++ b/vm/src/builtins/pyunion.rs @@ -7,7 +7,7 @@ use crate::{ pyclass::PyClassImpl, types::{AsMapping, Comparable, GetAttr, Hashable, Iterable, PyComparisonOp}, AsPyObject, PyContext, PyObject, PyObjectRef, PyObjectView, PyRef, PyResult, PyValue, - TryFromObject, TypeProtocol, VirtualMachine, + TryFromObject, VirtualMachine, }; use std::fmt; diff --git a/vm/src/builtins/range.rs b/vm/src/builtins/range.rs index dd22a4541..cd8e13cb5 100644 --- a/vm/src/builtins/range.rs +++ b/vm/src/builtins/range.rs @@ -10,7 +10,7 @@ use crate::{ Iterable, PyComparisonOp, Unconstructible, }, AsPyObject, PyContext, PyObject, PyObjectRef, PyObjectView, PyRef, PyResult, PyValue, - TryFromObject, TypeProtocol, VirtualMachine, + TryFromObject, VirtualMachine, }; use crossbeam_utils::atomic::AtomicCell; use num_bigint::{BigInt, Sign}; diff --git a/vm/src/builtins/set.rs b/vm/src/builtins/set.rs index b3339e64a..a0c077001 100644 --- a/vm/src/builtins/set.rs +++ b/vm/src/builtins/set.rs @@ -18,7 +18,6 @@ use crate::{ utils::collection_repr, vm::{ReprGuard, VirtualMachine}, AsPyObject, PyContext, PyObject, PyObjectRef, PyRef, PyResult, PyValue, TryFromObject, - TypeProtocol, }; use std::borrow::Cow; use std::{fmt, ops::Deref}; diff --git a/vm/src/builtins/singletons.rs b/vm/src/builtins/singletons.rs index 33db75183..654cb5953 100644 --- a/vm/src/builtins/singletons.rs +++ b/vm/src/builtins/singletons.rs @@ -1,7 +1,7 @@ use super::PyTypeRef; use crate::{ - function::IntoPyObject, pyclass::PyClassImpl, types::Constructor, PyContext, PyObjectRef, - PyResult, PyValue, TypeProtocol, VirtualMachine, + function::IntoPyObject, pyclass::PyClassImpl, types::Constructor, AsPyObject, PyContext, + PyObjectRef, PyResult, PyValue, VirtualMachine, }; #[pyclass(module = false, name = "NoneType")] diff --git a/vm/src/builtins/slice.rs b/vm/src/builtins/slice.rs index 3a3f998dd..7a31cd454 100644 --- a/vm/src/builtins/slice.rs +++ b/vm/src/builtins/slice.rs @@ -4,8 +4,7 @@ use crate::{ function::{FuncArgs, IntoPyObject, OptionalArg, PyComparisonValue}, pyclass::PyClassImpl, types::{Comparable, Constructor, Hashable, PyComparisonOp, Unhashable}, - AsPyObject, PyContext, PyObject, PyObjectRef, PyRef, PyResult, PyValue, TypeProtocol, - VirtualMachine, + AsPyObject, PyContext, PyObject, PyObjectRef, PyRef, PyResult, PyValue, VirtualMachine, }; use num_bigint::{BigInt, ToBigInt}; use num_traits::{One, Signed, ToPrimitive, Zero}; diff --git a/vm/src/builtins/tuple.rs b/vm/src/builtins/tuple.rs index 7473e2a56..b727a5cf1 100644 --- a/vm/src/builtins/tuple.rs +++ b/vm/src/builtins/tuple.rs @@ -15,7 +15,6 @@ use crate::{ utils::collection_repr, vm::{ReprGuard, VirtualMachine}, AsPyObject, PyContext, PyObject, PyObjectRef, PyRef, PyResult, PyValue, TryFromObject, - TypeProtocol, }; use std::{borrow::Cow, fmt, marker::PhantomData}; diff --git a/vm/src/builtins/weakref.rs b/vm/src/builtins/weakref.rs index 51e0e5dcc..0db91cb57 100644 --- a/vm/src/builtins/weakref.rs +++ b/vm/src/builtins/weakref.rs @@ -8,7 +8,7 @@ use crate::{ pyclass::PyClassImpl, types::{Callable, Comparable, Constructor, Hashable, PyComparisonOp}, AsPyObject, PyContext, PyObject, PyObjectRef, PyObjectWrap, PyRef, PyResult, PyValue, - TypeProtocol, VirtualMachine, + VirtualMachine, }; pub use crate::pyobject::PyWeak; diff --git a/vm/src/builtins/zip.rs b/vm/src/builtins/zip.rs index 0213530db..82e87edf8 100644 --- a/vm/src/builtins/zip.rs +++ b/vm/src/builtins/zip.rs @@ -5,7 +5,7 @@ use crate::{ protocol::{PyIter, PyIterReturn}, pyclass::PyClassImpl, types::{Constructor, IterNext, IterNextIterable}, - PyContext, PyObjectRef, PyRef, PyResult, PyValue, TryFromObject, TypeProtocol, VirtualMachine, + AsPyObject, PyContext, PyObjectRef, PyRef, PyResult, PyValue, TryFromObject, VirtualMachine, }; use rustpython_common::atomic::{self, PyAtomic, Radium}; diff --git a/vm/src/cformat.rs b/vm/src/cformat.rs index 0184b00c8..56dd20ef4 100644 --- a/vm/src/cformat.rs +++ b/vm/src/cformat.rs @@ -7,7 +7,7 @@ use crate::{ function::ArgIntoFloat, protocol::PyBuffer, stdlib::builtins, - PyObjectRef, PyResult, TryFromBorrowedObject, TryFromObject, TypeProtocol, VirtualMachine, + AsPyObject, PyObjectRef, PyResult, TryFromBorrowedObject, TryFromObject, VirtualMachine, }; use itertools::Itertools; use num_bigint::{BigInt, Sign}; diff --git a/vm/src/codecs.rs b/vm/src/codecs.rs index 978374c54..bc22c16b9 100644 --- a/vm/src/codecs.rs +++ b/vm/src/codecs.rs @@ -2,8 +2,7 @@ use crate::{ builtins::{PyBaseExceptionRef, PyBytesRef, PyStr, PyStrRef, PyTuple, PyTupleRef}, common::{ascii, lock::PyRwLock}, function::IntoPyObject, - AsPyObject, PyContext, PyObject, PyObjectRef, PyResult, PyValue, TryFromObject, TypeProtocol, - VirtualMachine, + AsPyObject, PyContext, PyObject, PyObjectRef, PyResult, PyValue, TryFromObject, VirtualMachine, }; use std::{borrow::Cow, collections::HashMap, fmt::Write, ops::Range}; diff --git a/vm/src/convert.rs b/vm/src/convert.rs index 2e723d4fd..c9ca4e50a 100644 --- a/vm/src/convert.rs +++ b/vm/src/convert.rs @@ -1,5 +1,5 @@ use crate::{ - pyobject::{PyObject, PyObjectRef, PyRef, PyResult, PyValue, TypeProtocol}, + pyobject::{AsPyObject, PyObject, PyObjectRef, PyRef, PyResult, PyValue}, vm::VirtualMachine, }; diff --git a/vm/src/coroutine.rs b/vm/src/coroutine.rs index e3bbe45d0..7562f3d5b 100644 --- a/vm/src/coroutine.rs +++ b/vm/src/coroutine.rs @@ -3,7 +3,7 @@ use crate::{ common::lock::PyMutex, frame::{ExecutionResult, FrameRef}, protocol::PyIterReturn, - AsPyObject, PyObject, PyObjectRef, PyResult, TypeProtocol, VirtualMachine, + AsPyObject, PyObject, PyObjectRef, PyResult, VirtualMachine, }; use crossbeam_utils::atomic::AtomicCell; diff --git a/vm/src/dictdatatype.rs b/vm/src/dictdatatype.rs index ddbcca800..0f47f801c 100644 --- a/vm/src/dictdatatype.rs +++ b/vm/src/dictdatatype.rs @@ -10,8 +10,7 @@ use crate::common::{ use crate::{ builtins::{PyInt, PyStr, PyStrRef}, function::IntoPyObject, - AsPyObject, PyObject, PyObjectRef, PyObjectWrap, PyRefExact, PyResult, TypeProtocol, - VirtualMachine, + AsPyObject, PyObject, PyObjectRef, PyObjectWrap, PyRefExact, PyResult, VirtualMachine, }; use num_traits::ToPrimitive; use std::{fmt, mem::size_of, ops::ControlFlow}; diff --git a/vm/src/exceptions.rs b/vm/src/exceptions.rs index 3674d8542..f0e83883e 100644 --- a/vm/src/exceptions.rs +++ b/vm/src/exceptions.rs @@ -9,8 +9,7 @@ use crate::{ pyclass::{PyClassImpl, StaticType}, stdlib::sys, suggestion::offer_suggestions, - AsPyObject, PyContext, PyObjectRef, PyRef, PyResult, PyValue, TryFromObject, TypeProtocol, - VirtualMachine, + AsPyObject, PyContext, PyObjectRef, PyRef, PyResult, PyValue, TryFromObject, VirtualMachine, }; use crossbeam_utils::atomic::AtomicCell; use itertools::Itertools; diff --git a/vm/src/format.rs b/vm/src/format.rs index c4a762bfc..448b5c86e 100644 --- a/vm/src/format.rs +++ b/vm/src/format.rs @@ -3,7 +3,7 @@ use crate::{ common::float_ops, function::{FuncArgs, IntoPyException}, stdlib::builtins, - PyObject, PyObjectRef, PyResult, TypeProtocol, VirtualMachine, + AsPyObject, PyObject, PyObjectRef, PyResult, VirtualMachine, }; use itertools::{Itertools, PeekingNext}; use num_bigint::{BigInt, Sign}; diff --git a/vm/src/frame.rs b/vm/src/frame.rs index fa0ba1386..e9ced5a68 100644 --- a/vm/src/frame.rs +++ b/vm/src/frame.rs @@ -16,7 +16,7 @@ use crate::{ stdlib::builtins, types::PyComparisonOp, AsPyObject, PyMethod, PyObject, PyObjectRef, PyObjectWrap, PyRef, PyResult, PyValue, - TryFromObject, TypeProtocol, VirtualMachine, + TryFromObject, VirtualMachine, }; use indexmap::IndexMap; use itertools::Itertools; diff --git a/vm/src/function.rs b/vm/src/function.rs index 5281515e1..b928c5880 100644 --- a/vm/src/function.rs +++ b/vm/src/function.rs @@ -6,7 +6,7 @@ mod number; use crate::{ builtins::{PyBaseExceptionRef, PyTupleRef, PyTypeRef}, pyobject::PyThreadingConstraint, - PyObject, PyObjectPayload, PyObjectRef, PyRef, PyResult, PyValue, TryFromObject, TypeProtocol, + AsPyObject, PyObject, PyObjectPayload, PyObjectRef, PyRef, PyResult, PyValue, TryFromObject, VirtualMachine, }; use indexmap::IndexMap; diff --git a/vm/src/function/argument.rs b/vm/src/function/argument.rs index aa01450fe..c3b7b2fe9 100644 --- a/vm/src/function/argument.rs +++ b/vm/src/function/argument.rs @@ -3,7 +3,7 @@ use crate::{ builtins::{iter::PySequenceIterator, PyDict, PyDictRef}, protocol::PyIter, protocol::{PyIterIter, PyMapping, PyMappingMethods}, - PyObject, PyObjectRef, PyObjectWrap, PyResult, PyValue, TryFromObject, TypeProtocol, + AsPyObject, PyObject, PyObjectRef, PyObjectWrap, PyResult, PyValue, TryFromObject, VirtualMachine, }; use std::{borrow::Borrow, marker::PhantomData}; diff --git a/vm/src/function/number.rs b/vm/src/function/number.rs index 1940db657..963680162 100644 --- a/vm/src/function/number.rs +++ b/vm/src/function/number.rs @@ -1,4 +1,4 @@ -use crate::{PyObjectRef, PyResult, TryFromObject, TypeProtocol, VirtualMachine}; +use crate::{AsPyObject, PyObjectRef, PyResult, TryFromObject, VirtualMachine}; use num_complex::Complex64; /// A Python complex-like object. diff --git a/vm/src/import.rs b/vm/src/import.rs index 2dc632bc1..7f8f2c4fb 100644 --- a/vm/src/import.rs +++ b/vm/src/import.rs @@ -8,7 +8,7 @@ use crate::{ scope::Scope, version::get_git_revision, vm::{InitParameter, VirtualMachine}, - PyObjectRef, PyRef, PyResult, PyValue, TryFromObject, TypeProtocol, + AsPyObject, PyObjectRef, PyRef, PyResult, PyValue, TryFromObject, }; use rand::Rng; diff --git a/vm/src/lib.rs b/vm/src/lib.rs index 5a88bdd0a..72f62139b 100644 --- a/vm/src/lib.rs +++ b/vm/src/lib.rs @@ -89,13 +89,11 @@ mod pyobject { pub use self::convert::{TryFromBorrowedObject, TryFromObject}; // pyobject items pub use self::pyobject::{ - PyContext, PyMethod, PyObjectPayload, PyObjectWrap, PyRefExact, PyResult, PyStructSequence, - PyValue, TypeProtocol, + AsPyObject, PyContext, PyMethod, PyObjectPayload, PyObjectWrap, PyRefExact, PyResult, + PyStructSequence, PyValue, }; // pyobjectrc items -pub use self::pyobject::{ - AsPyObject, PyObject, PyObjectRef, PyObjectView, PyObjectWeak, PyRef, PyWeakRef, -}; +pub use self::pyobject::{PyObject, PyObjectRef, PyObjectView, PyObjectWeak, PyRef, PyWeakRef}; pub use self::vm::{InitParameter, Interpreter, PySettings, VirtualMachine}; pub use rustpython_bytecode as bytecode; pub use rustpython_common as common; diff --git a/vm/src/protocol/buffer.rs b/vm/src/protocol/buffer.rs index 45db5dd6c..a152f442f 100644 --- a/vm/src/protocol/buffer.rs +++ b/vm/src/protocol/buffer.rs @@ -8,8 +8,8 @@ use crate::{ }, sliceable::wrap_index, types::{Constructor, Unconstructible}, - PyObject, PyObjectPayload, PyObjectRef, PyObjectView, PyObjectWrap, PyRef, PyResult, PyValue, - TryFromBorrowedObject, TypeProtocol, VirtualMachine, + AsPyObject, PyObject, PyObjectPayload, PyObjectRef, PyObjectView, PyObjectWrap, PyRef, + PyResult, PyValue, TryFromBorrowedObject, VirtualMachine, }; use itertools::Itertools; use std::{borrow::Cow, fmt::Debug, ops::Range}; diff --git a/vm/src/protocol/iter.rs b/vm/src/protocol/iter.rs index c651ddf67..923c9083b 100644 --- a/vm/src/protocol/iter.rs +++ b/vm/src/protocol/iter.rs @@ -2,7 +2,7 @@ use crate::{ builtins::iter::PySequenceIterator, function::{IntoPyObject, IntoPyResult}, AsPyObject, PyObject, PyObjectRef, PyObjectWrap, PyResult, PyValue, TryFromObject, - TypeProtocol, VirtualMachine, + VirtualMachine, }; use std::borrow::Borrow; use std::ops::Deref; diff --git a/vm/src/protocol/mapping.rs b/vm/src/protocol/mapping.rs index bd88ae116..22a0d3ffc 100644 --- a/vm/src/protocol/mapping.rs +++ b/vm/src/protocol/mapping.rs @@ -5,7 +5,7 @@ use crate::{ }, common::lock::OnceCell, function::IntoPyResult, - AsPyObject, PyObject, PyObjectRef, PyResult, TypeProtocol, VirtualMachine, + AsPyObject, PyObject, PyObjectRef, PyResult, VirtualMachine, }; // Mapping protocol diff --git a/vm/src/protocol/object.rs b/vm/src/protocol/object.rs index edc1ddde9..e29b17fb8 100644 --- a/vm/src/protocol/object.rs +++ b/vm/src/protocol/object.rs @@ -13,7 +13,7 @@ use crate::{ protocol::{PyIter, PyMapping, PySequence}, types::{Constructor, PyComparisonOp}, utils::Either, - AsPyObject, PyObject, PyObjectRef, PyResult, TryFromObject, TypeProtocol, VirtualMachine, + AsPyObject, PyObject, PyObjectRef, PyResult, TryFromObject, VirtualMachine, }; // RustPython doesn't need these items diff --git a/vm/src/protocol/sequence.rs b/vm/src/protocol/sequence.rs index 684e6cd6e..031084160 100644 --- a/vm/src/protocol/sequence.rs +++ b/vm/src/protocol/sequence.rs @@ -3,7 +3,7 @@ use crate::{ common::lock::OnceCell, function::{IntoPyObject, PyArithmeticValue}, protocol::PyMapping, - AsPyObject, PyObject, PyObjectRef, PyResult, PyValue, TypeProtocol, VirtualMachine, + AsPyObject, PyObject, PyObjectRef, PyResult, PyValue, VirtualMachine, }; use itertools::Itertools; use std::{ diff --git a/vm/src/py_serde.rs b/vm/src/py_serde.rs index 796d17316..f8364fba7 100644 --- a/vm/src/py_serde.rs +++ b/vm/src/py_serde.rs @@ -4,7 +4,7 @@ use serde::de::{DeserializeSeed, Visitor}; use serde::ser::{Serialize, SerializeMap, SerializeSeq}; use crate::builtins::{dict::PyDictRef, float, int, list::PyList, pybool, tuple::PyTuple, PyStr}; -use crate::{PyObject, PyObjectRef, TypeProtocol, VirtualMachine}; +use crate::{AsPyObject, PyObject, PyObjectRef, VirtualMachine}; #[inline] pub fn serialize( diff --git a/vm/src/pyobject.rs b/vm/src/pyobject.rs index 954cf5b3a..df5f32e11 100644 --- a/vm/src/pyobject.rs +++ b/vm/src/pyobject.rs @@ -416,6 +416,30 @@ where { self.get_id() == other.get_id() } + + #[inline(always)] + fn class(&self) -> PyLease<'_, PyType> { + self.as_object().lease_class() + } + + fn clone_class(&self) -> PyTypeRef { + PyLease::into_pyref(self.class()) + } + + fn get_class_attr(&self, attr_name: &str) -> Option { + self.class().get_attr(attr_name) + } + + fn has_class_attr(&self, attr_name: &str) -> bool { + self.class().has_attr(attr_name) + } + + /// Determines if `obj` actually an instance of `cls`, this doesn't call __instancecheck__, so only + /// use this if `cls` is known to have not overridden the base __instancecheck__ magic method. + #[inline] + fn isinstance(&self, cls: &PyObjectView) -> bool { + self.class().issubclass(cls) + } } impl AsPyObject for T where T: Borrow {} @@ -425,6 +449,13 @@ impl PyObject { fn _get_id(&self) -> usize { self as *const PyObject as usize } + + #[inline] + fn lease_class(&self) -> PyLease<'_, PyType> { + PyLease { + inner: self.class_lock().read(), + } + } } // impl Borrow for PyRc { @@ -473,57 +504,6 @@ where } } -pub trait TypeProtocol: AsPyObject { - fn class(&self) -> PyLease<'_, PyType>; - - fn clone_class(&self) -> PyTypeRef { - PyLease::into_pyref(self.class()) - } - - fn get_class_attr(&self, attr_name: &str) -> Option { - self.class().get_attr(attr_name) - } - - fn has_class_attr(&self, attr_name: &str) -> bool { - self.class().has_attr(attr_name) - } - - /// Determines if `obj` actually an instance of `cls`, this doesn't call __instancecheck__, so only - /// use this if `cls` is known to have not overridden the base __instancecheck__ magic method. - #[inline] - fn isinstance(&self, cls: &PyObjectView) -> bool { - self.class().issubclass(cls) - } -} - -impl TypeProtocol for PyObjectRef { - fn class(&self) -> PyLease<'_, PyType> { - PyLease { - inner: self.class_lock().read(), - } - } -} - -impl TypeProtocol for PyObject { - fn class(&self) -> PyLease<'_, PyType> { - PyLease { - inner: self.class_lock().read(), - } - } -} - -impl TypeProtocol for PyObjectView { - fn class(&self) -> PyLease<'_, PyType> { - self.as_object().class() - } -} - -impl TypeProtocol for PyRef { - fn class(&self) -> PyLease<'_, PyType> { - self.as_object().class() - } -} - impl IntoPyRef

for T where P: PyValue + IntoPyObject + From, diff --git a/vm/src/pyobjectrc.rs b/vm/src/pyobjectrc.rs index ec1841d1a..3cf53c350 100644 --- a/vm/src/pyobjectrc.rs +++ b/vm/src/pyobjectrc.rs @@ -3,7 +3,7 @@ use crate::common::linked_list::{Link, LinkedList, Pointers}; use crate::common::lock::{PyMutex, PyMutexGuard, PyRwLock}; use crate::common::refcount::RefCount; use crate::{ - _pyobject::{AsPyObject, PyObjectPayload, PyObjectWrap, PyResult, TypeProtocol}, + _pyobject::{AsPyObject, PyObjectPayload, PyObjectWrap, PyResult}, builtins::{PyBaseExceptionRef, PyDictRef, PyTypeRef}, vm::VirtualMachine, }; diff --git a/vm/src/sequence.rs b/vm/src/sequence.rs index 2088156b2..d1fd7b39e 100644 --- a/vm/src/sequence.rs +++ b/vm/src/sequence.rs @@ -3,7 +3,7 @@ use crate::{ types::{richcompare_wrapper, PyComparisonOp, RichCompareFunc}, utils::Either, vm::VirtualMachine, - AsPyObject, PyObject, PyObjectRef, PyResult, TypeProtocol, + AsPyObject, PyObject, PyObjectRef, PyResult, }; use itertools::Itertools; use optional::Optioned; diff --git a/vm/src/sliceable.rs b/vm/src/sliceable.rs index cc372a1fe..b02bb516b 100644 --- a/vm/src/sliceable.rs +++ b/vm/src/sliceable.rs @@ -7,7 +7,7 @@ use crate::{ int::PyInt, slice::{PySlice, SaturatedSliceIter}, }, - PyObject, PyResult, TryFromBorrowedObject, TypeProtocol, VirtualMachine, + AsPyObject, PyObject, PyResult, TryFromBorrowedObject, VirtualMachine, }; pub trait SliceableSequenceMutOp { diff --git a/vm/src/stdlib/ast.rs b/vm/src/stdlib/ast.rs index f58fcc5fb..14dec9850 100644 --- a/vm/src/stdlib/ast.rs +++ b/vm/src/stdlib/ast.rs @@ -8,8 +8,7 @@ mod gen; use crate::{ builtins::{self, PyStrRef, PyTypeRef}, pyclass::{PyClassImpl, StaticType}, - AsPyObject, PyContext, PyObject, PyObjectRef, PyResult, PyValue, TryFromObject, TypeProtocol, - VirtualMachine, + AsPyObject, PyContext, PyObject, PyObjectRef, PyResult, PyValue, TryFromObject, VirtualMachine, }; use num_complex::Complex64; use num_traits::{ToPrimitive, Zero}; @@ -22,7 +21,7 @@ use rustpython_parser::parser; #[pymodule] mod _ast { use crate::{ - builtins::PyStrRef, function::FuncArgs, PyObjectRef, PyResult, PyValue, TypeProtocol, + builtins::PyStrRef, function::FuncArgs, AsPyObject, PyObjectRef, PyResult, PyValue, VirtualMachine, }; #[pyattr] diff --git a/vm/src/stdlib/atexit.rs b/vm/src/stdlib/atexit.rs index 3f31e28d6..6522a07fb 100644 --- a/vm/src/stdlib/atexit.rs +++ b/vm/src/stdlib/atexit.rs @@ -3,7 +3,7 @@ pub(crate) use atexit::make_module; #[pymodule] mod atexit { - use crate::{function::FuncArgs, PyObjectRef, PyResult, TypeProtocol, VirtualMachine}; + use crate::{function::FuncArgs, AsPyObject, PyObjectRef, PyResult, VirtualMachine}; #[pyfunction] fn register(func: PyObjectRef, args: FuncArgs, vm: &VirtualMachine) -> PyObjectRef { diff --git a/vm/src/stdlib/builtins.rs b/vm/src/stdlib/builtins.rs index 102d98bda..5487534ed 100644 --- a/vm/src/stdlib/builtins.rs +++ b/vm/src/stdlib/builtins.rs @@ -34,7 +34,7 @@ mod builtins { types::PyComparisonOp, utils::Either, AsPyObject, PyObject, PyObjectRef, PyObjectWrap, PyRef, PyResult, PyValue, TryFromObject, - TypeProtocol, VirtualMachine, + VirtualMachine, }; use num_traits::{Signed, ToPrimitive, Zero}; diff --git a/vm/src/stdlib/collections.rs b/vm/src/stdlib/collections.rs index d99a279c7..75fb59642 100644 --- a/vm/src/stdlib/collections.rs +++ b/vm/src/stdlib/collections.rs @@ -19,7 +19,7 @@ mod _collections { }, utils::collection_repr, vm::ReprGuard, - AsPyObject, PyObject, PyObjectRef, PyRef, PyResult, PyValue, TypeProtocol, VirtualMachine, + AsPyObject, PyObject, PyObjectRef, PyRef, PyResult, PyValue, VirtualMachine, }; use crossbeam_utils::atomic::AtomicCell; use std::cmp::max; diff --git a/vm/src/stdlib/io.rs b/vm/src/stdlib/io.rs index 6f9992ba9..99538d579 100644 --- a/vm/src/stdlib/io.rs +++ b/vm/src/stdlib/io.rs @@ -89,7 +89,7 @@ mod _io { utils::Either, vm::{ReprGuard, VirtualMachine}, AsPyObject, PyContext, PyObject, PyObjectRef, PyObjectWrap, PyRef, PyResult, PyValue, - TryFromBorrowedObject, TryFromObject, TypeProtocol, + TryFromBorrowedObject, TryFromObject, }; use bstr::ByteSlice; use crossbeam_utils::atomic::AtomicCell; @@ -3661,8 +3661,7 @@ mod fileio { ArgBytesLike, ArgMemoryBuffer, FuncArgs, IntoPyException, OptionalArg, OptionalOption, }, stdlib::os, - AsPyObject, PyObjectRef, PyRef, PyResult, PyValue, TryFromObject, TypeProtocol, - VirtualMachine, + AsPyObject, PyObjectRef, PyRef, PyResult, PyValue, TryFromObject, VirtualMachine, }; use crossbeam_utils::atomic::AtomicCell; use std::io::{Read, Write}; diff --git a/vm/src/stdlib/itertools.rs b/vm/src/stdlib/itertools.rs index bd8264f3a..7f09602bb 100644 --- a/vm/src/stdlib/itertools.rs +++ b/vm/src/stdlib/itertools.rs @@ -12,8 +12,7 @@ mod decl { protocol::{PyIter, PyIterReturn}, stdlib::sys, types::{Constructor, IterNext, IterNextIterable}, - AsPyObject, PyObjectRef, PyObjectView, PyRef, PyResult, PyValue, PyWeakRef, TypeProtocol, - VirtualMachine, + AsPyObject, PyObjectRef, PyObjectView, PyRef, PyResult, PyValue, PyWeakRef, VirtualMachine, }; use crossbeam_utils::atomic::AtomicCell; use num_bigint::BigInt; diff --git a/vm/src/stdlib/marshal.rs b/vm/src/stdlib/marshal.rs index 03cfc0cd2..aaad31d79 100644 --- a/vm/src/stdlib/marshal.rs +++ b/vm/src/stdlib/marshal.rs @@ -10,7 +10,7 @@ mod decl { bytecode, function::{ArgBytesLike, IntoPyObject}, protocol::PyBuffer, - pyobject::{AsPyObject, TypeProtocol}, + pyobject::AsPyObject, PyObjectRef, PyResult, TryFromObject, VirtualMachine, }; /// TODO diff --git a/vm/src/stdlib/operator.rs b/vm/src/stdlib/operator.rs index 5d46321a7..6b14bf41a 100644 --- a/vm/src/stdlib/operator.rs +++ b/vm/src/stdlib/operator.rs @@ -20,8 +20,7 @@ mod _operator { }, utils::Either, vm::ReprGuard, - AsPyObject, PyObjectRef, PyObjectView, PyRef, PyResult, PyValue, TypeProtocol, - VirtualMachine, + AsPyObject, PyObjectRef, PyObjectView, PyRef, PyResult, PyValue, VirtualMachine, }; /// Same as a < b. diff --git a/vm/src/stdlib/os.rs b/vm/src/stdlib/os.rs index d892d9d3f..f5b9f82db 100644 --- a/vm/src/stdlib/os.rs +++ b/vm/src/stdlib/os.rs @@ -4,7 +4,7 @@ use crate::{ function::{ArgumentError, FromArgs, FuncArgs, IntoPyException, IntoPyObject}, protocol::PyBuffer, AsPyObject, PyObject, PyObjectRef, PyResult, PyValue, TryFromBorrowedObject, TryFromObject, - TypeProtocol, VirtualMachine, + VirtualMachine, }; use std::{ ffi, fs, @@ -440,7 +440,7 @@ pub(super) mod _os { types::{IterNext, IterNextIterable}, utils::Either, vm::{ReprGuard, VirtualMachine}, - PyObjectRef, PyRef, PyResult, PyStructSequence, PyValue, TryFromObject, TypeProtocol, + AsPyObject, PyObjectRef, PyRef, PyResult, PyStructSequence, PyValue, TryFromObject, }; use crossbeam_utils::atomic::AtomicCell; use itertools::Itertools; diff --git a/vm/src/stdlib/posix.rs b/vm/src/stdlib/posix.rs index 5b1a9eff6..0e72263da 100644 --- a/vm/src/stdlib/posix.rs +++ b/vm/src/stdlib/posix.rs @@ -37,7 +37,7 @@ pub mod module { }, types::Constructor, utils::{Either, ToCString}, - PyObjectRef, PyResult, PyValue, TryFromObject, TypeProtocol, VirtualMachine, + AsPyObject, PyObjectRef, PyResult, PyValue, TryFromObject, VirtualMachine, }; use bitflags::bitflags; use nix::{ @@ -557,7 +557,7 @@ pub mod module { target_os = "android" ))] fn try_to_libc(&self, vm: &VirtualMachine) -> PyResult { - use crate::TypeProtocol; + use crate::AsPyObject; let priority_class = self.sched_priority.class(); let priority_type = priority_class.name(); let priority = self.sched_priority.clone(); diff --git a/vm/src/stdlib/thread.rs b/vm/src/stdlib/thread.rs index deab60bd4..e6671d4a3 100644 --- a/vm/src/stdlib/thread.rs +++ b/vm/src/stdlib/thread.rs @@ -10,7 +10,7 @@ pub(crate) mod _thread { py_io, types::{Constructor, GetAttr, SetAttr}, utils::Either, - AsPyObject, PyObjectRef, PyRef, PyResult, PyValue, TypeProtocol, VirtualMachine, + AsPyObject, PyObjectRef, PyRef, PyResult, PyValue, VirtualMachine, }; use parking_lot::{ lock_api::{RawMutex as RawMutexT, RawMutexTimed, RawReentrantMutex}, diff --git a/vm/src/stdlib/warnings.rs b/vm/src/stdlib/warnings.rs index 24b1200c9..317bab764 100644 --- a/vm/src/stdlib/warnings.rs +++ b/vm/src/stdlib/warnings.rs @@ -5,7 +5,7 @@ mod _warnings { use crate::{ builtins::{PyStrRef, PyTypeRef}, function::OptionalArg, - PyResult, TypeProtocol, VirtualMachine, + AsPyObject, PyResult, VirtualMachine, }; #[derive(FromArgs)] diff --git a/vm/src/suggestion.rs b/vm/src/suggestion.rs index e38713a32..81fdcaabb 100644 --- a/vm/src/suggestion.rs +++ b/vm/src/suggestion.rs @@ -2,7 +2,7 @@ use crate::{ builtins::{PyStr, PyStrRef}, exceptions::types::PyBaseExceptionRef, sliceable::SliceableSequenceOp, - AsPyObject, PyObjectRef, PyObjectView, TypeProtocol, VirtualMachine, + AsPyObject, PyObjectRef, PyObjectView, VirtualMachine, }; use rustpython_common::str::levenshtein::{levenshtein_distance, MOVE_COST}; use std::iter::ExactSizeIterator; diff --git a/vm/src/types/slot.rs b/vm/src/types/slot.rs index 713fd9e7a..0e4cd3ff8 100644 --- a/vm/src/types/slot.rs +++ b/vm/src/types/slot.rs @@ -6,8 +6,7 @@ use crate::{ protocol::{PyBuffer, PyIterReturn, PyMapping, PyMappingMethods}, protocol::{PySequence, PySequenceMethods}, utils::Either, - AsPyObject, PyObject, PyObjectRef, PyObjectView, PyRef, PyResult, PyValue, TypeProtocol, - VirtualMachine, + AsPyObject, PyObject, PyObjectRef, PyObjectView, PyRef, PyResult, PyValue, VirtualMachine, }; use crossbeam_utils::atomic::AtomicCell; use num_traits::{Signed, ToPrimitive}; diff --git a/vm/src/utils.rs b/vm/src/utils.rs index 5d1ec49ce..da08aeb52 100644 --- a/vm/src/utils.rs +++ b/vm/src/utils.rs @@ -1,7 +1,7 @@ use crate::{ builtins::{PyFloat, PyStr}, function::{IntoPyException, IntoPyObject}, - PyObject, PyObjectRef, PyObjectWrap, PyResult, TryFromObject, TypeProtocol, VirtualMachine, + AsPyObject, PyObject, PyObjectRef, PyObjectWrap, PyResult, TryFromObject, VirtualMachine, }; use num_traits::ToPrimitive; use std::borrow::Borrow; diff --git a/vm/src/vm.rs b/vm/src/vm.rs index d61ec88ea..cdc663e9e 100644 --- a/vm/src/vm.rs +++ b/vm/src/vm.rs @@ -25,7 +25,7 @@ use crate::{ pyobject::PyLease, scope::Scope, signal, stdlib, AsPyObject, PyContext, PyObject, PyObjectRef, PyRef, PyRefExact, PyResult, - PyValue, TypeProtocol, + PyValue, }; use crossbeam_utils::atomic::AtomicCell; use std::{ @@ -67,7 +67,7 @@ struct ExceptionStack { } pub(crate) mod thread { - use super::{PyObject, TypeProtocol, VirtualMachine}; + use super::{AsPyObject, PyObject, VirtualMachine}; use itertools::Itertools; use std::{cell::RefCell, ptr::NonNull, thread_local}; diff --git a/vm/src/vm_new.rs b/vm/src/vm_new.rs index e21953584..6878f572a 100644 --- a/vm/src/vm_new.rs +++ b/vm/src/vm_new.rs @@ -10,7 +10,7 @@ use crate::{ function::IntoPyObject, scope::Scope, vm::VirtualMachine, - AsPyObject, PyObject, PyObjectRef, PyObjectWrap, PyRef, TypeProtocol, + AsPyObject, PyObject, PyObjectRef, PyObjectWrap, PyRef, }; /// Collection of object creation helpers diff --git a/vm/src/vm_object.rs b/vm/src/vm_object.rs index dc7cecf55..36bc91c85 100644 --- a/vm/src/vm_object.rs +++ b/vm/src/vm_object.rs @@ -2,7 +2,7 @@ use crate::{ builtins::{PyBaseExceptionRef, PyList, PyStr}, function::{FuncArgs, IntoFuncArgs}, vm::VirtualMachine, - AsPyObject, PyMethod, PyObject, PyObjectRef, PyResult, PyValue, TypeProtocol, + AsPyObject, PyMethod, PyObject, PyObjectRef, PyResult, PyValue, }; /// Trace events for sys.settrace and sys.setprofile. diff --git a/vm/src/vm_ops.rs b/vm/src/vm_ops.rs index c783611ec..f96f26e4c 100644 --- a/vm/src/vm_ops.rs +++ b/vm/src/vm_ops.rs @@ -4,7 +4,7 @@ use crate::{ protocol::PyIterReturn, types::PyComparisonOp, vm::VirtualMachine, - AsPyObject, PyMethod, PyObject, PyObjectRef, PyResult, TypeProtocol, + AsPyObject, PyMethod, PyObject, PyObjectRef, PyResult, }; /// Collection of operators diff --git a/wasm/lib/src/convert.rs b/wasm/lib/src/convert.rs index 0e7972391..6c954c69c 100644 --- a/wasm/lib/src/convert.rs +++ b/wasm/lib/src/convert.rs @@ -7,7 +7,7 @@ use rustpython_vm::{ compile::{CompileError, CompileErrorType}, exceptions, function::{ArgBytesLike, FuncArgs}, - py_serde, PyObjectRef, PyResult, PyValue, TryFromBorrowedObject, TypeProtocol, VirtualMachine, + py_serde, AsPyObject, PyObjectRef, PyResult, PyValue, TryFromBorrowedObject, VirtualMachine, }; use wasm_bindgen::{closure::Closure, prelude::*, JsCast};