id summary reporter owner description type status priority milestone component resolution keywords cc merged author reviewer upstream work_issues branch commit dependencies stopgaps
18375 Drop the NetworkX graph backend ncohen "This branch deprecates the `NetworkX` backend for graphs. Indeed, while it made
sense to keep a `NetworkXGraphBackend` when Sage's default data structure
switched from `networkx` to `c_graphs`, we do not *need* it anymore.
This does not mean that Sage should not have a `NetworkX` data structure (though
there is little use). On the other hand, `NetworkX` is the only reason why we
have a `Backend` layer in Sage's graph data structures, as all others are
`CGraph` backends.
Thus, in order to simplify the hierarchy of classes for graph data structures,
it is easier to uniformize our data structures first. When this series of
patches will be finished and when the graph backends will be in a clearer and
simpler state, it will be possible to implement a new `NetworkX` backend.
It makes little sense, however, to rewrite the current networkx backend as a
`c_graph` backend when it will have to be rewritten again later during the
refactoring.
Technical info:
- The main problem in this branch was the handling of (old) graph pickles. As
the classes themselves are being deprecated, the `__setstate__` functions
detect whenever an attribute uses a deprecated class, and in this case convert
it into a non-deprecated data structure (sparse graph, by default).
- Two `random_stress` functions are removed, as they work by comparing the
behaviour of `c_graph` and `networkx` backend. This is not as terrible as it
sounds, for graphs are tested extensively in many places of Sage (I am often
surprised to find out where they are used when code breaks)" enhancement closed major sage-6.7 graph theory fixed dcoudert borassi vdelecroix Nathann Cohen David Coudert N/A 98c86a41330a3cffacbedc1743467db9aa08117b 98c86a41330a3cffacbedc1743467db9aa08117b