python bijection

geremy condra debatem1 at gmail.com
Fri Dec 4 22:45:14 EST 2009


On Fri, Dec 4, 2009 at 8:38 PM, Carl Banks <pavlovevidence at gmail.com> wrote:
> On Dec 4, 4:42 pm, Lie Ryan <lie.1... at gmail.com> wrote:
>> On 12/5/2009 9:41 AM, Carl Banks wrote:
>>
>>
>>
>>
>>
>> > On Dec 4, 12:46 pm, geremy condra<debat... at 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



More information about the Python-list mailing list