pninexus 3.0.3__tar.gz → 3.2.1__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.
- pninexus-3.2.1/PKG-INFO +173 -0
- {pninexus-3.0.3 → pninexus-3.2.1}/doc/sphinx/conf.py +4 -2
- {pninexus-3.0.3 → pninexus-3.2.1}/doc/sphinx/installation.rst +28 -3
- {pninexus-3.0.3 → pninexus-3.2.1}/setup.py +28 -16
- {pninexus-3.0.3 → pninexus-3.2.1}/src/cpp/h5cpp/boost_filesystem_path_conversion.cpp +5 -4
- {pninexus-3.0.3 → pninexus-3.2.1}/src/cpp/h5cpp/boost_filesystem_path_conversion.hpp +6 -6
- {pninexus-3.0.3 → pninexus-3.2.1}/src/cpp/h5cpp/file/file.cpp +2 -2
- {pninexus-3.0.3 → pninexus-3.2.1}/src/cpp/h5cpp/node/functions.cpp +2 -2
- {pninexus-3.0.3 → pninexus-3.2.1}/src/cpp/h5cpp/node/nodes.cpp +8 -8
- {pninexus-3.0.3 → pninexus-3.2.1}/src/cpp/h5cpp/property/class_wrappers.cpp +2 -2
- {pninexus-3.0.3 → pninexus-3.2.1}/src/cpp/h5cpp/property/property.cpp +1 -1
- {pninexus-3.0.3 → pninexus-3.2.1}/src/cpp/nexus/nexus.cpp +2 -2
- {pninexus-3.0.3 → pninexus-3.2.1}/src/cpp/nexus/path.cpp +12 -3
- {pninexus-3.0.3 → pninexus-3.2.1}/src/pninexus/h5cpp/node/__init__.py +51 -1
- {pninexus-3.0.3 → pninexus-3.2.1}/src/pninexus/nexus/__init__.py +7 -1
- pninexus-3.2.1/src/pninexus.egg-info/PKG-INFO +173 -0
- {pninexus-3.0.3 → pninexus-3.2.1}/src/pninexus.egg-info/SOURCES.txt +1 -0
- pninexus-3.2.1/src/pninexus.egg-info/requires.txt +1 -0
- {pninexus-3.0.3 → pninexus-3.2.1}/test/h5cpp_tests/group_tests/group_construction_test.py +6 -2
- {pninexus-3.0.3 → pninexus-3.2.1}/test/h5cpp_tests/node_tests/h5py_compat_test.py +4 -1
- {pninexus-3.0.3 → pninexus-3.2.1}/test/nexus_tests/path_test.py +27 -0
- {pninexus-3.0.3 → pninexus-3.2.1}/test/nexus_tests/xml_test.py +36 -0
- pninexus-3.0.3/PKG-INFO +0 -27
- pninexus-3.0.3/src/pninexus.egg-info/PKG-INFO +0 -27
- {pninexus-3.0.3 → pninexus-3.2.1}/MANIFEST.in +0 -0
- {pninexus-3.0.3 → pninexus-3.2.1}/README +0 -0
- {pninexus-3.0.3 → pninexus-3.2.1}/build_tools/ConanConfig.py +0 -0
- {pninexus-3.0.3 → pninexus-3.2.1}/build_tools/__init__.py +0 -0
- {pninexus-3.0.3 → pninexus-3.2.1}/build_tools/build_configuration.py +0 -0
- {pninexus-3.0.3 → pninexus-3.2.1}/build_tools/build_configuration_builder.py +0 -0
- {pninexus-3.0.3 → pninexus-3.2.1}/build_tools/cpp_extension_factory.py +0 -0
- {pninexus-3.0.3 → pninexus-3.2.1}/doc/sphinx/Makefile +0 -0
- {pninexus-3.0.3 → pninexus-3.2.1}/doc/sphinx/_static/hdf5_basic_tree.svg +0 -0
- {pninexus-3.0.3 → pninexus-3.2.1}/doc/sphinx/_templates/versions.html +0 -0
- {pninexus-3.0.3 → pninexus-3.2.1}/doc/sphinx/api_guide.rst +0 -0
- {pninexus-3.0.3 → pninexus-3.2.1}/doc/sphinx/array.pdf +0 -0
- {pninexus-3.0.3 → pninexus-3.2.1}/doc/sphinx/array.png +0 -0
- {pninexus-3.0.3 → pninexus-3.2.1}/doc/sphinx/array.svg +0 -0
- {pninexus-3.0.3 → pninexus-3.2.1}/doc/sphinx/array_grow.pdf +0 -0
- {pninexus-3.0.3 → pninexus-3.2.1}/doc/sphinx/array_grow.png +0 -0
- {pninexus-3.0.3 → pninexus-3.2.1}/doc/sphinx/array_grow.svg +0 -0
- {pninexus-3.0.3 → pninexus-3.2.1}/doc/sphinx/external_link.pdf +0 -0
- {pninexus-3.0.3 → pninexus-3.2.1}/doc/sphinx/external_link.svg +0 -0
- {pninexus-3.0.3 → pninexus-3.2.1}/doc/sphinx/h5cpp_attributes.rst +0 -0
- {pninexus-3.0.3 → pninexus-3.2.1}/doc/sphinx/h5cpp_dataset.rst +0 -0
- {pninexus-3.0.3 → pninexus-3.2.1}/doc/sphinx/h5cpp_dataspace.rst +0 -0
- {pninexus-3.0.3 → pninexus-3.2.1}/doc/sphinx/h5cpp_datatypes.rst +0 -0
- {pninexus-3.0.3 → pninexus-3.2.1}/doc/sphinx/h5cpp_files.rst +0 -0
- {pninexus-3.0.3 → pninexus-3.2.1}/doc/sphinx/h5cpp_groups.rst +0 -0
- {pninexus-3.0.3 → pninexus-3.2.1}/doc/sphinx/index.rst +0 -0
- {pninexus-3.0.3 → pninexus-3.2.1}/doc/sphinx/link.pdf +0 -0
- {pninexus-3.0.3 → pninexus-3.2.1}/doc/sphinx/link.svg +0 -0
- {pninexus-3.0.3 → pninexus-3.2.1}/doc/sphinx/make.bat +0 -0
- {pninexus-3.0.3 → pninexus-3.2.1}/doc/sphinx/nexus_attributes.rst +0 -0
- {pninexus-3.0.3 → pninexus-3.2.1}/doc/sphinx/nexus_fields.rst +0 -0
- {pninexus-3.0.3 → pninexus-3.2.1}/doc/sphinx/nexus_files.rst +0 -0
- {pninexus-3.0.3 → pninexus-3.2.1}/doc/sphinx/nexus_groups.rst +0 -0
- {pninexus-3.0.3 → pninexus-3.2.1}/doc/sphinx/nexus_links.rst +0 -0
- {pninexus-3.0.3 → pninexus-3.2.1}/doc/sphinx/nexus_path.rst +0 -0
- {pninexus-3.0.3 → pninexus-3.2.1}/doc/sphinx/nexus_xml.rst +0 -0
- {pninexus-3.0.3 → pninexus-3.2.1}/doc/sphinx/users_guide.rst +0 -0
- {pninexus-3.0.3 → pninexus-3.2.1}/doc/sphinx/using_h5cpp.rst +0 -0
- {pninexus-3.0.3 → pninexus-3.2.1}/doc/sphinx/using_nexus.rst +0 -0
- {pninexus-3.0.3 → pninexus-3.2.1}/pkgconfig.py +0 -0
- {pninexus-3.0.3 → pninexus-3.2.1}/setup.cfg +0 -0
- {pninexus-3.0.3 → pninexus-3.2.1}/src/cpp/h5cpp/_h5cpp.cpp +0 -0
- {pninexus-3.0.3 → pninexus-3.2.1}/src/cpp/h5cpp/attribute/attribute.cpp +0 -0
- {pninexus-3.0.3 → pninexus-3.2.1}/src/cpp/h5cpp/common/converters.cpp +0 -0
- {pninexus-3.0.3 → pninexus-3.2.1}/src/cpp/h5cpp/common/converters.hpp +0 -0
- {pninexus-3.0.3 → pninexus-3.2.1}/src/cpp/h5cpp/common/io.hpp +0 -0
- {pninexus-3.0.3 → pninexus-3.2.1}/src/cpp/h5cpp/dataspace/dataspace.cpp +0 -0
- {pninexus-3.0.3 → pninexus-3.2.1}/src/cpp/h5cpp/dataspace/selections.cpp +0 -0
- {pninexus-3.0.3 → pninexus-3.2.1}/src/cpp/h5cpp/dataspace/wrappers.hpp +0 -0
- {pninexus-3.0.3 → pninexus-3.2.1}/src/cpp/h5cpp/datatype/datatype.cpp +0 -0
- {pninexus-3.0.3 → pninexus-3.2.1}/src/cpp/h5cpp/dimensions_conversion.cpp +0 -0
- {pninexus-3.0.3 → pninexus-3.2.1}/src/cpp/h5cpp/dimensions_conversion.hpp +0 -0
- {pninexus-3.0.3 → pninexus-3.2.1}/src/cpp/h5cpp/errors.cpp +0 -0
- {pninexus-3.0.3 → pninexus-3.2.1}/src/cpp/h5cpp/errors.hpp +0 -0
- {pninexus-3.0.3 → pninexus-3.2.1}/src/cpp/h5cpp/filter/filter.cpp +0 -0
- {pninexus-3.0.3 → pninexus-3.2.1}/src/cpp/h5cpp/iterator_wrapper.hpp +0 -0
- {pninexus-3.0.3 → pninexus-3.2.1}/src/cpp/h5cpp/node/dataset.cpp +0 -0
- {pninexus-3.0.3 → pninexus-3.2.1}/src/cpp/h5cpp/node/wrappers.hpp +0 -0
- {pninexus-3.0.3 → pninexus-3.2.1}/src/cpp/h5cpp/numpy/array_adapter.cpp +0 -0
- {pninexus-3.0.3 → pninexus-3.2.1}/src/cpp/h5cpp/numpy/array_adapter.hpp +0 -0
- {pninexus-3.0.3 → pninexus-3.2.1}/src/cpp/h5cpp/numpy/array_factory.cpp +0 -0
- {pninexus-3.0.3 → pninexus-3.2.1}/src/cpp/h5cpp/numpy/array_factory.hpp +0 -0
- {pninexus-3.0.3 → pninexus-3.2.1}/src/cpp/h5cpp/numpy/dimensions.cpp +0 -0
- {pninexus-3.0.3 → pninexus-3.2.1}/src/cpp/h5cpp/numpy/dimensions.hpp +0 -0
- {pninexus-3.0.3 → pninexus-3.2.1}/src/cpp/h5cpp/numpy/hdf5_fixed_strings_support.hpp +0 -0
- {pninexus-3.0.3 → pninexus-3.2.1}/src/cpp/h5cpp/numpy/hdf5_support.hpp +0 -0
- {pninexus-3.0.3 → pninexus-3.2.1}/src/cpp/h5cpp/numpy/hdf5_variable_strings_support.hpp +0 -0
- {pninexus-3.0.3 → pninexus-3.2.1}/src/cpp/h5cpp/numpy/numpy.hpp +0 -0
- {pninexus-3.0.3 → pninexus-3.2.1}/src/cpp/h5cpp/property/chunk_cache_parameters.cpp +0 -0
- {pninexus-3.0.3 → pninexus-3.2.1}/src/cpp/h5cpp/property/copy_flag_wrapper.cpp +0 -0
- {pninexus-3.0.3 → pninexus-3.2.1}/src/cpp/h5cpp/property/creation_order.cpp +0 -0
- {pninexus-3.0.3 → pninexus-3.2.1}/src/cpp/h5cpp/property/enumeration_wrappers.cpp +0 -0
- {pninexus-3.0.3 → pninexus-3.2.1}/src/cpp/h5cpp/property/wrapper_generators.hpp +0 -0
- {pninexus-3.0.3 → pninexus-3.2.1}/src/cpp/nexus/element_dict_converter.cpp +0 -0
- {pninexus-3.0.3 → pninexus-3.2.1}/src/cpp/nexus/element_dict_converter.hpp +0 -0
- {pninexus-3.0.3 → pninexus-3.2.1}/src/cpp/nexus/factories.cpp +0 -0
- {pninexus-3.0.3 → pninexus-3.2.1}/src/cpp/nexus/list_converters.cpp +0 -0
- {pninexus-3.0.3 → pninexus-3.2.1}/src/cpp/nexus/list_converters.hpp +0 -0
- {pninexus-3.0.3 → pninexus-3.2.1}/src/cpp/nexus/predicates.cpp +0 -0
- {pninexus-3.0.3 → pninexus-3.2.1}/src/cpp/nexus/wrappers.hpp +0 -0
- {pninexus-3.0.3 → pninexus-3.2.1}/src/pninexus/__init__.py +0 -0
- {pninexus-3.0.3 → pninexus-3.2.1}/src/pninexus/h5cpp/__init__.py +0 -0
- {pninexus-3.0.3 → pninexus-3.2.1}/src/pninexus/h5cpp/attribute/__init__.py +0 -0
- {pninexus-3.0.3 → pninexus-3.2.1}/src/pninexus/h5cpp/dataspace/__init__.py +0 -0
- {pninexus-3.0.3 → pninexus-3.2.1}/src/pninexus/h5cpp/datatype/__init__.py +0 -0
- {pninexus-3.0.3 → pninexus-3.2.1}/src/pninexus/h5cpp/file/__init__.py +0 -0
- {pninexus-3.0.3 → pninexus-3.2.1}/src/pninexus/h5cpp/filter/__init__.py +0 -0
- {pninexus-3.0.3 → pninexus-3.2.1}/src/pninexus/h5cpp/property/__init__.py +0 -0
- {pninexus-3.0.3 → pninexus-3.2.1}/src/pninexus.egg-info/dependency_links.txt +0 -0
- {pninexus-3.0.3 → pninexus-3.2.1}/src/pninexus.egg-info/top_level.txt +0 -0
- {pninexus-3.0.3 → pninexus-3.2.1}/test/__init__.py +0 -0
- {pninexus-3.0.3 → pninexus-3.2.1}/test/data_generator.py +0 -0
- {pninexus-3.0.3 → pninexus-3.2.1}/test/debug/attributes_all.py +0 -0
- {pninexus-3.0.3 → pninexus-3.2.1}/test/debug/is_root_element_ttest.py +0 -0
- {pninexus-3.0.3 → pninexus-3.2.1}/test/debug/read.py +0 -0
- {pninexus-3.0.3 → pninexus-3.2.1}/test/debug/scalar.py +0 -0
- {pninexus-3.0.3 → pninexus-3.2.1}/test/debug/scalar_string_setget.py +0 -0
- {pninexus-3.0.3 → pninexus-3.2.1}/test/debug/test.py +0 -0
- {pninexus-3.0.3 → pninexus-3.2.1}/test/debug/test2.py +0 -0
- {pninexus-3.0.3 → pninexus-3.2.1}/test/debug/test3.py +0 -0
- {pninexus-3.0.3 → pninexus-3.2.1}/test/debug/ttest_attributes.py +0 -0
- {pninexus-3.0.3 → pninexus-3.2.1}/test/debug/ttest_fields.py +0 -0
- {pninexus-3.0.3 → pninexus-3.2.1}/test/h5cpp_tests/__init__.py +0 -0
- {pninexus-3.0.3 → pninexus-3.2.1}/test/h5cpp_tests/attribute_tests/__init__.py +0 -0
- {pninexus-3.0.3 → pninexus-3.2.1}/test/h5cpp_tests/attribute_tests/attribute_creation_test.py +0 -0
- {pninexus-3.0.3 → pninexus-3.2.1}/test/h5cpp_tests/attribute_tests/attribute_io_test.py +0 -0
- {pninexus-3.0.3 → pninexus-3.2.1}/test/h5cpp_tests/dataspace_tests/__init__.py +0 -0
- {pninexus-3.0.3 → pninexus-3.2.1}/test/h5cpp_tests/dataspace_tests/scalar_dataspace_test.py +0 -0
- {pninexus-3.0.3 → pninexus-3.2.1}/test/h5cpp_tests/dataspace_tests/simple_dataspace_test.py +0 -0
- {pninexus-3.0.3 → pninexus-3.2.1}/test/h5cpp_tests/datatype_tests/__init__.py +0 -0
- {pninexus-3.0.3 → pninexus-3.2.1}/test/h5cpp_tests/datatype_tests/predefined_type_test.py +0 -0
- {pninexus-3.0.3 → pninexus-3.2.1}/test/h5cpp_tests/file_creation_test.py +0 -0
- {pninexus-3.0.3 → pninexus-3.2.1}/test/h5cpp_tests/file_image_test.py +0 -0
- {pninexus-3.0.3 → pninexus-3.2.1}/test/h5cpp_tests/file_open_test.py +0 -0
- {pninexus-3.0.3 → pninexus-3.2.1}/test/h5cpp_tests/filter_tests/__init__.py +0 -0
- {pninexus-3.0.3 → pninexus-3.2.1}/test/h5cpp_tests/filter_tests/creation_test.py +0 -0
- {pninexus-3.0.3 → pninexus-3.2.1}/test/h5cpp_tests/group_tests/__init__.py +0 -0
- {pninexus-3.0.3 → pninexus-3.2.1}/test/h5cpp_tests/node_tests/__init__.py +0 -0
- {pninexus-3.0.3 → pninexus-3.2.1}/test/h5cpp_tests/node_tests/copy_test.py +0 -0
- {pninexus-3.0.3 → pninexus-3.2.1}/test/h5cpp_tests/node_tests/dataset_direct_chunk_test.py +0 -0
- {pninexus-3.0.3 → pninexus-3.2.1}/test/h5cpp_tests/node_tests/dataset_extent_test.py +0 -0
- {pninexus-3.0.3 → pninexus-3.2.1}/test/h5cpp_tests/node_tests/dataset_io_test.py +0 -0
- {pninexus-3.0.3 → pninexus-3.2.1}/test/h5cpp_tests/node_tests/dataset_partial_io_test.py +0 -0
- {pninexus-3.0.3 → pninexus-3.2.1}/test/h5cpp_tests/node_tests/group_creation_test.py +0 -0
- {pninexus-3.0.3 → pninexus-3.2.1}/test/h5cpp_tests/node_tests/link_iteration_test.py +0 -0
- {pninexus-3.0.3 → pninexus-3.2.1}/test/h5cpp_tests/node_tests/node_iterator_test.py +0 -0
- {pninexus-3.0.3 → pninexus-3.2.1}/test/h5cpp_tests/node_tests/virtual_dataset_test.py +0 -0
- {pninexus-3.0.3 → pninexus-3.2.1}/test/h5cpp_tests/path_test.py +0 -0
- {pninexus-3.0.3 → pninexus-3.2.1}/test/h5cpp_tests/property_tests/__init__.py +0 -0
- {pninexus-3.0.3 → pninexus-3.2.1}/test/h5cpp_tests/property_tests/chunk_cache_parameters_test.py +0 -0
- {pninexus-3.0.3 → pninexus-3.2.1}/test/h5cpp_tests/property_tests/copy_flags_test.py +0 -0
- {pninexus-3.0.3 → pninexus-3.2.1}/test/h5cpp_tests/property_tests/creation_order_test.py +0 -0
- {pninexus-3.0.3 → pninexus-3.2.1}/test/h5cpp_tests/property_tests/object_copy_list_test.py +0 -0
- {pninexus-3.0.3 → pninexus-3.2.1}/test/io_test_utils.py +0 -0
- {pninexus-3.0.3 → pninexus-3.2.1}/test/mem_log_view.py +0 -0
- {pninexus-3.0.3 → pninexus-3.2.1}/test/memory_check.py +0 -0
- {pninexus-3.0.3 → pninexus-3.2.1}/test/nexus_tests/NexusPathTests.xml +0 -0
- {pninexus-3.0.3 → pninexus-3.2.1}/test/nexus_tests/__init__.py +0 -0
- {pninexus-3.0.3 → pninexus-3.2.1}/test/nexus_tests/detector.xml +0 -0
- {pninexus-3.0.3 → pninexus-3.2.1}/test/nexus_tests/factory_test.py +0 -0
- {pninexus-3.0.3 → pninexus-3.2.1}/test/nexus_tests/file_test.py +0 -0
- {pninexus-3.0.3 → pninexus-3.2.1}/test/regression_tests/__init__.py +0 -0
- {pninexus-3.0.3 → pninexus-3.2.1}/test/regression_tests/issue_18_test.py +0 -0
- {pninexus-3.0.3 → pninexus-3.2.1}/test/regression_tests/issue_23_test.py +0 -0
- {pninexus-3.0.3 → pninexus-3.2.1}/test/regression_tests/issue_5_test.py +0 -0
pninexus-3.2.1/PKG-INFO
ADDED
@@ -0,0 +1,173 @@
|
|
1
|
+
Metadata-Version: 1.2
|
2
|
+
Name: pninexus
|
3
|
+
Version: 3.2.1
|
4
|
+
Summary: Python wrapper for the H5CPP and PNI libraries
|
5
|
+
Home-page: https://github.com/pni-libraries/python-pninexus
|
6
|
+
Author: Eugen Wintersberger
|
7
|
+
Author-email: eugen.wintersberger@desy.de
|
8
|
+
Maintainer: Eugen Wintersberger, Jan Kotanski
|
9
|
+
Maintainer-email: jan.kotanski@desy.de
|
10
|
+
License: GPLv2
|
11
|
+
Description: Python bindings for PNI/NeXus and h5cpp
|
12
|
+
=======================================
|
13
|
+
|
14
|
+
|
15
|
+
|github workflow|
|
16
|
+
|docs|
|
17
|
+
|Pypi Version|
|
18
|
+
|Python Versions|
|
19
|
+
|
20
|
+
.. |github workflow| image:: https://github.com/pni-libraries/python-pninexus/actions/workflows/tests.yml/badge.svg
|
21
|
+
:target: https://github.com/pni-libraries/python-pninexus/actions
|
22
|
+
:alt:
|
23
|
+
|
24
|
+
.. |docs| image:: https://img.shields.io/badge/Documentation-webpages-ADD8E6.svg
|
25
|
+
:target: https://pni-libraries.github.io/python-pninexus/index.html
|
26
|
+
:alt:
|
27
|
+
|
28
|
+
.. |Pypi Version| image:: https://img.shields.io/pypi/v/pninexus.svg
|
29
|
+
:target: https://pypi.python.org/pypi/pninexus
|
30
|
+
:alt:
|
31
|
+
|
32
|
+
.. |Python Versions| image:: https://img.shields.io/pypi/pyversions/pninexus.svg
|
33
|
+
:target: https://pypi.python.org/pypi/pninexus/
|
34
|
+
:alt:
|
35
|
+
|
36
|
+
|
37
|
+
Python wrapper for the `h5cpp <https://github.com/ess-dmsc/h5cpp>`__ and
|
38
|
+
`libpninexus <https://github.com/pni-libraries/libpninexus>`__ C++
|
39
|
+
libraries. The wrapper supports Python 2.X and 3.X.
|
40
|
+
|
41
|
+
Installation
|
42
|
+
------------
|
43
|
+
|
44
|
+
Required packages
|
45
|
+
~~~~~~~~~~~~~~~~~
|
46
|
+
|
47
|
+
- *h5cpp* >= 0.5.0
|
48
|
+
- *libpninexus* >= 3.2.0
|
49
|
+
- python setuptools
|
50
|
+
- numpy
|
51
|
+
- c++ compiler
|
52
|
+
- boost-python library
|
53
|
+
- python sphinx to build the documentation
|
54
|
+
|
55
|
+
Install from sources
|
56
|
+
~~~~~~~~~~~~~~~~~~~~
|
57
|
+
|
58
|
+
The code can be built with
|
59
|
+
|
60
|
+
::
|
61
|
+
|
62
|
+
$ python setup.py install
|
63
|
+
|
64
|
+
For those who are still running on the old interface it is maybe whise
|
65
|
+
to install this package in a custom location with something like this
|
66
|
+
|
67
|
+
::
|
68
|
+
|
69
|
+
$ python setup.py install --prefix=<path to installation prefix>
|
70
|
+
|
71
|
+
To build the documentation use
|
72
|
+
|
73
|
+
::
|
74
|
+
|
75
|
+
$ python setup.py build_sphinx
|
76
|
+
|
77
|
+
The resulting documentation can be found below ``build/sphinx/html`` in
|
78
|
+
the root directory of the source distribution.
|
79
|
+
|
80
|
+
Finally, the package can be tested using
|
81
|
+
|
82
|
+
::
|
83
|
+
|
84
|
+
$ python setup.py test
|
85
|
+
|
86
|
+
For Python3 just replace python with python3 in the above instructions.
|
87
|
+
|
88
|
+
Debian and Ubuntu packages
|
89
|
+
~~~~~~~~~~~~~~~~~~~~~~~~~~
|
90
|
+
|
91
|
+
Debian ``bookworm``, ``bullseye``, ``buster`` or Ubuntu ``lunar``,
|
92
|
+
``jammy``, ``focal`` packages can be found in the HDRI repository.
|
93
|
+
|
94
|
+
To install the debian packages, add the PGP repository key
|
95
|
+
|
96
|
+
::
|
97
|
+
|
98
|
+
$ sudo su
|
99
|
+
$ curl -s http://repos.pni-hdri.de/debian_repo.pub.gpg | gpg --no-default-keyring --keyring gnupg-ring:/etc/apt/trusted.gpg.d/debian-hdri-repo.gpg --import
|
100
|
+
$ chmod 644 /etc/apt/trusted.gpg.d/debian-hdri-repo.gpg
|
101
|
+
|
102
|
+
and then download the corresponding source list, e.g. for ``bullseye``
|
103
|
+
|
104
|
+
::
|
105
|
+
|
106
|
+
$ cd /etc/apt/sources.list.d
|
107
|
+
$ wget http://repos.pni-hdri.de/bullseye-pni-hdri.list
|
108
|
+
|
109
|
+
or ``jammy``
|
110
|
+
|
111
|
+
::
|
112
|
+
|
113
|
+
$ cd /etc/apt/sources.list.d
|
114
|
+
$ wget http://repos.pni-hdri.de/jammy-pni-hdri.list
|
115
|
+
|
116
|
+
respectively.
|
117
|
+
|
118
|
+
Finally,
|
119
|
+
|
120
|
+
::
|
121
|
+
|
122
|
+
$ apt-get update
|
123
|
+
$ apt-get install python-pninexus
|
124
|
+
|
125
|
+
or
|
126
|
+
|
127
|
+
::
|
128
|
+
|
129
|
+
$ apt-get update
|
130
|
+
$ apt-get install python3-pninexus
|
131
|
+
|
132
|
+
for python3.
|
133
|
+
|
134
|
+
|
135
|
+
Manylinux wheels from PyPI
|
136
|
+
~~~~~~~~~~~~~~~~~~~~~~~~~~
|
137
|
+
|
138
|
+
To install pninexus in a conda or python virtual environment manylinux pip wheels can be used, e.g.
|
139
|
+
|
140
|
+
.. code-block:: console
|
141
|
+
|
142
|
+
$ python3 -m venv myvenv
|
143
|
+
$ . myvenv/bin/activate
|
144
|
+
|
145
|
+
$ pip install pip --upgrade
|
146
|
+
$ pip install numpy
|
147
|
+
|
148
|
+
$ pip install pninexus -U wheel
|
149
|
+
|
150
|
+
For some versions of wheels numpy needs to be installed in advance.
|
151
|
+
|
152
|
+
|
153
|
+
|
154
|
+
More information can be found at `online
|
155
|
+
documentation <https://pni-libraries.github.io/python-pninexus/index.html>`__.
|
156
|
+
|
157
|
+
Changes for a specific version of libpninexus can be found at
|
158
|
+
`CHANGELOG <https://github.com/pni-libraries/python-pninexus/blob/develop/CHANGELOG.md>`__.
|
159
|
+
|
160
|
+
|
161
|
+
Keywords: h5cpp hdf5 python photon science detector
|
162
|
+
Platform: UNKNOWN
|
163
|
+
Classifier: Development Status :: 5 - Production/Stable
|
164
|
+
Classifier: Intended Audience :: Science/Research
|
165
|
+
Classifier: Topic :: Scientific/Engineering :: Physics
|
166
|
+
Classifier: Topic :: Software Development :: Libraries :: Python Modules
|
167
|
+
Classifier: License :: OSI Approved :: GNU General Public License v2 (GPLv2)
|
168
|
+
Classifier: Programming Language :: Python :: 2.7
|
169
|
+
Classifier: Programming Language :: Python :: 3.7
|
170
|
+
Classifier: Programming Language :: Python :: 3.8
|
171
|
+
Classifier: Programming Language :: Python :: 3.9
|
172
|
+
Classifier: Programming Language :: Python :: 3.10
|
173
|
+
Classifier: Programming Language :: Python :: 3.11
|
@@ -113,7 +113,7 @@ pygments_style = 'sphinx'
|
|
113
113
|
# Theme options are theme-specific and customize the look and feel of a theme
|
114
114
|
# further. For a list of options available for each theme, see the
|
115
115
|
# documentation.
|
116
|
-
|
116
|
+
html_theme_options = {"sidebarwidth":500}
|
117
117
|
|
118
118
|
# Add any paths that contain custom themes here, relative to this directory.
|
119
119
|
#html_theme_path = []
|
@@ -159,7 +159,9 @@ html_sidebars = {
|
|
159
159
|
}
|
160
160
|
|
161
161
|
html_context = {
|
162
|
-
"docs_versions" : [
|
162
|
+
"docs_versions" : [
|
163
|
+
"v3.2.1", "v3.2.0", "v3.1.0",
|
164
|
+
"v3.0.3", "v3.0.2", "v3.0.1", "v3.0.0", "v2.0.0", "v1.3.4"]
|
163
165
|
}
|
164
166
|
|
165
167
|
# Additional templates that should be rendered to pages, maps page names to
|
@@ -66,11 +66,11 @@ keyring
|
|
66
66
|
The return value of this command line should be `OK`.
|
67
67
|
In a next step you have to add new package sources to your system. For this
|
68
68
|
purpose go to :file:`/etc/apt/sources.list.d` and download the sources file.
|
69
|
-
For Debian (
|
69
|
+
For Debian (Bookworm) use
|
70
70
|
|
71
71
|
.. code-block:: bash
|
72
72
|
|
73
|
-
$ wget http://repos.pni-hdri.de/
|
73
|
+
$ wget http://repos.pni-hdri.de/bookworm-hdri.list
|
74
74
|
|
75
75
|
and for Ubuntu (Jammy)
|
76
76
|
|
@@ -78,7 +78,7 @@ and for Ubuntu (Jammy)
|
|
78
78
|
|
79
79
|
$ wget http://repos.pni-hdri.de/jammy-pni-hdri.list
|
80
80
|
|
81
|
-
Similarly, proceed for Bullseye, Buster,
|
81
|
+
Similarly, proceed for Bookworm, Bullseye, Buster, Lunar, Jammy, Focal.
|
82
82
|
Once you have downloaded the file use
|
83
83
|
|
84
84
|
.. code-block:: bash
|
@@ -99,3 +99,28 @@ or
|
|
99
99
|
$ apt-get install python3-pninexus
|
100
100
|
|
101
101
|
to install the the PNI/NeXus package for python or python3, respectively.
|
102
|
+
|
103
|
+
Manylinux wheels from PyPI
|
104
|
+
==========================
|
105
|
+
|
106
|
+
To install pninexus in a conda or python virtual environment manylinux pip wheels can be used, e.g.
|
107
|
+
|
108
|
+
.. code-block:: console
|
109
|
+
|
110
|
+
$ python3 -m venv myvenv
|
111
|
+
$ . myvenv/bin/activate
|
112
|
+
|
113
|
+
$ pip install pip --upgrade
|
114
|
+
$ pip install numpy
|
115
|
+
|
116
|
+
$ pip install pninexus -U wheel
|
117
|
+
|
118
|
+
For some versions of wheels numpy needs to be installed in advance.
|
119
|
+
|
120
|
+
|
121
|
+
|
122
|
+
More information can be found at `online
|
123
|
+
documentation <https://pni-libraries.github.io/python-pninexus/index.html>`__.
|
124
|
+
|
125
|
+
Changes for a specific version of libpninexus can be found at
|
126
|
+
`CHANGELOG <https://github.com/pni-libraries/python-pninexus/blob/develop/CHANGELOG.md>`__.
|
@@ -1,23 +1,28 @@
|
|
1
1
|
# setup script for python-pninexus
|
2
2
|
from __future__ import print_function
|
3
|
+
import codecs
|
3
4
|
import sys
|
4
5
|
import os
|
5
6
|
import os.path
|
6
|
-
|
7
|
+
import numpy
|
7
8
|
from setuptools import setup
|
8
|
-
from sphinx.setup_command import BuildDoc
|
9
9
|
from distutils.command.install import install
|
10
10
|
import sysconfig
|
11
11
|
from build_tools import (CppExtensionFactory,
|
12
12
|
ConanBuildInfoBuilder,
|
13
13
|
BuildConfiguration)
|
14
14
|
|
15
|
+
cmdclass = {}
|
16
|
+
try:
|
17
|
+
from sphinx.setup_command import BuildDoc
|
18
|
+
cmdclass['build_sphinx'] = BuildDoc
|
19
|
+
except ImportError:
|
20
|
+
print('WARNING: sphinx is not available, not building docs')
|
15
21
|
|
16
|
-
cmdclass = {'build_sphinx': BuildDoc}
|
17
22
|
name = "pninexus"
|
18
|
-
version = "3.
|
19
|
-
release = "3.
|
20
|
-
# release = "3.
|
23
|
+
version = "3.2.1"
|
24
|
+
release = "3.2.1"
|
25
|
+
# release = "3.2"
|
21
26
|
|
22
27
|
if release.count(".") == 1:
|
23
28
|
docs_release = '(latest)'
|
@@ -25,6 +30,17 @@ else:
|
|
25
30
|
docs_release = release
|
26
31
|
|
27
32
|
|
33
|
+
def read(fname):
|
34
|
+
""" read the file
|
35
|
+
|
36
|
+
:param fname: readme file name
|
37
|
+
:type fname: :obj:`str`
|
38
|
+
"""
|
39
|
+
with codecs.open(os.path.join('.', fname), encoding='utf-8') as f:
|
40
|
+
long_description = f.read()
|
41
|
+
return long_description
|
42
|
+
|
43
|
+
|
28
44
|
def get_build_dir():
|
29
45
|
build_dir = "lib.{platform}-{version[0]}.{version[1]}"
|
30
46
|
|
@@ -92,8 +108,7 @@ else:
|
|
92
108
|
#
|
93
109
|
# adding include directories from numpy
|
94
110
|
#
|
95
|
-
|
96
|
-
nexus_config.add_include_directories(get_numpy_include_dirs())
|
111
|
+
nexus_config.add_include_directories([numpy.get_include()])
|
97
112
|
|
98
113
|
|
99
114
|
# ----------------------------------------------------------------------------
|
@@ -102,7 +117,7 @@ nexus_config.add_include_directories(get_numpy_include_dirs())
|
|
102
117
|
if sys.platform == "win32":
|
103
118
|
pass
|
104
119
|
else:
|
105
|
-
arguments = ['-std=c++
|
120
|
+
arguments = ['-std=c++17', '-Wall', '-Wextra', '-fdiagnostics-show-option']
|
106
121
|
nexus_config.add_compiler_arguments(arguments)
|
107
122
|
|
108
123
|
# ----------------------------------------------------------------------------
|
@@ -202,13 +217,12 @@ setup(
|
|
202
217
|
author="Eugen Wintersberger",
|
203
218
|
author_email="eugen.wintersberger@desy.de",
|
204
219
|
description="Python wrapper for the H5CPP and PNI libraries",
|
205
|
-
long_description=
|
206
|
-
"libraries libpninexus and libh5cpp.",
|
220
|
+
long_description=read('README.rst'),
|
207
221
|
maintainer="Eugen Wintersberger, Jan Kotanski",
|
208
222
|
maintainer_email="jan.kotanski@desy.de",
|
209
223
|
license="GPLv2",
|
210
224
|
version=release,
|
211
|
-
|
225
|
+
install_requires=["numpy"],
|
212
226
|
ext_modules=[
|
213
227
|
h5cpp_core_ext,
|
214
228
|
h5cpp_attribute_ext,
|
@@ -239,13 +253,11 @@ setup(
|
|
239
253
|
'Topic :: Software Development :: Libraries :: Python Modules',
|
240
254
|
'License :: OSI Approved :: GNU General Public License v2 (GPLv2)',
|
241
255
|
'Programming Language :: Python :: 2.7',
|
242
|
-
'Programming Language :: Python :: 3',
|
243
|
-
'Programming Language :: Python :: 3.4',
|
244
|
-
'Programming Language :: Python :: 3.5',
|
245
|
-
'Programming Language :: Python :: 3.6',
|
246
256
|
'Programming Language :: Python :: 3.7',
|
247
257
|
'Programming Language :: Python :: 3.8',
|
248
258
|
'Programming Language :: Python :: 3.9',
|
259
|
+
'Programming Language :: Python :: 3.10',
|
260
|
+
'Programming Language :: Python :: 3.11',
|
249
261
|
],
|
250
262
|
test_suite="test",
|
251
263
|
test_loader="unittest:TestLoader",
|
@@ -27,10 +27,10 @@ using namespace boost::python;
|
|
27
27
|
|
28
28
|
BoostFilesystemPathToPythonObject::BoostFilesystemPathToPythonObject()
|
29
29
|
{
|
30
|
-
to_python_converter<
|
30
|
+
to_python_converter<fs::path,BoostFilesystemPathToPythonObject>();
|
31
31
|
}
|
32
32
|
|
33
|
-
PyObject *BoostFilesystemPathToPythonObject::convert(const
|
33
|
+
PyObject *BoostFilesystemPathToPythonObject::convert(const fs::path &path)
|
34
34
|
{
|
35
35
|
return incref(object(path.string()).ptr());
|
36
36
|
}
|
@@ -38,7 +38,7 @@ PyObject *BoostFilesystemPathToPythonObject::convert(const boost::filesystem::pa
|
|
38
38
|
PythonObjectToBoostFilesystemPath::PythonObjectToBoostFilesystemPath()
|
39
39
|
{
|
40
40
|
converter::registry::push_back(&convertible,&construct,
|
41
|
-
type_id<
|
41
|
+
type_id<fs::path>());
|
42
42
|
}
|
43
43
|
|
44
44
|
void *PythonObjectToBoostFilesystemPath::convertible(PyObject *ptr)
|
@@ -57,6 +57,7 @@ void PythonObjectToBoostFilesystemPath::construct(PyObject *ptr,rvalue_type *dat
|
|
57
57
|
boost::python::str py_string(handle<>(borrowed(ptr)));
|
58
58
|
|
59
59
|
void *storage = ((storage_type*)data)->storage.bytes;
|
60
|
-
|
60
|
+
std::string path = extract<std::string>(py_string);
|
61
|
+
new (storage) fs::path(path);
|
61
62
|
data->convertible = storage;
|
62
63
|
}
|
@@ -23,29 +23,29 @@
|
|
23
23
|
#pragma once
|
24
24
|
|
25
25
|
#include <boost/python.hpp>
|
26
|
-
#include <
|
26
|
+
#include <h5cpp/core/filesystem.hpp>
|
27
27
|
|
28
28
|
//!
|
29
|
-
//! @brief convert
|
29
|
+
//! @brief convert fs::path to a Python object
|
30
30
|
//!
|
31
|
-
//! Instances of
|
31
|
+
//! Instances of fs::path are converted to a Python string
|
32
32
|
//!
|
33
33
|
struct BoostFilesystemPathToPythonObject
|
34
34
|
{
|
35
35
|
BoostFilesystemPathToPythonObject();
|
36
|
-
static PyObject *convert(const
|
36
|
+
static PyObject *convert(const fs::path &path);
|
37
37
|
};
|
38
38
|
|
39
39
|
//!
|
40
40
|
//! @brief convert a Python string to boost::fileystem::path
|
41
41
|
//!
|
42
|
-
//! Python strings can be converted to an instance of
|
42
|
+
//! Python strings can be converted to an instance of fs::path
|
43
43
|
//! if required.
|
44
44
|
//!
|
45
45
|
struct PythonObjectToBoostFilesystemPath
|
46
46
|
{
|
47
47
|
using rvalue_type = boost::python::converter::rvalue_from_python_stage1_data;
|
48
|
-
using storage_type = boost::python::converter::rvalue_from_python_storage<
|
48
|
+
using storage_type = boost::python::converter::rvalue_from_python_storage<fs::path>;
|
49
49
|
|
50
50
|
PythonObjectToBoostFilesystemPath();
|
51
51
|
|
@@ -55,7 +55,7 @@ using namespace boost::python;
|
|
55
55
|
|
56
56
|
BOOST_PYTHON_MEMBER_FUNCTION_OVERLOADS(root_overloads,root,0,0);
|
57
57
|
|
58
|
-
hdf5::file::File create_file(const
|
58
|
+
hdf5::file::File create_file(const fs::path &file_path,
|
59
59
|
hdf5::file::AccessFlagsBase flags,
|
60
60
|
const hdf5::property::FileCreationList &fcpl,
|
61
61
|
const hdf5::property::FileAccessList &fapl)
|
@@ -63,7 +63,7 @@ hdf5::file::File create_file(const boost::filesystem::path &file_path,
|
|
63
63
|
return hdf5::file::create(file_path,flags,fcpl,fapl);
|
64
64
|
}
|
65
65
|
|
66
|
-
hdf5::file::File open_file(const
|
66
|
+
hdf5::file::File open_file(const fs::path &file_path,
|
67
67
|
hdf5::file::AccessFlagsBase flags,
|
68
68
|
const hdf5::property::FileAccessList &fapl)
|
69
69
|
{
|
@@ -57,7 +57,7 @@ void create_function_wrapper()
|
|
57
57
|
//
|
58
58
|
// get node functions
|
59
59
|
//
|
60
|
-
def("
|
60
|
+
def("get_node_",get_node,(arg("base"),
|
61
61
|
arg("path"),
|
62
62
|
arg("lapl")=hdf5::property::LinkAccessList()));
|
63
63
|
|
@@ -115,7 +115,7 @@ void create_function_wrapper()
|
|
115
115
|
const hdf5::Path &,
|
116
116
|
const hdf5::property::LinkCreationList &,
|
117
117
|
const hdf5::property::LinkAccessList &) = &hdf5::node::link;
|
118
|
-
void (*link_external)(const
|
118
|
+
void (*link_external)(const fs::path &,
|
119
119
|
const hdf5::Path &,
|
120
120
|
const hdf5::node::Group &,
|
121
121
|
const hdf5::Path &,
|
@@ -281,17 +281,17 @@ BOOST_PYTHON_MODULE(_node)
|
|
281
281
|
.def_readonly("links",&Group::links)
|
282
282
|
.def_readonly("nodes",&Group::nodes)
|
283
283
|
.def("close",&Group::close)
|
284
|
-
.def("
|
285
|
-
(arg("
|
284
|
+
.def("get_group_", &Group::get_group,
|
285
|
+
(arg("path"),
|
286
286
|
arg("lapl")=hdf5::property::LinkAccessList()))
|
287
|
-
.def("
|
288
|
-
(arg("
|
287
|
+
.def("get_dataset_", &Group::get_dataset,
|
288
|
+
(arg("path"),
|
289
289
|
arg("lapl")=hdf5::property::LinkAccessList()))
|
290
|
-
.def("
|
291
|
-
(arg("
|
290
|
+
.def("has_group_", &Group::has_group,
|
291
|
+
(arg("path"),
|
292
292
|
arg("lapl")=hdf5::property::LinkAccessList()))
|
293
|
-
.def("
|
294
|
-
(arg("
|
293
|
+
.def("has_dataset_", &Group::has_dataset,
|
294
|
+
(arg("path"),
|
295
295
|
arg("lapl")=hdf5::property::LinkAccessList()))
|
296
296
|
;
|
297
297
|
|
@@ -171,8 +171,8 @@ void create_class_wrappers()
|
|
171
171
|
|
172
172
|
size_t (LinkAccessList::*get_link_traversals)() const = &LinkAccessList::maximum_link_traversals;
|
173
173
|
void (LinkAccessList::*set_link_traversals)(size_t) const= &LinkAccessList::maximum_link_traversals;
|
174
|
-
|
175
|
-
void (LinkAccessList::*set_external_link_prefix)(const
|
174
|
+
fs::path (LinkAccessList::*get_external_link_prefix)() const = &LinkAccessList::external_link_prefix;
|
175
|
+
void (LinkAccessList::*set_external_link_prefix)(const fs::path &) = &LinkAccessList::external_link_prefix;
|
176
176
|
|
177
177
|
class_<LinkAccessList,bases<List>>("LinkAccessList")
|
178
178
|
.add_property("maximum_link_traversals",get_link_traversals,set_link_traversals)
|
@@ -60,7 +60,7 @@ BOOST_PYTHON_MODULE(_property)
|
|
60
60
|
|
61
61
|
#if H5_VERSION_GE(1, 10, 0)
|
62
62
|
class_<VirtualDataMap>("VirtualDataMap")
|
63
|
-
.def(init<View,
|
63
|
+
.def(init<View,fs::path,Path,View>((arg("target_view"),arg("source_file"),arg("source_dataset"),arg("source_view"))))
|
64
64
|
;
|
65
65
|
class_<VirtualDataMaps>("VirtualDataMaps")
|
66
66
|
.def("add", add_map)
|
@@ -75,7 +75,7 @@ BOOST_PYTHON_MODULE(_nexus)
|
|
75
75
|
//
|
76
76
|
def("is_nexus_file",&pni::nexus::is_nexus_file);
|
77
77
|
|
78
|
-
hdf5::file::File (*create_file_flag)(const
|
78
|
+
hdf5::file::File (*create_file_flag)(const fs::path &,
|
79
79
|
hdf5::file::AccessFlagsBase,
|
80
80
|
const hdf5::property::FileCreationList &,
|
81
81
|
const hdf5::property::FileAccessList &) = &pni::nexus::create_file;
|
@@ -84,7 +84,7 @@ BOOST_PYTHON_MODULE(_nexus)
|
|
84
84
|
arg("fcpl")=hdf5::property::FileCreationList(),
|
85
85
|
arg("fapl")=hdf5::property::FileAccessList()));
|
86
86
|
|
87
|
-
hdf5::file::File (*open_file_flag)(const
|
87
|
+
hdf5::file::File (*open_file_flag)(const fs::path &,
|
88
88
|
hdf5::file::AccessFlagsBase,
|
89
89
|
const hdf5::property::FileAccessList &) = &pni::nexus::open_file;
|
90
90
|
def("open_file",open_file_flag,(arg("path"),
|
@@ -28,10 +28,18 @@
|
|
28
28
|
using namespace boost::python;
|
29
29
|
using namespace pni;
|
30
30
|
|
31
|
+
nexus::PathObjectList get_objects_path(const hdf5::node::Group &base,
|
32
|
+
const nexus::Path &path)
|
33
|
+
{
|
34
|
+
return nexus::get_objects(base, path);
|
35
|
+
}
|
36
|
+
|
37
|
+
|
38
|
+
|
31
39
|
void create_path_wrappers()
|
32
40
|
{
|
33
|
-
void (nexus::Path::*set_filename)(const
|
34
|
-
|
41
|
+
void (nexus::Path::*set_filename)(const fs::path &) = &nexus::Path::filename;
|
42
|
+
fs::path (nexus::Path::*get_filename)() const = &nexus::Path::filename;
|
35
43
|
void (nexus::Path::*set_attribute)(const std::string &) = &nexus::Path::attribute;
|
36
44
|
std::string (nexus::Path::*get_attribute)() const = &nexus::Path::attribute;
|
37
45
|
nexus::Path::ConstElementIterator (nexus::Path::*cbegin)() const = &nexus::Path::begin;
|
@@ -39,6 +47,7 @@ void create_path_wrappers()
|
|
39
47
|
class_<nexus::Path>("Path")
|
40
48
|
.def(init<const nexus::Path&>())
|
41
49
|
.def(init<const hdf5::Path&>())
|
50
|
+
.def(init<const std::string&>())
|
42
51
|
.def("from_string",&nexus::Path::from_string)
|
43
52
|
.staticmethod("from_string")
|
44
53
|
.def("to_string",&nexus::Path::to_string)
|
@@ -80,7 +89,7 @@ void create_path_wrappers()
|
|
80
89
|
def("get_path",get_path_node);
|
81
90
|
def("get_path",get_path_attr);
|
82
91
|
|
83
|
-
def("
|
92
|
+
def("get_objects_", get_objects_path);
|
84
93
|
|
85
94
|
nxpath_element_to_dict_converter();
|
86
95
|
dict_to_nxpath_element_converter();
|
@@ -31,7 +31,7 @@ from pninexus.h5cpp._node import RecursiveNodeIterator
|
|
31
31
|
#
|
32
32
|
from pninexus.h5cpp._node import is_dataset
|
33
33
|
from pninexus.h5cpp._node import is_group
|
34
|
-
from pninexus.h5cpp._node import
|
34
|
+
from pninexus.h5cpp._node import get_node_
|
35
35
|
|
36
36
|
from pninexus.h5cpp._node import _copy
|
37
37
|
from pninexus.h5cpp._node import _link
|
@@ -386,10 +386,60 @@ def dataset_filters(self):
|
|
386
386
|
return efilters
|
387
387
|
|
388
388
|
|
389
|
+
def group_get_dataset(self, path, lapl=None):
|
390
|
+
if isinstance(path, str):
|
391
|
+
path = Path(path)
|
392
|
+
if lapl is None:
|
393
|
+
return self.get_dataset_(path)
|
394
|
+
else:
|
395
|
+
return self.get_dataset_(path, lapl)
|
396
|
+
|
397
|
+
|
398
|
+
def group_has_dataset(self, path, lapl=None):
|
399
|
+
if isinstance(path, str):
|
400
|
+
path = Path(path)
|
401
|
+
if lapl is None:
|
402
|
+
return self.has_dataset_(path)
|
403
|
+
else:
|
404
|
+
return self.has_dataset_(path, lapl)
|
405
|
+
|
406
|
+
|
407
|
+
def group_get_group(self, path, lapl=None):
|
408
|
+
if isinstance(path, str):
|
409
|
+
path = Path(path)
|
410
|
+
if lapl is None:
|
411
|
+
return self.get_group_(path)
|
412
|
+
else:
|
413
|
+
return self.get_group_(path, lapl)
|
414
|
+
|
415
|
+
|
416
|
+
def group_has_group(self, path, lapl=None):
|
417
|
+
if isinstance(path, str):
|
418
|
+
path = Path(path)
|
419
|
+
if lapl is None:
|
420
|
+
return self.has_group_(path)
|
421
|
+
else:
|
422
|
+
return self.has_group_(path, lapl)
|
423
|
+
|
424
|
+
|
425
|
+
def get_node(base, path, lapl=None):
|
426
|
+
if isinstance(path, str):
|
427
|
+
path = Path(path)
|
428
|
+
if lapl is None:
|
429
|
+
return get_node_(base, path)
|
430
|
+
else:
|
431
|
+
return get_node_(base, path, lapl)
|
432
|
+
|
433
|
+
|
389
434
|
Dataset.write = dataset_write
|
390
435
|
Dataset.read = dataset_read
|
391
436
|
Dataset.filters = dataset_filters
|
392
437
|
|
438
|
+
Group.get_dataset = group_get_dataset
|
439
|
+
Group.has_dataset = group_has_dataset
|
440
|
+
Group.get_group = group_get_group
|
441
|
+
Group.has_group = group_has_group
|
442
|
+
|
393
443
|
|
394
444
|
__all__ = ["Type", "LinkType", "Node", "GroupView", "NodeView", "LinkView",
|
395
445
|
"Group", "Dataset", "LinkTarget", "Link", "RecursiveNodeIterator",
|
@@ -40,7 +40,13 @@ from ._nexus import join
|
|
40
40
|
from ._nexus import make_relative
|
41
41
|
from ._nexus import match
|
42
42
|
from ._nexus import get_path
|
43
|
-
from ._nexus import
|
43
|
+
from ._nexus import get_objects_
|
44
|
+
|
45
|
+
|
46
|
+
def get_objects(base, path):
|
47
|
+
if isinstance(path, str):
|
48
|
+
path = Path(path)
|
49
|
+
return get_objects_(base, path)
|
44
50
|
|
45
51
|
|
46
52
|
def base_class_factory_create(parent, name, base_class,
|