We are currently solving the following issue within our repository. Here is the issue text:
--- BEGIN ISSUE ---
Increase visibility of ecosystem page
As discussed at last meeting

- [ ] Document process for adding entries (note this on top of ecosystem page)
- [ ] Link from external
- [ ] Clarify goals/ differences b/w ecosystem and external

--- 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 from . import exporting
5 
6 import sys
7 from .. import _utils
8 
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 If you'd like to see your tool included here, please open a `pull request <https://github.com/theislab/scanpy>`_!
23 
24 Preprocessing: PP
25 ------------------
26 
27 Data integration
28 ~~~~~~~~~~~~~~~~
29 
30 .. autosummary::
31    :toctree: .
32 
33    pp.bbknn
34    pp.harmony_integrate
35    pp.mnn_correct
36    pp.scanorama_integrate
37 
38 
39 Sample demultiplexing, Doublet detection
40 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
41 
42 .. autosummary::
43    :toctree: .
44 
45    pp.scrublet
46    pp.scrublet_simulate_doublets
47    pl.scrublet_score_distribution
48    pp.hashsolo
49 
50 Imputation
51 ~~~~~~~~~~
52 
53 Note that the fundamental limitations of imputation are still under `debate
54 <https://github.com/theislab/scanpy/issues/189>`__.
55 
56 .. autosummary::
57    :toctree: .
58 
59    pp.dca
60    pp.magic
61 
62 
63 Tools: TL
64 ----------
65 
66 Embeddings
67 ~~~~~~~~~~
68 
69 .. autosummary::
70    :toctree: .
71 
72    tl.phate
73    tl.palantir
74    tl.trimap
75    tl.sam
76 
77 Clustering and trajectory inference
78 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
79 
80 .. autosummary::
81    :toctree: .
82 
83    tl.phenograph
84    tl.harmony_timeseries
85    tl.wishbone
86    tl.palantir
87    tl.palantir_results
88 
89 Gene scores, Cell cycle
90 ~~~~~~~~~~~~~~~~~~~~~~~
91 
92 .. autosummary::
93    :toctree: .
94 
95    tl.sandbag
96    tl.cyclone
97 
98 
99 Plotting: PL
100 ------------
101 
102 .. autosummary::
103    :toctree: .
104 
105    pl.phate
106    pl.trimap
107    pl.sam
108    pl.wishbone_marker_trajectory
109 
110 Exporting
111 ---------
112 
113 .. autosummary::
114    :toctree: .
115 
116    exporting.spring_project
117    exporting.cellbrowser
118 """
119
```
--- 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()

```

diff --git a/scanpy/external/__init__.py b/scanpy/external/__init__.py
--- a/scanpy/external/__init__.py
+++ b/scanpy/external/__init__.py
@@ -14,12 +14,15 @@
 External API
 ============
 
+.. note::
+   More tools that integrate well with scanpy and anndata can be found on the :doc:`ecosystem page <../ecosystem>`.
 
 Import Scanpy's wrappers to external tools as::
 
    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>`_!
+If you'd like to include a tool here, consider making a pull request (:doc:`instructions <../dev/external-tools>`).
+If the tool already uses `scanpy` or `anndata`, it may fit better in the :doc:`ecosystem page <../ecosystem>`.
 
 Preprocessing: PP
 ------------------

{"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@@ -14,12 +14,15 @@\n External API\n ============\n \n+.. note::\n+   More tools that integrate well with scanpy and anndata can be found on the :doc:`ecosystem page <../ecosystem>`.\n \n Import Scanpy's wrappers to external tools as::\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+If you'd like to include a tool here, consider making a pull request (:doc:`instructions <../dev/external-tools>`).\n+If the tool already uses `scanpy` or `anndata`, it may fit better in the :doc:`ecosystem page <../ecosystem>`.\n \n Preprocessing: PP\n ------------------\n", "issue": "Increase visibility of ecosystem page\nAs discussed at last meeting\r\n\r\n- [ ] Document process for adding entries (note this on top of ecosystem page)\r\n- [ ] Link from external\r\n- [ ] Clarify goals/ differences b/w ecosystem and external\n", "before_files": [{"content": "from . import tl\nfrom . import pl\nfrom . import pp\nfrom . import exporting\n\nimport sys\nfrom .. import _utils\n\n_utils.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\nData integration\n~~~~~~~~~~~~~~~~\n\n.. autosummary::\n   :toctree: .\n\n   pp.bbknn\n   pp.harmony_integrate\n   pp.mnn_correct\n   pp.scanorama_integrate\n\n\nSample demultiplexing, Doublet detection\n~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~\n\n.. autosummary::\n   :toctree: .\n\n   pp.scrublet\n   pp.scrublet_simulate_doublets\n   pl.scrublet_score_distribution\n   pp.hashsolo\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   tl.trimap\n   tl.sam\n\nClustering and trajectory inference\n~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~\n\n.. autosummary::\n   :toctree: .\n\n   tl.phenograph\n   tl.harmony_timeseries\n   tl.wishbone\n   tl.palantir\n   tl.palantir_results\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   pl.trimap\n   pl.sam\n   pl.wishbone_marker_trajectory\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\nfrom . import exporting\n\nimport sys\nfrom .. import _utils\n\n_utils.annotate_doc_types(sys.modules[__name__], 'scanpy')\ndel sys, _utils\n\n\n__doc__ = \"\"\"\\\nExternal API\n============\n\n.. note::\n   More tools that integrate well with scanpy and anndata can be found on the :doc:`ecosystem page <../ecosystem>`.\n\nImport Scanpy's wrappers to external tools as::\n\n   import scanpy.external as sce\n\nIf you'd like to include a tool here, consider making a pull request (:doc:`instructions <../dev/external-tools>`).\nIf the tool already uses `scanpy` or `anndata`, it may fit better in the :doc:`ecosystem page <../ecosystem>`.\n\nPreprocessing: PP\n------------------\n\nData integration\n~~~~~~~~~~~~~~~~\n\n.. autosummary::\n   :toctree: .\n\n   pp.bbknn\n   pp.harmony_integrate\n   pp.mnn_correct\n   pp.scanorama_integrate\n\n\nSample demultiplexing, Doublet detection\n~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~\n\n.. autosummary::\n   :toctree: .\n\n   pp.scrublet\n   pp.scrublet_simulate_doublets\n   pl.scrublet_score_distribution\n   pp.hashsolo\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   tl.trimap\n   tl.sam\n\nClustering and trajectory inference\n~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~\n\n.. autosummary::\n   :toctree: .\n\n   tl.phenograph\n   tl.harmony_timeseries\n   tl.wishbone\n   tl.palantir\n   tl.palantir_results\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   pl.trimap\n   pl.sam\n   pl.wishbone_marker_trajectory\n\nExporting\n---------\n\n.. autosummary::\n   :toctree: .\n\n   exporting.spring_project\n   exporting.cellbrowser\n\"\"\"\n", "path": "scanpy/external/__init__.py"}]}