morphio 2.7.1__tar.gz → 3.0.2__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 (360) hide show
  1. MorphIO-3.0.2/.github/workflows/coverage_test.yaml +29 -0
  2. MorphIO-3.0.2/.github/workflows/docstring_check.yaml +22 -0
  3. {MorphIO-2.7.1 → MorphIO-3.0.2}/.gitignore +4 -0
  4. MorphIO-3.0.2/.readthedocs.yaml +13 -0
  5. MorphIO-3.0.2/CMake/CodeCoverage.cmake +303 -0
  6. {MorphIO-2.7.1 → MorphIO-3.0.2}/CMakeLists.txt +13 -3
  7. MorphIO-3.0.2/MorphIO.egg-info/PKG-INFO +763 -0
  8. {MorphIO-2.7.1 → MorphIO-3.0.2}/MorphIO.egg-info/SOURCES.txt +35 -6
  9. MorphIO-3.0.2/MorphIO.egg-info/requires.txt +4 -0
  10. MorphIO-3.0.2/PKG-INFO +763 -0
  11. MorphIO-3.0.2/README.rst +750 -0
  12. {MorphIO-2.7.1 → MorphIO-3.0.2}/binds/python/bind_misc.cpp +8 -0
  13. {MorphIO-2.7.1 → MorphIO-3.0.2}/binds/python/bind_mutable.cpp +3 -3
  14. MorphIO-3.0.2/binds/python/generated/.clang-format +4 -0
  15. MorphIO-3.0.2/binds/python/generated/docstrings.h +50 -0
  16. MorphIO-3.0.2/ci/check_generated_docstrings.sh +49 -0
  17. MorphIO-3.0.2/ci/coverage_test.sh +26 -0
  18. {MorphIO-2.7.1 → MorphIO-3.0.2}/ci/cpp_test.sh +7 -5
  19. MorphIO-3.0.2/doc/Makefile +20 -0
  20. MorphIO-3.0.2/doc/environment.yml +9 -0
  21. MorphIO-3.0.2/doc/source/Doxyfile +2537 -0
  22. MorphIO-3.0.2/doc/source/DoxygenLayout.xml +194 -0
  23. MorphIO-3.0.2/doc/source/_templates/doxygen_page.rst_t +4 -0
  24. MorphIO-3.0.2/doc/source/api.rst +4 -0
  25. MorphIO-3.0.2/doc/source/conf.py +193 -0
  26. MorphIO-3.0.2/doc/source/cpp.rst +8 -0
  27. MorphIO-3.0.2/doc/source/footer.html +6 -0
  28. MorphIO-3.0.2/doc/source/header.html +27 -0
  29. MorphIO-3.0.2/doc/source/images/swc/neuromorpho.svg +795 -0
  30. MorphIO-3.0.2/doc/source/images/swc/sequential.svg +332 -0
  31. MorphIO-3.0.2/doc/source/images/swc/single.svg +574 -0
  32. MorphIO-3.0.2/doc/source/images/swc/split.svg +574 -0
  33. MorphIO-3.0.2/doc/source/images/swc/two_pt.svg +574 -0
  34. MorphIO-3.0.2/doc/source/index.rst +10 -0
  35. MorphIO-3.0.2/doc/source/specification.rst +193 -0
  36. MorphIO-3.0.2/doc/source/specification_neurolucida.rst +192 -0
  37. {MorphIO-2.7.1 → MorphIO-3.0.2}/include/morphio/enums.h +10 -3
  38. {MorphIO-2.7.1 → MorphIO-3.0.2}/include/morphio/errorMessages.h +3 -0
  39. {MorphIO-2.7.1 → MorphIO-3.0.2}/include/morphio/mut/morphology.h +12 -3
  40. {MorphIO-2.7.1 → MorphIO-3.0.2}/include/morphio/mut/section.h +12 -1
  41. {MorphIO-2.7.1 → MorphIO-3.0.2}/include/morphio/vasc/properties.h +0 -4
  42. {MorphIO-2.7.1 → MorphIO-3.0.2}/include/morphio/vector_types.h +0 -10
  43. {MorphIO-2.7.1 → MorphIO-3.0.2}/morphio/__init__.py +1 -0
  44. {MorphIO-2.7.1 → MorphIO-3.0.2}/setup.py +5 -2
  45. {MorphIO-2.7.1 → MorphIO-3.0.2}/src/CMakeLists.txt +10 -1
  46. {MorphIO-2.7.1 → MorphIO-3.0.2}/src/errorMessages.cpp +21 -0
  47. {MorphIO-2.7.1 → MorphIO-3.0.2}/src/morphology.cpp +0 -6
  48. {MorphIO-2.7.1 → MorphIO-3.0.2}/src/mut/mitochondria.cpp +5 -2
  49. {MorphIO-2.7.1 → MorphIO-3.0.2}/src/mut/morphology.cpp +46 -25
  50. {MorphIO-2.7.1 → MorphIO-3.0.2}/src/mut/section.cpp +62 -33
  51. {MorphIO-2.7.1 → MorphIO-3.0.2}/src/mut/soma.cpp +2 -3
  52. {MorphIO-2.7.1 → MorphIO-3.0.2}/src/properties.cpp +7 -6
  53. {MorphIO-2.7.1 → MorphIO-3.0.2}/src/readers/morphologyASC.cpp +0 -1
  54. {MorphIO-2.7.1 → MorphIO-3.0.2}/src/readers/morphologyHDF5.cpp +3 -3
  55. {MorphIO-2.7.1 → MorphIO-3.0.2}/src/readers/morphologySWC.cpp +15 -7
  56. MorphIO-2.7.1/include/morphio/shared_utils.tpp → MorphIO-3.0.2/src/shared_utils.hpp +15 -4
  57. {MorphIO-2.7.1 → MorphIO-3.0.2}/src/soma.cpp +2 -1
  58. {MorphIO-2.7.1 → MorphIO-3.0.2}/src/vasc/properties.cpp +12 -11
  59. {MorphIO-2.7.1 → MorphIO-3.0.2}/src/vector_utils.cpp +0 -1
  60. MorphIO-3.0.2/tests/CMakeLists.txt +44 -0
  61. MorphIO-3.0.2/tests/__init__.py +0 -0
  62. MorphIO-3.0.2/tests/data/annotations.asc +12 -0
  63. {MorphIO-2.7.1 → MorphIO-3.0.2}/tests/data/h5/v1/simple-broken-section-type.h5 +0 -0
  64. MorphIO-3.0.2/tests/data/simple.unknown +44 -0
  65. MorphIO-3.0.2/tests/data/single_point_root.asc +8 -0
  66. {MorphIO-2.7.1 → MorphIO-3.0.2}/tests/test_0_API.py +1 -1
  67. {MorphIO-2.7.1 → MorphIO-3.0.2}/tests/test_1_swc.py +42 -7
  68. {MorphIO-2.7.1 → MorphIO-3.0.2}/tests/test_2_neurolucida.py +11 -83
  69. {MorphIO-2.7.1 → MorphIO-3.0.2}/tests/test_3_h5.py +3 -4
  70. {MorphIO-2.7.1 → MorphIO-3.0.2}/tests/test_5_mut.py +171 -36
  71. {MorphIO-2.7.1 → MorphIO-3.0.2}/tests/test_6_writers.py +32 -29
  72. MorphIO-3.0.2/tests/test_immutable_morphology.cpp +356 -0
  73. MorphIO-2.7.1/tests/test_morphology.cpp → MorphIO-3.0.2/tests/test_morphology_readers.cpp +1 -0
  74. MorphIO-3.0.2/tests/test_mutable_morphology.cpp +54 -0
  75. MorphIO-2.7.1/MorphIO.egg-info/PKG-INFO +0 -682
  76. MorphIO-2.7.1/MorphIO.egg-info/requires.txt +0 -1
  77. MorphIO-2.7.1/PKG-INFO +0 -682
  78. MorphIO-2.7.1/README.md +0 -670
  79. MorphIO-2.7.1/doc/BBPLOGO350.jpg +0 -0
  80. MorphIO-2.7.1/doc/specification.md +0 -101
  81. MorphIO-2.7.1/doc/specification_neurolucida.md +0 -165
  82. MorphIO-2.7.1/tests/CMakeLists.txt +0 -22
  83. {MorphIO-2.7.1 → MorphIO-3.0.2}/.clang-format +0 -0
  84. {MorphIO-2.7.1 → MorphIO-3.0.2}/.github/workflows/clang_format_check.yaml +0 -0
  85. {MorphIO-2.7.1 → MorphIO-3.0.2}/.github/workflows/publish-sdist-wheels.yml +0 -0
  86. {MorphIO-2.7.1 → MorphIO-3.0.2}/.github/workflows/run-tests.yml +0 -0
  87. {MorphIO-2.7.1 → MorphIO-3.0.2}/.gitmodules +0 -0
  88. {MorphIO-2.7.1 → MorphIO-3.0.2}/.travis.yml +0 -0
  89. {MorphIO-2.7.1 → MorphIO-3.0.2}/3rdparty/CMakeLists.txt +0 -0
  90. {MorphIO-2.7.1 → MorphIO-3.0.2}/3rdparty/GSL_LITE/CMakeLists.txt +0 -0
  91. {MorphIO-2.7.1 → MorphIO-3.0.2}/3rdparty/GSL_LITE/cmake/PackageConfig.cmake.in +0 -0
  92. {MorphIO-2.7.1 → MorphIO-3.0.2}/3rdparty/GSL_LITE/gsl-lite.natvis +0 -0
  93. {MorphIO-2.7.1 → MorphIO-3.0.2}/3rdparty/GSL_LITE/include/gsl/gsl +0 -0
  94. {MorphIO-2.7.1 → MorphIO-3.0.2}/3rdparty/GSL_LITE/include/gsl/gsl-lite-vc6.hpp +0 -0
  95. {MorphIO-2.7.1 → MorphIO-3.0.2}/3rdparty/GSL_LITE/include/gsl/gsl-lite.h +0 -0
  96. {MorphIO-2.7.1 → MorphIO-3.0.2}/3rdparty/GSL_LITE/include/gsl/gsl-lite.hpp +0 -0
  97. {MorphIO-2.7.1 → MorphIO-3.0.2}/3rdparty/GSL_LITE/include/gsl.h +0 -0
  98. {MorphIO-2.7.1 → MorphIO-3.0.2}/3rdparty/GSL_LITE/include/gsl.hpp +0 -0
  99. {MorphIO-2.7.1 → MorphIO-3.0.2}/3rdparty/HighFive/CMake/HighFiveConfig.cmake.in +0 -0
  100. {MorphIO-2.7.1 → MorphIO-3.0.2}/3rdparty/HighFive/CMake/HighFiveTargetDeps.cmake +0 -0
  101. {MorphIO-2.7.1 → MorphIO-3.0.2}/3rdparty/HighFive/CMake/HighFiveTargetExport.cmake +0 -0
  102. {MorphIO-2.7.1 → MorphIO-3.0.2}/3rdparty/HighFive/CMake/config/CompilerFlagsHelpers.cmake +0 -0
  103. {MorphIO-2.7.1 → MorphIO-3.0.2}/3rdparty/HighFive/CMake/config/ReleaseDebugAutoFlags.cmake +0 -0
  104. {MorphIO-2.7.1 → MorphIO-3.0.2}/3rdparty/HighFive/CMake/config/TestHelpers.cmake +0 -0
  105. {MorphIO-2.7.1 → MorphIO-3.0.2}/3rdparty/HighFive/CMake/portability/BlueGenePortability.cmake +0 -0
  106. {MorphIO-2.7.1 → MorphIO-3.0.2}/3rdparty/HighFive/CMake/portability/CheckCXXStandardSupport.cmake +0 -0
  107. {MorphIO-2.7.1 → MorphIO-3.0.2}/3rdparty/HighFive/CMakeLists.txt +0 -0
  108. {MorphIO-2.7.1 → MorphIO-3.0.2}/3rdparty/HighFive/doc/CMakeLists.txt +0 -0
  109. {MorphIO-2.7.1 → MorphIO-3.0.2}/3rdparty/HighFive/doc/Doxyfile +0 -0
  110. {MorphIO-2.7.1 → MorphIO-3.0.2}/3rdparty/HighFive/doc/mainpage.md +0 -0
  111. {MorphIO-2.7.1 → MorphIO-3.0.2}/3rdparty/HighFive/include/highfive/H5Attribute.hpp +0 -0
  112. {MorphIO-2.7.1 → MorphIO-3.0.2}/3rdparty/HighFive/include/highfive/H5DataSet.hpp +0 -0
  113. {MorphIO-2.7.1 → MorphIO-3.0.2}/3rdparty/HighFive/include/highfive/H5DataSpace.hpp +0 -0
  114. {MorphIO-2.7.1 → MorphIO-3.0.2}/3rdparty/HighFive/include/highfive/H5DataType.hpp +0 -0
  115. {MorphIO-2.7.1 → MorphIO-3.0.2}/3rdparty/HighFive/include/highfive/H5Easy.hpp +0 -0
  116. {MorphIO-2.7.1 → MorphIO-3.0.2}/3rdparty/HighFive/include/highfive/H5Exception.hpp +0 -0
  117. {MorphIO-2.7.1 → MorphIO-3.0.2}/3rdparty/HighFive/include/highfive/H5File.hpp +0 -0
  118. {MorphIO-2.7.1 → MorphIO-3.0.2}/3rdparty/HighFive/include/highfive/H5FileDriver.hpp +0 -0
  119. {MorphIO-2.7.1 → MorphIO-3.0.2}/3rdparty/HighFive/include/highfive/H5Group.hpp +0 -0
  120. {MorphIO-2.7.1 → MorphIO-3.0.2}/3rdparty/HighFive/include/highfive/H5Object.hpp +0 -0
  121. {MorphIO-2.7.1 → MorphIO-3.0.2}/3rdparty/HighFive/include/highfive/H5PropertyList.hpp +0 -0
  122. {MorphIO-2.7.1 → MorphIO-3.0.2}/3rdparty/HighFive/include/highfive/H5Reference.hpp +0 -0
  123. {MorphIO-2.7.1 → MorphIO-3.0.2}/3rdparty/HighFive/include/highfive/H5Selection.hpp +0 -0
  124. {MorphIO-2.7.1 → MorphIO-3.0.2}/3rdparty/HighFive/include/highfive/H5Utility.hpp +0 -0
  125. {MorphIO-2.7.1 → MorphIO-3.0.2}/3rdparty/HighFive/include/highfive/H5Version.hpp.in +0 -0
  126. {MorphIO-2.7.1 → MorphIO-3.0.2}/3rdparty/HighFive/include/highfive/bits/H5Annotate_traits.hpp +0 -0
  127. {MorphIO-2.7.1 → MorphIO-3.0.2}/3rdparty/HighFive/include/highfive/bits/H5Annotate_traits_misc.hpp +0 -0
  128. {MorphIO-2.7.1 → MorphIO-3.0.2}/3rdparty/HighFive/include/highfive/bits/H5Attribute_misc.hpp +0 -0
  129. {MorphIO-2.7.1 → MorphIO-3.0.2}/3rdparty/HighFive/include/highfive/bits/H5ConverterEigen_misc.hpp +0 -0
  130. {MorphIO-2.7.1 → MorphIO-3.0.2}/3rdparty/HighFive/include/highfive/bits/H5Converter_misc.hpp +0 -0
  131. {MorphIO-2.7.1 → MorphIO-3.0.2}/3rdparty/HighFive/include/highfive/bits/H5DataSet_misc.hpp +0 -0
  132. {MorphIO-2.7.1 → MorphIO-3.0.2}/3rdparty/HighFive/include/highfive/bits/H5DataType_misc.hpp +0 -0
  133. {MorphIO-2.7.1 → MorphIO-3.0.2}/3rdparty/HighFive/include/highfive/bits/H5Dataspace_misc.hpp +0 -0
  134. {MorphIO-2.7.1 → MorphIO-3.0.2}/3rdparty/HighFive/include/highfive/bits/H5Exception_misc.hpp +0 -0
  135. {MorphIO-2.7.1 → MorphIO-3.0.2}/3rdparty/HighFive/include/highfive/bits/H5FileDriver_misc.hpp +0 -0
  136. {MorphIO-2.7.1 → MorphIO-3.0.2}/3rdparty/HighFive/include/highfive/bits/H5File_misc.hpp +0 -0
  137. {MorphIO-2.7.1 → MorphIO-3.0.2}/3rdparty/HighFive/include/highfive/bits/H5Iterables_misc.hpp +0 -0
  138. {MorphIO-2.7.1 → MorphIO-3.0.2}/3rdparty/HighFive/include/highfive/bits/H5Node_traits.hpp +0 -0
  139. {MorphIO-2.7.1 → MorphIO-3.0.2}/3rdparty/HighFive/include/highfive/bits/H5Node_traits_misc.hpp +0 -0
  140. {MorphIO-2.7.1 → MorphIO-3.0.2}/3rdparty/HighFive/include/highfive/bits/H5Object_misc.hpp +0 -0
  141. {MorphIO-2.7.1 → MorphIO-3.0.2}/3rdparty/HighFive/include/highfive/bits/H5PropertyList_misc.hpp +0 -0
  142. {MorphIO-2.7.1 → MorphIO-3.0.2}/3rdparty/HighFive/include/highfive/bits/H5ReadWrite_misc.hpp +0 -0
  143. {MorphIO-2.7.1 → MorphIO-3.0.2}/3rdparty/HighFive/include/highfive/bits/H5Reference_misc.hpp +0 -0
  144. {MorphIO-2.7.1 → MorphIO-3.0.2}/3rdparty/HighFive/include/highfive/bits/H5Selection_misc.hpp +0 -0
  145. {MorphIO-2.7.1 → MorphIO-3.0.2}/3rdparty/HighFive/include/highfive/bits/H5Slice_traits.hpp +0 -0
  146. {MorphIO-2.7.1 → MorphIO-3.0.2}/3rdparty/HighFive/include/highfive/bits/H5Slice_traits_misc.hpp +0 -0
  147. {MorphIO-2.7.1 → MorphIO-3.0.2}/3rdparty/HighFive/include/highfive/bits/H5Utils.hpp +0 -0
  148. {MorphIO-2.7.1 → MorphIO-3.0.2}/3rdparty/HighFive/include/highfive/bits/H5_definitions.hpp +0 -0
  149. {MorphIO-2.7.1 → MorphIO-3.0.2}/3rdparty/HighFive/include/highfive/h5easy_bits/H5Easy_Eigen.hpp +0 -0
  150. {MorphIO-2.7.1 → MorphIO-3.0.2}/3rdparty/HighFive/include/highfive/h5easy_bits/H5Easy_misc.hpp +0 -0
  151. {MorphIO-2.7.1 → MorphIO-3.0.2}/3rdparty/HighFive/include/highfive/h5easy_bits/H5Easy_opencv.hpp +0 -0
  152. {MorphIO-2.7.1 → MorphIO-3.0.2}/3rdparty/HighFive/include/highfive/h5easy_bits/H5Easy_public.hpp +0 -0
  153. {MorphIO-2.7.1 → MorphIO-3.0.2}/3rdparty/HighFive/include/highfive/h5easy_bits/H5Easy_scalar.hpp +0 -0
  154. {MorphIO-2.7.1 → MorphIO-3.0.2}/3rdparty/HighFive/include/highfive/h5easy_bits/H5Easy_vector.hpp +0 -0
  155. {MorphIO-2.7.1 → MorphIO-3.0.2}/3rdparty/HighFive/include/highfive/h5easy_bits/H5Easy_xtensor.hpp +0 -0
  156. {MorphIO-2.7.1 → MorphIO-3.0.2}/3rdparty/lexertl/CMakeLists.txt +0 -0
  157. {MorphIO-2.7.1 → MorphIO-3.0.2}/3rdparty/lexertl/lexertl/bool.hpp +0 -0
  158. {MorphIO-2.7.1 → MorphIO-3.0.2}/3rdparty/lexertl/lexertl/char_traits.hpp +0 -0
  159. {MorphIO-2.7.1 → MorphIO-3.0.2}/3rdparty/lexertl/lexertl/compile_assert.hpp +0 -0
  160. {MorphIO-2.7.1 → MorphIO-3.0.2}/3rdparty/lexertl/lexertl/containers/bitvector.hpp +0 -0
  161. {MorphIO-2.7.1 → MorphIO-3.0.2}/3rdparty/lexertl/lexertl/containers/ptr_list.hpp +0 -0
  162. {MorphIO-2.7.1 → MorphIO-3.0.2}/3rdparty/lexertl/lexertl/containers/ptr_map.hpp +0 -0
  163. {MorphIO-2.7.1 → MorphIO-3.0.2}/3rdparty/lexertl/lexertl/containers/ptr_stack.hpp +0 -0
  164. {MorphIO-2.7.1 → MorphIO-3.0.2}/3rdparty/lexertl/lexertl/containers/ptr_vector.hpp +0 -0
  165. {MorphIO-2.7.1 → MorphIO-3.0.2}/3rdparty/lexertl/lexertl/debug.hpp +0 -0
  166. {MorphIO-2.7.1 → MorphIO-3.0.2}/3rdparty/lexertl/lexertl/dot.hpp +0 -0
  167. {MorphIO-2.7.1 → MorphIO-3.0.2}/3rdparty/lexertl/lexertl/enums.hpp +0 -0
  168. {MorphIO-2.7.1 → MorphIO-3.0.2}/3rdparty/lexertl/lexertl/generate_cpp.hpp +0 -0
  169. {MorphIO-2.7.1 → MorphIO-3.0.2}/3rdparty/lexertl/lexertl/generator.hpp +0 -0
  170. {MorphIO-2.7.1 → MorphIO-3.0.2}/3rdparty/lexertl/lexertl/internals.hpp +0 -0
  171. {MorphIO-2.7.1 → MorphIO-3.0.2}/3rdparty/lexertl/lexertl/is_same.hpp +0 -0
  172. {MorphIO-2.7.1 → MorphIO-3.0.2}/3rdparty/lexertl/lexertl/iterator.hpp +0 -0
  173. {MorphIO-2.7.1 → MorphIO-3.0.2}/3rdparty/lexertl/lexertl/licence_1_0.txt +0 -0
  174. {MorphIO-2.7.1 → MorphIO-3.0.2}/3rdparty/lexertl/lexertl/lookup.hpp +0 -0
  175. {MorphIO-2.7.1 → MorphIO-3.0.2}/3rdparty/lexertl/lexertl/match_results.hpp +0 -0
  176. {MorphIO-2.7.1 → MorphIO-3.0.2}/3rdparty/lexertl/lexertl/memory_file.hpp +0 -0
  177. {MorphIO-2.7.1 → MorphIO-3.0.2}/3rdparty/lexertl/lexertl/narrow.hpp +0 -0
  178. {MorphIO-2.7.1 → MorphIO-3.0.2}/3rdparty/lexertl/lexertl/old/fast_filebuf.hpp +0 -0
  179. {MorphIO-2.7.1 → MorphIO-3.0.2}/3rdparty/lexertl/lexertl/old/string_token.hpp +0 -0
  180. {MorphIO-2.7.1 → MorphIO-3.0.2}/3rdparty/lexertl/lexertl/parser/parser.hpp +0 -0
  181. {MorphIO-2.7.1 → MorphIO-3.0.2}/3rdparty/lexertl/lexertl/parser/tokeniser/re_token.hpp +0 -0
  182. {MorphIO-2.7.1 → MorphIO-3.0.2}/3rdparty/lexertl/lexertl/parser/tokeniser/re_tokeniser.hpp +0 -0
  183. {MorphIO-2.7.1 → MorphIO-3.0.2}/3rdparty/lexertl/lexertl/parser/tokeniser/re_tokeniser_helper.hpp +0 -0
  184. {MorphIO-2.7.1 → MorphIO-3.0.2}/3rdparty/lexertl/lexertl/parser/tokeniser/re_tokeniser_state.hpp +0 -0
  185. {MorphIO-2.7.1 → MorphIO-3.0.2}/3rdparty/lexertl/lexertl/parser/tree/end_node.hpp +0 -0
  186. {MorphIO-2.7.1 → MorphIO-3.0.2}/3rdparty/lexertl/lexertl/parser/tree/iteration_node.hpp +0 -0
  187. {MorphIO-2.7.1 → MorphIO-3.0.2}/3rdparty/lexertl/lexertl/parser/tree/leaf_node.hpp +0 -0
  188. {MorphIO-2.7.1 → MorphIO-3.0.2}/3rdparty/lexertl/lexertl/parser/tree/node.hpp +0 -0
  189. {MorphIO-2.7.1 → MorphIO-3.0.2}/3rdparty/lexertl/lexertl/parser/tree/selection_node.hpp +0 -0
  190. {MorphIO-2.7.1 → MorphIO-3.0.2}/3rdparty/lexertl/lexertl/parser/tree/sequence_node.hpp +0 -0
  191. {MorphIO-2.7.1 → MorphIO-3.0.2}/3rdparty/lexertl/lexertl/partition/charset.hpp +0 -0
  192. {MorphIO-2.7.1 → MorphIO-3.0.2}/3rdparty/lexertl/lexertl/partition/equivset.hpp +0 -0
  193. {MorphIO-2.7.1 → MorphIO-3.0.2}/3rdparty/lexertl/lexertl/rules.hpp +0 -0
  194. {MorphIO-2.7.1 → MorphIO-3.0.2}/3rdparty/lexertl/lexertl/runtime_error.hpp +0 -0
  195. {MorphIO-2.7.1 → MorphIO-3.0.2}/3rdparty/lexertl/lexertl/serialise.hpp +0 -0
  196. {MorphIO-2.7.1 → MorphIO-3.0.2}/3rdparty/lexertl/lexertl/size_t.hpp +0 -0
  197. {MorphIO-2.7.1 → MorphIO-3.0.2}/3rdparty/lexertl/lexertl/sm_to_csm.hpp +0 -0
  198. {MorphIO-2.7.1 → MorphIO-3.0.2}/3rdparty/lexertl/lexertl/sm_traits.hpp +0 -0
  199. {MorphIO-2.7.1 → MorphIO-3.0.2}/3rdparty/lexertl/lexertl/state_machine.hpp +0 -0
  200. {MorphIO-2.7.1 → MorphIO-3.0.2}/3rdparty/lexertl/lexertl/stream_shared_iterator.hpp +0 -0
  201. {MorphIO-2.7.1 → MorphIO-3.0.2}/3rdparty/lexertl/lexertl/string_token.hpp +0 -0
  202. {MorphIO-2.7.1 → MorphIO-3.0.2}/3rdparty/lexertl/lexertl/utf_iterators.hpp +0 -0
  203. {MorphIO-2.7.1 → MorphIO-3.0.2}/3rdparty/pybind11/CMakeLists.txt +0 -0
  204. {MorphIO-2.7.1 → MorphIO-3.0.2}/3rdparty/pybind11/include/pybind11/attr.h +0 -0
  205. {MorphIO-2.7.1 → MorphIO-3.0.2}/3rdparty/pybind11/include/pybind11/buffer_info.h +0 -0
  206. {MorphIO-2.7.1 → MorphIO-3.0.2}/3rdparty/pybind11/include/pybind11/cast.h +0 -0
  207. {MorphIO-2.7.1 → MorphIO-3.0.2}/3rdparty/pybind11/include/pybind11/chrono.h +0 -0
  208. {MorphIO-2.7.1 → MorphIO-3.0.2}/3rdparty/pybind11/include/pybind11/common.h +0 -0
  209. {MorphIO-2.7.1 → MorphIO-3.0.2}/3rdparty/pybind11/include/pybind11/complex.h +0 -0
  210. {MorphIO-2.7.1 → MorphIO-3.0.2}/3rdparty/pybind11/include/pybind11/detail/class.h +0 -0
  211. {MorphIO-2.7.1 → MorphIO-3.0.2}/3rdparty/pybind11/include/pybind11/detail/common.h +0 -0
  212. {MorphIO-2.7.1 → MorphIO-3.0.2}/3rdparty/pybind11/include/pybind11/detail/descr.h +0 -0
  213. {MorphIO-2.7.1 → MorphIO-3.0.2}/3rdparty/pybind11/include/pybind11/detail/init.h +0 -0
  214. {MorphIO-2.7.1 → MorphIO-3.0.2}/3rdparty/pybind11/include/pybind11/detail/internals.h +0 -0
  215. {MorphIO-2.7.1 → MorphIO-3.0.2}/3rdparty/pybind11/include/pybind11/detail/typeid.h +0 -0
  216. {MorphIO-2.7.1 → MorphIO-3.0.2}/3rdparty/pybind11/include/pybind11/eigen.h +0 -0
  217. {MorphIO-2.7.1 → MorphIO-3.0.2}/3rdparty/pybind11/include/pybind11/embed.h +0 -0
  218. {MorphIO-2.7.1 → MorphIO-3.0.2}/3rdparty/pybind11/include/pybind11/eval.h +0 -0
  219. {MorphIO-2.7.1 → MorphIO-3.0.2}/3rdparty/pybind11/include/pybind11/functional.h +0 -0
  220. {MorphIO-2.7.1 → MorphIO-3.0.2}/3rdparty/pybind11/include/pybind11/iostream.h +0 -0
  221. {MorphIO-2.7.1 → MorphIO-3.0.2}/3rdparty/pybind11/include/pybind11/numpy.h +0 -0
  222. {MorphIO-2.7.1 → MorphIO-3.0.2}/3rdparty/pybind11/include/pybind11/operators.h +0 -0
  223. {MorphIO-2.7.1 → MorphIO-3.0.2}/3rdparty/pybind11/include/pybind11/options.h +0 -0
  224. {MorphIO-2.7.1 → MorphIO-3.0.2}/3rdparty/pybind11/include/pybind11/pybind11.h +0 -0
  225. {MorphIO-2.7.1 → MorphIO-3.0.2}/3rdparty/pybind11/include/pybind11/pytypes.h +0 -0
  226. {MorphIO-2.7.1 → MorphIO-3.0.2}/3rdparty/pybind11/include/pybind11/stl.h +0 -0
  227. {MorphIO-2.7.1 → MorphIO-3.0.2}/3rdparty/pybind11/include/pybind11/stl_bind.h +0 -0
  228. {MorphIO-2.7.1 → MorphIO-3.0.2}/3rdparty/pybind11/tools/FindCatch.cmake +0 -0
  229. {MorphIO-2.7.1 → MorphIO-3.0.2}/3rdparty/pybind11/tools/FindEigen3.cmake +0 -0
  230. {MorphIO-2.7.1 → MorphIO-3.0.2}/3rdparty/pybind11/tools/FindPythonLibsNew.cmake +0 -0
  231. {MorphIO-2.7.1 → MorphIO-3.0.2}/3rdparty/pybind11/tools/check-style.sh +0 -0
  232. {MorphIO-2.7.1 → MorphIO-3.0.2}/3rdparty/pybind11/tools/libsize.py +0 -0
  233. {MorphIO-2.7.1 → MorphIO-3.0.2}/3rdparty/pybind11/tools/mkdoc.py +0 -0
  234. {MorphIO-2.7.1 → MorphIO-3.0.2}/3rdparty/pybind11/tools/pybind11Config.cmake.in +0 -0
  235. {MorphIO-2.7.1 → MorphIO-3.0.2}/3rdparty/pybind11/tools/pybind11Tools.cmake +0 -0
  236. {MorphIO-2.7.1 → MorphIO-3.0.2}/CHANGLOG.md +0 -0
  237. {MorphIO-2.7.1 → MorphIO-3.0.2}/CMake/CompilerFlags.cmake +0 -0
  238. {MorphIO-2.7.1 → MorphIO-3.0.2}/CMake/MorphIOConfig.cmake +0 -0
  239. {MorphIO-2.7.1 → MorphIO-3.0.2}/CONTRIBUTING.md +0 -0
  240. {MorphIO-2.7.1 → MorphIO-3.0.2}/COPYING +0 -0
  241. {MorphIO-2.7.1 → MorphIO-3.0.2}/COPYING.LESSER +0 -0
  242. {MorphIO-2.7.1 → MorphIO-3.0.2}/MANIFEST.in +0 -0
  243. {MorphIO-2.7.1 → MorphIO-3.0.2}/MorphIO.egg-info/dependency_links.txt +0 -0
  244. {MorphIO-2.7.1 → MorphIO-3.0.2}/MorphIO.egg-info/not-zip-safe +0 -0
  245. {MorphIO-2.7.1 → MorphIO-3.0.2}/MorphIO.egg-info/top_level.txt +0 -0
  246. {MorphIO-2.7.1 → MorphIO-3.0.2}/binds/python/CMakeLists.txt +0 -0
  247. {MorphIO-2.7.1 → MorphIO-3.0.2}/binds/python/bind_enums.h +0 -0
  248. {MorphIO-2.7.1 → MorphIO-3.0.2}/binds/python/bind_immutable.cpp +0 -0
  249. {MorphIO-2.7.1 → MorphIO-3.0.2}/binds/python/bind_immutable.h +0 -0
  250. {MorphIO-2.7.1 → MorphIO-3.0.2}/binds/python/bind_misc.h +0 -0
  251. {MorphIO-2.7.1 → MorphIO-3.0.2}/binds/python/bind_mutable.h +0 -0
  252. {MorphIO-2.7.1 → MorphIO-3.0.2}/binds/python/bind_vasculature.cpp +0 -0
  253. {MorphIO-2.7.1 → MorphIO-3.0.2}/binds/python/bind_vasculature.h +0 -0
  254. {MorphIO-2.7.1 → MorphIO-3.0.2}/binds/python/bindings_utils.cpp +0 -0
  255. {MorphIO-2.7.1 → MorphIO-3.0.2}/binds/python/bindings_utils.h +0 -0
  256. {MorphIO-2.7.1 → MorphIO-3.0.2}/binds/python/morphio.cpp +0 -0
  257. {MorphIO-2.7.1 → MorphIO-3.0.2}/ci/check_clang_format.sh +0 -0
  258. {MorphIO-2.7.1 → MorphIO-3.0.2}/ci/python_test.sh +0 -0
  259. /MorphIO-2.7.1/tests/__init__.py → /MorphIO-3.0.2/doc/source/doxygen/.gitignore +0 -0
  260. {MorphIO-2.7.1 → MorphIO-3.0.2}/examples/getting_started.ipynb +0 -0
  261. {MorphIO-2.7.1 → MorphIO-3.0.2}/examples/getting_started_mutable.ipynb +0 -0
  262. {MorphIO-2.7.1 → MorphIO-3.0.2}/include/morphio/endoplasmic_reticulum.h +0 -0
  263. {MorphIO-2.7.1 → MorphIO-3.0.2}/include/morphio/exceptions.h +0 -0
  264. {MorphIO-2.7.1 → MorphIO-3.0.2}/include/morphio/glial_cell.h +0 -0
  265. {MorphIO-2.7.1 → MorphIO-3.0.2}/include/morphio/mito_section.h +0 -0
  266. {MorphIO-2.7.1 → MorphIO-3.0.2}/include/morphio/mitochondria.h +0 -0
  267. {MorphIO-2.7.1 → MorphIO-3.0.2}/include/morphio/morphology.h +0 -0
  268. {MorphIO-2.7.1 → MorphIO-3.0.2}/include/morphio/mut/endoplasmic_reticulum.h +0 -0
  269. {MorphIO-2.7.1 → MorphIO-3.0.2}/include/morphio/mut/glial_cell.h +0 -0
  270. {MorphIO-2.7.1 → MorphIO-3.0.2}/include/morphio/mut/mito_section.h +0 -0
  271. {MorphIO-2.7.1 → MorphIO-3.0.2}/include/morphio/mut/mitochondria.h +0 -0
  272. {MorphIO-2.7.1 → MorphIO-3.0.2}/include/morphio/mut/modifiers.h +0 -0
  273. {MorphIO-2.7.1 → MorphIO-3.0.2}/include/morphio/mut/soma.h +0 -0
  274. {MorphIO-2.7.1 → MorphIO-3.0.2}/include/morphio/mut/writers.h +0 -0
  275. {MorphIO-2.7.1 → MorphIO-3.0.2}/include/morphio/properties.h +0 -0
  276. {MorphIO-2.7.1 → MorphIO-3.0.2}/include/morphio/section.h +0 -0
  277. {MorphIO-2.7.1 → MorphIO-3.0.2}/include/morphio/section_base.h +0 -0
  278. {MorphIO-2.7.1 → MorphIO-3.0.2}/include/morphio/section_base.tpp +0 -0
  279. {MorphIO-2.7.1 → MorphIO-3.0.2}/include/morphio/section_iterators.hpp +0 -0
  280. {MorphIO-2.7.1 → MorphIO-3.0.2}/include/morphio/soma.h +0 -0
  281. {MorphIO-2.7.1 → MorphIO-3.0.2}/include/morphio/tools.h +0 -0
  282. {MorphIO-2.7.1 → MorphIO-3.0.2}/include/morphio/types.h +0 -0
  283. {MorphIO-2.7.1 → MorphIO-3.0.2}/include/morphio/vasc/iterators.hpp +0 -0
  284. {MorphIO-2.7.1 → MorphIO-3.0.2}/include/morphio/vasc/section.h +0 -0
  285. {MorphIO-2.7.1 → MorphIO-3.0.2}/include/morphio/vasc/vasculature.h +0 -0
  286. {MorphIO-2.7.1 → MorphIO-3.0.2}/include/morphio/version.h +0 -0
  287. {MorphIO-2.7.1 → MorphIO-3.0.2}/morphio/mut/__init__.py +0 -0
  288. {MorphIO-2.7.1 → MorphIO-3.0.2}/morphio/vasculature/__init__.py +0 -0
  289. {MorphIO-2.7.1 → MorphIO-3.0.2}/scripts/check-clang-format-all +0 -0
  290. {MorphIO-2.7.1 → MorphIO-3.0.2}/setup.cfg +0 -0
  291. {MorphIO-2.7.1 → MorphIO-3.0.2}/src/endoplasmic_reticulum.cpp +0 -0
  292. {MorphIO-2.7.1 → MorphIO-3.0.2}/src/enums.cpp +0 -0
  293. {MorphIO-2.7.1 → MorphIO-3.0.2}/src/glial_cell.cpp +0 -0
  294. {MorphIO-2.7.1 → MorphIO-3.0.2}/src/mito_section.cpp +0 -0
  295. {MorphIO-2.7.1 → MorphIO-3.0.2}/src/mitochondria.cpp +0 -0
  296. {MorphIO-2.7.1 → MorphIO-3.0.2}/src/mut/endoplasmic_reticulum.cpp +0 -0
  297. {MorphIO-2.7.1 → MorphIO-3.0.2}/src/mut/glial_cell.cpp +0 -0
  298. {MorphIO-2.7.1 → MorphIO-3.0.2}/src/mut/mito_section.cpp +0 -0
  299. {MorphIO-2.7.1 → MorphIO-3.0.2}/src/mut/modifiers.cpp +0 -0
  300. {MorphIO-2.7.1 → MorphIO-3.0.2}/src/mut/writers.cpp +0 -0
  301. {MorphIO-2.7.1 → MorphIO-3.0.2}/src/readers/lex.cpp +0 -0
  302. {MorphIO-2.7.1 → MorphIO-3.0.2}/src/readers/morphologyASC.h +0 -0
  303. {MorphIO-2.7.1 → MorphIO-3.0.2}/src/readers/morphologyHDF5.h +0 -0
  304. {MorphIO-2.7.1 → MorphIO-3.0.2}/src/readers/morphologySWC.h +0 -0
  305. {MorphIO-2.7.1 → MorphIO-3.0.2}/src/readers/utilsHDF5.h +0 -0
  306. {MorphIO-2.7.1 → MorphIO-3.0.2}/src/readers/vasculatureHDF5.cpp +0 -0
  307. {MorphIO-2.7.1 → MorphIO-3.0.2}/src/readers/vasculatureHDF5.h +0 -0
  308. {MorphIO-2.7.1 → MorphIO-3.0.2}/src/section.cpp +0 -0
  309. {MorphIO-2.7.1 → MorphIO-3.0.2}/src/vasc/section.cpp +0 -0
  310. {MorphIO-2.7.1 → MorphIO-3.0.2}/src/vasc/vasculature.cpp +0 -0
  311. {MorphIO-2.7.1 → MorphIO-3.0.2}/src/version.cpp.in +0 -0
  312. {MorphIO-2.7.1 → MorphIO-3.0.2}/tests/contrib/catch.hpp +0 -0
  313. {MorphIO-2.7.1 → MorphIO-3.0.2}/tests/data/astrocyte.h5 +0 -0
  314. {MorphIO-2.7.1 → MorphIO-3.0.2}/tests/data/circle_contour.asc +0 -0
  315. {MorphIO-2.7.1 → MorphIO-3.0.2}/tests/data/complexe.swc +0 -0
  316. {MorphIO-2.7.1 → MorphIO-3.0.2}/tests/data/disconnected_neurite.swc +0 -0
  317. {MorphIO-2.7.1 → MorphIO-3.0.2}/tests/data/h5/merged.h5 +0 -0
  318. {MorphIO-2.7.1 → MorphIO-3.0.2}/tests/data/h5/v1/Neuron.h5 +0 -0
  319. {MorphIO-2.7.1 → MorphIO-3.0.2}/tests/data/h5/v1/endoplasmic-reticulum.h5 +0 -0
  320. {MorphIO-2.7.1 → MorphIO-3.0.2}/tests/data/h5/v1/mitochondria.h5 +0 -0
  321. {MorphIO-2.7.1 → MorphIO-3.0.2}/tests/data/h5/v1/monodim.h5 +0 -0
  322. {MorphIO-2.7.1 → MorphIO-3.0.2}/tests/data/h5/v1/simple-negative-section-type.h5 +0 -0
  323. {MorphIO-2.7.1 → MorphIO-3.0.2}/tests/data/h5/v1/simple.h5 +0 -0
  324. {MorphIO-2.7.1 → MorphIO-3.0.2}/tests/data/h5/v1/soma_no_neurites.h5 +0 -0
  325. {MorphIO-2.7.1 → MorphIO-3.0.2}/tests/data/h5/v1/two_child_unmerged.h5 +0 -0
  326. {MorphIO-2.7.1 → MorphIO-3.0.2}/tests/data/h5/v2/Neuron.h5 +0 -0
  327. {MorphIO-2.7.1 → MorphIO-3.0.2}/tests/data/h5/vasculature-broken-section-type.h5 +0 -0
  328. {MorphIO-2.7.1 → MorphIO-3.0.2}/tests/data/h5/vasculature1.h5 +0 -0
  329. {MorphIO-2.7.1 → MorphIO-3.0.2}/tests/data/h5/vasculature2.h5 +0 -0
  330. {MorphIO-2.7.1 → MorphIO-3.0.2}/tests/data/iterators.asc +0 -0
  331. {MorphIO-2.7.1 → MorphIO-3.0.2}/tests/data/marker-with-string.asc +0 -0
  332. {MorphIO-2.7.1 → MorphIO-3.0.2}/tests/data/mono-type.asc +0 -0
  333. {MorphIO-2.7.1 → MorphIO-3.0.2}/tests/data/multiple_point_section.asc +0 -0
  334. {MorphIO-2.7.1 → MorphIO-3.0.2}/tests/data/multiple_soma.swc +0 -0
  335. {MorphIO-2.7.1 → MorphIO-3.0.2}/tests/data/nested_single_children.asc +0 -0
  336. {MorphIO-2.7.1 → MorphIO-3.0.2}/tests/data/neurite_wrong_root_point.swc +0 -0
  337. {MorphIO-2.7.1 → MorphIO-3.0.2}/tests/data/nrn-order-already-sorted.h5 +0 -0
  338. {MorphIO-2.7.1 → MorphIO-3.0.2}/tests/data/nrn_ordering.swc +0 -0
  339. {MorphIO-2.7.1 → MorphIO-3.0.2}/tests/data/pia.asc +0 -0
  340. {MorphIO-2.7.1 → MorphIO-3.0.2}/tests/data/reversed_NRN_neurite_order.swc +0 -0
  341. {MorphIO-2.7.1 → MorphIO-3.0.2}/tests/data/sections-block.asc +0 -0
  342. {MorphIO-2.7.1 → MorphIO-3.0.2}/tests/data/simple-with-font.asc +0 -0
  343. {MorphIO-2.7.1 → MorphIO-3.0.2}/tests/data/simple-with-image-coord.asc +0 -0
  344. {MorphIO-2.7.1 → MorphIO-3.0.2}/tests/data/simple.asc +0 -0
  345. {MorphIO-2.7.1 → MorphIO-3.0.2}/tests/data/simple.swc +0 -0
  346. {MorphIO-2.7.1 → MorphIO-3.0.2}/tests/data/simple2.asc +0 -0
  347. {MorphIO-2.7.1 → MorphIO-3.0.2}/tests/data/soma_cylinders.swc +0 -0
  348. {MorphIO-2.7.1 → MorphIO-3.0.2}/tests/data/soma_multiple_frustums.swc +0 -0
  349. {MorphIO-2.7.1 → MorphIO-3.0.2}/tests/data/soma_single_frustum.swc +0 -0
  350. {MorphIO-2.7.1 → MorphIO-3.0.2}/tests/data/soma_three_points_cylinder.swc +0 -0
  351. {MorphIO-2.7.1 → MorphIO-3.0.2}/tests/data/spine.asc +0 -0
  352. {MorphIO-2.7.1 → MorphIO-3.0.2}/tests/data/three_point_soma.swc +0 -0
  353. {MorphIO-2.7.1 → MorphIO-3.0.2}/tests/main.cpp +0 -0
  354. {MorphIO-2.7.1 → MorphIO-3.0.2}/tests/requirement_tests.txt +0 -0
  355. {MorphIO-2.7.1 → MorphIO-3.0.2}/tests/test_10_vasculature.py +0 -0
  356. {MorphIO-2.7.1 → MorphIO-3.0.2}/tests/test_4_immut.py +0 -0
  357. {MorphIO-2.7.1 → MorphIO-3.0.2}/tests/test_7_modifiers.py +0 -0
  358. {MorphIO-2.7.1 → MorphIO-3.0.2}/tests/test_8_all_morphologies.py +0 -0
  359. {MorphIO-2.7.1 → MorphIO-3.0.2}/tests/test_9_surfaces.py +0 -0
  360. {MorphIO-2.7.1 → MorphIO-3.0.2}/tests/utils.py +0 -0
@@ -0,0 +1,29 @@
1
+ name: coverage-test
2
+ on: [pull_request, push]
3
+ env:
4
+ CC: gcc-9
5
+ CXX: g++-9
6
+
7
+ jobs:
8
+ build:
9
+ name: coverage-test
10
+ runs-on: ubuntu-20.04
11
+ # Run on external PRs, but not internal PRs as they'll be run by the push
12
+ if: github.event_name == 'push' || github.event.pull_request.head.repo.full_name != github.repository
13
+
14
+ steps:
15
+ - name: Checkout repository
16
+ uses: actions/checkout@v2
17
+ - name: Fetch repository
18
+ run: git fetch --prune --unshallow
19
+ - name: Get submodules
20
+ run: git submodule update --init --force --recursive
21
+ - name: Install packages
22
+ run: sudo apt-get update && sudo apt-get install build-essential libhdf5-dev lcov
23
+ - name: Build and run unittests
24
+ run: ci/coverage_test.sh
25
+ - name: Upload Coverage to Coveralls
26
+ uses: coverallsapp/github-action@master
27
+ with:
28
+ github-token: ${{ secrets.GITHUB_TOKEN }}
29
+ path-to-lcov: build/build-coverage/coverage.info.cleaned
@@ -0,0 +1,22 @@
1
+ name: docstring-check
2
+ on:
3
+ push:
4
+
5
+ jobs:
6
+ build:
7
+ name: docstring-check
8
+ runs-on: ubuntu-18.04
9
+ steps:
10
+ - name: Fetch repository
11
+ uses: actions/checkout@v2
12
+ with:
13
+ submodules: recursive
14
+ - name: Install packages
15
+ run: sudo apt-get update && sudo apt-get install build-essential libhdf5-dev python3-venv libclang1-9
16
+ - name: Check docstrings
17
+ run: |
18
+ export LIBCLANG_PATH=/usr/lib/x86_64-linux-gnu/libclang-9.so.1
19
+ ci/check_generated_docstrings.sh || true
20
+
21
+ export LIBCLANG_PATH=libLLVM-10.so.1
22
+ ci/check_generated_docstrings.sh || true
@@ -43,3 +43,7 @@ MorphIO.egg-info/
43
43
  .tags
44
44
  build/
45
45
  .*.swp
46
+ *.idea
47
+ ci/venv*
48
+ cmake-build*
49
+ env*
@@ -0,0 +1,13 @@
1
+ # .readthedocs.yml
2
+ # Read the Docs configuration file
3
+ # See https://docs.readthedocs.io/en/stable/config-file/v2.html for details
4
+
5
+ # Required
6
+ version: 2
7
+
8
+ submodules:
9
+ include: all
10
+ recursive: true
11
+
12
+ conda:
13
+ environment: doc/environment.yml
@@ -0,0 +1,303 @@
1
+ # Copyright (c) 2012 - 2017, Lars Bilke
2
+ # All rights reserved.
3
+ #
4
+ # Redistribution and use in source and binary forms, with or without modification,
5
+ # are permitted provided that the following conditions are met:
6
+ #
7
+ # 1. Redistributions of source code must retain the above copyright notice, this
8
+ # list of conditions and the following disclaimer.
9
+ #
10
+ # 2. Redistributions in binary form must reproduce the above copyright notice,
11
+ # this list of conditions and the following disclaimer in the documentation
12
+ # and/or other materials provided with the distribution.
13
+ #
14
+ # 3. Neither the name of the copyright holder nor the names of its contributors
15
+ # may be used to endorse or promote products derived from this software without
16
+ # specific prior written permission.
17
+ #
18
+ # THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS" AND
19
+ # ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED
20
+ # WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE
21
+ # DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT HOLDER OR CONTRIBUTORS BE LIABLE FOR
22
+ # ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES
23
+ # (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES;
24
+ # LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON
25
+ # ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT
26
+ # (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS
27
+ # SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
28
+ #
29
+ # CHANGES:
30
+ #
31
+ # 2012-01-31, Lars Bilke
32
+ # - Enable Code Coverage
33
+ #
34
+ # 2013-09-17, Joakim Söderberg
35
+ # - Added support for Clang.
36
+ # - Some additional usage instructions.
37
+ #
38
+ # 2016-02-03, Lars Bilke
39
+ # - Refactored functions to use named parameters
40
+ #
41
+ # 2017-06-02, Lars Bilke
42
+ # - Merged with modified version from github.com/ufz/ogs
43
+ #
44
+ #
45
+ # USAGE:
46
+ #
47
+ # 1. Copy this file into your cmake modules path.
48
+ #
49
+ # 2. Add the following line to your CMakeLists.txt:
50
+ # include(CodeCoverage)
51
+ #
52
+ # 3. Append necessary compiler flags:
53
+ # APPEND_COVERAGE_COMPILER_FLAGS()
54
+ #
55
+ # 4. If you need to exclude additional directories from the report, specify them
56
+ # using the COVERAGE_LCOV_EXCLUDES variable before calling SETUP_TARGET_FOR_COVERAGE_LCOV.
57
+ # Example:
58
+ # set(COVERAGE_LCOV_EXCLUDES 'dir1/*' 'dir2/*')
59
+ #
60
+ # 5. Use the functions described below to create a custom make target which
61
+ # runs your test executable and produces a code coverage report.
62
+ #
63
+ # 6. Build a Debug build:
64
+ # cmake -DCMAKE_BUILD_TYPE=Debug ..
65
+ # make
66
+ # make my_coverage_target
67
+ #
68
+
69
+ include(CMakeParseArguments)
70
+
71
+ # Check prereqs
72
+ find_program( GCOV_PATH gcov )
73
+ find_program( LCOV_PATH NAMES lcov lcov.bat lcov.exe lcov.perl)
74
+ find_program( GENHTML_PATH NAMES genhtml genhtml.perl genhtml.bat )
75
+ find_program( GCOVR_PATH gcovr PATHS ${CMAKE_SOURCE_DIR}/scripts/test)
76
+ find_program( SIMPLE_PYTHON_EXECUTABLE python )
77
+
78
+ if(NOT GCOV_PATH)
79
+ message(FATAL_ERROR "gcov not found! Aborting...")
80
+ endif() # NOT GCOV_PATH
81
+
82
+ if("${CMAKE_CXX_COMPILER_ID}" MATCHES "(Apple)?[Cc]lang")
83
+ if("${CMAKE_CXX_COMPILER_VERSION}" VERSION_LESS 3)
84
+ message(FATAL_ERROR "Clang version must be 3.0.0 or greater! Aborting...")
85
+ endif()
86
+ elseif(NOT CMAKE_COMPILER_IS_GNUCXX)
87
+ message(FATAL_ERROR "Compiler is not GNU gcc! Aborting...")
88
+ endif()
89
+
90
+ set(COVERAGE_COMPILER_FLAGS "-g -O0 --coverage -fprofile-arcs -ftest-coverage"
91
+ CACHE INTERNAL "")
92
+
93
+ set(CMAKE_CXX_FLAGS_COVERAGE
94
+ ${COVERAGE_COMPILER_FLAGS}
95
+ CACHE STRING "Flags used by the C++ compiler during coverage builds."
96
+ FORCE )
97
+ set(CMAKE_C_FLAGS_COVERAGE
98
+ ${COVERAGE_COMPILER_FLAGS}
99
+ CACHE STRING "Flags used by the C compiler during coverage builds."
100
+ FORCE )
101
+ set(CMAKE_EXE_LINKER_FLAGS_COVERAGE
102
+ ""
103
+ CACHE STRING "Flags used for linking binaries during coverage builds."
104
+ FORCE )
105
+ set(CMAKE_SHARED_LINKER_FLAGS_COVERAGE
106
+ ""
107
+ CACHE STRING "Flags used by the shared libraries linker during coverage builds."
108
+ FORCE )
109
+ mark_as_advanced(
110
+ CMAKE_CXX_FLAGS_COVERAGE
111
+ CMAKE_C_FLAGS_COVERAGE
112
+ CMAKE_EXE_LINKER_FLAGS_COVERAGE
113
+ CMAKE_SHARED_LINKER_FLAGS_COVERAGE )
114
+
115
+ if(NOT CMAKE_BUILD_TYPE STREQUAL "Debug")
116
+ message(WARNING "Code coverage results with an optimised (non-Debug) build may be misleading")
117
+ endif() # NOT CMAKE_BUILD_TYPE STREQUAL "Debug"
118
+
119
+ if(CMAKE_C_COMPILER_ID STREQUAL "GNU")
120
+ link_libraries(gcov)
121
+ else()
122
+ set(CMAKE_EXE_LINKER_FLAGS "${CMAKE_EXE_LINKER_FLAGS} --coverage")
123
+ endif()
124
+
125
+ # Defines a target for running and collection code coverage information
126
+ # Builds dependencies, runs the given executable and outputs reports.
127
+ # NOTE! The executable should always have a ZERO as exit code otherwise
128
+ # the coverage generation will not complete.
129
+ #
130
+ # SETUP_TARGET_FOR_COVERAGE_LCOV(
131
+ # NAME testrunner_coverage # New target name
132
+ # EXECUTABLE testrunner -j ${PROCESSOR_COUNT} # Executable in PROJECT_BINARY_DIR
133
+ # DEPENDENCIES testrunner # Dependencies to build first
134
+ # )
135
+ function(SETUP_TARGET_FOR_COVERAGE_LCOV)
136
+
137
+ set(options NONE)
138
+ set(oneValueArgs NAME)
139
+ set(multiValueArgs EXECUTABLE EXECUTABLE_ARGS DEPENDENCIES)
140
+ cmake_parse_arguments(Coverage "${options}" "${oneValueArgs}" "${multiValueArgs}" ${ARGN})
141
+
142
+ if(NOT LCOV_PATH)
143
+ message(FATAL_ERROR "lcov not found! Aborting...")
144
+ endif() # NOT LCOV_PATH
145
+
146
+ if(NOT GENHTML_PATH)
147
+ message(FATAL_ERROR "genhtml not found! Aborting...")
148
+ endif() # NOT GENHTML_PATH
149
+
150
+ # Setup target
151
+ add_custom_target(${Coverage_NAME}
152
+
153
+ # Cleanup lcov
154
+ COMMAND ${LCOV_PATH} --gcov-tool ${GCOV_PATH} -directory . --zerocounters
155
+ # Create baseline to make sure untouched files show up in the report
156
+ COMMAND ${LCOV_PATH} --gcov-tool ${GCOV_PATH} -c -i -d . -o ${Coverage_NAME}.base
157
+
158
+ # Run tests
159
+ COMMAND ${Coverage_EXECUTABLE}
160
+
161
+ # Capturing lcov counters and generating report
162
+ COMMAND ${LCOV_PATH} --gcov-tool ${GCOV_PATH} --directory . --capture --output-file ${Coverage_NAME}.info
163
+ # add baseline counters
164
+ COMMAND ${LCOV_PATH} --gcov-tool ${GCOV_PATH} -a ${Coverage_NAME}.base -a ${Coverage_NAME}.info --output-file ${Coverage_NAME}.total
165
+ COMMAND ${LCOV_PATH} --gcov-tool ${GCOV_PATH} --remove ${Coverage_NAME}.total ${COVERAGE_LCOV_EXCLUDES} --output-file ${PROJECT_BINARY_DIR}/${Coverage_NAME}.info.cleaned
166
+ COMMAND ${GENHTML_PATH} -o ${Coverage_NAME} ${PROJECT_BINARY_DIR}/${Coverage_NAME}.info.cleaned
167
+ COMMAND ${CMAKE_COMMAND} -E remove ${Coverage_NAME}.base ${Coverage_NAME}.total
168
+
169
+ WORKING_DIRECTORY ${PROJECT_BINARY_DIR}
170
+ DEPENDS ${Coverage_DEPENDENCIES}
171
+ COMMENT "Resetting code coverage counters to zero.\nProcessing code coverage counters and generating report."
172
+ )
173
+
174
+ # Show where to find the lcov info report
175
+ add_custom_command(TARGET ${Coverage_NAME} POST_BUILD
176
+ COMMAND ;
177
+ COMMENT "Lcov code coverage info report saved in ${Coverage_NAME}.info."
178
+ )
179
+
180
+ # Show info where to find the report
181
+ add_custom_command(TARGET ${Coverage_NAME} POST_BUILD
182
+ COMMAND ;
183
+ COMMENT "Open ./${Coverage_NAME}/index.html in your browser to view the coverage report."
184
+ )
185
+
186
+ endfunction() # SETUP_TARGET_FOR_COVERAGE_LCOV
187
+
188
+ # Defines a target for running and collection code coverage information
189
+ # Builds dependencies, runs the given executable and outputs reports.
190
+ # NOTE! The executable should always have a ZERO as exit code otherwise
191
+ # the coverage generation will not complete.
192
+ #
193
+ # SETUP_TARGET_FOR_COVERAGE_GCOVR_XML(
194
+ # NAME ctest_coverage # New target name
195
+ # EXECUTABLE ctest -j ${PROCESSOR_COUNT} # Executable in PROJECT_BINARY_DIR
196
+ # DEPENDENCIES executable_target # Dependencies to build first
197
+ # )
198
+ function(SETUP_TARGET_FOR_COVERAGE_GCOVR_XML)
199
+
200
+ set(options NONE)
201
+ set(oneValueArgs NAME)
202
+ set(multiValueArgs EXECUTABLE EXECUTABLE_ARGS DEPENDENCIES)
203
+ cmake_parse_arguments(Coverage "${options}" "${oneValueArgs}" "${multiValueArgs}" ${ARGN})
204
+
205
+ if(NOT SIMPLE_PYTHON_EXECUTABLE)
206
+ message(FATAL_ERROR "python not found! Aborting...")
207
+ endif() # NOT SIMPLE_PYTHON_EXECUTABLE
208
+
209
+ if(NOT GCOVR_PATH)
210
+ message(FATAL_ERROR "gcovr not found! Aborting...")
211
+ endif() # NOT GCOVR_PATH
212
+
213
+ # Combine excludes to several -e arguments
214
+ set(GCOVR_EXCLUDES "")
215
+ foreach(EXCLUDE ${COVERAGE_GCOVR_EXCLUDES})
216
+ list(APPEND GCOVR_EXCLUDES "-e")
217
+ list(APPEND GCOVR_EXCLUDES "${EXCLUDE}")
218
+ endforeach()
219
+
220
+ add_custom_target(${Coverage_NAME}
221
+ # Run tests
222
+ ${Coverage_EXECUTABLE}
223
+
224
+ # Running gcovr
225
+ COMMAND ${GCOVR_PATH} --xml
226
+ -r ${PROJECT_SOURCE_DIR} ${GCOVR_EXCLUDES}
227
+ --object-directory=${PROJECT_BINARY_DIR}
228
+ -o ${Coverage_NAME}.xml
229
+ WORKING_DIRECTORY ${PROJECT_BINARY_DIR}
230
+ DEPENDS ${Coverage_DEPENDENCIES}
231
+ COMMENT "Running gcovr to produce Cobertura code coverage report."
232
+ )
233
+
234
+ # Show info where to find the report
235
+ add_custom_command(TARGET ${Coverage_NAME} POST_BUILD
236
+ COMMAND ;
237
+ COMMENT "Cobertura code coverage report saved in ${Coverage_NAME}.xml."
238
+ )
239
+
240
+ endfunction() # SETUP_TARGET_FOR_COVERAGE_GCOVR_XML
241
+
242
+ # Defines a target for running and collection code coverage information
243
+ # Builds dependencies, runs the given executable and outputs reports.
244
+ # NOTE! The executable should always have a ZERO as exit code otherwise
245
+ # the coverage generation will not complete.
246
+ #
247
+ # SETUP_TARGET_FOR_COVERAGE_GCOVR_HTML(
248
+ # NAME ctest_coverage # New target name
249
+ # EXECUTABLE ctest -j ${PROCESSOR_COUNT} # Executable in PROJECT_BINARY_DIR
250
+ # DEPENDENCIES executable_target # Dependencies to build first
251
+ # )
252
+ function(SETUP_TARGET_FOR_COVERAGE_GCOVR_HTML)
253
+
254
+ set(options NONE)
255
+ set(oneValueArgs NAME)
256
+ set(multiValueArgs EXECUTABLE EXECUTABLE_ARGS DEPENDENCIES)
257
+ cmake_parse_arguments(Coverage "${options}" "${oneValueArgs}" "${multiValueArgs}" ${ARGN})
258
+
259
+ if(NOT SIMPLE_PYTHON_EXECUTABLE)
260
+ message(FATAL_ERROR "python not found! Aborting...")
261
+ endif() # NOT SIMPLE_PYTHON_EXECUTABLE
262
+
263
+ if(NOT GCOVR_PATH)
264
+ message(FATAL_ERROR "gcovr not found! Aborting...")
265
+ endif() # NOT GCOVR_PATH
266
+
267
+ # Combine excludes to several -e arguments
268
+ set(GCOVR_EXCLUDES "")
269
+ foreach(EXCLUDE ${COVERAGE_GCOVR_EXCLUDES})
270
+ list(APPEND GCOVR_EXCLUDES "-e")
271
+ list(APPEND GCOVR_EXCLUDES "${EXCLUDE}")
272
+ endforeach()
273
+
274
+ add_custom_target(${Coverage_NAME}
275
+ # Run tests
276
+ ${Coverage_EXECUTABLE}
277
+
278
+ # Create folder
279
+ COMMAND ${CMAKE_COMMAND} -E make_directory ${PROJECT_BINARY_DIR}/${Coverage_NAME}
280
+
281
+ # Running gcovr
282
+ COMMAND ${GCOVR_PATH} --html --html-details
283
+ -r ${PROJECT_SOURCE_DIR} ${GCOVR_EXCLUDES}
284
+ --object-directory=${PROJECT_BINARY_DIR}
285
+ -o ${Coverage_NAME}/index.html
286
+ WORKING_DIRECTORY ${PROJECT_BINARY_DIR}
287
+ DEPENDS ${Coverage_DEPENDENCIES}
288
+ COMMENT "Running gcovr to produce HTML code coverage report."
289
+ )
290
+
291
+ # Show info where to find the report
292
+ add_custom_command(TARGET ${Coverage_NAME} POST_BUILD
293
+ COMMAND ;
294
+ COMMENT "Open ./${Coverage_NAME}/index.html in your browser to view the coverage report."
295
+ )
296
+
297
+ endfunction() # SETUP_TARGET_FOR_COVERAGE_GCOVR_HTML
298
+
299
+ function(APPEND_COVERAGE_COMPILER_FLAGS)
300
+ set(CMAKE_C_FLAGS "${CMAKE_C_FLAGS} ${COVERAGE_COMPILER_FLAGS}")
301
+ set(CMAKE_CXX_FLAGS "${CMAKE_CXX_FLAGS} ${COVERAGE_COMPILER_FLAGS}")
302
+ message(STATUS "Appending code coverage compiler flags: ${COVERAGE_COMPILER_FLAGS}")
303
+ endfunction() # APPEND_COVERAGE_COMPILER_FLAGS
@@ -8,8 +8,14 @@ set(CMAKE_VERBOSE_MAKEFILE ON)
8
8
  option(BUILD_BINDINGS "Build the python bindings" ON)
9
9
  option(MorphIO_CXX_WARNINGS "Compile C++ with warnings" ON)
10
10
  option(EXTERNAL_HIGHFIVE "Use HighFive from external source" OFF)
11
+ option(MORPHIO_TESTS "Build tests" ON)
11
12
  option(MORPHIO_USE_DOUBLE "Use doubles instead of floats" OFF)
12
13
 
14
+ set(MORPHIO_ENABLE_COVERAGE OFF)
15
+ if (CMAKE_BUILD_TYPE STREQUAL "Debug")
16
+ set(MORPHIO_ENABLE_COVERAGE ON)
17
+ endif()
18
+
13
19
  if(MORPHIO_USE_DOUBLE)
14
20
  add_definitions(-DMORPHIO_USE_DOUBLE)
15
21
  message("Floating Point Type: double")
@@ -17,7 +23,8 @@ else()
17
23
  message("Floating Point Type: float")
18
24
  endif()
19
25
 
20
- include(${PROJECT_SOURCE_DIR}/CMake/CompilerFlags.cmake)
26
+ set(CMAKE_MODULE_PATH ${PROJECT_SOURCE_DIR}/CMake)
27
+ include(CompilerFlags)
21
28
  set(CMAKE_CXX_FLAGS "${FLAGS}")
22
29
 
23
30
  if (EXTERNAL_HIGHFIVE)
@@ -48,5 +55,8 @@ install(
48
55
  DESTINATION lib/cmake/MorphIO
49
56
  )
50
57
 
51
- enable_testing()
52
- add_subdirectory(tests)
58
+
59
+ if (MORPHIO_TESTS)
60
+ enable_testing()
61
+ add_subdirectory(tests)
62
+ endif()