mirror of
https://github.com/pypiserver/pypiserver
synced 2025-02-22 19:19:37 +01:00
redirect to the real pypi.python.org server if a package is not found.
This commit is contained in:
parent
b651d15f36
commit
f0683a32b9
@ -66,8 +66,9 @@ pypi-server -h will print a detailed usage message::
|
||||
-i INTERFACE, --interface INTERFACE
|
||||
listen on interface INTERFACE (default: 0.0.0.0, any interface)
|
||||
|
||||
-r PACKAGES_DIRECTORY, --root PACKAGES_DIRECTORY
|
||||
[deprecated] serve packages from PACKAGES_DIRECTORY
|
||||
--disable-fallback
|
||||
disable redirect to real PyPI index for packages not found in the
|
||||
local index
|
||||
|
||||
--server METHOD
|
||||
use METHOD to run the server. Valid values include paste,
|
||||
@ -75,6 +76,9 @@ pypi-server -h will print a detailed usage message::
|
||||
default is to use "auto" which chooses one of paste, cherrypy,
|
||||
twisted or wsgiref.
|
||||
|
||||
-r PACKAGES_DIRECTORY, --root PACKAGES_DIRECTORY
|
||||
[deprecated] serve packages from PACKAGES_DIRECTORY
|
||||
|
||||
pypi-server -h
|
||||
pypi-server --help
|
||||
show this help message
|
||||
|
@ -16,6 +16,13 @@ mimetypes.add_type("application/octet-stream", ".egg")
|
||||
|
||||
packages = None
|
||||
|
||||
class configuration(object):
|
||||
def __init__(self):
|
||||
self.fallback_url = "http://pypi.python.org/simple"
|
||||
self.redirect_to_fallback = True
|
||||
|
||||
config = configuration()
|
||||
|
||||
|
||||
def guess_pkgname(path):
|
||||
pkgname = re.split(r"-\d+\.", os.path.basename(path))[0]
|
||||
@ -104,6 +111,8 @@ def simple_redirect(prefix):
|
||||
@route("/simple/:prefix/")
|
||||
def simple(prefix=""):
|
||||
files = packages.find_packages(prefix)
|
||||
if not files and config.redirect_to_fallback:
|
||||
return redirect("%s/%s/" % (config.fallback_url.rstrip("/"), prefix))
|
||||
files.sort()
|
||||
res = ["<html><head><title>Links for %s</title></head><body>\n" % prefix]
|
||||
res.append("<h1>Links for %s</h1>\n" % prefix)
|
||||
@ -150,8 +159,9 @@ pypi-server understands the following options:
|
||||
-i INTERFACE, --interface INTERFACE
|
||||
listen on interface INTERFACE (default: 0.0.0.0, any interface)
|
||||
|
||||
-r PACKAGES_DIRECTORY, --root PACKAGES_DIRECTORY
|
||||
[deprecated] serve packages from PACKAGES_DIRECTORY
|
||||
--disable-fallback
|
||||
disable redirect to real PyPI index for packages not found in the
|
||||
local index
|
||||
|
||||
--server METHOD
|
||||
use METHOD to run the server. Valid values include paste,
|
||||
@ -159,6 +169,9 @@ pypi-server understands the following options:
|
||||
default is to use "auto" which chooses one of paste, cherrypy,
|
||||
twisted or wsgiref.
|
||||
|
||||
-r PACKAGES_DIRECTORY, --root PACKAGES_DIRECTORY
|
||||
[deprecated] serve packages from PACKAGES_DIRECTORY
|
||||
|
||||
pypi-server -h
|
||||
pypi-server --help
|
||||
show this help message
|
||||
@ -178,7 +191,7 @@ def main():
|
||||
server = None
|
||||
|
||||
try:
|
||||
opts, roots = getopt.getopt(sys.argv[1:], "i:p:r:h", ["interface=", "port=", "root=", "server=", "version", "help"])
|
||||
opts, roots = getopt.getopt(sys.argv[1:], "i:p:r:h", ["interface=", "port=", "root=", "server=", "disable-fallback", "version", "help"])
|
||||
except getopt.GetoptError, err:
|
||||
sys.exit("usage error: %s" % (err,))
|
||||
|
||||
@ -189,6 +202,8 @@ def main():
|
||||
host = v
|
||||
elif k in ("-r", "--root"):
|
||||
roots.append(v)
|
||||
elif k == "--disable-fallback":
|
||||
config.redirect_to_fallback = False
|
||||
elif k == "--server":
|
||||
if v not in server_names:
|
||||
sys.exit("unknown server %r. choose one of %s" % (v, ", ".join(server_names.keys())))
|
||||
|
Loading…
Reference in New Issue
Block a user