docs: def schedule_in(secs, target=None, args=(), kwargs=None):
      """insert a greenlet into the scheduler to run after a set time
  
      If provided a function, it is wrapped in a new greenlet
  
      :param secs: the number of seconds to wait before running the target
      :type unixtime: int or float
      :param target: what to schedule
      :type target: function or greenlet
      :param args:
          arguments for the function (only used if ``target`` is a function)
      :type args: tuple
      :param kwargs:
          keyword arguments for the function (only used if ``target`` is a
          function)
      :type kwargs: dict or None
  
      :returns: the ``target`` argument
  
      This function can also be used as a decorator:
  
      >>> @schedule_in(30)
      >>> def f():
      ...     print 'hello from f'
  
      and args/kwargs can also be preloaded:
  
      >>> @schedule_in(30, args=('world',))
      >>> def f(name):
      ...     print 'hello %s' % name
      """
      return schedule_at(time.time() + secs, target, args, kwargs)