morphio 3.2.0__tar.gz → 3.3.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 (394) hide show
  1. {MorphIO-3.2.0 → MorphIO-3.3.2}/.github/workflows/check-sdist.yml +4 -0
  2. {MorphIO-3.2.0 → MorphIO-3.3.2}/.github/workflows/clang_format_check.yaml +4 -0
  3. MorphIO-3.3.2/.github/workflows/coverage_test.yaml +31 -0
  4. MorphIO-3.3.2/.github/workflows/docstring_check.yaml +25 -0
  5. {MorphIO-3.2.0 → MorphIO-3.3.2}/.github/workflows/publish-sdist-wheels.yml +49 -21
  6. {MorphIO-3.2.0 → MorphIO-3.3.2}/.github/workflows/run-tests.yml +3 -0
  7. MorphIO-3.3.2/.readthedocs.yaml +21 -0
  8. MorphIO-3.3.2/AUTHORS.txt +28 -0
  9. MorphIO-3.3.2/CHANGELOG.md +21 -0
  10. {MorphIO-3.2.0 → MorphIO-3.3.2}/CMake/CompilerFlags.cmake +12 -2
  11. {MorphIO-3.2.0 → MorphIO-3.3.2/MorphIO.egg-info}/PKG-INFO +3 -3
  12. {MorphIO-3.2.0 → MorphIO-3.3.2}/MorphIO.egg-info/SOURCES.txt +12 -2
  13. {MorphIO-3.2.0/MorphIO.egg-info → MorphIO-3.3.2}/PKG-INFO +3 -3
  14. {MorphIO-3.2.0 → MorphIO-3.3.2}/binds/python/bind_immutable.cpp +119 -10
  15. {MorphIO-3.2.0 → MorphIO-3.3.2}/binds/python/bind_misc.cpp +33 -16
  16. {MorphIO-3.2.0 → MorphIO-3.3.2}/binds/python/bind_mutable.cpp +59 -15
  17. {MorphIO-3.2.0 → MorphIO-3.3.2}/binds/python/bind_vasculature.cpp +3 -2
  18. MorphIO-3.3.2/ci/python_test.sh +42 -0
  19. {MorphIO-3.2.0 → MorphIO-3.3.2}/doc/environment.yml +1 -2
  20. {MorphIO-3.2.0 → MorphIO-3.3.2}/doc/source/markers.rst +52 -33
  21. MorphIO-3.3.2/doc/source/warnings.rst +87 -0
  22. MorphIO-3.3.2/include/morphio/dendritic_spine.h +33 -0
  23. MorphIO-3.3.2/include/morphio/enums.h +111 -0
  24. {MorphIO-3.2.0 → MorphIO-3.3.2}/include/morphio/errorMessages.h +67 -9
  25. {MorphIO-3.2.0 → MorphIO-3.3.2}/include/morphio/exceptions.h +2 -3
  26. {MorphIO-3.2.0 → MorphIO-3.3.2}/include/morphio/glial_cell.h +2 -0
  27. {MorphIO-3.2.0 → MorphIO-3.3.2}/include/morphio/mito_section.h +1 -0
  28. {MorphIO-3.2.0 → MorphIO-3.3.2}/include/morphio/mitochondria.h +3 -3
  29. {MorphIO-3.2.0 → MorphIO-3.3.2}/include/morphio/morphology.h +25 -43
  30. MorphIO-3.3.2/include/morphio/mut/dendritic_spine.h +22 -0
  31. {MorphIO-3.2.0 → MorphIO-3.3.2}/include/morphio/mut/endoplasmic_reticulum.h +1 -5
  32. {MorphIO-3.2.0 → MorphIO-3.3.2}/include/morphio/mut/glial_cell.h +1 -0
  33. {MorphIO-3.2.0 → MorphIO-3.3.2}/include/morphio/mut/mito_section.h +1 -0
  34. {MorphIO-3.2.0 → MorphIO-3.3.2}/include/morphio/mut/mitochondria.h +1 -8
  35. {MorphIO-3.2.0 → MorphIO-3.3.2}/include/morphio/mut/modifiers.h +2 -1
  36. {MorphIO-3.2.0 → MorphIO-3.3.2}/include/morphio/mut/morphology.h +3 -0
  37. {MorphIO-3.2.0 → MorphIO-3.3.2}/include/morphio/mut/section.h +1 -0
  38. {MorphIO-3.2.0 → MorphIO-3.3.2}/include/morphio/mut/soma.h +1 -0
  39. {MorphIO-3.2.0 → MorphIO-3.3.2}/include/morphio/mut/writers.h +3 -0
  40. {MorphIO-3.2.0 → MorphIO-3.3.2}/include/morphio/properties.h +62 -23
  41. {MorphIO-3.2.0 → MorphIO-3.3.2}/include/morphio/section.h +5 -8
  42. {MorphIO-3.2.0 → MorphIO-3.3.2}/include/morphio/section_base.h +1 -0
  43. {MorphIO-3.2.0 → MorphIO-3.3.2}/include/morphio/section_base.tpp +1 -0
  44. {MorphIO-3.2.0 → MorphIO-3.3.2}/include/morphio/types.h +7 -0
  45. {MorphIO-3.2.0 → MorphIO-3.3.2}/include/morphio/vasc/properties.h +8 -6
  46. {MorphIO-3.2.0 → MorphIO-3.3.2}/include/morphio/vasc/section.h +1 -0
  47. {MorphIO-3.2.0 → MorphIO-3.3.2}/include/morphio/vasc/vasculature.h +10 -3
  48. {MorphIO-3.2.0 → MorphIO-3.3.2}/include/morphio/vector_types.h +4 -0
  49. {MorphIO-3.2.0 → MorphIO-3.3.2}/morphio/__init__.py +14 -1
  50. MorphIO-3.3.2/morphio/mut/__init__.py +9 -0
  51. MorphIO-3.3.2/pyproject.toml +2 -0
  52. MorphIO-3.3.2/setup.py +100 -0
  53. {MorphIO-3.2.0 → MorphIO-3.3.2}/src/CMakeLists.txt +2 -0
  54. MorphIO-3.3.2/src/dendritic_spine.cpp +17 -0
  55. MorphIO-3.3.2/src/mut/dendritic_spine.cpp +31 -0
  56. {MorphIO-3.2.0 → MorphIO-3.3.2}/src/mut/morphology.cpp +13 -14
  57. {MorphIO-3.2.0 → MorphIO-3.3.2}/src/mut/section.cpp +3 -1
  58. {MorphIO-3.2.0 → MorphIO-3.3.2}/src/mut/writers.cpp +28 -2
  59. {MorphIO-3.2.0 → MorphIO-3.3.2}/src/properties.cpp +0 -13
  60. {MorphIO-3.2.0 → MorphIO-3.3.2}/src/readers/lex.cpp +4 -4
  61. {MorphIO-3.2.0 → MorphIO-3.3.2}/src/readers/morphologyASC.cpp +42 -4
  62. {MorphIO-3.2.0 → MorphIO-3.3.2}/src/readers/morphologyHDF5.cpp +52 -8
  63. {MorphIO-3.2.0 → MorphIO-3.3.2}/src/readers/morphologyHDF5.h +1 -1
  64. MorphIO-3.2.0/tests/data/h5/v1/h5v1.3.h5 → MorphIO-3.3.2/tests/data/h5/v1/h5v1.4.h5 +0 -0
  65. MorphIO-3.3.2/tests/data/h5/v1/make-dendritic-spine.py +35 -0
  66. MorphIO-3.3.2/tests/data/h5/v1/simple-dendritric-spine.h5 +0 -0
  67. MorphIO-3.3.2/tests/data/invalid-incomplete.asc +22 -0
  68. MorphIO-3.3.2/tests/data/markers.asc +42 -0
  69. {MorphIO-3.2.0 → MorphIO-3.3.2}/tests/requirement_tests.txt +0 -1
  70. {MorphIO-3.2.0 → MorphIO-3.3.2}/tests/test_0_API.py +2 -2
  71. {MorphIO-3.2.0 → MorphIO-3.3.2}/tests/test_1_swc.py +98 -76
  72. {MorphIO-3.2.0 → MorphIO-3.3.2}/tests/test_2_neurolucida.py +253 -210
  73. {MorphIO-3.2.0 → MorphIO-3.3.2}/tests/test_4_immut.py +55 -2
  74. {MorphIO-3.2.0 → MorphIO-3.3.2}/tests/test_5_mut.py +86 -20
  75. {MorphIO-3.2.0 → MorphIO-3.3.2}/tests/test_6_writers.py +13 -12
  76. {MorphIO-3.2.0 → MorphIO-3.3.2}/tests/test_morphology_readers.cpp +38 -1
  77. {MorphIO-3.2.0 → MorphIO-3.3.2}/tests/utils.py +19 -22
  78. MorphIO-3.2.0/.github/workflows/coverage_test.yaml +0 -30
  79. MorphIO-3.2.0/.github/workflows/docstring_check.yaml +0 -21
  80. MorphIO-3.2.0/.readthedocs.yaml +0 -13
  81. MorphIO-3.2.0/CHANGLOG.md +0 -3
  82. MorphIO-3.2.0/ci/python_test.sh +0 -25
  83. MorphIO-3.2.0/doc/source/warnings.rst +0 -26
  84. MorphIO-3.2.0/include/morphio/enums.h +0 -114
  85. MorphIO-3.2.0/morphio/mut/__init__.py +0 -2
  86. MorphIO-3.2.0/setup.py +0 -129
  87. {MorphIO-3.2.0 → MorphIO-3.3.2}/.clang-format +0 -0
  88. {MorphIO-3.2.0 → MorphIO-3.3.2}/.gitignore +0 -0
  89. {MorphIO-3.2.0 → MorphIO-3.3.2}/.gitmodules +0 -0
  90. {MorphIO-3.2.0 → MorphIO-3.3.2}/.travis.yml +0 -0
  91. {MorphIO-3.2.0 → MorphIO-3.3.2}/3rdparty/CMakeLists.txt +0 -0
  92. {MorphIO-3.2.0 → MorphIO-3.3.2}/3rdparty/GSL_LITE/CMakeLists.txt +0 -0
  93. {MorphIO-3.2.0 → MorphIO-3.3.2}/3rdparty/GSL_LITE/cmake/PackageConfig.cmake.in +0 -0
  94. {MorphIO-3.2.0 → MorphIO-3.3.2}/3rdparty/GSL_LITE/gsl-lite.natvis +0 -0
  95. {MorphIO-3.2.0 → MorphIO-3.3.2}/3rdparty/GSL_LITE/include/gsl/gsl +0 -0
  96. {MorphIO-3.2.0 → MorphIO-3.3.2}/3rdparty/GSL_LITE/include/gsl/gsl-lite-vc6.hpp +0 -0
  97. {MorphIO-3.2.0 → MorphIO-3.3.2}/3rdparty/GSL_LITE/include/gsl/gsl-lite.h +0 -0
  98. {MorphIO-3.2.0 → MorphIO-3.3.2}/3rdparty/GSL_LITE/include/gsl/gsl-lite.hpp +0 -0
  99. {MorphIO-3.2.0 → MorphIO-3.3.2}/3rdparty/GSL_LITE/include/gsl.h +0 -0
  100. {MorphIO-3.2.0 → MorphIO-3.3.2}/3rdparty/GSL_LITE/include/gsl.hpp +0 -0
  101. {MorphIO-3.2.0 → MorphIO-3.3.2}/3rdparty/HighFive/CMake/HighFiveConfig.cmake.in +0 -0
  102. {MorphIO-3.2.0 → MorphIO-3.3.2}/3rdparty/HighFive/CMake/HighFiveTargetDeps.cmake +0 -0
  103. {MorphIO-3.2.0 → MorphIO-3.3.2}/3rdparty/HighFive/CMake/HighFiveTargetExport.cmake +0 -0
  104. {MorphIO-3.2.0 → MorphIO-3.3.2}/3rdparty/HighFive/CMake/config/CompilerFlagsHelpers.cmake +0 -0
  105. {MorphIO-3.2.0 → MorphIO-3.3.2}/3rdparty/HighFive/CMake/config/ReleaseDebugAutoFlags.cmake +0 -0
  106. {MorphIO-3.2.0 → MorphIO-3.3.2}/3rdparty/HighFive/CMake/config/TestHelpers.cmake +0 -0
  107. {MorphIO-3.2.0 → MorphIO-3.3.2}/3rdparty/HighFive/CMake/portability/BlueGenePortability.cmake +0 -0
  108. {MorphIO-3.2.0 → MorphIO-3.3.2}/3rdparty/HighFive/CMake/portability/CheckCXXStandardSupport.cmake +0 -0
  109. {MorphIO-3.2.0 → MorphIO-3.3.2}/3rdparty/HighFive/CMakeLists.txt +0 -0
  110. {MorphIO-3.2.0 → MorphIO-3.3.2}/3rdparty/HighFive/doc/CMakeLists.txt +0 -0
  111. {MorphIO-3.2.0 → MorphIO-3.3.2}/3rdparty/HighFive/doc/Doxyfile +0 -0
  112. {MorphIO-3.2.0 → MorphIO-3.3.2}/3rdparty/HighFive/doc/mainpage.md +0 -0
  113. {MorphIO-3.2.0 → MorphIO-3.3.2}/3rdparty/HighFive/include/highfive/H5Attribute.hpp +0 -0
  114. {MorphIO-3.2.0 → MorphIO-3.3.2}/3rdparty/HighFive/include/highfive/H5DataSet.hpp +0 -0
  115. {MorphIO-3.2.0 → MorphIO-3.3.2}/3rdparty/HighFive/include/highfive/H5DataSpace.hpp +0 -0
  116. {MorphIO-3.2.0 → MorphIO-3.3.2}/3rdparty/HighFive/include/highfive/H5DataType.hpp +0 -0
  117. {MorphIO-3.2.0 → MorphIO-3.3.2}/3rdparty/HighFive/include/highfive/H5Easy.hpp +0 -0
  118. {MorphIO-3.2.0 → MorphIO-3.3.2}/3rdparty/HighFive/include/highfive/H5Exception.hpp +0 -0
  119. {MorphIO-3.2.0 → MorphIO-3.3.2}/3rdparty/HighFive/include/highfive/H5File.hpp +0 -0
  120. {MorphIO-3.2.0 → MorphIO-3.3.2}/3rdparty/HighFive/include/highfive/H5FileDriver.hpp +0 -0
  121. {MorphIO-3.2.0 → MorphIO-3.3.2}/3rdparty/HighFive/include/highfive/H5Group.hpp +0 -0
  122. {MorphIO-3.2.0 → MorphIO-3.3.2}/3rdparty/HighFive/include/highfive/H5Object.hpp +0 -0
  123. {MorphIO-3.2.0 → MorphIO-3.3.2}/3rdparty/HighFive/include/highfive/H5PropertyList.hpp +0 -0
  124. {MorphIO-3.2.0 → MorphIO-3.3.2}/3rdparty/HighFive/include/highfive/H5Reference.hpp +0 -0
  125. {MorphIO-3.2.0 → MorphIO-3.3.2}/3rdparty/HighFive/include/highfive/H5Selection.hpp +0 -0
  126. {MorphIO-3.2.0 → MorphIO-3.3.2}/3rdparty/HighFive/include/highfive/H5Utility.hpp +0 -0
  127. {MorphIO-3.2.0 → MorphIO-3.3.2}/3rdparty/HighFive/include/highfive/H5Version.hpp.in +0 -0
  128. {MorphIO-3.2.0 → MorphIO-3.3.2}/3rdparty/HighFive/include/highfive/bits/H5Annotate_traits.hpp +0 -0
  129. {MorphIO-3.2.0 → MorphIO-3.3.2}/3rdparty/HighFive/include/highfive/bits/H5Annotate_traits_misc.hpp +0 -0
  130. {MorphIO-3.2.0 → MorphIO-3.3.2}/3rdparty/HighFive/include/highfive/bits/H5Attribute_misc.hpp +0 -0
  131. {MorphIO-3.2.0 → MorphIO-3.3.2}/3rdparty/HighFive/include/highfive/bits/H5ConverterEigen_misc.hpp +0 -0
  132. {MorphIO-3.2.0 → MorphIO-3.3.2}/3rdparty/HighFive/include/highfive/bits/H5Converter_misc.hpp +0 -0
  133. {MorphIO-3.2.0 → MorphIO-3.3.2}/3rdparty/HighFive/include/highfive/bits/H5DataSet_misc.hpp +0 -0
  134. {MorphIO-3.2.0 → MorphIO-3.3.2}/3rdparty/HighFive/include/highfive/bits/H5DataType_misc.hpp +0 -0
  135. {MorphIO-3.2.0 → MorphIO-3.3.2}/3rdparty/HighFive/include/highfive/bits/H5Dataspace_misc.hpp +0 -0
  136. {MorphIO-3.2.0 → MorphIO-3.3.2}/3rdparty/HighFive/include/highfive/bits/H5Exception_misc.hpp +0 -0
  137. {MorphIO-3.2.0 → MorphIO-3.3.2}/3rdparty/HighFive/include/highfive/bits/H5FileDriver_misc.hpp +0 -0
  138. {MorphIO-3.2.0 → MorphIO-3.3.2}/3rdparty/HighFive/include/highfive/bits/H5File_misc.hpp +0 -0
  139. {MorphIO-3.2.0 → MorphIO-3.3.2}/3rdparty/HighFive/include/highfive/bits/H5Iterables_misc.hpp +0 -0
  140. {MorphIO-3.2.0 → MorphIO-3.3.2}/3rdparty/HighFive/include/highfive/bits/H5Node_traits.hpp +0 -0
  141. {MorphIO-3.2.0 → MorphIO-3.3.2}/3rdparty/HighFive/include/highfive/bits/H5Node_traits_misc.hpp +0 -0
  142. {MorphIO-3.2.0 → MorphIO-3.3.2}/3rdparty/HighFive/include/highfive/bits/H5Object_misc.hpp +0 -0
  143. {MorphIO-3.2.0 → MorphIO-3.3.2}/3rdparty/HighFive/include/highfive/bits/H5PropertyList_misc.hpp +0 -0
  144. {MorphIO-3.2.0 → MorphIO-3.3.2}/3rdparty/HighFive/include/highfive/bits/H5ReadWrite_misc.hpp +0 -0
  145. {MorphIO-3.2.0 → MorphIO-3.3.2}/3rdparty/HighFive/include/highfive/bits/H5Reference_misc.hpp +0 -0
  146. {MorphIO-3.2.0 → MorphIO-3.3.2}/3rdparty/HighFive/include/highfive/bits/H5Selection_misc.hpp +0 -0
  147. {MorphIO-3.2.0 → MorphIO-3.3.2}/3rdparty/HighFive/include/highfive/bits/H5Slice_traits.hpp +0 -0
  148. {MorphIO-3.2.0 → MorphIO-3.3.2}/3rdparty/HighFive/include/highfive/bits/H5Slice_traits_misc.hpp +0 -0
  149. {MorphIO-3.2.0 → MorphIO-3.3.2}/3rdparty/HighFive/include/highfive/bits/H5Utils.hpp +0 -0
  150. {MorphIO-3.2.0 → MorphIO-3.3.2}/3rdparty/HighFive/include/highfive/bits/H5_definitions.hpp +0 -0
  151. {MorphIO-3.2.0 → MorphIO-3.3.2}/3rdparty/HighFive/include/highfive/h5easy_bits/H5Easy_Eigen.hpp +0 -0
  152. {MorphIO-3.2.0 → MorphIO-3.3.2}/3rdparty/HighFive/include/highfive/h5easy_bits/H5Easy_misc.hpp +0 -0
  153. {MorphIO-3.2.0 → MorphIO-3.3.2}/3rdparty/HighFive/include/highfive/h5easy_bits/H5Easy_opencv.hpp +0 -0
  154. {MorphIO-3.2.0 → MorphIO-3.3.2}/3rdparty/HighFive/include/highfive/h5easy_bits/H5Easy_public.hpp +0 -0
  155. {MorphIO-3.2.0 → MorphIO-3.3.2}/3rdparty/HighFive/include/highfive/h5easy_bits/H5Easy_scalar.hpp +0 -0
  156. {MorphIO-3.2.0 → MorphIO-3.3.2}/3rdparty/HighFive/include/highfive/h5easy_bits/H5Easy_vector.hpp +0 -0
  157. {MorphIO-3.2.0 → MorphIO-3.3.2}/3rdparty/HighFive/include/highfive/h5easy_bits/H5Easy_xtensor.hpp +0 -0
  158. {MorphIO-3.2.0 → MorphIO-3.3.2}/3rdparty/lexertl14/CMakeLists.txt +0 -0
  159. {MorphIO-3.2.0 → MorphIO-3.3.2}/3rdparty/lexertl14/include/lexertl/char_traits.hpp +0 -0
  160. {MorphIO-3.2.0 → MorphIO-3.3.2}/3rdparty/lexertl14/include/lexertl/debug.hpp +0 -0
  161. {MorphIO-3.2.0 → MorphIO-3.3.2}/3rdparty/lexertl14/include/lexertl/dot.hpp +0 -0
  162. {MorphIO-3.2.0 → MorphIO-3.3.2}/3rdparty/lexertl14/include/lexertl/enums.hpp +0 -0
  163. {MorphIO-3.2.0 → MorphIO-3.3.2}/3rdparty/lexertl14/include/lexertl/generate_cpp.hpp +0 -0
  164. {MorphIO-3.2.0 → MorphIO-3.3.2}/3rdparty/lexertl14/include/lexertl/generator.hpp +0 -0
  165. {MorphIO-3.2.0 → MorphIO-3.3.2}/3rdparty/lexertl14/include/lexertl/internals.hpp +0 -0
  166. {MorphIO-3.2.0 → MorphIO-3.3.2}/3rdparty/lexertl14/include/lexertl/iterator.hpp +0 -0
  167. {MorphIO-3.2.0 → MorphIO-3.3.2}/3rdparty/lexertl14/include/lexertl/licence_1_0.txt +0 -0
  168. {MorphIO-3.2.0 → MorphIO-3.3.2}/3rdparty/lexertl14/include/lexertl/lookup.hpp +0 -0
  169. {MorphIO-3.2.0 → MorphIO-3.3.2}/3rdparty/lexertl14/include/lexertl/match_results.hpp +0 -0
  170. {MorphIO-3.2.0 → MorphIO-3.3.2}/3rdparty/lexertl14/include/lexertl/memory_file.hpp +0 -0
  171. {MorphIO-3.2.0 → MorphIO-3.3.2}/3rdparty/lexertl14/include/lexertl/narrow.hpp +0 -0
  172. {MorphIO-3.2.0 → MorphIO-3.3.2}/3rdparty/lexertl14/include/lexertl/observer_ptr.hpp +0 -0
  173. {MorphIO-3.2.0 → MorphIO-3.3.2}/3rdparty/lexertl14/include/lexertl/parser/parser.hpp +0 -0
  174. {MorphIO-3.2.0 → MorphIO-3.3.2}/3rdparty/lexertl14/include/lexertl/parser/tokeniser/blocks.hpp +0 -0
  175. {MorphIO-3.2.0 → MorphIO-3.3.2}/3rdparty/lexertl14/include/lexertl/parser/tokeniser/fold2.inc +0 -0
  176. {MorphIO-3.2.0 → MorphIO-3.3.2}/3rdparty/lexertl14/include/lexertl/parser/tokeniser/fold4.inc +0 -0
  177. {MorphIO-3.2.0 → MorphIO-3.3.2}/3rdparty/lexertl14/include/lexertl/parser/tokeniser/re_token.hpp +0 -0
  178. {MorphIO-3.2.0 → MorphIO-3.3.2}/3rdparty/lexertl14/include/lexertl/parser/tokeniser/re_tokeniser.hpp +0 -0
  179. {MorphIO-3.2.0 → MorphIO-3.3.2}/3rdparty/lexertl14/include/lexertl/parser/tokeniser/re_tokeniser_helper.hpp +0 -0
  180. {MorphIO-3.2.0 → MorphIO-3.3.2}/3rdparty/lexertl14/include/lexertl/parser/tokeniser/re_tokeniser_state.hpp +0 -0
  181. {MorphIO-3.2.0 → MorphIO-3.3.2}/3rdparty/lexertl14/include/lexertl/parser/tokeniser/scripts.hpp +0 -0
  182. {MorphIO-3.2.0 → MorphIO-3.3.2}/3rdparty/lexertl14/include/lexertl/parser/tokeniser/table.inc +0 -0
  183. {MorphIO-3.2.0 → MorphIO-3.3.2}/3rdparty/lexertl14/include/lexertl/parser/tokeniser/unicode.hpp +0 -0
  184. {MorphIO-3.2.0 → MorphIO-3.3.2}/3rdparty/lexertl14/include/lexertl/parser/tree/end_node.hpp +0 -0
  185. {MorphIO-3.2.0 → MorphIO-3.3.2}/3rdparty/lexertl14/include/lexertl/parser/tree/iteration_node.hpp +0 -0
  186. {MorphIO-3.2.0 → MorphIO-3.3.2}/3rdparty/lexertl14/include/lexertl/parser/tree/leaf_node.hpp +0 -0
  187. {MorphIO-3.2.0 → MorphIO-3.3.2}/3rdparty/lexertl14/include/lexertl/parser/tree/node.hpp +0 -0
  188. {MorphIO-3.2.0 → MorphIO-3.3.2}/3rdparty/lexertl14/include/lexertl/parser/tree/selection_node.hpp +0 -0
  189. {MorphIO-3.2.0 → MorphIO-3.3.2}/3rdparty/lexertl14/include/lexertl/parser/tree/sequence_node.hpp +0 -0
  190. {MorphIO-3.2.0 → MorphIO-3.3.2}/3rdparty/lexertl14/include/lexertl/partition/charset.hpp +0 -0
  191. {MorphIO-3.2.0 → MorphIO-3.3.2}/3rdparty/lexertl14/include/lexertl/partition/equivset.hpp +0 -0
  192. {MorphIO-3.2.0 → MorphIO-3.3.2}/3rdparty/lexertl14/include/lexertl/rules.hpp +0 -0
  193. {MorphIO-3.2.0 → MorphIO-3.3.2}/3rdparty/lexertl14/include/lexertl/runtime_error.hpp +0 -0
  194. {MorphIO-3.2.0 → MorphIO-3.3.2}/3rdparty/lexertl14/include/lexertl/serialise.hpp +0 -0
  195. {MorphIO-3.2.0 → MorphIO-3.3.2}/3rdparty/lexertl14/include/lexertl/sm_to_csm.hpp +0 -0
  196. {MorphIO-3.2.0 → MorphIO-3.3.2}/3rdparty/lexertl14/include/lexertl/sm_traits.hpp +0 -0
  197. {MorphIO-3.2.0 → MorphIO-3.3.2}/3rdparty/lexertl14/include/lexertl/state_machine.hpp +0 -0
  198. {MorphIO-3.2.0 → MorphIO-3.3.2}/3rdparty/lexertl14/include/lexertl/stream_shared_iterator.hpp +0 -0
  199. {MorphIO-3.2.0 → MorphIO-3.3.2}/3rdparty/lexertl14/include/lexertl/string_token.hpp +0 -0
  200. {MorphIO-3.2.0 → MorphIO-3.3.2}/3rdparty/lexertl14/include/lexertl/utf_iterators.hpp +0 -0
  201. {MorphIO-3.2.0 → MorphIO-3.3.2}/3rdparty/pybind11/CMakeLists.txt +0 -0
  202. {MorphIO-3.2.0 → MorphIO-3.3.2}/3rdparty/pybind11/include/pybind11/attr.h +0 -0
  203. {MorphIO-3.2.0 → MorphIO-3.3.2}/3rdparty/pybind11/include/pybind11/buffer_info.h +0 -0
  204. {MorphIO-3.2.0 → MorphIO-3.3.2}/3rdparty/pybind11/include/pybind11/cast.h +0 -0
  205. {MorphIO-3.2.0 → MorphIO-3.3.2}/3rdparty/pybind11/include/pybind11/chrono.h +0 -0
  206. {MorphIO-3.2.0 → MorphIO-3.3.2}/3rdparty/pybind11/include/pybind11/common.h +0 -0
  207. {MorphIO-3.2.0 → MorphIO-3.3.2}/3rdparty/pybind11/include/pybind11/complex.h +0 -0
  208. {MorphIO-3.2.0 → MorphIO-3.3.2}/3rdparty/pybind11/include/pybind11/detail/class.h +0 -0
  209. {MorphIO-3.2.0 → MorphIO-3.3.2}/3rdparty/pybind11/include/pybind11/detail/common.h +0 -0
  210. {MorphIO-3.2.0 → MorphIO-3.3.2}/3rdparty/pybind11/include/pybind11/detail/descr.h +0 -0
  211. {MorphIO-3.2.0 → MorphIO-3.3.2}/3rdparty/pybind11/include/pybind11/detail/init.h +0 -0
  212. {MorphIO-3.2.0 → MorphIO-3.3.2}/3rdparty/pybind11/include/pybind11/detail/internals.h +0 -0
  213. {MorphIO-3.2.0 → MorphIO-3.3.2}/3rdparty/pybind11/include/pybind11/detail/typeid.h +0 -0
  214. {MorphIO-3.2.0 → MorphIO-3.3.2}/3rdparty/pybind11/include/pybind11/eigen.h +0 -0
  215. {MorphIO-3.2.0 → MorphIO-3.3.2}/3rdparty/pybind11/include/pybind11/embed.h +0 -0
  216. {MorphIO-3.2.0 → MorphIO-3.3.2}/3rdparty/pybind11/include/pybind11/eval.h +0 -0
  217. {MorphIO-3.2.0 → MorphIO-3.3.2}/3rdparty/pybind11/include/pybind11/functional.h +0 -0
  218. {MorphIO-3.2.0 → MorphIO-3.3.2}/3rdparty/pybind11/include/pybind11/iostream.h +0 -0
  219. {MorphIO-3.2.0 → MorphIO-3.3.2}/3rdparty/pybind11/include/pybind11/numpy.h +0 -0
  220. {MorphIO-3.2.0 → MorphIO-3.3.2}/3rdparty/pybind11/include/pybind11/operators.h +0 -0
  221. {MorphIO-3.2.0 → MorphIO-3.3.2}/3rdparty/pybind11/include/pybind11/options.h +0 -0
  222. {MorphIO-3.2.0 → MorphIO-3.3.2}/3rdparty/pybind11/include/pybind11/pybind11.h +0 -0
  223. {MorphIO-3.2.0 → MorphIO-3.3.2}/3rdparty/pybind11/include/pybind11/pytypes.h +0 -0
  224. {MorphIO-3.2.0 → MorphIO-3.3.2}/3rdparty/pybind11/include/pybind11/stl.h +0 -0
  225. {MorphIO-3.2.0 → MorphIO-3.3.2}/3rdparty/pybind11/include/pybind11/stl_bind.h +0 -0
  226. {MorphIO-3.2.0 → MorphIO-3.3.2}/3rdparty/pybind11/tools/FindCatch.cmake +0 -0
  227. {MorphIO-3.2.0 → MorphIO-3.3.2}/3rdparty/pybind11/tools/FindEigen3.cmake +0 -0
  228. {MorphIO-3.2.0 → MorphIO-3.3.2}/3rdparty/pybind11/tools/FindPythonLibsNew.cmake +0 -0
  229. {MorphIO-3.2.0 → MorphIO-3.3.2}/3rdparty/pybind11/tools/check-style.sh +0 -0
  230. {MorphIO-3.2.0 → MorphIO-3.3.2}/3rdparty/pybind11/tools/libsize.py +0 -0
  231. {MorphIO-3.2.0 → MorphIO-3.3.2}/3rdparty/pybind11/tools/mkdoc.py +0 -0
  232. {MorphIO-3.2.0 → MorphIO-3.3.2}/3rdparty/pybind11/tools/pybind11Config.cmake.in +0 -0
  233. {MorphIO-3.2.0 → MorphIO-3.3.2}/3rdparty/pybind11/tools/pybind11Tools.cmake +0 -0
  234. {MorphIO-3.2.0 → MorphIO-3.3.2}/CMake/CodeCoverage.cmake +0 -0
  235. {MorphIO-3.2.0 → MorphIO-3.3.2}/CMake/MorphIOConfig.cmake +0 -0
  236. {MorphIO-3.2.0 → MorphIO-3.3.2}/CMakeLists.txt +0 -0
  237. {MorphIO-3.2.0 → MorphIO-3.3.2}/CONTRIBUTING.md +0 -0
  238. {MorphIO-3.2.0 → MorphIO-3.3.2}/COPYING +0 -0
  239. {MorphIO-3.2.0 → MorphIO-3.3.2}/COPYING.LESSER +0 -0
  240. {MorphIO-3.2.0 → MorphIO-3.3.2}/MANIFEST.in +0 -0
  241. {MorphIO-3.2.0 → MorphIO-3.3.2}/MorphIO.egg-info/dependency_links.txt +0 -0
  242. {MorphIO-3.2.0 → MorphIO-3.3.2}/MorphIO.egg-info/not-zip-safe +0 -0
  243. {MorphIO-3.2.0 → MorphIO-3.3.2}/MorphIO.egg-info/requires.txt +0 -0
  244. {MorphIO-3.2.0 → MorphIO-3.3.2}/MorphIO.egg-info/top_level.txt +0 -0
  245. {MorphIO-3.2.0 → MorphIO-3.3.2}/README.rst +0 -0
  246. {MorphIO-3.2.0 → MorphIO-3.3.2}/binds/python/CMakeLists.txt +0 -0
  247. {MorphIO-3.2.0 → MorphIO-3.3.2}/binds/python/bind_enums.h +0 -0
  248. {MorphIO-3.2.0 → MorphIO-3.3.2}/binds/python/bind_immutable.h +0 -0
  249. {MorphIO-3.2.0 → MorphIO-3.3.2}/binds/python/bind_misc.h +0 -0
  250. {MorphIO-3.2.0 → MorphIO-3.3.2}/binds/python/bind_mutable.h +0 -0
  251. {MorphIO-3.2.0 → MorphIO-3.3.2}/binds/python/bind_vasculature.h +0 -0
  252. {MorphIO-3.2.0 → MorphIO-3.3.2}/binds/python/bindings_utils.cpp +0 -0
  253. {MorphIO-3.2.0 → MorphIO-3.3.2}/binds/python/bindings_utils.h +0 -0
  254. {MorphIO-3.2.0 → MorphIO-3.3.2}/binds/python/generated/.clang-format +0 -0
  255. {MorphIO-3.2.0 → MorphIO-3.3.2}/binds/python/generated/docstrings.h +0 -0
  256. {MorphIO-3.2.0 → MorphIO-3.3.2}/binds/python/morphio.cpp +0 -0
  257. {MorphIO-3.2.0 → MorphIO-3.3.2}/ci/check_clang_format.sh +0 -0
  258. {MorphIO-3.2.0 → MorphIO-3.3.2}/ci/check_generated_docstrings.sh +0 -0
  259. {MorphIO-3.2.0 → MorphIO-3.3.2}/ci/coverage_test.sh +0 -0
  260. {MorphIO-3.2.0 → MorphIO-3.3.2}/ci/cpp_test.sh +0 -0
  261. {MorphIO-3.2.0 → MorphIO-3.3.2}/doc/Makefile +0 -0
  262. {MorphIO-3.2.0 → MorphIO-3.3.2}/doc/README.md +0 -0
  263. {MorphIO-3.2.0 → MorphIO-3.3.2}/doc/source/Doxyfile +0 -0
  264. {MorphIO-3.2.0 → MorphIO-3.3.2}/doc/source/DoxygenLayout.xml +0 -0
  265. {MorphIO-3.2.0 → MorphIO-3.3.2}/doc/source/_templates/doxygen_page.rst_t +0 -0
  266. {MorphIO-3.2.0 → MorphIO-3.3.2}/doc/source/conf.py +0 -0
  267. {MorphIO-3.2.0 → MorphIO-3.3.2}/doc/source/cpp.rst +0 -0
  268. {MorphIO-3.2.0 → MorphIO-3.3.2}/doc/source/doxygen/.gitignore +0 -0
  269. {MorphIO-3.2.0 → MorphIO-3.3.2}/doc/source/footer.html +0 -0
  270. {MorphIO-3.2.0 → MorphIO-3.3.2}/doc/source/glia.rst +0 -0
  271. {MorphIO-3.2.0 → MorphIO-3.3.2}/doc/source/header.html +0 -0
  272. {MorphIO-3.2.0 → MorphIO-3.3.2}/doc/source/images/section_segment.svg +0 -0
  273. {MorphIO-3.2.0 → MorphIO-3.3.2}/doc/source/images/sections.svg +0 -0
  274. {MorphIO-3.2.0 → MorphIO-3.3.2}/doc/source/images/swc/sequential.svg +0 -0
  275. {MorphIO-3.2.0 → MorphIO-3.3.2}/doc/source/images/swc/sphere.svg +0 -0
  276. {MorphIO-3.2.0 → MorphIO-3.3.2}/doc/source/images/swc/split.svg +0 -0
  277. {MorphIO-3.2.0 → MorphIO-3.3.2}/doc/source/images/swc/three_pt.svg +0 -0
  278. {MorphIO-3.2.0 → MorphIO-3.3.2}/doc/source/images/swc/two_pt.svg +0 -0
  279. {MorphIO-3.2.0 → MorphIO-3.3.2}/doc/source/index.rst +0 -0
  280. {MorphIO-3.2.0 → MorphIO-3.3.2}/doc/source/install.rst +0 -0
  281. {MorphIO-3.2.0 → MorphIO-3.3.2}/doc/source/mitochondria.rst +0 -0
  282. {MorphIO-3.2.0 → MorphIO-3.3.2}/doc/source/morphology.rst +0 -0
  283. {MorphIO-3.2.0 → MorphIO-3.3.2}/doc/source/python.rst +0 -0
  284. {MorphIO-3.2.0 → MorphIO-3.3.2}/doc/source/reticulum.rst +0 -0
  285. {MorphIO-3.2.0 → MorphIO-3.3.2}/doc/source/specification.rst +0 -0
  286. {MorphIO-3.2.0 → MorphIO-3.3.2}/doc/source/specification_neurolucida.rst +0 -0
  287. {MorphIO-3.2.0 → MorphIO-3.3.2}/examples/getting_started.ipynb +0 -0
  288. {MorphIO-3.2.0 → MorphIO-3.3.2}/examples/getting_started_mutable.ipynb +0 -0
  289. {MorphIO-3.2.0 → MorphIO-3.3.2}/include/morphio/endoplasmic_reticulum.h +0 -0
  290. {MorphIO-3.2.0 → MorphIO-3.3.2}/include/morphio/section_iterators.hpp +0 -0
  291. {MorphIO-3.2.0 → MorphIO-3.3.2}/include/morphio/soma.h +0 -0
  292. {MorphIO-3.2.0 → MorphIO-3.3.2}/include/morphio/tools.h +0 -0
  293. {MorphIO-3.2.0 → MorphIO-3.3.2}/include/morphio/vasc/iterators.hpp +0 -0
  294. {MorphIO-3.2.0 → MorphIO-3.3.2}/include/morphio/version.h +0 -0
  295. {MorphIO-3.2.0 → MorphIO-3.3.2}/morphio/vasculature/__init__.py +0 -0
  296. {MorphIO-3.2.0 → MorphIO-3.3.2}/scripts/check-clang-format-all +0 -0
  297. {MorphIO-3.2.0 → MorphIO-3.3.2}/setup.cfg +0 -0
  298. {MorphIO-3.2.0 → MorphIO-3.3.2}/src/endoplasmic_reticulum.cpp +0 -0
  299. {MorphIO-3.2.0 → MorphIO-3.3.2}/src/enums.cpp +0 -0
  300. {MorphIO-3.2.0 → MorphIO-3.3.2}/src/errorMessages.cpp +0 -0
  301. {MorphIO-3.2.0 → MorphIO-3.3.2}/src/glial_cell.cpp +0 -0
  302. {MorphIO-3.2.0 → MorphIO-3.3.2}/src/mito_section.cpp +0 -0
  303. {MorphIO-3.2.0 → MorphIO-3.3.2}/src/mitochondria.cpp +0 -0
  304. {MorphIO-3.2.0 → MorphIO-3.3.2}/src/morphology.cpp +0 -0
  305. {MorphIO-3.2.0 → MorphIO-3.3.2}/src/mut/endoplasmic_reticulum.cpp +0 -0
  306. {MorphIO-3.2.0 → MorphIO-3.3.2}/src/mut/glial_cell.cpp +0 -0
  307. {MorphIO-3.2.0 → MorphIO-3.3.2}/src/mut/mito_section.cpp +0 -0
  308. {MorphIO-3.2.0 → MorphIO-3.3.2}/src/mut/mitochondria.cpp +0 -0
  309. {MorphIO-3.2.0 → MorphIO-3.3.2}/src/mut/modifiers.cpp +0 -0
  310. {MorphIO-3.2.0 → MorphIO-3.3.2}/src/mut/soma.cpp +0 -0
  311. {MorphIO-3.2.0 → MorphIO-3.3.2}/src/readers/morphologyASC.h +0 -0
  312. {MorphIO-3.2.0 → MorphIO-3.3.2}/src/readers/morphologySWC.cpp +0 -0
  313. {MorphIO-3.2.0 → MorphIO-3.3.2}/src/readers/morphologySWC.h +0 -0
  314. {MorphIO-3.2.0 → MorphIO-3.3.2}/src/readers/utilsHDF5.h +0 -0
  315. {MorphIO-3.2.0 → MorphIO-3.3.2}/src/readers/vasculatureHDF5.cpp +0 -0
  316. {MorphIO-3.2.0 → MorphIO-3.3.2}/src/readers/vasculatureHDF5.h +0 -0
  317. {MorphIO-3.2.0 → MorphIO-3.3.2}/src/section.cpp +0 -0
  318. {MorphIO-3.2.0 → MorphIO-3.3.2}/src/shared_utils.hpp +0 -0
  319. {MorphIO-3.2.0 → MorphIO-3.3.2}/src/soma.cpp +0 -0
  320. {MorphIO-3.2.0 → MorphIO-3.3.2}/src/vasc/properties.cpp +0 -0
  321. {MorphIO-3.2.0 → MorphIO-3.3.2}/src/vasc/section.cpp +0 -0
  322. {MorphIO-3.2.0 → MorphIO-3.3.2}/src/vasc/vasculature.cpp +0 -0
  323. {MorphIO-3.2.0 → MorphIO-3.3.2}/src/vector_utils.cpp +0 -0
  324. {MorphIO-3.2.0 → MorphIO-3.3.2}/src/version.cpp.in +0 -0
  325. {MorphIO-3.2.0 → MorphIO-3.3.2}/tests/CMakeLists.txt +0 -0
  326. {MorphIO-3.2.0 → MorphIO-3.3.2}/tests/contrib/catch.hpp +0 -0
  327. {MorphIO-3.2.0 → MorphIO-3.3.2}/tests/data/annotations.asc +0 -0
  328. {MorphIO-3.2.0 → MorphIO-3.3.2}/tests/data/astrocyte.h5 +0 -0
  329. {MorphIO-3.2.0 → MorphIO-3.3.2}/tests/data/circle_contour.asc +0 -0
  330. {MorphIO-3.2.0 → MorphIO-3.3.2}/tests/data/complexe.swc +0 -0
  331. {MorphIO-3.2.0 → MorphIO-3.3.2}/tests/data/disconnected_neurite.swc +0 -0
  332. {MorphIO-3.2.0 → MorphIO-3.3.2}/tests/data/h5/empty.h5 +0 -0
  333. {MorphIO-3.2.0 → MorphIO-3.3.2}/tests/data/h5/merged.h5 +0 -0
  334. {MorphIO-3.2.0 → MorphIO-3.3.2}/tests/data/h5/non-valid.h5 +0 -0
  335. {MorphIO-3.2.0 → MorphIO-3.3.2}/tests/data/h5/v1/Neuron-no-soma.h5 +0 -0
  336. {MorphIO-3.2.0 → MorphIO-3.3.2}/tests/data/h5/v1/Neuron.h5 +0 -0
  337. {MorphIO-3.2.0 → MorphIO-3.3.2}/tests/data/h5/v1/endoplasmic-reticulum.h5 +0 -0
  338. {MorphIO-3.2.0 → MorphIO-3.3.2}/tests/data/h5/v1/glia.h5 +0 -0
  339. {MorphIO-3.2.0 → MorphIO-3.3.2}/tests/data/h5/v1/glia_empty_perimeters.h5 +0 -0
  340. {MorphIO-3.2.0 → MorphIO-3.3.2}/tests/data/h5/v1/glia_soma_only.h5 +0 -0
  341. {MorphIO-3.2.0 → MorphIO-3.3.2}/tests/data/h5/v1/glia_wrong_sized_perimeters.h5 +0 -0
  342. {MorphIO-3.2.0 → MorphIO-3.3.2}/tests/data/h5/v1/incorrect_point_columns.h5 +0 -0
  343. {MorphIO-3.2.0 → MorphIO-3.3.2}/tests/data/h5/v1/incorrect_structure_columns.h5 +0 -0
  344. {MorphIO-3.2.0 → MorphIO-3.3.2}/tests/data/h5/v1/metadata_group_only.h5 +0 -0
  345. {MorphIO-3.2.0 → MorphIO-3.3.2}/tests/data/h5/v1/mitochondria.h5 +0 -0
  346. {MorphIO-3.2.0 → MorphIO-3.3.2}/tests/data/h5/v1/monodim.h5 +0 -0
  347. {MorphIO-3.2.0 → MorphIO-3.3.2}/tests/data/h5/v1/simple-broken-section-type.h5 +0 -0
  348. {MorphIO-3.2.0 → MorphIO-3.3.2}/tests/data/h5/v1/simple-negative-section-type.h5 +0 -0
  349. {MorphIO-3.2.0 → MorphIO-3.3.2}/tests/data/h5/v1/simple-two-point-soma.h5 +0 -0
  350. {MorphIO-3.2.0 → MorphIO-3.3.2}/tests/data/h5/v1/simple.h5 +0 -0
  351. {MorphIO-3.2.0 → MorphIO-3.3.2}/tests/data/h5/v1/single-neurite.h5 +0 -0
  352. {MorphIO-3.2.0 → MorphIO-3.3.2}/tests/data/h5/v1/soma_after_dendrite.h5 +0 -0
  353. {MorphIO-3.2.0 → MorphIO-3.3.2}/tests/data/h5/v1/soma_no_neurites.h5 +0 -0
  354. {MorphIO-3.2.0 → MorphIO-3.3.2}/tests/data/h5/v1/three-point-soma-two-offset.h5 +0 -0
  355. {MorphIO-3.2.0 → MorphIO-3.3.2}/tests/data/h5/v1/two_child_unmerged.h5 +0 -0
  356. {MorphIO-3.2.0 → MorphIO-3.3.2}/tests/data/h5/v1/unknown_section_type_structure.h5 +0 -0
  357. {MorphIO-3.2.0 → MorphIO-3.3.2}/tests/data/h5/v2/Neuron.h5 +0 -0
  358. {MorphIO-3.2.0 → MorphIO-3.3.2}/tests/data/h5/vasculature-broken-section-type.h5 +0 -0
  359. {MorphIO-3.2.0 → MorphIO-3.3.2}/tests/data/h5/vasculature1.h5 +0 -0
  360. {MorphIO-3.2.0 → MorphIO-3.3.2}/tests/data/h5/vasculature2.h5 +0 -0
  361. {MorphIO-3.2.0 → MorphIO-3.3.2}/tests/data/iterators.asc +0 -0
  362. {MorphIO-3.2.0 → MorphIO-3.3.2}/tests/data/marker-with-string.asc +0 -0
  363. {MorphIO-3.2.0 → MorphIO-3.3.2}/tests/data/mono-type.asc +0 -0
  364. {MorphIO-3.2.0 → MorphIO-3.3.2}/tests/data/multiple_point_section.asc +0 -0
  365. {MorphIO-3.2.0 → MorphIO-3.3.2}/tests/data/multiple_soma.swc +0 -0
  366. {MorphIO-3.2.0 → MorphIO-3.3.2}/tests/data/nested_single_children.asc +0 -0
  367. {MorphIO-3.2.0 → MorphIO-3.3.2}/tests/data/neurite_wrong_root_point.swc +0 -0
  368. {MorphIO-3.2.0 → MorphIO-3.3.2}/tests/data/no_soma.swc +0 -0
  369. {MorphIO-3.2.0 → MorphIO-3.3.2}/tests/data/nrn-order-already-sorted.h5 +0 -0
  370. {MorphIO-3.2.0 → MorphIO-3.3.2}/tests/data/nrn_ordering.swc +0 -0
  371. {MorphIO-3.2.0 → MorphIO-3.3.2}/tests/data/pia.asc +0 -0
  372. {MorphIO-3.2.0 → MorphIO-3.3.2}/tests/data/reversed_NRN_neurite_order.swc +0 -0
  373. {MorphIO-3.2.0 → MorphIO-3.3.2}/tests/data/sections-block.asc +0 -0
  374. {MorphIO-3.2.0 → MorphIO-3.3.2}/tests/data/simple-with-font.asc +0 -0
  375. {MorphIO-3.2.0 → MorphIO-3.3.2}/tests/data/simple-with-image-coord.asc +0 -0
  376. {MorphIO-3.2.0 → MorphIO-3.3.2}/tests/data/simple.asc +0 -0
  377. {MorphIO-3.2.0 → MorphIO-3.3.2}/tests/data/simple.swc +0 -0
  378. {MorphIO-3.2.0 → MorphIO-3.3.2}/tests/data/simple.unknown +0 -0
  379. {MorphIO-3.2.0 → MorphIO-3.3.2}/tests/data/simple2.asc +0 -0
  380. {MorphIO-3.2.0 → MorphIO-3.3.2}/tests/data/single_point_root.asc +0 -0
  381. {MorphIO-3.2.0 → MorphIO-3.3.2}/tests/data/soma_cylinders.swc +0 -0
  382. {MorphIO-3.2.0 → MorphIO-3.3.2}/tests/data/soma_multiple_frustums.swc +0 -0
  383. {MorphIO-3.2.0 → MorphIO-3.3.2}/tests/data/soma_single_frustum.swc +0 -0
  384. {MorphIO-3.2.0 → MorphIO-3.3.2}/tests/data/soma_three_points_cylinder.swc +0 -0
  385. {MorphIO-3.2.0 → MorphIO-3.3.2}/tests/data/spine.asc +0 -0
  386. {MorphIO-3.2.0 → MorphIO-3.3.2}/tests/data/three_point_soma.swc +0 -0
  387. {MorphIO-3.2.0 → MorphIO-3.3.2}/tests/main.cpp +0 -0
  388. {MorphIO-3.2.0 → MorphIO-3.3.2}/tests/test_10_vasculature.py +0 -0
  389. {MorphIO-3.2.0 → MorphIO-3.3.2}/tests/test_3_h5.py +0 -0
  390. {MorphIO-3.2.0 → MorphIO-3.3.2}/tests/test_7_modifiers.py +0 -0
  391. {MorphIO-3.2.0 → MorphIO-3.3.2}/tests/test_8_all_morphologies.py +0 -0
  392. {MorphIO-3.2.0 → MorphIO-3.3.2}/tests/test_9_surfaces.py +0 -0
  393. {MorphIO-3.2.0 → MorphIO-3.3.2}/tests/test_immutable_morphology.cpp +0 -0
  394. {MorphIO-3.2.0 → MorphIO-3.3.2}/tests/test_mutable_morphology.cpp +0 -0
@@ -5,6 +5,10 @@ jobs:
5
5
  build_sdist:
6
6
  name: Build sdist
7
7
  runs-on: ubuntu-latest
8
+
9
+ # Run on external PRs, but not internal PRs as they'll be run by the push
10
+ if: github.event_name == 'push' || github.event.pull_request.head.repo.full_name != github.repository
11
+
8
12
  steps:
9
13
  - uses: actions/checkout@v2
10
14
  with:
@@ -5,6 +5,10 @@ jobs:
5
5
  build:
6
6
  name: clang-format-check
7
7
  runs-on: ubuntu-18.04
8
+
9
+ # Run on external PRs, but not internal PRs as they'll be run by the push
10
+ if: github.event_name == 'push' || github.event.pull_request.head.repo.full_name != github.repository
11
+
8
12
  steps:
9
13
  - name: Fetch repository
10
14
  uses: actions/checkout@v1
@@ -0,0 +1,31 @@
1
+ name: coverage-test
2
+ on: [pull_request, push]
3
+
4
+ env:
5
+ CC: gcc-9
6
+ CXX: g++-9
7
+
8
+ jobs:
9
+ build:
10
+ name: coverage-test
11
+ runs-on: ubuntu-20.04
12
+
13
+ # Run on external PRs, but not internal PRs as they'll be run by the push
14
+ if: github.event_name == 'push' || github.event.pull_request.head.repo.full_name != github.repository
15
+
16
+ steps:
17
+ - name: Checkout repository
18
+ uses: actions/checkout@v2
19
+ - name: Fetch repository
20
+ run: git fetch --prune --unshallow
21
+ - name: Get submodules
22
+ run: git submodule update --init --force --recursive
23
+ - name: Install packages
24
+ run: sudo apt-get update && sudo apt-get install build-essential libhdf5-dev lcov
25
+ - name: Build and run unittests
26
+ run: ci/coverage_test.sh
27
+ - name: Upload Coverage to Coveralls
28
+ uses: coverallsapp/github-action@master
29
+ with:
30
+ github-token: ${{ secrets.GITHUB_TOKEN }}
31
+ path-to-lcov: build/build-coverage/coverage.info.cleaned
@@ -0,0 +1,25 @@
1
+ name: docstring-check
2
+ on: [pull_request, push]
3
+
4
+ jobs:
5
+ build:
6
+ name: docstring-check
7
+ runs-on: ubuntu-18.04
8
+
9
+ # Run on external PRs, but not internal PRs as they'll be run by the push
10
+ if: github.event_name == 'push' || github.event.pull_request.head.repo.full_name != github.repository
11
+
12
+ steps:
13
+ - name: Fetch repository
14
+ uses: actions/checkout@v2
15
+ with:
16
+ submodules: recursive
17
+ - name: Install packages
18
+ run: sudo apt-get update && sudo apt-get install build-essential libhdf5-dev python3-venv libclang1-9
19
+ - name: Check docstrings
20
+ run: |
21
+ export LIBCLANG_PATH=/usr/lib/x86_64-linux-gnu/libclang-9.so.1
22
+ ci/check_generated_docstrings.sh || true
23
+
24
+ export LIBCLANG_PATH=libLLVM-10.so.1
25
+ ci/check_generated_docstrings.sh || true
@@ -1,27 +1,23 @@
1
- name: Publish sdist and wheels macos-manylinux
2
-
3
- on:
4
- push:
5
- tags:
6
- - 'v[0-9]+.[0-9]+.[0-9]+'
1
+ name: Publish sdist and wheels for macos, manylinux, and windows, publish to pypi if a release
2
+ on: [pull_request, push]
7
3
 
8
4
  env:
9
- CIBW_MANYLINUX_X86_64_IMAGE: manylinux2014
10
- MACOSX_DEPLOYMENT_TARGET: '10.13'
11
- CIBW_BUILD_VERBOSITY: 2
12
- # Only build on Python 3.x
5
+ CIBW_BUILD_VERBOSITY: 3
13
6
  CIBW_BUILD: 'cp3?-*'
14
- CIBW_SKIP: 'cp35-* cp39-* *-manylinux_i686'
7
+ CIBW_SKIP: 'cp35-* cp36-* *-manylinux_i686 *-musllinux_* *-win32'
15
8
  CIBW_BEFORE_TEST: pip install -r {project}/tests/requirement_tests.txt
16
9
  CIBW_TEST_COMMAND: pytest -s -v {project}/tests
17
10
 
18
11
  jobs:
19
12
  build_wheels:
20
13
  name: Build wheels on ${{ matrix.os }}
14
+
15
+ if: github.event_name == 'push' || github.event.pull_request.head.repo.full_name != github.repository
16
+
21
17
  runs-on: ${{ matrix.os }}
22
18
  strategy:
23
19
  matrix:
24
- os: [ubuntu-18.04, macos-latest]
20
+ os: [ubuntu-20.04, macos-latest, windows-latest]
25
21
 
26
22
  steps:
27
23
  - uses: actions/checkout@v2
@@ -35,66 +31,98 @@ jobs:
35
31
 
36
32
  - name: Install cibuildwheel
37
33
  run: |
38
- python -m pip install cibuildwheel==1.6.4
34
+ python -m pip install cibuildwheel
35
+
39
36
  - name: Build wheels on Linux
40
37
  if: runner.os == 'Linux'
41
38
  env:
39
+ CIBW_MANYLINUX_X86_64_IMAGE: manylinux2014
42
40
  CIBW_BEFORE_BUILD: 'yum update -y; yum -y install hdf5-devel'
43
41
  run: |
44
42
  python -m cibuildwheel --output-dir dist
43
+
45
44
  - name: Build wheels Mac OS
46
45
  if: runner.os == 'macOS'
47
46
  env:
47
+ MACOSX_DEPLOYMENT_TARGET: '10.13'
48
48
  CIBW_BEFORE_BUILD: |
49
49
  brew update
50
50
  brew --version
51
- brew install cmake
52
51
  brew install hdf5
53
52
  run: |
54
53
  python -m cibuildwheel --output-dir dist
54
+
55
+ - name: Build wheels Windows
56
+ if: runner.os == 'Windows'
57
+ shell: cmd
58
+ # the v140 toolchain is used, so that fewer vc_redist installs are required
59
+ # some of the information is available here:
60
+ # https://docs.microsoft.com/en-us/cpp/build/building-on-the-command-line
61
+ # but tracking down the 14.0 magic number (and especially newer ones isn't always easy)
62
+ # this has a partial table:
63
+ # https://devblogs.microsoft.com/cppblog/side-by-side-minor-version-msvc-toolsets-in-visual-studio-2017/
64
+ run: |
65
+ curl -O https://support.hdfgroup.org/ftp/HDF5/releases/hdf5-1.12/hdf5-1.12.0/bin/hdf5-1.12.0-Std-win10_64-vs16.zip
66
+ C:\windows\system32\tar.exe xf hdf5-1.12.0-Std-win10_64-vs16.zip
67
+ start /wait msiexec /a "%cd%\hdf\HDF5-1.12.0-win64.msi" /qn TARGETDIR="c:\hdf5\"
68
+
69
+ call "C:\Program Files (x86)\Microsoft Visual Studio\2019\Enterprise\VC\Auxiliary\Build\vcvars64.bat" -vcvars_ver=14.0
70
+
71
+ set HDF5_DIR=C:\hdf5\HDF_Group\HDF5\1.12.0\cmake
72
+
73
+ python -m cibuildwheel --output-dir dist
74
+
55
75
  - name: Store wheel as artifact
56
76
  uses: actions/upload-artifact@v2
57
77
  with:
58
78
  name: dist
59
- path: dist
79
+ path: dist/*.whl
60
80
 
61
81
  build_sdist:
62
82
  name: Build sdist
83
+ if: github.event_name == 'push' || github.event.pull_request.head.repo.full_name != github.repository
84
+
63
85
  runs-on: ubuntu-latest
64
86
  steps:
65
87
  - uses: actions/checkout@v2
66
88
  with:
67
89
  submodules: 'true'
68
90
 
69
- - name: Set up Python 3.6
91
+ - name: Set up Python 3.7
70
92
  uses: actions/setup-python@v2
71
93
  with:
72
- python-version: 3.6
94
+ python-version: 3.7
95
+
73
96
  - name: Build a source tarball
74
97
  run:
75
98
  python setup.py sdist
99
+
76
100
  - name: Test tarball
77
101
  run: |
78
102
  sudo apt install -y libhdf5-dev
79
103
  pip install -r tests/requirement_tests.txt
80
104
  pip install dist/*
81
105
  pytest -s -v tests
106
+
82
107
  - name: Store sdist as artifact
83
108
  uses: actions/upload-artifact@v2
84
109
  with:
85
110
  name: dist
86
- path: dist
111
+ path: dist/*.tar.gz
112
+
113
+ upload_artifacts:
114
+ name: Upload wheels to PyPI
115
+ if: github.event_name == 'push' && startsWith(github.ref, 'refs/tags')
87
116
 
88
- upload_wheels:
89
117
  runs-on: ubuntu-latest
90
118
  needs: [build_wheels, build_sdist]
91
- name: Upload wheels to PyPI
119
+
92
120
  steps:
93
121
  - name: Download artifacts produced during the build_wheels and build_sdist jobs
94
122
  uses: actions/download-artifact@v2
95
123
  with:
96
124
  name: dist
97
- path: dist
125
+ path: dist/
98
126
 
99
127
  - name: Display structure of downloaded files
100
128
  run: ls -R
@@ -6,6 +6,9 @@ jobs:
6
6
  name: Run tests on ${{ matrix.os }}
7
7
  runs-on: ${{ matrix.os }}
8
8
 
9
+ # Run on external PRs, but not internal PRs as they'll be run by the push
10
+ if: github.event_name == 'push' || github.event.pull_request.head.repo.full_name != github.repository
11
+
9
12
  strategy:
10
13
  matrix:
11
14
  os: [ubuntu-latest, macos-latest]
@@ -0,0 +1,21 @@
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
+ # it appears that the conda `cmake` finds `conda` installed packages
13
+ # fine, but if cmake is installed through `pyproject.toml`, that CMake
14
+ # doesn't find HDF5, if the hdf5 headers are available by the system, then
15
+ # it works
16
+ build:
17
+ apt_packages:
18
+ - libhdf5-dev
19
+
20
+ conda:
21
+ environment: doc/environment.yml
@@ -0,0 +1,28 @@
1
+ Adrien Devresse
2
+ Ahmet Bilgili
3
+ Aleksei Sanin
4
+ Alexander Dietz
5
+ Alexandru Săvulescu
6
+ Andrew Hale
7
+ Antonio Bellotta
8
+ Arseny V. Povolotsky
9
+ Ben Beasley
10
+ Benoît Coste
11
+ Chevtchenko Grigori
12
+ Cyrille Favreau
13
+ Daniel Nachbaur
14
+ Eleftherios Zisis
15
+ Fernando Pereira
16
+ Jafet Villafranca
17
+ Jean-Denis Courcol
18
+ Juan Hernando Vieites
19
+ Matthias Wolf
20
+ Mike Gevaert (maintainer)
21
+ Mohamed-Ghaith Kaabi
22
+ Nicolas Cornu
23
+ Pablo Toharia
24
+ Raphael Dumusc
25
+ Snigda Dagar
26
+ Stefan Eilemann
27
+ Thomas Delemontex
28
+ Tristan Carel
@@ -0,0 +1,21 @@
1
+ v3.3.1
2
+
3
+ New Features:
4
+ * Dendritic spine (#321)
5
+
6
+ Fixes:
7
+ * updated tests
8
+ * use std::make_unique (#333)
9
+ * don't compile c++ tests when creating python package (#332)
10
+ * remove unused AccessMode enum (#331)
11
+ * Imbue enums with numeric operations (#330)
12
+ * allow lowercase neurite names
13
+ * allow whitespace in CellBody neurite
14
+
15
+ Previously:
16
+ - The first neurite point is no longer connected to the soma. It was previously
17
+ the case if the soma was a multiple points soma. This feature has been
18
+ removed as choosing to which point to connect is interpretation dependant and
19
+ should not be the responsability of an IO tool. This feature was already
20
+ discussed [here](https://github.com/BlueBrain/Brion/pull/94#issuecomment-248010437).
21
+ This will impact primarily the surface and volume computations.
@@ -1,7 +1,16 @@
1
- # Taken from https://github.com/BlueBrain/hpc-coding-conventions/blob/master/cpp/cmake/bob.cmake#L192-L255
2
1
  if (WIN32)
3
- set(FLAGS "${FLAGS} /DH5_BUILT_AS_DYNAMIC_LIB /EHsc /D_USE_MATH_DEFINES")
2
+ set(FLAGS "${FLAGS} /DH5_BUILT_AS_DYNAMIC_LIB")
3
+
4
+ # Exception handling
5
+ # s: Enables standard C++ stack unwinding.
6
+ # c: [assume] functions declared as extern "C" never throw a C++ exception.
7
+ set(FLAGS "${FLAGS} /EHsc")
8
+
9
+ # get access to M_PI constant
10
+ set(FLAGS "${FLAGS} /D_USE_MATH_DEFINES")
11
+
4
12
  elseif(CMAKE_CXX_COMPILER_ID MATCHES "Clang")
13
+ # Taken from https://github.com/BlueBrain/hpc-coding-conventions/blob/master/cpp/cmake/bob.cmake#L192-L255
5
14
  if(${PROJECT_NAME}_CXX_WARNINGS)
6
15
  set(FLAGS "${FLAGS} -Werror -Weverything")
7
16
  # Using std=c++11, no need for 98 compat
@@ -33,6 +42,7 @@ elseif(CMAKE_CXX_COMPILER_ID MATCHES "Clang")
33
42
  set(FLAGS "${FLAGS} -fcomment-block-commands=file")
34
43
  endif()
35
44
  endif()
45
+
36
46
  elseif(${CMAKE_CXX_COMPILER_ID} STREQUAL "GNU")
37
47
  if(${PROJECT_NAME}_CXX_WARNINGS)
38
48
  set(FLAGS "${FLAGS} -Wall")
@@ -1,6 +1,6 @@
1
1
  Metadata-Version: 2.1
2
2
  Name: MorphIO
3
- Version: 3.2.0
3
+ Version: 3.3.2
4
4
  Summary: A neuron morphology IO library
5
5
  Home-page: https://github.com/BlueBrain/MorphIO/
6
6
  Author: Blue Brain Project, EPFL
@@ -93,8 +93,8 @@ Description: |license| |build| |docs|
93
93
  :alt: documentation status
94
94
 
95
95
 
96
- Keywords: computational neuroscience,morphology,neuronneurolucidaneuromorphology
96
+ Keywords: computational neuroscience,morphology,neuron,neurolucida,neuromorphology
97
97
  Platform: UNKNOWN
98
98
  Classifier: License :: OSI Approved :: GNU Lesser General Public License v3 (LGPLv3)
99
- Description-Content-Type: text/x-rst
99
+ Description-Content-Type: text/markdown
100
100
  Provides-Extra: docs
@@ -3,13 +3,15 @@
3
3
  .gitmodules
4
4
  .readthedocs.yaml
5
5
  .travis.yml
6
- CHANGLOG.md
6
+ AUTHORS.txt
7
+ CHANGELOG.md
7
8
  CMakeLists.txt
8
9
  CONTRIBUTING.md
9
10
  COPYING
10
11
  COPYING.LESSER
11
12
  MANIFEST.in
12
13
  README.rst
14
+ pyproject.toml
13
15
  setup.py
14
16
  .github/workflows/check-sdist.yml
15
17
  .github/workflows/clang_format_check.yaml
@@ -220,6 +222,7 @@ doc/source/images/swc/three_pt.svg
220
222
  doc/source/images/swc/two_pt.svg
221
223
  examples/getting_started.ipynb
222
224
  examples/getting_started_mutable.ipynb
225
+ include/morphio/dendritic_spine.h
223
226
  include/morphio/endoplasmic_reticulum.h
224
227
  include/morphio/enums.h
225
228
  include/morphio/errorMessages.h
@@ -238,6 +241,7 @@ include/morphio/tools.h
238
241
  include/morphio/types.h
239
242
  include/morphio/vector_types.h
240
243
  include/morphio/version.h
244
+ include/morphio/mut/dendritic_spine.h
241
245
  include/morphio/mut/endoplasmic_reticulum.h
242
246
  include/morphio/mut/glial_cell.h
243
247
  include/morphio/mut/mito_section.h
@@ -256,6 +260,7 @@ morphio/mut/__init__.py
256
260
  morphio/vasculature/__init__.py
257
261
  scripts/check-clang-format-all
258
262
  src/CMakeLists.txt
263
+ src/dendritic_spine.cpp
259
264
  src/endoplasmic_reticulum.cpp
260
265
  src/enums.cpp
261
266
  src/errorMessages.cpp
@@ -269,6 +274,7 @@ src/shared_utils.hpp
269
274
  src/soma.cpp
270
275
  src/vector_utils.cpp
271
276
  src/version.cpp.in
277
+ src/mut/dendritic_spine.cpp
272
278
  src/mut/endoplasmic_reticulum.cpp
273
279
  src/mut/glial_cell.cpp
274
280
  src/mut/mito_section.cpp
@@ -315,8 +321,10 @@ tests/data/astrocyte.h5
315
321
  tests/data/circle_contour.asc
316
322
  tests/data/complexe.swc
317
323
  tests/data/disconnected_neurite.swc
324
+ tests/data/invalid-incomplete.asc
318
325
  tests/data/iterators.asc
319
326
  tests/data/marker-with-string.asc
327
+ tests/data/markers.asc
320
328
  tests/data/mono-type.asc
321
329
  tests/data/multiple_point_section.asc
322
330
  tests/data/multiple_soma.swc
@@ -354,13 +362,15 @@ tests/data/h5/v1/glia.h5
354
362
  tests/data/h5/v1/glia_empty_perimeters.h5
355
363
  tests/data/h5/v1/glia_soma_only.h5
356
364
  tests/data/h5/v1/glia_wrong_sized_perimeters.h5
357
- tests/data/h5/v1/h5v1.3.h5
365
+ tests/data/h5/v1/h5v1.4.h5
358
366
  tests/data/h5/v1/incorrect_point_columns.h5
359
367
  tests/data/h5/v1/incorrect_structure_columns.h5
368
+ tests/data/h5/v1/make-dendritic-spine.py
360
369
  tests/data/h5/v1/metadata_group_only.h5
361
370
  tests/data/h5/v1/mitochondria.h5
362
371
  tests/data/h5/v1/monodim.h5
363
372
  tests/data/h5/v1/simple-broken-section-type.h5
373
+ tests/data/h5/v1/simple-dendritric-spine.h5
364
374
  tests/data/h5/v1/simple-negative-section-type.h5
365
375
  tests/data/h5/v1/simple-two-point-soma.h5
366
376
  tests/data/h5/v1/simple.h5
@@ -1,6 +1,6 @@
1
1
  Metadata-Version: 2.1
2
2
  Name: MorphIO
3
- Version: 3.2.0
3
+ Version: 3.3.2
4
4
  Summary: A neuron morphology IO library
5
5
  Home-page: https://github.com/BlueBrain/MorphIO/
6
6
  Author: Blue Brain Project, EPFL
@@ -93,8 +93,8 @@ Description: |license| |build| |docs|
93
93
  :alt: documentation status
94
94
 
95
95
 
96
- Keywords: computational neuroscience,morphology,neuronneurolucidaneuromorphology
96
+ Keywords: computational neuroscience,morphology,neuron,neurolucida,neuromorphology
97
97
  Platform: UNKNOWN
98
98
  Classifier: License :: OSI Approved :: GNU Lesser General Public License v3 (LGPLv3)
99
- Description-Content-Type: text/x-rst
99
+ Description-Content-Type: text/markdown
100
100
  Provides-Extra: docs
@@ -1,16 +1,24 @@
1
1
  #include "bind_immutable.h"
2
2
 
3
+ #include <pybind11/iostream.h> // py::add_ostream_redirect
3
4
  #include <pybind11/pybind11.h>
4
5
  #include <pybind11/stl.h>
5
- #include <pybind11/iostream.h> // py::add_ostream_redirect
6
6
 
7
+ #include <morphio/dendritic_spine.h>
7
8
  #include <morphio/endoplasmic_reticulum.h>
8
9
  #include <morphio/enums.h>
9
10
  #include <morphio/glial_cell.h>
11
+ #include <morphio/mut/dendritic_spine.h>
12
+ #include <morphio/mut/endoplasmic_reticulum.h>
13
+ #include <morphio/mut/glial_cell.h>
14
+ #include <morphio/mut/mitochondria.h>
15
+ //#include <morphio/mut/dendritic_spine.h>
10
16
  #include <morphio/mut/morphology.h>
11
17
  #include <morphio/soma.h>
12
18
  #include <morphio/types.h>
13
19
 
20
+ #include <memory> // std::make_unique
21
+
14
22
  #include "bind_enums.h"
15
23
  #include "bindings_utils.h"
16
24
 
@@ -28,8 +36,7 @@ void bind_immutable_module(py::module& m) {
28
36
  "options"_a = morphio::enums::Option::NO_MODIFIER)
29
37
  .def(py::init<morphio::mut::Morphology&>())
30
38
  .def(py::init([](py::object arg, unsigned int options) {
31
- return std::unique_ptr<morphio::Morphology>(
32
- new morphio::Morphology(py::str(arg), options));
39
+ return std::make_unique<morphio::Morphology>(py::str(arg), options);
33
40
  }),
34
41
  "filename"_a,
35
42
  "options"_a = morphio::enums::Option::NO_MODIFIER,
@@ -151,9 +158,8 @@ void bind_immutable_module(py::module& m) {
151
158
 
152
159
  py::class_<morphio::GlialCell, morphio::Morphology>(m, "GlialCell")
153
160
  .def(py::init<const std::string&>())
154
- .def(py::init([](py::object arg) {
155
- return std::unique_ptr<morphio::GlialCell>(new morphio::GlialCell(py::str(arg)));
156
- }),
161
+ .def(py::init(
162
+ [](py::object arg) { return std::make_unique<morphio::GlialCell>(py::str(arg)); }),
157
163
  "filename"_a,
158
164
  "Additional Ctor that accepts as filename any python object that implements __repr__ "
159
165
  "or __str__");
@@ -279,8 +285,9 @@ void bind_immutable_module(py::module& m) {
279
285
  case IterType::UPSTREAM:
280
286
  return py::make_iterator(section->upstream_begin(), section->upstream_end());
281
287
  default:
282
- throw morphio::MorphioError("Only iteration types depth_first, breadth_first and "
283
- "upstream are supported");
288
+ throw morphio::MorphioError(
289
+ "Only iteration types depth_first, breadth_first and "
290
+ "upstream are supported");
284
291
  }
285
292
  },
286
293
  py::keep_alive<0, 1>() /* Essential: keep object alive while iterator exists */,
@@ -347,8 +354,9 @@ void bind_immutable_module(py::module& m) {
347
354
  case IterType::UPSTREAM:
348
355
  return py::make_iterator(section->upstream_begin(), section->upstream_end());
349
356
  default:
350
- throw morphio::MorphioError("Only iteration types depth_first, breadth_first and "
351
- "upstream are supported");
357
+ throw morphio::MorphioError(
358
+ "Only iteration types depth_first, breadth_first and "
359
+ "upstream are supported");
352
360
  }
353
361
  },
354
362
  py::keep_alive<0, 1>() /* Essential: keep object alive while iterator exists */,
@@ -357,4 +365,105 @@ void bind_immutable_module(py::module& m) {
357
365
  "If id == -1, the iteration will be successively performed starting\n"
358
366
  "at each root section",
359
367
  "iter_type"_a = IterType::DEPTH_FIRST);
368
+
369
+ py::class_<morphio::DendriticSpine, morphio::Morphology>(m, "DendriticSpine")
370
+ .def(py::init([](py::object arg) {
371
+ return std::make_unique<morphio::DendriticSpine>(py::str(arg));
372
+ }),
373
+ "filename"_a)
374
+ .def_property_readonly("root_sections",
375
+ &morphio::DendriticSpine::rootSections,
376
+ "Returns a list of all root sections "
377
+ "(sections whose parent ID are -1)")
378
+ .def_property_readonly("sections",
379
+ &morphio::DendriticSpine::sections,
380
+ "Returns a vector containing all sections objects\n\n"
381
+ "Notes:\n"
382
+ "- Soma is not included\n"
383
+ "- First section ID is 1 (0 is reserved for the soma)\n"
384
+ "- To select sections by ID use: DendriticSpine::section(id)")
385
+
386
+ .def("section",
387
+ &morphio::DendriticSpine::section,
388
+ "Returns the Section with the given id\n"
389
+ "throw RawDataError if the id is out of range",
390
+ "section_id"_a)
391
+
392
+ // Property accessors
393
+ .def_property_readonly(
394
+ "points",
395
+ [](morphio::DendriticSpine* morpho) {
396
+ const auto& data = morpho->points();
397
+ return py::array(static_cast<py::ssize_t>(data.size()), data.data());
398
+ },
399
+ "Returns a list with all points from all sections\n"
400
+ "Note: points belonging to the n'th section are located at indices:\n"
401
+ "[DendriticSpine.sectionOffsets(n), DendriticSpine.sectionOffsets(n+1)[")
402
+ .def_property_readonly(
403
+ "diameters",
404
+ [](const morphio::DendriticSpine& morpho) {
405
+ const auto& data = morpho.diameters();
406
+ return py::array(static_cast<py::ssize_t>(data.size()), data.data());
407
+ },
408
+ "Returns a list with all diameters from all sections\n"
409
+ "Note: diameters belonging to the n'th section are located at indices:\n"
410
+ "[DendriticSpine.sectionOffsets(n), DendriticSpine.sectionOffsets(n+1)[")
411
+ .def_property_readonly(
412
+ "section_offsets",
413
+ [](const morphio::DendriticSpine& morpho) {
414
+ return as_pyarray(morpho.sectionOffsets());
415
+ },
416
+ "Returns a list with offsets to access data of a specific section in the points\n"
417
+ "and diameters arrays.\n"
418
+ "\n"
419
+ "Example: accessing diameters of n'th section will be located in the DIAMETERS\n"
420
+ "array from DIAMETERS[sectionOffsets(n)] to DIAMETERS[sectionOffsets(n+1)-1]\n"
421
+ "\n"
422
+ "Note: for convenience, the last point of this array is the points array size\n"
423
+ "so that the above example works also for the last section.")
424
+ .def_property_readonly(
425
+ "section_types",
426
+ [](const morphio::DendriticSpine& morph) {
427
+ const auto& data = morph.sectionTypes();
428
+ return py::array(static_cast<py::ssize_t>(data.size()), data.data());
429
+ },
430
+ "Returns a vector with the section type of every section")
431
+ .def_property_readonly("connectivity",
432
+ &morphio::DendriticSpine::connectivity,
433
+ "Return the graph connectivity of the DendriticSpine "
434
+ "where each section is seen as a node\nNote: -1 is the soma node")
435
+ .def_property_readonly("cell_family",
436
+ &morphio::DendriticSpine::cellFamily,
437
+ "Returns the cell family (neuron or glia)")
438
+ .def_property_readonly("post_synaptic_density",
439
+ &morphio::DendriticSpine::postSynapticDensity,
440
+ "Returns the post synaptic density values")
441
+ .def_property_readonly("version", &morphio::DendriticSpine::version, "Returns the version")
442
+
443
+ // Iterators
444
+ .def(
445
+ "iter",
446
+ [](morphio::DendriticSpine* morpho, IterType type) {
447
+ switch (type) {
448
+ case IterType::DEPTH_FIRST:
449
+ return py::make_iterator(morpho->depth_begin(), morpho->depth_end());
450
+ case IterType::BREADTH_FIRST:
451
+ return py::make_iterator(morpho->breadth_begin(), morpho->breadth_end());
452
+ case IterType::UPSTREAM:
453
+ default:
454
+ throw morphio::MorphioError(
455
+ "Only iteration types depth_first and breadth_first are supported");
456
+ }
457
+ },
458
+ py::keep_alive<0, 1>() /* Essential: keep object alive while iterator exists */,
459
+ "Section iterator that runs successively on every neurite\n"
460
+ "iter_type controls the order of iteration on sections of a given neurite. 2 values "
461
+ "can be passed:\n"
462
+ "- morphio.IterType.depth_first (default)\n"
463
+ "- morphio.IterType.breadth_first (default)\n",
464
+ "iter_type"_a = IterType::DEPTH_FIRST)
465
+ .def(
466
+ "write",
467
+ [](morphio::mut::DendriticSpine* morph, py::object arg) { morph->write(py::str(arg)); },
468
+ "filename"_a);
360
469
  }