Nikolay Kim
8d4e0204f1
move PyFloat to separate module
2017-06-11 20:04:34 -07:00
Nikolay Kim
d619ded980
use Py_TPFLAGS_CHECKTYPES for py2
2017-06-11 19:45:01 -07:00
Nikolay Kim
fdd9ac7ae9
various improvements
2017-06-11 18:30:56 -07:00
Nikolay Kim
03ced8917b
PyString for py2
2017-06-11 17:20:18 -07:00
Nikolay Kim
805429e0f4
remove unneeded macro
2017-06-11 16:49:25 -07:00
Nikolay Kim
05d4a0a9a4
rename ffi to ffi3
2017-06-11 16:47:27 -07:00
Nikolay Kim
3b4d147219
initial impl for py2
2017-06-11 16:35:24 -07:00
messense
6b18ccb50b
Implement is_instance and is_subclass ( #27 )
...
* Implement is_instance
* Implement is_subclass
* Move is_instance and is_subclass to Python impl
* Move implementation detail to PyType
2017-06-12 00:41:02 +08:00
messense
cb68cd23a2
Fix some clippy warnings ( #26 )
2017-06-11 23:46:23 +08:00
Nikolay Kim
8188c9533c
do not use descriptor objects for method defs
2017-06-09 15:55:39 -07:00
Nikolay Kim
c28a619efd
add free list support
2017-06-09 14:27:37 -07:00
Nikolay Kim
cfb2b16288
allow to override class name #14
2017-06-09 12:30:13 -07:00
Nikolay Kim
ea8f11fa6d
refactor PyTypeObject trait
2017-06-08 14:34:29 -07:00
Nikolay Kim
86c20bb139
Change sig of PyIterProtocol.__next__ method #18
2017-06-08 13:43:24 -07:00
Nikolay Kim
9e08d3eec5
simplify class method macros
2017-06-08 13:11:16 -07:00
Nikolay Kim
6204de4a6a
Merge branch 'master' of github.com:PyO3/PyO3
2017-06-08 11:29:52 -07:00
Nikolay Kim
a90c763bc0
add class and static methods #17
2017-06-08 11:29:40 -07:00
messense
e12e98a7c1
Convert some std error types to PyErr ( #22 )
...
* Convert some std error types to PyErr
* Add ToPyErr trait
2017-06-08 09:40:30 +08:00
Nikolay Kim
b3079f759c
use descriptor objects for class methods; use PyNoArgsFunction for methods without args
2017-06-06 21:57:03 -07:00
Nikolay Kim
a584ce12e5
release py objects aftre use
2017-06-06 19:26:59 -07:00
Nikolay Kim
84f5578997
varios cleanups
2017-06-05 20:25:00 -07:00
Nikolay Kim
a448aa54cc
clone_ref return Self
2017-06-03 17:42:12 -07:00
Nikolay Kim
57cc139c81
drop Py pointer
2017-06-03 17:27:26 -07:00
Nikolay Kim
b75160daf3
remove pyobject lifetime
2017-06-02 18:58:16 -07:00
Nikolay Kim
27bd365f5c
cleanups
2017-06-02 09:23:48 -07:00
Nikolay Kim
cbfdfa2d07
better naming
2017-06-01 15:06:48 -07:00
Nikolay Kim
fc762288fe
use From instead of as_object; fix type object
2017-06-01 13:34:46 -07:00
Nikolay Kim
9176dc4df1
consistent naming for pointers
2017-06-01 10:35:02 -07:00
Nikolay Kim
bcaaeb8522
simplify PythonToken
2017-06-01 09:45:00 -07:00
Nikolay Kim
6834a18a5b
add ptr support to class
2017-05-31 20:50:40 -07:00
Nikolay Kim
4cdb77335e
reenable buffer tests
2017-05-31 16:26:21 -07:00
Nikolay Kim
2f3ea202b3
add mirror ptr types for native py classes
2017-05-31 15:52:13 -07:00
Nikolay Kim
92bf7b9c05
rename pptr to PyObjectPtr
2017-05-31 01:08:39 -07:00
Nikolay Kim
a3e6117090
incref on inplace number protocol
2017-05-31 01:07:21 -07:00
Nikolay Kim
5d25c7deea
simplify Py and PyPtr objects
2017-05-30 18:57:36 -07:00
Nikolay Kim
3040ac12b9
refactor ToPyObject
2017-05-30 17:23:23 -07:00
Nikolay Kim
b8913a3705
refactor IntoPyObject trait; rename pptr into pyptr, introduce pptr pointers
2017-05-30 16:29:13 -07:00
Nikolay Kim
3b90c569f7
update tests
2017-05-30 13:03:00 -07:00
Nikolay Kim
2b4eba1fc7
Merge pull request #10 from messense/feature/optimize-run_code
...
Optimize `Python.run_code`
2017-05-30 13:02:00 -07:00
Nikolay Kim
b84474155e
convert PyGCProtocol
2017-05-30 12:42:07 -07:00
messense
ec7381084f
Restore PySet and PyFrozenSet
2017-05-30 16:16:48 +08:00
Nikolay Kim
86a8dfec0c
restore sequence and iterator objects
2017-05-29 23:04:02 -07:00
Nikolay Kim
61b8bd0695
fix ptr borrowing PyTuple::get_item
2017-05-29 18:36:44 -07:00
Nikolay Kim
4232caf3a3
update tests
2017-05-29 16:16:48 -07:00
Nikolay Kim
ad38688378
fix sequence protocol; convert buffer protocol
2017-05-29 15:08:19 -07:00
Nikolay Kim
51ac8c9c78
better gil token scope
2017-05-29 13:30:38 -07:00
Nikolay Kim
ea8ccf190a
special treatment for native python objects
2017-05-29 02:47:27 -07:00
Nikolay Kim
55d0d58734
added pptr pointer
2017-05-28 21:19:29 -07:00
Nikolay Kim
969cba2c16
remove Token
2017-05-28 08:57:34 -07:00
Nikolay Kim
6c87c9b77b
introduce python token system
2017-05-27 22:45:48 -07:00
Nikolay Kim
bfb01f65d3
update tests
2017-05-27 11:43:45 -07:00
Nikolay Kim
6205be98b8
introduce PythonToken; cleanup number protocol
2017-05-27 10:49:38 -07:00
Nikolay Kim
467cce6c6d
reenabled RefFromPyObject trait; fixed ref cnt in PyErr::fetch
2017-05-26 18:25:34 -07:00
Nikolay Kim
52bcc11cd8
fix pyclass methods
2017-05-26 16:51:33 -07:00
Nikolay Kim
1df2c931e5
allow to extract refs from Py ptrs
2017-05-26 15:33:34 -07:00
Nikolay Kim
d165dbe4d4
fixed gil lifetime; pass py object into protocol methods
2017-05-26 14:43:28 -07:00
Nikolay Kim
48329a793d
disable set
2017-05-25 08:08:40 -07:00
Nikolay Kim
0979653b98
various cleanups
2017-05-25 08:06:10 -07:00
Nikolay Kim
f3176dacfc
use pyptr for everything
2017-05-25 08:06:06 -07:00
Nikolay Kim
912b9d2cb1
convert object and sequence protocols
2017-05-25 07:58:25 -07:00
Nikolay Kim
747fd8a6ff
added helper method Python::init, shortcut for Py::new(..)
2017-05-25 07:58:25 -07:00
Nikolay Kim
b350e1cfb4
add description
2017-05-25 07:58:25 -07:00
Nikolay Kim
5fdad40caa
rename PyTypeObjectInfo to PyTypeInfo; use PyTypeInfo::offset() for struct offset
2017-05-25 07:58:25 -07:00
Nikolay Kim
579c1280e9
simplify BaseObject; no need in PythonObject trait
2017-05-25 07:58:25 -07:00
Nikolay Kim
a29f5e83c0
more functionality for Py and PyPtr
2017-05-25 07:58:25 -07:00
Nikolay Kim
d6fb90bdc2
stopping point
2017-05-25 07:58:25 -07:00
Nikolay Kim
56d93249ab
pyptr
2017-05-25 07:58:25 -07:00
messense
8f62197f07
Optimize Python.run_code
2017-05-25 21:13:16 +08:00
messense
f0120749f9
Fix some issues in README.md
2017-05-21 20:37:56 +08:00
messense
4c802d901b
More generic new
method for PyList/PyTuple and etc.
2017-05-21 14:00:41 +08:00
messense
3401683eb6
Merge pull request #3 from messense/feature/set-binding
...
Add set binding
2017-05-21 13:25:07 +08:00
Nikolay Kim
8fd6e3216f
convert object and number protocols to new system
2017-05-20 22:18:31 -07:00
messense
63c70da9af
Add set binding
2017-05-21 10:40:24 +08:00
Nikolay Kim
629f53ac52
new impl for sequence protocol
2017-05-20 12:15:28 -07:00
Nikolay Kim
452a4e8d7f
more mapping protocol methods; start working on class tests
2017-05-20 10:40:33 -07:00
Nikolay Kim
1f2c927bd5
update buffer proto tests
2017-05-19 23:18:54 -07:00
Nikolay Kim
201289d6ca
add __new__ and __call__ support
2017-05-19 23:14:59 -07:00
Nikolay Kim
eb64aa11ac
generate method defs from protocols
2017-05-19 11:48:05 -07:00
Nikolay Kim
0c7293125c
simplify class generation
2017-05-18 23:29:09 -07:00
Nikolay Kim
5119fa4f1d
fix generated type name
2017-05-18 16:57:39 -07:00
Nikolay Kim
1ff47d49c1
added PyIterProtocol
2017-05-18 15:57:38 -07:00
Nikolay Kim
8b3c280450
fix optional arg generation
2017-05-18 11:15:06 -07:00
Nikolay Kim
04168ab86e
added fn spec for args parsing
2017-05-18 00:05:49 -07:00
Nikolay Kim
9759cf7177
refactor PyAsyncProtocol
2017-05-17 18:25:26 -07:00
Nikolay Kim
2eea45e9fa
better slot trait definition
2017-05-17 16:33:18 -07:00
Nikolay Kim
c9aefd7e5f
drop py_class
2017-05-16 23:43:39 -07:00
Nikolay Kim
34e4d956f1
basic object customization interface
2017-05-16 16:54:27 -07:00
Nikolay Kim
086f24e7a1
added descriptor protocol support
2017-05-16 15:32:46 -07:00
Nikolay Kim
521a91fbc2
remove unused imports
2017-05-16 14:18:31 -07:00
Nikolay Kim
9b1c4c55f4
added properties support
2017-05-16 11:58:18 -07:00
Nikolay Kim
6d40d651a1
add number protocol
2017-05-16 03:31:48 -07:00
Nikolay Kim
78d7d99bd8
added sequence protocol
2017-05-16 01:27:59 -07:00
Nikolay Kim
d8fff8e91a
proper impl for mapping __setitem__ and __delitem__
2017-05-16 00:35:07 -07:00
Nikolay Kim
d45c0a36c4
add mapping protocol
2017-05-16 00:07:36 -07:00
Nikolay Kim
5427a33c75
stopping point
2017-05-15 22:24:06 -07:00
Nikolay Kim
f4feade487
add PyAsyncProtocol
2017-05-14 18:55:04 -07:00
Nikolay Kim
088d44f8d1
simplify ToPyObject trait
2017-05-14 14:42:56 -07:00
Nikolay Kim
3e20979f3f
implement buffer protocol with proc macro
2017-05-14 12:52:30 -07:00
Nikolay Kim
b2d49c3648
drop py3.4
2017-05-12 23:29:59 -07:00
Nikolay Kim
03a3817878
update readme and travis
2017-05-12 23:01:54 -07:00
Nikolay Kim
a95de027c1
update tests
2017-05-12 22:43:17 -07:00
Nikolay Kim
8a295793a0
include py3 ffi info into crate
2017-05-12 22:05:00 -07:00
Nikolay Kim
da310715f4
more exceptions
2017-05-09 13:40:00 -07:00
Nikolay Kim
c86a5ff4a3
bloking error exceptions
2017-05-06 23:12:48 -07:00
Nikolay Kim
762708d4d2
added ToPyObject for ()
2017-05-05 09:30:58 -07:00
Nikolay Kim
e128fa8224
PyString::from_object may fail
2017-05-04 22:03:23 -07:00
Nikolay Kim
83632604ae
create unicode object from object with buffer api support
2017-05-02 21:19:51 -07:00
Nikolay Kim
a65f9e03fc
fix __buffer_get__ return type
2017-04-30 01:17:22 -07:00
Nikolay Kim
257be7119c
added convinience method
2017-04-29 21:31:35 -07:00
Nikolay Kim
8d728663d7
introduce ToPyTuple trait, that simplifies ObjectProtoco.call method
2017-04-28 16:30:46 -07:00
Nikolay Kim
f651b442ba
add PyByteArray
2017-04-27 21:22:15 -07:00
Nikolay Kim
665921e84e
add PySlice
2017-04-27 19:44:56 -07:00
Nikolay Kim
8ccb749c1e
add PyErr to io::Error convert
2017-04-27 19:39:47 -07:00
Nikolay Kim
ffe774a8cc
add class properties
2017-04-06 19:20:06 -07:00
Nikolay Kim
364d7af69c
pass Py_3_x cfg var with links
2017-04-06 18:59:10 -07:00
Nikolay Kim
23c36f5714
pyclass can provide buffer interface
2017-04-06 18:59:10 -07:00
Nikolay Kim
9bb6ec20a1
add PyAsyncMethods support
2017-04-06 18:59:10 -07:00
Daniel Grunwald
4b6b82037e
Support compare() in Python 3; and add rich_compare().
2017-04-06 18:59:10 -07:00
Daniel Grunwald
508937bada
PyModule::add_class(): set __module__ on the type object
2017-02-19 16:15:33 +01:00
Daniel Grunwald
e638b2654a
Avoid Rust->Python->Rust roundtrip when using default value in argparse! optional parameter with reference extraction.
2017-01-27 23:21:57 +01:00
Daniel Grunwald
32e0d35603
Update documentation
2017-01-27 21:52:04 +01:00
Luthaf
d615c319f6
Implement optional parameters for reference types
2017-01-26 21:35:16 +01:00
Guillaume Fraux
9707c5ab72
Implement optional values in argparse
2017-01-26 21:19:38 +01:00
Daniel Grunwald
ca4203e4db
Add PyBuffer::to_vec(). Avoids unnecessary zero-initialization when creating a Vec from a buffer.
2017-01-21 00:40:32 +01:00
Daniel Grunwald
e3d6ac2ca8
Test extracting Vec<u8> using bytearray instead of bytes: On Python 2.7, the sequence protocol on bytes returns characters, not integers.
2017-01-20 23:22:45 +01:00
Daniel Grunwald
3152ef22f0
Expand on the buffer protocol.
...
When compiling with --feature nightly, we now use specialization to optimize extract::<Vec<PrimititeType>>() from an object implementing the buffer protocol.
2017-01-20 23:14:29 +01:00
Daniel Grunwald
af8131f858
Initial attempt at the buffer protocol.
...
Does not yet provide a safe way of accessing the buffer contents.
2017-01-20 01:08:51 +01:00
Daniel Grunwald
a48d74c62c
Fix #19 : allow extracting a Vec from anything implementing the sequence protocol, not just from list
.
2017-01-20 01:08:12 +01:00
Daniel Grunwald
fbe1a07d10
Mention pub class
in the documentation.
2017-01-19 21:56:06 +01:00
Daniel Grunwald
06cab0a925
Fix #77 : Add support for py_class!(pub class ...)
2017-01-19 21:50:49 +01:00
Matteo Bertini
3af2e3a9fa
Fix __traverse__ list formatting (add missing newline)
2016-12-24 08:05:47 +01:00
Daniel Grunwald
e2d7781433
Add "extension-module" feature to suppress linking pythonX.Y.so.
...
The symbols are instead kept unresolved, so that they can be used with
any compatible python interpreter, even if the target system uses a
statically linked python and lacks pythonX.Y.so altogether.
2016-12-17 21:17:11 +01:00
Daniel Grunwald
62a083e38f
PyTuple: Add back iter() method (fixes build); require py: Python for as_slice().
...
This is a compromise solution: we require the GIL to be held when acquiring
the slice, but not later when using the slice.
We could bind the lifetime of the returned slice to the Python-token lifetime
to prevent accessing the slice when the GIL is not held, but that causes
problems with the FromPyObject impl.
Alternatively we could not require the GIL at all when accessing the PyTuple
(and thus keep the ops::Index and IntoIterator implementations), but that
relies on too many CPython implementation details for my taste.
2016-12-17 16:40:17 +01:00
Daniel Grunwald
4cb29c14fa
Remove hacks for compatibility with old rust versions. The new minimum required version is Rust 1.13.0.
...
This significantly reduces our #[cfg(feature="nightly")] usage.
2016-12-17 16:05:21 +01:00
Daniel Grunwald
f6ed2bbae9
Fix #10 : Windows support.
...
We keep the #[link] attributes in #[cfg_attr(windows)] so that we don't require a nightly Rust build on non-Windows platforms.
This can be simplified once RFC 1717 is available in a stable rust version.
This commit also increases the minimum Rust version to 1.13.
2016-12-17 15:46:52 +01:00
Daniel Grunwald
278c1aece8
Fix #56 : PyModuleDef changed "m_slots" to "m_reload" in Python 3.5.
2016-12-10 13:03:51 +01:00
Daniel Grunwald
2c89f62646
Fix non_upper_case_globals warning in py_class!() macro.
2016-12-10 12:41:08 +01:00
Daniel Grunwald
39e73b80dd
Merge pull request #65 from sciyoshi/uppercase-static
...
Use uppercase names for static variables to fix warnings
2016-11-13 11:15:02 +01:00
Daniel Grunwald
b34d815416
Mention to_py_object() and extract() in PyInt method documentation.
2016-11-13 11:14:13 +01:00
Samuel Cormier-Iijima
d2b9533406
Use uppercase names for static variables to fix warnings
2016-11-11 21:50:18 -05:00
Colin Rofls
be884bfe7f
added example of implementing a basic python module
2016-10-26 15:55:50 -04:00
Daniel Grunwald
1129131501
Remove #[feature(unsafe_no_drop_flag)]: it's no longer necessary with the latest nightlies.
...
Warning: to use rust-cpython with --feature nightly, you now must use 'rustc 1.13.0-nightly (e9bc1bac8 2016-08-24)' or newer; or you'll get segfaults due to the drop flags.
Use of rust-cpython with stable rust is not affected.
2016-08-25 21:22:18 +02:00
Tibor Benke
227c0a6e41
Fix Markdown formatting in py_fn!'s documentation
...
Signed-off-by: Tibor Benke <tibor.benke@balabit.com>
2016-07-28 23:56:43 +02:00
Tibor Benke
ca6bd439ae
Correct documentation by replacing ExtractPyObject with FromPyObject
...
Signed-off-by: Tibor Benke <tibor.benke@balabit.com>
2016-07-28 23:56:35 +02:00
Tibor Benke
d054115d85
Fix C FFI bug in PyErr
...
Use null-terminated strings to call PyErr_NewException()
Signed-off-by: Tibor Benke <ihrwein@gmail.com>
2016-07-28 15:43:06 +02:00
Samuel Cormier-Iijima
2e8d343b0f
Add support for in-place numeric operators in py_class!
2016-06-14 16:00:55 -04:00
Samuel Cormier-Iijima
291e08e29a
Remove CompareOp::Other, change to __richcmp__, and add tests
2016-06-06 20:43:16 -04:00
Samuel Cormier-Iijima
305bc4324d
Add support for overloading comparison operators with __richcompare__
2016-06-06 16:08:48 -04:00
Samuel Cormier-Iijima
d77f93056e
Add py_exception! macro for defining custom exception types
2016-06-05 18:12:25 -04:00
Daniel Grunwald
d7446cf38f
Add back tuple extraction.
2016-05-08 21:54:26 +02:00
Daniel Grunwald
0222176836
#40 : split ExtractPyObject into two traits:
...
* FromPyObject for all conversions that don't need to borrow temporaries
* RefFromPyObject for extracting references out of temporaries
(currently only used for extracting `&str`)
2016-05-08 21:25:09 +02:00
Daniel Grunwald
1a6e26f3c3
impl ToPyObject+ExtractPyObject for Option<T>
2016-05-08 17:51:16 +02:00
Daniel Grunwald
597893c621
py_class!: add __enter__ and __exit__
2016-05-08 17:28:26 +02:00
Daniel Grunwald
453c43203f
py_class!: __lshift__, __rshift__, __and__, __xor__, __or__
2016-05-08 01:17:22 +02:00
Daniel Grunwald
d26809122e
Fix build with python 3.
2016-05-08 01:04:07 +02:00
Daniel Grunwald
4535827f8e
py_class!: __add__, __sub__, __mul__, __neg__, __pos__, __abs__, __invert__
2016-05-08 01:01:18 +02:00
Daniel Grunwald
04081bc8de
__contains__: if extraction fails with TypeError, return False instead.
2016-05-07 23:31:46 +02:00
Daniel Grunwald
9eafaebfa2
py_class!: add __contains__ and __reversed__
2016-05-07 23:19:26 +02:00
Daniel Grunwald
5886720c90
py_class!: add __setitem__ and __delitem__
2016-05-07 23:01:45 +02:00
Daniel Grunwald
806f212dc4
py_class!: Make the body to be parsed the first argument.
2016-05-07 20:29:29 +02:00
Daniel Grunwald
20c2dcdba7
Simplify py_class_impl.py
2016-05-07 19:49:07 +02:00
Daniel Grunwald
3de859373c
py_class!: add __getitem__
2016-05-07 00:04:18 +02:00
Daniel Grunwald
713a5c53d3
py_class!: add __length_hint__, and map __len__ to both sq_length and mp_length.
2016-05-06 23:16:06 +02:00
Daniel Grunwald
318d9a9ef3
py_class!: add __call__ slot
2016-05-06 22:32:46 +02:00
Daniel Grunwald
78f673893d
Make CallbackConverter output type an associated type.
2016-05-06 22:11:56 +02:00
Daniel Grunwald
d21143fa39
py_class!: add __bool__ slot
2016-05-06 22:05:12 +02:00
Daniel Grunwald
c06838a38e
py_class!: add __hash__
slot
2016-05-06 21:41:05 +02:00
Daniel Grunwald
933e0ed11d
Add documentation and tests for string conversion special methods.
2016-05-06 21:24:32 +02:00
Daniel Grunwald
3d99a4ac3c
Fix build with stable rust.
2016-05-05 07:48:29 +02:00
Daniel Grunwald
9ab3e9ea4e
char::REPLACEMENT_CHARACTER isn't stable yet
2016-05-05 07:42:04 +02:00
Daniel Grunwald
be0c1573aa
py_class!: add support for __str__, __repr__, __unicode__ and __format__
2016-05-05 07:31:14 +02:00
Daniel Grunwald
b37fa220df
On Python 2.7, PyString now corresponds to basestring
instead of str
.
...
`<str as ToPyObject>::ObjectType` now always is `PyString`
(previously the type differed between Python 2.7 and 3.x)
`PyStringData` allows zero-copy access to Python's underlying string
representation.
2016-05-05 07:26:52 +02:00
Daniel Grunwald
d68e664327
Add support for __iter__ and __next__ slots.
2016-04-30 23:41:18 +02:00
Daniel Grunwald
0445560241
Fix not(nightly) build
2016-04-17 23:42:23 +02:00
Daniel Grunwald
9aec3f33f1
We only need num-traits, not the full num crate.
2016-04-17 23:35:17 +02:00
Daniel Grunwald
fffcf57834
Add support for __len__ special method.
2016-04-17 23:26:33 +02:00
Daniel Grunwald
a14e3d2b77
Share macro code between tp_new and other class methods.
2016-04-17 18:04:58 +02:00
Daniel Grunwald
fb5e4a1521
Generate repetive portions of py_class_impl! macro
2016-04-17 15:53:48 +02:00
Daniel Grunwald
b721868c25
Document pitfalls with __traverse__ and RefCell.
2016-04-17 14:03:51 +02:00
Daniel Grunwald
4a01ed31fb
Add documentation for __traverse__ and __clear__
2016-04-14 19:44:08 +02:00
Daniel Grunwald
cd88d28973
Add __clear__() special method.
...
Together with __traverse__, this can be used integrate Python classes
defined in Rust with the Python garbage collector.
2016-04-14 18:41:29 +02:00
Daniel Grunwald
2e977a9c21
gc integration: __traverse__ method
2016-04-14 18:41:29 +02:00
Daniel Grunwald
271a44475d
panic::recover -> panic::catch_unwind
2016-04-14 18:41:29 +02:00
Daniel Grunwald
cdf2dc8ff7
py_class!: add support for static class members
...
Fix bug that caused macro expansion to fail when a class had more than
one member.
2016-03-18 21:39:11 +01:00
Daniel Grunwald
3826b54a30
py_class!: Add support for class methods.
2016-03-16 22:18:48 +01:00
Daniel Grunwald
f89f957dd4
Add support for @staticmethod.
2016-03-16 21:49:45 +01:00
Daniel Grunwald
80a4ad1466
Fix bug in py_class! when declaring an instance method with parameter list
2016-03-16 21:36:18 +01:00
Daniel Grunwald
e608d5eabe
Fix build with stable Rust.
2016-03-12 20:20:41 +01:00
Daniel Grunwald
b43fa55e01
Delete old 'rustobject' code
2016-03-12 19:09:10 +01:00
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