summaryrefslogtreecommitdiff
path: root/lib/python2.7/site-packages/pip-0.8.1-py2.7.egg/pip/backwardcompat.py
diff options
context:
space:
mode:
Diffstat (limited to 'lib/python2.7/site-packages/pip-0.8.1-py2.7.egg/pip/backwardcompat.py')
-rwxr-xr-xlib/python2.7/site-packages/pip-0.8.1-py2.7.egg/pip/backwardcompat.py55
1 files changed, 55 insertions, 0 deletions
diff --git a/lib/python2.7/site-packages/pip-0.8.1-py2.7.egg/pip/backwardcompat.py b/lib/python2.7/site-packages/pip-0.8.1-py2.7.egg/pip/backwardcompat.py
new file mode 100755
index 00000000..e7c11f1d
--- /dev/null
+++ b/lib/python2.7/site-packages/pip-0.8.1-py2.7.egg/pip/backwardcompat.py
@@ -0,0 +1,55 @@
+"""Stuff that isn't in some old versions of Python"""
+
+import sys
+import os
+import shutil
+
+__all__ = ['any', 'WindowsError', 'md5', 'copytree']
+
+try:
+ WindowsError = WindowsError
+except NameError:
+ WindowsError = None
+try:
+ from hashlib import md5
+except ImportError:
+ import md5 as md5_module
+ md5 = md5_module.new
+
+try:
+ from pkgutil import walk_packages
+except ImportError:
+ # let's fall back as long as we can
+ from _pkgutil import walk_packages
+
+try:
+ any = any
+except NameError:
+
+ def any(seq):
+ for item in seq:
+ if item:
+ return True
+ return False
+
+
+def copytree(src, dst):
+ if sys.version_info < (2, 5):
+ before_last_dir = os.path.dirname(dst)
+ if not os.path.exists(before_last_dir):
+ os.makedirs(before_last_dir)
+ shutil.copytree(src, dst)
+ shutil.copymode(src, dst)
+ else:
+ shutil.copytree(src, dst)
+
+
+def product(*args, **kwds):
+ # product('ABCD', 'xy') --> Ax Ay Bx By Cx Cy Dx Dy
+ # product(range(2), repeat=3) --> 000 001 010 011 100 101 110 111
+ pools = map(tuple, args) * kwds.get('repeat', 1)
+ result = [[]]
+ for pool in pools:
+ result = [x+[y] for x in result for y in pool]
+ for prod in result:
+ yield tuple(prod)