Opinions, please, on PEP 8 and local, 3rd party imports

Jean-Michel Pichavant jeanmichel at sequans.com
Mon Oct 5 05:18:24 EDT 2009


Philip Semanchuk wrote:
> Hi all,
> Our project uses some libraries that were written by 3rd parties (i.e. 
> not us). These libraries fit into a single Python file and live in our 
> source tree alongside other modules we've written. When our app is 
> distributed, they'll be included in the installation. In other words, 
> they're not prerequisites that we'll make the user install, and they 
> won't live in site-packages.
>
> For example, we use configobj from 
> <http://www.voidspace.org.uk/downloads/configobj.py>, and I think 
> Beautiful Soup can be installed as a single file too, although we're 
> not using that particular module.
>
> PEP 8 <http://www.python.org/dev/peps/pep-0008/> says the following:
>
>    Imports should be grouped in the following order:
>    1. standard library imports
>    2. related third party imports
>    3. local application/library specific imports
>
>
> I'm not sure in which category to place local, 3rd-party modules like 
> configobj.
>
> Clearly, they belong in category 3 since they're local.
>
> Clearly, they also belong in category 2 since they're 3rd party 
> modules, and explicitly labeling an imported module as "this is code 
> we didn't write" is useful. But I've always reserved category 2  for 
> external libraries (e.g. numpy, wxPython, Twisted, PIL, etc.).
>
> Clearly, the best choice is category 2.5?
>
> In your Pythonic opinion, should 3rd-party modules that live alongside 
> homegrown code be listed in import category 2 or 3?
>
> Thanks
> Philip
> --http://mail.python.org/mailman/listinfo/python-list
>
Since you provide a local file, this could be considered from a QA point 
of view as an uncontrolled version of the standard library. So it's no 
more standard, could be then considered as local.
I'm not sure it is *that* import though.

JM



More information about the Python-list mailing list