Description
I tried to outline what is missing before we could cut a release with the new graph stuff. Open to a discussion.
testing
We have a decent coverage of base but especially constructors are not always tested for correctness. So we test the API but not that the adjacency captures what it should. So missing tests:
- test correctness of contiguity builders finalise contiguity graph builders #566
- test correctness of triangulation builders
- test correctness of kernel builders
- test all kernel parameters
- test all query options (both sklearn and scipy)
- test precomputed distance matrix support (indirectly via triangulation and distance band already covered)
implementation/checks
Some bits are still waiting for implementation (I have likely missed stuff here) or a double check that the current implementation works as intended.
- isolates in kernel and knn
- co-located in knn
- knn haversine checks
- fix cliques
- set operations
- draft API and raise NotImplementedError?
discussion
A few things I'd like to discuss (during the dev call in 3 minutes?)
- default kernel - W has triangular, we now have gaussian following scipy model - do we want to warn? how?
-
expose kernels intransform
? kernels are essentially transformations. Shall we allow to use them post-creation? - how should set operations work? See perimeter weights, fix kernel, set_ops #561
follow-up
Stuff that is not implemented or started but that can likely wait for subsequent release, not the initial one. Below is the list of stuff I'd like to see soon but there's more to be done.
- lag_categorical (inside
lag()
?) - classic I/O (we have custom Parquet now)
- plotting ENH: add vectorized plotting to Graph #593
- fuzzy contiguity implement fuzzy contiguity on Graph #564
- other utils - any priorities?
- optimal sparse formats (coo may be slow) REF: minor performance improvements in Graph #697
- IDs handling cleanup allow ids in graph when passing sparse #626
- symmetrize (see Interest in a mutual knn? #664)
- fill diagonal fill diagonal in graph #668
- higher-order neighbors
- trace
documentation
API reference should be in the docs for the first release. user guide can follow later.
- API reference
- user guide
- migration guide
Some of the follow-up could be piped via W for the time being if we want them available.