Commit Graph

23 Commits

Author SHA1 Message Date
Daniel Grunwald d705620502 Add support for Rust stable.
All functions that depend on PyObject having the same memory layout
as *mut ffi::PyObject should now be hidden behind #[cfg(feature="nightly")].
2016-03-06 01:08:40 +01:00
Daniel Grunwald c1682b68ac Add some tests for py_fn!() 2015-11-07 16:52:20 +01:00
Daniel Grunwald 32086a0ef5 Add back PyIterator, PyListIterator etc. 2015-10-29 02:36:50 +01:00
Daniel Grunwald 0a270a0583 Put Python argument at beginning of argument list.
Closes #33.
2015-10-26 23:52:18 +01:00
Daniel Grunwald 44611991c3 Remove 'p lifetime from PyObject (#15)
Since the `Python` token no longer is a part of `PyObject`,
lots of methods now require the token as additional argument.

This [breaking-change] breaks everything!
2015-10-25 17:55:29 +01:00
Daniel Grunwald 5bab92cbcc Add back PyTuple::as_slice() 2015-09-20 19:40:18 +02:00
Ewan Higgs a63aa43536 Use cast_into instead of from_object. More PySequence tests. 2015-08-26 21:13:13 +02:00
Ewan Higgs 636cfee28d Add tests for sequence. Make list and tuple use private PyObject again.
Add from_object that converts from PyObject into PyList and PyTuple.
Maybe it should be a macro as part of the newtype thing?
2015-08-26 21:13:13 +02:00
Ewan Higgs ff69760b99 Make ctors public for various object types. 2015-08-26 21:13:13 +02:00
Daniel Grunwald 45d03bf8bb Replace FromPyObject with the more powerful ExtractPyObject.
This is a [breaking-change] and makes the trait more difficult to implement.
The usage through PyObject::extract() is unchanged.

This change allows extracting a `&str` through a temporary `Cow<str>`
without having to copy the string data from python to rust
(at least in cases where the python string is UTF-8 encoded).

This is preparation in hope I'll be able to make py_fn!()
automatically extract the function arguments.
2015-07-23 22:09:20 +02:00
Daniel Grunwald 9f2244bbcf Remove unused imports and variables. 2015-06-27 23:49:53 +02:00
Daniel Grunwald 3b02ef5b99 Improve documentation. 2015-06-27 22:48:40 +02:00
Daniel Grunwald db47455904 Add IntoIterator impl for PyTuple and PyList. 2015-05-24 18:20:35 +02:00
Daniel Grunwald d70479d257 Remove lifetime 's from `FromPyObject`.
This allows implementing `FromPyObject` for `Vec<T>`.
It also means that `obj.extract::<Cow<str>>()` won't be supported, but we
have `PyString::extract()` for that now.
2015-05-24 17:12:12 +02:00
Daniel Grunwald a106cabc4a Initial support for python 3. 2015-05-23 23:52:38 +02:00
Daniel Grunwald c07b0468e8 MIT license headers 2015-04-19 05:22:03 +02:00
Daniel Grunwald fbd60f11f4 Simplify ToPyObject: directly return the object without PyResult
to_py_object should always succeed (modulo out-of-memory)
2015-04-19 01:07:14 +02:00
Daniel Grunwald f8e24a870c Add support for exposing rust functions to python 2015-04-18 20:17:25 +02:00
Daniel Grunwald dd20e00c77 Update for rust beta. 2015-03-09 14:31:20 +01:00
Daniel Grunwald 55ea6cc85b Add PyList, PyInt, PyLong and PyFloat. 2015-01-11 18:56:59 +01:00
Daniel Grunwald d8a1fcd869 update for rust nightly 2015-01-11 04:21:05 +01:00
Daniel Grunwald fd2ae9ce60 delete pyptr 2015-01-08 09:19:35 +01:00
Daniel Grunwald b3be3d35de Change API for owned python pointers:
replace PyPtr<'p, PyObject<'p>> with PyObject<'p>

Borrowed python pointers stay &PyObject<'p>.
Note: this means the internal representation of borrowed python pointers
changes from "*mut PyObject" to "&*mut PyObject".
2015-01-07 01:40:48 +01:00