Thanks for the rely. I tried that with boh Graph and Poset (since graph failed as well) under networkx-0.36 and networkx-1.0.1 both un un-patched 4.3.1 and patched to account for 1.0.1. However, everything went through without a hitch.
Un tar-ing the pickle_jar and load ("_class__sage_graphs_graph_Graph__.sobj") or load ("_class__sage_combinat_posets_posets_FinitePoset__.sobj") gives the error of "ImportError: No module named xgraph" or "ImportError: No module named xdigraph" respectively (these modules held the classes removed between 0.36 and 1.0.1). I don't know where these are getting called if the lines output by explain(dumps(P)) all work? - Greg On Jan 29, 1:27 am, "Nicolas M. Thiery" <nicolas.thi...@u-psud.fr> wrote: > Hi Greg! > > On Thu, Jan 28, 2010 at 08:27:30PM -0800, Greg McWhirter wrote: > > I've been working on upgrading networkx to 1.0.1 for the past couple > > days and have things passing almost all the tests (modulo some answer > > correction for changed format of networkx representations) > > Thanks for your work: +1 on staying synchronized with networkx! > > > The other big block of tests that don't pass are unpickling tests from > > sage/structure/sage_object.pyx > > I am wondering how big a problem this really is? > > > Looking at some of the classes for some of the things it fails on > > (detailed at the bottom), it seems they use a graph object somewhere > > in the internals. I am guessing that since networkx removed the XGraph > > and XDiGraph objects somewhere between 0.36 (which is the version > > currently shipping with sage) and 1.0.1, the pickled objects can't > > find those classes and fail to unpickle. However, I don't know how to > > test that exactly, nor what to do about it (possibly patching networkx > > to do something when asked for those classes, loading up the up-to- > > date ones instead?) > > A confirmation: dynkin diagrams inherit from DiGraph, and all crystals > point to a dynkin diagram. Similarly for posets. So if some type of > graphs don't unpickle, I am not surprised for all of this to fail. > > The following command (to be run with Sage with the old networkx) > tells you what will happens upon later unpickling, say, a poset: > > sage: P = Poset() > sage: explain_pickle(dumps(P)) > pg_FinitePoset = unpickle_global('sage.combinat.posets.posets', > 'FinitePoset') > si1 = unpickle_newobj(pg_FinitePoset, ()) > pg_HasseDiagram = unpickle_global('sage.combinat.posets.hasse_diagram', > 'HasseDiagram') > si2 = unpickle_newobj(pg_HasseDiagram, ()) > pg_SparseGraphBackend = unpickle_global('sage.graphs.base.sparse_graph', > 'SparseGraphBackend') > si3 = unpickle_newobj(pg_SparseGraphBackend, ()) > pg_SparseGraph = unpickle_global('sage.graphs.base.sparse_graph', > 'SparseGraph') > unpickle_build(si3, {'_cg_rev':pg_SparseGraph(0r, 16r, 10r, [], []), > 'directed':True, 'vertex_labels':{}, '_multiple_edges':False, > '_directed':True, '_name':'', 'vertex_ints':{}, '_loops':False, > 'edge_labels':{0r:None}, '_cg':pg_SparseGraph(0r, 16r, 10r, [], [])}) > unpickle_build(si2, {'_weighted':False, '_pos':None, '_boundary':[], > '_latex_opts':None, '_backend':si3}) > unpickle_build(si1, {'_hasse_diagram':si2, '_embedding':None, > '_convert_method_name':None, '_cdata':None, '_category':None, '_names':None, > '_generators':None, '_elements':[], '_hash':None, '_pickle_version':1r, > '_element_constructor':None, '_initial_convert_list':[], > '_element_init_pass_parent':False, '_initial_action_list':[], > '_initial_coerce_list':[], '_base':None}) > si1 > > Then, you can just copy paste the commands in a Sage with the new > networkx, and see what breaks. Most likely it is the > SparseGraphBackend thing. If it's just a question of renamed class, > then you can add something along the following lines somewhere in the > graph code: > > from sage.structure.sage_object import register_unpickle_override > > register_unpickle_override('sage.graphs.base.sparse_graph','SparseGraphBack > end', > <some function or class that will emulate > the previous thing>) > > Cheers, > Nicolas > -- > Nicolas M. Thi ry "Isil" <nthi...@users.sf.net>http://Nicolas.Thiery.name/ -- To post to this group, send an email to sage-devel@googlegroups.com To unsubscribe from this group, send an email to sage-devel+unsubscr...@googlegroups.com For more options, visit this group at http://groups.google.com/group/sage-devel URL: http://www.sagemath.org