Convert all function annotations to dicts.

This commit is contained in:
Florian Bruhin 2014-10-20 17:20:39 +02:00
parent c4cd6fc56a
commit fd6e56d7af
3 changed files with 21 additions and 21 deletions

View File

@ -470,7 +470,8 @@ class CommandDispatcher:
self._open(url, tab, background, window)
@cmdutils.register(instance='command-dispatcher', scope='window')
def navigate(self, where: ('prev', 'next', 'up', 'increment', 'decrement'),
def navigate(self, where: {'type': ('prev', 'next', 'up', 'increment',
'decrement')},
tab=False, bg=False, window=False):
"""Open typical prev/next links or navigate using the URL path.
@ -515,7 +516,8 @@ class CommandDispatcher:
@cmdutils.register(instance='command-dispatcher', hide=True,
scope='window')
def scroll(self, dx: float, dy: float, count: {'special': 'count'}=1):
def scroll(self, dx: {'type': float}, dy: {'type': float},
count: {'special': 'count'}=1):
"""Scroll the current tab by 'count * dx/dy'.
Args:
@ -531,7 +533,7 @@ class CommandDispatcher:
@cmdutils.register(instance='command-dispatcher', hide=True,
scope='window')
def scroll_perc(self, perc: float=None,
def scroll_perc(self, perc: {'type': float}=None,
horizontal: {'flag': 'x'}=False,
count: {'special': 'count'}=None):
"""Scroll to a specific percentage of the page.
@ -549,7 +551,8 @@ class CommandDispatcher:
@cmdutils.register(instance='command-dispatcher', hide=True,
scope='window')
def scroll_page(self, x: float, y: float, count: {'special': 'count'}=1):
def scroll_page(self, x: {'type': float}, y: {'type': float},
count: {'special': 'count'}=1):
"""Scroll the frame page-wise.
Args:
@ -714,7 +717,7 @@ class CommandDispatcher:
self._open(url, tab, bg, window)
@cmdutils.register(instance='command-dispatcher', scope='window')
def tab_focus(self, index: (int, 'last')=None,
def tab_focus(self, index: {'type': (int, 'last')}=None,
count: {'special': 'count'}=None):
"""Select the tab given as argument/[count].
@ -739,7 +742,7 @@ class CommandDispatcher:
idx))
@cmdutils.register(instance='command-dispatcher', scope='window')
def tab_move(self, direction: ('+', '-')=None,
def tab_move(self, direction: {'type': ('+', '-')}=None,
count: {'special': 'count'}=None):
"""Move the current tab.

View File

@ -59,7 +59,7 @@ class Command:
"""
AnnotationInfo = collections.namedtuple('AnnotationInfo',
['kwargs', 'typ', 'name', 'flag',
['kwargs', 'type', 'name', 'flag',
'special'])
ParamType = usertypes.enum('ParamType', ['flag', 'positional'])
@ -301,19 +301,16 @@ class Command:
flag: The short name/flag if overridden.
name: The long name if overridden.
"""
info = {'kwargs': {}, 'typ': None, 'flag': None, 'name': None,
info = {'kwargs': {}, 'type': None, 'flag': None, 'name': None,
'special': None}
if param.annotation is not inspect.Parameter.empty:
log.commands.vdebug("Parsing annotation {}".format(
param.annotation))
if isinstance(param.annotation, dict):
for field in ('type', 'flag', 'name', 'special'):
if field in param.annotation:
info[field] = param.annotation[field]
del param.annotation[field]
info['kwargs'] = param.annotation
else:
info['typ'] = param.annotation
return self.AnnotationInfo(**info)
def _get_type(self, param, annotation_info):
@ -323,8 +320,8 @@ class Command:
param: The inspect.Parameter to look at.
annotation_info: An AnnotationInfo tuple which overrides the type.
"""
if annotation_info.typ is not None:
return annotation_info.typ
if annotation_info.type is not None:
return annotation_info.type
elif param.default is None or param.default is inspect.Parameter.empty:
return None
else:

View File

@ -31,7 +31,7 @@ from qutebrowser.widgets import console
@cmdutils.register(scope='window')
def later(ms: int, *command, win_id: {'special': 'win_id'}):
def later(ms: {'type': int}, *command, win_id: {'special': 'win_id'}):
"""Execute a command after some time.
Args:
@ -61,7 +61,7 @@ def later(ms: int, *command, win_id: {'special': 'win_id'}):
@cmdutils.register(scope='window')
def repeat(times: int, *command, win_id: {'special': 'win_id'}):
def repeat(times: {'type': int}, *command, win_id: {'special': 'win_id'}):
"""Repeat a given command.
Args:
@ -77,7 +77,7 @@ def repeat(times: int, *command, win_id: {'special': 'win_id'}):
@cmdutils.register(debug=True)
def debug_crash(typ: ('exception', 'segfault')='exception'):
def debug_crash(typ: {'type': ('exception', 'segfault')}='exception'):
"""Crash for debugging purposes.
Args: