python-trio / python-trio/trio
Expose most of trio._util and trio._deprecate for the benefit of the Trio ecosystem
Nobody has claimed this yet.
- Dominant language
- Python
- Stars
- 7.3k
- Forks
- 431
- Avg merge
- 2d 17h
- Merged PRs (30d)
- 6
Description
Trio has great tools for dealing with some of the minutiae of making a polished Python package in general, but they're private; libraries that depend on Trio need to copy-paste or reimplement these tools if they want to offer equivalent functionality. If they reimplement, they probably won't do as good of a job.
I think we should add a new public Trio submodule (trio.libtools?) which provides:
- From
trio._util: Final, NoPublicConstructor, generic_function, fixup_module_metadata, async_wraps, ConflictDetector - A factory for creating modules like
trio._deprecate, substituting a project's own deprecation warning, issue URL, and name.
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 trio._util and trio._deprecate to understand which utilities and deprecation behavior are intended for reuse. Define the scope of a public trio.libtools module and its project-customizable deprecation factory; done means the listed utilities and equivalent deprecation support are exposed for Trio-dependent libraries.
Written by the indexing model from the issue text.
Assessment
- Tech stack
- python
- Domain
- api, developer-experience
- Issue type
- Feature
- Difficulty
- 5/5
- Estimated time
- Over a week
- Activity status
- Stale
- Clarity
- Needs clarification
- Newbie friendliness
- 25/100