#18375: Drop the NetworkX graph backend
----------------------------+---------------------------------
   Reporter:  ncohen        |            Owner:
       Type:  enhancement   |           Status:  new
   Priority:  major         |        Milestone:  sage-6.7
  Component:  graph theory  |         Keywords:
  Merged in:                |          Authors:  Nathann Cohen
  Reviewers:                |  Report Upstream:  N/A
Work issues:                |           Branch:
     Commit:                |     Dependencies:
   Stopgaps:                |
----------------------------+---------------------------------
 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)

--
Ticket URL: <http://trac.sagemath.org/ticket/18375>
Sage <http://www.sagemath.org>
Sage: Creating a Viable Open Source Alternative to Magma, Maple, Mathematica, 
and MATLAB

-- 
You received this message because you are subscribed to the Google Groups 
"sage-trac" group.
To unsubscribe from this group and stop receiving emails from it, send an email 
to [email protected].
To post to this group, send email to [email protected].
Visit this group at http://groups.google.com/group/sage-trac.
For more options, visit https://groups.google.com/d/optout.

Reply via email to