Joseph Perez
781b9e3983
feat: add coroutine __name__
/__qualname__
and not-awaited warning
2023-11-25 21:51:20 +01:00
David Hewitt
9f66846238
Merge pull request #3595 from davidhewitt/ok-wrap
...
refactor `OkWrap` to not call `.into_py(py)`
2023-11-25 05:43:54 +00:00
David Hewitt
c814078866
refactor OkWrap
to not call .into_py(py)
2023-11-24 10:41:08 +00:00
David Hewitt
5ac56b8eb0
improve error for invalid #[classmethod]
receivers
2023-11-24 03:24:46 +00:00
David Hewitt
aba3a3552d
remove type_is_pymodule
2023-11-22 21:30:10 +00:00
David Hewitt
69870d2298
Merge pull request #3540 from wyfo/coroutine
...
feat: support `async fn` in macros with coroutine implementation
2023-11-22 19:52:15 +00:00
David Hewitt
3f0dfa9698
Merge pull request #3587 from wyfo/classmethod_into
...
feat: allow classmethods to receive `Py<PyType>`
2023-11-22 19:34:19 +00:00
Joseph Perez
627841f1e2
feat: support async fn
in macros with coroutine implementation
2023-11-22 20:25:36 +01:00
Joseph Perez
744de3a142
feat: allow classmethod
/pass_module
to receive owned types
...
This is necessary for async functions
2023-11-22 07:45:59 +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
David Hewitt
29ad73b6d5
ci: updates for rust 1.74
2023-11-16 16:06:01 +00:00
David Hewitt
cac95f31c7
add Py2 as an internal API for optimization and dogfooding
2023-10-13 08:10:37 +02:00
David Hewitt
b73c06948c
Merge pull request #3504 from davidhewitt/classmethod-receiver
...
emit helpful error hint for classmethod with receiver
2023-10-10 21:35:34 +00:00
David Hewitt
6c90325a1c
deprecate undocumented #[__new__]
form of #[new]
2023-10-10 08:47:03 +01:00
David Hewitt
ddc04ea093
emit helpful error hint for classmethod with receiver
2023-10-10 06:30:19 +01:00
David Hewitt
1158c08f42
error on passing arguments to #[new]
and similar attributes
2023-10-08 21:31:59 +01:00
mejrs
d6e22a9972
Only run invalid_result_conversion on linux
2023-10-08 04:23:05 +02:00
David Hewitt
a1d333a563
emit compile errors on macros inside #[pymethods]
...
Co-authored-by: Bruno Kolenbrander <59372212+mejrs@users.noreply.github.com>
2023-10-02 22:15:29 +01:00
David Hewitt
7d486bb72a
tests/common.rs -> src/tests/common.rs
2023-09-24 13:34:53 +01:00
David Hewitt
c8f82be32c
add assert_warnings test helper
2023-09-23 13:14:18 +01:00
David Hewitt
5798caf1f8
better Some
-wrapping for default arguments
2023-09-21 21:14:44 +01:00
David Hewitt
8a60540e25
amend code for PyDict::get_item
change
2023-09-09 12:23:06 +01:00
David Hewitt
4c46d81afd
simplify thread checker implementation
2023-09-03 14:15:26 +01:00
David Hewitt
a5d0a16b21
ci: updates for Rust 1.72
2023-08-25 12:30:34 +01:00
DataTriny
6c70db1e0b
Test renaming rules
2023-08-16 18:24:19 +02: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
DataTriny
57505cb1a1
Fix tests
2023-08-13 18:54:55 +02:00
David Hewitt
64adab1a76
add as_ptr and into_ptr inherent methods
2023-08-11 10:49:42 +01:00
David Hewitt
c1126740c5
fix compile failure for getter with return lifetime of self
2023-07-29 21:20:10 +01:00
David Hewitt
a15614844d
add PyErr::display
2023-07-24 22:14:55 +01:00
David Hewitt
45ff25cd2a
clippy: deny / fix used-underscope-binding lint
2023-07-16 20:49:45 +01:00
David Hewitt
b65cbb958b
ci: updates for rust 1.71
2023-07-14 12:10:37 +01:00
David Hewitt
56b7c38e24
improve error span for mutable access to #[pyclass(frozen)]
2023-07-11 22:34:53 +01:00
Alex Gaynor
f39eb9e229
Resolve nightly clippy warning in test_field_cfg
2023-07-11 05:55:57 -04:00
David Hewitt
bf2f441567
prefer inner / _private naming
2023-07-04 21:03:24 +01:00
Alex Gaynor
0b78bb851e
Allow #[new]
to return existing instances
...
fixes #2384
2023-07-02 19:57:53 -04:00
mejrs
51a6863440
Give a better error message for Python in traverse
2023-06-19 23:25:51 +02:00
David Hewitt
4f3fcdbf0f
remove all functionality deprecated in PyO3 0.18
2023-06-13 22:27:43 +01:00
Adam Reichold
0d30bb7d3d
Bump Rust edition to 2021 and make current Clippy happy.
2023-06-07 21:15:38 +02:00
bors[bot]
e1f028f3e5
Merge #3209
...
3209: Remove the conditional compilation flags which are made redundant by the MSRV bump r=davidhewitt a=adamreichold
Co-authored-by: Adam Reichold <adam.reichold@t-online.de>
2023-06-05 14:09:05 +00:00
Adam Reichold
eb292711a7
Drop test indirection required only until Rust 1.54.
2023-06-05 12:43:15 +02:00
Adam Reichold
b49e401319
Remove unmatched cfg and unused rustup component.
2023-06-05 09:36:13 +02:00
bors[bot]
dbf7b233aa
Merge #3203
...
3203: support ordering magic methods for `#[pyclass]` r=adamreichold a=davidhewitt
Closes #2089
This adds `__lt__`, `__le__`, `__eq__`, `__ne__`, `__gt__`, and `__ge__` as per the Python implementations of what we call `__richcmp__`.
There's a UI test confirming that the user cannot implement split forms and `__richcmp__` simultaneously.
There's also a benchmark comparing implementing these split methods against using `__richcmp__`. I couldn't see a meaningful performance difference, so I'm tempted to deprecate `__richcmp__`, given that's not a magic method which exists in Python. Potentially we can provide options such as the opt-in `#[pyclass(eq, ord)]` to avoid boilerplate for people who don't want to implement six different methods.
Co-authored-by: David Hewitt <1939362+davidhewitt@users.noreply.github.com>
2023-06-05 07:13:23 +00:00
David Hewitt
5bc3e6f15e
fix clippy warnings uncovered by msrv bump
2023-06-05 07:08:27 +01:00
David Hewitt
1bbd556718
run cargo check instead of clippy for MSRV in CI
2023-06-04 23:15:59 +01:00
David Hewitt
8850d5d384
support ordering magic methods for #[pyclass]
2023-06-04 13:58:18 +01:00
Kang Seonghoon
c2d4e8ad1f
Use a full path for #[new]
method which is also #[classmethod]
.
2023-05-29 11:01:48 +09:00
Kang Seonghoon
d930bc14d9
Verify that various macros do work without any PyO3 imports.
2023-05-29 11:01:48 +09:00
bors[bot]
0e50338675
Merge #3171
...
3171: RFC: Simplify version handling of UI tests. r=davidhewitt a=adamreichold
Due to checking in error outputs these tests only work reliably on stable and not on intermediate version between our MSRV (currently 1.48) and the current stable version.
Hence this simplifies things to run only MSRV-compatible tests for the MSRV builds, anything else for stable builds except for those tests which require the nightly feature, i.e. the `Ungil` being distinct from the `Send` trait.
Finally, `not_send3` is disabled when using the nightly feature since while `Rc` is not send, it also not GIL-bound and hence can be passed into `allow_threads` as it does not actually spawn a new thread.
Co-authored-by: Adam Reichold <adam.reichold@t-online.de>
2023-05-25 20:20:49 +00:00
Adam Reichold
90fcc63eda
Replace the nightly UI tests by doctests since we cannot keep up with the changing error outputs of nightly in any case.
2023-05-25 21:37:32 +02:00