-
Notifications
You must be signed in to change notification settings - Fork 5
New issue
Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.
By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.
Already on GitHub? Sign in to your account
rework of weighted graphs API, fixes #6 and Graphs#42 #14
Conversation
@etiennedeg is this still in need of review? |
yes |
Hello, Thank you for this very useful package! We're the developers of MultilayerGraphs.jl. In trying to interface our package with every other package in the ecosystem, we incurred in the same bug as #6. We'd really need this crucial bug to be fixed. Is there any prospective on when this will be merged? CC: @pitmonticone, @ClaudMor |
Alright then, just reviewed it :) |
Co-authored-by: Guillaume Dalle <[email protected]>
Co-authored-by: Guillaume Dalle <[email protected]>
Co-authored-by: Guillaume Dalle <[email protected]>
@simonschoelly Do you want a look before we merge ? |
bump @simonschoelly |
Sorry for the way too late review. There is the possibility that this PR is breaking for some other packages, but I don't think many packages will implement their own subtype of Also, if I understood correctly, the I wonder, if we should check if any of the more widely used packages that have this package as a dependency will have any issues. And at one point we probably should figure out if we should not allow edges with structural zeros - but maybe that also needs a 2.0 version. |
Co-authored-by: Simon Schölly <[email protected]>
Hello @simonschoelly, We do have |
@simonschoelly @etiennedeg I think this has been sufficiently reviewed, should we merge to finally solve @InterdisciplinaryPhysicsTeam's problem or do we want to skim through all downstream packages first? |
I removed all methods using internal fields from the abstract functions.
I fixed the issue #6 occurring when removing an edge. It now delete the coefficient (set the coefficient to a structural zero), instead of just zeroing it. It is done more efficiently than by calling dropzeros! and is as efficient as adding a new edge (outside for modifying a weight).
Now, the non edges are always structural zeros, so technically, we could allow setting zero weight edges. I did not permit that as it would probably be breaking, and because we can't add zeros from the weights matrix constructor, as zeros are mapped to structural zeros.
Review needed please.