produce traceback on error generating static page

This commit is contained in:
Oliver Marks 2015-10-18 16:54:06 +01:00
parent 4b70d86a79
commit 0da3cf8ab5
2 changed files with 13 additions and 6 deletions

View File

@ -35,7 +35,7 @@ def examples():
if __name__ == "__main__": if __name__ == "__main__":
parser = argparse.ArgumentParser(description='Generate static pages') parser = argparse.ArgumentParser(description='Generate static pages')
parser.add_argument('--folder', dest='folder', nargs='?', help='output folder') parser.add_argument('--folder', dest='folder', default='./html/' ,nargs='?', help='output folder')
#module, function, output file #module, function, output file
pages_list = ( pages_list = (
@ -44,11 +44,18 @@ if __name__ == "__main__":
('pages.chat', 'index', 'chat.html'), ('pages.chat', 'index', 'chat.html'),
('pages.competition', 'index', 'competition.html')) ('pages.competition', 'index', 'competition.html'))
args = parser.parse_args()
print args.folder
for module, page, filename in pages_list: for module, page, filename in pages_list:
page_module = __import__(module, globals(), locals(), page) page_module = __import__(module, globals(), locals(), page)
with codecs.open('./html/%s' % filename, 'w', "utf-8") as fp: with codecs.open(args.folder + '%s' % filename, 'w', "utf-8") as fp:
try: try:
fp.write(getattr(page_module, page)().decode('utf-8')) fp.write(getattr(page_module, page)().decode('utf-8'))
print('Successfully Generated ./html/%s' % filename) print('Successfully Generated %s%s' % (args.folder, filename))
except: except Exception as e:
print('Failed to Generate ./html/%s' % filename) print('Failed to Generate %s%s' % (args.folder, filename))
import traceback
exc_type, exc_value, exc_traceback = sys.exc_info()
traceback.print_tb(exc_traceback, limit=5, file=sys.stdout)

View File

@ -155,7 +155,7 @@ class feed_reader:
"""fetch the text from the node we are given, we are working in unicode """fetch the text from the node we are given, we are working in unicode
so decode byte strings to unicode""" so decode byte strings to unicode"""
result = node.xpath('./%s' % name) result = node.xpath('./%s' % name)
if result is None: if result is None or len(result) is 0:
return default return default
if type(result[-1].text) is str: if type(result[-1].text) is str: