Minor note, Cython code will still use xrange, but it can (often?) optimize calls to range.
Best, Travis On Wednesday, December 7, 2016 at 5:00:56 AM UTC-6, Thierry (sage-googlesucks@xxx) wrote: > > 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+...@googlegroups.com <javascript:>. > > To post to this group, send email to sage-...@googlegroups.com > <javascript:>. > > 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.