diff --git a/.gitignore b/.gitignore index 931fc4922..f412f96b7 100644 --- a/.gitignore +++ b/.gitignore @@ -46,6 +46,10 @@ __pycache__/ *.pyc *.pyo +# Documentation build output +docs/doxygen/ +docs/build/ + # macOS .DS_Store # act (local workflow testing) diff --git a/docs/Doxyfile b/docs/Doxyfile new file mode 100644 index 000000000..0777b9f1f --- /dev/null +++ b/docs/Doxyfile @@ -0,0 +1,28 @@ +# Doxyfile + +# -- Project settings -------------------------------------------------------- +PROJECT_NAME = "Phlex" +PROJECT_BRIEF = "A framework for parallel, hierarchical, and layered execution of data-processing algorithms" +QUIET = YES + +# -- Input and output directories -------------------------------------------- +INPUT = ../phlex ../form +OUTPUT_DIRECTORY = doxygen +RECURSIVE = YES + +# -- Output formats ---------------------------------------------------------- +GENERATE_HTML = NO +GENERATE_LATEX = NO +GENERATE_XML = YES +XML_OUTPUT = xml + +# -- Source code parsing ----------------------------------------------------- +EXTRACT_ALL = YES +WARN_IF_UNDOCUMENTED = NO +ENABLE_PREPROCESSING = YES +MACRO_EXPANSION = YES +FILE_PATTERNS = *.hpp *.cpp +EXCLUDE_PATTERNS = */detail/* +# Help Doxygen with some of the more complex macros +PREDEFINED = "BOOST_DLL_ALIAS(a,b)=" \ + "PHLEX_DETAIL_REGISTER_PLUGIN(...)=" diff --git a/docs/requirements.txt b/docs/requirements.txt new file mode 100644 index 000000000..feec2aecc --- /dev/null +++ b/docs/requirements.txt @@ -0,0 +1,3 @@ +sphinx>=9.1,<10 +breathe>=4.36,<5 +sphinx-rtd-theme>=3.1,<4 diff --git a/docs/source/api/declared_fold.rst b/docs/source/api/declared_fold.rst new file mode 100644 index 000000000..a2288aa21 --- /dev/null +++ b/docs/source/api/declared_fold.rst @@ -0,0 +1,6 @@ +declared_fold +============== + +.. doxygenclass:: phlex::experimental::declared_fold + :members: + :undoc-members: diff --git a/docs/source/api/declared_transform.rst b/docs/source/api/declared_transform.rst new file mode 100644 index 000000000..1a1a12e0c --- /dev/null +++ b/docs/source/api/declared_transform.rst @@ -0,0 +1,6 @@ +declared_transform +=================== + +.. doxygenclass:: phlex::experimental::declared_transform + :members: + :undoc-members: diff --git a/docs/source/api/declared_unfold.rst b/docs/source/api/declared_unfold.rst new file mode 100644 index 000000000..71a9f4b17 --- /dev/null +++ b/docs/source/api/declared_unfold.rst @@ -0,0 +1,6 @@ +declared_unfold +================ + +.. doxygenclass:: phlex::experimental::declared_unfold + :members: + :undoc-members: diff --git a/docs/source/api/framework_graph.rst b/docs/source/api/framework_graph.rst new file mode 100644 index 000000000..01c7641ee --- /dev/null +++ b/docs/source/api/framework_graph.rst @@ -0,0 +1,10 @@ +framework_graph +================ + +.. doxygenclass:: phlex::experimental::framework_graph + :members: + :undoc-members: + +.. doxygenclass:: phlex::experimental::layer_sentry + :members: + :undoc-members: diff --git a/docs/source/api/graph_proxy.rst b/docs/source/api/graph_proxy.rst new file mode 100644 index 000000000..b16176a65 --- /dev/null +++ b/docs/source/api/graph_proxy.rst @@ -0,0 +1,6 @@ +graph_proxy +============= + +.. doxygenclass:: phlex::experimental::graph_proxy + :members: + :undoc-members: diff --git a/docs/source/api/product_store.rst b/docs/source/api/product_store.rst new file mode 100644 index 000000000..785c5def8 --- /dev/null +++ b/docs/source/api/product_store.rst @@ -0,0 +1,6 @@ +product_store +============== + +.. doxygenclass:: phlex::experimental::product_store + :members: + :undoc-members: diff --git a/docs/source/api/products.rst b/docs/source/api/products.rst new file mode 100644 index 000000000..6449ce808 --- /dev/null +++ b/docs/source/api/products.rst @@ -0,0 +1,6 @@ +products +========= + +.. doxygenclass:: phlex::experimental::products + :members: + :undoc-members: diff --git a/docs/source/api/registrar.rst b/docs/source/api/registrar.rst new file mode 100644 index 000000000..0f545eeae --- /dev/null +++ b/docs/source/api/registrar.rst @@ -0,0 +1,6 @@ +registrar +========== + +.. doxygenclass:: phlex::experimental::registrar + :members: + :undoc-members: diff --git a/docs/source/conf.py b/docs/source/conf.py new file mode 100644 index 000000000..d0855871d --- /dev/null +++ b/docs/source/conf.py @@ -0,0 +1,29 @@ +# mypy: ignore-errors +"""Sphinx configuration for Phlex documentation.""" + +# -- Project information ----------------------------------------------------- + +project = "Phlex" +copyright = "2025-2026, The Phlex Developers" +author = "The Phlex Developers" +release = "0.1.0" + +# -- General configuration --------------------------------------------------- + +extensions = [ + "breathe", +] + +templates_path = ["_templates"] +exclude_patterns = [] + +# -- Options for HTML output ------------------------------------------------- + +html_theme = "sphinx_rtd_theme" + +# -- Breathe configuration ------------------------------------------------- + +breathe_projects = { + "Phlex": "../doxygen/xml/", +} +breathe_default_project = "Phlex" diff --git a/docs/source/index.rst b/docs/source/index.rst new file mode 100644 index 000000000..150d01e0b --- /dev/null +++ b/docs/source/index.rst @@ -0,0 +1,20 @@ +.. Phlex documentation master file, created by + sphinx-quickstart on Tue Nov 15 14:29:55 2025. + You can adapt this file completely to your liking, but it should at least + contain the root `toctree` directive. + +Welcome to Phlex's documentation! +================================== + +.. toctree:: + :maxdepth: 2 + :caption: Contents: + + api/graph_proxy + api/framework_graph + api/registrar + api/declared_transform + api/declared_fold + api/declared_unfold + api/product_store + api/products