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.
- {MorphIO-3.2.0 → MorphIO-3.3.0/MorphIO.egg-info}/PKG-INFO +1 -1
- {MorphIO-3.2.0 → MorphIO-3.3.0}/MorphIO.egg-info/SOURCES.txt +2 -0
- {MorphIO-3.2.0/MorphIO.egg-info → MorphIO-3.3.0}/PKG-INFO +1 -1
- {MorphIO-3.2.0 → MorphIO-3.3.0}/binds/python/bind_misc.cpp +5 -1
- {MorphIO-3.2.0 → MorphIO-3.3.0}/doc/source/markers.rst +52 -33
- MorphIO-3.3.0/doc/source/warnings.rst +87 -0
- {MorphIO-3.2.0 → MorphIO-3.3.0}/include/morphio/properties.h +1 -0
- {MorphIO-3.2.0 → MorphIO-3.3.0}/src/readers/morphologyASC.cpp +24 -2
- MorphIO-3.3.0/tests/data/invalid-incomplete.asc +22 -0
- MorphIO-3.3.0/tests/data/markers.asc +42 -0
- {MorphIO-3.2.0 → MorphIO-3.3.0}/tests/test_2_neurolucida.py +73 -78
- {MorphIO-3.2.0 → MorphIO-3.3.0}/tests/test_morphology_readers.cpp +10 -0
- MorphIO-3.2.0/doc/source/warnings.rst +0 -26
- {MorphIO-3.2.0 → MorphIO-3.3.0}/.clang-format +0 -0
- {MorphIO-3.2.0 → MorphIO-3.3.0}/.github/workflows/check-sdist.yml +0 -0
- {MorphIO-3.2.0 → MorphIO-3.3.0}/.github/workflows/clang_format_check.yaml +0 -0
- {MorphIO-3.2.0 → MorphIO-3.3.0}/.github/workflows/coverage_test.yaml +0 -0
- {MorphIO-3.2.0 → MorphIO-3.3.0}/.github/workflows/docstring_check.yaml +0 -0
- {MorphIO-3.2.0 → MorphIO-3.3.0}/.github/workflows/publish-sdist-wheels.yml +0 -0
- {MorphIO-3.2.0 → MorphIO-3.3.0}/.github/workflows/run-tests.yml +0 -0
- {MorphIO-3.2.0 → MorphIO-3.3.0}/.gitignore +0 -0
- {MorphIO-3.2.0 → MorphIO-3.3.0}/.gitmodules +0 -0
- {MorphIO-3.2.0 → MorphIO-3.3.0}/.readthedocs.yaml +0 -0
- {MorphIO-3.2.0 → MorphIO-3.3.0}/.travis.yml +0 -0
- {MorphIO-3.2.0 → MorphIO-3.3.0}/3rdparty/CMakeLists.txt +0 -0
- {MorphIO-3.2.0 → MorphIO-3.3.0}/3rdparty/GSL_LITE/CMakeLists.txt +0 -0
- {MorphIO-3.2.0 → MorphIO-3.3.0}/3rdparty/GSL_LITE/cmake/PackageConfig.cmake.in +0 -0
- {MorphIO-3.2.0 → MorphIO-3.3.0}/3rdparty/GSL_LITE/gsl-lite.natvis +0 -0
- {MorphIO-3.2.0 → MorphIO-3.3.0}/3rdparty/GSL_LITE/include/gsl/gsl +0 -0
- {MorphIO-3.2.0 → MorphIO-3.3.0}/3rdparty/GSL_LITE/include/gsl/gsl-lite-vc6.hpp +0 -0
- {MorphIO-3.2.0 → MorphIO-3.3.0}/3rdparty/GSL_LITE/include/gsl/gsl-lite.h +0 -0
- {MorphIO-3.2.0 → MorphIO-3.3.0}/3rdparty/GSL_LITE/include/gsl/gsl-lite.hpp +0 -0
- {MorphIO-3.2.0 → MorphIO-3.3.0}/3rdparty/GSL_LITE/include/gsl.h +0 -0
- {MorphIO-3.2.0 → MorphIO-3.3.0}/3rdparty/GSL_LITE/include/gsl.hpp +0 -0
- {MorphIO-3.2.0 → MorphIO-3.3.0}/3rdparty/HighFive/CMake/HighFiveConfig.cmake.in +0 -0
- {MorphIO-3.2.0 → MorphIO-3.3.0}/3rdparty/HighFive/CMake/HighFiveTargetDeps.cmake +0 -0
- {MorphIO-3.2.0 → MorphIO-3.3.0}/3rdparty/HighFive/CMake/HighFiveTargetExport.cmake +0 -0
- {MorphIO-3.2.0 → MorphIO-3.3.0}/3rdparty/HighFive/CMake/config/CompilerFlagsHelpers.cmake +0 -0
- {MorphIO-3.2.0 → MorphIO-3.3.0}/3rdparty/HighFive/CMake/config/ReleaseDebugAutoFlags.cmake +0 -0
- {MorphIO-3.2.0 → MorphIO-3.3.0}/3rdparty/HighFive/CMake/config/TestHelpers.cmake +0 -0
- {MorphIO-3.2.0 → MorphIO-3.3.0}/3rdparty/HighFive/CMake/portability/BlueGenePortability.cmake +0 -0
- {MorphIO-3.2.0 → MorphIO-3.3.0}/3rdparty/HighFive/CMake/portability/CheckCXXStandardSupport.cmake +0 -0
- {MorphIO-3.2.0 → MorphIO-3.3.0}/3rdparty/HighFive/CMakeLists.txt +0 -0
- {MorphIO-3.2.0 → MorphIO-3.3.0}/3rdparty/HighFive/doc/CMakeLists.txt +0 -0
- {MorphIO-3.2.0 → MorphIO-3.3.0}/3rdparty/HighFive/doc/Doxyfile +0 -0
- {MorphIO-3.2.0 → MorphIO-3.3.0}/3rdparty/HighFive/doc/mainpage.md +0 -0
- {MorphIO-3.2.0 → MorphIO-3.3.0}/3rdparty/HighFive/include/highfive/H5Attribute.hpp +0 -0
- {MorphIO-3.2.0 → MorphIO-3.3.0}/3rdparty/HighFive/include/highfive/H5DataSet.hpp +0 -0
- {MorphIO-3.2.0 → MorphIO-3.3.0}/3rdparty/HighFive/include/highfive/H5DataSpace.hpp +0 -0
- {MorphIO-3.2.0 → MorphIO-3.3.0}/3rdparty/HighFive/include/highfive/H5DataType.hpp +0 -0
- {MorphIO-3.2.0 → MorphIO-3.3.0}/3rdparty/HighFive/include/highfive/H5Easy.hpp +0 -0
- {MorphIO-3.2.0 → MorphIO-3.3.0}/3rdparty/HighFive/include/highfive/H5Exception.hpp +0 -0
- {MorphIO-3.2.0 → MorphIO-3.3.0}/3rdparty/HighFive/include/highfive/H5File.hpp +0 -0
- {MorphIO-3.2.0 → MorphIO-3.3.0}/3rdparty/HighFive/include/highfive/H5FileDriver.hpp +0 -0
- {MorphIO-3.2.0 → MorphIO-3.3.0}/3rdparty/HighFive/include/highfive/H5Group.hpp +0 -0
- {MorphIO-3.2.0 → MorphIO-3.3.0}/3rdparty/HighFive/include/highfive/H5Object.hpp +0 -0
- {MorphIO-3.2.0 → MorphIO-3.3.0}/3rdparty/HighFive/include/highfive/H5PropertyList.hpp +0 -0
- {MorphIO-3.2.0 → MorphIO-3.3.0}/3rdparty/HighFive/include/highfive/H5Reference.hpp +0 -0
- {MorphIO-3.2.0 → MorphIO-3.3.0}/3rdparty/HighFive/include/highfive/H5Selection.hpp +0 -0
- {MorphIO-3.2.0 → MorphIO-3.3.0}/3rdparty/HighFive/include/highfive/H5Utility.hpp +0 -0
- {MorphIO-3.2.0 → MorphIO-3.3.0}/3rdparty/HighFive/include/highfive/H5Version.hpp.in +0 -0
- {MorphIO-3.2.0 → MorphIO-3.3.0}/3rdparty/HighFive/include/highfive/bits/H5Annotate_traits.hpp +0 -0
- {MorphIO-3.2.0 → MorphIO-3.3.0}/3rdparty/HighFive/include/highfive/bits/H5Annotate_traits_misc.hpp +0 -0
- {MorphIO-3.2.0 → MorphIO-3.3.0}/3rdparty/HighFive/include/highfive/bits/H5Attribute_misc.hpp +0 -0
- {MorphIO-3.2.0 → MorphIO-3.3.0}/3rdparty/HighFive/include/highfive/bits/H5ConverterEigen_misc.hpp +0 -0
- {MorphIO-3.2.0 → MorphIO-3.3.0}/3rdparty/HighFive/include/highfive/bits/H5Converter_misc.hpp +0 -0
- {MorphIO-3.2.0 → MorphIO-3.3.0}/3rdparty/HighFive/include/highfive/bits/H5DataSet_misc.hpp +0 -0
- {MorphIO-3.2.0 → MorphIO-3.3.0}/3rdparty/HighFive/include/highfive/bits/H5DataType_misc.hpp +0 -0
- {MorphIO-3.2.0 → MorphIO-3.3.0}/3rdparty/HighFive/include/highfive/bits/H5Dataspace_misc.hpp +0 -0
- {MorphIO-3.2.0 → MorphIO-3.3.0}/3rdparty/HighFive/include/highfive/bits/H5Exception_misc.hpp +0 -0
- {MorphIO-3.2.0 → MorphIO-3.3.0}/3rdparty/HighFive/include/highfive/bits/H5FileDriver_misc.hpp +0 -0
- {MorphIO-3.2.0 → MorphIO-3.3.0}/3rdparty/HighFive/include/highfive/bits/H5File_misc.hpp +0 -0
- {MorphIO-3.2.0 → MorphIO-3.3.0}/3rdparty/HighFive/include/highfive/bits/H5Iterables_misc.hpp +0 -0
- {MorphIO-3.2.0 → MorphIO-3.3.0}/3rdparty/HighFive/include/highfive/bits/H5Node_traits.hpp +0 -0
- {MorphIO-3.2.0 → MorphIO-3.3.0}/3rdparty/HighFive/include/highfive/bits/H5Node_traits_misc.hpp +0 -0
- {MorphIO-3.2.0 → MorphIO-3.3.0}/3rdparty/HighFive/include/highfive/bits/H5Object_misc.hpp +0 -0
- {MorphIO-3.2.0 → MorphIO-3.3.0}/3rdparty/HighFive/include/highfive/bits/H5PropertyList_misc.hpp +0 -0
- {MorphIO-3.2.0 → MorphIO-3.3.0}/3rdparty/HighFive/include/highfive/bits/H5ReadWrite_misc.hpp +0 -0
- {MorphIO-3.2.0 → MorphIO-3.3.0}/3rdparty/HighFive/include/highfive/bits/H5Reference_misc.hpp +0 -0
- {MorphIO-3.2.0 → MorphIO-3.3.0}/3rdparty/HighFive/include/highfive/bits/H5Selection_misc.hpp +0 -0
- {MorphIO-3.2.0 → MorphIO-3.3.0}/3rdparty/HighFive/include/highfive/bits/H5Slice_traits.hpp +0 -0
- {MorphIO-3.2.0 → MorphIO-3.3.0}/3rdparty/HighFive/include/highfive/bits/H5Slice_traits_misc.hpp +0 -0
- {MorphIO-3.2.0 → MorphIO-3.3.0}/3rdparty/HighFive/include/highfive/bits/H5Utils.hpp +0 -0
- {MorphIO-3.2.0 → MorphIO-3.3.0}/3rdparty/HighFive/include/highfive/bits/H5_definitions.hpp +0 -0
- {MorphIO-3.2.0 → MorphIO-3.3.0}/3rdparty/HighFive/include/highfive/h5easy_bits/H5Easy_Eigen.hpp +0 -0
- {MorphIO-3.2.0 → MorphIO-3.3.0}/3rdparty/HighFive/include/highfive/h5easy_bits/H5Easy_misc.hpp +0 -0
- {MorphIO-3.2.0 → MorphIO-3.3.0}/3rdparty/HighFive/include/highfive/h5easy_bits/H5Easy_opencv.hpp +0 -0
- {MorphIO-3.2.0 → MorphIO-3.3.0}/3rdparty/HighFive/include/highfive/h5easy_bits/H5Easy_public.hpp +0 -0
- {MorphIO-3.2.0 → MorphIO-3.3.0}/3rdparty/HighFive/include/highfive/h5easy_bits/H5Easy_scalar.hpp +0 -0
- {MorphIO-3.2.0 → MorphIO-3.3.0}/3rdparty/HighFive/include/highfive/h5easy_bits/H5Easy_vector.hpp +0 -0
- {MorphIO-3.2.0 → MorphIO-3.3.0}/3rdparty/HighFive/include/highfive/h5easy_bits/H5Easy_xtensor.hpp +0 -0
- {MorphIO-3.2.0 → MorphIO-3.3.0}/3rdparty/lexertl14/CMakeLists.txt +0 -0
- {MorphIO-3.2.0 → MorphIO-3.3.0}/3rdparty/lexertl14/include/lexertl/char_traits.hpp +0 -0
- {MorphIO-3.2.0 → MorphIO-3.3.0}/3rdparty/lexertl14/include/lexertl/debug.hpp +0 -0
- {MorphIO-3.2.0 → MorphIO-3.3.0}/3rdparty/lexertl14/include/lexertl/dot.hpp +0 -0
- {MorphIO-3.2.0 → MorphIO-3.3.0}/3rdparty/lexertl14/include/lexertl/enums.hpp +0 -0
- {MorphIO-3.2.0 → MorphIO-3.3.0}/3rdparty/lexertl14/include/lexertl/generate_cpp.hpp +0 -0
- {MorphIO-3.2.0 → MorphIO-3.3.0}/3rdparty/lexertl14/include/lexertl/generator.hpp +0 -0
- {MorphIO-3.2.0 → MorphIO-3.3.0}/3rdparty/lexertl14/include/lexertl/internals.hpp +0 -0
- {MorphIO-3.2.0 → MorphIO-3.3.0}/3rdparty/lexertl14/include/lexertl/iterator.hpp +0 -0
- {MorphIO-3.2.0 → MorphIO-3.3.0}/3rdparty/lexertl14/include/lexertl/licence_1_0.txt +0 -0
- {MorphIO-3.2.0 → MorphIO-3.3.0}/3rdparty/lexertl14/include/lexertl/lookup.hpp +0 -0
- {MorphIO-3.2.0 → MorphIO-3.3.0}/3rdparty/lexertl14/include/lexertl/match_results.hpp +0 -0
- {MorphIO-3.2.0 → MorphIO-3.3.0}/3rdparty/lexertl14/include/lexertl/memory_file.hpp +0 -0
- {MorphIO-3.2.0 → MorphIO-3.3.0}/3rdparty/lexertl14/include/lexertl/narrow.hpp +0 -0
- {MorphIO-3.2.0 → MorphIO-3.3.0}/3rdparty/lexertl14/include/lexertl/observer_ptr.hpp +0 -0
- {MorphIO-3.2.0 → MorphIO-3.3.0}/3rdparty/lexertl14/include/lexertl/parser/parser.hpp +0 -0
- {MorphIO-3.2.0 → MorphIO-3.3.0}/3rdparty/lexertl14/include/lexertl/parser/tokeniser/blocks.hpp +0 -0
- {MorphIO-3.2.0 → MorphIO-3.3.0}/3rdparty/lexertl14/include/lexertl/parser/tokeniser/fold2.inc +0 -0
- {MorphIO-3.2.0 → MorphIO-3.3.0}/3rdparty/lexertl14/include/lexertl/parser/tokeniser/fold4.inc +0 -0
- {MorphIO-3.2.0 → MorphIO-3.3.0}/3rdparty/lexertl14/include/lexertl/parser/tokeniser/re_token.hpp +0 -0
- {MorphIO-3.2.0 → MorphIO-3.3.0}/3rdparty/lexertl14/include/lexertl/parser/tokeniser/re_tokeniser.hpp +0 -0
- {MorphIO-3.2.0 → MorphIO-3.3.0}/3rdparty/lexertl14/include/lexertl/parser/tokeniser/re_tokeniser_helper.hpp +0 -0
- {MorphIO-3.2.0 → MorphIO-3.3.0}/3rdparty/lexertl14/include/lexertl/parser/tokeniser/re_tokeniser_state.hpp +0 -0
- {MorphIO-3.2.0 → MorphIO-3.3.0}/3rdparty/lexertl14/include/lexertl/parser/tokeniser/scripts.hpp +0 -0
- {MorphIO-3.2.0 → MorphIO-3.3.0}/3rdparty/lexertl14/include/lexertl/parser/tokeniser/table.inc +0 -0
- {MorphIO-3.2.0 → MorphIO-3.3.0}/3rdparty/lexertl14/include/lexertl/parser/tokeniser/unicode.hpp +0 -0
- {MorphIO-3.2.0 → MorphIO-3.3.0}/3rdparty/lexertl14/include/lexertl/parser/tree/end_node.hpp +0 -0
- {MorphIO-3.2.0 → MorphIO-3.3.0}/3rdparty/lexertl14/include/lexertl/parser/tree/iteration_node.hpp +0 -0
- {MorphIO-3.2.0 → MorphIO-3.3.0}/3rdparty/lexertl14/include/lexertl/parser/tree/leaf_node.hpp +0 -0
- {MorphIO-3.2.0 → MorphIO-3.3.0}/3rdparty/lexertl14/include/lexertl/parser/tree/node.hpp +0 -0
- {MorphIO-3.2.0 → MorphIO-3.3.0}/3rdparty/lexertl14/include/lexertl/parser/tree/selection_node.hpp +0 -0
- {MorphIO-3.2.0 → MorphIO-3.3.0}/3rdparty/lexertl14/include/lexertl/parser/tree/sequence_node.hpp +0 -0
- {MorphIO-3.2.0 → MorphIO-3.3.0}/3rdparty/lexertl14/include/lexertl/partition/charset.hpp +0 -0
- {MorphIO-3.2.0 → MorphIO-3.3.0}/3rdparty/lexertl14/include/lexertl/partition/equivset.hpp +0 -0
- {MorphIO-3.2.0 → MorphIO-3.3.0}/3rdparty/lexertl14/include/lexertl/rules.hpp +0 -0
- {MorphIO-3.2.0 → MorphIO-3.3.0}/3rdparty/lexertl14/include/lexertl/runtime_error.hpp +0 -0
- {MorphIO-3.2.0 → MorphIO-3.3.0}/3rdparty/lexertl14/include/lexertl/serialise.hpp +0 -0
- {MorphIO-3.2.0 → MorphIO-3.3.0}/3rdparty/lexertl14/include/lexertl/sm_to_csm.hpp +0 -0
- {MorphIO-3.2.0 → MorphIO-3.3.0}/3rdparty/lexertl14/include/lexertl/sm_traits.hpp +0 -0
- {MorphIO-3.2.0 → MorphIO-3.3.0}/3rdparty/lexertl14/include/lexertl/state_machine.hpp +0 -0
- {MorphIO-3.2.0 → MorphIO-3.3.0}/3rdparty/lexertl14/include/lexertl/stream_shared_iterator.hpp +0 -0
- {MorphIO-3.2.0 → MorphIO-3.3.0}/3rdparty/lexertl14/include/lexertl/string_token.hpp +0 -0
- {MorphIO-3.2.0 → MorphIO-3.3.0}/3rdparty/lexertl14/include/lexertl/utf_iterators.hpp +0 -0
- {MorphIO-3.2.0 → MorphIO-3.3.0}/3rdparty/pybind11/CMakeLists.txt +0 -0
- {MorphIO-3.2.0 → MorphIO-3.3.0}/3rdparty/pybind11/include/pybind11/attr.h +0 -0
- {MorphIO-3.2.0 → MorphIO-3.3.0}/3rdparty/pybind11/include/pybind11/buffer_info.h +0 -0
- {MorphIO-3.2.0 → MorphIO-3.3.0}/3rdparty/pybind11/include/pybind11/cast.h +0 -0
- {MorphIO-3.2.0 → MorphIO-3.3.0}/3rdparty/pybind11/include/pybind11/chrono.h +0 -0
- {MorphIO-3.2.0 → MorphIO-3.3.0}/3rdparty/pybind11/include/pybind11/common.h +0 -0
- {MorphIO-3.2.0 → MorphIO-3.3.0}/3rdparty/pybind11/include/pybind11/complex.h +0 -0
- {MorphIO-3.2.0 → MorphIO-3.3.0}/3rdparty/pybind11/include/pybind11/detail/class.h +0 -0
- {MorphIO-3.2.0 → MorphIO-3.3.0}/3rdparty/pybind11/include/pybind11/detail/common.h +0 -0
- {MorphIO-3.2.0 → MorphIO-3.3.0}/3rdparty/pybind11/include/pybind11/detail/descr.h +0 -0
- {MorphIO-3.2.0 → MorphIO-3.3.0}/3rdparty/pybind11/include/pybind11/detail/init.h +0 -0
- {MorphIO-3.2.0 → MorphIO-3.3.0}/3rdparty/pybind11/include/pybind11/detail/internals.h +0 -0
- {MorphIO-3.2.0 → MorphIO-3.3.0}/3rdparty/pybind11/include/pybind11/detail/typeid.h +0 -0
- {MorphIO-3.2.0 → MorphIO-3.3.0}/3rdparty/pybind11/include/pybind11/eigen.h +0 -0
- {MorphIO-3.2.0 → MorphIO-3.3.0}/3rdparty/pybind11/include/pybind11/embed.h +0 -0
- {MorphIO-3.2.0 → MorphIO-3.3.0}/3rdparty/pybind11/include/pybind11/eval.h +0 -0
- {MorphIO-3.2.0 → MorphIO-3.3.0}/3rdparty/pybind11/include/pybind11/functional.h +0 -0
- {MorphIO-3.2.0 → MorphIO-3.3.0}/3rdparty/pybind11/include/pybind11/iostream.h +0 -0
- {MorphIO-3.2.0 → MorphIO-3.3.0}/3rdparty/pybind11/include/pybind11/numpy.h +0 -0
- {MorphIO-3.2.0 → MorphIO-3.3.0}/3rdparty/pybind11/include/pybind11/operators.h +0 -0
- {MorphIO-3.2.0 → MorphIO-3.3.0}/3rdparty/pybind11/include/pybind11/options.h +0 -0
- {MorphIO-3.2.0 → MorphIO-3.3.0}/3rdparty/pybind11/include/pybind11/pybind11.h +0 -0
- {MorphIO-3.2.0 → MorphIO-3.3.0}/3rdparty/pybind11/include/pybind11/pytypes.h +0 -0
- {MorphIO-3.2.0 → MorphIO-3.3.0}/3rdparty/pybind11/include/pybind11/stl.h +0 -0
- {MorphIO-3.2.0 → MorphIO-3.3.0}/3rdparty/pybind11/include/pybind11/stl_bind.h +0 -0
- {MorphIO-3.2.0 → MorphIO-3.3.0}/3rdparty/pybind11/tools/FindCatch.cmake +0 -0
- {MorphIO-3.2.0 → MorphIO-3.3.0}/3rdparty/pybind11/tools/FindEigen3.cmake +0 -0
- {MorphIO-3.2.0 → MorphIO-3.3.0}/3rdparty/pybind11/tools/FindPythonLibsNew.cmake +0 -0
- {MorphIO-3.2.0 → MorphIO-3.3.0}/3rdparty/pybind11/tools/check-style.sh +0 -0
- {MorphIO-3.2.0 → MorphIO-3.3.0}/3rdparty/pybind11/tools/libsize.py +0 -0
- {MorphIO-3.2.0 → MorphIO-3.3.0}/3rdparty/pybind11/tools/mkdoc.py +0 -0
- {MorphIO-3.2.0 → MorphIO-3.3.0}/3rdparty/pybind11/tools/pybind11Config.cmake.in +0 -0
- {MorphIO-3.2.0 → MorphIO-3.3.0}/3rdparty/pybind11/tools/pybind11Tools.cmake +0 -0
- {MorphIO-3.2.0 → MorphIO-3.3.0}/CHANGLOG.md +0 -0
- {MorphIO-3.2.0 → MorphIO-3.3.0}/CMake/CodeCoverage.cmake +0 -0
- {MorphIO-3.2.0 → MorphIO-3.3.0}/CMake/CompilerFlags.cmake +0 -0
- {MorphIO-3.2.0 → MorphIO-3.3.0}/CMake/MorphIOConfig.cmake +0 -0
- {MorphIO-3.2.0 → MorphIO-3.3.0}/CMakeLists.txt +0 -0
- {MorphIO-3.2.0 → MorphIO-3.3.0}/CONTRIBUTING.md +0 -0
- {MorphIO-3.2.0 → MorphIO-3.3.0}/COPYING +0 -0
- {MorphIO-3.2.0 → MorphIO-3.3.0}/COPYING.LESSER +0 -0
- {MorphIO-3.2.0 → MorphIO-3.3.0}/MANIFEST.in +0 -0
- {MorphIO-3.2.0 → MorphIO-3.3.0}/MorphIO.egg-info/dependency_links.txt +0 -0
- {MorphIO-3.2.0 → MorphIO-3.3.0}/MorphIO.egg-info/not-zip-safe +0 -0
- {MorphIO-3.2.0 → MorphIO-3.3.0}/MorphIO.egg-info/requires.txt +0 -0
- {MorphIO-3.2.0 → MorphIO-3.3.0}/MorphIO.egg-info/top_level.txt +0 -0
- {MorphIO-3.2.0 → MorphIO-3.3.0}/README.rst +0 -0
- {MorphIO-3.2.0 → MorphIO-3.3.0}/binds/python/CMakeLists.txt +0 -0
- {MorphIO-3.2.0 → MorphIO-3.3.0}/binds/python/bind_enums.h +0 -0
- {MorphIO-3.2.0 → MorphIO-3.3.0}/binds/python/bind_immutable.cpp +0 -0
- {MorphIO-3.2.0 → MorphIO-3.3.0}/binds/python/bind_immutable.h +0 -0
- {MorphIO-3.2.0 → MorphIO-3.3.0}/binds/python/bind_misc.h +0 -0
- {MorphIO-3.2.0 → MorphIO-3.3.0}/binds/python/bind_mutable.cpp +0 -0
- {MorphIO-3.2.0 → MorphIO-3.3.0}/binds/python/bind_mutable.h +0 -0
- {MorphIO-3.2.0 → MorphIO-3.3.0}/binds/python/bind_vasculature.cpp +0 -0
- {MorphIO-3.2.0 → MorphIO-3.3.0}/binds/python/bind_vasculature.h +0 -0
- {MorphIO-3.2.0 → MorphIO-3.3.0}/binds/python/bindings_utils.cpp +0 -0
- {MorphIO-3.2.0 → MorphIO-3.3.0}/binds/python/bindings_utils.h +0 -0
- {MorphIO-3.2.0 → MorphIO-3.3.0}/binds/python/generated/.clang-format +0 -0
- {MorphIO-3.2.0 → MorphIO-3.3.0}/binds/python/generated/docstrings.h +0 -0
- {MorphIO-3.2.0 → MorphIO-3.3.0}/binds/python/morphio.cpp +0 -0
- {MorphIO-3.2.0 → MorphIO-3.3.0}/ci/check_clang_format.sh +0 -0
- {MorphIO-3.2.0 → MorphIO-3.3.0}/ci/check_generated_docstrings.sh +0 -0
- {MorphIO-3.2.0 → MorphIO-3.3.0}/ci/coverage_test.sh +0 -0
- {MorphIO-3.2.0 → MorphIO-3.3.0}/ci/cpp_test.sh +0 -0
- {MorphIO-3.2.0 → MorphIO-3.3.0}/ci/python_test.sh +0 -0
- {MorphIO-3.2.0 → MorphIO-3.3.0}/doc/Makefile +0 -0
- {MorphIO-3.2.0 → MorphIO-3.3.0}/doc/README.md +0 -0
- {MorphIO-3.2.0 → MorphIO-3.3.0}/doc/environment.yml +0 -0
- {MorphIO-3.2.0 → MorphIO-3.3.0}/doc/source/Doxyfile +0 -0
- {MorphIO-3.2.0 → MorphIO-3.3.0}/doc/source/DoxygenLayout.xml +0 -0
- {MorphIO-3.2.0 → MorphIO-3.3.0}/doc/source/_templates/doxygen_page.rst_t +0 -0
- {MorphIO-3.2.0 → MorphIO-3.3.0}/doc/source/conf.py +0 -0
- {MorphIO-3.2.0 → MorphIO-3.3.0}/doc/source/cpp.rst +0 -0
- {MorphIO-3.2.0 → MorphIO-3.3.0}/doc/source/doxygen/.gitignore +0 -0
- {MorphIO-3.2.0 → MorphIO-3.3.0}/doc/source/footer.html +0 -0
- {MorphIO-3.2.0 → MorphIO-3.3.0}/doc/source/glia.rst +0 -0
- {MorphIO-3.2.0 → MorphIO-3.3.0}/doc/source/header.html +0 -0
- {MorphIO-3.2.0 → MorphIO-3.3.0}/doc/source/images/section_segment.svg +0 -0
- {MorphIO-3.2.0 → MorphIO-3.3.0}/doc/source/images/sections.svg +0 -0
- {MorphIO-3.2.0 → MorphIO-3.3.0}/doc/source/images/swc/sequential.svg +0 -0
- {MorphIO-3.2.0 → MorphIO-3.3.0}/doc/source/images/swc/sphere.svg +0 -0
- {MorphIO-3.2.0 → MorphIO-3.3.0}/doc/source/images/swc/split.svg +0 -0
- {MorphIO-3.2.0 → MorphIO-3.3.0}/doc/source/images/swc/three_pt.svg +0 -0
- {MorphIO-3.2.0 → MorphIO-3.3.0}/doc/source/images/swc/two_pt.svg +0 -0
- {MorphIO-3.2.0 → MorphIO-3.3.0}/doc/source/index.rst +0 -0
- {MorphIO-3.2.0 → MorphIO-3.3.0}/doc/source/install.rst +0 -0
- {MorphIO-3.2.0 → MorphIO-3.3.0}/doc/source/mitochondria.rst +0 -0
- {MorphIO-3.2.0 → MorphIO-3.3.0}/doc/source/morphology.rst +0 -0
- {MorphIO-3.2.0 → MorphIO-3.3.0}/doc/source/python.rst +0 -0
- {MorphIO-3.2.0 → MorphIO-3.3.0}/doc/source/reticulum.rst +0 -0
- {MorphIO-3.2.0 → MorphIO-3.3.0}/doc/source/specification.rst +0 -0
- {MorphIO-3.2.0 → MorphIO-3.3.0}/doc/source/specification_neurolucida.rst +0 -0
- {MorphIO-3.2.0 → MorphIO-3.3.0}/examples/getting_started.ipynb +0 -0
- {MorphIO-3.2.0 → MorphIO-3.3.0}/examples/getting_started_mutable.ipynb +0 -0
- {MorphIO-3.2.0 → MorphIO-3.3.0}/include/morphio/endoplasmic_reticulum.h +0 -0
- {MorphIO-3.2.0 → MorphIO-3.3.0}/include/morphio/enums.h +0 -0
- {MorphIO-3.2.0 → MorphIO-3.3.0}/include/morphio/errorMessages.h +0 -0
- {MorphIO-3.2.0 → MorphIO-3.3.0}/include/morphio/exceptions.h +0 -0
- {MorphIO-3.2.0 → MorphIO-3.3.0}/include/morphio/glial_cell.h +0 -0
- {MorphIO-3.2.0 → MorphIO-3.3.0}/include/morphio/mito_section.h +0 -0
- {MorphIO-3.2.0 → MorphIO-3.3.0}/include/morphio/mitochondria.h +0 -0
- {MorphIO-3.2.0 → MorphIO-3.3.0}/include/morphio/morphology.h +0 -0
- {MorphIO-3.2.0 → MorphIO-3.3.0}/include/morphio/mut/endoplasmic_reticulum.h +0 -0
- {MorphIO-3.2.0 → MorphIO-3.3.0}/include/morphio/mut/glial_cell.h +0 -0
- {MorphIO-3.2.0 → MorphIO-3.3.0}/include/morphio/mut/mito_section.h +0 -0
- {MorphIO-3.2.0 → MorphIO-3.3.0}/include/morphio/mut/mitochondria.h +0 -0
- {MorphIO-3.2.0 → MorphIO-3.3.0}/include/morphio/mut/modifiers.h +0 -0
- {MorphIO-3.2.0 → MorphIO-3.3.0}/include/morphio/mut/morphology.h +0 -0
- {MorphIO-3.2.0 → MorphIO-3.3.0}/include/morphio/mut/section.h +0 -0
- {MorphIO-3.2.0 → MorphIO-3.3.0}/include/morphio/mut/soma.h +0 -0
- {MorphIO-3.2.0 → MorphIO-3.3.0}/include/morphio/mut/writers.h +0 -0
- {MorphIO-3.2.0 → MorphIO-3.3.0}/include/morphio/section.h +0 -0
- {MorphIO-3.2.0 → MorphIO-3.3.0}/include/morphio/section_base.h +0 -0
- {MorphIO-3.2.0 → MorphIO-3.3.0}/include/morphio/section_base.tpp +0 -0
- {MorphIO-3.2.0 → MorphIO-3.3.0}/include/morphio/section_iterators.hpp +0 -0
- {MorphIO-3.2.0 → MorphIO-3.3.0}/include/morphio/soma.h +0 -0
- {MorphIO-3.2.0 → MorphIO-3.3.0}/include/morphio/tools.h +0 -0
- {MorphIO-3.2.0 → MorphIO-3.3.0}/include/morphio/types.h +0 -0
- {MorphIO-3.2.0 → MorphIO-3.3.0}/include/morphio/vasc/iterators.hpp +0 -0
- {MorphIO-3.2.0 → MorphIO-3.3.0}/include/morphio/vasc/properties.h +0 -0
- {MorphIO-3.2.0 → MorphIO-3.3.0}/include/morphio/vasc/section.h +0 -0
- {MorphIO-3.2.0 → MorphIO-3.3.0}/include/morphio/vasc/vasculature.h +0 -0
- {MorphIO-3.2.0 → MorphIO-3.3.0}/include/morphio/vector_types.h +0 -0
- {MorphIO-3.2.0 → MorphIO-3.3.0}/include/morphio/version.h +0 -0
- {MorphIO-3.2.0 → MorphIO-3.3.0}/morphio/__init__.py +0 -0
- {MorphIO-3.2.0 → MorphIO-3.3.0}/morphio/mut/__init__.py +0 -0
- {MorphIO-3.2.0 → MorphIO-3.3.0}/morphio/vasculature/__init__.py +0 -0
- {MorphIO-3.2.0 → MorphIO-3.3.0}/scripts/check-clang-format-all +0 -0
- {MorphIO-3.2.0 → MorphIO-3.3.0}/setup.cfg +0 -0
- {MorphIO-3.2.0 → MorphIO-3.3.0}/setup.py +0 -0
- {MorphIO-3.2.0 → MorphIO-3.3.0}/src/CMakeLists.txt +0 -0
- {MorphIO-3.2.0 → MorphIO-3.3.0}/src/endoplasmic_reticulum.cpp +0 -0
- {MorphIO-3.2.0 → MorphIO-3.3.0}/src/enums.cpp +0 -0
- {MorphIO-3.2.0 → MorphIO-3.3.0}/src/errorMessages.cpp +0 -0
- {MorphIO-3.2.0 → MorphIO-3.3.0}/src/glial_cell.cpp +0 -0
- {MorphIO-3.2.0 → MorphIO-3.3.0}/src/mito_section.cpp +0 -0
- {MorphIO-3.2.0 → MorphIO-3.3.0}/src/mitochondria.cpp +0 -0
- {MorphIO-3.2.0 → MorphIO-3.3.0}/src/morphology.cpp +0 -0
- {MorphIO-3.2.0 → MorphIO-3.3.0}/src/mut/endoplasmic_reticulum.cpp +0 -0
- {MorphIO-3.2.0 → MorphIO-3.3.0}/src/mut/glial_cell.cpp +0 -0
- {MorphIO-3.2.0 → MorphIO-3.3.0}/src/mut/mito_section.cpp +0 -0
- {MorphIO-3.2.0 → MorphIO-3.3.0}/src/mut/mitochondria.cpp +0 -0
- {MorphIO-3.2.0 → MorphIO-3.3.0}/src/mut/modifiers.cpp +0 -0
- {MorphIO-3.2.0 → MorphIO-3.3.0}/src/mut/morphology.cpp +0 -0
- {MorphIO-3.2.0 → MorphIO-3.3.0}/src/mut/section.cpp +0 -0
- {MorphIO-3.2.0 → MorphIO-3.3.0}/src/mut/soma.cpp +0 -0
- {MorphIO-3.2.0 → MorphIO-3.3.0}/src/mut/writers.cpp +0 -0
- {MorphIO-3.2.0 → MorphIO-3.3.0}/src/properties.cpp +0 -0
- {MorphIO-3.2.0 → MorphIO-3.3.0}/src/readers/lex.cpp +0 -0
- {MorphIO-3.2.0 → MorphIO-3.3.0}/src/readers/morphologyASC.h +0 -0
- {MorphIO-3.2.0 → MorphIO-3.3.0}/src/readers/morphologyHDF5.cpp +0 -0
- {MorphIO-3.2.0 → MorphIO-3.3.0}/src/readers/morphologyHDF5.h +0 -0
- {MorphIO-3.2.0 → MorphIO-3.3.0}/src/readers/morphologySWC.cpp +0 -0
- {MorphIO-3.2.0 → MorphIO-3.3.0}/src/readers/morphologySWC.h +0 -0
- {MorphIO-3.2.0 → MorphIO-3.3.0}/src/readers/utilsHDF5.h +0 -0
- {MorphIO-3.2.0 → MorphIO-3.3.0}/src/readers/vasculatureHDF5.cpp +0 -0
- {MorphIO-3.2.0 → MorphIO-3.3.0}/src/readers/vasculatureHDF5.h +0 -0
- {MorphIO-3.2.0 → MorphIO-3.3.0}/src/section.cpp +0 -0
- {MorphIO-3.2.0 → MorphIO-3.3.0}/src/shared_utils.hpp +0 -0
- {MorphIO-3.2.0 → MorphIO-3.3.0}/src/soma.cpp +0 -0
- {MorphIO-3.2.0 → MorphIO-3.3.0}/src/vasc/properties.cpp +0 -0
- {MorphIO-3.2.0 → MorphIO-3.3.0}/src/vasc/section.cpp +0 -0
- {MorphIO-3.2.0 → MorphIO-3.3.0}/src/vasc/vasculature.cpp +0 -0
- {MorphIO-3.2.0 → MorphIO-3.3.0}/src/vector_utils.cpp +0 -0
- {MorphIO-3.2.0 → MorphIO-3.3.0}/src/version.cpp.in +0 -0
- {MorphIO-3.2.0 → MorphIO-3.3.0}/tests/CMakeLists.txt +0 -0
- {MorphIO-3.2.0 → MorphIO-3.3.0}/tests/contrib/catch.hpp +0 -0
- {MorphIO-3.2.0 → MorphIO-3.3.0}/tests/data/annotations.asc +0 -0
- {MorphIO-3.2.0 → MorphIO-3.3.0}/tests/data/astrocyte.h5 +0 -0
- {MorphIO-3.2.0 → MorphIO-3.3.0}/tests/data/circle_contour.asc +0 -0
- {MorphIO-3.2.0 → MorphIO-3.3.0}/tests/data/complexe.swc +0 -0
- {MorphIO-3.2.0 → MorphIO-3.3.0}/tests/data/disconnected_neurite.swc +0 -0
- {MorphIO-3.2.0 → MorphIO-3.3.0}/tests/data/h5/empty.h5 +0 -0
- {MorphIO-3.2.0 → MorphIO-3.3.0}/tests/data/h5/merged.h5 +0 -0
- {MorphIO-3.2.0 → MorphIO-3.3.0}/tests/data/h5/non-valid.h5 +0 -0
- {MorphIO-3.2.0 → MorphIO-3.3.0}/tests/data/h5/v1/Neuron-no-soma.h5 +0 -0
- {MorphIO-3.2.0 → MorphIO-3.3.0}/tests/data/h5/v1/Neuron.h5 +0 -0
- {MorphIO-3.2.0 → MorphIO-3.3.0}/tests/data/h5/v1/endoplasmic-reticulum.h5 +0 -0
- {MorphIO-3.2.0 → MorphIO-3.3.0}/tests/data/h5/v1/glia.h5 +0 -0
- {MorphIO-3.2.0 → MorphIO-3.3.0}/tests/data/h5/v1/glia_empty_perimeters.h5 +0 -0
- {MorphIO-3.2.0 → MorphIO-3.3.0}/tests/data/h5/v1/glia_soma_only.h5 +0 -0
- {MorphIO-3.2.0 → MorphIO-3.3.0}/tests/data/h5/v1/glia_wrong_sized_perimeters.h5 +0 -0
- {MorphIO-3.2.0 → MorphIO-3.3.0}/tests/data/h5/v1/h5v1.3.h5 +0 -0
- {MorphIO-3.2.0 → MorphIO-3.3.0}/tests/data/h5/v1/incorrect_point_columns.h5 +0 -0
- {MorphIO-3.2.0 → MorphIO-3.3.0}/tests/data/h5/v1/incorrect_structure_columns.h5 +0 -0
- {MorphIO-3.2.0 → MorphIO-3.3.0}/tests/data/h5/v1/metadata_group_only.h5 +0 -0
- {MorphIO-3.2.0 → MorphIO-3.3.0}/tests/data/h5/v1/mitochondria.h5 +0 -0
- {MorphIO-3.2.0 → MorphIO-3.3.0}/tests/data/h5/v1/monodim.h5 +0 -0
- {MorphIO-3.2.0 → MorphIO-3.3.0}/tests/data/h5/v1/simple-broken-section-type.h5 +0 -0
- {MorphIO-3.2.0 → MorphIO-3.3.0}/tests/data/h5/v1/simple-negative-section-type.h5 +0 -0
- {MorphIO-3.2.0 → MorphIO-3.3.0}/tests/data/h5/v1/simple-two-point-soma.h5 +0 -0
- {MorphIO-3.2.0 → MorphIO-3.3.0}/tests/data/h5/v1/simple.h5 +0 -0
- {MorphIO-3.2.0 → MorphIO-3.3.0}/tests/data/h5/v1/single-neurite.h5 +0 -0
- {MorphIO-3.2.0 → MorphIO-3.3.0}/tests/data/h5/v1/soma_after_dendrite.h5 +0 -0
- {MorphIO-3.2.0 → MorphIO-3.3.0}/tests/data/h5/v1/soma_no_neurites.h5 +0 -0
- {MorphIO-3.2.0 → MorphIO-3.3.0}/tests/data/h5/v1/three-point-soma-two-offset.h5 +0 -0
- {MorphIO-3.2.0 → MorphIO-3.3.0}/tests/data/h5/v1/two_child_unmerged.h5 +0 -0
- {MorphIO-3.2.0 → MorphIO-3.3.0}/tests/data/h5/v1/unknown_section_type_structure.h5 +0 -0
- {MorphIO-3.2.0 → MorphIO-3.3.0}/tests/data/h5/v2/Neuron.h5 +0 -0
- {MorphIO-3.2.0 → MorphIO-3.3.0}/tests/data/h5/vasculature-broken-section-type.h5 +0 -0
- {MorphIO-3.2.0 → MorphIO-3.3.0}/tests/data/h5/vasculature1.h5 +0 -0
- {MorphIO-3.2.0 → MorphIO-3.3.0}/tests/data/h5/vasculature2.h5 +0 -0
- {MorphIO-3.2.0 → MorphIO-3.3.0}/tests/data/iterators.asc +0 -0
- {MorphIO-3.2.0 → MorphIO-3.3.0}/tests/data/marker-with-string.asc +0 -0
- {MorphIO-3.2.0 → MorphIO-3.3.0}/tests/data/mono-type.asc +0 -0
- {MorphIO-3.2.0 → MorphIO-3.3.0}/tests/data/multiple_point_section.asc +0 -0
- {MorphIO-3.2.0 → MorphIO-3.3.0}/tests/data/multiple_soma.swc +0 -0
- {MorphIO-3.2.0 → MorphIO-3.3.0}/tests/data/nested_single_children.asc +0 -0
- {MorphIO-3.2.0 → MorphIO-3.3.0}/tests/data/neurite_wrong_root_point.swc +0 -0
- {MorphIO-3.2.0 → MorphIO-3.3.0}/tests/data/no_soma.swc +0 -0
- {MorphIO-3.2.0 → MorphIO-3.3.0}/tests/data/nrn-order-already-sorted.h5 +0 -0
- {MorphIO-3.2.0 → MorphIO-3.3.0}/tests/data/nrn_ordering.swc +0 -0
- {MorphIO-3.2.0 → MorphIO-3.3.0}/tests/data/pia.asc +0 -0
- {MorphIO-3.2.0 → MorphIO-3.3.0}/tests/data/reversed_NRN_neurite_order.swc +0 -0
- {MorphIO-3.2.0 → MorphIO-3.3.0}/tests/data/sections-block.asc +0 -0
- {MorphIO-3.2.0 → MorphIO-3.3.0}/tests/data/simple-with-font.asc +0 -0
- {MorphIO-3.2.0 → MorphIO-3.3.0}/tests/data/simple-with-image-coord.asc +0 -0
- {MorphIO-3.2.0 → MorphIO-3.3.0}/tests/data/simple.asc +0 -0
- {MorphIO-3.2.0 → MorphIO-3.3.0}/tests/data/simple.swc +0 -0
- {MorphIO-3.2.0 → MorphIO-3.3.0}/tests/data/simple.unknown +0 -0
- {MorphIO-3.2.0 → MorphIO-3.3.0}/tests/data/simple2.asc +0 -0
- {MorphIO-3.2.0 → MorphIO-3.3.0}/tests/data/single_point_root.asc +0 -0
- {MorphIO-3.2.0 → MorphIO-3.3.0}/tests/data/soma_cylinders.swc +0 -0
- {MorphIO-3.2.0 → MorphIO-3.3.0}/tests/data/soma_multiple_frustums.swc +0 -0
- {MorphIO-3.2.0 → MorphIO-3.3.0}/tests/data/soma_single_frustum.swc +0 -0
- {MorphIO-3.2.0 → MorphIO-3.3.0}/tests/data/soma_three_points_cylinder.swc +0 -0
- {MorphIO-3.2.0 → MorphIO-3.3.0}/tests/data/spine.asc +0 -0
- {MorphIO-3.2.0 → MorphIO-3.3.0}/tests/data/three_point_soma.swc +0 -0
- {MorphIO-3.2.0 → MorphIO-3.3.0}/tests/main.cpp +0 -0
- {MorphIO-3.2.0 → MorphIO-3.3.0}/tests/requirement_tests.txt +0 -0
- {MorphIO-3.2.0 → MorphIO-3.3.0}/tests/test_0_API.py +0 -0
- {MorphIO-3.2.0 → MorphIO-3.3.0}/tests/test_10_vasculature.py +0 -0
- {MorphIO-3.2.0 → MorphIO-3.3.0}/tests/test_1_swc.py +0 -0
- {MorphIO-3.2.0 → MorphIO-3.3.0}/tests/test_3_h5.py +0 -0
- {MorphIO-3.2.0 → MorphIO-3.3.0}/tests/test_4_immut.py +0 -0
- {MorphIO-3.2.0 → MorphIO-3.3.0}/tests/test_5_mut.py +0 -0
- {MorphIO-3.2.0 → MorphIO-3.3.0}/tests/test_6_writers.py +0 -0
- {MorphIO-3.2.0 → MorphIO-3.3.0}/tests/test_7_modifiers.py +0 -0
- {MorphIO-3.2.0 → MorphIO-3.3.0}/tests/test_8_all_morphologies.py +0 -0
- {MorphIO-3.2.0 → MorphIO-3.3.0}/tests/test_9_surfaces.py +0 -0
- {MorphIO-3.2.0 → MorphIO-3.3.0}/tests/test_immutable_morphology.cpp +0 -0
- {MorphIO-3.2.0 → MorphIO-3.3.0}/tests/test_mutable_morphology.cpp +0 -0
- {MorphIO-3.2.0 → MorphIO-3.3.0}/tests/utils.py +0 -0
|
@@ -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
|
|
@@ -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
|
-
|
|
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
|
-
|
|
19
|
-
object has 3 attributes:
|
|
20
|
-
- label
|
|
21
|
-
- points
|
|
22
|
-
- diameters.
|
|
20
|
+
or
|
|
23
21
|
|
|
24
|
-
|
|
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
|
|
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
|
-
|
|
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
|
-
|
|
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
|
-
|
|
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)
|
|
@@ -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
|
|
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
|
|
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
|
-
|
|
449
|
-
|
|
450
|
-
|
|
451
|
-
|
|
452
|
-
|
|
453
|
-
|
|
454
|
-
|
|
455
|
-
(
|
|
456
|
-
|
|
457
|
-
|
|
458
|
-
|
|
459
|
-
|
|
460
|
-
|
|
461
|
-
|
|
462
|
-
|
|
463
|
-
|
|
464
|
-
|
|
465
|
-
|
|
466
|
-
|
|
467
|
-
|
|
468
|
-
|
|
469
|
-
|
|
470
|
-
|
|
471
|
-
|
|
472
|
-
|
|
473
|
-
|
|
474
|
-
|
|
475
|
-
|
|
476
|
-
|
|
477
|
-
|
|
478
|
-
|
|
479
|
-
|
|
480
|
-
|
|
481
|
-
|
|
482
|
-
|
|
483
|
-
|
|
484
|
-
|
|
485
|
-
|
|
486
|
-
|
|
487
|
-
|
|
488
|
-
|
|
489
|
-
|
|
490
|
-
|
|
491
|
-
|
|
492
|
-
|
|
493
|
-
|
|
494
|
-
|
|
495
|
-
|
|
496
|
-
|
|
497
|
-
|
|
498
|
-
|
|
499
|
-
|
|
500
|
-
|
|
501
|
-
|
|
502
|
-
|
|
503
|
-
|
|
504
|
-
|
|
505
|
-
|
|
506
|
-
|
|
507
|
-
|
|
508
|
-
|
|
509
|
-
|
|
510
|
-
|
|
511
|
-
|
|
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
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|