Skip to content

Set up API Reference for version 4 #2269

@VeckoTheGecko

Description

@VeckoTheGecko

Version 3 of Parcels had an API reference that was manually currated. Now that we have a new package structure and a curated public API , I that we can have this API automatically generated - and is something to be explored (likely via the sphinx-autoapi package).

This reduces our maintenance burden meaning that as soon as something is public it gets documented in our API referece. Private functions (i.e., items with an underscore, or not listed in __all__ should not appear)

Here is a rough patch

diff --git a/docs/conf.py b/docs/conf.py
index e45d4218..67d0cb45 100755
--- a/docs/conf.py
+++ b/docs/conf.py
@@ -40,11 +40,13 @@ extensions = [
     "sphinx.ext.linkcode",
     "sphinx.ext.mathjax",
     "sphinx.ext.napoleon",
+    "autoapi.extension",
     "myst_parser",
     "nbsphinx",
     "numpydoc",
     "sphinxcontrib.mermaid",
 ]
+autoapi_dirs = ["../parcels"]
 
 # Add any paths that contain templates here, relative to this directory.
 templates_path = ["_templates"]
diff --git a/docs/reference.rst b/docs/reference.rst
deleted file mode 100644
index caecbd39..00000000
--- a/docs/reference.rst
+++ /dev/null
@@ -1,14 +0,0 @@
-Parcels API
-===================================
-
-.. toctree::
-  :maxdepth: 2
-
-  Fieldsets and Fields <reference/fields>
-  Particles and particle sets <reference/particles>
-  Particlefile <reference/particlefile>
-  Predefined Kernels <reference/predefined_kernels>
-  User-defined Kernels <reference/userdefined_kernels>
-  Particle-particle interaction <reference/interaction>
-  Gridsets and grids <reference/grids>
-  Miscellaneous <reference/misc>
diff --git a/docs/reference/fields.rst b/docs/reference/fields.rst
deleted file mode 100644
index 9a26548f..00000000
--- a/docs/reference/fields.rst
+++ /dev/null
@@ -1,16 +0,0 @@
-Fieldsets and Fields
-====================
-
-parcels.fieldset module
------------------------
-
-.. automodule:: parcels.fieldset
-    :members:
-    :show-inheritance:
-
-parcels.field module
---------------------
-
-.. automodule:: parcels.field
-    :members:
-    :show-inheritance:
diff --git a/docs/reference/grids.rst b/docs/reference/grids.rst
deleted file mode 100644
index e8d47a11..00000000
--- a/docs/reference/grids.rst
+++ /dev/null
@@ -1,9 +0,0 @@
-Gridsets and grids
-==================
-
-parcels.grid module
--------------------
-
-.. automodule:: parcels.grid
-    :members:
-    :show-inheritance:
diff --git a/docs/reference/interaction.rst b/docs/reference/interaction.rst
deleted file mode 100644
index e9cd525d..00000000
--- a/docs/reference/interaction.rst
+++ /dev/null
@@ -1,16 +0,0 @@
-Particle-field interaction
-==========================
-
-parcels.interaction module
---------------------------
-
-.. automodule:: parcels.interaction
-    :members:
-    :show-inheritance: yes
-
-parcels.interaction.neighborsearch module
------------------------------------------
-
-.. automodule:: parcels.interaction.neighborsearch
-    :members:
-    :show-inheritance: yes
diff --git a/docs/reference/misc.rst b/docs/reference/misc.rst
deleted file mode 100644
index 0e379d46..00000000
--- a/docs/reference/misc.rst
+++ /dev/null
@@ -1,36 +0,0 @@
-Miscellaneous
-=============
-
-parcels.tools.statuscodes module
---------------------------------
-
-.. automodule:: parcels.tools.statuscodes
-    :members:
-    :show-inheritance:
-
-parcels.tools.converters module
--------------------------------
-
-.. automodule:: parcels.tools.converters
-    :members:
-    :show-inheritance:
-
-parcels.tools.loggers module
-----------------------------
-
-.. automodule:: parcels.tools.loggers
-    :members:
-    :undoc-members:
-
-parcels.tools.warnings module
-
-.. automodule:: parcels.tools.warnings
-    :members:
-    :undoc-members:
-
-parcels.tools.exampledata_utils module
---------------------------------------
-
-.. automodule:: parcels.tools.exampledata_utils
-    :members:
-    :undoc-members:
diff --git a/docs/reference/particlefile.rst b/docs/reference/particlefile.rst
deleted file mode 100644
index ef0104fb..00000000
--- a/docs/reference/particlefile.rst
+++ /dev/null
@@ -1,9 +0,0 @@
-Particlefile
-============
-
-parcels.particlefile module
---------------------------------------------
-
-.. automodule:: parcels.particlefile
-    :members:
-    :show-inheritance: yes
diff --git a/docs/reference/particles.rst b/docs/reference/particles.rst
deleted file mode 100644
index c5dd8aa6..00000000
--- a/docs/reference/particles.rst
+++ /dev/null
@@ -1,16 +0,0 @@
-Particles and particle sets
-===========================
-
-parcels.particle module
------------------------
-
-.. automodule:: parcels.particle
-    :members:
-    :show-inheritance:
-
-parcels.particleset module
---------------------------
-
-.. automodule:: parcels.particleset
-    :members:
-    :show-inheritance:
diff --git a/docs/reference/predefined_kernels.rst b/docs/reference/predefined_kernels.rst
deleted file mode 100644
index c168a435..00000000
--- a/docs/reference/predefined_kernels.rst
+++ /dev/null
@@ -1,33 +0,0 @@
-Predefined Kernels
-===================
-
-parcels.application_kernels.advection module
---------------------------------------------
-
-.. automodule:: parcels.application_kernels.advection
-    :members:
-    :show-inheritance:
-
-parcels.application_kernels.advectiondiffusion module
------------------------------------------------------
-
-
-.. automodule:: parcels.application_kernels.advectiondiffusion
-    :members:
-    :show-inheritance:
-
-parcels.application_kernels.EOSseawaterproperties module
---------------------------------------------------------
-
-
-.. automodule:: parcels.application_kernels.EOSseawaterproperties
-    :members:
-    :show-inheritance:
-
-parcels.application_kernels.TEOSseawaterdensity module
-------------------------------------------------------
-
-
-.. automodule:: parcels.application_kernels.TEOSseawaterdensity
-    :members:
-    :show-inheritance:
diff --git a/docs/reference/userdefined_kernels.rst b/docs/reference/userdefined_kernels.rst
deleted file mode 100644
index 78f39d77..00000000
--- a/docs/reference/userdefined_kernels.rst
+++ /dev/null
@@ -1,9 +0,0 @@
-User-defined Kernels
-====================
-
-parcels.kernel module
---------------------------------
-
-.. automodule:: parcels.kernel
-    :members:
-    :undoc-members:
diff --git a/pixi.toml b/pixi.toml
index 58f5a6a5..86afd4ec 100644
--- a/pixi.toml
+++ b/pixi.toml
@@ -70,6 +70,7 @@ ipython = "*"
 sphinx = "*"
 pandoc = "*"
 pydata-sphinx-theme = "*"
+sphinx-autoapi = "*"
 sphinx-autobuild = "*"
 myst-parser = "*"
 sphinxcontrib-mermaid = "*"

Metadata

Metadata

Assignees

No one assigned

    Type

    No type

    Projects

    Status

    Backlog

    Status

    Backlog

    Milestone

    No milestone

    Relationships

    None yet

    Development

    No branches or pull requests

    Issue actions