imas-python 0.1.dev1628__tar.gz → 0.1.dev1630__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.
Potentially problematic release.
This version of imas-python might be problematic. Click here for more details.
- {imas_python-0.1.dev1628 → imas_python-0.1.dev1630}/.gitignore +1 -4
- imas_python-0.1.dev1630/.readthedocs.yml +23 -0
- {imas_python-0.1.dev1628 → imas_python-0.1.dev1630}/PKG-INFO +5 -3
- {imas_python-0.1.dev1628 → imas_python-0.1.dev1630}/README.md +1 -1
- {imas_python-0.1.dev1628 → imas_python-0.1.dev1630}/docs/source/ci_config.rst +2 -2
- {imas_python-0.1.dev1628 → imas_python-0.1.dev1630}/docs/source/imas_architecture.rst +1 -1
- {imas_python-0.1.dev1628 → imas_python-0.1.dev1630}/docs/source/index.rst +1 -1
- {imas_python-0.1.dev1628 → imas_python-0.1.dev1630}/imas/__init__.py +1 -4
- {imas_python-0.1.dev1628 → imas_python-0.1.dev1630}/imas/_version.py +2 -2
- {imas_python-0.1.dev1628 → imas_python-0.1.dev1630}/imas/assets/IDSDef.zip +0 -0
- imas_python-0.1.dev1630/imas/dd_helpers.py +169 -0
- {imas_python-0.1.dev1628 → imas_python-0.1.dev1630}/imas/ids_structure.py +2 -2
- {imas_python-0.1.dev1628 → imas_python-0.1.dev1630}/imas_python.egg-info/PKG-INFO +5 -3
- {imas_python-0.1.dev1628 → imas_python-0.1.dev1630}/imas_python.egg-info/SOURCES.txt +1 -0
- {imas_python-0.1.dev1628 → imas_python-0.1.dev1630}/imas_python.egg-info/requires.txt +2 -0
- {imas_python-0.1.dev1628 → imas_python-0.1.dev1630}/pyproject.toml +5 -3
- imas_python-0.1.dev1628/imas/dd_helpers.py +0 -300
- {imas_python-0.1.dev1628 → imas_python-0.1.dev1630}/.git-blame-ignore-revs +0 -0
- {imas_python-0.1.dev1628 → imas_python-0.1.dev1630}/.git_archival.txt +0 -0
- {imas_python-0.1.dev1628 → imas_python-0.1.dev1630}/.gitattributes +0 -0
- {imas_python-0.1.dev1628 → imas_python-0.1.dev1630}/.github/workflows/liniting.yml +0 -0
- {imas_python-0.1.dev1628 → imas_python-0.1.dev1630}/.github/workflows/publish.yml +0 -0
- {imas_python-0.1.dev1628 → imas_python-0.1.dev1630}/.pylintrc +0 -0
- {imas_python-0.1.dev1628 → imas_python-0.1.dev1630}/CODE_OF_CONDUCT.md +0 -0
- {imas_python-0.1.dev1628 → imas_python-0.1.dev1630}/CONTRIBUTING.md +0 -0
- {imas_python-0.1.dev1628 → imas_python-0.1.dev1630}/LICENSE.txt +0 -0
- {imas_python-0.1.dev1628 → imas_python-0.1.dev1630}/MANIFEST.in +0 -0
- {imas_python-0.1.dev1628 → imas_python-0.1.dev1630}/asv.conf.json +0 -0
- {imas_python-0.1.dev1628 → imas_python-0.1.dev1630}/benchmarks/__init__.py +0 -0
- {imas_python-0.1.dev1628 → imas_python-0.1.dev1630}/benchmarks/core_profiles.py +0 -0
- {imas_python-0.1.dev1628 → imas_python-0.1.dev1630}/benchmarks/edge_profiles.py +0 -0
- {imas_python-0.1.dev1628 → imas_python-0.1.dev1630}/benchmarks/technical.py +0 -0
- {imas_python-0.1.dev1628 → imas_python-0.1.dev1630}/benchmarks/utils.py +0 -0
- {imas_python-0.1.dev1628 → imas_python-0.1.dev1630}/ci/build_dd_zip.sh +0 -0
- {imas_python-0.1.dev1628 → imas_python-0.1.dev1630}/ci/build_docs_and_dist.sh +0 -0
- {imas_python-0.1.dev1628 → imas_python-0.1.dev1630}/ci/linting.sh +0 -0
- {imas_python-0.1.dev1628 → imas_python-0.1.dev1630}/ci/run_benchmark.sh +0 -0
- {imas_python-0.1.dev1628 → imas_python-0.1.dev1630}/ci/run_pytest.sh +0 -0
- {imas_python-0.1.dev1628 → imas_python-0.1.dev1630}/conftest.py +0 -0
- {imas_python-0.1.dev1628 → imas_python-0.1.dev1630}/docs/.gitignore +0 -0
- {imas_python-0.1.dev1628 → imas_python-0.1.dev1630}/docs/Makefile +0 -0
- {imas_python-0.1.dev1628 → imas_python-0.1.dev1630}/docs/source/.gitignore +0 -0
- {imas_python-0.1.dev1628 → imas_python-0.1.dev1630}/docs/source/_static/imas.css +0 -0
- {imas_python-0.1.dev1628 → imas_python-0.1.dev1630}/docs/source/_static/imas_200x200.png +0 -0
- {imas_python-0.1.dev1628 → imas_python-0.1.dev1630}/docs/source/_templates/autosummary/accessor.rst +0 -0
- {imas_python-0.1.dev1628 → imas_python-0.1.dev1630}/docs/source/_templates/autosummary/accessor_attribute.rst +0 -0
- {imas_python-0.1.dev1628 → imas_python-0.1.dev1630}/docs/source/_templates/autosummary/accessor_callable.rst +0 -0
- {imas_python-0.1.dev1628 → imas_python-0.1.dev1630}/docs/source/_templates/autosummary/accessor_method.rst +0 -0
- {imas_python-0.1.dev1628 → imas_python-0.1.dev1630}/docs/source/_templates/autosummary/base.rst +0 -0
- {imas_python-0.1.dev1628 → imas_python-0.1.dev1630}/docs/source/_templates/custom-class-template.rst +0 -0
- {imas_python-0.1.dev1628 → imas_python-0.1.dev1630}/docs/source/_templates/custom-module-template.rst +0 -0
- {imas_python-0.1.dev1628 → imas_python-0.1.dev1630}/docs/source/_templates/layout.html +0 -0
- {imas_python-0.1.dev1628 → imas_python-0.1.dev1630}/docs/source/api-hidden.rst +0 -0
- {imas_python-0.1.dev1628 → imas_python-0.1.dev1630}/docs/source/api.rst +0 -0
- {imas_python-0.1.dev1628 → imas_python-0.1.dev1630}/docs/source/benchmarking.rst +0 -0
- {imas_python-0.1.dev1628 → imas_python-0.1.dev1630}/docs/source/changelog.rst +0 -0
- {imas_python-0.1.dev1628 → imas_python-0.1.dev1630}/docs/source/cli.rst +0 -0
- {imas_python-0.1.dev1628 → imas_python-0.1.dev1630}/docs/source/code_style.rst +0 -0
- {imas_python-0.1.dev1628 → imas_python-0.1.dev1630}/docs/source/conf.py +0 -0
- {imas_python-0.1.dev1628 → imas_python-0.1.dev1630}/docs/source/configuring.rst +0 -0
- {imas_python-0.1.dev1628 → imas_python-0.1.dev1630}/docs/source/courses/advanced/dd_versions.rst +0 -0
- {imas_python-0.1.dev1628 → imas_python-0.1.dev1630}/docs/source/courses/advanced/explore.rst +0 -0
- {imas_python-0.1.dev1628 → imas_python-0.1.dev1630}/docs/source/courses/advanced/hashing.rst +0 -0
- {imas_python-0.1.dev1628 → imas_python-0.1.dev1630}/docs/source/courses/advanced/imas_snippets/alternative_coordinates.py +0 -0
- {imas_python-0.1.dev1628 → imas_python-0.1.dev1630}/docs/source/courses/advanced/imas_snippets/autoconvert_get.py +0 -0
- {imas_python-0.1.dev1628 → imas_python-0.1.dev1630}/docs/source/courses/advanced/imas_snippets/autoconvert_put.py +0 -0
- {imas_python-0.1.dev1628 → imas_python-0.1.dev1630}/docs/source/courses/advanced/imas_snippets/calc_with_units.py +0 -0
- {imas_python-0.1.dev1628 → imas_python-0.1.dev1630}/docs/source/courses/advanced/imas_snippets/coordinates.py +0 -0
- {imas_python-0.1.dev1628 → imas_python-0.1.dev1630}/docs/source/courses/advanced/imas_snippets/dd_versions.py +0 -0
- {imas_python-0.1.dev1628 → imas_python-0.1.dev1630}/docs/source/courses/advanced/imas_snippets/explore_data.py +0 -0
- {imas_python-0.1.dev1628 → imas_python-0.1.dev1630}/docs/source/courses/advanced/imas_snippets/explore_structures.py +0 -0
- {imas_python-0.1.dev1628 → imas_python-0.1.dev1630}/docs/source/courses/advanced/imas_snippets/hashing.py +0 -0
- {imas_python-0.1.dev1628 → imas_python-0.1.dev1630}/docs/source/courses/advanced/imas_snippets/ids_convert.py +0 -0
- {imas_python-0.1.dev1628 → imas_python-0.1.dev1630}/docs/source/courses/advanced/imas_snippets/ids_to_xarray.py +0 -0
- {imas_python-0.1.dev1628 → imas_python-0.1.dev1630}/docs/source/courses/advanced/imas_snippets/tensorized_ids_to_xarray.py +0 -0
- {imas_python-0.1.dev1628 → imas_python-0.1.dev1630}/docs/source/courses/advanced/metadata.rst +0 -0
- {imas_python-0.1.dev1628 → imas_python-0.1.dev1630}/docs/source/courses/advanced/xarray.rst +0 -0
- {imas_python-0.1.dev1628 → imas_python-0.1.dev1630}/docs/source/courses/advanced_user_training.rst +0 -0
- {imas_python-0.1.dev1628 → imas_python-0.1.dev1630}/docs/source/courses/basic/analyze.rst +0 -0
- {imas_python-0.1.dev1628 → imas_python-0.1.dev1630}/docs/source/courses/basic/core_profiles_ne_timeslice.png +0 -0
- {imas_python-0.1.dev1628 → imas_python-0.1.dev1630}/docs/source/courses/basic/core_profiles_te.png +0 -0
- {imas_python-0.1.dev1628 → imas_python-0.1.dev1630}/docs/source/courses/basic/create.rst +0 -0
- {imas_python-0.1.dev1628 → imas_python-0.1.dev1630}/docs/source/courses/basic/explore.rst +0 -0
- {imas_python-0.1.dev1628 → imas_python-0.1.dev1630}/docs/source/courses/basic/imas_inspect.png +0 -0
- {imas_python-0.1.dev1628 → imas_python-0.1.dev1630}/docs/source/courses/basic/imas_snippets/create_core_profiles.py +0 -0
- {imas_python-0.1.dev1628 → imas_python-0.1.dev1630}/docs/source/courses/basic/imas_snippets/explore_public_ec_launchers.py +0 -0
- {imas_python-0.1.dev1628 → imas_python-0.1.dev1630}/docs/source/courses/basic/imas_snippets/explore_public_pf_active.py +0 -0
- {imas_python-0.1.dev1628 → imas_python-0.1.dev1630}/docs/source/courses/basic/imas_snippets/explore_training_data.py +0 -0
- {imas_python-0.1.dev1628 → imas_python-0.1.dev1630}/docs/source/courses/basic/imas_snippets/find_paths.py +0 -0
- {imas_python-0.1.dev1628 → imas_python-0.1.dev1630}/docs/source/courses/basic/imas_snippets/iterate_core_profiles.py +0 -0
- {imas_python-0.1.dev1628 → imas_python-0.1.dev1630}/docs/source/courses/basic/imas_snippets/plot_core_profiles_ne_timeslice.py +0 -0
- {imas_python-0.1.dev1628 → imas_python-0.1.dev1630}/docs/source/courses/basic/imas_snippets/plot_core_profiles_te.py +0 -0
- {imas_python-0.1.dev1628 → imas_python-0.1.dev1630}/docs/source/courses/basic/imas_snippets/print_idss.py +0 -0
- {imas_python-0.1.dev1628 → imas_python-0.1.dev1630}/docs/source/courses/basic/imas_snippets/read_core_profiles_ne_timeslice.py +0 -0
- {imas_python-0.1.dev1628 → imas_python-0.1.dev1630}/docs/source/courses/basic/imas_snippets/read_equilibrium_time_array.py +0 -0
- {imas_python-0.1.dev1628 → imas_python-0.1.dev1630}/docs/source/courses/basic/imas_snippets/read_whole_equilibrium.py +0 -0
- {imas_python-0.1.dev1628 → imas_python-0.1.dev1630}/docs/source/courses/basic/imas_snippets/transform_grid.py +0 -0
- {imas_python-0.1.dev1628 → imas_python-0.1.dev1630}/docs/source/courses/basic/interactive_tab_core_profiles_toplevel.png +0 -0
- {imas_python-0.1.dev1628 → imas_python-0.1.dev1630}/docs/source/courses/basic/print_tree_ids_properties.png +0 -0
- {imas_python-0.1.dev1628 → imas_python-0.1.dev1630}/docs/source/courses/basic/setup.rst +0 -0
- {imas_python-0.1.dev1628 → imas_python-0.1.dev1630}/docs/source/courses/basic/transform.rst +0 -0
- {imas_python-0.1.dev1628 → imas_python-0.1.dev1630}/docs/source/courses/basic_user_training.rst +0 -0
- {imas_python-0.1.dev1628 → imas_python-0.1.dev1630}/docs/source/identifiers.rst +0 -0
- {imas_python-0.1.dev1628 → imas_python-0.1.dev1630}/docs/source/imas_structure.png +0 -0
- {imas_python-0.1.dev1628 → imas_python-0.1.dev1630}/docs/source/installing.rst +0 -0
- {imas_python-0.1.dev1628 → imas_python-0.1.dev1630}/docs/source/intro.rst +0 -0
- {imas_python-0.1.dev1628 → imas_python-0.1.dev1630}/docs/source/lazy_loading.rst +0 -0
- {imas_python-0.1.dev1628 → imas_python-0.1.dev1630}/docs/source/mdsplus.rst +0 -0
- {imas_python-0.1.dev1628 → imas_python-0.1.dev1630}/docs/source/metadata.rst +0 -0
- {imas_python-0.1.dev1628 → imas_python-0.1.dev1630}/docs/source/multi-dd.rst +0 -0
- {imas_python-0.1.dev1628 → imas_python-0.1.dev1630}/docs/source/netcdf/conventions.rst +0 -0
- {imas_python-0.1.dev1628 → imas_python-0.1.dev1630}/docs/source/netcdf.rst +0 -0
- {imas_python-0.1.dev1628 → imas_python-0.1.dev1630}/docs/source/release_imas.rst +0 -0
- {imas_python-0.1.dev1628 → imas_python-0.1.dev1630}/docs/source/resampling.rst +0 -0
- {imas_python-0.1.dev1628 → imas_python-0.1.dev1630}/docs/source/validation.rst +0 -0
- {imas_python-0.1.dev1628 → imas_python-0.1.dev1630}/imas/__main__.py +0 -0
- {imas_python-0.1.dev1628 → imas_python-0.1.dev1630}/imas/_util.py +0 -0
- {imas_python-0.1.dev1628 → imas_python-0.1.dev1630}/imas/assets/IDSDef2MDSpreTree.xsl +0 -0
- {imas_python-0.1.dev1628 → imas_python-0.1.dev1630}/imas/assets/IDS_fake_toplevel.xml +0 -0
- {imas_python-0.1.dev1628 → imas_python-0.1.dev1630}/imas/assets/IDS_minimal.xml +0 -0
- {imas_python-0.1.dev1628 → imas_python-0.1.dev1630}/imas/assets/IDS_minimal_2.xml +0 -0
- {imas_python-0.1.dev1628 → imas_python-0.1.dev1630}/imas/assets/IDS_minimal_struct_array.xml +0 -0
- {imas_python-0.1.dev1628 → imas_python-0.1.dev1630}/imas/assets/IDS_minimal_types.xml +0 -0
- {imas_python-0.1.dev1628 → imas_python-0.1.dev1630}/imas/assets/ITER_134173_106_core_profiles.ids +0 -0
- {imas_python-0.1.dev1628 → imas_python-0.1.dev1630}/imas/assets/ITER_134173_106_equilibrium.ids +0 -0
- {imas_python-0.1.dev1628 → imas_python-0.1.dev1630}/imas/assets/README.md +0 -0
- {imas_python-0.1.dev1628 → imas_python-0.1.dev1630}/imas/assets/core_profiles.ids +0 -0
- {imas_python-0.1.dev1628 → imas_python-0.1.dev1630}/imas/assets/equilibrium.ids +0 -0
- {imas_python-0.1.dev1628 → imas_python-0.1.dev1630}/imas/backends/__init__.py +0 -0
- {imas_python-0.1.dev1628 → imas_python-0.1.dev1630}/imas/backends/db_entry_impl.py +0 -0
- {imas_python-0.1.dev1628 → imas_python-0.1.dev1630}/imas/backends/imas_core/__init__.py +0 -0
- {imas_python-0.1.dev1628 → imas_python-0.1.dev1630}/imas/backends/imas_core/al_context.py +0 -0
- {imas_python-0.1.dev1628 → imas_python-0.1.dev1630}/imas/backends/imas_core/db_entry_al.py +0 -0
- {imas_python-0.1.dev1628 → imas_python-0.1.dev1630}/imas/backends/imas_core/db_entry_helpers.py +0 -0
- {imas_python-0.1.dev1628 → imas_python-0.1.dev1630}/imas/backends/imas_core/imas_interface.py +0 -0
- {imas_python-0.1.dev1628 → imas_python-0.1.dev1630}/imas/backends/imas_core/mdsplus_model.py +0 -0
- {imas_python-0.1.dev1628 → imas_python-0.1.dev1630}/imas/backends/imas_core/uda_support.py +0 -0
- {imas_python-0.1.dev1628 → imas_python-0.1.dev1630}/imas/backends/netcdf/__init__.py +0 -0
- {imas_python-0.1.dev1628 → imas_python-0.1.dev1630}/imas/backends/netcdf/db_entry_nc.py +0 -0
- {imas_python-0.1.dev1628 → imas_python-0.1.dev1630}/imas/backends/netcdf/ids2nc.py +0 -0
- {imas_python-0.1.dev1628 → imas_python-0.1.dev1630}/imas/backends/netcdf/nc2ids.py +0 -0
- {imas_python-0.1.dev1628 → imas_python-0.1.dev1630}/imas/backends/netcdf/nc_metadata.py +0 -0
- {imas_python-0.1.dev1628 → imas_python-0.1.dev1630}/imas/backends/netcdf/nc_validate.py +0 -0
- {imas_python-0.1.dev1628 → imas_python-0.1.dev1630}/imas/command/cli.py +0 -0
- {imas_python-0.1.dev1628 → imas_python-0.1.dev1630}/imas/command/db_analysis.py +0 -0
- {imas_python-0.1.dev1628 → imas_python-0.1.dev1630}/imas/command/helpers.py +0 -0
- {imas_python-0.1.dev1628 → imas_python-0.1.dev1630}/imas/command/timer.py +0 -0
- {imas_python-0.1.dev1628 → imas_python-0.1.dev1630}/imas/db_entry.py +0 -0
- {imas_python-0.1.dev1628 → imas_python-0.1.dev1630}/imas/dd_zip.py +0 -0
- {imas_python-0.1.dev1628 → imas_python-0.1.dev1630}/imas/exception.py +0 -0
- {imas_python-0.1.dev1628 → imas_python-0.1.dev1630}/imas/ids_base.py +0 -0
- {imas_python-0.1.dev1628 → imas_python-0.1.dev1630}/imas/ids_convert.py +0 -0
- {imas_python-0.1.dev1628 → imas_python-0.1.dev1630}/imas/ids_coordinates.py +0 -0
- {imas_python-0.1.dev1628 → imas_python-0.1.dev1630}/imas/ids_data_type.py +0 -0
- {imas_python-0.1.dev1628 → imas_python-0.1.dev1630}/imas/ids_defs.py +0 -0
- {imas_python-0.1.dev1628 → imas_python-0.1.dev1630}/imas/ids_factory.py +0 -0
- {imas_python-0.1.dev1628 → imas_python-0.1.dev1630}/imas/ids_identifiers.py +0 -0
- {imas_python-0.1.dev1628 → imas_python-0.1.dev1630}/imas/ids_metadata.py +0 -0
- {imas_python-0.1.dev1628 → imas_python-0.1.dev1630}/imas/ids_path.py +0 -0
- {imas_python-0.1.dev1628 → imas_python-0.1.dev1630}/imas/ids_primitive.py +0 -0
- {imas_python-0.1.dev1628 → imas_python-0.1.dev1630}/imas/ids_struct_array.py +0 -0
- {imas_python-0.1.dev1628 → imas_python-0.1.dev1630}/imas/ids_toplevel.py +0 -0
- {imas_python-0.1.dev1628 → imas_python-0.1.dev1630}/imas/setup_logging.py +0 -0
- {imas_python-0.1.dev1628 → imas_python-0.1.dev1630}/imas/test/test_all_dd_versions.py +0 -0
- {imas_python-0.1.dev1628 → imas_python-0.1.dev1630}/imas/test/test_cli.py +0 -0
- {imas_python-0.1.dev1628 → imas_python-0.1.dev1630}/imas/test/test_dbentry.py +0 -0
- {imas_python-0.1.dev1628 → imas_python-0.1.dev1630}/imas/test/test_dd_helpers.py +0 -0
- {imas_python-0.1.dev1628 → imas_python-0.1.dev1630}/imas/test/test_dd_zip.py +0 -0
- {imas_python-0.1.dev1628 → imas_python-0.1.dev1630}/imas/test/test_deepcopy.py +0 -0
- {imas_python-0.1.dev1628 → imas_python-0.1.dev1630}/imas/test/test_exception.py +0 -0
- {imas_python-0.1.dev1628 → imas_python-0.1.dev1630}/imas/test/test_get_sample.py +0 -0
- {imas_python-0.1.dev1628 → imas_python-0.1.dev1630}/imas/test/test_hash.py +0 -0
- {imas_python-0.1.dev1628 → imas_python-0.1.dev1630}/imas/test/test_helpers.py +0 -0
- {imas_python-0.1.dev1628 → imas_python-0.1.dev1630}/imas/test/test_identifiers.py +0 -0
- {imas_python-0.1.dev1628 → imas_python-0.1.dev1630}/imas/test/test_ids2nc.py +0 -0
- {imas_python-0.1.dev1628 → imas_python-0.1.dev1630}/imas/test/test_ids_ascii_data.py +0 -0
- {imas_python-0.1.dev1628 → imas_python-0.1.dev1630}/imas/test/test_ids_convert.py +0 -0
- {imas_python-0.1.dev1628 → imas_python-0.1.dev1630}/imas/test/test_ids_coordinates.py +0 -0
- {imas_python-0.1.dev1628 → imas_python-0.1.dev1630}/imas/test/test_ids_data_type.py +0 -0
- {imas_python-0.1.dev1628 → imas_python-0.1.dev1630}/imas/test/test_ids_factory.py +0 -0
- {imas_python-0.1.dev1628 → imas_python-0.1.dev1630}/imas/test/test_ids_metadata.py +0 -0
- {imas_python-0.1.dev1628 → imas_python-0.1.dev1630}/imas/test/test_ids_mixin.py +0 -0
- {imas_python-0.1.dev1628 → imas_python-0.1.dev1630}/imas/test/test_ids_path.py +0 -0
- {imas_python-0.1.dev1628 → imas_python-0.1.dev1630}/imas/test/test_ids_primitive.py +0 -0
- {imas_python-0.1.dev1628 → imas_python-0.1.dev1630}/imas/test/test_ids_struct_array.py +0 -0
- {imas_python-0.1.dev1628 → imas_python-0.1.dev1630}/imas/test/test_ids_structure.py +0 -0
- {imas_python-0.1.dev1628 → imas_python-0.1.dev1630}/imas/test/test_ids_toplevel.py +0 -0
- {imas_python-0.1.dev1628 → imas_python-0.1.dev1630}/imas/test/test_ids_validate.py +0 -0
- {imas_python-0.1.dev1628 → imas_python-0.1.dev1630}/imas/test/test_latest_dd_autofill.py +0 -0
- {imas_python-0.1.dev1628 → imas_python-0.1.dev1630}/imas/test/test_latest_dd_manual.py +0 -0
- {imas_python-0.1.dev1628 → imas_python-0.1.dev1630}/imas/test/test_latest_dd_resample.py +0 -0
- {imas_python-0.1.dev1628 → imas_python-0.1.dev1630}/imas/test/test_lazy_loading.py +0 -0
- {imas_python-0.1.dev1628 → imas_python-0.1.dev1630}/imas/test/test_list_occurrences.py +0 -0
- {imas_python-0.1.dev1628 → imas_python-0.1.dev1630}/imas/test/test_minimal.py +0 -0
- {imas_python-0.1.dev1628 → imas_python-0.1.dev1630}/imas/test/test_minimal_conversion.py +0 -0
- {imas_python-0.1.dev1628 → imas_python-0.1.dev1630}/imas/test/test_minimal_io.py +0 -0
- {imas_python-0.1.dev1628 → imas_python-0.1.dev1630}/imas/test/test_minimal_struct_array_io.py +0 -0
- {imas_python-0.1.dev1628 → imas_python-0.1.dev1630}/imas/test/test_minimal_types.py +0 -0
- {imas_python-0.1.dev1628 → imas_python-0.1.dev1630}/imas/test/test_minimal_types_io.py +0 -0
- {imas_python-0.1.dev1628 → imas_python-0.1.dev1630}/imas/test/test_minimal_types_io_automatic.py +0 -0
- {imas_python-0.1.dev1628 → imas_python-0.1.dev1630}/imas/test/test_nbc_change.py +0 -0
- {imas_python-0.1.dev1628 → imas_python-0.1.dev1630}/imas/test/test_nc_autofill.py +0 -0
- {imas_python-0.1.dev1628 → imas_python-0.1.dev1630}/imas/test/test_nc_entry.py +0 -0
- {imas_python-0.1.dev1628 → imas_python-0.1.dev1630}/imas/test/test_nc_metadata.py +0 -0
- {imas_python-0.1.dev1628 → imas_python-0.1.dev1630}/imas/test/test_nc_validation.py +0 -0
- {imas_python-0.1.dev1628 → imas_python-0.1.dev1630}/imas/test/test_snippets.py +0 -0
- {imas_python-0.1.dev1628 → imas_python-0.1.dev1630}/imas/test/test_static_ids.py +0 -0
- {imas_python-0.1.dev1628 → imas_python-0.1.dev1630}/imas/test/test_str_1d.py +0 -0
- {imas_python-0.1.dev1628 → imas_python-0.1.dev1630}/imas/test/test_time_slicing.py +0 -0
- {imas_python-0.1.dev1628 → imas_python-0.1.dev1630}/imas/test/test_uda_support.py +0 -0
- {imas_python-0.1.dev1628 → imas_python-0.1.dev1630}/imas/test/test_util.py +0 -0
- {imas_python-0.1.dev1628 → imas_python-0.1.dev1630}/imas/training.py +0 -0
- {imas_python-0.1.dev1628 → imas_python-0.1.dev1630}/imas/util.py +0 -0
- {imas_python-0.1.dev1628 → imas_python-0.1.dev1630}/imas_python.egg-info/dependency_links.txt +0 -0
- {imas_python-0.1.dev1628 → imas_python-0.1.dev1630}/imas_python.egg-info/entry_points.txt +0 -0
- {imas_python-0.1.dev1628 → imas_python-0.1.dev1630}/imas_python.egg-info/not-zip-safe +0 -0
- {imas_python-0.1.dev1628 → imas_python-0.1.dev1630}/imas_python.egg-info/top_level.txt +0 -0
- {imas_python-0.1.dev1628 → imas_python-0.1.dev1630}/setup.cfg +0 -0
- {imas_python-0.1.dev1628 → imas_python-0.1.dev1630}/setup.py +0 -0
- {imas_python-0.1.dev1628 → imas_python-0.1.dev1630}/tools/compare_lowlevel_access_patterns.py +0 -0
- {imas_python-0.1.dev1628 → imas_python-0.1.dev1630}/tools/extract_test_data.py +0 -0
- {imas_python-0.1.dev1628 → imas_python-0.1.dev1630}/tools/get_tagnames.py +0 -0
|
@@ -0,0 +1,23 @@
|
|
|
1
|
+
version: 2
|
|
2
|
+
|
|
3
|
+
build:
|
|
4
|
+
os: "ubuntu-22.04"
|
|
5
|
+
tools:
|
|
6
|
+
python: "3.11"
|
|
7
|
+
jobs:
|
|
8
|
+
post_checkout:
|
|
9
|
+
- git fetch --unshallow || true
|
|
10
|
+
|
|
11
|
+
python:
|
|
12
|
+
install:
|
|
13
|
+
- method: pip
|
|
14
|
+
path: .
|
|
15
|
+
extra_requirements:
|
|
16
|
+
- docs
|
|
17
|
+
- netcdf
|
|
18
|
+
- h5py
|
|
19
|
+
|
|
20
|
+
sphinx:
|
|
21
|
+
builder: html
|
|
22
|
+
configuration: docs/source/conf.py
|
|
23
|
+
fail_on_warning: false
|
|
@@ -1,8 +1,8 @@
|
|
|
1
1
|
Metadata-Version: 2.2
|
|
2
2
|
Name: imas-python
|
|
3
|
-
Version: 0.1.
|
|
3
|
+
Version: 0.1.dev1630
|
|
4
4
|
Summary: Pythonic wrappers for the IMAS Access Layer
|
|
5
|
-
Author: imas-python
|
|
5
|
+
Author: imas-python developers
|
|
6
6
|
Author-email: Olivier Hoenen <olivier.hoenen@iter.org>
|
|
7
7
|
License: GNU LESSER GENERAL PUBLIC LICENSE
|
|
8
8
|
Version 3, 29 June 2007
|
|
@@ -212,6 +212,8 @@ Requires-Dist: click
|
|
|
212
212
|
Requires-Dist: importlib_resources; python_version < "3.9"
|
|
213
213
|
Requires-Dist: packaging
|
|
214
214
|
Requires-Dist: xxhash>=2
|
|
215
|
+
Requires-Dist: saxonche
|
|
216
|
+
Requires-Dist: gitpython
|
|
215
217
|
Provides-Extra: all
|
|
216
218
|
Requires-Dist: imas[docs,h5py,imas-core,netcdf,test]; extra == "all"
|
|
217
219
|
Provides-Extra: docs
|
|
@@ -247,7 +249,7 @@ Data Model.
|
|
|
247
249
|
Install steps are described in the documentation generated from `/docs/source/installing.rst`.
|
|
248
250
|
|
|
249
251
|
Documentation is autogenerated from the source using [Sphinx](http://sphinx-doc.org/)
|
|
250
|
-
and can be found at the [
|
|
252
|
+
and can be found at the [readthedocs](https://imas-python.readthedocs.io/en/latest/)
|
|
251
253
|
|
|
252
254
|
The documentation can be manually generated by installing sphinx and running:
|
|
253
255
|
|
|
@@ -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 [
|
|
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
|
|
|
@@ -76,8 +76,8 @@ Deployment projects
|
|
|
76
76
|
There are two Bamboo deployment projects for imas-python:
|
|
77
77
|
|
|
78
78
|
`Deploy imas-python-doc <https://ci.iter.org/deploy/viewDeploymentProjectEnvironments.action?id=1784709122>`_
|
|
79
|
-
Deploy the documentation created in the `Build docs and dists` job to `
|
|
80
|
-
<https://
|
|
79
|
+
Deploy the documentation created in the `Build docs and dists` job to `readthedocs
|
|
80
|
+
<https://imas-python.readthedocs.io/en/latest/>`_.
|
|
81
81
|
|
|
82
82
|
This deployment project runs for after each successful CI build of the imas-python main
|
|
83
83
|
branch.
|
|
@@ -25,10 +25,7 @@ from . import (
|
|
|
25
25
|
util,
|
|
26
26
|
)
|
|
27
27
|
|
|
28
|
-
PUBLISHED_DOCUMENTATION_ROOT =
|
|
29
|
-
"https://sharepoint.iter.org/departments/POP/CM/IMDesign/"
|
|
30
|
-
"Code%20Documentation/imas-python-doc"
|
|
31
|
-
)
|
|
28
|
+
PUBLISHED_DOCUMENTATION_ROOT = "https://imas-python.readthedocs.io/en/latest/"
|
|
32
29
|
"""URL to the published documentation."""
|
|
33
30
|
OLDEST_SUPPORTED_VERSION = _V("3.22.0")
|
|
34
31
|
"""Oldest Data Dictionary version that is supported by imas-python."""
|
|
@@ -12,5 +12,5 @@ __version__: str
|
|
|
12
12
|
__version_tuple__: VERSION_TUPLE
|
|
13
13
|
version_tuple: VERSION_TUPLE
|
|
14
14
|
|
|
15
|
-
__version__ = version = '0.1.
|
|
16
|
-
__version_tuple__ = version_tuple = (0, 1, '
|
|
15
|
+
__version__ = version = '0.1.dev1630'
|
|
16
|
+
__version_tuple__ = version_tuple = (0, 1, 'dev1630')
|
|
Binary file
|
|
@@ -0,0 +1,169 @@
|
|
|
1
|
+
# This file is part of imas-python.
|
|
2
|
+
# You should have received the imas-python LICENSE file with this project.
|
|
3
|
+
"""Helper functions to build IDSDef.xml"""
|
|
4
|
+
|
|
5
|
+
import logging
|
|
6
|
+
import os
|
|
7
|
+
import shutil
|
|
8
|
+
from pathlib import Path
|
|
9
|
+
from typing import Tuple
|
|
10
|
+
from zipfile import ZIP_DEFLATED, ZipFile
|
|
11
|
+
|
|
12
|
+
from packaging.version import Version as V
|
|
13
|
+
from saxonche import PySaxonProcessor
|
|
14
|
+
|
|
15
|
+
logger = logging.getLogger(__name__)
|
|
16
|
+
|
|
17
|
+
_idsdef_zip_relpath = Path("imas/assets/IDSDef.zip")
|
|
18
|
+
_build_dir = Path("build")
|
|
19
|
+
|
|
20
|
+
|
|
21
|
+
def prepare_data_dictionaries():
|
|
22
|
+
"""Build IMAS IDSDef.xml files for each tagged version in the DD repository
|
|
23
|
+
1. Use saxonche for transformations
|
|
24
|
+
2. Clone the DD repository (ask for user/pass unless ssh key access is available)
|
|
25
|
+
3. Generate IDSDef.xml and rename to IDSDef_${version}.xml
|
|
26
|
+
4. Zip all these IDSDefs together and include in wheel
|
|
27
|
+
"""
|
|
28
|
+
print("prepare_data_dictionaries")
|
|
29
|
+
from git import Repo
|
|
30
|
+
|
|
31
|
+
repo: Repo = get_data_dictionary_repo()
|
|
32
|
+
if repo:
|
|
33
|
+
newest_version_and_tag = (V("0"), None)
|
|
34
|
+
for tag in repo.tags:
|
|
35
|
+
version_and_tag = (V(str(tag)), tag)
|
|
36
|
+
if V(str(tag)) > V("3.21.1"):
|
|
37
|
+
newest_version_and_tag = max(newest_version_and_tag, version_and_tag)
|
|
38
|
+
logger.debug("Building data dictionary version %s", tag)
|
|
39
|
+
build_data_dictionary(repo, tag)
|
|
40
|
+
|
|
41
|
+
logger.info("Creating zip file of DD versions")
|
|
42
|
+
|
|
43
|
+
if _idsdef_zip_relpath.is_file():
|
|
44
|
+
logger.warning("Overwriting '%s'", _idsdef_zip_relpath)
|
|
45
|
+
|
|
46
|
+
with ZipFile(
|
|
47
|
+
_idsdef_zip_relpath,
|
|
48
|
+
mode="w", # this needs w, since zip can have multiple same entries
|
|
49
|
+
compression=ZIP_DEFLATED,
|
|
50
|
+
) as dd_zip:
|
|
51
|
+
for filename in _build_dir.glob("[0-9]*.xml"):
|
|
52
|
+
arcname = Path("data-dictionary").joinpath(*filename.parts[1:])
|
|
53
|
+
dd_zip.write(filename, arcname=arcname)
|
|
54
|
+
# Include identifiers from latest tag in zip file
|
|
55
|
+
repo.git.checkout(newest_version_and_tag[1], force=True)
|
|
56
|
+
# DD layout <= 4.0.0
|
|
57
|
+
for filename in Path("data-dictionary").glob("*/*identifier.xml"):
|
|
58
|
+
arcname = Path("identifiers").joinpath(*filename.parts[1:])
|
|
59
|
+
dd_zip.write(filename, arcname=arcname)
|
|
60
|
+
# DD layout > 4.0.0
|
|
61
|
+
for filename in Path("data-dictionary").glob("schemas/*/*identifier.xml"):
|
|
62
|
+
arcname = Path("identifiers").joinpath(*filename.parts[2:])
|
|
63
|
+
dd_zip.write(filename, arcname=arcname)
|
|
64
|
+
|
|
65
|
+
|
|
66
|
+
def get_data_dictionary_repo() -> Tuple[bool, bool]:
|
|
67
|
+
try:
|
|
68
|
+
import git # Import git here, the user might not have it!
|
|
69
|
+
except ModuleNotFoundError:
|
|
70
|
+
raise RuntimeError(
|
|
71
|
+
"Could not find 'git' module, try 'pip install gitpython'. \
|
|
72
|
+
Will not build Data Dictionaries!"
|
|
73
|
+
)
|
|
74
|
+
|
|
75
|
+
# We need the actual source code (for now) so grab it from ITER
|
|
76
|
+
dd_repo_path = "data-dictionary"
|
|
77
|
+
|
|
78
|
+
if "DD_DIRECTORY" in os.environ:
|
|
79
|
+
logger.info("Found DD_DIRECTORY, copying")
|
|
80
|
+
try:
|
|
81
|
+
shutil.copytree(os.environ["DD_DIRECTORY"], dd_repo_path)
|
|
82
|
+
except FileExistsError:
|
|
83
|
+
pass
|
|
84
|
+
else:
|
|
85
|
+
logger.info("Trying to pull data dictionary git repo from ITER")
|
|
86
|
+
|
|
87
|
+
# Set up a bare repo and fetch the data-dictionary repository in it
|
|
88
|
+
os.makedirs(dd_repo_path, exist_ok=True)
|
|
89
|
+
try:
|
|
90
|
+
repo = git.Repo(dd_repo_path)
|
|
91
|
+
except git.exc.InvalidGitRepositoryError:
|
|
92
|
+
repo = git.Repo.init(dd_repo_path)
|
|
93
|
+
logger.info("Set up local git repository {!s}".format(repo))
|
|
94
|
+
|
|
95
|
+
try:
|
|
96
|
+
origin = repo.remote()
|
|
97
|
+
except ValueError:
|
|
98
|
+
dd_repo_url = "https://github.com/iterorganization/imas-data-dictionary.git"
|
|
99
|
+
origin = repo.create_remote("origin", url=dd_repo_url)
|
|
100
|
+
logger.info("Set up remote '{!s}' linking to '{!s}'".format(origin, origin.url))
|
|
101
|
+
|
|
102
|
+
try:
|
|
103
|
+
origin.fetch(tags=True)
|
|
104
|
+
except git.exc.GitCommandError as ee:
|
|
105
|
+
logger.warning(
|
|
106
|
+
"Could not fetch tags from %s. Git reports:\n %s." "\nTrying to continue",
|
|
107
|
+
list(origin.urls),
|
|
108
|
+
ee,
|
|
109
|
+
)
|
|
110
|
+
else:
|
|
111
|
+
logger.info("Remote tags fetched")
|
|
112
|
+
return repo
|
|
113
|
+
|
|
114
|
+
|
|
115
|
+
def _run_xsl_transformation(
|
|
116
|
+
xsd_file: Path, xsl_file: Path, tag: str, output_file: Path
|
|
117
|
+
) -> None:
|
|
118
|
+
"""
|
|
119
|
+
This function performs an XSL transformation using Saxon-HE (saxonche)
|
|
120
|
+
with the provided XSD file, XSL file, tag, and output file.
|
|
121
|
+
|
|
122
|
+
Args:
|
|
123
|
+
xsd_file (Path): XML Schema Definition (XSD) file
|
|
124
|
+
xsl_file (Path): The `xsl_file` parameter
|
|
125
|
+
tag (str): tag name to provide to 'DD_GIT_DESCRIBE' parameter
|
|
126
|
+
output_file (Path): The `output_file` parameter for resulting xml
|
|
127
|
+
"""
|
|
128
|
+
with PySaxonProcessor(license=False) as proc:
|
|
129
|
+
logger.debug("Initializing Saxon Processor")
|
|
130
|
+
xsltproc = proc.new_xslt30_processor()
|
|
131
|
+
xdm_ddgit = proc.make_string_value(tag)
|
|
132
|
+
xsltproc.set_parameter("DD_GIT_DESCRIBE", xdm_ddgit)
|
|
133
|
+
xsltproc.transform_to_file(
|
|
134
|
+
source_file=str(xsd_file),
|
|
135
|
+
stylesheet_file=str(xsl_file),
|
|
136
|
+
output_file=str(output_file),
|
|
137
|
+
)
|
|
138
|
+
logger.info("Transformation complete: %s -> %s", xsd_file, output_file)
|
|
139
|
+
|
|
140
|
+
|
|
141
|
+
def build_data_dictionary(repo, tag: str, rebuild=False) -> None:
|
|
142
|
+
"""Build a single version of the data dictionary given by the tag argument
|
|
143
|
+
if the IDS does not already exist.
|
|
144
|
+
|
|
145
|
+
In the data-dictionary repository sometimes IDSDef.xml is stored
|
|
146
|
+
directly, in which case we do not call make.
|
|
147
|
+
|
|
148
|
+
Args:
|
|
149
|
+
repo: Repository object containing the DD source code
|
|
150
|
+
tag: The DD version tag that will be build
|
|
151
|
+
rebuild: If true, overwrites existing pre-build tagged DD version
|
|
152
|
+
"""
|
|
153
|
+
_build_dir.mkdir(exist_ok=True)
|
|
154
|
+
result_xml = _build_dir / f"{tag}.xml"
|
|
155
|
+
|
|
156
|
+
if result_xml.exists() and not rebuild:
|
|
157
|
+
logger.debug(f"XML for tag '{tag}' already exists, skipping")
|
|
158
|
+
return
|
|
159
|
+
|
|
160
|
+
repo.git.checkout(tag, force=True)
|
|
161
|
+
|
|
162
|
+
# Perform the XSL transformation with saxonche
|
|
163
|
+
dd_xsd = Path("data-dictionary/dd_data_dictionary.xml.xsd")
|
|
164
|
+
dd_xsl = Path("data-dictionary/dd_data_dictionary.xml.xsl")
|
|
165
|
+
_run_xsl_transformation(dd_xsd, dd_xsl, tag.name, result_xml)
|
|
166
|
+
|
|
167
|
+
|
|
168
|
+
if __name__ == "__main__":
|
|
169
|
+
prepare_data_dictionaries()
|
|
@@ -252,8 +252,8 @@ class IDSStructure(IDSBase):
|
|
|
252
252
|
"Iterating over non-empty nodes of a lazy loaded IDS will skip nodes "
|
|
253
253
|
"that are not loaded. Set accept_lazy=True to continue. "
|
|
254
254
|
"See the documentation for more information: "
|
|
255
|
-
"https://
|
|
256
|
-
"
|
|
255
|
+
"https://imas-python.readthedocs.io/en/latest"
|
|
256
|
+
"/generated/imas.ids_structure."
|
|
257
257
|
"IDSStructure.html#imas.ids_structure.IDSStructure.iter_nonempty_"
|
|
258
258
|
)
|
|
259
259
|
for child in self._children:
|
|
@@ -1,8 +1,8 @@
|
|
|
1
1
|
Metadata-Version: 2.2
|
|
2
2
|
Name: imas-python
|
|
3
|
-
Version: 0.1.
|
|
3
|
+
Version: 0.1.dev1630
|
|
4
4
|
Summary: Pythonic wrappers for the IMAS Access Layer
|
|
5
|
-
Author: imas-python
|
|
5
|
+
Author: imas-python developers
|
|
6
6
|
Author-email: Olivier Hoenen <olivier.hoenen@iter.org>
|
|
7
7
|
License: GNU LESSER GENERAL PUBLIC LICENSE
|
|
8
8
|
Version 3, 29 June 2007
|
|
@@ -212,6 +212,8 @@ Requires-Dist: click
|
|
|
212
212
|
Requires-Dist: importlib_resources; python_version < "3.9"
|
|
213
213
|
Requires-Dist: packaging
|
|
214
214
|
Requires-Dist: xxhash>=2
|
|
215
|
+
Requires-Dist: saxonche
|
|
216
|
+
Requires-Dist: gitpython
|
|
215
217
|
Provides-Extra: all
|
|
216
218
|
Requires-Dist: imas[docs,h5py,imas-core,netcdf,test]; extra == "all"
|
|
217
219
|
Provides-Extra: docs
|
|
@@ -247,7 +249,7 @@ Data Model.
|
|
|
247
249
|
Install steps are described in the documentation generated from `/docs/source/installing.rst`.
|
|
248
250
|
|
|
249
251
|
Documentation is autogenerated from the source using [Sphinx](http://sphinx-doc.org/)
|
|
250
|
-
and can be found at the [
|
|
252
|
+
and can be found at the [readthedocs](https://imas-python.readthedocs.io/en/latest/)
|
|
251
253
|
|
|
252
254
|
The documentation can be manually generated by installing sphinx and running:
|
|
253
255
|
|
|
@@ -1,15 +1,14 @@
|
|
|
1
1
|
[build-system]
|
|
2
2
|
# Minimum requirements for the build system to execute.
|
|
3
3
|
# Keep this on a single line for the grep magic of build scripts to work
|
|
4
|
-
requires = ["setuptools>=61", "wheel", "numpy", "gitpython", "packaging", "tomli;python_version<'3.11'", "setuptools_scm>8"]
|
|
5
|
-
# needs saxon9he.jar in CLASSPATH
|
|
4
|
+
requires = ["setuptools>=61", "wheel", "numpy", "gitpython", "saxonche","packaging", "tomli;python_version<'3.11'", "setuptools_scm>8"]
|
|
6
5
|
|
|
7
6
|
build-backend = "setuptools.build_meta"
|
|
8
7
|
|
|
9
8
|
[project]
|
|
10
9
|
name = "imas-python"
|
|
11
10
|
authors = [
|
|
12
|
-
{name = "imas-python
|
|
11
|
+
{name = "imas-python developers"},
|
|
13
12
|
{name = "Olivier Hoenen", email = "olivier.hoenen@iter.org"},
|
|
14
13
|
]
|
|
15
14
|
description = "Pythonic wrappers for the IMAS Access Layer"
|
|
@@ -64,6 +63,8 @@ dependencies = [
|
|
|
64
63
|
"importlib_resources;python_version<'3.9'",
|
|
65
64
|
"packaging",
|
|
66
65
|
"xxhash >= 2",
|
|
66
|
+
"saxonche",
|
|
67
|
+
"gitpython"
|
|
67
68
|
]
|
|
68
69
|
|
|
69
70
|
[project.optional-dependencies]
|
|
@@ -78,6 +79,7 @@ docs = [
|
|
|
78
79
|
"sphinx-click",
|
|
79
80
|
]
|
|
80
81
|
|
|
82
|
+
# TODO enable when imas-core is available on pypi
|
|
81
83
|
# imas-core = [ "imas-core@git+https://github.com/iterorganization/imas-core.git@main" ]
|
|
82
84
|
|
|
83
85
|
netcdf = [
|