docs: def _taskify(func):
  	'''Convert a function into a task.'''
  	if not isinstance(func, _Task):
  		func = _Task(func)
  
  		spec = inspect.getargspec(func.func)
  		if spec.args:
  			num_args = len(spec.args)
  			num_kwargs = len(spec.defaults or [])
  			isflag = lambda x, y: '' if x.defaults[y] is False else '='
  
  			func.args = spec.args[:(num_args - num_kwargs)]
  			func.defaults = {spec.args[i - num_kwargs]: spec.defaults[i] for i in range(num_kwargs)}
  			func.kwargs = [key.replace('_','-') + isflag(func, key) for key in func.defaults]
  
  		if not func.name.startswith('_'):
  			TASKS.append(func)
  
  	return func