return string
+def timed(fn):
+ """Timer decorator"""
+ from time import perf_counter
+
+ def inner(*args, **kwargs):
+ start_time = perf_counter()
+ rval = fn(*args, **kwargs)
+ end_time = perf_counter()
+ _LOG.info('{0}: {1:.8f}s elapsed'.format(fn.__name__, end_time - start_time))
+ return rval
+
+ return inner
+
+
class SubprocessError(RuntimeError):
"A subprocess exited with a nonzero status"
def __init__(self, args, status, stdout=None, stderr=None):
_git(args=['read-tree', treeish], wait=True)
raise
+@timed
def _update_index(status):
with _git(
args=['update-index', '--index-info'],
return base != fetch_head
+@timed
def get_status():
status = {
'deleted': {},
_os.remove(index)
return status
-
+@timed
def _index_tags():
"Write notmuch tags to the nmbug.index."
path = _os.path.join(NOTMUCH_GIT_DIR, 'nmbug.index')
yield '{mode} {hash}\t{path}\n'.format(mode=mode, hash=hash, path=path)
+@timed
def _diff_index(index, filter):
"""
Get an {id: {tag, ...}} dict for a given filter.