Commit Graph

867 Commits

Author SHA1 Message Date
Lily Foote baf5c8ec0a
Implement PyErr::get_type_bound (#3819)
* Implement PyErr::get_type_bound

* Update docs for PyErr::get_type_bound

* Fix doctest for cloning PyErr

* Import the whole prelude in docs example

Co-authored-by: David Hewitt <mail@davidhewitt.dev>

* Remove unnecessary self lifetime

Co-authored-by: David Hewitt <mail@davidhewitt.dev>

* Remove more unnecessary self lifetimes

* Use variables to avoid dangling pointers

Co-authored-by: David Hewitt <mail@davidhewitt.dev>

* Avoid using ffi in fn ptype on Py_3_12

Co-authored-by: David Hewitt <mail@davidhewitt.dev>

* Add missing imports to fn ptype

---------

Co-authored-by: David Hewitt <mail@davidhewitt.dev>
2024-02-11 21:07:28 +00:00
Jose c56cd3dd65
docs: clarify --pretty option to expand (#3810)
* Update debugging.md

Added clarification. --pretty no longer works, and it breaks even on nightly at least on cargo 1.78.0-nightly (cdf84b69d 2024-02-02) and
rustc 1.78.0-nightly (256b6fb19 2024-02-06).

* Update guide/src/debugging.md

Co-authored-by: David Hewitt <mail@davidhewitt.dev>

---------

Co-authored-by: David Hewitt <mail@davidhewitt.dev>
2024-02-11 20:52:49 +00:00
Jose f721c8c2b7
docs: fix link to README on building_and_distribution.md (#3809)
* Update building_and_distribution.md

Link to README not working.

* Update guide/src/building_and_distribution.md

Co-authored-by: David Hewitt <mail@davidhewitt.dev>

---------

Co-authored-by: David Hewitt <mail@davidhewitt.dev>
2024-02-11 20:52:14 +00:00
Icxolu e45fbe493c port `IntoPyDict` to `Bound` API 2024-02-10 15:47:26 +01:00
Icxolu 4d423b0c67 port `Python::run` to `Bound` API 2024-02-09 22:09:16 +01:00
David Hewitt b7fb9e672e
Merge pull request #3782 from davidhewitt/type-check-bound
add `bound` method variants for `PyTypeInfo`
2024-02-09 20:22:44 +00:00
Icxolu 33dc33ecec port `Python::eval` to `Bound` API 2024-02-09 17:52:00 +01:00
David Hewitt 367eeaeeab add `bound` method variants for `PyTypeInfo` 2024-02-08 22:27:05 +00:00
David Hewitt 3541506a16 ci: allow some dead code warnings on nightly 2024-02-08 20:52:03 +00:00
David Hewitt 059e485a95
Merge pull request #3560 from Jgfrausing/patch-1
docs: Include section on how to disable signals in python
2024-02-06 09:01:17 +00:00
Jonatan G. Frausing b74d733244 docs: include section that disables signal in python 2024-02-06 08:33:44 +00:00
David Hewitt dd4df29bad docs: add `chrono` conversions to types table 2024-02-05 21:50:25 +00:00
David Hewitt ecb4ecbe22
Merge pull request #3789 from btel/patch-1
docs: add example for wrapping generic classes
2024-02-05 12:03:20 +00:00
Bartosz Telenczuk 64a6a02bf0 add example for wrapping generic classes 2024-02-05 11:00:09 +01:00
David Hewitt 76d1b34cd5 Revert "Merge pull request #3578 from davidhewitt/typed-helpers"
This reverts commit 7b07d6d21b, reversing
changes made to 99858236bd.
2024-02-03 20:56:23 +00:00
David Hewitt d8c5e7943c
Merge pull request #3790 from Icxolu/bool
add `Bound` constructor for `PyBool`
2024-02-03 13:10:30 +00:00
Icxolu af21a9dc74 add `Bound` constructor for `PyBool` 2024-02-03 12:06:50 +01:00
David Hewitt 8f8d4d33fa
Merge pull request #3776 from davidhewitt/bound-extract
migrate `FromPyObject` for `Bound` and `Py` to new APIs
2024-02-02 23:10:47 +00:00
David Hewitt 57735540e8
Merge pull request #3736 from Tpt/tpt/systemtime
Adds conversion between SystemTime and datetime
2024-02-01 14:05:51 +00:00
David Hewitt a60c1821af implement `PyFunctionArgument` for `&Bound<T>` 2024-02-01 13:22:53 +00:00
David Hewitt 4c94be51a7 add `PyBytes::new_bound` 2024-02-01 08:52:28 +00:00
David Hewitt 2f00eb1423 for now just change return type of `intern!` 2024-01-30 13:28:07 +00:00
David Hewitt aa139ad422 add `intern_bound!` macro 2024-01-30 10:58:19 +00:00
David Hewitt c47565666d add `PyString::new_bound` 2024-01-29 13:14:00 +00:00
David Hewitt 595ca4b3c1 Add `extract_bound` method to `FromPyObject` 2024-01-28 07:22:51 +00:00
David Hewitt ed7263faa2
Merge pull request #3767 from Icxolu/complex
implement `PyComplexMethods`
2024-01-27 22:06:02 +00:00
Icxolu 37e2a4d9c9 implement `PyComplexMethods` 2024-01-27 22:26:53 +01:00
David Hewitt 7927a2e211 add bench for tuple `get_borrowed_item` 2024-01-27 21:12:55 +00:00
David Hewitt 1657109ae0 documentation updates for `PyList::new_bound` 2024-01-27 21:12:55 +00:00
Tpt f83544910f Adds conversion between SystemTime and datetime 2024-01-27 17:43:51 +01:00
Icxolu f86053e2c2 implement `PyTracebackMethods` 2024-01-27 11:34:32 +01:00
Mate Kovacs f32becacc7 fix ugly example 2024-01-20 11:47:27 +09:00
David Hewitt d1b072222a
Merge pull request #3582 from mkovaxx/pyclass_complex_enum
Full ADT support with pyclass for complex enums
2024-01-19 14:17:28 +00:00
Mate Kovacs 3ed5ddb0ec feat: support pyclass on complex enums 2024-01-18 22:04:42 +09:00
David Hewitt 7366b1a386
Merge pull request #3730 from Tpt/chrono-tz
Conversion between chrono_tz::Tz and zoneinfo.ZoneInfo
2024-01-15 14:48:27 +00:00
David Hewitt 4504a7c96e fix some nightly lints 2024-01-12 2024-01-12 13:34:17 +00:00
Tpt 72f0c73925 Conversion between chrono_tz::Tz and zoneinfo.ZoneInfo 2024-01-08 15:19:49 +01:00
David Hewitt 50e33d86c7 add `call_bound` and `call_method_bound` 2024-01-03 13:24:14 +00:00
David Hewitt 53d25f7ff2 add new `PyTuple` constructors 2023-12-30 21:37:46 +00:00
David Hewitt a9f867c2cb begin drafting `Bound<T>` migration guide 2023-12-29 14:42:31 +00:00
David Hewitt 3da1aac2dd add `gil-refs` feature to aid migration 2023-12-29 14:42:31 +00:00
David Hewitt 46c3190a17 clean up remnants of deprecated & removed features 2023-12-29 13:36:46 +00:00
Adam Reichold 4dc6c1643e Turn calls of __traverse__ into no-ops for unsendable pyclass if on the wrong thread
Adds a "threadsafe" variant of `PyCell::try_borrow` which will fail instead of
panicking if called on the wrong thread and use it in `call_traverse` to turn GC
traversals of unsendable pyclasses into no-ops if on the wrong thread.

This can imply leaking the underlying resource if the originator thread has
already exited so that the GC will never run there again, but it does avoid hard
aborts as we cannot raise an exception from within `call_traverse`.
2023-12-23 15:01:08 +01:00
Adam Reichold 1b3dc6d7ac
Merge pull request #3661 from PyO3/iter-output-type
Replace (A)IterNextOutput by autoref-based specialization to allow returning arbitrary value
2023-12-20 12:53:42 +00:00
Adam Reichold 5528895f3e Relax the error type in the Result<Option<T>, E>> specializations for __(a)next__. 2023-12-20 13:12:16 +01:00
Adam Reichold a605308cee Add change log and migration guide entries. 2023-12-20 13:07:14 +01:00
David Hewitt bc87b7bac6 deprecate `PyTryFrom` and `PyTryInto` 2023-12-20 11:28:24 +00:00
Tpt 8b614745cf Adds std::duration::Duration from/to Python conversions 2023-12-20 08:57:26 +01:00
Adam Reichold 416d3c488f Rename name to qualname and full_name to name to better match Python 2023-12-19 16:51:24 +01:00
Adam Reichold b0d4ef3525 Expand guide on async methods borrowing self. 2023-12-10 16:37:39 +01:00
Joseph Perez e73c795967
docs: fix typos 2023-12-07 10:10:15 +01:00
David Hewitt 07726aefc4
Merge pull request #3609 from wyfo/async_receiver
feat: allow async methods to accept `&self`/`&mut self`
2023-12-07 07:38:25 +00:00
Joseph Perez f34c70c2da
feat: allow async methods to accept `&self`/`&mut self` 2023-12-07 07:42:10 +01:00
David Hewitt ed87637ebb replace `PyTryFrom` by splitting `PyTypeInfo` 2023-12-05 08:01:30 +03:00
Joseph Perez 8a674c2bd3
feat: add `coroutine::CancelHandle` 2023-12-04 07:46:51 +01:00
David Hewitt 5c6d49084f remove all functionality deprecated in 0.19 2023-11-27 22:02:19 +00:00
Adam Reichold 1203921d5c
Merge pull request #3456 from aldanor/feature/either
Add conversion support for `either::Either`
2023-11-25 09:37:49 +00:00
David Hewitt bead83f4b0 docs: fixup docs for smallvec feature 2023-11-24 22:11:40 +00:00
Ivan Smirnov a75464ee26 add conversion support for `either::Either` 2023-11-24 22:09:34 +00:00
Joseph Perez 627841f1e2
feat: support `async fn` in macros with coroutine implementation 2023-11-22 20:25:36 +01:00
David Hewitt bd0174aa5d Change return types of `py.None()`, `py.NotImplemented()` and `py.Ellipsis()` to typed singletons 2023-11-17 16:16:19 +00:00
Surya 0ff84d250e
fix missing char conversion 2023-11-10 09:27:01 -05:00
Samuel Pastva 2fbc02d06c
Finish rename 2023-10-26 19:02:06 -05:00
Samuel Pastva fc787eabd2
Update guide/src/class.md
Co-authored-by: Bruno Kolenbrander <59372212+mejrs@users.noreply.github.com>
2023-10-26 18:58:43 -05:00
Samuel Pastva 48c90d9586 Add example of dynamic return type in the "Python classes" section of the guide. 2023-10-26 17:13:32 -05:00
David Hewitt 7534c31a6d
Note about `pyenv activate` and `pyenv virtualenv` commands
Co-authored-by: Niko Matsakis <niko@alum.mit.edu>
2023-10-26 08:21:31 +01:00
David Hewitt 98346dd137 docs: improve detail around pyenv install 2023-10-25 23:29:20 +01:00
David Hewitt 2ca8e573a4 remove comparison to rust-cpython 2023-10-15 22:03:24 +01:00
David Hewitt e1d4173827 Fix bug in default implementation of `__ne__` 2023-10-11 09:48:06 +01:00
David Hewitt f335f42197
Merge pull request #3446 from davidhewitt/relax-import-check
relax multiple-import check to only prevent subinterpreters
2023-09-29 16:35:31 +00:00
SigureMo 25b2acb0eb
fix some dead links 2023-09-29 13:24:00 +08:00
David Hewitt f17e703167 return existing module on Python 3.9 and up 2023-09-23 11:13:39 +01:00
Jeff Schwab 535a255bae Fix a typo in a documentation page title 2023-09-21 21:11:27 +01:00
David Hewitt bcb01049cc
Merge pull request #3404 from davidhewitt/fix-dealloc
call PyObject_GC_Untrack before deallocating
2023-09-11 05:18:34 +00:00
David Hewitt e28403e772 call PyObject_GC_Untrack before deallocating 2023-09-09 22:29:58 +01:00
David Hewitt c7f834ad87 add migration guide entry for `PyDict::get_item` 2023-09-09 13:05:51 +01:00
Julian Hofer 6e24fb6643 guide: Add `playground.runnable` = false to book.toml 2023-09-05 22:28:43 +02:00
David Hewitt e67b283b25
Merge pull request #3358 from alex/ptr-unsafe-trait
fixes #3325 -- mark `AsPyPointer` as `unsafe trait`
2023-09-04 05:05:56 +00:00
David Hewitt 4c46d81afd simplify thread checker implementation 2023-09-03 14:15:26 +01:00
David Hewitt cc1aa598cd
Merge pull request #3411 from OliverFM/main
Update docs with fresher bazel example
2023-08-29 06:17:51 +00:00
oliver 9714f819f0 Update docs with fresher bazel example 2023-08-29 06:44:22 +01:00
Shahriar Heidrich 2855b9d508 Mention no subclassing of Python classes in docs 2023-08-28 12:34:13 +02:00
Alex Gaynor df5aa77800
fixes #3325 -- mark `AsPyPointer` as `unsafe trait` 2023-08-18 10:16:34 -04:00
Adam Reichold 9363491d54
Merge pull request #3384 from DataTriny/pyclass_rename_variants
Add  `rename_all` attribute to `#[pyclass]`
2023-08-16 19:06:37 +00:00
DataTriny f02fe9478d
Make rename_all accept a renaming rule, allow applying it to classes as well 2023-08-15 10:15:48 +02:00
David Hewitt 5ad55d2dc7 Revert "Fix typos and other minor touchups to guide"
This reverts commit 24eee46128.
2023-08-15 08:55:41 +01:00
Alex Gaynor 5061b501a9
Remove IntoPyPointer
it wasn't used in any public APIs following #3359
2023-08-14 16:28:20 -04:00
DataTriny a9e9ec628d
Add attribute to 2023-08-13 18:25:07 +02:00
David Hewitt 64adab1a76 add as_ptr and into_ptr inherent methods 2023-08-11 10:49:42 +01:00
Tpt 1e5a49557d Makes PathBuf FromPyObject implementation work on all os.PathLike
PyOS_FSPath is in abi3-py36
2023-08-08 22:15:56 +02:00
CallMeMSL 5bcb513add
Update outdated link in python_typing_hints.md and fix typos 2023-07-14 15:50:14 +02:00
Pan Piłkarz f3d7cf6fac
Tiny grammar fix in error_handling.md 2023-07-12 15:51:18 +02:00
Adam Reichold 89b9bc384a
Merge pull request #3304 from PyO3/guide-perf-section
Start adding a performance section to the guide.
2023-07-11 19:36:56 +00:00
mejrs 092b73aa48 Two is not three 2023-07-11 13:56:34 +02:00
Adam Reichold bedb682d0e Add another performance subsection on implicit access to GIL token. 2023-07-09 15:02:12 +02:00
Adam Reichold ff78b92e77 Start adding a performance section to the guide. 2023-07-09 14:32:59 +02:00
David Hewitt 23d1a6d307 add some missing type conversions to the guide 2023-07-03 21:36:17 +01:00
Alex Gaynor 0b78bb851e
Allow `#[new]` to return existing instances
fixes #2384
2023-07-02 19:57:53 -04:00
CallMeMSL 23bdd4337f
Fix typos and add punctuation recommended by grammarly in Class.md 2023-06-28 13:46:13 +02:00
Luca Trevisani de9d760462
Add conversions between Rust Path/PathBuf and Python str / pathlib.Path 2023-06-25 20:40:51 +02:00