prompt: We are currently solving the following issue within our repository. Here is the issue text:
  --- BEGIN ISSUE ---
  Give `external` higher billing in the docs?
  At the moment external modules are kind of hidden in the docs. I think it'd be worth making them more visible (at least on the same page as everything else). I've been giving this a shot, but have hit the limit of my sphinx/ rst abilities.
  
  Two ideas for how they could be more discoverable:
  
  * They get their own heading under `api`
  * They're mixed in with everything else (so everything stays organized by topic), but their names are prepended with `sce` while scanpy functions are prepended with `sc`.
  
  --- END ISSUE ---
  
  Below are some code segments, each from a relevant file. One or more of these files may contain bugs.
  --- BEGIN FILES ---
  Path: `scanpy/external/__init__.py`
  Content:
  ```
  1 from . import tl
  2 from . import pl
  3 from . import pp
  4 
  5 from .. import _exporting as exporting
  6 
  7 import sys
  8 from .. import utils
  9 utils.annotate_doc_types(sys.modules[__name__], 'scanpy')
  10 del sys, utils
  11 
  12 
  13 __doc__ = """\
  14 External API
  15 ============
  16 
  17 
  18 Import Scanpy's wrappers to external tools as::
  19 
  20    import scanpy.external as sce
  21 
  22 Preprocessing: PP
  23 ------------------
  24 
  25 Batch effect correction
  26 ~~~~~~~~~~~~~~~~~~~~~~~
  27 
  28 .. autosummary::
  29    :toctree: .
  30 
  31    pp.bbknn
  32    pp.mnn_correct
  33 
  34 Imputation
  35 ~~~~~~~~~~
  36 
  37 Note that the fundamental limitations of imputation are still under `debate
  38 <https://github.com/theislab/scanpy/issues/189>`__.
  39 
  40 .. autosummary::
  41    :toctree: .
  42 
  43    pp.dca
  44    pp.magic
  45 
  46 
  47 Tools: TL
  48 ----------
  49 
  50 Embeddings
  51 ~~~~~~~~~~
  52 
  53 .. autosummary::
  54    :toctree: .
  55 
  56    tl.phate
  57    tl.palantir
  58 
  59 Clustering and trajectory inference
  60 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
  61 
  62 .. autosummary::
  63    :toctree: .
  64 
  65    tl.phenograph
  66 
  67 Gene scores, Cell cycle
  68 ~~~~~~~~~~~~~~~~~~~~~~~
  69 
  70 .. autosummary::
  71    :toctree: .
  72 
  73    tl.sandbag
  74    tl.cyclone
  75 
  76 
  77 Plotting: PL
  78 ------------
  79 
  80 .. autosummary::
  81    :toctree: .
  82 
  83    pl.phate
  84    tl.palantir
  85 
  86 
  87 Exporting
  88 ---------
  89 
  90 .. autosummary::
  91    :toctree: .
  92 
  93    exporting.spring_project
  94    exporting.cellbrowser
  95 """
  96
  ```
  --- END FILES ---
  
  Please first localize the bug based on the issue statement, and then generate a patch according to the `git diff` format fenced by three backticks.
  
  Here is an example:
  
  ```diff
  diff --git a/examples/server_async.py b/examples/server_async.py
  --- a/examples/server_async.py
  +++ b/examples/server_async.py
  @@ -313,4 +313,4 @@
   
   
   if __name__ == "__main__":
  -    asyncio.run(run_async_server("."), debug=True)
  +    asyncio.run(run_async_server(), debug=True)
  diff --git a/examples/server_sync.py b/examples/server_sync.py
  --- a/examples/server_sync.py
  +++ b/examples/server_sync.py
  @@ -313,5 +313,5 @@
   
   
   if __name__ == "__main__":
  -    server = run_sync_server(".")
  +    server = run_sync_server()
       server.shutdown()
  
  ```
  
golden_diff: diff --git a/scanpy/external/__init__.py b/scanpy/external/__init__.py
  --- a/scanpy/external/__init__.py
  +++ b/scanpy/external/__init__.py
  @@ -19,6 +19,8 @@
   
      import scanpy.external as sce
   
  +If you'd like to see your tool included here, please open a `pull request <https://github.com/theislab/scanpy>`_!
  +
   Preprocessing: PP
   ------------------
  
verification_info: {"golden_diff": "diff --git a/scanpy/external/__init__.py b/scanpy/external/__init__.py\n--- a/scanpy/external/__init__.py\n+++ b/scanpy/external/__init__.py\n@@ -19,6 +19,8 @@\n \n    import scanpy.external as sce\n \n+If you'd like to see your tool included here, please open a `pull request <https://github.com/theislab/scanpy>`_!\n+\n Preprocessing: PP\n ------------------\n", "issue": "Give `external` higher billing in the docs?\nAt the moment external modules are kind of hidden in the docs. I think it'd be worth making them more visible (at least on the same page as everything else). I've been giving this a shot, but have hit the limit of my sphinx/ rst abilities.\r\n\r\nTwo ideas for how they could be more discoverable:\r\n\r\n* They get their own heading under `api`\r\n* They're mixed in with everything else (so everything stays organized by topic), but their names are prepended with `sce` while scanpy functions are prepended with `sc`.\n", "before_files": [{"content": "from . import tl\nfrom . import pl\nfrom . import pp\n\nfrom .. import _exporting as exporting\n\nimport sys\nfrom .. import utils\nutils.annotate_doc_types(sys.modules[__name__], 'scanpy')\ndel sys, utils\n\n\n__doc__ = \"\"\"\\\nExternal API\n============\n\n\nImport Scanpy's wrappers to external tools as::\n\n   import scanpy.external as sce\n\nPreprocessing: PP\n------------------\n\nBatch effect correction\n~~~~~~~~~~~~~~~~~~~~~~~\n\n.. autosummary::\n   :toctree: .\n\n   pp.bbknn\n   pp.mnn_correct\n\nImputation\n~~~~~~~~~~\n\nNote that the fundamental limitations of imputation are still under `debate\n<https://github.com/theislab/scanpy/issues/189>`__.\n\n.. autosummary::\n   :toctree: .\n\n   pp.dca\n   pp.magic\n\n\nTools: TL\n----------\n\nEmbeddings\n~~~~~~~~~~\n\n.. autosummary::\n   :toctree: .\n\n   tl.phate\n   tl.palantir\n\nClustering and trajectory inference\n~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~\n\n.. autosummary::\n   :toctree: .\n\n   tl.phenograph\n\nGene scores, Cell cycle\n~~~~~~~~~~~~~~~~~~~~~~~\n\n.. autosummary::\n   :toctree: .\n\n   tl.sandbag\n   tl.cyclone\n\n\nPlotting: PL\n------------\n\n.. autosummary::\n   :toctree: .\n\n   pl.phate\n   tl.palantir\n\n\nExporting\n---------\n\n.. autosummary::\n   :toctree: .\n\n   exporting.spring_project\n   exporting.cellbrowser\n\"\"\"\n", "path": "scanpy/external/__init__.py"}], "after_files": [{"content": "from . import tl\nfrom . import pl\nfrom . import pp\n\nfrom .. import _exporting as exporting\n\nimport sys\nfrom .. import utils\nutils.annotate_doc_types(sys.modules[__name__], 'scanpy')\ndel sys, utils\n\n\n__doc__ = \"\"\"\\\nExternal API\n============\n\n\nImport Scanpy's wrappers to external tools as::\n\n   import scanpy.external as sce\n\nIf you'd like to see your tool included here, please open a `pull request <https://github.com/theislab/scanpy>`_!\n\nPreprocessing: PP\n------------------\n\nBatch effect correction\n~~~~~~~~~~~~~~~~~~~~~~~\n\n.. autosummary::\n   :toctree: .\n\n   pp.bbknn\n   pp.mnn_correct\n\nImputation\n~~~~~~~~~~\n\nNote that the fundamental limitations of imputation are still under `debate\n<https://github.com/theislab/scanpy/issues/189>`__.\n\n.. autosummary::\n   :toctree: .\n\n   pp.dca\n   pp.magic\n\n\nTools: TL\n----------\n\nEmbeddings\n~~~~~~~~~~\n\n.. autosummary::\n   :toctree: .\n\n   tl.phate\n   tl.palantir\n\nClustering and trajectory inference\n~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~\n\n.. autosummary::\n   :toctree: .\n\n   tl.phenograph\n\nGene scores, Cell cycle\n~~~~~~~~~~~~~~~~~~~~~~~\n\n.. autosummary::\n   :toctree: .\n\n   tl.sandbag\n   tl.cyclone\n\n\nPlotting: PL\n------------\n\n.. autosummary::\n   :toctree: .\n\n   pl.phate\n   tl.palantir\n\n\nExporting\n---------\n\n.. autosummary::\n   :toctree: .\n\n   exporting.spring_project\n   exporting.cellbrowser\n\"\"\"\n", "path": "scanpy/external/__init__.py"}]}