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,4414 @@
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/reference/api/">
14
+
15
+
16
+ <link rel="prev" href="../">
17
+
18
+
19
+ <link rel="next" href="../../examples/">
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>Public Python API - 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="#public-python-api" 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
+ Public Python API
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
+
1487
+
1488
+ <li class="md-nav__item md-nav__item--active md-nav__item--section md-nav__item--nested">
1489
+
1490
+
1491
+
1492
+ <input class="md-nav__toggle md-toggle " type="checkbox" id="__nav_8" checked>
1493
+
1494
+
1495
+ <div class="md-nav__link md-nav__container">
1496
+ <a href="../" class="md-nav__link ">
1497
+
1498
+
1499
+
1500
+ <span class="md-ellipsis">
1501
+
1502
+
1503
+ Reference
1504
+
1505
+
1506
+
1507
+ </span>
1508
+
1509
+
1510
+
1511
+ </a>
1512
+
1513
+
1514
+ <label class="md-nav__link " for="__nav_8" id="__nav_8_label" tabindex="">
1515
+ <span class="md-nav__icon md-icon"></span>
1516
+ </label>
1517
+
1518
+ </div>
1519
+
1520
+ <nav class="md-nav" data-md-level="1" aria-labelledby="__nav_8_label" aria-expanded="true">
1521
+ <label class="md-nav__title" for="__nav_8">
1522
+ <span class="md-nav__icon md-icon"></span>
1523
+
1524
+
1525
+ Reference
1526
+
1527
+
1528
+ </label>
1529
+ <ul class="md-nav__list" data-md-scrollfix>
1530
+
1531
+
1532
+
1533
+
1534
+
1535
+
1536
+
1537
+
1538
+
1539
+ <li class="md-nav__item md-nav__item--active">
1540
+
1541
+ <input class="md-nav__toggle md-toggle" type="checkbox" id="__toc">
1542
+
1543
+
1544
+
1545
+
1546
+
1547
+ <label class="md-nav__link md-nav__link--active" for="__toc">
1548
+
1549
+
1550
+
1551
+ <span class="md-ellipsis">
1552
+
1553
+
1554
+ Public Python API
1555
+
1556
+
1557
+
1558
+ </span>
1559
+
1560
+
1561
+
1562
+ <span class="md-nav__icon md-icon"></span>
1563
+ </label>
1564
+
1565
+ <a href="./" class="md-nav__link md-nav__link--active">
1566
+
1567
+
1568
+
1569
+ <span class="md-ellipsis">
1570
+
1571
+
1572
+ Public Python API
1573
+
1574
+
1575
+
1576
+ </span>
1577
+
1578
+
1579
+
1580
+ </a>
1581
+
1582
+
1583
+
1584
+ <nav class="md-nav md-nav--secondary" aria-label="Table of contents">
1585
+
1586
+
1587
+
1588
+
1589
+
1590
+
1591
+ <label class="md-nav__title" for="__toc">
1592
+ <span class="md-nav__icon md-icon"></span>
1593
+ Table of contents
1594
+ </label>
1595
+ <ul class="md-nav__list" data-md-component="toc" data-md-scrollfix>
1596
+
1597
+ <li class="md-nav__item">
1598
+ <a href="#caddforgeconfigbase" class="md-nav__link">
1599
+ <span class="md-ellipsis">
1600
+
1601
+ caddforge.config.base
1602
+
1603
+ </span>
1604
+ </a>
1605
+
1606
+ <nav class="md-nav" aria-label="caddforge.config.base">
1607
+ <ul class="md-nav__list">
1608
+
1609
+ <li class="md-nav__item">
1610
+ <a href="#baseconfig" class="md-nav__link">
1611
+ <span class="md-ellipsis">
1612
+
1613
+ BaseConfig
1614
+
1615
+ </span>
1616
+ </a>
1617
+
1618
+ <nav class="md-nav" aria-label="BaseConfig">
1619
+ <ul class="md-nav__list">
1620
+
1621
+ <li class="md-nav__item">
1622
+ <a href="#from_yaml" class="md-nav__link">
1623
+ <span class="md-ellipsis">
1624
+
1625
+ from_yaml
1626
+
1627
+ </span>
1628
+ </a>
1629
+
1630
+ </li>
1631
+
1632
+ <li class="md-nav__item">
1633
+ <a href="#from_json" class="md-nav__link">
1634
+ <span class="md-ellipsis">
1635
+
1636
+ from_json
1637
+
1638
+ </span>
1639
+ </a>
1640
+
1641
+ </li>
1642
+
1643
+ <li class="md-nav__item">
1644
+ <a href="#example_dict" class="md-nav__link">
1645
+ <span class="md-ellipsis">
1646
+
1647
+ example_dict
1648
+
1649
+ </span>
1650
+ </a>
1651
+
1652
+ </li>
1653
+
1654
+ </ul>
1655
+ </nav>
1656
+
1657
+ </li>
1658
+
1659
+ </ul>
1660
+ </nav>
1661
+
1662
+ </li>
1663
+
1664
+ <li class="md-nav__item">
1665
+ <a href="#caddforgecoredataset" class="md-nav__link">
1666
+ <span class="md-ellipsis">
1667
+
1668
+ caddforge.core.dataset
1669
+
1670
+ </span>
1671
+ </a>
1672
+
1673
+ <nav class="md-nav" aria-label="caddforge.core.dataset">
1674
+ <ul class="md-nav__list">
1675
+
1676
+ <li class="md-nav__item">
1677
+ <a href="#dataset" class="md-nav__link">
1678
+ <span class="md-ellipsis">
1679
+
1680
+ Dataset
1681
+
1682
+ </span>
1683
+ </a>
1684
+
1685
+ <nav class="md-nav" aria-label="Dataset">
1686
+ <ul class="md-nav__list">
1687
+
1688
+ <li class="md-nav__item">
1689
+ <a href="#from_file" class="md-nav__link">
1690
+ <span class="md-ellipsis">
1691
+
1692
+ from_file
1693
+
1694
+ </span>
1695
+ </a>
1696
+
1697
+ </li>
1698
+
1699
+ <li class="md-nav__item">
1700
+ <a href="#from_molecules" class="md-nav__link">
1701
+ <span class="md-ellipsis">
1702
+
1703
+ from_molecules
1704
+
1705
+ </span>
1706
+ </a>
1707
+
1708
+ </li>
1709
+
1710
+ </ul>
1711
+ </nav>
1712
+
1713
+ </li>
1714
+
1715
+ <li class="md-nav__item">
1716
+ <a href="#moleculeset" class="md-nav__link">
1717
+ <span class="md-ellipsis">
1718
+
1719
+ MoleculeSet
1720
+
1721
+ </span>
1722
+ </a>
1723
+
1724
+ </li>
1725
+
1726
+ </ul>
1727
+ </nav>
1728
+
1729
+ </li>
1730
+
1731
+ <li class="md-nav__item">
1732
+ <a href="#caddforgecoremodel" class="md-nav__link">
1733
+ <span class="md-ellipsis">
1734
+
1735
+ caddforge.core.model
1736
+
1737
+ </span>
1738
+ </a>
1739
+
1740
+ <nav class="md-nav" aria-label="caddforge.core.model">
1741
+ <ul class="md-nav__list">
1742
+
1743
+ <li class="md-nav__item">
1744
+ <a href="#model" class="md-nav__link">
1745
+ <span class="md-ellipsis">
1746
+
1747
+ Model
1748
+
1749
+ </span>
1750
+ </a>
1751
+
1752
+ <nav class="md-nav" aria-label="Model">
1753
+ <ul class="md-nav__list">
1754
+
1755
+ <li class="md-nav__item">
1756
+ <a href="#fit" class="md-nav__link">
1757
+ <span class="md-ellipsis">
1758
+
1759
+ fit
1760
+
1761
+ </span>
1762
+ </a>
1763
+
1764
+ </li>
1765
+
1766
+ <li class="md-nav__item">
1767
+ <a href="#predict" class="md-nav__link">
1768
+ <span class="md-ellipsis">
1769
+
1770
+ predict
1771
+
1772
+ </span>
1773
+ </a>
1774
+
1775
+ </li>
1776
+
1777
+ </ul>
1778
+ </nav>
1779
+
1780
+ </li>
1781
+
1782
+ </ul>
1783
+ </nav>
1784
+
1785
+ </li>
1786
+
1787
+ <li class="md-nav__item">
1788
+ <a href="#caddforgecorejob" class="md-nav__link">
1789
+ <span class="md-ellipsis">
1790
+
1791
+ caddforge.core.job
1792
+
1793
+ </span>
1794
+ </a>
1795
+
1796
+ <nav class="md-nav" aria-label="caddforge.core.job">
1797
+ <ul class="md-nav__list">
1798
+
1799
+ <li class="md-nav__item">
1800
+ <a href="#jobstatus" class="md-nav__link">
1801
+ <span class="md-ellipsis">
1802
+
1803
+ JobStatus
1804
+
1805
+ </span>
1806
+ </a>
1807
+
1808
+ </li>
1809
+
1810
+ <li class="md-nav__item">
1811
+ <a href="#job" class="md-nav__link">
1812
+ <span class="md-ellipsis">
1813
+
1814
+ Job
1815
+
1816
+ </span>
1817
+ </a>
1818
+
1819
+ <nav class="md-nav" aria-label="Job">
1820
+ <ul class="md-nav__list">
1821
+
1822
+ <li class="md-nav__item">
1823
+ <a href="#to_metadata_dict" class="md-nav__link">
1824
+ <span class="md-ellipsis">
1825
+
1826
+ to_metadata_dict
1827
+
1828
+ </span>
1829
+ </a>
1830
+
1831
+ </li>
1832
+
1833
+ <li class="md-nav__item">
1834
+ <a href="#from_metadata_dict" class="md-nav__link">
1835
+ <span class="md-ellipsis">
1836
+
1837
+ from_metadata_dict
1838
+
1839
+ </span>
1840
+ </a>
1841
+
1842
+ </li>
1843
+
1844
+ <li class="md-nav__item">
1845
+ <a href="#save_metadata" class="md-nav__link">
1846
+ <span class="md-ellipsis">
1847
+
1848
+ save_metadata
1849
+
1850
+ </span>
1851
+ </a>
1852
+
1853
+ </li>
1854
+
1855
+ </ul>
1856
+ </nav>
1857
+
1858
+ </li>
1859
+
1860
+ </ul>
1861
+ </nav>
1862
+
1863
+ </li>
1864
+
1865
+ <li class="md-nav__item">
1866
+ <a href="#caddforgecoreresult" class="md-nav__link">
1867
+ <span class="md-ellipsis">
1868
+
1869
+ caddforge.core.result
1870
+
1871
+ </span>
1872
+ </a>
1873
+
1874
+ <nav class="md-nav" aria-label="caddforge.core.result">
1875
+ <ul class="md-nav__list">
1876
+
1877
+ <li class="md-nav__item">
1878
+ <a href="#result" class="md-nav__link">
1879
+ <span class="md-ellipsis">
1880
+
1881
+ Result
1882
+
1883
+ </span>
1884
+ </a>
1885
+
1886
+ <nav class="md-nav" aria-label="Result">
1887
+ <ul class="md-nav__list">
1888
+
1889
+ <li class="md-nav__item">
1890
+ <a href="#to_dict" class="md-nav__link">
1891
+ <span class="md-ellipsis">
1892
+
1893
+ to_dict
1894
+
1895
+ </span>
1896
+ </a>
1897
+
1898
+ </li>
1899
+
1900
+ <li class="md-nav__item">
1901
+ <a href="#from_dict" class="md-nav__link">
1902
+ <span class="md-ellipsis">
1903
+
1904
+ from_dict
1905
+
1906
+ </span>
1907
+ </a>
1908
+
1909
+ </li>
1910
+
1911
+ <li class="md-nav__item">
1912
+ <a href="#save" class="md-nav__link">
1913
+ <span class="md-ellipsis">
1914
+
1915
+ save
1916
+
1917
+ </span>
1918
+ </a>
1919
+
1920
+ </li>
1921
+
1922
+ </ul>
1923
+ </nav>
1924
+
1925
+ </li>
1926
+
1927
+ </ul>
1928
+ </nav>
1929
+
1930
+ </li>
1931
+
1932
+ <li class="md-nav__item">
1933
+ <a href="#caddforgecoreworkflow" class="md-nav__link">
1934
+ <span class="md-ellipsis">
1935
+
1936
+ caddforge.core.workflow
1937
+
1938
+ </span>
1939
+ </a>
1940
+
1941
+ <nav class="md-nav" aria-label="caddforge.core.workflow">
1942
+ <ul class="md-nav__list">
1943
+
1944
+ <li class="md-nav__item">
1945
+ <a href="#workflow" class="md-nav__link">
1946
+ <span class="md-ellipsis">
1947
+
1948
+ Workflow
1949
+
1950
+ </span>
1951
+ </a>
1952
+
1953
+ <nav class="md-nav" aria-label="Workflow">
1954
+ <ul class="md-nav__list">
1955
+
1956
+ <li class="md-nav__item">
1957
+ <a href="#prepare_job" class="md-nav__link">
1958
+ <span class="md-ellipsis">
1959
+
1960
+ prepare_job
1961
+
1962
+ </span>
1963
+ </a>
1964
+
1965
+ </li>
1966
+
1967
+ <li class="md-nav__item">
1968
+ <a href="#run" class="md-nav__link">
1969
+ <span class="md-ellipsis">
1970
+
1971
+ run
1972
+
1973
+ </span>
1974
+ </a>
1975
+
1976
+ </li>
1977
+
1978
+ </ul>
1979
+ </nav>
1980
+
1981
+ </li>
1982
+
1983
+ </ul>
1984
+ </nav>
1985
+
1986
+ </li>
1987
+
1988
+ <li class="md-nav__item">
1989
+ <a href="#caddforgecoreexecution" class="md-nav__link">
1990
+ <span class="md-ellipsis">
1991
+
1992
+ caddforge.core.execution
1993
+
1994
+ </span>
1995
+ </a>
1996
+
1997
+ <nav class="md-nav" aria-label="caddforge.core.execution">
1998
+ <ul class="md-nav__list">
1999
+
2000
+ <li class="md-nav__item">
2001
+ <a href="#backendoptions" class="md-nav__link">
2002
+ <span class="md-ellipsis">
2003
+
2004
+ BackendOptions
2005
+
2006
+ </span>
2007
+ </a>
2008
+
2009
+ </li>
2010
+
2011
+ <li class="md-nav__item">
2012
+ <a href="#submit_workflow" class="md-nav__link">
2013
+ <span class="md-ellipsis">
2014
+
2015
+ submit_workflow
2016
+
2017
+ </span>
2018
+ </a>
2019
+
2020
+ </li>
2021
+
2022
+ <li class="md-nav__item">
2023
+ <a href="#load_result_for_job" class="md-nav__link">
2024
+ <span class="md-ellipsis">
2025
+
2026
+ load_result_for_job
2027
+
2028
+ </span>
2029
+ </a>
2030
+
2031
+ </li>
2032
+
2033
+ </ul>
2034
+ </nav>
2035
+
2036
+ </li>
2037
+
2038
+ <li class="md-nav__item">
2039
+ <a href="#caddforgecorebackend" class="md-nav__link">
2040
+ <span class="md-ellipsis">
2041
+
2042
+ caddforge.core.backend
2043
+
2044
+ </span>
2045
+ </a>
2046
+
2047
+ <nav class="md-nav" aria-label="caddforge.core.backend">
2048
+ <ul class="md-nav__list">
2049
+
2050
+ <li class="md-nav__item">
2051
+ <a href="#backend" class="md-nav__link">
2052
+ <span class="md-ellipsis">
2053
+
2054
+ Backend
2055
+
2056
+ </span>
2057
+ </a>
2058
+
2059
+ <nav class="md-nav" aria-label="Backend">
2060
+ <ul class="md-nav__list">
2061
+
2062
+ <li class="md-nav__item">
2063
+ <a href="#submit" class="md-nav__link">
2064
+ <span class="md-ellipsis">
2065
+
2066
+ submit
2067
+
2068
+ </span>
2069
+ </a>
2070
+
2071
+ </li>
2072
+
2073
+ <li class="md-nav__item">
2074
+ <a href="#submit_shell_commands" class="md-nav__link">
2075
+ <span class="md-ellipsis">
2076
+
2077
+ submit_shell_commands
2078
+
2079
+ </span>
2080
+ </a>
2081
+
2082
+ </li>
2083
+
2084
+ <li class="md-nav__item">
2085
+ <a href="#query_status" class="md-nav__link">
2086
+ <span class="md-ellipsis">
2087
+
2088
+ query_status
2089
+
2090
+ </span>
2091
+ </a>
2092
+
2093
+ </li>
2094
+
2095
+ <li class="md-nav__item">
2096
+ <a href="#cancel" class="md-nav__link">
2097
+ <span class="md-ellipsis">
2098
+
2099
+ cancel
2100
+
2101
+ </span>
2102
+ </a>
2103
+
2104
+ </li>
2105
+
2106
+ </ul>
2107
+ </nav>
2108
+
2109
+ </li>
2110
+
2111
+ </ul>
2112
+ </nav>
2113
+
2114
+ </li>
2115
+
2116
+ <li class="md-nav__item">
2117
+ <a href="#caddforgecoreartifacts" class="md-nav__link">
2118
+ <span class="md-ellipsis">
2119
+
2120
+ caddforge.core.artifacts
2121
+
2122
+ </span>
2123
+ </a>
2124
+
2125
+ <nav class="md-nav" aria-label="caddforge.core.artifacts">
2126
+ <ul class="md-nav__list">
2127
+
2128
+ <li class="md-nav__item">
2129
+ <a href="#artifactkind" class="md-nav__link">
2130
+ <span class="md-ellipsis">
2131
+
2132
+ ArtifactKind
2133
+
2134
+ </span>
2135
+ </a>
2136
+
2137
+ </li>
2138
+
2139
+ <li class="md-nav__item">
2140
+ <a href="#artifactref" class="md-nav__link">
2141
+ <span class="md-ellipsis">
2142
+
2143
+ ArtifactRef
2144
+
2145
+ </span>
2146
+ </a>
2147
+
2148
+ <nav class="md-nav" aria-label="ArtifactRef">
2149
+ <ul class="md-nav__list">
2150
+
2151
+ <li class="md-nav__item">
2152
+ <a href="#primary_path" class="md-nav__link">
2153
+ <span class="md-ellipsis">
2154
+
2155
+ primary_path
2156
+
2157
+ </span>
2158
+ </a>
2159
+
2160
+ </li>
2161
+
2162
+ <li class="md-nav__item">
2163
+ <a href="#to_dict_1" class="md-nav__link">
2164
+ <span class="md-ellipsis">
2165
+
2166
+ to_dict
2167
+
2168
+ </span>
2169
+ </a>
2170
+
2171
+ </li>
2172
+
2173
+ <li class="md-nav__item">
2174
+ <a href="#from_dict_1" class="md-nav__link">
2175
+ <span class="md-ellipsis">
2176
+
2177
+ from_dict
2178
+
2179
+ </span>
2180
+ </a>
2181
+
2182
+ </li>
2183
+
2184
+ </ul>
2185
+ </nav>
2186
+
2187
+ </li>
2188
+
2189
+ <li class="md-nav__item">
2190
+ <a href="#inputport" class="md-nav__link">
2191
+ <span class="md-ellipsis">
2192
+
2193
+ InputPort
2194
+
2195
+ </span>
2196
+ </a>
2197
+
2198
+ </li>
2199
+
2200
+ <li class="md-nav__item">
2201
+ <a href="#outputport" class="md-nav__link">
2202
+ <span class="md-ellipsis">
2203
+
2204
+ OutputPort
2205
+
2206
+ </span>
2207
+ </a>
2208
+
2209
+ </li>
2210
+
2211
+ <li class="md-nav__item">
2212
+ <a href="#splitcontract" class="md-nav__link">
2213
+ <span class="md-ellipsis">
2214
+
2215
+ SplitContract
2216
+
2217
+ </span>
2218
+ </a>
2219
+
2220
+ </li>
2221
+
2222
+ </ul>
2223
+ </nav>
2224
+
2225
+ </li>
2226
+
2227
+ <li class="md-nav__item">
2228
+ <a href="#caddforgecoretool" class="md-nav__link">
2229
+ <span class="md-ellipsis">
2230
+
2231
+ caddforge.core.tool
2232
+
2233
+ </span>
2234
+ </a>
2235
+
2236
+ <nav class="md-nav" aria-label="caddforge.core.tool">
2237
+ <ul class="md-nav__list">
2238
+
2239
+ <li class="md-nav__item">
2240
+ <a href="#toolplugin" class="md-nav__link">
2241
+ <span class="md-ellipsis">
2242
+
2243
+ ToolPlugin
2244
+
2245
+ </span>
2246
+ </a>
2247
+
2248
+ </li>
2249
+
2250
+ <li class="md-nav__item">
2251
+ <a href="#toolspec" class="md-nav__link">
2252
+ <span class="md-ellipsis">
2253
+
2254
+ ToolSpec
2255
+
2256
+ </span>
2257
+ </a>
2258
+
2259
+ </li>
2260
+
2261
+ </ul>
2262
+ </nav>
2263
+
2264
+ </li>
2265
+
2266
+ <li class="md-nav__item">
2267
+ <a href="#caddforgeplugins" class="md-nav__link">
2268
+ <span class="md-ellipsis">
2269
+
2270
+ caddforge.plugins
2271
+
2272
+ </span>
2273
+ </a>
2274
+
2275
+ <nav class="md-nav" aria-label="caddforge.plugins">
2276
+ <ul class="md-nav__list">
2277
+
2278
+ <li class="md-nav__item">
2279
+ <a href="#get_tool" class="md-nav__link">
2280
+ <span class="md-ellipsis">
2281
+
2282
+ get_tool
2283
+
2284
+ </span>
2285
+ </a>
2286
+
2287
+ </li>
2288
+
2289
+ </ul>
2290
+ </nav>
2291
+
2292
+ </li>
2293
+
2294
+ <li class="md-nav__item">
2295
+ <a href="#caddforgepipelinespec" class="md-nav__link">
2296
+ <span class="md-ellipsis">
2297
+
2298
+ caddforge.pipeline.spec
2299
+
2300
+ </span>
2301
+ </a>
2302
+
2303
+ <nav class="md-nav" aria-label="caddforge.pipeline.spec">
2304
+ <ul class="md-nav__list">
2305
+
2306
+ <li class="md-nav__item">
2307
+ <a href="#pipelinespec" class="md-nav__link">
2308
+ <span class="md-ellipsis">
2309
+
2310
+ PipelineSpec
2311
+
2312
+ </span>
2313
+ </a>
2314
+
2315
+ </li>
2316
+
2317
+ <li class="md-nav__item">
2318
+ <a href="#pipelinestagespec" class="md-nav__link">
2319
+ <span class="md-ellipsis">
2320
+
2321
+ PipelineStageSpec
2322
+
2323
+ </span>
2324
+ </a>
2325
+
2326
+ </li>
2327
+
2328
+ <li class="md-nav__item">
2329
+ <a href="#pipelinedefaults" class="md-nav__link">
2330
+ <span class="md-ellipsis">
2331
+
2332
+ PipelineDefaults
2333
+
2334
+ </span>
2335
+ </a>
2336
+
2337
+ </li>
2338
+
2339
+ <li class="md-nav__item">
2340
+ <a href="#scatterspec" class="md-nav__link">
2341
+ <span class="md-ellipsis">
2342
+
2343
+ ScatterSpec
2344
+
2345
+ </span>
2346
+ </a>
2347
+
2348
+ </li>
2349
+
2350
+ <li class="md-nav__item">
2351
+ <a href="#load_pipeline_spec" class="md-nav__link">
2352
+ <span class="md-ellipsis">
2353
+
2354
+ load_pipeline_spec
2355
+
2356
+ </span>
2357
+ </a>
2358
+
2359
+ </li>
2360
+
2361
+ </ul>
2362
+ </nav>
2363
+
2364
+ </li>
2365
+
2366
+ <li class="md-nav__item">
2367
+ <a href="#caddforgepipelineexecutor" class="md-nav__link">
2368
+ <span class="md-ellipsis">
2369
+
2370
+ caddforge.pipeline.executor
2371
+
2372
+ </span>
2373
+ </a>
2374
+
2375
+ <nav class="md-nav" aria-label="caddforge.pipeline.executor">
2376
+ <ul class="md-nav__list">
2377
+
2378
+ <li class="md-nav__item">
2379
+ <a href="#pipelineexecutionresult" class="md-nav__link">
2380
+ <span class="md-ellipsis">
2381
+
2382
+ PipelineExecutionResult
2383
+
2384
+ </span>
2385
+ </a>
2386
+
2387
+ </li>
2388
+
2389
+ <li class="md-nav__item">
2390
+ <a href="#run_pipeline" class="md-nav__link">
2391
+ <span class="md-ellipsis">
2392
+
2393
+ run_pipeline
2394
+
2395
+ </span>
2396
+ </a>
2397
+
2398
+ </li>
2399
+
2400
+ </ul>
2401
+ </nav>
2402
+
2403
+ </li>
2404
+
2405
+ </ul>
2406
+
2407
+ </nav>
2408
+
2409
+ </li>
2410
+
2411
+
2412
+
2413
+
2414
+
2415
+
2416
+
2417
+
2418
+
2419
+
2420
+ <li class="md-nav__item">
2421
+ <a href="../../examples/" class="md-nav__link">
2422
+
2423
+
2424
+
2425
+ <span class="md-ellipsis">
2426
+
2427
+
2428
+ Example Library
2429
+
2430
+
2431
+
2432
+ </span>
2433
+
2434
+
2435
+
2436
+ </a>
2437
+ </li>
2438
+
2439
+
2440
+
2441
+
2442
+
2443
+
2444
+
2445
+
2446
+
2447
+
2448
+ <li class="md-nav__item">
2449
+ <a href="../../examples/quickstart/" class="md-nav__link">
2450
+
2451
+
2452
+
2453
+ <span class="md-ellipsis">
2454
+
2455
+
2456
+ Example Data Provenance
2457
+
2458
+
2459
+
2460
+ </span>
2461
+
2462
+
2463
+
2464
+ </a>
2465
+ </li>
2466
+
2467
+
2468
+
2469
+
2470
+ </ul>
2471
+ </nav>
2472
+
2473
+ </li>
2474
+
2475
+
2476
+
2477
+
2478
+
2479
+
2480
+
2481
+
2482
+
2483
+
2484
+
2485
+
2486
+
2487
+
2488
+
2489
+
2490
+
2491
+
2492
+
2493
+
2494
+
2495
+
2496
+
2497
+
2498
+
2499
+
2500
+
2501
+ <li class="md-nav__item md-nav__item--section md-nav__item--nested">
2502
+
2503
+
2504
+
2505
+ <input class="md-nav__toggle md-toggle " type="checkbox" id="__nav_9" >
2506
+
2507
+
2508
+ <label class="md-nav__link" for="__nav_9" id="__nav_9_label" tabindex="">
2509
+
2510
+
2511
+
2512
+ <span class="md-ellipsis">
2513
+
2514
+
2515
+ Explanation
2516
+
2517
+
2518
+
2519
+ </span>
2520
+
2521
+
2522
+
2523
+ <span class="md-nav__icon md-icon"></span>
2524
+ </label>
2525
+
2526
+ <nav class="md-nav" data-md-level="1" aria-labelledby="__nav_9_label" aria-expanded="false">
2527
+ <label class="md-nav__title" for="__nav_9">
2528
+ <span class="md-nav__icon md-icon"></span>
2529
+
2530
+
2531
+ Explanation
2532
+
2533
+
2534
+ </label>
2535
+ <ul class="md-nav__list" data-md-scrollfix>
2536
+
2537
+
2538
+
2539
+
2540
+
2541
+
2542
+
2543
+ <li class="md-nav__item">
2544
+ <a href="../../explanation/reproducibility/" class="md-nav__link">
2545
+
2546
+
2547
+
2548
+ <span class="md-ellipsis">
2549
+
2550
+
2551
+ Reproducibility
2552
+
2553
+
2554
+
2555
+ </span>
2556
+
2557
+
2558
+
2559
+ </a>
2560
+ </li>
2561
+
2562
+
2563
+
2564
+
2565
+
2566
+
2567
+
2568
+
2569
+
2570
+
2571
+ <li class="md-nav__item">
2572
+ <a href="../../explanation/references/" class="md-nav__link">
2573
+
2574
+
2575
+
2576
+ <span class="md-ellipsis">
2577
+
2578
+
2579
+ Method References
2580
+
2581
+
2582
+
2583
+ </span>
2584
+
2585
+
2586
+
2587
+ </a>
2588
+ </li>
2589
+
2590
+
2591
+
2592
+
2593
+
2594
+
2595
+
2596
+
2597
+
2598
+
2599
+ <li class="md-nav__item">
2600
+ <a href="../../explanation/third-party-notices/" class="md-nav__link">
2601
+
2602
+
2603
+
2604
+ <span class="md-ellipsis">
2605
+
2606
+
2607
+ Third-party Notices
2608
+
2609
+
2610
+
2611
+ </span>
2612
+
2613
+
2614
+
2615
+ </a>
2616
+ </li>
2617
+
2618
+
2619
+
2620
+
2621
+ </ul>
2622
+ </nav>
2623
+
2624
+ </li>
2625
+
2626
+
2627
+
2628
+
2629
+
2630
+
2631
+
2632
+
2633
+
2634
+
2635
+
2636
+
2637
+
2638
+
2639
+
2640
+
2641
+
2642
+
2643
+
2644
+
2645
+
2646
+
2647
+
2648
+
2649
+
2650
+
2651
+
2652
+
2653
+
2654
+
2655
+
2656
+
2657
+
2658
+
2659
+
2660
+ <li class="md-nav__item md-nav__item--section md-nav__item--nested">
2661
+
2662
+
2663
+
2664
+ <input class="md-nav__toggle md-toggle " type="checkbox" id="__nav_10" >
2665
+
2666
+
2667
+ <div class="md-nav__link md-nav__container">
2668
+ <a href="../../development/" class="md-nav__link ">
2669
+
2670
+
2671
+
2672
+ <span class="md-ellipsis">
2673
+
2674
+
2675
+ Development
2676
+
2677
+
2678
+
2679
+ </span>
2680
+
2681
+
2682
+
2683
+ </a>
2684
+
2685
+
2686
+ <label class="md-nav__link " for="__nav_10" id="__nav_10_label" tabindex="">
2687
+ <span class="md-nav__icon md-icon"></span>
2688
+ </label>
2689
+
2690
+ </div>
2691
+
2692
+ <nav class="md-nav" data-md-level="1" aria-labelledby="__nav_10_label" aria-expanded="false">
2693
+ <label class="md-nav__title" for="__nav_10">
2694
+ <span class="md-nav__icon md-icon"></span>
2695
+
2696
+
2697
+ Development
2698
+
2699
+
2700
+ </label>
2701
+ <ul class="md-nav__list" data-md-scrollfix>
2702
+
2703
+
2704
+
2705
+
2706
+
2707
+
2708
+
2709
+ <li class="md-nav__item">
2710
+ <a href="../../development/release-notes/" class="md-nav__link">
2711
+
2712
+
2713
+
2714
+ <span class="md-ellipsis">
2715
+
2716
+
2717
+ Release Notes
2718
+
2719
+
2720
+
2721
+ </span>
2722
+
2723
+
2724
+
2725
+ </a>
2726
+ </li>
2727
+
2728
+
2729
+
2730
+
2731
+
2732
+
2733
+
2734
+
2735
+
2736
+
2737
+ <li class="md-nav__item">
2738
+ <a href="../../development/tool-authoring/" class="md-nav__link">
2739
+
2740
+
2741
+
2742
+ <span class="md-ellipsis">
2743
+
2744
+
2745
+ Tool Authoring
2746
+
2747
+
2748
+
2749
+ </span>
2750
+
2751
+
2752
+
2753
+ </a>
2754
+ </li>
2755
+
2756
+
2757
+
2758
+
2759
+
2760
+
2761
+
2762
+
2763
+
2764
+
2765
+ <li class="md-nav__item">
2766
+ <a href="../../development/documentation/" class="md-nav__link">
2767
+
2768
+
2769
+
2770
+ <span class="md-ellipsis">
2771
+
2772
+
2773
+ Documentation
2774
+
2775
+
2776
+
2777
+ </span>
2778
+
2779
+
2780
+
2781
+ </a>
2782
+ </li>
2783
+
2784
+
2785
+
2786
+
2787
+
2788
+
2789
+
2790
+
2791
+
2792
+
2793
+ <li class="md-nav__item">
2794
+ <a href="../../development/contributing/" class="md-nav__link">
2795
+
2796
+
2797
+
2798
+ <span class="md-ellipsis">
2799
+
2800
+
2801
+ Contributing
2802
+
2803
+
2804
+
2805
+ </span>
2806
+
2807
+
2808
+
2809
+ </a>
2810
+ </li>
2811
+
2812
+
2813
+
2814
+
2815
+
2816
+
2817
+
2818
+
2819
+
2820
+
2821
+ <li class="md-nav__item">
2822
+ <a href="../../development/security/" class="md-nav__link">
2823
+
2824
+
2825
+
2826
+ <span class="md-ellipsis">
2827
+
2828
+
2829
+ Security Reporting
2830
+
2831
+
2832
+
2833
+ </span>
2834
+
2835
+
2836
+
2837
+ </a>
2838
+ </li>
2839
+
2840
+
2841
+
2842
+
2843
+
2844
+
2845
+
2846
+
2847
+
2848
+
2849
+ <li class="md-nav__item">
2850
+ <a href="../../development/release-readiness/" class="md-nav__link">
2851
+
2852
+
2853
+
2854
+ <span class="md-ellipsis">
2855
+
2856
+
2857
+ Release Readiness
2858
+
2859
+
2860
+
2861
+ </span>
2862
+
2863
+
2864
+
2865
+ </a>
2866
+ </li>
2867
+
2868
+
2869
+
2870
+
2871
+
2872
+
2873
+
2874
+
2875
+
2876
+
2877
+ <li class="md-nav__item">
2878
+ <a href="../../development/ci-publishing/" class="md-nav__link">
2879
+
2880
+
2881
+
2882
+ <span class="md-ellipsis">
2883
+
2884
+
2885
+ CI and Publishing
2886
+
2887
+
2888
+
2889
+ </span>
2890
+
2891
+
2892
+
2893
+ </a>
2894
+ </li>
2895
+
2896
+
2897
+
2898
+
2899
+ </ul>
2900
+ </nav>
2901
+
2902
+ </li>
2903
+
2904
+
2905
+
2906
+ </ul>
2907
+ </nav>
2908
+ </div>
2909
+ </div>
2910
+ </div>
2911
+
2912
+
2913
+
2914
+ <div class="md-sidebar md-sidebar--secondary" data-md-component="sidebar" data-md-type="toc" >
2915
+ <div class="md-sidebar__scrollwrap">
2916
+ <div class="md-sidebar__inner">
2917
+
2918
+
2919
+ <nav class="md-nav md-nav--secondary" aria-label="Table of contents">
2920
+
2921
+
2922
+
2923
+
2924
+
2925
+
2926
+ <label class="md-nav__title" for="__toc">
2927
+ <span class="md-nav__icon md-icon"></span>
2928
+ Table of contents
2929
+ </label>
2930
+ <ul class="md-nav__list" data-md-component="toc" data-md-scrollfix>
2931
+
2932
+ <li class="md-nav__item">
2933
+ <a href="#caddforgeconfigbase" class="md-nav__link">
2934
+ <span class="md-ellipsis">
2935
+
2936
+ caddforge.config.base
2937
+
2938
+ </span>
2939
+ </a>
2940
+
2941
+ <nav class="md-nav" aria-label="caddforge.config.base">
2942
+ <ul class="md-nav__list">
2943
+
2944
+ <li class="md-nav__item">
2945
+ <a href="#baseconfig" class="md-nav__link">
2946
+ <span class="md-ellipsis">
2947
+
2948
+ BaseConfig
2949
+
2950
+ </span>
2951
+ </a>
2952
+
2953
+ <nav class="md-nav" aria-label="BaseConfig">
2954
+ <ul class="md-nav__list">
2955
+
2956
+ <li class="md-nav__item">
2957
+ <a href="#from_yaml" class="md-nav__link">
2958
+ <span class="md-ellipsis">
2959
+
2960
+ from_yaml
2961
+
2962
+ </span>
2963
+ </a>
2964
+
2965
+ </li>
2966
+
2967
+ <li class="md-nav__item">
2968
+ <a href="#from_json" class="md-nav__link">
2969
+ <span class="md-ellipsis">
2970
+
2971
+ from_json
2972
+
2973
+ </span>
2974
+ </a>
2975
+
2976
+ </li>
2977
+
2978
+ <li class="md-nav__item">
2979
+ <a href="#example_dict" class="md-nav__link">
2980
+ <span class="md-ellipsis">
2981
+
2982
+ example_dict
2983
+
2984
+ </span>
2985
+ </a>
2986
+
2987
+ </li>
2988
+
2989
+ </ul>
2990
+ </nav>
2991
+
2992
+ </li>
2993
+
2994
+ </ul>
2995
+ </nav>
2996
+
2997
+ </li>
2998
+
2999
+ <li class="md-nav__item">
3000
+ <a href="#caddforgecoredataset" class="md-nav__link">
3001
+ <span class="md-ellipsis">
3002
+
3003
+ caddforge.core.dataset
3004
+
3005
+ </span>
3006
+ </a>
3007
+
3008
+ <nav class="md-nav" aria-label="caddforge.core.dataset">
3009
+ <ul class="md-nav__list">
3010
+
3011
+ <li class="md-nav__item">
3012
+ <a href="#dataset" class="md-nav__link">
3013
+ <span class="md-ellipsis">
3014
+
3015
+ Dataset
3016
+
3017
+ </span>
3018
+ </a>
3019
+
3020
+ <nav class="md-nav" aria-label="Dataset">
3021
+ <ul class="md-nav__list">
3022
+
3023
+ <li class="md-nav__item">
3024
+ <a href="#from_file" class="md-nav__link">
3025
+ <span class="md-ellipsis">
3026
+
3027
+ from_file
3028
+
3029
+ </span>
3030
+ </a>
3031
+
3032
+ </li>
3033
+
3034
+ <li class="md-nav__item">
3035
+ <a href="#from_molecules" class="md-nav__link">
3036
+ <span class="md-ellipsis">
3037
+
3038
+ from_molecules
3039
+
3040
+ </span>
3041
+ </a>
3042
+
3043
+ </li>
3044
+
3045
+ </ul>
3046
+ </nav>
3047
+
3048
+ </li>
3049
+
3050
+ <li class="md-nav__item">
3051
+ <a href="#moleculeset" class="md-nav__link">
3052
+ <span class="md-ellipsis">
3053
+
3054
+ MoleculeSet
3055
+
3056
+ </span>
3057
+ </a>
3058
+
3059
+ </li>
3060
+
3061
+ </ul>
3062
+ </nav>
3063
+
3064
+ </li>
3065
+
3066
+ <li class="md-nav__item">
3067
+ <a href="#caddforgecoremodel" class="md-nav__link">
3068
+ <span class="md-ellipsis">
3069
+
3070
+ caddforge.core.model
3071
+
3072
+ </span>
3073
+ </a>
3074
+
3075
+ <nav class="md-nav" aria-label="caddforge.core.model">
3076
+ <ul class="md-nav__list">
3077
+
3078
+ <li class="md-nav__item">
3079
+ <a href="#model" class="md-nav__link">
3080
+ <span class="md-ellipsis">
3081
+
3082
+ Model
3083
+
3084
+ </span>
3085
+ </a>
3086
+
3087
+ <nav class="md-nav" aria-label="Model">
3088
+ <ul class="md-nav__list">
3089
+
3090
+ <li class="md-nav__item">
3091
+ <a href="#fit" class="md-nav__link">
3092
+ <span class="md-ellipsis">
3093
+
3094
+ fit
3095
+
3096
+ </span>
3097
+ </a>
3098
+
3099
+ </li>
3100
+
3101
+ <li class="md-nav__item">
3102
+ <a href="#predict" class="md-nav__link">
3103
+ <span class="md-ellipsis">
3104
+
3105
+ predict
3106
+
3107
+ </span>
3108
+ </a>
3109
+
3110
+ </li>
3111
+
3112
+ </ul>
3113
+ </nav>
3114
+
3115
+ </li>
3116
+
3117
+ </ul>
3118
+ </nav>
3119
+
3120
+ </li>
3121
+
3122
+ <li class="md-nav__item">
3123
+ <a href="#caddforgecorejob" class="md-nav__link">
3124
+ <span class="md-ellipsis">
3125
+
3126
+ caddforge.core.job
3127
+
3128
+ </span>
3129
+ </a>
3130
+
3131
+ <nav class="md-nav" aria-label="caddforge.core.job">
3132
+ <ul class="md-nav__list">
3133
+
3134
+ <li class="md-nav__item">
3135
+ <a href="#jobstatus" class="md-nav__link">
3136
+ <span class="md-ellipsis">
3137
+
3138
+ JobStatus
3139
+
3140
+ </span>
3141
+ </a>
3142
+
3143
+ </li>
3144
+
3145
+ <li class="md-nav__item">
3146
+ <a href="#job" class="md-nav__link">
3147
+ <span class="md-ellipsis">
3148
+
3149
+ Job
3150
+
3151
+ </span>
3152
+ </a>
3153
+
3154
+ <nav class="md-nav" aria-label="Job">
3155
+ <ul class="md-nav__list">
3156
+
3157
+ <li class="md-nav__item">
3158
+ <a href="#to_metadata_dict" class="md-nav__link">
3159
+ <span class="md-ellipsis">
3160
+
3161
+ to_metadata_dict
3162
+
3163
+ </span>
3164
+ </a>
3165
+
3166
+ </li>
3167
+
3168
+ <li class="md-nav__item">
3169
+ <a href="#from_metadata_dict" class="md-nav__link">
3170
+ <span class="md-ellipsis">
3171
+
3172
+ from_metadata_dict
3173
+
3174
+ </span>
3175
+ </a>
3176
+
3177
+ </li>
3178
+
3179
+ <li class="md-nav__item">
3180
+ <a href="#save_metadata" class="md-nav__link">
3181
+ <span class="md-ellipsis">
3182
+
3183
+ save_metadata
3184
+
3185
+ </span>
3186
+ </a>
3187
+
3188
+ </li>
3189
+
3190
+ </ul>
3191
+ </nav>
3192
+
3193
+ </li>
3194
+
3195
+ </ul>
3196
+ </nav>
3197
+
3198
+ </li>
3199
+
3200
+ <li class="md-nav__item">
3201
+ <a href="#caddforgecoreresult" class="md-nav__link">
3202
+ <span class="md-ellipsis">
3203
+
3204
+ caddforge.core.result
3205
+
3206
+ </span>
3207
+ </a>
3208
+
3209
+ <nav class="md-nav" aria-label="caddforge.core.result">
3210
+ <ul class="md-nav__list">
3211
+
3212
+ <li class="md-nav__item">
3213
+ <a href="#result" class="md-nav__link">
3214
+ <span class="md-ellipsis">
3215
+
3216
+ Result
3217
+
3218
+ </span>
3219
+ </a>
3220
+
3221
+ <nav class="md-nav" aria-label="Result">
3222
+ <ul class="md-nav__list">
3223
+
3224
+ <li class="md-nav__item">
3225
+ <a href="#to_dict" class="md-nav__link">
3226
+ <span class="md-ellipsis">
3227
+
3228
+ to_dict
3229
+
3230
+ </span>
3231
+ </a>
3232
+
3233
+ </li>
3234
+
3235
+ <li class="md-nav__item">
3236
+ <a href="#from_dict" class="md-nav__link">
3237
+ <span class="md-ellipsis">
3238
+
3239
+ from_dict
3240
+
3241
+ </span>
3242
+ </a>
3243
+
3244
+ </li>
3245
+
3246
+ <li class="md-nav__item">
3247
+ <a href="#save" class="md-nav__link">
3248
+ <span class="md-ellipsis">
3249
+
3250
+ save
3251
+
3252
+ </span>
3253
+ </a>
3254
+
3255
+ </li>
3256
+
3257
+ </ul>
3258
+ </nav>
3259
+
3260
+ </li>
3261
+
3262
+ </ul>
3263
+ </nav>
3264
+
3265
+ </li>
3266
+
3267
+ <li class="md-nav__item">
3268
+ <a href="#caddforgecoreworkflow" class="md-nav__link">
3269
+ <span class="md-ellipsis">
3270
+
3271
+ caddforge.core.workflow
3272
+
3273
+ </span>
3274
+ </a>
3275
+
3276
+ <nav class="md-nav" aria-label="caddforge.core.workflow">
3277
+ <ul class="md-nav__list">
3278
+
3279
+ <li class="md-nav__item">
3280
+ <a href="#workflow" class="md-nav__link">
3281
+ <span class="md-ellipsis">
3282
+
3283
+ Workflow
3284
+
3285
+ </span>
3286
+ </a>
3287
+
3288
+ <nav class="md-nav" aria-label="Workflow">
3289
+ <ul class="md-nav__list">
3290
+
3291
+ <li class="md-nav__item">
3292
+ <a href="#prepare_job" class="md-nav__link">
3293
+ <span class="md-ellipsis">
3294
+
3295
+ prepare_job
3296
+
3297
+ </span>
3298
+ </a>
3299
+
3300
+ </li>
3301
+
3302
+ <li class="md-nav__item">
3303
+ <a href="#run" class="md-nav__link">
3304
+ <span class="md-ellipsis">
3305
+
3306
+ run
3307
+
3308
+ </span>
3309
+ </a>
3310
+
3311
+ </li>
3312
+
3313
+ </ul>
3314
+ </nav>
3315
+
3316
+ </li>
3317
+
3318
+ </ul>
3319
+ </nav>
3320
+
3321
+ </li>
3322
+
3323
+ <li class="md-nav__item">
3324
+ <a href="#caddforgecoreexecution" class="md-nav__link">
3325
+ <span class="md-ellipsis">
3326
+
3327
+ caddforge.core.execution
3328
+
3329
+ </span>
3330
+ </a>
3331
+
3332
+ <nav class="md-nav" aria-label="caddforge.core.execution">
3333
+ <ul class="md-nav__list">
3334
+
3335
+ <li class="md-nav__item">
3336
+ <a href="#backendoptions" class="md-nav__link">
3337
+ <span class="md-ellipsis">
3338
+
3339
+ BackendOptions
3340
+
3341
+ </span>
3342
+ </a>
3343
+
3344
+ </li>
3345
+
3346
+ <li class="md-nav__item">
3347
+ <a href="#submit_workflow" class="md-nav__link">
3348
+ <span class="md-ellipsis">
3349
+
3350
+ submit_workflow
3351
+
3352
+ </span>
3353
+ </a>
3354
+
3355
+ </li>
3356
+
3357
+ <li class="md-nav__item">
3358
+ <a href="#load_result_for_job" class="md-nav__link">
3359
+ <span class="md-ellipsis">
3360
+
3361
+ load_result_for_job
3362
+
3363
+ </span>
3364
+ </a>
3365
+
3366
+ </li>
3367
+
3368
+ </ul>
3369
+ </nav>
3370
+
3371
+ </li>
3372
+
3373
+ <li class="md-nav__item">
3374
+ <a href="#caddforgecorebackend" class="md-nav__link">
3375
+ <span class="md-ellipsis">
3376
+
3377
+ caddforge.core.backend
3378
+
3379
+ </span>
3380
+ </a>
3381
+
3382
+ <nav class="md-nav" aria-label="caddforge.core.backend">
3383
+ <ul class="md-nav__list">
3384
+
3385
+ <li class="md-nav__item">
3386
+ <a href="#backend" class="md-nav__link">
3387
+ <span class="md-ellipsis">
3388
+
3389
+ Backend
3390
+
3391
+ </span>
3392
+ </a>
3393
+
3394
+ <nav class="md-nav" aria-label="Backend">
3395
+ <ul class="md-nav__list">
3396
+
3397
+ <li class="md-nav__item">
3398
+ <a href="#submit" class="md-nav__link">
3399
+ <span class="md-ellipsis">
3400
+
3401
+ submit
3402
+
3403
+ </span>
3404
+ </a>
3405
+
3406
+ </li>
3407
+
3408
+ <li class="md-nav__item">
3409
+ <a href="#submit_shell_commands" class="md-nav__link">
3410
+ <span class="md-ellipsis">
3411
+
3412
+ submit_shell_commands
3413
+
3414
+ </span>
3415
+ </a>
3416
+
3417
+ </li>
3418
+
3419
+ <li class="md-nav__item">
3420
+ <a href="#query_status" class="md-nav__link">
3421
+ <span class="md-ellipsis">
3422
+
3423
+ query_status
3424
+
3425
+ </span>
3426
+ </a>
3427
+
3428
+ </li>
3429
+
3430
+ <li class="md-nav__item">
3431
+ <a href="#cancel" class="md-nav__link">
3432
+ <span class="md-ellipsis">
3433
+
3434
+ cancel
3435
+
3436
+ </span>
3437
+ </a>
3438
+
3439
+ </li>
3440
+
3441
+ </ul>
3442
+ </nav>
3443
+
3444
+ </li>
3445
+
3446
+ </ul>
3447
+ </nav>
3448
+
3449
+ </li>
3450
+
3451
+ <li class="md-nav__item">
3452
+ <a href="#caddforgecoreartifacts" class="md-nav__link">
3453
+ <span class="md-ellipsis">
3454
+
3455
+ caddforge.core.artifacts
3456
+
3457
+ </span>
3458
+ </a>
3459
+
3460
+ <nav class="md-nav" aria-label="caddforge.core.artifacts">
3461
+ <ul class="md-nav__list">
3462
+
3463
+ <li class="md-nav__item">
3464
+ <a href="#artifactkind" class="md-nav__link">
3465
+ <span class="md-ellipsis">
3466
+
3467
+ ArtifactKind
3468
+
3469
+ </span>
3470
+ </a>
3471
+
3472
+ </li>
3473
+
3474
+ <li class="md-nav__item">
3475
+ <a href="#artifactref" class="md-nav__link">
3476
+ <span class="md-ellipsis">
3477
+
3478
+ ArtifactRef
3479
+
3480
+ </span>
3481
+ </a>
3482
+
3483
+ <nav class="md-nav" aria-label="ArtifactRef">
3484
+ <ul class="md-nav__list">
3485
+
3486
+ <li class="md-nav__item">
3487
+ <a href="#primary_path" class="md-nav__link">
3488
+ <span class="md-ellipsis">
3489
+
3490
+ primary_path
3491
+
3492
+ </span>
3493
+ </a>
3494
+
3495
+ </li>
3496
+
3497
+ <li class="md-nav__item">
3498
+ <a href="#to_dict_1" class="md-nav__link">
3499
+ <span class="md-ellipsis">
3500
+
3501
+ to_dict
3502
+
3503
+ </span>
3504
+ </a>
3505
+
3506
+ </li>
3507
+
3508
+ <li class="md-nav__item">
3509
+ <a href="#from_dict_1" class="md-nav__link">
3510
+ <span class="md-ellipsis">
3511
+
3512
+ from_dict
3513
+
3514
+ </span>
3515
+ </a>
3516
+
3517
+ </li>
3518
+
3519
+ </ul>
3520
+ </nav>
3521
+
3522
+ </li>
3523
+
3524
+ <li class="md-nav__item">
3525
+ <a href="#inputport" class="md-nav__link">
3526
+ <span class="md-ellipsis">
3527
+
3528
+ InputPort
3529
+
3530
+ </span>
3531
+ </a>
3532
+
3533
+ </li>
3534
+
3535
+ <li class="md-nav__item">
3536
+ <a href="#outputport" class="md-nav__link">
3537
+ <span class="md-ellipsis">
3538
+
3539
+ OutputPort
3540
+
3541
+ </span>
3542
+ </a>
3543
+
3544
+ </li>
3545
+
3546
+ <li class="md-nav__item">
3547
+ <a href="#splitcontract" class="md-nav__link">
3548
+ <span class="md-ellipsis">
3549
+
3550
+ SplitContract
3551
+
3552
+ </span>
3553
+ </a>
3554
+
3555
+ </li>
3556
+
3557
+ </ul>
3558
+ </nav>
3559
+
3560
+ </li>
3561
+
3562
+ <li class="md-nav__item">
3563
+ <a href="#caddforgecoretool" class="md-nav__link">
3564
+ <span class="md-ellipsis">
3565
+
3566
+ caddforge.core.tool
3567
+
3568
+ </span>
3569
+ </a>
3570
+
3571
+ <nav class="md-nav" aria-label="caddforge.core.tool">
3572
+ <ul class="md-nav__list">
3573
+
3574
+ <li class="md-nav__item">
3575
+ <a href="#toolplugin" class="md-nav__link">
3576
+ <span class="md-ellipsis">
3577
+
3578
+ ToolPlugin
3579
+
3580
+ </span>
3581
+ </a>
3582
+
3583
+ </li>
3584
+
3585
+ <li class="md-nav__item">
3586
+ <a href="#toolspec" class="md-nav__link">
3587
+ <span class="md-ellipsis">
3588
+
3589
+ ToolSpec
3590
+
3591
+ </span>
3592
+ </a>
3593
+
3594
+ </li>
3595
+
3596
+ </ul>
3597
+ </nav>
3598
+
3599
+ </li>
3600
+
3601
+ <li class="md-nav__item">
3602
+ <a href="#caddforgeplugins" class="md-nav__link">
3603
+ <span class="md-ellipsis">
3604
+
3605
+ caddforge.plugins
3606
+
3607
+ </span>
3608
+ </a>
3609
+
3610
+ <nav class="md-nav" aria-label="caddforge.plugins">
3611
+ <ul class="md-nav__list">
3612
+
3613
+ <li class="md-nav__item">
3614
+ <a href="#get_tool" class="md-nav__link">
3615
+ <span class="md-ellipsis">
3616
+
3617
+ get_tool
3618
+
3619
+ </span>
3620
+ </a>
3621
+
3622
+ </li>
3623
+
3624
+ </ul>
3625
+ </nav>
3626
+
3627
+ </li>
3628
+
3629
+ <li class="md-nav__item">
3630
+ <a href="#caddforgepipelinespec" class="md-nav__link">
3631
+ <span class="md-ellipsis">
3632
+
3633
+ caddforge.pipeline.spec
3634
+
3635
+ </span>
3636
+ </a>
3637
+
3638
+ <nav class="md-nav" aria-label="caddforge.pipeline.spec">
3639
+ <ul class="md-nav__list">
3640
+
3641
+ <li class="md-nav__item">
3642
+ <a href="#pipelinespec" class="md-nav__link">
3643
+ <span class="md-ellipsis">
3644
+
3645
+ PipelineSpec
3646
+
3647
+ </span>
3648
+ </a>
3649
+
3650
+ </li>
3651
+
3652
+ <li class="md-nav__item">
3653
+ <a href="#pipelinestagespec" class="md-nav__link">
3654
+ <span class="md-ellipsis">
3655
+
3656
+ PipelineStageSpec
3657
+
3658
+ </span>
3659
+ </a>
3660
+
3661
+ </li>
3662
+
3663
+ <li class="md-nav__item">
3664
+ <a href="#pipelinedefaults" class="md-nav__link">
3665
+ <span class="md-ellipsis">
3666
+
3667
+ PipelineDefaults
3668
+
3669
+ </span>
3670
+ </a>
3671
+
3672
+ </li>
3673
+
3674
+ <li class="md-nav__item">
3675
+ <a href="#scatterspec" class="md-nav__link">
3676
+ <span class="md-ellipsis">
3677
+
3678
+ ScatterSpec
3679
+
3680
+ </span>
3681
+ </a>
3682
+
3683
+ </li>
3684
+
3685
+ <li class="md-nav__item">
3686
+ <a href="#load_pipeline_spec" class="md-nav__link">
3687
+ <span class="md-ellipsis">
3688
+
3689
+ load_pipeline_spec
3690
+
3691
+ </span>
3692
+ </a>
3693
+
3694
+ </li>
3695
+
3696
+ </ul>
3697
+ </nav>
3698
+
3699
+ </li>
3700
+
3701
+ <li class="md-nav__item">
3702
+ <a href="#caddforgepipelineexecutor" class="md-nav__link">
3703
+ <span class="md-ellipsis">
3704
+
3705
+ caddforge.pipeline.executor
3706
+
3707
+ </span>
3708
+ </a>
3709
+
3710
+ <nav class="md-nav" aria-label="caddforge.pipeline.executor">
3711
+ <ul class="md-nav__list">
3712
+
3713
+ <li class="md-nav__item">
3714
+ <a href="#pipelineexecutionresult" class="md-nav__link">
3715
+ <span class="md-ellipsis">
3716
+
3717
+ PipelineExecutionResult
3718
+
3719
+ </span>
3720
+ </a>
3721
+
3722
+ </li>
3723
+
3724
+ <li class="md-nav__item">
3725
+ <a href="#run_pipeline" class="md-nav__link">
3726
+ <span class="md-ellipsis">
3727
+
3728
+ run_pipeline
3729
+
3730
+ </span>
3731
+ </a>
3732
+
3733
+ </li>
3734
+
3735
+ </ul>
3736
+ </nav>
3737
+
3738
+ </li>
3739
+
3740
+ </ul>
3741
+
3742
+ </nav>
3743
+ </div>
3744
+ </div>
3745
+ </div>
3746
+
3747
+
3748
+
3749
+ <div class="md-content" data-md-component="content">
3750
+
3751
+ <article class="md-content__inner md-typeset">
3752
+
3753
+
3754
+
3755
+
3756
+
3757
+
3758
+
3759
+
3760
+ <h1 id="public-python-api">Public Python API<a class="headerlink" href="#public-python-api" title="Permanent link">&para;</a></h1>
3761
+ <p>Generated from the reviewed core sources using <code>scripts/update_reference.py</code>. Builds consume this checked-in reference and do not import or discover plugins. Version and tag provenance are recorded in the <a href="../../plugins/version-matrix/">version matrix</a>.</p>
3762
+ <p>Use <a href="../../core/plugins/">plugin contracts</a> to obtain tool configurations and workflows. Call <code>submit_workflow</code> for backend-aware execution; direct workflow calls are intended for tests and custom inline execution. See <a href="../../getting-started/first-workflow/">the first workflow</a>.</p>
3763
+ <p><code>Dataset.from_file()</code> currently raises <code>NotImplementedError</code>. A frozen dataclass prevents field reassignment; it does not make nested molecule objects or lists immutable.</p>
3764
+ <h2 id="caddforgeconfigbase"><code>caddforge.config.base</code><a class="headerlink" href="#caddforgeconfigbase" title="Permanent link">&para;</a></h2>
3765
+ <h3 id="baseconfig"><code>BaseConfig</code><a class="headerlink" href="#baseconfig" title="Permanent link">&para;</a></h3>
3766
+ <div class="highlight"><pre><span></span><code><a id="__codelineno-0-1" name="__codelineno-0-1" href="#__codelineno-0-1"></a><span class="k">class</span><span class="w"> </span><span class="nc">BaseConfig</span><span class="p">(</span><span class="n">BaseModel</span><span class="p">)</span>
3767
+ </code></pre></div>
3768
+ <div class="highlight"><pre><span></span><code><a id="__codelineno-1-1" name="__codelineno-1-1" href="#__codelineno-1-1"></a>Common config options shared across tools.
3769
+ </code></pre></div>
3770
+ <p>Declared fields and enum values (inherited fields are documented on the base class):</p>
3771
+ <div class="highlight"><pre><span></span><code><a id="__codelineno-2-1" name="__codelineno-2-1" href="#__codelineno-2-1"></a><span class="n">run_directory</span><span class="p">:</span> <span class="n">Path</span> <span class="o">|</span> <span class="kc">None</span> <span class="o">=</span> <span class="kc">None</span>
3772
+ <a id="__codelineno-2-2" name="__codelineno-2-2" href="#__codelineno-2-2"></a><span class="n">registry_path</span><span class="p">:</span> <span class="n">Path</span> <span class="o">|</span> <span class="kc">None</span> <span class="o">=</span> <span class="kc">None</span>
3773
+ <a id="__codelineno-2-3" name="__codelineno-2-3" href="#__codelineno-2-3"></a><span class="n">backend</span><span class="p">:</span> <span class="nb">str</span> <span class="o">=</span> <span class="s1">'local'</span>
3774
+ <a id="__codelineno-2-4" name="__codelineno-2-4" href="#__codelineno-2-4"></a><span class="n">slurm_partition</span><span class="p">:</span> <span class="nb">str</span> <span class="o">|</span> <span class="kc">None</span> <span class="o">=</span> <span class="kc">None</span>
3775
+ <a id="__codelineno-2-5" name="__codelineno-2-5" href="#__codelineno-2-5"></a><span class="n">slurm_time</span><span class="p">:</span> <span class="nb">str</span> <span class="o">|</span> <span class="kc">None</span> <span class="o">=</span> <span class="kc">None</span>
3776
+ <a id="__codelineno-2-6" name="__codelineno-2-6" href="#__codelineno-2-6"></a><span class="n">slurm_account</span><span class="p">:</span> <span class="nb">str</span> <span class="o">|</span> <span class="kc">None</span> <span class="o">=</span> <span class="kc">None</span>
3777
+ <a id="__codelineno-2-7" name="__codelineno-2-7" href="#__codelineno-2-7"></a><span class="n">sbatch_options</span><span class="p">:</span> <span class="nb">list</span><span class="p">[</span><span class="nb">str</span><span class="p">]</span> <span class="o">=</span> <span class="n">Field</span><span class="p">(</span><span class="n">default_factory</span><span class="o">=</span><span class="nb">list</span><span class="p">)</span>
3778
+ <a id="__codelineno-2-8" name="__codelineno-2-8" href="#__codelineno-2-8"></a><span class="n">slurm_setup_commands</span><span class="p">:</span> <span class="nb">list</span><span class="p">[</span><span class="nb">str</span><span class="p">]</span> <span class="o">=</span> <span class="n">Field</span><span class="p">(</span><span class="n">default_factory</span><span class="o">=</span><span class="nb">list</span><span class="p">)</span>
3779
+ <a id="__codelineno-2-9" name="__codelineno-2-9" href="#__codelineno-2-9"></a><span class="n">job_name</span><span class="p">:</span> <span class="nb">str</span> <span class="o">|</span> <span class="kc">None</span> <span class="o">=</span> <span class="kc">None</span>
3780
+ <a id="__codelineno-2-10" name="__codelineno-2-10" href="#__codelineno-2-10"></a><span class="n">export_results</span><span class="p">:</span> <span class="nb">bool</span> <span class="o">=</span> <span class="kc">False</span>
3781
+ <a id="__codelineno-2-11" name="__codelineno-2-11" href="#__codelineno-2-11"></a><span class="n">slurm_nodes</span><span class="p">:</span> <span class="nb">int</span> <span class="o">=</span> <span class="mi">1</span>
3782
+ <a id="__codelineno-2-12" name="__codelineno-2-12" href="#__codelineno-2-12"></a><span class="n">slurm_ntasks</span><span class="p">:</span> <span class="nb">int</span> <span class="o">=</span> <span class="mi">1</span>
3783
+ <a id="__codelineno-2-13" name="__codelineno-2-13" href="#__codelineno-2-13"></a><span class="n">slurm_cpus_per_task</span><span class="p">:</span> <span class="nb">int</span> <span class="o">=</span> <span class="mi">1</span>
3784
+ <a id="__codelineno-2-14" name="__codelineno-2-14" href="#__codelineno-2-14"></a><span class="n">slurm_env_pack_path</span><span class="p">:</span> <span class="n">Path</span> <span class="o">|</span> <span class="kc">None</span> <span class="o">=</span> <span class="kc">None</span>
3785
+ <a id="__codelineno-2-15" name="__codelineno-2-15" href="#__codelineno-2-15"></a><span class="n">slurm_env_cache_enabled</span><span class="p">:</span> <span class="nb">bool</span> <span class="o">=</span> <span class="kc">True</span>
3786
+ <a id="__codelineno-2-16" name="__codelineno-2-16" href="#__codelineno-2-16"></a><span class="n">slurm_env_cache_dir</span><span class="p">:</span> <span class="n">Path</span> <span class="o">|</span> <span class="kc">None</span> <span class="o">=</span> <span class="kc">None</span>
3787
+ <a id="__codelineno-2-17" name="__codelineno-2-17" href="#__codelineno-2-17"></a><span class="n">slurm_wheelhouse_path</span><span class="p">:</span> <span class="n">Path</span> <span class="o">|</span> <span class="kc">None</span> <span class="o">=</span> <span class="kc">None</span>
3788
+ <a id="__codelineno-2-18" name="__codelineno-2-18" href="#__codelineno-2-18"></a><span class="n">slurm_requirements_path</span><span class="p">:</span> <span class="n">Path</span> <span class="o">|</span> <span class="kc">None</span> <span class="o">=</span> <span class="kc">None</span>
3789
+ </code></pre></div>
3790
+ <h4 id="from_yaml"><code>from_yaml</code><a class="headerlink" href="#from_yaml" title="Permanent link">&para;</a></h4>
3791
+ <div class="highlight"><pre><span></span><code><a id="__codelineno-3-1" name="__codelineno-3-1" href="#__codelineno-3-1"></a><span class="k">def</span><span class="w"> </span><span class="nf">from_yaml</span><span class="p">(</span><span class="bp">cls</span><span class="p">,</span> <span class="n">path</span><span class="p">:</span> <span class="nb">str</span> <span class="o">|</span> <span class="n">Path</span><span class="p">)</span> <span class="o">-&gt;</span> <span class="s1">'BaseConfig'</span>
3792
+ </code></pre></div>
3793
+ <div class="highlight"><pre><span></span><code><a id="__codelineno-4-1" name="__codelineno-4-1" href="#__codelineno-4-1"></a>Load configuration from a YAML file.
3794
+ <a id="__codelineno-4-2" name="__codelineno-4-2" href="#__codelineno-4-2"></a>
3795
+ <a id="__codelineno-4-3" name="__codelineno-4-3" href="#__codelineno-4-3"></a>Args:
3796
+ <a id="__codelineno-4-4" name="__codelineno-4-4" href="#__codelineno-4-4"></a> path: Path to the YAML config file.
3797
+ <a id="__codelineno-4-5" name="__codelineno-4-5" href="#__codelineno-4-5"></a>
3798
+ <a id="__codelineno-4-6" name="__codelineno-4-6" href="#__codelineno-4-6"></a>Returns:
3799
+ <a id="__codelineno-4-7" name="__codelineno-4-7" href="#__codelineno-4-7"></a> BaseConfig: Parsed and validated configuration.
3800
+ </code></pre></div>
3801
+ <h4 id="from_json"><code>from_json</code><a class="headerlink" href="#from_json" title="Permanent link">&para;</a></h4>
3802
+ <div class="highlight"><pre><span></span><code><a id="__codelineno-5-1" name="__codelineno-5-1" href="#__codelineno-5-1"></a><span class="k">def</span><span class="w"> </span><span class="nf">from_json</span><span class="p">(</span><span class="bp">cls</span><span class="p">,</span> <span class="n">path</span><span class="p">:</span> <span class="nb">str</span> <span class="o">|</span> <span class="n">Path</span><span class="p">)</span> <span class="o">-&gt;</span> <span class="s1">'BaseConfig'</span>
3803
+ </code></pre></div>
3804
+ <div class="highlight"><pre><span></span><code><a id="__codelineno-6-1" name="__codelineno-6-1" href="#__codelineno-6-1"></a>Load configuration from a JSON file.
3805
+ <a id="__codelineno-6-2" name="__codelineno-6-2" href="#__codelineno-6-2"></a>
3806
+ <a id="__codelineno-6-3" name="__codelineno-6-3" href="#__codelineno-6-3"></a>Args:
3807
+ <a id="__codelineno-6-4" name="__codelineno-6-4" href="#__codelineno-6-4"></a> path: Path to the JSON config file.
3808
+ <a id="__codelineno-6-5" name="__codelineno-6-5" href="#__codelineno-6-5"></a>
3809
+ <a id="__codelineno-6-6" name="__codelineno-6-6" href="#__codelineno-6-6"></a>Returns:
3810
+ <a id="__codelineno-6-7" name="__codelineno-6-7" href="#__codelineno-6-7"></a> BaseConfig: Parsed and validated configuration.
3811
+ </code></pre></div>
3812
+ <h4 id="example_dict"><code>example_dict</code><a class="headerlink" href="#example_dict" title="Permanent link">&para;</a></h4>
3813
+ <div class="highlight"><pre><span></span><code><a id="__codelineno-7-1" name="__codelineno-7-1" href="#__codelineno-7-1"></a><span class="k">def</span><span class="w"> </span><span class="nf">example_dict</span><span class="p">(</span><span class="bp">cls</span><span class="p">)</span> <span class="o">-&gt;</span> <span class="nb">dict</span><span class="p">[</span><span class="nb">str</span><span class="p">,</span> <span class="n">Any</span><span class="p">]</span>
3814
+ </code></pre></div>
3815
+ <div class="highlight"><pre><span></span><code><a id="__codelineno-8-1" name="__codelineno-8-1" href="#__codelineno-8-1"></a>Return a dict with defaults or placeholders for required fields.
3816
+ <a id="__codelineno-8-2" name="__codelineno-8-2" href="#__codelineno-8-2"></a>
3817
+ <a id="__codelineno-8-3" name="__codelineno-8-3" href="#__codelineno-8-3"></a>Returns:
3818
+ <a id="__codelineno-8-4" name="__codelineno-8-4" href="#__codelineno-8-4"></a> dict[str, Any]: Example config mapping.
3819
+ </code></pre></div>
3820
+ <h2 id="caddforgecoredataset"><code>caddforge.core.dataset</code><a class="headerlink" href="#caddforgecoredataset" title="Permanent link">&para;</a></h2>
3821
+ <h3 id="dataset"><code>Dataset</code><a class="headerlink" href="#dataset" title="Permanent link">&para;</a></h3>
3822
+ <div class="highlight"><pre><span></span><code><a id="__codelineno-9-1" name="__codelineno-9-1" href="#__codelineno-9-1"></a><span class="k">class</span><span class="w"> </span><span class="nc">Dataset</span><span class="p">()</span>
3823
+ </code></pre></div>
3824
+ <div class="highlight"><pre><span></span><code><a id="__codelineno-10-1" name="__codelineno-10-1" href="#__codelineno-10-1"></a>Immutable dataset consisting of entries and optional labels.
3825
+ <a id="__codelineno-10-2" name="__codelineno-10-2" href="#__codelineno-10-2"></a>
3826
+ <a id="__codelineno-10-3" name="__codelineno-10-3" href="#__codelineno-10-3"></a>Args:
3827
+ <a id="__codelineno-10-4" name="__codelineno-10-4" href="#__codelineno-10-4"></a> entries: Sequence of entries (typically molecule-like objects).
3828
+ <a id="__codelineno-10-5" name="__codelineno-10-5" href="#__codelineno-10-5"></a> labels: Optional sequence of labels aligned with entries.
3829
+ <a id="__codelineno-10-6" name="__codelineno-10-6" href="#__codelineno-10-6"></a> source: Optional provenance string (e.g., file path or database tag).
3830
+ </code></pre></div>
3831
+ <p>Declared fields and enum values (inherited fields are documented on the base class):</p>
3832
+ <div class="highlight"><pre><span></span><code><a id="__codelineno-11-1" name="__codelineno-11-1" href="#__codelineno-11-1"></a><span class="n">entries</span><span class="p">:</span> <span class="n">Sequence</span><span class="p">[</span><span class="nb">object</span><span class="p">]</span>
3833
+ <a id="__codelineno-11-2" name="__codelineno-11-2" href="#__codelineno-11-2"></a><span class="n">labels</span><span class="p">:</span> <span class="n">Sequence</span><span class="p">[</span><span class="nb">object</span><span class="p">]</span> <span class="o">|</span> <span class="kc">None</span> <span class="o">=</span> <span class="kc">None</span>
3834
+ <a id="__codelineno-11-3" name="__codelineno-11-3" href="#__codelineno-11-3"></a><span class="n">source</span><span class="p">:</span> <span class="nb">str</span> <span class="o">|</span> <span class="kc">None</span> <span class="o">=</span> <span class="kc">None</span>
3835
+ </code></pre></div>
3836
+ <h4 id="from_file"><code>from_file</code><a class="headerlink" href="#from_file" title="Permanent link">&para;</a></h4>
3837
+ <div class="highlight"><pre><span></span><code><a id="__codelineno-12-1" name="__codelineno-12-1" href="#__codelineno-12-1"></a><span class="k">def</span><span class="w"> </span><span class="nf">from_file</span><span class="p">(</span><span class="bp">cls</span><span class="p">,</span> <span class="n">path</span><span class="p">:</span> <span class="nb">str</span> <span class="o">|</span> <span class="n">Path</span><span class="p">)</span> <span class="o">-&gt;</span> <span class="s1">'Dataset'</span>
3838
+ </code></pre></div>
3839
+ <div class="highlight"><pre><span></span><code><a id="__codelineno-13-1" name="__codelineno-13-1" href="#__codelineno-13-1"></a>Create a dataset from a file path.
3840
+ <a id="__codelineno-13-2" name="__codelineno-13-2" href="#__codelineno-13-2"></a>
3841
+ <a id="__codelineno-13-3" name="__codelineno-13-3" href="#__codelineno-13-3"></a>Args:
3842
+ <a id="__codelineno-13-4" name="__codelineno-13-4" href="#__codelineno-13-4"></a> path: Path to the dataset file.
3843
+ <a id="__codelineno-13-5" name="__codelineno-13-5" href="#__codelineno-13-5"></a>
3844
+ <a id="__codelineno-13-6" name="__codelineno-13-6" href="#__codelineno-13-6"></a>Returns:
3845
+ <a id="__codelineno-13-7" name="__codelineno-13-7" href="#__codelineno-13-7"></a> Dataset: Parsed dataset instance.
3846
+ <a id="__codelineno-13-8" name="__codelineno-13-8" href="#__codelineno-13-8"></a>
3847
+ <a id="__codelineno-13-9" name="__codelineno-13-9" href="#__codelineno-13-9"></a>Raises:
3848
+ <a id="__codelineno-13-10" name="__codelineno-13-10" href="#__codelineno-13-10"></a> NotImplementedError: Always, until a concrete loader is implemented.
3849
+ </code></pre></div>
3850
+ <h4 id="from_molecules"><code>from_molecules</code><a class="headerlink" href="#from_molecules" title="Permanent link">&para;</a></h4>
3851
+ <div class="highlight"><pre><span></span><code><a id="__codelineno-14-1" name="__codelineno-14-1" href="#__codelineno-14-1"></a><span class="k">def</span><span class="w"> </span><span class="nf">from_molecules</span><span class="p">(</span><span class="bp">cls</span><span class="p">,</span> <span class="n">molecules</span><span class="p">:</span> <span class="n">Iterable</span><span class="p">[</span><span class="nb">object</span><span class="p">],</span> <span class="o">*</span><span class="p">,</span> <span class="n">source</span><span class="p">:</span> <span class="nb">str</span> <span class="o">|</span> <span class="kc">None</span><span class="o">=</span><span class="kc">None</span><span class="p">)</span> <span class="o">-&gt;</span> <span class="s1">'Dataset'</span>
3852
+ </code></pre></div>
3853
+ <div class="highlight"><pre><span></span><code><a id="__codelineno-15-1" name="__codelineno-15-1" href="#__codelineno-15-1"></a>Build a dataset from an iterable of molecule-like objects.
3854
+ <a id="__codelineno-15-2" name="__codelineno-15-2" href="#__codelineno-15-2"></a>
3855
+ <a id="__codelineno-15-3" name="__codelineno-15-3" href="#__codelineno-15-3"></a>Args:
3856
+ <a id="__codelineno-15-4" name="__codelineno-15-4" href="#__codelineno-15-4"></a> molecules: Iterable of molecule-like objects.
3857
+ <a id="__codelineno-15-5" name="__codelineno-15-5" href="#__codelineno-15-5"></a> source: Optional provenance string.
3858
+ <a id="__codelineno-15-6" name="__codelineno-15-6" href="#__codelineno-15-6"></a>
3859
+ <a id="__codelineno-15-7" name="__codelineno-15-7" href="#__codelineno-15-7"></a>Returns:
3860
+ <a id="__codelineno-15-8" name="__codelineno-15-8" href="#__codelineno-15-8"></a> Dataset: New dataset with entries populated and labels empty.
3861
+ </code></pre></div>
3862
+ <h3 id="moleculeset"><code>MoleculeSet</code><a class="headerlink" href="#moleculeset" title="Permanent link">&para;</a></h3>
3863
+ <div class="highlight"><pre><span></span><code><a id="__codelineno-16-1" name="__codelineno-16-1" href="#__codelineno-16-1"></a><span class="k">class</span><span class="w"> </span><span class="nc">MoleculeSet</span><span class="p">()</span>
3864
+ </code></pre></div>
3865
+ <div class="highlight"><pre><span></span><code><a id="__codelineno-17-1" name="__codelineno-17-1" href="#__codelineno-17-1"></a>Immutable collection of molecules.
3866
+ <a id="__codelineno-17-2" name="__codelineno-17-2" href="#__codelineno-17-2"></a>
3867
+ <a id="__codelineno-17-3" name="__codelineno-17-3" href="#__codelineno-17-3"></a>Args:
3868
+ <a id="__codelineno-17-4" name="__codelineno-17-4" href="#__codelineno-17-4"></a> molecules: Sequence of molecule-like objects.
3869
+ <a id="__codelineno-17-5" name="__codelineno-17-5" href="#__codelineno-17-5"></a> source: Optional provenance string (e.g., file path or database tag).
3870
+ </code></pre></div>
3871
+ <p>Declared fields and enum values (inherited fields are documented on the base class):</p>
3872
+ <div class="highlight"><pre><span></span><code><a id="__codelineno-18-1" name="__codelineno-18-1" href="#__codelineno-18-1"></a><span class="n">molecules</span><span class="p">:</span> <span class="n">Sequence</span><span class="p">[</span><span class="nb">object</span><span class="p">]</span>
3873
+ <a id="__codelineno-18-2" name="__codelineno-18-2" href="#__codelineno-18-2"></a><span class="n">source</span><span class="p">:</span> <span class="nb">str</span> <span class="o">|</span> <span class="kc">None</span> <span class="o">=</span> <span class="kc">None</span>
3874
+ </code></pre></div>
3875
+ <h2 id="caddforgecoremodel"><code>caddforge.core.model</code><a class="headerlink" href="#caddforgecoremodel" title="Permanent link">&para;</a></h2>
3876
+ <h3 id="model"><code>Model</code><a class="headerlink" href="#model" title="Permanent link">&para;</a></h3>
3877
+ <div class="highlight"><pre><span></span><code><a id="__codelineno-19-1" name="__codelineno-19-1" href="#__codelineno-19-1"></a><span class="k">class</span><span class="w"> </span><span class="nc">Model</span><span class="p">(</span><span class="n">ABC</span><span class="p">)</span>
3878
+ </code></pre></div>
3879
+ <div class="highlight"><pre><span></span><code><a id="__codelineno-20-1" name="__codelineno-20-1" href="#__codelineno-20-1"></a>Abstract base class for models used across tools.
3880
+ </code></pre></div>
3881
+ <h4 id="fit"><code>fit</code><a class="headerlink" href="#fit" title="Permanent link">&para;</a></h4>
3882
+ <div class="highlight"><pre><span></span><code><a id="__codelineno-21-1" name="__codelineno-21-1" href="#__codelineno-21-1"></a><span class="k">def</span><span class="w"> </span><span class="nf">fit</span><span class="p">(</span><span class="bp">self</span><span class="p">,</span> <span class="n">dataset</span><span class="p">:</span> <span class="n">Dataset</span><span class="p">)</span> <span class="o">-&gt;</span> <span class="kc">None</span>
3883
+ </code></pre></div>
3884
+ <div class="highlight"><pre><span></span><code><a id="__codelineno-22-1" name="__codelineno-22-1" href="#__codelineno-22-1"></a>Train the model with the provided dataset.
3885
+ <a id="__codelineno-22-2" name="__codelineno-22-2" href="#__codelineno-22-2"></a>
3886
+ <a id="__codelineno-22-3" name="__codelineno-22-3" href="#__codelineno-22-3"></a>Args:
3887
+ <a id="__codelineno-22-4" name="__codelineno-22-4" href="#__codelineno-22-4"></a> dataset: Dataset containing training data.
3888
+ </code></pre></div>
3889
+ <h4 id="predict"><code>predict</code><a class="headerlink" href="#predict" title="Permanent link">&para;</a></h4>
3890
+ <div class="highlight"><pre><span></span><code><a id="__codelineno-23-1" name="__codelineno-23-1" href="#__codelineno-23-1"></a><span class="k">def</span><span class="w"> </span><span class="nf">predict</span><span class="p">(</span><span class="bp">self</span><span class="p">,</span> <span class="n">data</span><span class="p">:</span> <span class="n">Dataset</span> <span class="o">|</span> <span class="n">MoleculeSet</span><span class="p">)</span>
3891
+ </code></pre></div>
3892
+ <div class="highlight"><pre><span></span><code><a id="__codelineno-24-1" name="__codelineno-24-1" href="#__codelineno-24-1"></a>Generate predictions for a dataset or molecule set.
3893
+ <a id="__codelineno-24-2" name="__codelineno-24-2" href="#__codelineno-24-2"></a>
3894
+ <a id="__codelineno-24-3" name="__codelineno-24-3" href="#__codelineno-24-3"></a>Args:
3895
+ <a id="__codelineno-24-4" name="__codelineno-24-4" href="#__codelineno-24-4"></a> data: Dataset or MoleculeSet to predict on.
3896
+ <a id="__codelineno-24-5" name="__codelineno-24-5" href="#__codelineno-24-5"></a>
3897
+ <a id="__codelineno-24-6" name="__codelineno-24-6" href="#__codelineno-24-6"></a>Returns:
3898
+ <a id="__codelineno-24-7" name="__codelineno-24-7" href="#__codelineno-24-7"></a> Any: Tool-specific prediction output.
3899
+ </code></pre></div>
3900
+ <h2 id="caddforgecorejob"><code>caddforge.core.job</code><a class="headerlink" href="#caddforgecorejob" title="Permanent link">&para;</a></h2>
3901
+ <h3 id="jobstatus"><code>JobStatus</code><a class="headerlink" href="#jobstatus" title="Permanent link">&para;</a></h3>
3902
+ <div class="highlight"><pre><span></span><code><a id="__codelineno-25-1" name="__codelineno-25-1" href="#__codelineno-25-1"></a><span class="k">class</span><span class="w"> </span><span class="nc">JobStatus</span><span class="p">(</span><span class="nb">str</span><span class="p">,</span> <span class="n">Enum</span><span class="p">)</span>
3903
+ </code></pre></div>
3904
+ <div class="highlight"><pre><span></span><code><a id="__codelineno-26-1" name="__codelineno-26-1" href="#__codelineno-26-1"></a>Enumeration of job lifecycle states.
3905
+ </code></pre></div>
3906
+ <p>Declared fields and enum values (inherited fields are documented on the base class):</p>
3907
+ <div class="highlight"><pre><span></span><code><a id="__codelineno-27-1" name="__codelineno-27-1" href="#__codelineno-27-1"></a><span class="n">PENDING</span> <span class="o">=</span> <span class="s1">'PENDING'</span>
3908
+ <a id="__codelineno-27-2" name="__codelineno-27-2" href="#__codelineno-27-2"></a><span class="n">RUNNING</span> <span class="o">=</span> <span class="s1">'RUNNING'</span>
3909
+ <a id="__codelineno-27-3" name="__codelineno-27-3" href="#__codelineno-27-3"></a><span class="n">COMPLETED</span> <span class="o">=</span> <span class="s1">'COMPLETED'</span>
3910
+ <a id="__codelineno-27-4" name="__codelineno-27-4" href="#__codelineno-27-4"></a><span class="n">FAILED</span> <span class="o">=</span> <span class="s1">'FAILED'</span>
3911
+ <a id="__codelineno-27-5" name="__codelineno-27-5" href="#__codelineno-27-5"></a><span class="n">CANCELLED</span> <span class="o">=</span> <span class="s1">'CANCELLED'</span>
3912
+ </code></pre></div>
3913
+ <h3 id="job"><code>Job</code><a class="headerlink" href="#job" title="Permanent link">&para;</a></h3>
3914
+ <div class="highlight"><pre><span></span><code><a id="__codelineno-28-1" name="__codelineno-28-1" href="#__codelineno-28-1"></a><span class="k">class</span><span class="w"> </span><span class="nc">Job</span><span class="p">()</span>
3915
+ </code></pre></div>
3916
+ <div class="highlight"><pre><span></span><code><a id="__codelineno-29-1" name="__codelineno-29-1" href="#__codelineno-29-1"></a>Canonical representation of a workflow execution.
3917
+ <a id="__codelineno-29-2" name="__codelineno-29-2" href="#__codelineno-29-2"></a>
3918
+ <a id="__codelineno-29-3" name="__codelineno-29-3" href="#__codelineno-29-3"></a>Args:
3919
+ <a id="__codelineno-29-4" name="__codelineno-29-4" href="#__codelineno-29-4"></a> id: Unique job identifier.
3920
+ <a id="__codelineno-29-5" name="__codelineno-29-5" href="#__codelineno-29-5"></a> tool_name: Registered tool name (without section).
3921
+ <a id="__codelineno-29-6" name="__codelineno-29-6" href="#__codelineno-29-6"></a> backend: Backend name used to execute the job.
3922
+ <a id="__codelineno-29-7" name="__codelineno-29-7" href="#__codelineno-29-7"></a> status: Current job status.
3923
+ <a id="__codelineno-29-8" name="__codelineno-29-8" href="#__codelineno-29-8"></a> created_at: Timestamp when the job was created.
3924
+ <a id="__codelineno-29-9" name="__codelineno-29-9" href="#__codelineno-29-9"></a> started_at: Timestamp when execution began.
3925
+ <a id="__codelineno-29-10" name="__codelineno-29-10" href="#__codelineno-29-10"></a> finished_at: Timestamp when execution completed.
3926
+ <a id="__codelineno-29-11" name="__codelineno-29-11" href="#__codelineno-29-11"></a> run_directory: Path to the job run directory.
3927
+ <a id="__codelineno-29-12" name="__codelineno-29-12" href="#__codelineno-29-12"></a> metadata: Tool/backend-specific metadata.
3928
+ </code></pre></div>
3929
+ <p>Declared fields and enum values (inherited fields are documented on the base class):</p>
3930
+ <div class="highlight"><pre><span></span><code><a id="__codelineno-30-1" name="__codelineno-30-1" href="#__codelineno-30-1"></a><span class="nb">id</span><span class="p">:</span> <span class="nb">str</span>
3931
+ <a id="__codelineno-30-2" name="__codelineno-30-2" href="#__codelineno-30-2"></a><span class="n">tool_name</span><span class="p">:</span> <span class="nb">str</span>
3932
+ <a id="__codelineno-30-3" name="__codelineno-30-3" href="#__codelineno-30-3"></a><span class="n">backend</span><span class="p">:</span> <span class="nb">str</span> <span class="o">=</span> <span class="s1">'unsubmitted'</span>
3933
+ <a id="__codelineno-30-4" name="__codelineno-30-4" href="#__codelineno-30-4"></a><span class="n">status</span><span class="p">:</span> <span class="n">JobStatus</span> <span class="o">=</span> <span class="n">JobStatus</span><span class="o">.</span><span class="n">PENDING</span>
3934
+ <a id="__codelineno-30-5" name="__codelineno-30-5" href="#__codelineno-30-5"></a><span class="n">created_at</span><span class="p">:</span> <span class="n">datetime</span> <span class="o">=</span> <span class="n">field</span><span class="p">(</span><span class="n">default_factory</span><span class="o">=</span><span class="k">lambda</span><span class="p">:</span> <span class="n">datetime</span><span class="o">.</span><span class="n">now</span><span class="p">()</span><span class="o">.</span><span class="n">astimezone</span><span class="p">())</span>
3935
+ <a id="__codelineno-30-6" name="__codelineno-30-6" href="#__codelineno-30-6"></a><span class="n">started_at</span><span class="p">:</span> <span class="n">Optional</span><span class="p">[</span><span class="n">datetime</span><span class="p">]</span> <span class="o">=</span> <span class="kc">None</span>
3936
+ <a id="__codelineno-30-7" name="__codelineno-30-7" href="#__codelineno-30-7"></a><span class="n">finished_at</span><span class="p">:</span> <span class="n">Optional</span><span class="p">[</span><span class="n">datetime</span><span class="p">]</span> <span class="o">=</span> <span class="kc">None</span>
3937
+ <a id="__codelineno-30-8" name="__codelineno-30-8" href="#__codelineno-30-8"></a><span class="n">run_directory</span><span class="p">:</span> <span class="n">Optional</span><span class="p">[</span><span class="n">Path</span><span class="p">]</span> <span class="o">=</span> <span class="kc">None</span>
3938
+ <a id="__codelineno-30-9" name="__codelineno-30-9" href="#__codelineno-30-9"></a><span class="n">metadata</span><span class="p">:</span> <span class="nb">dict</span><span class="p">[</span><span class="nb">str</span><span class="p">,</span> <span class="n">Any</span><span class="p">]</span> <span class="o">=</span> <span class="n">field</span><span class="p">(</span><span class="n">default_factory</span><span class="o">=</span><span class="nb">dict</span><span class="p">)</span>
3939
+ </code></pre></div>
3940
+ <h4 id="to_metadata_dict"><code>to_metadata_dict</code><a class="headerlink" href="#to_metadata_dict" title="Permanent link">&para;</a></h4>
3941
+ <div class="highlight"><pre><span></span><code><a id="__codelineno-31-1" name="__codelineno-31-1" href="#__codelineno-31-1"></a><span class="k">def</span><span class="w"> </span><span class="nf">to_metadata_dict</span><span class="p">(</span><span class="bp">self</span><span class="p">)</span> <span class="o">-&gt;</span> <span class="nb">dict</span><span class="p">[</span><span class="nb">str</span><span class="p">,</span> <span class="n">Any</span><span class="p">]</span>
3942
+ </code></pre></div>
3943
+ <div class="highlight"><pre><span></span><code><a id="__codelineno-32-1" name="__codelineno-32-1" href="#__codelineno-32-1"></a>Serialize job metadata to a JSON-friendly dict.
3944
+ <a id="__codelineno-32-2" name="__codelineno-32-2" href="#__codelineno-32-2"></a>
3945
+ <a id="__codelineno-32-3" name="__codelineno-32-3" href="#__codelineno-32-3"></a>Returns:
3946
+ <a id="__codelineno-32-4" name="__codelineno-32-4" href="#__codelineno-32-4"></a> dict[str, Any]: Serialized metadata suitable for JSON encoding.
3947
+ </code></pre></div>
3948
+ <h4 id="from_metadata_dict"><code>from_metadata_dict</code><a class="headerlink" href="#from_metadata_dict" title="Permanent link">&para;</a></h4>
3949
+ <div class="highlight"><pre><span></span><code><a id="__codelineno-33-1" name="__codelineno-33-1" href="#__codelineno-33-1"></a><span class="k">def</span><span class="w"> </span><span class="nf">from_metadata_dict</span><span class="p">(</span><span class="bp">cls</span><span class="p">,</span> <span class="n">data</span><span class="p">:</span> <span class="nb">dict</span><span class="p">[</span><span class="nb">str</span><span class="p">,</span> <span class="n">Any</span><span class="p">])</span> <span class="o">-&gt;</span> <span class="s1">'Job'</span>
3950
+ </code></pre></div>
3951
+ <div class="highlight"><pre><span></span><code><a id="__codelineno-34-1" name="__codelineno-34-1" href="#__codelineno-34-1"></a>Deserialize job metadata produced by `to_metadata_dict`.
3952
+ <a id="__codelineno-34-2" name="__codelineno-34-2" href="#__codelineno-34-2"></a>
3953
+ <a id="__codelineno-34-3" name="__codelineno-34-3" href="#__codelineno-34-3"></a>Args:
3954
+ <a id="__codelineno-34-4" name="__codelineno-34-4" href="#__codelineno-34-4"></a> data: Serialized job metadata.
3955
+ <a id="__codelineno-34-5" name="__codelineno-34-5" href="#__codelineno-34-5"></a>
3956
+ <a id="__codelineno-34-6" name="__codelineno-34-6" href="#__codelineno-34-6"></a>Returns:
3957
+ <a id="__codelineno-34-7" name="__codelineno-34-7" href="#__codelineno-34-7"></a> Job: Deserialized Job instance.
3958
+ </code></pre></div>
3959
+ <h4 id="save_metadata"><code>save_metadata</code><a class="headerlink" href="#save_metadata" title="Permanent link">&para;</a></h4>
3960
+ <div class="highlight"><pre><span></span><code><a id="__codelineno-35-1" name="__codelineno-35-1" href="#__codelineno-35-1"></a><span class="k">def</span><span class="w"> </span><span class="nf">save_metadata</span><span class="p">(</span><span class="bp">self</span><span class="p">,</span> <span class="n">path</span><span class="p">:</span> <span class="n">Path</span><span class="p">)</span> <span class="o">-&gt;</span> <span class="kc">None</span>
3961
+ </code></pre></div>
3962
+ <div class="highlight"><pre><span></span><code><a id="__codelineno-36-1" name="__codelineno-36-1" href="#__codelineno-36-1"></a>Persist job metadata to disk.
3963
+ <a id="__codelineno-36-2" name="__codelineno-36-2" href="#__codelineno-36-2"></a>
3964
+ <a id="__codelineno-36-3" name="__codelineno-36-3" href="#__codelineno-36-3"></a>Args:
3965
+ <a id="__codelineno-36-4" name="__codelineno-36-4" href="#__codelineno-36-4"></a> path: Target metadata JSON file path.
3966
+ </code></pre></div>
3967
+ <h2 id="caddforgecoreresult"><code>caddforge.core.result</code><a class="headerlink" href="#caddforgecoreresult" title="Permanent link">&para;</a></h2>
3968
+ <h3 id="result"><code>Result</code><a class="headerlink" href="#result" title="Permanent link">&para;</a></h3>
3969
+ <div class="highlight"><pre><span></span><code><a id="__codelineno-37-1" name="__codelineno-37-1" href="#__codelineno-37-1"></a><span class="k">class</span><span class="w"> </span><span class="nc">Result</span><span class="p">()</span>
3970
+ </code></pre></div>
3971
+ <div class="highlight"><pre><span></span><code><a id="__codelineno-38-1" name="__codelineno-38-1" href="#__codelineno-38-1"></a>Standardized result object produced by workflows.
3972
+ <a id="__codelineno-38-2" name="__codelineno-38-2" href="#__codelineno-38-2"></a>
3973
+ <a id="__codelineno-38-3" name="__codelineno-38-3" href="#__codelineno-38-3"></a>Args:
3974
+ <a id="__codelineno-38-4" name="__codelineno-38-4" href="#__codelineno-38-4"></a> job_id: Job identifier.
3975
+ <a id="__codelineno-38-5" name="__codelineno-38-5" href="#__codelineno-38-5"></a> tool_name: Tool name that produced the result.
3976
+ <a id="__codelineno-38-6" name="__codelineno-38-6" href="#__codelineno-38-6"></a> status: Completion status for the job.
3977
+ <a id="__codelineno-38-7" name="__codelineno-38-7" href="#__codelineno-38-7"></a> metrics: Tool-defined metrics (simple scalar values).
3978
+ <a id="__codelineno-38-8" name="__codelineno-38-8" href="#__codelineno-38-8"></a> paths: Paths to key output artifacts.
3979
+ <a id="__codelineno-38-9" name="__codelineno-38-9" href="#__codelineno-38-9"></a> extra: Tool-defined extra metadata payload.
3980
+ </code></pre></div>
3981
+ <p>Declared fields and enum values (inherited fields are documented on the base class):</p>
3982
+ <div class="highlight"><pre><span></span><code><a id="__codelineno-39-1" name="__codelineno-39-1" href="#__codelineno-39-1"></a><span class="n">job_id</span><span class="p">:</span> <span class="nb">str</span>
3983
+ <a id="__codelineno-39-2" name="__codelineno-39-2" href="#__codelineno-39-2"></a><span class="n">tool_name</span><span class="p">:</span> <span class="nb">str</span>
3984
+ <a id="__codelineno-39-3" name="__codelineno-39-3" href="#__codelineno-39-3"></a><span class="n">status</span><span class="p">:</span> <span class="n">JobStatus</span>
3985
+ <a id="__codelineno-39-4" name="__codelineno-39-4" href="#__codelineno-39-4"></a><span class="n">metrics</span><span class="p">:</span> <span class="nb">dict</span><span class="p">[</span><span class="nb">str</span><span class="p">,</span> <span class="nb">float</span> <span class="o">|</span> <span class="nb">int</span> <span class="o">|</span> <span class="nb">str</span><span class="p">]</span> <span class="o">=</span> <span class="n">field</span><span class="p">(</span><span class="n">default_factory</span><span class="o">=</span><span class="nb">dict</span><span class="p">)</span>
3986
+ <a id="__codelineno-39-5" name="__codelineno-39-5" href="#__codelineno-39-5"></a><span class="n">paths</span><span class="p">:</span> <span class="nb">dict</span><span class="p">[</span><span class="nb">str</span><span class="p">,</span> <span class="n">Path</span><span class="p">]</span> <span class="o">=</span> <span class="n">field</span><span class="p">(</span><span class="n">default_factory</span><span class="o">=</span><span class="nb">dict</span><span class="p">)</span>
3987
+ <a id="__codelineno-39-6" name="__codelineno-39-6" href="#__codelineno-39-6"></a><span class="n">extra</span><span class="p">:</span> <span class="nb">dict</span><span class="p">[</span><span class="nb">str</span><span class="p">,</span> <span class="n">Any</span><span class="p">]</span> <span class="o">=</span> <span class="n">field</span><span class="p">(</span><span class="n">default_factory</span><span class="o">=</span><span class="nb">dict</span><span class="p">)</span>
3988
+ </code></pre></div>
3989
+ <h4 id="to_dict"><code>to_dict</code><a class="headerlink" href="#to_dict" title="Permanent link">&para;</a></h4>
3990
+ <div class="highlight"><pre><span></span><code><a id="__codelineno-40-1" name="__codelineno-40-1" href="#__codelineno-40-1"></a><span class="k">def</span><span class="w"> </span><span class="nf">to_dict</span><span class="p">(</span><span class="bp">self</span><span class="p">)</span> <span class="o">-&gt;</span> <span class="nb">dict</span><span class="p">[</span><span class="nb">str</span><span class="p">,</span> <span class="n">Any</span><span class="p">]</span>
3991
+ </code></pre></div>
3992
+ <div class="highlight"><pre><span></span><code><a id="__codelineno-41-1" name="__codelineno-41-1" href="#__codelineno-41-1"></a>Serialize to a JSON-friendly dictionary.
3993
+ <a id="__codelineno-41-2" name="__codelineno-41-2" href="#__codelineno-41-2"></a>
3994
+ <a id="__codelineno-41-3" name="__codelineno-41-3" href="#__codelineno-41-3"></a>Returns:
3995
+ <a id="__codelineno-41-4" name="__codelineno-41-4" href="#__codelineno-41-4"></a> dict[str, Any]: Serialized representation of the result.
3996
+ </code></pre></div>
3997
+ <h4 id="from_dict"><code>from_dict</code><a class="headerlink" href="#from_dict" title="Permanent link">&para;</a></h4>
3998
+ <div class="highlight"><pre><span></span><code><a id="__codelineno-42-1" name="__codelineno-42-1" href="#__codelineno-42-1"></a><span class="k">def</span><span class="w"> </span><span class="nf">from_dict</span><span class="p">(</span><span class="bp">cls</span><span class="p">,</span> <span class="n">data</span><span class="p">:</span> <span class="nb">dict</span><span class="p">[</span><span class="nb">str</span><span class="p">,</span> <span class="n">Any</span><span class="p">])</span> <span class="o">-&gt;</span> <span class="s1">'Result'</span>
3999
+ </code></pre></div>
4000
+ <div class="highlight"><pre><span></span><code><a id="__codelineno-43-1" name="__codelineno-43-1" href="#__codelineno-43-1"></a>Construct a Result from a dictionary representation.
4001
+ <a id="__codelineno-43-2" name="__codelineno-43-2" href="#__codelineno-43-2"></a>
4002
+ <a id="__codelineno-43-3" name="__codelineno-43-3" href="#__codelineno-43-3"></a>Args:
4003
+ <a id="__codelineno-43-4" name="__codelineno-43-4" href="#__codelineno-43-4"></a> data: Serialized result dictionary.
4004
+ <a id="__codelineno-43-5" name="__codelineno-43-5" href="#__codelineno-43-5"></a>
4005
+ <a id="__codelineno-43-6" name="__codelineno-43-6" href="#__codelineno-43-6"></a>Returns:
4006
+ <a id="__codelineno-43-7" name="__codelineno-43-7" href="#__codelineno-43-7"></a> Result: Deserialized Result instance.
4007
+ </code></pre></div>
4008
+ <h4 id="save"><code>save</code><a class="headerlink" href="#save" title="Permanent link">&para;</a></h4>
4009
+ <div class="highlight"><pre><span></span><code><a id="__codelineno-44-1" name="__codelineno-44-1" href="#__codelineno-44-1"></a><span class="k">def</span><span class="w"> </span><span class="nf">save</span><span class="p">(</span><span class="bp">self</span><span class="p">,</span> <span class="n">path</span><span class="p">:</span> <span class="n">Path</span><span class="p">)</span> <span class="o">-&gt;</span> <span class="kc">None</span>
4010
+ </code></pre></div>
4011
+ <div class="highlight"><pre><span></span><code><a id="__codelineno-45-1" name="__codelineno-45-1" href="#__codelineno-45-1"></a>Persist result to disk as JSON.
4012
+ <a id="__codelineno-45-2" name="__codelineno-45-2" href="#__codelineno-45-2"></a>
4013
+ <a id="__codelineno-45-3" name="__codelineno-45-3" href="#__codelineno-45-3"></a>Args:
4014
+ <a id="__codelineno-45-4" name="__codelineno-45-4" href="#__codelineno-45-4"></a> path: Target JSON file path.
4015
+ </code></pre></div>
4016
+ <h2 id="caddforgecoreworkflow"><code>caddforge.core.workflow</code><a class="headerlink" href="#caddforgecoreworkflow" title="Permanent link">&para;</a></h2>
4017
+ <h3 id="workflow"><code>Workflow</code><a class="headerlink" href="#workflow" title="Permanent link">&para;</a></h3>
4018
+ <div class="highlight"><pre><span></span><code><a id="__codelineno-46-1" name="__codelineno-46-1" href="#__codelineno-46-1"></a><span class="k">class</span><span class="w"> </span><span class="nc">Workflow</span><span class="p">(</span><span class="n">ABC</span><span class="p">)</span>
4019
+ </code></pre></div>
4020
+ <div class="highlight"><pre><span></span><code><a id="__codelineno-47-1" name="__codelineno-47-1" href="#__codelineno-47-1"></a>Abstract workflow run by CADDForge tools.
4021
+ </code></pre></div>
4022
+ <p>Declared fields and enum values (inherited fields are documented on the base class):</p>
4023
+ <div class="highlight"><pre><span></span><code><a id="__codelineno-48-1" name="__codelineno-48-1" href="#__codelineno-48-1"></a><span class="n">tool_name</span><span class="p">:</span> <span class="nb">str</span>
4024
+ </code></pre></div>
4025
+ <h4 id="prepare_job"><code>prepare_job</code><a class="headerlink" href="#prepare_job" title="Permanent link">&para;</a></h4>
4026
+ <div class="highlight"><pre><span></span><code><a id="__codelineno-49-1" name="__codelineno-49-1" href="#__codelineno-49-1"></a><span class="k">def</span><span class="w"> </span><span class="nf">prepare_job</span><span class="p">(</span><span class="bp">self</span><span class="p">)</span> <span class="o">-&gt;</span> <span class="n">Job</span>
4027
+ </code></pre></div>
4028
+ <div class="highlight"><pre><span></span><code><a id="__codelineno-50-1" name="__codelineno-50-1" href="#__codelineno-50-1"></a>Build a job object with metadata and paths.
4029
+ <a id="__codelineno-50-2" name="__codelineno-50-2" href="#__codelineno-50-2"></a>
4030
+ <a id="__codelineno-50-3" name="__codelineno-50-3" href="#__codelineno-50-3"></a>Returns:
4031
+ <a id="__codelineno-50-4" name="__codelineno-50-4" href="#__codelineno-50-4"></a> Job: Prepared job instance ready for submission.
4032
+ </code></pre></div>
4033
+ <h4 id="run"><code>run</code><a class="headerlink" href="#run" title="Permanent link">&para;</a></h4>
4034
+ <div class="highlight"><pre><span></span><code><a id="__codelineno-51-1" name="__codelineno-51-1" href="#__codelineno-51-1"></a><span class="k">def</span><span class="w"> </span><span class="nf">run</span><span class="p">(</span><span class="bp">self</span><span class="p">,</span> <span class="n">job</span><span class="p">:</span> <span class="n">Job</span><span class="p">,</span> <span class="n">context</span><span class="p">:</span> <span class="n">RuntimeContext</span> <span class="o">|</span> <span class="kc">None</span><span class="o">=</span><span class="kc">None</span><span class="p">)</span> <span class="o">-&gt;</span> <span class="n">Result</span>
4035
+ </code></pre></div>
4036
+ <div class="highlight"><pre><span></span><code><a id="__codelineno-52-1" name="__codelineno-52-1" href="#__codelineno-52-1"></a>Execute the workflow logic and return a result.
4037
+ <a id="__codelineno-52-2" name="__codelineno-52-2" href="#__codelineno-52-2"></a>
4038
+ <a id="__codelineno-52-3" name="__codelineno-52-3" href="#__codelineno-52-3"></a>Args:
4039
+ <a id="__codelineno-52-4" name="__codelineno-52-4" href="#__codelineno-52-4"></a> job: Job metadata for the execution.
4040
+ <a id="__codelineno-52-5" name="__codelineno-52-5" href="#__codelineno-52-5"></a> context: Backend-neutral runtime details supplied by the executor.
4041
+ <a id="__codelineno-52-6" name="__codelineno-52-6" href="#__codelineno-52-6"></a>
4042
+ <a id="__codelineno-52-7" name="__codelineno-52-7" href="#__codelineno-52-7"></a>Returns:
4043
+ <a id="__codelineno-52-8" name="__codelineno-52-8" href="#__codelineno-52-8"></a> Result: Standardized workflow result.
4044
+ </code></pre></div>
4045
+ <h2 id="caddforgecoreexecution"><code>caddforge.core.execution</code><a class="headerlink" href="#caddforgecoreexecution" title="Permanent link">&para;</a></h2>
4046
+ <h3 id="backendoptions"><code>BackendOptions</code><a class="headerlink" href="#backendoptions" title="Permanent link">&para;</a></h3>
4047
+ <div class="highlight"><pre><span></span><code><a id="__codelineno-53-1" name="__codelineno-53-1" href="#__codelineno-53-1"></a><span class="k">class</span><span class="w"> </span><span class="nc">BackendOptions</span><span class="p">()</span>
4048
+ </code></pre></div>
4049
+ <div class="highlight"><pre><span></span><code><a id="__codelineno-54-1" name="__codelineno-54-1" href="#__codelineno-54-1"></a>Backend-specific options supplied by CLI or GUI callers.
4050
+ </code></pre></div>
4051
+ <p>Declared fields and enum values (inherited fields are documented on the base class):</p>
4052
+ <div class="highlight"><pre><span></span><code><a id="__codelineno-55-1" name="__codelineno-55-1" href="#__codelineno-55-1"></a><span class="n">slurm_partition</span><span class="p">:</span> <span class="nb">str</span> <span class="o">|</span> <span class="kc">None</span> <span class="o">=</span> <span class="kc">None</span>
4053
+ <a id="__codelineno-55-2" name="__codelineno-55-2" href="#__codelineno-55-2"></a><span class="n">slurm_time</span><span class="p">:</span> <span class="nb">str</span> <span class="o">|</span> <span class="kc">None</span> <span class="o">=</span> <span class="kc">None</span>
4054
+ <a id="__codelineno-55-3" name="__codelineno-55-3" href="#__codelineno-55-3"></a><span class="n">slurm_account</span><span class="p">:</span> <span class="nb">str</span> <span class="o">|</span> <span class="kc">None</span> <span class="o">=</span> <span class="kc">None</span>
4055
+ <a id="__codelineno-55-4" name="__codelineno-55-4" href="#__codelineno-55-4"></a><span class="n">slurm_nodes</span><span class="p">:</span> <span class="nb">int</span> <span class="o">|</span> <span class="kc">None</span> <span class="o">=</span> <span class="kc">None</span>
4056
+ <a id="__codelineno-55-5" name="__codelineno-55-5" href="#__codelineno-55-5"></a><span class="n">slurm_ntasks</span><span class="p">:</span> <span class="nb">int</span> <span class="o">|</span> <span class="kc">None</span> <span class="o">=</span> <span class="kc">None</span>
4057
+ <a id="__codelineno-55-6" name="__codelineno-55-6" href="#__codelineno-55-6"></a><span class="n">slurm_cpus_per_task</span><span class="p">:</span> <span class="nb">int</span> <span class="o">|</span> <span class="kc">None</span> <span class="o">=</span> <span class="kc">None</span>
4058
+ <a id="__codelineno-55-7" name="__codelineno-55-7" href="#__codelineno-55-7"></a><span class="n">slurm_setup</span><span class="p">:</span> <span class="nb">list</span><span class="p">[</span><span class="nb">str</span><span class="p">]</span> <span class="o">=</span> <span class="n">field</span><span class="p">(</span><span class="n">default_factory</span><span class="o">=</span><span class="nb">list</span><span class="p">)</span>
4059
+ <a id="__codelineno-55-8" name="__codelineno-55-8" href="#__codelineno-55-8"></a><span class="n">slurm_env_pack</span><span class="p">:</span> <span class="n">Path</span> <span class="o">|</span> <span class="kc">None</span> <span class="o">=</span> <span class="kc">None</span>
4060
+ <a id="__codelineno-55-9" name="__codelineno-55-9" href="#__codelineno-55-9"></a><span class="n">slurm_wheelhouse</span><span class="p">:</span> <span class="n">Path</span> <span class="o">|</span> <span class="kc">None</span> <span class="o">=</span> <span class="kc">None</span>
4061
+ <a id="__codelineno-55-10" name="__codelineno-55-10" href="#__codelineno-55-10"></a><span class="n">slurm_requirements</span><span class="p">:</span> <span class="n">Path</span> <span class="o">|</span> <span class="kc">None</span> <span class="o">=</span> <span class="kc">None</span>
4062
+ <a id="__codelineno-55-11" name="__codelineno-55-11" href="#__codelineno-55-11"></a><span class="n">extra_sbatch_options</span><span class="p">:</span> <span class="nb">list</span><span class="p">[</span><span class="nb">str</span><span class="p">]</span> <span class="o">=</span> <span class="n">field</span><span class="p">(</span><span class="n">default_factory</span><span class="o">=</span><span class="nb">list</span><span class="p">)</span>
4063
+ </code></pre></div>
4064
+ <h3 id="submit_workflow"><code>submit_workflow</code><a class="headerlink" href="#submit_workflow" title="Permanent link">&para;</a></h3>
4065
+ <div class="highlight"><pre><span></span><code><a id="__codelineno-56-1" name="__codelineno-56-1" href="#__codelineno-56-1"></a><span class="k">def</span><span class="w"> </span><span class="nf">submit_workflow</span><span class="p">(</span><span class="n">workflow</span><span class="p">,</span> <span class="n">cfg</span><span class="p">:</span> <span class="n">BaseConfig</span><span class="p">,</span> <span class="o">*</span><span class="p">,</span> <span class="n">backend_name</span><span class="p">:</span> <span class="nb">str</span><span class="p">,</span> <span class="n">runs_root</span><span class="p">:</span> <span class="n">Path</span> <span class="o">|</span> <span class="nb">str</span><span class="o">=</span><span class="n">Path</span><span class="p">(</span><span class="s1">'runs'</span><span class="p">),</span> <span class="n">registry_path</span><span class="p">:</span> <span class="n">Path</span> <span class="o">|</span> <span class="kc">None</span><span class="o">=</span><span class="kc">None</span><span class="p">,</span> <span class="n">job_name</span><span class="p">:</span> <span class="nb">str</span> <span class="o">|</span> <span class="kc">None</span><span class="o">=</span><span class="kc">None</span><span class="p">,</span> <span class="n">submission_cwd</span><span class="p">:</span> <span class="n">Path</span> <span class="o">|</span> <span class="kc">None</span><span class="o">=</span><span class="kc">None</span><span class="p">,</span> <span class="n">local_async</span><span class="p">:</span> <span class="nb">bool</span><span class="o">=</span><span class="kc">False</span><span class="p">,</span> <span class="n">backend_options</span><span class="p">:</span> <span class="n">BackendOptions</span> <span class="o">|</span> <span class="kc">None</span><span class="o">=</span><span class="kc">None</span><span class="p">,</span> <span class="n">emit</span><span class="p">:</span> <span class="n">EmitFn</span> <span class="o">|</span> <span class="kc">None</span><span class="o">=</span><span class="kc">None</span><span class="p">,</span> <span class="n">prepared_job_callback</span><span class="p">:</span> <span class="n">Callable</span><span class="p">[[</span><span class="n">Job</span><span class="p">],</span> <span class="kc">None</span><span class="p">]</span> <span class="o">|</span> <span class="kc">None</span><span class="o">=</span><span class="kc">None</span><span class="p">,</span> <span class="n">input_ports</span><span class="p">:</span> <span class="nb">tuple</span><span class="p">[</span><span class="n">InputPort</span><span class="p">,</span> <span class="o">...</span><span class="p">]</span><span class="o">=</span><span class="p">())</span> <span class="o">-&gt;</span> <span class="n">Job</span>
4066
+ </code></pre></div>
4067
+ <div class="highlight"><pre><span></span><code><a id="__codelineno-57-1" name="__codelineno-57-1" href="#__codelineno-57-1"></a>Prepare a workflow job and submit it through the selected backend.
4068
+ </code></pre></div>
4069
+ <h3 id="load_result_for_job"><code>load_result_for_job</code><a class="headerlink" href="#load_result_for_job" title="Permanent link">&para;</a></h3>
4070
+ <div class="highlight"><pre><span></span><code><a id="__codelineno-58-1" name="__codelineno-58-1" href="#__codelineno-58-1"></a><span class="k">def</span><span class="w"> </span><span class="nf">load_result_for_job</span><span class="p">(</span><span class="n">job</span><span class="p">:</span> <span class="n">Job</span><span class="p">)</span> <span class="o">-&gt;</span> <span class="n">Result</span> <span class="o">|</span> <span class="kc">None</span>
4071
+ </code></pre></div>
4072
+ <div class="highlight"><pre><span></span><code><a id="__codelineno-59-1" name="__codelineno-59-1" href="#__codelineno-59-1"></a>Load the canonical result for a job if it exists.
4073
+ </code></pre></div>
4074
+ <h2 id="caddforgecorebackend"><code>caddforge.core.backend</code><a class="headerlink" href="#caddforgecorebackend" title="Permanent link">&para;</a></h2>
4075
+ <h3 id="backend"><code>Backend</code><a class="headerlink" href="#backend" title="Permanent link">&para;</a></h3>
4076
+ <div class="highlight"><pre><span></span><code><a id="__codelineno-60-1" name="__codelineno-60-1" href="#__codelineno-60-1"></a><span class="k">class</span><span class="w"> </span><span class="nc">Backend</span><span class="p">(</span><span class="n">ABC</span><span class="p">)</span>
4077
+ </code></pre></div>
4078
+ <div class="highlight"><pre><span></span><code><a id="__codelineno-61-1" name="__codelineno-61-1" href="#__codelineno-61-1"></a>Abstract compute backend.
4079
+ </code></pre></div>
4080
+ <p>Declared fields and enum values (inherited fields are documented on the base class):</p>
4081
+ <div class="highlight"><pre><span></span><code><a id="__codelineno-62-1" name="__codelineno-62-1" href="#__codelineno-62-1"></a><span class="n">name</span><span class="p">:</span> <span class="nb">str</span>
4082
+ </code></pre></div>
4083
+ <h4 id="submit"><code>submit</code><a class="headerlink" href="#submit" title="Permanent link">&para;</a></h4>
4084
+ <div class="highlight"><pre><span></span><code><a id="__codelineno-63-1" name="__codelineno-63-1" href="#__codelineno-63-1"></a><span class="k">def</span><span class="w"> </span><span class="nf">submit</span><span class="p">(</span><span class="bp">self</span><span class="p">,</span> <span class="n">job</span><span class="p">:</span> <span class="n">Job</span><span class="p">,</span> <span class="n">run_callable</span><span class="p">:</span> <span class="n">Callable</span><span class="p">[[</span><span class="n">Job</span><span class="p">],</span> <span class="n">Result</span><span class="p">])</span> <span class="o">-&gt;</span> <span class="n">JobHandle</span>
4085
+ </code></pre></div>
4086
+ <div class="highlight"><pre><span></span><code><a id="__codelineno-64-1" name="__codelineno-64-1" href="#__codelineno-64-1"></a>Submit a job for execution using the provided callable.
4087
+ <a id="__codelineno-64-2" name="__codelineno-64-2" href="#__codelineno-64-2"></a>
4088
+ <a id="__codelineno-64-3" name="__codelineno-64-3" href="#__codelineno-64-3"></a>Args:
4089
+ <a id="__codelineno-64-4" name="__codelineno-64-4" href="#__codelineno-64-4"></a> job: Job metadata to register and execute.
4090
+ <a id="__codelineno-64-5" name="__codelineno-64-5" href="#__codelineno-64-5"></a> run_callable: Callable that performs the work and returns a Result.
4091
+ <a id="__codelineno-64-6" name="__codelineno-64-6" href="#__codelineno-64-6"></a>
4092
+ <a id="__codelineno-64-7" name="__codelineno-64-7" href="#__codelineno-64-7"></a>Returns:
4093
+ <a id="__codelineno-64-8" name="__codelineno-64-8" href="#__codelineno-64-8"></a> JobHandle: Backend-specific handle for tracking execution.
4094
+ </code></pre></div>
4095
+ <h4 id="submit_shell_commands"><code>submit_shell_commands</code><a class="headerlink" href="#submit_shell_commands" title="Permanent link">&para;</a></h4>
4096
+ <div class="highlight"><pre><span></span><code><a id="__codelineno-65-1" name="__codelineno-65-1" href="#__codelineno-65-1"></a><span class="k">def</span><span class="w"> </span><span class="nf">submit_shell_commands</span><span class="p">(</span><span class="bp">self</span><span class="p">,</span> <span class="n">job</span><span class="p">:</span> <span class="n">Job</span><span class="p">,</span> <span class="n">commands</span><span class="p">:</span> <span class="n">Iterable</span><span class="p">[</span><span class="nb">str</span><span class="p">])</span> <span class="o">-&gt;</span> <span class="n">JobHandle</span>
4097
+ </code></pre></div>
4098
+ <div class="highlight"><pre><span></span><code><a id="__codelineno-66-1" name="__codelineno-66-1" href="#__codelineno-66-1"></a>Submit a shell-command job if the backend supports it.
4099
+ <a id="__codelineno-66-2" name="__codelineno-66-2" href="#__codelineno-66-2"></a>
4100
+ <a id="__codelineno-66-3" name="__codelineno-66-3" href="#__codelineno-66-3"></a>Args:
4101
+ <a id="__codelineno-66-4" name="__codelineno-66-4" href="#__codelineno-66-4"></a> job: Job metadata to register and execute.
4102
+ <a id="__codelineno-66-5" name="__codelineno-66-5" href="#__codelineno-66-5"></a> commands: Shell commands to execute in order.
4103
+ <a id="__codelineno-66-6" name="__codelineno-66-6" href="#__codelineno-66-6"></a>
4104
+ <a id="__codelineno-66-7" name="__codelineno-66-7" href="#__codelineno-66-7"></a>Returns:
4105
+ <a id="__codelineno-66-8" name="__codelineno-66-8" href="#__codelineno-66-8"></a> JobHandle: Backend-specific handle for tracking execution.
4106
+ <a id="__codelineno-66-9" name="__codelineno-66-9" href="#__codelineno-66-9"></a>
4107
+ <a id="__codelineno-66-10" name="__codelineno-66-10" href="#__codelineno-66-10"></a>Raises:
4108
+ <a id="__codelineno-66-11" name="__codelineno-66-11" href="#__codelineno-66-11"></a> NotImplementedError: If the backend does not implement shell jobs.
4109
+ </code></pre></div>
4110
+ <h4 id="query_status"><code>query_status</code><a class="headerlink" href="#query_status" title="Permanent link">&para;</a></h4>
4111
+ <div class="highlight"><pre><span></span><code><a id="__codelineno-67-1" name="__codelineno-67-1" href="#__codelineno-67-1"></a><span class="k">def</span><span class="w"> </span><span class="nf">query_status</span><span class="p">(</span><span class="bp">self</span><span class="p">,</span> <span class="n">handle</span><span class="p">:</span> <span class="n">JobHandle</span><span class="p">)</span> <span class="o">-&gt;</span> <span class="n">JobStatus</span>
4112
+ </code></pre></div>
4113
+ <div class="highlight"><pre><span></span><code><a id="__codelineno-68-1" name="__codelineno-68-1" href="#__codelineno-68-1"></a>Return current status of a submitted job.
4114
+ <a id="__codelineno-68-2" name="__codelineno-68-2" href="#__codelineno-68-2"></a>
4115
+ <a id="__codelineno-68-3" name="__codelineno-68-3" href="#__codelineno-68-3"></a>Args:
4116
+ <a id="__codelineno-68-4" name="__codelineno-68-4" href="#__codelineno-68-4"></a> handle: Backend-specific job handle.
4117
+ <a id="__codelineno-68-5" name="__codelineno-68-5" href="#__codelineno-68-5"></a>
4118
+ <a id="__codelineno-68-6" name="__codelineno-68-6" href="#__codelineno-68-6"></a>Returns:
4119
+ <a id="__codelineno-68-7" name="__codelineno-68-7" href="#__codelineno-68-7"></a> JobStatus: Current status for the job.
4120
+ </code></pre></div>
4121
+ <h4 id="cancel"><code>cancel</code><a class="headerlink" href="#cancel" title="Permanent link">&para;</a></h4>
4122
+ <div class="highlight"><pre><span></span><code><a id="__codelineno-69-1" name="__codelineno-69-1" href="#__codelineno-69-1"></a><span class="k">def</span><span class="w"> </span><span class="nf">cancel</span><span class="p">(</span><span class="bp">self</span><span class="p">,</span> <span class="n">handle</span><span class="p">:</span> <span class="n">JobHandle</span><span class="p">)</span> <span class="o">-&gt;</span> <span class="kc">None</span>
4123
+ </code></pre></div>
4124
+ <div class="highlight"><pre><span></span><code><a id="__codelineno-70-1" name="__codelineno-70-1" href="#__codelineno-70-1"></a>Cancel a submitted job if supported.
4125
+ <a id="__codelineno-70-2" name="__codelineno-70-2" href="#__codelineno-70-2"></a>
4126
+ <a id="__codelineno-70-3" name="__codelineno-70-3" href="#__codelineno-70-3"></a>Args:
4127
+ <a id="__codelineno-70-4" name="__codelineno-70-4" href="#__codelineno-70-4"></a> handle: Backend-specific job handle.
4128
+ </code></pre></div>
4129
+ <h2 id="caddforgecoreartifacts"><code>caddforge.core.artifacts</code><a class="headerlink" href="#caddforgecoreartifacts" title="Permanent link">&para;</a></h2>
4130
+ <h3 id="artifactkind"><code>ArtifactKind</code><a class="headerlink" href="#artifactkind" title="Permanent link">&para;</a></h3>
4131
+ <div class="highlight"><pre><span></span><code><a id="__codelineno-71-1" name="__codelineno-71-1" href="#__codelineno-71-1"></a><span class="k">class</span><span class="w"> </span><span class="nc">ArtifactKind</span><span class="p">(</span><span class="nb">str</span><span class="p">,</span> <span class="n">Enum</span><span class="p">)</span>
4132
+ </code></pre></div>
4133
+ <div class="highlight"><pre><span></span><code><a id="__codelineno-72-1" name="__codelineno-72-1" href="#__codelineno-72-1"></a>Portable artifact categories understood by the core pipeline layer.
4134
+ </code></pre></div>
4135
+ <p>Declared fields and enum values (inherited fields are documented on the base class):</p>
4136
+ <div class="highlight"><pre><span></span><code><a id="__codelineno-73-1" name="__codelineno-73-1" href="#__codelineno-73-1"></a><span class="n">FILE</span> <span class="o">=</span> <span class="s1">'file'</span>
4137
+ <a id="__codelineno-73-2" name="__codelineno-73-2" href="#__codelineno-73-2"></a><span class="n">DIRECTORY</span> <span class="o">=</span> <span class="s1">'directory'</span>
4138
+ <a id="__codelineno-73-3" name="__codelineno-73-3" href="#__codelineno-73-3"></a><span class="n">MOLECULE_COLLECTION</span> <span class="o">=</span> <span class="s1">'molecule_collection'</span>
4139
+ <a id="__codelineno-73-4" name="__codelineno-73-4" href="#__codelineno-73-4"></a><span class="n">POSE_COLLECTION</span> <span class="o">=</span> <span class="s1">'pose_collection'</span>
4140
+ <a id="__codelineno-73-5" name="__codelineno-73-5" href="#__codelineno-73-5"></a><span class="n">POSE_MANIFEST</span> <span class="o">=</span> <span class="s1">'pose_manifest'</span>
4141
+ <a id="__codelineno-73-6" name="__codelineno-73-6" href="#__codelineno-73-6"></a><span class="n">TABULAR_SCORES</span> <span class="o">=</span> <span class="s1">'tabular_scores'</span>
4142
+ <a id="__codelineno-73-7" name="__codelineno-73-7" href="#__codelineno-73-7"></a><span class="n">PROTEIN_STRUCTURE</span> <span class="o">=</span> <span class="s1">'protein_structure'</span>
4143
+ <a id="__codelineno-73-8" name="__codelineno-73-8" href="#__codelineno-73-8"></a><span class="n">COMPLEX_STRUCTURE</span> <span class="o">=</span> <span class="s1">'complex_structure'</span>
4144
+ </code></pre></div>
4145
+ <h3 id="artifactref"><code>ArtifactRef</code><a class="headerlink" href="#artifactref" title="Permanent link">&para;</a></h3>
4146
+ <div class="highlight"><pre><span></span><code><a id="__codelineno-74-1" name="__codelineno-74-1" href="#__codelineno-74-1"></a><span class="k">class</span><span class="w"> </span><span class="nc">ArtifactRef</span><span class="p">()</span>
4147
+ </code></pre></div>
4148
+ <div class="highlight"><pre><span></span><code><a id="__codelineno-75-1" name="__codelineno-75-1" href="#__codelineno-75-1"></a>Reference to a workflow artifact stored on disk.
4149
+ <a id="__codelineno-75-2" name="__codelineno-75-2" href="#__codelineno-75-2"></a>
4150
+ <a id="__codelineno-75-3" name="__codelineno-75-3" href="#__codelineno-75-3"></a>Large data stays on disk; the pipeline engine passes these lightweight
4151
+ <a id="__codelineno-75-4" name="__codelineno-75-4" href="#__codelineno-75-4"></a>references between stages and resolves them into concrete config paths.
4152
+ </code></pre></div>
4153
+ <p>Declared fields and enum values (inherited fields are documented on the base class):</p>
4154
+ <div class="highlight"><pre><span></span><code><a id="__codelineno-76-1" name="__codelineno-76-1" href="#__codelineno-76-1"></a><span class="nb">id</span><span class="p">:</span> <span class="nb">str</span>
4155
+ <a id="__codelineno-76-2" name="__codelineno-76-2" href="#__codelineno-76-2"></a><span class="n">kind</span><span class="p">:</span> <span class="n">ArtifactKind</span> <span class="o">|</span> <span class="nb">str</span>
4156
+ <a id="__codelineno-76-3" name="__codelineno-76-3" href="#__codelineno-76-3"></a><span class="n">producer_stage_id</span><span class="p">:</span> <span class="nb">str</span>
4157
+ <a id="__codelineno-76-4" name="__codelineno-76-4" href="#__codelineno-76-4"></a><span class="n">path</span><span class="p">:</span> <span class="n">Path</span> <span class="o">|</span> <span class="kc">None</span> <span class="o">=</span> <span class="kc">None</span>
4158
+ <a id="__codelineno-76-5" name="__codelineno-76-5" href="#__codelineno-76-5"></a><span class="n">paths</span><span class="p">:</span> <span class="nb">list</span><span class="p">[</span><span class="n">Path</span><span class="p">]</span> <span class="o">=</span> <span class="n">field</span><span class="p">(</span><span class="n">default_factory</span><span class="o">=</span><span class="nb">list</span><span class="p">)</span>
4159
+ <a id="__codelineno-76-6" name="__codelineno-76-6" href="#__codelineno-76-6"></a><span class="n">producer_job_id</span><span class="p">:</span> <span class="nb">str</span> <span class="o">|</span> <span class="kc">None</span> <span class="o">=</span> <span class="kc">None</span>
4160
+ <a id="__codelineno-76-7" name="__codelineno-76-7" href="#__codelineno-76-7"></a><span class="n">metadata</span><span class="p">:</span> <span class="nb">dict</span><span class="p">[</span><span class="nb">str</span><span class="p">,</span> <span class="n">Any</span><span class="p">]</span> <span class="o">=</span> <span class="n">field</span><span class="p">(</span><span class="n">default_factory</span><span class="o">=</span><span class="nb">dict</span><span class="p">)</span>
4161
+ </code></pre></div>
4162
+ <h4 id="primary_path"><code>primary_path</code><a class="headerlink" href="#primary_path" title="Permanent link">&para;</a></h4>
4163
+ <div class="highlight"><pre><span></span><code><a id="__codelineno-77-1" name="__codelineno-77-1" href="#__codelineno-77-1"></a><span class="k">def</span><span class="w"> </span><span class="nf">primary_path</span><span class="p">(</span><span class="bp">self</span><span class="p">)</span> <span class="o">-&gt;</span> <span class="n">Path</span>
4164
+ </code></pre></div>
4165
+ <div class="highlight"><pre><span></span><code><a id="__codelineno-78-1" name="__codelineno-78-1" href="#__codelineno-78-1"></a>Return the single concrete path for config binding.
4166
+ </code></pre></div>
4167
+ <h4 id="to_dict_1"><code>to_dict</code><a class="headerlink" href="#to_dict_1" title="Permanent link">&para;</a></h4>
4168
+ <div class="highlight"><pre><span></span><code><a id="__codelineno-79-1" name="__codelineno-79-1" href="#__codelineno-79-1"></a><span class="k">def</span><span class="w"> </span><span class="nf">to_dict</span><span class="p">(</span><span class="bp">self</span><span class="p">)</span> <span class="o">-&gt;</span> <span class="nb">dict</span><span class="p">[</span><span class="nb">str</span><span class="p">,</span> <span class="n">Any</span><span class="p">]</span>
4169
+ </code></pre></div>
4170
+ <div class="highlight"><pre><span></span><code><a id="__codelineno-80-1" name="__codelineno-80-1" href="#__codelineno-80-1"></a>Serialize to a JSON-friendly dictionary.
4171
+ </code></pre></div>
4172
+ <h4 id="from_dict_1"><code>from_dict</code><a class="headerlink" href="#from_dict_1" title="Permanent link">&para;</a></h4>
4173
+ <div class="highlight"><pre><span></span><code><a id="__codelineno-81-1" name="__codelineno-81-1" href="#__codelineno-81-1"></a><span class="k">def</span><span class="w"> </span><span class="nf">from_dict</span><span class="p">(</span><span class="bp">cls</span><span class="p">,</span> <span class="n">data</span><span class="p">:</span> <span class="nb">dict</span><span class="p">[</span><span class="nb">str</span><span class="p">,</span> <span class="n">Any</span><span class="p">])</span> <span class="o">-&gt;</span> <span class="n">ArtifactRef</span>
4174
+ </code></pre></div>
4175
+ <div class="highlight"><pre><span></span><code><a id="__codelineno-82-1" name="__codelineno-82-1" href="#__codelineno-82-1"></a>Deserialize an artifact reference from a dictionary.
4176
+ </code></pre></div>
4177
+ <h3 id="inputport"><code>InputPort</code><a class="headerlink" href="#inputport" title="Permanent link">&para;</a></h3>
4178
+ <div class="highlight"><pre><span></span><code><a id="__codelineno-83-1" name="__codelineno-83-1" href="#__codelineno-83-1"></a><span class="k">class</span><span class="w"> </span><span class="nc">InputPort</span><span class="p">()</span>
4179
+ </code></pre></div>
4180
+ <div class="highlight"><pre><span></span><code><a id="__codelineno-84-1" name="__codelineno-84-1" href="#__codelineno-84-1"></a>Declarative input accepted by a tool plugin.
4181
+ <a id="__codelineno-84-2" name="__codelineno-84-2" href="#__codelineno-84-2"></a>
4182
+ <a id="__codelineno-84-3" name="__codelineno-84-3" href="#__codelineno-84-3"></a>``config_field`` is the stable top-level pipeline binding target.
4183
+ <a id="__codelineno-84-4" name="__codelineno-84-4" href="#__codelineno-84-4"></a>``runtime_selector`` may identify nested path values for execution-time
4184
+ <a id="__codelineno-84-5" name="__codelineno-84-5" href="#__codelineno-84-5"></a>staging without changing that pipeline contract.
4185
+ </code></pre></div>
4186
+ <p>Declared fields and enum values (inherited fields are documented on the base class):</p>
4187
+ <div class="highlight"><pre><span></span><code><a id="__codelineno-85-1" name="__codelineno-85-1" href="#__codelineno-85-1"></a><span class="n">name</span><span class="p">:</span> <span class="nb">str</span>
4188
+ <a id="__codelineno-85-2" name="__codelineno-85-2" href="#__codelineno-85-2"></a><span class="n">kind</span><span class="p">:</span> <span class="n">ArtifactKind</span> <span class="o">|</span> <span class="nb">str</span>
4189
+ <a id="__codelineno-85-3" name="__codelineno-85-3" href="#__codelineno-85-3"></a><span class="n">config_field</span><span class="p">:</span> <span class="nb">str</span>
4190
+ <a id="__codelineno-85-4" name="__codelineno-85-4" href="#__codelineno-85-4"></a><span class="n">required</span><span class="p">:</span> <span class="nb">bool</span> <span class="o">=</span> <span class="kc">True</span>
4191
+ <a id="__codelineno-85-5" name="__codelineno-85-5" href="#__codelineno-85-5"></a><span class="n">description</span><span class="p">:</span> <span class="nb">str</span> <span class="o">|</span> <span class="kc">None</span> <span class="o">=</span> <span class="kc">None</span>
4192
+ <a id="__codelineno-85-6" name="__codelineno-85-6" href="#__codelineno-85-6"></a><span class="n">compression</span><span class="p">:</span> <span class="n">InputCompressionPolicy</span> <span class="o">|</span> <span class="nb">str</span> <span class="o">=</span> <span class="n">InputCompressionPolicy</span><span class="o">.</span><span class="n">TRANSPARENT_GZIP</span>
4193
+ <a id="__codelineno-85-7" name="__codelineno-85-7" href="#__codelineno-85-7"></a><span class="n">runtime_selector</span><span class="p">:</span> <span class="nb">str</span> <span class="o">|</span> <span class="kc">None</span> <span class="o">=</span> <span class="kc">None</span>
4194
+ </code></pre></div>
4195
+ <h3 id="outputport"><code>OutputPort</code><a class="headerlink" href="#outputport" title="Permanent link">&para;</a></h3>
4196
+ <div class="highlight"><pre><span></span><code><a id="__codelineno-86-1" name="__codelineno-86-1" href="#__codelineno-86-1"></a><span class="k">class</span><span class="w"> </span><span class="nc">OutputPort</span><span class="p">()</span>
4197
+ </code></pre></div>
4198
+ <div class="highlight"><pre><span></span><code><a id="__codelineno-87-1" name="__codelineno-87-1" href="#__codelineno-87-1"></a>Declarative output produced by a tool plugin.
4199
+ <a id="__codelineno-87-2" name="__codelineno-87-2" href="#__codelineno-87-2"></a>
4200
+ <a id="__codelineno-87-3" name="__codelineno-87-3" href="#__codelineno-87-3"></a>``config_field`` identifies the optional Path-typed config field that asks
4201
+ <a id="__codelineno-87-4" name="__codelineno-87-4" href="#__codelineno-87-4"></a>the workflow where to write this result. Declaring it enables transparent
4202
+ <a id="__codelineno-87-5" name="__codelineno-87-5" href="#__codelineno-87-5"></a>gzip output handling at the pipeline boundary.
4203
+ </code></pre></div>
4204
+ <p>Declared fields and enum values (inherited fields are documented on the base class):</p>
4205
+ <div class="highlight"><pre><span></span><code><a id="__codelineno-88-1" name="__codelineno-88-1" href="#__codelineno-88-1"></a><span class="n">name</span><span class="p">:</span> <span class="nb">str</span>
4206
+ <a id="__codelineno-88-2" name="__codelineno-88-2" href="#__codelineno-88-2"></a><span class="n">kind</span><span class="p">:</span> <span class="n">ArtifactKind</span> <span class="o">|</span> <span class="nb">str</span>
4207
+ <a id="__codelineno-88-3" name="__codelineno-88-3" href="#__codelineno-88-3"></a><span class="n">result_path_key</span><span class="p">:</span> <span class="nb">str</span>
4208
+ <a id="__codelineno-88-4" name="__codelineno-88-4" href="#__codelineno-88-4"></a><span class="n">description</span><span class="p">:</span> <span class="nb">str</span> <span class="o">|</span> <span class="kc">None</span> <span class="o">=</span> <span class="kc">None</span>
4209
+ <a id="__codelineno-88-5" name="__codelineno-88-5" href="#__codelineno-88-5"></a><span class="n">required</span><span class="p">:</span> <span class="nb">bool</span> <span class="o">=</span> <span class="kc">True</span>
4210
+ <a id="__codelineno-88-6" name="__codelineno-88-6" href="#__codelineno-88-6"></a><span class="n">path_collection_column</span><span class="p">:</span> <span class="nb">str</span> <span class="o">|</span> <span class="kc">None</span> <span class="o">=</span> <span class="kc">None</span>
4211
+ <a id="__codelineno-88-7" name="__codelineno-88-7" href="#__codelineno-88-7"></a><span class="n">config_field</span><span class="p">:</span> <span class="nb">str</span> <span class="o">|</span> <span class="kc">None</span> <span class="o">=</span> <span class="kc">None</span>
4212
+ </code></pre></div>
4213
+ <h3 id="splitcontract"><code>SplitContract</code><a class="headerlink" href="#splitcontract" title="Permanent link">&para;</a></h3>
4214
+ <div class="highlight"><pre><span></span><code><a id="__codelineno-89-1" name="__codelineno-89-1" href="#__codelineno-89-1"></a><span class="k">class</span><span class="w"> </span><span class="nc">SplitContract</span><span class="p">()</span>
4215
+ </code></pre></div>
4216
+ <div class="highlight"><pre><span></span><code><a id="__codelineno-90-1" name="__codelineno-90-1" href="#__codelineno-90-1"></a>Central description of a splittable workflow input.
4217
+ </code></pre></div>
4218
+ <p>Declared fields and enum values (inherited fields are documented on the base class):</p>
4219
+ <div class="highlight"><pre><span></span><code><a id="__codelineno-91-1" name="__codelineno-91-1" href="#__codelineno-91-1"></a><span class="n">input_field</span><span class="p">:</span> <span class="nb">str</span>
4220
+ <a id="__codelineno-91-2" name="__codelineno-91-2" href="#__codelineno-91-2"></a><span class="n">kind</span><span class="p">:</span> <span class="n">ArtifactKind</span> <span class="o">|</span> <span class="nb">str</span> <span class="o">=</span> <span class="n">ArtifactKind</span><span class="o">.</span><span class="n">MOLECULE_COLLECTION</span>
4221
+ <a id="__codelineno-91-3" name="__codelineno-91-3" href="#__codelineno-91-3"></a><span class="n">strategy</span><span class="p">:</span> <span class="n">Literal</span><span class="p">[</span><span class="s1">'sdf'</span><span class="p">,</span> <span class="s1">'csv'</span><span class="p">,</span> <span class="s1">'tsv'</span><span class="p">,</span> <span class="s1">'lines'</span><span class="p">,</span> <span class="s1">'auto'</span><span class="p">]</span> <span class="o">=</span> <span class="s1">'auto'</span>
4222
+ <a id="__codelineno-91-4" name="__codelineno-91-4" href="#__codelineno-91-4"></a><span class="n">merge_outputs</span><span class="p">:</span> <span class="nb">dict</span><span class="p">[</span><span class="nb">str</span><span class="p">,</span> <span class="n">Literal</span><span class="p">[</span><span class="s1">'csv'</span><span class="p">,</span> <span class="s1">'tsv'</span><span class="p">,</span> <span class="s1">'sdf'</span><span class="p">,</span> <span class="s1">'jsonl'</span><span class="p">,</span> <span class="s1">'manifest'</span><span class="p">,</span> <span class="s1">'auto'</span><span class="p">]]</span> <span class="o">=</span> <span class="n">field</span><span class="p">(</span><span class="n">default_factory</span><span class="o">=</span><span class="nb">dict</span><span class="p">)</span>
4223
+ <a id="__codelineno-91-5" name="__codelineno-91-5" href="#__codelineno-91-5"></a><span class="n">item_path_field</span><span class="p">:</span> <span class="nb">str</span> <span class="o">|</span> <span class="kc">None</span> <span class="o">=</span> <span class="kc">None</span>
4224
+ </code></pre></div>
4225
+ <h2 id="caddforgecoretool"><code>caddforge.core.tool</code><a class="headerlink" href="#caddforgecoretool" title="Permanent link">&para;</a></h2>
4226
+ <h3 id="toolplugin"><code>ToolPlugin</code><a class="headerlink" href="#toolplugin" title="Permanent link">&para;</a></h3>
4227
+ <div class="highlight"><pre><span></span><code><a id="__codelineno-92-1" name="__codelineno-92-1" href="#__codelineno-92-1"></a><span class="k">class</span><span class="w"> </span><span class="nc">ToolPlugin</span><span class="p">(</span><span class="n">Protocol</span><span class="p">)</span>
4228
+ </code></pre></div>
4229
+ <div class="highlight"><pre><span></span><code><a id="__codelineno-93-1" name="__codelineno-93-1" href="#__codelineno-93-1"></a>Protocol that tool plugins should satisfy.
4230
+ <a id="__codelineno-93-2" name="__codelineno-93-2" href="#__codelineno-93-2"></a>
4231
+ <a id="__codelineno-93-3" name="__codelineno-93-3" href="#__codelineno-93-3"></a>Attributes:
4232
+ <a id="__codelineno-93-4" name="__codelineno-93-4" href="#__codelineno-93-4"></a> section: Section/group name for CLI organization.
4233
+ <a id="__codelineno-93-5" name="__codelineno-93-5" href="#__codelineno-93-5"></a> name: Tool name within its section.
4234
+ <a id="__codelineno-93-6" name="__codelineno-93-6" href="#__codelineno-93-6"></a> config_cls: Pydantic config model used by the tool.
4235
+ <a id="__codelineno-93-7" name="__codelineno-93-7" href="#__codelineno-93-7"></a> workflow_cls: Workflow class executed by the tool.
4236
+ </code></pre></div>
4237
+ <p>Declared fields and enum values (inherited fields are documented on the base class):</p>
4238
+ <div class="highlight"><pre><span></span><code><a id="__codelineno-94-1" name="__codelineno-94-1" href="#__codelineno-94-1"></a><span class="n">section</span><span class="p">:</span> <span class="nb">str</span>
4239
+ <a id="__codelineno-94-2" name="__codelineno-94-2" href="#__codelineno-94-2"></a><span class="n">name</span><span class="p">:</span> <span class="nb">str</span>
4240
+ <a id="__codelineno-94-3" name="__codelineno-94-3" href="#__codelineno-94-3"></a><span class="n">config_cls</span><span class="p">:</span> <span class="n">Type</span><span class="p">[</span><span class="n">BaseConfig</span><span class="p">]</span>
4241
+ <a id="__codelineno-94-4" name="__codelineno-94-4" href="#__codelineno-94-4"></a><span class="n">workflow_cls</span><span class="p">:</span> <span class="n">Type</span><span class="p">[</span><span class="n">Workflow</span><span class="p">]</span>
4242
+ <a id="__codelineno-94-5" name="__codelineno-94-5" href="#__codelineno-94-5"></a><span class="n">input_ports</span><span class="p">:</span> <span class="nb">tuple</span><span class="p">[</span><span class="n">InputPort</span><span class="p">,</span> <span class="o">...</span><span class="p">]</span> <span class="o">=</span> <span class="p">()</span>
4243
+ <a id="__codelineno-94-6" name="__codelineno-94-6" href="#__codelineno-94-6"></a><span class="n">output_ports</span><span class="p">:</span> <span class="nb">tuple</span><span class="p">[</span><span class="n">OutputPort</span><span class="p">,</span> <span class="o">...</span><span class="p">]</span> <span class="o">=</span> <span class="p">()</span>
4244
+ <a id="__codelineno-94-7" name="__codelineno-94-7" href="#__codelineno-94-7"></a><span class="n">split_contracts</span><span class="p">:</span> <span class="nb">tuple</span><span class="p">[</span><span class="n">SplitContract</span><span class="p">,</span> <span class="o">...</span><span class="p">]</span> <span class="o">=</span> <span class="p">()</span>
4245
+ </code></pre></div>
4246
+ <h3 id="toolspec"><code>ToolSpec</code><a class="headerlink" href="#toolspec" title="Permanent link">&para;</a></h3>
4247
+ <div class="highlight"><pre><span></span><code><a id="__codelineno-95-1" name="__codelineno-95-1" href="#__codelineno-95-1"></a><span class="k">class</span><span class="w"> </span><span class="nc">ToolSpec</span><span class="p">()</span>
4248
+ </code></pre></div>
4249
+ <div class="highlight"><pre><span></span><code><a id="__codelineno-96-1" name="__codelineno-96-1" href="#__codelineno-96-1"></a>Concrete description of a discovered tool plugin.
4250
+ <a id="__codelineno-96-2" name="__codelineno-96-2" href="#__codelineno-96-2"></a>
4251
+ <a id="__codelineno-96-3" name="__codelineno-96-3" href="#__codelineno-96-3"></a>Args:
4252
+ <a id="__codelineno-96-4" name="__codelineno-96-4" href="#__codelineno-96-4"></a> section: Section/group name for CLI organization.
4253
+ <a id="__codelineno-96-5" name="__codelineno-96-5" href="#__codelineno-96-5"></a> name: Tool name within its section.
4254
+ <a id="__codelineno-96-6" name="__codelineno-96-6" href="#__codelineno-96-6"></a> config_cls: Pydantic config model used by the tool.
4255
+ <a id="__codelineno-96-7" name="__codelineno-96-7" href="#__codelineno-96-7"></a> workflow_cls: Workflow class executed by the tool.
4256
+ <a id="__codelineno-96-8" name="__codelineno-96-8" href="#__codelineno-96-8"></a> plugin: Loaded plugin instance.
4257
+ </code></pre></div>
4258
+ <p>Declared fields and enum values (inherited fields are documented on the base class):</p>
4259
+ <div class="highlight"><pre><span></span><code><a id="__codelineno-97-1" name="__codelineno-97-1" href="#__codelineno-97-1"></a><span class="n">section</span><span class="p">:</span> <span class="nb">str</span>
4260
+ <a id="__codelineno-97-2" name="__codelineno-97-2" href="#__codelineno-97-2"></a><span class="n">name</span><span class="p">:</span> <span class="nb">str</span>
4261
+ <a id="__codelineno-97-3" name="__codelineno-97-3" href="#__codelineno-97-3"></a><span class="n">config_cls</span><span class="p">:</span> <span class="n">Type</span><span class="p">[</span><span class="n">BaseConfig</span><span class="p">]</span>
4262
+ <a id="__codelineno-97-4" name="__codelineno-97-4" href="#__codelineno-97-4"></a><span class="n">workflow_cls</span><span class="p">:</span> <span class="n">Type</span><span class="p">[</span><span class="n">Workflow</span><span class="p">]</span>
4263
+ <a id="__codelineno-97-5" name="__codelineno-97-5" href="#__codelineno-97-5"></a><span class="n">plugin</span><span class="p">:</span> <span class="n">ToolPlugin</span>
4264
+ </code></pre></div>
4265
+ <h2 id="caddforgeplugins"><code>caddforge.plugins</code><a class="headerlink" href="#caddforgeplugins" title="Permanent link">&para;</a></h2>
4266
+ <h3 id="get_tool"><code>get_tool</code><a class="headerlink" href="#get_tool" title="Permanent link">&para;</a></h3>
4267
+ <div class="highlight"><pre><span></span><code><a id="__codelineno-98-1" name="__codelineno-98-1" href="#__codelineno-98-1"></a><span class="k">def</span><span class="w"> </span><span class="nf">get_tool</span><span class="p">(</span><span class="n">section</span><span class="p">:</span> <span class="nb">str</span><span class="p">,</span> <span class="n">name</span><span class="p">:</span> <span class="nb">str</span><span class="p">)</span> <span class="o">-&gt;</span> <span class="n">ToolSpec</span>
4268
+ </code></pre></div>
4269
+ <div class="highlight"><pre><span></span><code><a id="__codelineno-99-1" name="__codelineno-99-1" href="#__codelineno-99-1"></a>Return the tool spec for a given section/tool name.
4270
+ <a id="__codelineno-99-2" name="__codelineno-99-2" href="#__codelineno-99-2"></a>
4271
+ <a id="__codelineno-99-3" name="__codelineno-99-3" href="#__codelineno-99-3"></a>Args:
4272
+ <a id="__codelineno-99-4" name="__codelineno-99-4" href="#__codelineno-99-4"></a> section: Section/group name.
4273
+ <a id="__codelineno-99-5" name="__codelineno-99-5" href="#__codelineno-99-5"></a> name: Tool name within the section.
4274
+ <a id="__codelineno-99-6" name="__codelineno-99-6" href="#__codelineno-99-6"></a>
4275
+ <a id="__codelineno-99-7" name="__codelineno-99-7" href="#__codelineno-99-7"></a>Returns:
4276
+ <a id="__codelineno-99-8" name="__codelineno-99-8" href="#__codelineno-99-8"></a> ToolSpec: Discovered tool specification.
4277
+ <a id="__codelineno-99-9" name="__codelineno-99-9" href="#__codelineno-99-9"></a>
4278
+ <a id="__codelineno-99-10" name="__codelineno-99-10" href="#__codelineno-99-10"></a>Raises:
4279
+ <a id="__codelineno-99-11" name="__codelineno-99-11" href="#__codelineno-99-11"></a> KeyError: If the section or tool name is not registered.
4280
+ </code></pre></div>
4281
+ <h2 id="caddforgepipelinespec"><code>caddforge.pipeline.spec</code><a class="headerlink" href="#caddforgepipelinespec" title="Permanent link">&para;</a></h2>
4282
+ <h3 id="pipelinespec"><code>PipelineSpec</code><a class="headerlink" href="#pipelinespec" title="Permanent link">&para;</a></h3>
4283
+ <div class="highlight"><pre><span></span><code><a id="__codelineno-100-1" name="__codelineno-100-1" href="#__codelineno-100-1"></a><span class="k">class</span><span class="w"> </span><span class="nc">PipelineSpec</span><span class="p">(</span><span class="n">BaseModel</span><span class="p">)</span>
4284
+ </code></pre></div>
4285
+ <div class="highlight"><pre><span></span><code><a id="__codelineno-101-1" name="__codelineno-101-1" href="#__codelineno-101-1"></a>Top-level declarative pipeline specification.
4286
+ </code></pre></div>
4287
+ <p>Declared fields and enum values (inherited fields are documented on the base class):</p>
4288
+ <div class="highlight"><pre><span></span><code><a id="__codelineno-102-1" name="__codelineno-102-1" href="#__codelineno-102-1"></a><span class="n">version</span><span class="p">:</span> <span class="nb">int</span> <span class="o">=</span> <span class="mi">1</span>
4289
+ <a id="__codelineno-102-2" name="__codelineno-102-2" href="#__codelineno-102-2"></a><span class="n">name</span><span class="p">:</span> <span class="nb">str</span> <span class="o">=</span> <span class="s1">'pipeline'</span>
4290
+ <a id="__codelineno-102-3" name="__codelineno-102-3" href="#__codelineno-102-3"></a><span class="n">defaults</span><span class="p">:</span> <span class="n">PipelineDefaults</span> <span class="o">=</span> <span class="n">Field</span><span class="p">(</span><span class="n">default_factory</span><span class="o">=</span><span class="n">PipelineDefaults</span><span class="p">)</span>
4291
+ <a id="__codelineno-102-4" name="__codelineno-102-4" href="#__codelineno-102-4"></a><span class="n">stages</span><span class="p">:</span> <span class="nb">list</span><span class="p">[</span><span class="n">PipelineStageSpec</span><span class="p">]</span>
4292
+ </code></pre></div>
4293
+ <h3 id="pipelinestagespec"><code>PipelineStageSpec</code><a class="headerlink" href="#pipelinestagespec" title="Permanent link">&para;</a></h3>
4294
+ <div class="highlight"><pre><span></span><code><a id="__codelineno-103-1" name="__codelineno-103-1" href="#__codelineno-103-1"></a><span class="k">class</span><span class="w"> </span><span class="nc">PipelineStageSpec</span><span class="p">(</span><span class="n">BaseModel</span><span class="p">)</span>
4295
+ </code></pre></div>
4296
+ <div class="highlight"><pre><span></span><code><a id="__codelineno-104-1" name="__codelineno-104-1" href="#__codelineno-104-1"></a>One stage in a CADDForge pipeline DAG.
4297
+ </code></pre></div>
4298
+ <p>Declared fields and enum values (inherited fields are documented on the base class):</p>
4299
+ <div class="highlight"><pre><span></span><code><a id="__codelineno-105-1" name="__codelineno-105-1" href="#__codelineno-105-1"></a><span class="nb">id</span><span class="p">:</span> <span class="nb">str</span>
4300
+ <a id="__codelineno-105-2" name="__codelineno-105-2" href="#__codelineno-105-2"></a><span class="n">tool</span><span class="p">:</span> <span class="nb">str</span> <span class="o">|</span> <span class="kc">None</span> <span class="o">=</span> <span class="kc">None</span>
4301
+ <a id="__codelineno-105-3" name="__codelineno-105-3" href="#__codelineno-105-3"></a><span class="nb">type</span><span class="p">:</span> <span class="nb">str</span> <span class="o">|</span> <span class="kc">None</span> <span class="o">=</span> <span class="kc">None</span>
4302
+ <a id="__codelineno-105-4" name="__codelineno-105-4" href="#__codelineno-105-4"></a><span class="n">config</span><span class="p">:</span> <span class="nb">str</span> <span class="o">|</span> <span class="n">Path</span> <span class="o">|</span> <span class="nb">dict</span><span class="p">[</span><span class="nb">str</span><span class="p">,</span> <span class="n">Any</span><span class="p">]</span> <span class="o">|</span> <span class="kc">None</span> <span class="o">=</span> <span class="kc">None</span>
4303
+ <a id="__codelineno-105-5" name="__codelineno-105-5" href="#__codelineno-105-5"></a><span class="n">inputs</span><span class="p">:</span> <span class="nb">dict</span><span class="p">[</span><span class="nb">str</span><span class="p">,</span> <span class="nb">str</span><span class="p">]</span> <span class="o">=</span> <span class="n">Field</span><span class="p">(</span><span class="n">default_factory</span><span class="o">=</span><span class="nb">dict</span><span class="p">)</span>
4304
+ <a id="__codelineno-105-6" name="__codelineno-105-6" href="#__codelineno-105-6"></a><span class="n">outputs</span><span class="p">:</span> <span class="nb">dict</span><span class="p">[</span><span class="nb">str</span><span class="p">,</span> <span class="nb">str</span> <span class="o">|</span> <span class="nb">dict</span><span class="p">[</span><span class="nb">str</span><span class="p">,</span> <span class="n">Any</span><span class="p">]]</span> <span class="o">=</span> <span class="n">Field</span><span class="p">(</span><span class="n">default_factory</span><span class="o">=</span><span class="nb">dict</span><span class="p">)</span>
4305
+ <a id="__codelineno-105-7" name="__codelineno-105-7" href="#__codelineno-105-7"></a><span class="n">scatter</span><span class="p">:</span> <span class="n">ScatterSpec</span> <span class="o">|</span> <span class="kc">None</span> <span class="o">=</span> <span class="kc">None</span>
4306
+ <a id="__codelineno-105-8" name="__codelineno-105-8" href="#__codelineno-105-8"></a><span class="n">depends_on</span><span class="p">:</span> <span class="nb">list</span><span class="p">[</span><span class="nb">str</span><span class="p">]</span> <span class="o">=</span> <span class="n">Field</span><span class="p">(</span><span class="n">default_factory</span><span class="o">=</span><span class="nb">list</span><span class="p">)</span>
4307
+ </code></pre></div>
4308
+ <h3 id="pipelinedefaults"><code>PipelineDefaults</code><a class="headerlink" href="#pipelinedefaults" title="Permanent link">&para;</a></h3>
4309
+ <div class="highlight"><pre><span></span><code><a id="__codelineno-106-1" name="__codelineno-106-1" href="#__codelineno-106-1"></a><span class="k">class</span><span class="w"> </span><span class="nc">PipelineDefaults</span><span class="p">(</span><span class="n">BaseModel</span><span class="p">)</span>
4310
+ </code></pre></div>
4311
+ <div class="highlight"><pre><span></span><code><a id="__codelineno-107-1" name="__codelineno-107-1" href="#__codelineno-107-1"></a>Defaults applied to tool stages.
4312
+ </code></pre></div>
4313
+ <p>Declared fields and enum values (inherited fields are documented on the base class):</p>
4314
+ <div class="highlight"><pre><span></span><code><a id="__codelineno-108-1" name="__codelineno-108-1" href="#__codelineno-108-1"></a><span class="n">backend</span><span class="p">:</span> <span class="nb">str</span> <span class="o">=</span> <span class="s1">'local'</span>
4315
+ <a id="__codelineno-108-2" name="__codelineno-108-2" href="#__codelineno-108-2"></a><span class="n">run_directory</span><span class="p">:</span> <span class="n">Path</span> <span class="o">|</span> <span class="kc">None</span> <span class="o">=</span> <span class="kc">None</span>
4316
+ <a id="__codelineno-108-3" name="__codelineno-108-3" href="#__codelineno-108-3"></a><span class="n">registry_path</span><span class="p">:</span> <span class="n">Path</span> <span class="o">|</span> <span class="kc">None</span> <span class="o">=</span> <span class="kc">None</span>
4317
+ <a id="__codelineno-108-4" name="__codelineno-108-4" href="#__codelineno-108-4"></a><span class="n">job_name</span><span class="p">:</span> <span class="nb">str</span> <span class="o">|</span> <span class="kc">None</span> <span class="o">=</span> <span class="kc">None</span>
4318
+ <a id="__codelineno-108-5" name="__codelineno-108-5" href="#__codelineno-108-5"></a><span class="n">export_results</span><span class="p">:</span> <span class="nb">bool</span> <span class="o">=</span> <span class="kc">False</span>
4319
+ </code></pre></div>
4320
+ <h3 id="scatterspec"><code>ScatterSpec</code><a class="headerlink" href="#scatterspec" title="Permanent link">&para;</a></h3>
4321
+ <div class="highlight"><pre><span></span><code><a id="__codelineno-109-1" name="__codelineno-109-1" href="#__codelineno-109-1"></a><span class="k">class</span><span class="w"> </span><span class="nc">ScatterSpec</span><span class="p">(</span><span class="n">BaseModel</span><span class="p">)</span>
4322
+ </code></pre></div>
4323
+ <div class="highlight"><pre><span></span><code><a id="__codelineno-110-1" name="__codelineno-110-1" href="#__codelineno-110-1"></a>Fan-out settings for a splittable stage.
4324
+ </code></pre></div>
4325
+ <p>Declared fields and enum values (inherited fields are documented on the base class):</p>
4326
+ <div class="highlight"><pre><span></span><code><a id="__codelineno-111-1" name="__codelineno-111-1" href="#__codelineno-111-1"></a><span class="n">by</span><span class="p">:</span> <span class="nb">str</span>
4327
+ <a id="__codelineno-111-2" name="__codelineno-111-2" href="#__codelineno-111-2"></a><span class="n">chunks</span><span class="p">:</span> <span class="nb">int</span> <span class="o">|</span> <span class="kc">None</span> <span class="o">=</span> <span class="n">Field</span><span class="p">(</span><span class="n">default</span><span class="o">=</span><span class="kc">None</span><span class="p">,</span> <span class="n">ge</span><span class="o">=</span><span class="mi">1</span><span class="p">)</span>
4328
+ <a id="__codelineno-111-3" name="__codelineno-111-3" href="#__codelineno-111-3"></a><span class="n">chunk_size</span><span class="p">:</span> <span class="nb">int</span> <span class="o">|</span> <span class="kc">None</span> <span class="o">=</span> <span class="n">Field</span><span class="p">(</span><span class="n">default</span><span class="o">=</span><span class="kc">None</span><span class="p">,</span> <span class="n">ge</span><span class="o">=</span><span class="mi">1</span><span class="p">)</span>
4329
+ <a id="__codelineno-111-4" name="__codelineno-111-4" href="#__codelineno-111-4"></a><span class="n">strategy</span><span class="p">:</span> <span class="n">Literal</span><span class="p">[</span><span class="s1">'auto'</span><span class="p">,</span> <span class="s1">'sdf'</span><span class="p">,</span> <span class="s1">'csv'</span><span class="p">,</span> <span class="s1">'tsv'</span><span class="p">,</span> <span class="s1">'lines'</span><span class="p">]</span> <span class="o">=</span> <span class="s1">'auto'</span>
4330
+ </code></pre></div>
4331
+ <h3 id="load_pipeline_spec"><code>load_pipeline_spec</code><a class="headerlink" href="#load_pipeline_spec" title="Permanent link">&para;</a></h3>
4332
+ <div class="highlight"><pre><span></span><code><a id="__codelineno-112-1" name="__codelineno-112-1" href="#__codelineno-112-1"></a><span class="k">def</span><span class="w"> </span><span class="nf">load_pipeline_spec</span><span class="p">(</span><span class="n">path</span><span class="p">:</span> <span class="nb">str</span> <span class="o">|</span> <span class="n">Path</span><span class="p">)</span> <span class="o">-&gt;</span> <span class="n">PipelineSpec</span>
4333
+ </code></pre></div>
4334
+ <div class="highlight"><pre><span></span><code><a id="__codelineno-113-1" name="__codelineno-113-1" href="#__codelineno-113-1"></a>Load a pipeline spec from YAML or JSON.
4335
+ </code></pre></div>
4336
+ <h2 id="caddforgepipelineexecutor"><code>caddforge.pipeline.executor</code><a class="headerlink" href="#caddforgepipelineexecutor" title="Permanent link">&para;</a></h2>
4337
+ <h3 id="pipelineexecutionresult"><code>PipelineExecutionResult</code><a class="headerlink" href="#pipelineexecutionresult" title="Permanent link">&para;</a></h3>
4338
+ <div class="highlight"><pre><span></span><code><a id="__codelineno-114-1" name="__codelineno-114-1" href="#__codelineno-114-1"></a><span class="k">class</span><span class="w"> </span><span class="nc">PipelineExecutionResult</span><span class="p">()</span>
4339
+ </code></pre></div>
4340
+ <div class="highlight"><pre><span></span><code><a id="__codelineno-115-1" name="__codelineno-115-1" href="#__codelineno-115-1"></a>Summary returned after a pipeline run.
4341
+ </code></pre></div>
4342
+ <p>Declared fields and enum values (inherited fields are documented on the base class):</p>
4343
+ <div class="highlight"><pre><span></span><code><a id="__codelineno-116-1" name="__codelineno-116-1" href="#__codelineno-116-1"></a><span class="n">pipeline_job</span><span class="p">:</span> <span class="n">Job</span>
4344
+ <a id="__codelineno-116-2" name="__codelineno-116-2" href="#__codelineno-116-2"></a><span class="n">stage_jobs</span><span class="p">:</span> <span class="nb">dict</span><span class="p">[</span><span class="nb">str</span><span class="p">,</span> <span class="nb">list</span><span class="p">[</span><span class="n">Job</span><span class="p">]]</span> <span class="o">=</span> <span class="n">field</span><span class="p">(</span><span class="n">default_factory</span><span class="o">=</span><span class="nb">dict</span><span class="p">)</span>
4345
+ <a id="__codelineno-116-3" name="__codelineno-116-3" href="#__codelineno-116-3"></a><span class="n">artifacts</span><span class="p">:</span> <span class="nb">dict</span><span class="p">[</span><span class="nb">str</span><span class="p">,</span> <span class="n">ArtifactRef</span><span class="p">]</span> <span class="o">=</span> <span class="n">field</span><span class="p">(</span><span class="n">default_factory</span><span class="o">=</span><span class="nb">dict</span><span class="p">)</span>
4346
+ </code></pre></div>
4347
+ <h3 id="run_pipeline"><code>run_pipeline</code><a class="headerlink" href="#run_pipeline" title="Permanent link">&para;</a></h3>
4348
+ <div class="highlight"><pre><span></span><code><a id="__codelineno-117-1" name="__codelineno-117-1" href="#__codelineno-117-1"></a><span class="k">def</span><span class="w"> </span><span class="nf">run_pipeline</span><span class="p">(</span><span class="n">path</span><span class="p">:</span> <span class="nb">str</span> <span class="o">|</span> <span class="n">Path</span><span class="p">,</span> <span class="o">*</span><span class="p">,</span> <span class="n">emit</span><span class="p">:</span> <span class="n">EmitFn</span> <span class="o">|</span> <span class="kc">None</span><span class="o">=</span><span class="kc">None</span><span class="p">,</span> <span class="n">poll_interval_seconds</span><span class="p">:</span> <span class="nb">int</span><span class="o">=</span><span class="mi">10</span><span class="p">,</span> <span class="n">wait_timeout_seconds</span><span class="p">:</span> <span class="nb">int</span> <span class="o">|</span> <span class="kc">None</span><span class="o">=</span><span class="kc">None</span><span class="p">,</span> <span class="n">backend_options</span><span class="p">:</span> <span class="n">BackendOptions</span> <span class="o">|</span> <span class="kc">None</span><span class="o">=</span><span class="kc">None</span><span class="p">)</span> <span class="o">-&gt;</span> <span class="n">PipelineExecutionResult</span>
4349
+ </code></pre></div>
4350
+ <div class="highlight"><pre><span></span><code><a id="__codelineno-118-1" name="__codelineno-118-1" href="#__codelineno-118-1"></a>Load and run a pipeline spec from disk.
4351
+ </code></pre></div>
4352
+
4353
+
4354
+
4355
+
4356
+
4357
+
4358
+
4359
+
4360
+
4361
+
4362
+
4363
+
4364
+
4365
+ </article>
4366
+ </div>
4367
+
4368
+
4369
+ <script>var target=document.getElementById(location.hash.slice(1));target&&target.name&&(target.checked=target.name.startsWith("__tabbed_"))</script>
4370
+ </div>
4371
+
4372
+ <button type="button" class="md-top md-icon" data-md-component="top" hidden>
4373
+
4374
+ <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>
4375
+ Back to top
4376
+ </button>
4377
+
4378
+ </main>
4379
+
4380
+ <footer class="md-footer">
4381
+
4382
+ <div class="md-footer-meta md-typeset">
4383
+ <div class="md-footer-meta__inner md-grid">
4384
+ <div class="md-copyright">
4385
+
4386
+
4387
+ Made with
4388
+ <a href="https://squidfunk.github.io/mkdocs-material/" target="_blank" rel="noopener">
4389
+ Material for MkDocs
4390
+ </a>
4391
+
4392
+ </div>
4393
+
4394
+ </div>
4395
+ </div>
4396
+ </footer>
4397
+
4398
+ </div>
4399
+ <div class="md-dialog" data-md-component="dialog">
4400
+ <div class="md-dialog__inner md-typeset"></div>
4401
+ </div>
4402
+
4403
+
4404
+
4405
+
4406
+
4407
+ <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>
4408
+
4409
+
4410
+ <script src="../../assets/javascripts/bundle.d7400e89.min.js"></script>
4411
+
4412
+
4413
+ </body>
4414
+ </html>