Remove superseded handle::operator() overloads

The variadic handle::operator() offers the same functionality as well
as mixed positional, keyword, * and ** arguments. The tests are also
superseded by the ones in `test_callbacks`.
This commit is contained in:
Dean Moldovan 2016-09-03 17:25:40 +02:00
parent 625bd48a91
commit 16db1bfbd7
4 changed files with 2 additions and 30 deletions

View File

@ -1134,20 +1134,6 @@ template <return_value_policy policy,
return operator()<policy>(std::forward<Args>(args)...); return operator()<policy>(std::forward<Args>(args)...);
} }
inline object handle::operator()(detail::args_proxy args) const {
object result(PyObject_CallObject(m_ptr, args.ptr()), false);
if (!result)
throw error_already_set();
return result;
}
inline object handle::operator()(detail::args_proxy args, detail::kwargs_proxy kwargs) const {
object result(PyObject_Call(m_ptr, args.ptr(), kwargs.ptr()), false);
if (!result)
throw error_already_set();
return result;
}
template <typename... Args, typename /*SFINAE*/> template <typename... Args, typename /*SFINAE*/>
dict::dict(Args &&...args) dict::dict(Args &&...args)
: dict(detail::unpacking_collector<>(std::forward<Args>(args)...).kwargs()) { } : dict(detail::unpacking_collector<>(std::forward<Args>(args)...).kwargs()) { }

View File

@ -48,8 +48,6 @@ public:
object call(Args&&... args) const; object call(Args&&... args) const;
template <return_value_policy policy = return_value_policy::automatic_reference, typename ... Args> template <return_value_policy policy = return_value_policy::automatic_reference, typename ... Args>
object operator()(Args&&... args) const; object operator()(Args&&... args) const;
inline object operator()(detail::args_proxy args) const;
inline object operator()(detail::args_proxy f_args, detail::kwargs_proxy kwargs) const;
operator bool() const { return m_ptr != nullptr; } operator bool() const { return m_ptr != nullptr; }
bool operator==(const handle &h) const { return m_ptr == h.m_ptr; } bool operator==(const handle &h) const { return m_ptr == h.m_ptr; }
bool operator!=(const handle &h) const { return m_ptr != h.m_ptr; } bool operator!=(const handle &h) const { return m_ptr != h.m_ptr; }

View File

@ -20,13 +20,6 @@ std::string kw_func4(const std::vector<int> &entries) {
return ret; return ret;
} }
py::object call_kw_func(py::function f) {
py::tuple args = py::make_tuple(1234);
py::dict kwargs;
kwargs["y"] = py::cast(5678);
return f(*args, **kwargs);
}
py::tuple args_function(py::args args) { py::tuple args_function(py::args args) {
return args; return args;
} }
@ -49,9 +42,7 @@ test_initializer arg_keywords_and_defaults([](py::module &m) {
std::vector<int> list; std::vector<int> list;
list.push_back(13); list.push_back(13);
list.push_back(17); list.push_back(17);
m.def("kw_func4", &kw_func4, py::arg("myList") = list); m.def("kw_func4", &kw_func4, py::arg("myList") = list);
m.def("call_kw_func", &call_kw_func);
m.def("args_function", &args_function); m.def("args_function", &args_function);
m.def("args_kwargs_function", &args_kwargs_function); m.def("args_kwargs_function", &args_kwargs_function);

View File

@ -1,7 +1,6 @@
import pytest import pytest
from pybind11_tests import (kw_func0, kw_func1, kw_func2, kw_func3, kw_func4, call_kw_func, from pybind11_tests import (kw_func0, kw_func1, kw_func2, kw_func3, kw_func4, args_function,
args_function, args_kwargs_function, kw_func_udl, kw_func_udl_z, args_kwargs_function, kw_func_udl, kw_func_udl_z, KWClass)
KWClass)
def test_function_signatures(doc): def test_function_signatures(doc):
@ -49,8 +48,6 @@ def test_named_arguments(msg):
def test_arg_and_kwargs(): def test_arg_and_kwargs():
assert call_kw_func(kw_func2) == "x=1234, y=5678"
args = 'arg1_value', 'arg2_value', 3 args = 'arg1_value', 'arg2_value', 3
assert args_function(*args) == args assert args_function(*args) == args