[Zope-dev] Namespace declaration using pkgutil vs pkg_resources
Martijn Faassen
faassen at startifact.com
Wed Mar 11 13:55:28 EDT 2009
Hey,
Zvezdan Petkovic wrote:
> On Mar 11, 2009, at 10:29 AM, Martijn Faassen wrote:
>> Since Jim says you're not missing something, I'm going to add to the
>> Zope Framework Steering Group decisions that this is enough and we
>> could clean up __init__.py's to this if we would want to.
>
> So, let me try to understand the decision process here:
>
> 1. The extras_require is banned to enable building with regular
> distutils.
Huh? What does this have to do with regular distutils? That never was
mentioned in the extra discussion as far as I know.
Anyway, extras_requires isn't banned at all.
http://docs.zope.org/zopeframework/steeringgroup/decisions.html
We're careful about extras as they can make it harder to reason about
package dependencies.
> 2. pkgutil is now banned which will prevent regular distutils from
> working properly.
>
> What exactly do we want to achieve?
Who banned pkgutil? I recorded this:
* In namespace package's ``__init__.py`` we have been using the following
boilerplate code::
try:
import pkg_resources
pkg_resources.declare_namespace(__name__)
except ImportError:
import pkgutil
__path__ = pkgutil.extend_path(__path__, __name__)
Since ``setuptools`` is a dependency of our packages anyway, we
can instead do the following::
__import__('pkg_resources').declare_namespace(__name__)
Feel free to use that and also feel free to simplify existing
``__init__.py`` modules. Just make sure ``setuptools`` is a declared
dependency of the package.
I'm not very concerned with making regular distutils work myself; I
don't really see the point as we're heavily committed to setuptools
anyway as a project.
Tres remarked that it might if we continued to write this. I don't quite
see how that could be. People need setuptools installed anyway to be
able to run the code in setup.py.
To me, building with regular distutils is *not* interesting to the Zope
Framework project at this stage. It just isn't capable enough and we can
use our time a lot better than worry about that.
Regards,
Martijn
More information about the Zope-Dev
mailing list