thundergraph-model 1.2.0__tar.gz → 1.2.2__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 (320) hide show
  1. {thundergraph_model-1.2.0 → thundergraph_model-1.2.2}/PKG-INFO +1 -1
  2. thundergraph_model-1.2.2/docs/release/v1.2.1.md +55 -0
  3. {thundergraph_model-1.2.0 → thundergraph_model-1.2.2}/pyproject.toml +1 -1
  4. {thundergraph_model-1.2.0 → thundergraph_model-1.2.2}/tests/unit/model/test_compile_types.py +41 -0
  5. {thundergraph_model-1.2.0 → thundergraph_model-1.2.2}/tg_model/execution/configured_model.py +20 -3
  6. {thundergraph_model-1.2.0 → thundergraph_model-1.2.2}/tg_model/model/compile_types.py +45 -10
  7. {thundergraph_model-1.2.0 → thundergraph_model-1.2.2}/tg_model/model/definition_context.py +23 -3
  8. {thundergraph_model-1.2.0 → thundergraph_model-1.2.2}/uv.lock +1 -1
  9. {thundergraph_model-1.2.0 → thundergraph_model-1.2.2}/.github/ISSUE_TEMPLATE/01-bug_report.yml +0 -0
  10. {thundergraph_model-1.2.0 → thundergraph_model-1.2.2}/.github/ISSUE_TEMPLATE/02-feature_request.yml +0 -0
  11. {thundergraph_model-1.2.0 → thundergraph_model-1.2.2}/.github/ISSUE_TEMPLATE/03-documentation.yml +0 -0
  12. {thundergraph_model-1.2.0 → thundergraph_model-1.2.2}/.github/ISSUE_TEMPLATE/config.yml +0 -0
  13. {thundergraph_model-1.2.0 → thundergraph_model-1.2.2}/.github/pull_request_template.md +0 -0
  14. {thundergraph_model-1.2.0 → thundergraph_model-1.2.2}/.github/workflows/publish.yml +0 -0
  15. {thundergraph_model-1.2.0 → thundergraph_model-1.2.2}/.gitignore +0 -0
  16. {thundergraph_model-1.2.0 → thundergraph_model-1.2.2}/CHANGELOG.md +0 -0
  17. {thundergraph_model-1.2.0 → thundergraph_model-1.2.2}/LICENSE +0 -0
  18. {thundergraph_model-1.2.0 → thundergraph_model-1.2.2}/PYPI.md +0 -0
  19. {thundergraph_model-1.2.0 → thundergraph_model-1.2.2}/README.md +0 -0
  20. {thundergraph_model-1.2.0 → thundergraph_model-1.2.2}/docs/generation_docs/behavior_methodology.md +0 -0
  21. {thundergraph_model-1.2.0 → thundergraph_model-1.2.2}/docs/generation_docs/brainstorm.md +0 -0
  22. {thundergraph_model-1.2.0 → thundergraph_model-1.2.2}/docs/generation_docs/conceptual_requirements.md +0 -0
  23. {thundergraph_model-1.2.0 → thundergraph_model-1.2.2}/docs/generation_docs/evaluation_api_facade_implementation_plan.md +0 -0
  24. {thundergraph_model-1.2.0 → thundergraph_model-1.2.2}/docs/generation_docs/execution_methodology.md +0 -0
  25. {thundergraph_model-1.2.0 → thundergraph_model-1.2.2}/docs/generation_docs/implementation_plan.md +0 -0
  26. {thundergraph_model-1.2.0 → thundergraph_model-1.2.2}/docs/generation_docs/logical_architecture.md +0 -0
  27. {thundergraph_model-1.2.0 → thundergraph_model-1.2.2}/docs/generation_docs/model_prototype_sketch.py +0 -0
  28. {thundergraph_model-1.2.0 → thundergraph_model-1.2.2}/docs/generation_docs/requirement_composition_and_naming_implementation_plan.md +0 -0
  29. {thundergraph_model-1.2.0 → thundergraph_model-1.2.2}/docs/generation_docs/system_authoring_restrictions_implementation_plan.md +0 -0
  30. {thundergraph_model-1.2.0 → thundergraph_model-1.2.2}/docs/generation_docs/use_cases.md +0 -0
  31. {thundergraph_model-1.2.0 → thundergraph_model-1.2.2}/docs/generation_docs/v0_api.md +0 -0
  32. {thundergraph_model-1.2.0 → thundergraph_model-1.2.2}/docs/release/v1.2.0.md +0 -0
  33. {thundergraph_model-1.2.0 → thundergraph_model-1.2.2}/docs/user_docs/IMPLEMENTATION_PLAN.md +0 -0
  34. {thundergraph_model-1.2.0 → thundergraph_model-1.2.2}/docs/user_docs/README.md +0 -0
  35. {thundergraph_model-1.2.0 → thundergraph_model-1.2.2}/docs/user_docs/_build/html/.buildinfo +0 -0
  36. {thundergraph_model-1.2.0 → thundergraph_model-1.2.2}/docs/user_docs/_build/html/.buildinfo.bak +0 -0
  37. {thundergraph_model-1.2.0 → thundergraph_model-1.2.2}/docs/user_docs/_build/html/.doctrees/api/api_analysis.doctree +0 -0
  38. {thundergraph_model-1.2.0 → thundergraph_model-1.2.2}/docs/user_docs/_build/html/.doctrees/api/api_execution.doctree +0 -0
  39. {thundergraph_model-1.2.0 → thundergraph_model-1.2.2}/docs/user_docs/_build/html/.doctrees/api/api_integrations.doctree +0 -0
  40. {thundergraph_model-1.2.0 → thundergraph_model-1.2.2}/docs/user_docs/_build/html/.doctrees/api/api_model.doctree +0 -0
  41. {thundergraph_model-1.2.0 → thundergraph_model-1.2.2}/docs/user_docs/_build/html/.doctrees/api/api_root.doctree +0 -0
  42. {thundergraph_model-1.2.0 → thundergraph_model-1.2.2}/docs/user_docs/_build/html/.doctrees/api/index.doctree +0 -0
  43. {thundergraph_model-1.2.0 → thundergraph_model-1.2.2}/docs/user_docs/_build/html/.doctrees/developer/architecture.doctree +0 -0
  44. {thundergraph_model-1.2.0 → thundergraph_model-1.2.2}/docs/user_docs/_build/html/.doctrees/developer/contributing.doctree +0 -0
  45. {thundergraph_model-1.2.0 → thundergraph_model-1.2.2}/docs/user_docs/_build/html/.doctrees/developer/extension_playbook.doctree +0 -0
  46. {thundergraph_model-1.2.0 → thundergraph_model-1.2.2}/docs/user_docs/_build/html/.doctrees/developer/releasing.doctree +0 -0
  47. {thundergraph_model-1.2.0 → thundergraph_model-1.2.2}/docs/user_docs/_build/html/.doctrees/developer/repository_map.doctree +0 -0
  48. {thundergraph_model-1.2.0 → thundergraph_model-1.2.2}/docs/user_docs/_build/html/.doctrees/developer/testing.doctree +0 -0
  49. {thundergraph_model-1.2.0 → thundergraph_model-1.2.2}/docs/user_docs/_build/html/.doctrees/docstring_style.doctree +0 -0
  50. {thundergraph_model-1.2.0 → thundergraph_model-1.2.2}/docs/user_docs/_build/html/.doctrees/drafts/execution_pipeline.doctree +0 -0
  51. {thundergraph_model-1.2.0 → thundergraph_model-1.2.2}/docs/user_docs/_build/html/.doctrees/drafts/glossary.doctree +0 -0
  52. {thundergraph_model-1.2.0 → thundergraph_model-1.2.2}/docs/user_docs/_build/html/.doctrees/drafts/repository_map.doctree +0 -0
  53. {thundergraph_model-1.2.0 → thundergraph_model-1.2.2}/docs/user_docs/_build/html/.doctrees/drafts/what_is_thundergraph_model.doctree +0 -0
  54. {thundergraph_model-1.2.0 → thundergraph_model-1.2.2}/docs/user_docs/_build/html/.doctrees/environment.pickle +0 -0
  55. {thundergraph_model-1.2.0 → thundergraph_model-1.2.2}/docs/user_docs/_build/html/.doctrees/index.doctree +0 -0
  56. {thundergraph_model-1.2.0 → thundergraph_model-1.2.2}/docs/user_docs/_build/html/.doctrees/user/concepts_evaluation.doctree +0 -0
  57. {thundergraph_model-1.2.0 → thundergraph_model-1.2.2}/docs/user_docs/_build/html/.doctrees/user/concepts_external_compute.doctree +0 -0
  58. {thundergraph_model-1.2.0 → thundergraph_model-1.2.2}/docs/user_docs/_build/html/.doctrees/user/concepts_parts.doctree +0 -0
  59. {thundergraph_model-1.2.0 → thundergraph_model-1.2.2}/docs/user_docs/_build/html/.doctrees/user/concepts_requirements.doctree +0 -0
  60. {thundergraph_model-1.2.0 → thundergraph_model-1.2.2}/docs/user_docs/_build/html/.doctrees/user/concepts_system.doctree +0 -0
  61. {thundergraph_model-1.2.0 → thundergraph_model-1.2.2}/docs/user_docs/_build/html/.doctrees/user/end_to_end_guide.doctree +0 -0
  62. {thundergraph_model-1.2.0 → thundergraph_model-1.2.2}/docs/user_docs/_build/html/.doctrees/user/faq.doctree +0 -0
  63. {thundergraph_model-1.2.0 → thundergraph_model-1.2.2}/docs/user_docs/_build/html/.doctrees/user/install.doctree +0 -0
  64. {thundergraph_model-1.2.0 → thundergraph_model-1.2.2}/docs/user_docs/_build/html/.doctrees/user/mental_model.doctree +0 -0
  65. {thundergraph_model-1.2.0 → thundergraph_model-1.2.2}/docs/user_docs/_build/html/.doctrees/user/overview.doctree +0 -0
  66. {thundergraph_model-1.2.0 → thundergraph_model-1.2.2}/docs/user_docs/_build/html/.doctrees/user/quickstart.doctree +0 -0
  67. {thundergraph_model-1.2.0 → thundergraph_model-1.2.2}/docs/user_docs/_build/html/_modules/index.html +0 -0
  68. {thundergraph_model-1.2.0 → thundergraph_model-1.2.2}/docs/user_docs/_build/html/_modules/tg_model/analysis/compare_variants.html +0 -0
  69. {thundergraph_model-1.2.0 → thundergraph_model-1.2.2}/docs/user_docs/_build/html/_modules/tg_model/analysis/impact.html +0 -0
  70. {thundergraph_model-1.2.0 → thundergraph_model-1.2.2}/docs/user_docs/_build/html/_modules/tg_model/analysis/sweep.html +0 -0
  71. {thundergraph_model-1.2.0 → thundergraph_model-1.2.2}/docs/user_docs/_build/html/_modules/tg_model/execution/behavior.html +0 -0
  72. {thundergraph_model-1.2.0 → thundergraph_model-1.2.2}/docs/user_docs/_build/html/_modules/tg_model/execution/configured_model.html +0 -0
  73. {thundergraph_model-1.2.0 → thundergraph_model-1.2.2}/docs/user_docs/_build/html/_modules/tg_model/execution/connection_bindings.html +0 -0
  74. {thundergraph_model-1.2.0 → thundergraph_model-1.2.2}/docs/user_docs/_build/html/_modules/tg_model/execution/dependency_graph.html +0 -0
  75. {thundergraph_model-1.2.0 → thundergraph_model-1.2.2}/docs/user_docs/_build/html/_modules/tg_model/execution/evaluator.html +0 -0
  76. {thundergraph_model-1.2.0 → thundergraph_model-1.2.2}/docs/user_docs/_build/html/_modules/tg_model/execution/graph_compiler.html +0 -0
  77. {thundergraph_model-1.2.0 → thundergraph_model-1.2.2}/docs/user_docs/_build/html/_modules/tg_model/execution/instances.html +0 -0
  78. {thundergraph_model-1.2.0 → thundergraph_model-1.2.2}/docs/user_docs/_build/html/_modules/tg_model/execution/requirements.html +0 -0
  79. {thundergraph_model-1.2.0 → thundergraph_model-1.2.2}/docs/user_docs/_build/html/_modules/tg_model/execution/run_context.html +0 -0
  80. {thundergraph_model-1.2.0 → thundergraph_model-1.2.2}/docs/user_docs/_build/html/_modules/tg_model/execution/validation.html +0 -0
  81. {thundergraph_model-1.2.0 → thundergraph_model-1.2.2}/docs/user_docs/_build/html/_modules/tg_model/execution/value_slots.html +0 -0
  82. {thundergraph_model-1.2.0 → thundergraph_model-1.2.2}/docs/user_docs/_build/html/_modules/tg_model/integrations/external_compute.html +0 -0
  83. {thundergraph_model-1.2.0 → thundergraph_model-1.2.2}/docs/user_docs/_build/html/_modules/tg_model/model/definition_context.html +0 -0
  84. {thundergraph_model-1.2.0 → thundergraph_model-1.2.2}/docs/user_docs/_build/html/_modules/tg_model/model/elements.html +0 -0
  85. {thundergraph_model-1.2.0 → thundergraph_model-1.2.2}/docs/user_docs/_build/html/_modules/tg_model/model/expr.html +0 -0
  86. {thundergraph_model-1.2.0 → thundergraph_model-1.2.2}/docs/user_docs/_build/html/_modules/tg_model/model/refs.html +0 -0
  87. {thundergraph_model-1.2.0 → thundergraph_model-1.2.2}/docs/user_docs/_build/html/_sources/api/api_analysis.rst.txt +0 -0
  88. {thundergraph_model-1.2.0 → thundergraph_model-1.2.2}/docs/user_docs/_build/html/_sources/api/api_execution.rst.txt +0 -0
  89. {thundergraph_model-1.2.0 → thundergraph_model-1.2.2}/docs/user_docs/_build/html/_sources/api/api_integrations.rst.txt +0 -0
  90. {thundergraph_model-1.2.0 → thundergraph_model-1.2.2}/docs/user_docs/_build/html/_sources/api/api_model.rst.txt +0 -0
  91. {thundergraph_model-1.2.0 → thundergraph_model-1.2.2}/docs/user_docs/_build/html/_sources/api/api_root.rst.txt +0 -0
  92. {thundergraph_model-1.2.0 → thundergraph_model-1.2.2}/docs/user_docs/_build/html/_sources/api/index.md.txt +0 -0
  93. {thundergraph_model-1.2.0 → thundergraph_model-1.2.2}/docs/user_docs/_build/html/_sources/developer/architecture.md.txt +0 -0
  94. {thundergraph_model-1.2.0 → thundergraph_model-1.2.2}/docs/user_docs/_build/html/_sources/developer/contributing.md.txt +0 -0
  95. {thundergraph_model-1.2.0 → thundergraph_model-1.2.2}/docs/user_docs/_build/html/_sources/developer/extension_playbook.md.txt +0 -0
  96. {thundergraph_model-1.2.0 → thundergraph_model-1.2.2}/docs/user_docs/_build/html/_sources/developer/releasing.md.txt +0 -0
  97. {thundergraph_model-1.2.0 → thundergraph_model-1.2.2}/docs/user_docs/_build/html/_sources/developer/repository_map.md.txt +0 -0
  98. {thundergraph_model-1.2.0 → thundergraph_model-1.2.2}/docs/user_docs/_build/html/_sources/developer/testing.md.txt +0 -0
  99. {thundergraph_model-1.2.0 → thundergraph_model-1.2.2}/docs/user_docs/_build/html/_sources/docstring_style.md.txt +0 -0
  100. {thundergraph_model-1.2.0 → thundergraph_model-1.2.2}/docs/user_docs/_build/html/_sources/drafts/execution_pipeline.md.txt +0 -0
  101. {thundergraph_model-1.2.0 → thundergraph_model-1.2.2}/docs/user_docs/_build/html/_sources/drafts/glossary.md.txt +0 -0
  102. {thundergraph_model-1.2.0 → thundergraph_model-1.2.2}/docs/user_docs/_build/html/_sources/drafts/repository_map.md.txt +0 -0
  103. {thundergraph_model-1.2.0 → thundergraph_model-1.2.2}/docs/user_docs/_build/html/_sources/drafts/what_is_thundergraph_model.md.txt +0 -0
  104. {thundergraph_model-1.2.0 → thundergraph_model-1.2.2}/docs/user_docs/_build/html/_sources/index.md.txt +0 -0
  105. {thundergraph_model-1.2.0 → thundergraph_model-1.2.2}/docs/user_docs/_build/html/_sources/user/concepts_evaluation.md.txt +0 -0
  106. {thundergraph_model-1.2.0 → thundergraph_model-1.2.2}/docs/user_docs/_build/html/_sources/user/concepts_external_compute.md.txt +0 -0
  107. {thundergraph_model-1.2.0 → thundergraph_model-1.2.2}/docs/user_docs/_build/html/_sources/user/concepts_parts.md.txt +0 -0
  108. {thundergraph_model-1.2.0 → thundergraph_model-1.2.2}/docs/user_docs/_build/html/_sources/user/concepts_requirements.md.txt +0 -0
  109. {thundergraph_model-1.2.0 → thundergraph_model-1.2.2}/docs/user_docs/_build/html/_sources/user/concepts_system.md.txt +0 -0
  110. {thundergraph_model-1.2.0 → thundergraph_model-1.2.2}/docs/user_docs/_build/html/_sources/user/end_to_end_guide.md.txt +0 -0
  111. {thundergraph_model-1.2.0 → thundergraph_model-1.2.2}/docs/user_docs/_build/html/_sources/user/faq.md.txt +0 -0
  112. {thundergraph_model-1.2.0 → thundergraph_model-1.2.2}/docs/user_docs/_build/html/_sources/user/install.md.txt +0 -0
  113. {thundergraph_model-1.2.0 → thundergraph_model-1.2.2}/docs/user_docs/_build/html/_sources/user/mental_model.md.txt +0 -0
  114. {thundergraph_model-1.2.0 → thundergraph_model-1.2.2}/docs/user_docs/_build/html/_sources/user/overview.md.txt +0 -0
  115. {thundergraph_model-1.2.0 → thundergraph_model-1.2.2}/docs/user_docs/_build/html/_sources/user/quickstart.md.txt +0 -0
  116. {thundergraph_model-1.2.0 → thundergraph_model-1.2.2}/docs/user_docs/_build/html/_static/base-stemmer.js +0 -0
  117. {thundergraph_model-1.2.0 → thundergraph_model-1.2.2}/docs/user_docs/_build/html/_static/basic.css +0 -0
  118. {thundergraph_model-1.2.0 → thundergraph_model-1.2.2}/docs/user_docs/_build/html/_static/debug.css +0 -0
  119. {thundergraph_model-1.2.0 → thundergraph_model-1.2.2}/docs/user_docs/_build/html/_static/doctools.js +0 -0
  120. {thundergraph_model-1.2.0 → thundergraph_model-1.2.2}/docs/user_docs/_build/html/_static/documentation_options.js +0 -0
  121. {thundergraph_model-1.2.0 → thundergraph_model-1.2.2}/docs/user_docs/_build/html/_static/english-stemmer.js +0 -0
  122. {thundergraph_model-1.2.0 → thundergraph_model-1.2.2}/docs/user_docs/_build/html/_static/file.png +0 -0
  123. {thundergraph_model-1.2.0 → thundergraph_model-1.2.2}/docs/user_docs/_build/html/_static/language_data.js +0 -0
  124. {thundergraph_model-1.2.0 → thundergraph_model-1.2.2}/docs/user_docs/_build/html/_static/minus.png +0 -0
  125. {thundergraph_model-1.2.0 → thundergraph_model-1.2.2}/docs/user_docs/_build/html/_static/plus.png +0 -0
  126. {thundergraph_model-1.2.0 → thundergraph_model-1.2.2}/docs/user_docs/_build/html/_static/pygments.css +0 -0
  127. {thundergraph_model-1.2.0 → thundergraph_model-1.2.2}/docs/user_docs/_build/html/_static/scripts/furo-extensions.js +0 -0
  128. {thundergraph_model-1.2.0 → thundergraph_model-1.2.2}/docs/user_docs/_build/html/_static/scripts/furo.js +0 -0
  129. {thundergraph_model-1.2.0 → thundergraph_model-1.2.2}/docs/user_docs/_build/html/_static/scripts/furo.js.LICENSE.txt +0 -0
  130. {thundergraph_model-1.2.0 → thundergraph_model-1.2.2}/docs/user_docs/_build/html/_static/scripts/furo.js.map +0 -0
  131. {thundergraph_model-1.2.0 → thundergraph_model-1.2.2}/docs/user_docs/_build/html/_static/searchtools.js +0 -0
  132. {thundergraph_model-1.2.0 → thundergraph_model-1.2.2}/docs/user_docs/_build/html/_static/skeleton.css +0 -0
  133. {thundergraph_model-1.2.0 → thundergraph_model-1.2.2}/docs/user_docs/_build/html/_static/sphinx_highlight.js +0 -0
  134. {thundergraph_model-1.2.0 → thundergraph_model-1.2.2}/docs/user_docs/_build/html/_static/styles/furo-extensions.css +0 -0
  135. {thundergraph_model-1.2.0 → thundergraph_model-1.2.2}/docs/user_docs/_build/html/_static/styles/furo-extensions.css.map +0 -0
  136. {thundergraph_model-1.2.0 → thundergraph_model-1.2.2}/docs/user_docs/_build/html/_static/styles/furo.css +0 -0
  137. {thundergraph_model-1.2.0 → thundergraph_model-1.2.2}/docs/user_docs/_build/html/_static/styles/furo.css.map +0 -0
  138. {thundergraph_model-1.2.0 → thundergraph_model-1.2.2}/docs/user_docs/_build/html/api/api_analysis.html +0 -0
  139. {thundergraph_model-1.2.0 → thundergraph_model-1.2.2}/docs/user_docs/_build/html/api/api_execution.html +0 -0
  140. {thundergraph_model-1.2.0 → thundergraph_model-1.2.2}/docs/user_docs/_build/html/api/api_integrations.html +0 -0
  141. {thundergraph_model-1.2.0 → thundergraph_model-1.2.2}/docs/user_docs/_build/html/api/api_model.html +0 -0
  142. {thundergraph_model-1.2.0 → thundergraph_model-1.2.2}/docs/user_docs/_build/html/api/api_root.html +0 -0
  143. {thundergraph_model-1.2.0 → thundergraph_model-1.2.2}/docs/user_docs/_build/html/api/index.html +0 -0
  144. {thundergraph_model-1.2.0 → thundergraph_model-1.2.2}/docs/user_docs/_build/html/developer/architecture.html +0 -0
  145. {thundergraph_model-1.2.0 → thundergraph_model-1.2.2}/docs/user_docs/_build/html/developer/contributing.html +0 -0
  146. {thundergraph_model-1.2.0 → thundergraph_model-1.2.2}/docs/user_docs/_build/html/developer/extension_playbook.html +0 -0
  147. {thundergraph_model-1.2.0 → thundergraph_model-1.2.2}/docs/user_docs/_build/html/developer/releasing.html +0 -0
  148. {thundergraph_model-1.2.0 → thundergraph_model-1.2.2}/docs/user_docs/_build/html/developer/repository_map.html +0 -0
  149. {thundergraph_model-1.2.0 → thundergraph_model-1.2.2}/docs/user_docs/_build/html/developer/testing.html +0 -0
  150. {thundergraph_model-1.2.0 → thundergraph_model-1.2.2}/docs/user_docs/_build/html/docstring_style.html +0 -0
  151. {thundergraph_model-1.2.0 → thundergraph_model-1.2.2}/docs/user_docs/_build/html/drafts/execution_pipeline.html +0 -0
  152. {thundergraph_model-1.2.0 → thundergraph_model-1.2.2}/docs/user_docs/_build/html/drafts/glossary.html +0 -0
  153. {thundergraph_model-1.2.0 → thundergraph_model-1.2.2}/docs/user_docs/_build/html/drafts/repository_map.html +0 -0
  154. {thundergraph_model-1.2.0 → thundergraph_model-1.2.2}/docs/user_docs/_build/html/drafts/what_is_thundergraph_model.html +0 -0
  155. {thundergraph_model-1.2.0 → thundergraph_model-1.2.2}/docs/user_docs/_build/html/genindex.html +0 -0
  156. {thundergraph_model-1.2.0 → thundergraph_model-1.2.2}/docs/user_docs/_build/html/index.html +0 -0
  157. {thundergraph_model-1.2.0 → thundergraph_model-1.2.2}/docs/user_docs/_build/html/objects.inv +0 -0
  158. {thundergraph_model-1.2.0 → thundergraph_model-1.2.2}/docs/user_docs/_build/html/py-modindex.html +0 -0
  159. {thundergraph_model-1.2.0 → thundergraph_model-1.2.2}/docs/user_docs/_build/html/search.html +0 -0
  160. {thundergraph_model-1.2.0 → thundergraph_model-1.2.2}/docs/user_docs/_build/html/searchindex.js +0 -0
  161. {thundergraph_model-1.2.0 → thundergraph_model-1.2.2}/docs/user_docs/_build/html/user/concepts_evaluation.html +0 -0
  162. {thundergraph_model-1.2.0 → thundergraph_model-1.2.2}/docs/user_docs/_build/html/user/concepts_external_compute.html +0 -0
  163. {thundergraph_model-1.2.0 → thundergraph_model-1.2.2}/docs/user_docs/_build/html/user/concepts_parts.html +0 -0
  164. {thundergraph_model-1.2.0 → thundergraph_model-1.2.2}/docs/user_docs/_build/html/user/concepts_requirements.html +0 -0
  165. {thundergraph_model-1.2.0 → thundergraph_model-1.2.2}/docs/user_docs/_build/html/user/concepts_system.html +0 -0
  166. {thundergraph_model-1.2.0 → thundergraph_model-1.2.2}/docs/user_docs/_build/html/user/end_to_end_guide.html +0 -0
  167. {thundergraph_model-1.2.0 → thundergraph_model-1.2.2}/docs/user_docs/_build/html/user/faq.html +0 -0
  168. {thundergraph_model-1.2.0 → thundergraph_model-1.2.2}/docs/user_docs/_build/html/user/install.html +0 -0
  169. {thundergraph_model-1.2.0 → thundergraph_model-1.2.2}/docs/user_docs/_build/html/user/mental_model.html +0 -0
  170. {thundergraph_model-1.2.0 → thundergraph_model-1.2.2}/docs/user_docs/_build/html/user/overview.html +0 -0
  171. {thundergraph_model-1.2.0 → thundergraph_model-1.2.2}/docs/user_docs/_build/html/user/quickstart.html +0 -0
  172. {thundergraph_model-1.2.0 → thundergraph_model-1.2.2}/docs/user_docs/api/api_analysis.rst +0 -0
  173. {thundergraph_model-1.2.0 → thundergraph_model-1.2.2}/docs/user_docs/api/api_execution.rst +0 -0
  174. {thundergraph_model-1.2.0 → thundergraph_model-1.2.2}/docs/user_docs/api/api_integrations.rst +0 -0
  175. {thundergraph_model-1.2.0 → thundergraph_model-1.2.2}/docs/user_docs/api/api_model.rst +0 -0
  176. {thundergraph_model-1.2.0 → thundergraph_model-1.2.2}/docs/user_docs/api/api_root.rst +0 -0
  177. {thundergraph_model-1.2.0 → thundergraph_model-1.2.2}/docs/user_docs/api/index.md +0 -0
  178. {thundergraph_model-1.2.0 → thundergraph_model-1.2.2}/docs/user_docs/conf.py +0 -0
  179. {thundergraph_model-1.2.0 → thundergraph_model-1.2.2}/docs/user_docs/developer/architecture.md +0 -0
  180. {thundergraph_model-1.2.0 → thundergraph_model-1.2.2}/docs/user_docs/developer/contributing.md +0 -0
  181. {thundergraph_model-1.2.0 → thundergraph_model-1.2.2}/docs/user_docs/developer/extension_playbook.md +0 -0
  182. {thundergraph_model-1.2.0 → thundergraph_model-1.2.2}/docs/user_docs/developer/releasing.md +0 -0
  183. {thundergraph_model-1.2.0 → thundergraph_model-1.2.2}/docs/user_docs/developer/repository_map.md +0 -0
  184. {thundergraph_model-1.2.0 → thundergraph_model-1.2.2}/docs/user_docs/developer/testing.md +0 -0
  185. {thundergraph_model-1.2.0 → thundergraph_model-1.2.2}/docs/user_docs/docstring_style.md +0 -0
  186. {thundergraph_model-1.2.0 → thundergraph_model-1.2.2}/docs/user_docs/drafts/README.md +0 -0
  187. {thundergraph_model-1.2.0 → thundergraph_model-1.2.2}/docs/user_docs/drafts/execution_pipeline.md +0 -0
  188. {thundergraph_model-1.2.0 → thundergraph_model-1.2.2}/docs/user_docs/drafts/glossary.md +0 -0
  189. {thundergraph_model-1.2.0 → thundergraph_model-1.2.2}/docs/user_docs/drafts/repository_map.md +0 -0
  190. {thundergraph_model-1.2.0 → thundergraph_model-1.2.2}/docs/user_docs/drafts/what_is_thundergraph_model.md +0 -0
  191. {thundergraph_model-1.2.0 → thundergraph_model-1.2.2}/docs/user_docs/index.md +0 -0
  192. {thundergraph_model-1.2.0 → thundergraph_model-1.2.2}/docs/user_docs/user/concepts_evaluation.md +0 -0
  193. {thundergraph_model-1.2.0 → thundergraph_model-1.2.2}/docs/user_docs/user/concepts_external_compute.md +0 -0
  194. {thundergraph_model-1.2.0 → thundergraph_model-1.2.2}/docs/user_docs/user/concepts_parts.md +0 -0
  195. {thundergraph_model-1.2.0 → thundergraph_model-1.2.2}/docs/user_docs/user/concepts_requirements.md +0 -0
  196. {thundergraph_model-1.2.0 → thundergraph_model-1.2.2}/docs/user_docs/user/concepts_system.md +0 -0
  197. {thundergraph_model-1.2.0 → thundergraph_model-1.2.2}/docs/user_docs/user/end_to_end_guide.md +0 -0
  198. {thundergraph_model-1.2.0 → thundergraph_model-1.2.2}/docs/user_docs/user/faq.md +0 -0
  199. {thundergraph_model-1.2.0 → thundergraph_model-1.2.2}/docs/user_docs/user/install.md +0 -0
  200. {thundergraph_model-1.2.0 → thundergraph_model-1.2.2}/docs/user_docs/user/mental_model.md +0 -0
  201. {thundergraph_model-1.2.0 → thundergraph_model-1.2.2}/docs/user_docs/user/overview.md +0 -0
  202. {thundergraph_model-1.2.0 → thundergraph_model-1.2.2}/docs/user_docs/user/quickstart.md +0 -0
  203. {thundergraph_model-1.2.0 → thundergraph_model-1.2.2}/examples/__init__.py +0 -0
  204. {thundergraph_model-1.2.0 → thundergraph_model-1.2.2}/examples/commercial_aircraft/IMPLEMENTATION_PLAN.md +0 -0
  205. {thundergraph_model-1.2.0 → thundergraph_model-1.2.2}/examples/commercial_aircraft/README.md +0 -0
  206. {thundergraph_model-1.2.0 → thundergraph_model-1.2.2}/examples/commercial_aircraft/__init__.py +0 -0
  207. {thundergraph_model-1.2.0 → thundergraph_model-1.2.2}/examples/commercial_aircraft/integrations/__init__.py +0 -0
  208. {thundergraph_model-1.2.0 → thundergraph_model-1.2.2}/examples/commercial_aircraft/integrations/adapters.py +0 -0
  209. {thundergraph_model-1.2.0 → thundergraph_model-1.2.2}/examples/commercial_aircraft/integrations/bindings.py +0 -0
  210. {thundergraph_model-1.2.0 → thundergraph_model-1.2.2}/examples/commercial_aircraft/product/__init__.py +0 -0
  211. {thundergraph_model-1.2.0 → thundergraph_model-1.2.2}/examples/commercial_aircraft/product/aircraft.py +0 -0
  212. {thundergraph_model-1.2.0 → thundergraph_model-1.2.2}/examples/commercial_aircraft/product/major_assemblies/__init__.py +0 -0
  213. {thundergraph_model-1.2.0 → thundergraph_model-1.2.2}/examples/commercial_aircraft/product/major_assemblies/parts.py +0 -0
  214. {thundergraph_model-1.2.0 → thundergraph_model-1.2.2}/examples/commercial_aircraft/program/__init__.py +0 -0
  215. {thundergraph_model-1.2.0 → thundergraph_model-1.2.2}/examples/commercial_aircraft/program/cargo_jet_program.py +0 -0
  216. {thundergraph_model-1.2.0 → thundergraph_model-1.2.2}/examples/commercial_aircraft/program/l1_requirement_packages.py +0 -0
  217. {thundergraph_model-1.2.0 → thundergraph_model-1.2.2}/examples/commercial_aircraft/program/mission_context.py +0 -0
  218. {thundergraph_model-1.2.0 → thundergraph_model-1.2.2}/examples/commercial_aircraft/reporting/__init__.py +0 -0
  219. {thundergraph_model-1.2.0 → thundergraph_model-1.2.2}/examples/commercial_aircraft/reporting/extract.py +0 -0
  220. {thundergraph_model-1.2.0 → thundergraph_model-1.2.2}/examples/commercial_aircraft/reporting/snapshot.py +0 -0
  221. {thundergraph_model-1.2.0 → thundergraph_model-1.2.2}/examples/hpc_datacenter/README.md +0 -0
  222. {thundergraph_model-1.2.0 → thundergraph_model-1.2.2}/examples/hpc_datacenter/__init__.py +0 -0
  223. {thundergraph_model-1.2.0 → thundergraph_model-1.2.2}/examples/hpc_datacenter/program.py +0 -0
  224. {thundergraph_model-1.2.0 → thundergraph_model-1.2.2}/examples/mars_ntp_tug/__init__.py +0 -0
  225. {thundergraph_model-1.2.0 → thundergraph_model-1.2.2}/examples/mars_ntp_tug/integrations/__init__.py +0 -0
  226. {thundergraph_model-1.2.0 → thundergraph_model-1.2.2}/examples/mars_ntp_tug/integrations/adapters.py +0 -0
  227. {thundergraph_model-1.2.0 → thundergraph_model-1.2.2}/examples/mars_ntp_tug/integrations/bindings.py +0 -0
  228. {thundergraph_model-1.2.0 → thundergraph_model-1.2.2}/examples/mars_ntp_tug/integrations/preset_inputs.py +0 -0
  229. {thundergraph_model-1.2.0 → thundergraph_model-1.2.2}/examples/mars_ntp_tug/reporting/__init__.py +0 -0
  230. {thundergraph_model-1.2.0 → thundergraph_model-1.2.2}/examples/mars_ntp_tug/reporting/extract.py +0 -0
  231. {thundergraph_model-1.2.0 → thundergraph_model-1.2.2}/examples/mars_ntp_tug/reporting/snapshot.py +0 -0
  232. {thundergraph_model-1.2.0 → thundergraph_model-1.2.2}/examples/mars_ntp_tug/tug_model.py +0 -0
  233. {thundergraph_model-1.2.0 → thundergraph_model-1.2.2}/implementation_plan_instructions.md +0 -0
  234. {thundergraph_model-1.2.0 → thundergraph_model-1.2.2}/logo.png +0 -0
  235. {thundergraph_model-1.2.0 → thundergraph_model-1.2.2}/notebooks/_gen_leo_notebook.py +0 -0
  236. {thundergraph_model-1.2.0 → thundergraph_model-1.2.2}/notebooks/aev_architecture.mmd +0 -0
  237. {thundergraph_model-1.2.0 → thundergraph_model-1.2.2}/notebooks/cargo_jet_program.ipynb +0 -0
  238. {thundergraph_model-1.2.0 → thundergraph_model-1.2.2}/notebooks/hpc_datacenter_parameter_sweep.ipynb +0 -0
  239. {thundergraph_model-1.2.0 → thundergraph_model-1.2.2}/notebooks/mars_ntp_nuclear_tug.ipynb +0 -0
  240. {thundergraph_model-1.2.0 → thundergraph_model-1.2.2}/reviewer_architype.md +0 -0
  241. {thundergraph_model-1.2.0 → thundergraph_model-1.2.2}/tests/__init__.py +0 -0
  242. {thundergraph_model-1.2.0 → thundergraph_model-1.2.2}/tests/integration/__init__.py +0 -0
  243. {thundergraph_model-1.2.0 → thundergraph_model-1.2.2}/tests/integration/analysis/__init__.py +0 -0
  244. {thundergraph_model-1.2.0 → thundergraph_model-1.2.2}/tests/integration/analysis/test_analysis_workflows.py +0 -0
  245. {thundergraph_model-1.2.0 → thundergraph_model-1.2.2}/tests/integration/behavior/__init__.py +0 -0
  246. {thundergraph_model-1.2.0 → thundergraph_model-1.2.2}/tests/integration/behavior/test_behavior_e2e.py +0 -0
  247. {thundergraph_model-1.2.0 → thundergraph_model-1.2.2}/tests/integration/evaluation/__init__.py +0 -0
  248. {thundergraph_model-1.2.0 → thundergraph_model-1.2.2}/tests/integration/evaluation/test_allocate_parameter_wiring.py +0 -0
  249. {thundergraph_model-1.2.0 → thundergraph_model-1.2.2}/tests/integration/evaluation/test_evaluation_e2e.py +0 -0
  250. {thundergraph_model-1.2.0 → thundergraph_model-1.2.2}/tests/integration/evaluation/test_external_compute.py +0 -0
  251. {thundergraph_model-1.2.0 → thundergraph_model-1.2.2}/tests/integration/evaluation/test_requirement_acceptance.py +0 -0
  252. {thundergraph_model-1.2.0 → thundergraph_model-1.2.2}/tests/integration/evaluation/test_unitflow_evaluation.py +0 -0
  253. {thundergraph_model-1.2.0 → thundergraph_model-1.2.2}/tests/integration/structural_models/__init__.py +0 -0
  254. {thundergraph_model-1.2.0 → thundergraph_model-1.2.2}/tests/integration/structural_models/test_citations.py +0 -0
  255. {thundergraph_model-1.2.0 → thundergraph_model-1.2.2}/tests/integration/structural_models/test_drive_system.py +0 -0
  256. {thundergraph_model-1.2.0 → thundergraph_model-1.2.2}/tests/integration/structural_models/test_instantiation.py +0 -0
  257. {thundergraph_model-1.2.0 → thundergraph_model-1.2.2}/tests/integration/test_commercial_aircraft_smoke.py +0 -0
  258. {thundergraph_model-1.2.0 → thundergraph_model-1.2.2}/tests/integration/test_hpc_datacenter_smoke.py +0 -0
  259. {thundergraph_model-1.2.0 → thundergraph_model-1.2.2}/tests/integration/test_mars_ntp_tug_smoke.py +0 -0
  260. {thundergraph_model-1.2.0 → thundergraph_model-1.2.2}/tests/unit/__init__.py +0 -0
  261. {thundergraph_model-1.2.0 → thundergraph_model-1.2.2}/tests/unit/analysis/__init__.py +0 -0
  262. {thundergraph_model-1.2.0 → thundergraph_model-1.2.2}/tests/unit/analysis/test_sweep_planning.py +0 -0
  263. {thundergraph_model-1.2.0 → thundergraph_model-1.2.2}/tests/unit/execution/__init__.py +0 -0
  264. {thundergraph_model-1.2.0 → thundergraph_model-1.2.2}/tests/unit/execution/test_behavior_runtime.py +0 -0
  265. {thundergraph_model-1.2.0 → thundergraph_model-1.2.2}/tests/unit/execution/test_behavior_scope.py +0 -0
  266. {thundergraph_model-1.2.0 → thundergraph_model-1.2.2}/tests/unit/execution/test_configured_model.py +0 -0
  267. {thundergraph_model-1.2.0 → thundergraph_model-1.2.2}/tests/unit/execution/test_configured_model_evaluate.py +0 -0
  268. {thundergraph_model-1.2.0 → thundergraph_model-1.2.2}/tests/unit/execution/test_dependency_graph.py +0 -0
  269. {thundergraph_model-1.2.0 → thundergraph_model-1.2.2}/tests/unit/execution/test_evaluator.py +0 -0
  270. {thundergraph_model-1.2.0 → thundergraph_model-1.2.2}/tests/unit/execution/test_instances.py +0 -0
  271. {thundergraph_model-1.2.0 → thundergraph_model-1.2.2}/tests/unit/execution/test_phase6_runtime.py +0 -0
  272. {thundergraph_model-1.2.0 → thundergraph_model-1.2.2}/tests/unit/execution/test_run_context.py +0 -0
  273. {thundergraph_model-1.2.0 → thundergraph_model-1.2.2}/tests/unit/execution/test_validation.py +0 -0
  274. {thundergraph_model-1.2.0 → thundergraph_model-1.2.2}/tests/unit/export/__init__.py +0 -0
  275. {thundergraph_model-1.2.0 → thundergraph_model-1.2.2}/tests/unit/integrations/__init__.py +0 -0
  276. {thundergraph_model-1.2.0 → thundergraph_model-1.2.2}/tests/unit/model/__init__.py +0 -0
  277. {thundergraph_model-1.2.0 → thundergraph_model-1.2.2}/tests/unit/model/test_attribute_ref.py +0 -0
  278. {thundergraph_model-1.2.0 → thundergraph_model-1.2.2}/tests/unit/model/test_behavior_declarations.py +0 -0
  279. {thundergraph_model-1.2.0 → thundergraph_model-1.2.2}/tests/unit/model/test_definition_context.py +0 -0
  280. {thundergraph_model-1.2.0 → thundergraph_model-1.2.2}/tests/unit/model/test_elements.py +0 -0
  281. {thundergraph_model-1.2.0 → thundergraph_model-1.2.2}/tests/unit/model/test_example_system_authoring_policy.py +0 -0
  282. {thundergraph_model-1.2.0 → thundergraph_model-1.2.2}/tests/unit/model/test_expr.py +0 -0
  283. {thundergraph_model-1.2.0 → thundergraph_model-1.2.2}/tests/unit/model/test_identity.py +0 -0
  284. {thundergraph_model-1.2.0 → thundergraph_model-1.2.2}/tests/unit/model/test_new_api_validators.py +0 -0
  285. {thundergraph_model-1.2.0 → thundergraph_model-1.2.2}/tests/unit/model/test_parameter_ref.py +0 -0
  286. {thundergraph_model-1.2.0 → thundergraph_model-1.2.2}/tests/unit/model/test_phase6_ontology.py +0 -0
  287. {thundergraph_model-1.2.0 → thundergraph_model-1.2.2}/tests/unit/model/test_refs.py +0 -0
  288. {thundergraph_model-1.2.0 → thundergraph_model-1.2.2}/tests/unit/model/test_requirement_block.py +0 -0
  289. {thundergraph_model-1.2.0 → thundergraph_model-1.2.2}/tests/unit/model/test_system_authoring_restrictions.py +0 -0
  290. {thundergraph_model-1.2.0 → thundergraph_model-1.2.2}/tg_model/__init__.py +0 -0
  291. {thundergraph_model-1.2.0 → thundergraph_model-1.2.2}/tg_model/analysis/__init__.py +0 -0
  292. {thundergraph_model-1.2.0 → thundergraph_model-1.2.2}/tg_model/analysis/_coherence.py +0 -0
  293. {thundergraph_model-1.2.0 → thundergraph_model-1.2.2}/tg_model/analysis/compare_variants.py +0 -0
  294. {thundergraph_model-1.2.0 → thundergraph_model-1.2.2}/tg_model/analysis/impact.py +0 -0
  295. {thundergraph_model-1.2.0 → thundergraph_model-1.2.2}/tg_model/analysis/sweep.py +0 -0
  296. {thundergraph_model-1.2.0 → thundergraph_model-1.2.2}/tg_model/execution/__init__.py +0 -0
  297. {thundergraph_model-1.2.0 → thundergraph_model-1.2.2}/tg_model/execution/behavior.py +0 -0
  298. {thundergraph_model-1.2.0 → thundergraph_model-1.2.2}/tg_model/execution/connection_bindings.py +0 -0
  299. {thundergraph_model-1.2.0 → thundergraph_model-1.2.2}/tg_model/execution/dependency_graph.py +0 -0
  300. {thundergraph_model-1.2.0 → thundergraph_model-1.2.2}/tg_model/execution/evaluator.py +0 -0
  301. {thundergraph_model-1.2.0 → thundergraph_model-1.2.2}/tg_model/execution/external_ops.py +0 -0
  302. {thundergraph_model-1.2.0 → thundergraph_model-1.2.2}/tg_model/execution/graph_compiler.py +0 -0
  303. {thundergraph_model-1.2.0 → thundergraph_model-1.2.2}/tg_model/execution/instances.py +0 -0
  304. {thundergraph_model-1.2.0 → thundergraph_model-1.2.2}/tg_model/execution/requirements.py +0 -0
  305. {thundergraph_model-1.2.0 → thundergraph_model-1.2.2}/tg_model/execution/rollups.py +0 -0
  306. {thundergraph_model-1.2.0 → thundergraph_model-1.2.2}/tg_model/execution/run_context.py +0 -0
  307. {thundergraph_model-1.2.0 → thundergraph_model-1.2.2}/tg_model/execution/solve_groups.py +0 -0
  308. {thundergraph_model-1.2.0 → thundergraph_model-1.2.2}/tg_model/execution/validation.py +0 -0
  309. {thundergraph_model-1.2.0 → thundergraph_model-1.2.2}/tg_model/execution/value_slots.py +0 -0
  310. {thundergraph_model-1.2.0 → thundergraph_model-1.2.2}/tg_model/export/__init__.py +0 -0
  311. {thundergraph_model-1.2.0 → thundergraph_model-1.2.2}/tg_model/integrations/__init__.py +0 -0
  312. {thundergraph_model-1.2.0 → thundergraph_model-1.2.2}/tg_model/integrations/external_compute.py +0 -0
  313. {thundergraph_model-1.2.0 → thundergraph_model-1.2.2}/tg_model/model/__init__.py +0 -0
  314. {thundergraph_model-1.2.0 → thundergraph_model-1.2.2}/tg_model/model/declarations/__init__.py +0 -0
  315. {thundergraph_model-1.2.0 → thundergraph_model-1.2.2}/tg_model/model/declarations/behavior.py +0 -0
  316. {thundergraph_model-1.2.0 → thundergraph_model-1.2.2}/tg_model/model/declarations/values.py +0 -0
  317. {thundergraph_model-1.2.0 → thundergraph_model-1.2.2}/tg_model/model/elements.py +0 -0
  318. {thundergraph_model-1.2.0 → thundergraph_model-1.2.2}/tg_model/model/expr.py +0 -0
  319. {thundergraph_model-1.2.0 → thundergraph_model-1.2.2}/tg_model/model/identity.py +0 -0
  320. {thundergraph_model-1.2.0 → thundergraph_model-1.2.2}/tg_model/model/refs.py +0 -0
@@ -1,6 +1,6 @@
1
1
  Metadata-Version: 2.4
2
2
  Name: thundergraph-model
3
- Version: 1.2.0
3
+ Version: 1.2.2
4
4
  Summary: Executable systems modeling in Python
5
5
  License-File: LICENSE
6
6
  Requires-Python: >=3.11
@@ -0,0 +1,55 @@
1
+ # v1.2.1 Release Notes
2
+
3
+ ## Summary
4
+
5
+ Patch release. No breaking changes. No new authoring API.
6
+
7
+ ---
8
+
9
+ ## Bug fix: `declared_name` and `declared_doc` now preserved in the compiled artifact
10
+
11
+ **Problem**
12
+
13
+ `model.name(str)` and `model.doc(str)` were stored exclusively in
14
+ `ModelDefinitionContext._declared_name` / `._declared_doc` during `define()`.
15
+ After `compile_type()` ran, the context was discarded and those values were lost.
16
+ The compiled artifact (`cls._compiled_definition`) did not include them, so there
17
+ was no way to retrieve the human-readable name or documentation text after
18
+ compilation without re-running `define()`.
19
+
20
+ **Fix**
21
+
22
+ The compiled artifact now includes two new keys:
23
+
24
+ | Key | Type | Description |
25
+ |---|---|---|
26
+ | `declared_name` | `str` | The string passed to `model.name(...)`. Always present; validated as required by `_validate_name_and_doc_required`. |
27
+ | `declared_doc` | `str \| None` | The string passed to `model.doc(...)`. Set on `Requirement` subclasses; `None` for `Part` and `System`. |
28
+
29
+ **Reading the values**
30
+
31
+ ```python
32
+ cd = MyPart.compile()
33
+ name = cd["declared_name"] # e.g. "hpc_colo_facility"
34
+ doc = cd["declared_doc"] # None for Part/System
35
+
36
+ cd = MyRequirement.compile()
37
+ name = cd["declared_name"] # e.g. "grid_import_capacity"
38
+ doc = cd["declared_doc"] # e.g. "The aggregate facility electrical load shall..."
39
+ ```
40
+
41
+ For `RequirementPackageInstance` objects produced by `instantiate()`, the declaring
42
+ class is `obj.package_type`, not `obj.definition_type`:
43
+
44
+ ```python
45
+ from tg_model.execution.instances import RequirementPackageInstance
46
+
47
+ if isinstance(instance, RequirementPackageInstance):
48
+ name = instance.package_type._compiled_definition["declared_name"]
49
+ doc = instance.package_type._compiled_definition["declared_doc"]
50
+ ```
51
+
52
+ **Compatibility**
53
+
54
+ Fully backward-compatible. Existing code that reads the artifact by key (e.g. `artifact["nodes"]`,
55
+ `artifact["edges"]`) is unaffected. The two new keys are additive.
@@ -4,7 +4,7 @@ build-backend = "hatchling.build"
4
4
 
5
5
  [project]
6
6
  name = "thundergraph-model"
7
- version = "1.2.0"
7
+ version = "1.2.2"
8
8
  description = "Executable systems modeling in Python"
9
9
  readme = "PYPI.md"
10
10
  requires-python = ">=3.11"
@@ -169,3 +169,44 @@ class TestInvalidConnections:
169
169
  with pytest.raises(ModelDefinitionError, match="not a port"):
170
170
  BadSystem2.compile()
171
171
  BadSystem2._reset_compilation()
172
+
173
+
174
+ class TestDeclaredNameAndDocInArtifact:
175
+ """declared_name and declared_doc are preserved in the compiled artifact (v1.2.1)."""
176
+
177
+ def test_part_declared_name_in_artifact(self) -> None:
178
+ result = Battery.compile()
179
+ assert result["declared_name"] == "battery"
180
+
181
+ def test_system_declared_name_in_artifact(self) -> None:
182
+ result = DriveSystem.compile()
183
+ assert result["declared_name"] == "drive_system"
184
+
185
+ def test_part_declared_doc_is_none(self) -> None:
186
+ # Parts and Systems have no doc requirement; field is present but None.
187
+ result = Battery.compile()
188
+ assert "declared_doc" in result
189
+ assert result["declared_doc"] is None
190
+
191
+ def test_requirement_declared_name_and_doc_in_artifact(self) -> None:
192
+ from tg_model.model.elements import Requirement
193
+
194
+ class LoadRequirement(Requirement):
195
+ @classmethod
196
+ def define(cls, model): # type: ignore[override]
197
+ model.name("load_requirement")
198
+ model.doc("The system shall not exceed the declared load limit.")
199
+
200
+ result = LoadRequirement.compile()
201
+ assert result["declared_name"] == "load_requirement"
202
+ assert result["declared_doc"] == "The system shall not exceed the declared load limit."
203
+ LoadRequirement._reset_compilation()
204
+
205
+ def test_declared_name_present_after_reset_and_recompile(self) -> None:
206
+ Battery._reset_compilation()
207
+ result = Battery.compile()
208
+ assert result["declared_name"] == "battery"
209
+
210
+ def test_declared_name_accessible_via_class_attribute(self) -> None:
211
+ Battery.compile()
212
+ assert Battery._compiled_definition["declared_name"] == "battery" # type: ignore[attr-defined]
@@ -535,12 +535,29 @@ def _wire_requirement_block_references(
535
535
  path_registry: dict[str, ElementInstance | ValueSlot],
536
536
  out: list[ReferenceBinding],
537
537
  ) -> None:
538
- """Bind ``references`` edges authored inside a :class:`~tg_model.model.elements.Requirement` package."""
538
+ """Bind ``references`` edges authored inside a :class:`~tg_model.model.elements.Requirement` package.
539
+
540
+ Source refs from ``parameter()`` / ``attribute()`` inside a Requirement carry
541
+ the block's ``symbol_path_prefix`` baked into ``ref.path`` (so they can flow
542
+ through ``allocate(inputs=...)``). Citation refs do not (they keep
543
+ ``self.owner_type`` so they're locally scoped). Strip ``_symbol_path_prefix``
544
+ from each edge endpoint so the result is a clean local-relative path before
545
+ prepending the runtime ``block_instance_path``.
546
+ """
547
+ symbol_prefix: tuple[str, ...] = tuple(compiled.get("_symbol_path_prefix") or ())
548
+
549
+ def _instance_path(raw_path: tuple[str, ...]) -> tuple[str, ...]:
550
+ if symbol_prefix and raw_path[: len(symbol_prefix)] == symbol_prefix:
551
+ local = raw_path[len(symbol_prefix):]
552
+ else:
553
+ local = raw_path
554
+ return block_instance_path + local
555
+
539
556
  for edge in compiled.get("edges", []):
540
557
  if edge.get("kind") != "references":
541
558
  continue
542
- src_path = block_instance_path + tuple(edge["source"]["path"])
543
- tgt_path = block_instance_path + tuple(edge["target"]["path"])
559
+ src_path = _instance_path(tuple(edge["source"]["path"]))
560
+ tgt_path = _instance_path(tuple(edge["target"]["path"]))
544
561
  src_key = ".".join(src_path)
545
562
  tgt_key = ".".join(tgt_path)
546
563
  src = path_registry.get(src_key)
@@ -151,6 +151,8 @@ def compile_type(
151
151
 
152
152
  artifact: dict[str, Any] = {
153
153
  "owner": qualified_name(element_cls),
154
+ "declared_name": ctx._declared_name,
155
+ "declared_doc": ctx._declared_doc,
154
156
  "nodes": {
155
157
  name: {
156
158
  "kind": decl.kind,
@@ -162,6 +164,11 @@ def compile_type(
162
164
  "edges": [_serialize_edge(edge) for edge in ctx.edges],
163
165
  "child_types": child_types,
164
166
  "_type_registry": type_registry,
167
+ # Threaded path prefix used by Requirement parameter()/attribute() refs.
168
+ # Runtime needs this to translate refs that carry the threaded path
169
+ # back to a local-relative path before prepending the instance path
170
+ # of a composed Requirement block.
171
+ "_symbol_path_prefix": tuple(ctx.symbol_path_prefix),
165
172
  "behavior_transitions": _serialize_behavior_transitions(ctx.behavior_transitions),
166
173
  }
167
174
  cls_mut._compiled_definition = artifact
@@ -515,7 +522,13 @@ def _validate_requirement_package_value_exprs(ctx: Any) -> None:
515
522
 
516
523
 
517
524
  def _validate_references_edges(ctx: Any) -> None:
518
- """``references`` edges must resolve to declared nodes; target must be a citation."""
525
+ """``references`` edges must resolve to declared nodes; target must be a citation.
526
+
527
+ Source refs may also point at the root_block (``path=()``, ``kind='part'``,
528
+ ``owner_type is ctx.owner_type``), which represents a citation on the class
529
+ itself rather than on one of its declared members. We treat that as valid
530
+ without requiring a node lookup.
531
+ """
519
532
  for edge in ctx.edges:
520
533
  if edge.get("kind") != "references":
521
534
  continue
@@ -528,11 +541,20 @@ def _validate_references_edges(ctx: Any) -> None:
528
541
  f"{ctx.owner_type.__name__}: references target must be a citation ref, "
529
542
  f"got {getattr(tgt, 'kind', None)!r}"
530
543
  )
531
- sdecl = _lookup_node_decl_for_ref(ctx, src)
532
- if sdecl is None:
533
- raise ModelDefinitionError(
534
- f"{ctx.owner_type.__name__}: references source path {getattr(src, 'path', ())!r} does not resolve"
535
- )
544
+ # Self-reference (root_block): empty path, kind=part, owner_type matches.
545
+ # No node decl exists for the class itself — accept without lookup.
546
+ if (
547
+ getattr(src, "path", None) == ()
548
+ and getattr(src, "kind", None) == "part"
549
+ and getattr(src, "owner_type", None) is ctx.owner_type
550
+ ):
551
+ pass
552
+ else:
553
+ sdecl = _lookup_node_decl_for_ref(ctx, src)
554
+ if sdecl is None:
555
+ raise ModelDefinitionError(
556
+ f"{ctx.owner_type.__name__}: references source path {getattr(src, 'path', ())!r} does not resolve"
557
+ )
536
558
  tdecl = _lookup_node_decl_for_ref(ctx, tgt)
537
559
  if tdecl is None or tdecl.kind != "citation":
538
560
  raise ModelDefinitionError(
@@ -541,13 +563,26 @@ def _validate_references_edges(ctx: Any) -> None:
541
563
 
542
564
 
543
565
  def _lookup_node_decl_for_ref(ctx: Any, ref: Any) -> NodeDecl | None:
544
- """Resolve a definition-time ref using the owning type's definition context (no recursive ``compile()``)."""
566
+ """Resolve a definition-time ref using the owning type's definition context (no recursive ``compile()``).
567
+
568
+ Refs from ``Requirement`` ``parameter()`` / ``attribute()`` calls are threaded
569
+ under ``ctx.symbol_owner`` (typically the configured root type) with a path
570
+ prefixed by ``ctx.symbol_path_prefix``. Strip that prefix before walking the
571
+ local context so refs and locally-declared nodes line up.
572
+ """
545
573
  path = getattr(ref, "path", ())
546
574
  if not path:
547
575
  return None
548
- if getattr(ref, "owner_type", None) is not ctx.owner_type:
549
- return None
550
- return _walk_path_in_definition_ctx(ctx, path)
576
+ ref_owner = getattr(ref, "owner_type", None)
577
+ if ref_owner is ctx.owner_type:
578
+ return _walk_path_in_definition_ctx(ctx, path)
579
+ symbol_owner = getattr(ctx, "symbol_owner", None)
580
+ symbol_prefix = tuple(getattr(ctx, "symbol_path_prefix", ()) or ())
581
+ if ref_owner is symbol_owner and (not symbol_prefix or path[: len(symbol_prefix)] == symbol_prefix):
582
+ local_path = path[len(symbol_prefix):]
583
+ if local_path:
584
+ return _walk_path_in_definition_ctx(ctx, local_path)
585
+ return None
551
586
 
552
587
 
553
588
  def _walk_path_in_definition_ctx(ctx: Any, path: tuple[str, ...]) -> NodeDecl | None:
@@ -1295,7 +1295,12 @@ class ModelDefinitionContext:
1295
1295
  Parameters
1296
1296
  ----------
1297
1297
  source : Ref
1298
- Any declared node on this type (part, port, parameter, requirement, …).
1298
+ Any declared node on this type (part, port, parameter, attribute,
1299
+ requirement, …). For ``Requirement`` blocks, parameters and
1300
+ attributes are threaded under ``symbol_owner`` so allocations can
1301
+ wire them across boundaries; refs whose ``owner_type`` is either
1302
+ the local ``owner_type`` or the configured ``symbol_owner`` are
1303
+ both accepted as sources.
1299
1304
  citation : Ref
1300
1305
  Must be ``kind='citation'`` on this type.
1301
1306
 
@@ -1307,8 +1312,23 @@ class ModelDefinitionContext:
1307
1312
  self._check_frozen()
1308
1313
  if citation.kind != "citation":
1309
1314
  raise ModelDefinitionError(f"references(): citation must be a citation ref, got kind={citation.kind!r}")
1310
- if source.owner_type is not self.owner_type or citation.owner_type is not self.owner_type:
1311
- raise ModelDefinitionError("references(): source and citation must belong to this type")
1315
+ # Accept refs from either the local owner_type or the threaded
1316
+ # symbol_owner. For Parts, both are the same. For Requirements,
1317
+ # parameter()/attribute() return refs with owner_type=symbol_owner so
1318
+ # they can flow through allocations; those must be valid sources here.
1319
+ valid_owners = (self.owner_type, self.symbol_owner)
1320
+ if source.owner_type not in valid_owners or citation.owner_type not in valid_owners:
1321
+ raise ModelDefinitionError(
1322
+ f"references(): source and citation must belong to this type "
1323
+ f"({self.owner_type.__name__})"
1324
+ + (
1325
+ f" or its symbol owner ({self.symbol_owner.__name__})"
1326
+ if self.symbol_owner is not self.owner_type
1327
+ else ""
1328
+ )
1329
+ + f". Got source.owner_type={source.owner_type.__name__}, "
1330
+ f"citation.owner_type={citation.owner_type.__name__}."
1331
+ )
1312
1332
  self.edges.append(
1313
1333
  {
1314
1334
  "kind": "references",
@@ -1815,7 +1815,7 @@ wheels = [
1815
1815
 
1816
1816
  [[package]]
1817
1817
  name = "thundergraph-model"
1818
- version = "1.2.0"
1818
+ version = "1.2.2"
1819
1819
  source = { editable = "." }
1820
1820
  dependencies = [
1821
1821
  { name = "unitflow", extra = ["numpy"] },