Re: Reinvent no more forever

2005-11-19 Thread Ben Finney
[EMAIL PROTECTED] wrote:
 Ben Finney wrote:
  How do we deal with the rampant proliferation of a zillion
  implementations of some standard idiom in PyPI?
 
 How about some kind of mega util package? One big package with all
 those recurring reinventions. If it gets popular enough, I'm sure it
 could stop so much reinvention.

No, you'd just ensure there would be several, competing, incompatible
mega util packages. Plus, you'd have the additional problem of
depending on a big, low-coherence package for one or two idioms within
it.

 I'm thinking that a Wiki would be quite suitable for development, to
 incite more contributions (rather than only CVS).

URL:http://wiki.python.org/moin/

-- 
 \   As the most participatory form of mass speech yet developed, |
  `\the Internet deserves the highest protection from governmental |
_o__)intrusion.  -- U.S. District Court Judge Dalzell |
Ben Finney
-- 
http://mail.python.org/mailman/listinfo/python-list


Re: Reinvent no more forever

2005-11-18 Thread Phillip J. Eby
Dave Hansen wrote:
 On 17 Nov 2005 18:06:55 -0800 in comp.lang.python, Phillip J. Eby
 [EMAIL PROTECTED] wrote:

 [...]
 
 Okay, so call yours SuperEnum or PowerEnum or UltraEnum or
 BetterEnum, Enum-O-Matic, Symbolitron...

 ITYM EnumOMatic or Enum_O_Matic.  Enum-O-Matic is a syntax
 error.  Or worse...

Not in a PyPI project name, it isn't.  Project names aren't limited to
being Python identifiers.

-- 
http://mail.python.org/mailman/listinfo/python-list


Re: Reinvent no more forever

2005-11-18 Thread ismaelgfk

Ben Finney wrote:
 Fine sentiments. What does this mean for PyPI though? How should those
 of us who also want to reinvent no more forever proceed? How do we
 deal with the rampant proliferation of a zillion implementations of
 some standard idiom in PyPI?

How about some kind of mega util package? One big package with all
those recurring reinventions. If it gets popular enough, I'm sure it
could stop so much reinvention.
Perhaps even pack all the similar-but-different implementations in one
package (and then have
from wheel import enumA
from wheel import enumB , etc.. )

Actually, The wheel is quite a good name for such a package :-P

I'm thinking that a Wiki would be quite suitable for development, to
incite more contributions (rather than only CVS).

What do you think?

Ismael

-- 
http://mail.python.org/mailman/listinfo/python-list


Re: Reinvent no more forever

2005-11-16 Thread Fuzzyman
Ben Finney wrote:
 Howdy all,


Hello,

 On dirtSimple.org[0], PJE wrote:

 Why is Python blessed with so much reinvention? Because it's
 often cheaper to rewrite than to reuse. Python code is easy to
 write, but hard to depend on. You pretty much have to:

 1. limit yourself to platforms with a suitable packaging
 system,
 2. bundle all your dependencies into your distribution, or


For pure python modules I don't find this to be a big problem.

 3. make your users do all the work themselves

 Ouch. No wonder rewriting looks easier.
 [snip..]
 I now have a setuptools package of my Enum implementation. Should I
 submit it to PyPI?

 Advantages:

   - I can declare a dependency on that package for all my other
 packages that need such functionality, instead of bundling it
 every time.

   - Others can benefit from my code, instead of yet again including an
 Enum implementation (home-grown, or picked from a cookbook) by a
 simple dependency declaration.

   - The code hopefully gets improved and generalised and all the other
 benefits that accrue to software with many users.


These are all very compelling reasons.

 Disadvantages:

   - Proliferation. What's the protocol when[1] someone else puts an
 (incompatible, differently-specified) Enum implementation into
 PyPI?


That shouldn't be any more of a problem than the current situation. In
fact as the setuptools system becomes more established then it should
be easier for people to discover that an existing package does what
they want - rather than creating their own.

   - Naming. How many ways can a package providing an Enum be named?
 I'd prefer mine to be named Enum or enum, but why should mine
 be the one that claims that name?


I think first come - first served is the only possible way this can
work.

   - It's just a pretty simple type, with unit tests. Does this really
 justify a PyPI package?


If it solves a common problem in an elegant way, then it's better
shared. :-)

 This is common to any repository of code. But the automatic
 dependency problem means that all those packages, and many more
 outside that repository, need to know how those problems are resolved.

 Operating system distributors have policies (to greater or lesser
 degrees of strictness) to ensure this kind of quality control. My
 understanding of PyPI is that there's no such policy.

 I'd love to follow the mantra PJE espouses, but if it's good for one
 person it's probably good for countless others. How do we deal with
 that? What actions can we take in advance to prevent problems in
 future?


Isn't setuptools *the system* that addresses these issues ? It provides
a way to track and auto-install dependencies  - so long as you have the
right kind of netowrk connection [1] and the packager of the
dependencies provides them in a way compatible with setuptools.

All the best,

Fuzzy
http://www.voidspace.org.uk/python/index.shtml

[1] setuptools uses python code to access the internet and install
dependencies. Python code can't fetch https URLs through a proxy and
can't use a SOCKS proxy at all. That means with some kinds of internet
conenctions (e.g. behind company firewalls) it doesn't work. Building
optional support for pycurl into setuptools could possibly resolve
this.


 [0] URL:http://dirtsimple.org/2005/07/reinvent-no-more-forever.html

 [1] Of course, someone already has. I prefer mine to theirs, hence the
 question.

 --
  \ I planted some bird seed. A bird came up. Now I don't know |
   `\   what to feed it.  -- Steven Wright |
 _o__)  |
 Ben Finney

-- 
http://mail.python.org/mailman/listinfo/python-list


Re: Reinvent no more forever

2005-11-16 Thread Ben Finney
Fuzzyman [EMAIL PROTECTED] wrote:
 Ben Finney wrote:
  On dirtSimple.org[0], PJE wrote:
 
  [...] Python code is easy to write, but hard to depend on. You
  pretty much have to:
 
  1. limit yourself to platforms with a suitable packaging
  system,
  2. bundle all your dependencies into your distribution, or
 
 For pure python modules I don't find this to be a big problem.

The problem isn't whether it's Python or not; the problem is the
complexity of the code base. A simple application that depends on
infrastructure from five different non-standard packages becomes a
right mess to distribute, is stuck with code that is peripheral to its
own purpose, and can't benefit from new versions of those packages.

  [distributing a simple package via PyPI]
 
  Disadvantages:
 
- Proliferation. What's the protocol when[1] someone else puts
an (incompatible, differently-specified) Enum implementation
into PyPI?
 
 That shouldn't be any more of a problem than the current situation.
 In fact as the setuptools system becomes more established then it
 should be easier for people to discover that an existing package
 does what they want - rather than creating their own.

I hold up all existing public source code repositories as evidence
against your prediction. Reinventing the wheel is distressingly
common, and a dependency tool isn't going to stop that.

- Naming. How many ways can a package providing an Enum be
named? I'd prefer mine to be named Enum or enum, but why
should mine be the one that claims that name?
 
 I think first come - first served is the only possible way this
 can work.

Perhaps so.

- It's just a pretty simple type, with unit tests. Does this
really justify a PyPI package?
 
 If it solves a common problem in an elegant way, then it's better
 shared. :-)

Sure. But the question was, is PyPI the place to do so?

  This is common to any repository of code. But the automatic
  dependency problem means that all those packages, and many more
  outside that repository, need to know how those problems are
  resolved.
 
  Operating system distributors have policies (to greater or lesser
  degrees of strictness) to ensure this kind of quality control. My
  understanding of PyPI is that there's no such policy.
 
 Isn't setuptools *the system* that addresses these issues ? It
 provides a way to track and auto-install dependencies [...]

No, setuptools is only the answer for the packages themselves; the
problems I describe are inherent to the package repository.

The setuptools dependency model rests on the reliability of the
package repository. Not only in terms of availability but also in
terms of the quality and functionality of the package set.

-- 
 \ I went to the museum where they had all the heads and arms |
  `\   from the statues that are in all the other museums.  -- Steven |
_o__)   Wright |
Ben Finney
-- 
http://mail.python.org/mailman/listinfo/python-list


RE: Reinvent no more forever

2005-11-16 Thread Robert Brewer
Ben Finney wrote:
 I hold up all existing public source code repositories as evidence
 against your prediction. Reinventing the wheel is distressingly
 common, and a dependency tool isn't going to stop that.

Is there ever a point at which one decides that unusable dependency
tools are distressingly common, and cost more than reinvention?


Robert Brewer
System Architect
Amor Ministries
[EMAIL PROTECTED]
-- 
http://mail.python.org/mailman/listinfo/python-list