Commit graph

4248 commits

Author SHA1 Message Date
Daniel Grunwald 337a90c2fb Reserve special method names
Some of these might work via the normal "instance method" functionality,
but we'll need testcases to be sure.
2016-03-12 19:08:51 +01:00
Daniel Grunwald 0bd9e3ebd2 Adjust extension test cases. 2016-03-12 18:14:21 +01:00
Daniel Grunwald cc81a01077 py_class!: add support for instance methods 2016-03-12 17:58:50 +01:00
Daniel Grunwald ab83b4f4a1 #14; Convert Rust panic to Python SystemError 2016-03-12 01:31:06 +01:00
Daniel Grunwald 309182cfe8 py_class!: Add support for "def __new__(cls)". 2016-03-12 00:06:39 +01:00
Daniel Grunwald 547879ef0f Remove rustobject (PyRustObject, TypeBuilder).
Add new py_class!() macro that generates a static type.
2016-03-09 01:07:50 +01:00
Daniel Grunwald 9b278ba56b Implement second form of py_fn!() (inline function definition) 2016-03-07 23:48:44 +01:00
Daniel Grunwald 3af6e17841 WIP: big macro refactoring
* Introduce py_argparse_parse_plist!() to allow a more flexible
  param list syntax.
* py_fn!() syntax changed
* Remove py_method!() / py_class_method!() macros.
  These are of limited use when building dynamic types,
  and not useful for py_class!() static types.
2016-03-07 23:22:44 +01:00
Daniel Grunwald be682d848f WIP: generalize py_argparse!() macro 2016-03-06 13:33:57 +01:00
Daniel Grunwald 162e20d9e4 Fix build with rust-stable: we can't mark functions as public if we
nest the impl block in fn init().
2016-03-06 11:02:48 +01:00
Daniel Grunwald 96ee652737 TypeBuilder: take &mut self instead of by-value self
py_class!() now can be used to define simple types.
2016-03-06 10:29:28 +01:00
Daniel Grunwald 061e46bde8 Rename PyRustTypeBuilder -> TypeBuilder 2016-03-06 06:33:16 +01:00
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 506443210a Fix stable rust version in travis config 2016-03-06 01:11:35 +01:00
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 ad7f43efc7 Remove #![feature(optin_builtin_traits)] usage 2016-03-06 00:22:16 +01:00
Daniel Grunwald 7c90651157 Make use of nightly const_fn + shared features optional. 2016-03-06 00:03:17 +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 a1654d5d65 cpython 0.0.5 2016-03-05 17:51:55 +01:00
Daniel Grunwald a4f946096c Add back accidentally removed #[macro_use] 2016-03-05 17:44:30 +01:00
Daniel Grunwald 067f262876 Some documentation updates 2016-03-05 17:41:04 +01:00
Daniel Grunwald ba325b10d4 python27-sys 0.1.1 and python3-sys 0.1.2 release 2016-03-05 17:40:41 +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 c01a1e8306 Use std::ptr::Shared in PyObject to enable the null pointer optimization. 2016-03-05 02:01:03 +01:00
Daniel Grunwald b617af7c5b Add PyTypeBuilder::set_new(). 2016-03-05 01:16:54 +01:00
Daniel Grunwald 249be0da3a Use #[cfg] on expressions to avoid some code duplication 2016-03-05 00:13:38 +01:00
Daniel Grunwald 1633e24127 Adjust check_symbols.py to changed rustc -Z ast-json output. 2016-03-04 22:21:15 +01:00
Daniel Grunwald 109c704ad7 Fix "reexport of private crate" warning. 2016-03-04 21:35:52 +01:00
Daniel Grunwald 8c398a66cf Merge pull request #37 from millerjs/master
remove duplicate word in docstring
2016-01-29 19:25:35 +01:00
Joshua Miller 7092bd4362 remove duplicate word in docstring 2016-01-28 21:13:39 -06:00
Daniel Grunwald 54aa17abf9 Enable testing with Python 3.5 2016-01-22 20:42:34 +01:00
Daniel Grunwald 7269dc64c2 python*-sys: use #![no_std] 2016-01-22 20:38:34 +01:00
Daniel Grunwald 67282d2e23 Merge pull request #35 from mneumann/fix_doc
Correct the example in README.md
2015-12-31 16:17:18 +01:00
Michael Neumann bab907b0be Correct the example in README.md 2015-12-31 12:43:03 +01:00
Daniel Grunwald 168a060f4b Make PreparedString public. 2015-12-20 13:59:03 +01:00
Daniel Grunwald e8a69d9431 Remove unused pkg_config dependency from python27-sys 2015-12-20 13:57:26 +01:00
Daniel Grunwald 049bcb3278 libsyntax changed yet again 2015-11-15 18:54:45 +01:00
Daniel Grunwald a133bc5c33 appveyor: fix install script 2015-11-12 00:10:56 +01:00
Daniel Grunwald 4f6e674499 appveyor: use .msi instead of .tar.gz for installing rust so that we get rustc, std and cargo all in one package 2015-11-12 00:09:00 +01:00
Daniel Grunwald 669cc56275 Let's see if a path dependency fixes #34. 2015-11-11 23:40:31 +01:00
Daniel Grunwald 56eb23ccbe Use interpolate_idents 0.0.5 2015-11-11 23:40:05 +01:00
Daniel Grunwald a19b186bb4 Fix git URL in readme 2015-11-07 17:19:46 +01:00
Daniel Grunwald e935111c9c Update interpolate_idents to my fork (adjusted for currently Rust nightlies).
Update libc to 0.2.
2015-11-07 17:10:20 +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 d33a4b68fc Add test script that all symbols imported by python-sys are exported from the python .so 2015-09-20 22:21:18 +02:00