JuliaArrays / JuliaArrays/ArrayInterface.jl
interface for rewrapping Array wrappers
Nobody has claimed this yet.
- Dominant language
- Julia
- Stars
- 140
- Forks
- 44
- Avg merge
- 4d 14h
- Merged PRs (30d)
- 5
Description
Some wrapper types like AxisArray, NamedDImsArray and DimArray (and probably LabelledArray?) need to be the "outside" wrapper for, e.g. keeping the axis index accurate and dispatch for getindex methods.
This issue just came up on discourse:
https://discourse.julialang.org/t/multiple-inheritance-carry-over-members/58355/8
People kind of expect a DimArray to keep working after wrapping with other types. It could be useful to have a trait and a shared method here that allows rewrapping:
rewrap(f, A) and rewrap(f, A, I...) could be used in other array constructors to allow rewrapping where necessary.
isouterwrapper could indicate if an object is an outer wrapper type.
Contributor guide
No contributing guide indexed for this repository
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
Read the linked Discourse discussion first, then inspect the array constructors and getindex methods affected by AxisArray, NamedDImsArray, DimArray, and possibly LabelledArray. The proposed entry points are rewrap(f, A), rewrap(f, A, I...), and isouterwrapper; done means a shared interface lets these wrapper types remain the outside wrapper while preserving axis indexing and dispatch.
Written by the indexing model from the issue text.
Assessment
- Tech stack
- julia
- Domain
- data
- Issue type
- Feature
- Difficulty
- 5/5
- Estimated time
- Over a week
- Activity status
- Stale
- Clarity
- Needs clarification
- Newbie friendliness
- 25/100