Replace compat symlinks with a new compat module as the symlink solution prevents...
authorMarius Mauch <genone@gentoo.org>
Sat, 17 Feb 2007 13:11:28 +0000 (13:11 -0000)
committerMarius Mauch <genone@gentoo.org>
Sat, 17 Feb 2007 13:11:28 +0000 (13:11 -0000)
svn path=/main/trunk/; revision=5981

25 files changed:
pym/cvstree.py
pym/dispatch_conf.py
pym/eclass_cache.py
pym/emergehelp.py
pym/getbinpkg.py
pym/output.py
pym/portage_checksum.py
pym/portage_compat_namespace.py [new file with mode: 0644]
pym/portage_const.py
pym/portage_data.py
pym/portage_debug.py
pym/portage_dep.py
pym/portage_exception.py
pym/portage_exec.py [new file with mode: 0644]
pym/portage_gpg.py
pym/portage_localization.py
pym/portage_locks.py
pym/portage_mail.py
pym/portage_manifest.py
pym/portage_news.py
pym/portage_selinux.py
pym/portage_update.py
pym/portage_util.py
pym/portage_versions.py
pym/xpak.py

index 64d929425529a48286b5a6c3e9856ae10c82176a..de769f711774c79e3887b10967a9512c01833907 120000 (symlink)
@@ -1 +1 @@
-portage/cvstree.py
\ No newline at end of file
+portage_compat_namespace.py
\ No newline at end of file
index 12dcece7ef133bab1a7bd4432bad808d08679f0b..de769f711774c79e3887b10967a9512c01833907 120000 (symlink)
@@ -1 +1 @@
-portage/dispatch_conf.py
\ No newline at end of file
+portage_compat_namespace.py
\ No newline at end of file
index c7d7db2ca1a6ca3df4aed64e112dbaf55dfe0215..de769f711774c79e3887b10967a9512c01833907 120000 (symlink)
@@ -1 +1 @@
-portage/eclass_cache.py
\ No newline at end of file
+portage_compat_namespace.py
\ No newline at end of file
index dbfcb4af5239606001eede4b1f7641e6fb3465f1..de769f711774c79e3887b10967a9512c01833907 120000 (symlink)
@@ -1 +1 @@
-emerge/help.py
\ No newline at end of file
+portage_compat_namespace.py
\ No newline at end of file
index 89c090948bd6db72d6b55a22650c287778e346cb..de769f711774c79e3887b10967a9512c01833907 120000 (symlink)
@@ -1 +1 @@
-portage/getbinpkg.py
\ No newline at end of file
+portage_compat_namespace.py
\ No newline at end of file
index f99c2257f92e19852e3f4b6e327652b0dbad74f8..de769f711774c79e3887b10967a9512c01833907 120000 (symlink)
@@ -1 +1 @@
-portage/output.py
\ No newline at end of file
+portage_compat_namespace.py
\ No newline at end of file
index 90dfb342cf82e306b5690802279e7fc02de6d1aa..de769f711774c79e3887b10967a9512c01833907 120000 (symlink)
@@ -1 +1 @@
-portage/checksum.py
\ No newline at end of file
+portage_compat_namespace.py
\ No newline at end of file
diff --git a/pym/portage_compat_namespace.py b/pym/portage_compat_namespace.py
new file mode 100644 (file)
index 0000000..9e5e691
--- /dev/null
@@ -0,0 +1,35 @@
+# portage_compat_namespace.py -- provide compability layer with new namespace
+# Copyright 2007 Gentoo Foundation
+# Distributed under the terms of the GNU General Public License v2
+# $Id$
+
+""" 
+This module checks the name under which it is imported and attempts to load
+the corresponding module of the new portage namespace, inserting it into the
+loaded modules list.
+It also issues a warning to the caller to migrate to the new namespace.
+Note that this module should never be used with it's true name, but only by 
+links pointing to it. Also it is limited to portage_foo -> portage.foo 
+translations, however existing subpackages shouldn't use it anyway to maintain 
+compability with 3rd party modules (like elog or cache plugins), and they 
+shouldn't be directly imported by external consumers.
+
+This module is based on an idea by Brian Harring.
+"""
+
+import sys, warnings
+
+__oldname = __name__
+if __name__.startswith("portage_"):
+       __newname = __name__.replace("_", ".")
+else:
+       __newname = "portage."+__name__
+
+try:
+       __package = __import__(__newname, globals(), locals())
+       __realmodule = getattr(__package, __newname[8:])
+except ImportError, AttributeError:
+       raise ImportError("No module named %s" % __oldname)
+
+warnings.warn("DEPRECATION NOTICE: The %s module was replaced by %s" % (__oldname, __newname))
+sys.modules[__oldname] = __realmodule
index aac7e46cd38718d0a5336f79d6d9ebf0fa10603e..de769f711774c79e3887b10967a9512c01833907 120000 (symlink)
@@ -1 +1 @@
-portage/const.py
\ No newline at end of file
+portage_compat_namespace.py
\ No newline at end of file
index 55990ebc469f7aeb2200de76419b2eca30aa10f2..de769f711774c79e3887b10967a9512c01833907 120000 (symlink)
@@ -1 +1 @@
-portage/data.py
\ No newline at end of file
+portage_compat_namespace.py
\ No newline at end of file
index 52af90d3df5867c52e0dc6a21cd9aa4fae99a000..de769f711774c79e3887b10967a9512c01833907 120000 (symlink)
@@ -1 +1 @@
-portage/debug.py
\ No newline at end of file
+portage_compat_namespace.py
\ No newline at end of file
index e16bb2a7c159d2f1a091ea3c987c7ed5da72b2f0..de769f711774c79e3887b10967a9512c01833907 120000 (symlink)
@@ -1 +1 @@
-portage/dep.py
\ No newline at end of file
+portage_compat_namespace.py
\ No newline at end of file
index c3c090d0e2b938189985930124259fbaccea4eba..de769f711774c79e3887b10967a9512c01833907 120000 (symlink)
@@ -1 +1 @@
-portage/exception.py
\ No newline at end of file
+portage_compat_namespace.py
\ No newline at end of file
diff --git a/pym/portage_exec.py b/pym/portage_exec.py
new file mode 100644 (file)
index 0000000..30b5cdf
--- /dev/null
@@ -0,0 +1,15 @@
+# portage_compat_namespace.py -- provide compability layer with new namespace
+# Copyright 2007 Gentoo Foundation
+# Distributed under the terms of the GNU General Public License v2
+# $Id: portage_compat_namespace.py 5782 2007-01-25 17:07:32Z genone $
+
+""" 
+Special edition of portage_compat_namespace.py as for this module we can't translate
+name automatically as "import portage.exec" is a SyntaxError.
+"""
+
+import sys, warnings
+
+import portage.process
+warnings.warn("DEPRECATION NOTICE: The portage_exec module was replaced by portage.process")
+sys.modules["portage_exec"] = portage.process
index dd5c10655333e7c78941d29d376be90957fe6729..de769f711774c79e3887b10967a9512c01833907 120000 (symlink)
@@ -1 +1 @@
-portage/gpg.py
\ No newline at end of file
+portage_compat_namespace.py
\ No newline at end of file
index 3b57bfee6fea54ca5eea1ccb1005213eab7295b4..de769f711774c79e3887b10967a9512c01833907 120000 (symlink)
@@ -1 +1 @@
-portage/localization.py
\ No newline at end of file
+portage_compat_namespace.py
\ No newline at end of file
index 58fef066052923b95d7a77babb28288f7ff2896b..de769f711774c79e3887b10967a9512c01833907 120000 (symlink)
@@ -1 +1 @@
-portage/locks.py
\ No newline at end of file
+portage_compat_namespace.py
\ No newline at end of file
index c88fcdced61edddd9d98288bd5580fc35d498a86..de769f711774c79e3887b10967a9512c01833907 120000 (symlink)
@@ -1 +1 @@
-portage/mail.py
\ No newline at end of file
+portage_compat_namespace.py
\ No newline at end of file
index 6f6c0e9c2a1e9585404871feb0b0a7c653359d22..de769f711774c79e3887b10967a9512c01833907 120000 (symlink)
@@ -1 +1 @@
-portage/manifest.py
\ No newline at end of file
+portage_compat_namespace.py
\ No newline at end of file
index 166e3ce0312dd43b9182567622880acaa82910a3..de769f711774c79e3887b10967a9512c01833907 120000 (symlink)
@@ -1 +1 @@
-portage/news.py
\ No newline at end of file
+portage_compat_namespace.py
\ No newline at end of file
index 5c7a71ca8587d4c5426ca1ea68aa7d0339f1dc82..de769f711774c79e3887b10967a9512c01833907 120000 (symlink)
@@ -1 +1 @@
-portage/selinux.py
\ No newline at end of file
+portage_compat_namespace.py
\ No newline at end of file
index cb88f8a51556710311a731d7393b827b29afdc69..de769f711774c79e3887b10967a9512c01833907 120000 (symlink)
@@ -1 +1 @@
-portage/update.py
\ No newline at end of file
+portage_compat_namespace.py
\ No newline at end of file
index 570febc0f068e4072e91eecc82078cd4346d77d4..de769f711774c79e3887b10967a9512c01833907 120000 (symlink)
@@ -1 +1 @@
-portage/util.py
\ No newline at end of file
+portage_compat_namespace.py
\ No newline at end of file
index 1e05cb3b13ca60f763f5ac786cd181105d475f27..de769f711774c79e3887b10967a9512c01833907 120000 (symlink)
@@ -1 +1 @@
-portage/versions.py
\ No newline at end of file
+portage_compat_namespace.py
\ No newline at end of file
index 223cb31c9d74afd0e7cfc83d317c125a65f2c703..de769f711774c79e3887b10967a9512c01833907 120000 (symlink)
@@ -1 +1 @@
-portage/xpak.py
\ No newline at end of file
+portage_compat_namespace.py
\ No newline at end of file