Skip to content

Commit f24884c

Browse files
authored
Merge pull request RustPython#3108 from youknowone/pycallable
Rename Py{Callable, Iterable} to Arg{..}
2 parents 7ea52cb + 0317647 commit f24884c

File tree

26 files changed

+262
-249
lines changed

26 files changed

+262
-249
lines changed

src/shell/helper.rs

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -1,6 +1,6 @@
11
use rustpython_vm::builtins::{PyDictRef, PyStrRef};
22
use rustpython_vm::VirtualMachine;
3-
use rustpython_vm::{PyIterable, PyResult, TryFromObject};
3+
use rustpython_vm::{function::ArgIterable, PyResult, TryFromObject};
44

55
pub struct ShellHelper<'vm> {
66
vm: &'vm VirtualMachine,
@@ -64,7 +64,7 @@ impl<'vm> ShellHelper<'vm> {
6464

6565
let str_iter_method = |obj, name| {
6666
let iter = self.vm.call_special_method(obj, name, ())?;
67-
PyIterable::<PyStrRef>::try_from_object(self.vm, iter)?.iter(self.vm)
67+
ArgIterable::<PyStrRef>::try_from_object(self.vm, iter)?.iter(self.vm)
6868
};
6969

7070
let (word_start, iter1, iter2) = if let Some((last, parents)) = rest.split_last() {

vm/src/anystr.rs

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -1,8 +1,8 @@
11
use crate::builtins::int::PyIntRef;
22
use crate::cformat::CFormatString;
3-
use crate::function::{single_or_tuple_any, OptionalOption};
3+
use crate::function::{single_or_tuple_any, OptionalOption, PyIterator};
44
use crate::vm::VirtualMachine;
5-
use crate::{PyIterator, PyObjectRef, PyResult, TryFromObject, TypeProtocol};
5+
use crate::{PyObjectRef, PyResult, TryFromObject, TypeProtocol};
66
use num_traits::{cast::ToPrimitive, sign::Signed};
77
use std::str::FromStr;
88

vm/src/builtins/bytearray.rs

Lines changed: 4 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -18,16 +18,16 @@ use crate::common::lock::{
1818
PyMappedRwLockReadGuard, PyMappedRwLockWriteGuard, PyRwLock, PyRwLockReadGuard,
1919
PyRwLockWriteGuard,
2020
};
21-
use crate::function::{FuncArgs, OptionalArg, OptionalOption};
21+
use crate::function::{ArgIterable, FuncArgs, OptionalArg, OptionalOption};
2222
use crate::sliceable::{PySliceableSequence, PySliceableSequenceMut, SequenceIndex};
2323
use crate::slots::{
2424
AsBuffer, Callable, Comparable, Hashable, Iterable, PyComparisonOp, PyIter, Unhashable,
2525
};
2626
use crate::utils::Either;
2727
use crate::vm::VirtualMachine;
2828
use crate::{
29-
IdProtocol, IntoPyObject, PyClassDef, PyClassImpl, PyComparisonValue, PyContext, PyIterable,
30-
PyObjectRef, PyRef, PyResult, PyValue, TypeProtocol,
29+
IdProtocol, IntoPyObject, PyClassDef, PyClassImpl, PyComparisonValue, PyContext, PyObjectRef,
30+
PyRef, PyResult, PyValue, TypeProtocol,
3131
};
3232
use bstr::ByteSlice;
3333
use crossbeam_utils::atomic::AtomicCell;
@@ -413,7 +413,7 @@ impl PyByteArray {
413413
}
414414

415415
#[pymethod]
416-
fn join(&self, iter: PyIterable<PyBytesInner>, vm: &VirtualMachine) -> PyResult<PyByteArray> {
416+
fn join(&self, iter: ArgIterable<PyBytesInner>, vm: &VirtualMachine) -> PyResult<PyByteArray> {
417417
Ok(self.inner().join(iter, vm)?.into())
418418
}
419419

vm/src/builtins/bytes.rs

Lines changed: 4 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -11,15 +11,15 @@ use crate::bytesinner::{
1111
};
1212
use crate::byteslike::ArgBytesLike;
1313
use crate::common::hash::PyHash;
14-
use crate::function::{OptionalArg, OptionalOption};
14+
use crate::function::{ArgIterable, OptionalArg, OptionalOption};
1515
use crate::slots::{
1616
AsBuffer, Callable, Comparable, Hashable, Iterable, PyComparisonOp, PyIter, SlotConstructor,
1717
};
1818
use crate::utils::Either;
1919
use crate::vm::VirtualMachine;
2020
use crate::{
21-
IdProtocol, IntoPyObject, IntoPyResult, PyClassImpl, PyComparisonValue, PyContext, PyIterable,
22-
PyObjectRef, PyRef, PyResult, PyValue, TryFromBorrowedObject, TypeProtocol,
21+
IdProtocol, IntoPyObject, IntoPyResult, PyClassImpl, PyComparisonValue, PyContext, PyObjectRef,
22+
PyRef, PyResult, PyValue, TryFromBorrowedObject, TypeProtocol,
2323
};
2424
use bstr::ByteSlice;
2525
use crossbeam_utils::atomic::AtomicCell;
@@ -263,7 +263,7 @@ impl PyBytes {
263263
}
264264

265265
#[pymethod]
266-
fn join(&self, iter: PyIterable<PyBytesInner>, vm: &VirtualMachine) -> PyResult<PyBytes> {
266+
fn join(&self, iter: ArgIterable<PyBytesInner>, vm: &VirtualMachine) -> PyResult<PyBytes> {
267267
Ok(self.inner.join(iter, vm)?.into())
268268
}
269269

vm/src/builtins/dict.rs

Lines changed: 3 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -8,13 +8,13 @@ use super::set::PySet;
88
use super::IterStatus;
99
use crate::dictdatatype::{self, DictKey};
1010
use crate::exceptions::PyBaseExceptionRef;
11-
use crate::function::{FuncArgs, KwArgs, OptionalArg};
11+
use crate::function::{ArgIterable, FuncArgs, KwArgs, OptionalArg};
1212
use crate::iterator;
1313
use crate::slots::{Comparable, Hashable, Iterable, PyComparisonOp, PyIter, Unhashable};
1414
use crate::vm::{ReprGuard, VirtualMachine};
1515
use crate::{
1616
IdProtocol, IntoPyObject, ItemProtocol, PyArithmaticValue::*, PyAttributes, PyClassDef,
17-
PyClassImpl, PyComparisonValue, PyContext, PyIterable, PyObjectRef, PyRef, PyResult, PyValue,
17+
PyClassImpl, PyComparisonValue, PyContext, PyObjectRef, PyRef, PyResult, PyValue,
1818
TryFromObject, TypeProtocol,
1919
};
2020

@@ -132,7 +132,7 @@ impl PyDict {
132132
#[pyclassmethod]
133133
fn fromkeys(
134134
class: PyTypeRef,
135-
iterable: PyIterable,
135+
iterable: ArgIterable,
136136
value: OptionalArg<PyObjectRef>,
137137
vm: &VirtualMachine,
138138
) -> PyResult<PyRef<Self>> {

vm/src/builtins/iter.rs

Lines changed: 4 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -9,8 +9,8 @@ use super::{int, PyInt};
99
use crate::slots::PyIter;
1010
use crate::vm::VirtualMachine;
1111
use crate::{
12-
ItemProtocol, PyCallable, PyClassImpl, PyContext, PyObjectRef, PyRef, PyResult, PyValue,
13-
TypeProtocol,
12+
function::ArgCallable, ItemProtocol, PyClassImpl, PyContext, PyObjectRef, PyRef, PyResult,
13+
PyValue, TypeProtocol,
1414
};
1515

1616
/// Marks status of iterator.
@@ -112,7 +112,7 @@ impl PyIter for PySequenceIterator {
112112
#[pyclass(module = false, name = "callable_iterator")]
113113
#[derive(Debug)]
114114
pub struct PyCallableIterator {
115-
callable: PyCallable,
115+
callable: ArgCallable,
116116
sentinel: PyObjectRef,
117117
status: AtomicCell<IterStatus>,
118118
}
@@ -125,7 +125,7 @@ impl PyValue for PyCallableIterator {
125125

126126
#[pyimpl(with(PyIter))]
127127
impl PyCallableIterator {
128-
pub fn new(callable: PyCallable, sentinel: PyObjectRef) -> Self {
128+
pub fn new(callable: ArgCallable, sentinel: PyObjectRef) -> Self {
129129
Self {
130130
callable,
131131
sentinel,

vm/src/builtins/list.rs

Lines changed: 5 additions & 5 deletions
Original file line numberDiff line numberDiff line change
@@ -17,15 +17,15 @@ use super::PyInt;
1717
use crate::common::lock::{
1818
PyMappedRwLockReadGuard, PyRwLock, PyRwLockReadGuard, PyRwLockWriteGuard,
1919
};
20-
use crate::function::{FuncArgs, OptionalArg};
20+
use crate::function::{ArgIterable, FuncArgs, OptionalArg};
2121
use crate::sequence::{self, SimpleSeq};
2222
use crate::sliceable::{PySliceableSequence, PySliceableSequenceMut, SequenceIndex};
2323
use crate::slots::{Comparable, Hashable, Iterable, PyComparisonOp, PyIter, Unhashable};
2424
use crate::utils::Either;
2525
use crate::vm::{ReprGuard, VirtualMachine};
2626
use crate::{
27-
PyClassDef, PyClassImpl, PyComparisonValue, PyContext, PyIterable, PyObjectRef, PyRef,
28-
PyResult, PyValue, TryFromObject, TypeProtocol,
27+
PyClassDef, PyClassImpl, PyComparisonValue, PyContext, PyObjectRef, PyRef, PyResult, PyValue,
28+
TryFromObject, TypeProtocol,
2929
};
3030

3131
/// Built-in mutable sequence.
@@ -196,7 +196,7 @@ impl PyList {
196196
match SequenceIndex::try_from_object_for(vm, needle, Self::NAME)? {
197197
SequenceIndex::Int(index) => self.setindex(index, value, vm),
198198
SequenceIndex::Slice(slice) => {
199-
if let Ok(sec) = PyIterable::try_from_object(vm, value) {
199+
if let Ok(sec) = ArgIterable::try_from_object(vm, value) {
200200
return self.setslice(slice, sec, vm);
201201
}
202202
Err(vm.new_type_error("can only assign an iterable to a slice".to_owned()))
@@ -214,7 +214,7 @@ impl PyList {
214214
}
215215
}
216216

217-
fn setslice(&self, slice: PySliceRef, sec: PyIterable, vm: &VirtualMachine) -> PyResult<()> {
217+
fn setslice(&self, slice: PySliceRef, sec: ArgIterable, vm: &VirtualMachine) -> PyResult<()> {
218218
let items: Result<Vec<PyObjectRef>, _> = sec.iter(vm)?.collect();
219219
let items = items?;
220220
let mut elements = self.borrow_vec_mut();

vm/src/builtins/make_module.rs

Lines changed: 9 additions & 7 deletions
Original file line numberDiff line numberDiff line change
@@ -25,7 +25,9 @@ mod decl {
2525
use crate::common::{hash::PyHash, str::to_ascii};
2626
#[cfg(feature = "rustpython-compiler")]
2727
use crate::compile;
28-
use crate::function::{Args, FuncArgs, KwArgs, OptionalArg, OptionalOption};
28+
use crate::function::{
29+
ArgCallable, ArgIterable, Args, FuncArgs, KwArgs, OptionalArg, OptionalOption,
30+
};
2931
use crate::iterator;
3032
use crate::readline::{Readline, ReadlineResult};
3133
use crate::scope::Scope;
@@ -34,8 +36,8 @@ mod decl {
3436
use crate::vm::VirtualMachine;
3537
use crate::{py_io, sysmodule};
3638
use crate::{
37-
IdProtocol, ItemProtocol, PyArithmaticValue, PyCallable, PyClassImpl, PyIterable,
38-
PyObjectRef, PyResult, PyValue, TryFromObject, TypeProtocol,
39+
IdProtocol, ItemProtocol, PyArithmaticValue, PyClassImpl, PyObjectRef, PyResult, PyValue,
40+
TryFromObject, TypeProtocol,
3941
};
4042
use num_traits::{Signed, Zero};
4143

@@ -45,7 +47,7 @@ mod decl {
4547
}
4648

4749
#[pyfunction]
48-
fn all(iterable: PyIterable<IntoPyBool>, vm: &VirtualMachine) -> PyResult<bool> {
50+
fn all(iterable: ArgIterable<IntoPyBool>, vm: &VirtualMachine) -> PyResult<bool> {
4951
for item in iterable.iter(vm)? {
5052
if !item?.to_bool() {
5153
return Ok(false);
@@ -55,7 +57,7 @@ mod decl {
5557
}
5658

5759
#[pyfunction]
58-
fn any(iterable: PyIterable<IntoPyBool>, vm: &VirtualMachine) -> PyResult<bool> {
60+
fn any(iterable: ArgIterable<IntoPyBool>, vm: &VirtualMachine) -> PyResult<bool> {
5961
for item in iterable.iter(vm)? {
6062
if item?.to_bool() {
6163
return Ok(true);
@@ -421,7 +423,7 @@ mod decl {
421423
vm: &VirtualMachine,
422424
) -> PyResult {
423425
if let OptionalArg::Present(sentinel) = sentinel {
424-
let callable = PyCallable::try_from_object(vm, iter_target)?;
426+
let callable = ArgCallable::try_from_object(vm, iter_target)?;
425427
Ok(PyCallableIterator::new(callable, sentinel)
426428
.into_ref(vm)
427429
.into_object())
@@ -755,7 +757,7 @@ mod decl {
755757
#[derive(FromArgs)]
756758
pub struct SumArgs {
757759
#[pyarg(positional)]
758-
iterable: PyIterable,
760+
iterable: ArgIterable,
759761
#[pyarg(any, optional)]
760762
start: OptionalArg<PyObjectRef>,
761763
}

vm/src/builtins/pystr.rs

Lines changed: 3 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -9,14 +9,14 @@ use super::pytype::PyTypeRef;
99
use crate::anystr::{self, adjust_indices, AnyStr, AnyStrContainer, AnyStrWrapper};
1010
use crate::exceptions::IntoPyException;
1111
use crate::format::{FormatSpec, FormatString, FromTemplate};
12-
use crate::function::{FuncArgs, OptionalArg, OptionalOption};
12+
use crate::function::{ArgIterable, FuncArgs, OptionalArg, OptionalOption};
1313
use crate::sliceable::PySliceableSequence;
1414
use crate::slots::{Comparable, Hashable, Iterable, PyComparisonOp, PyIter, SlotConstructor};
1515
use crate::utils::Either;
1616
use crate::VirtualMachine;
1717
use crate::{
1818
IdProtocol, IntoPyObject, ItemProtocol, PyClassDef, PyClassImpl, PyComparisonValue, PyContext,
19-
PyIterable, PyObjectRef, PyRef, PyResult, PyValue, TryIntoRef, TypeProtocol,
19+
PyObjectRef, PyRef, PyResult, PyValue, TryIntoRef, TypeProtocol,
2020
};
2121
use bstr::ByteSlice;
2222
use crossbeam_utils::atomic::AtomicCell;
@@ -937,7 +937,7 @@ impl PyStr {
937937
}
938938

939939
#[pymethod]
940-
fn join(&self, iterable: PyIterable<PyStrRef>, vm: &VirtualMachine) -> PyResult<String> {
940+
fn join(&self, iterable: ArgIterable<PyStrRef>, vm: &VirtualMachine) -> PyResult<String> {
941941
let iter = iterable.iter(vm)?;
942942
self.as_str().py_join(iter)
943943
}

0 commit comments

Comments
 (0)