Rietveld Code Review Tool
Help | Bug tracker | Discussion group | Source code

Unified Diff: sitescripts/stats/bin/logprocessor.py

Issue 29329315: Issue 2983 - Make sure that the new lastVersion format is recognized and exceptions don`t break eve… (Closed)
Patch Set: Created Oct. 21, 2015, 9:53 a.m.
Use n/p to move between diff chunks; N/P to move between comments.
Jump to:
View side-by-side diff with in-line comments
Download patch
« no previous file with comments | « no previous file | sitescripts/stats/test/logprocessor.py » ('j') | no next file with comments »
Expand Comments ('e') | Collapse Comments ('c') | Show Comments Hide Comments ('s')
Index: sitescripts/stats/bin/logprocessor.py
===================================================================
--- a/sitescripts/stats/bin/logprocessor.py
+++ b/sitescripts/stats/bin/logprocessor.py
@@ -112,17 +112,21 @@ def cache_lru(func):
if arg in results:
result = results[arg]
del results[arg]
else:
if results.entries_left > 0:
results.entries_left -= 1
else:
results.popitem(last=False)
- result = func(arg)
+ try:
+ result = func(arg)
+ except:
Sebastian Noack 2015/10/21 15:19:20 You probably should explicitly catch Exception. Ot
Wladimir Palant 2015/10/21 15:42:40 Why shouldn't it? The exception is re-raised, the
Sebastian Noack 2015/10/21 15:49:13 Acknowledged.
+ results.entries_left += 1
+ raise
results[arg] = result
return result
return wrapped
def cache_last(func):
"""
Decorator that memoizes the last return value of a function in case it is
@@ -262,16 +266,18 @@ def parse_path(path):
return path[1:], urlparts.query
@cache_lru
def parse_query(query):
return urlparse.parse_qs(query)
@cache_lru
def parse_lastversion(last_version):
+ if '-' in last_version:
+ last_version = last_version.split('-', 1)[0]
Sebastian Noack 2015/10/21 15:19:20 Nit: last_version.split('-')[0] would do as will a
Wladimir Palant 2015/10/21 15:42:40 Sure, but the point is doing as little work as pos
Sebastian Noack 2015/10/21 15:49:13 More than one dash given is a rather theoretical s
Sebastian Noack 2015/10/21 16:10:34 I did some more benchmarking, and confirmed that t
Wladimir Palant 2015/10/21 16:16:03 No, it's a very real scenario if more than one not
Sebastian Noack 2015/10/21 16:19:51 Well, I'm not arguing. I just try to understand wh
return datetime.strptime(last_version, "%Y%m%d%H%M")
@cache_lru
def get_week(date):
return date.isocalendar()[0:2]
def parse_downloader_query(info):
params = parse_query(info["query"])
« no previous file with comments | « no previous file | sitescripts/stats/test/logprocessor.py » ('j') | no next file with comments »

Powered by Google App Engine
This is Rietveld