Commit graph

271 commits

Author SHA1 Message Date
kngwyu 9b5ea3f46b More ergonomic error messages for invalid #[pyclass] args 2020-03-22 17:13:02 +09:00
kngwyu 89e5a654ad Bump version to 0.9.0 2020-03-19 13:48:00 +09:00
kngwyu 02ee7a5afc Expose PyAny to lib.rs and prelude 2020-03-18 13:38:18 +09:00
kngwyu 8480396a22 Specify default-features = false for proc-macro related ctates 2020-03-16 19:50:09 +09:00
Yuji Kanagawa 9c3331e66c
Merge pull request #795 from PyO3/relase-0.9
Write migration guide
2020-03-13 19:11:51 +09:00
David Hewitt 759dbeaed7 Fix clippy lifetime lint 2020-03-10 18:49:23 +00:00
kngwyu 107c0cf1ba Unify AsPyRef for Py<T> to make rust-numpy work 2020-03-09 18:31:43 +09:00
kngwyu 26fe29f0cb Some refactorings for pyfunction.rs 2020-03-06 19:01:05 +09:00
kngwyu cea707dd1c Inhibit positional args after * 2020-03-06 14:01:27 +09:00
kngwyu 25069baef4 Fix the interpretation of '*' 2020-03-04 23:48:46 +09:00
kngwyu e63e0cbf5a Make it enable to take &PyClass as arguments as pyfunctions/methods 2020-03-04 13:37:26 +09:00
kngwyu 6307c25b81 Remove static mut from make_module 2020-03-03 18:46:20 +09:00
kngwyu ee0c178fed Remove ObjectProtocol::get_base and fix class.md 2020-03-02 13:08:37 +09:00
kngwyu 68a3b15943 Use PyBorrowFlagLayout to ensure the baseclass has a borrow flag 2020-02-23 01:02:14 +09:00
kngwyu c2a40fbf70 Modify CallbackConverter so that it can deal with try_borrow well 2020-02-22 20:01:08 +09:00
Yuji Kanagawa 98d810e662 Apply suggestions from davidhewitt's review
Co-Authored-By: David Hewitt <1939362+davidhewitt@users.noreply.github.com>
2020-02-18 12:51:02 +09:00
kngwyu 2fd2185052 Merge branch 'master' into pycell 2020-02-17 00:07:15 +09:00
kngwyu 8f8b42591a Fix PySelf and AsPyRef 2020-02-16 23:54:55 +09:00
David Hewitt d5509424b2 Make #[pymethods] aware of #[cfg] 2020-02-15 14:07:48 +00:00
kngwyu da4ed398bb Fix PyCell to share BorrowFlag with parents 2020-02-15 18:13:39 +09:00
kngwyu 7b3de17d81 Run cargo fmt 2020-02-10 18:18:44 +09:00
Yuji Kanagawa 0eb4eb4e58 Merge branch 'master' into property-fixes 2020-02-10 15:13:19 +09:00
kngwyu a6fed34e23 Fix clippy warnings in build.rs and tests 2020-02-10 14:53:13 +09:00
David Hewitt de9698e7a5 Changes from PR#760 2020-02-09 11:06:44 +00:00
David Hewitt cea8a9a2b0 Refactor to clean up property descriptor macros 2020-02-08 18:57:30 +00:00
kngwyu a2408cacbb Rename PyClassShell with PyCell 2020-02-08 15:05:13 +09:00
kngwyu 50de21abb7 Use AtomicBool for lazy types 2020-02-08 14:03:57 +09:00
David Hewitt f8c8b8effd Fix for PyObject with #[pyo3(get)] 2020-02-07 19:31:13 +00:00
kngwyu 58a0841ff7 Rewrite LazyTypeObjects without once_cell 2020-02-07 00:10:27 +09:00
kngwyu f8de335b00 Make PyTypeInfo::type_object return &'static instead of NonNull 2020-02-06 19:11:59 +09:00
Yuji Kanagawa 14980d742d
Merge pull request #755 from davidhewitt/property-doc
Fix docstrings generated by `[pyo3(get, set)]`
2020-02-03 18:14:54 +09:00
David Hewitt dfb7d7c58d Fix docstrings generated by [pyo3(get, set)] 2020-02-03 08:01:30 +00:00
David Hewitt 04f30c5971 Revisions from PR#751 2020-02-03 07:34:42 +00:00
David Hewitt 7531b9fb07 Remove even more uses of static mut 2020-01-30 13:24:55 +00:00
David Hewitt 5cbdef6471 Remove static mut from PyTypeInfo implementation 2020-01-30 00:14:27 +00:00
David Hewitt a8ec946fc3 Fix usage of raw idents with #[pyo3(set)] 2020-01-27 10:29:14 +00:00
Yuji Kanagawa 541816b7d2
Merge pull request #730 from davidhewitt/extract-clone
FromPyObject for #[pyclass] with T: Clone
2020-01-25 12:42:05 +09:00
David Hewitt fdf407e045 FromPyObject for #[pyclass] with T: Clone 2020-01-24 08:57:28 +00:00
David Hewitt 43df3299ab Remove PyNoArgsFunction 2020-01-22 16:27:36 +00:00
kngwyu 56f68a55cd Bump version to 0.9.0-alpha.1 2020-01-16 20:05:44 +09:00
Alexander Niederbühl 0a84c201f7 Revert "Disable segfaulty subclassing by default"
This reverts commit 5096f936dc.
2020-01-12 01:22:32 +01:00
kngwyu 451de182cb Merge branch 'master' into pyclass-new-layout 2020-01-08 17:16:33 +09:00
kngwyu f26e07cfd6 Replace IntoInitializer<T> with Into<PyClassInitializer<T>> 2020-01-07 13:08:41 +09:00
David Hewitt 60edeb889e Simplify IntoInitializer 2020-01-06 13:19:58 +00:00
kngwyu d22b03edde Bump version to 0.8.5 2020-01-05 16:39:18 +09:00
kngwyu 18e565fab5 New PyClassInitializer 2020-01-05 16:01:05 +09:00
Matthias Lochbrunner ff2aaea334 Fixes PyObjectDelAttrProtocol 2020-01-01 16:51:40 +01:00
kngwyu 6b84401126 Make it enable to safely inherit native types 2019-12-21 23:28:55 +09:00
kngwyu 8175d6f36a Merge branch 'master' into pyclass-new-layout 2019-12-19 16:12:45 +09:00
David Hewitt b245e71c14 Address comments from PR#692 2019-12-18 14:26:25 +00:00
David Hewitt 0032508c3c Format code 2019-12-17 22:58:34 +00:00
David Hewitt 4b18830f1e Add #[name] attribute support for #[pyfunction] 2019-12-17 22:14:28 +00:00
David Hewitt 881cb0a5a4 Fix build failure on minimum nightly 2019-12-17 18:08:35 +00:00
David Hewitt 7702395b3d Add #[name = "foo"] attribute to #[pymethods] 2019-12-17 17:45:53 +00:00
kngwyu b86de9376d Introduce PyClassInitializer 2019-12-15 21:04:36 +09:00
kngwyu a6639076b9 Introduce PyInternalCaster 2019-12-14 23:16:39 +09:00
kngwyu d8a4ecb476 Bump version to 0.8.4 2019-12-14 15:20:55 +09:00
kngwyu 4d7dfafe2b Allow slf: &PyClassShell<Self> 2019-12-08 23:09:00 +09:00
kngwyu bdb66afe0a Make PyClassShell have dict&weakref 2019-12-08 17:18:25 +09:00
Jacob Lifshay a676e6d5aa clean up gen_py_method and fix typos 2019-12-06 15:05:41 -08:00
Jacob Lifshay 95c2e2f585 clean up parse_text_signature_attrs and get_doc 2019-12-03 16:42:48 -08:00
Jacob Lifshay 07611b0358 remove unnecessary lifetime 2019-11-29 13:34:04 -08:00
Jacob Lifshay af8c0d2531 switch text_signature to arguments only & add tests 2019-11-29 12:19:56 -08:00
Jacob Lifshay 2915f50fc4 fix compile error 2019-11-27 14:31:16 -08:00
Jacob Lifshay 3c1a975ec0 initial untested implementation 2019-11-24 06:00:21 -08:00
kngwyu 935adaa5d5 Bump version to 0.8.3 2019-11-23 17:09:10 +09:00
kngwyu f0526eb739 Change error message around #[init] 2019-11-02 14:44:16 +09:00
kngwyu 8550e0f575 Remove #[init] attribute 2019-10-31 19:39:53 +09:00
kngwyu 14d2196ba0 Bump version to 0.8.2 2019-10-26 22:47:19 +09:00
Yuji Kanagawa 6868d7f734
Merge branch 'master' into fix-mapping-protocol 2019-10-26 02:55:54 +09:00
Sebastian Puetz 3b707c8511 Remove contains and iter from PyMappingProtocol.
The methods are not expected by CPython and are only explicitly
callable. To get iteration support, PyIterProtocol should be
implemented and to get support for `x in mapping`,
PySequenceProtocol's __contains__ should be implemented.

https://github.com/PyO3/pyo3/issues/611
2019-10-25 17:20:44 +02:00
Sebastian Puetz 4864c584f3 Fix derive for PyObjectSetAttrProtocol.
PyObjectSetAttrProtocol doesn't define associated type Success.
2019-10-25 16:10:00 +02:00
kngwyu 3c898ee27d [derive-backend] Do not increment option_pos for *args/**kwargs 2019-10-16 02:51:22 +09:00
Yuji Kanagawa 1796335617
Merge pull request #626 from Alexander-N/unwrap
Remove unwrap for attribute parsing
2019-10-13 15:46:17 +09:00
Alexander Niederbühl 65ad8a87ff Remove unwrap for attribute parsing
This change enables getting a helpful error message.
2019-10-12 20:29:03 +02:00
Alexander Niederbühl c7a53611e0 Enable to give None as default value for an argument 2019-10-12 20:16:25 +02:00
kngwyu d019fe814c Bump version to 0.8.1 2019-10-08 01:52:06 +09:00
Martin Larralde 33bf37d3d8 Run cargo fmt on source code and update CHANGELOG.md 2019-10-07 17:12:32 +02:00
konstin a3e41cc819 Release 0.8.0 2019-09-05 13:18:50 +02:00
konstin 3228b4cd6c
Merge pull request #585 from andersk/drain-gil
Require the GIL to be held in ReleasePool::drain
2019-09-05 12:46:35 +02:00
konstin 305b774ded
Merge pull request #450 from birkenfeld/parse_args_msg
Adjust the varargs/kwds objects to remove arguments consumed by parameters
2019-09-05 12:45:50 +02:00
kngwyu df44e500a9 Remove py from parse_fn_args's args(to address clippy warning) 2019-09-02 23:05:42 +09:00
kngwyu 3d821b7f47 Enable slf: PyRef<'py, Self> 2019-09-02 00:31:22 +09:00
kngwyu c7e377a472 [derive_utils] Copy kwargs not to modify it 2019-09-01 23:59:24 +09:00
kngwyu 96b71bfb76 Merge branch 'master' into parse_args_msg 2019-08-31 17:03:15 +09:00
Anders Kaseorg e70e9ab5e6 Require the GIL to be held to drain the ReleasePool
This adds a `Python` marker to `GILPool`, to prevent the caller from
misusing it to drain the `ReleasePool` and release Python objects
without the GIL held.

Signed-off-by: Anders Kaseorg <andersk@mit.edu>
2019-08-29 23:55:59 -07:00
konstin 30e82a3018 Replace IntoPyObject with IntoPy<PyObject> 2019-08-24 19:23:28 +02:00
konstin 39f151c3bd Upgrade to syn 1.0 2019-08-19 13:11:57 +02:00
konstin 5096f936dc Disable segfaulty subclassing by default
See https://github.com/PyO3/pyo3/issues/220 and https://github.com/PyO3/pyo3/issues/407 for details on those segfaults
2019-08-05 11:52:47 +02:00
Yuji Kanagawa 67a7a6de67
Merge branch 'master' into clippy 2019-07-15 12:44:56 +09:00
Alexander Niederbühl faa21f48c7 Fix some clippy lints 2019-07-14 22:42:37 +02:00
Paul Ganssle 59ed277879
Enforce GC contract at compile time
PyGCProtocol must be implemented for anything registered as tracked by
the garbage collector. This modifies the `pyclass` macro to enforce this
at compile time.
2019-07-14 17:55:47 +02:00
kngwyu a6438ebb10 Handle a corner case in which a getter takes multiple Python 2019-07-14 14:35:50 +09:00
kngwyu 721e746585 Allow py: Python as an argument of getter 2019-07-12 23:41:13 +09:00
kngwyu fc5cdc1031 [derive-backend] Add utils::if_type_is_python 2019-07-12 22:22:56 +09:00
Georg Brandl cba1657460 Adjust the varargs/kwds objects to remove arguments consumed by parameters
Also fix some other validation issues and add more tests.

fixes #420
2019-06-16 22:13:50 +09:00
kngwyu 35f5301675 Reject generics explicitly for #[pyclass] 2019-06-05 18:46:17 +09:00
Martin Larralde 99fdafbb88 Allow setting the module name for a pyclass (#499)
* Add `MODULE` const value to `PyTypeInfo` trait

* Allow setting module name in `pyclass` macro arguments

* Add `$module` argument to `pyobject_native_type` macro in `pyo3::types`

* Set the right module for builtin types in `pyo3::types`

* Add `module` argument to example `word_count.WordCounter` class

* Add `module` argument of `pyclass` macro to guide

* Reformat code using `rustfmt`

* Add tests and entry in CHANGELOG.md for `module` argument in `pyclass`

* Make `$module` parameter in `pyobject_native_type` optional

* Make `pyobject_native_type` declare module as `Some("builtins")` by default
2019-06-03 12:18:44 +09:00
konstin 0279b3d69f Release 0.7.0 2019-05-26 17:27:14 +09:00
Alexander Niederbühl 6a7090c0b0 Fix some clippy lints 2019-05-16 00:16:23 +02:00