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.
- thundergraph_model-1.0.0/.github/ISSUE_TEMPLATE/01-bug_report.yml +110 -0
- thundergraph_model-1.0.0/.github/ISSUE_TEMPLATE/02-feature_request.yml +62 -0
- thundergraph_model-1.0.0/.github/ISSUE_TEMPLATE/03-documentation.yml +58 -0
- thundergraph_model-1.0.0/.github/ISSUE_TEMPLATE/config.yml +2 -0
- thundergraph_model-1.0.0/.github/pull_request_template.md +58 -0
- thundergraph_model-1.0.0/.github/workflows/publish.yml +36 -0
- thundergraph_model-1.0.0/.gitignore +207 -0
- thundergraph_model-1.0.0/CHANGELOG.md +46 -0
- thundergraph_model-1.0.0/LICENSE +201 -0
- thundergraph_model-1.0.0/PKG-INFO +82 -0
- thundergraph_model-1.0.0/PYPI.md +66 -0
- thundergraph_model-1.0.0/README.md +155 -0
- thundergraph_model-1.0.0/docs/generation_docs/behavior_methodology.md +558 -0
- thundergraph_model-1.0.0/docs/generation_docs/brainstorm.md +611 -0
- thundergraph_model-1.0.0/docs/generation_docs/conceptual_requirements.md +111 -0
- thundergraph_model-1.0.0/docs/generation_docs/evaluation_api_facade_implementation_plan.md +310 -0
- thundergraph_model-1.0.0/docs/generation_docs/execution_methodology.md +766 -0
- thundergraph_model-1.0.0/docs/generation_docs/implementation_plan.md +967 -0
- thundergraph_model-1.0.0/docs/generation_docs/logical_architecture.md +479 -0
- thundergraph_model-1.0.0/docs/generation_docs/model_prototype_sketch.py +420 -0
- thundergraph_model-1.0.0/docs/generation_docs/requirement_composition_and_naming_implementation_plan.md +332 -0
- thundergraph_model-1.0.0/docs/generation_docs/system_authoring_restrictions_implementation_plan.md +436 -0
- thundergraph_model-1.0.0/docs/generation_docs/use_cases.md +799 -0
- thundergraph_model-1.0.0/docs/generation_docs/v0_api.md +1741 -0
- thundergraph_model-1.0.0/docs/user_docs/IMPLEMENTATION_PLAN.md +419 -0
- thundergraph_model-1.0.0/docs/user_docs/README.md +20 -0
- thundergraph_model-1.0.0/docs/user_docs/_build/html/.buildinfo +4 -0
- thundergraph_model-1.0.0/docs/user_docs/_build/html/.buildinfo.bak +4 -0
- thundergraph_model-1.0.0/docs/user_docs/_build/html/.doctrees/api/api_analysis.doctree +0 -0
- thundergraph_model-1.0.0/docs/user_docs/_build/html/.doctrees/api/api_execution.doctree +0 -0
- thundergraph_model-1.0.0/docs/user_docs/_build/html/.doctrees/api/api_integrations.doctree +0 -0
- thundergraph_model-1.0.0/docs/user_docs/_build/html/.doctrees/api/api_model.doctree +0 -0
- thundergraph_model-1.0.0/docs/user_docs/_build/html/.doctrees/api/api_root.doctree +0 -0
- thundergraph_model-1.0.0/docs/user_docs/_build/html/.doctrees/api/index.doctree +0 -0
- thundergraph_model-1.0.0/docs/user_docs/_build/html/.doctrees/developer/architecture.doctree +0 -0
- thundergraph_model-1.0.0/docs/user_docs/_build/html/.doctrees/developer/contributing.doctree +0 -0
- thundergraph_model-1.0.0/docs/user_docs/_build/html/.doctrees/developer/extension_playbook.doctree +0 -0
- thundergraph_model-1.0.0/docs/user_docs/_build/html/.doctrees/developer/releasing.doctree +0 -0
- thundergraph_model-1.0.0/docs/user_docs/_build/html/.doctrees/developer/repository_map.doctree +0 -0
- thundergraph_model-1.0.0/docs/user_docs/_build/html/.doctrees/developer/testing.doctree +0 -0
- thundergraph_model-1.0.0/docs/user_docs/_build/html/.doctrees/docstring_style.doctree +0 -0
- thundergraph_model-1.0.0/docs/user_docs/_build/html/.doctrees/drafts/execution_pipeline.doctree +0 -0
- thundergraph_model-1.0.0/docs/user_docs/_build/html/.doctrees/drafts/glossary.doctree +0 -0
- thundergraph_model-1.0.0/docs/user_docs/_build/html/.doctrees/drafts/repository_map.doctree +0 -0
- thundergraph_model-1.0.0/docs/user_docs/_build/html/.doctrees/drafts/what_is_thundergraph_model.doctree +0 -0
- thundergraph_model-1.0.0/docs/user_docs/_build/html/.doctrees/environment.pickle +0 -0
- thundergraph_model-1.0.0/docs/user_docs/_build/html/.doctrees/index.doctree +0 -0
- thundergraph_model-1.0.0/docs/user_docs/_build/html/.doctrees/user/concepts_external_compute.doctree +0 -0
- thundergraph_model-1.0.0/docs/user_docs/_build/html/.doctrees/user/concepts_requirements.doctree +0 -0
- thundergraph_model-1.0.0/docs/user_docs/_build/html/.doctrees/user/faq.doctree +0 -0
- thundergraph_model-1.0.0/docs/user_docs/_build/html/.doctrees/user/install.doctree +0 -0
- thundergraph_model-1.0.0/docs/user_docs/_build/html/.doctrees/user/mental_model.doctree +0 -0
- thundergraph_model-1.0.0/docs/user_docs/_build/html/.doctrees/user/overview.doctree +0 -0
- thundergraph_model-1.0.0/docs/user_docs/_build/html/.doctrees/user/quickstart.doctree +0 -0
- thundergraph_model-1.0.0/docs/user_docs/_build/html/_modules/index.html +324 -0
- thundergraph_model-1.0.0/docs/user_docs/_build/html/_modules/tg_model/analysis/compare_variants.html +517 -0
- thundergraph_model-1.0.0/docs/user_docs/_build/html/_modules/tg_model/analysis/impact.html +412 -0
- thundergraph_model-1.0.0/docs/user_docs/_build/html/_modules/tg_model/analysis/sweep.html +513 -0
- thundergraph_model-1.0.0/docs/user_docs/_build/html/_modules/tg_model/execution/behavior.html +1197 -0
- thundergraph_model-1.0.0/docs/user_docs/_build/html/_modules/tg_model/execution/configured_model.html +1071 -0
- thundergraph_model-1.0.0/docs/user_docs/_build/html/_modules/tg_model/execution/connection_bindings.html +401 -0
- thundergraph_model-1.0.0/docs/user_docs/_build/html/_modules/tg_model/execution/dependency_graph.html +553 -0
- thundergraph_model-1.0.0/docs/user_docs/_build/html/_modules/tg_model/execution/evaluator.html +736 -0
- thundergraph_model-1.0.0/docs/user_docs/_build/html/_modules/tg_model/execution/graph_compiler.html +1421 -0
- thundergraph_model-1.0.0/docs/user_docs/_build/html/_modules/tg_model/execution/instances.html +612 -0
- thundergraph_model-1.0.0/docs/user_docs/_build/html/_modules/tg_model/execution/requirements.html +424 -0
- thundergraph_model-1.0.0/docs/user_docs/_build/html/_modules/tg_model/execution/run_context.html +660 -0
- thundergraph_model-1.0.0/docs/user_docs/_build/html/_modules/tg_model/execution/validation.html +528 -0
- thundergraph_model-1.0.0/docs/user_docs/_build/html/_modules/tg_model/execution/value_slots.html +371 -0
- thundergraph_model-1.0.0/docs/user_docs/_build/html/_modules/tg_model/integrations/external_compute.html +463 -0
- thundergraph_model-1.0.0/docs/user_docs/_build/html/_modules/tg_model/model/definition_context.html +2167 -0
- thundergraph_model-1.0.0/docs/user_docs/_build/html/_modules/tg_model/model/elements.html +485 -0
- thundergraph_model-1.0.0/docs/user_docs/_build/html/_modules/tg_model/model/expr.html +386 -0
- thundergraph_model-1.0.0/docs/user_docs/_build/html/_modules/tg_model/model/refs.html +645 -0
- thundergraph_model-1.0.0/docs/user_docs/_build/html/_sources/api/api_analysis.rst.txt +6 -0
- thundergraph_model-1.0.0/docs/user_docs/_build/html/_sources/api/api_execution.rst.txt +6 -0
- thundergraph_model-1.0.0/docs/user_docs/_build/html/_sources/api/api_integrations.rst.txt +6 -0
- thundergraph_model-1.0.0/docs/user_docs/_build/html/_sources/api/api_model.rst.txt +6 -0
- thundergraph_model-1.0.0/docs/user_docs/_build/html/_sources/api/api_root.rst.txt +10 -0
- thundergraph_model-1.0.0/docs/user_docs/_build/html/_sources/api/index.md.txt +15 -0
- thundergraph_model-1.0.0/docs/user_docs/_build/html/_sources/developer/architecture.md.txt +53 -0
- thundergraph_model-1.0.0/docs/user_docs/_build/html/_sources/developer/contributing.md.txt +31 -0
- thundergraph_model-1.0.0/docs/user_docs/_build/html/_sources/developer/extension_playbook.md.txt +57 -0
- thundergraph_model-1.0.0/docs/user_docs/_build/html/_sources/developer/releasing.md.txt +27 -0
- thundergraph_model-1.0.0/docs/user_docs/_build/html/_sources/developer/repository_map.md.txt +25 -0
- thundergraph_model-1.0.0/docs/user_docs/_build/html/_sources/developer/testing.md.txt +45 -0
- thundergraph_model-1.0.0/docs/user_docs/_build/html/_sources/docstring_style.md.txt +70 -0
- thundergraph_model-1.0.0/docs/user_docs/_build/html/_sources/drafts/execution_pipeline.md.txt +91 -0
- thundergraph_model-1.0.0/docs/user_docs/_build/html/_sources/drafts/glossary.md.txt +67 -0
- thundergraph_model-1.0.0/docs/user_docs/_build/html/_sources/drafts/repository_map.md.txt +61 -0
- thundergraph_model-1.0.0/docs/user_docs/_build/html/_sources/drafts/what_is_thundergraph_model.md.txt +56 -0
- thundergraph_model-1.0.0/docs/user_docs/_build/html/_sources/index.md.txt +46 -0
- thundergraph_model-1.0.0/docs/user_docs/_build/html/_sources/user/concepts_external_compute.md.txt +92 -0
- thundergraph_model-1.0.0/docs/user_docs/_build/html/_sources/user/concepts_requirements.md.txt +147 -0
- thundergraph_model-1.0.0/docs/user_docs/_build/html/_sources/user/faq.md.txt +70 -0
- thundergraph_model-1.0.0/docs/user_docs/_build/html/_sources/user/install.md.txt +36 -0
- thundergraph_model-1.0.0/docs/user_docs/_build/html/_sources/user/mental_model.md.txt +27 -0
- thundergraph_model-1.0.0/docs/user_docs/_build/html/_sources/user/overview.md.txt +23 -0
- thundergraph_model-1.0.0/docs/user_docs/_build/html/_sources/user/quickstart.md.txt +167 -0
- thundergraph_model-1.0.0/docs/user_docs/_build/html/_static/base-stemmer.js +476 -0
- thundergraph_model-1.0.0/docs/user_docs/_build/html/_static/basic.css +906 -0
- thundergraph_model-1.0.0/docs/user_docs/_build/html/_static/debug.css +69 -0
- thundergraph_model-1.0.0/docs/user_docs/_build/html/_static/doctools.js +150 -0
- thundergraph_model-1.0.0/docs/user_docs/_build/html/_static/documentation_options.js +13 -0
- thundergraph_model-1.0.0/docs/user_docs/_build/html/_static/english-stemmer.js +1066 -0
- thundergraph_model-1.0.0/docs/user_docs/_build/html/_static/file.png +0 -0
- thundergraph_model-1.0.0/docs/user_docs/_build/html/_static/language_data.js +13 -0
- thundergraph_model-1.0.0/docs/user_docs/_build/html/_static/minus.png +0 -0
- thundergraph_model-1.0.0/docs/user_docs/_build/html/_static/plus.png +0 -0
- thundergraph_model-1.0.0/docs/user_docs/_build/html/_static/pygments.css +250 -0
- thundergraph_model-1.0.0/docs/user_docs/_build/html/_static/scripts/furo-extensions.js +0 -0
- thundergraph_model-1.0.0/docs/user_docs/_build/html/_static/scripts/furo.js +3 -0
- thundergraph_model-1.0.0/docs/user_docs/_build/html/_static/scripts/furo.js.LICENSE.txt +7 -0
- thundergraph_model-1.0.0/docs/user_docs/_build/html/_static/scripts/furo.js.map +1 -0
- thundergraph_model-1.0.0/docs/user_docs/_build/html/_static/searchtools.js +693 -0
- thundergraph_model-1.0.0/docs/user_docs/_build/html/_static/skeleton.css +296 -0
- thundergraph_model-1.0.0/docs/user_docs/_build/html/_static/sphinx_highlight.js +159 -0
- thundergraph_model-1.0.0/docs/user_docs/_build/html/_static/styles/furo-extensions.css +2 -0
- thundergraph_model-1.0.0/docs/user_docs/_build/html/_static/styles/furo-extensions.css.map +1 -0
- thundergraph_model-1.0.0/docs/user_docs/_build/html/_static/styles/furo.css +2 -0
- thundergraph_model-1.0.0/docs/user_docs/_build/html/_static/styles/furo.css.map +1 -0
- thundergraph_model-1.0.0/docs/user_docs/_build/html/api/api_analysis.html +720 -0
- thundergraph_model-1.0.0/docs/user_docs/_build/html/api/api_execution.html +2837 -0
- thundergraph_model-1.0.0/docs/user_docs/_build/html/api/api_integrations.html +578 -0
- thundergraph_model-1.0.0/docs/user_docs/_build/html/api/api_model.html +1976 -0
- thundergraph_model-1.0.0/docs/user_docs/_build/html/api/api_root.html +343 -0
- thundergraph_model-1.0.0/docs/user_docs/_build/html/api/index.html +437 -0
- thundergraph_model-1.0.0/docs/user_docs/_build/html/developer/architecture.html +406 -0
- thundergraph_model-1.0.0/docs/user_docs/_build/html/developer/contributing.html +388 -0
- thundergraph_model-1.0.0/docs/user_docs/_build/html/developer/extension_playbook.html +432 -0
- thundergraph_model-1.0.0/docs/user_docs/_build/html/developer/releasing.html +379 -0
- thundergraph_model-1.0.0/docs/user_docs/_build/html/developer/repository_map.html +397 -0
- thundergraph_model-1.0.0/docs/user_docs/_build/html/developer/testing.html +412 -0
- thundergraph_model-1.0.0/docs/user_docs/_build/html/docstring_style.html +491 -0
- thundergraph_model-1.0.0/docs/user_docs/_build/html/drafts/execution_pipeline.html +443 -0
- thundergraph_model-1.0.0/docs/user_docs/_build/html/drafts/glossary.html +460 -0
- thundergraph_model-1.0.0/docs/user_docs/_build/html/drafts/repository_map.html +433 -0
- thundergraph_model-1.0.0/docs/user_docs/_build/html/drafts/what_is_thundergraph_model.html +411 -0
- thundergraph_model-1.0.0/docs/user_docs/_build/html/genindex.html +1302 -0
- thundergraph_model-1.0.0/docs/user_docs/_build/html/index.html +506 -0
- thundergraph_model-1.0.0/docs/user_docs/_build/html/objects.inv +0 -0
- thundergraph_model-1.0.0/docs/user_docs/_build/html/py-modindex.html +347 -0
- thundergraph_model-1.0.0/docs/user_docs/_build/html/search.html +319 -0
- thundergraph_model-1.0.0/docs/user_docs/_build/html/searchindex.js +1 -0
- thundergraph_model-1.0.0/docs/user_docs/_build/html/user/concepts_external_compute.html +448 -0
- thundergraph_model-1.0.0/docs/user_docs/_build/html/user/concepts_requirements.html +548 -0
- thundergraph_model-1.0.0/docs/user_docs/_build/html/user/faq.html +427 -0
- thundergraph_model-1.0.0/docs/user_docs/_build/html/user/install.html +387 -0
- thundergraph_model-1.0.0/docs/user_docs/_build/html/user/mental_model.html +372 -0
- thundergraph_model-1.0.0/docs/user_docs/_build/html/user/overview.html +381 -0
- thundergraph_model-1.0.0/docs/user_docs/_build/html/user/quickstart.html +517 -0
- thundergraph_model-1.0.0/docs/user_docs/api/api_analysis.rst +6 -0
- thundergraph_model-1.0.0/docs/user_docs/api/api_execution.rst +6 -0
- thundergraph_model-1.0.0/docs/user_docs/api/api_integrations.rst +6 -0
- thundergraph_model-1.0.0/docs/user_docs/api/api_model.rst +6 -0
- thundergraph_model-1.0.0/docs/user_docs/api/api_root.rst +10 -0
- thundergraph_model-1.0.0/docs/user_docs/api/index.md +15 -0
- thundergraph_model-1.0.0/docs/user_docs/conf.py +74 -0
- thundergraph_model-1.0.0/docs/user_docs/developer/architecture.md +53 -0
- thundergraph_model-1.0.0/docs/user_docs/developer/contributing.md +31 -0
- thundergraph_model-1.0.0/docs/user_docs/developer/extension_playbook.md +57 -0
- thundergraph_model-1.0.0/docs/user_docs/developer/releasing.md +27 -0
- thundergraph_model-1.0.0/docs/user_docs/developer/repository_map.md +25 -0
- thundergraph_model-1.0.0/docs/user_docs/developer/testing.md +45 -0
- thundergraph_model-1.0.0/docs/user_docs/docstring_style.md +70 -0
- thundergraph_model-1.0.0/docs/user_docs/drafts/README.md +12 -0
- thundergraph_model-1.0.0/docs/user_docs/drafts/execution_pipeline.md +91 -0
- thundergraph_model-1.0.0/docs/user_docs/drafts/glossary.md +67 -0
- thundergraph_model-1.0.0/docs/user_docs/drafts/repository_map.md +61 -0
- thundergraph_model-1.0.0/docs/user_docs/drafts/what_is_thundergraph_model.md +56 -0
- thundergraph_model-1.0.0/docs/user_docs/index.md +46 -0
- thundergraph_model-1.0.0/docs/user_docs/user/concepts_external_compute.md +92 -0
- thundergraph_model-1.0.0/docs/user_docs/user/concepts_requirements.md +147 -0
- thundergraph_model-1.0.0/docs/user_docs/user/faq.md +70 -0
- thundergraph_model-1.0.0/docs/user_docs/user/install.md +36 -0
- thundergraph_model-1.0.0/docs/user_docs/user/mental_model.md +27 -0
- thundergraph_model-1.0.0/docs/user_docs/user/overview.md +23 -0
- thundergraph_model-1.0.0/docs/user_docs/user/quickstart.md +167 -0
- thundergraph_model-1.0.0/examples/__init__.py +1 -0
- thundergraph_model-1.0.0/examples/commercial_aircraft/IMPLEMENTATION_PLAN.md +333 -0
- thundergraph_model-1.0.0/examples/commercial_aircraft/README.md +70 -0
- thundergraph_model-1.0.0/examples/commercial_aircraft/__init__.py +43 -0
- thundergraph_model-1.0.0/examples/commercial_aircraft/integrations/__init__.py +14 -0
- thundergraph_model-1.0.0/examples/commercial_aircraft/integrations/adapters.py +63 -0
- thundergraph_model-1.0.0/examples/commercial_aircraft/integrations/bindings.py +49 -0
- thundergraph_model-1.0.0/examples/commercial_aircraft/product/__init__.py +21 -0
- thundergraph_model-1.0.0/examples/commercial_aircraft/product/aircraft.py +105 -0
- thundergraph_model-1.0.0/examples/commercial_aircraft/product/major_assemblies/__init__.py +19 -0
- thundergraph_model-1.0.0/examples/commercial_aircraft/product/major_assemblies/parts.py +90 -0
- thundergraph_model-1.0.0/examples/commercial_aircraft/program/__init__.py +5 -0
- thundergraph_model-1.0.0/examples/commercial_aircraft/program/cargo_jet_program.py +92 -0
- thundergraph_model-1.0.0/examples/commercial_aircraft/program/l1_requirement_packages.py +166 -0
- thundergraph_model-1.0.0/examples/commercial_aircraft/program/mission_context.py +28 -0
- thundergraph_model-1.0.0/examples/commercial_aircraft/reporting/__init__.py +6 -0
- thundergraph_model-1.0.0/examples/commercial_aircraft/reporting/extract.py +225 -0
- thundergraph_model-1.0.0/examples/commercial_aircraft/reporting/snapshot.py +168 -0
- thundergraph_model-1.0.0/examples/hpc_datacenter/README.md +49 -0
- thundergraph_model-1.0.0/examples/hpc_datacenter/__init__.py +7 -0
- thundergraph_model-1.0.0/examples/hpc_datacenter/program.py +121 -0
- thundergraph_model-1.0.0/examples/mars_ntp_tug/__init__.py +4 -0
- thundergraph_model-1.0.0/examples/mars_ntp_tug/integrations/__init__.py +19 -0
- thundergraph_model-1.0.0/examples/mars_ntp_tug/integrations/adapters.py +74 -0
- thundergraph_model-1.0.0/examples/mars_ntp_tug/integrations/bindings.py +60 -0
- thundergraph_model-1.0.0/examples/mars_ntp_tug/integrations/preset_inputs.py +148 -0
- thundergraph_model-1.0.0/examples/mars_ntp_tug/reporting/__init__.py +6 -0
- thundergraph_model-1.0.0/examples/mars_ntp_tug/reporting/extract.py +206 -0
- thundergraph_model-1.0.0/examples/mars_ntp_tug/reporting/snapshot.py +204 -0
- thundergraph_model-1.0.0/examples/mars_ntp_tug/tug_model.py +439 -0
- thundergraph_model-1.0.0/implementation_plan_instructions.md +18 -0
- thundergraph_model-1.0.0/logo.png +0 -0
- thundergraph_model-1.0.0/notebooks/_gen_leo_notebook.py +1033 -0
- thundergraph_model-1.0.0/notebooks/aev_architecture.mmd +11 -0
- thundergraph_model-1.0.0/notebooks/cargo_jet_program.ipynb +504 -0
- thundergraph_model-1.0.0/notebooks/hpc_datacenter_parameter_sweep.ipynb +281 -0
- thundergraph_model-1.0.0/notebooks/mars_ntp_nuclear_tug.ipynb +280 -0
- thundergraph_model-1.0.0/pyproject.toml +68 -0
- thundergraph_model-1.0.0/reviewer_architype.md +3 -0
- thundergraph_model-1.0.0/tests/__init__.py +0 -0
- thundergraph_model-1.0.0/tests/integration/__init__.py +0 -0
- thundergraph_model-1.0.0/tests/integration/analysis/__init__.py +0 -0
- thundergraph_model-1.0.0/tests/integration/analysis/test_analysis_workflows.py +233 -0
- thundergraph_model-1.0.0/tests/integration/behavior/__init__.py +0 -0
- thundergraph_model-1.0.0/tests/integration/behavior/test_behavior_e2e.py +125 -0
- thundergraph_model-1.0.0/tests/integration/evaluation/__init__.py +0 -0
- thundergraph_model-1.0.0/tests/integration/evaluation/test_evaluation_e2e.py +151 -0
- thundergraph_model-1.0.0/tests/integration/evaluation/test_external_compute.py +250 -0
- thundergraph_model-1.0.0/tests/integration/evaluation/test_requirement_acceptance.py +172 -0
- thundergraph_model-1.0.0/tests/integration/evaluation/test_unitflow_evaluation.py +313 -0
- thundergraph_model-1.0.0/tests/integration/structural_models/__init__.py +0 -0
- thundergraph_model-1.0.0/tests/integration/structural_models/test_citations.py +88 -0
- thundergraph_model-1.0.0/tests/integration/structural_models/test_drive_system.py +136 -0
- thundergraph_model-1.0.0/tests/integration/structural_models/test_instantiation.py +120 -0
- thundergraph_model-1.0.0/tests/integration/test_commercial_aircraft_smoke.py +251 -0
- thundergraph_model-1.0.0/tests/integration/test_hpc_datacenter_smoke.py +78 -0
- thundergraph_model-1.0.0/tests/integration/test_mars_ntp_tug_smoke.py +75 -0
- thundergraph_model-1.0.0/tests/unit/__init__.py +0 -0
- thundergraph_model-1.0.0/tests/unit/analysis/__init__.py +0 -0
- thundergraph_model-1.0.0/tests/unit/analysis/test_sweep_planning.py +109 -0
- thundergraph_model-1.0.0/tests/unit/execution/__init__.py +0 -0
- thundergraph_model-1.0.0/tests/unit/execution/test_behavior_runtime.py +134 -0
- thundergraph_model-1.0.0/tests/unit/execution/test_behavior_scope.py +182 -0
- thundergraph_model-1.0.0/tests/unit/execution/test_configured_model.py +239 -0
- thundergraph_model-1.0.0/tests/unit/execution/test_configured_model_evaluate.py +149 -0
- thundergraph_model-1.0.0/tests/unit/execution/test_dependency_graph.py +114 -0
- thundergraph_model-1.0.0/tests/unit/execution/test_evaluator.py +94 -0
- thundergraph_model-1.0.0/tests/unit/execution/test_instances.py +113 -0
- thundergraph_model-1.0.0/tests/unit/execution/test_phase6_runtime.py +303 -0
- thundergraph_model-1.0.0/tests/unit/execution/test_run_context.py +61 -0
- thundergraph_model-1.0.0/tests/unit/execution/test_validation.py +74 -0
- thundergraph_model-1.0.0/tests/unit/export/__init__.py +0 -0
- thundergraph_model-1.0.0/tests/unit/integrations/__init__.py +0 -0
- thundergraph_model-1.0.0/tests/unit/model/__init__.py +0 -0
- thundergraph_model-1.0.0/tests/unit/model/test_attribute_ref.py +79 -0
- thundergraph_model-1.0.0/tests/unit/model/test_behavior_declarations.py +85 -0
- thundergraph_model-1.0.0/tests/unit/model/test_compile_types.py +163 -0
- thundergraph_model-1.0.0/tests/unit/model/test_definition_context.py +167 -0
- thundergraph_model-1.0.0/tests/unit/model/test_elements.py +24 -0
- thundergraph_model-1.0.0/tests/unit/model/test_example_system_authoring_policy.py +55 -0
- thundergraph_model-1.0.0/tests/unit/model/test_expr.py +29 -0
- thundergraph_model-1.0.0/tests/unit/model/test_identity.py +53 -0
- thundergraph_model-1.0.0/tests/unit/model/test_parameter_ref.py +190 -0
- thundergraph_model-1.0.0/tests/unit/model/test_phase6_ontology.py +102 -0
- thundergraph_model-1.0.0/tests/unit/model/test_refs.py +68 -0
- thundergraph_model-1.0.0/tests/unit/model/test_requirement_block.py +659 -0
- thundergraph_model-1.0.0/tests/unit/model/test_system_authoring_restrictions.py +112 -0
- thundergraph_model-1.0.0/tg_model/__init__.py +46 -0
- thundergraph_model-1.0.0/tg_model/analysis/__init__.py +38 -0
- thundergraph_model-1.0.0/tg_model/analysis/_coherence.py +91 -0
- thundergraph_model-1.0.0/tg_model/analysis/compare_variants.py +197 -0
- thundergraph_model-1.0.0/tg_model/analysis/impact.py +101 -0
- thundergraph_model-1.0.0/tg_model/analysis/sweep.py +199 -0
- thundergraph_model-1.0.0/tg_model/execution/__init__.py +122 -0
- thundergraph_model-1.0.0/tg_model/execution/behavior.py +826 -0
- thundergraph_model-1.0.0/tg_model/execution/configured_model.py +754 -0
- thundergraph_model-1.0.0/tg_model/execution/connection_bindings.py +87 -0
- thundergraph_model-1.0.0/tg_model/execution/dependency_graph.py +217 -0
- thundergraph_model-1.0.0/tg_model/execution/evaluator.py +419 -0
- thundergraph_model-1.0.0/tg_model/execution/external_ops.py +153 -0
- thundergraph_model-1.0.0/tg_model/execution/graph_compiler.py +1110 -0
- thundergraph_model-1.0.0/tg_model/execution/instances.py +274 -0
- thundergraph_model-1.0.0/tg_model/execution/requirements.py +104 -0
- thundergraph_model-1.0.0/tg_model/execution/rollups.py +60 -0
- thundergraph_model-1.0.0/tg_model/execution/run_context.py +304 -0
- thundergraph_model-1.0.0/tg_model/execution/solve_groups.py +104 -0
- thundergraph_model-1.0.0/tg_model/execution/validation.py +211 -0
- thundergraph_model-1.0.0/tg_model/execution/value_slots.py +63 -0
- thundergraph_model-1.0.0/tg_model/export/__init__.py +7 -0
- thundergraph_model-1.0.0/tg_model/integrations/__init__.py +36 -0
- thundergraph_model-1.0.0/tg_model/integrations/external_compute.py +122 -0
- thundergraph_model-1.0.0/tg_model/model/__init__.py +39 -0
- thundergraph_model-1.0.0/tg_model/model/compile_types.py +896 -0
- thundergraph_model-1.0.0/tg_model/model/declarations/__init__.py +8 -0
- thundergraph_model-1.0.0/tg_model/model/declarations/behavior.py +37 -0
- thundergraph_model-1.0.0/tg_model/model/declarations/values.py +53 -0
- thundergraph_model-1.0.0/tg_model/model/definition_context.py +1742 -0
- thundergraph_model-1.0.0/tg_model/model/elements.py +159 -0
- thundergraph_model-1.0.0/tg_model/model/expr.py +75 -0
- thundergraph_model-1.0.0/tg_model/model/identity.py +63 -0
- thundergraph_model-1.0.0/tg_model/model/refs.py +319 -0
- 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,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.
|