`arbitrary_self_types` approaching stabilisation, interaction with `PyAnyMethods` etc
Nobody has claimed this yet.
- Dominant language
- Rust
- Stars
- 16.2k
- Forks
- 1k
- Avg merge
- 2d 6h
- Merged PRs (30d)
- 66
Description
We built the PyAnyMethods traits with the assumption that we might be able to use arbitrary_self_types as an off-ramp in the future. The traits seem to have been adopted well though it would be nice to remove them again for simplicity if possible.
The latest iteration of arbitrary_self_types is now feature complete on nightly and looks like there might be a stabilisation report soon: https://github.com/rust-lang/rust/issues/44874#issuecomment-2607464314
Has anyone got some time / energy to experiment with this for our potential use in PyO3? As well as in PyAnyMethods, it might be useful in PyRef<MyClass> / Bound<MyClass> etc. for #[pymethods] receivers.
I would love to try, but I am experiencing a drought of time which is probably lasting until March 😢
cc @adetaylor
Contributor guide
First steps
- Read the whole issue, then the project's contributing guide.
- Comment on the issue to say you are picking it up — it saves two people doing the same work.
- Fork the repository and make your change on a branch.
- Open a pull request that references the issue number.
Research direction
Start by reading the PyAnyMethods traits and the references to PyRef, Bound, and #[pymethods], then review the linked Rust arbitrary_self_types stabilisation discussion. Experiment on nightly to determine whether the traits can be removed and whether the receiver forms work; done means documenting or implementing a viable simplification.
Written by the indexing model from the issue text.
Assessment
- Tech stack
- python, rust
- Domain
- backend-api-design
- Issue type
- Refactor
- Difficulty
- 5/5
- Estimated time
- Over a week
- Activity status
- Stale
- Clarity
- Needs clarification
- Newbie friendliness
- 25/100