code: def _get_module_commands(module):
      # type: (ast.Module) -> typing.Generator[_EntryPoint, None, None]
      
      cls = next((n for n in module.body
                  if isinstance(n, ast.ClassDef) and n.name == 'Command'), None)
      if not cls:
          return
      methods = (n.name for n in cls.body if isinstance(n, ast.FunctionDef))
      if '__call__' not in methods:
          return
      docstring = ast.get_docstring(module)
      for commands, _ in usage.parse_commands(docstring):
          yield _EntryPoint(commands[0], next(iter(commands[1:]), None), None)
docs: Yield all Command objects represented by the python module.
  
      Module commands consist of a docopt-style module docstring and a callable
      Command class.
  
      Args:
          module: An ast.Module object used to retrieve docopt-style commands.
  
      Yields:
          Command objects that represent entry points to append to setup.py.