Mate Kovacs
3ed5ddb0ec
feat: support pyclass on complex enums
2024-01-18 22:04:42 +09:00
David Hewitt
e852a4b502
be more lax with ordering in `invalid_result_conversion` ui test
2023-12-29 22:06:33 +00: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
mejrs
d6e22a9972
Only run invalid_result_conversion on linux
2023-10-08 04:23:05 +02:00
David Hewitt
a5d0a16b21
ci: updates for Rust 1.72
2023-08-25 12:30:34 +01: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
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
Adam Reichold
8b14797403
Also ignore error outputs on MSRV to further simplify UI tests.
2023-05-25 21:37:05 +02:00
Adam Reichold
426e18932b
Simplify version handling of UI tests.
...
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.
2023-05-25 21:34:43 +02:00
Adam Reichold
08bdc32b6e
Move traverse-bare-self UI test to version-gated section as its error output is not stable between MSRV and current stable.
2023-05-25 20:02:51 +02:00
Adam Reichold
18397828e5
Move locking the GIL and handling the resulting panics into a library function.
2023-05-25 20:01:35 +02:00
David Hewitt
00fc0358b9
error when `#[pyo3(signature = ())]` used on invalid methods
2022-11-17 08:28:34 +00:00
David Hewitt
8e8b484169
add `#[pyo3(signature = (...))]` attribute ( #2702 )
2022-10-25 07:23:21 +01:00
mejrs
d254134154
Implement get/set all on pyclass
2022-10-17 02:37:43 +02:00
David Hewitt
987858f5fa
ci: ui tests for 1.63
2022-08-12 07:26:29 +01:00
David Hewitt
d5e99b635d
refactor: remove all 0.15 deprecations
2022-07-15 06:33:14 +01:00
Bruno Kolenbrander
58d4ba833e
Rust 1.62 ( #2489 )
...
* Rust 1.62
* Make rust happy
* Just use a doctest instead
Co-authored-by: mejrs <>
2022-07-02 16:08:01 +01:00
David Hewitt
7725f17c46
pyclass: switch from immutable to frozen
2022-06-19 21:18:15 +01:00
Hood Chatham
da5b9814cc
Set up CI for wasm32-emscripten target ( #2436 )
...
* ci: test on emscripten target
This adds CI to build libpython3.11 for wasm32-emscripten and
running tests against it. We need to patch instant to work
around the emscripten_get_now:
https://github.com/sebcrozet/instant/pull/47
We also have to patch emscripten to work aroung the "undefined
symbol gxx_personality_v0" error:
https://github.com/emscripten-core/emscripten/issues/17128
I set up a nox file to download and install emscripten,
download and build cpython, set appropriate environment variables
then run cargo test. The workflow just installs python, rust,
node, and nox and runs the nox session.
I xfailed all the test failures. There are problems with datetime.
iter_dict_nosegv and test_filenotfounderror should probably be
fixable. The tests that involve threads or asyncio probably can't
be fixed.
* Some cleanup
* Remove instant patch
* Add explanations for xfails
2022-06-08 05:59:18 +01:00
David Hewitt
261c0c5f56
macros: simpler expansion for `intern!`
2022-06-02 09:57:58 +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
e9bd41efb2
better mutability inheritance rules
2022-04-21 20:51:28 +01:00
Bruno Kolenbrander
bc6bd6099c
Merge branch 'main' into immutable
2022-04-12 14:22:33 +02:00
mejrs
4fc0cdd636
Fix ui test
2022-04-07 23:56:15 +02:00
mejrs
086424b88c
Merge branch 'main' of https://github.com/mejrs/pyo3 into immutable
2022-04-01 23:11:02 +02:00
mejrs
9ab1e6927a
Merge branch 'immutable' of https://github.com/mejrs/pyo3 into immutable
2022-04-01 22:59:59 +02:00
mejrs
10c3e5b094
Try to add nightly feature to CI
...
Fix stray "
2022-02-22 22:43:40 +01: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
6f39deaa37
finish off implementation
2022-02-08 18:17:44 +00:00
mejrs
7520b49ac1
Implement opt-in immutable pyclasses
2022-02-08 18:08:18 +00:00
mejrs
46c458181d
Fix more formatting
2022-01-13 23:13:47 +01:00
mejrs
f7d7da9b7a
Try fix the ci some more
2022-01-13 23:11:33 +01:00
mejrs
de175119c1
Formatting
2022-01-13 22:48:36 +01:00
mejrs
a8a10ac33d
gate the changed errors
2022-01-13 22:43:51 +01:00
David Hewitt
2cee7feaaf
Merge pull request #2083 from aviramha/magic_methods
...
verify py method args count
2022-01-07 00:13:05 +00:00
Aviram Hassan
9ae31f2b87
fix tests
2022-01-06 09:59:10 +02:00
Aviram Hassan
50659b6b02
`__ipow__` now supports modulo argument on Python 3.8+.
...
`pyo3-macros-backend` is now compiled with PyO3 cfgs to enable different magic method definitions based on version.
Add check for correct number of arguments on magic methods.
2022-01-03 09:53:56 +02:00
David Hewitt
cf965155f4
pymethods: support buffer protocol
2021-12-30 15:48:55 +00:00
David Hewitt
5be5d77589
opt: improve handle_panic generated code
2021-12-24 00:17:04 +00:00
David Hewitt
6433d884fc
dev: remove self dev dependency
2021-12-08 07:48:58 +00:00
David Hewitt
4c8abd1426
rust: support 1.57
2021-12-08 07:10:16 +00:00
Bruno Kolenbrander
3bf9ef0706
Merge branch 'main' into immutable
2021-11-22 10:08:51 +01:00
mejrs
0fa03a67cd
Implement opt-in immutable pyclasses
2021-11-22 09:26:34 +01:00
b05902132
b7419b5278
Refactor #[pyclass] and now it supports enum.
...
There's no functionality since it does not generate __richcmp__.
Also it only works on enums with only variants, and does not support
C-like enums.
2021-11-21 20:05:53 +08:00
David Hewitt
c9a4cd1f87
deprecations: remove items deprecated in PyO3 0.14
2021-11-19 16:33:29 +00:00
David Hewitt
6a65f98bd2
msrv: bump to 1.48
2021-11-19 10:10:59 +00:00
David Hewitt
54ddd5aad7
tests: move ui tests updated for rust 1.56 to new section
2021-10-22 23:16:39 +01:00