diff --git a/.readthedocs.yaml b/.readthedocs.yaml index 071686d373..6d5be7f948 100644 --- a/.readthedocs.yaml +++ b/.readthedocs.yaml @@ -9,24 +9,7 @@ version: 2 build: os: ubuntu-22.04 tools: - # updated and deployed from Aug 1, 2023 - python: "mambaforge-22.9" - jobs: - pre_create_environment: - # update mamba just in case - - mamba update --yes --quiet --name=base mamba 'zstd=1.5.2' - - mamba --version - - mamba list --name=base - post_create_environment: - - conda run -n ${CONDA_DEFAULT_ENV} mamba list - # use conda run executable wrapper to have all env variables - - conda run -n ${CONDA_DEFAULT_ENV} mamba --version - - conda run -n ${CONDA_DEFAULT_ENV} pip install . --no-deps - -# Declare the requirements required to build your docs -conda: - environment: - environment.yml + python: "3.12" # Build documentation in the doc directory with Sphinx sphinx: @@ -36,3 +19,8 @@ sphinx: # If using Sphinx, optionally build your docs in additional formats such as PDF formats: - pdf + +# Install auotoapi requirement +python: + install: + - requirements: doc/sphinx/source/requirements.txt diff --git a/doc/sphinx/source/api/esmvaltool.diag_scripts.emergent_constraints.rst b/doc/sphinx/source/api/esmvaltool.diag_scripts.emergent_constraints.rst deleted file mode 100644 index 24c5031788..0000000000 --- a/doc/sphinx/source/api/esmvaltool.diag_scripts.emergent_constraints.rst +++ /dev/null @@ -1,34 +0,0 @@ -.. _api.esmvaltool.diag_scripts.emergent_constraints: - -Emergent constraints diagnostics -================================ - -This module provides various tools to evaluate emergent constraints for -arbitrary input variables. - - -Examples --------- - -* :ref:`recipe_ecs_scatter` -* :ref:`recipes_cox18nature` -* :ref:`recipes_schlund20esd` - - -Diagnostic scripts ------------------- -.. toctree:: - :maxdepth: 1 - - esmvaltool.diag_scripts.emergent_constraints/cox18nature - esmvaltool.diag_scripts.emergent_constraints/ecs_scatter - esmvaltool.diag_scripts.emergent_constraints/multiple_constraints - esmvaltool.diag_scripts.emergent_constraints/single_constraint - - -Auxiliary scripts ------------------ -.. toctree:: - :maxdepth: 1 - - esmvaltool.diag_scripts.emergent_constraints/init diff --git a/doc/sphinx/source/api/esmvaltool.diag_scripts.emergent_constraints/cox18nature.rst b/doc/sphinx/source/api/esmvaltool.diag_scripts.emergent_constraints/cox18nature.rst deleted file mode 100644 index d513f8d310..0000000000 --- a/doc/sphinx/source/api/esmvaltool.diag_scripts.emergent_constraints/cox18nature.rst +++ /dev/null @@ -1,9 +0,0 @@ -.. _api.esmvaltool.diag_scripts.emergent_constraints.cox18nature: - -Emergent constraint on ECS from global temperature variability -============================================================== - -.. automodule:: esmvaltool.diag_scripts.emergent_constraints.cox18nature - :no-members: - :no-inherited-members: - :no-show-inheritance: diff --git a/doc/sphinx/source/api/esmvaltool.diag_scripts.emergent_constraints/ecs_scatter.rst b/doc/sphinx/source/api/esmvaltool.diag_scripts.emergent_constraints/ecs_scatter.rst deleted file mode 100644 index da7e5dcf9c..0000000000 --- a/doc/sphinx/source/api/esmvaltool.diag_scripts.emergent_constraints/ecs_scatter.rst +++ /dev/null @@ -1,9 +0,0 @@ -.. _api.esmvaltool.diag_scripts.emergent_constraints.ecs_scatter: - -Calculation of emergent constraints on ECS -========================================== - -.. automodule:: esmvaltool.diag_scripts.emergent_constraints.ecs_scatter - :no-members: - :no-inherited-members: - :no-show-inheritance: diff --git a/doc/sphinx/source/api/esmvaltool.diag_scripts.emergent_constraints/init.rst b/doc/sphinx/source/api/esmvaltool.diag_scripts.emergent_constraints/init.rst deleted file mode 100644 index 7e5b86e816..0000000000 --- a/doc/sphinx/source/api/esmvaltool.diag_scripts.emergent_constraints/init.rst +++ /dev/null @@ -1,6 +0,0 @@ -.. _api.esmvaltool.diag_scripts.emergent_constraints.init: - -Auxiliary functions for emergent constraints scripts -==================================================== - -.. automodule:: esmvaltool.diag_scripts.emergent_constraints diff --git a/doc/sphinx/source/api/esmvaltool.diag_scripts.emergent_constraints/multiple_constraints.rst b/doc/sphinx/source/api/esmvaltool.diag_scripts.emergent_constraints/multiple_constraints.rst deleted file mode 100644 index e007d4b0df..0000000000 --- a/doc/sphinx/source/api/esmvaltool.diag_scripts.emergent_constraints/multiple_constraints.rst +++ /dev/null @@ -1,9 +0,0 @@ -.. _api.esmvaltool.diag_scripts.emergent_constraints.multiple_constraints: - -Evaluate multiple emergent constraints simultaneously -===================================================== - -.. automodule:: esmvaltool.diag_scripts.emergent_constraints.multiple_constraints - :no-members: - :no-inherited-members: - :no-show-inheritance: diff --git a/doc/sphinx/source/api/esmvaltool.diag_scripts.emergent_constraints/single_constraint.rst b/doc/sphinx/source/api/esmvaltool.diag_scripts.emergent_constraints/single_constraint.rst deleted file mode 100644 index 9fd4741181..0000000000 --- a/doc/sphinx/source/api/esmvaltool.diag_scripts.emergent_constraints/single_constraint.rst +++ /dev/null @@ -1,9 +0,0 @@ -.. _api.esmvaltool.diag_scripts.emergent_constraints.single_constraint: - -Evaluate single emergent constraint -=================================== - -.. automodule:: esmvaltool.diag_scripts.emergent_constraints.single_constraint - :no-members: - :no-inherited-members: - :no-show-inheritance: diff --git a/doc/sphinx/source/api/esmvaltool.diag_scripts.mlr.rst b/doc/sphinx/source/api/esmvaltool.diag_scripts.mlr.rst deleted file mode 100644 index 65959a659f..0000000000 --- a/doc/sphinx/source/api/esmvaltool.diag_scripts.mlr.rst +++ /dev/null @@ -1,63 +0,0 @@ -.. _api.esmvaltool.diag_scripts.mlr: - -Machine Learning Regression (MLR) diagnostics -============================================= - -This module provides various tools to create and evaluate MLR models for -arbitrary input variables. - - -Examples --------- - -* :ref:`recipes_schlund20jgr`: Use Gradient Boosted Regression Tree (GBRT) - algorithm to constrain projected Gross Primary Production (GPP) in RCP 8.5 - scenario using observations of process-based predictors. - - -Diagnostic scripts ------------------- -.. toctree:: - :maxdepth: 1 - - esmvaltool.diag_scripts.mlr/evaluate_residuals - esmvaltool.diag_scripts.mlr/main - esmvaltool.diag_scripts.mlr/mmm - esmvaltool.diag_scripts.mlr/plot - esmvaltool.diag_scripts.mlr/postprocess - esmvaltool.diag_scripts.mlr/preprocess - esmvaltool.diag_scripts.mlr/rescale_with_emergent_constraint - - -Auxiliary scripts ------------------ -.. toctree:: - :maxdepth: 1 - - esmvaltool.diag_scripts.mlr/init - esmvaltool.diag_scripts.mlr/custom_sklearn - esmvaltool.diag_scripts.mlr/models - esmvaltool.diag_scripts.mlr/models.gbr_base - esmvaltool.diag_scripts.mlr/models.linear_base - - -.. _availableMLRModels: - -Available MLR models --------------------- -.. toctree:: - :maxdepth: 1 - - esmvaltool.diag_scripts.mlr/models.gbr_sklearn - esmvaltool.diag_scripts.mlr/models.gbr_xgboost - esmvaltool.diag_scripts.mlr/models.gpr_sklearn - esmvaltool.diag_scripts.mlr/models.huber - esmvaltool.diag_scripts.mlr/models.krr - esmvaltool.diag_scripts.mlr/models.lasso - esmvaltool.diag_scripts.mlr/models.lasso_cv - esmvaltool.diag_scripts.mlr/models.lasso_lars_cv - esmvaltool.diag_scripts.mlr/models.linear - esmvaltool.diag_scripts.mlr/models.rfr - esmvaltool.diag_scripts.mlr/models.ridge - esmvaltool.diag_scripts.mlr/models.ridge_cv - esmvaltool.diag_scripts.mlr/models.svr diff --git a/doc/sphinx/source/api/esmvaltool.diag_scripts.mlr/custom_sklearn.rst b/doc/sphinx/source/api/esmvaltool.diag_scripts.mlr/custom_sklearn.rst deleted file mode 100644 index 48078b9a39..0000000000 --- a/doc/sphinx/source/api/esmvaltool.diag_scripts.mlr/custom_sklearn.rst +++ /dev/null @@ -1,10 +0,0 @@ -.. _api.esmvaltool.diag_scripts.mlr.custom_sklearn: - -Custom extensions of sklearn functionalities -============================================ - -.. automodule:: esmvaltool.diag_scripts.mlr.custom_sklearn - :no-autosummary: -.. - enabling autosummary with autodocsumm 0.2.8 gives a warning message: - WARNING: autosummary: failed to import AdvancedPipeline.steps. diff --git a/doc/sphinx/source/api/esmvaltool.diag_scripts.mlr/evaluate_residuals.rst b/doc/sphinx/source/api/esmvaltool.diag_scripts.mlr/evaluate_residuals.rst deleted file mode 100644 index 72327819ff..0000000000 --- a/doc/sphinx/source/api/esmvaltool.diag_scripts.mlr/evaluate_residuals.rst +++ /dev/null @@ -1,9 +0,0 @@ -.. _api.esmvaltool.diag_scripts.mlr.evaluate_residuals: - -Evaluate residuals -================== - -.. automodule:: esmvaltool.diag_scripts.mlr.evaluate_residuals - :no-members: - :no-inherited-members: - :no-show-inheritance: diff --git a/doc/sphinx/source/api/esmvaltool.diag_scripts.mlr/init.rst b/doc/sphinx/source/api/esmvaltool.diag_scripts.mlr/init.rst deleted file mode 100644 index 681fb512e2..0000000000 --- a/doc/sphinx/source/api/esmvaltool.diag_scripts.mlr/init.rst +++ /dev/null @@ -1,6 +0,0 @@ -.. _api.esmvaltool.diag_scripts.mlr.init: - -Auxiliary functions for MLR scripts -=================================== - -.. automodule:: esmvaltool.diag_scripts.mlr diff --git a/doc/sphinx/source/api/esmvaltool.diag_scripts.mlr/main.rst b/doc/sphinx/source/api/esmvaltool.diag_scripts.mlr/main.rst deleted file mode 100644 index 5dc174794d..0000000000 --- a/doc/sphinx/source/api/esmvaltool.diag_scripts.mlr/main.rst +++ /dev/null @@ -1,9 +0,0 @@ -.. _api.esmvaltool.diag_scripts.mlr.main: - -MLR main diagnostic -=================== - -.. automodule:: esmvaltool.diag_scripts.mlr.main - :no-members: - :no-inherited-members: - :no-show-inheritance: diff --git a/doc/sphinx/source/api/esmvaltool.diag_scripts.mlr/mmm.rst b/doc/sphinx/source/api/esmvaltool.diag_scripts.mlr/mmm.rst deleted file mode 100644 index 466171a70e..0000000000 --- a/doc/sphinx/source/api/esmvaltool.diag_scripts.mlr/mmm.rst +++ /dev/null @@ -1,9 +0,0 @@ -.. _api.esmvaltool.diag_scripts.mlr.mmm: - -Multi-model means (MMM) -======================= - -.. automodule:: esmvaltool.diag_scripts.mlr.mmm - :no-members: - :no-inherited-members: - :no-show-inheritance: diff --git a/doc/sphinx/source/api/esmvaltool.diag_scripts.mlr/models.gbr_base.rst b/doc/sphinx/source/api/esmvaltool.diag_scripts.mlr/models.gbr_base.rst deleted file mode 100644 index 62d5cd038f..0000000000 --- a/doc/sphinx/source/api/esmvaltool.diag_scripts.mlr/models.gbr_base.rst +++ /dev/null @@ -1,6 +0,0 @@ -.. _api.esmvaltool.diag_scripts.mlr.models.gbr_base: - -Base class for Gradient Boosted Regression models -================================================= - -.. automodule:: esmvaltool.diag_scripts.mlr.models.gbr_base diff --git a/doc/sphinx/source/api/esmvaltool.diag_scripts.mlr/models.gbr_sklearn.rst b/doc/sphinx/source/api/esmvaltool.diag_scripts.mlr/models.gbr_sklearn.rst deleted file mode 100644 index 6a2be70b12..0000000000 --- a/doc/sphinx/source/api/esmvaltool.diag_scripts.mlr/models.gbr_sklearn.rst +++ /dev/null @@ -1,6 +0,0 @@ -.. _api.esmvaltool.diag_scripts.mlr.models.gbr_sklearn: - -Gradient Boosted Regression Trees (sklearn implementation) -========================================================== - -.. automodule:: esmvaltool.diag_scripts.mlr.models.gbr_sklearn diff --git a/doc/sphinx/source/api/esmvaltool.diag_scripts.mlr/models.gbr_xgboost.rst b/doc/sphinx/source/api/esmvaltool.diag_scripts.mlr/models.gbr_xgboost.rst deleted file mode 100644 index 0e1abef836..0000000000 --- a/doc/sphinx/source/api/esmvaltool.diag_scripts.mlr/models.gbr_xgboost.rst +++ /dev/null @@ -1,7 +0,0 @@ -.. _api.esmvaltool.diag_scripts.mlr.models.gbr_xgboost: - - -Gradient Boosted Regression Trees (xgboost implementation) -========================================================== - -.. automodule:: esmvaltool.diag_scripts.mlr.models.gbr_xgboost diff --git a/doc/sphinx/source/api/esmvaltool.diag_scripts.mlr/models.gpr_sklearn.rst b/doc/sphinx/source/api/esmvaltool.diag_scripts.mlr/models.gpr_sklearn.rst deleted file mode 100644 index 6d5253f031..0000000000 --- a/doc/sphinx/source/api/esmvaltool.diag_scripts.mlr/models.gpr_sklearn.rst +++ /dev/null @@ -1,6 +0,0 @@ -.. _api.esmvaltool.diag_scripts.mlr.models.gpr_sklearn: - -Gaussian Process Regression (sklearn implementation) -==================================================== - -.. automodule:: esmvaltool.diag_scripts.mlr.models.gpr_sklearn diff --git a/doc/sphinx/source/api/esmvaltool.diag_scripts.mlr/models.huber.rst b/doc/sphinx/source/api/esmvaltool.diag_scripts.mlr/models.huber.rst deleted file mode 100644 index 6617dc31fa..0000000000 --- a/doc/sphinx/source/api/esmvaltool.diag_scripts.mlr/models.huber.rst +++ /dev/null @@ -1,6 +0,0 @@ -.. _api.esmvaltool.diag_scripts.mlr.models.huber: - -Huber Regression -================ - -.. automodule:: esmvaltool.diag_scripts.mlr.models.huber diff --git a/doc/sphinx/source/api/esmvaltool.diag_scripts.mlr/models.krr.rst b/doc/sphinx/source/api/esmvaltool.diag_scripts.mlr/models.krr.rst deleted file mode 100644 index 2ef3437e05..0000000000 --- a/doc/sphinx/source/api/esmvaltool.diag_scripts.mlr/models.krr.rst +++ /dev/null @@ -1,6 +0,0 @@ -.. _api.esmvaltool.diag_scripts.mlr.models.krr: - -Kernel Ridge Regression -======================= - -.. automodule:: esmvaltool.diag_scripts.mlr.models.krr diff --git a/doc/sphinx/source/api/esmvaltool.diag_scripts.mlr/models.lasso.rst b/doc/sphinx/source/api/esmvaltool.diag_scripts.mlr/models.lasso.rst deleted file mode 100644 index 594e1fb6f8..0000000000 --- a/doc/sphinx/source/api/esmvaltool.diag_scripts.mlr/models.lasso.rst +++ /dev/null @@ -1,6 +0,0 @@ -.. _api.esmvaltool.diag_scripts.mlr.models.lasso: - -LASSO Regression -================ - -.. automodule:: esmvaltool.diag_scripts.mlr.models.lasso diff --git a/doc/sphinx/source/api/esmvaltool.diag_scripts.mlr/models.lasso_cv.rst b/doc/sphinx/source/api/esmvaltool.diag_scripts.mlr/models.lasso_cv.rst deleted file mode 100644 index 5613bcae9b..0000000000 --- a/doc/sphinx/source/api/esmvaltool.diag_scripts.mlr/models.lasso_cv.rst +++ /dev/null @@ -1,6 +0,0 @@ -.. _api.esmvaltool.diag_scripts.mlr.models.lasso_cv: - -LASSO Regression with built-in CV -================================= - -.. automodule:: esmvaltool.diag_scripts.mlr.models.lasso_cv diff --git a/doc/sphinx/source/api/esmvaltool.diag_scripts.mlr/models.lasso_lars_cv.rst b/doc/sphinx/source/api/esmvaltool.diag_scripts.mlr/models.lasso_lars_cv.rst deleted file mode 100644 index 495c130c6c..0000000000 --- a/doc/sphinx/source/api/esmvaltool.diag_scripts.mlr/models.lasso_lars_cv.rst +++ /dev/null @@ -1,6 +0,0 @@ -.. _api.esmvaltool.diag_scripts.mlr.models.lasso_lars_cv: - -LASSO Regression (using Least-angle Regression algorithm) with built-in CV -========================================================================== - -.. automodule:: esmvaltool.diag_scripts.mlr.models.lasso_lars_cv diff --git a/doc/sphinx/source/api/esmvaltool.diag_scripts.mlr/models.linear.rst b/doc/sphinx/source/api/esmvaltool.diag_scripts.mlr/models.linear.rst deleted file mode 100644 index 16afeeb7ae..0000000000 --- a/doc/sphinx/source/api/esmvaltool.diag_scripts.mlr/models.linear.rst +++ /dev/null @@ -1,6 +0,0 @@ -.. _api.esmvaltool.diag_scripts.mlr.models.linear: - -Linear Regression -================= - -.. automodule:: esmvaltool.diag_scripts.mlr.models.linear diff --git a/doc/sphinx/source/api/esmvaltool.diag_scripts.mlr/models.linear_base.rst b/doc/sphinx/source/api/esmvaltool.diag_scripts.mlr/models.linear_base.rst deleted file mode 100644 index a1b3513b9a..0000000000 --- a/doc/sphinx/source/api/esmvaltool.diag_scripts.mlr/models.linear_base.rst +++ /dev/null @@ -1,6 +0,0 @@ -.. _api.esmvaltool.diag_scripts.mlr.models.linear_base: - -Base class for Linear models -============================ - -.. automodule:: esmvaltool.diag_scripts.mlr.models.linear_base diff --git a/doc/sphinx/source/api/esmvaltool.diag_scripts.mlr/models.rfr.rst b/doc/sphinx/source/api/esmvaltool.diag_scripts.mlr/models.rfr.rst deleted file mode 100644 index 4723ec4ffd..0000000000 --- a/doc/sphinx/source/api/esmvaltool.diag_scripts.mlr/models.rfr.rst +++ /dev/null @@ -1,6 +0,0 @@ -.. _api.esmvaltool.diag_scripts.mlr.models.rfr: - -Random Forest Regression -======================== - -.. automodule:: esmvaltool.diag_scripts.mlr.models.rfr diff --git a/doc/sphinx/source/api/esmvaltool.diag_scripts.mlr/models.ridge.rst b/doc/sphinx/source/api/esmvaltool.diag_scripts.mlr/models.ridge.rst deleted file mode 100644 index c9f2ca4baf..0000000000 --- a/doc/sphinx/source/api/esmvaltool.diag_scripts.mlr/models.ridge.rst +++ /dev/null @@ -1,6 +0,0 @@ -.. _api.esmvaltool.diag_scripts.mlr.models.ridge: - -Ridge Regression -================ - -.. automodule:: esmvaltool.diag_scripts.mlr.models.ridge diff --git a/doc/sphinx/source/api/esmvaltool.diag_scripts.mlr/models.ridge_cv.rst b/doc/sphinx/source/api/esmvaltool.diag_scripts.mlr/models.ridge_cv.rst deleted file mode 100644 index 9a5ea0f378..0000000000 --- a/doc/sphinx/source/api/esmvaltool.diag_scripts.mlr/models.ridge_cv.rst +++ /dev/null @@ -1,6 +0,0 @@ -.. _api.esmvaltool.diag_scripts.mlr.models.ridge_cv: - -Ridge Regression with built-in CV -================================= - -.. automodule:: esmvaltool.diag_scripts.mlr.models.ridge_cv diff --git a/doc/sphinx/source/api/esmvaltool.diag_scripts.mlr/models.rst b/doc/sphinx/source/api/esmvaltool.diag_scripts.mlr/models.rst deleted file mode 100644 index f3c0ca6969..0000000000 --- a/doc/sphinx/source/api/esmvaltool.diag_scripts.mlr/models.rst +++ /dev/null @@ -1,6 +0,0 @@ -.. _api.esmvaltool.diag_scripts.mlr.models: - -MLRModel base class -=================== - -.. automodule:: esmvaltool.diag_scripts.mlr.models diff --git a/doc/sphinx/source/api/esmvaltool.diag_scripts.mlr/models.svr.rst b/doc/sphinx/source/api/esmvaltool.diag_scripts.mlr/models.svr.rst deleted file mode 100644 index 5486707e59..0000000000 --- a/doc/sphinx/source/api/esmvaltool.diag_scripts.mlr/models.svr.rst +++ /dev/null @@ -1,6 +0,0 @@ -.. _api.esmvaltool.diag_scripts.mlr.models.svr: - -Support Vector Regression -========================= - -.. automodule:: esmvaltool.diag_scripts.mlr.models.svr diff --git a/doc/sphinx/source/api/esmvaltool.diag_scripts.mlr/plot.rst b/doc/sphinx/source/api/esmvaltool.diag_scripts.mlr/plot.rst deleted file mode 100644 index c7f4b52338..0000000000 --- a/doc/sphinx/source/api/esmvaltool.diag_scripts.mlr/plot.rst +++ /dev/null @@ -1,9 +0,0 @@ -.. _api.esmvaltool.diag_scripts.mlr.plot: - -Plotting functionalities -======================== - -.. automodule:: esmvaltool.diag_scripts.mlr.plot - :no-members: - :no-inherited-members: - :no-show-inheritance: diff --git a/doc/sphinx/source/api/esmvaltool.diag_scripts.mlr/postprocess.rst b/doc/sphinx/source/api/esmvaltool.diag_scripts.mlr/postprocess.rst deleted file mode 100644 index af23643706..0000000000 --- a/doc/sphinx/source/api/esmvaltool.diag_scripts.mlr/postprocess.rst +++ /dev/null @@ -1,9 +0,0 @@ -.. _api.esmvaltool.diag_scripts.mlr.postprocess: - -Postprocessing functionalities -============================== - -.. automodule:: esmvaltool.diag_scripts.mlr.postprocess - :no-members: - :no-inherited-members: - :no-show-inheritance: diff --git a/doc/sphinx/source/api/esmvaltool.diag_scripts.mlr/preprocess.rst b/doc/sphinx/source/api/esmvaltool.diag_scripts.mlr/preprocess.rst deleted file mode 100644 index 5990d2cd6c..0000000000 --- a/doc/sphinx/source/api/esmvaltool.diag_scripts.mlr/preprocess.rst +++ /dev/null @@ -1,9 +0,0 @@ -.. _api.esmvaltool.diag_scripts.mlr.preprocess: - -Preprocessing functionalities -============================= - -.. automodule:: esmvaltool.diag_scripts.mlr.preprocess - :no-members: - :no-inherited-members: - :no-show-inheritance: diff --git a/doc/sphinx/source/api/esmvaltool.diag_scripts.mlr/rescale_with_emergent_constraint.rst b/doc/sphinx/source/api/esmvaltool.diag_scripts.mlr/rescale_with_emergent_constraint.rst deleted file mode 100644 index f8e933825e..0000000000 --- a/doc/sphinx/source/api/esmvaltool.diag_scripts.mlr/rescale_with_emergent_constraint.rst +++ /dev/null @@ -1,9 +0,0 @@ -.. _api.esmvaltool.diag_scripts.mlr.rescale_with_emergent_constraint: - -Rescale data with emergent constraints -======================================= - -.. automodule:: esmvaltool.diag_scripts.mlr.rescale_with_emergent_constraint - :no-members: - :no-inherited-members: - :no-show-inheritance: diff --git a/doc/sphinx/source/api/esmvaltool.diag_scripts.monitor.rst b/doc/sphinx/source/api/esmvaltool.diag_scripts.monitor.rst deleted file mode 100644 index 3b1e3e6548..0000000000 --- a/doc/sphinx/source/api/esmvaltool.diag_scripts.monitor.rst +++ /dev/null @@ -1,32 +0,0 @@ -.. _api.esmvaltool.diag_scripts.monitor: - -Monitor Diagnostic -================== - -This module provides various tools to monitor climate model simulations. -It can be used to plot arbitrary variables from arbitrary datasets. - - -Examples --------- - -* :ref:`recipe_monitor` -* :ref:`recipe_model_evaluation` - - -Diagnostic scripts ------------------- -.. toctree:: - :maxdepth: 1 - - esmvaltool.diag_scripts.monitor/monitor - esmvaltool.diag_scripts.monitor/compute_eofs - esmvaltool.diag_scripts.monitor/multi_datasets - - -Base class for monitoring diagnostics -------------------------------------- -.. toctree:: - :maxdepth: 1 - - esmvaltool.diag_scripts.monitor/monitor_base diff --git a/doc/sphinx/source/api/esmvaltool.diag_scripts.monitor/compute_eofs.rst b/doc/sphinx/source/api/esmvaltool.diag_scripts.monitor/compute_eofs.rst deleted file mode 100644 index 0997ac1e7a..0000000000 --- a/doc/sphinx/source/api/esmvaltool.diag_scripts.monitor/compute_eofs.rst +++ /dev/null @@ -1,9 +0,0 @@ -.. _api.esmvaltool.diag_scripts.monitor.compute_eofs: - -Monitoring diagnostic to plot EOF maps and associated PC timeseries -=================================================================== - -.. automodule:: esmvaltool.diag_scripts.monitor.compute_eofs - :no-members: - :no-inherited-members: - :no-show-inheritance: diff --git a/doc/sphinx/source/api/esmvaltool.diag_scripts.monitor/monitor.rst b/doc/sphinx/source/api/esmvaltool.diag_scripts.monitor/monitor.rst deleted file mode 100644 index 25d4a7da9b..0000000000 --- a/doc/sphinx/source/api/esmvaltool.diag_scripts.monitor/monitor.rst +++ /dev/null @@ -1,9 +0,0 @@ -.. _api.esmvaltool.diag_scripts.monitor.monitor: - -Monitoring diagnostic to plot arbitrary preprocessor output -=========================================================== - -.. automodule:: esmvaltool.diag_scripts.monitor.monitor - :no-members: - :no-inherited-members: - :no-show-inheritance: diff --git a/doc/sphinx/source/api/esmvaltool.diag_scripts.monitor/monitor_base.rst b/doc/sphinx/source/api/esmvaltool.diag_scripts.monitor/monitor_base.rst deleted file mode 100644 index 0127a94963..0000000000 --- a/doc/sphinx/source/api/esmvaltool.diag_scripts.monitor/monitor_base.rst +++ /dev/null @@ -1,6 +0,0 @@ -.. _api.esmvaltool.diag_scripts.monitor.monitor_base: - -Base class for monitoring diagnostics -===================================== - -.. automodule:: esmvaltool.diag_scripts.monitor.monitor_base diff --git a/doc/sphinx/source/api/esmvaltool.diag_scripts.monitor/multi_datasets.rst b/doc/sphinx/source/api/esmvaltool.diag_scripts.monitor/multi_datasets.rst deleted file mode 100644 index dab4f07989..0000000000 --- a/doc/sphinx/source/api/esmvaltool.diag_scripts.monitor/multi_datasets.rst +++ /dev/null @@ -1,9 +0,0 @@ -.. _api.esmvaltool.diag_scripts.monitor.multi_datasets: - -Monitoring diagnostic to show multiple datasets in one plot (incl. biases) -========================================================================== - -.. automodule:: esmvaltool.diag_scripts.monitor.multi_datasets - :no-members: - :no-inherited-members: - :no-show-inheritance: diff --git a/doc/sphinx/source/api/esmvaltool.diag_scripts.ocean.rst b/doc/sphinx/source/api/esmvaltool.diag_scripts.ocean.rst deleted file mode 100644 index 2c7d562239..0000000000 --- a/doc/sphinx/source/api/esmvaltool.diag_scripts.ocean.rst +++ /dev/null @@ -1,21 +0,0 @@ -Ocean diagnostics toolkit -============================= - -Welcome to the API documentation for the ocean diagnostics tool kit. -This toolkit is built to assist in the evaluation of models of the ocean. - -This toolkit is part of ESMValTool v2. - -Author: Lee de Mora (PML) - ledm@pml.ac.uk - -.. toctree:: - -.. automodule:: esmvaltool.diag_scripts.ocean.diagnostic_maps -.. automodule:: esmvaltool.diag_scripts.ocean.diagnostic_maps_quad -.. automodule:: esmvaltool.diag_scripts.ocean.diagnostic_model_vs_obs -.. automodule:: esmvaltool.diag_scripts.ocean.diagnostic_profiles -.. automodule:: esmvaltool.diag_scripts.ocean.diagnostic_timeseries -.. automodule:: esmvaltool.diag_scripts.ocean.diagnostic_transects -.. automodule:: esmvaltool.diag_scripts.ocean.diagnostic_seaice -.. automodule:: esmvaltool.diag_scripts.ocean.diagnostic_tools diff --git a/doc/sphinx/source/api/esmvaltool.diag_scripts.psyplot_diag.rst b/doc/sphinx/source/api/esmvaltool.diag_scripts.psyplot_diag.rst deleted file mode 100644 index 2dc463cc9f..0000000000 --- a/doc/sphinx/source/api/esmvaltool.diag_scripts.psyplot_diag.rst +++ /dev/null @@ -1,9 +0,0 @@ -.. _api.esmvaltool.diag_scripts.psyplot_diag: - -Psyplot Diagnostic -================== - -.. automodule:: esmvaltool.diag_scripts.psyplot_diag - :no-members: - :no-inherited-members: - :no-show-inheritance: diff --git a/doc/sphinx/source/api/esmvaltool.diag_scripts.seaborn_diag.rst b/doc/sphinx/source/api/esmvaltool.diag_scripts.seaborn_diag.rst deleted file mode 100644 index d250d0aaaf..0000000000 --- a/doc/sphinx/source/api/esmvaltool.diag_scripts.seaborn_diag.rst +++ /dev/null @@ -1,9 +0,0 @@ -.. _api.esmvaltool.diag_scripts.seaborn_diag: - -Seaborn Diagnostic -================== - -.. automodule:: esmvaltool.diag_scripts.seaborn_diag - :no-members: - :no-inherited-members: - :no-show-inheritance: diff --git a/doc/sphinx/source/api/esmvaltool.diag_scripts.shared.rst b/doc/sphinx/source/api/esmvaltool.diag_scripts.shared.rst deleted file mode 100644 index fcf50cf17c..0000000000 --- a/doc/sphinx/source/api/esmvaltool.diag_scripts.shared.rst +++ /dev/null @@ -1,18 +0,0 @@ -.. _api_shared: - -Shared diagnostic script code -============================= - -.. automodule:: esmvaltool.diag_scripts.shared - - -Iris helper functions ---------------------- - -.. automodule:: esmvaltool.diag_scripts.shared.iris_helpers - - -Plotting --------- - -.. automodule:: esmvaltool.diag_scripts.shared.plot diff --git a/doc/sphinx/source/api/esmvaltool.rst b/doc/sphinx/source/api/esmvaltool.rst deleted file mode 100644 index b080b81ac8..0000000000 --- a/doc/sphinx/source/api/esmvaltool.rst +++ /dev/null @@ -1,31 +0,0 @@ -.. _api: - -ESMValTool Code API Documentation -================================= - -ESMValTool is mostly used as a command line tool. However, it is also possible -to use (parts of) ESMValTool as a library. This section documents the public -API of ESMValTool. - - -Shared Diagnostic Code ----------------------- - -.. toctree:: - :maxdepth: 1 - - esmvaltool.diag_scripts.shared - - -Diagnostic Scripts ------------------- - -.. toctree:: - :maxdepth: 1 - - esmvaltool.diag_scripts.emergent_constraints - esmvaltool.diag_scripts.mlr - esmvaltool.diag_scripts.monitor - esmvaltool.diag_scripts.ocean - esmvaltool.diag_scripts.psyplot_diag - esmvaltool.diag_scripts.seaborn_diag diff --git a/doc/sphinx/source/conf.py b/doc/sphinx/source/conf.py index 1af560b576..4027c5362d 100644 --- a/doc/sphinx/source/conf.py +++ b/doc/sphinx/source/conf.py @@ -15,15 +15,10 @@ import os import sys from datetime import datetime -from pathlib import Path -# If extensions (or modules to document with autodoc) are in another directory, -# add these directories to sys.path here. If the directory is relative to the -# documentation root, use os.path.abspath to make it absolute, like shown here. -root = Path(__file__).absolute().parent.parent.parent.parent -sys.path.insert(0, str(root)) -from esmvaltool import __version__ +# from esmvaltool import __version__ +__version__ = "2.10.0" # -- RTD configuration ------------------------------------------------ @@ -61,7 +56,7 @@ # extensions coming with Sphinx (named 'sphinx.ext.*') or your custom # ones. extensions = [ - 'sphinx.ext.autodoc', + 'autoapi.extension', 'sphinx.ext.doctest', 'sphinx.ext.extlinks', 'sphinx.ext.intersphinx', @@ -71,16 +66,61 @@ 'sphinx.ext.ifconfig', 'sphinx.ext.viewcode', 'sphinx.ext.napoleon', - 'autodocsumm', ] -autodoc_default_options = { - 'members': True, - 'undoc-members': True, - 'inherited-members': True, - 'show-inheritance': True, - 'autosummary': True, -} +# Autoapi configuration +# https://sphinx-autoapi.readthedocs.io/en/latest/reference/config.html +autoapi_dirs = [ + '../../../esmvaltool', +] +autoapi_ignore = [ + '**/esmvaltool/cmorizers/**', + '**/esmvaltool/install/**', + '**/esmvaltool/utils/**', +] +autoapi_root = 'api' +autoapi_options = [ + 'members', + 'undoc-members', + 'imported-members', + 'inherited-members', + 'special-members', + 'show-inheritance', + 'show-module-summary', +] +autoapi_member_order = "groupwise" +# Keep the AutoAPI generated files on the filesystem after the run. Useful for +# debugging. Keeping files will also allow AutoAPI to use incremental builds. +# Providing none of the source files have changed, AutoAPI will skip parsing +# the source code and regenerating the API documentation. +autoapi_keep_files = False + + +def skip_submodules(app, what, name, obj, skip, options): + modules_to_document = [ + 'esmvaltool', + 'esmvaltool.diag_scripts', + ] + submodules_to_document = [ + f"esmvaltool.diag_scripts.{module}" for module in [ + 'emergent_constraints', + 'mlr', + 'monitor', + 'ocean', + 'shared', + 'psyplot_diag', + 'seaborn_diag', + ] + ] + + if not (name in modules_to_document or any(name.startswith(m) for m in submodules_to_document)): + skip = True + return skip + + +def setup(sphinx): + sphinx.connect("autoapi-skip-member", skip_submodules) + # See https://github.com/sphinx-doc/sphinx/issues/12589 suppress_warnings = [ @@ -124,7 +164,7 @@ # List of patterns, relative to source directory, that match files and # directories to ignore when looking for source files. -exclude_patterns = [] +# exclude_patterns = [] # The reST default role (used for this markup: `text`) to use for all # documents. @@ -433,7 +473,7 @@ 'cartopy': ('https://scitools.org.uk/cartopy/docs/latest/', None), 'cf_units': ('https://cf-units.readthedocs.io/en/latest/', None), 'esmvalcore': - (f'https://docs.esmvaltool.org/projects/esmvalcore/en/{rtd_version}/', + (f'https://docs.esmvaltool.org/projects/ESMValCore/en/{rtd_version}/', None), 'esmvaltool': (f'https://docs.esmvaltool.org/en/{rtd_version}/', None), 'iris': ('https://scitools-iris.readthedocs.io/en/latest/', None), diff --git a/doc/sphinx/source/gensidebar.py b/doc/sphinx/source/gensidebar.py index 970722ff0a..a48338dd58 100644 --- a/doc/sphinx/source/gensidebar.py +++ b/doc/sphinx/source/gensidebar.py @@ -66,7 +66,7 @@ def _header(project, text): _write("esmvaltool", "Making a recipe or diagnostic", "develop/index") _write("esmvaltool", "Contributing to the community", "community/index") _write("esmvaltool", "Utilities", "utils") - _write("esmvaltool", "Diagnostics API Reference", "api/esmvaltool") + _write("esmvaltool", "Diagnostics API Reference", "api/index") _write("esmvaltool", "Frequently Asked Questions", "faq") _write("esmvaltool", "Changelog", "changelog") _endl() diff --git a/doc/sphinx/source/requirements.txt b/doc/sphinx/source/requirements.txt new file mode 100644 index 0000000000..69b055fdf2 --- /dev/null +++ b/doc/sphinx/source/requirements.txt @@ -0,0 +1,2 @@ +pydata-sphinx-theme +sphinx-autoapi diff --git a/environment.yml b/environment.yml index 54aa73bcf0..3dd4493282 100644 --- a/environment.yml +++ b/environment.yml @@ -79,10 +79,8 @@ dependencies: - pytest-mock - pytest-xdist # Python packages needed for building docs - - autodocsumm >=0.2.2 - nbsphinx - sphinx >=6.1.3 - - pydata-sphinx-theme # Python packages needed for development - codespell ==2.3.0 - docformatter ==1.7.5 diff --git a/environment_osx.yml b/environment_osx.yml index d89556b593..03402e2571 100644 --- a/environment_osx.yml +++ b/environment_osx.yml @@ -79,10 +79,8 @@ dependencies: - pytest-mock - pytest-xdist # Python packages needed for building docs - - autodocsumm >=0.2.2 - nbsphinx - sphinx >=6.1.3 - - pydata-sphinx-theme # Python packages needed for development - codespell ==2.3.0 - docformatter ==1.7.5 diff --git a/esmvaltool/__init__.py b/esmvaltool/__init__.py index 6f3375ec51..38bde82c11 100644 --- a/esmvaltool/__init__.py +++ b/esmvaltool/__init__.py @@ -1,6 +1,10 @@ """ESMValTool diagnostics package.""" from importlib.metadata import PackageNotFoundError, version +__all__ = [ + 'diag_scripts', +] + try: __version__ = version("ESMValTool") except PackageNotFoundError as exc: diff --git a/esmvaltool/cmorizers/__init__.py b/esmvaltool/cmorizers/__init__.py new file mode 100644 index 0000000000..e69de29bb2 diff --git a/esmvaltool/cmorizers/data/download_scripts/__init__.py b/esmvaltool/cmorizers/data/download_scripts/__init__.py new file mode 100644 index 0000000000..e69de29bb2 diff --git a/esmvaltool/cmorizers/mip_convert/__init__.py b/esmvaltool/cmorizers/mip_convert/__init__.py new file mode 100644 index 0000000000..e69de29bb2 diff --git a/esmvaltool/diag_scripts/__init__.py b/esmvaltool/diag_scripts/__init__.py index 10d576e599..a2264755f8 100644 --- a/esmvaltool/diag_scripts/__init__.py +++ b/esmvaltool/diag_scripts/__init__.py @@ -1 +1,11 @@ """ESMValTool diagnostic scripts.""" + +__all__ = [ + 'emergent_constraints', + 'mlr', + 'monitor', + 'ocean', + 'shared', + 'psyplot_diag', + 'seaborn_diag', +] diff --git a/esmvaltool/diag_scripts/aerosols/__init__.py b/esmvaltool/diag_scripts/aerosols/__init__.py new file mode 100644 index 0000000000..e69de29bb2 diff --git a/esmvaltool/diag_scripts/arctic_ocean/__init__.py b/esmvaltool/diag_scripts/arctic_ocean/__init__.py new file mode 100644 index 0000000000..e69de29bb2 diff --git a/esmvaltool/diag_scripts/climate_metrics/__init__.py b/esmvaltool/diag_scripts/climate_metrics/__init__.py new file mode 100644 index 0000000000..e69de29bb2 diff --git a/esmvaltool/diag_scripts/climate_metrics/feedback_parameters.py b/esmvaltool/diag_scripts/climate_metrics/feedback_parameters.py index db350982a2..d6bd28b0fb 100644 --- a/esmvaltool/diag_scripts/climate_metrics/feedback_parameters.py +++ b/esmvaltool/diag_scripts/climate_metrics/feedback_parameters.py @@ -365,7 +365,7 @@ def _create_regression_plot(tas_cube, y_reg = reg.slope * x_reg + reg.intercept # Plot data - title = (f'{FEEDBACK_PARAMETERS.get(var,var)} TOA radiance for ' + title = (f'{FEEDBACK_PARAMETERS.get(var, var)} TOA radiance for ' f'{dataset_name}') filename = f'{var}_regression_{dataset_name}' if description is not None: diff --git a/esmvaltool/diag_scripts/cmorizers/__init__.py b/esmvaltool/diag_scripts/cmorizers/__init__.py new file mode 100644 index 0000000000..e69de29bb2 diff --git a/esmvaltool/diag_scripts/cmug_h2o/__init__.py b/esmvaltool/diag_scripts/cmug_h2o/__init__.py new file mode 100644 index 0000000000..e69de29bb2 diff --git a/esmvaltool/diag_scripts/cos22esd/__init__.py b/esmvaltool/diag_scripts/cos22esd/__init__.py new file mode 100644 index 0000000000..e69de29bb2 diff --git a/esmvaltool/diag_scripts/crem/__init__.py b/esmvaltool/diag_scripts/crem/__init__.py new file mode 100644 index 0000000000..e69de29bb2 diff --git a/esmvaltool/diag_scripts/deangelis15nat/__init__.py b/esmvaltool/diag_scripts/deangelis15nat/__init__.py new file mode 100644 index 0000000000..e69de29bb2 diff --git a/esmvaltool/diag_scripts/droughtindex/__init__.py b/esmvaltool/diag_scripts/droughtindex/__init__.py new file mode 100644 index 0000000000..e69de29bb2 diff --git a/esmvaltool/diag_scripts/emergent_constraints/lif1f2.py b/esmvaltool/diag_scripts/emergent_constraints/lif1f2.py index edd7d67663..08055c9324 100644 --- a/esmvaltool/diag_scripts/emergent_constraints/lif1f2.py +++ b/esmvaltool/diag_scripts/emergent_constraints/lif1f2.py @@ -3,11 +3,8 @@ """Calculates emergent constraint on Indian summer monsoon. -############################################################################### -testkw/lif1.py Author: Katja Weigel (IUP, Uni Bremen, Germany) EVal4CMIP project -############################################################################### Description ----------- @@ -17,9 +14,6 @@ Configuration options --------------------- output_name : Name of the output files. - -############################################################################### - """ import logging @@ -35,10 +29,13 @@ import esmvaltool.diag_scripts.shared as e import esmvaltool.diag_scripts.shared.names as n -from esmvaltool.diag_scripts.shared import (ProvenanceLogger, - get_diagnostic_filename, - get_plot_filename, group_metadata, - select_metadata) +from esmvaltool.diag_scripts.shared import ( + ProvenanceLogger, + get_diagnostic_filename, + get_plot_filename, + group_metadata, + select_metadata, +) logger = logging.getLogger(os.path.basename(__file__)) @@ -58,7 +55,7 @@ def _get_sel_files(cfg, dataname, dim=2): def _get_sel_files_var(cfg, varnames): - """Get filenames from cfg for all model mean and differen variables.""" + """Get filenames from cfg for all model mean and different variables.""" selection = [] for var in varnames: @@ -649,7 +646,7 @@ def substract_li(cfg, data, lats, lons, future_exp): datasets = [] for iii, dataset_path in enumerate(pathlist): - # Substract historical experiment from rcp85 experiment + # Subtract historical experiment from rcp85 experiment datasets.append(data.get_info(n.DATASET, dataset_path)) ar_diff_rain[:, :, iii] = (data.get_data(short_name='pr', exp=future_exp, diff --git a/esmvaltool/diag_scripts/ensclus/__init__.py b/esmvaltool/diag_scripts/ensclus/__init__.py new file mode 100644 index 0000000000..e69de29bb2 diff --git a/esmvaltool/diag_scripts/examples/__init__.py b/esmvaltool/diag_scripts/examples/__init__.py new file mode 100644 index 0000000000..e69de29bb2 diff --git a/esmvaltool/diag_scripts/galytska23/__init__.py b/esmvaltool/diag_scripts/galytska23/__init__.py new file mode 100644 index 0000000000..e69de29bb2 diff --git a/esmvaltool/diag_scripts/iht_toa/__init__.py b/esmvaltool/diag_scripts/iht_toa/__init__.py new file mode 100644 index 0000000000..e69de29bb2 diff --git a/esmvaltool/diag_scripts/impact/__init__.py b/esmvaltool/diag_scripts/impact/__init__.py new file mode 100644 index 0000000000..e69de29bb2 diff --git a/esmvaltool/diag_scripts/ipcc_ar5/__init__.py b/esmvaltool/diag_scripts/ipcc_ar5/__init__.py new file mode 100644 index 0000000000..e69de29bb2 diff --git a/esmvaltool/diag_scripts/kcs/__init__.py b/esmvaltool/diag_scripts/kcs/__init__.py new file mode 100644 index 0000000000..e69de29bb2 diff --git a/esmvaltool/diag_scripts/land_carbon_cycle/__init__.py b/esmvaltool/diag_scripts/land_carbon_cycle/__init__.py new file mode 100644 index 0000000000..e69de29bb2 diff --git a/esmvaltool/diag_scripts/landcover/__init__.py b/esmvaltool/diag_scripts/landcover/__init__.py new file mode 100644 index 0000000000..e69de29bb2 diff --git a/esmvaltool/diag_scripts/lst/__init__.py b/esmvaltool/diag_scripts/lst/__init__.py new file mode 100644 index 0000000000..e69de29bb2 diff --git a/esmvaltool/diag_scripts/mpqb/__init__.py b/esmvaltool/diag_scripts/mpqb/__init__.py new file mode 100644 index 0000000000..e69de29bb2 diff --git a/esmvaltool/diag_scripts/primavera/__init__.py b/esmvaltool/diag_scripts/primavera/__init__.py new file mode 100644 index 0000000000..e69de29bb2 diff --git a/esmvaltool/diag_scripts/primavera/eady_growth_rate/__init__.py b/esmvaltool/diag_scripts/primavera/eady_growth_rate/__init__.py new file mode 100644 index 0000000000..e69de29bb2 diff --git a/esmvaltool/diag_scripts/radiation_budget/__init__.py b/esmvaltool/diag_scripts/radiation_budget/__init__.py new file mode 100644 index 0000000000..e69de29bb2 diff --git a/esmvaltool/diag_scripts/runoff_et/__init__.py b/esmvaltool/diag_scripts/runoff_et/__init__.py new file mode 100644 index 0000000000..e69de29bb2 diff --git a/esmvaltool/diag_scripts/sea_surface_salinity/__init__.py b/esmvaltool/diag_scripts/sea_surface_salinity/__init__.py new file mode 100644 index 0000000000..e69de29bb2 diff --git a/esmvaltool/diag_scripts/seaice_drift/__init__.py b/esmvaltool/diag_scripts/seaice_drift/__init__.py new file mode 100644 index 0000000000..e69de29bb2 diff --git a/esmvaltool/diag_scripts/seaice_feedback/__init__.py b/esmvaltool/diag_scripts/seaice_feedback/__init__.py new file mode 100644 index 0000000000..e69de29bb2 diff --git a/esmvaltool/diag_scripts/shapeselect/__init__.py b/esmvaltool/diag_scripts/shapeselect/__init__.py new file mode 100644 index 0000000000..e69de29bb2 diff --git a/esmvaltool/diag_scripts/shared/_validation.py b/esmvaltool/diag_scripts/shared/_validation.py index c922f91e65..a7cf1dfb08 100644 --- a/esmvaltool/diag_scripts/shared/_validation.py +++ b/esmvaltool/diag_scripts/shared/_validation.py @@ -5,7 +5,7 @@ import iris from esmvalcore.preprocessor import climate_statistics -from esmvaltool.diag_scripts.shared import select_metadata +from esmvaltool.diag_scripts.shared._base import select_metadata logger = logging.getLogger(os.path.basename(__file__)) diff --git a/esmvaltool/diag_scripts/shared/io.py b/esmvaltool/diag_scripts/shared/io.py index f3e709bd48..3ad66e48ef 100644 --- a/esmvaltool/diag_scripts/shared/io.py +++ b/esmvaltool/diag_scripts/shared/io.py @@ -229,7 +229,7 @@ def save_1d_data(cubes, path, coord_name, var_attrs, attributes=None): Parameters ---------- cubes : dict of iris.cube.Cube - 1D :class.:`iris.cube.Cube`s (values) and corresponding dataset names + 1D :class:`iris.cube.Cube` s (values) and corresponding dataset names (keys). path : str Path to the new file. diff --git a/esmvaltool/diag_scripts/shared/names.py b/esmvaltool/diag_scripts/shared/names.py index 49da19ebbe..609cf5ee7c 100644 --- a/esmvaltool/diag_scripts/shared/names.py +++ b/esmvaltool/diag_scripts/shared/names.py @@ -1,10 +1,5 @@ """Convenience names for python diagnostics.""" -import logging - -logger = logging.getLogger(__name__) - - DAY_M = 'day_of_month' DAY_Y = 'day_of_year' HEIGHT = 'height' @@ -28,13 +23,10 @@ STANDARD_NAME = 'standard_name' UNITS = 'units' VAR_NAME = 'var_name' -START_YEAR = 'start_year' -END_YEAR = 'end_year' INPUT_DATA = 'input_data' INPUT_FILES = 'input_files' FILENAME = 'filename' -FX_FILES = 'fx_files' METADATA_YAML_FILE = 'metadata.yml' OUTPUT_FILE_TYPE = 'output_file_type' PLOT_DIR = 'plot_dir' diff --git a/esmvaltool/diag_scripts/shared/plot/styles_python/__init__.py b/esmvaltool/diag_scripts/shared/plot/styles_python/__init__.py new file mode 100644 index 0000000000..e69de29bb2 diff --git a/esmvaltool/diag_scripts/weighting/__init__.py b/esmvaltool/diag_scripts/weighting/__init__.py new file mode 100644 index 0000000000..e69de29bb2 diff --git a/esmvaltool/diag_scripts/weighting/climwip/__init__.py b/esmvaltool/diag_scripts/weighting/climwip/__init__.py new file mode 100644 index 0000000000..e69de29bb2 diff --git a/esmvaltool/diag_scripts/weighting/climwip/calibrate_sigmas.py b/esmvaltool/diag_scripts/weighting/climwip/calibrate_sigmas.py index 1d85e1f95a..0d194e8b5f 100644 --- a/esmvaltool/diag_scripts/weighting/climwip/calibrate_sigmas.py +++ b/esmvaltool/diag_scripts/weighting/climwip/calibrate_sigmas.py @@ -6,12 +6,8 @@ import matplotlib.pyplot as plt import numpy as np import xarray as xr -from scipy.optimize import brute -from esmvaltool.diag_scripts.shared import ( - get_diagnostic_filename, - get_plot_filename, -) +from scipy.optimize import brute from esmvaltool.diag_scripts.weighting.climwip.core_functions import ( area_weighted_mean, calculate_model_distances, @@ -25,6 +21,11 @@ read_model_data, read_model_data_ancestor, ) +from esmvaltool.diag_scripts.shared import ( + get_diagnostic_filename, + get_plot_filename, +) + logger = logging.getLogger(os.path.basename(__file__)) diff --git a/esmvaltool/diag_scripts/zmnam/__init__.py b/esmvaltool/diag_scripts/zmnam/__init__.py new file mode 100644 index 0000000000..e69de29bb2 diff --git a/esmvaltool/utils/batch-jobs/__init__.py b/esmvaltool/utils/batch-jobs/__init__.py new file mode 100644 index 0000000000..e69de29bb2 diff --git a/esmvaltool/utils/rose-cylc/__init__.py b/esmvaltool/utils/rose-cylc/__init__.py new file mode 100644 index 0000000000..e69de29bb2 diff --git a/esmvaltool/utils/testing/recipe_settings/__init__.py b/esmvaltool/utils/testing/recipe_settings/__init__.py new file mode 100644 index 0000000000..e69de29bb2 diff --git a/esmvaltool/utils/testing/regression/__init__.py b/esmvaltool/utils/testing/regression/__init__.py new file mode 100644 index 0000000000..e69de29bb2 diff --git a/setup.py b/setup.py index df8477d27f..1e6565b677 100755 --- a/setup.py +++ b/setup.py @@ -90,10 +90,8 @@ ], # Documentation dependencies 'doc': [ - 'autodocsumm>=0.2.2', 'nbsphinx', 'sphinx>=6.1.3', - 'pydata-sphinx-theme', ], # Development dependencies # Use pip install -e .[develop] to install in development mode diff --git a/tests/integration/test_recipes_loading.py b/tests/integration/test_recipes_loading.py index 38a0217d6e..9fc45fed90 100644 --- a/tests/integration/test_recipes_loading.py +++ b/tests/integration/test_recipes_loading.py @@ -2,27 +2,17 @@ from pathlib import Path import esmvalcore +import esmvalcore._recipe.check +import esmvalcore._recipe.recipe import esmvalcore.cmor.check +import esmvalcore.dataset +import esmvalcore.local import pytest import yaml -from esmvalcore import __version__ as core_ver -from packaging import version +from esmvalcore.config import CFG, _config import esmvaltool -if version.parse(core_ver) < version.parse('2.8.0'): - from esmvalcore._config import _config - from esmvalcore.experimental.config import CFG - - # Work around - # https://github.com/ESMValGroup/ESMValCore/issues/1579 - def clear(self): - self._mapping.clear() - - esmvalcore.experimental.config.Config.clear = clear -else: - from esmvalcore.config import CFG, _config - @pytest.fixture def session(mocker, tmp_path): @@ -58,20 +48,9 @@ def _get_recipes(): def test_recipe_valid(recipe_file, session, mocker): """Check that recipe files are valid ESMValTool recipes.""" # Mock input files - try: - # Since ESValCore v2.8.0 - import esmvalcore.local - module = esmvalcore.local - method = 'glob' - except ImportError: - # Prior to ESMValCore v2.8.0 - import esmvalcore._data_finder - module = esmvalcore._data_finder - method = 'find_files' - mocker.patch.object( - module, - method, + esmvalcore.local, + 'glob', autospec=True, side_effect=lambda *_, **__: [ 'test_0001-1849.nc', @@ -81,57 +60,29 @@ def test_recipe_valid(recipe_file, session, mocker): # Do not remove unexpanded supplementaries. These cannot be expanded # because the mocked file finding above does not produce facets. - try: - import esmvalcore.dataset - except ImportError: - pass - else: - mocker.patch.object( - esmvalcore.dataset.Dataset, - '_remove_unexpanded_supplementaries', - autospec=True, - spec_set=True, - ) + mocker.patch.object( + esmvalcore.dataset.Dataset, + '_remove_unexpanded_supplementaries', + autospec=True, + spec_set=True, + ) # Mock vertical levels - # Account for module change after esmvalcore=2.7 - if version.parse(core_ver) <= version.parse('2.7.1'): - import esmvalcore._recipe - mocker.patch.object( - esmvalcore._recipe, - 'get_reference_levels', - autospec=True, - spec_set=True, - side_effect=lambda *_, **__: [1, 2], - ) - else: - import esmvalcore._recipe.recipe - mocker.patch.object( - esmvalcore._recipe.recipe, - 'get_reference_levels', - autospec=True, - spec_set=True, - side_effect=lambda *_, **__: [1, 2], - ) + mocker.patch.object( + esmvalcore._recipe.recipe, + 'get_reference_levels', + autospec=True, + spec_set=True, + side_effect=lambda *_, **__: [1, 2], + ) # Mock valid NCL version - # Account for module change after esmvalcore=2.7 - if version.parse(core_ver) <= version.parse('2.7.1'): - import esmvalcore._recipe_checks - mocker.patch.object( - esmvalcore._recipe_checks, - 'ncl_version', - autospec=True, - spec_set=True, - ) - else: - import esmvalcore._recipe.check - mocker.patch.object( - esmvalcore._recipe.check, - 'ncl_version', - autospec=True, - spec_set=True, - ) + mocker.patch.object( + esmvalcore._recipe.check, + 'ncl_version', + autospec=True, + spec_set=True, + ) # Mock interpreters installed def which(executable): @@ -158,9 +109,4 @@ def which(executable): filename.parent.mkdir(parents=True, exist_ok=True) filename.touch() - # Account for module change after esmvalcore=2.7 - if version.parse(core_ver) <= version.parse('2.7.1'): - config_user = session.to_config_user() - esmvalcore._recipe.read_recipe_file(recipe_file, config_user) - else: - esmvalcore._recipe.recipe.read_recipe_file(recipe_file, session) + esmvalcore._recipe.recipe.read_recipe_file(recipe_file, session) diff --git a/tests/unit/utils/__init__.py b/tests/unit/utils/__init__.py new file mode 100644 index 0000000000..e69de29bb2