4d2de6c
diff -ru swift-1.4.4-ORIG/swift/__init__.py swift-1.4.4/swift/__init__.py
4d2de6c
--- swift-1.4.4-ORIG/swift/__init__.py	2011-11-24 14:59:50.000000000 +0100
4d2de6c
+++ swift-1.4.4/swift/__init__.py	2012-01-04 00:09:10.122030579 +0100
4d2de6c
@@ -1,3 +1,32 @@
4d2de6c
+import sys
4d2de6c
+import pkg_resources
4d2de6c
+
4d2de6c
+# If there is a conflicting non egg module,
4d2de6c
+# i.e. an older standard system module installed,
4d2de6c
+# then replace it with this requirement
4d2de6c
+def replace_dist(requirement):
4d2de6c
+    try:
4d2de6c
+        return pkg_resources.require(requirement)
4d2de6c
+    except pkg_resources.VersionConflict:
4d2de6c
+        e = sys.exc_info()[1]
4d2de6c
+        dist=e.args[0]
4d2de6c
+        req=e.args[1]
4d2de6c
+        if dist.key == req.key and not dist.location.endswith('.egg'):
4d2de6c
+            del pkg_resources.working_set.by_key[dist.key]
4d2de6c
+            # We assume there is no need to adjust sys.path
4d2de6c
+            # and the associated pkg_resources.working_set.entries
4d2de6c
+            return pkg_resources.require(requirement)
4d2de6c
+
4d2de6c
+replace_dist("WebOb >= 1.0")
4d2de6c
+
4d2de6c
+replace_dist("PasteDeploy >= 1.5.0")
4d2de6c
+# This hack is needed because replace_dist() results in
4d2de6c
+# the standard paste module path being at the start of __path__.
4d2de6c
+# TODO: See can we get pkg_resources to do the right thing directly
4d2de6c
+import paste
4d2de6c
+paste.__path__.insert(0, paste.__path__.pop(-1))
4d2de6c
+
4d2de6c
+
4d2de6c
 import gettext
4d2de6c
 
4d2de6c