On Fri, Dec 4, 2009 at 8:38 PM, Carl Banks <pavlovevide...@gmail.com> wrote: > On Dec 4, 4:42 pm, Lie Ryan <lie.1...@gmail.com> wrote: >> On 12/5/2009 9:41 AM, Carl Banks wrote: >> >> >> >> >> >> > On Dec 4, 12:46 pm, geremy condra<debat...@gmail.com> wrote: >> > more common than full-blown graph package). >> >> Sure, its a tree, which is also a graph. In this case it looks to >> >> me more like a directed acyclic graph than anything, but its >> >> pretty much just semantics since the interface is functionally >> >> equivalent. >> >> > I'd have to agree with Lie, yes a tree is a graph, but it's simply not >> > an argument that Python community is grasping for graph structures. >> > It's like arguing that the Python community could benefit from a >> > quaternion type, because quaternions are actually heavily used in >> > Python, because a scalar number is a quarternion. >> >> > Carl Banks >> >> > (Would be +1 on a good graph implementation... just not because of >> > ElementTree.) >> >> I think this could be an interpretation of the Zen: >> >> Simple is better than complex. >> Complex is better than complicated. >> >> can be read as: >> List is better than Tree >> Tree is better than Graph >> >> not having Tree and Graph package in the standard library force most >> people to find List-based solution. And people that know they need >> graphs will find them in 3rd party modules. I have needed Trees a few >> times in python, but very rarely a Graph (except for playing around). >> YMDWV (your mileage definitely will vary). > > If you want a better example, consider various database schemas that > have one-to-one, one-to-many, many-to-one, and many-to-many > relationships. I daresay these are very common. All of these can be > represented by a non-directed graph. > > Another common use of directed graphs is for dependency > relationships. In practice, a lot of times running things in order of > dependency is done by assigning everything a scalar priotity, and > executing in order of priority. This can work ok, but it's fragile. > If there's a graph type in Python maybe people will be encouraged to > handle dependencies explicitly.
I actually considered using dependencies as an example on the "graphine for pythonistas"[1] article, but decided to do the maze run instead. In any event, the uses of graphs in general computing are well enough established that I don't really think that's where the majority of the difficulty in coming up with something for the standard library will be- deciding how it should look and behave, especially in terms of scope and target audience, that's going to be the difficult part. Geremy Condra [1]: http://gitorious.org/graphine/pages/GraphineForPythonistas -- http://mail.python.org/mailman/listinfo/python-list