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.

Reply via email to