diff --git a/anki/hooks.py b/anki/hooks.py index 7c5270bce..f29e75003 100644 --- a/anki/hooks.py +++ b/anki/hooks.py @@ -13,6 +13,14 @@ If you call wrap() with pos='around', the original function will not be called automatically but can be called with _old(). """ +import functools + +try: + # optional: like functools.wraps, but signature-preserving + import decorator +except ImportError: + decorator = None + # Hooks ############################################################################## @@ -59,4 +67,11 @@ def wrap(old, new, pos="after"): return old(*args, **kwargs) else: return new(_old=old, *args, **kwargs) - return repl + + if decorator is None: + return functools.wraps(repl) + + def decorator_wrapper(f, *args, **kwargs): + return repl(*args, **kwargs) + + return decorator.decorator(decorator_wrapper)(old) diff --git a/aqt/deckbrowser.py b/aqt/deckbrowser.py index 9f2dc2c5e..7eeb7517c 100644 --- a/aqt/deckbrowser.py +++ b/aqt/deckbrowser.py @@ -333,14 +333,15 @@ where id > ?""", (self.mw.col.sched.dayCutoff-86400)*1000) # Top buttons ###################################################################### - def _drawButtons(self): - links = [ + drawLinks = [ ["", "shared", _("Get Shared")], ["", "create", _("Create Deck")], - ["Ctrl+I", "import", _("Import File")], - ] + ["Ctrl+I", "import", _("Import File")], # Ctrl+I works from menu + ] + + def _drawButtons(self): buf = "" - for b in links: + for b in drawLinks: if b[0]: b[0] = _("Shortcut key: %s") % shortcut(b[0]) buf += """ diff --git a/requirements.txt b/requirements.txt index cd37c7b9e..ba519212a 100644 --- a/requirements.txt +++ b/requirements.txt @@ -3,3 +3,4 @@ send2trash httplib2 pyaudio requests +decorator