Commit Graph

10 Commits

Author SHA1 Message Date
Daniel Grunwald acc5712536 Don't flatten the rustobject module + started implementing the py_class!() macro. 2016-03-06 06:29:43 +01:00
Daniel Grunwald 53353d374b Remove dependency on interpolate_idents.
We now use the generic <DUMMY> hack to avoid duplicate extern "C" symbols.
See rust-lang/rust#26201.

py_module_initializer!() calls now need to manually concatenate the module
name with the prefixes "init" and "PyInit_".
2016-03-05 23:20:53 +01:00
Daniel Grunwald 5223cf4730 Fix build 2016-03-05 15:57:48 +01:00
Daniel Grunwald e5f77018f1 Allow using py_fn!() as argument to PyRustTypeBuilder::set_new() 2016-03-05 15:16:11 +01:00
Daniel Grunwald d22fbb31ce Refactor py_fn / py_method / py_class_method macros 2016-03-05 15:05:41 +01:00
Daniel Grunwald b617af7c5b Add PyTypeBuilder::set_new(). 2016-03-05 01:16:54 +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 a23b5b5910 Add parameter extraction support to `py_fn!` and `py_method!`.
These macros now support specifying an argument list:
`py_fn!(myfn(myarg: i32))`
will expect `myfn` to be a function with the signature:
`fn myfn<'p>(py: Python<'p>, myarg: i32) -> PyResult<'p, _>`

It can called from python as `myfn(1)`
or using keyword arguments: `myfn(myarg=1)`.

If no parameter list is specified (`py_fn!(myfn)`), the expected signature
now includes the keyword arguments:
`fn run<'p>(py: Python<'p>, args: &PyTuple<'p>, kwargs: Option<&PyDict<'p>>)`

Due to the additional `kwargs` argument, this is a [breaking-change].
2015-08-03 00:06:15 +02:00
Daniel Grunwald 4980053e95 Add py_method!() macro for creating method descriptors. 2015-06-25 23:58:57 +02:00