Work around HTTPError status code issues
It turned out that bottle.py is not backwards-compatible with the status code change: older versions encode the status in e.status; newer ones use e.status_code (and e.status became a string). This patch works around that by trying to pick up which of the two variants we have, and deciding accordingly. Signed-off-by: Alberto Bertogli <albertito@blitiri.com.ar>
This commit is contained in:
parent
e49c69da2e
commit
f6a75820e8
12
git-arr
12
git-arr
@ -269,6 +269,16 @@ def static(path):
|
|||||||
# Static HTML generation
|
# Static HTML generation
|
||||||
#
|
#
|
||||||
|
|
||||||
|
def is_404(e):
|
||||||
|
"""True if e is an HTTPError with status 404, False otherwise."""
|
||||||
|
# We need this because older bottle.py versions put the status code in
|
||||||
|
# e.status as an integer, and newer versions make that a string, and using
|
||||||
|
# e.status_code for the code.
|
||||||
|
if isinstance(e.status, int):
|
||||||
|
return e.status == 404
|
||||||
|
else:
|
||||||
|
return e.status_code == 404
|
||||||
|
|
||||||
def generate(output, skip_index = False):
|
def generate(output, skip_index = False):
|
||||||
"""Generate static html to the output directory."""
|
"""Generate static html to the output directory."""
|
||||||
def write_to(path, func_or_str, args = (), mtime = None):
|
def write_to(path, func_or_str, args = (), mtime = None):
|
||||||
@ -396,7 +406,7 @@ def generate(output, skip_index = False):
|
|||||||
# Some repos can have tags pointing to non-commits. This
|
# Some repos can have tags pointing to non-commits. This
|
||||||
# happens in the Linux Kernel's v2.6.11, which points directly
|
# happens in the Linux Kernel's v2.6.11, which points directly
|
||||||
# to a tree. Ignore them.
|
# to a tree. Ignore them.
|
||||||
if e.status_code == 404:
|
if is_404(e):
|
||||||
print('404 in tag %s (%s)' % (tag_name, obj_id))
|
print('404 in tag %s (%s)' % (tag_name, obj_id))
|
||||||
else:
|
else:
|
||||||
raise
|
raise
|
||||||
|
Loading…
Reference in New Issue
Block a user