caddforge-docs 0.3.0__py3-none-any.whl

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (152) hide show
  1. caddforge_docs/__init__.py +1 -0
  2. caddforge_docs/cli.py +20 -0
  3. caddforge_docs/server.py +124 -0
  4. caddforge_docs/site/404.html +2118 -0
  5. caddforge_docs/site/assets/_mkdocstrings.css +237 -0
  6. caddforge_docs/site/assets/images/favicon.png +0 -0
  7. caddforge_docs/site/assets/javascripts/bundle.d7400e89.min.js +16 -0
  8. caddforge_docs/site/assets/javascripts/bundle.d7400e89.min.js.map +7 -0
  9. caddforge_docs/site/assets/javascripts/workers/search.2c215733.min.js +42 -0
  10. caddforge_docs/site/assets/javascripts/workers/search.2c215733.min.js.map +7 -0
  11. caddforge_docs/site/assets/licenses/W3C-Software-and-Document-2015.txt +15 -0
  12. caddforge_docs/site/assets/licenses/autogrid-COPYING-GPL-2.txt +339 -0
  13. caddforge_docs/site/assets/licenses/autogrid-GCC-RUNTIME-COPYING-GPL-3.txt +674 -0
  14. caddforge_docs/site/assets/licenses/autogrid-GCC-RUNTIME-EXCEPTION.txt +73 -0
  15. caddforge_docs/site/assets/licenses/autogrid-GCC-RUNTIME-NOTICE.txt +24 -0
  16. caddforge_docs/site/assets/licenses/caddforge-opencosmors-COPYING.txt +674 -0
  17. caddforge_docs/site/assets/licenses/caddforge-opencosmors-LICENSE.txt +165 -0
  18. caddforge_docs/site/assets/licenses/caddforge-unidock-tools-LICENSE.txt +202 -0
  19. caddforge_docs/site/assets/licenses/clipboard-LICENSE.txt +19 -0
  20. caddforge_docs/site/assets/licenses/escape-html-LICENSE.txt +2 -0
  21. caddforge_docs/site/assets/licenses/focus-visible-LICENSE.txt +4 -0
  22. caddforge_docs/site/assets/licenses/fontawesome-LICENSE.txt +165 -0
  23. caddforge_docs/site/assets/licenses/fuzzaldrin-plus-LICENSE.txt +21 -0
  24. caddforge_docs/site/assets/licenses/lunr-LICENSE.txt +17 -0
  25. caddforge_docs/site/assets/licenses/material-LICENSE.txt +20 -0
  26. caddforge_docs/site/assets/licenses/material-design-color-LICENSE.txt +31 -0
  27. caddforge_docs/site/assets/licenses/material-shadows-LICENSE.txt +31 -0
  28. caddforge_docs/site/assets/licenses/mkdocs-material-LICENSE.txt +19 -0
  29. caddforge_docs/site/assets/licenses/mkdocs-material-extensions-LICENSE.txt +21 -0
  30. caddforge_docs/site/assets/licenses/mkdocs-section-index-LICENSE.txt +21 -0
  31. caddforge_docs/site/assets/licenses/mkdocstrings-LICENSE.txt +15 -0
  32. caddforge_docs/site/assets/licenses/mkdocstrings-python-LICENSE.txt +15 -0
  33. caddforge_docs/site/assets/licenses/octicons-LICENSE.txt +21 -0
  34. caddforge_docs/site/assets/licenses/preact-LICENSE.txt +19 -0
  35. caddforge_docs/site/assets/licenses/properdocs-LICENSE.txt +26 -0
  36. caddforge_docs/site/assets/licenses/pymdown-extensions-LICENSE.txt +113 -0
  37. caddforge_docs/site/assets/licenses/rxjs-LICENSE.txt +180 -0
  38. caddforge_docs/site/assets/licenses/simple-LICENSE.txt +30 -0
  39. caddforge_docs/site/assets/licenses/tiny-emitter-LICENSE.txt +19 -0
  40. caddforge_docs/site/assets/licenses/tslib-LICENSE.txt +12 -0
  41. caddforge_docs/site/assets/licenses/zeno-rocha-components-LICENSE.txt +22 -0
  42. caddforge_docs/site/assets/stylesheets/main.ec1eaa64.min.css +1 -0
  43. caddforge_docs/site/assets/stylesheets/main.ec1eaa64.min.css.map +1 -0
  44. caddforge_docs/site/assets/stylesheets/palette.ab4e12ef.min.css +1 -0
  45. caddforge_docs/site/assets/stylesheets/palette.ab4e12ef.min.css.map +1 -0
  46. caddforge_docs/site/core/cli/index.html +2446 -0
  47. caddforge_docs/site/core/concepts/index.html +2340 -0
  48. caddforge_docs/site/core/configuration/index.html +2300 -0
  49. caddforge_docs/site/core/index.html +2170 -0
  50. caddforge_docs/site/core/jobs-results/index.html +2315 -0
  51. caddforge_docs/site/core/plugins/index.html +2200 -0
  52. caddforge_docs/site/core/slurm/index.html +2562 -0
  53. caddforge_docs/site/development/ci-publishing/index.html +2345 -0
  54. caddforge_docs/site/development/contributing/index.html +2311 -0
  55. caddforge_docs/site/development/documentation/index.html +2380 -0
  56. caddforge_docs/site/development/index.html +2201 -0
  57. caddforge_docs/site/development/release-notes/index.html +2504 -0
  58. caddforge_docs/site/development/release-readiness/index.html +2333 -0
  59. caddforge_docs/site/development/security/index.html +2181 -0
  60. caddforge_docs/site/development/tool-authoring/index.html +2435 -0
  61. caddforge_docs/site/examples/index.html +2465 -0
  62. caddforge_docs/site/examples/manifest.json +158 -0
  63. caddforge_docs/site/examples/minimize/component_overrides.yaml +14 -0
  64. caddforge_docs/site/examples/minimize/ligand_only.yaml +13 -0
  65. caddforge_docs/site/examples/minimize/pipeline_docking.yaml +84 -0
  66. caddforge_docs/site/examples/minimize/pipeline_scatter.yaml +49 -0
  67. caddforge_docs/site/examples/minimize/pocket_free_shell_restrained.yaml +13 -0
  68. caddforge_docs/site/examples/minimize/pocket_restrained.yaml +13 -0
  69. caddforge_docs/site/examples/minimize/prepared_metal.yaml +14 -0
  70. caddforge_docs/site/examples/minimize/sidechains_free_backbone_fixed.yaml +13 -0
  71. caddforge_docs/site/examples/minimize/sidechains_free_backbone_restrained.yaml +13 -0
  72. caddforge_docs/site/examples/pipelines/descriptor-model-and-candidate-filter.yaml +44 -0
  73. caddforge_docs/site/examples/pipelines/dock-extract-and-minimize-poses.yaml +85 -0
  74. caddforge_docs/site/examples/pipelines/docking-screen-and-rescore.yaml +55 -0
  75. caddforge_docs/site/examples/pipelines/flexible-gnina-to-openbpmd-to-md-to-abfe.yaml +189 -0
  76. caddforge_docs/site/examples/pipelines/gnina-flexible-complex-artifacts.yaml +52 -0
  77. caddforge_docs/site/examples/pipelines/minimize-a-multi-pose-sdf.yaml +46 -0
  78. caddforge_docs/site/examples/pipelines/pose-level-md-selection.yaml +95 -0
  79. caddforge_docs/site/examples/pipelines/result-collection-and-diagnostics.yaml +55 -0
  80. caddforge_docs/site/examples/quickstart/diagnostics.yaml +8 -0
  81. caddforge_docs/site/examples/quickstart/index.html +2172 -0
  82. caddforge_docs/site/examples/quickstart/pipeline.yaml +23 -0
  83. caddforge_docs/site/examples/quickstart/run.py +18 -0
  84. caddforge_docs/site/examples/quickstart/run_pipeline.py +6 -0
  85. caddforge_docs/site/examples/quickstart/scores.csv +7 -0
  86. caddforge_docs/site/examples/quickstart/values.csv +31 -0
  87. caddforge_docs/site/examples/run_tool.py +40 -0
  88. caddforge_docs/site/examples/tools/datascience-csv-scatter.yaml +17 -0
  89. caddforge_docs/site/examples/tools/datascience-distribution-diagnostics.yaml +10 -0
  90. caddforge_docs/site/examples/tools/descriptors-ani-conformers.yaml +9 -0
  91. caddforge_docs/site/examples/tools/descriptors-ani-psa.yaml +9 -0
  92. caddforge_docs/site/examples/tools/descriptors-cluster-molecules.yaml +11 -0
  93. caddforge_docs/site/examples/tools/descriptors-phesa.yaml +7 -0
  94. caddforge_docs/site/examples/tools/docking-gnina.yaml +12 -0
  95. caddforge_docs/site/examples/tools/docking-idockya.yaml +8 -0
  96. caddforge_docs/site/examples/tools/docking-unidock.yaml +12 -0
  97. caddforge_docs/site/examples/tools/fep-openfe-abfe.yaml +53 -0
  98. caddforge_docs/site/examples/tools/fep-openfe-rbfe-septop.yaml +23 -0
  99. caddforge_docs/site/examples/tools/md-center-and-align.yaml +16 -0
  100. caddforge_docs/site/examples/tools/md-cluster-representative.yaml +16 -0
  101. caddforge_docs/site/examples/tools/md-extract-frames.yaml +17 -0
  102. caddforge_docs/site/examples/tools/md-fix-structure.yaml +20 -0
  103. caddforge_docs/site/examples/tools/md-grand.yaml +28 -0
  104. caddforge_docs/site/examples/tools/md-inducia.yaml +29 -0
  105. caddforge_docs/site/examples/tools/md-minimize.yaml +13 -0
  106. caddforge_docs/site/examples/tools/md-openbpmd.yaml +11 -0
  107. caddforge_docs/site/examples/tools/md-plain-md.yaml +28 -0
  108. caddforge_docs/site/examples/tools/ml-explore-classifier.yaml +5 -0
  109. caddforge_docs/site/examples/tools/ml-model-factory.yaml +32 -0
  110. caddforge_docs/site/examples/tools/ml-model-zoo.yaml +16 -0
  111. caddforge_docs/site/examples/tools/ml-pca.yaml +10 -0
  112. caddforge_docs/site/examples/tools/ml-simple-gp.yaml +17 -0
  113. caddforge_docs/site/examples/tools/qm-transfer-free-energy.yaml +11 -0
  114. caddforge_docs/site/explanation/references/index.html +2218 -0
  115. caddforge_docs/site/explanation/reproducibility/index.html +2306 -0
  116. caddforge_docs/site/explanation/third-party-notices/index.html +2599 -0
  117. caddforge_docs/site/getting-started/first-pipeline/index.html +2195 -0
  118. caddforge_docs/site/getting-started/first-workflow/index.html +2329 -0
  119. caddforge_docs/site/getting-started/index.html +2200 -0
  120. caddforge_docs/site/getting-started/installation/index.html +2541 -0
  121. caddforge_docs/site/gui/index.html +2267 -0
  122. caddforge_docs/site/gui/plugin-authoring/index.html +2280 -0
  123. caddforge_docs/site/gui/walkthrough/index.html +2181 -0
  124. caddforge_docs/site/how-to/jobs/index.html +2195 -0
  125. caddforge_docs/site/how-to/scatter/index.html +2193 -0
  126. caddforge_docs/site/how-to/troubleshooting/index.html +2429 -0
  127. caddforge_docs/site/index.html +2359 -0
  128. caddforge_docs/site/objects.inv +0 -0
  129. caddforge_docs/site/pipelines/artifacts/index.html +2314 -0
  130. caddforge_docs/site/pipelines/built-ins/index.html +2670 -0
  131. caddforge_docs/site/pipelines/examples/index.html +3186 -0
  132. caddforge_docs/site/pipelines/index.html +2164 -0
  133. caddforge_docs/site/pipelines/specification/index.html +2278 -0
  134. caddforge_docs/site/plugins/datascience/index.html +2405 -0
  135. caddforge_docs/site/plugins/descriptors/index.html +2609 -0
  136. caddforge_docs/site/plugins/docking/index.html +2480 -0
  137. caddforge_docs/site/plugins/fep/index.html +2508 -0
  138. caddforge_docs/site/plugins/index.html +2216 -0
  139. caddforge_docs/site/plugins/md/index.html +3795 -0
  140. caddforge_docs/site/plugins/ml/index.html +2815 -0
  141. caddforge_docs/site/plugins/qm/index.html +2309 -0
  142. caddforge_docs/site/plugins/version-matrix/index.html +2449 -0
  143. caddforge_docs/site/reference/api/index.html +4414 -0
  144. caddforge_docs/site/reference/index.html +2166 -0
  145. caddforge_docs/site/search/search_index.json +1 -0
  146. caddforge_docs/site/sitemap.xml +191 -0
  147. caddforge_docs/site/sitemap.xml.gz +0 -0
  148. caddforge_docs-0.3.0.dist-info/METADATA +158 -0
  149. caddforge_docs-0.3.0.dist-info/RECORD +152 -0
  150. caddforge_docs-0.3.0.dist-info/WHEEL +4 -0
  151. caddforge_docs-0.3.0.dist-info/entry_points.txt +2 -0
  152. caddforge_docs-0.3.0.dist-info/licenses/LICENSE +21 -0
@@ -0,0 +1,2380 @@
1
+
2
+ <!doctype html>
3
+ <html lang="en" class="no-js">
4
+ <head>
5
+
6
+ <meta charset="utf-8">
7
+ <meta name="viewport" content="width=device-width,initial-scale=1">
8
+
9
+ <meta name="description" content="Central documentation for the CADDForge CADD toolbox framework.">
10
+
11
+
12
+
13
+ <link rel="canonical" href="https://idorsia.github.io/caddforge-docs/development/documentation/">
14
+
15
+
16
+ <link rel="prev" href="../tool-authoring/">
17
+
18
+
19
+ <link rel="next" href="../contributing/">
20
+
21
+
22
+
23
+
24
+
25
+ <link rel="icon" href="../../assets/images/favicon.png">
26
+ <meta name="generator" content="mkdocs-ProperDocs 1.6.7, mkdocs-material-9.7.7">
27
+
28
+
29
+
30
+ <title>Documentation - CADDForge</title>
31
+
32
+
33
+
34
+ <link rel="stylesheet" href="../../assets/stylesheets/main.ec1eaa64.min.css">
35
+
36
+
37
+ <link rel="stylesheet" href="../../assets/stylesheets/palette.ab4e12ef.min.css">
38
+
39
+
40
+
41
+
42
+
43
+
44
+
45
+
46
+
47
+
48
+
49
+
50
+ <link rel="stylesheet" href="../../assets/_mkdocstrings.css">
51
+
52
+ <script>__md_scope=new URL("../..",location),__md_hash=e=>[...e].reduce(((e,_)=>(e<<5)-e+_.charCodeAt(0)),0),__md_get=(e,_=localStorage,t=__md_scope)=>JSON.parse(_.getItem(t.pathname+"."+e)),__md_set=(e,_,t=localStorage,a=__md_scope)=>{try{t.setItem(a.pathname+"."+e,JSON.stringify(_))}catch(e){}}</script>
53
+
54
+
55
+
56
+
57
+
58
+ </head>
59
+
60
+
61
+
62
+
63
+
64
+
65
+
66
+
67
+
68
+ <body dir="ltr" data-md-color-scheme="default" data-md-color-primary="blue" data-md-color-accent="teal">
69
+
70
+
71
+ <input class="md-toggle" data-md-toggle="drawer" type="checkbox" id="__drawer" autocomplete="off">
72
+ <input class="md-toggle" data-md-toggle="search" type="checkbox" id="__search" autocomplete="off">
73
+ <label class="md-overlay" for="__drawer"></label>
74
+ <div data-md-component="skip">
75
+
76
+
77
+ <a href="#documentation" class="md-skip">
78
+ Skip to content
79
+ </a>
80
+
81
+ </div>
82
+ <div data-md-component="announce">
83
+
84
+ </div>
85
+
86
+
87
+
88
+
89
+
90
+
91
+ <header class="md-header md-header--shadow" data-md-component="header">
92
+ <nav class="md-header__inner md-grid" aria-label="Header">
93
+ <a href="../.." title="CADDForge" class="md-header__button md-logo" aria-label="CADDForge" data-md-component="logo">
94
+
95
+
96
+ <svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 24 24"><path d="M12 8a3 3 0 0 0 3-3 3 3 0 0 0-3-3 3 3 0 0 0-3 3 3 3 0 0 0 3 3m0 3.54C9.64 9.35 6.5 8 3 8v11c3.5 0 6.64 1.35 9 3.54 2.36-2.19 5.5-3.54 9-3.54V8c-3.5 0-6.64 1.35-9 3.54"/></svg>
97
+
98
+ </a>
99
+ <label class="md-header__button md-icon" for="__drawer">
100
+
101
+ <svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 24 24"><path d="M3 6h18v2H3zm0 5h18v2H3zm0 5h18v2H3z"/></svg>
102
+ </label>
103
+ <div class="md-header__title" data-md-component="header-title">
104
+ <div class="md-header__ellipsis">
105
+ <div class="md-header__topic">
106
+ <span class="md-ellipsis">
107
+ CADDForge
108
+ </span>
109
+ </div>
110
+ <div class="md-header__topic" data-md-component="header-topic">
111
+ <span class="md-ellipsis">
112
+
113
+ Documentation
114
+
115
+ </span>
116
+ </div>
117
+ </div>
118
+ </div>
119
+
120
+
121
+ <form class="md-header__option" data-md-component="palette">
122
+
123
+
124
+
125
+
126
+ <input class="md-option" data-md-color-media="(prefers-color-scheme: light)" data-md-color-scheme="default" data-md-color-primary="blue" data-md-color-accent="teal" aria-label="Switch to dark mode" type="radio" name="__palette" id="__palette_0">
127
+
128
+ <label class="md-header__button md-icon" title="Switch to dark mode" for="__palette_1" hidden>
129
+ <svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 24 24"><path d="m17.75 4.09-2.53 1.94.91 3.06-2.63-1.81-2.63 1.81.91-3.06-2.53-1.94L12.44 4l1.06-3 1.06 3zm3.5 6.91-1.64 1.25.59 1.98-1.7-1.17-1.7 1.17.59-1.98L15.75 11l2.06-.05L18.5 9l.69 1.95zm-2.28 4.95c.83-.08 1.72 1.1 1.19 1.85-.32.45-.66.87-1.08 1.27C15.17 23 8.84 23 4.94 19.07c-3.91-3.9-3.91-10.24 0-14.14.4-.4.82-.76 1.27-1.08.75-.53 1.93.36 1.85 1.19-.27 2.86.69 5.83 2.89 8.02a9.96 9.96 0 0 0 8.02 2.89m-1.64 2.02a12.08 12.08 0 0 1-7.8-3.47c-2.17-2.19-3.33-5-3.49-7.82-2.81 3.14-2.7 7.96.31 10.98 3.02 3.01 7.84 3.12 10.98.31"/></svg>
130
+ </label>
131
+
132
+
133
+
134
+
135
+
136
+ <input class="md-option" data-md-color-media="(prefers-color-scheme: dark)" data-md-color-scheme="slate" data-md-color-primary="blue" data-md-color-accent="teal" aria-label="Switch to light mode" type="radio" name="__palette" id="__palette_1">
137
+
138
+ <label class="md-header__button md-icon" title="Switch to light mode" for="__palette_0" hidden>
139
+ <svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 24 24"><path d="M12 7a5 5 0 0 1 5 5 5 5 0 0 1-5 5 5 5 0 0 1-5-5 5 5 0 0 1 5-5m0 2a3 3 0 0 0-3 3 3 3 0 0 0 3 3 3 3 0 0 0 3-3 3 3 0 0 0-3-3m0-7 2.39 3.42C13.65 5.15 12.84 5 12 5s-1.65.15-2.39.42zM3.34 7l4.16-.35A7.2 7.2 0 0 0 5.94 8.5c-.44.74-.69 1.5-.83 2.29zm.02 10 1.76-3.77a7.131 7.131 0 0 0 2.38 4.14zM20.65 7l-1.77 3.79a7.02 7.02 0 0 0-2.38-4.15zm-.01 10-4.14.36c.59-.51 1.12-1.14 1.54-1.86.42-.73.69-1.5.83-2.29zM12 22l-2.41-3.44c.74.27 1.55.44 2.41.44.82 0 1.63-.17 2.37-.44z"/></svg>
140
+ </label>
141
+
142
+
143
+ </form>
144
+
145
+
146
+
147
+ <script>var palette=__md_get("__palette");if(palette&&palette.color){if("(prefers-color-scheme)"===palette.color.media){var media=matchMedia("(prefers-color-scheme: light)"),input=document.querySelector(media.matches?"[data-md-color-media='(prefers-color-scheme: light)']":"[data-md-color-media='(prefers-color-scheme: dark)']");palette.color.media=input.getAttribute("data-md-color-media"),palette.color.scheme=input.getAttribute("data-md-color-scheme"),palette.color.primary=input.getAttribute("data-md-color-primary"),palette.color.accent=input.getAttribute("data-md-color-accent")}for(var[key,value]of Object.entries(palette.color))document.body.setAttribute("data-md-color-"+key,value)}</script>
148
+
149
+
150
+
151
+
152
+
153
+ <label class="md-header__button md-icon" for="__search">
154
+
155
+ <svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 24 24"><path d="M9.5 3A6.5 6.5 0 0 1 16 9.5c0 1.61-.59 3.09-1.56 4.23l.27.27h.79l5 5-1.5 1.5-5-5v-.79l-.27-.27A6.52 6.52 0 0 1 9.5 16 6.5 6.5 0 0 1 3 9.5 6.5 6.5 0 0 1 9.5 3m0 2C7 5 5 7 5 9.5S7 14 9.5 14 14 12 14 9.5 12 5 9.5 5"/></svg>
156
+ </label>
157
+ <div class="md-search" data-md-component="search" role="dialog">
158
+ <label class="md-search__overlay" for="__search"></label>
159
+ <div class="md-search__inner" role="search">
160
+ <form class="md-search__form" name="search">
161
+ <input type="text" class="md-search__input" name="query" aria-label="Search" placeholder="Search" autocapitalize="off" autocorrect="off" autocomplete="off" spellcheck="false" data-md-component="search-query" required>
162
+ <label class="md-search__icon md-icon" for="__search">
163
+
164
+ <svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 24 24"><path d="M9.5 3A6.5 6.5 0 0 1 16 9.5c0 1.61-.59 3.09-1.56 4.23l.27.27h.79l5 5-1.5 1.5-5-5v-.79l-.27-.27A6.52 6.52 0 0 1 9.5 16 6.5 6.5 0 0 1 3 9.5 6.5 6.5 0 0 1 9.5 3m0 2C7 5 5 7 5 9.5S7 14 9.5 14 14 12 14 9.5 12 5 9.5 5"/></svg>
165
+
166
+ <svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 24 24"><path d="M20 11v2H8l5.5 5.5-1.42 1.42L4.16 12l7.92-7.92L13.5 5.5 8 11z"/></svg>
167
+ </label>
168
+ <nav class="md-search__options" aria-label="Search">
169
+
170
+ <button type="reset" class="md-search__icon md-icon" title="Clear" aria-label="Clear" tabindex="-1">
171
+
172
+ <svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 24 24"><path d="M19 6.41 17.59 5 12 10.59 6.41 5 5 6.41 10.59 12 5 17.59 6.41 19 12 13.41 17.59 19 19 17.59 13.41 12z"/></svg>
173
+ </button>
174
+ </nav>
175
+
176
+ <div class="md-search__suggest" data-md-component="search-suggest"></div>
177
+
178
+ </form>
179
+ <div class="md-search__output">
180
+ <div class="md-search__scrollwrap" tabindex="0" data-md-scrollfix>
181
+ <div class="md-search-result" data-md-component="search-result">
182
+ <div class="md-search-result__meta">
183
+ Initializing search
184
+ </div>
185
+ <ol class="md-search-result__list" role="presentation"></ol>
186
+ </div>
187
+ </div>
188
+ </div>
189
+ </div>
190
+ </div>
191
+
192
+
193
+
194
+ <div class="md-header__source">
195
+ <a href="https://github.com/idorsia/caddforge-docs" title="Go to repository" class="md-source" data-md-component="source">
196
+ <div class="md-source__icon md-icon">
197
+
198
+ <svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 448 512"><!--! Font Awesome Free 7.1.0 by @fontawesome - https://fontawesome.com License - https://fontawesome.com/license/free (Icons: CC BY 4.0, Fonts: SIL OFL 1.1, Code: MIT License) Copyright 2025 Fonticons, Inc.--><path d="M439.6 236.1 244 40.5c-5.4-5.5-12.8-8.5-20.4-8.5s-15 3-20.4 8.4L162.5 81l51.5 51.5c27.1-9.1 52.7 16.8 43.4 43.7l49.7 49.7c34.2-11.8 61.2 31 35.5 56.7-26.5 26.5-70.2-2.9-56-37.3L240.3 199v121.9c25.3 12.5 22.3 41.8 9.1 55-6.4 6.4-15.2 10.1-24.3 10.1s-17.8-3.6-24.3-10.1c-17.6-17.6-11.1-46.9 11.2-56v-123c-20.8-8.5-24.6-30.7-18.6-45L142.6 101 8.5 235.1C3 240.6 0 247.9 0 255.5s3 15 8.5 20.4l195.6 195.7c5.4 5.4 12.7 8.4 20.4 8.4s15-3 20.4-8.4l194.7-194.7c5.4-5.4 8.4-12.8 8.4-20.4s-3-15-8.4-20.4"/></svg>
199
+ </div>
200
+ <div class="md-source__repository">
201
+ caddforge-docs
202
+ </div>
203
+ </a>
204
+ </div>
205
+
206
+ </nav>
207
+
208
+ </header>
209
+
210
+ <div class="md-container" data-md-component="container">
211
+
212
+
213
+
214
+
215
+
216
+
217
+ <main class="md-main" data-md-component="main">
218
+ <div class="md-main__inner md-grid">
219
+
220
+
221
+
222
+ <div class="md-sidebar md-sidebar--primary" data-md-component="sidebar" data-md-type="navigation" >
223
+ <div class="md-sidebar__scrollwrap">
224
+ <div class="md-sidebar__inner">
225
+
226
+
227
+
228
+
229
+ <nav class="md-nav md-nav--primary" aria-label="Navigation" data-md-level="0">
230
+ <label class="md-nav__title" for="__drawer">
231
+ <a href="../.." title="CADDForge" class="md-nav__button md-logo" aria-label="CADDForge" data-md-component="logo">
232
+
233
+
234
+ <svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 24 24"><path d="M12 8a3 3 0 0 0 3-3 3 3 0 0 0-3-3 3 3 0 0 0-3 3 3 3 0 0 0 3 3m0 3.54C9.64 9.35 6.5 8 3 8v11c3.5 0 6.64 1.35 9 3.54 2.36-2.19 5.5-3.54 9-3.54V8c-3.5 0-6.64 1.35-9 3.54"/></svg>
235
+
236
+ </a>
237
+ CADDForge
238
+ </label>
239
+
240
+ <div class="md-nav__source">
241
+ <a href="https://github.com/idorsia/caddforge-docs" title="Go to repository" class="md-source" data-md-component="source">
242
+ <div class="md-source__icon md-icon">
243
+
244
+ <svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 448 512"><!--! Font Awesome Free 7.1.0 by @fontawesome - https://fontawesome.com License - https://fontawesome.com/license/free (Icons: CC BY 4.0, Fonts: SIL OFL 1.1, Code: MIT License) Copyright 2025 Fonticons, Inc.--><path d="M439.6 236.1 244 40.5c-5.4-5.5-12.8-8.5-20.4-8.5s-15 3-20.4 8.4L162.5 81l51.5 51.5c27.1-9.1 52.7 16.8 43.4 43.7l49.7 49.7c34.2-11.8 61.2 31 35.5 56.7-26.5 26.5-70.2-2.9-56-37.3L240.3 199v121.9c25.3 12.5 22.3 41.8 9.1 55-6.4 6.4-15.2 10.1-24.3 10.1s-17.8-3.6-24.3-10.1c-17.6-17.6-11.1-46.9 11.2-56v-123c-20.8-8.5-24.6-30.7-18.6-45L142.6 101 8.5 235.1C3 240.6 0 247.9 0 255.5s3 15 8.5 20.4l195.6 195.7c5.4 5.4 12.7 8.4 20.4 8.4s15-3 20.4-8.4l194.7-194.7c5.4-5.4 8.4-12.8 8.4-20.4s-3-15-8.4-20.4"/></svg>
245
+ </div>
246
+ <div class="md-source__repository">
247
+ caddforge-docs
248
+ </div>
249
+ </a>
250
+ </div>
251
+
252
+ <ul class="md-nav__list" data-md-scrollfix>
253
+
254
+
255
+
256
+
257
+
258
+
259
+
260
+ <li class="md-nav__item">
261
+ <a href="../.." class="md-nav__link">
262
+
263
+
264
+
265
+ <span class="md-ellipsis">
266
+
267
+
268
+ Home
269
+
270
+
271
+
272
+ </span>
273
+
274
+
275
+
276
+ </a>
277
+ </li>
278
+
279
+
280
+
281
+
282
+
283
+
284
+
285
+
286
+
287
+
288
+
289
+
290
+
291
+
292
+
293
+
294
+
295
+
296
+
297
+
298
+
299
+
300
+
301
+
302
+
303
+
304
+
305
+ <li class="md-nav__item md-nav__item--section md-nav__item--nested">
306
+
307
+
308
+
309
+ <input class="md-nav__toggle md-toggle " type="checkbox" id="__nav_2" >
310
+
311
+
312
+ <div class="md-nav__link md-nav__container">
313
+ <a href="../../getting-started/" class="md-nav__link ">
314
+
315
+
316
+
317
+ <span class="md-ellipsis">
318
+
319
+
320
+ Getting Started
321
+
322
+
323
+
324
+ </span>
325
+
326
+
327
+
328
+ </a>
329
+
330
+
331
+ <label class="md-nav__link " for="__nav_2" id="__nav_2_label" tabindex="">
332
+ <span class="md-nav__icon md-icon"></span>
333
+ </label>
334
+
335
+ </div>
336
+
337
+ <nav class="md-nav" data-md-level="1" aria-labelledby="__nav_2_label" aria-expanded="false">
338
+ <label class="md-nav__title" for="__nav_2">
339
+ <span class="md-nav__icon md-icon"></span>
340
+
341
+
342
+ Getting Started
343
+
344
+
345
+ </label>
346
+ <ul class="md-nav__list" data-md-scrollfix>
347
+
348
+
349
+
350
+
351
+
352
+
353
+
354
+ <li class="md-nav__item">
355
+ <a href="../../getting-started/installation/" class="md-nav__link">
356
+
357
+
358
+
359
+ <span class="md-ellipsis">
360
+
361
+
362
+ Installation
363
+
364
+
365
+
366
+ </span>
367
+
368
+
369
+
370
+ </a>
371
+ </li>
372
+
373
+
374
+
375
+
376
+
377
+
378
+
379
+
380
+
381
+
382
+ <li class="md-nav__item">
383
+ <a href="../../getting-started/first-workflow/" class="md-nav__link">
384
+
385
+
386
+
387
+ <span class="md-ellipsis">
388
+
389
+
390
+ First Workflow
391
+
392
+
393
+
394
+ </span>
395
+
396
+
397
+
398
+ </a>
399
+ </li>
400
+
401
+
402
+
403
+
404
+
405
+
406
+
407
+
408
+
409
+
410
+ <li class="md-nav__item">
411
+ <a href="../../getting-started/first-pipeline/" class="md-nav__link">
412
+
413
+
414
+
415
+ <span class="md-ellipsis">
416
+
417
+
418
+ First Pipeline
419
+
420
+
421
+
422
+ </span>
423
+
424
+
425
+
426
+ </a>
427
+ </li>
428
+
429
+
430
+
431
+
432
+ </ul>
433
+ </nav>
434
+
435
+ </li>
436
+
437
+
438
+
439
+
440
+
441
+
442
+
443
+
444
+
445
+
446
+
447
+
448
+
449
+
450
+
451
+
452
+
453
+
454
+
455
+
456
+
457
+
458
+
459
+
460
+
461
+
462
+
463
+ <li class="md-nav__item md-nav__item--section md-nav__item--nested">
464
+
465
+
466
+
467
+ <input class="md-nav__toggle md-toggle " type="checkbox" id="__nav_3" >
468
+
469
+
470
+ <label class="md-nav__link" for="__nav_3" id="__nav_3_label" tabindex="">
471
+
472
+
473
+
474
+ <span class="md-ellipsis">
475
+
476
+
477
+ How-to Guides
478
+
479
+
480
+
481
+ </span>
482
+
483
+
484
+
485
+ <span class="md-nav__icon md-icon"></span>
486
+ </label>
487
+
488
+ <nav class="md-nav" data-md-level="1" aria-labelledby="__nav_3_label" aria-expanded="false">
489
+ <label class="md-nav__title" for="__nav_3">
490
+ <span class="md-nav__icon md-icon"></span>
491
+
492
+
493
+ How-to Guides
494
+
495
+
496
+ </label>
497
+ <ul class="md-nav__list" data-md-scrollfix>
498
+
499
+
500
+
501
+
502
+
503
+
504
+
505
+ <li class="md-nav__item">
506
+ <a href="../../how-to/jobs/" class="md-nav__link">
507
+
508
+
509
+
510
+ <span class="md-ellipsis">
511
+
512
+
513
+ Jobs and Results
514
+
515
+
516
+
517
+ </span>
518
+
519
+
520
+
521
+ </a>
522
+ </li>
523
+
524
+
525
+
526
+
527
+
528
+
529
+
530
+
531
+
532
+
533
+ <li class="md-nav__item">
534
+ <a href="../../how-to/scatter/" class="md-nav__link">
535
+
536
+
537
+
538
+ <span class="md-ellipsis">
539
+
540
+
541
+ Scatter and Reduce
542
+
543
+
544
+
545
+ </span>
546
+
547
+
548
+
549
+ </a>
550
+ </li>
551
+
552
+
553
+
554
+
555
+
556
+
557
+
558
+
559
+
560
+
561
+ <li class="md-nav__item">
562
+ <a href="../../how-to/troubleshooting/" class="md-nav__link">
563
+
564
+
565
+
566
+ <span class="md-ellipsis">
567
+
568
+
569
+ Troubleshooting
570
+
571
+
572
+
573
+ </span>
574
+
575
+
576
+
577
+ </a>
578
+ </li>
579
+
580
+
581
+
582
+
583
+ </ul>
584
+ </nav>
585
+
586
+ </li>
587
+
588
+
589
+
590
+
591
+
592
+
593
+
594
+
595
+
596
+
597
+
598
+
599
+
600
+
601
+
602
+
603
+
604
+
605
+
606
+
607
+
608
+
609
+
610
+
611
+
612
+
613
+
614
+
615
+
616
+
617
+
618
+
619
+
620
+ <li class="md-nav__item md-nav__item--section md-nav__item--nested">
621
+
622
+
623
+
624
+ <input class="md-nav__toggle md-toggle " type="checkbox" id="__nav_4" >
625
+
626
+
627
+ <div class="md-nav__link md-nav__container">
628
+ <a href="../../core/" class="md-nav__link ">
629
+
630
+
631
+
632
+ <span class="md-ellipsis">
633
+
634
+
635
+ Core
636
+
637
+
638
+
639
+ </span>
640
+
641
+
642
+
643
+ </a>
644
+
645
+
646
+ <label class="md-nav__link " for="__nav_4" id="__nav_4_label" tabindex="">
647
+ <span class="md-nav__icon md-icon"></span>
648
+ </label>
649
+
650
+ </div>
651
+
652
+ <nav class="md-nav" data-md-level="1" aria-labelledby="__nav_4_label" aria-expanded="false">
653
+ <label class="md-nav__title" for="__nav_4">
654
+ <span class="md-nav__icon md-icon"></span>
655
+
656
+
657
+ Core
658
+
659
+
660
+ </label>
661
+ <ul class="md-nav__list" data-md-scrollfix>
662
+
663
+
664
+
665
+
666
+
667
+
668
+
669
+ <li class="md-nav__item">
670
+ <a href="../../core/concepts/" class="md-nav__link">
671
+
672
+
673
+
674
+ <span class="md-ellipsis">
675
+
676
+
677
+ Concepts
678
+
679
+
680
+
681
+ </span>
682
+
683
+
684
+
685
+ </a>
686
+ </li>
687
+
688
+
689
+
690
+
691
+
692
+
693
+
694
+
695
+
696
+
697
+ <li class="md-nav__item">
698
+ <a href="../../core/configuration/" class="md-nav__link">
699
+
700
+
701
+
702
+ <span class="md-ellipsis">
703
+
704
+
705
+ Configuration
706
+
707
+
708
+
709
+ </span>
710
+
711
+
712
+
713
+ </a>
714
+ </li>
715
+
716
+
717
+
718
+
719
+
720
+
721
+
722
+
723
+
724
+
725
+ <li class="md-nav__item">
726
+ <a href="../../core/cli/" class="md-nav__link">
727
+
728
+
729
+
730
+ <span class="md-ellipsis">
731
+
732
+
733
+ CLI
734
+
735
+
736
+
737
+ </span>
738
+
739
+
740
+
741
+ </a>
742
+ </li>
743
+
744
+
745
+
746
+
747
+
748
+
749
+
750
+
751
+
752
+
753
+ <li class="md-nav__item">
754
+ <a href="../../core/jobs-results/" class="md-nav__link">
755
+
756
+
757
+
758
+ <span class="md-ellipsis">
759
+
760
+
761
+ Jobs and Results
762
+
763
+
764
+
765
+ </span>
766
+
767
+
768
+
769
+ </a>
770
+ </li>
771
+
772
+
773
+
774
+
775
+
776
+
777
+
778
+
779
+
780
+
781
+ <li class="md-nav__item">
782
+ <a href="../../core/slurm/" class="md-nav__link">
783
+
784
+
785
+
786
+ <span class="md-ellipsis">
787
+
788
+
789
+ Slurm Backend
790
+
791
+
792
+
793
+ </span>
794
+
795
+
796
+
797
+ </a>
798
+ </li>
799
+
800
+
801
+
802
+
803
+
804
+
805
+
806
+
807
+
808
+
809
+ <li class="md-nav__item">
810
+ <a href="../../core/plugins/" class="md-nav__link">
811
+
812
+
813
+
814
+ <span class="md-ellipsis">
815
+
816
+
817
+ Plugins
818
+
819
+
820
+
821
+ </span>
822
+
823
+
824
+
825
+ </a>
826
+ </li>
827
+
828
+
829
+
830
+
831
+ </ul>
832
+ </nav>
833
+
834
+ </li>
835
+
836
+
837
+
838
+
839
+
840
+
841
+
842
+
843
+
844
+
845
+
846
+
847
+
848
+
849
+
850
+
851
+
852
+
853
+
854
+
855
+
856
+
857
+
858
+
859
+
860
+
861
+
862
+
863
+
864
+ <li class="md-nav__item md-nav__item--section md-nav__item--nested">
865
+
866
+
867
+
868
+ <input class="md-nav__toggle md-toggle " type="checkbox" id="__nav_5" >
869
+
870
+
871
+ <div class="md-nav__link md-nav__container">
872
+ <a href="../../pipelines/" class="md-nav__link ">
873
+
874
+
875
+
876
+ <span class="md-ellipsis">
877
+
878
+
879
+ Pipelines
880
+
881
+
882
+
883
+ </span>
884
+
885
+
886
+
887
+ </a>
888
+
889
+
890
+ <label class="md-nav__link " for="__nav_5" id="__nav_5_label" tabindex="">
891
+ <span class="md-nav__icon md-icon"></span>
892
+ </label>
893
+
894
+ </div>
895
+
896
+ <nav class="md-nav" data-md-level="1" aria-labelledby="__nav_5_label" aria-expanded="false">
897
+ <label class="md-nav__title" for="__nav_5">
898
+ <span class="md-nav__icon md-icon"></span>
899
+
900
+
901
+ Pipelines
902
+
903
+
904
+ </label>
905
+ <ul class="md-nav__list" data-md-scrollfix>
906
+
907
+
908
+
909
+
910
+
911
+
912
+
913
+ <li class="md-nav__item">
914
+ <a href="../../pipelines/specification/" class="md-nav__link">
915
+
916
+
917
+
918
+ <span class="md-ellipsis">
919
+
920
+
921
+ Specification
922
+
923
+
924
+
925
+ </span>
926
+
927
+
928
+
929
+ </a>
930
+ </li>
931
+
932
+
933
+
934
+
935
+
936
+
937
+
938
+
939
+
940
+
941
+ <li class="md-nav__item">
942
+ <a href="../../pipelines/artifacts/" class="md-nav__link">
943
+
944
+
945
+
946
+ <span class="md-ellipsis">
947
+
948
+
949
+ Artifacts
950
+
951
+
952
+
953
+ </span>
954
+
955
+
956
+
957
+ </a>
958
+ </li>
959
+
960
+
961
+
962
+
963
+
964
+
965
+
966
+
967
+
968
+
969
+ <li class="md-nav__item">
970
+ <a href="../../pipelines/built-ins/" class="md-nav__link">
971
+
972
+
973
+
974
+ <span class="md-ellipsis">
975
+
976
+
977
+ Built-in Stages
978
+
979
+
980
+
981
+ </span>
982
+
983
+
984
+
985
+ </a>
986
+ </li>
987
+
988
+
989
+
990
+
991
+
992
+
993
+
994
+
995
+
996
+
997
+ <li class="md-nav__item">
998
+ <a href="../../pipelines/examples/" class="md-nav__link">
999
+
1000
+
1001
+
1002
+ <span class="md-ellipsis">
1003
+
1004
+
1005
+ Examples
1006
+
1007
+
1008
+
1009
+ </span>
1010
+
1011
+
1012
+
1013
+ </a>
1014
+ </li>
1015
+
1016
+
1017
+
1018
+
1019
+ </ul>
1020
+ </nav>
1021
+
1022
+ </li>
1023
+
1024
+
1025
+
1026
+
1027
+
1028
+
1029
+
1030
+
1031
+
1032
+
1033
+
1034
+
1035
+
1036
+
1037
+
1038
+
1039
+
1040
+
1041
+
1042
+
1043
+
1044
+
1045
+
1046
+
1047
+
1048
+
1049
+
1050
+
1051
+
1052
+
1053
+
1054
+
1055
+
1056
+
1057
+
1058
+
1059
+
1060
+ <li class="md-nav__item md-nav__item--section md-nav__item--nested">
1061
+
1062
+
1063
+
1064
+ <input class="md-nav__toggle md-toggle " type="checkbox" id="__nav_6" >
1065
+
1066
+
1067
+ <div class="md-nav__link md-nav__container">
1068
+ <a href="../../plugins/" class="md-nav__link ">
1069
+
1070
+
1071
+
1072
+ <span class="md-ellipsis">
1073
+
1074
+
1075
+ Plugins
1076
+
1077
+
1078
+
1079
+ </span>
1080
+
1081
+
1082
+
1083
+ </a>
1084
+
1085
+
1086
+ <label class="md-nav__link " for="__nav_6" id="__nav_6_label" tabindex="">
1087
+ <span class="md-nav__icon md-icon"></span>
1088
+ </label>
1089
+
1090
+ </div>
1091
+
1092
+ <nav class="md-nav" data-md-level="1" aria-labelledby="__nav_6_label" aria-expanded="false">
1093
+ <label class="md-nav__title" for="__nav_6">
1094
+ <span class="md-nav__icon md-icon"></span>
1095
+
1096
+
1097
+ Plugins
1098
+
1099
+
1100
+ </label>
1101
+ <ul class="md-nav__list" data-md-scrollfix>
1102
+
1103
+
1104
+
1105
+
1106
+
1107
+
1108
+
1109
+ <li class="md-nav__item">
1110
+ <a href="../../plugins/version-matrix/" class="md-nav__link">
1111
+
1112
+
1113
+
1114
+ <span class="md-ellipsis">
1115
+
1116
+
1117
+ Version Matrix
1118
+
1119
+
1120
+
1121
+ </span>
1122
+
1123
+
1124
+
1125
+ </a>
1126
+ </li>
1127
+
1128
+
1129
+
1130
+
1131
+
1132
+
1133
+
1134
+
1135
+
1136
+
1137
+ <li class="md-nav__item">
1138
+ <a href="../../plugins/docking/" class="md-nav__link">
1139
+
1140
+
1141
+
1142
+ <span class="md-ellipsis">
1143
+
1144
+
1145
+ Docking
1146
+
1147
+
1148
+
1149
+ </span>
1150
+
1151
+
1152
+
1153
+ </a>
1154
+ </li>
1155
+
1156
+
1157
+
1158
+
1159
+
1160
+
1161
+
1162
+
1163
+
1164
+
1165
+ <li class="md-nav__item">
1166
+ <a href="../../plugins/descriptors/" class="md-nav__link">
1167
+
1168
+
1169
+
1170
+ <span class="md-ellipsis">
1171
+
1172
+
1173
+ Descriptors
1174
+
1175
+
1176
+
1177
+ </span>
1178
+
1179
+
1180
+
1181
+ </a>
1182
+ </li>
1183
+
1184
+
1185
+
1186
+
1187
+
1188
+
1189
+
1190
+
1191
+
1192
+
1193
+ <li class="md-nav__item">
1194
+ <a href="../../plugins/md/" class="md-nav__link">
1195
+
1196
+
1197
+
1198
+ <span class="md-ellipsis">
1199
+
1200
+
1201
+ MD
1202
+
1203
+
1204
+
1205
+ </span>
1206
+
1207
+
1208
+
1209
+ </a>
1210
+ </li>
1211
+
1212
+
1213
+
1214
+
1215
+
1216
+
1217
+
1218
+
1219
+
1220
+
1221
+ <li class="md-nav__item">
1222
+ <a href="../../plugins/fep/" class="md-nav__link">
1223
+
1224
+
1225
+
1226
+ <span class="md-ellipsis">
1227
+
1228
+
1229
+ FEP
1230
+
1231
+
1232
+
1233
+ </span>
1234
+
1235
+
1236
+
1237
+ </a>
1238
+ </li>
1239
+
1240
+
1241
+
1242
+
1243
+
1244
+
1245
+
1246
+
1247
+
1248
+
1249
+ <li class="md-nav__item">
1250
+ <a href="../../plugins/qm/" class="md-nav__link">
1251
+
1252
+
1253
+
1254
+ <span class="md-ellipsis">
1255
+
1256
+
1257
+ QM
1258
+
1259
+
1260
+
1261
+ </span>
1262
+
1263
+
1264
+
1265
+ </a>
1266
+ </li>
1267
+
1268
+
1269
+
1270
+
1271
+
1272
+
1273
+
1274
+
1275
+
1276
+
1277
+ <li class="md-nav__item">
1278
+ <a href="../../plugins/ml/" class="md-nav__link">
1279
+
1280
+
1281
+
1282
+ <span class="md-ellipsis">
1283
+
1284
+
1285
+ ML
1286
+
1287
+
1288
+
1289
+ </span>
1290
+
1291
+
1292
+
1293
+ </a>
1294
+ </li>
1295
+
1296
+
1297
+
1298
+
1299
+
1300
+
1301
+
1302
+
1303
+
1304
+
1305
+ <li class="md-nav__item">
1306
+ <a href="../../plugins/datascience/" class="md-nav__link">
1307
+
1308
+
1309
+
1310
+ <span class="md-ellipsis">
1311
+
1312
+
1313
+ Data Science
1314
+
1315
+
1316
+
1317
+ </span>
1318
+
1319
+
1320
+
1321
+ </a>
1322
+ </li>
1323
+
1324
+
1325
+
1326
+
1327
+ </ul>
1328
+ </nav>
1329
+
1330
+ </li>
1331
+
1332
+
1333
+
1334
+
1335
+
1336
+
1337
+
1338
+
1339
+
1340
+
1341
+
1342
+
1343
+
1344
+
1345
+
1346
+
1347
+
1348
+
1349
+
1350
+
1351
+
1352
+
1353
+
1354
+
1355
+
1356
+ <li class="md-nav__item md-nav__item--section md-nav__item--nested">
1357
+
1358
+
1359
+
1360
+ <input class="md-nav__toggle md-toggle " type="checkbox" id="__nav_7" >
1361
+
1362
+
1363
+ <div class="md-nav__link md-nav__container">
1364
+ <a href="../../gui/" class="md-nav__link ">
1365
+
1366
+
1367
+
1368
+ <span class="md-ellipsis">
1369
+
1370
+
1371
+ GUI
1372
+
1373
+
1374
+
1375
+ </span>
1376
+
1377
+
1378
+
1379
+ </a>
1380
+
1381
+
1382
+ <label class="md-nav__link " for="__nav_7" id="__nav_7_label" tabindex="">
1383
+ <span class="md-nav__icon md-icon"></span>
1384
+ </label>
1385
+
1386
+ </div>
1387
+
1388
+ <nav class="md-nav" data-md-level="1" aria-labelledby="__nav_7_label" aria-expanded="false">
1389
+ <label class="md-nav__title" for="__nav_7">
1390
+ <span class="md-nav__icon md-icon"></span>
1391
+
1392
+
1393
+ GUI
1394
+
1395
+
1396
+ </label>
1397
+ <ul class="md-nav__list" data-md-scrollfix>
1398
+
1399
+
1400
+
1401
+
1402
+
1403
+
1404
+
1405
+ <li class="md-nav__item">
1406
+ <a href="../../gui/walkthrough/" class="md-nav__link">
1407
+
1408
+
1409
+
1410
+ <span class="md-ellipsis">
1411
+
1412
+
1413
+ Walkthrough
1414
+
1415
+
1416
+
1417
+ </span>
1418
+
1419
+
1420
+
1421
+ </a>
1422
+ </li>
1423
+
1424
+
1425
+
1426
+
1427
+
1428
+
1429
+
1430
+
1431
+
1432
+
1433
+ <li class="md-nav__item">
1434
+ <a href="../../gui/plugin-authoring/" class="md-nav__link">
1435
+
1436
+
1437
+
1438
+ <span class="md-ellipsis">
1439
+
1440
+
1441
+ Plugin GUI Authoring
1442
+
1443
+
1444
+
1445
+ </span>
1446
+
1447
+
1448
+
1449
+ </a>
1450
+ </li>
1451
+
1452
+
1453
+
1454
+
1455
+ </ul>
1456
+ </nav>
1457
+
1458
+ </li>
1459
+
1460
+
1461
+
1462
+
1463
+
1464
+
1465
+
1466
+
1467
+
1468
+
1469
+
1470
+
1471
+
1472
+
1473
+
1474
+
1475
+
1476
+
1477
+
1478
+
1479
+
1480
+
1481
+
1482
+
1483
+
1484
+
1485
+
1486
+ <li class="md-nav__item md-nav__item--section md-nav__item--nested">
1487
+
1488
+
1489
+
1490
+ <input class="md-nav__toggle md-toggle " type="checkbox" id="__nav_8" >
1491
+
1492
+
1493
+ <div class="md-nav__link md-nav__container">
1494
+ <a href="../../reference/" class="md-nav__link ">
1495
+
1496
+
1497
+
1498
+ <span class="md-ellipsis">
1499
+
1500
+
1501
+ Reference
1502
+
1503
+
1504
+
1505
+ </span>
1506
+
1507
+
1508
+
1509
+ </a>
1510
+
1511
+
1512
+ <label class="md-nav__link " for="__nav_8" id="__nav_8_label" tabindex="">
1513
+ <span class="md-nav__icon md-icon"></span>
1514
+ </label>
1515
+
1516
+ </div>
1517
+
1518
+ <nav class="md-nav" data-md-level="1" aria-labelledby="__nav_8_label" aria-expanded="false">
1519
+ <label class="md-nav__title" for="__nav_8">
1520
+ <span class="md-nav__icon md-icon"></span>
1521
+
1522
+
1523
+ Reference
1524
+
1525
+
1526
+ </label>
1527
+ <ul class="md-nav__list" data-md-scrollfix>
1528
+
1529
+
1530
+
1531
+
1532
+
1533
+
1534
+
1535
+ <li class="md-nav__item">
1536
+ <a href="../../reference/api/" class="md-nav__link">
1537
+
1538
+
1539
+
1540
+ <span class="md-ellipsis">
1541
+
1542
+
1543
+ Public Python API
1544
+
1545
+
1546
+
1547
+ </span>
1548
+
1549
+
1550
+
1551
+ </a>
1552
+ </li>
1553
+
1554
+
1555
+
1556
+
1557
+
1558
+
1559
+
1560
+
1561
+
1562
+
1563
+ <li class="md-nav__item">
1564
+ <a href="../../examples/" class="md-nav__link">
1565
+
1566
+
1567
+
1568
+ <span class="md-ellipsis">
1569
+
1570
+
1571
+ Example Library
1572
+
1573
+
1574
+
1575
+ </span>
1576
+
1577
+
1578
+
1579
+ </a>
1580
+ </li>
1581
+
1582
+
1583
+
1584
+
1585
+
1586
+
1587
+
1588
+
1589
+
1590
+
1591
+ <li class="md-nav__item">
1592
+ <a href="../../examples/quickstart/" class="md-nav__link">
1593
+
1594
+
1595
+
1596
+ <span class="md-ellipsis">
1597
+
1598
+
1599
+ Example Data Provenance
1600
+
1601
+
1602
+
1603
+ </span>
1604
+
1605
+
1606
+
1607
+ </a>
1608
+ </li>
1609
+
1610
+
1611
+
1612
+
1613
+ </ul>
1614
+ </nav>
1615
+
1616
+ </li>
1617
+
1618
+
1619
+
1620
+
1621
+
1622
+
1623
+
1624
+
1625
+
1626
+
1627
+
1628
+
1629
+
1630
+
1631
+
1632
+
1633
+
1634
+
1635
+
1636
+
1637
+
1638
+
1639
+
1640
+
1641
+
1642
+
1643
+
1644
+ <li class="md-nav__item md-nav__item--section md-nav__item--nested">
1645
+
1646
+
1647
+
1648
+ <input class="md-nav__toggle md-toggle " type="checkbox" id="__nav_9" >
1649
+
1650
+
1651
+ <label class="md-nav__link" for="__nav_9" id="__nav_9_label" tabindex="">
1652
+
1653
+
1654
+
1655
+ <span class="md-ellipsis">
1656
+
1657
+
1658
+ Explanation
1659
+
1660
+
1661
+
1662
+ </span>
1663
+
1664
+
1665
+
1666
+ <span class="md-nav__icon md-icon"></span>
1667
+ </label>
1668
+
1669
+ <nav class="md-nav" data-md-level="1" aria-labelledby="__nav_9_label" aria-expanded="false">
1670
+ <label class="md-nav__title" for="__nav_9">
1671
+ <span class="md-nav__icon md-icon"></span>
1672
+
1673
+
1674
+ Explanation
1675
+
1676
+
1677
+ </label>
1678
+ <ul class="md-nav__list" data-md-scrollfix>
1679
+
1680
+
1681
+
1682
+
1683
+
1684
+
1685
+
1686
+ <li class="md-nav__item">
1687
+ <a href="../../explanation/reproducibility/" class="md-nav__link">
1688
+
1689
+
1690
+
1691
+ <span class="md-ellipsis">
1692
+
1693
+
1694
+ Reproducibility
1695
+
1696
+
1697
+
1698
+ </span>
1699
+
1700
+
1701
+
1702
+ </a>
1703
+ </li>
1704
+
1705
+
1706
+
1707
+
1708
+
1709
+
1710
+
1711
+
1712
+
1713
+
1714
+ <li class="md-nav__item">
1715
+ <a href="../../explanation/references/" class="md-nav__link">
1716
+
1717
+
1718
+
1719
+ <span class="md-ellipsis">
1720
+
1721
+
1722
+ Method References
1723
+
1724
+
1725
+
1726
+ </span>
1727
+
1728
+
1729
+
1730
+ </a>
1731
+ </li>
1732
+
1733
+
1734
+
1735
+
1736
+
1737
+
1738
+
1739
+
1740
+
1741
+
1742
+ <li class="md-nav__item">
1743
+ <a href="../../explanation/third-party-notices/" class="md-nav__link">
1744
+
1745
+
1746
+
1747
+ <span class="md-ellipsis">
1748
+
1749
+
1750
+ Third-party Notices
1751
+
1752
+
1753
+
1754
+ </span>
1755
+
1756
+
1757
+
1758
+ </a>
1759
+ </li>
1760
+
1761
+
1762
+
1763
+
1764
+ </ul>
1765
+ </nav>
1766
+
1767
+ </li>
1768
+
1769
+
1770
+
1771
+
1772
+
1773
+
1774
+
1775
+
1776
+
1777
+
1778
+
1779
+
1780
+
1781
+
1782
+
1783
+
1784
+
1785
+
1786
+
1787
+
1788
+
1789
+
1790
+
1791
+
1792
+
1793
+
1794
+
1795
+
1796
+
1797
+
1798
+
1799
+
1800
+
1801
+
1802
+
1803
+
1804
+
1805
+ <li class="md-nav__item md-nav__item--active md-nav__item--section md-nav__item--nested">
1806
+
1807
+
1808
+
1809
+ <input class="md-nav__toggle md-toggle " type="checkbox" id="__nav_10" checked>
1810
+
1811
+
1812
+ <div class="md-nav__link md-nav__container">
1813
+ <a href="../" class="md-nav__link ">
1814
+
1815
+
1816
+
1817
+ <span class="md-ellipsis">
1818
+
1819
+
1820
+ Development
1821
+
1822
+
1823
+
1824
+ </span>
1825
+
1826
+
1827
+
1828
+ </a>
1829
+
1830
+
1831
+ <label class="md-nav__link " for="__nav_10" id="__nav_10_label" tabindex="">
1832
+ <span class="md-nav__icon md-icon"></span>
1833
+ </label>
1834
+
1835
+ </div>
1836
+
1837
+ <nav class="md-nav" data-md-level="1" aria-labelledby="__nav_10_label" aria-expanded="true">
1838
+ <label class="md-nav__title" for="__nav_10">
1839
+ <span class="md-nav__icon md-icon"></span>
1840
+
1841
+
1842
+ Development
1843
+
1844
+
1845
+ </label>
1846
+ <ul class="md-nav__list" data-md-scrollfix>
1847
+
1848
+
1849
+
1850
+
1851
+
1852
+
1853
+
1854
+ <li class="md-nav__item">
1855
+ <a href="../release-notes/" class="md-nav__link">
1856
+
1857
+
1858
+
1859
+ <span class="md-ellipsis">
1860
+
1861
+
1862
+ Release Notes
1863
+
1864
+
1865
+
1866
+ </span>
1867
+
1868
+
1869
+
1870
+ </a>
1871
+ </li>
1872
+
1873
+
1874
+
1875
+
1876
+
1877
+
1878
+
1879
+
1880
+
1881
+
1882
+ <li class="md-nav__item">
1883
+ <a href="../tool-authoring/" class="md-nav__link">
1884
+
1885
+
1886
+
1887
+ <span class="md-ellipsis">
1888
+
1889
+
1890
+ Tool Authoring
1891
+
1892
+
1893
+
1894
+ </span>
1895
+
1896
+
1897
+
1898
+ </a>
1899
+ </li>
1900
+
1901
+
1902
+
1903
+
1904
+
1905
+
1906
+
1907
+
1908
+
1909
+
1910
+
1911
+
1912
+ <li class="md-nav__item md-nav__item--active">
1913
+
1914
+ <input class="md-nav__toggle md-toggle" type="checkbox" id="__toc">
1915
+
1916
+
1917
+
1918
+
1919
+
1920
+ <label class="md-nav__link md-nav__link--active" for="__toc">
1921
+
1922
+
1923
+
1924
+ <span class="md-ellipsis">
1925
+
1926
+
1927
+ Documentation
1928
+
1929
+
1930
+
1931
+ </span>
1932
+
1933
+
1934
+
1935
+ <span class="md-nav__icon md-icon"></span>
1936
+ </label>
1937
+
1938
+ <a href="./" class="md-nav__link md-nav__link--active">
1939
+
1940
+
1941
+
1942
+ <span class="md-ellipsis">
1943
+
1944
+
1945
+ Documentation
1946
+
1947
+
1948
+
1949
+ </span>
1950
+
1951
+
1952
+
1953
+ </a>
1954
+
1955
+
1956
+
1957
+ <nav class="md-nav md-nav--secondary" aria-label="Table of contents">
1958
+
1959
+
1960
+
1961
+
1962
+
1963
+
1964
+ <label class="md-nav__title" for="__toc">
1965
+ <span class="md-nav__icon md-icon"></span>
1966
+ Table of contents
1967
+ </label>
1968
+ <ul class="md-nav__list" data-md-component="toc" data-md-scrollfix>
1969
+
1970
+ <li class="md-nav__item">
1971
+ <a href="#installed-documentation" class="md-nav__link">
1972
+ <span class="md-ellipsis">
1973
+
1974
+ Installed documentation
1975
+
1976
+ </span>
1977
+ </a>
1978
+
1979
+ </li>
1980
+
1981
+ <li class="md-nav__item">
1982
+ <a href="#source-of-truth" class="md-nav__link">
1983
+ <span class="md-ellipsis">
1984
+
1985
+ Source of truth
1986
+
1987
+ </span>
1988
+ </a>
1989
+
1990
+ </li>
1991
+
1992
+ <li class="md-nav__item">
1993
+ <a href="#writing-guidelines" class="md-nav__link">
1994
+ <span class="md-ellipsis">
1995
+
1996
+ Writing guidelines
1997
+
1998
+ </span>
1999
+ </a>
2000
+
2001
+ </li>
2002
+
2003
+ <li class="md-nav__item">
2004
+ <a href="#local-validation" class="md-nav__link">
2005
+ <span class="md-ellipsis">
2006
+
2007
+ Local validation
2008
+
2009
+ </span>
2010
+ </a>
2011
+
2012
+ </li>
2013
+
2014
+ <li class="md-nav__item">
2015
+ <a href="#public-documentation-maintenance" class="md-nav__link">
2016
+ <span class="md-ellipsis">
2017
+
2018
+ Public documentation maintenance
2019
+
2020
+ </span>
2021
+ </a>
2022
+
2023
+ </li>
2024
+
2025
+ </ul>
2026
+
2027
+ </nav>
2028
+
2029
+ </li>
2030
+
2031
+
2032
+
2033
+
2034
+
2035
+
2036
+
2037
+
2038
+
2039
+
2040
+ <li class="md-nav__item">
2041
+ <a href="../contributing/" class="md-nav__link">
2042
+
2043
+
2044
+
2045
+ <span class="md-ellipsis">
2046
+
2047
+
2048
+ Contributing
2049
+
2050
+
2051
+
2052
+ </span>
2053
+
2054
+
2055
+
2056
+ </a>
2057
+ </li>
2058
+
2059
+
2060
+
2061
+
2062
+
2063
+
2064
+
2065
+
2066
+
2067
+
2068
+ <li class="md-nav__item">
2069
+ <a href="../security/" class="md-nav__link">
2070
+
2071
+
2072
+
2073
+ <span class="md-ellipsis">
2074
+
2075
+
2076
+ Security Reporting
2077
+
2078
+
2079
+
2080
+ </span>
2081
+
2082
+
2083
+
2084
+ </a>
2085
+ </li>
2086
+
2087
+
2088
+
2089
+
2090
+
2091
+
2092
+
2093
+
2094
+
2095
+
2096
+ <li class="md-nav__item">
2097
+ <a href="../release-readiness/" class="md-nav__link">
2098
+
2099
+
2100
+
2101
+ <span class="md-ellipsis">
2102
+
2103
+
2104
+ Release Readiness
2105
+
2106
+
2107
+
2108
+ </span>
2109
+
2110
+
2111
+
2112
+ </a>
2113
+ </li>
2114
+
2115
+
2116
+
2117
+
2118
+
2119
+
2120
+
2121
+
2122
+
2123
+
2124
+ <li class="md-nav__item">
2125
+ <a href="../ci-publishing/" class="md-nav__link">
2126
+
2127
+
2128
+
2129
+ <span class="md-ellipsis">
2130
+
2131
+
2132
+ CI and Publishing
2133
+
2134
+
2135
+
2136
+ </span>
2137
+
2138
+
2139
+
2140
+ </a>
2141
+ </li>
2142
+
2143
+
2144
+
2145
+
2146
+ </ul>
2147
+ </nav>
2148
+
2149
+ </li>
2150
+
2151
+
2152
+
2153
+ </ul>
2154
+ </nav>
2155
+ </div>
2156
+ </div>
2157
+ </div>
2158
+
2159
+
2160
+
2161
+ <div class="md-sidebar md-sidebar--secondary" data-md-component="sidebar" data-md-type="toc" >
2162
+ <div class="md-sidebar__scrollwrap">
2163
+ <div class="md-sidebar__inner">
2164
+
2165
+
2166
+ <nav class="md-nav md-nav--secondary" aria-label="Table of contents">
2167
+
2168
+
2169
+
2170
+
2171
+
2172
+
2173
+ <label class="md-nav__title" for="__toc">
2174
+ <span class="md-nav__icon md-icon"></span>
2175
+ Table of contents
2176
+ </label>
2177
+ <ul class="md-nav__list" data-md-component="toc" data-md-scrollfix>
2178
+
2179
+ <li class="md-nav__item">
2180
+ <a href="#installed-documentation" class="md-nav__link">
2181
+ <span class="md-ellipsis">
2182
+
2183
+ Installed documentation
2184
+
2185
+ </span>
2186
+ </a>
2187
+
2188
+ </li>
2189
+
2190
+ <li class="md-nav__item">
2191
+ <a href="#source-of-truth" class="md-nav__link">
2192
+ <span class="md-ellipsis">
2193
+
2194
+ Source of truth
2195
+
2196
+ </span>
2197
+ </a>
2198
+
2199
+ </li>
2200
+
2201
+ <li class="md-nav__item">
2202
+ <a href="#writing-guidelines" class="md-nav__link">
2203
+ <span class="md-ellipsis">
2204
+
2205
+ Writing guidelines
2206
+
2207
+ </span>
2208
+ </a>
2209
+
2210
+ </li>
2211
+
2212
+ <li class="md-nav__item">
2213
+ <a href="#local-validation" class="md-nav__link">
2214
+ <span class="md-ellipsis">
2215
+
2216
+ Local validation
2217
+
2218
+ </span>
2219
+ </a>
2220
+
2221
+ </li>
2222
+
2223
+ <li class="md-nav__item">
2224
+ <a href="#public-documentation-maintenance" class="md-nav__link">
2225
+ <span class="md-ellipsis">
2226
+
2227
+ Public documentation maintenance
2228
+
2229
+ </span>
2230
+ </a>
2231
+
2232
+ </li>
2233
+
2234
+ </ul>
2235
+
2236
+ </nav>
2237
+ </div>
2238
+ </div>
2239
+ </div>
2240
+
2241
+
2242
+
2243
+ <div class="md-content" data-md-component="content">
2244
+
2245
+ <article class="md-content__inner md-typeset">
2246
+
2247
+
2248
+
2249
+
2250
+
2251
+
2252
+
2253
+
2254
+ <h1 id="documentation">Documentation<a class="headerlink" href="#documentation" title="Permanent link">&para;</a></h1>
2255
+ <p>This repository is the central documentation site for CADDForge.</p>
2256
+ <h2 id="installed-documentation">Installed documentation<a class="headerlink" href="#installed-documentation" title="Permanent link">&para;</a></h2>
2257
+ <p><code>caddforge-docs</code> ships a built static site and registers the optional <code>caddforge docs</code> CLI command.
2258
+ It depends on core's generic command extension interface, introduced in core 0.21.0. Serving the installed site uses Python's standard library; ProperDocs and its plugins are
2259
+ needed only for builds or authoring.</p>
2260
+ <p>Run <code>python -m build</code> to create wheel and source distributions. The wheel hook runs a strict
2261
+ ProperDocs build into the ignored <code>src/caddforge_docs/site/</code> directory. The source distribution
2262
+ includes the site sources, configuration, and build hook, and excludes generated site files.
2263
+ Editable installations also build the installed view; reinstall to refresh it after edits. Use
2264
+ <code>properdocs serve --open</code> when live reloading is needed. Build failures abort packaging.</p>
2265
+ <h2 id="source-of-truth">Source of truth<a class="headerlink" href="#source-of-truth" title="Permanent link">&para;</a></h2>
2266
+ <p>For now, plugin-specific <code>README.md</code> files remain unchanged. Central docs should still be updated
2267
+ when user-facing behavior, config fields, outputs, or pipeline contracts change.</p>
2268
+ <p>Later, plugin READMEs can be shortened to package summaries that link here.</p>
2269
+ <h2 id="writing-guidelines">Writing guidelines<a class="headerlink" href="#writing-guidelines" title="Permanent link">&para;</a></h2>
2270
+ <ul>
2271
+ <li>Document user workflows before internal implementation details.</li>
2272
+ <li>Prefer runnable CLI and Python examples.</li>
2273
+ <li>Keep config examples short and valid.</li>
2274
+ <li>Mention external software dependencies clearly.</li>
2275
+ <li>Document canonical output paths and result keys used by pipelines.</li>
2276
+ <li>Keep pipeline examples explicit about artifact names and stage IDs.</li>
2277
+ <li>When plugin behavior, config fields, outputs, or pipeline contracts change, update the plugin
2278
+ page's documented version callout and the plugin version matrix in the same change.</li>
2279
+ </ul>
2280
+ <h2 id="local-validation">Local validation<a class="headerlink" href="#local-validation" title="Permanent link">&para;</a></h2>
2281
+ <div class="highlight"><pre><span></span><code><a id="__codelineno-0-1" name="__codelineno-0-1" href="#__codelineno-0-1"></a>python<span class="w"> </span>-m<span class="w"> </span>pip<span class="w"> </span>install<span class="w"> </span>-r<span class="w"> </span>requirements.txt
2282
+ <a id="__codelineno-0-2" name="__codelineno-0-2" href="#__codelineno-0-2"></a>properdocs<span class="w"> </span>build<span class="w"> </span>--strict
2283
+ </code></pre></div>
2284
+ <h2 id="public-documentation-maintenance">Public documentation maintenance<a class="headerlink" href="#public-documentation-maintenance" title="Permanent link">&para;</a></h2>
2285
+ <p>Use explicit public package and symbol allowlists. Do not generate the site by
2286
+ importing or discovering every installed plugin. <code>scripts/update_reference.py</code>
2287
+ reads only selected core files using Python's AST; the generated reference is checked
2288
+ in so an isolated docs build needs no scientific packages or adjacent checkout.</p>
2289
+ <div class="highlight"><pre><span></span><code><a id="__codelineno-1-1" name="__codelineno-1-1" href="#__codelineno-1-1"></a>python<span class="w"> </span>scripts/update_reference.py<span class="w"> </span>../caddforge-core/src/caddforge
2290
+ <a id="__codelineno-1-2" name="__codelineno-1-2" href="#__codelineno-1-2"></a>python<span class="w"> </span>scripts/update_reference.py<span class="w"> </span>../caddforge-core/src/caddforge<span class="w"> </span>--check
2291
+ </code></pre></div>
2292
+ <p>Generate against the reviewed core version and review signatures/docstrings for
2293
+ accuracy and public content. Update the generator's version description when the
2294
+ reference baseline changes. Scientific templates and <code>docs/examples/manifest.json</code>
2295
+ are explicit public examples, not an export of all installed tools.</p>
2296
+ <div class="highlight"><pre><span></span><code><a id="__codelineno-2-1" name="__codelineno-2-1" href="#__codelineno-2-1"></a>python<span class="w"> </span>-m<span class="w"> </span>pip<span class="w"> </span>install<span class="w"> </span>-r<span class="w"> </span>requirements.txt<span class="w"> </span>-r<span class="w"> </span>requirements-test.txt
2297
+ <a id="__codelineno-2-2" name="__codelineno-2-2" href="#__codelineno-2-2"></a>python<span class="w"> </span>scripts/validate_examples.py
2298
+ <a id="__codelineno-2-3" name="__codelineno-2-3" href="#__codelineno-2-3"></a><span class="c1"># In a compatible public scientific environment, validate JSON schemas:</span>
2299
+ <a id="__codelineno-2-4" name="__codelineno-2-4" href="#__codelineno-2-4"></a>python<span class="w"> </span>scripts/validate_examples.py<span class="w"> </span>--runtime
2300
+ <a id="__codelineno-2-5" name="__codelineno-2-5" href="#__codelineno-2-5"></a>properdocs<span class="w"> </span>build<span class="w"> </span>--strict<span class="w"> </span>--site-dir<span class="w"> </span>site
2301
+ <a id="__codelineno-2-6" name="__codelineno-2-6" href="#__codelineno-2-6"></a>python<span class="w"> </span>scripts/check_links.py<span class="w"> </span>site
2302
+ <a id="__codelineno-2-7" name="__codelineno-2-7" href="#__codelineno-2-7"></a>python<span class="w"> </span>-m<span class="w"> </span>pytest<span class="w"> </span>-q
2303
+ <a id="__codelineno-2-8" name="__codelineno-2-8" href="#__codelineno-2-8"></a>python<span class="w"> </span>-m<span class="w"> </span>pytest<span class="w"> </span>tests/test_examples.py<span class="w"> </span>-q<span class="w"> </span>--require-examples
2304
+ </code></pre></div>
2305
+ <p>JSON schema validation checks required fields, types, enums and bounds, but deliberately
2306
+ cannot verify placeholder files or all custom model validators. Runtime input validation
2307
+ and scientific checks remain necessary. Docs-only CI checks syntax and manifest coverage;
2308
+ release validation adds public schemas and actual lightweight tutorial execution.</p>
2309
+ <p>Keep tutorials complete, with input provenance and expected outputs. Label prepared-input
2310
+ and heavyweight examples as templates. Keep configuration downloads synchronized with
2311
+ page snippets, and link shared explanations for units, reproducibility, and limitations.
2312
+ The writing structure follows <a href="https://diataxis.fr/start-here/">Diátaxis</a>.</p>
2313
+ <p>Review scientific data provenance, screenshots, datasets, and repository history
2314
+ before public disclosure. Never copy previous run outputs into public examples.</p>
2315
+ <p>The documentation theme is pinned to the asset version covered by the third-party
2316
+ notices. Review generated dependencies and update the pins, asset hook, notices,
2317
+ and licence texts together when upgrading it.</p>
2318
+
2319
+
2320
+
2321
+
2322
+
2323
+
2324
+
2325
+
2326
+
2327
+
2328
+
2329
+
2330
+
2331
+ </article>
2332
+ </div>
2333
+
2334
+
2335
+ <script>var target=document.getElementById(location.hash.slice(1));target&&target.name&&(target.checked=target.name.startsWith("__tabbed_"))</script>
2336
+ </div>
2337
+
2338
+ <button type="button" class="md-top md-icon" data-md-component="top" hidden>
2339
+
2340
+ <svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 24 24"><path d="M13 20h-2V8l-5.5 5.5-1.42-1.42L12 4.16l7.92 7.92-1.42 1.42L13 8z"/></svg>
2341
+ Back to top
2342
+ </button>
2343
+
2344
+ </main>
2345
+
2346
+ <footer class="md-footer">
2347
+
2348
+ <div class="md-footer-meta md-typeset">
2349
+ <div class="md-footer-meta__inner md-grid">
2350
+ <div class="md-copyright">
2351
+
2352
+
2353
+ Made with
2354
+ <a href="https://squidfunk.github.io/mkdocs-material/" target="_blank" rel="noopener">
2355
+ Material for MkDocs
2356
+ </a>
2357
+
2358
+ </div>
2359
+
2360
+ </div>
2361
+ </div>
2362
+ </footer>
2363
+
2364
+ </div>
2365
+ <div class="md-dialog" data-md-component="dialog">
2366
+ <div class="md-dialog__inner md-typeset"></div>
2367
+ </div>
2368
+
2369
+
2370
+
2371
+
2372
+
2373
+ <script id="__config" type="application/json">{"annotate": null, "base": "../..", "features": ["navigation.instant", "navigation.sections", "navigation.indexes", "navigation.top", "search.highlight", "search.suggest", "content.code.copy"], "search": "../../assets/javascripts/workers/search.2c215733.min.js", "tags": null, "translations": {"clipboard.copied": "Copied to clipboard", "clipboard.copy": "Copy to clipboard", "search.result.more.one": "1 more on this page", "search.result.more.other": "# more on this page", "search.result.none": "No matching documents", "search.result.one": "1 matching document", "search.result.other": "# matching documents", "search.result.placeholder": "Type to start searching", "search.result.term.missing": "Missing", "select.version": "Select version"}, "version": null}</script>
2374
+
2375
+
2376
+ <script src="../../assets/javascripts/bundle.d7400e89.min.js"></script>
2377
+
2378
+
2379
+ </body>
2380
+ </html>