thundergraph-model 1.0.0__tar.gz

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 (300) hide show
  1. thundergraph_model-1.0.0/.github/ISSUE_TEMPLATE/01-bug_report.yml +110 -0
  2. thundergraph_model-1.0.0/.github/ISSUE_TEMPLATE/02-feature_request.yml +62 -0
  3. thundergraph_model-1.0.0/.github/ISSUE_TEMPLATE/03-documentation.yml +58 -0
  4. thundergraph_model-1.0.0/.github/ISSUE_TEMPLATE/config.yml +2 -0
  5. thundergraph_model-1.0.0/.github/pull_request_template.md +58 -0
  6. thundergraph_model-1.0.0/.github/workflows/publish.yml +36 -0
  7. thundergraph_model-1.0.0/.gitignore +207 -0
  8. thundergraph_model-1.0.0/CHANGELOG.md +46 -0
  9. thundergraph_model-1.0.0/LICENSE +201 -0
  10. thundergraph_model-1.0.0/PKG-INFO +82 -0
  11. thundergraph_model-1.0.0/PYPI.md +66 -0
  12. thundergraph_model-1.0.0/README.md +155 -0
  13. thundergraph_model-1.0.0/docs/generation_docs/behavior_methodology.md +558 -0
  14. thundergraph_model-1.0.0/docs/generation_docs/brainstorm.md +611 -0
  15. thundergraph_model-1.0.0/docs/generation_docs/conceptual_requirements.md +111 -0
  16. thundergraph_model-1.0.0/docs/generation_docs/evaluation_api_facade_implementation_plan.md +310 -0
  17. thundergraph_model-1.0.0/docs/generation_docs/execution_methodology.md +766 -0
  18. thundergraph_model-1.0.0/docs/generation_docs/implementation_plan.md +967 -0
  19. thundergraph_model-1.0.0/docs/generation_docs/logical_architecture.md +479 -0
  20. thundergraph_model-1.0.0/docs/generation_docs/model_prototype_sketch.py +420 -0
  21. thundergraph_model-1.0.0/docs/generation_docs/requirement_composition_and_naming_implementation_plan.md +332 -0
  22. thundergraph_model-1.0.0/docs/generation_docs/system_authoring_restrictions_implementation_plan.md +436 -0
  23. thundergraph_model-1.0.0/docs/generation_docs/use_cases.md +799 -0
  24. thundergraph_model-1.0.0/docs/generation_docs/v0_api.md +1741 -0
  25. thundergraph_model-1.0.0/docs/user_docs/IMPLEMENTATION_PLAN.md +419 -0
  26. thundergraph_model-1.0.0/docs/user_docs/README.md +20 -0
  27. thundergraph_model-1.0.0/docs/user_docs/_build/html/.buildinfo +4 -0
  28. thundergraph_model-1.0.0/docs/user_docs/_build/html/.buildinfo.bak +4 -0
  29. thundergraph_model-1.0.0/docs/user_docs/_build/html/.doctrees/api/api_analysis.doctree +0 -0
  30. thundergraph_model-1.0.0/docs/user_docs/_build/html/.doctrees/api/api_execution.doctree +0 -0
  31. thundergraph_model-1.0.0/docs/user_docs/_build/html/.doctrees/api/api_integrations.doctree +0 -0
  32. thundergraph_model-1.0.0/docs/user_docs/_build/html/.doctrees/api/api_model.doctree +0 -0
  33. thundergraph_model-1.0.0/docs/user_docs/_build/html/.doctrees/api/api_root.doctree +0 -0
  34. thundergraph_model-1.0.0/docs/user_docs/_build/html/.doctrees/api/index.doctree +0 -0
  35. thundergraph_model-1.0.0/docs/user_docs/_build/html/.doctrees/developer/architecture.doctree +0 -0
  36. thundergraph_model-1.0.0/docs/user_docs/_build/html/.doctrees/developer/contributing.doctree +0 -0
  37. thundergraph_model-1.0.0/docs/user_docs/_build/html/.doctrees/developer/extension_playbook.doctree +0 -0
  38. thundergraph_model-1.0.0/docs/user_docs/_build/html/.doctrees/developer/releasing.doctree +0 -0
  39. thundergraph_model-1.0.0/docs/user_docs/_build/html/.doctrees/developer/repository_map.doctree +0 -0
  40. thundergraph_model-1.0.0/docs/user_docs/_build/html/.doctrees/developer/testing.doctree +0 -0
  41. thundergraph_model-1.0.0/docs/user_docs/_build/html/.doctrees/docstring_style.doctree +0 -0
  42. thundergraph_model-1.0.0/docs/user_docs/_build/html/.doctrees/drafts/execution_pipeline.doctree +0 -0
  43. thundergraph_model-1.0.0/docs/user_docs/_build/html/.doctrees/drafts/glossary.doctree +0 -0
  44. thundergraph_model-1.0.0/docs/user_docs/_build/html/.doctrees/drafts/repository_map.doctree +0 -0
  45. thundergraph_model-1.0.0/docs/user_docs/_build/html/.doctrees/drafts/what_is_thundergraph_model.doctree +0 -0
  46. thundergraph_model-1.0.0/docs/user_docs/_build/html/.doctrees/environment.pickle +0 -0
  47. thundergraph_model-1.0.0/docs/user_docs/_build/html/.doctrees/index.doctree +0 -0
  48. thundergraph_model-1.0.0/docs/user_docs/_build/html/.doctrees/user/concepts_external_compute.doctree +0 -0
  49. thundergraph_model-1.0.0/docs/user_docs/_build/html/.doctrees/user/concepts_requirements.doctree +0 -0
  50. thundergraph_model-1.0.0/docs/user_docs/_build/html/.doctrees/user/faq.doctree +0 -0
  51. thundergraph_model-1.0.0/docs/user_docs/_build/html/.doctrees/user/install.doctree +0 -0
  52. thundergraph_model-1.0.0/docs/user_docs/_build/html/.doctrees/user/mental_model.doctree +0 -0
  53. thundergraph_model-1.0.0/docs/user_docs/_build/html/.doctrees/user/overview.doctree +0 -0
  54. thundergraph_model-1.0.0/docs/user_docs/_build/html/.doctrees/user/quickstart.doctree +0 -0
  55. thundergraph_model-1.0.0/docs/user_docs/_build/html/_modules/index.html +324 -0
  56. thundergraph_model-1.0.0/docs/user_docs/_build/html/_modules/tg_model/analysis/compare_variants.html +517 -0
  57. thundergraph_model-1.0.0/docs/user_docs/_build/html/_modules/tg_model/analysis/impact.html +412 -0
  58. thundergraph_model-1.0.0/docs/user_docs/_build/html/_modules/tg_model/analysis/sweep.html +513 -0
  59. thundergraph_model-1.0.0/docs/user_docs/_build/html/_modules/tg_model/execution/behavior.html +1197 -0
  60. thundergraph_model-1.0.0/docs/user_docs/_build/html/_modules/tg_model/execution/configured_model.html +1071 -0
  61. thundergraph_model-1.0.0/docs/user_docs/_build/html/_modules/tg_model/execution/connection_bindings.html +401 -0
  62. thundergraph_model-1.0.0/docs/user_docs/_build/html/_modules/tg_model/execution/dependency_graph.html +553 -0
  63. thundergraph_model-1.0.0/docs/user_docs/_build/html/_modules/tg_model/execution/evaluator.html +736 -0
  64. thundergraph_model-1.0.0/docs/user_docs/_build/html/_modules/tg_model/execution/graph_compiler.html +1421 -0
  65. thundergraph_model-1.0.0/docs/user_docs/_build/html/_modules/tg_model/execution/instances.html +612 -0
  66. thundergraph_model-1.0.0/docs/user_docs/_build/html/_modules/tg_model/execution/requirements.html +424 -0
  67. thundergraph_model-1.0.0/docs/user_docs/_build/html/_modules/tg_model/execution/run_context.html +660 -0
  68. thundergraph_model-1.0.0/docs/user_docs/_build/html/_modules/tg_model/execution/validation.html +528 -0
  69. thundergraph_model-1.0.0/docs/user_docs/_build/html/_modules/tg_model/execution/value_slots.html +371 -0
  70. thundergraph_model-1.0.0/docs/user_docs/_build/html/_modules/tg_model/integrations/external_compute.html +463 -0
  71. thundergraph_model-1.0.0/docs/user_docs/_build/html/_modules/tg_model/model/definition_context.html +2167 -0
  72. thundergraph_model-1.0.0/docs/user_docs/_build/html/_modules/tg_model/model/elements.html +485 -0
  73. thundergraph_model-1.0.0/docs/user_docs/_build/html/_modules/tg_model/model/expr.html +386 -0
  74. thundergraph_model-1.0.0/docs/user_docs/_build/html/_modules/tg_model/model/refs.html +645 -0
  75. thundergraph_model-1.0.0/docs/user_docs/_build/html/_sources/api/api_analysis.rst.txt +6 -0
  76. thundergraph_model-1.0.0/docs/user_docs/_build/html/_sources/api/api_execution.rst.txt +6 -0
  77. thundergraph_model-1.0.0/docs/user_docs/_build/html/_sources/api/api_integrations.rst.txt +6 -0
  78. thundergraph_model-1.0.0/docs/user_docs/_build/html/_sources/api/api_model.rst.txt +6 -0
  79. thundergraph_model-1.0.0/docs/user_docs/_build/html/_sources/api/api_root.rst.txt +10 -0
  80. thundergraph_model-1.0.0/docs/user_docs/_build/html/_sources/api/index.md.txt +15 -0
  81. thundergraph_model-1.0.0/docs/user_docs/_build/html/_sources/developer/architecture.md.txt +53 -0
  82. thundergraph_model-1.0.0/docs/user_docs/_build/html/_sources/developer/contributing.md.txt +31 -0
  83. thundergraph_model-1.0.0/docs/user_docs/_build/html/_sources/developer/extension_playbook.md.txt +57 -0
  84. thundergraph_model-1.0.0/docs/user_docs/_build/html/_sources/developer/releasing.md.txt +27 -0
  85. thundergraph_model-1.0.0/docs/user_docs/_build/html/_sources/developer/repository_map.md.txt +25 -0
  86. thundergraph_model-1.0.0/docs/user_docs/_build/html/_sources/developer/testing.md.txt +45 -0
  87. thundergraph_model-1.0.0/docs/user_docs/_build/html/_sources/docstring_style.md.txt +70 -0
  88. thundergraph_model-1.0.0/docs/user_docs/_build/html/_sources/drafts/execution_pipeline.md.txt +91 -0
  89. thundergraph_model-1.0.0/docs/user_docs/_build/html/_sources/drafts/glossary.md.txt +67 -0
  90. thundergraph_model-1.0.0/docs/user_docs/_build/html/_sources/drafts/repository_map.md.txt +61 -0
  91. thundergraph_model-1.0.0/docs/user_docs/_build/html/_sources/drafts/what_is_thundergraph_model.md.txt +56 -0
  92. thundergraph_model-1.0.0/docs/user_docs/_build/html/_sources/index.md.txt +46 -0
  93. thundergraph_model-1.0.0/docs/user_docs/_build/html/_sources/user/concepts_external_compute.md.txt +92 -0
  94. thundergraph_model-1.0.0/docs/user_docs/_build/html/_sources/user/concepts_requirements.md.txt +147 -0
  95. thundergraph_model-1.0.0/docs/user_docs/_build/html/_sources/user/faq.md.txt +70 -0
  96. thundergraph_model-1.0.0/docs/user_docs/_build/html/_sources/user/install.md.txt +36 -0
  97. thundergraph_model-1.0.0/docs/user_docs/_build/html/_sources/user/mental_model.md.txt +27 -0
  98. thundergraph_model-1.0.0/docs/user_docs/_build/html/_sources/user/overview.md.txt +23 -0
  99. thundergraph_model-1.0.0/docs/user_docs/_build/html/_sources/user/quickstart.md.txt +167 -0
  100. thundergraph_model-1.0.0/docs/user_docs/_build/html/_static/base-stemmer.js +476 -0
  101. thundergraph_model-1.0.0/docs/user_docs/_build/html/_static/basic.css +906 -0
  102. thundergraph_model-1.0.0/docs/user_docs/_build/html/_static/debug.css +69 -0
  103. thundergraph_model-1.0.0/docs/user_docs/_build/html/_static/doctools.js +150 -0
  104. thundergraph_model-1.0.0/docs/user_docs/_build/html/_static/documentation_options.js +13 -0
  105. thundergraph_model-1.0.0/docs/user_docs/_build/html/_static/english-stemmer.js +1066 -0
  106. thundergraph_model-1.0.0/docs/user_docs/_build/html/_static/file.png +0 -0
  107. thundergraph_model-1.0.0/docs/user_docs/_build/html/_static/language_data.js +13 -0
  108. thundergraph_model-1.0.0/docs/user_docs/_build/html/_static/minus.png +0 -0
  109. thundergraph_model-1.0.0/docs/user_docs/_build/html/_static/plus.png +0 -0
  110. thundergraph_model-1.0.0/docs/user_docs/_build/html/_static/pygments.css +250 -0
  111. thundergraph_model-1.0.0/docs/user_docs/_build/html/_static/scripts/furo-extensions.js +0 -0
  112. thundergraph_model-1.0.0/docs/user_docs/_build/html/_static/scripts/furo.js +3 -0
  113. thundergraph_model-1.0.0/docs/user_docs/_build/html/_static/scripts/furo.js.LICENSE.txt +7 -0
  114. thundergraph_model-1.0.0/docs/user_docs/_build/html/_static/scripts/furo.js.map +1 -0
  115. thundergraph_model-1.0.0/docs/user_docs/_build/html/_static/searchtools.js +693 -0
  116. thundergraph_model-1.0.0/docs/user_docs/_build/html/_static/skeleton.css +296 -0
  117. thundergraph_model-1.0.0/docs/user_docs/_build/html/_static/sphinx_highlight.js +159 -0
  118. thundergraph_model-1.0.0/docs/user_docs/_build/html/_static/styles/furo-extensions.css +2 -0
  119. thundergraph_model-1.0.0/docs/user_docs/_build/html/_static/styles/furo-extensions.css.map +1 -0
  120. thundergraph_model-1.0.0/docs/user_docs/_build/html/_static/styles/furo.css +2 -0
  121. thundergraph_model-1.0.0/docs/user_docs/_build/html/_static/styles/furo.css.map +1 -0
  122. thundergraph_model-1.0.0/docs/user_docs/_build/html/api/api_analysis.html +720 -0
  123. thundergraph_model-1.0.0/docs/user_docs/_build/html/api/api_execution.html +2837 -0
  124. thundergraph_model-1.0.0/docs/user_docs/_build/html/api/api_integrations.html +578 -0
  125. thundergraph_model-1.0.0/docs/user_docs/_build/html/api/api_model.html +1976 -0
  126. thundergraph_model-1.0.0/docs/user_docs/_build/html/api/api_root.html +343 -0
  127. thundergraph_model-1.0.0/docs/user_docs/_build/html/api/index.html +437 -0
  128. thundergraph_model-1.0.0/docs/user_docs/_build/html/developer/architecture.html +406 -0
  129. thundergraph_model-1.0.0/docs/user_docs/_build/html/developer/contributing.html +388 -0
  130. thundergraph_model-1.0.0/docs/user_docs/_build/html/developer/extension_playbook.html +432 -0
  131. thundergraph_model-1.0.0/docs/user_docs/_build/html/developer/releasing.html +379 -0
  132. thundergraph_model-1.0.0/docs/user_docs/_build/html/developer/repository_map.html +397 -0
  133. thundergraph_model-1.0.0/docs/user_docs/_build/html/developer/testing.html +412 -0
  134. thundergraph_model-1.0.0/docs/user_docs/_build/html/docstring_style.html +491 -0
  135. thundergraph_model-1.0.0/docs/user_docs/_build/html/drafts/execution_pipeline.html +443 -0
  136. thundergraph_model-1.0.0/docs/user_docs/_build/html/drafts/glossary.html +460 -0
  137. thundergraph_model-1.0.0/docs/user_docs/_build/html/drafts/repository_map.html +433 -0
  138. thundergraph_model-1.0.0/docs/user_docs/_build/html/drafts/what_is_thundergraph_model.html +411 -0
  139. thundergraph_model-1.0.0/docs/user_docs/_build/html/genindex.html +1302 -0
  140. thundergraph_model-1.0.0/docs/user_docs/_build/html/index.html +506 -0
  141. thundergraph_model-1.0.0/docs/user_docs/_build/html/objects.inv +0 -0
  142. thundergraph_model-1.0.0/docs/user_docs/_build/html/py-modindex.html +347 -0
  143. thundergraph_model-1.0.0/docs/user_docs/_build/html/search.html +319 -0
  144. thundergraph_model-1.0.0/docs/user_docs/_build/html/searchindex.js +1 -0
  145. thundergraph_model-1.0.0/docs/user_docs/_build/html/user/concepts_external_compute.html +448 -0
  146. thundergraph_model-1.0.0/docs/user_docs/_build/html/user/concepts_requirements.html +548 -0
  147. thundergraph_model-1.0.0/docs/user_docs/_build/html/user/faq.html +427 -0
  148. thundergraph_model-1.0.0/docs/user_docs/_build/html/user/install.html +387 -0
  149. thundergraph_model-1.0.0/docs/user_docs/_build/html/user/mental_model.html +372 -0
  150. thundergraph_model-1.0.0/docs/user_docs/_build/html/user/overview.html +381 -0
  151. thundergraph_model-1.0.0/docs/user_docs/_build/html/user/quickstart.html +517 -0
  152. thundergraph_model-1.0.0/docs/user_docs/api/api_analysis.rst +6 -0
  153. thundergraph_model-1.0.0/docs/user_docs/api/api_execution.rst +6 -0
  154. thundergraph_model-1.0.0/docs/user_docs/api/api_integrations.rst +6 -0
  155. thundergraph_model-1.0.0/docs/user_docs/api/api_model.rst +6 -0
  156. thundergraph_model-1.0.0/docs/user_docs/api/api_root.rst +10 -0
  157. thundergraph_model-1.0.0/docs/user_docs/api/index.md +15 -0
  158. thundergraph_model-1.0.0/docs/user_docs/conf.py +74 -0
  159. thundergraph_model-1.0.0/docs/user_docs/developer/architecture.md +53 -0
  160. thundergraph_model-1.0.0/docs/user_docs/developer/contributing.md +31 -0
  161. thundergraph_model-1.0.0/docs/user_docs/developer/extension_playbook.md +57 -0
  162. thundergraph_model-1.0.0/docs/user_docs/developer/releasing.md +27 -0
  163. thundergraph_model-1.0.0/docs/user_docs/developer/repository_map.md +25 -0
  164. thundergraph_model-1.0.0/docs/user_docs/developer/testing.md +45 -0
  165. thundergraph_model-1.0.0/docs/user_docs/docstring_style.md +70 -0
  166. thundergraph_model-1.0.0/docs/user_docs/drafts/README.md +12 -0
  167. thundergraph_model-1.0.0/docs/user_docs/drafts/execution_pipeline.md +91 -0
  168. thundergraph_model-1.0.0/docs/user_docs/drafts/glossary.md +67 -0
  169. thundergraph_model-1.0.0/docs/user_docs/drafts/repository_map.md +61 -0
  170. thundergraph_model-1.0.0/docs/user_docs/drafts/what_is_thundergraph_model.md +56 -0
  171. thundergraph_model-1.0.0/docs/user_docs/index.md +46 -0
  172. thundergraph_model-1.0.0/docs/user_docs/user/concepts_external_compute.md +92 -0
  173. thundergraph_model-1.0.0/docs/user_docs/user/concepts_requirements.md +147 -0
  174. thundergraph_model-1.0.0/docs/user_docs/user/faq.md +70 -0
  175. thundergraph_model-1.0.0/docs/user_docs/user/install.md +36 -0
  176. thundergraph_model-1.0.0/docs/user_docs/user/mental_model.md +27 -0
  177. thundergraph_model-1.0.0/docs/user_docs/user/overview.md +23 -0
  178. thundergraph_model-1.0.0/docs/user_docs/user/quickstart.md +167 -0
  179. thundergraph_model-1.0.0/examples/__init__.py +1 -0
  180. thundergraph_model-1.0.0/examples/commercial_aircraft/IMPLEMENTATION_PLAN.md +333 -0
  181. thundergraph_model-1.0.0/examples/commercial_aircraft/README.md +70 -0
  182. thundergraph_model-1.0.0/examples/commercial_aircraft/__init__.py +43 -0
  183. thundergraph_model-1.0.0/examples/commercial_aircraft/integrations/__init__.py +14 -0
  184. thundergraph_model-1.0.0/examples/commercial_aircraft/integrations/adapters.py +63 -0
  185. thundergraph_model-1.0.0/examples/commercial_aircraft/integrations/bindings.py +49 -0
  186. thundergraph_model-1.0.0/examples/commercial_aircraft/product/__init__.py +21 -0
  187. thundergraph_model-1.0.0/examples/commercial_aircraft/product/aircraft.py +105 -0
  188. thundergraph_model-1.0.0/examples/commercial_aircraft/product/major_assemblies/__init__.py +19 -0
  189. thundergraph_model-1.0.0/examples/commercial_aircraft/product/major_assemblies/parts.py +90 -0
  190. thundergraph_model-1.0.0/examples/commercial_aircraft/program/__init__.py +5 -0
  191. thundergraph_model-1.0.0/examples/commercial_aircraft/program/cargo_jet_program.py +92 -0
  192. thundergraph_model-1.0.0/examples/commercial_aircraft/program/l1_requirement_packages.py +166 -0
  193. thundergraph_model-1.0.0/examples/commercial_aircraft/program/mission_context.py +28 -0
  194. thundergraph_model-1.0.0/examples/commercial_aircraft/reporting/__init__.py +6 -0
  195. thundergraph_model-1.0.0/examples/commercial_aircraft/reporting/extract.py +225 -0
  196. thundergraph_model-1.0.0/examples/commercial_aircraft/reporting/snapshot.py +168 -0
  197. thundergraph_model-1.0.0/examples/hpc_datacenter/README.md +49 -0
  198. thundergraph_model-1.0.0/examples/hpc_datacenter/__init__.py +7 -0
  199. thundergraph_model-1.0.0/examples/hpc_datacenter/program.py +121 -0
  200. thundergraph_model-1.0.0/examples/mars_ntp_tug/__init__.py +4 -0
  201. thundergraph_model-1.0.0/examples/mars_ntp_tug/integrations/__init__.py +19 -0
  202. thundergraph_model-1.0.0/examples/mars_ntp_tug/integrations/adapters.py +74 -0
  203. thundergraph_model-1.0.0/examples/mars_ntp_tug/integrations/bindings.py +60 -0
  204. thundergraph_model-1.0.0/examples/mars_ntp_tug/integrations/preset_inputs.py +148 -0
  205. thundergraph_model-1.0.0/examples/mars_ntp_tug/reporting/__init__.py +6 -0
  206. thundergraph_model-1.0.0/examples/mars_ntp_tug/reporting/extract.py +206 -0
  207. thundergraph_model-1.0.0/examples/mars_ntp_tug/reporting/snapshot.py +204 -0
  208. thundergraph_model-1.0.0/examples/mars_ntp_tug/tug_model.py +439 -0
  209. thundergraph_model-1.0.0/implementation_plan_instructions.md +18 -0
  210. thundergraph_model-1.0.0/logo.png +0 -0
  211. thundergraph_model-1.0.0/notebooks/_gen_leo_notebook.py +1033 -0
  212. thundergraph_model-1.0.0/notebooks/aev_architecture.mmd +11 -0
  213. thundergraph_model-1.0.0/notebooks/cargo_jet_program.ipynb +504 -0
  214. thundergraph_model-1.0.0/notebooks/hpc_datacenter_parameter_sweep.ipynb +281 -0
  215. thundergraph_model-1.0.0/notebooks/mars_ntp_nuclear_tug.ipynb +280 -0
  216. thundergraph_model-1.0.0/pyproject.toml +68 -0
  217. thundergraph_model-1.0.0/reviewer_architype.md +3 -0
  218. thundergraph_model-1.0.0/tests/__init__.py +0 -0
  219. thundergraph_model-1.0.0/tests/integration/__init__.py +0 -0
  220. thundergraph_model-1.0.0/tests/integration/analysis/__init__.py +0 -0
  221. thundergraph_model-1.0.0/tests/integration/analysis/test_analysis_workflows.py +233 -0
  222. thundergraph_model-1.0.0/tests/integration/behavior/__init__.py +0 -0
  223. thundergraph_model-1.0.0/tests/integration/behavior/test_behavior_e2e.py +125 -0
  224. thundergraph_model-1.0.0/tests/integration/evaluation/__init__.py +0 -0
  225. thundergraph_model-1.0.0/tests/integration/evaluation/test_evaluation_e2e.py +151 -0
  226. thundergraph_model-1.0.0/tests/integration/evaluation/test_external_compute.py +250 -0
  227. thundergraph_model-1.0.0/tests/integration/evaluation/test_requirement_acceptance.py +172 -0
  228. thundergraph_model-1.0.0/tests/integration/evaluation/test_unitflow_evaluation.py +313 -0
  229. thundergraph_model-1.0.0/tests/integration/structural_models/__init__.py +0 -0
  230. thundergraph_model-1.0.0/tests/integration/structural_models/test_citations.py +88 -0
  231. thundergraph_model-1.0.0/tests/integration/structural_models/test_drive_system.py +136 -0
  232. thundergraph_model-1.0.0/tests/integration/structural_models/test_instantiation.py +120 -0
  233. thundergraph_model-1.0.0/tests/integration/test_commercial_aircraft_smoke.py +251 -0
  234. thundergraph_model-1.0.0/tests/integration/test_hpc_datacenter_smoke.py +78 -0
  235. thundergraph_model-1.0.0/tests/integration/test_mars_ntp_tug_smoke.py +75 -0
  236. thundergraph_model-1.0.0/tests/unit/__init__.py +0 -0
  237. thundergraph_model-1.0.0/tests/unit/analysis/__init__.py +0 -0
  238. thundergraph_model-1.0.0/tests/unit/analysis/test_sweep_planning.py +109 -0
  239. thundergraph_model-1.0.0/tests/unit/execution/__init__.py +0 -0
  240. thundergraph_model-1.0.0/tests/unit/execution/test_behavior_runtime.py +134 -0
  241. thundergraph_model-1.0.0/tests/unit/execution/test_behavior_scope.py +182 -0
  242. thundergraph_model-1.0.0/tests/unit/execution/test_configured_model.py +239 -0
  243. thundergraph_model-1.0.0/tests/unit/execution/test_configured_model_evaluate.py +149 -0
  244. thundergraph_model-1.0.0/tests/unit/execution/test_dependency_graph.py +114 -0
  245. thundergraph_model-1.0.0/tests/unit/execution/test_evaluator.py +94 -0
  246. thundergraph_model-1.0.0/tests/unit/execution/test_instances.py +113 -0
  247. thundergraph_model-1.0.0/tests/unit/execution/test_phase6_runtime.py +303 -0
  248. thundergraph_model-1.0.0/tests/unit/execution/test_run_context.py +61 -0
  249. thundergraph_model-1.0.0/tests/unit/execution/test_validation.py +74 -0
  250. thundergraph_model-1.0.0/tests/unit/export/__init__.py +0 -0
  251. thundergraph_model-1.0.0/tests/unit/integrations/__init__.py +0 -0
  252. thundergraph_model-1.0.0/tests/unit/model/__init__.py +0 -0
  253. thundergraph_model-1.0.0/tests/unit/model/test_attribute_ref.py +79 -0
  254. thundergraph_model-1.0.0/tests/unit/model/test_behavior_declarations.py +85 -0
  255. thundergraph_model-1.0.0/tests/unit/model/test_compile_types.py +163 -0
  256. thundergraph_model-1.0.0/tests/unit/model/test_definition_context.py +167 -0
  257. thundergraph_model-1.0.0/tests/unit/model/test_elements.py +24 -0
  258. thundergraph_model-1.0.0/tests/unit/model/test_example_system_authoring_policy.py +55 -0
  259. thundergraph_model-1.0.0/tests/unit/model/test_expr.py +29 -0
  260. thundergraph_model-1.0.0/tests/unit/model/test_identity.py +53 -0
  261. thundergraph_model-1.0.0/tests/unit/model/test_parameter_ref.py +190 -0
  262. thundergraph_model-1.0.0/tests/unit/model/test_phase6_ontology.py +102 -0
  263. thundergraph_model-1.0.0/tests/unit/model/test_refs.py +68 -0
  264. thundergraph_model-1.0.0/tests/unit/model/test_requirement_block.py +659 -0
  265. thundergraph_model-1.0.0/tests/unit/model/test_system_authoring_restrictions.py +112 -0
  266. thundergraph_model-1.0.0/tg_model/__init__.py +46 -0
  267. thundergraph_model-1.0.0/tg_model/analysis/__init__.py +38 -0
  268. thundergraph_model-1.0.0/tg_model/analysis/_coherence.py +91 -0
  269. thundergraph_model-1.0.0/tg_model/analysis/compare_variants.py +197 -0
  270. thundergraph_model-1.0.0/tg_model/analysis/impact.py +101 -0
  271. thundergraph_model-1.0.0/tg_model/analysis/sweep.py +199 -0
  272. thundergraph_model-1.0.0/tg_model/execution/__init__.py +122 -0
  273. thundergraph_model-1.0.0/tg_model/execution/behavior.py +826 -0
  274. thundergraph_model-1.0.0/tg_model/execution/configured_model.py +754 -0
  275. thundergraph_model-1.0.0/tg_model/execution/connection_bindings.py +87 -0
  276. thundergraph_model-1.0.0/tg_model/execution/dependency_graph.py +217 -0
  277. thundergraph_model-1.0.0/tg_model/execution/evaluator.py +419 -0
  278. thundergraph_model-1.0.0/tg_model/execution/external_ops.py +153 -0
  279. thundergraph_model-1.0.0/tg_model/execution/graph_compiler.py +1110 -0
  280. thundergraph_model-1.0.0/tg_model/execution/instances.py +274 -0
  281. thundergraph_model-1.0.0/tg_model/execution/requirements.py +104 -0
  282. thundergraph_model-1.0.0/tg_model/execution/rollups.py +60 -0
  283. thundergraph_model-1.0.0/tg_model/execution/run_context.py +304 -0
  284. thundergraph_model-1.0.0/tg_model/execution/solve_groups.py +104 -0
  285. thundergraph_model-1.0.0/tg_model/execution/validation.py +211 -0
  286. thundergraph_model-1.0.0/tg_model/execution/value_slots.py +63 -0
  287. thundergraph_model-1.0.0/tg_model/export/__init__.py +7 -0
  288. thundergraph_model-1.0.0/tg_model/integrations/__init__.py +36 -0
  289. thundergraph_model-1.0.0/tg_model/integrations/external_compute.py +122 -0
  290. thundergraph_model-1.0.0/tg_model/model/__init__.py +39 -0
  291. thundergraph_model-1.0.0/tg_model/model/compile_types.py +896 -0
  292. thundergraph_model-1.0.0/tg_model/model/declarations/__init__.py +8 -0
  293. thundergraph_model-1.0.0/tg_model/model/declarations/behavior.py +37 -0
  294. thundergraph_model-1.0.0/tg_model/model/declarations/values.py +53 -0
  295. thundergraph_model-1.0.0/tg_model/model/definition_context.py +1742 -0
  296. thundergraph_model-1.0.0/tg_model/model/elements.py +159 -0
  297. thundergraph_model-1.0.0/tg_model/model/expr.py +75 -0
  298. thundergraph_model-1.0.0/tg_model/model/identity.py +63 -0
  299. thundergraph_model-1.0.0/tg_model/model/refs.py +319 -0
  300. thundergraph_model-1.0.0/uv.lock +2023 -0
@@ -0,0 +1,110 @@
1
+ # https://docs.github.com/en/communities/using-templates-to-encourage-useful-issues-and-pull-requests/syntax-for-issue-forms
2
+ name: Bug report
3
+ description: Report incorrect behavior, crashes, or regressions
4
+ title: "[bug] "
5
+ body:
6
+ - type: markdown
7
+ attributes:
8
+ value: |
9
+ Thanks for taking the time to report a bug. A **minimal repro** (code snippet or small test) helps a lot.
10
+
11
+ - type: checkboxes
12
+ id: dup_check
13
+ attributes:
14
+ label: Before you submit
15
+ options:
16
+ - label: I searched existing issues for duplicates
17
+ required: true
18
+
19
+ - type: textarea
20
+ id: summary
21
+ attributes:
22
+ label: Summary
23
+ description: What went wrong in one or two sentences?
24
+ validations:
25
+ required: true
26
+
27
+ - type: input
28
+ id: version
29
+ attributes:
30
+ label: Version
31
+ description: Commit SHA, tag, or PyPI release (if applicable).
32
+ placeholder: e.g. v0.2.0 or abc1234
33
+
34
+ - type: textarea
35
+ id: repro
36
+ attributes:
37
+ label: Steps to reproduce
38
+ description: Numbered steps. Include a minimal code snippet if you can.
39
+ placeholder: |
40
+ 1.
41
+ 2.
42
+ 3.
43
+ render: markdown
44
+ validations:
45
+ required: true
46
+
47
+ - type: textarea
48
+ id: actual
49
+ attributes:
50
+ label: Actual behavior
51
+ description: Traceback, wrong value, unexpected exception, etc.
52
+ render: markdown
53
+ validations:
54
+ required: true
55
+
56
+ - type: textarea
57
+ id: expected
58
+ attributes:
59
+ label: Expected behavior
60
+ description: What you expected instead.
61
+ validations:
62
+ required: true
63
+
64
+ - type: textarea
65
+ id: environment
66
+ attributes:
67
+ label: Environment
68
+ description: OS and Python version help narrow things down.
69
+ value: |
70
+ - OS:
71
+ - Python (`python -V`):
72
+ render: markdown
73
+ validations:
74
+ required: false
75
+
76
+ - type: textarea
77
+ id: pytest
78
+ attributes:
79
+ label: Test output (optional)
80
+ description: From the repo root, if relevant — `uv run pytest -q --no-cov`
81
+ render: shell
82
+ validations:
83
+ required: false
84
+
85
+ - type: dropdown
86
+ id: area
87
+ attributes:
88
+ label: Area
89
+ description: Rough bucket for triage (pick the closest match).
90
+ options:
91
+ - Execution / evaluator / run context
92
+ - Graph compiler / dependency graph
93
+ - Model authoring / define / refs
94
+ - Requirements / constraints
95
+ - External compute / integrations
96
+ - Analysis (sweep, impact, …)
97
+ - Documentation
98
+ - Examples / notebooks
99
+ - Unsure / other
100
+ default: 8
101
+ validations:
102
+ required: true
103
+
104
+ - type: textarea
105
+ id: extra
106
+ attributes:
107
+ label: Additional context
108
+ description: Screenshots, notebook paths, links to discussions.
109
+ validations:
110
+ required: false
@@ -0,0 +1,62 @@
1
+ # https://docs.github.com/en/communities/using-templates-to-encourage-useful-issues-and-pull-requests/syntax-for-issue-forms
2
+ name: Feature request
3
+ description: Propose a new capability, API improvement, or enhancement
4
+ title: "[feat] "
5
+ body:
6
+ - type: markdown
7
+ attributes:
8
+ value: |
9
+ Describe the **problem** and your **proposed solution** so maintainers can triage quickly.
10
+
11
+ - type: textarea
12
+ id: motivation
13
+ attributes:
14
+ label: Problem / motivation
15
+ description: What is hard, missing, or awkward today? Link related issues with `#123`.
16
+ render: markdown
17
+ validations:
18
+ required: true
19
+
20
+ - type: textarea
21
+ id: proposal
22
+ attributes:
23
+ label: Proposed solution
24
+ description: APIs, ergonomics, docs — be as specific as you can.
25
+ render: markdown
26
+ validations:
27
+ required: true
28
+
29
+ - type: textarea
30
+ id: alternatives
31
+ attributes:
32
+ label: Alternatives considered
33
+ description: Optional — other ways to solve the same problem.
34
+ render: markdown
35
+ validations:
36
+ required: false
37
+
38
+ - type: dropdown
39
+ id: scope
40
+ attributes:
41
+ label: Primary scope
42
+ description: Where this mainly applies.
43
+ options:
44
+ - Runtime / execution / evaluation
45
+ - Authoring API (`define`, context, …)
46
+ - Requirements / constraints
47
+ - External compute
48
+ - Analysis tooling
49
+ - Documentation / examples
50
+ - Other / not sure
51
+ default: 6
52
+ validations:
53
+ required: true
54
+
55
+ - type: textarea
56
+ id: extra
57
+ attributes:
58
+ label: Additional context
59
+ description: Prior art, diagrams, notebook references.
60
+ render: markdown
61
+ validations:
62
+ required: false
@@ -0,0 +1,58 @@
1
+ # https://docs.github.com/en/communities/using-templates-to-encourage-useful-issues-and-pull-requests/syntax-for-issue-forms
2
+ name: Documentation
3
+ description: Report unclear, missing, or incorrect documentation
4
+ title: "[docs] "
5
+ body:
6
+ - type: markdown
7
+ attributes:
8
+ value: |
9
+ Point us to the **exact page or module** so we can fix it quickly.
10
+
11
+ - type: input
12
+ id: location
13
+ attributes:
14
+ label: Link or path
15
+ description: URL to built docs, or path under `docs/user_docs/`, or `tg_module` for API docstrings.
16
+ placeholder: e.g. docs/user_docs/user/quickstart.md or tg_model.execution.configured_model
17
+ validations:
18
+ required: true
19
+
20
+ - type: dropdown
21
+ id: doc_type
22
+ attributes:
23
+ label: Kind of issue
24
+ options:
25
+ - Wrong or outdated content
26
+ - Missing section / gap
27
+ - Typo / formatting
28
+ - Broken internal link (Sphinx)
29
+ - Example / code snippet wrong
30
+ - Other
31
+ default: 0
32
+ validations:
33
+ required: true
34
+
35
+ - type: textarea
36
+ id: problem
37
+ attributes:
38
+ label: What is wrong?
39
+ description: What did you read, and why was it confusing or incorrect?
40
+ render: markdown
41
+ validations:
42
+ required: true
43
+
44
+ - type: textarea
45
+ id: suggestion
46
+ attributes:
47
+ label: Suggested fix (optional)
48
+ description: How you would like it to read, or offer to open a PR.
49
+ render: markdown
50
+ validations:
51
+ required: false
52
+
53
+ - type: textarea
54
+ id: extra
55
+ attributes:
56
+ label: Additional context
57
+ validations:
58
+ required: false
@@ -0,0 +1,2 @@
1
+ # https://docs.github.com/en/communities/using-templates-to-encourage-useful-issues-and-pull-requests/configuring-issue-templates-for-your-repository
2
+ blank_issues_enabled: true
@@ -0,0 +1,58 @@
1
+ ## What I did
2
+
3
+ <!-- Describe the work: problem solved, approach, main files or areas touched. Use bullets if it helps. -->
4
+
5
+
6
+
7
+ ## Why
8
+
9
+ <!-- Motivation, context, or link to issue / discussion. e.g. Fixes #123 -->
10
+
11
+
12
+
13
+ ## How to verify
14
+
15
+ <!-- How a reviewer can validate this change (commands, UI steps, scenarios). Omit or write “see checklist” if obvious. -->
16
+
17
+
18
+
19
+ ## Scope
20
+
21
+ <!-- e.g. tg_model/execution, docs/user_docs, examples, tests -->
22
+
23
+
24
+
25
+ ---
26
+
27
+ ## Checklist
28
+
29
+ ### Tests and lint
30
+
31
+ From the **repository root**:
32
+
33
+ - [ ] `uv run pytest` passes.
34
+ - [ ] `uv run ruff check tg_model tests` passes (or only pre-existing issues outside your diff).
35
+ - [ ] `uv run mypy tg_model` passes if your change touched typed surfaces.
36
+
37
+ ### Public API and docs
38
+
39
+ - [ ] Docstrings updated for any new or changed public function, method, or module export (NumPy-style; see `docs/user_docs/docstring_style.md`).
40
+ - [ ] If user-facing behavior changed, user docs or examples are updated in the same change or a follow-up is tracked.
41
+
42
+ ### Sphinx (if you edited `docs/` or API-adjacent narratives)
43
+
44
+ - [ ] `uv run sphinx-build -b html docs/user_docs docs/user_docs/_build/html` succeeds (use `-W` for warnings-as-errors if you are touching the docs build in CI).
45
+
46
+
47
+ ---
48
+
49
+ ## Screenshots / sample output
50
+
51
+ <!-- Paste snippets, API responses, or screenshots if the change is visible. Write N/A if not applicable. -->
52
+
53
+
54
+
55
+ ## Risk and rollback
56
+
57
+ <!-- Blast radius, feature flags, migration notes, or how to revert. Write N/A if low risk. -->
58
+
@@ -0,0 +1,36 @@
1
+ name: Publish to PyPI
2
+
3
+ on:
4
+ release:
5
+ types: [published]
6
+
7
+ jobs:
8
+ pypi-publish:
9
+ name: Build and publish Python distribution
10
+ runs-on: ubuntu-latest
11
+
12
+ # Required for trusted publishing
13
+ permissions:
14
+ id-token: write
15
+ contents: read
16
+
17
+ steps:
18
+ - uses: actions/checkout@v4
19
+
20
+ - name: Install uv
21
+ uses: astral-sh/setup-uv@v5
22
+ with:
23
+ enable-cache: true
24
+ cache-dependency-glob: "pyproject.toml"
25
+
26
+ - name: Set up Python
27
+ uses: actions/setup-python@v5
28
+ with:
29
+ python-version-file: "pyproject.toml"
30
+
31
+ - name: Build distribution
32
+ run: uv build
33
+
34
+ - name: Publish package distributions to PyPI
35
+ uses: pypa/gh-action-pypi-publish@release/v1
36
+ # No password/token required! This uses OpenID Connect via the permissions block above.
@@ -0,0 +1,207 @@
1
+ # Byte-compiled / optimized / DLL files
2
+ __pycache__/
3
+ *.py[codz]
4
+ *$py.class
5
+
6
+ # C extensions
7
+ *.so
8
+
9
+ # Distribution / packaging
10
+ .Python
11
+ build/
12
+ develop-eggs/
13
+ dist/
14
+ downloads/
15
+ eggs/
16
+ .eggs/
17
+ lib/
18
+ lib64/
19
+ parts/
20
+ sdist/
21
+ var/
22
+ wheels/
23
+ share/python-wheels/
24
+ *.egg-info/
25
+ .installed.cfg
26
+ *.egg
27
+ MANIFEST
28
+
29
+ # PyInstaller
30
+ # Usually these files are written by a python script from a template
31
+ # before PyInstaller builds the exe, so as to inject date/other infos into it.
32
+ *.manifest
33
+ *.spec
34
+
35
+ # Installer logs
36
+ pip-log.txt
37
+ pip-delete-this-directory.txt
38
+
39
+ # Unit test / coverage reports
40
+ htmlcov/
41
+ .tox/
42
+ .nox/
43
+ .coverage
44
+ .coverage.*
45
+ .cache
46
+ nosetests.xml
47
+ coverage.xml
48
+ *.cover
49
+ *.py.cover
50
+ .hypothesis/
51
+ .pytest_cache/
52
+ cover/
53
+
54
+ # Translations
55
+ *.mo
56
+ *.pot
57
+
58
+ # Django stuff:
59
+ *.log
60
+ local_settings.py
61
+ db.sqlite3
62
+ db.sqlite3-journal
63
+
64
+ # Flask stuff:
65
+ instance/
66
+ .webassets-cache
67
+
68
+ # Scrapy stuff:
69
+ .scrapy
70
+
71
+ # Sphinx documentation
72
+ docs/_build/
73
+
74
+ # PyBuilder
75
+ .pybuilder/
76
+ target/
77
+
78
+ # Jupyter Notebook
79
+ .ipynb_checkpoints
80
+
81
+ # IPython
82
+ profile_default/
83
+ ipython_config.py
84
+
85
+ # pyenv
86
+ # For a library or package, you might want to ignore these files since the code is
87
+ # intended to run in multiple environments; otherwise, check them in:
88
+ # .python-version
89
+
90
+ # pipenv
91
+ # According to pypa/pipenv#598, it is recommended to include Pipfile.lock in version control.
92
+ # However, in case of collaboration, if having platform-specific dependencies or dependencies
93
+ # having no cross-platform support, pipenv may install dependencies that don't work, or not
94
+ # install all needed dependencies.
95
+ #Pipfile.lock
96
+
97
+ # UV
98
+ # Similar to Pipfile.lock, it is generally recommended to include uv.lock in version control.
99
+ # This is especially recommended for binary packages to ensure reproducibility, and is more
100
+ # commonly ignored for libraries.
101
+ #uv.lock
102
+
103
+ # poetry
104
+ # Similar to Pipfile.lock, it is generally recommended to include poetry.lock in version control.
105
+ # This is especially recommended for binary packages to ensure reproducibility, and is more
106
+ # commonly ignored for libraries.
107
+ # https://python-poetry.org/docs/basic-usage/#commit-your-poetrylock-file-to-version-control
108
+ #poetry.lock
109
+ #poetry.toml
110
+
111
+ # pdm
112
+ # Similar to Pipfile.lock, it is generally recommended to include pdm.lock in version control.
113
+ # pdm recommends including project-wide configuration in pdm.toml, but excluding .pdm-python.
114
+ # https://pdm-project.org/en/latest/usage/project/#working-with-version-control
115
+ #pdm.lock
116
+ #pdm.toml
117
+ .pdm-python
118
+ .pdm-build/
119
+
120
+ # pixi
121
+ # Similar to Pipfile.lock, it is generally recommended to include pixi.lock in version control.
122
+ #pixi.lock
123
+ # Pixi creates a virtual environment in the .pixi directory, just like venv module creates one
124
+ # in the .venv directory. It is recommended not to include this directory in version control.
125
+ .pixi
126
+
127
+ # PEP 582; used by e.g. github.com/David-OConnor/pyflow and github.com/pdm-project/pdm
128
+ __pypackages__/
129
+
130
+ # Celery stuff
131
+ celerybeat-schedule
132
+ celerybeat.pid
133
+
134
+ # SageMath parsed files
135
+ *.sage.py
136
+
137
+ # Environments
138
+ .env
139
+ .envrc
140
+ .venv
141
+ env/
142
+ venv/
143
+ ENV/
144
+ env.bak/
145
+ venv.bak/
146
+
147
+ # Spyder project settings
148
+ .spyderproject
149
+ .spyproject
150
+
151
+ # Rope project settings
152
+ .ropeproject
153
+
154
+ # mkdocs documentation
155
+ /site
156
+
157
+ # mypy
158
+ .mypy_cache/
159
+ .dmypy.json
160
+ dmypy.json
161
+
162
+ # Pyre type checker
163
+ .pyre/
164
+
165
+ # pytype static type analyzer
166
+ .pytype/
167
+
168
+ # Cython debug symbols
169
+ cython_debug/
170
+
171
+ # PyCharm
172
+ # JetBrains specific template is maintained in a separate JetBrains.gitignore that can
173
+ # be found at https://github.com/github/gitignore/blob/main/Global/JetBrains.gitignore
174
+ # and can be added to the global gitignore or merged into this file. For a more nuclear
175
+ # option (not recommended) you can uncomment the following to ignore the entire idea folder.
176
+ #.idea/
177
+
178
+ # Abstra
179
+ # Abstra is an AI-powered process automation framework.
180
+ # Ignore directories containing user credentials, local state, and settings.
181
+ # Learn more at https://abstra.io/docs
182
+ .abstra/
183
+
184
+ # Visual Studio Code
185
+ # Visual Studio Code specific template is maintained in a separate VisualStudioCode.gitignore
186
+ # that can be found at https://github.com/github/gitignore/blob/main/Global/VisualStudioCode.gitignore
187
+ # and can be added to the global gitignore or merged into this file. However, if you prefer,
188
+ # you could uncomment the following to ignore the entire vscode folder
189
+ # .vscode/
190
+
191
+ # Ruff stuff:
192
+ .ruff_cache/
193
+
194
+ # PyPI configuration file
195
+ .pypirc
196
+
197
+ # Cursor
198
+ # Cursor is an AI-powered code editor. `.cursorignore` specifies files/directories to
199
+ # exclude from AI features like autocomplete and code analysis. Recommended for sensitive data
200
+ # refer to https://docs.cursor.com/context/ignore-files
201
+ .cursorignore
202
+ .cursorindexingignore
203
+
204
+ # Marimo
205
+ marimo/_static/
206
+ marimo/_lsp/
207
+ __marimo__/
@@ -0,0 +1,46 @@
1
+ # Changelog
2
+
3
+ All notable changes to **thundergraph-model** are documented here. The format is loosely
4
+ [Keep a Changelog](https://keepachangelog.com/en/1.1.0/).
5
+
6
+ ## [0.2.0] - 2026-03-28
7
+
8
+ ### Removed
9
+
10
+ - **Breaking:** **`RequirementBlock`**, **`RequirementBlockRef`**, and **`ModelDefinitionContext.requirement_block(...)`** were removed from the public API. Use **`Requirement`**, **`RequirementRef`**, and **`requirement_package`**. Internal compiled node **`kind`** remains the string **`"requirement_block"`** (serialization / inspection only).
11
+
12
+ ### Documentation
13
+
14
+ - FAQ **Upgrading from thundergraph-model before 0.2.0**; **concepts**, **API index**, **extension playbook**, **glossary**, and **drafts** updated so they no longer document removed shims. Requirement composition implementation plan **Phase 10** recorded.
15
+
16
+ ## [0.1.0] - 2026-03-27
17
+
18
+ ### Changed
19
+
20
+ - **Examples:** `commercial_aircraft` Level-1 module renamed to **`program/l1_requirement_packages.py`** (was `l1_requirement_blocks.py`); **`hpc_datacenter`** gains **`README.md`** with run / evaluate / pytest commands.
21
+ - **Tooling / quality:** `ruff check tg_model tests` and `ruff format tg_model tests` are clean; `pyright` passes on the repo (including tests and `docs/generation_docs/model_prototype_sketch.py`). Behavior dispatch tests use `cm.root` where the API expects a `PartInstance`.
22
+ - **Requirement package constraints:** compile rejects ``expr=None``; graph compile supports symbol-free expressions (with an anchor edge from a package slot so validation/evaluation order stay well-formed).
23
+ - **`slot_ids_for_part_subtree`** now includes value slots under composable requirement packages; uses `getattr(..., "_child_lookup", None)` so callers that pass a **`ConfiguredModel`** (only `value_slots` / `children` are forwarded) do not break behavior scoping.
24
+
25
+ ### Added
26
+
27
+ - **`Requirement`** composable type and **`RequirementRef`** dot-access ref for nested requirement packages.
28
+ - **`ModelDefinitionContext.requirement_package(name, type)`** — registers a nested composable requirements package; internal compiled node kind remains **`requirement_block`** for artifact compatibility.
29
+ - **Composable `Requirement.define()`** may declare package-level **`parameter`**, **`attribute`**, and **`constraint`**. They materialize as **`ValueSlot`** handles under the configured root (e.g. ``cm.mission.x_m``), use **`symbol_owner` + path prefix** for `AttributeRef` threading (same idea as **`requirement_input`**), and participate in **`compile_graph`** / **`evaluate`** (constraints and derived attributes use **`_resolve_symbol_to_slot(..., model.root, ...)`**). **`RequirementPackageInstance`** exposes dot access from **`PartInstance`**; **`computed_by`** and **`RollupDecl`** on package slots are rejected at graph compile until supported.
30
+ - **Compile-time expression checks** for those package **`attribute`** / **`constraint`** values: tracked unitflow symbols must be prior package parameters/attributes (declaration order), **`symbol_owner`** threaded symbols (e.g. requirement inputs), or rejected as foreign; **negative tests** cover **`port`**, **`allocate`** edges, **`parameter_ref`** from another type, and undeclared package slots.
31
+ - **`examples/hpc_datacenter/`** — minimal notional colocation facility model (two Level-1 power requirements) plus **`notebooks/hpc_datacenter_parameter_sweep.ipynb`** demonstrating a factorial **parameter sweep** with **`compile_graph` + `validate_graph` once**, then **`ConfiguredModel.evaluate(..., validate=False)`** for each design point.
32
+ - **Evaluation façade:** `ConfiguredModel.evaluate(inputs=…)` — lazy compilation (shared cache with `compile_graph`), optional `validate_graph` per call (default on), handle-keyed inputs (`ValueSlot` or slot `stable_id` strings). Non-breaking; existing `compile_graph` → `Evaluator` → `RunContext` flow unchanged.
33
+ - **`System.instantiate()`** — class-method alias for `instantiate(SomeSystem)` on `System` subclasses.
34
+
35
+ ### Deprecated (removed in 0.2.0)
36
+
37
+ - **`ModelDefinitionContext.requirement_block(...)`** and import aliases **`RequirementBlock`** / **`RequirementBlockRef`** — see **[0.2.0] Removed**.
38
+
39
+ ### Documentation
40
+
41
+ - User guide (quickstart, mental model, FAQ, execution draft, external-compute concept) describes the **recommended** `evaluate` path vs the **explicit** pipeline.
42
+ - Sphinx API reference: `sphinx-build -W` (warnings as errors) passes; API index links façade entry points (`ConfiguredModel.evaluate`, `instantiate`, `System.instantiate`) and a **Composable requirements** cross-reference map (`Requirement`, `requirement_package`, `RequirementRef`, `RequirementPackageInstance`).
43
+ - Developer guide (`docs/user_docs/developer/`): architecture, extension playbook, testing, and repository map describe the **recommended** façade for app code and the **explicit** pipeline for extensions, async, and debugging; cross-links from the mental model and docs implementation plan.
44
+ - Commercial aircraft example (`examples/commercial_aircraft/`): README and integration smoke tests use **`ConfiguredModel.evaluate`** with **`ValueSlot`** keys; **`extract_cargo_jet_evaluation_report(cm, result)`** needs only **`RunResult`**; optional **`ctx=`** for demo provenance / slot summaries; explicit pipeline cross-linked from README.
45
+ - Terminology aligned for composable requirements: **`Requirement`** / **`requirement_package`** / **`RequirementRef`** in user-facing docs.
46
+ - **Phases 6–9** (user guide, developer guide, API index / Sphinx gate, notebooks): see requirement composition implementation plan §13.