morphio 3.3.5__tar.gz → 3.3.6__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.
Files changed (305) hide show
  1. {MorphIO-3.3.5 → MorphIO-3.3.6}/.github/workflows/coverage_test.yaml +1 -1
  2. {MorphIO-3.3.5 → MorphIO-3.3.6}/3rdparty/HighFive/CMake/HighFiveConfig.cmake.in +1 -7
  3. {MorphIO-3.3.5 → MorphIO-3.3.6}/3rdparty/HighFive/CMake/config/CompilerFlagsHelpers.cmake +3 -1
  4. {MorphIO-3.3.5 → MorphIO-3.3.6}/3rdparty/HighFive/CMakeLists.txt +1 -1
  5. {MorphIO-3.3.5 → MorphIO-3.3.6}/3rdparty/HighFive/doc/Doxyfile +0 -1
  6. {MorphIO-3.3.5 → MorphIO-3.3.6}/3rdparty/HighFive/include/highfive/H5Attribute.hpp +3 -21
  7. {MorphIO-3.3.5 → MorphIO-3.3.6}/3rdparty/HighFive/include/highfive/bits/H5Attribute_misc.hpp +9 -18
  8. {MorphIO-3.3.5 → MorphIO-3.3.6}/3rdparty/HighFive/include/highfive/bits/H5DataType_misc.hpp +27 -82
  9. {MorphIO-3.3.5 → MorphIO-3.3.6}/3rdparty/HighFive/include/highfive/bits/H5Path_traits_misc.hpp +1 -1
  10. {MorphIO-3.3.5 → MorphIO-3.3.6}/3rdparty/HighFive/include/highfive/bits/H5Slice_traits.hpp +6 -38
  11. {MorphIO-3.3.5 → MorphIO-3.3.6}/3rdparty/HighFive/include/highfive/bits/H5Slice_traits_misc.hpp +13 -25
  12. {MorphIO-3.3.5 → MorphIO-3.3.6}/CHANGELOG.md +16 -0
  13. MorphIO-3.3.6/CMake/CodeCoverage.cmake +742 -0
  14. {MorphIO-3.3.5 → MorphIO-3.3.6}/CMakeLists.txt +1 -0
  15. {MorphIO-3.3.5 → MorphIO-3.3.6/MorphIO.egg-info}/PKG-INFO +1 -1
  16. {MorphIO-3.3.5 → MorphIO-3.3.6}/MorphIO.egg-info/SOURCES.txt +1 -1
  17. {MorphIO-3.3.5/MorphIO.egg-info → MorphIO-3.3.6}/PKG-INFO +1 -1
  18. {MorphIO-3.3.5 → MorphIO-3.3.6}/binds/python/CMakeLists.txt +3 -1
  19. MorphIO-3.3.6/binds/python/bind_enums.cpp +105 -0
  20. {MorphIO-3.3.5 → MorphIO-3.3.6}/binds/python/bind_enums.h +4 -0
  21. MorphIO-3.3.6/binds/python/bind_immutable.cpp +422 -0
  22. MorphIO-3.3.6/binds/python/bind_immutable.h +5 -0
  23. {MorphIO-3.3.5 → MorphIO-3.3.6}/binds/python/bind_misc.cpp +12 -117
  24. MorphIO-3.3.6/binds/python/bind_mutable.cpp +540 -0
  25. {MorphIO-3.3.5 → MorphIO-3.3.6}/binds/python/bind_mutable.h +1 -3
  26. {MorphIO-3.3.5 → MorphIO-3.3.6}/binds/python/bindings_utils.h +0 -25
  27. MorphIO-3.3.6/binds/python/generated/docstrings.h +1916 -0
  28. {MorphIO-3.3.5 → MorphIO-3.3.6}/binds/python/morphio.cpp +5 -6
  29. {MorphIO-3.3.5 → MorphIO-3.3.6}/include/morphio/enums.h +32 -15
  30. {MorphIO-3.3.5 → MorphIO-3.3.6}/include/morphio/errorMessages.h +18 -2
  31. {MorphIO-3.3.5 → MorphIO-3.3.6}/include/morphio/mitochondria.h +9 -0
  32. {MorphIO-3.3.5 → MorphIO-3.3.6}/include/morphio/morphology.h +5 -1
  33. {MorphIO-3.3.5 → MorphIO-3.3.6}/include/morphio/mut/dendritic_spine.h +4 -0
  34. {MorphIO-3.3.5 → MorphIO-3.3.6}/include/morphio/mut/mito_section.h +18 -6
  35. {MorphIO-3.3.5 → MorphIO-3.3.6}/include/morphio/mut/mitochondria.h +9 -0
  36. {MorphIO-3.3.5 → MorphIO-3.3.6}/include/morphio/mut/morphology.h +1 -1
  37. {MorphIO-3.3.5 → MorphIO-3.3.6}/include/morphio/mut/soma.h +7 -1
  38. {MorphIO-3.3.5 → MorphIO-3.3.6}/include/morphio/vasc/properties.h +9 -12
  39. {MorphIO-3.3.5 → MorphIO-3.3.6}/src/CMakeLists.txt +2 -13
  40. {MorphIO-3.3.5 → MorphIO-3.3.6}/src/errorMessages.cpp +43 -8
  41. {MorphIO-3.3.5 → MorphIO-3.3.6}/src/mut/morphology.cpp +5 -3
  42. {MorphIO-3.3.5 → MorphIO-3.3.6}/src/mut/writers.cpp +24 -5
  43. {MorphIO-3.3.5 → MorphIO-3.3.6}/src/properties.cpp +58 -164
  44. {MorphIO-3.3.5 → MorphIO-3.3.6}/src/readers/morphologySWC.cpp +62 -49
  45. MorphIO-3.3.6/src/shared_utils.cpp +66 -0
  46. MorphIO-3.3.6/src/shared_utils.hpp +67 -0
  47. {MorphIO-3.3.5 → MorphIO-3.3.6}/src/soma.cpp +2 -1
  48. MorphIO-3.3.6/src/vasc/properties.cpp +103 -0
  49. MorphIO-3.3.5/3rdparty/HighFive/doc/installation.md +0 -254
  50. MorphIO-3.3.5/CMake/CodeCoverage.cmake +0 -303
  51. MorphIO-3.3.5/binds/python/bind_immutable.cpp +0 -520
  52. MorphIO-3.3.5/binds/python/bind_immutable.h +0 -21
  53. MorphIO-3.3.5/binds/python/bind_mutable.cpp +0 -619
  54. MorphIO-3.3.5/binds/python/generated/docstrings.h +0 -1667
  55. MorphIO-3.3.5/src/shared_utils.cpp +0 -21
  56. MorphIO-3.3.5/src/shared_utils.hpp +0 -94
  57. MorphIO-3.3.5/src/vasc/properties.cpp +0 -235
  58. {MorphIO-3.3.5 → MorphIO-3.3.6}/.clang-format +0 -0
  59. {MorphIO-3.3.5 → MorphIO-3.3.6}/.github/workflows/check-sdist.yml +0 -0
  60. {MorphIO-3.3.5 → MorphIO-3.3.6}/.github/workflows/clang_format_check.yaml +0 -0
  61. {MorphIO-3.3.5 → MorphIO-3.3.6}/.github/workflows/docstring_check.yaml +0 -0
  62. {MorphIO-3.3.5 → MorphIO-3.3.6}/.github/workflows/publish-sdist-wheels.yml +0 -0
  63. {MorphIO-3.3.5 → MorphIO-3.3.6}/.github/workflows/run-tests.yml +0 -0
  64. {MorphIO-3.3.5 → MorphIO-3.3.6}/.gitignore +0 -0
  65. {MorphIO-3.3.5 → MorphIO-3.3.6}/.gitmodules +0 -0
  66. {MorphIO-3.3.5 → MorphIO-3.3.6}/.readthedocs.yaml +0 -0
  67. {MorphIO-3.3.5 → MorphIO-3.3.6}/3rdparty/CMakeLists.txt +0 -0
  68. {MorphIO-3.3.5 → MorphIO-3.3.6}/3rdparty/GSL_LITE/CMakeLists.txt +0 -0
  69. {MorphIO-3.3.5 → MorphIO-3.3.6}/3rdparty/GSL_LITE/cmake/gsl-lite-config-version.cmake.in +0 -0
  70. {MorphIO-3.3.5 → MorphIO-3.3.6}/3rdparty/GSL_LITE/cmake/gsl-lite-config.cmake.in +0 -0
  71. {MorphIO-3.3.5 → MorphIO-3.3.6}/3rdparty/GSL_LITE/gsl-lite.natvis +0 -0
  72. {MorphIO-3.3.5 → MorphIO-3.3.6}/3rdparty/GSL_LITE/include/gsl/gsl +0 -0
  73. {MorphIO-3.3.5 → MorphIO-3.3.6}/3rdparty/GSL_LITE/include/gsl/gsl-lite-vc6.hpp +0 -0
  74. {MorphIO-3.3.5 → MorphIO-3.3.6}/3rdparty/GSL_LITE/include/gsl/gsl-lite.h +0 -0
  75. {MorphIO-3.3.5 → MorphIO-3.3.6}/3rdparty/GSL_LITE/include/gsl/gsl-lite.hpp +0 -0
  76. {MorphIO-3.3.5 → MorphIO-3.3.6}/3rdparty/GSL_LITE/include/gsl-lite/gsl-lite.hpp +0 -0
  77. {MorphIO-3.3.5 → MorphIO-3.3.6}/3rdparty/GSL_LITE/include/gsl.h +0 -0
  78. {MorphIO-3.3.5 → MorphIO-3.3.6}/3rdparty/GSL_LITE/include/gsl.hpp +0 -0
  79. {MorphIO-3.3.5 → MorphIO-3.3.6}/3rdparty/HighFive/CMake/HighFiveTargetDeps.cmake +0 -0
  80. {MorphIO-3.3.5 → MorphIO-3.3.6}/3rdparty/HighFive/CMake/HighFiveTargetExport.cmake +0 -0
  81. {MorphIO-3.3.5 → MorphIO-3.3.6}/3rdparty/HighFive/CMake/config/ReleaseDebugAutoFlags.cmake +0 -0
  82. {MorphIO-3.3.5 → MorphIO-3.3.6}/3rdparty/HighFive/CMake/config/TestHelpers.cmake +0 -0
  83. {MorphIO-3.3.5 → MorphIO-3.3.6}/3rdparty/HighFive/doc/CMakeLists.txt +0 -0
  84. {MorphIO-3.3.5 → MorphIO-3.3.6}/3rdparty/HighFive/doc/DoxygenLayout.xml +0 -0
  85. {MorphIO-3.3.5 → MorphIO-3.3.6}/3rdparty/HighFive/doc/doxygen-awesome-css/doxygen-awesome.css +0 -0
  86. {MorphIO-3.3.5 → MorphIO-3.3.6}/3rdparty/HighFive/doc/doxygen-awesome-css/update_doxygen_awesome.sh +0 -0
  87. {MorphIO-3.3.5 → MorphIO-3.3.6}/3rdparty/HighFive/doc/environment.yaml +0 -0
  88. {MorphIO-3.3.5 → MorphIO-3.3.6}/3rdparty/HighFive/doc/poster/example1_hdf5.cpp +0 -0
  89. {MorphIO-3.3.5 → MorphIO-3.3.6}/3rdparty/HighFive/doc/poster/example1_highfive.cpp +0 -0
  90. {MorphIO-3.3.5 → MorphIO-3.3.6}/3rdparty/HighFive/doc/poster/example3.cpp +0 -0
  91. {MorphIO-3.3.5 → MorphIO-3.3.6}/3rdparty/HighFive/doc/poster/example6.cpp +0 -0
  92. {MorphIO-3.3.5 → MorphIO-3.3.6}/3rdparty/HighFive/doc/poster/example_boost.cpp +0 -0
  93. {MorphIO-3.3.5 → MorphIO-3.3.6}/3rdparty/HighFive/doc/poster/example_boost_ublas.cpp +0 -0
  94. {MorphIO-3.3.5 → MorphIO-3.3.6}/3rdparty/HighFive/doc/poster/example_easy_h5py.py +0 -0
  95. {MorphIO-3.3.5 → MorphIO-3.3.6}/3rdparty/HighFive/doc/poster/example_easy_highfive.cpp +0 -0
  96. {MorphIO-3.3.5 → MorphIO-3.3.6}/3rdparty/HighFive/doc/poster/example_eigen.cpp +0 -0
  97. {MorphIO-3.3.5 → MorphIO-3.3.6}/3rdparty/HighFive/doc/poster/example_props.cpp +0 -0
  98. {MorphIO-3.3.5 → MorphIO-3.3.6}/3rdparty/HighFive/doc/poster/examples.js +0 -0
  99. {MorphIO-3.3.5 → MorphIO-3.3.6}/3rdparty/HighFive/doc/poster/godbolt.org.ico +0 -0
  100. {MorphIO-3.3.5 → MorphIO-3.3.6}/3rdparty/HighFive/doc/poster/index.html +0 -0
  101. {MorphIO-3.3.5 → MorphIO-3.3.6}/3rdparty/HighFive/include/highfive/H5DataSet.hpp +0 -0
  102. {MorphIO-3.3.5 → MorphIO-3.3.6}/3rdparty/HighFive/include/highfive/H5DataSpace.hpp +0 -0
  103. {MorphIO-3.3.5 → MorphIO-3.3.6}/3rdparty/HighFive/include/highfive/H5DataType.hpp +0 -0
  104. {MorphIO-3.3.5 → MorphIO-3.3.6}/3rdparty/HighFive/include/highfive/H5Easy.hpp +0 -0
  105. {MorphIO-3.3.5 → MorphIO-3.3.6}/3rdparty/HighFive/include/highfive/H5Exception.hpp +0 -0
  106. {MorphIO-3.3.5 → MorphIO-3.3.6}/3rdparty/HighFive/include/highfive/H5File.hpp +0 -0
  107. {MorphIO-3.3.5 → MorphIO-3.3.6}/3rdparty/HighFive/include/highfive/H5FileDriver.hpp +0 -0
  108. {MorphIO-3.3.5 → MorphIO-3.3.6}/3rdparty/HighFive/include/highfive/H5Group.hpp +0 -0
  109. {MorphIO-3.3.5 → MorphIO-3.3.6}/3rdparty/HighFive/include/highfive/H5Object.hpp +0 -0
  110. {MorphIO-3.3.5 → MorphIO-3.3.6}/3rdparty/HighFive/include/highfive/H5PropertyList.hpp +0 -0
  111. {MorphIO-3.3.5 → MorphIO-3.3.6}/3rdparty/HighFive/include/highfive/H5Reference.hpp +0 -0
  112. {MorphIO-3.3.5 → MorphIO-3.3.6}/3rdparty/HighFive/include/highfive/H5Selection.hpp +0 -0
  113. {MorphIO-3.3.5 → MorphIO-3.3.6}/3rdparty/HighFive/include/highfive/H5Utility.hpp +0 -0
  114. {MorphIO-3.3.5 → MorphIO-3.3.6}/3rdparty/HighFive/include/highfive/H5Version.hpp.in +0 -0
  115. {MorphIO-3.3.5 → MorphIO-3.3.6}/3rdparty/HighFive/include/highfive/bits/H5Annotate_traits.hpp +0 -0
  116. {MorphIO-3.3.5 → MorphIO-3.3.6}/3rdparty/HighFive/include/highfive/bits/H5Annotate_traits_misc.hpp +0 -0
  117. {MorphIO-3.3.5 → MorphIO-3.3.6}/3rdparty/HighFive/include/highfive/bits/H5Converter_misc.hpp +0 -0
  118. {MorphIO-3.3.5 → MorphIO-3.3.6}/3rdparty/HighFive/include/highfive/bits/H5DataSet_misc.hpp +0 -0
  119. {MorphIO-3.3.5 → MorphIO-3.3.6}/3rdparty/HighFive/include/highfive/bits/H5Dataspace_misc.hpp +0 -0
  120. {MorphIO-3.3.5 → MorphIO-3.3.6}/3rdparty/HighFive/include/highfive/bits/H5Exception_misc.hpp +0 -0
  121. {MorphIO-3.3.5 → MorphIO-3.3.6}/3rdparty/HighFive/include/highfive/bits/H5FileDriver_misc.hpp +0 -0
  122. {MorphIO-3.3.5 → MorphIO-3.3.6}/3rdparty/HighFive/include/highfive/bits/H5File_misc.hpp +0 -0
  123. {MorphIO-3.3.5 → MorphIO-3.3.6}/3rdparty/HighFive/include/highfive/bits/H5Friends.hpp +0 -0
  124. {MorphIO-3.3.5 → MorphIO-3.3.6}/3rdparty/HighFive/include/highfive/bits/H5Iterables_misc.hpp +0 -0
  125. {MorphIO-3.3.5 → MorphIO-3.3.6}/3rdparty/HighFive/include/highfive/bits/H5Node_traits.hpp +0 -0
  126. {MorphIO-3.3.5 → MorphIO-3.3.6}/3rdparty/HighFive/include/highfive/bits/H5Node_traits_misc.hpp +0 -0
  127. {MorphIO-3.3.5 → MorphIO-3.3.6}/3rdparty/HighFive/include/highfive/bits/H5Object_misc.hpp +0 -0
  128. {MorphIO-3.3.5 → MorphIO-3.3.6}/3rdparty/HighFive/include/highfive/bits/H5Path_traits.hpp +0 -0
  129. {MorphIO-3.3.5 → MorphIO-3.3.6}/3rdparty/HighFive/include/highfive/bits/H5PropertyList_misc.hpp +0 -0
  130. {MorphIO-3.3.5 → MorphIO-3.3.6}/3rdparty/HighFive/include/highfive/bits/H5ReadWrite_misc.hpp +0 -0
  131. {MorphIO-3.3.5 → MorphIO-3.3.6}/3rdparty/HighFive/include/highfive/bits/H5Reference_misc.hpp +0 -0
  132. {MorphIO-3.3.5 → MorphIO-3.3.6}/3rdparty/HighFive/include/highfive/bits/H5Selection_misc.hpp +0 -0
  133. {MorphIO-3.3.5 → MorphIO-3.3.6}/3rdparty/HighFive/include/highfive/bits/H5Utils.hpp +0 -0
  134. {MorphIO-3.3.5 → MorphIO-3.3.6}/3rdparty/HighFive/include/highfive/bits/H5_definitions.hpp +0 -0
  135. {MorphIO-3.3.5 → MorphIO-3.3.6}/3rdparty/HighFive/include/highfive/h5easy_bits/H5Easy_Eigen.hpp +0 -0
  136. {MorphIO-3.3.5 → MorphIO-3.3.6}/3rdparty/HighFive/include/highfive/h5easy_bits/H5Easy_misc.hpp +0 -0
  137. {MorphIO-3.3.5 → MorphIO-3.3.6}/3rdparty/HighFive/include/highfive/h5easy_bits/H5Easy_opencv.hpp +0 -0
  138. {MorphIO-3.3.5 → MorphIO-3.3.6}/3rdparty/HighFive/include/highfive/h5easy_bits/H5Easy_public.hpp +0 -0
  139. {MorphIO-3.3.5 → MorphIO-3.3.6}/3rdparty/HighFive/include/highfive/h5easy_bits/H5Easy_scalar.hpp +0 -0
  140. {MorphIO-3.3.5 → MorphIO-3.3.6}/3rdparty/HighFive/include/highfive/h5easy_bits/H5Easy_vector.hpp +0 -0
  141. {MorphIO-3.3.5 → MorphIO-3.3.6}/3rdparty/HighFive/include/highfive/h5easy_bits/H5Easy_xtensor.hpp +0 -0
  142. {MorphIO-3.3.5 → MorphIO-3.3.6}/3rdparty/ghc_filesystem/CMakeLists.txt +0 -0
  143. {MorphIO-3.3.5 → MorphIO-3.3.6}/3rdparty/ghc_filesystem/LICENSE +0 -0
  144. {MorphIO-3.3.5 → MorphIO-3.3.6}/3rdparty/ghc_filesystem/cmake/GhcHelper.cmake +0 -0
  145. {MorphIO-3.3.5 → MorphIO-3.3.6}/3rdparty/ghc_filesystem/cmake/config.cmake.in +0 -0
  146. {MorphIO-3.3.5 → MorphIO-3.3.6}/3rdparty/ghc_filesystem/include/ghc/filesystem.hpp +0 -0
  147. {MorphIO-3.3.5 → MorphIO-3.3.6}/3rdparty/ghc_filesystem/include/ghc/fs_fwd.hpp +0 -0
  148. {MorphIO-3.3.5 → MorphIO-3.3.6}/3rdparty/ghc_filesystem/include/ghc/fs_impl.hpp +0 -0
  149. {MorphIO-3.3.5 → MorphIO-3.3.6}/3rdparty/ghc_filesystem/include/ghc/fs_std.hpp +0 -0
  150. {MorphIO-3.3.5 → MorphIO-3.3.6}/3rdparty/ghc_filesystem/include/ghc/fs_std_fwd.hpp +0 -0
  151. {MorphIO-3.3.5 → MorphIO-3.3.6}/3rdparty/ghc_filesystem/include/ghc/fs_std_impl.hpp +0 -0
  152. {MorphIO-3.3.5 → MorphIO-3.3.6}/3rdparty/lexertl14/CMakeLists.txt +0 -0
  153. {MorphIO-3.3.5 → MorphIO-3.3.6}/3rdparty/lexertl14/include/lexertl/char_traits.hpp +0 -0
  154. {MorphIO-3.3.5 → MorphIO-3.3.6}/3rdparty/lexertl14/include/lexertl/debug.hpp +0 -0
  155. {MorphIO-3.3.5 → MorphIO-3.3.6}/3rdparty/lexertl14/include/lexertl/dot.hpp +0 -0
  156. {MorphIO-3.3.5 → MorphIO-3.3.6}/3rdparty/lexertl14/include/lexertl/enums.hpp +0 -0
  157. {MorphIO-3.3.5 → MorphIO-3.3.6}/3rdparty/lexertl14/include/lexertl/generate_cpp.hpp +0 -0
  158. {MorphIO-3.3.5 → MorphIO-3.3.6}/3rdparty/lexertl14/include/lexertl/generator.hpp +0 -0
  159. {MorphIO-3.3.5 → MorphIO-3.3.6}/3rdparty/lexertl14/include/lexertl/internals.hpp +0 -0
  160. {MorphIO-3.3.5 → MorphIO-3.3.6}/3rdparty/lexertl14/include/lexertl/iterator.hpp +0 -0
  161. {MorphIO-3.3.5 → MorphIO-3.3.6}/3rdparty/lexertl14/include/lexertl/licence_1_0.txt +0 -0
  162. {MorphIO-3.3.5 → MorphIO-3.3.6}/3rdparty/lexertl14/include/lexertl/lookup.hpp +0 -0
  163. {MorphIO-3.3.5 → MorphIO-3.3.6}/3rdparty/lexertl14/include/lexertl/match_results.hpp +0 -0
  164. {MorphIO-3.3.5 → MorphIO-3.3.6}/3rdparty/lexertl14/include/lexertl/memory_file.hpp +0 -0
  165. {MorphIO-3.3.5 → MorphIO-3.3.6}/3rdparty/lexertl14/include/lexertl/narrow.hpp +0 -0
  166. {MorphIO-3.3.5 → MorphIO-3.3.6}/3rdparty/lexertl14/include/lexertl/observer_ptr.hpp +0 -0
  167. {MorphIO-3.3.5 → MorphIO-3.3.6}/3rdparty/lexertl14/include/lexertl/parser/parser.hpp +0 -0
  168. {MorphIO-3.3.5 → MorphIO-3.3.6}/3rdparty/lexertl14/include/lexertl/parser/tokeniser/blocks.hpp +0 -0
  169. {MorphIO-3.3.5 → MorphIO-3.3.6}/3rdparty/lexertl14/include/lexertl/parser/tokeniser/fold2.inc +0 -0
  170. {MorphIO-3.3.5 → MorphIO-3.3.6}/3rdparty/lexertl14/include/lexertl/parser/tokeniser/fold4.inc +0 -0
  171. {MorphIO-3.3.5 → MorphIO-3.3.6}/3rdparty/lexertl14/include/lexertl/parser/tokeniser/re_token.hpp +0 -0
  172. {MorphIO-3.3.5 → MorphIO-3.3.6}/3rdparty/lexertl14/include/lexertl/parser/tokeniser/re_tokeniser.hpp +0 -0
  173. {MorphIO-3.3.5 → MorphIO-3.3.6}/3rdparty/lexertl14/include/lexertl/parser/tokeniser/re_tokeniser_helper.hpp +0 -0
  174. {MorphIO-3.3.5 → MorphIO-3.3.6}/3rdparty/lexertl14/include/lexertl/parser/tokeniser/re_tokeniser_state.hpp +0 -0
  175. {MorphIO-3.3.5 → MorphIO-3.3.6}/3rdparty/lexertl14/include/lexertl/parser/tokeniser/scripts.hpp +0 -0
  176. {MorphIO-3.3.5 → MorphIO-3.3.6}/3rdparty/lexertl14/include/lexertl/parser/tokeniser/table.inc +0 -0
  177. {MorphIO-3.3.5 → MorphIO-3.3.6}/3rdparty/lexertl14/include/lexertl/parser/tokeniser/unicode.hpp +0 -0
  178. {MorphIO-3.3.5 → MorphIO-3.3.6}/3rdparty/lexertl14/include/lexertl/parser/tree/end_node.hpp +0 -0
  179. {MorphIO-3.3.5 → MorphIO-3.3.6}/3rdparty/lexertl14/include/lexertl/parser/tree/iteration_node.hpp +0 -0
  180. {MorphIO-3.3.5 → MorphIO-3.3.6}/3rdparty/lexertl14/include/lexertl/parser/tree/leaf_node.hpp +0 -0
  181. {MorphIO-3.3.5 → MorphIO-3.3.6}/3rdparty/lexertl14/include/lexertl/parser/tree/node.hpp +0 -0
  182. {MorphIO-3.3.5 → MorphIO-3.3.6}/3rdparty/lexertl14/include/lexertl/parser/tree/selection_node.hpp +0 -0
  183. {MorphIO-3.3.5 → MorphIO-3.3.6}/3rdparty/lexertl14/include/lexertl/parser/tree/sequence_node.hpp +0 -0
  184. {MorphIO-3.3.5 → MorphIO-3.3.6}/3rdparty/lexertl14/include/lexertl/partition/charset.hpp +0 -0
  185. {MorphIO-3.3.5 → MorphIO-3.3.6}/3rdparty/lexertl14/include/lexertl/partition/equivset.hpp +0 -0
  186. {MorphIO-3.3.5 → MorphIO-3.3.6}/3rdparty/lexertl14/include/lexertl/rules.hpp +0 -0
  187. {MorphIO-3.3.5 → MorphIO-3.3.6}/3rdparty/lexertl14/include/lexertl/runtime_error.hpp +0 -0
  188. {MorphIO-3.3.5 → MorphIO-3.3.6}/3rdparty/lexertl14/include/lexertl/serialise.hpp +0 -0
  189. {MorphIO-3.3.5 → MorphIO-3.3.6}/3rdparty/lexertl14/include/lexertl/sm_to_csm.hpp +0 -0
  190. {MorphIO-3.3.5 → MorphIO-3.3.6}/3rdparty/lexertl14/include/lexertl/sm_traits.hpp +0 -0
  191. {MorphIO-3.3.5 → MorphIO-3.3.6}/3rdparty/lexertl14/include/lexertl/state_machine.hpp +0 -0
  192. {MorphIO-3.3.5 → MorphIO-3.3.6}/3rdparty/lexertl14/include/lexertl/stream_shared_iterator.hpp +0 -0
  193. {MorphIO-3.3.5 → MorphIO-3.3.6}/3rdparty/lexertl14/include/lexertl/string_token.hpp +0 -0
  194. {MorphIO-3.3.5 → MorphIO-3.3.6}/3rdparty/lexertl14/include/lexertl/utf_iterators.hpp +0 -0
  195. {MorphIO-3.3.5 → MorphIO-3.3.6}/AUTHORS.txt +0 -0
  196. {MorphIO-3.3.5 → MorphIO-3.3.6}/CMake/CompilerFlags.cmake +0 -0
  197. {MorphIO-3.3.5 → MorphIO-3.3.6}/CMake/MorphIOConfig.cmake +0 -0
  198. {MorphIO-3.3.5 → MorphIO-3.3.6}/CONTRIBUTING.md +0 -0
  199. {MorphIO-3.3.5 → MorphIO-3.3.6}/COPYING +0 -0
  200. {MorphIO-3.3.5 → MorphIO-3.3.6}/COPYING.LESSER +0 -0
  201. {MorphIO-3.3.5 → MorphIO-3.3.6}/MANIFEST.in +0 -0
  202. {MorphIO-3.3.5 → MorphIO-3.3.6}/MorphIO.egg-info/dependency_links.txt +0 -0
  203. {MorphIO-3.3.5 → MorphIO-3.3.6}/MorphIO.egg-info/not-zip-safe +0 -0
  204. {MorphIO-3.3.5 → MorphIO-3.3.6}/MorphIO.egg-info/requires.txt +0 -0
  205. {MorphIO-3.3.5 → MorphIO-3.3.6}/MorphIO.egg-info/top_level.txt +0 -0
  206. {MorphIO-3.3.5 → MorphIO-3.3.6}/README.rst +0 -0
  207. {MorphIO-3.3.5 → MorphIO-3.3.6}/binds/python/bind_misc.h +0 -0
  208. {MorphIO-3.3.5 → MorphIO-3.3.6}/binds/python/bind_vasculature.cpp +0 -0
  209. {MorphIO-3.3.5 → MorphIO-3.3.6}/binds/python/bind_vasculature.h +0 -0
  210. {MorphIO-3.3.5 → MorphIO-3.3.6}/binds/python/bindings_utils.cpp +0 -0
  211. {MorphIO-3.3.5 → MorphIO-3.3.6}/binds/python/generated/.clang-format +0 -0
  212. {MorphIO-3.3.5 → MorphIO-3.3.6}/binds/python/pybind11/CMakeLists.txt +0 -0
  213. {MorphIO-3.3.5 → MorphIO-3.3.6}/binds/python/pybind11/LICENSE +0 -0
  214. {MorphIO-3.3.5 → MorphIO-3.3.6}/binds/python/pybind11/include/pybind11/attr.h +0 -0
  215. {MorphIO-3.3.5 → MorphIO-3.3.6}/binds/python/pybind11/include/pybind11/buffer_info.h +0 -0
  216. {MorphIO-3.3.5 → MorphIO-3.3.6}/binds/python/pybind11/include/pybind11/cast.h +0 -0
  217. {MorphIO-3.3.5 → MorphIO-3.3.6}/binds/python/pybind11/include/pybind11/chrono.h +0 -0
  218. {MorphIO-3.3.5 → MorphIO-3.3.6}/binds/python/pybind11/include/pybind11/common.h +0 -0
  219. {MorphIO-3.3.5 → MorphIO-3.3.6}/binds/python/pybind11/include/pybind11/complex.h +0 -0
  220. {MorphIO-3.3.5 → MorphIO-3.3.6}/binds/python/pybind11/include/pybind11/detail/class.h +0 -0
  221. {MorphIO-3.3.5 → MorphIO-3.3.6}/binds/python/pybind11/include/pybind11/detail/common.h +0 -0
  222. {MorphIO-3.3.5 → MorphIO-3.3.6}/binds/python/pybind11/include/pybind11/detail/descr.h +0 -0
  223. {MorphIO-3.3.5 → MorphIO-3.3.6}/binds/python/pybind11/include/pybind11/detail/init.h +0 -0
  224. {MorphIO-3.3.5 → MorphIO-3.3.6}/binds/python/pybind11/include/pybind11/detail/internals.h +0 -0
  225. {MorphIO-3.3.5 → MorphIO-3.3.6}/binds/python/pybind11/include/pybind11/detail/type_caster_base.h +0 -0
  226. {MorphIO-3.3.5 → MorphIO-3.3.6}/binds/python/pybind11/include/pybind11/detail/typeid.h +0 -0
  227. {MorphIO-3.3.5 → MorphIO-3.3.6}/binds/python/pybind11/include/pybind11/eigen.h +0 -0
  228. {MorphIO-3.3.5 → MorphIO-3.3.6}/binds/python/pybind11/include/pybind11/embed.h +0 -0
  229. {MorphIO-3.3.5 → MorphIO-3.3.6}/binds/python/pybind11/include/pybind11/eval.h +0 -0
  230. {MorphIO-3.3.5 → MorphIO-3.3.6}/binds/python/pybind11/include/pybind11/functional.h +0 -0
  231. {MorphIO-3.3.5 → MorphIO-3.3.6}/binds/python/pybind11/include/pybind11/gil.h +0 -0
  232. {MorphIO-3.3.5 → MorphIO-3.3.6}/binds/python/pybind11/include/pybind11/iostream.h +0 -0
  233. {MorphIO-3.3.5 → MorphIO-3.3.6}/binds/python/pybind11/include/pybind11/numpy.h +0 -0
  234. {MorphIO-3.3.5 → MorphIO-3.3.6}/binds/python/pybind11/include/pybind11/operators.h +0 -0
  235. {MorphIO-3.3.5 → MorphIO-3.3.6}/binds/python/pybind11/include/pybind11/options.h +0 -0
  236. {MorphIO-3.3.5 → MorphIO-3.3.6}/binds/python/pybind11/include/pybind11/pybind11.h +0 -0
  237. {MorphIO-3.3.5 → MorphIO-3.3.6}/binds/python/pybind11/include/pybind11/pytypes.h +0 -0
  238. {MorphIO-3.3.5 → MorphIO-3.3.6}/binds/python/pybind11/include/pybind11/stl/filesystem.h +0 -0
  239. {MorphIO-3.3.5 → MorphIO-3.3.6}/binds/python/pybind11/include/pybind11/stl.h +0 -0
  240. {MorphIO-3.3.5 → MorphIO-3.3.6}/binds/python/pybind11/include/pybind11/stl_bind.h +0 -0
  241. {MorphIO-3.3.5 → MorphIO-3.3.6}/binds/python/pybind11/tools/FindCatch.cmake +0 -0
  242. {MorphIO-3.3.5 → MorphIO-3.3.6}/binds/python/pybind11/tools/FindEigen3.cmake +0 -0
  243. {MorphIO-3.3.5 → MorphIO-3.3.6}/binds/python/pybind11/tools/FindPythonLibsNew.cmake +0 -0
  244. {MorphIO-3.3.5 → MorphIO-3.3.6}/binds/python/pybind11/tools/pybind11Common.cmake +0 -0
  245. {MorphIO-3.3.5 → MorphIO-3.3.6}/binds/python/pybind11/tools/pybind11NewTools.cmake +0 -0
  246. {MorphIO-3.3.5 → MorphIO-3.3.6}/binds/python/pybind11/tools/pybind11Tools.cmake +0 -0
  247. {MorphIO-3.3.5 → MorphIO-3.3.6}/include/morphio/collection.h +0 -0
  248. {MorphIO-3.3.5 → MorphIO-3.3.6}/include/morphio/dendritic_spine.h +0 -0
  249. {MorphIO-3.3.5 → MorphIO-3.3.6}/include/morphio/endoplasmic_reticulum.h +0 -0
  250. {MorphIO-3.3.5 → MorphIO-3.3.6}/include/morphio/exceptions.h +0 -0
  251. {MorphIO-3.3.5 → MorphIO-3.3.6}/include/morphio/glial_cell.h +0 -0
  252. {MorphIO-3.3.5 → MorphIO-3.3.6}/include/morphio/mito_section.h +0 -0
  253. {MorphIO-3.3.5 → MorphIO-3.3.6}/include/morphio/mut/endoplasmic_reticulum.h +0 -0
  254. {MorphIO-3.3.5 → MorphIO-3.3.6}/include/morphio/mut/glial_cell.h +0 -0
  255. {MorphIO-3.3.5 → MorphIO-3.3.6}/include/morphio/mut/modifiers.h +0 -0
  256. {MorphIO-3.3.5 → MorphIO-3.3.6}/include/morphio/mut/section.h +0 -0
  257. {MorphIO-3.3.5 → MorphIO-3.3.6}/include/morphio/mut/writers.h +0 -0
  258. {MorphIO-3.3.5 → MorphIO-3.3.6}/include/morphio/properties.h +0 -0
  259. {MorphIO-3.3.5 → MorphIO-3.3.6}/include/morphio/section.h +0 -0
  260. {MorphIO-3.3.5 → MorphIO-3.3.6}/include/morphio/section_base.h +0 -0
  261. {MorphIO-3.3.5 → MorphIO-3.3.6}/include/morphio/section_iterators.hpp +0 -0
  262. {MorphIO-3.3.5 → MorphIO-3.3.6}/include/morphio/soma.h +0 -0
  263. {MorphIO-3.3.5 → MorphIO-3.3.6}/include/morphio/tools.h +0 -0
  264. {MorphIO-3.3.5 → MorphIO-3.3.6}/include/morphio/types.h +0 -0
  265. {MorphIO-3.3.5 → MorphIO-3.3.6}/include/morphio/vasc/iterators.hpp +0 -0
  266. {MorphIO-3.3.5 → MorphIO-3.3.6}/include/morphio/vasc/section.h +0 -0
  267. {MorphIO-3.3.5 → MorphIO-3.3.6}/include/morphio/vasc/vasculature.h +0 -0
  268. {MorphIO-3.3.5 → MorphIO-3.3.6}/include/morphio/vector_types.h +0 -0
  269. {MorphIO-3.3.5 → MorphIO-3.3.6}/include/morphio/version.h +0 -0
  270. {MorphIO-3.3.5 → MorphIO-3.3.6}/morphio/__init__.py +0 -0
  271. {MorphIO-3.3.5 → MorphIO-3.3.6}/morphio/mut/__init__.py +0 -0
  272. {MorphIO-3.3.5 → MorphIO-3.3.6}/morphio/vasculature/__init__.py +0 -0
  273. {MorphIO-3.3.5 → MorphIO-3.3.6}/pyproject.toml +0 -0
  274. {MorphIO-3.3.5 → MorphIO-3.3.6}/setup.cfg +0 -0
  275. {MorphIO-3.3.5 → MorphIO-3.3.6}/setup.py +0 -0
  276. {MorphIO-3.3.5 → MorphIO-3.3.6}/src/collection.cpp +0 -0
  277. {MorphIO-3.3.5 → MorphIO-3.3.6}/src/dendritic_spine.cpp +0 -0
  278. {MorphIO-3.3.5 → MorphIO-3.3.6}/src/endoplasmic_reticulum.cpp +0 -0
  279. {MorphIO-3.3.5 → MorphIO-3.3.6}/src/enums.cpp +0 -0
  280. {MorphIO-3.3.5 → MorphIO-3.3.6}/src/glial_cell.cpp +0 -0
  281. {MorphIO-3.3.5 → MorphIO-3.3.6}/src/mito_section.cpp +0 -0
  282. {MorphIO-3.3.5 → MorphIO-3.3.6}/src/mitochondria.cpp +0 -0
  283. {MorphIO-3.3.5 → MorphIO-3.3.6}/src/morphology.cpp +0 -0
  284. {MorphIO-3.3.5 → MorphIO-3.3.6}/src/mut/dendritic_spine.cpp +0 -0
  285. {MorphIO-3.3.5 → MorphIO-3.3.6}/src/mut/endoplasmic_reticulum.cpp +0 -0
  286. {MorphIO-3.3.5 → MorphIO-3.3.6}/src/mut/glial_cell.cpp +0 -0
  287. {MorphIO-3.3.5 → MorphIO-3.3.6}/src/mut/mito_section.cpp +0 -0
  288. {MorphIO-3.3.5 → MorphIO-3.3.6}/src/mut/mitochondria.cpp +0 -0
  289. {MorphIO-3.3.5 → MorphIO-3.3.6}/src/mut/modifiers.cpp +0 -0
  290. {MorphIO-3.3.5 → MorphIO-3.3.6}/src/mut/section.cpp +0 -0
  291. {MorphIO-3.3.5 → MorphIO-3.3.6}/src/mut/soma.cpp +0 -0
  292. {MorphIO-3.3.5 → MorphIO-3.3.6}/src/point_utils.cpp +0 -0
  293. {MorphIO-3.3.5 → MorphIO-3.3.6}/src/point_utils.h +0 -0
  294. {MorphIO-3.3.5 → MorphIO-3.3.6}/src/readers/NeurolucidaLexer.inc +0 -0
  295. {MorphIO-3.3.5 → MorphIO-3.3.6}/src/readers/morphologyASC.cpp +0 -0
  296. {MorphIO-3.3.5 → MorphIO-3.3.6}/src/readers/morphologyASC.h +0 -0
  297. {MorphIO-3.3.5 → MorphIO-3.3.6}/src/readers/morphologyHDF5.cpp +0 -0
  298. {MorphIO-3.3.5 → MorphIO-3.3.6}/src/readers/morphologyHDF5.h +0 -0
  299. {MorphIO-3.3.5 → MorphIO-3.3.6}/src/readers/morphologySWC.h +0 -0
  300. {MorphIO-3.3.5 → MorphIO-3.3.6}/src/readers/vasculatureHDF5.cpp +0 -0
  301. {MorphIO-3.3.5 → MorphIO-3.3.6}/src/readers/vasculatureHDF5.h +0 -0
  302. {MorphIO-3.3.5 → MorphIO-3.3.6}/src/section.cpp +0 -0
  303. {MorphIO-3.3.5 → MorphIO-3.3.6}/src/vasc/section.cpp +0 -0
  304. {MorphIO-3.3.5 → MorphIO-3.3.6}/src/vasc/vasculature.cpp +0 -0
  305. {MorphIO-3.3.5 → MorphIO-3.3.6}/src/version.cpp.in +0 -0
@@ -28,4 +28,4 @@ jobs:
28
28
  uses: coverallsapp/github-action@master
29
29
  with:
30
30
  github-token: ${{ secrets.GITHUB_TOKEN }}
31
- path-to-lcov: build/build-coverage/coverage.info.cleaned
31
+ path-to-lcov: build/build-coverage/coverage.info
@@ -15,8 +15,6 @@ if(TARGET HighFive)
15
15
  return()
16
16
  endif()
17
17
 
18
- @PACKAGE_INIT@
19
-
20
18
  # Get HighFive targets
21
19
  include("${CMAKE_CURRENT_LIST_DIR}/HighFiveTargets.cmake")
22
20
 
@@ -63,12 +61,8 @@ if(HIGHFIVE_USE_XTENSOR AND NOT CMAKE_VERSION VERSION_LESS 3.8)
63
61
  set_property(TARGET HighFive APPEND PROPERTY INTERFACE_COMPILE_FEATURES cxx_std_14)
64
62
  endif()
65
63
 
66
- if(NOT HighFive_FIND_QUIETLY)
67
- message(STATUS "HIGHFIVE @PROJECT_VERSION@: (Re)Detecting Highfive dependencies (HIGHFIVE_USE_INSTALL_DEPS=NO)")
68
- endif()
64
+ message(STATUS "HIGHFIVE @PROJECT_VERSION@: (Re)Detecting Highfive dependencies (HIGHFIVE_USE_INSTALL_DEPS=NO)")
69
65
  include("${CMAKE_CURRENT_LIST_DIR}/HighFiveTargetDeps.cmake")
70
66
  foreach(dependency HighFive_libheaders libdeps)
71
67
  copy_interface_properties(HighFive ${dependency})
72
68
  endforeach()
73
-
74
- check_required_components(HighFive)
@@ -35,7 +35,9 @@ foreach(COMPILER_LANGUAGE ${SUPPORTED_COMPILER_LANGUAGE_LIST})
35
35
  OR CMAKE_${COMPILER_LANGUAGE}_COMPILER_ID MATCHES "GNU"
36
36
  OR CMAKE_${COMPILER_LANGUAGE}_COMPILER_ID MATCHES "Intel")
37
37
  set(CMAKE_${COMPILER_LANGUAGE}_WARNING_ALL " -Wall -Wextra")
38
- string(CONCAT CMAKE_${COMPILER_LANGUAGE}_WARNING_DEBUG " -Werror -Wshadow -Wnon-virtual-dtor -Wunused -Woverloaded-virtual -Wformat=2 -Wconversion -Wsign-conversion -Wno-error=deprecated-declarations"
38
+ string(CONCAT CMAKE_${COMPILER_LANGUAGE}_WARNING_DEBUG
39
+ " -Werror -Wshadow -Wnon-virtual-dtor -Wunused -Woverloaded-virtual"
40
+ " -Wformat=2 -Wconversion -Wsign-conversion -Wno-error=deprecated-declarations"
39
41
  )
40
42
  if(NOT CMAKE_${COMPILER_LANGUAGE}_COMPILER_IS_ICC)
41
43
  string(CONCAT CMAKE_${COMPILER_LANGUAGE}_WARNING_DEBUG
@@ -113,7 +113,7 @@ install(DIRECTORY ${CMAKE_CURRENT_BINARY_DIR}/include/
113
113
 
114
114
  # Disable test if Boost was expressly disabled, or if HighFive is a sub-project
115
115
  if (NOT CMAKE_CURRENT_SOURCE_DIR STREQUAL CMAKE_SOURCE_DIR)
116
- if(HIGHFIVE_UNIT_TESTS AND NOT HighFive_FIND_QUIETLY)
116
+ if(HIGHFIVE_UNIT_TESTS)
117
117
  message(WARNING "Unit tests have been DISABLED.")
118
118
  endif()
119
119
  set(HIGHFIVE_UNIT_TESTS FALSE)
@@ -865,7 +865,6 @@ 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
868
  @CMAKE_CURRENT_SOURCE_DIR@/../CHANGELOG.md \
870
869
  @CMAKE_CURRENT_SOURCE_DIR@/../README.md
871
870
 
@@ -87,17 +87,9 @@ class Attribute: public Object, public PathTraits<Attribute> {
87
87
  template <typename T>
88
88
  void read(T& array) const;
89
89
 
90
- /// \brief Read the attribute into a buffer.
91
- ///
92
- /// Note, this is the shallowest wrapper around `H5Aread`.
93
- template <typename T>
94
- void read(T* array, const DataType& mem_datatype) const;
95
-
96
90
  /// \brief Read the attribute into a buffer
97
- ///
98
- /// This overload deduces the memory datatype from `T`.
99
91
  template <typename T>
100
- void read(T* array) const;
92
+ void read(T* array, const DataType& dtype = {}) const;
101
93
 
102
94
  ///
103
95
  /// Write the integrality N-dimension buffer to this attribute
@@ -109,19 +101,9 @@ class Attribute: public Object, public PathTraits<Attribute> {
109
101
  template <typename T>
110
102
  void write(const T& buffer);
111
103
 
112
- /// \brief Write to this attribute from `buffer`.
113
- ///
114
- /// Note that this is the shallowest wrapper around `H5Awrite`. It's useful
115
- /// if you need full control. If possible prefer `Attribute::write`.
116
- template <typename T>
117
- void write_raw(const T* buffer, const DataType& mem_dtype);
118
-
119
- /// \brief Write to this attribute from `buffer`.
120
- ///
121
- /// This version attempts to automatically deduce the datatype
122
- /// of the buffer. Note, that the file datatype is already set.
104
+ /// \brief Write a buffer to this attribute
123
105
  template <typename T>
124
- void write_raw(const T* buffer);
106
+ void write_raw(const T* buffer, const DataType& dtype = {});
125
107
 
126
108
  /// \brief Get the list of properties for creation of this attribute
127
109
  AttributeCreateProps getCreatePropertyList() const {
@@ -100,23 +100,19 @@ inline void Attribute::read(T& array) const {
100
100
  }
101
101
 
102
102
  template <typename T>
103
- inline void Attribute::read(T* array, const DataType& mem_datatype) const {
103
+ inline void Attribute::read(T* array, const DataType& dtype) const {
104
104
  static_assert(!std::is_const<T>::value,
105
105
  "read() requires a non-const structure to read data into");
106
+ using element_type = typename details::inspector<T>::base_type;
107
+ // Auto-detect mem datatype if not provided
108
+ const DataType& mem_datatype = dtype.empty() ? create_and_check_datatype<element_type>()
109
+ : dtype;
106
110
 
107
111
  if (H5Aread(getId(), mem_datatype.getId(), static_cast<void*>(array)) < 0) {
108
112
  HDF5ErrMapper::ToException<AttributeException>("Error during HDF5 Read: ");
109
113
  }
110
114
  }
111
115
 
112
- template <typename T>
113
- inline void Attribute::read(T* array) const {
114
- using element_type = typename details::inspector<T>::base_type;
115
- const DataType& mem_datatype = create_and_check_datatype<element_type>();
116
-
117
- read(array, mem_datatype);
118
- }
119
-
120
116
  template <typename T>
121
117
  inline void Attribute::write(const T& buffer) {
122
118
  const DataSpace& mem_space = getMemSpace();
@@ -141,18 +137,13 @@ inline void Attribute::write(const T& buffer) {
141
137
  }
142
138
 
143
139
  template <typename T>
144
- inline void Attribute::write_raw(const T* buffer, const DataType& mem_datatype) {
140
+ inline void Attribute::write_raw(const T* buffer, const DataType& dtype) {
141
+ using element_type = typename details::inspector<T>::base_type;
142
+ const auto& mem_datatype = dtype.empty() ? create_and_check_datatype<element_type>() : dtype;
143
+
145
144
  if (H5Awrite(getId(), mem_datatype.getId(), buffer) < 0) {
146
145
  HDF5ErrMapper::ToException<DataSetException>("Error during HDF5 Write: ");
147
146
  }
148
147
  }
149
148
 
150
- template <typename T>
151
- inline void Attribute::write_raw(const T* buffer) {
152
- using element_type = typename details::inspector<T>::base_type;
153
- const auto& mem_datatype = create_and_check_datatype<element_type>();
154
-
155
- write_raw(buffer, mem_datatype);
156
- }
157
-
158
149
  } // namespace HighFive
@@ -26,64 +26,6 @@
26
26
 
27
27
  namespace HighFive {
28
28
 
29
- namespace detail {
30
-
31
- inline hid_t h5t_copy(hid_t original) {
32
- auto copy = H5Tcopy(original);
33
- if (copy == H5I_INVALID_HID) {
34
- HDF5ErrMapper::ToException<DataTypeException>("Error copying datatype.");
35
- }
36
-
37
- return copy;
38
- }
39
-
40
- inline hsize_t h5t_get_size(hid_t hid) {
41
- hsize_t size = H5Tget_size(hid);
42
- if (size == 0) {
43
- HDF5ErrMapper::ToException<DataTypeException>("Error getting size of datatype.");
44
- }
45
-
46
- return size;
47
- }
48
-
49
- inline H5T_cset_t h5t_get_cset(hid_t hid) {
50
- auto cset = H5Tget_cset(hid);
51
- if (cset == H5T_CSET_ERROR) {
52
- HDF5ErrMapper::ToException<DataTypeException>("Error getting cset of datatype.");
53
- }
54
-
55
- return cset;
56
- }
57
-
58
- inline H5T_str_t h5t_get_strpad(hid_t hid) {
59
- auto strpad = H5Tget_strpad(hid);
60
- if (strpad == H5T_STR_ERROR) {
61
- HDF5ErrMapper::ToException<DataTypeException>("Error getting strpad of datatype.");
62
- }
63
-
64
- return strpad;
65
- }
66
-
67
- inline void h5t_set_size(hid_t hid, hsize_t size) {
68
- if (H5Tset_size(hid, size) < 0) {
69
- HDF5ErrMapper::ToException<DataTypeException>("Error setting size of datatype.");
70
- }
71
- }
72
-
73
- inline void h5t_set_cset(hid_t hid, H5T_cset_t cset) {
74
- if (H5Tset_cset(hid, cset) < 0) {
75
- HDF5ErrMapper::ToException<DataTypeException>("Error setting cset of datatype.");
76
- }
77
- }
78
-
79
- inline void h5t_set_strpad(hid_t hid, H5T_str_t strpad) {
80
- if (H5Tset_strpad(hid, strpad) < 0) {
81
- HDF5ErrMapper::ToException<DataTypeException>("Error setting strpad of datatype.");
82
- }
83
- }
84
- } // namespace detail
85
-
86
-
87
29
  namespace { // unnamed
88
30
  inline DataTypeClass convert_type_class(const H5T_class_t& tclass);
89
31
  inline std::string type_class_string(DataTypeClass);
@@ -99,7 +41,7 @@ inline DataTypeClass DataType::getClass() const {
99
41
  }
100
42
 
101
43
  inline size_t DataType::getSize() const {
102
- return detail::h5t_get_size(_hid);
44
+ return H5Tget_size(_hid);
103
45
  }
104
46
 
105
47
  inline bool DataType::operator==(const DataType& other) const {
@@ -133,61 +75,61 @@ inline std::string DataType::string() const {
133
75
  // char mapping
134
76
  template <>
135
77
  inline AtomicType<char>::AtomicType() {
136
- _hid = detail::h5t_copy(H5T_NATIVE_CHAR);
78
+ _hid = H5Tcopy(H5T_NATIVE_CHAR);
137
79
  }
138
80
 
139
81
  template <>
140
82
  inline AtomicType<signed char>::AtomicType() {
141
- _hid = detail::h5t_copy(H5T_NATIVE_SCHAR);
83
+ _hid = H5Tcopy(H5T_NATIVE_SCHAR);
142
84
  }
143
85
 
144
86
  template <>
145
87
  inline AtomicType<unsigned char>::AtomicType() {
146
- _hid = detail::h5t_copy(H5T_NATIVE_UCHAR);
88
+ _hid = H5Tcopy(H5T_NATIVE_UCHAR);
147
89
  }
148
90
 
149
91
  // short mapping
150
92
  template <>
151
93
  inline AtomicType<short>::AtomicType() {
152
- _hid = detail::h5t_copy(H5T_NATIVE_SHORT);
94
+ _hid = H5Tcopy(H5T_NATIVE_SHORT);
153
95
  }
154
96
 
155
97
  template <>
156
98
  inline AtomicType<unsigned short>::AtomicType() {
157
- _hid = detail::h5t_copy(H5T_NATIVE_USHORT);
99
+ _hid = H5Tcopy(H5T_NATIVE_USHORT);
158
100
  }
159
101
 
160
102
  // integer mapping
161
103
  template <>
162
104
  inline AtomicType<int>::AtomicType() {
163
- _hid = detail::h5t_copy(H5T_NATIVE_INT);
105
+ _hid = H5Tcopy(H5T_NATIVE_INT);
164
106
  }
165
107
 
166
108
  template <>
167
109
  inline AtomicType<unsigned>::AtomicType() {
168
- _hid = detail::h5t_copy(H5T_NATIVE_UINT);
110
+ _hid = H5Tcopy(H5T_NATIVE_UINT);
169
111
  }
170
112
 
171
113
  // long mapping
172
114
  template <>
173
115
  inline AtomicType<long>::AtomicType() {
174
- _hid = detail::h5t_copy(H5T_NATIVE_LONG);
116
+ _hid = H5Tcopy(H5T_NATIVE_LONG);
175
117
  }
176
118
 
177
119
  template <>
178
120
  inline AtomicType<unsigned long>::AtomicType() {
179
- _hid = detail::h5t_copy(H5T_NATIVE_ULONG);
121
+ _hid = H5Tcopy(H5T_NATIVE_ULONG);
180
122
  }
181
123
 
182
124
  // long long mapping
183
125
  template <>
184
126
  inline AtomicType<long long>::AtomicType() {
185
- _hid = detail::h5t_copy(H5T_NATIVE_LLONG);
127
+ _hid = H5Tcopy(H5T_NATIVE_LLONG);
186
128
  }
187
129
 
188
130
  template <>
189
131
  inline AtomicType<unsigned long long>::AtomicType() {
190
- _hid = detail::h5t_copy(H5T_NATIVE_ULLONG);
132
+ _hid = H5Tcopy(H5T_NATIVE_ULLONG);
191
133
  }
192
134
 
193
135
  // half-float, float, double and long double mapping
@@ -196,11 +138,11 @@ using float16_t = half_float::half;
196
138
 
197
139
  template <>
198
140
  inline AtomicType<float16_t>::AtomicType() {
199
- _hid = detail::h5t_copy(H5T_NATIVE_FLOAT);
141
+ _hid = H5Tcopy(H5T_NATIVE_FLOAT);
200
142
  // Sign position, exponent position, exponent size, mantissa position, mantissa size
201
143
  H5Tset_fields(_hid, 15, 10, 5, 0, 10);
202
144
  // Total datatype size (in bytes)
203
- detail::h5t_set_size(_hid, 2);
145
+ H5Tset_size(_hid, 2);
204
146
  // Floating point exponent bias
205
147
  H5Tset_ebias(_hid, 15);
206
148
  }
@@ -208,17 +150,17 @@ inline AtomicType<float16_t>::AtomicType() {
208
150
 
209
151
  template <>
210
152
  inline AtomicType<float>::AtomicType() {
211
- _hid = detail::h5t_copy(H5T_NATIVE_FLOAT);
153
+ _hid = H5Tcopy(H5T_NATIVE_FLOAT);
212
154
  }
213
155
 
214
156
  template <>
215
157
  inline AtomicType<double>::AtomicType() {
216
- _hid = detail::h5t_copy(H5T_NATIVE_DOUBLE);
158
+ _hid = H5Tcopy(H5T_NATIVE_DOUBLE);
217
159
  }
218
160
 
219
161
  template <>
220
162
  inline AtomicType<long double>::AtomicType() {
221
- _hid = detail::h5t_copy(H5T_NATIVE_LDOUBLE);
163
+ _hid = H5Tcopy(H5T_NATIVE_LDOUBLE);
222
164
  }
223
165
 
224
166
  // std string
@@ -231,7 +173,7 @@ inline AtomicType<std::string>::AtomicType() {
231
173
  // std byte
232
174
  template <>
233
175
  inline AtomicType<std::byte>::AtomicType() {
234
- _hid = detail::h5t_copy(H5T_NATIVE_B8);
176
+ _hid = H5Tcopy(H5T_NATIVE_B8);
235
177
  }
236
178
  #endif
237
179
 
@@ -329,7 +271,7 @@ inline std::string FixedLenStringArray<N>::getString(std::size_t i) const {
329
271
  // Reference mapping
330
272
  template <>
331
273
  inline AtomicType<Reference>::AtomicType() {
332
- _hid = detail::h5t_copy(H5T_STD_REF_OBJ);
274
+ _hid = H5Tcopy(H5T_STD_REF_OBJ);
333
275
  }
334
276
 
335
277
  inline size_t find_first_atomic_member_size(hid_t hid) {
@@ -352,7 +294,7 @@ inline size_t find_first_atomic_member_size(hid_t hid) {
352
294
  } else if (H5Tget_class(hid) == H5T_STRING) {
353
295
  return 1;
354
296
  }
355
- return detail::h5t_get_size(hid);
297
+ return H5Tget_size(hid);
356
298
  }
357
299
 
358
300
  // Calculate the padding required to align an element of a struct
@@ -383,7 +325,7 @@ inline void CompoundType::create(size_t size) {
383
325
 
384
326
  // Do a first pass to find the total size of the compound datatype
385
327
  for (auto& member: members) {
386
- size_t member_size = detail::h5t_get_size(member.base_type.getId());
328
+ size_t member_size = H5Tget_size(member.base_type.getId());
387
329
 
388
330
  if (member_size == 0) {
389
331
  throw DataTypeException("Cannot get size of DataType with hid: " +
@@ -451,9 +393,12 @@ inline void EnumType<T>::commit(const Object& object, const std::string& name) c
451
393
  namespace {
452
394
 
453
395
  inline hid_t create_string(size_t length) {
454
- hid_t _hid = detail::h5t_copy(H5T_C_S1);
455
- detail::h5t_set_size(_hid, length);
456
- detail::h5t_set_cset(_hid, H5T_CSET_UTF8);
396
+ hid_t _hid = H5Tcopy(H5T_C_S1);
397
+ if (H5Tset_size(_hid, length) < 0) {
398
+ HDF5ErrMapper::ToException<DataTypeException>("Unable to define datatype size to variable");
399
+ }
400
+ // define encoding to UTF-8 by default
401
+ H5Tset_cset(_hid, H5T_CSET_UTF8);
457
402
  return _hid;
458
403
  }
459
404
 
@@ -34,7 +34,7 @@ inline PathTraits<Derivate>::PathTraits() {
34
34
  template <typename Derivate>
35
35
  inline std::string PathTraits<Derivate>::getPath() const {
36
36
  return details::get_name([this](char* buffer, size_t length) {
37
- return H5Iget_name(static_cast<const Derivate&>(*this).getId(), buffer, length);
37
+ return H5Iget_name(static_cast<const Derivate*>(this)->getId(), buffer, length);
38
38
  });
39
39
  }
40
40
 
@@ -258,15 +258,6 @@ class SliceTraits {
258
258
  /// Therefore, the only memspaces supported for general hyperslabs are one-dimensional arrays.
259
259
  Selection select(const HyperSlab& hyperslab) const;
260
260
 
261
- ///
262
- /// \brief Select an \p hyperslab in the current Slice/Dataset.
263
- ///
264
- /// If the selection can be read into a simple, multi-dimensional dataspace,
265
- /// then this overload enable specifying the shape of the memory dataspace
266
- /// with `memspace`. Note, that simple implies no offsets, strides or
267
- /// number of blocks, just the size of the block in each dimension.
268
- Selection select(const HyperSlab& hyperslab, const DataSpace& memspace) const;
269
-
270
261
  ///
271
262
  /// \brief Select a region in the current Slice/Dataset of \p count points at
272
263
  /// \p offset separated by \p stride. If strides are not provided they will
@@ -317,21 +308,9 @@ class SliceTraits {
317
308
  /// \param xfer_props: Data Transfer properties
318
309
  template <typename T>
319
310
  void read(T* array,
320
- const DataType& dtype,
311
+ const DataType& dtype = DataType(),
321
312
  const DataTransferProps& xfer_props = DataTransferProps()) const;
322
313
 
323
- ///
324
- /// Read the entire dataset into a raw buffer
325
- ///
326
- /// Same as `read(T*, const DataType&, const DataTransferProps&)`. However,
327
- /// this overload deduces the HDF5 datatype of the element of `array` from
328
- /// `T`. Note, that the file datatype is already fixed.
329
- ///
330
- /// \param array: A buffer containing enough space for the data
331
- /// \param xfer_props: Data Transfer properties
332
- template <typename T>
333
- void read(T* array, const DataTransferProps& xfer_props = DataTransferProps()) const;
334
-
335
314
  ///
336
315
  /// Write the integrality N-dimension buffer to this dataset
337
316
  /// An exception is raised is if the numbers of dimension of the buffer and
@@ -343,33 +322,22 @@ class SliceTraits {
343
322
  void write(const T& buffer, const DataTransferProps& xfer_props = DataTransferProps());
344
323
 
345
324
  ///
346
- /// Write from a raw pointer into this dataset.
325
+ /// Write from a raw buffer into this dataset
347
326
  ///
348
327
  /// No dimensionality checks will be performed, it is the user's
349
328
  /// responsibility to ensure that the buffer holds the right amount of
350
329
  /// elements. For n-dimensional matrices the buffer layout follows H5
351
330
  /// default conventions.
352
- ///
353
- /// Note, this is the shallowest wrapper around `H5Dwrite` and should
354
- /// be used if full control is needed. Generally prefer `write`.
355
- ///
356
331
  /// \param buffer: A buffer containing the data to be written
357
- /// \param dtype: The datatype of `buffer`, i.e. the memory data type.
332
+ /// \param dtype: The type of the data, in case it cannot be automatically guessed
358
333
  /// \param xfer_props: The HDF5 data transfer properties, e.g. collective MPI-IO.
359
334
  template <typename T>
360
335
  void write_raw(const T* buffer,
361
- const DataType& mem_datatype,
336
+ const DataType& dtype = DataType(),
362
337
  const DataTransferProps& xfer_props = DataTransferProps());
363
338
 
364
- ///
365
- /// Write from a raw pointer into this dataset.
366
- ///
367
- /// Same as `write_raw(const T*, const DataTransferProps&)`. However, this
368
- /// overload attempts to guess the data type of `buffer`, i.e. the memory
369
- /// datatype. Note that the file datatype is already fixed.
370
- ///
371
- template <typename T>
372
- void write_raw(const T* buffer, const DataTransferProps& xfer_props = DataTransferProps());
339
+ protected:
340
+ inline Selection select_impl(const HyperSlab& hyperslab, const DataSpace& memspace) const;
373
341
  };
374
342
 
375
343
  } // namespace HighFive
@@ -64,8 +64,8 @@ inline ElementSet::ElementSet(const std::vector<std::vector<std::size_t>>& eleme
64
64
  }
65
65
 
66
66
  template <typename Derivate>
67
- inline Selection SliceTraits<Derivate>::select(const HyperSlab& hyperslab,
68
- const DataSpace& memspace) const {
67
+ inline Selection SliceTraits<Derivate>::select_impl(const HyperSlab& hyperslab,
68
+ const DataSpace& memspace) const {
69
69
  // Note: The current limitation are that memspace must describe a
70
70
  // packed memspace.
71
71
  //
@@ -98,7 +98,7 @@ inline Selection SliceTraits<Derivate>::select(const std::vector<size_t>& offset
98
98
  const std::vector<size_t>& block) const {
99
99
  auto slab = HyperSlab(RegularHyperSlab(offset, count, stride, block));
100
100
  auto memspace = DataSpace(count);
101
- return select(slab, memspace);
101
+ return select_impl(slab, memspace);
102
102
  }
103
103
 
104
104
  template <typename Derivate>
@@ -121,7 +121,7 @@ inline Selection SliceTraits<Derivate>::select(const std::vector<size_t>& column
121
121
  std::vector<size_t> memdims = dims;
122
122
  memdims.back() = columns.size();
123
123
 
124
- return select(slab, DataSpace(memdims));
124
+ return select_impl(slab, DataSpace(memdims));
125
125
  }
126
126
 
127
127
  template <typename Derivate>
@@ -214,12 +214,16 @@ inline void SliceTraits<Derivate>::read(T& array, const DataTransferProps& xfer_
214
214
  template <typename Derivate>
215
215
  template <typename T>
216
216
  inline void SliceTraits<Derivate>::read(T* array,
217
- const DataType& mem_datatype,
217
+ const DataType& dtype,
218
218
  const DataTransferProps& xfer_props) const {
219
219
  static_assert(!std::is_const<T>::value,
220
220
  "read() requires a non-const structure to read data into");
221
-
222
221
  const auto& slice = static_cast<const Derivate&>(*this);
222
+ using element_type = typename details::inspector<T>::base_type;
223
+
224
+ // Auto-detect mem datatype if not provided
225
+ const DataType& mem_datatype = dtype.empty() ? create_and_check_datatype<element_type>()
226
+ : dtype;
223
227
 
224
228
  if (H5Dread(details::get_dataset(slice).getId(),
225
229
  mem_datatype.getId(),
@@ -231,15 +235,6 @@ inline void SliceTraits<Derivate>::read(T* array,
231
235
  }
232
236
  }
233
237
 
234
- template <typename Derivate>
235
- template <typename T>
236
- inline void SliceTraits<Derivate>::read(T* array, const DataTransferProps& xfer_props) const {
237
- using element_type = typename details::inspector<T>::base_type;
238
- const DataType& mem_datatype = create_and_check_datatype<element_type>();
239
-
240
- read(array, mem_datatype, xfer_props);
241
- }
242
-
243
238
 
244
239
  template <typename Derivate>
245
240
  template <typename T>
@@ -271,9 +266,11 @@ inline void SliceTraits<Derivate>::write(const T& buffer, const DataTransferProp
271
266
  template <typename Derivate>
272
267
  template <typename T>
273
268
  inline void SliceTraits<Derivate>::write_raw(const T* buffer,
274
- const DataType& mem_datatype,
269
+ const DataType& dtype,
275
270
  const DataTransferProps& xfer_props) {
271
+ using element_type = typename details::inspector<T>::base_type;
276
272
  const auto& slice = static_cast<const Derivate&>(*this);
273
+ const auto& mem_datatype = dtype.empty() ? create_and_check_datatype<element_type>() : dtype;
277
274
 
278
275
  if (H5Dwrite(details::get_dataset(slice).getId(),
279
276
  mem_datatype.getId(),
@@ -285,14 +282,5 @@ inline void SliceTraits<Derivate>::write_raw(const T* buffer,
285
282
  }
286
283
  }
287
284
 
288
- template <typename Derivate>
289
- template <typename T>
290
- inline void SliceTraits<Derivate>::write_raw(const T* buffer, const DataTransferProps& xfer_props) {
291
- using element_type = typename details::inspector<T>::base_type;
292
- const auto& mem_datatype = create_and_check_datatype<element_type>();
293
-
294
- write_raw(buffer, mem_datatype, xfer_props);
295
- }
296
-
297
285
 
298
286
  } // namespace HighFive
@@ -1,3 +1,19 @@
1
+ v3.3.6
2
+ ======
3
+ Improvements:
4
+ * don't allow negative IDs in SWC, except for the special parent == -1, for the first sample (#466)
5
+ * Bump HighFive to v2.7.1 (#449)
6
+ * Increase allowed section type to 19 (#462)
7
+ * Have warnings for incompatible soma-types (#458):
8
+ * SWC files should have soma that are either a point, or a set of stacked cylinders.
9
+ * H5 & ASC consider the soma to be a contour
10
+ * allow assignment of soma type for mutable soma
11
+ * add errors for soma access / write if wrong size
12
+ - ERROR_SOMA_INVALID_SINGLE_POINT
13
+ - ERROR_SOMA_INVALID_THREE_POINT_CYLINDER
14
+ - ERROR_SOMA_INVALID_CONTOUR
15
+ * increased test coverage and cleanup
16
+
1
17
  v3.3.5
2
18
  ======
3
19
  New Features: