simvue 2.6.0__tar.gz → 2.6.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.
- simvue-2.6.2/.github/workflows/common.yml +135 -0
- {simvue-2.6.0 → simvue-2.6.2}/.github/workflows/deploy.yaml +2 -0
- simvue-2.6.2/.github/workflows/test_client_macos_nightlies.yml +26 -0
- simvue-2.6.2/.github/workflows/test_client_ubuntu.yml +24 -0
- simvue-2.6.2/.github/workflows/test_client_ubuntu_nightlies.yml +25 -0
- simvue-2.6.2/.github/workflows/test_client_windows_nightlies.yml +30 -0
- simvue-2.6.2/.github/workflows/test_group.yml +58 -0
- simvue-2.6.2/.github/workflows/test_multiple_python.yml +29 -0
- {simvue-2.6.0 → simvue-2.6.2}/CHANGELOG.md +8 -0
- {simvue-2.6.0 → simvue-2.6.2}/CITATION.cff +3 -3
- {simvue-2.6.0 → simvue-2.6.2}/PKG-INFO +2 -2
- {simvue-2.6.0 → simvue-2.6.2}/prek.toml +5 -5
- {simvue-2.6.0 → simvue-2.6.2}/pyproject.toml +2 -2
- {simvue-2.6.0 → simvue-2.6.2}/simvue/config/simvue_config_schema.json +91 -27
- {simvue-2.6.0 → simvue-2.6.2}/simvue/models.py +4 -4
- {simvue-2.6.0 → simvue-2.6.2}/simvue/run.py +10 -7
- {simvue-2.6.0 → simvue-2.6.2}/tests/example_data/python_poetry/poetry.lock +5 -5
- {simvue-2.6.0 → simvue-2.6.2}/tests/example_data/python_uv/uv.lock +3 -3
- {simvue-2.6.0 → simvue-2.6.2}/tests/functional/test_run_class.py +90 -1
- simvue-2.6.2/uv.lock +3019 -0
- simvue-2.6.0/.github/workflows/test_client_macos_nightlies.yml +0 -259
- simvue-2.6.0/.github/workflows/test_client_ubuntu.yml +0 -254
- simvue-2.6.0/.github/workflows/test_client_ubuntu_nightlies.yml +0 -262
- simvue-2.6.0/.github/workflows/test_client_windows_nightlies.yml +0 -268
- simvue-2.6.0/.github/workflows/test_multiple_python.yml +0 -307
- simvue-2.6.0/uv.lock +0 -2508
- {simvue-2.6.0 → simvue-2.6.2}/.github/ISSUE_TEMPLATE/bug_report.md +0 -0
- {simvue-2.6.0 → simvue-2.6.2}/.github/ISSUE_TEMPLATE/feature_request.md +0 -0
- {simvue-2.6.0 → simvue-2.6.2}/.github/PULL_REQUEST_TEMPLATE/bug_fix.md +0 -0
- {simvue-2.6.0 → simvue-2.6.2}/.github/PULL_REQUEST_TEMPLATE/feature.md +0 -0
- {simvue-2.6.0 → simvue-2.6.2}/.github/dependabot.yml +0 -0
- {simvue-2.6.0 → simvue-2.6.2}/.github/pull_request_template.md +0 -0
- {simvue-2.6.0 → simvue-2.6.2}/.github/workflows/citation.yml +0 -0
- {simvue-2.6.0 → simvue-2.6.2}/.github/workflows/codeql.yml +0 -0
- {simvue-2.6.0 → simvue-2.6.2}/.github/workflows/examples.yml +0 -0
- {simvue-2.6.0 → simvue-2.6.2}/.github/workflows/prek.yml +0 -0
- {simvue-2.6.0 → simvue-2.6.2}/.gitignore +0 -0
- {simvue-2.6.0 → simvue-2.6.2}/.gitmodules +0 -0
- {simvue-2.6.0 → simvue-2.6.2}/CODE_OF_CONDUCT.md +0 -0
- {simvue-2.6.0 → simvue-2.6.2}/CONTRIBUTING.md +0 -0
- {simvue-2.6.0 → simvue-2.6.2}/LICENSE +0 -0
- {simvue-2.6.0 → simvue-2.6.2}/README.md +0 -0
- {simvue-2.6.0 → simvue-2.6.2}/examples/Bluemira/README.md +0 -0
- {simvue-2.6.0 → simvue-2.6.2}/examples/Bluemira/geometry_optimisation.py +0 -0
- {simvue-2.6.0 → simvue-2.6.2}/examples/Geant4/README.md +0 -0
- {simvue-2.6.0 → simvue-2.6.2}/examples/Geant4/geant4_simvue.py +0 -0
- {simvue-2.6.0 → simvue-2.6.2}/examples/Geant4/requirements.txt +0 -0
- {simvue-2.6.0 → simvue-2.6.2}/examples/Logging/README.md +0 -0
- {simvue-2.6.0 → simvue-2.6.2}/examples/Logging/logging-to-simvue.py +0 -0
- {simvue-2.6.0 → simvue-2.6.2}/examples/Optuna/README.md +0 -0
- {simvue-2.6.0 → simvue-2.6.2}/examples/Optuna/requirements.txt +0 -0
- {simvue-2.6.0 → simvue-2.6.2}/examples/Optuna/simvue_optuna_pytorch.py +0 -0
- {simvue-2.6.0 → simvue-2.6.2}/examples/PyTorch/README.md +0 -0
- {simvue-2.6.0 → simvue-2.6.2}/examples/PyTorch/main.py +0 -0
- {simvue-2.6.0 → simvue-2.6.2}/examples/PyTorch/requirements.txt +0 -0
- {simvue-2.6.0 → simvue-2.6.2}/examples/README.md +0 -0
- {simvue-2.6.0 → simvue-2.6.2}/examples/SU2/README.md +0 -0
- {simvue-2.6.0 → simvue-2.6.2}/examples/SU2/SU2.py +0 -0
- {simvue-2.6.0 → simvue-2.6.2}/examples/SU2/SU2.sh +0 -0
- {simvue-2.6.0 → simvue-2.6.2}/notebooks/README.md +0 -0
- {simvue-2.6.0 → simvue-2.6.2}/notebooks/basic_example.ipynb +0 -0
- {simvue-2.6.0 → simvue-2.6.2}/notebooks/detailed_example.ipynb +0 -0
- {simvue-2.6.0 → simvue-2.6.2}/notebooks/non_python_example.ipynb +0 -0
- {simvue-2.6.0 → simvue-2.6.2}/notebooks/temperatures.sh +0 -0
- {simvue-2.6.0 → simvue-2.6.2}/poetry.lock +0 -0
- {simvue-2.6.0 → simvue-2.6.2}/simvue/__init__.py +0 -0
- {simvue-2.6.0 → simvue-2.6.2}/simvue/api/__init__.py +0 -0
- {simvue-2.6.0 → simvue-2.6.2}/simvue/api/objects/__init__.py +0 -0
- {simvue-2.6.0 → simvue-2.6.2}/simvue/api/objects/administrator/__init__.py +0 -0
- {simvue-2.6.0 → simvue-2.6.2}/simvue/api/objects/administrator/tenant.py +0 -0
- {simvue-2.6.0 → simvue-2.6.2}/simvue/api/objects/administrator/user.py +0 -0
- {simvue-2.6.0 → simvue-2.6.2}/simvue/api/objects/alert/__init__.py +0 -0
- {simvue-2.6.0 → simvue-2.6.2}/simvue/api/objects/alert/base.py +0 -0
- {simvue-2.6.0 → simvue-2.6.2}/simvue/api/objects/alert/events.py +0 -0
- {simvue-2.6.0 → simvue-2.6.2}/simvue/api/objects/alert/fetch.py +0 -0
- {simvue-2.6.0 → simvue-2.6.2}/simvue/api/objects/alert/metrics.py +0 -0
- {simvue-2.6.0 → simvue-2.6.2}/simvue/api/objects/alert/user.py +0 -0
- {simvue-2.6.0 → simvue-2.6.2}/simvue/api/objects/artifact/__init__.py +0 -0
- {simvue-2.6.0 → simvue-2.6.2}/simvue/api/objects/artifact/base.py +0 -0
- {simvue-2.6.0 → simvue-2.6.2}/simvue/api/objects/artifact/fetch.py +0 -0
- {simvue-2.6.0 → simvue-2.6.2}/simvue/api/objects/artifact/file.py +0 -0
- {simvue-2.6.0 → simvue-2.6.2}/simvue/api/objects/artifact/object.py +0 -0
- {simvue-2.6.0 → simvue-2.6.2}/simvue/api/objects/base.py +0 -0
- {simvue-2.6.0 → simvue-2.6.2}/simvue/api/objects/events.py +0 -0
- {simvue-2.6.0 → simvue-2.6.2}/simvue/api/objects/filter/__init__.py +0 -0
- {simvue-2.6.0 → simvue-2.6.2}/simvue/api/objects/filter/base.py +0 -0
- {simvue-2.6.0 → simvue-2.6.2}/simvue/api/objects/filter/folder.py +0 -0
- {simvue-2.6.0 → simvue-2.6.2}/simvue/api/objects/filter/run.py +0 -0
- {simvue-2.6.0 → simvue-2.6.2}/simvue/api/objects/folder.py +0 -0
- {simvue-2.6.0 → simvue-2.6.2}/simvue/api/objects/grids.py +0 -0
- {simvue-2.6.0 → simvue-2.6.2}/simvue/api/objects/metrics.py +0 -0
- {simvue-2.6.0 → simvue-2.6.2}/simvue/api/objects/run.py +0 -0
- {simvue-2.6.0 → simvue-2.6.2}/simvue/api/objects/stats.py +0 -0
- {simvue-2.6.0 → simvue-2.6.2}/simvue/api/objects/storage/__init__.py +0 -0
- {simvue-2.6.0 → simvue-2.6.2}/simvue/api/objects/storage/base.py +0 -0
- {simvue-2.6.0 → simvue-2.6.2}/simvue/api/objects/storage/fetch.py +0 -0
- {simvue-2.6.0 → simvue-2.6.2}/simvue/api/objects/storage/file.py +0 -0
- {simvue-2.6.0 → simvue-2.6.2}/simvue/api/objects/storage/s3.py +0 -0
- {simvue-2.6.0 → simvue-2.6.2}/simvue/api/objects/tag.py +0 -0
- {simvue-2.6.0 → simvue-2.6.2}/simvue/api/request.py +0 -0
- {simvue-2.6.0 → simvue-2.6.2}/simvue/api/url.py +0 -0
- {simvue-2.6.0 → simvue-2.6.2}/simvue/bin/__init__.py +0 -0
- {simvue-2.6.0 → simvue-2.6.2}/simvue/bin/sender.py +0 -0
- {simvue-2.6.0 → simvue-2.6.2}/simvue/client.py +0 -0
- {simvue-2.6.0 → simvue-2.6.2}/simvue/config/__init__.py +0 -0
- {simvue-2.6.0 → simvue-2.6.2}/simvue/config/files.py +0 -0
- {simvue-2.6.0 → simvue-2.6.2}/simvue/config/parameters.py +0 -0
- {simvue-2.6.0 → simvue-2.6.2}/simvue/config/user.py +0 -0
- {simvue-2.6.0 → simvue-2.6.2}/simvue/converters.py +0 -0
- {simvue-2.6.0 → simvue-2.6.2}/simvue/dispatch/__init__.py +0 -0
- {simvue-2.6.0 → simvue-2.6.2}/simvue/dispatch/base.py +0 -0
- {simvue-2.6.0 → simvue-2.6.2}/simvue/dispatch/direct.py +0 -0
- {simvue-2.6.0 → simvue-2.6.2}/simvue/dispatch/dispatcher.py +0 -0
- {simvue-2.6.0 → simvue-2.6.2}/simvue/dispatch/queued.py +0 -0
- {simvue-2.6.0 → simvue-2.6.2}/simvue/eco/__init__.py +0 -0
- {simvue-2.6.0 → simvue-2.6.2}/simvue/eco/api_client.py +0 -0
- {simvue-2.6.0 → simvue-2.6.2}/simvue/eco/config.py +0 -0
- {simvue-2.6.0 → simvue-2.6.2}/simvue/eco/emissions_monitor.py +0 -0
- {simvue-2.6.0 → simvue-2.6.2}/simvue/exception.py +0 -0
- {simvue-2.6.0 → simvue-2.6.2}/simvue/executor.py +0 -0
- {simvue-2.6.0 → simvue-2.6.2}/simvue/handler.py +0 -0
- {simvue-2.6.0 → simvue-2.6.2}/simvue/metadata.py +0 -0
- {simvue-2.6.0 → simvue-2.6.2}/simvue/metrics.py +0 -0
- {simvue-2.6.0 → simvue-2.6.2}/simvue/pynvml.py +0 -0
- {simvue-2.6.0 → simvue-2.6.2}/simvue/sender/__init__.py +0 -0
- {simvue-2.6.0 → simvue-2.6.2}/simvue/sender/actions.py +0 -0
- {simvue-2.6.0 → simvue-2.6.2}/simvue/sender/base.py +0 -0
- {simvue-2.6.0 → simvue-2.6.2}/simvue/serialization.py +0 -0
- {simvue-2.6.0 → simvue-2.6.2}/simvue/simvue_types.py +0 -0
- {simvue-2.6.0 → simvue-2.6.2}/simvue/system.py +0 -0
- {simvue-2.6.0 → simvue-2.6.2}/simvue/utilities.py +0 -0
- {simvue-2.6.0 → simvue-2.6.2}/simvue/version.py +0 -0
- {simvue-2.6.0 → simvue-2.6.2}/simvue-black.png +0 -0
- {simvue-2.6.0 → simvue-2.6.2}/tests/cli/test_sender_command.py +0 -0
- {simvue-2.6.0 → simvue-2.6.2}/tests/conftest.py +0 -0
- {simvue-2.6.0 → simvue-2.6.2}/tests/example_data/Cargo.lock +0 -0
- {simvue-2.6.0 → simvue-2.6.2}/tests/example_data/Cargo.toml +0 -0
- {simvue-2.6.0 → simvue-2.6.2}/tests/example_data/Project.toml +0 -0
- {simvue-2.6.0 → simvue-2.6.2}/tests/example_data/SU2_inv_ONERAM6.cfg +0 -0
- {simvue-2.6.0 → simvue-2.6.2}/tests/example_data/package-lock.json +0 -0
- {simvue-2.6.0 → simvue-2.6.2}/tests/example_data/pyproject.toml +0 -0
- {simvue-2.6.0 → simvue-2.6.2}/tests/example_data/python_conda/environment.yml +0 -0
- {simvue-2.6.0 → simvue-2.6.2}/tests/example_data/python_poetry/pyproject.toml +0 -0
- {simvue-2.6.0 → simvue-2.6.2}/tests/example_data/python_uv/pyproject.toml +0 -0
- {simvue-2.6.0 → simvue-2.6.2}/tests/functional/test_client.py +0 -0
- {simvue-2.6.0 → simvue-2.6.2}/tests/functional/test_config.py +0 -0
- {simvue-2.6.0 → simvue-2.6.2}/tests/functional/test_dispatch.py +0 -0
- {simvue-2.6.0 → simvue-2.6.2}/tests/functional/test_executor.py +0 -0
- {simvue-2.6.0 → simvue-2.6.2}/tests/functional/test_run_artifact_upload.py +0 -0
- {simvue-2.6.0 → simvue-2.6.2}/tests/functional/test_run_execute_process.py +0 -0
- {simvue-2.6.0 → simvue-2.6.2}/tests/functional/test_scenarios.py +0 -0
- {simvue-2.6.0 → simvue-2.6.2}/tests/functional/test_utilities.py +0 -0
- {simvue-2.6.0 → simvue-2.6.2}/tests/unit/test_conversion_to_dataframe.py +0 -0
- {simvue-2.6.0 → simvue-2.6.2}/tests/unit/test_ecoclient.py +0 -0
- {simvue-2.6.0 → simvue-2.6.2}/tests/unit/test_event_alert.py +0 -0
- {simvue-2.6.0 → simvue-2.6.2}/tests/unit/test_events.py +0 -0
- {simvue-2.6.0 → simvue-2.6.2}/tests/unit/test_fetch.py +0 -0
- {simvue-2.6.0 → simvue-2.6.2}/tests/unit/test_file_artifact.py +0 -0
- {simvue-2.6.0 → simvue-2.6.2}/tests/unit/test_file_storage.py +0 -0
- {simvue-2.6.0 → simvue-2.6.2}/tests/unit/test_filters.py +0 -0
- {simvue-2.6.0 → simvue-2.6.2}/tests/unit/test_folder.py +0 -0
- {simvue-2.6.0 → simvue-2.6.2}/tests/unit/test_grids.py +0 -0
- {simvue-2.6.0 → simvue-2.6.2}/tests/unit/test_matplotlib_figure_mime_type.py +0 -0
- {simvue-2.6.0 → simvue-2.6.2}/tests/unit/test_metadata.py +0 -0
- {simvue-2.6.0 → simvue-2.6.2}/tests/unit/test_metric_range_alert.py +0 -0
- {simvue-2.6.0 → simvue-2.6.2}/tests/unit/test_metric_threshold_alert.py +0 -0
- {simvue-2.6.0 → simvue-2.6.2}/tests/unit/test_metrics.py +0 -0
- {simvue-2.6.0 → simvue-2.6.2}/tests/unit/test_numpy_array_mime_type.py +0 -0
- {simvue-2.6.0 → simvue-2.6.2}/tests/unit/test_numpy_array_serialization.py +0 -0
- {simvue-2.6.0 → simvue-2.6.2}/tests/unit/test_object_artifact.py +0 -0
- {simvue-2.6.0 → simvue-2.6.2}/tests/unit/test_pandas_dataframe_mimetype.py +0 -0
- {simvue-2.6.0 → simvue-2.6.2}/tests/unit/test_pandas_dataframe_serialization.py +0 -0
- {simvue-2.6.0 → simvue-2.6.2}/tests/unit/test_pickle_serialization.py +0 -0
- {simvue-2.6.0 → simvue-2.6.2}/tests/unit/test_plotly_figure_mime_type.py +0 -0
- {simvue-2.6.0 → simvue-2.6.2}/tests/unit/test_pytorch_tensor_mime_type.py +0 -0
- {simvue-2.6.0 → simvue-2.6.2}/tests/unit/test_pytorch_tensor_serialization.py +0 -0
- {simvue-2.6.0 → simvue-2.6.2}/tests/unit/test_request.py +0 -0
- {simvue-2.6.0 → simvue-2.6.2}/tests/unit/test_run.py +0 -0
- {simvue-2.6.0 → simvue-2.6.2}/tests/unit/test_run_init_folder.py +0 -0
- {simvue-2.6.0 → simvue-2.6.2}/tests/unit/test_run_init_tags.py +0 -0
- {simvue-2.6.0 → simvue-2.6.2}/tests/unit/test_s3_storage.py +0 -0
- {simvue-2.6.0 → simvue-2.6.2}/tests/unit/test_sender.py +0 -0
- {simvue-2.6.0 → simvue-2.6.2}/tests/unit/test_stats.py +0 -0
- {simvue-2.6.0 → simvue-2.6.2}/tests/unit/test_suppress_errors.py +0 -0
- {simvue-2.6.0 → simvue-2.6.2}/tests/unit/test_tag.py +0 -0
- {simvue-2.6.0 → simvue-2.6.2}/tests/unit/test_tenant.py +0 -0
- {simvue-2.6.0 → simvue-2.6.2}/tests/unit/test_user.py +0 -0
- {simvue-2.6.0 → simvue-2.6.2}/tests/unit/test_user_alert.py +0 -0
|
@@ -0,0 +1,135 @@
|
|
|
1
|
+
on:
|
|
2
|
+
workflow_call:
|
|
3
|
+
inputs:
|
|
4
|
+
python-version:
|
|
5
|
+
required: false
|
|
6
|
+
default: "3.14"
|
|
7
|
+
type: string
|
|
8
|
+
platform:
|
|
9
|
+
required: false
|
|
10
|
+
default: ubuntu-latest
|
|
11
|
+
type: string
|
|
12
|
+
unix_system:
|
|
13
|
+
required: false
|
|
14
|
+
default: true
|
|
15
|
+
type: boolean
|
|
16
|
+
test-command:
|
|
17
|
+
required: false
|
|
18
|
+
type: string
|
|
19
|
+
default: $GITHUB_WORKSPACE/.venv/bin/pytest
|
|
20
|
+
secrets:
|
|
21
|
+
SIMVUE_URL:
|
|
22
|
+
required: true
|
|
23
|
+
SIMVUE_TOKEN:
|
|
24
|
+
required: true
|
|
25
|
+
|
|
26
|
+
jobs:
|
|
27
|
+
object_retrieval:
|
|
28
|
+
uses: ./.github/workflows/test_group.yml
|
|
29
|
+
with:
|
|
30
|
+
python-version: ${{ inputs.python-version }}
|
|
31
|
+
platform: ${{ inputs.platform }}
|
|
32
|
+
test-group: object_retrieval ${{ startsWith(inputs.platform, 'windows') && 'and not unix' || '' }}
|
|
33
|
+
group-label: Object Retrieval
|
|
34
|
+
test-command: ${{ inputs.test-command }}
|
|
35
|
+
secrets:
|
|
36
|
+
SIMVUE_URL: ${{ secrets.SIMVUE_URL }}
|
|
37
|
+
SIMVUE_TOKEN: ${{ secrets.SIMVUE_TOKEN }}
|
|
38
|
+
object_removal:
|
|
39
|
+
uses: ./.github/workflows/test_group.yml
|
|
40
|
+
with:
|
|
41
|
+
python-version: ${{ inputs.python-version }}
|
|
42
|
+
platform: ${{ inputs.platform }}
|
|
43
|
+
test-group: object_removal ${{ startsWith(inputs.platform, 'windows') && 'and not unix' || '' }}
|
|
44
|
+
group-label: Object Removal
|
|
45
|
+
test-command: ${{ inputs.test-command }}
|
|
46
|
+
secrets:
|
|
47
|
+
SIMVUE_URL: ${{ secrets.SIMVUE_URL }}
|
|
48
|
+
SIMVUE_TOKEN: ${{ secrets.SIMVUE_TOKEN }}
|
|
49
|
+
dispatch_tests:
|
|
50
|
+
uses: ./.github/workflows/test_group.yml
|
|
51
|
+
with:
|
|
52
|
+
python-version: ${{ inputs.python-version }}
|
|
53
|
+
platform: ${{ inputs.platform }}
|
|
54
|
+
test-group: dispatch ${{ startsWith(inputs.platform, 'windows') && 'and not unix' || '' }}
|
|
55
|
+
test-command: ${{ inputs.test-command }}
|
|
56
|
+
group-label: Dispatch
|
|
57
|
+
secrets:
|
|
58
|
+
SIMVUE_URL: ${{ secrets.SIMVUE_URL }}
|
|
59
|
+
SIMVUE_TOKEN: ${{ secrets.SIMVUE_TOKEN }}
|
|
60
|
+
run_tests_online:
|
|
61
|
+
uses: ./.github/workflows/test_group.yml
|
|
62
|
+
with:
|
|
63
|
+
python-version: ${{ inputs.python-version }}
|
|
64
|
+
platform: ${{ inputs.platform }}
|
|
65
|
+
test-group: online and not api ${{ startsWith(inputs.platform, 'windows') && 'and not unix' || '' }}
|
|
66
|
+
group-label: Run Tests (Online)
|
|
67
|
+
test-command: ${{ inputs.test-command }}
|
|
68
|
+
secrets:
|
|
69
|
+
SIMVUE_URL: ${{ secrets.SIMVUE_URL }}
|
|
70
|
+
SIMVUE_TOKEN: ${{ secrets.SIMVUE_TOKEN }}
|
|
71
|
+
run_tests_offline:
|
|
72
|
+
uses: ./.github/workflows/test_group.yml
|
|
73
|
+
with:
|
|
74
|
+
python-version: ${{ inputs.python-version }}
|
|
75
|
+
platform: ${{ inputs.platform }}
|
|
76
|
+
test-group: (offline and not api ${{ startsWith(inputs.platform, 'windows') && 'and not unix' || '' }}) or cli
|
|
77
|
+
test-command: ${{ inputs.test-command }}
|
|
78
|
+
group-label: Run Tests (Offline)
|
|
79
|
+
secrets:
|
|
80
|
+
SIMVUE_URL: ${{ secrets.SIMVUE_URL }}
|
|
81
|
+
SIMVUE_TOKEN: ${{ secrets.SIMVUE_TOKEN }}
|
|
82
|
+
config_tests:
|
|
83
|
+
uses: ./.github/workflows/test_group.yml
|
|
84
|
+
with:
|
|
85
|
+
python-version: ${{ inputs.python-version }}
|
|
86
|
+
platform: ${{ inputs.platform }}
|
|
87
|
+
test-group: config ${{ startsWith(inputs.platform, 'windows') && 'and not unix' || '' }}
|
|
88
|
+
test-command: ${{ inputs.test-command }}
|
|
89
|
+
group-label: Configuration
|
|
90
|
+
secrets:
|
|
91
|
+
SIMVUE_URL: ${{ secrets.SIMVUE_URL }}
|
|
92
|
+
SIMVUE_TOKEN: ${{ secrets.SIMVUE_TOKEN }}
|
|
93
|
+
scenario_tests:
|
|
94
|
+
uses: ./.github/workflows/test_group.yml
|
|
95
|
+
with:
|
|
96
|
+
python-version: ${{ inputs.python-version }}
|
|
97
|
+
platform: ${{ inputs.platform }}
|
|
98
|
+
test-command: ${{ inputs.test-command }}
|
|
99
|
+
test-group: scenario and not run
|
|
100
|
+
group-label: Scenarios ${{ startsWith(inputs.platform, 'windows') && 'and not unix' || '' }}
|
|
101
|
+
secrets:
|
|
102
|
+
SIMVUE_URL: ${{ secrets.SIMVUE_URL }}
|
|
103
|
+
SIMVUE_TOKEN: ${{ secrets.SIMVUE_TOKEN }}
|
|
104
|
+
executor_tests:
|
|
105
|
+
uses: ./.github/workflows/test_group.yml
|
|
106
|
+
with:
|
|
107
|
+
python-version: ${{ inputs.python-version }}
|
|
108
|
+
platform: ${{ inputs.platform }}
|
|
109
|
+
test-command: ${{ inputs.test-command }}
|
|
110
|
+
test-group: executor ${{ startsWith(inputs.platform, 'windows') && 'and not unix' || '' }}
|
|
111
|
+
group-label: Executor
|
|
112
|
+
parallel-tasks: 0
|
|
113
|
+
secrets:
|
|
114
|
+
SIMVUE_URL: ${{ secrets.SIMVUE_URL }}
|
|
115
|
+
SIMVUE_TOKEN: ${{ secrets.SIMVUE_TOKEN }}
|
|
116
|
+
api_tests:
|
|
117
|
+
uses: ./.github/workflows/test_group.yml
|
|
118
|
+
with:
|
|
119
|
+
python-version: ${{ inputs.python-version }}
|
|
120
|
+
platform: ${{ inputs.platform }}
|
|
121
|
+
test-command: ${{ inputs.test-command }}
|
|
122
|
+
test-group: api ${{ startsWith(inputs.platform, 'windows') && 'and not unix' || '' }}
|
|
123
|
+
group-label: Low Level API
|
|
124
|
+
secrets:
|
|
125
|
+
SIMVUE_URL: ${{ secrets.SIMVUE_URL }}
|
|
126
|
+
SIMVUE_TOKEN: ${{ secrets.SIMVUE_TOKEN }}
|
|
127
|
+
local_tests:
|
|
128
|
+
uses: ./.github/workflows/test_group.yml
|
|
129
|
+
with:
|
|
130
|
+
python-version: ${{ inputs.python-version }}
|
|
131
|
+
platform: ${{ inputs.platform }}
|
|
132
|
+
test-command: ${{ inputs.test-command }}
|
|
133
|
+
test-group: local ${{ startsWith(inputs.platform, 'windows') && 'and not unix' || '' }}
|
|
134
|
+
group-label: Local
|
|
135
|
+
secrets: inherit
|
|
@@ -0,0 +1,26 @@
|
|
|
1
|
+
name: Simvue Nightlies (macOS)
|
|
2
|
+
|
|
3
|
+
on:
|
|
4
|
+
workflow_dispatch:
|
|
5
|
+
schedule:
|
|
6
|
+
- cron: "30 23 * * *"
|
|
7
|
+
|
|
8
|
+
permissions:
|
|
9
|
+
contents: read
|
|
10
|
+
|
|
11
|
+
concurrency:
|
|
12
|
+
group: ${{ github.workflow }}-${{ github.ref }}
|
|
13
|
+
cancel-in-progress: true
|
|
14
|
+
|
|
15
|
+
defaults:
|
|
16
|
+
run:
|
|
17
|
+
shell: pwsh
|
|
18
|
+
|
|
19
|
+
jobs:
|
|
20
|
+
test_suite:
|
|
21
|
+
name: Test Suite
|
|
22
|
+
uses: ./.github/workflows/common.yml
|
|
23
|
+
with:
|
|
24
|
+
platform: macos-latest
|
|
25
|
+
python-version: "3.14"
|
|
26
|
+
secrets: inherit
|
|
@@ -0,0 +1,24 @@
|
|
|
1
|
+
# This workflow will install Python dependencies, run tests and lint with a single version of Python
|
|
2
|
+
# For more information see: https://help.github.com/actions/language-and-framework-guides/using-python-with-github-actions
|
|
3
|
+
|
|
4
|
+
name: Simvue Python API (Ubuntu)
|
|
5
|
+
|
|
6
|
+
on:
|
|
7
|
+
push:
|
|
8
|
+
branches: ["main", "dev", "hotfix/update-ci"]
|
|
9
|
+
pull_request:
|
|
10
|
+
branches: ["main", "dev", "hotfix/update-ci"]
|
|
11
|
+
workflow_dispatch:
|
|
12
|
+
|
|
13
|
+
concurrency:
|
|
14
|
+
group: ${{ github.workflow }}-${{ github.ref }}
|
|
15
|
+
cancel-in-progress: true
|
|
16
|
+
|
|
17
|
+
jobs:
|
|
18
|
+
test_suite:
|
|
19
|
+
name: Test Suite
|
|
20
|
+
uses: ./.github/workflows/common.yml
|
|
21
|
+
with:
|
|
22
|
+
platform: ubuntu-latest
|
|
23
|
+
python-version: "3.14"
|
|
24
|
+
secrets: inherit
|
|
@@ -0,0 +1,25 @@
|
|
|
1
|
+
# This workflow will install Python dependencies, run tests and lint with a single version of Python
|
|
2
|
+
# For more information see: https://help.github.com/actions/language-and-framework-guides/using-python-with-github-actions
|
|
3
|
+
|
|
4
|
+
name: Simvue Nightlies (Ubuntu)
|
|
5
|
+
|
|
6
|
+
on:
|
|
7
|
+
workflow_dispatch:
|
|
8
|
+
schedule:
|
|
9
|
+
- cron: "30 0 * * *"
|
|
10
|
+
|
|
11
|
+
permissions:
|
|
12
|
+
contents: read
|
|
13
|
+
|
|
14
|
+
concurrency:
|
|
15
|
+
group: ${{ github.workflow }}-${{ github.ref }}
|
|
16
|
+
cancel-in-progress: true
|
|
17
|
+
|
|
18
|
+
jobs:
|
|
19
|
+
test_suite:
|
|
20
|
+
name: Test Suite
|
|
21
|
+
uses: ./.github/workflows/common.yml
|
|
22
|
+
with:
|
|
23
|
+
platform: ubuntu-latest
|
|
24
|
+
python-version: "3.14"
|
|
25
|
+
secrets: inherit
|
|
@@ -0,0 +1,30 @@
|
|
|
1
|
+
# This workflow will install Python dependencies, run tests and lint with a single version of Python
|
|
2
|
+
# For more information see: https://help.github.com/actions/language-and-framework-guides/using-python-with-github-actions
|
|
3
|
+
|
|
4
|
+
name: Simvue Nightlies (Windows)
|
|
5
|
+
|
|
6
|
+
on:
|
|
7
|
+
workflow_dispatch:
|
|
8
|
+
schedule:
|
|
9
|
+
- cron: "0 0 * * *"
|
|
10
|
+
|
|
11
|
+
permissions:
|
|
12
|
+
contents: read
|
|
13
|
+
|
|
14
|
+
concurrency:
|
|
15
|
+
group: ${{ github.workflow }}-${{ github.ref }}
|
|
16
|
+
cancel-in-progress: true
|
|
17
|
+
|
|
18
|
+
defaults:
|
|
19
|
+
run:
|
|
20
|
+
shell: pwsh
|
|
21
|
+
|
|
22
|
+
jobs:
|
|
23
|
+
test_suite:
|
|
24
|
+
name: Test Suite
|
|
25
|
+
uses: ./.github/workflows/common.yml
|
|
26
|
+
with:
|
|
27
|
+
platform: windows-latest
|
|
28
|
+
python-version: "3.14"
|
|
29
|
+
test-command: '& "$env:GITHUB_WORKSPACE/.venv/Scripts/pytest.exe"'
|
|
30
|
+
secrets: inherit
|
|
@@ -0,0 +1,58 @@
|
|
|
1
|
+
# This workflow will install Python dependencies, run tests and lint with a single version of Python
|
|
2
|
+
# For more information see: https://help.github.com/actions/language-and-framework-guides/using-python-with-github-actions
|
|
3
|
+
on:
|
|
4
|
+
workflow_call:
|
|
5
|
+
inputs:
|
|
6
|
+
python-version:
|
|
7
|
+
required: false
|
|
8
|
+
default: "3.14"
|
|
9
|
+
type: string
|
|
10
|
+
platform:
|
|
11
|
+
required: false
|
|
12
|
+
default: ubuntu-latest
|
|
13
|
+
type: string
|
|
14
|
+
test-group:
|
|
15
|
+
required: true
|
|
16
|
+
type: string
|
|
17
|
+
group-label:
|
|
18
|
+
required: true
|
|
19
|
+
type: string
|
|
20
|
+
parallel-tasks:
|
|
21
|
+
required: false
|
|
22
|
+
type: number
|
|
23
|
+
default: 8
|
|
24
|
+
test-command:
|
|
25
|
+
required: true
|
|
26
|
+
type: string
|
|
27
|
+
secrets:
|
|
28
|
+
SIMVUE_URL:
|
|
29
|
+
required: true
|
|
30
|
+
SIMVUE_TOKEN:
|
|
31
|
+
required: true
|
|
32
|
+
|
|
33
|
+
permissions:
|
|
34
|
+
contents: read
|
|
35
|
+
|
|
36
|
+
jobs:
|
|
37
|
+
object_retrieval:
|
|
38
|
+
runs-on: ${{ inputs.platform }}
|
|
39
|
+
name: ${{ inputs.group-label }}
|
|
40
|
+
timeout-minutes: 30
|
|
41
|
+
steps:
|
|
42
|
+
- uses: actions/checkout@v7
|
|
43
|
+
- name: Set up Python
|
|
44
|
+
uses: actions/setup-python@v7
|
|
45
|
+
with:
|
|
46
|
+
python-version: ${{ inputs.python-version }}
|
|
47
|
+
- name: Install uv
|
|
48
|
+
uses: astral-sh/setup-uv@v10.2.0
|
|
49
|
+
- name: Install dependencies
|
|
50
|
+
run: |
|
|
51
|
+
uv sync --all-extras --all-groups
|
|
52
|
+
uv pip install torch --index-url https://download.pytorch.org/whl/cpu || true
|
|
53
|
+
- name: Test with pytest
|
|
54
|
+
env:
|
|
55
|
+
SIMVUE_URL: ${{ secrets.SIMVUE_URL }}
|
|
56
|
+
SIMVUE_TOKEN: ${{ secrets.SIMVUE_TOKEN }}
|
|
57
|
+
run: |
|
|
58
|
+
${{ inputs.test-command }} -x -m "${{ inputs.test-group }}" -c /dev/null -p no:warnings -n ${{ inputs.parallel-tasks }} -v -o cache_dir=${GITHUB_WORKSPACE}/.pytest-cache
|
|
@@ -0,0 +1,29 @@
|
|
|
1
|
+
# This workflow will install Python dependencies, run tests and lint with a single version of Python
|
|
2
|
+
# For more information see: https://help.github.com/actions/language-and-framework-guides/using-python-with-github-actions
|
|
3
|
+
|
|
4
|
+
name: Simvue Nightlies (Python Versions)
|
|
5
|
+
|
|
6
|
+
on:
|
|
7
|
+
workflow_dispatch:
|
|
8
|
+
schedule:
|
|
9
|
+
- cron: "30 1 * * *"
|
|
10
|
+
|
|
11
|
+
permissions:
|
|
12
|
+
contents: read
|
|
13
|
+
|
|
14
|
+
concurrency:
|
|
15
|
+
group: ${{ github.workflow }}-${{ github.ref }}
|
|
16
|
+
cancel-in-progress: true
|
|
17
|
+
|
|
18
|
+
jobs:
|
|
19
|
+
test_suite:
|
|
20
|
+
name: Test Suite
|
|
21
|
+
uses: ./.github/workflows/common.yml
|
|
22
|
+
strategy:
|
|
23
|
+
fail-fast: false
|
|
24
|
+
matrix:
|
|
25
|
+
python-version: ["3.10", "3.11", "3.12", "3.13"]
|
|
26
|
+
with:
|
|
27
|
+
platform: ubuntu-latest
|
|
28
|
+
python-version: ${{ matrix.python-version }}
|
|
29
|
+
secrets: inherit
|
|
@@ -1,5 +1,13 @@
|
|
|
1
1
|
# Change Log
|
|
2
2
|
|
|
3
|
+
## [v2.6.2](https://github.com/simvue-io/python-api/releases/tag/v2.6.2) - 2026-10-21
|
|
4
|
+
|
|
5
|
+
- Added support for Python 3.15.
|
|
6
|
+
|
|
7
|
+
## [v2.6.1](https://github.com/simvue-io/python-api/releases/tag/v2.6.1) - 2026-09-29
|
|
8
|
+
|
|
9
|
+
- Revert `datetime.UTC` to `datetime.timezone.utc` for legacy support.
|
|
10
|
+
|
|
3
11
|
## [v2.6.0](https://github.com/simvue-io/python-api/releases/tag/v2.6.0) - 2026-09-25
|
|
4
12
|
|
|
5
13
|
- Allow `%` in metric names.
|
|
@@ -43,6 +43,6 @@ keywords:
|
|
|
43
43
|
- alerting
|
|
44
44
|
- simulation
|
|
45
45
|
license: Apache-2.0
|
|
46
|
-
commit:
|
|
47
|
-
version: 2.6.
|
|
48
|
-
date-released: "2026-
|
|
46
|
+
commit: 2081ea4ca78da2e05c12a29d10a6c2a6d3308e8d
|
|
47
|
+
version: 2.6.2
|
|
48
|
+
date-released: "2026-10-21"
|
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
Metadata-Version: 2.5
|
|
2
2
|
Name: simvue
|
|
3
|
-
Version: 2.6.
|
|
3
|
+
Version: 2.6.2
|
|
4
4
|
Summary: Simulation tracking and monitoring
|
|
5
5
|
Project-URL: homepage, https://simvue.io
|
|
6
6
|
Project-URL: repository, https://github.com/simvue-io/python-api
|
|
@@ -25,7 +25,7 @@ Classifier: Topic :: Scientific/Engineering
|
|
|
25
25
|
Classifier: Topic :: System :: Monitoring
|
|
26
26
|
Classifier: Topic :: Utilities
|
|
27
27
|
Classifier: Typing :: Typed
|
|
28
|
-
Requires-Python: <3.
|
|
28
|
+
Requires-Python: <3.16,>=3.10
|
|
29
29
|
Requires-Dist: click>=8.5.0
|
|
30
30
|
Requires-Dist: deepmerge>=3.0.1
|
|
31
31
|
Requires-Dist: email-validator>=2.3.0
|
|
@@ -34,7 +34,7 @@ id = "check-added-large-files"
|
|
|
34
34
|
|
|
35
35
|
[[repos]]
|
|
36
36
|
repo = "https://github.com/astral-sh/ruff-pre-commit"
|
|
37
|
-
rev = "v0.16.
|
|
37
|
+
rev = "v0.16.9"
|
|
38
38
|
|
|
39
39
|
[[repos.hooks]]
|
|
40
40
|
id = "ruff-check"
|
|
@@ -62,7 +62,7 @@ args = ["-lll", "--recursive", "clumper"]
|
|
|
62
62
|
|
|
63
63
|
[[repos]]
|
|
64
64
|
repo = "https://github.com/python-poetry/poetry"
|
|
65
|
-
rev = "2.
|
|
65
|
+
rev = "2.5.1"
|
|
66
66
|
[[repos.hooks]]
|
|
67
67
|
id = "poetry-check"
|
|
68
68
|
|
|
@@ -75,14 +75,14 @@ args = ["--all-extras", "--all-groups"]
|
|
|
75
75
|
|
|
76
76
|
[[repos]]
|
|
77
77
|
repo = "https://github.com/GabDug/sync-pre-commit-lock"
|
|
78
|
-
rev = "v0.9.
|
|
78
|
+
rev = "v0.9.1"
|
|
79
79
|
|
|
80
80
|
[[repos.hooks]]
|
|
81
81
|
id = "sync-pre-commit-uv"
|
|
82
82
|
|
|
83
83
|
[[repos]]
|
|
84
84
|
repo = "https://github.com/astral-sh/uv-pre-commit"
|
|
85
|
-
rev = "0.
|
|
85
|
+
rev = "0.12.21"
|
|
86
86
|
|
|
87
87
|
[[repos.hooks]]
|
|
88
88
|
id = "uv-lock"
|
|
@@ -96,7 +96,7 @@ id = "validate-cff"
|
|
|
96
96
|
|
|
97
97
|
[[repos]]
|
|
98
98
|
repo = "https://github.com/DetachHead/basedpyright-prek-mirror"
|
|
99
|
-
rev = "1.
|
|
99
|
+
rev = "1.40.1"
|
|
100
100
|
|
|
101
101
|
[[repos.hooks]]
|
|
102
102
|
id = "basedpyright"
|
|
@@ -1,10 +1,10 @@
|
|
|
1
1
|
[project]
|
|
2
2
|
name = "simvue"
|
|
3
|
-
version = "2.6.
|
|
3
|
+
version = "2.6.2"
|
|
4
4
|
description = "Simulation tracking and monitoring"
|
|
5
5
|
authors = [{ name = "Simvue Development Team", email = "info@simvue.io" }]
|
|
6
6
|
license = "Apache-2.0"
|
|
7
|
-
requires-python = ">=3.10,<3.
|
|
7
|
+
requires-python = ">=3.10,<3.16"
|
|
8
8
|
readme = "README.md"
|
|
9
9
|
classifiers = [
|
|
10
10
|
"Development Status :: 5 - Production/Stable",
|
|
@@ -1,6 +1,7 @@
|
|
|
1
1
|
{
|
|
2
2
|
"$defs": {
|
|
3
3
|
"CertificateSpecifications": {
|
|
4
|
+
"additionalProperties": false,
|
|
4
5
|
"properties": {
|
|
5
6
|
"client_cert": {
|
|
6
7
|
"anyOf": [
|
|
@@ -60,6 +61,8 @@
|
|
|
60
61
|
"type": "object"
|
|
61
62
|
},
|
|
62
63
|
"ClientGeneralOptions": {
|
|
64
|
+
"additionalProperties": false,
|
|
65
|
+
"description": "Specify client options.",
|
|
63
66
|
"properties": {
|
|
64
67
|
"debug": {
|
|
65
68
|
"default": false,
|
|
@@ -71,6 +74,8 @@
|
|
|
71
74
|
"type": "object"
|
|
72
75
|
},
|
|
73
76
|
"DefaultRunSpecifications": {
|
|
77
|
+
"additionalProperties": false,
|
|
78
|
+
"description": "Specify run default configurations.",
|
|
74
79
|
"properties": {
|
|
75
80
|
"description": {
|
|
76
81
|
"anyOf": [
|
|
@@ -91,32 +96,14 @@
|
|
|
91
96
|
"type": "string"
|
|
92
97
|
},
|
|
93
98
|
"metadata": {
|
|
94
|
-
"
|
|
95
|
-
|
|
96
|
-
|
|
97
|
-
|
|
98
|
-
|
|
99
|
-
|
|
100
|
-
|
|
101
|
-
|
|
102
|
-
"type": "integer"
|
|
103
|
-
},
|
|
104
|
-
{
|
|
105
|
-
"type": "number"
|
|
106
|
-
},
|
|
107
|
-
{
|
|
108
|
-
"type": "boolean"
|
|
109
|
-
}
|
|
110
|
-
]
|
|
111
|
-
},
|
|
112
|
-
"type": "object"
|
|
113
|
-
},
|
|
114
|
-
{
|
|
115
|
-
"type": "null"
|
|
116
|
-
}
|
|
117
|
-
],
|
|
118
|
-
"default": null,
|
|
119
|
-
"title": "Metadata"
|
|
99
|
+
"$ref": "#/$defs/MetadataSpecifications",
|
|
100
|
+
"default": {
|
|
101
|
+
"custom": null,
|
|
102
|
+
"environment": true,
|
|
103
|
+
"git": true,
|
|
104
|
+
"record_shell_vars": null,
|
|
105
|
+
"system": true
|
|
106
|
+
}
|
|
120
107
|
},
|
|
121
108
|
"mode": {
|
|
122
109
|
"default": "online",
|
|
@@ -267,7 +254,74 @@
|
|
|
267
254
|
"title": "EcoConfig",
|
|
268
255
|
"type": "object"
|
|
269
256
|
},
|
|
257
|
+
"MetadataSpecifications": {
|
|
258
|
+
"additionalProperties": false,
|
|
259
|
+
"properties": {
|
|
260
|
+
"custom": {
|
|
261
|
+
"anyOf": [
|
|
262
|
+
{
|
|
263
|
+
"additionalProperties": {
|
|
264
|
+
"anyOf": [
|
|
265
|
+
{
|
|
266
|
+
"type": "string"
|
|
267
|
+
},
|
|
268
|
+
{
|
|
269
|
+
"type": "integer"
|
|
270
|
+
},
|
|
271
|
+
{
|
|
272
|
+
"type": "number"
|
|
273
|
+
},
|
|
274
|
+
{
|
|
275
|
+
"type": "boolean"
|
|
276
|
+
}
|
|
277
|
+
]
|
|
278
|
+
},
|
|
279
|
+
"type": "object"
|
|
280
|
+
},
|
|
281
|
+
{
|
|
282
|
+
"type": "null"
|
|
283
|
+
}
|
|
284
|
+
],
|
|
285
|
+
"default": null,
|
|
286
|
+
"title": "Custom"
|
|
287
|
+
},
|
|
288
|
+
"environment": {
|
|
289
|
+
"default": true,
|
|
290
|
+
"title": "Environment",
|
|
291
|
+
"type": "boolean"
|
|
292
|
+
},
|
|
293
|
+
"git": {
|
|
294
|
+
"default": true,
|
|
295
|
+
"title": "Git",
|
|
296
|
+
"type": "boolean"
|
|
297
|
+
},
|
|
298
|
+
"record_shell_vars": {
|
|
299
|
+
"anyOf": [
|
|
300
|
+
{
|
|
301
|
+
"items": {
|
|
302
|
+
"type": "string"
|
|
303
|
+
},
|
|
304
|
+
"type": "array"
|
|
305
|
+
},
|
|
306
|
+
{
|
|
307
|
+
"type": "null"
|
|
308
|
+
}
|
|
309
|
+
],
|
|
310
|
+
"default": null,
|
|
311
|
+
"title": "Record Shell Vars"
|
|
312
|
+
},
|
|
313
|
+
"system": {
|
|
314
|
+
"default": true,
|
|
315
|
+
"title": "System",
|
|
316
|
+
"type": "boolean"
|
|
317
|
+
}
|
|
318
|
+
},
|
|
319
|
+
"title": "MetadataSpecifications",
|
|
320
|
+
"type": "object"
|
|
321
|
+
},
|
|
270
322
|
"MetricsSpecifications": {
|
|
323
|
+
"additionalProperties": false,
|
|
324
|
+
"description": "Specify metric configurations.",
|
|
271
325
|
"properties": {
|
|
272
326
|
"enable_emission_metrics": {
|
|
273
327
|
"default": false,
|
|
@@ -292,6 +346,8 @@
|
|
|
292
346
|
"type": "object"
|
|
293
347
|
},
|
|
294
348
|
"OfflineSpecifications": {
|
|
349
|
+
"additionalProperties": false,
|
|
350
|
+
"description": "Specify offline mode configurations.",
|
|
295
351
|
"properties": {
|
|
296
352
|
"cache": {
|
|
297
353
|
"anyOf": [
|
|
@@ -312,6 +368,7 @@
|
|
|
312
368
|
},
|
|
313
369
|
"ServerSpecifications": {
|
|
314
370
|
"additionalProperties": false,
|
|
371
|
+
"description": "Specify server configurations.",
|
|
315
372
|
"properties": {
|
|
316
373
|
"certificates": {
|
|
317
374
|
"$ref": "#/$defs/CertificateSpecifications"
|
|
@@ -367,6 +424,7 @@
|
|
|
367
424
|
}
|
|
368
425
|
},
|
|
369
426
|
"additionalProperties": false,
|
|
427
|
+
"description": "Configure session.",
|
|
370
428
|
"properties": {
|
|
371
429
|
"client": {
|
|
372
430
|
"$ref": "#/$defs/ClientGeneralOptions",
|
|
@@ -422,7 +480,13 @@
|
|
|
422
480
|
"default": {
|
|
423
481
|
"description": null,
|
|
424
482
|
"folder": "/",
|
|
425
|
-
"metadata":
|
|
483
|
+
"metadata": {
|
|
484
|
+
"custom": null,
|
|
485
|
+
"environment": true,
|
|
486
|
+
"git": true,
|
|
487
|
+
"record_shell_vars": null,
|
|
488
|
+
"system": true
|
|
489
|
+
},
|
|
426
490
|
"mode": "online",
|
|
427
491
|
"name": null,
|
|
428
492
|
"record_shell_vars": null,
|
|
@@ -77,13 +77,13 @@ def simvue_timestamp(
|
|
|
77
77
|
|
|
78
78
|
"""
|
|
79
79
|
if not date_time:
|
|
80
|
-
date_time = datetime.datetime.now(datetime.
|
|
80
|
+
date_time = datetime.datetime.now(datetime.timezone.utc)
|
|
81
81
|
elif isinstance(date_time, str):
|
|
82
82
|
_local_time = datetime.datetime.now(datetime.timezone.utc).astimezone().tzinfo
|
|
83
83
|
date_time = (
|
|
84
84
|
datetime.datetime.strptime(date_time, DATETIME_FORMAT)
|
|
85
85
|
.replace(tzinfo=_local_time)
|
|
86
|
-
.astimezone(datetime.
|
|
86
|
+
.astimezone(datetime.timezone.utc)
|
|
87
87
|
)
|
|
88
88
|
return date_time.strftime(DATETIME_FORMAT)
|
|
89
89
|
|
|
@@ -123,14 +123,14 @@ class GridMetricSet(pydantic.BaseModel):
|
|
|
123
123
|
time: float | int
|
|
124
124
|
timestamp: typing.Annotated[str | None, pydantic.BeforeValidator(simvue_timestamp)]
|
|
125
125
|
step: pydantic.NonNegativeInt
|
|
126
|
-
array: list[float] | list[list[float]] | np.ndarray
|
|
126
|
+
array: list[float] | list[list[float]] | np.ndarray[float]
|
|
127
127
|
grid: str
|
|
128
128
|
metric: str
|
|
129
129
|
|
|
130
130
|
@pydantic.field_serializer("array", when_used="always")
|
|
131
131
|
def serialize_array(
|
|
132
132
|
self,
|
|
133
|
-
value: np.ndarray | list[float] | list[list[float]],
|
|
133
|
+
value: np.ndarray[float] | list[float] | list[list[float]],
|
|
134
134
|
*_,
|
|
135
135
|
) -> list[float] | list[list[float]]:
|
|
136
136
|
"""Serialize a numpy array."""
|