Commit Graph

154 Commits

Author SHA1 Message Date
Daniel Grunwald 5414cfb89c Add py_class_method!() 2015-06-26 03:31:35 +02:00
Daniel Grunwald 4980053e95 Add py_method!() macro for creating method descriptors. 2015-06-25 23:58:57 +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 ba0643c11c Add support for creating instances of PyRustObjects that involve inheritance.
Prevent panics from unwinding into C code.
2015-06-20 16:02:09 +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
James Salter b1eca56ec3 Python 3 build support
* Add python3-sys to rust-cpython as an optional feature, and
  make python27-sys also optional, but still the default
* Parametrise python27-sys/build.rs so that it is python
  version independent, and clone it into python3-sys/build.rs.
  Hopefully this can continue to be maintained as an identical
  file.
* python27-sys and python3-sys gain features for explicitly
  selecting a python version to link to. for python27-sys,
  there's currently only python27; for python3-sys there's
  python 3.4 and 3.5.
* explicitly tell travis to use nightlies (seems to have
  started trying to use 1.0.0)
2015-05-23 15:23:08 +01: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 b3fe39c3c4 call() 2015-04-19 05:01:19 +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
Daniel Grunwald 284f7a7931 Fix build 2015-01-11 05:52:11 +01:00
Daniel Grunwald 6d9fd93df2 Go back to 1.0-alpha due to rust issue 21510 2015-01-11 05:41:55 +01:00
Daniel Grunwald d8a1fcd869 update for rust nightly 2015-01-11 04:21:05 +01:00
Daniel Grunwald 706d7c1b78 Port to new rust nighly and add CStr. 2015-01-08 09:20: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
Daniel Grunwald 1c7eb2340d Add PyBool and PyTuple impls 2015-01-06 01:04:25 +01:00
Daniel Grunwald 038dfc7474 ToPyObject simplification 2015-01-05 21:14:01 +01:00
Daniel Grunwald 540f934123 Objects module 2015-01-05 17:06:43 +01:00
Daniel Grunwald c61e1e51f4 Add PyDict and unchecked downcasts. 2015-01-05 17:06:41 +01:00
Daniel Grunwald eca5b4039b Split PythonObjectDowncast from PythonObject 2015-01-05 17:06:40 +01:00
Daniel Grunwald df14c894b2 Move objectprotocol to separate module 2015-01-05 17:06:38 +01:00
Daniel Grunwald 61acf98aec Fix threading 2015-01-05 17:06:36 +01:00
Daniel Grunwald 335913e273 Some minor improvements 2015-01-05 17:06:34 +01:00
Daniel Grunwald 60d07011a3 freethreaded-python 2015-01-05 17:06:31 +01:00
Daniel Grunwald 5569ae3bbc Remove BorrowAsPyObject, and simplify PyPtr by moving the 'p bound into the PythonObject definition. 2015-01-05 17:06:28 +01:00
Daniel Grunwald d247b138c5 Rename PyTypeObject and use associated type for ToPyObject. 2015-01-05 17:06:25 +01:00
Daniel Grunwald 7ccf5c88f1 Initial commit 2015-01-05 17:05:53 +01:00