imas-python 0.1.dev1648__tar.gz → 0.1.dev1651__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.

Files changed (221) hide show
  1. {imas_python-0.1.dev1648/imas_python.egg-info → imas_python-0.1.dev1651}/PKG-INFO +1 -1
  2. {imas_python-0.1.dev1648 → imas_python-0.1.dev1651}/benchmarks/core_profiles.py +8 -1
  3. {imas_python-0.1.dev1648 → imas_python-0.1.dev1651}/benchmarks/edge_profiles.py +14 -2
  4. {imas_python-0.1.dev1648 → imas_python-0.1.dev1651}/ci/run_benchmark.sh +14 -6
  5. {imas_python-0.1.dev1648 → imas_python-0.1.dev1651}/imas/_version.py +2 -2
  6. {imas_python-0.1.dev1648 → imas_python-0.1.dev1651}/imas/assets/IDSDef.zip +0 -0
  7. {imas_python-0.1.dev1648 → imas_python-0.1.dev1651}/imas/backends/imas_core/mdsplus_model.py +73 -24
  8. {imas_python-0.1.dev1648 → imas_python-0.1.dev1651/imas_python.egg-info}/PKG-INFO +1 -1
  9. {imas_python-0.1.dev1648 → imas_python-0.1.dev1651}/.git-blame-ignore-revs +0 -0
  10. {imas_python-0.1.dev1648 → imas_python-0.1.dev1651}/.git_archival.txt +0 -0
  11. {imas_python-0.1.dev1648 → imas_python-0.1.dev1651}/.gitattributes +0 -0
  12. {imas_python-0.1.dev1648 → imas_python-0.1.dev1651}/.github/workflows/linting.yml +0 -0
  13. {imas_python-0.1.dev1648 → imas_python-0.1.dev1651}/.github/workflows/publish.yml +0 -0
  14. {imas_python-0.1.dev1648 → imas_python-0.1.dev1651}/.gitignore +0 -0
  15. {imas_python-0.1.dev1648 → imas_python-0.1.dev1651}/.pylintrc +0 -0
  16. {imas_python-0.1.dev1648 → imas_python-0.1.dev1651}/.readthedocs.yml +0 -0
  17. {imas_python-0.1.dev1648 → imas_python-0.1.dev1651}/CODE_OF_CONDUCT.md +0 -0
  18. {imas_python-0.1.dev1648 → imas_python-0.1.dev1651}/CONTRIBUTING.md +0 -0
  19. {imas_python-0.1.dev1648 → imas_python-0.1.dev1651}/LICENSE.txt +0 -0
  20. {imas_python-0.1.dev1648 → imas_python-0.1.dev1651}/MANIFEST.in +0 -0
  21. {imas_python-0.1.dev1648 → imas_python-0.1.dev1651}/README.md +0 -0
  22. {imas_python-0.1.dev1648 → imas_python-0.1.dev1651}/asv.conf.json +0 -0
  23. {imas_python-0.1.dev1648 → imas_python-0.1.dev1651}/benchmarks/__init__.py +0 -0
  24. {imas_python-0.1.dev1648 → imas_python-0.1.dev1651}/benchmarks/technical.py +0 -0
  25. {imas_python-0.1.dev1648 → imas_python-0.1.dev1651}/benchmarks/utils.py +0 -0
  26. {imas_python-0.1.dev1648 → imas_python-0.1.dev1651}/ci/build_dd_zip.sh +0 -0
  27. {imas_python-0.1.dev1648 → imas_python-0.1.dev1651}/ci/build_docs_and_dist.sh +0 -0
  28. {imas_python-0.1.dev1648 → imas_python-0.1.dev1651}/ci/linting.sh +0 -0
  29. {imas_python-0.1.dev1648 → imas_python-0.1.dev1651}/ci/run_pytest.sh +0 -0
  30. {imas_python-0.1.dev1648 → imas_python-0.1.dev1651}/conftest.py +0 -0
  31. {imas_python-0.1.dev1648 → imas_python-0.1.dev1651}/docs/.gitignore +0 -0
  32. {imas_python-0.1.dev1648 → imas_python-0.1.dev1651}/docs/Makefile +0 -0
  33. {imas_python-0.1.dev1648 → imas_python-0.1.dev1651}/docs/source/.gitignore +0 -0
  34. {imas_python-0.1.dev1648 → imas_python-0.1.dev1651}/docs/source/_static/imas.css +0 -0
  35. {imas_python-0.1.dev1648 → imas_python-0.1.dev1651}/docs/source/_static/imas_200x200.png +0 -0
  36. {imas_python-0.1.dev1648 → imas_python-0.1.dev1651}/docs/source/_templates/autosummary/accessor.rst +0 -0
  37. {imas_python-0.1.dev1648 → imas_python-0.1.dev1651}/docs/source/_templates/autosummary/accessor_attribute.rst +0 -0
  38. {imas_python-0.1.dev1648 → imas_python-0.1.dev1651}/docs/source/_templates/autosummary/accessor_callable.rst +0 -0
  39. {imas_python-0.1.dev1648 → imas_python-0.1.dev1651}/docs/source/_templates/autosummary/accessor_method.rst +0 -0
  40. {imas_python-0.1.dev1648 → imas_python-0.1.dev1651}/docs/source/_templates/autosummary/base.rst +0 -0
  41. {imas_python-0.1.dev1648 → imas_python-0.1.dev1651}/docs/source/_templates/custom-class-template.rst +0 -0
  42. {imas_python-0.1.dev1648 → imas_python-0.1.dev1651}/docs/source/_templates/custom-module-template.rst +0 -0
  43. {imas_python-0.1.dev1648 → imas_python-0.1.dev1651}/docs/source/_templates/layout.html +0 -0
  44. {imas_python-0.1.dev1648 → imas_python-0.1.dev1651}/docs/source/api-hidden.rst +0 -0
  45. {imas_python-0.1.dev1648 → imas_python-0.1.dev1651}/docs/source/api.rst +0 -0
  46. {imas_python-0.1.dev1648 → imas_python-0.1.dev1651}/docs/source/benchmarking.rst +0 -0
  47. {imas_python-0.1.dev1648 → imas_python-0.1.dev1651}/docs/source/changelog.rst +0 -0
  48. {imas_python-0.1.dev1648 → imas_python-0.1.dev1651}/docs/source/ci_config.rst +0 -0
  49. {imas_python-0.1.dev1648 → imas_python-0.1.dev1651}/docs/source/cli.rst +0 -0
  50. {imas_python-0.1.dev1648 → imas_python-0.1.dev1651}/docs/source/code_style.rst +0 -0
  51. {imas_python-0.1.dev1648 → imas_python-0.1.dev1651}/docs/source/conf.py +0 -0
  52. {imas_python-0.1.dev1648 → imas_python-0.1.dev1651}/docs/source/configuring.rst +0 -0
  53. {imas_python-0.1.dev1648 → imas_python-0.1.dev1651}/docs/source/courses/advanced/dd_versions.rst +0 -0
  54. {imas_python-0.1.dev1648 → imas_python-0.1.dev1651}/docs/source/courses/advanced/explore.rst +0 -0
  55. {imas_python-0.1.dev1648 → imas_python-0.1.dev1651}/docs/source/courses/advanced/hashing.rst +0 -0
  56. {imas_python-0.1.dev1648 → imas_python-0.1.dev1651}/docs/source/courses/advanced/imas_snippets/alternative_coordinates.py +0 -0
  57. {imas_python-0.1.dev1648 → imas_python-0.1.dev1651}/docs/source/courses/advanced/imas_snippets/autoconvert_get.py +0 -0
  58. {imas_python-0.1.dev1648 → imas_python-0.1.dev1651}/docs/source/courses/advanced/imas_snippets/autoconvert_put.py +0 -0
  59. {imas_python-0.1.dev1648 → imas_python-0.1.dev1651}/docs/source/courses/advanced/imas_snippets/calc_with_units.py +0 -0
  60. {imas_python-0.1.dev1648 → imas_python-0.1.dev1651}/docs/source/courses/advanced/imas_snippets/coordinates.py +0 -0
  61. {imas_python-0.1.dev1648 → imas_python-0.1.dev1651}/docs/source/courses/advanced/imas_snippets/dd_versions.py +0 -0
  62. {imas_python-0.1.dev1648 → imas_python-0.1.dev1651}/docs/source/courses/advanced/imas_snippets/explore_data.py +0 -0
  63. {imas_python-0.1.dev1648 → imas_python-0.1.dev1651}/docs/source/courses/advanced/imas_snippets/explore_structures.py +0 -0
  64. {imas_python-0.1.dev1648 → imas_python-0.1.dev1651}/docs/source/courses/advanced/imas_snippets/hashing.py +0 -0
  65. {imas_python-0.1.dev1648 → imas_python-0.1.dev1651}/docs/source/courses/advanced/imas_snippets/ids_convert.py +0 -0
  66. {imas_python-0.1.dev1648 → imas_python-0.1.dev1651}/docs/source/courses/advanced/imas_snippets/ids_to_xarray.py +0 -0
  67. {imas_python-0.1.dev1648 → imas_python-0.1.dev1651}/docs/source/courses/advanced/imas_snippets/tensorized_ids_to_xarray.py +0 -0
  68. {imas_python-0.1.dev1648 → imas_python-0.1.dev1651}/docs/source/courses/advanced/metadata.rst +0 -0
  69. {imas_python-0.1.dev1648 → imas_python-0.1.dev1651}/docs/source/courses/advanced/xarray.rst +0 -0
  70. {imas_python-0.1.dev1648 → imas_python-0.1.dev1651}/docs/source/courses/advanced_user_training.rst +0 -0
  71. {imas_python-0.1.dev1648 → imas_python-0.1.dev1651}/docs/source/courses/basic/analyze.rst +0 -0
  72. {imas_python-0.1.dev1648 → imas_python-0.1.dev1651}/docs/source/courses/basic/core_profiles_ne_timeslice.png +0 -0
  73. {imas_python-0.1.dev1648 → imas_python-0.1.dev1651}/docs/source/courses/basic/core_profiles_te.png +0 -0
  74. {imas_python-0.1.dev1648 → imas_python-0.1.dev1651}/docs/source/courses/basic/create.rst +0 -0
  75. {imas_python-0.1.dev1648 → imas_python-0.1.dev1651}/docs/source/courses/basic/explore.rst +0 -0
  76. {imas_python-0.1.dev1648 → imas_python-0.1.dev1651}/docs/source/courses/basic/imas_inspect.png +0 -0
  77. {imas_python-0.1.dev1648 → imas_python-0.1.dev1651}/docs/source/courses/basic/imas_snippets/create_core_profiles.py +0 -0
  78. {imas_python-0.1.dev1648 → imas_python-0.1.dev1651}/docs/source/courses/basic/imas_snippets/explore_public_ec_launchers.py +0 -0
  79. {imas_python-0.1.dev1648 → imas_python-0.1.dev1651}/docs/source/courses/basic/imas_snippets/explore_public_pf_active.py +0 -0
  80. {imas_python-0.1.dev1648 → imas_python-0.1.dev1651}/docs/source/courses/basic/imas_snippets/explore_training_data.py +0 -0
  81. {imas_python-0.1.dev1648 → imas_python-0.1.dev1651}/docs/source/courses/basic/imas_snippets/find_paths.py +0 -0
  82. {imas_python-0.1.dev1648 → imas_python-0.1.dev1651}/docs/source/courses/basic/imas_snippets/iterate_core_profiles.py +0 -0
  83. {imas_python-0.1.dev1648 → imas_python-0.1.dev1651}/docs/source/courses/basic/imas_snippets/plot_core_profiles_ne_timeslice.py +0 -0
  84. {imas_python-0.1.dev1648 → imas_python-0.1.dev1651}/docs/source/courses/basic/imas_snippets/plot_core_profiles_te.py +0 -0
  85. {imas_python-0.1.dev1648 → imas_python-0.1.dev1651}/docs/source/courses/basic/imas_snippets/print_idss.py +0 -0
  86. {imas_python-0.1.dev1648 → imas_python-0.1.dev1651}/docs/source/courses/basic/imas_snippets/read_core_profiles_ne_timeslice.py +0 -0
  87. {imas_python-0.1.dev1648 → imas_python-0.1.dev1651}/docs/source/courses/basic/imas_snippets/read_equilibrium_time_array.py +0 -0
  88. {imas_python-0.1.dev1648 → imas_python-0.1.dev1651}/docs/source/courses/basic/imas_snippets/read_whole_equilibrium.py +0 -0
  89. {imas_python-0.1.dev1648 → imas_python-0.1.dev1651}/docs/source/courses/basic/imas_snippets/transform_grid.py +0 -0
  90. {imas_python-0.1.dev1648 → imas_python-0.1.dev1651}/docs/source/courses/basic/interactive_tab_core_profiles_toplevel.png +0 -0
  91. {imas_python-0.1.dev1648 → imas_python-0.1.dev1651}/docs/source/courses/basic/print_tree_ids_properties.png +0 -0
  92. {imas_python-0.1.dev1648 → imas_python-0.1.dev1651}/docs/source/courses/basic/setup.rst +0 -0
  93. {imas_python-0.1.dev1648 → imas_python-0.1.dev1651}/docs/source/courses/basic/transform.rst +0 -0
  94. {imas_python-0.1.dev1648 → imas_python-0.1.dev1651}/docs/source/courses/basic_user_training.rst +0 -0
  95. {imas_python-0.1.dev1648 → imas_python-0.1.dev1651}/docs/source/identifiers.rst +0 -0
  96. {imas_python-0.1.dev1648 → imas_python-0.1.dev1651}/docs/source/imas_architecture.rst +0 -0
  97. {imas_python-0.1.dev1648 → imas_python-0.1.dev1651}/docs/source/imas_structure.png +0 -0
  98. {imas_python-0.1.dev1648 → imas_python-0.1.dev1651}/docs/source/index.rst +0 -0
  99. {imas_python-0.1.dev1648 → imas_python-0.1.dev1651}/docs/source/installing.rst +0 -0
  100. {imas_python-0.1.dev1648 → imas_python-0.1.dev1651}/docs/source/intro.rst +0 -0
  101. {imas_python-0.1.dev1648 → imas_python-0.1.dev1651}/docs/source/lazy_loading.rst +0 -0
  102. {imas_python-0.1.dev1648 → imas_python-0.1.dev1651}/docs/source/mdsplus.rst +0 -0
  103. {imas_python-0.1.dev1648 → imas_python-0.1.dev1651}/docs/source/metadata.rst +0 -0
  104. {imas_python-0.1.dev1648 → imas_python-0.1.dev1651}/docs/source/multi-dd.rst +0 -0
  105. {imas_python-0.1.dev1648 → imas_python-0.1.dev1651}/docs/source/netcdf/conventions.rst +0 -0
  106. {imas_python-0.1.dev1648 → imas_python-0.1.dev1651}/docs/source/netcdf.rst +0 -0
  107. {imas_python-0.1.dev1648 → imas_python-0.1.dev1651}/docs/source/release_imas.rst +0 -0
  108. {imas_python-0.1.dev1648 → imas_python-0.1.dev1651}/docs/source/resampling.rst +0 -0
  109. {imas_python-0.1.dev1648 → imas_python-0.1.dev1651}/docs/source/validation.rst +0 -0
  110. {imas_python-0.1.dev1648 → imas_python-0.1.dev1651}/imas/__init__.py +0 -0
  111. {imas_python-0.1.dev1648 → imas_python-0.1.dev1651}/imas/__main__.py +0 -0
  112. {imas_python-0.1.dev1648 → imas_python-0.1.dev1651}/imas/_util.py +0 -0
  113. {imas_python-0.1.dev1648 → imas_python-0.1.dev1651}/imas/assets/IDSDef2MDSpreTree.xsl +0 -0
  114. {imas_python-0.1.dev1648 → imas_python-0.1.dev1651}/imas/assets/IDS_fake_toplevel.xml +0 -0
  115. {imas_python-0.1.dev1648 → imas_python-0.1.dev1651}/imas/assets/IDS_minimal.xml +0 -0
  116. {imas_python-0.1.dev1648 → imas_python-0.1.dev1651}/imas/assets/IDS_minimal_2.xml +0 -0
  117. {imas_python-0.1.dev1648 → imas_python-0.1.dev1651}/imas/assets/IDS_minimal_struct_array.xml +0 -0
  118. {imas_python-0.1.dev1648 → imas_python-0.1.dev1651}/imas/assets/IDS_minimal_types.xml +0 -0
  119. {imas_python-0.1.dev1648 → imas_python-0.1.dev1651}/imas/assets/ITER_134173_106_core_profiles.ids +0 -0
  120. {imas_python-0.1.dev1648 → imas_python-0.1.dev1651}/imas/assets/ITER_134173_106_equilibrium.ids +0 -0
  121. {imas_python-0.1.dev1648 → imas_python-0.1.dev1651}/imas/assets/README.md +0 -0
  122. {imas_python-0.1.dev1648 → imas_python-0.1.dev1651}/imas/assets/core_profiles.ids +0 -0
  123. {imas_python-0.1.dev1648 → imas_python-0.1.dev1651}/imas/assets/equilibrium.ids +0 -0
  124. {imas_python-0.1.dev1648 → imas_python-0.1.dev1651}/imas/backends/__init__.py +0 -0
  125. {imas_python-0.1.dev1648 → imas_python-0.1.dev1651}/imas/backends/db_entry_impl.py +0 -0
  126. {imas_python-0.1.dev1648 → imas_python-0.1.dev1651}/imas/backends/imas_core/__init__.py +0 -0
  127. {imas_python-0.1.dev1648 → imas_python-0.1.dev1651}/imas/backends/imas_core/al_context.py +0 -0
  128. {imas_python-0.1.dev1648 → imas_python-0.1.dev1651}/imas/backends/imas_core/db_entry_al.py +0 -0
  129. {imas_python-0.1.dev1648 → imas_python-0.1.dev1651}/imas/backends/imas_core/db_entry_helpers.py +0 -0
  130. {imas_python-0.1.dev1648 → imas_python-0.1.dev1651}/imas/backends/imas_core/imas_interface.py +0 -0
  131. {imas_python-0.1.dev1648 → imas_python-0.1.dev1651}/imas/backends/imas_core/uda_support.py +0 -0
  132. {imas_python-0.1.dev1648 → imas_python-0.1.dev1651}/imas/backends/netcdf/__init__.py +0 -0
  133. {imas_python-0.1.dev1648 → imas_python-0.1.dev1651}/imas/backends/netcdf/db_entry_nc.py +0 -0
  134. {imas_python-0.1.dev1648 → imas_python-0.1.dev1651}/imas/backends/netcdf/ids2nc.py +0 -0
  135. {imas_python-0.1.dev1648 → imas_python-0.1.dev1651}/imas/backends/netcdf/nc2ids.py +0 -0
  136. {imas_python-0.1.dev1648 → imas_python-0.1.dev1651}/imas/backends/netcdf/nc_metadata.py +0 -0
  137. {imas_python-0.1.dev1648 → imas_python-0.1.dev1651}/imas/backends/netcdf/nc_validate.py +0 -0
  138. {imas_python-0.1.dev1648 → imas_python-0.1.dev1651}/imas/command/cli.py +0 -0
  139. {imas_python-0.1.dev1648 → imas_python-0.1.dev1651}/imas/command/db_analysis.py +0 -0
  140. {imas_python-0.1.dev1648 → imas_python-0.1.dev1651}/imas/command/helpers.py +0 -0
  141. {imas_python-0.1.dev1648 → imas_python-0.1.dev1651}/imas/command/timer.py +0 -0
  142. {imas_python-0.1.dev1648 → imas_python-0.1.dev1651}/imas/db_entry.py +0 -0
  143. {imas_python-0.1.dev1648 → imas_python-0.1.dev1651}/imas/dd_helpers.py +0 -0
  144. {imas_python-0.1.dev1648 → imas_python-0.1.dev1651}/imas/dd_zip.py +0 -0
  145. {imas_python-0.1.dev1648 → imas_python-0.1.dev1651}/imas/exception.py +0 -0
  146. {imas_python-0.1.dev1648 → imas_python-0.1.dev1651}/imas/ids_base.py +0 -0
  147. {imas_python-0.1.dev1648 → imas_python-0.1.dev1651}/imas/ids_convert.py +0 -0
  148. {imas_python-0.1.dev1648 → imas_python-0.1.dev1651}/imas/ids_coordinates.py +0 -0
  149. {imas_python-0.1.dev1648 → imas_python-0.1.dev1651}/imas/ids_data_type.py +0 -0
  150. {imas_python-0.1.dev1648 → imas_python-0.1.dev1651}/imas/ids_defs.py +0 -0
  151. {imas_python-0.1.dev1648 → imas_python-0.1.dev1651}/imas/ids_factory.py +0 -0
  152. {imas_python-0.1.dev1648 → imas_python-0.1.dev1651}/imas/ids_identifiers.py +0 -0
  153. {imas_python-0.1.dev1648 → imas_python-0.1.dev1651}/imas/ids_metadata.py +0 -0
  154. {imas_python-0.1.dev1648 → imas_python-0.1.dev1651}/imas/ids_path.py +0 -0
  155. {imas_python-0.1.dev1648 → imas_python-0.1.dev1651}/imas/ids_primitive.py +0 -0
  156. {imas_python-0.1.dev1648 → imas_python-0.1.dev1651}/imas/ids_struct_array.py +0 -0
  157. {imas_python-0.1.dev1648 → imas_python-0.1.dev1651}/imas/ids_structure.py +0 -0
  158. {imas_python-0.1.dev1648 → imas_python-0.1.dev1651}/imas/ids_toplevel.py +0 -0
  159. {imas_python-0.1.dev1648 → imas_python-0.1.dev1651}/imas/setup_logging.py +0 -0
  160. {imas_python-0.1.dev1648 → imas_python-0.1.dev1651}/imas/test/test_all_dd_versions.py +0 -0
  161. {imas_python-0.1.dev1648 → imas_python-0.1.dev1651}/imas/test/test_cli.py +0 -0
  162. {imas_python-0.1.dev1648 → imas_python-0.1.dev1651}/imas/test/test_dbentry.py +0 -0
  163. {imas_python-0.1.dev1648 → imas_python-0.1.dev1651}/imas/test/test_dd_helpers.py +0 -0
  164. {imas_python-0.1.dev1648 → imas_python-0.1.dev1651}/imas/test/test_dd_zip.py +0 -0
  165. {imas_python-0.1.dev1648 → imas_python-0.1.dev1651}/imas/test/test_deepcopy.py +0 -0
  166. {imas_python-0.1.dev1648 → imas_python-0.1.dev1651}/imas/test/test_exception.py +0 -0
  167. {imas_python-0.1.dev1648 → imas_python-0.1.dev1651}/imas/test/test_get_sample.py +0 -0
  168. {imas_python-0.1.dev1648 → imas_python-0.1.dev1651}/imas/test/test_hash.py +0 -0
  169. {imas_python-0.1.dev1648 → imas_python-0.1.dev1651}/imas/test/test_helpers.py +0 -0
  170. {imas_python-0.1.dev1648 → imas_python-0.1.dev1651}/imas/test/test_identifiers.py +0 -0
  171. {imas_python-0.1.dev1648 → imas_python-0.1.dev1651}/imas/test/test_ids2nc.py +0 -0
  172. {imas_python-0.1.dev1648 → imas_python-0.1.dev1651}/imas/test/test_ids_ascii_data.py +0 -0
  173. {imas_python-0.1.dev1648 → imas_python-0.1.dev1651}/imas/test/test_ids_convert.py +0 -0
  174. {imas_python-0.1.dev1648 → imas_python-0.1.dev1651}/imas/test/test_ids_coordinates.py +0 -0
  175. {imas_python-0.1.dev1648 → imas_python-0.1.dev1651}/imas/test/test_ids_data_type.py +0 -0
  176. {imas_python-0.1.dev1648 → imas_python-0.1.dev1651}/imas/test/test_ids_factory.py +0 -0
  177. {imas_python-0.1.dev1648 → imas_python-0.1.dev1651}/imas/test/test_ids_metadata.py +0 -0
  178. {imas_python-0.1.dev1648 → imas_python-0.1.dev1651}/imas/test/test_ids_mixin.py +0 -0
  179. {imas_python-0.1.dev1648 → imas_python-0.1.dev1651}/imas/test/test_ids_path.py +0 -0
  180. {imas_python-0.1.dev1648 → imas_python-0.1.dev1651}/imas/test/test_ids_primitive.py +0 -0
  181. {imas_python-0.1.dev1648 → imas_python-0.1.dev1651}/imas/test/test_ids_struct_array.py +0 -0
  182. {imas_python-0.1.dev1648 → imas_python-0.1.dev1651}/imas/test/test_ids_structure.py +0 -0
  183. {imas_python-0.1.dev1648 → imas_python-0.1.dev1651}/imas/test/test_ids_toplevel.py +0 -0
  184. {imas_python-0.1.dev1648 → imas_python-0.1.dev1651}/imas/test/test_ids_validate.py +0 -0
  185. {imas_python-0.1.dev1648 → imas_python-0.1.dev1651}/imas/test/test_latest_dd_autofill.py +0 -0
  186. {imas_python-0.1.dev1648 → imas_python-0.1.dev1651}/imas/test/test_latest_dd_manual.py +0 -0
  187. {imas_python-0.1.dev1648 → imas_python-0.1.dev1651}/imas/test/test_latest_dd_resample.py +0 -0
  188. {imas_python-0.1.dev1648 → imas_python-0.1.dev1651}/imas/test/test_lazy_loading.py +0 -0
  189. {imas_python-0.1.dev1648 → imas_python-0.1.dev1651}/imas/test/test_list_occurrences.py +0 -0
  190. {imas_python-0.1.dev1648 → imas_python-0.1.dev1651}/imas/test/test_minimal.py +0 -0
  191. {imas_python-0.1.dev1648 → imas_python-0.1.dev1651}/imas/test/test_minimal_conversion.py +0 -0
  192. {imas_python-0.1.dev1648 → imas_python-0.1.dev1651}/imas/test/test_minimal_io.py +0 -0
  193. {imas_python-0.1.dev1648 → imas_python-0.1.dev1651}/imas/test/test_minimal_struct_array_io.py +0 -0
  194. {imas_python-0.1.dev1648 → imas_python-0.1.dev1651}/imas/test/test_minimal_types.py +0 -0
  195. {imas_python-0.1.dev1648 → imas_python-0.1.dev1651}/imas/test/test_minimal_types_io.py +0 -0
  196. {imas_python-0.1.dev1648 → imas_python-0.1.dev1651}/imas/test/test_minimal_types_io_automatic.py +0 -0
  197. {imas_python-0.1.dev1648 → imas_python-0.1.dev1651}/imas/test/test_nbc_change.py +0 -0
  198. {imas_python-0.1.dev1648 → imas_python-0.1.dev1651}/imas/test/test_nc_autofill.py +0 -0
  199. {imas_python-0.1.dev1648 → imas_python-0.1.dev1651}/imas/test/test_nc_entry.py +0 -0
  200. {imas_python-0.1.dev1648 → imas_python-0.1.dev1651}/imas/test/test_nc_metadata.py +0 -0
  201. {imas_python-0.1.dev1648 → imas_python-0.1.dev1651}/imas/test/test_nc_validation.py +0 -0
  202. {imas_python-0.1.dev1648 → imas_python-0.1.dev1651}/imas/test/test_snippets.py +0 -0
  203. {imas_python-0.1.dev1648 → imas_python-0.1.dev1651}/imas/test/test_static_ids.py +0 -0
  204. {imas_python-0.1.dev1648 → imas_python-0.1.dev1651}/imas/test/test_str_1d.py +0 -0
  205. {imas_python-0.1.dev1648 → imas_python-0.1.dev1651}/imas/test/test_time_slicing.py +0 -0
  206. {imas_python-0.1.dev1648 → imas_python-0.1.dev1651}/imas/test/test_uda_support.py +0 -0
  207. {imas_python-0.1.dev1648 → imas_python-0.1.dev1651}/imas/test/test_util.py +0 -0
  208. {imas_python-0.1.dev1648 → imas_python-0.1.dev1651}/imas/training.py +0 -0
  209. {imas_python-0.1.dev1648 → imas_python-0.1.dev1651}/imas/util.py +0 -0
  210. {imas_python-0.1.dev1648 → imas_python-0.1.dev1651}/imas_python.egg-info/SOURCES.txt +0 -0
  211. {imas_python-0.1.dev1648 → imas_python-0.1.dev1651}/imas_python.egg-info/dependency_links.txt +0 -0
  212. {imas_python-0.1.dev1648 → imas_python-0.1.dev1651}/imas_python.egg-info/entry_points.txt +0 -0
  213. {imas_python-0.1.dev1648 → imas_python-0.1.dev1651}/imas_python.egg-info/not-zip-safe +0 -0
  214. {imas_python-0.1.dev1648 → imas_python-0.1.dev1651}/imas_python.egg-info/requires.txt +0 -0
  215. {imas_python-0.1.dev1648 → imas_python-0.1.dev1651}/imas_python.egg-info/top_level.txt +0 -0
  216. {imas_python-0.1.dev1648 → imas_python-0.1.dev1651}/pyproject.toml +0 -0
  217. {imas_python-0.1.dev1648 → imas_python-0.1.dev1651}/setup.cfg +0 -0
  218. {imas_python-0.1.dev1648 → imas_python-0.1.dev1651}/setup.py +0 -0
  219. {imas_python-0.1.dev1648 → imas_python-0.1.dev1651}/tools/compare_lowlevel_access_patterns.py +0 -0
  220. {imas_python-0.1.dev1648 → imas_python-0.1.dev1651}/tools/extract_test_data.py +0 -0
  221. {imas_python-0.1.dev1648 → imas_python-0.1.dev1651}/tools/get_tagnames.py +0 -0
@@ -1,6 +1,6 @@
1
1
  Metadata-Version: 2.2
2
2
  Name: imas-python
3
- Version: 0.1.dev1648
3
+ Version: 0.1.dev1651
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
@@ -50,7 +50,14 @@ def fill_slices(core_profiles, times):
50
50
  profiles_1d.ion.resize(len(ions))
51
51
  profiles_1d.neutral.resize(len(ions))
52
52
  for i, ion in enumerate(ions):
53
- profiles_1d.ion[i].label = profiles_1d.neutral[i].label = ion
53
+ if hasattr(profiles_1d.ion[i], 'label'):
54
+ profiles_1d.ion[i].label = ion
55
+ profiles_1d.neutral[i].label = ion
56
+ if hasattr(profiles_1d.ion[i], 'name'):
57
+ profiles_1d.ion[i].name = ion
58
+ profiles_1d.neutral[i].name = ion
59
+
60
+ # profiles_1d.ion[i].label = profiles_1d.neutral[i].label = ion
54
61
  profiles_1d.ion[i].z_ion = 1.0
55
62
  profiles_1d.ion[i].neutral_index = profiles_1d.neutral[i].ion_index = i + 1
56
63
 
@@ -46,7 +46,13 @@ def fill_ggd(edge_profiles, times):
46
46
  grid.space[i].identifier.index = 1
47
47
  grid.space[i].identifier.description = "Description...."
48
48
  grid.space[i].geometry_type.index = 0
49
- grid.space[0].coordinates_type = np.array([4, 5], dtype=np.int32)
49
+ grid.space[0].coordinates_type.resize(1)
50
+ if imas.__version__ >= "4.0.0":
51
+ grid.space[0].coordinates_type = np.array([4, 5], dtype=np.int32)
52
+ else:
53
+ grid.space[0].coordinates_type[0].name = "coordinates type"
54
+ grid.space[0].coordinates_type[0].index = 0
55
+ grid.space[0].coordinates_type[0].name = "example coordinates type"
50
56
  grid.space[0].objects_per_dimension.resize(3) # points, lines, surfaces
51
57
  points = grid.space[0].objects_per_dimension[0].object
52
58
  points.resize(N_POINTS)
@@ -61,7 +67,13 @@ def fill_ggd(edge_profiles, times):
61
67
  for i in range(N_SURFACES):
62
68
  surfaces[i].nodes = np.random.randint(1, N_LINES + 1, 4, dtype=np.int32)
63
69
 
64
- grid.space[1].coordinates_type = np.array([6], dtype=np.int32)
70
+ grid.space[1].coordinates_type.resize(1)
71
+ if imas.__version__ >= "4.0.0":
72
+ grid.space[1].coordinates_type = np.array([6], dtype=np.int32)
73
+ else:
74
+ grid.space[1].coordinates_type[0].name = "coordinates type"
75
+ grid.space[1].coordinates_type[0].index = 0
76
+ grid.space[1].coordinates_type[0].name = "example coordinates type"
65
77
  grid.space[1].objects_per_dimension.resize(2)
66
78
  obp = grid.space[1].objects_per_dimension[0]
67
79
  obp.object.resize(2)
@@ -3,14 +3,22 @@
3
3
  # Note: this script should be run from the root of the git repository
4
4
 
5
5
  # Debuggging:
6
- set -e -o pipefail
6
+
7
7
  echo "Loading modules:" $@
8
+ BENCHMARKS_DIR=$(realpath "$PWD/imas_benchmarks")
9
+ if [[ "$(uname -n)" == *"bamboo"* ]]; then
10
+ set -e -o pipefail
11
+ # create
12
+ BENCHMARKS_DIR=$(realpath "/mnt/bamboo_deploy/imas/benchmarks/")
13
+ fi
8
14
 
9
15
  # Set up environment such that module files can be loaded
10
16
  source /etc/profile.d/modules.sh
11
17
  module purge
12
18
  # Modules are supplied as arguments in the CI job:
13
- module load $@
19
+ # IMAS-AL-Python/5.2.1-intel-2023b-DD-3.41.0 Saxon-HE/12.4-Java-21
20
+ module load IMAS-AL-Core/5.4.3-intel-2023b Saxon-HE/12.4-Java-21
21
+
14
22
 
15
23
  # Debuggging:
16
24
  echo "Done loading modules"
@@ -32,9 +40,9 @@ pip install virtualenv .[test]
32
40
  python -c 'import imas.backends.imas_core.mdsplus_model; print(imas.backends.imas_core.mdsplus_model.mdsplus_model_dir(imas.IDSFactory()))'
33
41
 
34
42
  # Copy previous results (if any)
35
- mkdir -p /mnt/bamboo_deploy/imas/benchmarks/results
43
+ mkdir -p "$BENCHMARKS_DIR/results"
36
44
  mkdir -p .asv
37
- cp -rf /mnt/bamboo_deploy/imas/benchmarks/results .asv/
45
+ cp -rf "$BENCHMARKS_DIR/results" .asv/
38
46
 
39
47
  # Ensure numpy won't do multi-threading
40
48
  export OPENBLAS_NUM_THREADS=1
@@ -47,7 +55,7 @@ asv machine --yes
47
55
  # Run ASV for the current commit, develop and main
48
56
  asv run --skip-existing-successful HEAD^!
49
57
  asv run --skip-existing-successful develop^!
50
- asv run --skip-existing-successful main^!
58
+ # asv run --skip-existing-successful main^!
51
59
 
52
60
  # Compare results
53
61
  if [ `git rev-parse --abbrev-ref HEAD` == develop ]
@@ -61,5 +69,5 @@ fi
61
69
  asv publish
62
70
 
63
71
  # And persistently store them
64
- cp -rf .asv/{results,html} /mnt/bamboo_deploy/imas/benchmarks/
72
+ cp -rf .asv/{results,html} "$BENCHMARKS_DIR"
65
73
 
@@ -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.dev1648'
16
- __version_tuple__ = version_tuple = (0, 1, 'dev1648')
15
+ __version__ = version = '0.1.dev1651'
16
+ __version_tuple__ = version_tuple = (0, 1, 'dev1651')
@@ -13,6 +13,7 @@ import tempfile
13
13
  import time
14
14
  import uuid
15
15
  from pathlib import Path
16
+ from saxonche import PySaxonProcessor
16
17
  from subprocess import CalledProcessError, check_output
17
18
  from zlib import crc32
18
19
 
@@ -22,7 +23,6 @@ except ImportError: # Python 3.8 support
22
23
  from importlib_resources import as_file, files
23
24
 
24
25
  import imas
25
- from imas.dd_helpers import get_saxon
26
26
  from imas.dd_zip import get_dd_xml, get_dd_xml_crc
27
27
  from imas.exception import MDSPlusModelError
28
28
  from imas.ids_factory import IDSFactory
@@ -241,35 +241,84 @@ def model_exists(path: Path) -> bool:
241
241
  )
242
242
 
243
243
 
244
- def create_model_ids_xml(cache_dir_path, fname, version):
245
- """Use saxon to compile an ids.xml suitable for creating an mdsplus model."""
244
+ # def create_model_ids_xml(cache_dir_path, fname, version):
245
+ # """Use saxon to compile an ids.xml suitable for creating an mdsplus model."""
246
+
247
+ # try:
248
+ # # we have to be careful to have the same version of this file as in the access
249
+ # # layer:
250
+ # with as_file(files(imas) / "assets" / "IDSDef2MDSpreTree.xsl") as xslfile:
251
+ # check_output(
252
+ # [
253
+ # "java",
254
+ # "net.sf.saxon.Transform",
255
+ # "-s:" + str(fname),
256
+ # "-o:" + str(Path(cache_dir_path) / "ids.xml"),
257
+ # "DD_GIT_DESCRIBE=" + str(version or fname),
258
+ # # if this is expected as git describe it might break
259
+ # # if we just pass a filename
260
+ # "AL_GIT_DESCRIBE=" + os.environ.get("AL_VERSION", "0.0.0"),
261
+ # "-xsl:" + str(xslfile),
262
+ # ],
263
+ # input=get_dd_xml(version) if version else None,
264
+ # env={"CLASSPATH": get_saxon(), "PATH": os.environ.get("PATH", "")},
265
+ # )
266
+ # except CalledProcessError as e:
267
+ # if fname:
268
+ # logger.error("Error making MDSPlus model IDS.xml for %s", fname)
269
+ # else:
270
+ # logger.error("Error making MDSplus model IDS.xml for %s", version)
271
+ # raise e
272
+
246
273
 
274
+ def create_model_ids_xml(cache_dir_path, fname, version):
275
+ """Use Saxon/C to compile an ids.xml suitable for creating an MDSplus model."""
247
276
  try:
248
- # we have to be careful to have the same version of this file as in the access
249
- # layer:
250
- with as_file(files(imas) / "assets" / "IDSDef2MDSpreTree.xsl") as xslfile:
251
- check_output(
252
- [
253
- "java",
254
- "net.sf.saxon.Transform",
255
- "-s:" + str(fname),
256
- "-o:" + str(Path(cache_dir_path) / "ids.xml"),
257
- "DD_GIT_DESCRIBE=" + str(version or fname),
258
- # if this is expected as git describe it might break
259
- # if we just pass a filename
260
- "AL_GIT_DESCRIBE=" + os.environ.get("AL_VERSION", "0.0.0"),
261
- "-xsl:" + str(xslfile),
262
- ],
263
- input=get_dd_xml(version) if version else None,
264
- env={"CLASSPATH": get_saxon(), "PATH": os.environ.get("PATH", "")},
265
- )
266
- except CalledProcessError as e:
277
+ # Locate the XSL file within the package
278
+ with as_file(files("imas") / "assets" / "IDSDef2MDSpreTree.xsl") as xslfile:
279
+ output_file = Path(cache_dir_path) / "ids.xml"
280
+
281
+ # Initialize Saxon/C processor
282
+ with PySaxonProcessor(license=False) as proc:
283
+ xslt_processor = proc.new_xslt30_processor()
284
+
285
+ # Set the XSLT stylesheet
286
+ xslt_processor.compile_stylesheet(stylesheet_file=str(xslfile))
287
+
288
+ # Prepare the input XML source
289
+ input_xml = get_dd_xml(version) if version else None
290
+ if fname:
291
+ source_file = str(fname)
292
+ elif input_xml:
293
+ source_file = "-" # Use standard input for the XML string
294
+ else:
295
+ raise ValueError("Either 'fname' or 'version' must be provided to generate XML.")
296
+
297
+ # xdm_ddgit = proc.make_string_value(str(version or fname))
298
+ # xsltproc.set_parameter("DD_GIT_DESCRIBE", xdm_ddgit)
299
+ # xdm_algit = proc.make_string_value(os.environ.get("AL_VERSION", "0.0.0"))
300
+ # xsltproc.set_parameter("AL_GIT_DESCRIBE", xdm_algit)
301
+ # Transform XML
302
+ result = xslt_processor.transform_to_file(
303
+ source_file=source_file,
304
+ output_file=str(output_file),
305
+ initial_template_params={
306
+ "DD_GIT_DESCRIBE": str(version or fname),
307
+ "AL_GIT_DESCRIBE": os.environ.get("AL_VERSION", "0.0.0"),
308
+ },
309
+ )
310
+
311
+ if result is False:
312
+ logger.error("Transformation failed: Check Saxon/C logs for details.")
313
+ raise RuntimeError("Saxon/C XSLT transformation failed.")
314
+
315
+ except Exception as e:
267
316
  if fname:
268
- logger.error("Error making MDSPlus model IDS.xml for %s", fname)
317
+ logger.error("Error making MDSplus model IDS.xml for %s", fname)
269
318
  else:
270
319
  logger.error("Error making MDSplus model IDS.xml for %s", version)
271
320
  raise e
272
-
321
+
273
322
 
274
323
  def create_mdsplus_model(cache_dir_path: Path) -> None:
275
324
  """Use jtraverser to compile a valid MDS model file."""
@@ -1,6 +1,6 @@
1
1
  Metadata-Version: 2.2
2
2
  Name: imas-python
3
- Version: 0.1.dev1648
3
+ Version: 0.1.dev1651
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