Icxolu
7e5884c40b
fix incorrect `__richcmp__` for `eq_int` only simple enums ( #4224 )
...
* fix incorrect `__richcmp__` for `eq_int` only simple enums
* add tests for deprecated simple enum eq behavior
* only emit deprecation warning if neither `eq` nor `eq_int` were given
* require `eq` for `eq_int`
2024-06-03 18:49:36 +00:00
liammcinroy
b4b780b475
Allow module= attribute in complex enum variants ( #4228 )
...
* Allow module= attribute in complex enum variants
* stderr test update
* towncrier
* inherit `module`, rather than specifying everywhere.
* clippy fix
2024-06-03 07:57:04 +00:00
Icxolu
a7a5c10b8a
add pyclass `hash` option ( #4206 )
...
* add pyclass `hash` option
* add newsfragment
* require `frozen` option for `hash`
* simplify `hash` without `frozen` error message
Co-authored-by: David Hewitt <mail@davidhewitt.dev>
* require `eq` for `hash`
* prevent manual `__hash__` with `#pyo3(hash)`
* combine error messages
---------
Co-authored-by: David Hewitt <mail@davidhewitt.dev>
2024-06-01 14:20:20 +00:00
Icxolu
d1a7cf400a
add pyclass `eq` option ( #4210 )
...
* add pyclass `eq` option
* prevent manual impl of `__richcmp__` or `__eq__` with `#[pyclass(eq)]`
* add simple enum `eq_int` option
* rearrange names to fix deprecation warning
* add newsfragment and migration
* update docs
---------
Co-authored-by: David Hewitt <mail@davidhewitt.dev>
2024-05-31 14:13:30 +00:00
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
Icxolu
4ce9c35983
port `Python::get_type` to `Bound` API ( #3846 )
...
* port `Python::get_type` to `Bound` API
* fix `is_subclass_and_is_instance` FIXME
2024-02-18 18:27:19 +00:00
David Hewitt
7d486bb72a
tests/common.rs -> src/tests/common.rs
2023-09-24 13:34:53 +01: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
Jonathan Coates
26a9603519
Some improvements to __richcmp__ on enums
...
- Implement __ne__ as well as __eq__.
- Return NotImplemented when types cannot be converted, rather than
throwing.
- Compare the integer ids inside the __eq__/__ne__ implementation.
Previously a match block was generated.
2022-09-16 15:30:56 +01:00
messense
db177a07ad
Fix new clippy warnings in Rust 1.63.0
2022-08-12 11:50:23 +08:00
mejrs
984fdf57c7
Use Python:;with_gil in tests
2022-07-19 19:34:23 +02:00
Gabriel Smith
75656949f9
macros: Support #[pyo3(name)] on enum variants
2022-06-22 09:36:40 -04:00
Gabriel Smith
2122faa547
macros: Use macro-defined name for enums in __repr__
2022-06-21 16:31:23 -04:00
b05902132
78f5afc82e
Finish implementation for pyclass enums
2022-02-07 22:17:11 +00:00
David Hewitt
6433d884fc
dev: remove self dev dependency
2021-12-08 07:48:58 +00:00
b05902132
aac0e566b0
Allow default implementation of slots. Add default __repr__ for enums.
2021-11-29 17:35:18 +08: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