pninexus 3.2.2__tar.gz → 3.2.3__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.3/PKG-INFO +180 -0
- {pninexus-3.2.2 → pninexus-3.2.3}/README.rst +9 -9
- {pninexus-3.2.2 → pninexus-3.2.3}/doc/sphinx/conf.py +1 -1
- {pninexus-3.2.2 → pninexus-3.2.3}/doc/sphinx/h5cpp_datatypes.rst +1 -1
- {pninexus-3.2.2 → pninexus-3.2.3}/setup.py +3 -2
- {pninexus-3.2.2 → pninexus-3.2.3}/src/cpp/nexus/element_dict_converter.cpp +1 -1
- pninexus-3.2.3/src/pninexus/filters/libh5blosc.so +0 -0
- pninexus-3.2.3/src/pninexus/filters/libh5bshuf.so +0 -0
- pninexus-3.2.3/src/pninexus/filters/libh5bz2.so +0 -0
- pninexus-3.2.3/src/pninexus/filters/libh5jpeg.so +0 -0
- pninexus-3.2.3/src/pninexus/filters/libh5lz4.so +0 -0
- pninexus-3.2.3/src/pninexus/filters/libh5lzf.so +0 -0
- pninexus-3.2.3/src/pninexus/filters/libh5mafisc.so +0 -0
- pninexus-3.2.3/src/pninexus/filters/libh5zfp.so +0 -0
- {pninexus-3.2.2 → pninexus-3.2.3}/src/pninexus/h5cpp/attribute/__init__.py +16 -3
- {pninexus-3.2.2 → pninexus-3.2.3}/src/pninexus/h5cpp/node/__init__.py +13 -2
- pninexus-3.2.3/src/pninexus.egg-info/PKG-INFO +180 -0
- {pninexus-3.2.2 → pninexus-3.2.3}/src/pninexus.egg-info/SOURCES.txt +8 -0
- {pninexus-3.2.2 → pninexus-3.2.3}/test/h5cpp_tests/attribute_tests/attribute_io_test.py +22 -1
- {pninexus-3.2.2 → pninexus-3.2.3}/test/h5cpp_tests/filter_tests/creation_test.py +1 -1
- {pninexus-3.2.2 → pninexus-3.2.3}/test/h5cpp_tests/node_tests/dataset_io_test.py +25 -0
- pninexus-3.2.3/test/h5cpp_tests/node_tests/virtual_dataset_test.py +541 -0
- pninexus-3.2.2/PKG-INFO +0 -179
- pninexus-3.2.2/src/pninexus.egg-info/PKG-INFO +0 -179
- pninexus-3.2.2/test/h5cpp_tests/node_tests/virtual_dataset_test.py +0 -277
- {pninexus-3.2.2 → pninexus-3.2.3}/LICENSE +0 -0
- {pninexus-3.2.2 → pninexus-3.2.3}/MANIFEST.in +0 -0
- {pninexus-3.2.2 → pninexus-3.2.3}/README +0 -0
- {pninexus-3.2.2 → pninexus-3.2.3}/build_tools/ConanConfig.py +0 -0
- {pninexus-3.2.2 → pninexus-3.2.3}/build_tools/__init__.py +0 -0
- {pninexus-3.2.2 → pninexus-3.2.3}/build_tools/build_configuration.py +0 -0
- {pninexus-3.2.2 → pninexus-3.2.3}/build_tools/build_configuration_builder.py +0 -0
- {pninexus-3.2.2 → pninexus-3.2.3}/build_tools/cpp_extension_factory.py +0 -0
- {pninexus-3.2.2 → pninexus-3.2.3}/doc/sphinx/Makefile +0 -0
- {pninexus-3.2.2 → pninexus-3.2.3}/doc/sphinx/_static/hdf5_basic_tree.svg +0 -0
- {pninexus-3.2.2 → pninexus-3.2.3}/doc/sphinx/_templates/versions.html +0 -0
- {pninexus-3.2.2 → pninexus-3.2.3}/doc/sphinx/api_guide.rst +0 -0
- {pninexus-3.2.2 → pninexus-3.2.3}/doc/sphinx/array.pdf +0 -0
- {pninexus-3.2.2 → pninexus-3.2.3}/doc/sphinx/array.png +0 -0
- {pninexus-3.2.2 → pninexus-3.2.3}/doc/sphinx/array.svg +0 -0
- {pninexus-3.2.2 → pninexus-3.2.3}/doc/sphinx/array_grow.pdf +0 -0
- {pninexus-3.2.2 → pninexus-3.2.3}/doc/sphinx/array_grow.png +0 -0
- {pninexus-3.2.2 → pninexus-3.2.3}/doc/sphinx/array_grow.svg +0 -0
- {pninexus-3.2.2 → pninexus-3.2.3}/doc/sphinx/external_link.pdf +0 -0
- {pninexus-3.2.2 → pninexus-3.2.3}/doc/sphinx/external_link.svg +0 -0
- {pninexus-3.2.2 → pninexus-3.2.3}/doc/sphinx/h5cpp_attributes.rst +0 -0
- {pninexus-3.2.2 → pninexus-3.2.3}/doc/sphinx/h5cpp_dataset.rst +0 -0
- {pninexus-3.2.2 → pninexus-3.2.3}/doc/sphinx/h5cpp_dataspace.rst +0 -0
- {pninexus-3.2.2 → pninexus-3.2.3}/doc/sphinx/h5cpp_files.rst +0 -0
- {pninexus-3.2.2 → pninexus-3.2.3}/doc/sphinx/h5cpp_groups.rst +0 -0
- {pninexus-3.2.2 → pninexus-3.2.3}/doc/sphinx/index.rst +0 -0
- {pninexus-3.2.2 → pninexus-3.2.3}/doc/sphinx/installation.rst +0 -0
- {pninexus-3.2.2 → pninexus-3.2.3}/doc/sphinx/link.pdf +0 -0
- {pninexus-3.2.2 → pninexus-3.2.3}/doc/sphinx/link.svg +0 -0
- {pninexus-3.2.2 → pninexus-3.2.3}/doc/sphinx/make.bat +0 -0
- {pninexus-3.2.2 → pninexus-3.2.3}/doc/sphinx/nexus_attributes.rst +0 -0
- {pninexus-3.2.2 → pninexus-3.2.3}/doc/sphinx/nexus_fields.rst +0 -0
- {pninexus-3.2.2 → pninexus-3.2.3}/doc/sphinx/nexus_files.rst +0 -0
- {pninexus-3.2.2 → pninexus-3.2.3}/doc/sphinx/nexus_groups.rst +0 -0
- {pninexus-3.2.2 → pninexus-3.2.3}/doc/sphinx/nexus_links.rst +0 -0
- {pninexus-3.2.2 → pninexus-3.2.3}/doc/sphinx/nexus_path.rst +0 -0
- {pninexus-3.2.2 → pninexus-3.2.3}/doc/sphinx/nexus_xml.rst +0 -0
- {pninexus-3.2.2 → pninexus-3.2.3}/doc/sphinx/users_guide.rst +0 -0
- {pninexus-3.2.2 → pninexus-3.2.3}/doc/sphinx/using_h5cpp.rst +0 -0
- {pninexus-3.2.2 → pninexus-3.2.3}/doc/sphinx/using_nexus.rst +0 -0
- {pninexus-3.2.2 → pninexus-3.2.3}/pkgconfig.py +0 -0
- {pninexus-3.2.2 → pninexus-3.2.3}/setup.cfg +0 -0
- {pninexus-3.2.2 → pninexus-3.2.3}/src/cpp/h5cpp/_h5cpp.cpp +0 -0
- {pninexus-3.2.2 → pninexus-3.2.3}/src/cpp/h5cpp/attribute/attribute.cpp +0 -0
- {pninexus-3.2.2 → pninexus-3.2.3}/src/cpp/h5cpp/boost_filesystem_path_conversion.cpp +0 -0
- {pninexus-3.2.2 → pninexus-3.2.3}/src/cpp/h5cpp/boost_filesystem_path_conversion.hpp +0 -0
- {pninexus-3.2.2 → pninexus-3.2.3}/src/cpp/h5cpp/common/converters.cpp +0 -0
- {pninexus-3.2.2 → pninexus-3.2.3}/src/cpp/h5cpp/common/converters.hpp +0 -0
- {pninexus-3.2.2 → pninexus-3.2.3}/src/cpp/h5cpp/common/io.hpp +0 -0
- {pninexus-3.2.2 → pninexus-3.2.3}/src/cpp/h5cpp/dataspace/dataspace.cpp +0 -0
- {pninexus-3.2.2 → pninexus-3.2.3}/src/cpp/h5cpp/dataspace/selections.cpp +0 -0
- {pninexus-3.2.2 → pninexus-3.2.3}/src/cpp/h5cpp/dataspace/wrappers.hpp +0 -0
- {pninexus-3.2.2 → pninexus-3.2.3}/src/cpp/h5cpp/datatype/datatype.cpp +0 -0
- {pninexus-3.2.2 → pninexus-3.2.3}/src/cpp/h5cpp/dimensions_conversion.cpp +0 -0
- {pninexus-3.2.2 → pninexus-3.2.3}/src/cpp/h5cpp/dimensions_conversion.hpp +0 -0
- {pninexus-3.2.2 → pninexus-3.2.3}/src/cpp/h5cpp/errors.cpp +0 -0
- {pninexus-3.2.2 → pninexus-3.2.3}/src/cpp/h5cpp/errors.hpp +0 -0
- {pninexus-3.2.2 → pninexus-3.2.3}/src/cpp/h5cpp/file/file.cpp +0 -0
- {pninexus-3.2.2 → pninexus-3.2.3}/src/cpp/h5cpp/filter/filter.cpp +0 -0
- {pninexus-3.2.2 → pninexus-3.2.3}/src/cpp/h5cpp/iterator_wrapper.hpp +0 -0
- {pninexus-3.2.2 → pninexus-3.2.3}/src/cpp/h5cpp/node/dataset.cpp +0 -0
- {pninexus-3.2.2 → pninexus-3.2.3}/src/cpp/h5cpp/node/functions.cpp +0 -0
- {pninexus-3.2.2 → pninexus-3.2.3}/src/cpp/h5cpp/node/nodes.cpp +0 -0
- {pninexus-3.2.2 → pninexus-3.2.3}/src/cpp/h5cpp/node/wrappers.hpp +0 -0
- {pninexus-3.2.2 → pninexus-3.2.3}/src/cpp/h5cpp/numpy/array_adapter.cpp +0 -0
- {pninexus-3.2.2 → pninexus-3.2.3}/src/cpp/h5cpp/numpy/array_adapter.hpp +0 -0
- {pninexus-3.2.2 → pninexus-3.2.3}/src/cpp/h5cpp/numpy/array_factory.cpp +0 -0
- {pninexus-3.2.2 → pninexus-3.2.3}/src/cpp/h5cpp/numpy/array_factory.hpp +0 -0
- {pninexus-3.2.2 → pninexus-3.2.3}/src/cpp/h5cpp/numpy/dimensions.cpp +0 -0
- {pninexus-3.2.2 → pninexus-3.2.3}/src/cpp/h5cpp/numpy/dimensions.hpp +0 -0
- {pninexus-3.2.2 → pninexus-3.2.3}/src/cpp/h5cpp/numpy/hdf5_fixed_strings_support.hpp +0 -0
- {pninexus-3.2.2 → pninexus-3.2.3}/src/cpp/h5cpp/numpy/hdf5_support.hpp +0 -0
- {pninexus-3.2.2 → pninexus-3.2.3}/src/cpp/h5cpp/numpy/hdf5_variable_strings_support.hpp +0 -0
- {pninexus-3.2.2 → pninexus-3.2.3}/src/cpp/h5cpp/numpy/numpy.hpp +0 -0
- {pninexus-3.2.2 → pninexus-3.2.3}/src/cpp/h5cpp/property/chunk_cache_parameters.cpp +0 -0
- {pninexus-3.2.2 → pninexus-3.2.3}/src/cpp/h5cpp/property/class_wrappers.cpp +0 -0
- {pninexus-3.2.2 → pninexus-3.2.3}/src/cpp/h5cpp/property/copy_flag_wrapper.cpp +0 -0
- {pninexus-3.2.2 → pninexus-3.2.3}/src/cpp/h5cpp/property/creation_order.cpp +0 -0
- {pninexus-3.2.2 → pninexus-3.2.3}/src/cpp/h5cpp/property/enumeration_wrappers.cpp +0 -0
- {pninexus-3.2.2 → pninexus-3.2.3}/src/cpp/h5cpp/property/property.cpp +0 -0
- {pninexus-3.2.2 → pninexus-3.2.3}/src/cpp/h5cpp/property/wrapper_generators.hpp +0 -0
- {pninexus-3.2.2 → pninexus-3.2.3}/src/cpp/nexus/element_dict_converter.hpp +0 -0
- {pninexus-3.2.2 → pninexus-3.2.3}/src/cpp/nexus/factories.cpp +0 -0
- {pninexus-3.2.2 → pninexus-3.2.3}/src/cpp/nexus/list_converters.cpp +0 -0
- {pninexus-3.2.2 → pninexus-3.2.3}/src/cpp/nexus/list_converters.hpp +0 -0
- {pninexus-3.2.2 → pninexus-3.2.3}/src/cpp/nexus/nexus.cpp +0 -0
- {pninexus-3.2.2 → pninexus-3.2.3}/src/cpp/nexus/path.cpp +0 -0
- {pninexus-3.2.2 → pninexus-3.2.3}/src/cpp/nexus/predicates.cpp +0 -0
- {pninexus-3.2.2 → pninexus-3.2.3}/src/cpp/nexus/wrappers.hpp +0 -0
- {pninexus-3.2.2 → pninexus-3.2.3}/src/pninexus/__init__.py +0 -0
- {pninexus-3.2.2 → pninexus-3.2.3}/src/pninexus/filters/__init__.py +0 -0
- {pninexus-3.2.2 → pninexus-3.2.3}/src/pninexus/h5cpp/__init__.py +0 -0
- {pninexus-3.2.2 → pninexus-3.2.3}/src/pninexus/h5cpp/dataspace/__init__.py +0 -0
- {pninexus-3.2.2 → pninexus-3.2.3}/src/pninexus/h5cpp/datatype/__init__.py +0 -0
- {pninexus-3.2.2 → pninexus-3.2.3}/src/pninexus/h5cpp/file/__init__.py +0 -0
- {pninexus-3.2.2 → pninexus-3.2.3}/src/pninexus/h5cpp/filter/__init__.py +0 -0
- {pninexus-3.2.2 → pninexus-3.2.3}/src/pninexus/h5cpp/property/__init__.py +0 -0
- {pninexus-3.2.2 → pninexus-3.2.3}/src/pninexus/nexus/__init__.py +0 -0
- {pninexus-3.2.2 → pninexus-3.2.3}/src/pninexus.egg-info/dependency_links.txt +0 -0
- {pninexus-3.2.2 → pninexus-3.2.3}/src/pninexus.egg-info/requires.txt +0 -0
- {pninexus-3.2.2 → pninexus-3.2.3}/src/pninexus.egg-info/top_level.txt +0 -0
- {pninexus-3.2.2 → pninexus-3.2.3}/test/__init__.py +0 -0
- {pninexus-3.2.2 → pninexus-3.2.3}/test/data_generator.py +0 -0
- {pninexus-3.2.2 → pninexus-3.2.3}/test/debug/attributes_all.py +0 -0
- {pninexus-3.2.2 → pninexus-3.2.3}/test/debug/is_root_element_ttest.py +0 -0
- {pninexus-3.2.2 → pninexus-3.2.3}/test/debug/read.py +0 -0
- {pninexus-3.2.2 → pninexus-3.2.3}/test/debug/scalar.py +0 -0
- {pninexus-3.2.2 → pninexus-3.2.3}/test/debug/scalar_string_setget.py +0 -0
- {pninexus-3.2.2 → pninexus-3.2.3}/test/debug/test.py +0 -0
- {pninexus-3.2.2 → pninexus-3.2.3}/test/debug/test2.py +0 -0
- {pninexus-3.2.2 → pninexus-3.2.3}/test/debug/test3.py +0 -0
- {pninexus-3.2.2 → pninexus-3.2.3}/test/debug/ttest_attributes.py +0 -0
- {pninexus-3.2.2 → pninexus-3.2.3}/test/debug/ttest_fields.py +0 -0
- {pninexus-3.2.2 → pninexus-3.2.3}/test/h5cpp_tests/__init__.py +0 -0
- {pninexus-3.2.2 → pninexus-3.2.3}/test/h5cpp_tests/attribute_tests/__init__.py +0 -0
- {pninexus-3.2.2 → pninexus-3.2.3}/test/h5cpp_tests/attribute_tests/attribute_creation_test.py +0 -0
- {pninexus-3.2.2 → pninexus-3.2.3}/test/h5cpp_tests/dataspace_tests/__init__.py +0 -0
- {pninexus-3.2.2 → pninexus-3.2.3}/test/h5cpp_tests/dataspace_tests/scalar_dataspace_test.py +0 -0
- {pninexus-3.2.2 → pninexus-3.2.3}/test/h5cpp_tests/dataspace_tests/simple_dataspace_test.py +0 -0
- {pninexus-3.2.2 → pninexus-3.2.3}/test/h5cpp_tests/datatype_tests/__init__.py +0 -0
- {pninexus-3.2.2 → pninexus-3.2.3}/test/h5cpp_tests/datatype_tests/predefined_type_test.py +0 -0
- {pninexus-3.2.2 → pninexus-3.2.3}/test/h5cpp_tests/file_creation_test.py +0 -0
- {pninexus-3.2.2 → pninexus-3.2.3}/test/h5cpp_tests/file_image_test.py +0 -0
- {pninexus-3.2.2 → pninexus-3.2.3}/test/h5cpp_tests/file_open_test.py +0 -0
- {pninexus-3.2.2 → pninexus-3.2.3}/test/h5cpp_tests/filter_tests/__init__.py +0 -0
- {pninexus-3.2.2 → pninexus-3.2.3}/test/h5cpp_tests/group_tests/__init__.py +0 -0
- {pninexus-3.2.2 → pninexus-3.2.3}/test/h5cpp_tests/group_tests/group_construction_test.py +0 -0
- {pninexus-3.2.2 → pninexus-3.2.3}/test/h5cpp_tests/node_tests/__init__.py +0 -0
- {pninexus-3.2.2 → pninexus-3.2.3}/test/h5cpp_tests/node_tests/copy_test.py +0 -0
- {pninexus-3.2.2 → pninexus-3.2.3}/test/h5cpp_tests/node_tests/dataset_direct_chunk_test.py +0 -0
- {pninexus-3.2.2 → pninexus-3.2.3}/test/h5cpp_tests/node_tests/dataset_extent_test.py +0 -0
- {pninexus-3.2.2 → pninexus-3.2.3}/test/h5cpp_tests/node_tests/dataset_partial_io_test.py +0 -0
- {pninexus-3.2.2 → pninexus-3.2.3}/test/h5cpp_tests/node_tests/group_creation_test.py +0 -0
- {pninexus-3.2.2 → pninexus-3.2.3}/test/h5cpp_tests/node_tests/h5py_compat_test.py +0 -0
- {pninexus-3.2.2 → pninexus-3.2.3}/test/h5cpp_tests/node_tests/link_iteration_test.py +0 -0
- {pninexus-3.2.2 → pninexus-3.2.3}/test/h5cpp_tests/node_tests/node_iterator_test.py +0 -0
- {pninexus-3.2.2 → pninexus-3.2.3}/test/h5cpp_tests/path_test.py +0 -0
- {pninexus-3.2.2 → pninexus-3.2.3}/test/h5cpp_tests/property_tests/__init__.py +0 -0
- {pninexus-3.2.2 → pninexus-3.2.3}/test/h5cpp_tests/property_tests/chunk_cache_parameters_test.py +0 -0
- {pninexus-3.2.2 → pninexus-3.2.3}/test/h5cpp_tests/property_tests/copy_flags_test.py +0 -0
- {pninexus-3.2.2 → pninexus-3.2.3}/test/h5cpp_tests/property_tests/creation_order_test.py +0 -0
- {pninexus-3.2.2 → pninexus-3.2.3}/test/h5cpp_tests/property_tests/object_copy_list_test.py +0 -0
- {pninexus-3.2.2 → pninexus-3.2.3}/test/io_test_utils.py +0 -0
- {pninexus-3.2.2 → pninexus-3.2.3}/test/mem_log_view.py +0 -0
- {pninexus-3.2.2 → pninexus-3.2.3}/test/memory_check.py +0 -0
- {pninexus-3.2.2 → pninexus-3.2.3}/test/nexus_tests/NexusPathTests.xml +0 -0
- {pninexus-3.2.2 → pninexus-3.2.3}/test/nexus_tests/__init__.py +0 -0
- {pninexus-3.2.2 → pninexus-3.2.3}/test/nexus_tests/detector.xml +0 -0
- {pninexus-3.2.2 → pninexus-3.2.3}/test/nexus_tests/factory_test.py +0 -0
- {pninexus-3.2.2 → pninexus-3.2.3}/test/nexus_tests/file_test.py +0 -0
- {pninexus-3.2.2 → pninexus-3.2.3}/test/nexus_tests/path_test.py +0 -0
- {pninexus-3.2.2 → pninexus-3.2.3}/test/nexus_tests/xml_test.py +0 -0
- {pninexus-3.2.2 → pninexus-3.2.3}/test/regression_tests/__init__.py +0 -0
- {pninexus-3.2.2 → pninexus-3.2.3}/test/regression_tests/issue_18_test.py +0 -0
- {pninexus-3.2.2 → pninexus-3.2.3}/test/regression_tests/issue_23_test.py +0 -0
- {pninexus-3.2.2 → pninexus-3.2.3}/test/regression_tests/issue_5_test.py +0 -0
pninexus-3.2.3/PKG-INFO
ADDED
@@ -0,0 +1,180 @@
|
|
1
|
+
Metadata-Version: 2.1
|
2
|
+
Name: pninexus
|
3
|
+
Version: 3.2.3
|
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
|
+
Keywords: h5cpp hdf5 python photon science detector
|
12
|
+
Classifier: Development Status :: 5 - Production/Stable
|
13
|
+
Classifier: Intended Audience :: Science/Research
|
14
|
+
Classifier: Topic :: Scientific/Engineering :: Physics
|
15
|
+
Classifier: Topic :: Software Development :: Libraries :: Python Modules
|
16
|
+
Classifier: License :: OSI Approved :: GNU General Public License v2 (GPLv2)
|
17
|
+
Classifier: Programming Language :: Python :: 2.7
|
18
|
+
Classifier: Programming Language :: Python :: 3.7
|
19
|
+
Classifier: Programming Language :: Python :: 3.8
|
20
|
+
Classifier: Programming Language :: Python :: 3.9
|
21
|
+
Classifier: Programming Language :: Python :: 3.10
|
22
|
+
Classifier: Programming Language :: Python :: 3.11
|
23
|
+
Classifier: Programming Language :: Python :: 3.12
|
24
|
+
License-File: LICENSE
|
25
|
+
|
26
|
+
Python bindings for PNI/NeXus and h5cpp
|
27
|
+
=======================================
|
28
|
+
|
29
|
+
|
30
|
+
|github workflow|
|
31
|
+
|docs|
|
32
|
+
|Pypi Version|
|
33
|
+
|Python Versions|
|
34
|
+
|
35
|
+
.. |github workflow| image:: https://github.com/pni-libraries/python-pninexus/actions/workflows/tests.yml/badge.svg
|
36
|
+
:target: https://github.com/pni-libraries/python-pninexus/actions
|
37
|
+
:alt:
|
38
|
+
|
39
|
+
.. |docs| image:: https://img.shields.io/badge/Documentation-webpages-ADD8E6.svg
|
40
|
+
:target: https://pni-libraries.github.io/python-pninexus/index.html
|
41
|
+
:alt:
|
42
|
+
|
43
|
+
.. |Pypi Version| image:: https://img.shields.io/pypi/v/pninexus.svg
|
44
|
+
:target: https://pypi.python.org/pypi/pninexus
|
45
|
+
:alt:
|
46
|
+
|
47
|
+
.. |Python Versions| image:: https://img.shields.io/pypi/pyversions/pninexus.svg
|
48
|
+
:target: https://pypi.python.org/pypi/pninexus/
|
49
|
+
:alt:
|
50
|
+
|
51
|
+
|
52
|
+
Python wrapper for the `h5cpp <https://github.com/ess-dmsc/h5cpp>`__ and
|
53
|
+
`libpninexus <https://github.com/pni-libraries/libpninexus>`__ C++
|
54
|
+
libraries. The wrapper supports Python 2.X and 3.X.
|
55
|
+
|
56
|
+
Installation
|
57
|
+
------------
|
58
|
+
|
59
|
+
Required packages
|
60
|
+
~~~~~~~~~~~~~~~~~
|
61
|
+
|
62
|
+
- *h5cpp* >= 0.5.0
|
63
|
+
- *libpninexus* >= 3.2.0
|
64
|
+
- python setuptools
|
65
|
+
- numpy
|
66
|
+
- c++ compiler
|
67
|
+
- boost-python library
|
68
|
+
- python sphinx to build the documentation
|
69
|
+
|
70
|
+
Install from sources
|
71
|
+
~~~~~~~~~~~~~~~~~~~~
|
72
|
+
|
73
|
+
The code can be built with
|
74
|
+
|
75
|
+
::
|
76
|
+
|
77
|
+
$ python setup.py install
|
78
|
+
|
79
|
+
For those who are still running on the old interface it is maybe whise
|
80
|
+
to install this package in a custom location with something like this
|
81
|
+
|
82
|
+
::
|
83
|
+
|
84
|
+
$ python setup.py install --prefix=<path to installation prefix>
|
85
|
+
|
86
|
+
To build the documentation use
|
87
|
+
|
88
|
+
::
|
89
|
+
|
90
|
+
$ python setup.py build_sphinx
|
91
|
+
|
92
|
+
The resulting documentation can be found below ``build/sphinx/html`` in
|
93
|
+
the root directory of the source distribution.
|
94
|
+
|
95
|
+
Finally, the package can be tested using
|
96
|
+
|
97
|
+
::
|
98
|
+
|
99
|
+
$ python setup.py test
|
100
|
+
|
101
|
+
For Python3 just replace python with python3 in the above instructions.
|
102
|
+
|
103
|
+
Debian and Ubuntu packages
|
104
|
+
~~~~~~~~~~~~~~~~~~~~~~~~~~
|
105
|
+
|
106
|
+
Debian ``bookworm``, ``bullseye``, ``buster`` or Ubuntu ``oracular``,
|
107
|
+
``noble``, ``jammy`` packages can be found in the HDRI repository.
|
108
|
+
|
109
|
+
To install the debian packages, add the PGP repository key
|
110
|
+
|
111
|
+
::
|
112
|
+
|
113
|
+
$ sudo su
|
114
|
+
$ 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
|
115
|
+
$ chmod 644 /etc/apt/trusted.gpg.d/debian-hdri-repo.gpg
|
116
|
+
|
117
|
+
and then download the corresponding source list, e.g. for ``bookworm``
|
118
|
+
|
119
|
+
::
|
120
|
+
|
121
|
+
$ cd /etc/apt/sources.list.d
|
122
|
+
$ wget http://repos.pni-hdri.de/bookworm-pni-hdri.list
|
123
|
+
|
124
|
+
or ``noble``
|
125
|
+
|
126
|
+
::
|
127
|
+
|
128
|
+
$ cd /etc/apt/sources.list.d
|
129
|
+
$ wget http://repos.pni-hdri.de/noble-pni-hdri.list
|
130
|
+
|
131
|
+
respectively.
|
132
|
+
|
133
|
+
Finally,
|
134
|
+
|
135
|
+
::
|
136
|
+
|
137
|
+
$ apt-get update
|
138
|
+
$ apt-get install python3-pninexus
|
139
|
+
|
140
|
+
or
|
141
|
+
|
142
|
+
::
|
143
|
+
|
144
|
+
$ apt-get update
|
145
|
+
$ apt-get install python-pninexus
|
146
|
+
|
147
|
+
for python2.
|
148
|
+
|
149
|
+
|
150
|
+
Manylinux wheels from PyPI
|
151
|
+
~~~~~~~~~~~~~~~~~~~~~~~~~~
|
152
|
+
|
153
|
+
To install pninexus in a conda or python virtual environment manylinux pip wheels can be used, e.g.
|
154
|
+
|
155
|
+
.. code-block:: console
|
156
|
+
|
157
|
+
$ python3 -m venv myvenv
|
158
|
+
$ . myvenv/bin/activate
|
159
|
+
|
160
|
+
$ pip install pip --upgrade
|
161
|
+
$ pip install numpy
|
162
|
+
|
163
|
+
$ pip install pninexus -U wheel
|
164
|
+
|
165
|
+
For some versions of wheels numpy needs to be installed in advance.
|
166
|
+
|
167
|
+
Starting from v3.2.2 the pninexus wheel contains the most important external filters.
|
168
|
+
In order to use them one needs to set HDF5_PLUGIN_PATH e.g. by
|
169
|
+
|
170
|
+
.. code-block:: python
|
171
|
+
|
172
|
+
import pninexus
|
173
|
+
|
174
|
+
|
175
|
+
More information can be found at `online
|
176
|
+
documentation <https://pni-libraries.github.io/python-pninexus/index.html>`__.
|
177
|
+
|
178
|
+
Changes for a specific version of libpninexus can be found at
|
179
|
+
`CHANGELOG <https://github.com/pni-libraries/python-pninexus/blob/develop/CHANGELOG.md>`__.
|
180
|
+
|
@@ -78,8 +78,8 @@ For Python3 just replace python with python3 in the above instructions.
|
|
78
78
|
Debian and Ubuntu packages
|
79
79
|
~~~~~~~~~~~~~~~~~~~~~~~~~~
|
80
80
|
|
81
|
-
Debian ``bookworm``, ``bullseye``, ``buster`` or Ubuntu ``
|
82
|
-
``
|
81
|
+
Debian ``bookworm``, ``bullseye``, ``buster`` or Ubuntu ``oracular``,
|
82
|
+
``noble``, ``jammy`` packages can be found in the HDRI repository.
|
83
83
|
|
84
84
|
To install the debian packages, add the PGP repository key
|
85
85
|
|
@@ -89,19 +89,19 @@ To install the debian packages, add the PGP repository key
|
|
89
89
|
$ 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
|
90
90
|
$ chmod 644 /etc/apt/trusted.gpg.d/debian-hdri-repo.gpg
|
91
91
|
|
92
|
-
and then download the corresponding source list, e.g. for ``
|
92
|
+
and then download the corresponding source list, e.g. for ``bookworm``
|
93
93
|
|
94
94
|
::
|
95
95
|
|
96
96
|
$ cd /etc/apt/sources.list.d
|
97
|
-
$ wget http://repos.pni-hdri.de/
|
97
|
+
$ wget http://repos.pni-hdri.de/bookworm-pni-hdri.list
|
98
98
|
|
99
|
-
or ``
|
99
|
+
or ``noble``
|
100
100
|
|
101
101
|
::
|
102
102
|
|
103
103
|
$ cd /etc/apt/sources.list.d
|
104
|
-
$ wget http://repos.pni-hdri.de/
|
104
|
+
$ wget http://repos.pni-hdri.de/noble-pni-hdri.list
|
105
105
|
|
106
106
|
respectively.
|
107
107
|
|
@@ -110,16 +110,16 @@ Finally,
|
|
110
110
|
::
|
111
111
|
|
112
112
|
$ apt-get update
|
113
|
-
$ apt-get install
|
113
|
+
$ apt-get install python3-pninexus
|
114
114
|
|
115
115
|
or
|
116
116
|
|
117
117
|
::
|
118
118
|
|
119
119
|
$ apt-get update
|
120
|
-
$ apt-get install
|
120
|
+
$ apt-get install python-pninexus
|
121
121
|
|
122
|
-
for
|
122
|
+
for python2.
|
123
123
|
|
124
124
|
|
125
125
|
Manylinux wheels from PyPI
|
@@ -20,8 +20,8 @@ except ImportError:
|
|
20
20
|
BuildDoc = None
|
21
21
|
|
22
22
|
name = "pninexus"
|
23
|
-
version = "3.2.
|
24
|
-
release = "3.2.
|
23
|
+
version = "3.2.3"
|
24
|
+
release = "3.2.3"
|
25
25
|
# release = "3.2"
|
26
26
|
|
27
27
|
if release.count(".") == 1:
|
@@ -278,6 +278,7 @@ setup(
|
|
278
278
|
'Programming Language :: Python :: 3.9',
|
279
279
|
'Programming Language :: Python :: 3.10',
|
280
280
|
'Programming Language :: Python :: 3.11',
|
281
|
+
'Programming Language :: Python :: 3.12',
|
281
282
|
],
|
282
283
|
test_suite="test",
|
283
284
|
test_loader="unittest:TestLoader",
|
@@ -92,7 +92,7 @@ void* dict_to_nxpath_element_converter::convertible(PyObject *obj_ptr)
|
|
92
92
|
string get_string_from_pyobject(PyObject *ptr)
|
93
93
|
{
|
94
94
|
#if PY_MAJOR_VERSION >= 3
|
95
|
-
Py_ssize_t str_size =
|
95
|
+
Py_ssize_t str_size = PyUnicode_GET_LENGTH(ptr);
|
96
96
|
if(str_size)
|
97
97
|
{
|
98
98
|
PyObject *utf8_str = PyUnicode_AsUTF8String(ptr);
|
Binary file
|
Binary file
|
Binary file
|
Binary file
|
Binary file
|
Binary file
|
Binary file
|
Binary file
|
@@ -20,15 +20,28 @@ def attribute_write(self, data):
|
|
20
20
|
write_data = data
|
21
21
|
if not isinstance(write_data, numpy.ndarray):
|
22
22
|
write_data = numpy.array(write_data)
|
23
|
-
|
24
23
|
if write_data.dtype.kind == 'U':
|
25
|
-
|
24
|
+
try:
|
25
|
+
write_data = write_data.astype("S")
|
26
|
+
except Exception:
|
27
|
+
if isinstance(data, numpy.ndarray) and data.shape:
|
28
|
+
shape = data.shape
|
29
|
+
if len(shape) > 1:
|
30
|
+
data = data.flatten()
|
31
|
+
write_data = numpy.array(
|
32
|
+
[bytes(str(dt).encode('utf-8')) for dt in data])
|
33
|
+
if len(shape) > 1:
|
34
|
+
write_data = write_data.reshape(shape)
|
35
|
+
else:
|
36
|
+
write_data = numpy.array(str(data).encode('utf-8'))
|
26
37
|
elif write_data.dtype == 'bool':
|
27
38
|
write_data = write_data.astype("int8")
|
28
39
|
|
40
|
+
# print("DATA", data, write_data)
|
29
41
|
try:
|
30
42
|
self._write(write_data)
|
31
|
-
except RuntimeError:
|
43
|
+
except RuntimeError as e:
|
44
|
+
print(str(e))
|
32
45
|
print(write_data, write_data.dtype)
|
33
46
|
|
34
47
|
|
@@ -275,8 +275,19 @@ def dataset_write(self, data, selection=None):
|
|
275
275
|
# if the data is a unicode numpy array we have to convert it to a
|
276
276
|
# simple string array
|
277
277
|
if data.dtype.kind == 'U':
|
278
|
-
|
279
|
-
|
278
|
+
try:
|
279
|
+
data = data.astype('S')
|
280
|
+
except Exception:
|
281
|
+
if isinstance(data, numpy.ndarray) and data.shape:
|
282
|
+
shape = data.shape
|
283
|
+
if len(shape) > 1:
|
284
|
+
data = data.flatten()
|
285
|
+
data = numpy.array(
|
286
|
+
[bytes(str(dt).encode('utf-8')) for dt in data])
|
287
|
+
if len(shape) > 1:
|
288
|
+
data = data.reshape(shape)
|
289
|
+
else:
|
290
|
+
data = numpy.array(str(data).encode('utf-8'))
|
280
291
|
#
|
281
292
|
# determine memory datatype and dataspace
|
282
293
|
# - if the file type is a variable length string we have to adjust the
|
@@ -0,0 +1,180 @@
|
|
1
|
+
Metadata-Version: 2.1
|
2
|
+
Name: pninexus
|
3
|
+
Version: 3.2.3
|
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
|
+
Keywords: h5cpp hdf5 python photon science detector
|
12
|
+
Classifier: Development Status :: 5 - Production/Stable
|
13
|
+
Classifier: Intended Audience :: Science/Research
|
14
|
+
Classifier: Topic :: Scientific/Engineering :: Physics
|
15
|
+
Classifier: Topic :: Software Development :: Libraries :: Python Modules
|
16
|
+
Classifier: License :: OSI Approved :: GNU General Public License v2 (GPLv2)
|
17
|
+
Classifier: Programming Language :: Python :: 2.7
|
18
|
+
Classifier: Programming Language :: Python :: 3.7
|
19
|
+
Classifier: Programming Language :: Python :: 3.8
|
20
|
+
Classifier: Programming Language :: Python :: 3.9
|
21
|
+
Classifier: Programming Language :: Python :: 3.10
|
22
|
+
Classifier: Programming Language :: Python :: 3.11
|
23
|
+
Classifier: Programming Language :: Python :: 3.12
|
24
|
+
License-File: LICENSE
|
25
|
+
|
26
|
+
Python bindings for PNI/NeXus and h5cpp
|
27
|
+
=======================================
|
28
|
+
|
29
|
+
|
30
|
+
|github workflow|
|
31
|
+
|docs|
|
32
|
+
|Pypi Version|
|
33
|
+
|Python Versions|
|
34
|
+
|
35
|
+
.. |github workflow| image:: https://github.com/pni-libraries/python-pninexus/actions/workflows/tests.yml/badge.svg
|
36
|
+
:target: https://github.com/pni-libraries/python-pninexus/actions
|
37
|
+
:alt:
|
38
|
+
|
39
|
+
.. |docs| image:: https://img.shields.io/badge/Documentation-webpages-ADD8E6.svg
|
40
|
+
:target: https://pni-libraries.github.io/python-pninexus/index.html
|
41
|
+
:alt:
|
42
|
+
|
43
|
+
.. |Pypi Version| image:: https://img.shields.io/pypi/v/pninexus.svg
|
44
|
+
:target: https://pypi.python.org/pypi/pninexus
|
45
|
+
:alt:
|
46
|
+
|
47
|
+
.. |Python Versions| image:: https://img.shields.io/pypi/pyversions/pninexus.svg
|
48
|
+
:target: https://pypi.python.org/pypi/pninexus/
|
49
|
+
:alt:
|
50
|
+
|
51
|
+
|
52
|
+
Python wrapper for the `h5cpp <https://github.com/ess-dmsc/h5cpp>`__ and
|
53
|
+
`libpninexus <https://github.com/pni-libraries/libpninexus>`__ C++
|
54
|
+
libraries. The wrapper supports Python 2.X and 3.X.
|
55
|
+
|
56
|
+
Installation
|
57
|
+
------------
|
58
|
+
|
59
|
+
Required packages
|
60
|
+
~~~~~~~~~~~~~~~~~
|
61
|
+
|
62
|
+
- *h5cpp* >= 0.5.0
|
63
|
+
- *libpninexus* >= 3.2.0
|
64
|
+
- python setuptools
|
65
|
+
- numpy
|
66
|
+
- c++ compiler
|
67
|
+
- boost-python library
|
68
|
+
- python sphinx to build the documentation
|
69
|
+
|
70
|
+
Install from sources
|
71
|
+
~~~~~~~~~~~~~~~~~~~~
|
72
|
+
|
73
|
+
The code can be built with
|
74
|
+
|
75
|
+
::
|
76
|
+
|
77
|
+
$ python setup.py install
|
78
|
+
|
79
|
+
For those who are still running on the old interface it is maybe whise
|
80
|
+
to install this package in a custom location with something like this
|
81
|
+
|
82
|
+
::
|
83
|
+
|
84
|
+
$ python setup.py install --prefix=<path to installation prefix>
|
85
|
+
|
86
|
+
To build the documentation use
|
87
|
+
|
88
|
+
::
|
89
|
+
|
90
|
+
$ python setup.py build_sphinx
|
91
|
+
|
92
|
+
The resulting documentation can be found below ``build/sphinx/html`` in
|
93
|
+
the root directory of the source distribution.
|
94
|
+
|
95
|
+
Finally, the package can be tested using
|
96
|
+
|
97
|
+
::
|
98
|
+
|
99
|
+
$ python setup.py test
|
100
|
+
|
101
|
+
For Python3 just replace python with python3 in the above instructions.
|
102
|
+
|
103
|
+
Debian and Ubuntu packages
|
104
|
+
~~~~~~~~~~~~~~~~~~~~~~~~~~
|
105
|
+
|
106
|
+
Debian ``bookworm``, ``bullseye``, ``buster`` or Ubuntu ``oracular``,
|
107
|
+
``noble``, ``jammy`` packages can be found in the HDRI repository.
|
108
|
+
|
109
|
+
To install the debian packages, add the PGP repository key
|
110
|
+
|
111
|
+
::
|
112
|
+
|
113
|
+
$ sudo su
|
114
|
+
$ 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
|
115
|
+
$ chmod 644 /etc/apt/trusted.gpg.d/debian-hdri-repo.gpg
|
116
|
+
|
117
|
+
and then download the corresponding source list, e.g. for ``bookworm``
|
118
|
+
|
119
|
+
::
|
120
|
+
|
121
|
+
$ cd /etc/apt/sources.list.d
|
122
|
+
$ wget http://repos.pni-hdri.de/bookworm-pni-hdri.list
|
123
|
+
|
124
|
+
or ``noble``
|
125
|
+
|
126
|
+
::
|
127
|
+
|
128
|
+
$ cd /etc/apt/sources.list.d
|
129
|
+
$ wget http://repos.pni-hdri.de/noble-pni-hdri.list
|
130
|
+
|
131
|
+
respectively.
|
132
|
+
|
133
|
+
Finally,
|
134
|
+
|
135
|
+
::
|
136
|
+
|
137
|
+
$ apt-get update
|
138
|
+
$ apt-get install python3-pninexus
|
139
|
+
|
140
|
+
or
|
141
|
+
|
142
|
+
::
|
143
|
+
|
144
|
+
$ apt-get update
|
145
|
+
$ apt-get install python-pninexus
|
146
|
+
|
147
|
+
for python2.
|
148
|
+
|
149
|
+
|
150
|
+
Manylinux wheels from PyPI
|
151
|
+
~~~~~~~~~~~~~~~~~~~~~~~~~~
|
152
|
+
|
153
|
+
To install pninexus in a conda or python virtual environment manylinux pip wheels can be used, e.g.
|
154
|
+
|
155
|
+
.. code-block:: console
|
156
|
+
|
157
|
+
$ python3 -m venv myvenv
|
158
|
+
$ . myvenv/bin/activate
|
159
|
+
|
160
|
+
$ pip install pip --upgrade
|
161
|
+
$ pip install numpy
|
162
|
+
|
163
|
+
$ pip install pninexus -U wheel
|
164
|
+
|
165
|
+
For some versions of wheels numpy needs to be installed in advance.
|
166
|
+
|
167
|
+
Starting from v3.2.2 the pninexus wheel contains the most important external filters.
|
168
|
+
In order to use them one needs to set HDF5_PLUGIN_PATH e.g. by
|
169
|
+
|
170
|
+
.. code-block:: python
|
171
|
+
|
172
|
+
import pninexus
|
173
|
+
|
174
|
+
|
175
|
+
More information can be found at `online
|
176
|
+
documentation <https://pni-libraries.github.io/python-pninexus/index.html>`__.
|
177
|
+
|
178
|
+
Changes for a specific version of libpninexus can be found at
|
179
|
+
`CHANGELOG <https://github.com/pni-libraries/python-pninexus/blob/develop/CHANGELOG.md>`__.
|
180
|
+
|
@@ -99,6 +99,14 @@ src/pninexus.egg-info/dependency_links.txt
|
|
99
99
|
src/pninexus.egg-info/requires.txt
|
100
100
|
src/pninexus.egg-info/top_level.txt
|
101
101
|
src/pninexus/filters/__init__.py
|
102
|
+
src/pninexus/filters/libh5blosc.so
|
103
|
+
src/pninexus/filters/libh5bshuf.so
|
104
|
+
src/pninexus/filters/libh5bz2.so
|
105
|
+
src/pninexus/filters/libh5jpeg.so
|
106
|
+
src/pninexus/filters/libh5lz4.so
|
107
|
+
src/pninexus/filters/libh5lzf.so
|
108
|
+
src/pninexus/filters/libh5mafisc.so
|
109
|
+
src/pninexus/filters/libh5zfp.so
|
102
110
|
src/pninexus/h5cpp/__init__.py
|
103
111
|
src/pninexus/h5cpp/attribute/__init__.py
|
104
112
|
src/pninexus/h5cpp/dataspace/__init__.py
|
@@ -118,7 +118,7 @@ class AttributeIOTests(unittest.TestCase):
|
|
118
118
|
a = self.root.attributes.create("StringScalar", dtype)
|
119
119
|
a.write("hello world")
|
120
120
|
r = a.read()
|
121
|
-
self.assertEqual(r,
|
121
|
+
self.assertEqual(r, data)
|
122
122
|
|
123
123
|
def testStringScalarVariableLength(self):
|
124
124
|
|
@@ -128,6 +128,16 @@ class AttributeIOTests(unittest.TestCase):
|
|
128
128
|
r = a.read()
|
129
129
|
self.assertEqual(r, data)
|
130
130
|
|
131
|
+
def testStringUTF8ScalarVariableLength(self):
|
132
|
+
|
133
|
+
data = u"µm"
|
134
|
+
dtype = String.variable()
|
135
|
+
dtype.encoding = h5cpp.datatype.CharacterEncoding.UTF8
|
136
|
+
a = self.root.attributes.create("StringUTF8ScalarVLength", dtype)
|
137
|
+
a.write(data)
|
138
|
+
r = a.read()
|
139
|
+
self.assertEqual(r, data)
|
140
|
+
|
131
141
|
def testStringArray(self):
|
132
142
|
|
133
143
|
data = numpy.array([["hello", "world", "this"], ["is", "a", "test"]])
|
@@ -147,6 +157,17 @@ class AttributeIOTests(unittest.TestCase):
|
|
147
157
|
r = a.read()
|
148
158
|
npt.assert_array_equal(r, data)
|
149
159
|
|
160
|
+
def testStringUTF8ArrayVariableLength(self):
|
161
|
+
|
162
|
+
data = numpy.array([u"µm", u"µA"])
|
163
|
+
dtype = String.variable()
|
164
|
+
dtype.encoding = h5cpp.datatype.CharacterEncoding.UTF8
|
165
|
+
a = self.root.attributes.create(
|
166
|
+
"StringUTF8ArrayVLength", dtype, (2,))
|
167
|
+
a.write(data)
|
168
|
+
r = a.read()
|
169
|
+
npt.assert_array_equal(r, data)
|
170
|
+
|
150
171
|
def testIntArray(self):
|
151
172
|
|
152
173
|
data = numpy.array([1, 2, 3])
|
@@ -229,7 +229,7 @@ class FilterCreationTest(unittest.TestCase):
|
|
229
229
|
filters[0].name,
|
230
230
|
"bitshuffle; see https://github.com/kiyo-masui/bitshuffle")
|
231
231
|
else:
|
232
|
-
raise Exception("Bitshuffle filter is not available")
|
232
|
+
# raise Exception("Bitshuffle filter is not available")
|
233
233
|
error = False
|
234
234
|
try:
|
235
235
|
filter(self.dcpl)
|
@@ -115,6 +115,17 @@ class DatasetAllIOTests(unittest.TestCase):
|
|
115
115
|
read = dataset.read()
|
116
116
|
self.assertEqual(read, "hello world")
|
117
117
|
|
118
|
+
def testWriteVariableLengthUTF8Scalar(self):
|
119
|
+
data = u"µm"
|
120
|
+
dtype = h5cpp.datatype.String.variable()
|
121
|
+
dtype.encoding = h5cpp.datatype.CharacterEncoding.UTF8
|
122
|
+
dataset = Dataset(
|
123
|
+
self.root, h5cpp.Path("VariableLengthStringUTF8Scalar"),
|
124
|
+
dtype, Scalar())
|
125
|
+
dataset.write(data)
|
126
|
+
read = dataset.read()
|
127
|
+
self.assertEqual(read, data)
|
128
|
+
|
118
129
|
def testWriteIntegerArray(self):
|
119
130
|
|
120
131
|
data = numpy.array([[1, 2, 3, 4], [5, 6, 7, 8]])
|
@@ -222,3 +233,17 @@ class DatasetAllIOTests(unittest.TestCase):
|
|
222
233
|
dataset.write(data)
|
223
234
|
read = dataset.read()
|
224
235
|
npt.assert_array_equal(read, data)
|
236
|
+
|
237
|
+
def testWriteVariableLengthStringUTF8Array(self):
|
238
|
+
|
239
|
+
data = numpy.array([u"µm", u"µA"])
|
240
|
+
dtype = h5cpp.datatype.String.variable()
|
241
|
+
dtype.encoding = h5cpp.datatype.CharacterEncoding.UTF8
|
242
|
+
dataset = Dataset(
|
243
|
+
self.root,
|
244
|
+
h5cpp.Path("VariableLengthStringUTF8Array"),
|
245
|
+
dtype,
|
246
|
+
Simple((2,)))
|
247
|
+
dataset.write(data)
|
248
|
+
read = dataset.read()
|
249
|
+
npt.assert_array_equal(read, data)
|