JuliaCollections / JuliaCollections/DataStructures.jl
[Tracking] MultiDict and SortedMultiDict API updates before v1.0
Nobody has claimed this yet.
- Dominant language
- Julia
- Stars
- 745
- Forks
- 261
- PR merge metrics
- No merged PRs in 30d
Description
I wanted to create this meta-issue to track all the API changes that we want to do for MultiDict, which are currently scattered around various other threads:
- PR https://github.com/JuliaCollections/DataStructures.jl/pull/656 (MuttsDict constructors operate only on elements/pairs, not on the aggregated underlying view)
- https://github.com/JuliaCollections/DataStructures.jl/issues/655 (Make
iterateiterate over the pairs, not over the aggregated view) - https://github.com/JuliaCollections/DataStructures.jl/issues/654 (Add
delete!(d, k, v)to delete by pair) - Exposition: https://github.com/JuliaCollections/DataStructures.jl/issues/522#issuecomment-675171633
And to use this thread to discuss other changes we might make.
Current suggested changes:
- Make MultiDict API consistently operate over pairs, just like a normal Dict, except that multiple entries are allowed per key.
- WIP fix in #676
- Use a
Set{T}instead ofVector{T}for the multi-values ([?] -- see discussion below)- WIP fix in #692
Open Questions:
- Should a
MultiDictbe<: AbstractDict? - Should we include
setindex!(md::MultiDict, k, v)? See https://github.com/JuliaCollections/DataStructures.jl/issues/666#issuecomment-716058978, below.
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
Start with the linked issues and pull requests, especially #654, #655, #656, #676, and #692, then read the exposition in #522. The checklist and open questions define the scope, but several items are still under discussion or have work in progress. Done would require resolving the agreed MultiDict and SortedMultiDict API changes and updating the related work accordingly.
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
- 20/100