Question about PEP 8
Laszlo Nagy
gandalf at shopzeus.com
Mon Sep 10 12:36:13 EDT 2007
Hi All,
Here is what I read in PEP 8:
> Package and Module Names
>
> Modules should have short, all-lowercase names. Underscores can be used
> in the module name if it improves readability. Python packages should
> also have short, all-lowercase names, although the use of underscores is
> discouraged.
>
> Since module names are mapped to file names, and some file systems are
> case insensitive and truncate long names, it is important that module
> names be chosen to be fairly short -- this won't be a problem on Unix,
> but it may be a problem when the code is transported to older Mac or
> Windows versions, or DOS.
>
> When an extension module written in C or C++ has an accompanying Python
> module that provides a higher level (e.g. more object oriented)
> interface, the C/C++ module has a leading underscore (e.g. _socket).
Here is my problem. There is ConfigParser, StringIO, Queue, HTMLParser
etc. They are all part of the standard library. Most of these are
modules with only a "main class" defined. ConfigParser module contains
ConfigParser class, Queue module contains Queue class etc. Should I use
CapWords for the module (and file) name or not? E.g. should I
from mess.wxmegaeidgets.GenericDialog import GenericDialog
or
from mess.wxmegaeidgets.genericdialog import GenericDialog
(suppose that the module contains only the GenericDialog class. BTW,
will Py3K change the standard library names in order to follow PEP 8?)
I also have problems with function and method names:
> Function Names
>
> Function names should be lowercase, with words separated by underscores
> as necessary to improve readability.
>
> mixedCase is allowed only in contexts where that's already the
> prevailing style (e.g. threading.py), to retain backwards compatibility.
Great, but what if I subclass wx widgets? They all have CapWords.
(wx.Window.ShowModal, wx.Window.Bind etc.) I must use CapitalizedWords
for method names because sometimes I have to override inherited methods,
and it is not possible to change their name. Where should be the limit?
If I create a composite widget then should I use lowercase and
underscores? If I create a class that is not itself a widget, but works
with widgets? The PEP defines the "theoretically good" coding style, but
what is the correct style in an environment where you have third party
libraries that are not following the PEP?
Thanks,
Laszlo
More information about the Python-list
mailing list