2023-09-08 02:32:17 +00:00
|
|
|
# Configuration file for the Sphinx documentation builder.
|
|
|
|
#
|
|
|
|
# For the full list of built-in configuration values, see the documentation:
|
|
|
|
# https://www.sphinx-doc.org/en/master/usage/configuration.html
|
2023-10-19 04:18:02 +00:00
|
|
|
import pdb
|
2023-09-08 02:32:17 +00:00
|
|
|
|
|
|
|
# -- Project information -----------------------------------------------------
|
|
|
|
# https://www.sphinx-doc.org/en/master/usage/configuration.html#project-information
|
|
|
|
|
|
|
|
project = 'nwb-linkml'
|
|
|
|
copyright = '2023, Jonny Saunders'
|
|
|
|
author = 'Jonny Saunders'
|
|
|
|
release = 'v0.1.0'
|
|
|
|
|
2023-10-19 04:18:02 +00:00
|
|
|
import os
|
2024-07-09 02:07:21 +00:00
|
|
|
import sys
|
|
|
|
from pathlib import Path
|
|
|
|
sys.path.insert(0, str(Path(__file__).parent))
|
|
|
|
from directives import AdapterDirective
|
2023-10-19 04:18:02 +00:00
|
|
|
from sphinx.util.tags import Tags
|
|
|
|
tags: Tags
|
|
|
|
|
2023-09-08 02:32:17 +00:00
|
|
|
# -- General configuration ---------------------------------------------------
|
|
|
|
# https://www.sphinx-doc.org/en/master/usage/configuration.html#general-configuration
|
|
|
|
|
|
|
|
extensions = [
|
|
|
|
'sphinx.ext.graphviz',
|
|
|
|
'sphinx.ext.napoleon',
|
|
|
|
'sphinx.ext.autodoc',
|
2024-07-09 04:37:02 +00:00
|
|
|
#'sphinxcontrib.autodoc_pydantic',
|
2023-10-09 22:06:53 +00:00
|
|
|
'sphinx.ext.intersphinx',
|
2023-10-18 08:01:15 +00:00
|
|
|
'sphinx.ext.doctest',
|
2023-10-19 04:18:02 +00:00
|
|
|
"sphinx_design",
|
2023-10-19 09:52:15 +00:00
|
|
|
#'myst_parser',
|
|
|
|
"myst_nb",
|
2023-10-20 04:20:50 +00:00
|
|
|
'sphinx_togglebutton',
|
|
|
|
'sphinx.ext.todo'
|
2023-09-08 02:32:17 +00:00
|
|
|
]
|
|
|
|
|
2023-10-19 04:18:02 +00:00
|
|
|
|
2023-09-08 02:32:17 +00:00
|
|
|
templates_path = ['_templates']
|
2024-07-09 02:07:21 +00:00
|
|
|
exclude_patterns = ['_build', 'Thumbs.db', '.DS_Store', '.venv']
|
2023-10-19 04:18:02 +00:00
|
|
|
if os.environ.get('SPHINX_MINIMAL', None) == 'True':
|
2024-07-09 02:07:21 +00:00
|
|
|
exclude_patterns.append('**/models')
|
2023-10-19 04:18:02 +00:00
|
|
|
tags.add('minimal')
|
|
|
|
else:
|
|
|
|
tags.add('full')
|
2023-09-08 02:32:17 +00:00
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
# -- Options for HTML output -------------------------------------------------
|
|
|
|
# https://www.sphinx-doc.org/en/master/usage/configuration.html#options-for-html-output
|
|
|
|
|
|
|
|
html_theme = 'furo'
|
|
|
|
html_static_path = ['_static']
|
2023-10-19 04:18:02 +00:00
|
|
|
html_css_files = [
|
|
|
|
'css/custom.css'
|
|
|
|
]
|
2023-09-08 02:32:17 +00:00
|
|
|
|
|
|
|
intersphinx_mapping = {
|
|
|
|
'python': ('https://docs.python.org/3', None),
|
|
|
|
'matplotlib': ('https://matplotlib.org/stable/', None),
|
|
|
|
'numpy': ('https://numpy.org/doc/stable/', None),
|
|
|
|
'pandas': ('https://pandas.pydata.org/docs/', None),
|
2023-09-22 07:31:34 +00:00
|
|
|
'pydantic': ('https://docs.pydantic.dev/latest/', None),
|
2023-10-05 00:59:10 +00:00
|
|
|
'h5py': ('https://docs.h5py.org/en/stable/', None),
|
2023-10-19 09:52:15 +00:00
|
|
|
'dask': ('https://docs.dask.org/en/stable/', None),
|
|
|
|
'linkml': ('https://linkml.io/linkml/', None),
|
|
|
|
'linkml_runtime': ('https://linkml.io/linkml/', None),
|
|
|
|
'linkml-runtime': ('https://linkml.io/linkml/', None)
|
2023-09-08 02:32:17 +00:00
|
|
|
}
|
|
|
|
|
|
|
|
|
|
|
|
# Napoleon settings
|
|
|
|
napoleon_google_docstring = True
|
|
|
|
napoleon_numpy_docstring = True
|
|
|
|
napoleon_include_init_with_doc = False
|
|
|
|
napoleon_include_private_with_doc = False
|
|
|
|
napoleon_include_special_with_doc = True
|
|
|
|
napoleon_use_admonition_for_examples = False
|
|
|
|
napoleon_use_admonition_for_notes = False
|
|
|
|
napoleon_use_admonition_for_references = False
|
|
|
|
napoleon_use_ivar = False
|
|
|
|
napoleon_use_param = True
|
|
|
|
napoleon_use_rtype = True
|
|
|
|
napoleon_preprocess_types = False
|
|
|
|
napoleon_type_aliases = None
|
|
|
|
napoleon_attr_annotations = True
|
|
|
|
|
|
|
|
# graphviz
|
|
|
|
graphviz_output_format = "svg"
|
2023-09-08 02:48:58 +00:00
|
|
|
|
2024-07-01 22:44:26 +00:00
|
|
|
# autodoc
|
2023-09-08 02:48:58 +00:00
|
|
|
autodoc_pydantic_model_show_json_error_strategy = 'coerce'
|
2023-09-08 02:53:12 +00:00
|
|
|
autodoc_pydantic_model_show_json = False
|
2024-07-09 04:37:02 +00:00
|
|
|
#autodoc_mock_imports = ['pydantic', 'curies', 'pydantic_settings']
|
|
|
|
autodoc_mock_imports = ['curies']
|
2023-10-18 08:01:15 +00:00
|
|
|
autoclass_content = "both"
|
|
|
|
autodoc_member_order='bysource'
|
|
|
|
add_module_names = False
|
|
|
|
|
|
|
|
autodoc_default_options = {
|
|
|
|
'exclude-members': 'NDArray,Shape',
|
|
|
|
}
|
|
|
|
|
2023-10-19 09:52:15 +00:00
|
|
|
# --------------------------------------------------
|
|
|
|
# myst-nb
|
|
|
|
nb_render_markdown_format = 'myst'
|
|
|
|
nb_append_css = False
|
2023-10-18 08:01:15 +00:00
|
|
|
|
2023-10-20 04:20:50 +00:00
|
|
|
# --------------------------------------------------
|
2023-10-09 22:06:53 +00:00
|
|
|
# doctest
|
2024-07-09 04:37:02 +00:00
|
|
|
# doctest_global_setup = """
|
|
|
|
# from linkml_runtime.linkml_model import ClassDefinition, SlotDefinition, SchemaDefinition
|
|
|
|
# from nwb_schema_language import Namespaces, Namespace, Dataset, Group, Schema
|
|
|
|
# from linkml_runtime.dumpers import yaml_dumper
|
|
|
|
# import yaml
|
|
|
|
# from pydantic import BaseModel, Field
|
|
|
|
# import numpy as np
|
|
|
|
#
|
|
|
|
# from nwb_linkml.adapters import BuildResult
|
|
|
|
# """
|
2023-10-20 04:20:50 +00:00
|
|
|
|
|
|
|
# --------------------------------------------------
|
|
|
|
# Etc one-off settings
|
|
|
|
|
|
|
|
# todo
|
|
|
|
todo_include_todos = True
|
|
|
|
todo_link_only = True
|
|
|
|
|
2024-07-09 02:07:21 +00:00
|
|
|
def setup(app):
|
|
|
|
AdapterDirective.app = app
|
|
|
|
app.add_directive('adapter', AdapterDirective)
|
|
|
|
return {'parallel_read_safe': True, 'parallel_write_safe': True}
|
|
|
|
|