A RetroSearch Logo

Home - News ( United States | United Kingdom | Italy | Germany ) - Football scores

Search Query:

Showing content from https://mail.python.org/pipermail/python-dev/2000-April/003326.html below:

[Python-Dev] Extensible library packages

[Python-Dev] Extensible library packagesM.-A. Lemburg mal@lemburg.com
Tue, 11 Apr 2000 18:41:26 +0200
"Andrew M. Kuchling" wrote:
> 
> For 1.6, the XML-SIG wants to submit a few more things, mostly a small
> SAX implementation.  This currently lives in xml.sax.*.  There are
> other subpackages around such as xml.dom, xml.utils, and so forth, but
> those aren't being proposed for inclusion (too large, too specialized,
> or whatever reason).
> 
> The problem is that, if the Python standard library includes a package
> named 'xml', that package name can't be extended by add-on modules
> (unless they install themselves into Python's library directory, which
> is evil).  Let's say Sean McGrath or whoever creates a new subpackage;
> how can he install it so that the code is accessible as xml.pyxie?

You could make use of the __path__ trick in packages and
then redirect the imports of subpackages to look in some
predefined other areas as well (e.g. a non-package dir
.../site-packages/xml-addons/).
 
Here is how I do this in the compatibility packages for
my mx series:

DateTime/__init__.py:

# Redirect all imports to the corresponding mx package
def _redirect(mx_subpackage):
    global __path__
    import os,mx
    __path__ = [os.path.join(mx.__path__[0],mx_subpackage)]
_redirect('DateTime')


... Greg won't like this, but __path__ does have its merrits ;-)

-- 
Marc-Andre Lemburg
______________________________________________________________________
Business:                                      http://www.lemburg.com/
Python Pages:                           http://www.lemburg.com/python/




RetroSearch is an open source project built by @garambo | Open a GitHub Issue

Search and Browse the WWW like it's 1997 | Search results from DuckDuckGo

HTML: 3.2 | Encoding: UTF-8 | Version: 0.7.4