summaryrefslogtreecommitdiff
path: root/paste
diff options
context:
space:
mode:
Diffstat (limited to 'paste')
-rw-r--r--paste/packaging/__init__.py1
-rw-r--r--paste/packaging/finder.py53
-rw-r--r--paste/packaging/install.py63
3 files changed, 0 insertions, 117 deletions
diff --git a/paste/packaging/__init__.py b/paste/packaging/__init__.py
deleted file mode 100644
index 792d600..0000000
--- a/paste/packaging/__init__.py
+++ /dev/null
@@ -1 +0,0 @@
-#
diff --git a/paste/packaging/finder.py b/paste/packaging/finder.py
deleted file mode 100644
index 1aea428..0000000
--- a/paste/packaging/finder.py
+++ /dev/null
@@ -1,53 +0,0 @@
-import sys
-import urllib2
-import rfc822
-import install
-
-paste_pkg_url = 'http://pythonpaste.org/packages/info.txt'
-pkg_install_url= 'http://pythonpaste.org/packages'
-
-class PackageError(Exception):
- pass
-
-def get_package_info(metadata_url=None):
- url = url or paste_pkg_url
- records = {}
- f = urllib2.urlopen(url)
- while 1:
- msg = rfc822.Message(f)
- if not msg:
- break
- records.setdefault(msg['Name'], []).append(msg)
- return records
-
-def install_package(package_name, dest_dir, version=None,
- metadata_url=None):
- all_info = get_package_info(metadata_url=metadata_url)
- if package_name not in all_info:
- raise PackageError(
- "Package %s not found" % package_name)
- available = all_info[package_name]
- package_info = None
- for info in available:
- if version is None:
- if (not package_info
- or info['Version'] > package_info['Version']):
- package_info = info
- elif version == info['Version']:
- package_info = info
- break
- if package_info is None:
- raise PackageError(
- "Version %s of Package %s not found"
- % (version, package_name))
- python_version = 'py%s.%s' % (
- sys.version_info[0], sys.version_info[1])
- package_url = (
- pkg_install_url + '/' + package_name + '-'
- + package_info['Version'] + '-' + python_version + '.egg')
- install.install_egg_from_url(package_url, dest_dir)
-
-if __name__ == '__main__':
- print get_package_info()
-
-
diff --git a/paste/packaging/install.py b/paste/packaging/install.py
deleted file mode 100644
index bff8d1b..0000000
--- a/paste/packaging/install.py
+++ /dev/null
@@ -1,63 +0,0 @@
-import zipfile
-import os
-import urllib2
-import shutil
-
-def install_egg_file(filename, dest_dir, fileobj=None):
- """
- Install the egg file at `filename` into `dest_dir`.
-
- Can also be installed from a `fileobj`; if given then `filename`
- is just for error reporting.
- """
- # Since the filename may be a URL, we can't trust os.path:
- canonical_filename = filename.replace(os.sep, '/')
- # This is the convention for egg file naming:
- base_name = canonical_filename.split('/')[-1]
- package_name = base_name.split('-')[0]
- dest_dir = os.path.join(dest_dir, base_name)
- zf = zipfile.ZipFile(fileobj or filename)
- badfile = zf.testzip()
- if badfile:
- raise ValueError(
- "Zip file %s is corrupted; first bad file: %r"
- % (filename, badfile))
- for file_info in zf.infolist():
- fn = file_info.filename.lstrip('/') # make sure it's relative
- if fn.startswith('EGG-INFO/'):
- fn = package_name + '.egg-info' + fn[len('EGG-INFO'):]
- dest_fn = os.path.join(dest_dir, fn)
- if not os.path.exists(os.path.dirname(dest_fn)):
- os.makedirs(os.path.dirname(dest_fn))
- if fn.endswith('/') and not os.path.exists(dest_fn):
- os.makedir(dest_fn)
- continue
- f = open(dest_fn, 'wb')
- f.write(zf.read(file_info.filename))
- f.close()
-
-def install_egg_from_url(url, dest_dir, package_name=None,
- unpack=True):
- """
- Install the egg file located at `url` into `dest_dir`. If
- `package_name` is not given, then the package name is determined
- from the url.
- """
- f = urllib2.urlopen(url)
- try:
- if unpack:
- install_egg_file(url, dest_dir, package_name=package_name,
- fileobj=f)
- else:
- fn_out = os.path.join(dest_dir, url.split('/')[-1])
- if not os.path.exists(os.path.dirname(fn_out)):
- os.makedirs(os.path.dirname(fn_out))
- fout = open(fn_out, 'wb')
- shutil.copyfileobj(f, fout)
- fout.close()
- finally:
- f.close()
-
-if __name__ == '__main__':
- import sys
- install_egg_file(*sys.argv[1:])