morphio 3.3.9__tar.gz → 3.3.10__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.
- {morphio-3.3.9 → morphio-3.3.10}/.github/workflows/check-sdist.yml +2 -2
- {morphio-3.3.9 → morphio-3.3.10}/.github/workflows/clang_format_check.yaml +1 -1
- {morphio-3.3.9 → morphio-3.3.10}/.github/workflows/coverage_test.yaml +1 -1
- {morphio-3.3.9 → morphio-3.3.10}/.github/workflows/docstring_check.yaml +1 -1
- {morphio-3.3.9 → morphio-3.3.10}/.github/workflows/publish-sdist-wheels.yml +37 -31
- {morphio-3.3.9 → morphio-3.3.10}/.github/workflows/run-tests.yml +2 -2
- {morphio-3.3.9 → morphio-3.3.10}/3rdparty/HighFive/CMake/HighFiveConfig.cmake.in +7 -1
- {morphio-3.3.9 → morphio-3.3.10}/3rdparty/HighFive/CMake/HighFiveTargetDeps.cmake +3 -0
- {morphio-3.3.9 → morphio-3.3.10}/3rdparty/HighFive/CMake/HighFiveTargetExport.cmake +0 -1
- morphio-3.3.10/3rdparty/HighFive/CMake/HighFiveWarnings.cmake +43 -0
- {morphio-3.3.9 → morphio-3.3.10}/3rdparty/HighFive/CMakeLists.txt +8 -20
- {morphio-3.3.9 → morphio-3.3.10}/3rdparty/HighFive/doc/Doxyfile +3 -0
- morphio-3.3.10/3rdparty/HighFive/doc/developer_guide.md +224 -0
- {morphio-3.3.9 → morphio-3.3.10}/3rdparty/HighFive/doc/doxygen-awesome-css/doxygen-awesome.css +209 -62
- morphio-3.3.10/3rdparty/HighFive/doc/installation.md +257 -0
- morphio-3.3.10/3rdparty/HighFive/doc/migration_guide.md +134 -0
- {morphio-3.3.9 → morphio-3.3.10}/3rdparty/HighFive/doc/poster/example3.cpp +1 -1
- {morphio-3.3.9 → morphio-3.3.10}/3rdparty/HighFive/doc/poster/example6.cpp +1 -3
- {morphio-3.3.9 → morphio-3.3.10}/3rdparty/HighFive/doc/poster/example_boost.cpp +1 -3
- {morphio-3.3.9 → morphio-3.3.10}/3rdparty/HighFive/doc/poster/example_boost_ublas.cpp +1 -1
- {morphio-3.3.9 → morphio-3.3.10}/3rdparty/HighFive/doc/poster/example_easy_highfive.cpp +1 -0
- {morphio-3.3.9 → morphio-3.3.10}/3rdparty/HighFive/doc/poster/example_props.cpp +1 -1
- morphio-3.3.10/3rdparty/HighFive/include/highfive/H5Attribute.hpp +276 -0
- morphio-3.3.10/3rdparty/HighFive/include/highfive/H5DataSpace.hpp +278 -0
- {morphio-3.3.9 → morphio-3.3.10}/3rdparty/HighFive/include/highfive/H5DataType.hpp +97 -15
- {morphio-3.3.9 → morphio-3.3.10}/3rdparty/HighFive/include/highfive/H5File.hpp +11 -0
- {morphio-3.3.9 → morphio-3.3.10}/3rdparty/HighFive/include/highfive/H5PropertyList.hpp +147 -2
- {morphio-3.3.9 → morphio-3.3.10}/3rdparty/HighFive/include/highfive/H5Utility.hpp +9 -6
- morphio-3.3.10/3rdparty/HighFive/include/highfive/H5Version.hpp +33 -0
- {morphio-3.3.9 → morphio-3.3.10}/3rdparty/HighFive/include/highfive/bits/H5Annotate_traits_misc.hpp +19 -40
- {morphio-3.3.9 → morphio-3.3.10}/3rdparty/HighFive/include/highfive/bits/H5Attribute_misc.hpp +51 -32
- morphio-3.3.10/3rdparty/HighFive/include/highfive/bits/H5Converter_misc.hpp +421 -0
- {morphio-3.3.9 → morphio-3.3.10}/3rdparty/HighFive/include/highfive/bits/H5DataSet_misc.hpp +6 -15
- {morphio-3.3.9 → morphio-3.3.10}/3rdparty/HighFive/include/highfive/bits/H5DataType_misc.hpp +106 -86
- {morphio-3.3.9 → morphio-3.3.10}/3rdparty/HighFive/include/highfive/bits/H5Dataspace_misc.hpp +26 -29
- {morphio-3.3.9 → morphio-3.3.10}/3rdparty/HighFive/include/highfive/bits/H5Exception_misc.hpp +11 -7
- {morphio-3.3.9 → morphio-3.3.10}/3rdparty/HighFive/include/highfive/bits/H5File_misc.hpp +17 -9
- morphio-3.3.10/3rdparty/HighFive/include/highfive/bits/H5Inspector_decl.hpp +27 -0
- morphio-3.3.9/3rdparty/HighFive/include/highfive/bits/H5Converter_misc.hpp → morphio-3.3.10/3rdparty/HighFive/include/highfive/bits/H5Inspector_misc.hpp +77 -336
- {morphio-3.3.9 → morphio-3.3.10}/3rdparty/HighFive/include/highfive/bits/H5Node_traits.hpp +26 -17
- {morphio-3.3.9 → morphio-3.3.10}/3rdparty/HighFive/include/highfive/bits/H5Node_traits_misc.hpp +107 -144
- {morphio-3.3.9 → morphio-3.3.10}/3rdparty/HighFive/include/highfive/bits/H5Object_misc.hpp +14 -14
- {morphio-3.3.9 → morphio-3.3.10}/3rdparty/HighFive/include/highfive/bits/H5Path_traits_misc.hpp +4 -8
- {morphio-3.3.9 → morphio-3.3.10}/3rdparty/HighFive/include/highfive/bits/H5PropertyList_misc.hpp +68 -113
- {morphio-3.3.9 → morphio-3.3.10}/3rdparty/HighFive/include/highfive/bits/H5ReadWrite_misc.hpp +55 -35
- {morphio-3.3.9 → morphio-3.3.10}/3rdparty/HighFive/include/highfive/bits/H5Reference_misc.hpp +8 -13
- {morphio-3.3.9 → morphio-3.3.10}/3rdparty/HighFive/include/highfive/bits/H5Slice_traits.hpp +180 -26
- {morphio-3.3.9 → morphio-3.3.10}/3rdparty/HighFive/include/highfive/bits/H5Slice_traits_misc.hpp +76 -57
- {morphio-3.3.9 → morphio-3.3.10}/3rdparty/HighFive/include/highfive/bits/H5Utils.hpp +2 -0
- {morphio-3.3.9 → morphio-3.3.10}/3rdparty/HighFive/include/highfive/bits/H5_definitions.hpp +10 -1
- morphio-3.3.10/3rdparty/HighFive/include/highfive/bits/h5_wrapper.hpp +19 -0
- morphio-3.3.10/3rdparty/HighFive/include/highfive/bits/h5a_wrapper.hpp +131 -0
- morphio-3.3.10/3rdparty/HighFive/include/highfive/bits/h5d_wrapper.hpp +125 -0
- morphio-3.3.10/3rdparty/HighFive/include/highfive/bits/h5e_wrapper.hpp +39 -0
- morphio-3.3.10/3rdparty/HighFive/include/highfive/bits/h5f_wrapper.hpp +58 -0
- morphio-3.3.10/3rdparty/HighFive/include/highfive/bits/h5g_wrapper.hpp +46 -0
- morphio-3.3.10/3rdparty/HighFive/include/highfive/bits/h5i_wrapper.hpp +79 -0
- morphio-3.3.10/3rdparty/HighFive/include/highfive/bits/h5l_wrapper.hpp +132 -0
- morphio-3.3.10/3rdparty/HighFive/include/highfive/bits/h5o_wrapper.hpp +19 -0
- morphio-3.3.10/3rdparty/HighFive/include/highfive/bits/h5p_wrapper.hpp +376 -0
- morphio-3.3.10/3rdparty/HighFive/include/highfive/bits/h5r_wrapper.hpp +42 -0
- morphio-3.3.10/3rdparty/HighFive/include/highfive/bits/h5s_wrapper.hpp +136 -0
- morphio-3.3.10/3rdparty/HighFive/include/highfive/bits/h5t_wrapper.hpp +230 -0
- morphio-3.3.10/3rdparty/HighFive/include/highfive/bits/string_padding.hpp +14 -0
- morphio-3.3.10/3rdparty/HighFive/include/highfive/boost.hpp +164 -0
- morphio-3.3.10/3rdparty/HighFive/include/highfive/eigen.hpp +93 -0
- {morphio-3.3.9 → morphio-3.3.10}/3rdparty/HighFive/include/highfive/h5easy_bits/H5Easy_Eigen.hpp +2 -2
- {morphio-3.3.9 → morphio-3.3.10}/3rdparty/HighFive/include/highfive/h5easy_bits/H5Easy_opencv.hpp +2 -2
- {morphio-3.3.9 → morphio-3.3.10}/3rdparty/HighFive/include/highfive/h5easy_bits/H5Easy_xtensor.hpp +2 -2
- morphio-3.3.10/3rdparty/HighFive/include/highfive/half_float.hpp +21 -0
- morphio-3.3.10/3rdparty/HighFive/include/highfive/highfive.hpp +14 -0
- {morphio-3.3.9/morphio.egg-info → morphio-3.3.10}/PKG-INFO +1 -1
- {morphio-3.3.9 → morphio-3.3.10}/binds/python/bind_enums.cpp +1 -3
- {morphio-3.3.9 → morphio-3.3.10}/binds/python/generated/docstrings.h +0 -14
- {morphio-3.3.9 → morphio-3.3.10}/include/morphio/enums.h +1 -1
- {morphio-3.3.9 → morphio-3.3.10}/include/morphio/types.h +0 -1
- {morphio-3.3.9 → morphio-3.3.10/morphio.egg-info}/PKG-INFO +1 -1
- {morphio-3.3.9 → morphio-3.3.10}/morphio.egg-info/SOURCES.txt +25 -4
- {morphio-3.3.9 → morphio-3.3.10}/src/error_message_generation.cpp +2 -1
- {morphio-3.3.9 → morphio-3.3.10}/src/warning_handling.cpp +0 -4
- morphio-3.3.9/3rdparty/HighFive/CMake/config/CompilerFlagsHelpers.cmake +0 -59
- morphio-3.3.9/3rdparty/HighFive/CMake/config/ReleaseDebugAutoFlags.cmake +0 -45
- morphio-3.3.9/3rdparty/HighFive/doc/poster/example_eigen.cpp +0 -35
- morphio-3.3.9/3rdparty/HighFive/include/highfive/H5Attribute.hpp +0 -134
- morphio-3.3.9/3rdparty/HighFive/include/highfive/H5DataSpace.hpp +0 -118
- morphio-3.3.9/include/morphio/tools.h +0 -35
- {morphio-3.3.9 → morphio-3.3.10}/.clang-format +0 -0
- {morphio-3.3.9 → morphio-3.3.10}/.gitignore +0 -0
- {morphio-3.3.9 → morphio-3.3.10}/.gitmodules +0 -0
- {morphio-3.3.9 → morphio-3.3.10}/.readthedocs.yaml +0 -0
- {morphio-3.3.9 → morphio-3.3.10}/3rdparty/CMakeLists.txt +0 -0
- {morphio-3.3.9 → morphio-3.3.10}/3rdparty/GSL_LITE/CMakeLists.txt +0 -0
- {morphio-3.3.9 → morphio-3.3.10}/3rdparty/GSL_LITE/cmake/gsl-lite-config-version.cmake.in +0 -0
- {morphio-3.3.9 → morphio-3.3.10}/3rdparty/GSL_LITE/cmake/gsl-lite-config.cmake.in +0 -0
- {morphio-3.3.9 → morphio-3.3.10}/3rdparty/GSL_LITE/gsl-lite.natvis +0 -0
- {morphio-3.3.9 → morphio-3.3.10}/3rdparty/GSL_LITE/include/gsl/gsl +0 -0
- {morphio-3.3.9 → morphio-3.3.10}/3rdparty/GSL_LITE/include/gsl/gsl-lite-vc6.hpp +0 -0
- {morphio-3.3.9 → morphio-3.3.10}/3rdparty/GSL_LITE/include/gsl/gsl-lite.h +0 -0
- {morphio-3.3.9 → morphio-3.3.10}/3rdparty/GSL_LITE/include/gsl/gsl-lite.hpp +0 -0
- {morphio-3.3.9 → morphio-3.3.10}/3rdparty/GSL_LITE/include/gsl-lite/gsl-lite.hpp +0 -0
- {morphio-3.3.9 → morphio-3.3.10}/3rdparty/GSL_LITE/include/gsl.h +0 -0
- {morphio-3.3.9 → morphio-3.3.10}/3rdparty/GSL_LITE/include/gsl.hpp +0 -0
- {morphio-3.3.9 → morphio-3.3.10}/3rdparty/HighFive/CMake/config/TestHelpers.cmake +0 -0
- {morphio-3.3.9 → morphio-3.3.10}/3rdparty/HighFive/doc/CMakeLists.txt +0 -0
- {morphio-3.3.9 → morphio-3.3.10}/3rdparty/HighFive/doc/DoxygenLayout.xml +1 -1
- {morphio-3.3.9 → morphio-3.3.10}/3rdparty/HighFive/doc/doxygen-awesome-css/update_doxygen_awesome.sh +0 -0
- {morphio-3.3.9 → morphio-3.3.10}/3rdparty/HighFive/doc/environment.yaml +0 -0
- {morphio-3.3.9 → morphio-3.3.10}/3rdparty/HighFive/doc/poster/example1_hdf5.cpp +0 -0
- {morphio-3.3.9 → morphio-3.3.10}/3rdparty/HighFive/doc/poster/example1_highfive.cpp +0 -0
- {morphio-3.3.9 → morphio-3.3.10}/3rdparty/HighFive/doc/poster/example_easy_h5py.py +0 -0
- {morphio-3.3.9 → morphio-3.3.10}/3rdparty/HighFive/doc/poster/examples.js +0 -0
- {morphio-3.3.9 → morphio-3.3.10}/3rdparty/HighFive/doc/poster/godbolt.org.ico +0 -0
- {morphio-3.3.9 → morphio-3.3.10}/3rdparty/HighFive/doc/poster/index.html +0 -0
- {morphio-3.3.9 → morphio-3.3.10}/3rdparty/HighFive/include/highfive/H5DataSet.hpp +0 -0
- {morphio-3.3.9 → morphio-3.3.10}/3rdparty/HighFive/include/highfive/H5Easy.hpp +0 -0
- {morphio-3.3.9 → morphio-3.3.10}/3rdparty/HighFive/include/highfive/H5Exception.hpp +0 -0
- {morphio-3.3.9 → morphio-3.3.10}/3rdparty/HighFive/include/highfive/H5FileDriver.hpp +0 -0
- {morphio-3.3.9 → morphio-3.3.10}/3rdparty/HighFive/include/highfive/H5Group.hpp +0 -0
- {morphio-3.3.9 → morphio-3.3.10}/3rdparty/HighFive/include/highfive/H5Object.hpp +0 -0
- {morphio-3.3.9 → morphio-3.3.10}/3rdparty/HighFive/include/highfive/H5Reference.hpp +0 -0
- {morphio-3.3.9 → morphio-3.3.10}/3rdparty/HighFive/include/highfive/H5Selection.hpp +0 -0
- {morphio-3.3.9 → morphio-3.3.10}/3rdparty/HighFive/include/highfive/H5Version.hpp.in +0 -0
- {morphio-3.3.9 → morphio-3.3.10}/3rdparty/HighFive/include/highfive/bits/H5Annotate_traits.hpp +0 -0
- {morphio-3.3.9 → morphio-3.3.10}/3rdparty/HighFive/include/highfive/bits/H5FileDriver_misc.hpp +0 -0
- {morphio-3.3.9 → morphio-3.3.10}/3rdparty/HighFive/include/highfive/bits/H5Friends.hpp +0 -0
- {morphio-3.3.9 → morphio-3.3.10}/3rdparty/HighFive/include/highfive/bits/H5Iterables_misc.hpp +0 -0
- {morphio-3.3.9 → morphio-3.3.10}/3rdparty/HighFive/include/highfive/bits/H5Path_traits.hpp +0 -0
- {morphio-3.3.9 → morphio-3.3.10}/3rdparty/HighFive/include/highfive/bits/H5Selection_misc.hpp +0 -0
- {morphio-3.3.9 → morphio-3.3.10}/3rdparty/HighFive/include/highfive/h5easy_bits/H5Easy_misc.hpp +0 -0
- {morphio-3.3.9 → morphio-3.3.10}/3rdparty/HighFive/include/highfive/h5easy_bits/H5Easy_public.hpp +0 -0
- {morphio-3.3.9 → morphio-3.3.10}/3rdparty/HighFive/include/highfive/h5easy_bits/H5Easy_scalar.hpp +0 -0
- {morphio-3.3.9 → morphio-3.3.10}/3rdparty/HighFive/include/highfive/h5easy_bits/H5Easy_vector.hpp +0 -0
- {morphio-3.3.9 → morphio-3.3.10}/3rdparty/ghc_filesystem/CMakeLists.txt +0 -0
- {morphio-3.3.9 → morphio-3.3.10}/3rdparty/ghc_filesystem/LICENSE +0 -0
- {morphio-3.3.9 → morphio-3.3.10}/3rdparty/ghc_filesystem/cmake/GhcHelper.cmake +0 -0
- {morphio-3.3.9 → morphio-3.3.10}/3rdparty/ghc_filesystem/cmake/config.cmake.in +0 -0
- {morphio-3.3.9 → morphio-3.3.10}/3rdparty/ghc_filesystem/include/ghc/filesystem.hpp +0 -0
- {morphio-3.3.9 → morphio-3.3.10}/3rdparty/ghc_filesystem/include/ghc/fs_fwd.hpp +0 -0
- {morphio-3.3.9 → morphio-3.3.10}/3rdparty/ghc_filesystem/include/ghc/fs_impl.hpp +0 -0
- {morphio-3.3.9 → morphio-3.3.10}/3rdparty/ghc_filesystem/include/ghc/fs_std.hpp +0 -0
- {morphio-3.3.9 → morphio-3.3.10}/3rdparty/ghc_filesystem/include/ghc/fs_std_fwd.hpp +0 -0
- {morphio-3.3.9 → morphio-3.3.10}/3rdparty/ghc_filesystem/include/ghc/fs_std_impl.hpp +0 -0
- {morphio-3.3.9 → morphio-3.3.10}/3rdparty/lexertl14/CMakeLists.txt +0 -0
- {morphio-3.3.9 → morphio-3.3.10}/3rdparty/lexertl14/include/lexertl/char_traits.hpp +0 -0
- {morphio-3.3.9 → morphio-3.3.10}/3rdparty/lexertl14/include/lexertl/debug.hpp +0 -0
- {morphio-3.3.9 → morphio-3.3.10}/3rdparty/lexertl14/include/lexertl/dot.hpp +0 -0
- {morphio-3.3.9 → morphio-3.3.10}/3rdparty/lexertl14/include/lexertl/enums.hpp +0 -0
- {morphio-3.3.9 → morphio-3.3.10}/3rdparty/lexertl14/include/lexertl/generate_cpp.hpp +0 -0
- {morphio-3.3.9 → morphio-3.3.10}/3rdparty/lexertl14/include/lexertl/generator.hpp +0 -0
- {morphio-3.3.9 → morphio-3.3.10}/3rdparty/lexertl14/include/lexertl/internals.hpp +0 -0
- {morphio-3.3.9 → morphio-3.3.10}/3rdparty/lexertl14/include/lexertl/iterator.hpp +0 -0
- {morphio-3.3.9 → morphio-3.3.10}/3rdparty/lexertl14/include/lexertl/licence_1_0.txt +0 -0
- {morphio-3.3.9 → morphio-3.3.10}/3rdparty/lexertl14/include/lexertl/lookup.hpp +0 -0
- {morphio-3.3.9 → morphio-3.3.10}/3rdparty/lexertl14/include/lexertl/match_results.hpp +0 -0
- {morphio-3.3.9 → morphio-3.3.10}/3rdparty/lexertl14/include/lexertl/memory_file.hpp +0 -0
- {morphio-3.3.9 → morphio-3.3.10}/3rdparty/lexertl14/include/lexertl/narrow.hpp +0 -0
- {morphio-3.3.9 → morphio-3.3.10}/3rdparty/lexertl14/include/lexertl/observer_ptr.hpp +0 -0
- {morphio-3.3.9 → morphio-3.3.10}/3rdparty/lexertl14/include/lexertl/parser/parser.hpp +0 -0
- {morphio-3.3.9 → morphio-3.3.10}/3rdparty/lexertl14/include/lexertl/parser/tokeniser/blocks.hpp +0 -0
- {morphio-3.3.9 → morphio-3.3.10}/3rdparty/lexertl14/include/lexertl/parser/tokeniser/fold2.inc +0 -0
- {morphio-3.3.9 → morphio-3.3.10}/3rdparty/lexertl14/include/lexertl/parser/tokeniser/fold4.inc +0 -0
- {morphio-3.3.9 → morphio-3.3.10}/3rdparty/lexertl14/include/lexertl/parser/tokeniser/re_token.hpp +0 -0
- {morphio-3.3.9 → morphio-3.3.10}/3rdparty/lexertl14/include/lexertl/parser/tokeniser/re_tokeniser.hpp +0 -0
- {morphio-3.3.9 → morphio-3.3.10}/3rdparty/lexertl14/include/lexertl/parser/tokeniser/re_tokeniser_helper.hpp +0 -0
- {morphio-3.3.9 → morphio-3.3.10}/3rdparty/lexertl14/include/lexertl/parser/tokeniser/re_tokeniser_state.hpp +0 -0
- {morphio-3.3.9 → morphio-3.3.10}/3rdparty/lexertl14/include/lexertl/parser/tokeniser/scripts.hpp +0 -0
- {morphio-3.3.9 → morphio-3.3.10}/3rdparty/lexertl14/include/lexertl/parser/tokeniser/table.inc +0 -0
- {morphio-3.3.9 → morphio-3.3.10}/3rdparty/lexertl14/include/lexertl/parser/tokeniser/unicode.hpp +0 -0
- {morphio-3.3.9 → morphio-3.3.10}/3rdparty/lexertl14/include/lexertl/parser/tree/end_node.hpp +0 -0
- {morphio-3.3.9 → morphio-3.3.10}/3rdparty/lexertl14/include/lexertl/parser/tree/iteration_node.hpp +0 -0
- {morphio-3.3.9 → morphio-3.3.10}/3rdparty/lexertl14/include/lexertl/parser/tree/leaf_node.hpp +0 -0
- {morphio-3.3.9 → morphio-3.3.10}/3rdparty/lexertl14/include/lexertl/parser/tree/node.hpp +0 -0
- {morphio-3.3.9 → morphio-3.3.10}/3rdparty/lexertl14/include/lexertl/parser/tree/selection_node.hpp +0 -0
- {morphio-3.3.9 → morphio-3.3.10}/3rdparty/lexertl14/include/lexertl/parser/tree/sequence_node.hpp +0 -0
- {morphio-3.3.9 → morphio-3.3.10}/3rdparty/lexertl14/include/lexertl/partition/charset.hpp +0 -0
- {morphio-3.3.9 → morphio-3.3.10}/3rdparty/lexertl14/include/lexertl/partition/equivset.hpp +0 -0
- {morphio-3.3.9 → morphio-3.3.10}/3rdparty/lexertl14/include/lexertl/rules.hpp +0 -0
- {morphio-3.3.9 → morphio-3.3.10}/3rdparty/lexertl14/include/lexertl/runtime_error.hpp +0 -0
- {morphio-3.3.9 → morphio-3.3.10}/3rdparty/lexertl14/include/lexertl/serialise.hpp +0 -0
- {morphio-3.3.9 → morphio-3.3.10}/3rdparty/lexertl14/include/lexertl/sm_to_csm.hpp +0 -0
- {morphio-3.3.9 → morphio-3.3.10}/3rdparty/lexertl14/include/lexertl/sm_traits.hpp +0 -0
- {morphio-3.3.9 → morphio-3.3.10}/3rdparty/lexertl14/include/lexertl/state_machine.hpp +0 -0
- {morphio-3.3.9 → morphio-3.3.10}/3rdparty/lexertl14/include/lexertl/stream_shared_iterator.hpp +0 -0
- {morphio-3.3.9 → morphio-3.3.10}/3rdparty/lexertl14/include/lexertl/string_token.hpp +0 -0
- {morphio-3.3.9 → morphio-3.3.10}/3rdparty/lexertl14/include/lexertl/utf_iterators.hpp +0 -0
- {morphio-3.3.9 → morphio-3.3.10}/AUTHORS.txt +0 -0
- {morphio-3.3.9 → morphio-3.3.10}/CHANGELOG.md +0 -0
- {morphio-3.3.9 → morphio-3.3.10}/CMake/CodeCoverage.cmake +0 -0
- {morphio-3.3.9 → morphio-3.3.10}/CMake/CompilerFlags.cmake +0 -0
- {morphio-3.3.9 → morphio-3.3.10}/CMake/MorphIOConfig.cmake +0 -0
- {morphio-3.3.9 → morphio-3.3.10}/CMakeLists.txt +0 -0
- {morphio-3.3.9 → morphio-3.3.10}/CONTRIBUTING.md +0 -0
- {morphio-3.3.9 → morphio-3.3.10}/LICENSE.txt +0 -0
- {morphio-3.3.9 → morphio-3.3.10}/MANIFEST.in +0 -0
- {morphio-3.3.9 → morphio-3.3.10}/README.rst +0 -0
- {morphio-3.3.9 → morphio-3.3.10}/binds/python/CMakeLists.txt +0 -0
- {morphio-3.3.9 → morphio-3.3.10}/binds/python/bind_enums.h +0 -0
- {morphio-3.3.9 → morphio-3.3.10}/binds/python/bind_immutable.cpp +0 -0
- {morphio-3.3.9 → morphio-3.3.10}/binds/python/bind_immutable.h +0 -0
- {morphio-3.3.9 → morphio-3.3.10}/binds/python/bind_misc.cpp +0 -0
- {morphio-3.3.9 → morphio-3.3.10}/binds/python/bind_misc.h +0 -0
- {morphio-3.3.9 → morphio-3.3.10}/binds/python/bind_mutable.cpp +0 -0
- {morphio-3.3.9 → morphio-3.3.10}/binds/python/bind_mutable.h +0 -0
- {morphio-3.3.9 → morphio-3.3.10}/binds/python/bind_vasculature.cpp +0 -0
- {morphio-3.3.9 → morphio-3.3.10}/binds/python/bind_vasculature.h +0 -0
- {morphio-3.3.9 → morphio-3.3.10}/binds/python/bind_warnings_exceptions.cpp +0 -0
- {morphio-3.3.9 → morphio-3.3.10}/binds/python/bind_warnings_exceptions.h +0 -0
- {morphio-3.3.9 → morphio-3.3.10}/binds/python/bindings_utils.cpp +0 -0
- {morphio-3.3.9 → morphio-3.3.10}/binds/python/bindings_utils.h +0 -0
- {morphio-3.3.9 → morphio-3.3.10}/binds/python/generated/.clang-format +0 -0
- {morphio-3.3.9 → morphio-3.3.10}/binds/python/morphio.cpp +0 -0
- {morphio-3.3.9 → morphio-3.3.10}/binds/python/pybind11/CMakeLists.txt +0 -0
- {morphio-3.3.9 → morphio-3.3.10}/binds/python/pybind11/LICENSE +0 -0
- {morphio-3.3.9 → morphio-3.3.10}/binds/python/pybind11/include/pybind11/attr.h +0 -0
- {morphio-3.3.9 → morphio-3.3.10}/binds/python/pybind11/include/pybind11/buffer_info.h +0 -0
- {morphio-3.3.9 → morphio-3.3.10}/binds/python/pybind11/include/pybind11/cast.h +0 -0
- {morphio-3.3.9 → morphio-3.3.10}/binds/python/pybind11/include/pybind11/chrono.h +0 -0
- {morphio-3.3.9 → morphio-3.3.10}/binds/python/pybind11/include/pybind11/common.h +0 -0
- {morphio-3.3.9 → morphio-3.3.10}/binds/python/pybind11/include/pybind11/complex.h +0 -0
- {morphio-3.3.9 → morphio-3.3.10}/binds/python/pybind11/include/pybind11/detail/class.h +0 -0
- {morphio-3.3.9 → morphio-3.3.10}/binds/python/pybind11/include/pybind11/detail/common.h +0 -0
- {morphio-3.3.9 → morphio-3.3.10}/binds/python/pybind11/include/pybind11/detail/descr.h +0 -0
- {morphio-3.3.9 → morphio-3.3.10}/binds/python/pybind11/include/pybind11/detail/init.h +0 -0
- {morphio-3.3.9 → morphio-3.3.10}/binds/python/pybind11/include/pybind11/detail/internals.h +0 -0
- {morphio-3.3.9 → morphio-3.3.10}/binds/python/pybind11/include/pybind11/detail/type_caster_base.h +0 -0
- {morphio-3.3.9 → morphio-3.3.10}/binds/python/pybind11/include/pybind11/detail/typeid.h +0 -0
- {morphio-3.3.9 → morphio-3.3.10}/binds/python/pybind11/include/pybind11/eigen/common.h +0 -0
- {morphio-3.3.9 → morphio-3.3.10}/binds/python/pybind11/include/pybind11/eigen/matrix.h +0 -0
- {morphio-3.3.9 → morphio-3.3.10}/binds/python/pybind11/include/pybind11/eigen/tensor.h +0 -0
- {morphio-3.3.9 → morphio-3.3.10}/binds/python/pybind11/include/pybind11/eigen.h +0 -0
- {morphio-3.3.9 → morphio-3.3.10}/binds/python/pybind11/include/pybind11/embed.h +0 -0
- {morphio-3.3.9 → morphio-3.3.10}/binds/python/pybind11/include/pybind11/eval.h +0 -0
- {morphio-3.3.9 → morphio-3.3.10}/binds/python/pybind11/include/pybind11/functional.h +0 -0
- {morphio-3.3.9 → morphio-3.3.10}/binds/python/pybind11/include/pybind11/gil.h +0 -0
- {morphio-3.3.9 → morphio-3.3.10}/binds/python/pybind11/include/pybind11/gil_safe_call_once.h +0 -0
- {morphio-3.3.9 → morphio-3.3.10}/binds/python/pybind11/include/pybind11/iostream.h +0 -0
- {morphio-3.3.9 → morphio-3.3.10}/binds/python/pybind11/include/pybind11/numpy.h +0 -0
- {morphio-3.3.9 → morphio-3.3.10}/binds/python/pybind11/include/pybind11/operators.h +0 -0
- {morphio-3.3.9 → morphio-3.3.10}/binds/python/pybind11/include/pybind11/options.h +0 -0
- {morphio-3.3.9 → morphio-3.3.10}/binds/python/pybind11/include/pybind11/pybind11.h +0 -0
- {morphio-3.3.9 → morphio-3.3.10}/binds/python/pybind11/include/pybind11/pytypes.h +0 -0
- {morphio-3.3.9 → morphio-3.3.10}/binds/python/pybind11/include/pybind11/stl/filesystem.h +0 -0
- {morphio-3.3.9 → morphio-3.3.10}/binds/python/pybind11/include/pybind11/stl.h +0 -0
- {morphio-3.3.9 → morphio-3.3.10}/binds/python/pybind11/include/pybind11/stl_bind.h +0 -0
- {morphio-3.3.9 → morphio-3.3.10}/binds/python/pybind11/include/pybind11/type_caster_pyobject_ptr.h +0 -0
- {morphio-3.3.9 → morphio-3.3.10}/binds/python/pybind11/include/pybind11/typing.h +0 -0
- {morphio-3.3.9 → morphio-3.3.10}/binds/python/pybind11/tools/FindCatch.cmake +0 -0
- {morphio-3.3.9 → morphio-3.3.10}/binds/python/pybind11/tools/FindEigen3.cmake +0 -0
- {morphio-3.3.9 → morphio-3.3.10}/binds/python/pybind11/tools/FindPythonLibsNew.cmake +0 -0
- {morphio-3.3.9 → morphio-3.3.10}/binds/python/pybind11/tools/JoinPaths.cmake +0 -0
- {morphio-3.3.9 → morphio-3.3.10}/binds/python/pybind11/tools/pybind11Common.cmake +0 -0
- {morphio-3.3.9 → morphio-3.3.10}/binds/python/pybind11/tools/pybind11NewTools.cmake +0 -0
- {morphio-3.3.9 → morphio-3.3.10}/binds/python/pybind11/tools/pybind11Tools.cmake +0 -0
- {morphio-3.3.9 → morphio-3.3.10}/include/morphio/collection.h +0 -0
- {morphio-3.3.9 → morphio-3.3.10}/include/morphio/dendritic_spine.h +0 -0
- {morphio-3.3.9 → morphio-3.3.10}/include/morphio/endoplasmic_reticulum.h +0 -0
- {morphio-3.3.9 → morphio-3.3.10}/include/morphio/errorMessages.h +0 -0
- {morphio-3.3.9 → morphio-3.3.10}/include/morphio/exceptions.h +0 -0
- {morphio-3.3.9 → morphio-3.3.10}/include/morphio/glial_cell.h +0 -0
- {morphio-3.3.9 → morphio-3.3.10}/include/morphio/mito_section.h +0 -0
- {morphio-3.3.9 → morphio-3.3.10}/include/morphio/mitochondria.h +0 -0
- {morphio-3.3.9 → morphio-3.3.10}/include/morphio/morphology.h +0 -0
- {morphio-3.3.9 → morphio-3.3.10}/include/morphio/mut/dendritic_spine.h +0 -0
- {morphio-3.3.9 → morphio-3.3.10}/include/morphio/mut/endoplasmic_reticulum.h +0 -0
- {morphio-3.3.9 → morphio-3.3.10}/include/morphio/mut/glial_cell.h +0 -0
- {morphio-3.3.9 → morphio-3.3.10}/include/morphio/mut/mito_section.h +0 -0
- {morphio-3.3.9 → morphio-3.3.10}/include/morphio/mut/mitochondria.h +0 -0
- {morphio-3.3.9 → morphio-3.3.10}/include/morphio/mut/modifiers.h +0 -0
- {morphio-3.3.9 → morphio-3.3.10}/include/morphio/mut/morphology.h +0 -0
- {morphio-3.3.9 → morphio-3.3.10}/include/morphio/mut/section.h +0 -0
- {morphio-3.3.9 → morphio-3.3.10}/include/morphio/mut/soma.h +0 -0
- {morphio-3.3.9 → morphio-3.3.10}/include/morphio/mut/writers.h +0 -0
- {morphio-3.3.9 → morphio-3.3.10}/include/morphio/properties.h +0 -0
- {morphio-3.3.9 → morphio-3.3.10}/include/morphio/section.h +0 -0
- {morphio-3.3.9 → morphio-3.3.10}/include/morphio/section_base.h +0 -0
- {morphio-3.3.9 → morphio-3.3.10}/include/morphio/section_iterators.hpp +0 -0
- {morphio-3.3.9 → morphio-3.3.10}/include/morphio/soma.h +0 -0
- {morphio-3.3.9 → morphio-3.3.10}/include/morphio/vasc/iterators.hpp +0 -0
- {morphio-3.3.9 → morphio-3.3.10}/include/morphio/vasc/properties.h +0 -0
- {morphio-3.3.9 → morphio-3.3.10}/include/morphio/vasc/section.h +0 -0
- {morphio-3.3.9 → morphio-3.3.10}/include/morphio/vasc/vasculature.h +0 -0
- {morphio-3.3.9 → morphio-3.3.10}/include/morphio/vector_types.h +0 -0
- {morphio-3.3.9 → morphio-3.3.10}/include/morphio/version.h +0 -0
- {morphio-3.3.9 → morphio-3.3.10}/include/morphio/warning_handling.h +0 -0
- {morphio-3.3.9 → morphio-3.3.10}/morphio/__init__.py +0 -0
- {morphio-3.3.9 → morphio-3.3.10}/morphio/mut/__init__.py +0 -0
- {morphio-3.3.9 → morphio-3.3.10}/morphio/vasculature/__init__.py +0 -0
- {morphio-3.3.9 → morphio-3.3.10}/morphio.egg-info/dependency_links.txt +0 -0
- {morphio-3.3.9 → morphio-3.3.10}/morphio.egg-info/not-zip-safe +0 -0
- {morphio-3.3.9 → morphio-3.3.10}/morphio.egg-info/requires.txt +0 -0
- {morphio-3.3.9 → morphio-3.3.10}/morphio.egg-info/top_level.txt +0 -0
- {morphio-3.3.9 → morphio-3.3.10}/pyproject.toml +0 -0
- {morphio-3.3.9 → morphio-3.3.10}/setup.cfg +0 -0
- {morphio-3.3.9 → morphio-3.3.10}/setup.py +0 -0
- {morphio-3.3.9 → morphio-3.3.10}/src/CMakeLists.txt +0 -0
- {morphio-3.3.9 → morphio-3.3.10}/src/collection.cpp +0 -0
- {morphio-3.3.9 → morphio-3.3.10}/src/dendritic_spine.cpp +0 -0
- {morphio-3.3.9 → morphio-3.3.10}/src/endoplasmic_reticulum.cpp +0 -0
- {morphio-3.3.9 → morphio-3.3.10}/src/enums.cpp +0 -0
- {morphio-3.3.9 → morphio-3.3.10}/src/errorMessages.cpp +0 -0
- {morphio-3.3.9 → morphio-3.3.10}/src/error_message_generation.h +0 -0
- {morphio-3.3.9 → morphio-3.3.10}/src/glial_cell.cpp +0 -0
- {morphio-3.3.9 → morphio-3.3.10}/src/mito_section.cpp +0 -0
- {morphio-3.3.9 → morphio-3.3.10}/src/mitochondria.cpp +0 -0
- {morphio-3.3.9 → morphio-3.3.10}/src/morphology.cpp +0 -0
- {morphio-3.3.9 → morphio-3.3.10}/src/mut/dendritic_spine.cpp +0 -0
- {morphio-3.3.9 → morphio-3.3.10}/src/mut/endoplasmic_reticulum.cpp +0 -0
- {morphio-3.3.9 → morphio-3.3.10}/src/mut/glial_cell.cpp +0 -0
- {morphio-3.3.9 → morphio-3.3.10}/src/mut/mito_section.cpp +0 -0
- {morphio-3.3.9 → morphio-3.3.10}/src/mut/mitochondria.cpp +0 -0
- {morphio-3.3.9 → morphio-3.3.10}/src/mut/modifiers.cpp +0 -0
- {morphio-3.3.9 → morphio-3.3.10}/src/mut/morphology.cpp +0 -0
- {morphio-3.3.9 → morphio-3.3.10}/src/mut/section.cpp +0 -0
- {morphio-3.3.9 → morphio-3.3.10}/src/mut/soma.cpp +0 -0
- {morphio-3.3.9 → morphio-3.3.10}/src/mut/writer_asc.cpp +0 -0
- {morphio-3.3.9 → morphio-3.3.10}/src/mut/writer_hdf5.cpp +0 -0
- {morphio-3.3.9 → morphio-3.3.10}/src/mut/writer_swc.cpp +0 -0
- {morphio-3.3.9 → morphio-3.3.10}/src/mut/writer_utils.cpp +0 -0
- {morphio-3.3.9 → morphio-3.3.10}/src/mut/writer_utils.h +0 -0
- {morphio-3.3.9 → morphio-3.3.10}/src/point_utils.cpp +0 -0
- {morphio-3.3.9 → morphio-3.3.10}/src/point_utils.h +0 -0
- {morphio-3.3.9 → morphio-3.3.10}/src/properties.cpp +0 -0
- {morphio-3.3.9 → morphio-3.3.10}/src/readers/NeurolucidaLexer.inc +0 -0
- {morphio-3.3.9 → morphio-3.3.10}/src/readers/morphologyASC.cpp +0 -0
- {morphio-3.3.9 → morphio-3.3.10}/src/readers/morphologyASC.h +0 -0
- {morphio-3.3.9 → morphio-3.3.10}/src/readers/morphologyHDF5.cpp +0 -0
- {morphio-3.3.9 → morphio-3.3.10}/src/readers/morphologyHDF5.h +0 -0
- {morphio-3.3.9 → morphio-3.3.10}/src/readers/morphologySWC.cpp +0 -0
- {morphio-3.3.9 → morphio-3.3.10}/src/readers/morphologySWC.h +0 -0
- {morphio-3.3.9 → morphio-3.3.10}/src/readers/vasculatureHDF5.cpp +0 -0
- {morphio-3.3.9 → morphio-3.3.10}/src/readers/vasculatureHDF5.h +0 -0
- {morphio-3.3.9 → morphio-3.3.10}/src/section.cpp +0 -0
- {morphio-3.3.9 → morphio-3.3.10}/src/shared_utils.cpp +0 -0
- {morphio-3.3.9 → morphio-3.3.10}/src/shared_utils.hpp +0 -0
- {morphio-3.3.9 → morphio-3.3.10}/src/soma.cpp +0 -0
- {morphio-3.3.9 → morphio-3.3.10}/src/vasc/properties.cpp +0 -0
- {morphio-3.3.9 → morphio-3.3.10}/src/vasc/section.cpp +0 -0
- {morphio-3.3.9 → morphio-3.3.10}/src/vasc/vasculature.cpp +0 -0
- {morphio-3.3.9 → morphio-3.3.10}/src/version.cpp.in +0 -0
|
@@ -13,12 +13,12 @@ jobs:
|
|
|
13
13
|
if: github.event_name == 'push' || github.event.pull_request.head.repo.full_name != github.repository
|
|
14
14
|
|
|
15
15
|
steps:
|
|
16
|
-
- uses: actions/checkout@
|
|
16
|
+
- uses: actions/checkout@v4
|
|
17
17
|
with:
|
|
18
18
|
submodules: 'true'
|
|
19
19
|
|
|
20
20
|
- name: Set up Python 3.10
|
|
21
|
-
uses: actions/setup-python@
|
|
21
|
+
uses: actions/setup-python@v5
|
|
22
22
|
with:
|
|
23
23
|
python-version: '3.10'
|
|
24
24
|
|
|
@@ -4,9 +4,9 @@ on: [pull_request, push]
|
|
|
4
4
|
env:
|
|
5
5
|
apt_options: -o Acquire::Retries=3
|
|
6
6
|
|
|
7
|
-
CIBW_BUILD_VERBOSITY:
|
|
7
|
+
CIBW_BUILD_VERBOSITY: 1
|
|
8
8
|
CIBW_BUILD: 'cp*'
|
|
9
|
-
CIBW_SKIP: 'cp35-* cp36-* cp37-* *-manylinux_i686 *-musllinux_* *-win32'
|
|
9
|
+
CIBW_SKIP: 'cp35-* cp36-* cp37-* cp38-* *-manylinux_i686 *-musllinux_* *-win32'
|
|
10
10
|
CIBW_BEFORE_TEST: pip install -r {project}/tests/requirement_tests.txt
|
|
11
11
|
CIBW_TEST_COMMAND: pytest -s -v {project}/tests
|
|
12
12
|
UNIXY_HDF5_VERSION: 1.14.3
|
|
@@ -21,15 +21,16 @@ jobs:
|
|
|
21
21
|
runs-on: ${{ matrix.os }}
|
|
22
22
|
strategy:
|
|
23
23
|
matrix:
|
|
24
|
-
|
|
24
|
+
# macos-13 is an intel runner, macos-14 is apple silicon
|
|
25
|
+
os: [ubuntu-20.04, windows-2022, macos-13, macos-14]
|
|
25
26
|
|
|
26
27
|
steps:
|
|
27
|
-
- uses: actions/checkout@
|
|
28
|
+
- uses: actions/checkout@v4
|
|
28
29
|
with:
|
|
29
30
|
submodules: 'true'
|
|
30
31
|
|
|
31
32
|
- name: Install Python
|
|
32
|
-
uses: actions/setup-python@
|
|
33
|
+
uses: actions/setup-python@v5
|
|
33
34
|
with:
|
|
34
35
|
python-version: '3.11'
|
|
35
36
|
|
|
@@ -39,7 +40,7 @@ jobs:
|
|
|
39
40
|
|
|
40
41
|
- name: Cache HDF5 On Linux/macOS
|
|
41
42
|
if: runner.os == 'Linux' || runner.os == 'macOS'
|
|
42
|
-
uses: actions/cache@
|
|
43
|
+
uses: actions/cache@v4
|
|
43
44
|
id: cache-hdf5-posix
|
|
44
45
|
env:
|
|
45
46
|
cache-name: cache-hdf5-posix
|
|
@@ -61,7 +62,7 @@ jobs:
|
|
|
61
62
|
run: |
|
|
62
63
|
# used by setup.py to decide if to set `FindHDF5` to use static hdf5 libraries
|
|
63
64
|
export STATIC_HDF5=True
|
|
64
|
-
export CMAKE_PREFIX_PATH=/opt/hdf5-static/install
|
|
65
|
+
export CMAKE_PREFIX_PATH=/opt/hdf5-static/install-x86_64/install/
|
|
65
66
|
|
|
66
67
|
CIBW_MANYLINUX_X86_64_IMAGE=manylinux2014 python -m cibuildwheel --output-dir dist
|
|
67
68
|
CIBW_MANYLINUX_X86_64_IMAGE=manylinux_2_28 python -m cibuildwheel --output-dir dist
|
|
@@ -69,7 +70,7 @@ jobs:
|
|
|
69
70
|
- name: Build wheels Mac OS
|
|
70
71
|
if: runner.os == 'macOS'
|
|
71
72
|
env:
|
|
72
|
-
CIBW_ENVIRONMENT_PASS: "STATIC_HDF5 CMAKE_PREFIX_PATH
|
|
73
|
+
CIBW_ENVIRONMENT_PASS: "STATIC_HDF5 CMAKE_PREFIX_PATH"
|
|
73
74
|
CIBW_BEFORE_BUILD: |
|
|
74
75
|
# CMake complains if the dependencies come from within the same tree
|
|
75
76
|
# as the source, so we'll just pretend they are elsewhere
|
|
@@ -80,25 +81,13 @@ jobs:
|
|
|
80
81
|
# used by setup.py to decide if to set `FindHDF5` to use static hdf5 libraries
|
|
81
82
|
export STATIC_HDF5=True
|
|
82
83
|
|
|
83
|
-
|
|
84
|
-
# only for the 11.0 target; and store in the cache the compiled code...
|
|
85
|
-
export CIBW_ARCHS_MACOS="arm64"
|
|
86
|
-
export CMAKE_OSX_ARCHITECTURES="arm64"
|
|
87
|
-
export MACOSX_DEPLOYMENT_TARGET="11.0"
|
|
88
|
-
export CMAKE_PREFIX_PATH=/Users/runner/work/src-cache/install-$CIBW_ARCHS_MACOS/install
|
|
89
|
-
python -m cibuildwheel --output-dir dist
|
|
90
|
-
|
|
91
|
-
# ...and now we do both targets for x86_64
|
|
92
|
-
export CIBW_ARCHS_MACOS="x86_64"
|
|
93
|
-
export CMAKE_OSX_ARCHITECTURES="x86_64"
|
|
94
|
-
unset MACOSX_DEPLOYMENT_TARGET
|
|
95
|
-
export CMAKE_PREFIX_PATH=/Users/runner/work/src-cache/install-$CIBW_ARCHS_MACOS/install
|
|
84
|
+
export CMAKE_PREFIX_PATH=/Users/runner/work/src-cache/install-`uname -m`/install
|
|
96
85
|
python -m cibuildwheel --output-dir dist
|
|
97
86
|
|
|
98
87
|
- name: Cache HDF5 On Windows
|
|
99
88
|
if: runner.os == 'Windows'
|
|
100
89
|
id: cache-hdf5-windows
|
|
101
|
-
uses: actions/cache@
|
|
90
|
+
uses: actions/cache@v4
|
|
102
91
|
env:
|
|
103
92
|
cache-name: cache-hdf5-windows
|
|
104
93
|
with:
|
|
@@ -115,13 +104,29 @@ jobs:
|
|
|
115
104
|
|
|
116
105
|
- name: Build wheels Windows
|
|
117
106
|
if: runner.os == 'Windows'
|
|
118
|
-
shell: cmd
|
|
119
107
|
# the v140 toolchain is used, so that fewer vc_redist installs are required
|
|
120
108
|
# some of the information is available here:
|
|
121
109
|
# https://docs.microsoft.com/en-us/cpp/build/building-on-the-command-line
|
|
122
110
|
# but tracking down the 14.0 magic number (and especially newer ones isn't always easy)
|
|
123
111
|
# this has a partial table:
|
|
124
112
|
# https://devblogs.microsoft.com/cppblog/side-by-side-minor-version-msvc-toolsets-in-visual-studio-2017/
|
|
113
|
+
run: |
|
|
114
|
+
# vc141 was removed, add it back here: https://github.com/actions/runner-images/issues/9701
|
|
115
|
+
Set-Location "C:\Program Files (x86)\Microsoft Visual Studio\Installer\"
|
|
116
|
+
$InstallPath = "C:\Program Files\Microsoft Visual Studio\2022\Enterprise"
|
|
117
|
+
$componentsToAdd= @(
|
|
118
|
+
"Microsoft.VisualStudio.Component.VC.v141.x86.x64"
|
|
119
|
+
"Microsoft.VisualStudio.Component.VC.v141.x86.x64.Spectre"
|
|
120
|
+
)
|
|
121
|
+
[string]$workloadArgs = $componentsToAdd | ForEach-Object {" --add " + $_}
|
|
122
|
+
$Arguments = ('/c', "vs_installer.exe", 'modify', '--installPath', "`"$InstallPath`"",$workloadArgs, '--quiet', '--norestart', '--nocache')
|
|
123
|
+
# should be run twice
|
|
124
|
+
$process = Start-Process -FilePath cmd.exe -ArgumentList $Arguments -Wait -PassThru -WindowStyle Hidden
|
|
125
|
+
$process = Start-Process -FilePath cmd.exe -ArgumentList $Arguments -Wait -PassThru -WindowStyle Hidden
|
|
126
|
+
|
|
127
|
+
- name: Build wheels Windows
|
|
128
|
+
if: runner.os == 'Windows'
|
|
129
|
+
shell: cmd
|
|
125
130
|
run: |
|
|
126
131
|
C:\windows\system32\tar.exe xf C:\cache\hdf5\${{ env.WINDOWS_HDF5 }}\hdf5.zip
|
|
127
132
|
start /wait msiexec /a "%cd%\hdf\HDF5-${{ env.WINDOWS_HDF5 }}-win64.msi" /qn TARGETDIR="c:\hdf5\"
|
|
@@ -133,9 +138,9 @@ jobs:
|
|
|
133
138
|
python -m cibuildwheel --output-dir dist
|
|
134
139
|
|
|
135
140
|
- name: Store wheel as artifact
|
|
136
|
-
uses: actions/upload-artifact@
|
|
141
|
+
uses: actions/upload-artifact@v4
|
|
137
142
|
with:
|
|
138
|
-
name: dist
|
|
143
|
+
name: dist-wheels-${{ matrix.os }}
|
|
139
144
|
path: dist/*.whl
|
|
140
145
|
|
|
141
146
|
build_sdist:
|
|
@@ -144,12 +149,12 @@ jobs:
|
|
|
144
149
|
|
|
145
150
|
runs-on: ubuntu-latest
|
|
146
151
|
steps:
|
|
147
|
-
- uses: actions/checkout@
|
|
152
|
+
- uses: actions/checkout@v4
|
|
148
153
|
with:
|
|
149
154
|
submodules: 'true'
|
|
150
155
|
|
|
151
156
|
- name: Set up Python
|
|
152
|
-
uses: actions/setup-python@
|
|
157
|
+
uses: actions/setup-python@v5
|
|
153
158
|
with:
|
|
154
159
|
python-version: '3.10'
|
|
155
160
|
|
|
@@ -166,9 +171,9 @@ jobs:
|
|
|
166
171
|
pytest -s -v tests
|
|
167
172
|
|
|
168
173
|
- name: Store sdist as artifact
|
|
169
|
-
uses: actions/upload-artifact@
|
|
174
|
+
uses: actions/upload-artifact@v4
|
|
170
175
|
with:
|
|
171
|
-
name: dist
|
|
176
|
+
name: dist-sdist
|
|
172
177
|
path: dist/*.tar.gz
|
|
173
178
|
|
|
174
179
|
upload_artifacts:
|
|
@@ -180,10 +185,11 @@ jobs:
|
|
|
180
185
|
|
|
181
186
|
steps:
|
|
182
187
|
- name: Download artifacts produced during the build_wheels and build_sdist jobs
|
|
183
|
-
uses: actions/download-artifact@
|
|
188
|
+
uses: actions/download-artifact@v4
|
|
184
189
|
with:
|
|
185
|
-
|
|
190
|
+
pattern: dist-*
|
|
186
191
|
path: dist/
|
|
192
|
+
merge-multiple: true
|
|
187
193
|
|
|
188
194
|
- name: Display structure of downloaded files
|
|
189
195
|
run: ls -R
|
|
@@ -24,12 +24,12 @@ jobs:
|
|
|
24
24
|
|
|
25
25
|
steps:
|
|
26
26
|
- name: Checkout repository
|
|
27
|
-
uses: actions/checkout@
|
|
27
|
+
uses: actions/checkout@v4
|
|
28
28
|
with:
|
|
29
29
|
submodules: 'true'
|
|
30
30
|
|
|
31
31
|
- name: Setup python
|
|
32
|
-
uses: actions/setup-python@
|
|
32
|
+
uses: actions/setup-python@v5
|
|
33
33
|
with:
|
|
34
34
|
python-version: '3.10'
|
|
35
35
|
|
|
@@ -15,6 +15,8 @@ if(TARGET HighFive)
|
|
|
15
15
|
return()
|
|
16
16
|
endif()
|
|
17
17
|
|
|
18
|
+
@PACKAGE_INIT@
|
|
19
|
+
|
|
18
20
|
# Get HighFive targets
|
|
19
21
|
include("${CMAKE_CURRENT_LIST_DIR}/HighFiveTargets.cmake")
|
|
20
22
|
|
|
@@ -61,8 +63,12 @@ if(HIGHFIVE_USE_XTENSOR AND NOT CMAKE_VERSION VERSION_LESS 3.8)
|
|
|
61
63
|
set_property(TARGET HighFive APPEND PROPERTY INTERFACE_COMPILE_FEATURES cxx_std_14)
|
|
62
64
|
endif()
|
|
63
65
|
|
|
64
|
-
|
|
66
|
+
if(NOT HighFive_FIND_QUIETLY)
|
|
67
|
+
message(STATUS "HIGHFIVE @PROJECT_VERSION@: (Re)Detecting Highfive dependencies (HIGHFIVE_USE_INSTALL_DEPS=NO)")
|
|
68
|
+
endif()
|
|
65
69
|
include("${CMAKE_CURRENT_LIST_DIR}/HighFiveTargetDeps.cmake")
|
|
66
70
|
foreach(dependency HighFive_libheaders libdeps)
|
|
67
71
|
copy_interface_properties(HighFive ${dependency})
|
|
68
72
|
endforeach()
|
|
73
|
+
|
|
74
|
+
check_required_components(HighFive)
|
|
@@ -26,6 +26,7 @@ if(NOT TARGET libdeps)
|
|
|
26
26
|
# HDF5
|
|
27
27
|
if(NOT DEFINED HDF5_C_LIBRARIES)
|
|
28
28
|
set(HDF5_PREFER_PARALLEL ${HIGHFIVE_PARALLEL_HDF5})
|
|
29
|
+
set(HDF5_USE_STATIC_LIBRARIES ${HIGHFIVE_STATIC_HDF5})
|
|
29
30
|
find_package(HDF5 REQUIRED)
|
|
30
31
|
endif()
|
|
31
32
|
|
|
@@ -36,6 +37,8 @@ if(NOT TARGET libdeps)
|
|
|
36
37
|
target_include_directories(libdeps SYSTEM INTERFACE ${HDF5_INCLUDE_DIRS})
|
|
37
38
|
target_link_libraries(libdeps INTERFACE ${HDF5_LIBRARIES})
|
|
38
39
|
target_compile_definitions(libdeps INTERFACE ${HDF5_DEFINITIONS})
|
|
40
|
+
target_compile_definitions(libdeps INTERFACE HIGHFIVE_HAS_CONCEPTS=$<BOOL:${HIGHFIVE_HAS_CONCEPTS}>)
|
|
41
|
+
|
|
39
42
|
|
|
40
43
|
# Boost
|
|
41
44
|
if(HIGHFIVE_USE_BOOST)
|
|
@@ -0,0 +1,43 @@
|
|
|
1
|
+
if(TARGET HighFiveWarnings)
|
|
2
|
+
# Allow multiple `include(HighFiveWarnings)`, which would
|
|
3
|
+
# attempt to redefine `HighFiveWarnings` and fail without
|
|
4
|
+
# this check.
|
|
5
|
+
return()
|
|
6
|
+
endif()
|
|
7
|
+
|
|
8
|
+
add_library(HighFiveWarnings INTERFACE)
|
|
9
|
+
|
|
10
|
+
if(CMAKE_CXX_COMPILER_ID MATCHES "Clang"
|
|
11
|
+
OR CMAKE_CXX_COMPILER_ID MATCHES "GNU"
|
|
12
|
+
OR CMAKE_CXX_COMPILER_ID MATCHES "Intel")
|
|
13
|
+
|
|
14
|
+
target_compile_options(HighFiveWarnings
|
|
15
|
+
INTERFACE
|
|
16
|
+
-Wall
|
|
17
|
+
-Wextra
|
|
18
|
+
-Wshadow
|
|
19
|
+
-Wnon-virtual-dtor
|
|
20
|
+
-Wunused
|
|
21
|
+
-Woverloaded-virtual
|
|
22
|
+
-Wformat=2
|
|
23
|
+
-Wconversion
|
|
24
|
+
-Wsign-conversion
|
|
25
|
+
)
|
|
26
|
+
|
|
27
|
+
if(NOT CMAKE_CXX_COMPILER_ID MATCHES "Intel")
|
|
28
|
+
target_compile_options(HighFiveWarnings
|
|
29
|
+
INTERFACE
|
|
30
|
+
-Wpedantic
|
|
31
|
+
-Wcast-align
|
|
32
|
+
-Wdouble-promotion
|
|
33
|
+
)
|
|
34
|
+
endif()
|
|
35
|
+
|
|
36
|
+
if(HIGHFIVE_HAS_WERROR)
|
|
37
|
+
target_compile_options(HighFiveWarnings
|
|
38
|
+
INTERFACE
|
|
39
|
+
-Werror
|
|
40
|
+
-Wno-error=deprecated-declarations
|
|
41
|
+
)
|
|
42
|
+
endif()
|
|
43
|
+
endif()
|
|
@@ -5,15 +5,14 @@ else()
|
|
|
5
5
|
cmake_policy(VERSION 3.13)
|
|
6
6
|
endif()
|
|
7
7
|
|
|
8
|
-
project(HighFive VERSION 2.
|
|
8
|
+
project(HighFive VERSION 2.10.0)
|
|
9
9
|
|
|
10
10
|
configure_file(${CMAKE_CURRENT_SOURCE_DIR}/include/highfive/H5Version.hpp.in
|
|
11
|
-
${
|
|
11
|
+
${CMAKE_CURRENT_SOURCE_DIR}/include/highfive/H5Version.hpp)
|
|
12
12
|
# INCLUDES
|
|
13
13
|
list(APPEND CMAKE_MODULE_PATH
|
|
14
|
-
${
|
|
15
|
-
${
|
|
16
|
-
${PROJECT_SOURCE_DIR}/CMake/config)
|
|
14
|
+
${CMAKE_CURRENT_SOURCE_DIR}/CMake
|
|
15
|
+
${CMAKE_CURRENT_SOURCE_DIR}/CMake/config)
|
|
17
16
|
|
|
18
17
|
# OPTIONS
|
|
19
18
|
# Compatibility within Highfive 2.x series
|
|
@@ -33,9 +32,12 @@ option(HIGHFIVE_USE_OPENCV "Enable OpenCV testing" ${USE_OPENCV})
|
|
|
33
32
|
option(HIGHFIVE_USE_XTENSOR "Enable xtensor testing" ${USE_XTENSOR})
|
|
34
33
|
option(HIGHFIVE_EXAMPLES "Compile examples" ON)
|
|
35
34
|
option(HIGHFIVE_PARALLEL_HDF5 "Enable Parallel HDF5 support" OFF)
|
|
35
|
+
option(HIGHFIVE_STATIC_HDF5 "Staticly link to HDF5 library" OFF)
|
|
36
36
|
option(HIGHFIVE_BUILD_DOCS "Enable documentation building" ON)
|
|
37
37
|
option(HIGHFIVE_VERBOSE "Set logging level to verbose." OFF)
|
|
38
38
|
option(HIGHFIVE_GLIBCXX_ASSERTIONS "Enable bounds check for STL." OFF)
|
|
39
|
+
option(HIGHFIVE_HAS_CONCEPTS "Print readable compiler errors w/ C++20 concepts" ON)
|
|
40
|
+
option(HIGHFIVE_HAS_WERROR "Convert warnings to errors." OFF)
|
|
39
41
|
|
|
40
42
|
# Controls if HighFive classes are friends of each other.
|
|
41
43
|
#
|
|
@@ -103,17 +105,12 @@ install(DIRECTORY ${CMAKE_CURRENT_SOURCE_DIR}/include/
|
|
|
103
105
|
DESTINATION "include"
|
|
104
106
|
PATTERN "*.in" EXCLUDE)
|
|
105
107
|
|
|
106
|
-
# Installation of configured headers
|
|
107
|
-
install(DIRECTORY ${CMAKE_CURRENT_BINARY_DIR}/include/
|
|
108
|
-
DESTINATION "include")
|
|
109
|
-
|
|
110
|
-
|
|
111
108
|
# Preparing local building (tests, examples)
|
|
112
109
|
# ------------------------------------------
|
|
113
110
|
|
|
114
111
|
# Disable test if Boost was expressly disabled, or if HighFive is a sub-project
|
|
115
112
|
if (NOT CMAKE_CURRENT_SOURCE_DIR STREQUAL CMAKE_SOURCE_DIR)
|
|
116
|
-
if(HIGHFIVE_UNIT_TESTS)
|
|
113
|
+
if(HIGHFIVE_UNIT_TESTS AND NOT HighFive_FIND_QUIETLY)
|
|
117
114
|
message(WARNING "Unit tests have been DISABLED.")
|
|
118
115
|
endif()
|
|
119
116
|
set(HIGHFIVE_UNIT_TESTS FALSE)
|
|
@@ -134,15 +131,6 @@ if(HIGHFIVE_UNIT_TESTS)
|
|
|
134
131
|
endif()
|
|
135
132
|
endif()
|
|
136
133
|
|
|
137
|
-
|
|
138
|
-
if(CMAKE_CXX_COMPILER_ID MATCHES "Intel")
|
|
139
|
-
# ICC gets mad if we shorten "int"s
|
|
140
|
-
add_definitions("-wd1682")
|
|
141
|
-
endif()
|
|
142
|
-
|
|
143
|
-
# Set compile time flags _after_ including required dependencies
|
|
144
|
-
include(ReleaseDebugAutoFlags)
|
|
145
|
-
|
|
146
134
|
if(HIGHFIVE_EXAMPLES)
|
|
147
135
|
add_subdirectory(src/examples)
|
|
148
136
|
endif()
|
|
@@ -865,6 +865,9 @@ WARN_LOGFILE =
|
|
|
865
865
|
# Note: If this tag is empty the current directory is searched.
|
|
866
866
|
|
|
867
867
|
INPUT = @CMAKE_CURRENT_SOURCE_DIR@/../include \
|
|
868
|
+
@CMAKE_CURRENT_SOURCE_DIR@/installation.md \
|
|
869
|
+
@CMAKE_CURRENT_SOURCE_DIR@/migration_guide.md \
|
|
870
|
+
@CMAKE_CURRENT_SOURCE_DIR@/developer_guide.md \
|
|
868
871
|
@CMAKE_CURRENT_SOURCE_DIR@/../CHANGELOG.md \
|
|
869
872
|
@CMAKE_CURRENT_SOURCE_DIR@/../README.md
|
|
870
873
|
|
|
@@ -0,0 +1,224 @@
|
|
|
1
|
+
# Developer Guide
|
|
2
|
+
First clone the repository and remember the `--recursive`:
|
|
3
|
+
```bash
|
|
4
|
+
git clone --recursive git@github.com:BlueBrain/HighFive.git
|
|
5
|
+
```
|
|
6
|
+
The instructions to recover if you forgot are:
|
|
7
|
+
```bash
|
|
8
|
+
git submodule update --init --recursive
|
|
9
|
+
```
|
|
10
|
+
|
|
11
|
+
One remark on submodules: each HighFive commit expects that the submodules are
|
|
12
|
+
at a particular commit. The catch is that performing `git checkout` will not
|
|
13
|
+
update the submodules automatically. Hence, sometimes a `git submodule update
|
|
14
|
+
--recursive` might be needed to checkout the expected version of the
|
|
15
|
+
submodules.
|
|
16
|
+
|
|
17
|
+
## Compiling and Running the Tests
|
|
18
|
+
The instructions for compiling with examples and unit-tests are:
|
|
19
|
+
|
|
20
|
+
```bash
|
|
21
|
+
cmake -B build -DCMAKE_BUILD_TYPE={Debug,Release} .
|
|
22
|
+
cmake --build build --parallel
|
|
23
|
+
ctest --test-dir build
|
|
24
|
+
```
|
|
25
|
+
|
|
26
|
+
You might want to turn off Boost `-DHIGHFIVE_USE_BOOST=Off` or turn on other
|
|
27
|
+
optional dependencies.
|
|
28
|
+
|
|
29
|
+
## Contributing
|
|
30
|
+
There's numerous HDF5 features that haven't been wrapped yet. HighFive is a
|
|
31
|
+
collaborative effort to slowly cover ever larger parts of the HDF5 library.
|
|
32
|
+
The process of contributing is to fork the repository and then create a PR.
|
|
33
|
+
Please ensure that any new API is appropriately documented and covered with
|
|
34
|
+
tests.
|
|
35
|
+
|
|
36
|
+
### Code formatting
|
|
37
|
+
The project is formatted using clang-format version 12.0.1 and CI will complain
|
|
38
|
+
if a commit isn't formatted accordingly. The `.clang-format` is at the root of
|
|
39
|
+
the git repository. Conveniently, `clang-format` is available via `pip`:
|
|
40
|
+
|
|
41
|
+
```bash
|
|
42
|
+
python -m venv venv
|
|
43
|
+
source venv/bin/activate
|
|
44
|
+
|
|
45
|
+
pip install clang-format==12.0.1
|
|
46
|
+
```
|
|
47
|
+
|
|
48
|
+
The changed lines can be formatted with `git-clang-format`, e.g. to format all lines changed compared to master:
|
|
49
|
+
|
|
50
|
+
```bash
|
|
51
|
+
git-clang-format master
|
|
52
|
+
```
|
|
53
|
+
(add `-f` to allow formatting unstaged changes if you trust it to not destroy
|
|
54
|
+
your changes.)
|
|
55
|
+
|
|
56
|
+
## Releasing HighFive
|
|
57
|
+
Before releasing a new version perform the following:
|
|
58
|
+
|
|
59
|
+
* Update `CHANGELOG.md` and `AUTHORS.txt` as required.
|
|
60
|
+
* Update `CMakeLists.txt` and `include/highfive/H5Version.hpp`.
|
|
61
|
+
* Follow semantic versioning when deciding the next version number.
|
|
62
|
+
* Check that
|
|
63
|
+
[HighFive-testing](https://github.com/BlueBrain/HighFive-testing/actions) ran
|
|
64
|
+
recently.
|
|
65
|
+
|
|
66
|
+
At this point there should be a commit on master which will be the release
|
|
67
|
+
candidate. Don't tag it yet.
|
|
68
|
+
|
|
69
|
+
Next step is to update the [HighFive/spack](https://github.com/BlueBrain/spack)
|
|
70
|
+
recipe such that the proposed version points to the release candidate using the
|
|
71
|
+
SHA of that commit. The recipe will look something like this:
|
|
72
|
+
|
|
73
|
+
```python
|
|
74
|
+
# ...
|
|
75
|
+
|
|
76
|
+
version("2.8.0", commit="094400f22145bcdcd2726ce72888d9d1c21e7068")
|
|
77
|
+
version("2.7.1", sha256="25b4c51a94d1e670dc93b9b73f51e79b65d8ff49bcd6e5d5582d5ecd2789a249")
|
|
78
|
+
version("2.7.0", sha256="8e05672ddf81a59ce014b1d065bd9a8c5034dbd91a5c2578e805ef880afa5907")
|
|
79
|
+
# ...
|
|
80
|
+
```
|
|
81
|
+
|
|
82
|
+
Push the changes to the BlueBrain spack repository. This will trigger building
|
|
83
|
+
all BBP dependencies of HighFive, i.e. another integration test. Don't actually
|
|
84
|
+
merge this commit yet.
|
|
85
|
+
|
|
86
|
+
Now that we know that the integration test ran, and all BBP software can be
|
|
87
|
+
built with the proposed version of HighFive, we can proceed and create the
|
|
88
|
+
release. Once this is done perform a final round of updates:
|
|
89
|
+
|
|
90
|
+
* Download the archive (`*.tar.gz`) and compute its SHA256.
|
|
91
|
+
* Update BlueBrain Spack recipe to use the archive and not the Git commit.
|
|
92
|
+
* Update the upstream Spack recipe.
|
|
93
|
+
|
|
94
|
+
## Writing Tests
|
|
95
|
+
### Generate Multi-Dimensional Test Data
|
|
96
|
+
Input array of any dimension and type can be generated using the template class
|
|
97
|
+
`DataGenerator`. For example:
|
|
98
|
+
```
|
|
99
|
+
auto dims = std::vector<size_t>{4, 2};
|
|
100
|
+
auto values = testing::DataGenerator<std::vector<std::array<double, 2>>::create(dims);
|
|
101
|
+
```
|
|
102
|
+
Generates an `std::vector<std::array<double, 2>>` initialized with suitable
|
|
103
|
+
values.
|
|
104
|
+
|
|
105
|
+
If "suitable" isn't specific enough, one can specify a callback:
|
|
106
|
+
```
|
|
107
|
+
auto callback = [](const std::vector<size_t>& indices) {
|
|
108
|
+
return 42.0;
|
|
109
|
+
}
|
|
110
|
+
|
|
111
|
+
auto values = testing::DataGenerator<std::vector<double>>::create(dims, callback);
|
|
112
|
+
```
|
|
113
|
+
|
|
114
|
+
The `dims` can be generated via `testing::DataGenerator::default_dims` or by
|
|
115
|
+
using `testing::DataGenerator::sanitize_dims`. Remember, that certain
|
|
116
|
+
containers are fixed size and that we often compute the number of elements by
|
|
117
|
+
multiplying the dims.
|
|
118
|
+
|
|
119
|
+
### Generate Scalar Test Data
|
|
120
|
+
To generate a single "suitable" element use template class `DefaultValues`, e.g.
|
|
121
|
+
```
|
|
122
|
+
auto default_values = testing::DefaultValues<double>();
|
|
123
|
+
auto x = testing::DefaultValues<double>(indices);
|
|
124
|
+
```
|
|
125
|
+
|
|
126
|
+
### Accessing Elements
|
|
127
|
+
To access a particular element from an unknown container use the following trait:
|
|
128
|
+
```
|
|
129
|
+
using trait = testing::ContainerTraits<std::vector<std::array<int, 2>>;
|
|
130
|
+
// auto x = values[1][0];
|
|
131
|
+
auto x = trait::get(values, {1, 0});
|
|
132
|
+
|
|
133
|
+
// values[1][0] = 42.0;
|
|
134
|
+
trait::set(values, {1, 0}, 42.0);
|
|
135
|
+
```
|
|
136
|
+
|
|
137
|
+
### Utilities For Multi-Dimensional Arrays
|
|
138
|
+
Use `testing::DataGenerator::allocate` to allocate an array (without filling
|
|
139
|
+
it) and `testing::copy` to copy an array from one type to another. There's
|
|
140
|
+
`testing::ravel`, `testing::unravel` and `testing::flat_size` to compute the
|
|
141
|
+
position in a flat array from a multi-dimensional index, the reverse and the
|
|
142
|
+
number of element in the multi-dimensional array.
|
|
143
|
+
|
|
144
|
+
### Deduplicating DataSet and Attribute
|
|
145
|
+
Due to how HighFive is written testing `DataSet` and `Attribute` often requires
|
|
146
|
+
duplicating the entire test code because somewhere a `createDataSet` must be
|
|
147
|
+
replaced with `createAttribute`. Use `testing::AttributeCreateTraits` and
|
|
148
|
+
`testing::DataSetCreateTraits`. For example,
|
|
149
|
+
```
|
|
150
|
+
template<class CreateTraits>
|
|
151
|
+
void check_write(...) {
|
|
152
|
+
// Same as one of:
|
|
153
|
+
// file.createDataSet(name, values);
|
|
154
|
+
// file.createAttribute(name, values);
|
|
155
|
+
CreateTraits::create(file, name, values);
|
|
156
|
+
}
|
|
157
|
+
```
|
|
158
|
+
|
|
159
|
+
### Test Organization
|
|
160
|
+
#### Multi-Dimensional Arrays
|
|
161
|
+
All tests for reading/writing whole multi-dimensional arrays to datasets or
|
|
162
|
+
attributes belong in `tests/unit/tests_high_five_multi_dimensional.cpp`. This
|
|
163
|
+
includes write/read cycles; checking all the generic edges cases, e.g. empty
|
|
164
|
+
arrays and mismatching sizes; and checking non-reallocation.
|
|
165
|
+
|
|
166
|
+
Read/Write cycles are implemented in two distinct checks. One for writing and
|
|
167
|
+
another for reading. When checking writing we read with a "trusted"
|
|
168
|
+
multi-dimensional array (a nested `std::vector`), and vice-versa when checking
|
|
169
|
+
reading. This matters because certain bugs, like writing a column major array
|
|
170
|
+
as if it were row-major can't be caught if one reads it back into a
|
|
171
|
+
column-major array.
|
|
172
|
+
|
|
173
|
+
Remember, `std::vector<bool>` is very different from all other `std::vector`s.
|
|
174
|
+
|
|
175
|
+
Every container `template<class T> C;` should at least be checked with all of
|
|
176
|
+
the following `T`s that are supported by the container: `bool`, `double`,
|
|
177
|
+
`std::string`, `std::vector`, `std::array`. The reason is `bool` and
|
|
178
|
+
`std::string` are special, `double` is just a POD, `std::vector` requires
|
|
179
|
+
dynamic memory allocation and `std::array` is statically allocated.
|
|
180
|
+
|
|
181
|
+
Similarly, each container should be put inside an `std::vector` and an
|
|
182
|
+
`std::array`.
|
|
183
|
+
|
|
184
|
+
#### Scalar Data Set
|
|
185
|
+
Write-read cycles for scalar values should be implemented in
|
|
186
|
+
`tests/unit/tests_high_five_scalar.cpp`.
|
|
187
|
+
|
|
188
|
+
#### Data Types
|
|
189
|
+
Unit-tests related to checking that `DataType` API, go in
|
|
190
|
+
`tests/unit/tests_high_data_type.cpp`.
|
|
191
|
+
|
|
192
|
+
#### Selections
|
|
193
|
+
Anything selection related goes in `tests/unit/test_high_five_selection.cpp`.
|
|
194
|
+
This includes things like `ElementSet` and `HyperSlab`.
|
|
195
|
+
|
|
196
|
+
#### Strings
|
|
197
|
+
Regular write-read cycles for strings are performed along with the other types,
|
|
198
|
+
see above. This should cover compatibility of `std::string` with all
|
|
199
|
+
containers. However, additional testing is required, e.g. character set,
|
|
200
|
+
padding, fixed vs. variable length. These all go in
|
|
201
|
+
`tests/unit/test_high_five_string.cpp`.
|
|
202
|
+
|
|
203
|
+
#### Specific Tests For Optional Containers
|
|
204
|
+
If containers, e.g. `Eigen::Matrix` require special checks those go in files
|
|
205
|
+
called `tests/unit/test_high_five_*.cpp` where `*` is `eigen` for Eigen.
|
|
206
|
+
|
|
207
|
+
#### Memory Layout Assumptions
|
|
208
|
+
In HighFive we make assumptions about the memory layout of certain types. For
|
|
209
|
+
example, we assume that
|
|
210
|
+
```
|
|
211
|
+
auto array = std::vector<std::array<double, 2>>(n);
|
|
212
|
+
doube * ptr = (double*) array.data();
|
|
213
|
+
```
|
|
214
|
+
is a sensible thing to do. We assume similar about `bool` and
|
|
215
|
+
`details::Boolean`. These types of tests go into
|
|
216
|
+
`tests/unit/tests_high_five_memory_layout.cpp`.
|
|
217
|
+
|
|
218
|
+
#### H5Easy
|
|
219
|
+
Anything `H5Easy` related goes in files with the appropriate name.
|
|
220
|
+
|
|
221
|
+
#### Everything Else
|
|
222
|
+
What's left goes in `tests/unit/test_high_five_base.cpp`. This covers opening
|
|
223
|
+
files, groups, dataset or attributes; checking certain pathological edge cases;
|
|
224
|
+
etc.
|