Commit Graph

2469 Commits

Author SHA1 Message Date
Yuji Kanagawa a009c23bb1
Merge pull request #1166 from alex/abi3-name
Make PyType::name abi3 compatible
2020-09-09 14:16:07 +09:00
Alex Gaynor 117f60bed0 Make PyType::name abi3 compatible
The implementation is more complex, because there's no equivalent to tp_name in the limited API
2020-09-08 12:22:59 -04:00
Yuji Kanagawa 679326edbc
Merge pull request #1165 from alex/abi3-fill-dict
Fill tp_dict on types in an abi3-friendly way
2020-09-08 22:44:35 +09:00
Alex Gaynor 0709a02310 Fill tp_dict on types in an abi3-friendly way
I think this might technically be backwards incompatible if you had a custom metaclass with fancy behavior, but pyo3 doesn't seem to have any native support for those.
2020-09-08 08:18:52 -04:00
Yuji Kanagawa e8936be3ce
Merge pull request #1162 from alex/disable-buffer-more
Complete the process of disabling buffers with Py_LIMITED_API
2020-09-08 15:04:54 +09:00
Yuji Kanagawa 4325a59ede
Merge pull request #1164 from alex/abi3-no-free-func
Properly mark a function as limited API only
2020-09-08 15:04:09 +09:00
Alex Gaynor 71a7b1a6b6 Properly mark a funtion as limited API only 2020-09-07 12:25:08 -04:00
Alex Gaynor 80e2497c4c Complete the process of disabling buffers with Py_LIMITED_API 2020-09-07 07:49:24 -04:00
Yuji Kanagawa 3b61df25c9
Merge pull request #1161 from alex/abi3-fix-errors
Fixed a few compilation errors on the abi3 branch
2020-09-07 17:32:46 +09:00
Alex Gaynor 4cd6d4c772 Fixed a few compilation errors on the abi3 branch 2020-09-06 17:35:05 -04:00
kngwyu e0f75f80b1 Fix missing PyGetSetDef_INIT and Adress clippy warnings 2020-09-06 17:37:59 +09:00
kngwyu 1941f4daef Rename all-apis with unstable-api 2020-09-06 17:37:55 +09:00
kngwyu c2f10e2185 Restructure protcol-table initialization 2020-09-06 01:50:39 +09:00
kngwyu d2a10b688f Introduce all-apis feature to support abi3 2020-09-05 17:52:41 +09:00
Yuji Kanagawa 62a175e398
Merge pull request #1132 from alex/abi3-class-creation
Use PyType_Spec for creating new types in Rust
2020-09-05 16:11:10 +09:00
Alex Gaynor 400462063d Proof of concept of using PEP384s PyType_Spec 2020-09-02 16:54:39 -04:00
Yuji Kanagawa 4a05f2782c
Merge pull request #1129 from alex/limit-tuples
Use CPython stable APIs for implementing tuples.
2020-08-31 22:15:58 +09:00
Alex Gaynor 958ce796e9 Use CPython stable APIs for implementing tuples.
Refs #1125

Reduces the number of compilation failures with `--features abi3` from 56 to 53.
2020-08-31 08:46:50 -04:00
Yuji Kanagawa 729f2f42e7
Merge pull request #1065 from sebpuetz/union
FromPyObject derivation for structs and enums
2020-08-31 21:28:49 +09:00
David Hewitt 3151c4876e
Merge pull request #1127 from alex/limit-buffers
Do not include PyBuffer APIs when building for abi3
2020-08-31 09:39:56 +01:00
Yuji Kanagawa 10d83bf7dd
Merge pull request #1124 from davidhewitt/module-constant
Use IntoPy<PyObject> for PyModule::add
2020-08-31 17:39:26 +09:00
Alex Gaynor 3e32b75284 Do not include PyBuffer APIs when building for abi3
Refs #1125

Reduces the number of compilation failures with `--features abi3` from 87 to 56.
2020-08-30 15:29:14 -04:00
David Hewitt 494ed63af0
Merge pull request #1126 from alex/limit-tp-name
Reduce the direct access to tp_name which is not part of the limited API
2020-08-30 20:10:58 +01:00
Alex Gaynor d93a5e308f Reduce the direct access to tp_name which is not part of the limited API
Refs #1125
2020-08-30 14:36:21 -04:00
Sebastian Pütz 0f32f886b8 More FromPyObject derive suggestions by @davidhewitt 2020-08-30 19:16:59 +02:00
David Hewitt 82cb815afa Use IntoPy<PyObject> for PyModule::add 2020-08-30 16:24:20 +01:00
Sebastian Pütz 7a9f4a1633 FromPyObject derive suggestions by @kngwyu 2020-08-30 15:33:50 +02:00
Yuji Kanagawa bd12d89a3e
Merge pull request #1122 from davidhewitt/guide-introduction
Add introduction to guide
2020-08-30 21:56:03 +09:00
David Hewitt 21cdb8ab7e Add introduction to guide 2020-08-30 13:03:28 +01:00
Sebastian Pütz 53a858c5c1 Add documentation for FromPyObject derivation. 2020-08-30 13:35:06 +02:00
Sebastian Pütz a8c5379eff Add compile fail tests for FromPyObject derives + some fixes.
Fix some error messages and accidental passes.
2020-08-30 12:54:13 +02:00
Sebastian Pütz 7781bb78de Specify item key and attr name as arguments. 2020-08-30 10:22:01 +02:00
Sebastian Pütz 60fe4925f5 '#[derive(FromPyObject)]` changes suggested by @davidwhewitt. 2020-08-30 10:22:01 +02:00
Sebastian Pütz 7168309464 Derive FromPyObject 2020-08-30 10:22:01 +02:00
David Hewitt f816786de4
Merge pull request #923 from davidhewitt/fix-cross-compile
Fix cross-compilation from unix to windows
2020-08-29 19:31:00 +01:00
David Hewitt 3fa1639b8c Fix cross-compilation from unix to windows 2020-08-29 11:37:49 +01:00
David Hewitt 987e83bc59
Merge pull request #1121 from davidhewitt/update-ui-tests
Update UI tests for Rust 1.46
2020-08-29 11:13:06 +01:00
David Hewitt 42296ea5c2 Update UI tests for Rust 1.46 2020-08-29 09:22:00 +01:00
Mario 608aea726c
Allow other Result types in `#[pyfunction]` (#1118)
* Added a couple basic tests

* Implemented suggested change

* Fixed type inference

* cargo fmt

* Finished tests and removed warnings

* Include in CHANGELOG.md

* Moved test into separate file

* &'static str and function rename

* Mention in the book
2020-08-29 08:25:20 +01:00
David Hewitt 1631129c25
Merge pull request #1119 from Hywan/patch-3
doc(pyclass_init) Fix typos
2020-08-27 13:12:35 +01:00
Ivan Enderlin fee01a125b
doc(pyclass_init) Fix typos 2020-08-27 13:27:16 +02:00
David Hewitt 16ef96904a
Merge pull request #1114 from mtreinish/hashbrown
Add optional support for conversion from Hashbrown types
2020-08-26 12:48:21 +01:00
Matthew Treinish 659d24e1a9
Add CHANGELOG entry and update conversions guide 2020-08-26 06:37:02 -04:00
Yuji Kanagawa d29330433d
Merge pull request #1116 from davidhewitt/rules_bazel
Add link to Bazel rules
2020-08-26 12:04:18 +09:00
David Hewitt 37d23da7d5 Add link to Bazel rules 2020-08-25 23:02:20 +01:00
Matthew Treinish dfa917c775
Add optional support for conversion from Hashbrown types
This commit adds optional support for conversion from hashbrown's [1]
HashMap [2] and HashSet [3] types. The HashMap and HashSet implementation
in std::collections is a copy from HashBrown, but Hashbrown still
provides some features over the std::collections version. Primarily this
is rayon support and also using a default hasher which is faster
(although not DOS resistent). The hashbrown versions provide a drop in
replacement over std::collections to get these features. To take
advantage of native type conversion in PyO3 this commit adds hashbrown
as an optional dependency and when the feature is enabled the traits for
going between python and hashbrown::HashMap and hashbrown::HashSet are
available. This is handy for users of hashbrown which have to inline
these conversions manually in functions that take dicts as args.

[1] https://github.com/rust-lang/hashbrown
[2] https://docs.rs/hashbrown/0.8.2/hashbrown/struct.HashMap.html
[3] https://docs.rs/hashbrown/0.8.2/hashbrown/struct.HashSet.html
2020-08-25 06:42:56 -04:00
Yuji Kanagawa 9d73e0b1a0
Merge pull request #1107 from kngwyu/radd-fallback
Left-hand operands are fellback to right-hand ones for type mismatching
2020-08-21 17:10:37 +09:00
kngwyu 8cbfdd52b8 Simplify test cases where both __*__ and __r*__ are defined 2020-08-20 14:53:47 +09:00
kngwyu 3e958bf607 Encapsule slot_setter's behavior to an iterator 2020-08-20 14:41:51 +09:00
kngwyu 71a7a76227 More tests for RHS 2020-08-20 14:33:47 +09:00