simvue 2.5.2__tar.gz → 2.5.4__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 (174) hide show
  1. simvue-2.5.4/.github/ISSUE_TEMPLATE/bug_report.md +34 -0
  2. simvue-2.5.4/.github/ISSUE_TEMPLATE/feature_request.md +20 -0
  3. simvue-2.5.4/.github/PULL_REQUEST_TEMPLATE/bug_fix.md +24 -0
  4. simvue-2.5.4/.github/PULL_REQUEST_TEMPLATE/feature.md +23 -0
  5. simvue-2.5.4/.github/dependabot.yml +18 -0
  6. simvue-2.5.4/.github/pull_request_template.md +5 -0
  7. simvue-2.5.4/.github/workflows/citation.yml +27 -0
  8. simvue-2.5.4/.github/workflows/codeql.yml +84 -0
  9. simvue-2.5.4/.github/workflows/deploy.yaml +115 -0
  10. simvue-2.5.4/.github/workflows/examples.yml +168 -0
  11. simvue-2.5.4/.github/workflows/prek.yml +28 -0
  12. simvue-2.5.4/.github/workflows/test_client_macos_nightlies.yml +259 -0
  13. simvue-2.5.4/.github/workflows/test_client_ubuntu.yml +254 -0
  14. simvue-2.5.4/.github/workflows/test_client_ubuntu_nightlies.yml +262 -0
  15. simvue-2.5.4/.github/workflows/test_client_windows_nightlies.yml +268 -0
  16. simvue-2.5.4/.github/workflows/test_multiple_python.yml +307 -0
  17. simvue-2.5.4/.gitignore +154 -0
  18. simvue-2.5.4/.gitmodules +3 -0
  19. simvue-2.5.4/CHANGELOG.md +380 -0
  20. simvue-2.5.4/CITATION.cff +48 -0
  21. simvue-2.5.4/CODE_OF_CONDUCT.md +128 -0
  22. simvue-2.5.4/CONTRIBUTING.md +61 -0
  23. {simvue-2.5.2 → simvue-2.5.4}/PKG-INFO +35 -37
  24. simvue-2.5.4/examples/Bluemira/README.md +21 -0
  25. simvue-2.5.4/examples/Bluemira/geometry_optimisation.py +197 -0
  26. simvue-2.5.4/examples/Geant4/README.md +41 -0
  27. simvue-2.5.4/examples/Geant4/geant4_simvue.py +109 -0
  28. simvue-2.5.4/examples/Geant4/requirements.txt +5 -0
  29. simvue-2.5.4/examples/Logging/README.md +24 -0
  30. simvue-2.5.4/examples/Logging/logging-to-simvue.py +27 -0
  31. simvue-2.5.4/examples/Optuna/README.md +34 -0
  32. simvue-2.5.4/examples/Optuna/requirements.txt +5 -0
  33. simvue-2.5.4/examples/Optuna/simvue_optuna_pytorch.py +175 -0
  34. simvue-2.5.4/examples/PyTorch/README.md +25 -0
  35. simvue-2.5.4/examples/PyTorch/main.py +270 -0
  36. simvue-2.5.4/examples/PyTorch/requirements.txt +3 -0
  37. simvue-2.5.4/examples/README.md +25 -0
  38. simvue-2.5.4/examples/SU2/README.md +38 -0
  39. simvue-2.5.4/examples/SU2/SU2.py +155 -0
  40. simvue-2.5.4/examples/SU2/SU2.sh +9 -0
  41. simvue-2.5.4/notebooks/README.md +36 -0
  42. simvue-2.5.4/notebooks/basic_example.ipynb +179 -0
  43. simvue-2.5.4/notebooks/detailed_example.ipynb +308 -0
  44. simvue-2.5.4/notebooks/non_python_example.ipynb +214 -0
  45. simvue-2.5.4/notebooks/temperatures.sh +41 -0
  46. simvue-2.5.4/poetry.lock +2566 -0
  47. simvue-2.5.4/prek.toml +73 -0
  48. {simvue-2.5.2 → simvue-2.5.4}/pyproject.toml +22 -20
  49. {simvue-2.5.2 → simvue-2.5.4}/simvue/api/objects/administrator/__init__.py +1 -3
  50. {simvue-2.5.2 → simvue-2.5.4}/simvue/api/objects/administrator/tenant.py +70 -11
  51. {simvue-2.5.2 → simvue-2.5.4}/simvue/api/objects/administrator/user.py +50 -14
  52. {simvue-2.5.2 → simvue-2.5.4}/simvue/api/objects/alert/__init__.py +1 -3
  53. {simvue-2.5.2 → simvue-2.5.4}/simvue/api/objects/alert/base.py +46 -11
  54. {simvue-2.5.2 → simvue-2.5.4}/simvue/api/objects/alert/events.py +40 -13
  55. {simvue-2.5.2 → simvue-2.5.4}/simvue/api/objects/alert/fetch.py +79 -31
  56. {simvue-2.5.2 → simvue-2.5.4}/simvue/api/objects/alert/metrics.py +65 -17
  57. {simvue-2.5.2 → simvue-2.5.4}/simvue/api/objects/alert/user.py +32 -10
  58. {simvue-2.5.2 → simvue-2.5.4}/simvue/api/objects/artifact/__init__.py +2 -0
  59. {simvue-2.5.2 → simvue-2.5.4}/simvue/api/objects/artifact/base.py +45 -27
  60. {simvue-2.5.2 → simvue-2.5.4}/simvue/api/objects/artifact/fetch.py +96 -29
  61. {simvue-2.5.2 → simvue-2.5.4}/simvue/api/objects/artifact/file.py +40 -7
  62. {simvue-2.5.2 → simvue-2.5.4}/simvue/api/objects/artifact/object.py +37 -8
  63. {simvue-2.5.2 → simvue-2.5.4}/simvue/api/objects/base.py +132 -68
  64. {simvue-2.5.2 → simvue-2.5.4}/simvue/api/objects/events.py +91 -12
  65. {simvue-2.5.2 → simvue-2.5.4}/simvue/api/objects/folder.py +33 -7
  66. {simvue-2.5.2 → simvue-2.5.4}/simvue/api/objects/grids.py +83 -24
  67. {simvue-2.5.2 → simvue-2.5.4}/simvue/api/objects/metrics.py +51 -16
  68. {simvue-2.5.2 → simvue-2.5.4}/simvue/api/objects/run.py +69 -12
  69. {simvue-2.5.2 → simvue-2.5.4}/simvue/api/objects/stats.py +22 -11
  70. {simvue-2.5.2 → simvue-2.5.4}/simvue/api/objects/storage/__init__.py +6 -6
  71. {simvue-2.5.2 → simvue-2.5.4}/simvue/api/objects/storage/base.py +22 -7
  72. {simvue-2.5.2 → simvue-2.5.4}/simvue/api/objects/storage/fetch.py +52 -17
  73. {simvue-2.5.2 → simvue-2.5.4}/simvue/api/objects/storage/file.py +25 -11
  74. {simvue-2.5.2 → simvue-2.5.4}/simvue/api/objects/storage/s3.py +40 -24
  75. {simvue-2.5.2 → simvue-2.5.4}/simvue/api/objects/tag.py +51 -13
  76. {simvue-2.5.2 → simvue-2.5.4}/simvue/client.py +74 -15
  77. {simvue-2.5.2 → simvue-2.5.4}/simvue/config/parameters.py +1 -0
  78. {simvue-2.5.2 → simvue-2.5.4}/simvue/config/simvue_config_schema.json +15 -0
  79. {simvue-2.5.2 → simvue-2.5.4}/simvue/config/user.py +12 -1
  80. {simvue-2.5.2 → simvue-2.5.4}/simvue/executor.py +12 -10
  81. {simvue-2.5.2 → simvue-2.5.4}/simvue/run.py +78 -47
  82. {simvue-2.5.2 → simvue-2.5.4}/simvue/sender/actions.py +4 -0
  83. simvue-2.5.4/simvue-black.png +0 -0
  84. simvue-2.5.4/tests/cli/test_sender_command.py +27 -0
  85. simvue-2.5.4/tests/conftest.py +334 -0
  86. simvue-2.5.4/tests/example_data/Cargo.lock +11 -0
  87. simvue-2.5.4/tests/example_data/Cargo.toml +29 -0
  88. simvue-2.5.4/tests/example_data/Project.toml +19 -0
  89. simvue-2.5.4/tests/example_data/SU2_inv_ONERAM6.cfg +233 -0
  90. simvue-2.5.4/tests/example_data/package-lock.json +88 -0
  91. simvue-2.5.4/tests/example_data/pyproject.toml +11 -0
  92. simvue-2.5.4/tests/example_data/python_conda/environment.yml +40 -0
  93. simvue-2.5.4/tests/example_data/python_poetry/poetry.lock +388 -0
  94. simvue-2.5.4/tests/example_data/python_poetry/pyproject.toml +17 -0
  95. simvue-2.5.4/tests/example_data/python_uv/pyproject.toml +11 -0
  96. simvue-2.5.4/tests/example_data/python_uv/uv.lock +180 -0
  97. simvue-2.5.4/tests/functional/test_client.py +550 -0
  98. simvue-2.5.4/tests/functional/test_config.py +189 -0
  99. simvue-2.5.4/tests/functional/test_dispatch.py +308 -0
  100. simvue-2.5.4/tests/functional/test_executor.py +238 -0
  101. simvue-2.5.4/tests/functional/test_run_artifact_upload.py +42 -0
  102. simvue-2.5.4/tests/functional/test_run_class.py +1741 -0
  103. simvue-2.5.4/tests/functional/test_run_execute_process.py +132 -0
  104. simvue-2.5.4/tests/functional/test_scenarios.py +172 -0
  105. simvue-2.5.4/tests/functional/test_utilities.py +85 -0
  106. simvue-2.5.4/tests/unit/test_conversion_to_dataframe.py +52 -0
  107. simvue-2.5.4/tests/unit/test_ecoclient.py +98 -0
  108. simvue-2.5.4/tests/unit/test_event_alert.py +174 -0
  109. simvue-2.5.4/tests/unit/test_events.py +70 -0
  110. simvue-2.5.4/tests/unit/test_fetch.py +75 -0
  111. simvue-2.5.4/tests/unit/test_file_artifact.py +222 -0
  112. simvue-2.5.4/tests/unit/test_file_storage.py +50 -0
  113. simvue-2.5.4/tests/unit/test_folder.py +181 -0
  114. simvue-2.5.4/tests/unit/test_grids.py +192 -0
  115. simvue-2.5.4/tests/unit/test_matplotlib_figure_mime_type.py +21 -0
  116. simvue-2.5.4/tests/unit/test_metadata.py +81 -0
  117. simvue-2.5.4/tests/unit/test_metric_range_alert.py +192 -0
  118. simvue-2.5.4/tests/unit/test_metric_threshold_alert.py +190 -0
  119. simvue-2.5.4/tests/unit/test_metrics.py +102 -0
  120. simvue-2.5.4/tests/unit/test_numpy_array_mime_type.py +13 -0
  121. simvue-2.5.4/tests/unit/test_numpy_array_serialization.py +15 -0
  122. simvue-2.5.4/tests/unit/test_object_artifact.py +79 -0
  123. simvue-2.5.4/tests/unit/test_pandas_dataframe_mimetype.py +21 -0
  124. simvue-2.5.4/tests/unit/test_pandas_dataframe_serialization.py +22 -0
  125. simvue-2.5.4/tests/unit/test_pickle_serialization.py +13 -0
  126. simvue-2.5.4/tests/unit/test_plotly_figure_mime_type.py +29 -0
  127. simvue-2.5.4/tests/unit/test_pytorch_tensor_mime_type.py +20 -0
  128. simvue-2.5.4/tests/unit/test_pytorch_tensor_serialization.py +21 -0
  129. simvue-2.5.4/tests/unit/test_run.py +229 -0
  130. simvue-2.5.4/tests/unit/test_run_init_folder.py +23 -0
  131. simvue-2.5.4/tests/unit/test_run_init_tags.py +22 -0
  132. simvue-2.5.4/tests/unit/test_s3_storage.py +95 -0
  133. simvue-2.5.4/tests/unit/test_sender.py +194 -0
  134. simvue-2.5.4/tests/unit/test_stats.py +20 -0
  135. simvue-2.5.4/tests/unit/test_suppress_errors.py +49 -0
  136. simvue-2.5.4/tests/unit/test_tag.py +137 -0
  137. simvue-2.5.4/tests/unit/test_tenant.py +75 -0
  138. simvue-2.5.4/tests/unit/test_user.py +109 -0
  139. simvue-2.5.4/tests/unit/test_user_alert.py +223 -0
  140. simvue-2.5.4/uv.lock +2115 -0
  141. {simvue-2.5.2 → simvue-2.5.4}/LICENSE +0 -0
  142. {simvue-2.5.2 → simvue-2.5.4}/README.md +0 -0
  143. {simvue-2.5.2 → simvue-2.5.4}/simvue/__init__.py +0 -0
  144. {simvue-2.5.2 → simvue-2.5.4}/simvue/api/__init__.py +0 -0
  145. {simvue-2.5.2 → simvue-2.5.4}/simvue/api/objects/__init__.py +0 -0
  146. {simvue-2.5.2 → simvue-2.5.4}/simvue/api/objects/filter.py +0 -0
  147. {simvue-2.5.2 → simvue-2.5.4}/simvue/api/request.py +0 -0
  148. {simvue-2.5.2 → simvue-2.5.4}/simvue/api/url.py +0 -0
  149. {simvue-2.5.2 → simvue-2.5.4}/simvue/bin/__init__.py +0 -0
  150. {simvue-2.5.2 → simvue-2.5.4}/simvue/bin/sender.py +0 -0
  151. {simvue-2.5.2 → simvue-2.5.4}/simvue/config/__init__.py +0 -0
  152. {simvue-2.5.2 → simvue-2.5.4}/simvue/config/files.py +0 -0
  153. {simvue-2.5.2 → simvue-2.5.4}/simvue/converters.py +0 -0
  154. {simvue-2.5.2 → simvue-2.5.4}/simvue/dispatch/__init__.py +0 -0
  155. {simvue-2.5.2 → simvue-2.5.4}/simvue/dispatch/base.py +0 -0
  156. {simvue-2.5.2 → simvue-2.5.4}/simvue/dispatch/direct.py +0 -0
  157. {simvue-2.5.2 → simvue-2.5.4}/simvue/dispatch/queued.py +0 -0
  158. {simvue-2.5.2 → simvue-2.5.4}/simvue/eco/__init__.py +0 -0
  159. {simvue-2.5.2 → simvue-2.5.4}/simvue/eco/api_client.py +0 -0
  160. {simvue-2.5.2 → simvue-2.5.4}/simvue/eco/config.py +0 -0
  161. {simvue-2.5.2 → simvue-2.5.4}/simvue/eco/emissions_monitor.py +0 -0
  162. {simvue-2.5.2 → simvue-2.5.4}/simvue/exception.py +0 -0
  163. {simvue-2.5.2 → simvue-2.5.4}/simvue/handler.py +0 -0
  164. {simvue-2.5.2 → simvue-2.5.4}/simvue/metadata.py +0 -0
  165. {simvue-2.5.2 → simvue-2.5.4}/simvue/metrics.py +0 -0
  166. {simvue-2.5.2 → simvue-2.5.4}/simvue/models.py +0 -0
  167. {simvue-2.5.2 → simvue-2.5.4}/simvue/pynvml.py +0 -0
  168. {simvue-2.5.2 → simvue-2.5.4}/simvue/sender/__init__.py +0 -0
  169. {simvue-2.5.2 → simvue-2.5.4}/simvue/sender/base.py +0 -0
  170. {simvue-2.5.2 → simvue-2.5.4}/simvue/serialization.py +0 -0
  171. {simvue-2.5.2 → simvue-2.5.4}/simvue/simvue_types.py +0 -0
  172. {simvue-2.5.2 → simvue-2.5.4}/simvue/system.py +0 -0
  173. {simvue-2.5.2 → simvue-2.5.4}/simvue/utilities.py +0 -0
  174. {simvue-2.5.2 → simvue-2.5.4}/simvue/version.py +0 -0
@@ -0,0 +1,34 @@
1
+ ---
2
+ name: Bug report
3
+ about: Create a report to help us improve
4
+ title: ''
5
+ labels: bug
6
+ assignees: ''
7
+
8
+ ---
9
+
10
+ ## Description of Bug
11
+ A clear and concise description of what the bug is.
12
+
13
+ ## Steps To Reproduce
14
+ Steps to reproduce the behavior:
15
+ 1. Go to '...'
16
+ 2. Click on '....'
17
+ 3. Scroll down to '....'
18
+ 4. See error
19
+
20
+ ## Expected behavior
21
+ A clear and concise description of what you expected to happen.
22
+
23
+ ## Actual Behaviour
24
+ A clear and concise description of what you actually see happen.
25
+
26
+ ## Screenshots
27
+ If applicable, add screenshots to help explain your problem.
28
+
29
+ ## Setup
30
+ - OS: [e.g. Windows 11]
31
+ - Python version [e.g. v3.13.3]
32
+
33
+ ## Additional context
34
+ Add any other context about the problem here.
@@ -0,0 +1,20 @@
1
+ ---
2
+ name: Feature request
3
+ about: Suggest a new feature or enhancement to add to the Python API
4
+ title: ''
5
+ labels: ''
6
+ assignees: ''
7
+
8
+ ---
9
+
10
+ ## Problem Statement
11
+ A clear and concise description of what the problem is. Ex. I'm always frustrated when [...]
12
+
13
+ ## Solution
14
+ A clear and concise description of what you want to happen.
15
+
16
+ ## Alternatives Considered
17
+ A clear and concise description of any alternative solutions or features you've considered.
18
+
19
+ ## Additional Context
20
+ Add any other context or screenshots about the feature request here.
@@ -0,0 +1,24 @@
1
+ # <Title of Bug Fix>
2
+
3
+ **Issue:** Link to the issue relating to this bug.
4
+
5
+ **Python Version(s) Tested:** Python versions this fix has been verified against.
6
+
7
+ **Operating System(s):** Operating systems this fix has been tested in.
8
+
9
+ ## 📝 Summary
10
+
11
+ Please provide a summary of the original bug, and the fix implemented to address it.
12
+
13
+ ## 🔍 Diagnosis
14
+
15
+ If applicable, please summarise any information relating to how the bug was identified, and the root causes.
16
+
17
+ ## 🔄 Changes
18
+
19
+ Provide any additional detail on the changes applied to address the issue.
20
+
21
+ ## ✔️ Checklist
22
+ - [ ] Unit and integration tests passing.
23
+ - [ ] Pre-commit hooks passing.
24
+ - [ ] Quality checks passing.
@@ -0,0 +1,23 @@
1
+ # <Feature Title>
2
+
3
+ **Issue:** Link to the issue proposing this feature.
4
+
5
+ **Python Version(s) Tested:** Python versions this feature has been tested on.
6
+
7
+ **Operating System(s):** Operating systems this feature has been tested on.
8
+
9
+ **Documentation PR:** Issue on [Docs repo](https://github.com/simvue-io/docs).
10
+
11
+ ## 📝 Summary
12
+
13
+ Please provide a summary of the feature including why it is beneficial to other users.
14
+
15
+ ## 🔄 Changes
16
+
17
+ Outline the changes/additions made to implement this feature.
18
+
19
+ ## ✔️ Checklist
20
+ - [ ] Unit and integration tests passing.
21
+ - [ ] Pre-commit hooks passing.
22
+ - [ ] Quality checks passing.
23
+ - [ ] Updated the [documentation](https://github.com/simvue-io/docs).
@@ -0,0 +1,18 @@
1
+ version: 2
2
+ updates:
3
+ - package-ecosystem: "pip" # See documentation for possible values
4
+ directory: "/" # Location of package manifests
5
+ schedule:
6
+ interval: "daily"
7
+ time: "00:00"
8
+ reviewers:
9
+ - "kzscisoft"
10
+ commit-message:
11
+ prefix: "pip"
12
+ include: "scope"
13
+ open-pull-requests-limit: 5
14
+ target-branch: "dev"
15
+ ignore:
16
+ - dependency-type: all
17
+ match:
18
+ - "tests/**"
@@ -0,0 +1,5 @@
1
+ Please select from the following templates by clicking 'Preview' and then the relevant link:
2
+
3
+ 🆕 [**Feature**](?expand=1&template=feature.md)
4
+
5
+ 🐛 [**Bug Fix**](?expand=1&template=bug_fix.md)
@@ -0,0 +1,27 @@
1
+ name: Citation File Validation
2
+
3
+ on:
4
+ push:
5
+ branches: [ "main", "dev", "hotfix/update-ci" ]
6
+ pull_request:
7
+ branches: [ "main", "dev", "hotfix/update-ci" ]
8
+
9
+ permissions:
10
+ contents: read
11
+
12
+ concurrency:
13
+ group: ${{ github.workflow }}-${{ github.ref }}
14
+ cancel-in-progress: true
15
+
16
+ jobs:
17
+ build:
18
+ runs-on: ubuntu-latest
19
+ timeout-minutes: 30
20
+ steps:
21
+ - uses: actions/checkout@v5
22
+ - name: Set up Python
23
+ uses: actions/setup-python@v6
24
+ - name: Install Checker
25
+ run: python3 -m pip install cffconvert
26
+ - name: Check Citation File
27
+ run: cffconvert --validate
@@ -0,0 +1,84 @@
1
+ # For most projects, this workflow file will not need changing; you simply need
2
+ # to commit it to your repository.
3
+ #
4
+ # You may wish to alter this file to override the set of languages analyzed,
5
+ # or to provide custom queries or build logic.
6
+ #
7
+ # ******** NOTE ********
8
+ # We have attempted to detect the languages in your repository. Please check
9
+ # the `language` matrix defined below to confirm you have the correct set of
10
+ # supported CodeQL languages.
11
+ #
12
+ name: "CodeQL"
13
+
14
+ on:
15
+ push:
16
+ branches: [ "dev", "main" ]
17
+ pull_request:
18
+ branches: [ "dev", "main" ]
19
+ schedule:
20
+ - cron: '35 15 * * 5'
21
+
22
+ jobs:
23
+ analyze:
24
+ name: Analyze
25
+ # Runner size impacts CodeQL analysis time. To learn more, please see:
26
+ # - https://gh.io/recommended-hardware-resources-for-running-codeql
27
+ # - https://gh.io/supported-runners-and-hardware-resources
28
+ # - https://gh.io/using-larger-runners
29
+ # Consider using larger runners for possible analysis time improvements.
30
+ runs-on: ${{ (matrix.language == 'swift' && 'macos-latest') || 'ubuntu-latest' }}
31
+ timeout-minutes: ${{ (matrix.language == 'swift' && 120) || 360 }}
32
+ permissions:
33
+ # required for all workflows
34
+ security-events: write
35
+
36
+ # only required for workflows in private repositories
37
+ actions: read
38
+ contents: read
39
+
40
+ strategy:
41
+ fail-fast: false
42
+ matrix:
43
+ language: [ 'python' ]
44
+ # CodeQL supports [ 'c-cpp', 'csharp', 'go', 'java-kotlin', 'javascript-typescript', 'python', 'ruby', 'swift' ]
45
+ # Use only 'java-kotlin' to analyze code written in Java, Kotlin or both
46
+ # Use only 'javascript-typescript' to analyze code written in JavaScript, TypeScript or both
47
+ # Learn more about CodeQL language support at https://aka.ms/codeql-docs/language-support
48
+
49
+ steps:
50
+ - name: Checkout repository
51
+ uses: actions/checkout@v4
52
+
53
+ # Initializes the CodeQL tools for scanning.
54
+ - name: Initialize CodeQL
55
+ uses: github/codeql-action/init@v3
56
+ with:
57
+ languages: ${{ matrix.language }}
58
+ # If you wish to specify custom queries, you can do so here or in a config file.
59
+ # By default, queries listed here will override any specified in a config file.
60
+ # Prefix the list here with "+" to use these queries and those in the config file.
61
+
62
+ # For more details on CodeQL's query packs, refer to: https://docs.github.com/en/code-security/code-scanning/automatically-scanning-your-code-for-vulnerabilities-and-errors/configuring-code-scanning#using-queries-in-ql-packs
63
+ # queries: security-extended,security-and-quality
64
+
65
+
66
+ # Autobuild attempts to build any compiled languages (C/C++, C#, Go, Java, or Swift).
67
+ # If this step fails, then you should remove it and run the build manually (see below)
68
+ - name: Autobuild
69
+ uses: github/codeql-action/autobuild@v3
70
+
71
+ # ℹ️ Command-line programs to run using the OS shell.
72
+ # 📚 See https://docs.github.com/en/actions/using-workflows/workflow-syntax-for-github-actions#jobsjob_idstepsrun
73
+
74
+ # If the Autobuild fails above, remove it and uncomment the following three lines.
75
+ # modify them (or add more) to build your code if your project, please refer to the EXAMPLE below for guidance.
76
+
77
+ # - run: |
78
+ # echo "Run, Build Application using script"
79
+ # ./location_of_script_within_repo/buildscript.sh
80
+
81
+ - name: Perform CodeQL Analysis
82
+ uses: github/codeql-action/analyze@v3
83
+ with:
84
+ category: "/language:${{matrix.language}}"
@@ -0,0 +1,115 @@
1
+ name: Deploy to PyPi
2
+ on:
3
+ push:
4
+ tags:
5
+ - "v*"
6
+ jobs:
7
+ build:
8
+ name: Build Wheels and Package 🛠️
9
+ runs-on: ubuntu-latest
10
+ steps:
11
+ - name: Checkout Code
12
+ uses: actions/checkout@v5
13
+ - name: Set up Python 3.x
14
+ uses: actions/setup-python@v6
15
+ with:
16
+ python-version: "3.x"
17
+ - name: Install Poetry
18
+ run: python -m pip install poetry
19
+ - name: Build Module
20
+ run: poetry build
21
+ - name: Store the distribution packages
22
+ uses: actions/upload-artifact@v4
23
+ with:
24
+ retention-days: 1
25
+ if-no-files-found: error
26
+ name: python-package-distributions
27
+ path: dist/
28
+ publish_test:
29
+ name: Publish to TestPyPi 🧪
30
+ needs:
31
+ - build
32
+ runs-on: ubuntu-latest
33
+ environment:
34
+ name: test_pypi
35
+ url: https://test.pypi.org/p/simvue
36
+ permissions:
37
+ id-token: write
38
+ steps:
39
+ - name: Download all the dists
40
+ uses: actions/download-artifact@v4
41
+ with:
42
+ name: python-package-distributions
43
+ path: dist/
44
+ - name: Publish to TestPyPi
45
+ uses: pypa/gh-action-pypi-publish@release/v1
46
+ with:
47
+ repository-url: https://test.pypi.org/legacy/
48
+ publish:
49
+ name: Publish to PyPi 🐍📦
50
+ needs:
51
+ - publish_test
52
+ if: "!contains(github.ref, 'rc') && !contains(github.ref, 'beta') && !contains(github.ref, 'alpha')"
53
+ runs-on: ubuntu-latest
54
+ environment:
55
+ name: pypi
56
+ url: https://pypi.org/p/simvue
57
+ permissions:
58
+ id-token: write
59
+ steps:
60
+ - name: Download all the dists
61
+ uses: actions/download-artifact@v4
62
+ with:
63
+ name: python-package-distributions
64
+ path: dist/
65
+ - name: Publish to PyPi
66
+ uses: pypa/gh-action-pypi-publish@release/v1
67
+ github-release:
68
+ name: Create Signed GitHub Release 🔏
69
+ needs:
70
+ - publish
71
+ runs-on: ubuntu-latest
72
+ permissions:
73
+ contents: write
74
+ id-token: write
75
+ steps:
76
+ - name: Download all the dists
77
+ uses: actions/download-artifact@v4
78
+ with:
79
+ name: python-package-distributions
80
+ path: dist/
81
+ - name: Sign the dists with Sigstore
82
+ uses: sigstore/gh-action-sigstore-python@v3.0.0
83
+ with:
84
+ inputs: >-
85
+ ./dist/*.tar.gz
86
+ ./dist/*.whl
87
+ - name: Create GitHub Release
88
+ env:
89
+ GITHUB_TOKEN: ${{ github.token }}
90
+ run: >-
91
+ LATESTCHANGES=$(awk '
92
+ BEGIN { header_found = 0 }
93
+ /^## / {
94
+ if (header_found == 0) {
95
+ header = $0
96
+ header_found = 1
97
+ next
98
+ } else {
99
+ exit
100
+ }
101
+ }
102
+ header_found == 1 && /^\- / { print }
103
+ ' CHANGELOG.md)
104
+ gh release create
105
+ '${{ github.ref_name }}'
106
+ --notes "$LATESTCHANGES"
107
+ --title 'Simvue ${{ github.ref_name }}'
108
+ --repo '${{ github.repository }}'
109
+ - name: Upload artifact signatures to GitHub Release
110
+ env:
111
+ GITHUB_TOKEN: ${{ github.token }}
112
+ run: >-
113
+ gh release upload
114
+ '${{ github.ref_name }}' dist/**
115
+ --repo '${{ github.repository }}'
@@ -0,0 +1,168 @@
1
+ name: Simvue Examples
2
+
3
+ on:
4
+ push:
5
+ branches: ["main", "dev", "hotfix/update-ci"]
6
+ pull_request:
7
+ branches: [ "main", "dev", "hotfix/update-ci" ]
8
+ workflow_dispatch:
9
+
10
+ permissions:
11
+ contents: read
12
+
13
+ concurrency:
14
+ group: ${{ github.workflow }}-${{ github.ref }}
15
+ cancel-in-progress: true
16
+
17
+ jobs:
18
+ GeometryOptimisation:
19
+ runs-on: ubuntu-latest
20
+ if: false # deactivate for now
21
+ steps:
22
+ - uses: actions/checkout@v4
23
+ - name: Download BlueMira
24
+ uses: actions/checkout@v4
25
+ with:
26
+ repository: Fusion-Power-Plant-Framework/bluemira
27
+ ref: v1.10.0
28
+ path: blue_mira
29
+ - uses: conda-incubator/setup-miniconda@v3
30
+ with:
31
+ activate-environment: bluemira
32
+ environment-file: blue_mira/conda/environment.yml
33
+ miniforge-version: "latest"
34
+ use-only-tar-bz2: false
35
+ miniforge-variant: Mambaforge
36
+ use-mamba: true
37
+ python-version: "3.11"
38
+ - name: Install bluemira
39
+ shell: bash -l {0}
40
+ run: pip install -e blue_mira
41
+ - name: Install Simvue
42
+ shell: bash -l {0}
43
+ run: pip install -e .
44
+ - name: Run Example
45
+ shell: bash -l {0}
46
+ run: python ./examples/GeometryOptimisation/bluemira_simvue_geometry_optimisation.py
47
+ Logging:
48
+ runs-on: ubuntu-latest
49
+ if: false # deactivate for now
50
+ steps:
51
+ - uses: actions/checkout@v4
52
+ - name: Setup Python
53
+ uses: actions/setup-python@v6
54
+ with:
55
+ python-version: "3.11"
56
+ - name: Install Simvue
57
+ run: python3 -m pip install .
58
+ - name: Run Example
59
+ run: |
60
+ export SIMVUE_URL=${{ secrets.SIMVUE_URL }}
61
+ export SIMVUE_TOKEN=${{ secrets.SIMVUE_TOKEN }}
62
+ python3 examples/Logging/logging-to-simvue.py --ci
63
+ Optuna:
64
+ runs-on: ubuntu-latest
65
+ if: false # deactivate for now
66
+ steps:
67
+ - uses: actions/checkout@v4
68
+ - name: Setup Python
69
+ uses: actions/setup-python@v6
70
+ with:
71
+ python-version: "3.11"
72
+ - name: Install Simvue
73
+ run: python3 -m pip install .
74
+ - name: Install Dependencies
75
+ run: |
76
+ python3 -m pip install torch torchvision --index-url https://download.pytorch.org/whl/cpu
77
+ python3 -m pip install -r examples/Optuna/PyTorch/requirements.txt
78
+ - name: Run Example
79
+ run: |
80
+ export SIMVUE_URL=${{ secrets.SIMVUE_URL }}
81
+ export SIMVUE_TOKEN=${{ secrets.SIMVUE_TOKEN }}
82
+ python3.11 ./examples/Optuna/PyTorch/simvue_optuna_pytorch.py --ci
83
+ PyTorch:
84
+ runs-on: ubuntu-latest
85
+ if: false # deactivate for now
86
+ steps:
87
+ - uses: actions/checkout@v4
88
+ - name: Setup Python
89
+ uses: actions/setup-python@v6
90
+ with:
91
+ python-version: "3.11"
92
+ - name: Install Simvue
93
+ run: python3 -m pip install .
94
+ - name: Install Dependencies
95
+ run: |
96
+ python3 -m pip install torch torchvision --index-url https://download.pytorch.org/whl/cpu
97
+ python3 -m pip install -r examples/PyTorch/requirements.txt
98
+ - name: Run Example
99
+ run: |
100
+ export SIMVUE_URL=${{ secrets.SIMVUE_URL }}
101
+ export SIMVUE_TOKEN=${{ secrets.SIMVUE_TOKEN }}
102
+ python3.11 ./examples/PyTorch/main.py --ci
103
+ SU2:
104
+ runs-on: ubuntu-latest
105
+ if: false # deactivate for now
106
+ steps:
107
+ - uses: actions/checkout@v4
108
+ - name: Setup Python
109
+ uses: actions/setup-python@v6
110
+ with:
111
+ python-version: "3.11"
112
+ - name: Download SU2
113
+ run: |
114
+ wget https://github.com/su2code/SU2/releases/download/v8.0.1/SU2-v8.0.1-linux64.zip
115
+ unzip SU2-v8.0.1-linux64.zip
116
+ - name: Install dependencies
117
+ run: |
118
+ python -m pip install ukaea-multiparser
119
+ python -m pip install .
120
+ - name: Run Example
121
+ run: |
122
+ export SIMVUE_URL=${{ secrets.SIMVUE_URL }}
123
+ export SIMVUE_TOKEN=${{ secrets.SIMVUE_TOKEN }}
124
+ python examples/SU2/SU2.py bin --config tests/example_data/SU2_inv_ONERAM6.cfg --ci
125
+ TensorFlow:
126
+ if: false # deactivate for now
127
+ runs-on: ubuntu-latest
128
+ steps:
129
+ - uses: actions/checkout@v4
130
+ - name: Setup Python
131
+ uses: actions/setup-python@v6
132
+ with:
133
+ python-version: "3.11"
134
+ - name: Install Simvue
135
+ run: python3 -m pip install .
136
+ - name: Install Dependencies
137
+ run: python3 -m pip install -r examples/Tensorflow/requirements.txt
138
+ - name: Run Example
139
+ run: |
140
+ export SIMVUE_URL=${{ secrets.SIMVUE_URL }}
141
+ export SIMVUE_TOKEN=${{ secrets.SIMVUE_TOKEN }}
142
+ python3.11 ./examples/Tensorflow/dynamic_rnn.py --ci
143
+ GEANT4:
144
+ if: false # deactivate for now
145
+ runs-on: ubuntu-latest
146
+ container:
147
+ image: artemisbeta/geant4:11.2.1
148
+ steps:
149
+ - uses: actions/checkout@v4
150
+ with:
151
+ submodules: recursive
152
+ - name: Setup Python
153
+ uses: actions/setup-python@v6
154
+ with:
155
+ python-version: "3.11"
156
+ - name: Install Simvue
157
+ run: python3 -m pip install .
158
+ - name: Install Dependencies
159
+ run: python3 -m pip install -r examples/Geant4/requirements.txt
160
+ - name: Build Example
161
+ run: |
162
+ cmake -DCMAKE_PREFIX_PATH=/usr/local/share/geant4/install/4.11.2/ -Bbuild examples/Geant4/FixedTarget/
163
+ cmake --build build
164
+ - name: Run Example
165
+ run: |
166
+ export SIMVUE_URL=${{ secrets.SIMVUE_URL }}
167
+ export SIMVUE_TOKEN=${{ secrets.SIMVUE_TOKEN }}
168
+ python examples/Geant4/geant4_simvue.py build/MaterialTesting --ci --events 10
@@ -0,0 +1,28 @@
1
+ name: Prek Hooks
2
+
3
+ on:
4
+ push:
5
+ branches: ["main", "dev", "hotfix/update-ci", "*prek*"]
6
+ pull_request:
7
+ branches: ["main", "dev", "hotfix/update-ci", "*prek*"]
8
+ workflow_dispatch:
9
+
10
+ permissions:
11
+ contents: read
12
+
13
+ concurrency:
14
+ group: ${{ github.workflow }}-${{ github.ref }}
15
+ cancel-in-progress: true
16
+
17
+ jobs:
18
+ prek:
19
+ name: Run Prek Hooks
20
+ runs-on: ubuntu-latest
21
+ timeout-minutes: 30
22
+ steps:
23
+ - name: Checkout Code
24
+ uses: actions/checkout@v6
25
+ - name: Run Prek
26
+ uses: j178/prek-action@v2
27
+ with:
28
+ extra-args: '--all-files --skip no-commit-to-branch'