On Jan 25, 2008 3:15 PM, Raymond Hettinger <[EMAIL PROTECTED]> wrote:
> All of the abstract base classes should be collected in one place.  I propose 
> that the modules be collected into a package so that we can write:
>
>    import abc.numbers
>    import abc.collections
>     . . .
>
> Besides collecting all the relevant code in one place, it has a nice 
> additional benefit of clearly designating when you're working with one of the 
> provided abstract base classes.  When I see "import numbers", I don't 
> immediately recognize this as being somehow different from "import math" or 
> some other concrete implementation.
>
> IMO. the emerging practice of spreading modules these across the library 
> isn't serving us well.

 I don't think so. Things should be grouped by application area, not
by some property like "uses metaclasses" or "defines abstract base
classes" or "overrides operators". The old types module collected all
"built-in types" and it was a mistake. You  might as well propose that
all decorators should live in the same package, or all generic
functions (if we ever have them). There's a lot more synergy between
the collection ABCs and other collections than between collection ABCs
and number ABCs.

Another angle: the io.py module also uses ABCs. Should it therefore be
a subpackage of ABC? No way!

If you want ABCs to be more easily recognizable as such, perhaps we
could use a naming convention, though personally I think we don't need
that either -- the generic names like "Sequence" or "Real" are enough
of a tip-off that these are type categories and not implementation
types.

-- 
--Guido van Rossum (home page: http://www.python.org/~guido/)
_______________________________________________
Python-Dev mailing list
Python-Dev@python.org
http://mail.python.org/mailman/listinfo/python-dev
Unsubscribe: 
http://mail.python.org/mailman/options/python-dev/archive%40mail-archive.com

Reply via email to