RadioAstronomySoftwareGroup / RadioAstronomySoftwareGroup/pyuvdata
Re-evaluate Cython Dependencies
Nobody has claimed this yet.
- Dominant language
- Python
- Stars
- 102
- Forks
- 36
- Avg merge
- 1d 20h
- Merged PRs (30d)
- 14
Description
Cython is not the most fun language to work in. There are some advantages to moving out compiled extensions to another language (pybind11, rust, etc), but for now we decided we'd like to move what we can to numba.
Numba appears to be asymptotically equivalent in execution to our compiled extensions for large number of inputs. The only real advantage other languages seem to have is overhead at the nano-second level and the users probably will never notice this.
We should evaluate all the compiled extensions to see if we can refactor them to numba for now.
The main advantage we see to numba is the barrier for entry for others to maintain the code and not need experience with the compiled languages.
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
The issue names no files, tests, or entry points; start by inventorying the project's compiled extensions and reading their implementations and callers. Compare each extension with the stated Numba goal, then define a scoped migration or exclusion for each one. Done means the extensions have been evaluated and any selected refactors are clearly scoped.
Written by the indexing model from the issue text.
Assessment
- Tech stack
- python
- Domain
- performance
- Issue type
- Refactor
- Difficulty
- 5/5
- Estimated time
- Over a week
- Activity status
- Stale
- Clarity
- Needs clarification
- Newbie friendliness
- 25/100