PyWart: "Python's import statement and the history of external dependencies"

Ben Finney ben+python at
Sun Nov 23 08:43:40 CET 2014

Chris Angelico <rosuav at> writes:

> Just out of curiosity, why does the stdlib need modules for
> manipulating .wav and other sound files, but we have to go to PyPI to
> get a PostgreSQL client? It's a queer world...

I would venture the follow two reasons, either of which is sufficient to
explain the difference:

* Modules enter the standard library only if they are judged both to be
  good quality *and* have a credible promise to continue to maintain
  them in the standard library on an ongoing basis.

  If one module has reliable maintainers offering to do the work and
  another does not, the latter will not be a candidate for inclusion in
  the Python standard library.

* Modules enter the standard library only if their feature set is stable
  enough that they can remain essentially unchanged, feature-wise, for
  many years and still be widely useful.

  For a data stream format (like WAV and other mature formats), a module
  working well today is likely to work just as well for the same purpose
  in several years's time, long enough for today's Python to go through
  its full life cycle of support.

  PostgreSQL is a full-blown system that is itself under continual
  development, and its APIs continually change to match. Whatever Python
  API for PostgreSQL gets put into the standard library today is likely
  to be obsolete long before today's version of Python gets close to
  ending support. That makes it a poor candidate for inclusion in the
  standard library.

 \       “The generation of random numbers is too important to be left |
  `\                                    to chance.” —Robert R. Coveyou |
_o__)                                                                  |
Ben Finney

More information about the Python-list mailing list