Mercurial > pytave
diff python_to_octave.cc @ 327:15c20ab4b80a
Do not automatically convert Python integer types to Octave (see issue #56)
* python_to_octave.cc (pytave::pyobj_to_octvalue): Drop automatic conversion of
Python int and long types to Octave.
* @pyobject/pyobject.m (pyobject.length, pyobject.size): Cast values to double.
Adapt %!tests to changes.
* @pyobject/cell.m, @pyobject/dummy.m, @pyobject/subsasgn.m,
@pyobject/subsref.m, pycall.cc, pyeval.cc: Adapt usage examples and %!tests
to changes.
author | Mike Miller <mtmiller@octave.org> |
---|---|
date | Sat, 13 Aug 2016 21:24:29 -0700 |
parents | 37df9bd607ed |
children | 5782d7932529 |
line wrap: on
line diff
--- a/python_to_octave.cc Sat Aug 13 19:57:49 2016 -0700 +++ b/python_to_octave.cc Sat Aug 13 21:24:29 2016 -0700 @@ -338,19 +338,16 @@ void pyobj_to_octvalue (octave_value& oct_value, const boost::python::object& py_object) { - extract<long> longx (py_object); extract<bool> boolx (py_object); extract<double> doublex (py_object); extract<Complex> complexx (py_object); extract<numeric::array> arrayx (py_object); - if (boolx.check () && PyBool_Check ((PyArrayObject*)py_object.ptr ())) + if (PyBool_Check (py_object.ptr ())) oct_value = boolx (); - else if (longx.check ()) - oct_value = longx (); - else if (doublex.check ()) + else if (PyFloat_Check (py_object.ptr ())) oct_value = doublex (); - else if (complexx.check ()) + else if (PyComplex_Check (py_object.ptr ())) oct_value = complexx (); else if (arrayx.check ()) pyarr_to_octvalue (oct_value, (PyArrayObject*)py_object.ptr ());