Ewan Higgs
ff69760b99
Make ctors public for various object types.
2015-08-26 21:13:13 +02:00
Daniel Grunwald
160b23eff0
Remove unnecessary PyList -> PyObject -> PyList roundtrip
2015-08-26 20:19:58 +02:00
Ewan Higgs
173a6147f4
Add tests for list.rs. Still missing tests for extract.
2015-08-26 15:49:43 +02:00
Daniel Grunwald
6316ddc28b
Fix some build errors
2015-08-20 21:14:47 +02:00
Daniel Grunwald
a884ee945c
Change PyDict::items() to return `Vec<(PyObject, PyObject)>` instead of `PyList`.
...
This makes it possible iterate through a PyDict in Rust without
having to unpack tuples.
The PyList version of the method is renamed to `items_list()`.
[breaking-change]
2015-07-23 22:21:11 +02:00
Daniel Grunwald
63d5f2cd1a
Rename PyErr::new() to PyErr::from_instance() and add use the name PyErr::new() for a more useful function.
...
Allows simplifying the common
`PyErr::new_lazy_init(py.get_type::<exc::ValueError>(), Some(msg.to_py_object(py).into_object()));`
to
`PyErr:🆕 :<exc::ValueError, _>(py, msg)`
[breaking-change]
2015-07-23 22:21:11 +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
1ad27b977e
Merge pull request #20 from traff/master
...
Implement ToPyObject for HashMap->dict conversion.
2015-07-18 17:51:08 +02:00
Daniel Grunwald
aac888b1b1
Fix python 2.7 build
2015-07-18 13:44:39 +02:00
Daniel Grunwald
1c4d71d712
Implement ToPyObject for all PythonObjects.
2015-07-18 13:40:26 +02:00
Dmitry Trofimov
2cfe522157
-Remove unsafe code;
...
-Panic if can't add item to dict;
-Test added;
2015-07-17 23:47:30 +02:00
Dmitry Trofimov
144d14f8c4
Implement ToPyObject for HashMap->dict conversion.
2015-07-17 22:07:37 +02:00
Dmitry Trofimov
d495eaaa4a
Use err::cast_from_owned_ptr_or_panic, because PyDict_Items creates a new reference to list and can fail.
2015-07-09 00:51:12 +02:00
Dmitry Trofimov
79abfb99e8
A method for accessing dictionary items.
2015-07-08 01:26:50 +02:00
Daniel Grunwald
76e38e1a54
Add python 3 support to PyRustTypeBuilder.
2015-06-28 04:12:51 +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
280cdab7a2
Remove ToPythonPointer from public API
2015-06-27 22:48:40 +02:00
Daniel Grunwald
5414cfb89c
Add py_class_method!()
2015-06-26 03:31:35 +02:00
Daniel Grunwald
5c74f55862
Change `py_func!(py, f)` to `py_fn(f)`.
2015-06-25 00:02:56 +02:00
Daniel Grunwald
6e1fc35177
Split rustobject module.
2015-06-22 00:35:01 +02:00
Daniel Grunwald
7c9b96ee90
PyRustObject: implement tp_dealloc by dropping the rust object
2015-06-20 00:30:40 +02:00
Daniel Grunwald
fa32b52392
Remove unnecessary std::mem::copy_lifetime call.
2015-06-19 22:47:21 +02:00
Daniel Grunwald
2459d8f0c8
Fix #[cfg] condition for i64 on windows
2015-05-29 10:26:28 +02:00
Daniel Grunwald
73e4ce3f8b
#11 : Allow defining python extension types
...
Highly incomplete initial version.
2015-05-27 21:19:32 +02:00
Yoichi Imai
92a30e2c33
Added tests for i64.
2015-05-27 00:17:42 +09:00
Yoichi Imai
e237bdd57f
Converting function for i64 on 32bit/non-windows platform.
2015-05-26 23:48:01 +09:00
Yoichi Imai
8387932793
Generalize pylong_as_u64.
2015-05-26 23:44:29 +09:00
Daniel Grunwald
0b712d0679
Add methods for PyDict
2015-05-24 22:45:43 +02:00
Daniel Grunwald
8c8779e3fb
py_module_initializer! for python 3
2015-05-24 20:06:08 +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
d4bdcc5cbd
Fix warning: unnecessary 'unsafe' block
2015-05-17 21:43:12 +02:00
Daniel Grunwald
6a0f951e94
Use try!() instead of unwrap()
2015-05-17 21:42:34 +02:00
James Salter
b3e20e900b
fix issues in bb13ec, support utf16, python fom PATH
...
* fix ucs4 build broken by bb13ec
* add utf16 decoding to unicode.from_py_object for
narrow unicode builds
* change unicode narrow/wide cfg flag to be
Py_UNICODE_SIZE_4 not Py_UNICODE_WIDE, which doesn't
appear in sysconfig
* support framework builds on os x
* python27-sys exports compilation flags as cargo vars,
and rust-python resurrects them as cfg flags
* travis runs against local python27-sys
* rust-cpython depends on git python27-sys, because
the one on cargo is now incompatible with it (since bb13ec)
2015-05-17 13:20:58 +01:00
James Salter
c1acf04e0e
Fix refs to std::num::cast -> num::traits::cast
...
This function was removed from the rust stdlib in
https://github.com/rust-lang/rust/commit/eeb948 .
Updated to refer to the 'num' crate instead.
2015-05-09 17:12:26 +01: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
1e5605036e
Update documentation
2015-04-19 00:39:04 +02:00
Daniel Grunwald
5d3d03bcac
Remove dead code
2015-04-18 22:25:03 +02:00
Daniel Grunwald
5a303789b9
Don't export cstr! macro
2015-04-18 22:20:19 +02:00
Daniel Grunwald
f8e24a870c
Add support for exposing rust functions to python
2015-04-18 20:17:25 +02:00
Daniel Grunwald
60360fa03f
Fix py_module_initializer
2015-04-18 01:52:48 +02:00
Daniel Grunwald
2a91b00abe
Fix segfault due to POST_DROP_USIZE and update to latest nightly
2015-04-17 22:13:15 +02:00
Daniel Grunwald
dd20e00c77
Update for rust beta.
2015-03-09 14:31:20 +01:00
Daniel Grunwald
913f3ea2e5
Adjust to rust nightly
2015-03-08 15:29:44 +01:00
Daniel Grunwald
f423acee6d
Update to current rust nightly
2015-01-12 03:17:29 +01:00
Daniel Grunwald
5566faf235
py_module_initializer macro
2015-01-12 03:00:34 +01:00
Daniel Grunwald
55ea6cc85b
Add PyList, PyInt, PyLong and PyFloat.
2015-01-11 18:56:59 +01:00