docs: def _get_function_commands(module):
      # type: (ast.Module) -> typing.Generator[_EntryPoint, None, None]
      """Yield all Command objects represented by python functions in the module.
  
      Function commands consist of all top-level functions that contain
      docopt-style docstrings.
  
      Args:
          module: An ast.Module object used to retrieve docopt-style commands.
  
      Yields:
          Command objects that represent entry points to append to setup.py.
      """
      nodes = (n for n in module.body if isinstance(n, ast.FunctionDef))
      for func in nodes:
          docstring = ast.get_docstring(func)
          for commands, _ in usage.parse_commands(docstring):
              yield _EntryPoint(commands[0], next(iter(commands[1:]), None),
                                func.name)