Commit Graph

669 Commits

Author SHA1 Message Date
Mike Roberts 4275abff0c docs: fixed typo in error_handling.md 2022-09-24 14:03:13 +01:00
messense 86ce4d1a13
Add git repository and edit urls to user guide (#2635) 2022-09-23 00:56:25 +00:00
David Hewitt c5ba1f0632
pyclass: better error and explanation why lifetimes are disallowed (#2633)
* pyclass: better error and explanation why lifetimes are disallowed

* extend detail on lifetimes
2022-09-22 11:14:06 +02:00
Federico Dolce 63f7df905d
Add chrono 0.4 integration (#2612)
Co-authored-by: Ivan Tham <pickfire@riseup.net>
Co-authored-by: David Hewitt <1939362+davidhewitt@users.noreply.github.com>
2022-09-22 09:00:09 +02:00
Ryan Russell 04a7b5f14d docs: codeblock labels to `rust,ignore` format
Signed-off-by: Ryan Russell <git@ryanrussell.org>
2022-09-10 11:21:04 -05:00
David Hewitt 5718adeec7 pyproto: remove deprecated feature 2022-09-06 08:38:44 +01:00
David Hewitt caaf7bbda7 release: 0.17.1 2022-08-28 08:27:56 +01:00
David Hewitt 04c1ac87f1 release: 0.17.0 2022-08-23 21:21:19 +01:00
David Hewitt f7537909a1 guide: note existence of PyFunction::new_closure 2022-08-23 20:49:14 +01:00
David Hewitt 86a11164e0 guide: note __hash__ can have any integer type up to 64 bits 2022-08-23 20:49:14 +01:00
David Hewitt c5ecf47890 docs: note `__richcmp__` disables default `__hash__` 2022-08-23 20:49:14 +01:00
David Hewitt fb05e1d7a7 guide: additional detail on how to handle foreign errors 2022-08-23 20:49:14 +01:00
David Hewitt 580e747521 guide: use sentence case, move function signatures to own section 2022-08-23 20:49:14 +01:00
David Hewitt af60a359c5 guide: don't use `::pyo3` 2022-08-23 20:49:14 +01:00
David Hewitt ef8ccc0deb docs: demonstrate `NotImplemented` in `__richcmp__` 2022-08-23 20:49:14 +01:00
Sergey Kvachonok 97eaa77db8 docs: Update the guide for `python3-dll-a` v0.2.6
Bump the minimum `python3-dll-a` dependency version.

Document the implemented workaround for
https://github.com/PyO3/python3-dll-a/issues/28
2022-08-21 14:33:52 +03:00
David Hewitt d0492b7c72
Merge pull request #2570 from davidhewitt/pyclass-frozen-tidy
pyclass: tidy up frozen implementation
2022-08-21 09:35:51 +01:00
David Hewitt 24456f3f41 pyclass: tidy up frozen implementation 2022-08-21 08:21:06 +01:00
David Hewitt fd8026c7bb pyclass: add `sequence` option to implement `sq_length` 2022-08-20 07:14:26 +01:00
Ashley Anderson 5d88e1d1c4
Update PyTryFrom for PyMapping and PySequence to more accurately check types (#2477)
Co-authored-by: David Hewitt <1939362+davidhewitt@users.noreply.github.com>
2022-08-10 21:03:18 +01:00
David Hewitt 78ba70d2b4 pymodule: only allow initializing once per process 2022-08-09 19:52:25 +01:00
Nathan Henrie 1ebceb4f86 Additional link args and troubleshooting for MacOS
Fixes https://github.com/PyO3/pyo3/issues/1800

Documents issues linking with the system python (`/usr/bin/python3`) as
well as reemphasizes the need for `--no-default-features` with `cargo
test` on MacOS
2022-08-02 16:52:53 -06:00
Sam Vente 6503128442
add first version of getting started page to the guide (#2499)
* add first version of getting started page to the guide

* add more info on maturin
2022-08-01 10:30:53 +08:00
Acshi Haggenmiller 6831b4875b Add documentation for more workarounds for enabling the extension-module feature
Closes https://github.com/PyO3/pyo3/issues/2521
2022-07-29 00:03:51 -07:00
Jonas Pleyer 9d081e76a4 guide: python_from_rust: fix typo for call0 2022-07-25 12:36:51 -04:00
David Hewitt 209c942277 pyfunction: use extract_argument with holder to avoid extractext 2022-07-14 08:42:22 +01:00
David Hewitt 0391b3b0c1 inventory: update to 0.3 2022-07-03 15:22:25 +01:00
Bruno Kolenbrander 8babae655e
Merge pull request #2468 from mejrs/frozen
Add frozen documentation
2022-06-30 14:45:45 +02:00
mejrs a62930bd95 Fix duplication 2022-06-28 19:53:45 +02:00
David Hewitt 4da9c3a55f llvm-lines: use iterator to collect class items 2022-06-25 22:03:28 +01:00
David Hewitt 510c126f57
Merge pull request #2457 from yodaldevoid/enum_naming_improvements
Enum naming improvements
2022-06-22 22:12:06 +01:00
Gabriel Smith 845be0486a guide: Update with enum naming macro changes 2022-06-22 09:36:40 -04:00
mejrs e4e7e6e51c Add frozen documentation 2022-06-22 01:47:40 +02:00
Sam Vente cdb3b6ff32
remove outdated workaround in module documentation (#2466)
* remove workaround section in module.md that is no longer needed after merging #2081

* update changelong

* revert CHANGELOG
2022-06-21 21:02:10 +00:00
Georg Brandl 53b83cccbf
add `CompareOp::matches` (#2460) 2022-06-21 15:36:20 +02:00
David Hewitt 7725f17c46 pyclass: switch from immutable to frozen 2022-06-19 21:18:15 +01:00
David Hewitt 9dfeaa38d4
guide: add contributing page (#2442)
Co-authored-by: messense <messense@icloud.com>
2022-06-08 13:30:11 +00:00
David Hewitt f22a69e223 guide: document platform tag for pypy 2022-06-03 20:10:02 +01:00
David Hewitt 126bf49b8b
Merge pull request #2377 from herquan/herquan_cr1
Add macro append_to_inittab (issue #2359)
2022-05-24 08:02:47 +01:00
herquan 2ec477344d Add macro append_to_inittab
Sometimes we need to debug in a real environment with our module installed. `append_to_inittab` will be a wrapper for PyImport_AppendInittab (https://docs.python.org/3/c-api/import.html#c.PyImport_AppendInittab) and help us to do this
2022-05-24 07:42:15 +01:00
David Hewitt 0de0e3f8d6 Allow `#[classattr]` methods to be fallible 2022-05-17 21:19:41 +01:00
messense c477718fe7
Add support for generating non-abi3 python import libraries for Windows
targets
2022-05-12 14:32:20 +08:00
Colin Jermain f5357f9395
Updating debugging docs with more info on rust-gdb (#2361) 2022-05-10 07:00:56 +01:00
Bruno Kolenbrander c57e5098b8
Fix IntoPyCallbackOutput paper cuts (#2326)
* Implement IntoPy for arrays of IntoPy

* Improve `IntoPyCallbackOutput` compile error
2022-05-09 18:15:43 +01:00
David Hewitt bc8641c790
Merge pull request #2350 from mejrs/ignore-less
Expand on AsPyPointer docs and un-ignore doc examples
2022-05-06 06:51:54 +01:00
mejrs 5bdf6987c3 Delete section about immutability of pyclasses 2022-05-05 22:24:49 +02:00
David Hewitt 5d8fd4d30e ffi: remove with_thread cfg 2022-05-05 07:26:05 +01:00
mejrs 8921d5d1c0 Fix CI 2022-05-03 11:36:24 +02:00
mejrs f1e5d4c9a1 Un-ignore and expand on doc examples 2022-05-03 00:47:09 +02:00
Bruno Kolenbrander dce4377eb4
Allow more methods to take interned arguments (#2312)
* Allow more methods to take interned arguments

* Changelog

* Unify name bounds

* Resolve merge conflict

* reduce use of py_decref

* Add some attr tests

* Update migration
2022-05-02 11:13:15 +02:00
cuishuang 19e32a0621 fix some typos
Signed-off-by: cuishuang <imcusg@gmail.com>
2022-04-24 22:06:32 +08:00
David Hewitt 7e2d3117ce cleanup: deprecate PyTypeObject trait 2022-04-23 13:36:32 +01:00
David Hewitt 76bc2a6a4a
Merge pull request #2322 from davidhewitt/opt-in-pyproto
pyproto: make deprecated feature opt-in
2022-04-23 13:34:21 +01:00
David Hewitt e9bd41efb2 better mutability inheritance rules 2022-04-21 20:51:28 +01:00
David Hewitt 0787b670e8 pyproto: make deprecated feature opt-in 2022-04-21 20:19:14 +01:00
David Hewitt 7118e94947 Merge branch 'main' into immutable 2022-04-19 19:00:33 +01:00
Sergey Kvachonok ae7e1f5ee9 pyo3-build-config: Build "abi3" extensions without an interpreter
Support compiling portable "abi3" extension modules even when
the build host Python interpreter configuration is not available
or the discovered Python interpreter version is not supported.

Maturin already implements this by building "abi3" extension wheels
with `PYO3_NO_PYTHON` environment veriable set for cargo when
an `abi3-py3*` feature is detected.

Closes #2292
2022-04-13 10:40:08 +03:00
Bruno Kolenbrander bc6bd6099c
Merge branch 'main' into immutable 2022-04-12 14:22:33 +02:00
Sergey Kvachonok 4347624bd3 Mention `generate-abi3-import-lib` in the features guide
Update the feature list section of the user guide
to include `generate-abi3-import-lib` description.
2022-04-11 09:56:52 +03:00
Sergey Kvachonok a7c0de3628 Document `generate-abi3-import-lib` crate feature
Update the user guide to describe its applicability to the native
and cross-compilation build scenarios.
2022-04-10 16:45:32 +03:00
David Hewitt 981eb2d90e
Merge pull request #2265 from davidhewitt/pyclass-mapping
pyclass: mapping flag
2022-04-04 19:54:37 +01:00
David Hewitt 9f3ccff8c9 guide: improve documentation for `#[pyclass(mapping)]` 2022-04-04 15:51:01 +01:00
Sergey Kvachonok 80675361f4 pyo3-build-config: Add `PYO3_CROSS_PYTHON_IMPLEMENTATION` env var
Adds a new cross-compile target interpreter configuration
environment variable.

This feature allows PyO3 to target PyPy on both Windows and Unix
cross compile targets.
2022-04-04 15:23:11 +03:00
David Hewitt c16cc35b30 pyclass: mapping flag 2022-04-02 16:15:44 +01:00
mejrs 086424b88c Merge branch 'main' of https://github.com/mejrs/pyo3 into immutable 2022-04-01 23:11:02 +02:00
Sergey Kvachonok 2d2b9f5c33 Update the user guide and add a ChangeLog entry
Update Architecture.md to reflect the current cross compilation
support state.
2022-04-01 11:32:46 +03:00
Bruno Kolenbrander fb689340b4
Merge branch 'main' into lint-more 2022-03-23 09:34:31 +01:00
mejrs 6f1cf1b662 Add more lints 2022-03-23 08:07:28 +01:00
David Hewitt 87c79c0319
Merge pull request #2234 from davidhewitt/pyclass-args-refactor
pyclass: unify pyclass with its pyo3 arguments
2022-03-22 11:38:05 +00:00
David Hewitt 49c1d22606 docs: for #2234 2022-03-22 10:38:36 +00:00
Mo Mirza 143b7d368f
Replace nbsp with space (#2237)
This fixes markdown heading rendering
2022-03-20 16:45:33 +01:00
Georg Brandl f084ceb9b1 guide: fix duplicated example for #[new]
The second one was probably intended to show a fallible `#[new]`.

Also show that the method does not need to be named `new()`, which
is nice because `new()` can be used for a Rust-level constructor
if they differ.
2022-03-06 10:57:49 +01:00
David Hewitt 0f1b8dd43f
Merge pull request #2207 from davidhewitt/tidy-doctests
guide: tidy up doctests
2022-03-05 16:18:43 +00:00
Alex Gaynor 01d8f1e696
added missing proc-macro invocation to migration guide (#2209) 2022-03-05 15:46:36 +00:00
David Hewitt 2bd64c4962 guide: tidy up doctests 2022-03-04 22:50:12 +00:00
Jerzy Spendel eaa82b2856 Remove typying 2022-03-04 16:24:49 +01:00
Georg Brandl 6bc8943df5 changelog/guide: visibility is also important for wrap_pyfunction! now
Fixes #2202
2022-03-04 07:48:41 +01:00
David Hewitt b59ee9b54b misc: tidy ups pre 0.16 2022-02-27 10:02:28 +00:00
Georg Brandl 0678f11266 Protocols: implement __getattribute__
converting tp_getattro to a shared slot

Fixes #2186
2022-02-26 20:05:50 +01:00
Georg Brandl 03dc96bff1
Py/PyAny: remove PartialEq impl and add is() (#2183) 2022-02-25 19:39:45 +00:00
David Hewitt 7c865fcc25
Merge pull request #2173 from davidhewitt/deprecate-pyproto
pyproto: deprecate protocol traits
2022-02-24 23:54:40 +00:00
David Hewitt 424644181b pymethods: add support for inplace concat & repeat 2022-02-24 23:07:24 +00:00
Rico Hageman ed698c4b43 Add documentation related to from_py_with for the FromPyObject trait 2022-02-24 22:54:30 +01:00
Bruno Kolenbrander af0cef0e59
Merge branch 'main' into object 2022-02-23 10:13:29 +01:00
mejrs be84e0fbb9 Add numeric and object protocol examples 2022-02-23 10:09:45 +01:00
David Hewitt 253507b5dd migration: add note on pymethods -> pyproto 2022-02-23 07:50:55 +00:00
Georg Brandl a21cf677e3 docs: remove/deprecate pyproto 2022-02-23 07:50:55 +00:00
David Hewitt d8ee35e19c
Merge pull request #2165 from mejrs/auto_trait
Implement Auto trait
2022-02-23 07:16:17 +00:00
mejrs 9e29c1058c Gut specialization and implement auto trait
Implement auto trait

Implement auto trait

Undo oopsie

Fix versions

Fix CI errors

Fix CI

Remove more specialization remnants
2022-02-22 22:43:23 +01:00
David Hewitt 79123b396c pyclass: deprecate gc option 2022-02-15 08:01:46 +00:00
David Hewitt 676295b8de pymethods: support gc protocol 2022-02-15 08:01:23 +00:00
David Hewitt f5b2a88a70 refactor: include __new__ as slot 2022-02-09 08:07:14 +00:00
David Hewitt 75e44585de refactor: pass tp_alloc and tp_free via slots 2022-02-09 08:07:14 +00:00
mejrs 7520b49ac1 Implement opt-in immutable pyclasses 2022-02-08 18:08:18 +00:00
b05902132 78f5afc82e Finish implementation for pyclass enums 2022-02-07 22:17:11 +00:00
David Hewitt 4fd01c3cd6
fix: guide example for pyclass expansion 2022-02-07 07:46:12 +00:00
David Hewitt 9def53317f
Merge pull request #2153 from davidhewitt/simplify-intrinsic-items
refactor: inline pyclass_intrinsic_items
2022-02-07 00:05:30 +00:00
David Hewitt e39881c208 refactor: inline pyclass_intrinsic_items 2022-02-06 23:26:57 +00:00
David Hewitt f75579a489 python-3.11: support buffer API on abi3 2022-02-06 22:46:45 +00:00
David Hewitt ecfd2c2434 pyclass: simplify generated code for PyClassImpl 2022-02-05 16:58:01 +00:00