WIP: Allow partially updating the track IDs#151
WIP: Allow partially updating the track IDs#151yfukai wants to merge 11 commits intoroyerlab:mainfrom
Conversation
Codecov Report❌ Patch coverage is
Additional details and impacted files@@ Coverage Diff @@
## main #151 +/- ##
==========================================
+ Coverage 88.03% 88.11% +0.07%
==========================================
Files 49 49
Lines 3243 3255 +12
Branches 544 545 +1
==========================================
+ Hits 2855 2868 +13
Misses 231 231
+ Partials 157 156 -1 ☔ View full report in Codecov by Sentry. 🚀 New features to boost your workflow:
|
JoOkuma
left a comment
There was a problem hiding this comment.
Hey @yfukai,
I have seen this is a draft PR, so I'm just leaving some thoughts and not a full review.
I initially didn't implement assign_track_ids for the SQLGraph because it essentially needs the whole graph topology into memory, which is equivalent to loading it in memory as a view, which can be achieved through sql_graph.filter().subgraph().
Maybe this could be called internally by us to make SQLGraph API consistent.
filter().subgraph() copies all the content of the graph, we could have a new method for the SQLFilter that returns only the graph topology filter().rx_graph or similar.
|
@JoOkuma Hi, thanks for the comment! Yeah I was thinking something similar and I'll try to address in this PR. Enjoy your vacation! |
|
Just note for myself: I started to work on with the use cases of partially updating the track IDs in a manual correction software (usually the updates are partial). I was planning to use the rx_graph.filter(node_id=node_ids).subgraph().assign_track_ids()pattern where the rx_graph.assign_track_ids(node_id=node_ids)which make a shallow "topology" copy of the graph and the assign the IDs. I'll check if there's an option to make the shallow copy in the former option and then decide. |
|
Update: I noticed I could do rx_graph.filter(node_id=node_ids).subgraph(node_attr_keys=[], edge_attr_keys=[]).assign_track_ids()Maybe this is sufficient? |
|
Note for myself: Digging into the error of the benchmarking.py, I noticed what I'm implementing actually does not match with the usecase of pruning the edges from the solution... I'll probably go with the rx_graph.assign_track_ids(node_id=node_ids)option. |
|
I believe I messed up this PR. I'll open another one with copying a part of code from this one. |
This PR intends to allow partially updating the track IDs for
GraphViewwhile maintaining the overall consistency of the IDs. When users call theassign_track_idforGraphView, the track IDs for nodes outside the view are also updated to maintain the consistency.This assumes that #150 is marged.