def from_pypi(request, fpkgs='/find-packages'): """ @@ convert to use action on a post rather than on a get """ name = request.matchdict['name'] version = request.matchdict['version'] dists = PyPi.release_urls(name, version) flash = request.session.flash if not dists: flash("%s-%s not found" % (name, version)) return HTTPFound(fpkgs) candidates = [ x for x in dists if request.index.SDIST_EXT.match(x['filename']) ] if candidates[0]['md5_digest'] in request.index_data: logger.debug('Package %s-%s already in index' % (name, version)) return HTTPFound('/index/%s' % name) details = candidates[0] url = details['url'] filename = details['filename'] newfile = None try: resp = requests.get(url) newfile = request.file_root / filename newfile.write_bytes(resp.content) except HTTPError, e: error = "HTTP Error: %d %s - %s" % (e.code, exc.status_map[e.code].title, url) logger.error(error) flash(error)
def from_pypi(request, fpkgs='/find-packages'): """ @@ convert to use action on a post rather than on a get """ name = request.matchdict['name'] version = request.matchdict['version'] dists = PyPi.release_urls(name, version) flash = request.session.flash if not dists: flash("%s-%s not found" %(name, version)) return HTTPFound(fpkgs) candidates = [x for x in dists if request.index.SDIST_EXT.match(x['filename'])] if candidates[0]['md5_digest'] in request.index_data: logger.debug('Package %s-%s already in index' %(name, version)) return HTTPFound('/index/%s' %name) details = candidates[0] url = details['url'] filename = details['filename'] newfile = None try: resp = requests.get(url) newfile = request.file_root / filename newfile.write_bytes(resp.content) except HTTPError, e: error = "HTTP Error: %d %s - %s" %(e.code, exc.status_map[e.code].title, url) logger.error(error) flash(error)