imas-python 1.1.2.dev55__tar.gz → 1.1.2.dev57__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.
- {imas_python-1.1.2.dev55 → imas_python-1.1.2.dev57}/CONTRIBUTING.md +4 -4
- {imas_python-1.1.2.dev55/imas_python.egg-info → imas_python-1.1.2.dev57}/PKG-INFO +6 -6
- {imas_python-1.1.2.dev55 → imas_python-1.1.2.dev57}/README.md +5 -5
- {imas_python-1.1.2.dev55 → imas_python-1.1.2.dev57}/asv.conf.json +2 -2
- {imas_python-1.1.2.dev55 → imas_python-1.1.2.dev57}/benchmarks/core_profiles.py +4 -4
- {imas_python-1.1.2.dev55 → imas_python-1.1.2.dev57}/benchmarks/edge_profiles.py +4 -4
- {imas_python-1.1.2.dev55 → imas_python-1.1.2.dev57}/benchmarks/technical.py +4 -3
- {imas_python-1.1.2.dev55 → imas_python-1.1.2.dev57}/benchmarks/utils.py +1 -1
- {imas_python-1.1.2.dev55 → imas_python-1.1.2.dev57}/ci/build_docs_and_dist.sh +2 -2
- {imas_python-1.1.2.dev55 → imas_python-1.1.2.dev57}/ci/run_benchmark.sh +3 -3
- {imas_python-1.1.2.dev55 → imas_python-1.1.2.dev57}/ci/run_pytest.sh +7 -5
- {imas_python-1.1.2.dev55 → imas_python-1.1.2.dev57}/conftest.py +2 -2
- {imas_python-1.1.2.dev55 → imas_python-1.1.2.dev57}/docs/source/api.rst +2 -2
- {imas_python-1.1.2.dev55 → imas_python-1.1.2.dev57}/docs/source/benchmarking.rst +40 -63
- {imas_python-1.1.2.dev55 → imas_python-1.1.2.dev57}/docs/source/changelog.rst +44 -44
- {imas_python-1.1.2.dev55 → imas_python-1.1.2.dev57}/docs/source/ci_config.rst +12 -12
- {imas_python-1.1.2.dev55 → imas_python-1.1.2.dev57}/docs/source/cli.rst +8 -8
- {imas_python-1.1.2.dev55 → imas_python-1.1.2.dev57}/docs/source/code_style.rst +2 -2
- {imas_python-1.1.2.dev55 → imas_python-1.1.2.dev57}/docs/source/conf.py +5 -5
- {imas_python-1.1.2.dev55 → imas_python-1.1.2.dev57}/docs/source/configuring.rst +4 -4
- {imas_python-1.1.2.dev55 → imas_python-1.1.2.dev57}/docs/source/courses/advanced/dd_versions.rst +16 -16
- {imas_python-1.1.2.dev55 → imas_python-1.1.2.dev57}/docs/source/courses/advanced/explore.rst +5 -5
- {imas_python-1.1.2.dev55 → imas_python-1.1.2.dev57}/docs/source/courses/advanced/hashing.rst +3 -3
- {imas_python-1.1.2.dev55 → imas_python-1.1.2.dev57}/docs/source/courses/advanced/imas_snippets/alternative_coordinates.py +1 -1
- {imas_python-1.1.2.dev55 → imas_python-1.1.2.dev57}/docs/source/courses/advanced/imas_snippets/autoconvert_get.py +1 -1
- {imas_python-1.1.2.dev55 → imas_python-1.1.2.dev57}/docs/source/courses/advanced/imas_snippets/coordinates.py +2 -2
- {imas_python-1.1.2.dev55 → imas_python-1.1.2.dev57}/docs/source/courses/advanced/imas_snippets/ids_convert.py +2 -2
- {imas_python-1.1.2.dev55 → imas_python-1.1.2.dev57}/docs/source/courses/advanced/metadata.rst +4 -4
- {imas_python-1.1.2.dev55 → imas_python-1.1.2.dev57}/docs/source/courses/advanced/xarray.rst +1 -1
- {imas_python-1.1.2.dev55 → imas_python-1.1.2.dev57}/docs/source/courses/advanced_user_training.rst +4 -4
- {imas_python-1.1.2.dev55 → imas_python-1.1.2.dev57}/docs/source/courses/basic/analyze.rst +14 -14
- {imas_python-1.1.2.dev55 → imas_python-1.1.2.dev57}/docs/source/courses/basic/create.rst +9 -9
- {imas_python-1.1.2.dev55 → imas_python-1.1.2.dev57}/docs/source/courses/basic/explore.rst +10 -10
- {imas_python-1.1.2.dev55 → imas_python-1.1.2.dev57}/docs/source/courses/basic/imas_snippets/create_core_profiles.py +1 -1
- {imas_python-1.1.2.dev55 → imas_python-1.1.2.dev57}/docs/source/courses/basic/imas_snippets/print_idss.py +1 -1
- {imas_python-1.1.2.dev55 → imas_python-1.1.2.dev57}/docs/source/courses/basic/imas_snippets/transform_grid.py +1 -1
- imas_python-1.1.2.dev57/docs/source/courses/basic/setup.rst +12 -0
- {imas_python-1.1.2.dev55 → imas_python-1.1.2.dev57}/docs/source/courses/basic/transform.rst +7 -7
- {imas_python-1.1.2.dev55 → imas_python-1.1.2.dev57}/docs/source/courses/basic_user_training.rst +4 -4
- {imas_python-1.1.2.dev55 → imas_python-1.1.2.dev57}/docs/source/identifiers.rst +4 -4
- {imas_python-1.1.2.dev55 → imas_python-1.1.2.dev57}/docs/source/imas_architecture.rst +9 -9
- {imas_python-1.1.2.dev55 → imas_python-1.1.2.dev57}/docs/source/index.rst +6 -6
- {imas_python-1.1.2.dev55 → imas_python-1.1.2.dev57}/docs/source/installing.rst +11 -11
- {imas_python-1.1.2.dev55 → imas_python-1.1.2.dev57}/docs/source/intro.rst +12 -12
- {imas_python-1.1.2.dev55 → imas_python-1.1.2.dev57}/docs/source/lazy_loading.rst +3 -3
- {imas_python-1.1.2.dev55 → imas_python-1.1.2.dev57}/docs/source/mdsplus.rst +3 -3
- {imas_python-1.1.2.dev55 → imas_python-1.1.2.dev57}/docs/source/metadata.rst +8 -8
- {imas_python-1.1.2.dev55 → imas_python-1.1.2.dev57}/docs/source/multi-dd.rst +11 -11
- {imas_python-1.1.2.dev55 → imas_python-1.1.2.dev57}/docs/source/netcdf/conventions.rst +1 -1
- {imas_python-1.1.2.dev55 → imas_python-1.1.2.dev57}/docs/source/netcdf.rst +6 -6
- {imas_python-1.1.2.dev55 → imas_python-1.1.2.dev57}/docs/source/release_imas.rst +11 -11
- {imas_python-1.1.2.dev55 → imas_python-1.1.2.dev57}/docs/source/validation.rst +3 -3
- {imas_python-1.1.2.dev55 → imas_python-1.1.2.dev57}/imas/__init__.py +5 -5
- {imas_python-1.1.2.dev55 → imas_python-1.1.2.dev57}/imas/__main__.py +2 -2
- {imas_python-1.1.2.dev55 → imas_python-1.1.2.dev57}/imas/_util.py +2 -2
- {imas_python-1.1.2.dev55 → imas_python-1.1.2.dev57}/imas/_version.py +2 -2
- {imas_python-1.1.2.dev55 → imas_python-1.1.2.dev57}/imas/assets/IDSDef.zip +0 -0
- {imas_python-1.1.2.dev55 → imas_python-1.1.2.dev57}/imas/backends/__init__.py +2 -2
- {imas_python-1.1.2.dev55 → imas_python-1.1.2.dev57}/imas/backends/db_entry_impl.py +2 -2
- imas_python-1.1.2.dev57/imas/backends/imas_core/__init__.py +4 -0
- {imas_python-1.1.2.dev55 → imas_python-1.1.2.dev57}/imas/backends/imas_core/al_context.py +3 -3
- {imas_python-1.1.2.dev55 → imas_python-1.1.2.dev57}/imas/backends/imas_core/db_entry_al.py +2 -2
- {imas_python-1.1.2.dev55 → imas_python-1.1.2.dev57}/imas/backends/imas_core/db_entry_helpers.py +2 -2
- {imas_python-1.1.2.dev55 → imas_python-1.1.2.dev57}/imas/backends/imas_core/imas_interface.py +4 -4
- {imas_python-1.1.2.dev55 → imas_python-1.1.2.dev57}/imas/backends/imas_core/mdsplus_model.py +2 -2
- imas_python-1.1.2.dev57/imas/backends/netcdf/__init__.py +4 -0
- {imas_python-1.1.2.dev55 → imas_python-1.1.2.dev57}/imas/backends/netcdf/db_entry_nc.py +1 -1
- {imas_python-1.1.2.dev55 → imas_python-1.1.2.dev57}/imas/backends/netcdf/ids2nc.py +3 -3
- {imas_python-1.1.2.dev55 → imas_python-1.1.2.dev57}/imas/backends/netcdf/nc_metadata.py +2 -2
- {imas_python-1.1.2.dev55 → imas_python-1.1.2.dev57}/imas/command/cli.py +6 -6
- {imas_python-1.1.2.dev55 → imas_python-1.1.2.dev57}/imas/command/db_analysis.py +1 -1
- {imas_python-1.1.2.dev55 → imas_python-1.1.2.dev57}/imas/command/helpers.py +1 -1
- {imas_python-1.1.2.dev55 → imas_python-1.1.2.dev57}/imas/command/timer.py +2 -2
- {imas_python-1.1.2.dev55 → imas_python-1.1.2.dev57}/imas/db_entry.py +3 -3
- {imas_python-1.1.2.dev55 → imas_python-1.1.2.dev57}/imas/dd_helpers.py +2 -3
- {imas_python-1.1.2.dev55 → imas_python-1.1.2.dev57}/imas/dd_zip.py +4 -4
- {imas_python-1.1.2.dev55 → imas_python-1.1.2.dev57}/imas/exception.py +3 -3
- {imas_python-1.1.2.dev55 → imas_python-1.1.2.dev57}/imas/ids_base.py +2 -2
- {imas_python-1.1.2.dev55 → imas_python-1.1.2.dev57}/imas/ids_convert.py +4 -4
- {imas_python-1.1.2.dev55 → imas_python-1.1.2.dev57}/imas/ids_coordinates.py +3 -3
- {imas_python-1.1.2.dev55 → imas_python-1.1.2.dev57}/imas/ids_data_type.py +2 -2
- {imas_python-1.1.2.dev55 → imas_python-1.1.2.dev57}/imas/ids_defs.py +3 -3
- {imas_python-1.1.2.dev55 → imas_python-1.1.2.dev57}/imas/ids_factory.py +2 -2
- {imas_python-1.1.2.dev55 → imas_python-1.1.2.dev57}/imas/ids_identifiers.py +3 -3
- {imas_python-1.1.2.dev55 → imas_python-1.1.2.dev57}/imas/ids_metadata.py +5 -5
- {imas_python-1.1.2.dev55 → imas_python-1.1.2.dev57}/imas/ids_path.py +2 -2
- {imas_python-1.1.2.dev55 → imas_python-1.1.2.dev57}/imas/ids_primitive.py +2 -2
- {imas_python-1.1.2.dev55 → imas_python-1.1.2.dev57}/imas/ids_struct_array.py +2 -2
- {imas_python-1.1.2.dev55 → imas_python-1.1.2.dev57}/imas/ids_structure.py +2 -2
- {imas_python-1.1.2.dev55 → imas_python-1.1.2.dev57}/imas/ids_toplevel.py +2 -2
- {imas_python-1.1.2.dev55 → imas_python-1.1.2.dev57}/imas/setup_logging.py +3 -3
- {imas_python-1.1.2.dev55 → imas_python-1.1.2.dev57}/imas/test/test_dd_helpers.py +1 -4
- {imas_python-1.1.2.dev55 → imas_python-1.1.2.dev57}/imas/test/test_hash.py +1 -1
- {imas_python-1.1.2.dev55 → imas_python-1.1.2.dev57}/imas/test/test_ids_ascii_data.py +2 -2
- {imas_python-1.1.2.dev55 → imas_python-1.1.2.dev57}/imas/test/test_ids_convert.py +2 -2
- {imas_python-1.1.2.dev55 → imas_python-1.1.2.dev57}/imas/test/test_ids_mixin.py +2 -2
- {imas_python-1.1.2.dev55 → imas_python-1.1.2.dev57}/imas/test/test_ids_primitive.py +3 -3
- {imas_python-1.1.2.dev55 → imas_python-1.1.2.dev57}/imas/test/test_ids_structure.py +2 -2
- {imas_python-1.1.2.dev55 → imas_python-1.1.2.dev57}/imas/training.py +3 -3
- {imas_python-1.1.2.dev55 → imas_python-1.1.2.dev57}/imas/util.py +9 -9
- {imas_python-1.1.2.dev55 → imas_python-1.1.2.dev57/imas_python.egg-info}/PKG-INFO +6 -6
- {imas_python-1.1.2.dev55 → imas_python-1.1.2.dev57}/setup.py +3 -3
- {imas_python-1.1.2.dev55 → imas_python-1.1.2.dev57}/tools/compare_lowlevel_access_patterns.py +3 -3
- {imas_python-1.1.2.dev55 → imas_python-1.1.2.dev57}/tools/extract_test_data.py +2 -2
- imas_python-1.1.2.dev55/docs/source/courses/basic/setup.rst +0 -12
- imas_python-1.1.2.dev55/imas/backends/imas_core/__init__.py +0 -4
- imas_python-1.1.2.dev55/imas/backends/netcdf/__init__.py +0 -4
- {imas_python-1.1.2.dev55 → imas_python-1.1.2.dev57}/.git-blame-ignore-revs +0 -0
- {imas_python-1.1.2.dev55 → imas_python-1.1.2.dev57}/.git_archival.txt +0 -0
- {imas_python-1.1.2.dev55 → imas_python-1.1.2.dev57}/.gitattributes +0 -0
- {imas_python-1.1.2.dev55 → imas_python-1.1.2.dev57}/.github/workflows/linting.yml +0 -0
- {imas_python-1.1.2.dev55 → imas_python-1.1.2.dev57}/.github/workflows/publish.yml +0 -0
- {imas_python-1.1.2.dev55 → imas_python-1.1.2.dev57}/.gitignore +0 -0
- {imas_python-1.1.2.dev55 → imas_python-1.1.2.dev57}/.pylintrc +0 -0
- {imas_python-1.1.2.dev55 → imas_python-1.1.2.dev57}/.readthedocs.yml +0 -0
- {imas_python-1.1.2.dev55 → imas_python-1.1.2.dev57}/CODE_OF_CONDUCT.md +0 -0
- {imas_python-1.1.2.dev55 → imas_python-1.1.2.dev57}/LICENSE.txt +0 -0
- {imas_python-1.1.2.dev55 → imas_python-1.1.2.dev57}/MANIFEST.in +0 -0
- {imas_python-1.1.2.dev55 → imas_python-1.1.2.dev57}/benchmarks/__init__.py +0 -0
- {imas_python-1.1.2.dev55 → imas_python-1.1.2.dev57}/ci/build_dd_zip.sh +0 -0
- {imas_python-1.1.2.dev55 → imas_python-1.1.2.dev57}/ci/linting.sh +0 -0
- {imas_python-1.1.2.dev55 → imas_python-1.1.2.dev57}/docs/.gitignore +0 -0
- {imas_python-1.1.2.dev55 → imas_python-1.1.2.dev57}/docs/Makefile +0 -0
- {imas_python-1.1.2.dev55 → imas_python-1.1.2.dev57}/docs/source/.gitignore +0 -0
- {imas_python-1.1.2.dev55 → imas_python-1.1.2.dev57}/docs/source/_static/imas.css +0 -0
- {imas_python-1.1.2.dev55 → imas_python-1.1.2.dev57}/docs/source/_static/imas_200x200.png +0 -0
- {imas_python-1.1.2.dev55 → imas_python-1.1.2.dev57}/docs/source/_templates/autosummary/accessor.rst +0 -0
- {imas_python-1.1.2.dev55 → imas_python-1.1.2.dev57}/docs/source/_templates/autosummary/accessor_attribute.rst +0 -0
- {imas_python-1.1.2.dev55 → imas_python-1.1.2.dev57}/docs/source/_templates/autosummary/accessor_callable.rst +0 -0
- {imas_python-1.1.2.dev55 → imas_python-1.1.2.dev57}/docs/source/_templates/autosummary/accessor_method.rst +0 -0
- {imas_python-1.1.2.dev55 → imas_python-1.1.2.dev57}/docs/source/_templates/autosummary/base.rst +0 -0
- {imas_python-1.1.2.dev55 → imas_python-1.1.2.dev57}/docs/source/_templates/custom-class-template.rst +0 -0
- {imas_python-1.1.2.dev55 → imas_python-1.1.2.dev57}/docs/source/_templates/custom-module-template.rst +0 -0
- {imas_python-1.1.2.dev55 → imas_python-1.1.2.dev57}/docs/source/_templates/layout.html +0 -0
- {imas_python-1.1.2.dev55 → imas_python-1.1.2.dev57}/docs/source/api-hidden.rst +0 -0
- {imas_python-1.1.2.dev55 → imas_python-1.1.2.dev57}/docs/source/courses/advanced/imas_snippets/autoconvert_put.py +0 -0
- {imas_python-1.1.2.dev55 → imas_python-1.1.2.dev57}/docs/source/courses/advanced/imas_snippets/calc_with_units.py +0 -0
- {imas_python-1.1.2.dev55 → imas_python-1.1.2.dev57}/docs/source/courses/advanced/imas_snippets/dd_versions.py +0 -0
- {imas_python-1.1.2.dev55 → imas_python-1.1.2.dev57}/docs/source/courses/advanced/imas_snippets/explore_data.py +0 -0
- {imas_python-1.1.2.dev55 → imas_python-1.1.2.dev57}/docs/source/courses/advanced/imas_snippets/explore_structures.py +0 -0
- {imas_python-1.1.2.dev55 → imas_python-1.1.2.dev57}/docs/source/courses/advanced/imas_snippets/hashing.py +0 -0
- {imas_python-1.1.2.dev55 → imas_python-1.1.2.dev57}/docs/source/courses/advanced/imas_snippets/ids_to_xarray.py +0 -0
- {imas_python-1.1.2.dev55 → imas_python-1.1.2.dev57}/docs/source/courses/advanced/imas_snippets/tensorized_ids_to_xarray.py +0 -0
- {imas_python-1.1.2.dev55 → imas_python-1.1.2.dev57}/docs/source/courses/basic/core_profiles_ne_timeslice.png +0 -0
- {imas_python-1.1.2.dev55 → imas_python-1.1.2.dev57}/docs/source/courses/basic/core_profiles_te.png +0 -0
- {imas_python-1.1.2.dev55 → imas_python-1.1.2.dev57}/docs/source/courses/basic/imas_inspect.png +0 -0
- {imas_python-1.1.2.dev55 → imas_python-1.1.2.dev57}/docs/source/courses/basic/imas_snippets/explore_public_ec_launchers.py +0 -0
- {imas_python-1.1.2.dev55 → imas_python-1.1.2.dev57}/docs/source/courses/basic/imas_snippets/explore_public_pf_active.py +0 -0
- {imas_python-1.1.2.dev55 → imas_python-1.1.2.dev57}/docs/source/courses/basic/imas_snippets/explore_training_data.py +0 -0
- {imas_python-1.1.2.dev55 → imas_python-1.1.2.dev57}/docs/source/courses/basic/imas_snippets/find_paths.py +0 -0
- {imas_python-1.1.2.dev55 → imas_python-1.1.2.dev57}/docs/source/courses/basic/imas_snippets/iterate_core_profiles.py +0 -0
- {imas_python-1.1.2.dev55 → imas_python-1.1.2.dev57}/docs/source/courses/basic/imas_snippets/plot_core_profiles_ne_timeslice.py +0 -0
- {imas_python-1.1.2.dev55 → imas_python-1.1.2.dev57}/docs/source/courses/basic/imas_snippets/plot_core_profiles_te.py +0 -0
- {imas_python-1.1.2.dev55 → imas_python-1.1.2.dev57}/docs/source/courses/basic/imas_snippets/read_core_profiles_ne_timeslice.py +0 -0
- {imas_python-1.1.2.dev55 → imas_python-1.1.2.dev57}/docs/source/courses/basic/imas_snippets/read_equilibrium_time_array.py +0 -0
- {imas_python-1.1.2.dev55 → imas_python-1.1.2.dev57}/docs/source/courses/basic/imas_snippets/read_whole_equilibrium.py +0 -0
- {imas_python-1.1.2.dev55 → imas_python-1.1.2.dev57}/docs/source/courses/basic/interactive_tab_core_profiles_toplevel.png +0 -0
- {imas_python-1.1.2.dev55 → imas_python-1.1.2.dev57}/docs/source/courses/basic/print_tree_ids_properties.png +0 -0
- {imas_python-1.1.2.dev55 → imas_python-1.1.2.dev57}/docs/source/imas_structure.png +0 -0
- {imas_python-1.1.2.dev55 → imas_python-1.1.2.dev57}/docs/source/resampling.rst +0 -0
- {imas_python-1.1.2.dev55 → imas_python-1.1.2.dev57}/imas/assets/IDSDef2MDSpreTree.xsl +0 -0
- {imas_python-1.1.2.dev55 → imas_python-1.1.2.dev57}/imas/assets/IDS_fake_toplevel.xml +0 -0
- {imas_python-1.1.2.dev55 → imas_python-1.1.2.dev57}/imas/assets/IDS_minimal.xml +0 -0
- {imas_python-1.1.2.dev55 → imas_python-1.1.2.dev57}/imas/assets/IDS_minimal_2.xml +0 -0
- {imas_python-1.1.2.dev55 → imas_python-1.1.2.dev57}/imas/assets/IDS_minimal_struct_array.xml +0 -0
- {imas_python-1.1.2.dev55 → imas_python-1.1.2.dev57}/imas/assets/IDS_minimal_types.xml +0 -0
- {imas_python-1.1.2.dev55 → imas_python-1.1.2.dev57}/imas/assets/ITER_134173_106_core_profiles.ids +0 -0
- {imas_python-1.1.2.dev55 → imas_python-1.1.2.dev57}/imas/assets/ITER_134173_106_equilibrium.ids +0 -0
- {imas_python-1.1.2.dev55 → imas_python-1.1.2.dev57}/imas/assets/README.md +0 -0
- {imas_python-1.1.2.dev55 → imas_python-1.1.2.dev57}/imas/assets/core_profiles.ids +0 -0
- {imas_python-1.1.2.dev55 → imas_python-1.1.2.dev57}/imas/assets/equilibrium.ids +0 -0
- {imas_python-1.1.2.dev55 → imas_python-1.1.2.dev57}/imas/backends/imas_core/uda_support.py +0 -0
- {imas_python-1.1.2.dev55 → imas_python-1.1.2.dev57}/imas/backends/netcdf/nc2ids.py +0 -0
- {imas_python-1.1.2.dev55 → imas_python-1.1.2.dev57}/imas/backends/netcdf/nc_validate.py +0 -0
- {imas_python-1.1.2.dev55 → imas_python-1.1.2.dev57}/imas/test/test_all_dd_versions.py +0 -0
- {imas_python-1.1.2.dev55 → imas_python-1.1.2.dev57}/imas/test/test_cli.py +0 -0
- {imas_python-1.1.2.dev55 → imas_python-1.1.2.dev57}/imas/test/test_dbentry.py +0 -0
- {imas_python-1.1.2.dev55 → imas_python-1.1.2.dev57}/imas/test/test_dd_zip.py +0 -0
- {imas_python-1.1.2.dev55 → imas_python-1.1.2.dev57}/imas/test/test_deepcopy.py +0 -0
- {imas_python-1.1.2.dev55 → imas_python-1.1.2.dev57}/imas/test/test_exception.py +0 -0
- {imas_python-1.1.2.dev55 → imas_python-1.1.2.dev57}/imas/test/test_get_sample.py +0 -0
- {imas_python-1.1.2.dev55 → imas_python-1.1.2.dev57}/imas/test/test_helpers.py +0 -0
- {imas_python-1.1.2.dev55 → imas_python-1.1.2.dev57}/imas/test/test_identifiers.py +0 -0
- {imas_python-1.1.2.dev55 → imas_python-1.1.2.dev57}/imas/test/test_ids2nc.py +0 -0
- {imas_python-1.1.2.dev55 → imas_python-1.1.2.dev57}/imas/test/test_ids_coordinates.py +0 -0
- {imas_python-1.1.2.dev55 → imas_python-1.1.2.dev57}/imas/test/test_ids_data_type.py +0 -0
- {imas_python-1.1.2.dev55 → imas_python-1.1.2.dev57}/imas/test/test_ids_factory.py +0 -0
- {imas_python-1.1.2.dev55 → imas_python-1.1.2.dev57}/imas/test/test_ids_metadata.py +0 -0
- {imas_python-1.1.2.dev55 → imas_python-1.1.2.dev57}/imas/test/test_ids_path.py +0 -0
- {imas_python-1.1.2.dev55 → imas_python-1.1.2.dev57}/imas/test/test_ids_struct_array.py +0 -0
- {imas_python-1.1.2.dev55 → imas_python-1.1.2.dev57}/imas/test/test_ids_toplevel.py +0 -0
- {imas_python-1.1.2.dev55 → imas_python-1.1.2.dev57}/imas/test/test_ids_validate.py +0 -0
- {imas_python-1.1.2.dev55 → imas_python-1.1.2.dev57}/imas/test/test_latest_dd_autofill.py +0 -0
- {imas_python-1.1.2.dev55 → imas_python-1.1.2.dev57}/imas/test/test_latest_dd_manual.py +0 -0
- {imas_python-1.1.2.dev55 → imas_python-1.1.2.dev57}/imas/test/test_latest_dd_resample.py +0 -0
- {imas_python-1.1.2.dev55 → imas_python-1.1.2.dev57}/imas/test/test_lazy_loading.py +0 -0
- {imas_python-1.1.2.dev55 → imas_python-1.1.2.dev57}/imas/test/test_list_occurrences.py +0 -0
- {imas_python-1.1.2.dev55 → imas_python-1.1.2.dev57}/imas/test/test_minimal.py +0 -0
- {imas_python-1.1.2.dev55 → imas_python-1.1.2.dev57}/imas/test/test_minimal_conversion.py +0 -0
- {imas_python-1.1.2.dev55 → imas_python-1.1.2.dev57}/imas/test/test_minimal_io.py +0 -0
- {imas_python-1.1.2.dev55 → imas_python-1.1.2.dev57}/imas/test/test_minimal_struct_array_io.py +0 -0
- {imas_python-1.1.2.dev55 → imas_python-1.1.2.dev57}/imas/test/test_minimal_types.py +0 -0
- {imas_python-1.1.2.dev55 → imas_python-1.1.2.dev57}/imas/test/test_minimal_types_io.py +0 -0
- {imas_python-1.1.2.dev55 → imas_python-1.1.2.dev57}/imas/test/test_minimal_types_io_automatic.py +0 -0
- {imas_python-1.1.2.dev55 → imas_python-1.1.2.dev57}/imas/test/test_nbc_change.py +0 -0
- {imas_python-1.1.2.dev55 → imas_python-1.1.2.dev57}/imas/test/test_nc_autofill.py +0 -0
- {imas_python-1.1.2.dev55 → imas_python-1.1.2.dev57}/imas/test/test_nc_entry.py +0 -0
- {imas_python-1.1.2.dev55 → imas_python-1.1.2.dev57}/imas/test/test_nc_metadata.py +0 -0
- {imas_python-1.1.2.dev55 → imas_python-1.1.2.dev57}/imas/test/test_nc_validation.py +0 -0
- {imas_python-1.1.2.dev55 → imas_python-1.1.2.dev57}/imas/test/test_snippets.py +0 -0
- {imas_python-1.1.2.dev55 → imas_python-1.1.2.dev57}/imas/test/test_static_ids.py +0 -0
- {imas_python-1.1.2.dev55 → imas_python-1.1.2.dev57}/imas/test/test_str_1d.py +0 -0
- {imas_python-1.1.2.dev55 → imas_python-1.1.2.dev57}/imas/test/test_time_slicing.py +0 -0
- {imas_python-1.1.2.dev55 → imas_python-1.1.2.dev57}/imas/test/test_uda_support.py +0 -0
- {imas_python-1.1.2.dev55 → imas_python-1.1.2.dev57}/imas/test/test_util.py +0 -0
- {imas_python-1.1.2.dev55 → imas_python-1.1.2.dev57}/imas_python.egg-info/SOURCES.txt +0 -0
- {imas_python-1.1.2.dev55 → imas_python-1.1.2.dev57}/imas_python.egg-info/dependency_links.txt +0 -0
- {imas_python-1.1.2.dev55 → imas_python-1.1.2.dev57}/imas_python.egg-info/entry_points.txt +0 -0
- {imas_python-1.1.2.dev55 → imas_python-1.1.2.dev57}/imas_python.egg-info/not-zip-safe +0 -0
- {imas_python-1.1.2.dev55 → imas_python-1.1.2.dev57}/imas_python.egg-info/requires.txt +0 -0
- {imas_python-1.1.2.dev55 → imas_python-1.1.2.dev57}/imas_python.egg-info/top_level.txt +0 -0
- {imas_python-1.1.2.dev55 → imas_python-1.1.2.dev57}/pyproject.toml +0 -0
- {imas_python-1.1.2.dev55 → imas_python-1.1.2.dev57}/setup.cfg +0 -0
- {imas_python-1.1.2.dev55 → imas_python-1.1.2.dev57}/tools/get_tagnames.py +0 -0
|
@@ -1,23 +1,23 @@
|
|
|
1
1
|
# Contributing guidelines
|
|
2
2
|
|
|
3
|
-
We welcome any kind of contribution to `
|
|
3
|
+
We welcome any kind of contribution to `IMAS-Python`,
|
|
4
4
|
from a simple comment, a question or even a full fledged pull
|
|
5
5
|
request.
|
|
6
6
|
Please first make sure you read and follow the
|
|
7
7
|
[Code of Conduct](CODE_OF_CONDUCT.md).
|
|
8
8
|
|
|
9
9
|
## You think you found a bug in the code, or have a question in its use
|
|
10
|
-
1. use the [issue search](https://github.com/iterorganization/
|
|
10
|
+
1. use the [issue search](https://github.com/iterorganization/IMAS-Python/issues)
|
|
11
11
|
to check if someone already created a similar issue;
|
|
12
12
|
3. if not, make a **new issue** to describe your problem or question.
|
|
13
13
|
In the case of a bug suspiscion, please try to give all the relevant
|
|
14
14
|
information to allow reproducing the error or identifying
|
|
15
|
-
its root cause (version of the
|
|
15
|
+
its root cause (version of the IMAS-Python, OS and relevant
|
|
16
16
|
dependencies, snippet of code);
|
|
17
17
|
4. apply relevant labels to the issue.
|
|
18
18
|
|
|
19
19
|
## You want to make or ask some change to the code
|
|
20
|
-
1. use the [issue search](https://github.com/iterorganization/
|
|
20
|
+
1. use the [issue search](https://github.com/iterorganization/IMAS-Python/issues)
|
|
21
21
|
to check if someone already proposed a similar idea/change;
|
|
22
22
|
3. if not, create a **new issue** to describe what change you would like to see
|
|
23
23
|
implemented and specify it if you intend to work on it yourself or if some help
|
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
Metadata-Version: 2.2
|
|
2
2
|
Name: imas-python
|
|
3
|
-
Version: 1.1.2.
|
|
3
|
+
Version: 1.1.2.dev57
|
|
4
4
|
Summary: Pythonic wrappers for the IMAS Access Layer
|
|
5
5
|
Author: ITER Organization
|
|
6
6
|
Author-email: Karel Lucas van de Plassche <karelvandeplassche@gmail.com>, Daan van Vugt <dvanvugt@ignitioncomputing.com>, Maarten Sebregts <msebregts@ignitioncomputing.com>, imas-support@iter.org
|
|
@@ -236,10 +236,10 @@ Requires-Dist: virtualenv; extra == "test"
|
|
|
236
236
|
Requires-Dist: pint; extra == "test"
|
|
237
237
|
Requires-Dist: xarray; extra == "test"
|
|
238
238
|
|
|
239
|
-
#
|
|
239
|
+
# IMAS-Python
|
|
240
240
|
|
|
241
|
-
|
|
242
|
-
|
|
241
|
+
IMAS-Python is a pure-python library to handle arbitrarily nested data structures.
|
|
242
|
+
It is designed for, but not necessarily bound to, interacting with Interface
|
|
243
243
|
Data Structures (IDSs) as defined by the Integrated Modelling & Analysis Suite (IMAS)
|
|
244
244
|
Data Model.
|
|
245
245
|
|
|
@@ -249,7 +249,7 @@ Data Model.
|
|
|
249
249
|
Install steps are described in the documentation generated from `/docs/source/installing.rst`.
|
|
250
250
|
|
|
251
251
|
Documentation is autogenerated from the source using [Sphinx](http://sphinx-doc.org/)
|
|
252
|
-
and can be found at the [readthedocs](https://
|
|
252
|
+
and can be found at the [readthedocs](https://IMAS-Python.readthedocs.io/en/latest/)
|
|
253
253
|
|
|
254
254
|
The documentation can be manually generated by installing sphinx and running:
|
|
255
255
|
|
|
@@ -278,7 +278,7 @@ A quick 5 minutes introduction is available in the documentation generated from
|
|
|
278
278
|
|
|
279
279
|
## Legal
|
|
280
280
|
|
|
281
|
-
|
|
281
|
+
IMAS-Python is Copyright 2020-2025 ITER Organization, Copyright 2020-2023 Karel Lucas van de
|
|
282
282
|
Plassche <karelvandeplassche@gmail.com>, Copyright 2020-2022 Daan van Vugt <dvanvugt@ignitioncomputing.com>,
|
|
283
283
|
and Copyright 2020 Dutch Institute for Fundamental Energy Research <info@differ.nl>.
|
|
284
284
|
It is licensed under [LGPL 3.0](LICENSE.txt).
|
|
@@ -1,7 +1,7 @@
|
|
|
1
|
-
#
|
|
1
|
+
# IMAS-Python
|
|
2
2
|
|
|
3
|
-
|
|
4
|
-
|
|
3
|
+
IMAS-Python is a pure-python library to handle arbitrarily nested data structures.
|
|
4
|
+
It is designed for, but not necessarily bound to, interacting with Interface
|
|
5
5
|
Data Structures (IDSs) as defined by the Integrated Modelling & Analysis Suite (IMAS)
|
|
6
6
|
Data Model.
|
|
7
7
|
|
|
@@ -11,7 +11,7 @@ Data Model.
|
|
|
11
11
|
Install steps are described in the documentation generated from `/docs/source/installing.rst`.
|
|
12
12
|
|
|
13
13
|
Documentation is autogenerated from the source using [Sphinx](http://sphinx-doc.org/)
|
|
14
|
-
and can be found at the [readthedocs](https://
|
|
14
|
+
and can be found at the [readthedocs](https://IMAS-Python.readthedocs.io/en/latest/)
|
|
15
15
|
|
|
16
16
|
The documentation can be manually generated by installing sphinx and running:
|
|
17
17
|
|
|
@@ -40,7 +40,7 @@ A quick 5 minutes introduction is available in the documentation generated from
|
|
|
40
40
|
|
|
41
41
|
## Legal
|
|
42
42
|
|
|
43
|
-
|
|
43
|
+
IMAS-Python is Copyright 2020-2025 ITER Organization, Copyright 2020-2023 Karel Lucas van de
|
|
44
44
|
Plassche <karelvandeplassche@gmail.com>, Copyright 2020-2022 Daan van Vugt <dvanvugt@ignitioncomputing.com>,
|
|
45
45
|
and Copyright 2020 Dutch Institute for Fundamental Energy Research <info@differ.nl>.
|
|
46
46
|
It is licensed under [LGPL 3.0](LICENSE.txt).
|
|
@@ -7,7 +7,7 @@
|
|
|
7
7
|
"project": "imas",
|
|
8
8
|
|
|
9
9
|
// The project's homepage
|
|
10
|
-
"project_url": "https://github.com/iterorganization/
|
|
10
|
+
"project_url": "https://github.com/iterorganization/IMAS-Python",
|
|
11
11
|
|
|
12
12
|
// The URL or local path of the source code repository for the
|
|
13
13
|
// project being benchmarked
|
|
@@ -53,7 +53,7 @@
|
|
|
53
53
|
//"install_timeout": 600,
|
|
54
54
|
|
|
55
55
|
// the base URL to show a commit for the project.
|
|
56
|
-
"show_commit_url": "https://github.com/iterorganization/
|
|
56
|
+
"show_commit_url": "https://github.com/iterorganization/IMAS-Python/commits/main/",
|
|
57
57
|
|
|
58
58
|
// The Pythons you'd like to test against. If not provided, defaults
|
|
59
59
|
// to the current version of Python used to run `asv`.
|
|
@@ -22,16 +22,16 @@ def fill_slices(core_profiles, times):
|
|
|
22
22
|
"""Fill a time slice of a core_profiles IDS with generated data.
|
|
23
23
|
|
|
24
24
|
Args:
|
|
25
|
-
core_profiles: core_profiles IDS (either from
|
|
25
|
+
core_profiles: core_profiles IDS (either from IMAS-Python or AL Python)
|
|
26
26
|
times: time values to fill a slice for
|
|
27
27
|
"""
|
|
28
28
|
core_profiles.ids_properties.homogeneous_time = 1 # HOMOGENEOUS
|
|
29
|
-
core_profiles.ids_properties.comment = "Generated for the
|
|
29
|
+
core_profiles.ids_properties.comment = "Generated for the IMAS-Python benchmark suite"
|
|
30
30
|
core_profiles.ids_properties.creation_date = datetime.date.today().isoformat()
|
|
31
|
-
core_profiles.code.name = "
|
|
31
|
+
core_profiles.code.name = "IMAS-Python ASV benchmark"
|
|
32
32
|
core_profiles.code.version = imas.__version__
|
|
33
33
|
core_profiles.code.repository = (
|
|
34
|
-
"https://github.com/iterorganization/
|
|
34
|
+
"https://github.com/iterorganization/IMAS-Python"
|
|
35
35
|
)
|
|
36
36
|
|
|
37
37
|
core_profiles.time = np.array(times)
|
|
@@ -17,18 +17,18 @@ def fill_ggd(edge_profiles, times):
|
|
|
17
17
|
"""Fill nested arrays of structures in grids_ggd and ggd substructures.
|
|
18
18
|
|
|
19
19
|
Args:
|
|
20
|
-
edge_profiles: edge_profiles IDS object (either from
|
|
20
|
+
edge_profiles: edge_profiles IDS object (either from IMAS-Python or AL Python)
|
|
21
21
|
times: time values to fill
|
|
22
22
|
"""
|
|
23
23
|
edge_profiles.ids_properties.homogeneous_time = (
|
|
24
24
|
imas.ids_defs.IDS_TIME_MODE_HETEROGENEOUS
|
|
25
25
|
)
|
|
26
|
-
edge_profiles.ids_properties.comment = "Generated for
|
|
26
|
+
edge_profiles.ids_properties.comment = "Generated for IMAS-Python benchmark suite"
|
|
27
27
|
edge_profiles.ids_properties.creation_date = datetime.date.today().isoformat()
|
|
28
|
-
edge_profiles.code.name = "
|
|
28
|
+
edge_profiles.code.name = "IMAS-Python ASV benchmark"
|
|
29
29
|
edge_profiles.code.version = imas.__version__
|
|
30
30
|
edge_profiles.code.repository = (
|
|
31
|
-
"https://github.com/iterorganization/
|
|
31
|
+
"https://github.com/iterorganization/IMAS-Python"
|
|
32
32
|
)
|
|
33
33
|
|
|
34
34
|
# This GGD grid is not a valid description, but it's a good stress test for the
|
|
@@ -19,9 +19,10 @@ def timeraw_import_imas():
|
|
|
19
19
|
# `asv compare` :(
|
|
20
20
|
"""
|
|
21
21
|
def track_imas_versions():
|
|
22
|
-
|
|
23
|
-
equilibrium
|
|
24
|
-
|
|
22
|
+
ids_factory = imas.IDSFactory()
|
|
23
|
+
equilibrium = ids_factory.equilibrium()
|
|
24
|
+
equilibrium.ids_properties.homogeneous_time = imas.ids_defs.IDS_TIME_MODE_INDEPENDENT
|
|
25
|
+
dbentry = imas.DBEntry(imas.ids_defs.MEMORY_BACKEND, "test", 1, 1)
|
|
25
26
|
dbentry.create()
|
|
26
27
|
dbentry.put(equilibrium)
|
|
27
28
|
equilibrium = dbentry.get("equilibrium")
|
|
@@ -76,7 +76,7 @@ def create_dbentry(hli, backend):
|
|
|
76
76
|
)
|
|
77
77
|
except (AttributeError, AssertionError):
|
|
78
78
|
raise NotImplementedError(
|
|
79
|
-
"This version of
|
|
79
|
+
"This version of IMAS-Python doesn't implement netCDF."
|
|
80
80
|
) from None
|
|
81
81
|
|
|
82
82
|
path = Path.cwd() / f"DB-{hli}-{backend}"
|
|
@@ -1,5 +1,5 @@
|
|
|
1
1
|
#!/bin/bash
|
|
2
|
-
# Bamboo CI script to install imas and run all tests
|
|
2
|
+
# Bamboo CI script to install imas Python module and run all tests
|
|
3
3
|
# Note: this script should be run from the root of the git repository
|
|
4
4
|
|
|
5
5
|
# Debuggging:
|
|
@@ -27,7 +27,7 @@ pip install --upgrade pip setuptools wheel build
|
|
|
27
27
|
rm -rf dist
|
|
28
28
|
python -m build .
|
|
29
29
|
|
|
30
|
-
# Install imas and documentation dependencies from the just-built wheel
|
|
30
|
+
# Install imas Python module and documentation dependencies from the just-built wheel
|
|
31
31
|
pip install "`readlink -f dist/*.whl`[docs,netcdf]"
|
|
32
32
|
|
|
33
33
|
# Debugging:
|
|
@@ -1,5 +1,5 @@
|
|
|
1
1
|
#!/bin/bash
|
|
2
|
-
# Bamboo CI script to install imas and run all tests
|
|
2
|
+
# Bamboo CI script to install imas Python module and run all tests
|
|
3
3
|
# Note: this script should be run from the root of the git repository
|
|
4
4
|
|
|
5
5
|
# Debuggging:
|
|
@@ -59,7 +59,7 @@ asv machine --yes
|
|
|
59
59
|
# Run ASV for the current commit, develop and main
|
|
60
60
|
asv run --skip-existing-successful HEAD^!
|
|
61
61
|
asv run --skip-existing-successful develop^!
|
|
62
|
-
|
|
62
|
+
asv run --skip-existing-successful main^!
|
|
63
63
|
|
|
64
64
|
# Compare results
|
|
65
65
|
if [ `git rev-parse --abbrev-ref HEAD` == develop ]
|
|
@@ -75,5 +75,5 @@ asv publish
|
|
|
75
75
|
# And persistently store them
|
|
76
76
|
cp -rf .asv/{results,html} "$BENCHMARKS_DIR"
|
|
77
77
|
|
|
78
|
-
|
|
78
|
+
|
|
79
79
|
|
|
@@ -1,5 +1,5 @@
|
|
|
1
1
|
#!/bin/bash
|
|
2
|
-
# Bamboo CI script to install imas and run all tests
|
|
2
|
+
# Bamboo CI script to install imas Python module and run all tests
|
|
3
3
|
# Note: this script should be run from the root of the git repository
|
|
4
4
|
|
|
5
5
|
# Debuggging:
|
|
@@ -37,8 +37,10 @@ pip freeze
|
|
|
37
37
|
# Clean artifacts created by pytest
|
|
38
38
|
rm -f junit.xml
|
|
39
39
|
rm -rf htmlcov
|
|
40
|
-
mkdir -p ~/tmp
|
|
41
|
-
export PYTEST_DEBUG_TEMPROOT=~/tmp
|
|
42
|
-
python -m pytest -n=auto --cov=imas --cov-report=term-missing --cov-report=html --junit-xml=junit.xml -x
|
|
43
40
|
|
|
44
|
-
|
|
41
|
+
# setups local directory to not to full /tmp directory with pytest temporary files
|
|
42
|
+
# mkdir -p ~/tmp
|
|
43
|
+
# export PYTEST_DEBUG_TEMPROOT=~/tmp
|
|
44
|
+
python -m pytest -n=auto --cov=imas --cov-report=term-missing --cov-report=html --junit-xml=junit.xml
|
|
45
|
+
|
|
46
|
+
|
|
@@ -1,5 +1,5 @@
|
|
|
1
|
-
# This file is part of
|
|
2
|
-
# You should have received the
|
|
1
|
+
# This file is part of IMAS-Python.
|
|
2
|
+
# You should have received the IMAS-Python LICENSE file with this project.
|
|
3
3
|
#
|
|
4
4
|
# Set up pytest:
|
|
5
5
|
# - Backend parametrization (and corresponding command line options)
|
|
@@ -3,11 +3,11 @@
|
|
|
3
3
|
API reference
|
|
4
4
|
=============
|
|
5
5
|
|
|
6
|
-
This page provides an auto-generated summary of
|
|
6
|
+
This page provides an auto-generated summary of IMAS-Python's API. For more details
|
|
7
7
|
and examples, refer to the relevant chapters in the main part of the
|
|
8
8
|
documentation.
|
|
9
9
|
|
|
10
|
-
|
|
10
|
+
IMAS-Python IDS manipulation
|
|
11
11
|
----------------------------
|
|
12
12
|
|
|
13
13
|
.. currentmodule:: imas
|
|
@@ -1,16 +1,16 @@
|
|
|
1
|
-
.. _`benchmarking IMAS`:
|
|
1
|
+
.. _`benchmarking IMAS-Python`:
|
|
2
2
|
|
|
3
|
-
Benchmarking
|
|
3
|
+
Benchmarking IMAS-Python
|
|
4
4
|
========================
|
|
5
5
|
|
|
6
|
-
|
|
6
|
+
IMAS-Python integrates with the `airspeed velocity
|
|
7
7
|
<https://asv.readthedocs.io/en/stable/index.html>`_ ``asv`` package for benchmarking.
|
|
8
8
|
|
|
9
9
|
|
|
10
|
-
|
|
10
|
+
IMAS-Python benchmarks
|
|
11
11
|
----------------------
|
|
12
12
|
|
|
13
|
-
|
|
13
|
+
IMAS-Python benchmarks are stored in the ``benchmarks`` folder in the git repository. We can
|
|
14
14
|
currently distinguish three types of benchmarks:
|
|
15
15
|
|
|
16
16
|
Technical benchmarks
|
|
@@ -19,15 +19,14 @@ Technical benchmarks
|
|
|
19
19
|
package.
|
|
20
20
|
|
|
21
21
|
Basic functional benchmarks
|
|
22
|
-
These are for benchmarking functionality with an
|
|
23
|
-
|
|
24
|
-
over time, we can also benchmark the performance against the traditional HLI.
|
|
22
|
+
These are for benchmarking functionality with an addition to track the performance
|
|
23
|
+
of the IMAS-Python features over time.
|
|
25
24
|
|
|
26
25
|
For example: putting and getting IDSs.
|
|
27
26
|
|
|
28
|
-
|
|
29
|
-
These are for benchmarking
|
|
30
|
-
|
|
27
|
+
IMAS-Python-specific functional benchmarks
|
|
28
|
+
These are for benchmarking core functionalities for checking performance. We use these
|
|
29
|
+
for tracking the IMAS-Python core features performance over time.
|
|
31
30
|
|
|
32
31
|
For example: data conversion between DD versions.
|
|
33
32
|
|
|
@@ -35,7 +34,7 @@ imas-python-specific functional benchmarks
|
|
|
35
34
|
Running benchmarks (quick)
|
|
36
35
|
--------------------------
|
|
37
36
|
|
|
38
|
-
When you have an existing
|
|
37
|
+
When you have an existing IMAS-Python installation, you can run the benchmarks like this:
|
|
39
38
|
|
|
40
39
|
.. code-block:: console
|
|
41
40
|
|
|
@@ -62,33 +61,31 @@ contains tabular results. Some examples:
|
|
|
62
61
|
.. code-block:: text
|
|
63
62
|
:caption: Example output for a test parametrized in ``hli``
|
|
64
63
|
|
|
65
|
-
[
|
|
66
|
-
[
|
|
67
|
-
|
|
68
|
-
|
|
69
|
-
|
|
70
|
-
|
|
71
|
-
======== ============
|
|
64
|
+
[56.25%] ··· core_profiles.Generate.time_create_core_profiles ok
|
|
65
|
+
[56.25%] ··· ====== =============
|
|
66
|
+
hli
|
|
67
|
+
------ -------------
|
|
68
|
+
imas 2.04±0.01μs
|
|
69
|
+
====== =============
|
|
72
70
|
|
|
73
|
-
|
|
74
|
-
|
|
75
|
-
``imas
|
|
71
|
+
|
|
72
|
+
Here we see the benchmark ``core_profiles.Generate.time_create_core_profiles`` for
|
|
73
|
+
imas-python ``imas-python``.
|
|
76
74
|
|
|
77
75
|
Some benchmarks are parametrized in multiple dimensions, as in below example. This
|
|
78
76
|
results in a 2D table of results.
|
|
79
77
|
|
|
80
78
|
.. code-block:: text
|
|
81
|
-
:caption: Example output for a test parametrized in ``
|
|
82
|
-
|
|
83
|
-
[
|
|
84
|
-
[
|
|
85
|
-
|
|
86
|
-
|
|
87
|
-
|
|
88
|
-
|
|
89
|
-
|
|
90
|
-
|
|
91
|
-
======== ========== ============ =========
|
|
79
|
+
:caption: Example output for a test parametrized in ``imas-python`` and ``backend``
|
|
80
|
+
|
|
81
|
+
[65.62%] ··· core_profiles.Get.time_get ok
|
|
82
|
+
[65.62%] ··· ====== ========= ========== ============ ========= ============
|
|
83
|
+
-- backend
|
|
84
|
+
------ --------------------------------------------------------
|
|
85
|
+
hli HDF5 MDSplus memory ASCII netCDF
|
|
86
|
+
====== ========= ========== ============ ========= ============
|
|
87
|
+
imas 172±3ms 86.7±2ms 68.5±0.8ms 291±3ms 14.2±0.7ms
|
|
88
|
+
====== ========= ========== ============ ========= ============
|
|
92
89
|
|
|
93
90
|
.. note::
|
|
94
91
|
The backends are listed by their numerical IDS:
|
|
@@ -103,8 +100,8 @@ Running benchmarks (advanced)
|
|
|
103
100
|
-----------------------------
|
|
104
101
|
|
|
105
102
|
Running benchmarks quickly, as explained in the previous section, is great during
|
|
106
|
-
development and for comparing the performance of
|
|
107
|
-
``asv`` can also track the performance of benchmarks over various commits of
|
|
103
|
+
development and for comparing the performance of IMAS-Python. However,
|
|
104
|
+
``asv`` can also track the performance of benchmarks over various commits of IMAS-Python.
|
|
108
105
|
Unfortunately this is a bit more tricky to set up.
|
|
109
106
|
|
|
110
107
|
|
|
@@ -112,23 +109,8 @@ Setup advanced benchmarking
|
|
|
112
109
|
'''''''''''''''''''''''''''
|
|
113
110
|
|
|
114
111
|
First, some background on how ``asv`` tracks performance: it creates an isolated virtual
|
|
115
|
-
environment (using the ``virtualenv`` package) and installs
|
|
116
|
-
will be benchmarked.
|
|
117
|
-
package won't be available. We need to work around it by setting the environment
|
|
118
|
-
variable ``ASV_PYTHONPATH``:
|
|
119
|
-
|
|
120
|
-
.. code-block:: console
|
|
121
|
-
:caption: Setting up the ``ASV_PYTHONPATH`` on SDCC
|
|
122
|
-
|
|
123
|
-
$ module load IMAS
|
|
124
|
-
$ export ASV_PYTHONPATH="$PYTHONPATH"
|
|
125
|
-
|
|
126
|
-
.. caution::
|
|
127
|
-
|
|
128
|
-
``imas`` must not be available on the ``ASV_PYTHONPATH`` to avoid the interfering
|
|
129
|
-
of two imas modules (one on the ``PYTHONPATH``, and the other installed by ``asv``
|
|
130
|
-
in the virtual environment).
|
|
131
|
-
|
|
112
|
+
environment (using the ``virtualenv`` package) and installs IMAS-Python for each commit that
|
|
113
|
+
will be benchmarked.
|
|
132
114
|
|
|
133
115
|
Deciding which commits to benchmark
|
|
134
116
|
'''''''''''''''''''''''''''''''''''
|
|
@@ -171,7 +153,7 @@ Instead, you can submit a benchmark job to the compute nodes.
|
|
|
171
153
|
#!/bin/bash
|
|
172
154
|
|
|
173
155
|
# Set SLURM options:
|
|
174
|
-
#SBATCH --job-name=
|
|
156
|
+
#SBATCH --job-name=IMAS-Python-benchmark
|
|
175
157
|
#SBATCH --time=1:00:00
|
|
176
158
|
#SBATCH --partition=gen10_ib
|
|
177
159
|
# Note: for proper benchmarking we need to exclusively reserve a node, even though
|
|
@@ -184,19 +166,14 @@ Instead, you can submit a benchmark job to the compute nodes.
|
|
|
184
166
|
.. code-block:: bash
|
|
185
167
|
:caption: Benchmark run script (``run_benchmarks.sh``)
|
|
186
168
|
|
|
187
|
-
# Load IMAS module
|
|
169
|
+
# Load IMAS-AL-Core module
|
|
188
170
|
module purge
|
|
189
|
-
module load IMAS
|
|
190
|
-
|
|
171
|
+
module load IMAS-AL-Core
|
|
172
|
+
module load Python
|
|
173
|
+
|
|
174
|
+
# Verify we can run python
|
|
191
175
|
echo "Python version:"
|
|
192
176
|
python --version
|
|
193
|
-
echo "Import imas:"
|
|
194
|
-
python -c 'import imas; print(imas)'
|
|
195
|
-
|
|
196
|
-
# Set the ASV_PYTHONPATH so we can `import imas` in the benchmarks
|
|
197
|
-
export ASV_PYTHONPATH="$PYTHONPATH"
|
|
198
|
-
echo "ASV_PYTHONPATH=$ASV_PYTHONPATH"
|
|
199
|
-
echo
|
|
200
177
|
|
|
201
178
|
# Activate the virtual environment which has asv installed
|
|
202
179
|
. venv_imas/bin/activate
|