On Wed, Dec 07, 2016 at 01:05:47AM -0800, Peleg Michaeli wrote: > I can wrap it with list indeed. I know that six.moves.range is an iterator > - in Python 2, it is simply xrange. But I was thinking that perhaps Graph's > constructor should be able to understand xrange (or rather, iterators in > general) instead of lists when the data is a dictionary of neighbours. > Perhaps it may even be more efficient in some cases. What do you think?
+1. I faced this problem during a workshop last month, where i had to deal with a dict of sets and not a dict of lists (and the students were not at ease with dict comprehension). Ciao, Thierry > On Tuesday, 6 December 2016 22:41:31 UTC+2, Frédéric Chapoton wrote: > > > > The new (python3 or six) range is an iterator. You just have to wrap it > > with list( ) to get back to the python2 behaviour if needed. > > > > > > Le mardi 6 décembre 2016 17:31:20 UTC+1, Frédéric Chapoton a écrit : > >> > >> DO NOT TOUCH the import of range from six.moves ! This is part of our > >> general move toward python3 ! > >> > >> And do never use xrange, this is now forbidden. > >> > >> Frederic > >> > >> Le mardi 6 décembre 2016 16:26:12 UTC+1, Peleg Michaeli a écrit : > >>> > >>> I actually think that this is an unwanted behaviour of `six`. > >>> > >>> Anyway, we may let `Graph` handle xrange lists of neighbours if we want > >>> to keep it that way. > >>> > >>> On Tuesday, 6 December 2016 17:18:29 UTC+2, Peleg Michaeli wrote: > >>>> > >>>> I have tried to move LollipopGraph into families, but there was a > >>>> problem. In families, there's the following import: > >>>> > >>>> from six.moves import range > >>>> > >>>> This overrides Python's range. I don't know why. The original > >>>> implementation of Lollipop graph uses Python's range, and when it tries > >>>> to > >>>> use the new (six.moves) range it fails (with "This input cannot be > >>>> turned > >>>> into a graph"). > >>>> > >>>> I can clearly fix this, by setting something like python_range = range > >>>> before the six.moves import, but it is not very elegant. I can also use > >>>> networkx's implementation of LollipopGraph (as done with BarbellGraph), > >>>> but > >>>> I am not sure you consider this as the right direction to go. > >>>> > >>>> What do you think? > >>>> > >>>> On Wednesday, 30 November 2016 00:40:21 UTC+2, Dima Pasechnik wrote: > >>>>> > >>>>> > >>>>> > >>>>> On Tuesday, November 29, 2016 at 4:42:51 PM UTC, Peleg Michaeli wrote: > >>>>>> > >>>>>> Dear list members, > >>>>>> > >>>>>> I was wondering what really makes the difference between the graph > >>>>>> generators in `basic.py` and those in `families.py`. > >>>>>> > >>>>>> For one concrete example, I was wondering why `LollipopGraph` appears > >>>>>> in `basic.py` and `BarbellGraph` appears in `families.py`. These two > >>>>>> graphs > >>>>>> are very similar. > >>>>>> > >>>>>> I ask this for a practical reason: I would like to add a couple of > >>>>>> graph families, including the Tadpole graph (which is very similar to > >>>>>> the > >>>>>> Lollipop graph and the Barbell graph) and the Dipole graph (which is > >>>>>> one of > >>>>>> the simplest multigraphs). > >>>>>> > >>>>>> What do you think? > >>>>>> > >>>>> > >>>>> I think all of them could go into families.py > >>>>> > >>>>> > >>>>>> > >>>>>> > >>>>>> Best, > >>>>>> Peleg. > >>>>>> > >>>>> > > -- > You received this message because you are subscribed to the Google Groups > "sage-devel" group. > To unsubscribe from this group and stop receiving emails from it, send an > email to sage-devel+unsubscr...@googlegroups.com. > To post to this group, send email to sage-devel@googlegroups.com. > Visit this group at https://groups.google.com/group/sage-devel. > For more options, visit https://groups.google.com/d/optout. -- You received this message because you are subscribed to the Google Groups "sage-devel" group. To unsubscribe from this group and stop receiving emails from it, send an email to sage-devel+unsubscr...@googlegroups.com. To post to this group, send email to sage-devel@googlegroups.com. Visit this group at https://groups.google.com/group/sage-devel. For more options, visit https://groups.google.com/d/optout.