morphio 3.2.0__tar.gz → 3.3.0__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 (378) hide show
  1. {MorphIO-3.2.0 → MorphIO-3.3.0/MorphIO.egg-info}/PKG-INFO +1 -1
  2. {MorphIO-3.2.0 → MorphIO-3.3.0}/MorphIO.egg-info/SOURCES.txt +2 -0
  3. {MorphIO-3.2.0/MorphIO.egg-info → MorphIO-3.3.0}/PKG-INFO +1 -1
  4. {MorphIO-3.2.0 → MorphIO-3.3.0}/binds/python/bind_misc.cpp +5 -1
  5. {MorphIO-3.2.0 → MorphIO-3.3.0}/doc/source/markers.rst +52 -33
  6. MorphIO-3.3.0/doc/source/warnings.rst +87 -0
  7. {MorphIO-3.2.0 → MorphIO-3.3.0}/include/morphio/properties.h +1 -0
  8. {MorphIO-3.2.0 → MorphIO-3.3.0}/src/readers/morphologyASC.cpp +24 -2
  9. MorphIO-3.3.0/tests/data/invalid-incomplete.asc +22 -0
  10. MorphIO-3.3.0/tests/data/markers.asc +42 -0
  11. {MorphIO-3.2.0 → MorphIO-3.3.0}/tests/test_2_neurolucida.py +73 -78
  12. {MorphIO-3.2.0 → MorphIO-3.3.0}/tests/test_morphology_readers.cpp +10 -0
  13. MorphIO-3.2.0/doc/source/warnings.rst +0 -26
  14. {MorphIO-3.2.0 → MorphIO-3.3.0}/.clang-format +0 -0
  15. {MorphIO-3.2.0 → MorphIO-3.3.0}/.github/workflows/check-sdist.yml +0 -0
  16. {MorphIO-3.2.0 → MorphIO-3.3.0}/.github/workflows/clang_format_check.yaml +0 -0
  17. {MorphIO-3.2.0 → MorphIO-3.3.0}/.github/workflows/coverage_test.yaml +0 -0
  18. {MorphIO-3.2.0 → MorphIO-3.3.0}/.github/workflows/docstring_check.yaml +0 -0
  19. {MorphIO-3.2.0 → MorphIO-3.3.0}/.github/workflows/publish-sdist-wheels.yml +0 -0
  20. {MorphIO-3.2.0 → MorphIO-3.3.0}/.github/workflows/run-tests.yml +0 -0
  21. {MorphIO-3.2.0 → MorphIO-3.3.0}/.gitignore +0 -0
  22. {MorphIO-3.2.0 → MorphIO-3.3.0}/.gitmodules +0 -0
  23. {MorphIO-3.2.0 → MorphIO-3.3.0}/.readthedocs.yaml +0 -0
  24. {MorphIO-3.2.0 → MorphIO-3.3.0}/.travis.yml +0 -0
  25. {MorphIO-3.2.0 → MorphIO-3.3.0}/3rdparty/CMakeLists.txt +0 -0
  26. {MorphIO-3.2.0 → MorphIO-3.3.0}/3rdparty/GSL_LITE/CMakeLists.txt +0 -0
  27. {MorphIO-3.2.0 → MorphIO-3.3.0}/3rdparty/GSL_LITE/cmake/PackageConfig.cmake.in +0 -0
  28. {MorphIO-3.2.0 → MorphIO-3.3.0}/3rdparty/GSL_LITE/gsl-lite.natvis +0 -0
  29. {MorphIO-3.2.0 → MorphIO-3.3.0}/3rdparty/GSL_LITE/include/gsl/gsl +0 -0
  30. {MorphIO-3.2.0 → MorphIO-3.3.0}/3rdparty/GSL_LITE/include/gsl/gsl-lite-vc6.hpp +0 -0
  31. {MorphIO-3.2.0 → MorphIO-3.3.0}/3rdparty/GSL_LITE/include/gsl/gsl-lite.h +0 -0
  32. {MorphIO-3.2.0 → MorphIO-3.3.0}/3rdparty/GSL_LITE/include/gsl/gsl-lite.hpp +0 -0
  33. {MorphIO-3.2.0 → MorphIO-3.3.0}/3rdparty/GSL_LITE/include/gsl.h +0 -0
  34. {MorphIO-3.2.0 → MorphIO-3.3.0}/3rdparty/GSL_LITE/include/gsl.hpp +0 -0
  35. {MorphIO-3.2.0 → MorphIO-3.3.0}/3rdparty/HighFive/CMake/HighFiveConfig.cmake.in +0 -0
  36. {MorphIO-3.2.0 → MorphIO-3.3.0}/3rdparty/HighFive/CMake/HighFiveTargetDeps.cmake +0 -0
  37. {MorphIO-3.2.0 → MorphIO-3.3.0}/3rdparty/HighFive/CMake/HighFiveTargetExport.cmake +0 -0
  38. {MorphIO-3.2.0 → MorphIO-3.3.0}/3rdparty/HighFive/CMake/config/CompilerFlagsHelpers.cmake +0 -0
  39. {MorphIO-3.2.0 → MorphIO-3.3.0}/3rdparty/HighFive/CMake/config/ReleaseDebugAutoFlags.cmake +0 -0
  40. {MorphIO-3.2.0 → MorphIO-3.3.0}/3rdparty/HighFive/CMake/config/TestHelpers.cmake +0 -0
  41. {MorphIO-3.2.0 → MorphIO-3.3.0}/3rdparty/HighFive/CMake/portability/BlueGenePortability.cmake +0 -0
  42. {MorphIO-3.2.0 → MorphIO-3.3.0}/3rdparty/HighFive/CMake/portability/CheckCXXStandardSupport.cmake +0 -0
  43. {MorphIO-3.2.0 → MorphIO-3.3.0}/3rdparty/HighFive/CMakeLists.txt +0 -0
  44. {MorphIO-3.2.0 → MorphIO-3.3.0}/3rdparty/HighFive/doc/CMakeLists.txt +0 -0
  45. {MorphIO-3.2.0 → MorphIO-3.3.0}/3rdparty/HighFive/doc/Doxyfile +0 -0
  46. {MorphIO-3.2.0 → MorphIO-3.3.0}/3rdparty/HighFive/doc/mainpage.md +0 -0
  47. {MorphIO-3.2.0 → MorphIO-3.3.0}/3rdparty/HighFive/include/highfive/H5Attribute.hpp +0 -0
  48. {MorphIO-3.2.0 → MorphIO-3.3.0}/3rdparty/HighFive/include/highfive/H5DataSet.hpp +0 -0
  49. {MorphIO-3.2.0 → MorphIO-3.3.0}/3rdparty/HighFive/include/highfive/H5DataSpace.hpp +0 -0
  50. {MorphIO-3.2.0 → MorphIO-3.3.0}/3rdparty/HighFive/include/highfive/H5DataType.hpp +0 -0
  51. {MorphIO-3.2.0 → MorphIO-3.3.0}/3rdparty/HighFive/include/highfive/H5Easy.hpp +0 -0
  52. {MorphIO-3.2.0 → MorphIO-3.3.0}/3rdparty/HighFive/include/highfive/H5Exception.hpp +0 -0
  53. {MorphIO-3.2.0 → MorphIO-3.3.0}/3rdparty/HighFive/include/highfive/H5File.hpp +0 -0
  54. {MorphIO-3.2.0 → MorphIO-3.3.0}/3rdparty/HighFive/include/highfive/H5FileDriver.hpp +0 -0
  55. {MorphIO-3.2.0 → MorphIO-3.3.0}/3rdparty/HighFive/include/highfive/H5Group.hpp +0 -0
  56. {MorphIO-3.2.0 → MorphIO-3.3.0}/3rdparty/HighFive/include/highfive/H5Object.hpp +0 -0
  57. {MorphIO-3.2.0 → MorphIO-3.3.0}/3rdparty/HighFive/include/highfive/H5PropertyList.hpp +0 -0
  58. {MorphIO-3.2.0 → MorphIO-3.3.0}/3rdparty/HighFive/include/highfive/H5Reference.hpp +0 -0
  59. {MorphIO-3.2.0 → MorphIO-3.3.0}/3rdparty/HighFive/include/highfive/H5Selection.hpp +0 -0
  60. {MorphIO-3.2.0 → MorphIO-3.3.0}/3rdparty/HighFive/include/highfive/H5Utility.hpp +0 -0
  61. {MorphIO-3.2.0 → MorphIO-3.3.0}/3rdparty/HighFive/include/highfive/H5Version.hpp.in +0 -0
  62. {MorphIO-3.2.0 → MorphIO-3.3.0}/3rdparty/HighFive/include/highfive/bits/H5Annotate_traits.hpp +0 -0
  63. {MorphIO-3.2.0 → MorphIO-3.3.0}/3rdparty/HighFive/include/highfive/bits/H5Annotate_traits_misc.hpp +0 -0
  64. {MorphIO-3.2.0 → MorphIO-3.3.0}/3rdparty/HighFive/include/highfive/bits/H5Attribute_misc.hpp +0 -0
  65. {MorphIO-3.2.0 → MorphIO-3.3.0}/3rdparty/HighFive/include/highfive/bits/H5ConverterEigen_misc.hpp +0 -0
  66. {MorphIO-3.2.0 → MorphIO-3.3.0}/3rdparty/HighFive/include/highfive/bits/H5Converter_misc.hpp +0 -0
  67. {MorphIO-3.2.0 → MorphIO-3.3.0}/3rdparty/HighFive/include/highfive/bits/H5DataSet_misc.hpp +0 -0
  68. {MorphIO-3.2.0 → MorphIO-3.3.0}/3rdparty/HighFive/include/highfive/bits/H5DataType_misc.hpp +0 -0
  69. {MorphIO-3.2.0 → MorphIO-3.3.0}/3rdparty/HighFive/include/highfive/bits/H5Dataspace_misc.hpp +0 -0
  70. {MorphIO-3.2.0 → MorphIO-3.3.0}/3rdparty/HighFive/include/highfive/bits/H5Exception_misc.hpp +0 -0
  71. {MorphIO-3.2.0 → MorphIO-3.3.0}/3rdparty/HighFive/include/highfive/bits/H5FileDriver_misc.hpp +0 -0
  72. {MorphIO-3.2.0 → MorphIO-3.3.0}/3rdparty/HighFive/include/highfive/bits/H5File_misc.hpp +0 -0
  73. {MorphIO-3.2.0 → MorphIO-3.3.0}/3rdparty/HighFive/include/highfive/bits/H5Iterables_misc.hpp +0 -0
  74. {MorphIO-3.2.0 → MorphIO-3.3.0}/3rdparty/HighFive/include/highfive/bits/H5Node_traits.hpp +0 -0
  75. {MorphIO-3.2.0 → MorphIO-3.3.0}/3rdparty/HighFive/include/highfive/bits/H5Node_traits_misc.hpp +0 -0
  76. {MorphIO-3.2.0 → MorphIO-3.3.0}/3rdparty/HighFive/include/highfive/bits/H5Object_misc.hpp +0 -0
  77. {MorphIO-3.2.0 → MorphIO-3.3.0}/3rdparty/HighFive/include/highfive/bits/H5PropertyList_misc.hpp +0 -0
  78. {MorphIO-3.2.0 → MorphIO-3.3.0}/3rdparty/HighFive/include/highfive/bits/H5ReadWrite_misc.hpp +0 -0
  79. {MorphIO-3.2.0 → MorphIO-3.3.0}/3rdparty/HighFive/include/highfive/bits/H5Reference_misc.hpp +0 -0
  80. {MorphIO-3.2.0 → MorphIO-3.3.0}/3rdparty/HighFive/include/highfive/bits/H5Selection_misc.hpp +0 -0
  81. {MorphIO-3.2.0 → MorphIO-3.3.0}/3rdparty/HighFive/include/highfive/bits/H5Slice_traits.hpp +0 -0
  82. {MorphIO-3.2.0 → MorphIO-3.3.0}/3rdparty/HighFive/include/highfive/bits/H5Slice_traits_misc.hpp +0 -0
  83. {MorphIO-3.2.0 → MorphIO-3.3.0}/3rdparty/HighFive/include/highfive/bits/H5Utils.hpp +0 -0
  84. {MorphIO-3.2.0 → MorphIO-3.3.0}/3rdparty/HighFive/include/highfive/bits/H5_definitions.hpp +0 -0
  85. {MorphIO-3.2.0 → MorphIO-3.3.0}/3rdparty/HighFive/include/highfive/h5easy_bits/H5Easy_Eigen.hpp +0 -0
  86. {MorphIO-3.2.0 → MorphIO-3.3.0}/3rdparty/HighFive/include/highfive/h5easy_bits/H5Easy_misc.hpp +0 -0
  87. {MorphIO-3.2.0 → MorphIO-3.3.0}/3rdparty/HighFive/include/highfive/h5easy_bits/H5Easy_opencv.hpp +0 -0
  88. {MorphIO-3.2.0 → MorphIO-3.3.0}/3rdparty/HighFive/include/highfive/h5easy_bits/H5Easy_public.hpp +0 -0
  89. {MorphIO-3.2.0 → MorphIO-3.3.0}/3rdparty/HighFive/include/highfive/h5easy_bits/H5Easy_scalar.hpp +0 -0
  90. {MorphIO-3.2.0 → MorphIO-3.3.0}/3rdparty/HighFive/include/highfive/h5easy_bits/H5Easy_vector.hpp +0 -0
  91. {MorphIO-3.2.0 → MorphIO-3.3.0}/3rdparty/HighFive/include/highfive/h5easy_bits/H5Easy_xtensor.hpp +0 -0
  92. {MorphIO-3.2.0 → MorphIO-3.3.0}/3rdparty/lexertl14/CMakeLists.txt +0 -0
  93. {MorphIO-3.2.0 → MorphIO-3.3.0}/3rdparty/lexertl14/include/lexertl/char_traits.hpp +0 -0
  94. {MorphIO-3.2.0 → MorphIO-3.3.0}/3rdparty/lexertl14/include/lexertl/debug.hpp +0 -0
  95. {MorphIO-3.2.0 → MorphIO-3.3.0}/3rdparty/lexertl14/include/lexertl/dot.hpp +0 -0
  96. {MorphIO-3.2.0 → MorphIO-3.3.0}/3rdparty/lexertl14/include/lexertl/enums.hpp +0 -0
  97. {MorphIO-3.2.0 → MorphIO-3.3.0}/3rdparty/lexertl14/include/lexertl/generate_cpp.hpp +0 -0
  98. {MorphIO-3.2.0 → MorphIO-3.3.0}/3rdparty/lexertl14/include/lexertl/generator.hpp +0 -0
  99. {MorphIO-3.2.0 → MorphIO-3.3.0}/3rdparty/lexertl14/include/lexertl/internals.hpp +0 -0
  100. {MorphIO-3.2.0 → MorphIO-3.3.0}/3rdparty/lexertl14/include/lexertl/iterator.hpp +0 -0
  101. {MorphIO-3.2.0 → MorphIO-3.3.0}/3rdparty/lexertl14/include/lexertl/licence_1_0.txt +0 -0
  102. {MorphIO-3.2.0 → MorphIO-3.3.0}/3rdparty/lexertl14/include/lexertl/lookup.hpp +0 -0
  103. {MorphIO-3.2.0 → MorphIO-3.3.0}/3rdparty/lexertl14/include/lexertl/match_results.hpp +0 -0
  104. {MorphIO-3.2.0 → MorphIO-3.3.0}/3rdparty/lexertl14/include/lexertl/memory_file.hpp +0 -0
  105. {MorphIO-3.2.0 → MorphIO-3.3.0}/3rdparty/lexertl14/include/lexertl/narrow.hpp +0 -0
  106. {MorphIO-3.2.0 → MorphIO-3.3.0}/3rdparty/lexertl14/include/lexertl/observer_ptr.hpp +0 -0
  107. {MorphIO-3.2.0 → MorphIO-3.3.0}/3rdparty/lexertl14/include/lexertl/parser/parser.hpp +0 -0
  108. {MorphIO-3.2.0 → MorphIO-3.3.0}/3rdparty/lexertl14/include/lexertl/parser/tokeniser/blocks.hpp +0 -0
  109. {MorphIO-3.2.0 → MorphIO-3.3.0}/3rdparty/lexertl14/include/lexertl/parser/tokeniser/fold2.inc +0 -0
  110. {MorphIO-3.2.0 → MorphIO-3.3.0}/3rdparty/lexertl14/include/lexertl/parser/tokeniser/fold4.inc +0 -0
  111. {MorphIO-3.2.0 → MorphIO-3.3.0}/3rdparty/lexertl14/include/lexertl/parser/tokeniser/re_token.hpp +0 -0
  112. {MorphIO-3.2.0 → MorphIO-3.3.0}/3rdparty/lexertl14/include/lexertl/parser/tokeniser/re_tokeniser.hpp +0 -0
  113. {MorphIO-3.2.0 → MorphIO-3.3.0}/3rdparty/lexertl14/include/lexertl/parser/tokeniser/re_tokeniser_helper.hpp +0 -0
  114. {MorphIO-3.2.0 → MorphIO-3.3.0}/3rdparty/lexertl14/include/lexertl/parser/tokeniser/re_tokeniser_state.hpp +0 -0
  115. {MorphIO-3.2.0 → MorphIO-3.3.0}/3rdparty/lexertl14/include/lexertl/parser/tokeniser/scripts.hpp +0 -0
  116. {MorphIO-3.2.0 → MorphIO-3.3.0}/3rdparty/lexertl14/include/lexertl/parser/tokeniser/table.inc +0 -0
  117. {MorphIO-3.2.0 → MorphIO-3.3.0}/3rdparty/lexertl14/include/lexertl/parser/tokeniser/unicode.hpp +0 -0
  118. {MorphIO-3.2.0 → MorphIO-3.3.0}/3rdparty/lexertl14/include/lexertl/parser/tree/end_node.hpp +0 -0
  119. {MorphIO-3.2.0 → MorphIO-3.3.0}/3rdparty/lexertl14/include/lexertl/parser/tree/iteration_node.hpp +0 -0
  120. {MorphIO-3.2.0 → MorphIO-3.3.0}/3rdparty/lexertl14/include/lexertl/parser/tree/leaf_node.hpp +0 -0
  121. {MorphIO-3.2.0 → MorphIO-3.3.0}/3rdparty/lexertl14/include/lexertl/parser/tree/node.hpp +0 -0
  122. {MorphIO-3.2.0 → MorphIO-3.3.0}/3rdparty/lexertl14/include/lexertl/parser/tree/selection_node.hpp +0 -0
  123. {MorphIO-3.2.0 → MorphIO-3.3.0}/3rdparty/lexertl14/include/lexertl/parser/tree/sequence_node.hpp +0 -0
  124. {MorphIO-3.2.0 → MorphIO-3.3.0}/3rdparty/lexertl14/include/lexertl/partition/charset.hpp +0 -0
  125. {MorphIO-3.2.0 → MorphIO-3.3.0}/3rdparty/lexertl14/include/lexertl/partition/equivset.hpp +0 -0
  126. {MorphIO-3.2.0 → MorphIO-3.3.0}/3rdparty/lexertl14/include/lexertl/rules.hpp +0 -0
  127. {MorphIO-3.2.0 → MorphIO-3.3.0}/3rdparty/lexertl14/include/lexertl/runtime_error.hpp +0 -0
  128. {MorphIO-3.2.0 → MorphIO-3.3.0}/3rdparty/lexertl14/include/lexertl/serialise.hpp +0 -0
  129. {MorphIO-3.2.0 → MorphIO-3.3.0}/3rdparty/lexertl14/include/lexertl/sm_to_csm.hpp +0 -0
  130. {MorphIO-3.2.0 → MorphIO-3.3.0}/3rdparty/lexertl14/include/lexertl/sm_traits.hpp +0 -0
  131. {MorphIO-3.2.0 → MorphIO-3.3.0}/3rdparty/lexertl14/include/lexertl/state_machine.hpp +0 -0
  132. {MorphIO-3.2.0 → MorphIO-3.3.0}/3rdparty/lexertl14/include/lexertl/stream_shared_iterator.hpp +0 -0
  133. {MorphIO-3.2.0 → MorphIO-3.3.0}/3rdparty/lexertl14/include/lexertl/string_token.hpp +0 -0
  134. {MorphIO-3.2.0 → MorphIO-3.3.0}/3rdparty/lexertl14/include/lexertl/utf_iterators.hpp +0 -0
  135. {MorphIO-3.2.0 → MorphIO-3.3.0}/3rdparty/pybind11/CMakeLists.txt +0 -0
  136. {MorphIO-3.2.0 → MorphIO-3.3.0}/3rdparty/pybind11/include/pybind11/attr.h +0 -0
  137. {MorphIO-3.2.0 → MorphIO-3.3.0}/3rdparty/pybind11/include/pybind11/buffer_info.h +0 -0
  138. {MorphIO-3.2.0 → MorphIO-3.3.0}/3rdparty/pybind11/include/pybind11/cast.h +0 -0
  139. {MorphIO-3.2.0 → MorphIO-3.3.0}/3rdparty/pybind11/include/pybind11/chrono.h +0 -0
  140. {MorphIO-3.2.0 → MorphIO-3.3.0}/3rdparty/pybind11/include/pybind11/common.h +0 -0
  141. {MorphIO-3.2.0 → MorphIO-3.3.0}/3rdparty/pybind11/include/pybind11/complex.h +0 -0
  142. {MorphIO-3.2.0 → MorphIO-3.3.0}/3rdparty/pybind11/include/pybind11/detail/class.h +0 -0
  143. {MorphIO-3.2.0 → MorphIO-3.3.0}/3rdparty/pybind11/include/pybind11/detail/common.h +0 -0
  144. {MorphIO-3.2.0 → MorphIO-3.3.0}/3rdparty/pybind11/include/pybind11/detail/descr.h +0 -0
  145. {MorphIO-3.2.0 → MorphIO-3.3.0}/3rdparty/pybind11/include/pybind11/detail/init.h +0 -0
  146. {MorphIO-3.2.0 → MorphIO-3.3.0}/3rdparty/pybind11/include/pybind11/detail/internals.h +0 -0
  147. {MorphIO-3.2.0 → MorphIO-3.3.0}/3rdparty/pybind11/include/pybind11/detail/typeid.h +0 -0
  148. {MorphIO-3.2.0 → MorphIO-3.3.0}/3rdparty/pybind11/include/pybind11/eigen.h +0 -0
  149. {MorphIO-3.2.0 → MorphIO-3.3.0}/3rdparty/pybind11/include/pybind11/embed.h +0 -0
  150. {MorphIO-3.2.0 → MorphIO-3.3.0}/3rdparty/pybind11/include/pybind11/eval.h +0 -0
  151. {MorphIO-3.2.0 → MorphIO-3.3.0}/3rdparty/pybind11/include/pybind11/functional.h +0 -0
  152. {MorphIO-3.2.0 → MorphIO-3.3.0}/3rdparty/pybind11/include/pybind11/iostream.h +0 -0
  153. {MorphIO-3.2.0 → MorphIO-3.3.0}/3rdparty/pybind11/include/pybind11/numpy.h +0 -0
  154. {MorphIO-3.2.0 → MorphIO-3.3.0}/3rdparty/pybind11/include/pybind11/operators.h +0 -0
  155. {MorphIO-3.2.0 → MorphIO-3.3.0}/3rdparty/pybind11/include/pybind11/options.h +0 -0
  156. {MorphIO-3.2.0 → MorphIO-3.3.0}/3rdparty/pybind11/include/pybind11/pybind11.h +0 -0
  157. {MorphIO-3.2.0 → MorphIO-3.3.0}/3rdparty/pybind11/include/pybind11/pytypes.h +0 -0
  158. {MorphIO-3.2.0 → MorphIO-3.3.0}/3rdparty/pybind11/include/pybind11/stl.h +0 -0
  159. {MorphIO-3.2.0 → MorphIO-3.3.0}/3rdparty/pybind11/include/pybind11/stl_bind.h +0 -0
  160. {MorphIO-3.2.0 → MorphIO-3.3.0}/3rdparty/pybind11/tools/FindCatch.cmake +0 -0
  161. {MorphIO-3.2.0 → MorphIO-3.3.0}/3rdparty/pybind11/tools/FindEigen3.cmake +0 -0
  162. {MorphIO-3.2.0 → MorphIO-3.3.0}/3rdparty/pybind11/tools/FindPythonLibsNew.cmake +0 -0
  163. {MorphIO-3.2.0 → MorphIO-3.3.0}/3rdparty/pybind11/tools/check-style.sh +0 -0
  164. {MorphIO-3.2.0 → MorphIO-3.3.0}/3rdparty/pybind11/tools/libsize.py +0 -0
  165. {MorphIO-3.2.0 → MorphIO-3.3.0}/3rdparty/pybind11/tools/mkdoc.py +0 -0
  166. {MorphIO-3.2.0 → MorphIO-3.3.0}/3rdparty/pybind11/tools/pybind11Config.cmake.in +0 -0
  167. {MorphIO-3.2.0 → MorphIO-3.3.0}/3rdparty/pybind11/tools/pybind11Tools.cmake +0 -0
  168. {MorphIO-3.2.0 → MorphIO-3.3.0}/CHANGLOG.md +0 -0
  169. {MorphIO-3.2.0 → MorphIO-3.3.0}/CMake/CodeCoverage.cmake +0 -0
  170. {MorphIO-3.2.0 → MorphIO-3.3.0}/CMake/CompilerFlags.cmake +0 -0
  171. {MorphIO-3.2.0 → MorphIO-3.3.0}/CMake/MorphIOConfig.cmake +0 -0
  172. {MorphIO-3.2.0 → MorphIO-3.3.0}/CMakeLists.txt +0 -0
  173. {MorphIO-3.2.0 → MorphIO-3.3.0}/CONTRIBUTING.md +0 -0
  174. {MorphIO-3.2.0 → MorphIO-3.3.0}/COPYING +0 -0
  175. {MorphIO-3.2.0 → MorphIO-3.3.0}/COPYING.LESSER +0 -0
  176. {MorphIO-3.2.0 → MorphIO-3.3.0}/MANIFEST.in +0 -0
  177. {MorphIO-3.2.0 → MorphIO-3.3.0}/MorphIO.egg-info/dependency_links.txt +0 -0
  178. {MorphIO-3.2.0 → MorphIO-3.3.0}/MorphIO.egg-info/not-zip-safe +0 -0
  179. {MorphIO-3.2.0 → MorphIO-3.3.0}/MorphIO.egg-info/requires.txt +0 -0
  180. {MorphIO-3.2.0 → MorphIO-3.3.0}/MorphIO.egg-info/top_level.txt +0 -0
  181. {MorphIO-3.2.0 → MorphIO-3.3.0}/README.rst +0 -0
  182. {MorphIO-3.2.0 → MorphIO-3.3.0}/binds/python/CMakeLists.txt +0 -0
  183. {MorphIO-3.2.0 → MorphIO-3.3.0}/binds/python/bind_enums.h +0 -0
  184. {MorphIO-3.2.0 → MorphIO-3.3.0}/binds/python/bind_immutable.cpp +0 -0
  185. {MorphIO-3.2.0 → MorphIO-3.3.0}/binds/python/bind_immutable.h +0 -0
  186. {MorphIO-3.2.0 → MorphIO-3.3.0}/binds/python/bind_misc.h +0 -0
  187. {MorphIO-3.2.0 → MorphIO-3.3.0}/binds/python/bind_mutable.cpp +0 -0
  188. {MorphIO-3.2.0 → MorphIO-3.3.0}/binds/python/bind_mutable.h +0 -0
  189. {MorphIO-3.2.0 → MorphIO-3.3.0}/binds/python/bind_vasculature.cpp +0 -0
  190. {MorphIO-3.2.0 → MorphIO-3.3.0}/binds/python/bind_vasculature.h +0 -0
  191. {MorphIO-3.2.0 → MorphIO-3.3.0}/binds/python/bindings_utils.cpp +0 -0
  192. {MorphIO-3.2.0 → MorphIO-3.3.0}/binds/python/bindings_utils.h +0 -0
  193. {MorphIO-3.2.0 → MorphIO-3.3.0}/binds/python/generated/.clang-format +0 -0
  194. {MorphIO-3.2.0 → MorphIO-3.3.0}/binds/python/generated/docstrings.h +0 -0
  195. {MorphIO-3.2.0 → MorphIO-3.3.0}/binds/python/morphio.cpp +0 -0
  196. {MorphIO-3.2.0 → MorphIO-3.3.0}/ci/check_clang_format.sh +0 -0
  197. {MorphIO-3.2.0 → MorphIO-3.3.0}/ci/check_generated_docstrings.sh +0 -0
  198. {MorphIO-3.2.0 → MorphIO-3.3.0}/ci/coverage_test.sh +0 -0
  199. {MorphIO-3.2.0 → MorphIO-3.3.0}/ci/cpp_test.sh +0 -0
  200. {MorphIO-3.2.0 → MorphIO-3.3.0}/ci/python_test.sh +0 -0
  201. {MorphIO-3.2.0 → MorphIO-3.3.0}/doc/Makefile +0 -0
  202. {MorphIO-3.2.0 → MorphIO-3.3.0}/doc/README.md +0 -0
  203. {MorphIO-3.2.0 → MorphIO-3.3.0}/doc/environment.yml +0 -0
  204. {MorphIO-3.2.0 → MorphIO-3.3.0}/doc/source/Doxyfile +0 -0
  205. {MorphIO-3.2.0 → MorphIO-3.3.0}/doc/source/DoxygenLayout.xml +0 -0
  206. {MorphIO-3.2.0 → MorphIO-3.3.0}/doc/source/_templates/doxygen_page.rst_t +0 -0
  207. {MorphIO-3.2.0 → MorphIO-3.3.0}/doc/source/conf.py +0 -0
  208. {MorphIO-3.2.0 → MorphIO-3.3.0}/doc/source/cpp.rst +0 -0
  209. {MorphIO-3.2.0 → MorphIO-3.3.0}/doc/source/doxygen/.gitignore +0 -0
  210. {MorphIO-3.2.0 → MorphIO-3.3.0}/doc/source/footer.html +0 -0
  211. {MorphIO-3.2.0 → MorphIO-3.3.0}/doc/source/glia.rst +0 -0
  212. {MorphIO-3.2.0 → MorphIO-3.3.0}/doc/source/header.html +0 -0
  213. {MorphIO-3.2.0 → MorphIO-3.3.0}/doc/source/images/section_segment.svg +0 -0
  214. {MorphIO-3.2.0 → MorphIO-3.3.0}/doc/source/images/sections.svg +0 -0
  215. {MorphIO-3.2.0 → MorphIO-3.3.0}/doc/source/images/swc/sequential.svg +0 -0
  216. {MorphIO-3.2.0 → MorphIO-3.3.0}/doc/source/images/swc/sphere.svg +0 -0
  217. {MorphIO-3.2.0 → MorphIO-3.3.0}/doc/source/images/swc/split.svg +0 -0
  218. {MorphIO-3.2.0 → MorphIO-3.3.0}/doc/source/images/swc/three_pt.svg +0 -0
  219. {MorphIO-3.2.0 → MorphIO-3.3.0}/doc/source/images/swc/two_pt.svg +0 -0
  220. {MorphIO-3.2.0 → MorphIO-3.3.0}/doc/source/index.rst +0 -0
  221. {MorphIO-3.2.0 → MorphIO-3.3.0}/doc/source/install.rst +0 -0
  222. {MorphIO-3.2.0 → MorphIO-3.3.0}/doc/source/mitochondria.rst +0 -0
  223. {MorphIO-3.2.0 → MorphIO-3.3.0}/doc/source/morphology.rst +0 -0
  224. {MorphIO-3.2.0 → MorphIO-3.3.0}/doc/source/python.rst +0 -0
  225. {MorphIO-3.2.0 → MorphIO-3.3.0}/doc/source/reticulum.rst +0 -0
  226. {MorphIO-3.2.0 → MorphIO-3.3.0}/doc/source/specification.rst +0 -0
  227. {MorphIO-3.2.0 → MorphIO-3.3.0}/doc/source/specification_neurolucida.rst +0 -0
  228. {MorphIO-3.2.0 → MorphIO-3.3.0}/examples/getting_started.ipynb +0 -0
  229. {MorphIO-3.2.0 → MorphIO-3.3.0}/examples/getting_started_mutable.ipynb +0 -0
  230. {MorphIO-3.2.0 → MorphIO-3.3.0}/include/morphio/endoplasmic_reticulum.h +0 -0
  231. {MorphIO-3.2.0 → MorphIO-3.3.0}/include/morphio/enums.h +0 -0
  232. {MorphIO-3.2.0 → MorphIO-3.3.0}/include/morphio/errorMessages.h +0 -0
  233. {MorphIO-3.2.0 → MorphIO-3.3.0}/include/morphio/exceptions.h +0 -0
  234. {MorphIO-3.2.0 → MorphIO-3.3.0}/include/morphio/glial_cell.h +0 -0
  235. {MorphIO-3.2.0 → MorphIO-3.3.0}/include/morphio/mito_section.h +0 -0
  236. {MorphIO-3.2.0 → MorphIO-3.3.0}/include/morphio/mitochondria.h +0 -0
  237. {MorphIO-3.2.0 → MorphIO-3.3.0}/include/morphio/morphology.h +0 -0
  238. {MorphIO-3.2.0 → MorphIO-3.3.0}/include/morphio/mut/endoplasmic_reticulum.h +0 -0
  239. {MorphIO-3.2.0 → MorphIO-3.3.0}/include/morphio/mut/glial_cell.h +0 -0
  240. {MorphIO-3.2.0 → MorphIO-3.3.0}/include/morphio/mut/mito_section.h +0 -0
  241. {MorphIO-3.2.0 → MorphIO-3.3.0}/include/morphio/mut/mitochondria.h +0 -0
  242. {MorphIO-3.2.0 → MorphIO-3.3.0}/include/morphio/mut/modifiers.h +0 -0
  243. {MorphIO-3.2.0 → MorphIO-3.3.0}/include/morphio/mut/morphology.h +0 -0
  244. {MorphIO-3.2.0 → MorphIO-3.3.0}/include/morphio/mut/section.h +0 -0
  245. {MorphIO-3.2.0 → MorphIO-3.3.0}/include/morphio/mut/soma.h +0 -0
  246. {MorphIO-3.2.0 → MorphIO-3.3.0}/include/morphio/mut/writers.h +0 -0
  247. {MorphIO-3.2.0 → MorphIO-3.3.0}/include/morphio/section.h +0 -0
  248. {MorphIO-3.2.0 → MorphIO-3.3.0}/include/morphio/section_base.h +0 -0
  249. {MorphIO-3.2.0 → MorphIO-3.3.0}/include/morphio/section_base.tpp +0 -0
  250. {MorphIO-3.2.0 → MorphIO-3.3.0}/include/morphio/section_iterators.hpp +0 -0
  251. {MorphIO-3.2.0 → MorphIO-3.3.0}/include/morphio/soma.h +0 -0
  252. {MorphIO-3.2.0 → MorphIO-3.3.0}/include/morphio/tools.h +0 -0
  253. {MorphIO-3.2.0 → MorphIO-3.3.0}/include/morphio/types.h +0 -0
  254. {MorphIO-3.2.0 → MorphIO-3.3.0}/include/morphio/vasc/iterators.hpp +0 -0
  255. {MorphIO-3.2.0 → MorphIO-3.3.0}/include/morphio/vasc/properties.h +0 -0
  256. {MorphIO-3.2.0 → MorphIO-3.3.0}/include/morphio/vasc/section.h +0 -0
  257. {MorphIO-3.2.0 → MorphIO-3.3.0}/include/morphio/vasc/vasculature.h +0 -0
  258. {MorphIO-3.2.0 → MorphIO-3.3.0}/include/morphio/vector_types.h +0 -0
  259. {MorphIO-3.2.0 → MorphIO-3.3.0}/include/morphio/version.h +0 -0
  260. {MorphIO-3.2.0 → MorphIO-3.3.0}/morphio/__init__.py +0 -0
  261. {MorphIO-3.2.0 → MorphIO-3.3.0}/morphio/mut/__init__.py +0 -0
  262. {MorphIO-3.2.0 → MorphIO-3.3.0}/morphio/vasculature/__init__.py +0 -0
  263. {MorphIO-3.2.0 → MorphIO-3.3.0}/scripts/check-clang-format-all +0 -0
  264. {MorphIO-3.2.0 → MorphIO-3.3.0}/setup.cfg +0 -0
  265. {MorphIO-3.2.0 → MorphIO-3.3.0}/setup.py +0 -0
  266. {MorphIO-3.2.0 → MorphIO-3.3.0}/src/CMakeLists.txt +0 -0
  267. {MorphIO-3.2.0 → MorphIO-3.3.0}/src/endoplasmic_reticulum.cpp +0 -0
  268. {MorphIO-3.2.0 → MorphIO-3.3.0}/src/enums.cpp +0 -0
  269. {MorphIO-3.2.0 → MorphIO-3.3.0}/src/errorMessages.cpp +0 -0
  270. {MorphIO-3.2.0 → MorphIO-3.3.0}/src/glial_cell.cpp +0 -0
  271. {MorphIO-3.2.0 → MorphIO-3.3.0}/src/mito_section.cpp +0 -0
  272. {MorphIO-3.2.0 → MorphIO-3.3.0}/src/mitochondria.cpp +0 -0
  273. {MorphIO-3.2.0 → MorphIO-3.3.0}/src/morphology.cpp +0 -0
  274. {MorphIO-3.2.0 → MorphIO-3.3.0}/src/mut/endoplasmic_reticulum.cpp +0 -0
  275. {MorphIO-3.2.0 → MorphIO-3.3.0}/src/mut/glial_cell.cpp +0 -0
  276. {MorphIO-3.2.0 → MorphIO-3.3.0}/src/mut/mito_section.cpp +0 -0
  277. {MorphIO-3.2.0 → MorphIO-3.3.0}/src/mut/mitochondria.cpp +0 -0
  278. {MorphIO-3.2.0 → MorphIO-3.3.0}/src/mut/modifiers.cpp +0 -0
  279. {MorphIO-3.2.0 → MorphIO-3.3.0}/src/mut/morphology.cpp +0 -0
  280. {MorphIO-3.2.0 → MorphIO-3.3.0}/src/mut/section.cpp +0 -0
  281. {MorphIO-3.2.0 → MorphIO-3.3.0}/src/mut/soma.cpp +0 -0
  282. {MorphIO-3.2.0 → MorphIO-3.3.0}/src/mut/writers.cpp +0 -0
  283. {MorphIO-3.2.0 → MorphIO-3.3.0}/src/properties.cpp +0 -0
  284. {MorphIO-3.2.0 → MorphIO-3.3.0}/src/readers/lex.cpp +0 -0
  285. {MorphIO-3.2.0 → MorphIO-3.3.0}/src/readers/morphologyASC.h +0 -0
  286. {MorphIO-3.2.0 → MorphIO-3.3.0}/src/readers/morphologyHDF5.cpp +0 -0
  287. {MorphIO-3.2.0 → MorphIO-3.3.0}/src/readers/morphologyHDF5.h +0 -0
  288. {MorphIO-3.2.0 → MorphIO-3.3.0}/src/readers/morphologySWC.cpp +0 -0
  289. {MorphIO-3.2.0 → MorphIO-3.3.0}/src/readers/morphologySWC.h +0 -0
  290. {MorphIO-3.2.0 → MorphIO-3.3.0}/src/readers/utilsHDF5.h +0 -0
  291. {MorphIO-3.2.0 → MorphIO-3.3.0}/src/readers/vasculatureHDF5.cpp +0 -0
  292. {MorphIO-3.2.0 → MorphIO-3.3.0}/src/readers/vasculatureHDF5.h +0 -0
  293. {MorphIO-3.2.0 → MorphIO-3.3.0}/src/section.cpp +0 -0
  294. {MorphIO-3.2.0 → MorphIO-3.3.0}/src/shared_utils.hpp +0 -0
  295. {MorphIO-3.2.0 → MorphIO-3.3.0}/src/soma.cpp +0 -0
  296. {MorphIO-3.2.0 → MorphIO-3.3.0}/src/vasc/properties.cpp +0 -0
  297. {MorphIO-3.2.0 → MorphIO-3.3.0}/src/vasc/section.cpp +0 -0
  298. {MorphIO-3.2.0 → MorphIO-3.3.0}/src/vasc/vasculature.cpp +0 -0
  299. {MorphIO-3.2.0 → MorphIO-3.3.0}/src/vector_utils.cpp +0 -0
  300. {MorphIO-3.2.0 → MorphIO-3.3.0}/src/version.cpp.in +0 -0
  301. {MorphIO-3.2.0 → MorphIO-3.3.0}/tests/CMakeLists.txt +0 -0
  302. {MorphIO-3.2.0 → MorphIO-3.3.0}/tests/contrib/catch.hpp +0 -0
  303. {MorphIO-3.2.0 → MorphIO-3.3.0}/tests/data/annotations.asc +0 -0
  304. {MorphIO-3.2.0 → MorphIO-3.3.0}/tests/data/astrocyte.h5 +0 -0
  305. {MorphIO-3.2.0 → MorphIO-3.3.0}/tests/data/circle_contour.asc +0 -0
  306. {MorphIO-3.2.0 → MorphIO-3.3.0}/tests/data/complexe.swc +0 -0
  307. {MorphIO-3.2.0 → MorphIO-3.3.0}/tests/data/disconnected_neurite.swc +0 -0
  308. {MorphIO-3.2.0 → MorphIO-3.3.0}/tests/data/h5/empty.h5 +0 -0
  309. {MorphIO-3.2.0 → MorphIO-3.3.0}/tests/data/h5/merged.h5 +0 -0
  310. {MorphIO-3.2.0 → MorphIO-3.3.0}/tests/data/h5/non-valid.h5 +0 -0
  311. {MorphIO-3.2.0 → MorphIO-3.3.0}/tests/data/h5/v1/Neuron-no-soma.h5 +0 -0
  312. {MorphIO-3.2.0 → MorphIO-3.3.0}/tests/data/h5/v1/Neuron.h5 +0 -0
  313. {MorphIO-3.2.0 → MorphIO-3.3.0}/tests/data/h5/v1/endoplasmic-reticulum.h5 +0 -0
  314. {MorphIO-3.2.0 → MorphIO-3.3.0}/tests/data/h5/v1/glia.h5 +0 -0
  315. {MorphIO-3.2.0 → MorphIO-3.3.0}/tests/data/h5/v1/glia_empty_perimeters.h5 +0 -0
  316. {MorphIO-3.2.0 → MorphIO-3.3.0}/tests/data/h5/v1/glia_soma_only.h5 +0 -0
  317. {MorphIO-3.2.0 → MorphIO-3.3.0}/tests/data/h5/v1/glia_wrong_sized_perimeters.h5 +0 -0
  318. {MorphIO-3.2.0 → MorphIO-3.3.0}/tests/data/h5/v1/h5v1.3.h5 +0 -0
  319. {MorphIO-3.2.0 → MorphIO-3.3.0}/tests/data/h5/v1/incorrect_point_columns.h5 +0 -0
  320. {MorphIO-3.2.0 → MorphIO-3.3.0}/tests/data/h5/v1/incorrect_structure_columns.h5 +0 -0
  321. {MorphIO-3.2.0 → MorphIO-3.3.0}/tests/data/h5/v1/metadata_group_only.h5 +0 -0
  322. {MorphIO-3.2.0 → MorphIO-3.3.0}/tests/data/h5/v1/mitochondria.h5 +0 -0
  323. {MorphIO-3.2.0 → MorphIO-3.3.0}/tests/data/h5/v1/monodim.h5 +0 -0
  324. {MorphIO-3.2.0 → MorphIO-3.3.0}/tests/data/h5/v1/simple-broken-section-type.h5 +0 -0
  325. {MorphIO-3.2.0 → MorphIO-3.3.0}/tests/data/h5/v1/simple-negative-section-type.h5 +0 -0
  326. {MorphIO-3.2.0 → MorphIO-3.3.0}/tests/data/h5/v1/simple-two-point-soma.h5 +0 -0
  327. {MorphIO-3.2.0 → MorphIO-3.3.0}/tests/data/h5/v1/simple.h5 +0 -0
  328. {MorphIO-3.2.0 → MorphIO-3.3.0}/tests/data/h5/v1/single-neurite.h5 +0 -0
  329. {MorphIO-3.2.0 → MorphIO-3.3.0}/tests/data/h5/v1/soma_after_dendrite.h5 +0 -0
  330. {MorphIO-3.2.0 → MorphIO-3.3.0}/tests/data/h5/v1/soma_no_neurites.h5 +0 -0
  331. {MorphIO-3.2.0 → MorphIO-3.3.0}/tests/data/h5/v1/three-point-soma-two-offset.h5 +0 -0
  332. {MorphIO-3.2.0 → MorphIO-3.3.0}/tests/data/h5/v1/two_child_unmerged.h5 +0 -0
  333. {MorphIO-3.2.0 → MorphIO-3.3.0}/tests/data/h5/v1/unknown_section_type_structure.h5 +0 -0
  334. {MorphIO-3.2.0 → MorphIO-3.3.0}/tests/data/h5/v2/Neuron.h5 +0 -0
  335. {MorphIO-3.2.0 → MorphIO-3.3.0}/tests/data/h5/vasculature-broken-section-type.h5 +0 -0
  336. {MorphIO-3.2.0 → MorphIO-3.3.0}/tests/data/h5/vasculature1.h5 +0 -0
  337. {MorphIO-3.2.0 → MorphIO-3.3.0}/tests/data/h5/vasculature2.h5 +0 -0
  338. {MorphIO-3.2.0 → MorphIO-3.3.0}/tests/data/iterators.asc +0 -0
  339. {MorphIO-3.2.0 → MorphIO-3.3.0}/tests/data/marker-with-string.asc +0 -0
  340. {MorphIO-3.2.0 → MorphIO-3.3.0}/tests/data/mono-type.asc +0 -0
  341. {MorphIO-3.2.0 → MorphIO-3.3.0}/tests/data/multiple_point_section.asc +0 -0
  342. {MorphIO-3.2.0 → MorphIO-3.3.0}/tests/data/multiple_soma.swc +0 -0
  343. {MorphIO-3.2.0 → MorphIO-3.3.0}/tests/data/nested_single_children.asc +0 -0
  344. {MorphIO-3.2.0 → MorphIO-3.3.0}/tests/data/neurite_wrong_root_point.swc +0 -0
  345. {MorphIO-3.2.0 → MorphIO-3.3.0}/tests/data/no_soma.swc +0 -0
  346. {MorphIO-3.2.0 → MorphIO-3.3.0}/tests/data/nrn-order-already-sorted.h5 +0 -0
  347. {MorphIO-3.2.0 → MorphIO-3.3.0}/tests/data/nrn_ordering.swc +0 -0
  348. {MorphIO-3.2.0 → MorphIO-3.3.0}/tests/data/pia.asc +0 -0
  349. {MorphIO-3.2.0 → MorphIO-3.3.0}/tests/data/reversed_NRN_neurite_order.swc +0 -0
  350. {MorphIO-3.2.0 → MorphIO-3.3.0}/tests/data/sections-block.asc +0 -0
  351. {MorphIO-3.2.0 → MorphIO-3.3.0}/tests/data/simple-with-font.asc +0 -0
  352. {MorphIO-3.2.0 → MorphIO-3.3.0}/tests/data/simple-with-image-coord.asc +0 -0
  353. {MorphIO-3.2.0 → MorphIO-3.3.0}/tests/data/simple.asc +0 -0
  354. {MorphIO-3.2.0 → MorphIO-3.3.0}/tests/data/simple.swc +0 -0
  355. {MorphIO-3.2.0 → MorphIO-3.3.0}/tests/data/simple.unknown +0 -0
  356. {MorphIO-3.2.0 → MorphIO-3.3.0}/tests/data/simple2.asc +0 -0
  357. {MorphIO-3.2.0 → MorphIO-3.3.0}/tests/data/single_point_root.asc +0 -0
  358. {MorphIO-3.2.0 → MorphIO-3.3.0}/tests/data/soma_cylinders.swc +0 -0
  359. {MorphIO-3.2.0 → MorphIO-3.3.0}/tests/data/soma_multiple_frustums.swc +0 -0
  360. {MorphIO-3.2.0 → MorphIO-3.3.0}/tests/data/soma_single_frustum.swc +0 -0
  361. {MorphIO-3.2.0 → MorphIO-3.3.0}/tests/data/soma_three_points_cylinder.swc +0 -0
  362. {MorphIO-3.2.0 → MorphIO-3.3.0}/tests/data/spine.asc +0 -0
  363. {MorphIO-3.2.0 → MorphIO-3.3.0}/tests/data/three_point_soma.swc +0 -0
  364. {MorphIO-3.2.0 → MorphIO-3.3.0}/tests/main.cpp +0 -0
  365. {MorphIO-3.2.0 → MorphIO-3.3.0}/tests/requirement_tests.txt +0 -0
  366. {MorphIO-3.2.0 → MorphIO-3.3.0}/tests/test_0_API.py +0 -0
  367. {MorphIO-3.2.0 → MorphIO-3.3.0}/tests/test_10_vasculature.py +0 -0
  368. {MorphIO-3.2.0 → MorphIO-3.3.0}/tests/test_1_swc.py +0 -0
  369. {MorphIO-3.2.0 → MorphIO-3.3.0}/tests/test_3_h5.py +0 -0
  370. {MorphIO-3.2.0 → MorphIO-3.3.0}/tests/test_4_immut.py +0 -0
  371. {MorphIO-3.2.0 → MorphIO-3.3.0}/tests/test_5_mut.py +0 -0
  372. {MorphIO-3.2.0 → MorphIO-3.3.0}/tests/test_6_writers.py +0 -0
  373. {MorphIO-3.2.0 → MorphIO-3.3.0}/tests/test_7_modifiers.py +0 -0
  374. {MorphIO-3.2.0 → MorphIO-3.3.0}/tests/test_8_all_morphologies.py +0 -0
  375. {MorphIO-3.2.0 → MorphIO-3.3.0}/tests/test_9_surfaces.py +0 -0
  376. {MorphIO-3.2.0 → MorphIO-3.3.0}/tests/test_immutable_morphology.cpp +0 -0
  377. {MorphIO-3.2.0 → MorphIO-3.3.0}/tests/test_mutable_morphology.cpp +0 -0
  378. {MorphIO-3.2.0 → MorphIO-3.3.0}/tests/utils.py +0 -0
@@ -1,6 +1,6 @@
1
1
  Metadata-Version: 2.1
2
2
  Name: MorphIO
3
- Version: 3.2.0
3
+ Version: 3.3.0
4
4
  Summary: A neuron morphology IO library
5
5
  Home-page: https://github.com/BlueBrain/MorphIO/
6
6
  Author: Blue Brain Project, EPFL
@@ -315,8 +315,10 @@ tests/data/astrocyte.h5
315
315
  tests/data/circle_contour.asc
316
316
  tests/data/complexe.swc
317
317
  tests/data/disconnected_neurite.swc
318
+ tests/data/invalid-incomplete.asc
318
319
  tests/data/iterators.asc
319
320
  tests/data/marker-with-string.asc
321
+ tests/data/markers.asc
320
322
  tests/data/mono-type.asc
321
323
  tests/data/multiple_point_section.asc
322
324
  tests/data/multiple_soma.swc
@@ -1,6 +1,6 @@
1
1
  Metadata-Version: 2.1
2
2
  Name: MorphIO
3
- Version: 3.2.0
3
+ Version: 3.3.0
4
4
  Summary: A neuron morphology IO library
5
5
  Home-page: https://github.com/BlueBrain/MorphIO/
6
6
  Author: Blue Brain Project, EPFL
@@ -262,7 +262,11 @@ void bind_misc(py::module& m) {
262
262
  .def_property_readonly(
263
263
  "diameters",
264
264
  [](morphio::Property::Marker* marker) { return marker->_pointLevel._diameters; },
265
- "Returns the list of diameters of the marker points");
265
+ "Returns the list of diameters of the marker points")
266
+ .def_property_readonly(
267
+ "section_id",
268
+ [](morphio::Property::Marker* marker) { return marker->_sectionId; },
269
+ "Returns the id of section that contains the marker");
266
270
 
267
271
  py::class_<morphio::Property::MitochondriaPointLevel>(
268
272
  m,
@@ -1,29 +1,38 @@
1
1
  NeuroLucida markers
2
2
  ===================
3
3
 
4
- A marker is an `s-expression <https://en.wikipedia.org/wiki/S-expression>`__ at the top level of the
4
+ Specification
5
+ *************
6
+ A marker is an `s-expression <https://en.wikipedia.org/wiki/S-expression>`__ of the
5
7
  Neurolucida file that contains additional information about the morphology. For example:
6
8
 
7
9
  .. code-block:: lisp
8
10
 
9
- ("pia"
11
+ ("pia" ; String-named marker starts. Such marker can exist only at the top level.
10
12
  (Closed)
11
13
  (MBFObjectType 5)
12
14
  (0 1 2 3)
13
15
  (3 4 5 4)
14
16
  (6 7 8 5)
15
17
  (9 10 11 6)
16
- )
18
+ ) ; marker ends
17
19
 
18
- This PR adds a `Morphology.markers` attribute that stores the markers found in the file. A Marker
19
- object has 3 attributes:
20
- - label
21
- - points
22
- - diameters.
20
+ or
23
21
 
24
- **Specification**
22
+ .. code-block:: lisp
23
+
24
+ ; ...
25
+ ( -277.14 -119.13 -18.02 0.69)
26
+ ( -275.54 -119.99 -16.67 0.69) ; some section point
27
+ (Cross ; common marker starts
28
+ (Color Orange)
29
+ (Name "Marker 3") ; this name will be ignored. 'Cross' will be used as the marker's label.
30
+ ( -271.87 -121.14 -16.27 0.69) ; 1
31
+ ( -269.34 -122.29 -15.48 0.69) ; 2
32
+ ) ; marker ends
33
+ ; ...
25
34
 
26
- The following s-expressions are parsed:
35
+ The following s-expressions are parsed as markers:
27
36
 
28
37
  * Any s-exp with a top level string. Like:
29
38
 
@@ -38,7 +47,7 @@ The following s-expressions are parsed:
38
47
  (9 10 11 6)
39
48
  )
40
49
 
41
- * An sexp with one of the following top level regular expression:
50
+ * An sexp with one of the following regular expression:
42
51
 
43
52
  - Dot[0-9]*
44
53
  - Plus[0-9]*
@@ -84,17 +93,44 @@ The following s-expressions are parsed:
84
93
  ( -189.59 55.67 28.68 0.12) ; 1
85
94
  ) ; End of markers
86
95
 
87
- ℹ️ Markers can may have only `(X Y Z)` specified instead of the more common `(X Y Z D)`. In this case, diameters are set to 0.
96
+ * An 'Incomplete' sexp. Despite it's not the part of the known Neurolucida format, this tag is parsed as marker.
97
+
98
+ Example:
99
+
100
+ .. code-block:: lisp
101
+
102
+ : ...
103
+ ( -269.77 -129.47 -22.57 0.92) ;
104
+ ( -268.17 -130.62 -24.75 0.92) ;
105
+ ( -266.79 -131.77 -26.13 0.92) ; last point before 'Incomplete' happens
106
+ Incomplete
107
+ ) ; end of branch
88
108
 
89
- **Usage**
109
+ .. note::
110
+ Markers may have only `(X Y Z)` specified instead of the more common `(X Y Z D)`. In this case,
111
+ diameters are set to 0.
112
+
113
+ Usage
114
+ *****
115
+
116
+ An instance of morphology has `markers` list attribute that keeps the markers found in the file. A single marker
117
+ object within this list is represented as an object with attributes:
118
+
119
+ - ``section_id``, the id of the section that contains the marker, ``-1`` if there is no section
120
+ - ``label``, the text label of the marker
121
+ - ``points``, the marker points
122
+ - ``diameters``, the marker diameters
123
+
124
+ .. code-block:: python
90
125
 
91
- .. code-block::python
92
126
  cell = Morphology(os.path.join(_path, 'pia.asc'))
93
127
  all_markers = cell.markers
94
128
  pia = m.markers[0]
95
129
 
96
130
  # fetch the label marker with the `label` attribute
97
131
  assert_equal(pia.label, 'pia')
132
+ # fetch the marker's section id
133
+ assert_equal(pia.section_id, -1)
98
134
 
99
135
  # fetch the points with the `points` attribute
100
136
  assert_array_equal(pia.points,
@@ -106,22 +142,5 @@ The following s-expressions are parsed:
106
142
  # fetch the diameters with the `diameters` attribute
107
143
  assert_array_equal(pia.diameters, [3, 4, 5, 6])
108
144
 
109
- ⚠️ Only top level markers are currently supported. This means the following nested marker won't be available the the MorphIO API.
110
-
111
- .. code-block:: lisp
112
-
113
- ( (Color White) ; [10,1]
114
- (Dendrite)
115
- ( -290.87 -113.09 -16.32 2.06) ; Root
116
- ( -290.87 -113.09 -16.32 2.06) ; R, 1
117
- (
118
- ( -277.14 -119.13 -18.02 0.69) ; R-1, 1
119
- ( -275.54 -119.99 -16.67 0.69) ; R-1, 2
120
- (Cross ; [3,3]
121
- (Color Orange)
122
- (Name "Marker 3")
123
- ( -271.87 -121.14 -16.27 0.69) ; 1
124
- ( -269.34 -122.29 -15.48 0.69) ; 2
125
- ) ; End of markers
126
- )
127
- )
145
+ .. warning::
146
+ Markers with string names are supported only at the top level. Other markers can be presented at any level.
@@ -0,0 +1,87 @@
1
+ Warnings
2
+ ========
3
+
4
+ MorphIO is trying to be as less rigid as possible in validating of morphologies. That's why most of problems with
5
+ morphologies are come as warnings instead of errors. Because of that the output of MorphIO might be verbose.
6
+ In order to minimize it you can set the maximum number of warnings, or ignore some of warnings. On the other hand
7
+ if you want morphologies to be as valid as possible then you can tell MorphIO to interpret warnings as errors.
8
+
9
+ Maximum number of warnings
10
+ ~~~~~~~~~~~~~~~~~~~~~~~~~~
11
+ The maximum number of warnings can be set as:
12
+
13
+ .. code-block:: python
14
+
15
+ import morphio
16
+
17
+ # Will stop displaying warnings after 100 warnings
18
+ morphio.set_maximum_warnings(100)
19
+
20
+ # Will never stop displaying warnings
21
+ morphio.set_maximum_warnings(-1)
22
+
23
+ # Warnings won't be displayed
24
+ morphio.set_maximum_warnings(0)
25
+
26
+ Ignore warnings
27
+ ~~~~~~~~~~~~~~~
28
+
29
+ A type of warning can be ignored as shown below. For the complete list of warning types see :class:`morphio.Warning`.
30
+
31
+ .. code-block:: python
32
+
33
+ # ignore single warning
34
+ morphio.set_ignored_warning(morphio.Warning.wrong_root_point, True)
35
+ # stop ignoring it
36
+ morphio.set_ignored_warning(morphio.Warning.wrong_root_point, False)
37
+ # ignore a list of warnings
38
+ morphio.set_ignored_warning([morphio.Warning.no_soma_found,
39
+ morphio.Warning.zero_diameter], True)
40
+ # stop ignoring them
41
+ morphio.set_ignored_warning([morphio.Warning.no_soma_found,
42
+ morphio.Warning.zero_diameter], False)
43
+
44
+ For safety reasons you might want to disable warnings only for construction of morphology, and enable it back
45
+ afterwards:
46
+
47
+ .. code-block:: python
48
+
49
+ try:
50
+ morphio.set_ignored_warning(morphio.Warning.wrong_root_point, True)
51
+ m = morphio.Morphology('path/to/morph')
52
+ finally:
53
+ morphio.set_ignored_warning(morphio.Warning.wrong_root_point, False)
54
+
55
+
56
+ Raise warnings
57
+ ~~~~~~~~~~~~~~
58
+ If you want MorphIO to be rigid and fail on any morphology anomaly, you can switch to raise warnings as errors.
59
+ This way they also can be caught programmatically.
60
+
61
+ .. code-block:: python
62
+
63
+ morphio.set_raise_warnings(True)
64
+
65
+ For safety reasons you might want to raise warnings only for construction of morphology, and disable it back
66
+ afterwards:
67
+
68
+ .. code-block:: python
69
+
70
+ try:
71
+ morphio.set_raise_warnings(True)
72
+ m = morphio.Morphology('path/to/morph')
73
+ finally:
74
+ morphio.set_raise_warnings(False)
75
+
76
+ If you care only about some types of warnings then you need to ignore others:
77
+
78
+ .. code-block:: python
79
+
80
+ try:
81
+ morphio.set_raise_warnings(True)
82
+ # warnings you are not interested in
83
+ morphio.set_ignored_warning([morphio.Warning.wrong_root_point, ...], True)
84
+ m = morphio.Morphology('path/to/morph')
85
+ finally:
86
+ morphio.set_ignored_warning([morphio.Warning.wrong_root_point, ...], False)
87
+ morphio.set_raise_warnings(False)
@@ -146,6 +146,7 @@ struct Annotation {
146
146
  struct Marker {
147
147
  PointLevel _pointLevel;
148
148
  std::string _label;
149
+ int32_t _sectionId; // id of section that contains the marker
149
150
  };
150
151
 
151
152
  struct CellLevel {
@@ -47,7 +47,7 @@ bool is_end_of_section(Token id) {
47
47
  bool skip_sexp(size_t id) {
48
48
  return (id == +Token::WORD || id == +Token::COLOR || id == +Token::GENERATED ||
49
49
  id == +Token::HIGH || id == +Token::INCOMPLETE || id == +Token::LOW ||
50
- id == +Token::NORMAL || id == +Token::FONT || id == +Token::MARKER);
50
+ id == +Token::NORMAL || id == +Token::FONT);
51
51
  }
52
52
  } // namespace
53
53
 
@@ -137,6 +137,7 @@ class NeurolucidaParser
137
137
  Property::Marker marker;
138
138
  marker._pointLevel = properties;
139
139
  marker._label = header.label;
140
+ marker._sectionId = header.parent_id;
140
141
  nb_.addMarker(marker);
141
142
  return_id = -1;
142
143
  } else if (header.token == Token::CELLBODY) {
@@ -280,6 +281,19 @@ class NeurolucidaParser
280
281
  }
281
282
  return true;
282
283
  } else if (is_end_of_branch(id)) {
284
+ if (id == Token::INCOMPLETE) {
285
+ Property::Marker marker;
286
+ marker._label = to_string(Token::INCOMPLETE);
287
+ marker._sectionId = section_id;
288
+ nb_.addMarker(marker);
289
+ if (!is_end_of_section(Token(peek_id))) {
290
+ throw RawDataError(err_.ERROR_UNEXPECTED_TOKEN(
291
+ lex_.line_num(),
292
+ lex_.peek()->str(),
293
+ lex_.current()->str(),
294
+ "'Incomplete' tag must finish the branch."));
295
+ }
296
+ }
283
297
  lex_.consume();
284
298
  } else if (id == Token::LSPINE) {
285
299
  // skip spines
@@ -289,8 +303,16 @@ class NeurolucidaParser
289
303
  lex_.consume(Token::RSPINE, "Must be end of spine");
290
304
  } else if (id == Token::LPAREN) {
291
305
  if (skip_sexp(peek_id)) {
292
- // skip words/strings/markers
306
+ // skip words/strings
293
307
  lex_.consume_until_balanced_paren();
308
+ } else if (peek_id == +Token::MARKER) {
309
+ Header marker_header;
310
+ marker_header.parent_id = section_id;
311
+ marker_header.token = Token::STRING;
312
+ marker_header.label = lex_.peek()->str();
313
+ lex_.consume_until(Token::LPAREN);
314
+ parse_neurite_section(marker_header);
315
+ lex_.consume(Token::RPAREN, "Marker should end with RPAREN");
294
316
  } else if (peek_id == +Token::NUMBER) {
295
317
  Point point;
296
318
  floatType radius;
@@ -0,0 +1,22 @@
1
+ ( (Color White) ; [10,1]
2
+ (Dendrite)
3
+ ( -290.87 -113.09 -16.32 2.06)
4
+ ( -290.87 -113.09 -16.32 2.06)
5
+ (
6
+ ( -267.94 -128.61 -22.57 0.69)
7
+ ( -204.90 -157.63 -42.45 0.69)
8
+ (Cross ; [3,3]
9
+ (Color Orange)
10
+ (Name "Marker 3")
11
+ ( -223.67 -157.92 -42.45 0.69) ; 1
12
+ ( -222.76 -154.18 -39.90 0.69) ; 2
13
+ ) ; End of markers
14
+ Incomplete
15
+ ( -206.90 -157.63 -42.45 0.69)
16
+ |
17
+ ( -269.77 -129.47 -22.57 0.92) ; R-2-2, 1
18
+ ( -268.17 -130.62 -24.75 0.92) ; R-2-2, 2
19
+ ( -266.79 -131.77 -26.13 0.92) ; R-2-2, 3
20
+ Incomplete
21
+ )
22
+ )
@@ -0,0 +1,42 @@
1
+ ; The file is created for C++ tests to increase coverage
2
+ ( (Color White) ; [10,1]
3
+ (Dendrite)
4
+ ( -290.87 -113.09 -16.32 2.06) ; Root
5
+ ( -290.87 -113.09 -16.32 2.06) ; R, 1
6
+ (
7
+ ( -277.14 -119.13 -18.02 0.69) ; R-1, 1
8
+ ( -275.54 -119.99 -16.67 0.69) ; R-1, 2
9
+ (Cross ; [3,3]
10
+ (Color Orange)
11
+ (Name "Marker 3")
12
+ ( -271.87 -121.14 -16.27 0.69) ; 1
13
+ ( -269.34 -122.29 -15.48 0.69) ; 2
14
+ ) ; End of markers
15
+ Normal
16
+ |
17
+ ( -277.80 -120.28 -19.48 0.92) ; R-2, 1
18
+ ( -276.65 -121.14 -20.20 0.92) ; R-2, 2
19
+ (Cross ; [3,3]
20
+ (Color Orange)
21
+ (Name "Marker 3")
22
+ ( -279.41 -119.99 -18.00 0.46) ; 1
23
+ ( -272.98 -126.60 -21.22 0.92) ; 2
24
+ ) ; End of markers
25
+ (
26
+ ( -267.94 -128.61 -22.57 0.69) ; R-2-1, 1
27
+ ( -204.90 -157.63 -42.45 0.69) ; R-2-1, 34
28
+ (Cross ; [3,3]
29
+ (Color Orange)
30
+ (Name "Marker 3")
31
+ ( -223.67 -157.92 -42.45 0.69) ; 1
32
+ ( -222.76 -154.18 -39.90 0.69) ; 2
33
+ ) ; End of markers
34
+ Incomplete
35
+ |
36
+ ( -269.77 -129.47 -22.57 0.92) ; R-2-2, 1
37
+ ( -268.17 -130.62 -24.75 0.92) ; R-2-2, 2
38
+ ( -266.79 -131.77 -26.13 0.92) ; R-2-2, 3
39
+ Incomplete
40
+ ) ; End of split
41
+ ) ; End of split
42
+ )
@@ -5,6 +5,8 @@ import numpy as np
5
5
  from morphio import Morphology, RawDataError, SomaError, ostream_redirect
6
6
  from numpy.testing import assert_array_almost_equal, assert_array_equal
7
7
 
8
+ import pytest
9
+
8
10
  from utils import _test_asc_exception, tmp_asc_file
9
11
 
10
12
  DATA_DIR = Path(__file__).parent / 'data'
@@ -445,84 +447,70 @@ def test_spine():
445
447
  def test_markers():
446
448
  '''Test that markers do not prevent file from being read correctly'''
447
449
 
448
- with tmp_asc_file('''
449
- ( (Color White) ; [10,1]
450
- (Dendrite)
451
- ( -290.87 -113.09 -16.32 2.06) ; Root
452
- ( -290.87 -113.09 -16.32 2.06) ; R, 1
453
- (
454
- ( -277.14 -119.13 -18.02 0.69) ; R-1, 1
455
- ( -275.54 -119.99 -16.67 0.69) ; R-1, 2
456
- (Cross ; [3,3]
457
- (Color Orange)
458
- (Name "Marker 3")
459
- ( -271.87 -121.14 -16.27 0.69) ; 1
460
- ( -269.34 -122.29 -15.48 0.69) ; 2
461
- ) ; End of markers
462
- Normal
463
- |
464
- ( -277.80 -120.28 -19.48 0.92) ; R-2, 1
465
- ( -276.65 -121.14 -20.20 0.92) ; R-2, 2
466
- (Cross ; [3,3]
467
- (Color Orange)
468
- (Name "Marker 3")
469
- ( -279.41 -119.99 -18.00 0.46) ; 1
470
- ( -272.98 -126.60 -21.22 0.92) ; 2
471
- ) ; End of markers
472
- (
473
- ( -267.94 -128.61 -22.57 0.69) ; R-2-1, 1
474
- ( -204.90 -157.63 -42.45 0.69) ; R-2-1, 34
475
- (Cross ; [3,3]
476
- (Color Orange)
477
- (Name "Marker 3")
478
- ( -223.67 -157.92 -42.45 0.69) ; 1
479
- ( -222.76 -154.18 -39.90 0.69) ; 2
480
- ) ; End of markers
481
- Incomplete
482
- |
483
- ( -269.77 -129.47 -22.57 0.92) ; R-2-2, 1
484
- ( -268.17 -130.62 -24.75 0.92) ; R-2-2, 2
485
- ( -266.79 -131.77 -26.13 0.92) ; R-2-2, 3
486
- Incomplete
487
- ) ; End of split
488
- ) ; End of split
489
- )
490
- ''') as tmp_file:
491
-
492
- n = Morphology(tmp_file.name)
493
-
494
- assert len(n.root_sections) == 1
495
-
496
- assert_array_equal(n.root_sections[0].points,
497
- np.array([[-290.87, -113.09, -16.32],
498
- [-290.87, -113.09, -16.32],
499
- ],
500
- dtype=np.float32))
501
-
502
- assert_array_equal(n.root_sections[0].children[0].points,
503
- np.array([[-290.87, -113.09, -16.32],
504
- [-277.14, -119.13, -18.02],
505
- [-275.54, -119.99, -16.67]],
506
- dtype=np.float32))
507
-
508
- assert_array_equal(n.root_sections[0].children[1].points,
509
- np.array([[-290.87, -113.09, -16.32],
510
- [-277.80, -120.28, -19.48],
511
- [-276.65, -121.14, -20.20]],
512
- dtype=np.float32))
513
-
514
- assert_array_equal(n.root_sections[0].children[1].children[0].points,
515
- np.array([[-276.65, -121.14, -20.20],
516
- [-267.94, -128.61, -22.57],
517
- [-204.90, -157.63, -42.45]],
518
- dtype=np.float32))
519
-
520
- assert_array_equal(n.root_sections[0].children[1].children[1].points,
521
- np.array([[-276.65, -121.14, -20.20],
522
- [-269.77, -129.47, -22.57],
523
- [-268.17, -130.62, -24.75],
524
- [-266.79, -131.77, -26.13]],
525
- dtype=np.float32))
450
+ n = Morphology(DATA_DIR / 'markers.asc')
451
+
452
+ assert len(n.markers) == 5
453
+ assert_array_equal(n.markers[0].points,
454
+ np.array([[-271.87, -121.14, -16.27],
455
+ [-269.34, -122.29, -15.48]],
456
+ dtype=np.float32))
457
+ assert_array_equal(n.markers[0].diameters,
458
+ np.array([0.69, 0.69], dtype=np.float32))
459
+ assert n.markers[0].label == 'Cross'
460
+
461
+ assert_array_equal(n.markers[1].points,
462
+ np.array([[-279.41, -119.99, -18.00],
463
+ [-272.98, -126.60, -21.22]],
464
+ dtype=np.float32))
465
+ assert_array_equal(n.markers[1].diameters,
466
+ np.array([0.46, 0.92], dtype=np.float32))
467
+ assert n.markers[1].label == 'Cross'
468
+
469
+ assert_array_equal(n.markers[2].points,
470
+ np.array([[-223.67, -157.92, -42.45],
471
+ [-222.76, -154.18, -39.90]],
472
+ dtype=np.float32))
473
+ assert_array_equal(n.markers[2].diameters,
474
+ np.array([0.69, 0.69], dtype=np.float32))
475
+ assert n.markers[2].label == 'Cross'
476
+ assert n.markers[3].label == 'INCOMPLETE'
477
+ assert n.markers[3].section_id == 3
478
+ assert n.markers[4].label == 'INCOMPLETE'
479
+ assert n.markers[4].section_id == 4
480
+
481
+
482
+ assert len(n.root_sections) == 1
483
+
484
+ assert_array_equal(n.root_sections[0].points,
485
+ np.array([[-290.87, -113.09, -16.32],
486
+ [-290.87, -113.09, -16.32],
487
+ ],
488
+ dtype=np.float32))
489
+
490
+ assert_array_equal(n.root_sections[0].children[0].points,
491
+ np.array([[-290.87, -113.09, -16.32],
492
+ [-277.14, -119.13, -18.02],
493
+ [-275.54, -119.99, -16.67]],
494
+ dtype=np.float32))
495
+
496
+ assert_array_equal(n.root_sections[0].children[1].points,
497
+ np.array([[-290.87, -113.09, -16.32],
498
+ [-277.80, -120.28, -19.48],
499
+ [-276.65, -121.14, -20.20]],
500
+ dtype=np.float32))
501
+
502
+ assert_array_equal(n.root_sections[0].children[1].children[0].points,
503
+ np.array([[-276.65, -121.14, -20.20],
504
+ [-267.94, -128.61, -22.57],
505
+ [-204.90, -157.63, -42.45]],
506
+ dtype=np.float32))
507
+
508
+ assert_array_equal(n.root_sections[0].children[1].children[1].points,
509
+ np.array([[-276.65, -121.14, -20.20],
510
+ [-269.77, -129.47, -22.57],
511
+ [-268.17, -130.62, -24.75],
512
+ [-266.79, -131.77, -26.13]],
513
+ dtype=np.float32))
526
514
 
527
515
 
528
516
  def test_string_markers():
@@ -612,6 +600,13 @@ def test_neurolucida_markers():
612
600
  assert_array_almost_equal(neuron.markers[1].diameters,
613
601
  np.array([0.52], dtype=np.float32))
614
602
 
603
+
604
+ def test_invalid_incomplete():
605
+ '''Test that any data after Incomplete is invalid.'''
606
+ with pytest.raises(RawDataError, match='Incomplete'):
607
+ Morphology(DATA_DIR / 'invalid-incomplete.asc')
608
+
609
+
615
610
  def test_skip_font():
616
611
  assert_array_equal(Morphology(DATA_DIR / 'simple-with-font.asc').points,
617
612
  Morphology(DATA_DIR / 'simple.asc').points)
@@ -147,6 +147,16 @@ TEST_CASE("LoadNeurolucidaMorphology", "[morphology]") {
147
147
  REQUIRE(m.diameters().size() == 14);
148
148
  }
149
149
 
150
+ TEST_CASE("LoadNeurolucidaMorphologyMarkers", "[morphology]") {
151
+ const morphio::Morphology m("data/markers.asc");
152
+
153
+ REQUIRE(m.markers().size() == 5);
154
+
155
+ { // file is an not a valid h5 file
156
+ CHECK_THROWS_AS(morphio::Morphology("data/invalid-incomplete.asc"), morphio::RawDataError);
157
+ }
158
+ }
159
+
150
160
  TEST_CASE("LoadBadDimensionMorphology", "[morphology]") {
151
161
  REQUIRE_THROWS(morphio::Morphology("data/h5/v1/monodim.h5"));
152
162
  }
@@ -1,26 +0,0 @@
1
- Warnings
2
- ========
3
-
4
- Maximum number of warnings
5
- ~~~~~~~~~~~~~~~~~~~~~~~~~~
6
- On can control the maximum number of warnings using the command:
7
-
8
- .. code-block:: python
9
-
10
- # Will stop displaying warnings after 100 warnings
11
- morphio.set_maximum_warnings(100)
12
-
13
- # Will never stop displaying warnings
14
- morphio.set_maximum_warnings(-1)
15
-
16
- # Warnings won't be displayed
17
- morphio.set_maximum_warnings(0)
18
-
19
- Raise warnings
20
- ~~~~~~~~~~~~~~
21
- Because MorphIO warning is just output to stdout/stderr, one can switch to raise warnings as errors, so they can be
22
- caught programmatically:
23
-
24
- .. code-block:: python
25
-
26
- morphio.set_raise_warnings(True)
File without changes
File without changes
File without changes
File without changes
File without changes
File without changes