hgext: turn 'hgext' into a namespace package
authorPierre-Yves David <pierre-yves.david@fb.com>
Fri, 11 Mar 2016 09:48:12 +0000
changeset 1619 5ef77a1d975c
parent 1618 a3da15803b7a
child 1620 ce268aebd0f5
hgext: turn 'hgext' into a namespace package Actually since Python 2.3, there is some way to turn top level package into "namespace package" so that multiple subpackage installed in different part of the path can still be imported transparently. This feature was previously thought (at least by myself) to be only provided by some setuptool black magic. Turning hgext into such namespace package allows third extensions to install themselves inside the "hgext" namespace package to avoid polluting the global python module namespace. They will now be able to do so without making it a pain to use a Mercurial "installed" in a different way/location than these extensions.
hgext/__init__.py
--- a/hgext/__init__.py	Thu Feb 25 13:18:36 2016 +0100
+++ b/hgext/__init__.py	Fri Mar 11 09:48:12 2016 +0000
@@ -1,1 +1,4 @@
-# Copyright 2011 Logilab SA <contact@logilab.fr>
+from __future__ import absolute_import
+import pkgutil
+__path__ = pkgutil.extend_path(__path__, __name__)
+