Icxolu
ee89b2e8e2
deprecate `wrap_pyfunction` with `py` argument ( #3954 )
...
* deprecate `wrap_pyfunction` with `py` argument
The Python token in `wrap_pyfunction` is not handled automatically by
`WrapPyFunctionArg`, for backwards compatibility. This uses deref
specialization to deprecate this variant.
* merge `Extractor`s
* add deprecation ui test, revert closure variant due to test failure
* fix nightly
2024-03-12 22:57:03 +00:00
David Hewitt
db0a98c040
ci: pin pytest < 8.1 ( #3946 )
2024-03-10 16:17:15 +00:00
Icxolu
31c4820010
deprecate `&PyModule` as `#[pymodule]` argument type ( #3936 )
...
* deprecate `&PyModule` as `#[pymodule]` argument type
* cleanup
* add ui tests
* fix deprecations in tests
* fix maturin and setuptools-rust starters
* run `deprecated` ui test only when `gil-refs` as disabled
2024-03-08 00:28:11 +00:00
Matthew Neeley
68ec6de0c9
Use single-arg form of `#[pymodule]` function in docs and tests ( #3899 )
...
* Use single-arg form for `#[pymodule]` functions in docs and tests
* Update guide/src/function.md
Co-authored-by: Icxolu <10486322+Icxolu@users.noreply.github.com>
* Add test of two-argument module function
* Fix new test
---------
Co-authored-by: Icxolu <10486322+Icxolu@users.noreply.github.com>
2024-02-28 22:36:50 +00:00
David Hewitt
8a12970c96
update `extract_argument` to use Bound APIs ( #3708 )
...
* update `extract_argument` to use `Bound` APIs
* tidy up borrow in macros expression
* update `trybuild` output
* more concise form for `DowncastError::new`
Co-authored-by: Lily Foote <code@lilyf.org>
* use `Borrowed` instead of newtype
* use `Borrowed::from_ptr` methods in extract_argument
* update UI tests
* avoid double-negative `#[cfg]` clauses
Co-authored-by: Lily Foote <code@lilyf.org>
* review: LilyFoote, Icxolu feedback
---------
Co-authored-by: Lily Foote <code@lilyf.org>
2024-02-28 19:36:20 +00:00
David Hewitt
9e74c858c2
add `PyModule::new_bound` and `PyModule::import_bound` ( #3775 )
...
* add `PyModule::new` and `PyModule::import_bound`
* review: Icxolu feedback
2024-02-22 09:35:47 +00:00
David Hewitt
c4f66657c5
fix `either` feature conditional compilation, again ( #3834 )
...
* fix `either` feature conditional compilation, again
* test feature powerset in CI
* install `rust-src` for feature powerset tests
* review: adamreichold feedback
* Fix one more case of redundant imports.
* just check feature powerset for now
---------
Co-authored-by: Adam Reichold <adam.reichold@t-online.de>
2024-02-22 08:05:37 +00:00
David Hewitt
ec6d587218
support `Bound` for `classmethod` and `pass_module` ( #3831 )
...
* support `Bound` for `classmethod` and `pass_module`
* `from_ref_to_ptr` -> `ref_from_ptr`
* add detailed docs to `ref_from_ptr`
2024-02-16 00:36:11 +00:00
Icxolu
f3ddd023c9
convert `PyBuffer` to `Bound` API ( #3836 )
2024-02-14 22:10:59 +00:00
David Hewitt
e308c8d3ac
ci: don't test gevent on pypy ( #3830 )
2024-02-13 00:14:55 +00:00
David Hewitt
5b9b76fe58
add `_bound` constructors for datetime types ( #3778 )
...
* add `_bound` constructors for datetime types
* review: Icxolu feedback
* update uses of deprecated timezone_utc
2024-02-12 20:49:58 +00: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
4c94be51a7
add `PyBytes::new_bound`
2024-02-01 08:52:28 +00:00
Mate Kovacs
3ed5ddb0ec
feat: support pyclass on complex enums
2024-01-18 22:04:42 +09:00
David Hewitt
53d25f7ff2
add new `PyTuple` constructors
2023-12-30 21:37:46 +00:00
Alex Gaynor
91fdfaab45
Use a version of gevent that supports py37
...
The current version of gevent we require is 3.8+ only
2023-12-24 16:24:47 -05:00
David Hewitt
f5b18468bc
partially revert changes to `PyTzInfoAccess` trait
2023-12-24 15:07:42 +00:00
David Hewitt
49d7718823
demonstrate switching to `Bound` API resolves `gevent` crash
2023-12-23 22:10:01 +00:00
David Hewitt
46fa1b2b80
add test which is broken with gevent
2023-12-23 22:07:48 +00:00
David Hewitt
6832bf88f2
implement datetime traits for Py2
2023-12-23 15:34:07 +01:00
Adam Reichold
ca7d90dcf3
Replace IterNextOutput by autoref-based specialization to allow returning arbitrary values
2023-12-20 09:56:16 +01:00
Adam Reichold
4177dfcc81
Apply __bool__ conversion only to numpy.bool_ to avoid false positives.
2023-12-19 18:55:28 +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
2fdd52003e
Add PyType::full_name which is tp_name and has an abi3 fallback.
2023-12-19 15:47:21 +01:00
David Hewitt
5326bce57f
ci: fixup pytests to compile in debug
2023-12-05 08:01:02 +03:00
David Hewitt
2a5dedcbb5
ci: refactor pytests dev dependencies
2023-12-05 00:54:32 +03:00
David Hewitt
7b07d6d21b
Merge pull request #3578 from davidhewitt/typed-helpers
...
Change return types of `py.None()`, `py.NotImplemented()` and `py.Ellipsis()` to typed singletons
2023-11-20 07:07:12 +00: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
a9305ab389
ci: move lints to new 1.74 cargo.toml tables
2023-11-17 15:41:52 +00:00
David Hewitt
3042ab1621
ci: switch from black to ruff
2023-10-26 21:04:49 +01:00
David Hewitt
f12f928bd5
Merge pull request #3514 from messense/memoryview
...
Add `PyMemoryView` type
2023-10-15 15:08:50 +00:00
messense
f4e64aadef
Add test cases for new `TryFrom` impls
2023-10-15 21:53:31 +08:00
David Hewitt
410fef5d79
ci: drop psutil dependency
2023-10-15 14:15:38 +01:00
messense
5b94241bd7
Add `PyMemoryView` type
2023-10-15 17:32:09 +08:00
David Hewitt
e1d4173827
Fix bug in default implementation of `__ne__`
2023-10-11 09:48:06 +01:00
David Hewitt
2daddb4734
unify 3.12 and pre-3.12 exception handling pathways
2023-09-30 23:27:27 +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
David Hewitt
1a349c2eb7
adjust cfgs for windows 3.9
2023-09-29 14:23:18 +01:00
David Hewitt
1e8833e15e
always normalize exceptions before raising
2023-09-24 13:38:23 +01:00
David Hewitt
f17e703167
return existing module on Python 3.9 and up
2023-09-23 11:13:39 +01:00
David Hewitt
1338020511
relax multiple-import check to only prevent subinterpreters
2023-09-23 11:13:39 +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
David Hewitt
d395fe8653
ci: avoid failure to build numpy on 3.12
2023-07-22 21:38:57 +01:00
David Hewitt
b65cbb958b
ci: updates for rust 1.71
2023-07-14 12:10:37 +01:00
Adam Reichold
a0c85bb649
Merge pull request #3240 from davidhewitt/maturin-versions
...
bump maturin version in example files
2023-06-14 08:24:31 +00:00
David Hewitt
5fd5dcba44
bump maturin version in example files
2023-06-14 08:45:32 +01: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]
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