<86>Jul 31 09:28:27 userdel[491461]: delete user 'rooter' <86>Jul 31 09:28:27 userdel[491461]: removed group 'rooter' owned by 'rooter' <86>Jul 31 09:28:27 userdel[491461]: removed shadow group 'rooter' owned by 'rooter' <86>Jul 31 09:28:27 groupadd[491474]: group added to /etc/group: name=rooter, GID=621 <86>Jul 31 09:28:27 groupadd[491474]: group added to /etc/gshadow: name=rooter <86>Jul 31 09:28:27 groupadd[491474]: new group: name=rooter, GID=621 <86>Jul 31 09:28:27 useradd[491483]: new user: name=rooter, UID=621, GID=621, home=/root, shell=/bin/bash <86>Jul 31 09:28:27 userdel[491505]: delete user 'builder' <86>Jul 31 09:28:27 userdel[491505]: removed group 'builder' owned by 'builder' <86>Jul 31 09:28:27 userdel[491505]: removed shadow group 'builder' owned by 'builder' <86>Jul 31 09:28:27 groupadd[491518]: group added to /etc/group: name=builder, GID=622 <86>Jul 31 09:28:27 groupadd[491518]: group added to /etc/gshadow: name=builder <86>Jul 31 09:28:27 groupadd[491518]: new group: name=builder, GID=622 <86>Jul 31 09:28:27 useradd[491527]: new user: name=builder, UID=622, GID=622, home=/usr/src, shell=/bin/bash /usr/src/in/srpm/python3-module-blosc-1.5.1-alt3.src.rpm: bad symbols in the license tag: / <13>Jul 31 09:28:29 rpmi: libgdbm-1.8.3-alt10 1454943334 installed <13>Jul 31 09:28:29 rpmi: libexpat-2.2.9-alt1 sisyphus+252464.200.2.1 1590958865 installed <13>Jul 31 09:28:29 rpmi: libp11-kit-0.23.15-alt2 sisyphus+252784.100.2.2 1591274901 installed <13>Jul 31 09:28:29 rpmi: libtasn1-4.16.0-alt1 sisyphus+245480.100.1.1 1580825062 installed <13>Jul 31 09:28:29 rpmi: rpm-macros-alternatives-0.5.1-alt1 sisyphus+226946.100.1.1 1554830426 installed <13>Jul 31 09:28:29 rpmi: ca-certificates-2020.06.29-alt1 sisyphus+254237.300.1.1 1593450881 installed <13>Jul 31 09:28:29 rpmi: ca-trust-0.1.2-alt1 sisyphus+233348.100.1.1 1561653823 installed <13>Jul 31 09:28:29 rpmi: p11-kit-trust-0.23.15-alt2 sisyphus+252784.100.2.2 1591274901 installed <13>Jul 31 09:28:29 rpmi: libcrypto1.1-1.1.1g-alt1 sisyphus+249982.60.8.1 1587743711 installed <13>Jul 31 09:28:29 rpmi: libssl1.1-1.1.1g-alt1 sisyphus+249982.60.8.1 1587743711 installed <13>Jul 31 09:28:29 rpmi: python3-3.8.5-alt1 sisyphus+244405.100.3.1 1595544514 installed <13>Jul 31 09:28:30 rpmi: python3-base-3.8.5-alt1 sisyphus+244405.100.3.1 1595544514 installed <13>Jul 31 09:28:30 rpmi: libpython3-3.8.5-alt1 sisyphus+244405.100.3.1 1595544514 installed <13>Jul 31 09:28:30 rpmi: tests-for-installed-python3-pkgs-0.1.13.1-alt2 1535450458 installed <13>Jul 31 09:28:30 rpmi: rpm-build-python3-0.1.13.1-alt2 1535450458 installed <13>Jul 31 09:28:33 rpmi: python3-module-pkg_resources-1:46.1.3-alt1 sisyphus+250566.200.3.1 1587973342 installed <13>Jul 31 09:28:33 rpmi: python3-module-six-1.14.0-alt1 sisyphus+251567.100.1.1 1589268039 installed <13>Jul 31 09:28:33 rpmi: python3-module-cryptography-3.0-alt1 sisyphus+255181.200.1.1 1595326646 installed <13>Jul 31 09:28:33 rpmi: python3-module-ntlm-1.1.0-alt1.2 sisyphus+228512.100.1.1 1556654575 installed <13>Jul 31 09:28:33 rpmi: python3-module-snowballstemmer-1.2.0-alt2.1 1457859319 installed <13>Jul 31 09:28:33 rpmi: python3-module-pyparsing-2.4.2-alt1 sisyphus+236061.100.3.1 1565853577 installed <13>Jul 31 09:28:33 rpmi: python3-module-packaging-19.0-alt2 sisyphus+235493.3500.8.1 1565461874 installed <13>Jul 31 09:28:33 rpmi: python3-module-markupsafe-1.1.1-alt1 sisyphus+248369.100.1.1 1585046136 installed <13>Jul 31 09:28:33 rpmi: python3-module-jinja2-2.11.2-alt1 sisyphus+254573.100.1.1 1594043344 installed <13>Jul 31 09:28:33 rpmi: python3-module-imagesize-1.1.0-alt1 sisyphus+229015.100.2.1 1557233756 installed <13>Jul 31 09:28:33 rpmi: python3-module-pytz-1:2020.1-alt1 sisyphus+254576.100.1.1 1594046074 installed <13>Jul 31 09:28:34 rpmi: python3-module-babel-1:2.6.0-alt1 sisyphus+228351.2400.6.2 1556652168 installed <13>Jul 31 09:28:34 rpmi: python3-module-ndg-0.4.2-alt1.qa1 sisyphus+227504.1300.1.2 1555853234 installed <13>Jul 31 09:28:34 rpmi: python3-module-idna-2.10-alt1 sisyphus+255040.200.1.1 1594995891 installed <13>Jul 31 09:28:34 rpmi: python3-module-chardet-3.0.4-alt1 sisyphus+227476.1700.1.2 1555756717 installed <13>Jul 31 09:28:34 rpmi: python3-module-webencodings-0.5.1-alt2 sisyphus+245915.200.1.1 1581496105 installed <13>Jul 31 09:28:34 rpmi: python3-module-genshi-0.7-alt2 sisyphus+229363.100.1.1 1557847335 installed <13>Jul 31 09:28:34 rpmi: python3-module-pycparser-2.19-alt2 sisyphus+245734.100.1.1 1581192421 installed <13>Jul 31 09:28:34 rpmi: python-sphinx-objects.inv-1:2.3.10.20200721-alt1 sisyphus+255227.100.1.1 1595375747 installed <13>Jul 31 09:28:34 rpmi: libgpg-error-1.36-alt1 sisyphus+225621.300.1.1 1553521082 installed <13>Jul 31 09:28:34 rpmi: libgcrypt20-1.8.5-alt3 sisyphus+239622.100.1.1 1571746654 installed <13>Jul 31 09:28:34 rpmi: libxslt-1.1.34-alt2 sisyphus+248264.100.1.1 1584829770 installed <13>Jul 31 09:28:34 rpmi: python3-module-cssselect-0.9.1-alt2 sisyphus+250566.2300.6.1 1588188959 installed <13>Jul 31 09:28:34 rpmi: python3-module-html5lib-1:1.0.1-alt1 sisyphus+238807.100.2.1 1570465973 installed <13>Jul 31 09:28:34 rpmi: python3-module-lxml-4.5.0-alt2 sisyphus+250566.2700.6.1 1588189778 installed <13>Jul 31 09:28:34 rpmi: python3-module-docutils-0.16.0-alt1 sisyphus+250087.100.1.1 1587043829 installed <13>Jul 31 09:28:34 rpmi: libffi6-1:3.2.1-alt4 sisyphus+251953.300.2.1 1589891360 installed <13>Jul 31 09:28:34 rpmi: python3-module-cffi-1.14.0-alt1 sisyphus+244999.200.3.1 1585219427 installed <13>Jul 31 09:28:34 rpmi: python3-module-OpenSSL-19.0.0-alt1 sisyphus+238757.100.1.1 1570339901 installed <13>Jul 31 09:28:34 rpmi: python3-module-ndg-httpsclient-0.4.2-alt1.qa1 sisyphus+227504.1300.1.2 1555853234 installed <13>Jul 31 09:28:34 rpmi: python3-module-urllib3-2:1.25.10-alt1 sisyphus+255342.100.1.1 1595592746 installed <13>Jul 31 09:28:34 rpmi: python3-module-requests-2.24.0-alt1 sisyphus+254580.100.1.1 1594048060 installed <13>Jul 31 09:28:34 rpmi: python3-module-sphinxcontrib-applehelp-1.0.2-alt1 sisyphus+252614.200.1.1 1590949678 installed <13>Jul 31 09:28:34 rpmi: python3-module-sphinxcontrib-devhelp-1.0.2-alt1 sisyphus+252614.300.1.1 1590949711 installed <13>Jul 31 09:28:35 rpmi: python3-module-sphinxcontrib-htmlhelp-1.0.2-alt1 sisyphus+228401.100.1.1 1556572721 installed <13>Jul 31 09:28:35 rpmi: python3-module-sphinxcontrib-jsmath-1.0.1-alt1 sisyphus+238085.500.1.1 1569313099 installed <13>Jul 31 09:28:35 rpmi: python3-module-sphinxcontrib-qthelp-1.0.3-alt1 sisyphus+252614.400.1.1 1590949745 installed <13>Jul 31 09:28:35 rpmi: python3-module-sphinxcontrib-serializinghtml-1.1.4-alt1 sisyphus+252614.100.1.1 1590949645 installed <13>Jul 31 09:28:35 rpmi: python3-module-alabaster-0.7.6-alt3 sisyphus+228351.700.4.1 1556637370 installed <13>Jul 31 09:28:35 rpmi: python3-module-Pygments-2.6.1-alt1 sisyphus+251222.200.1.1 1588756845 installed <13>Jul 31 09:28:35 rpmi: python3-module-sphinx-1:2.4.4-alt1 sisyphus+254723.100.1.2 1594318607 installed <13>Jul 31 09:28:35 rpmi: libsnappy-1.1.7-alt1 sisyphus+227320.100.1.3 1555618694 installed <13>Jul 31 09:28:35 rpmi: liblz4-1:1.9.2-alt1 sisyphus+238585.100.2.2 1570066927 installed <13>Jul 31 09:28:35 rpmi: libblosc-1.18.1-alt1 sisyphus+250012.100.1.1 1586944162 installed <13>Jul 31 09:28:35 rpmi: libblosc-devel-1.18.1-alt1 sisyphus+250012.100.1.1 1586944162 installed <13>Jul 31 09:28:35 rpmi: python3-module-numpydoc-1:0.7.0-alt1 sisyphus+227506.500.1.2 1555852058 installed Building target platforms: i586 Building for target i586 Wrote: /usr/src/in/nosrpm/python3-module-blosc-1.5.1-alt3.nosrc.rpm <13>Jul 31 09:28:37 rpmi: libtinfo-devel-6.1.20180407-alt2 sisyphus+222164.200.1.1 1550686226 installed <13>Jul 31 09:28:37 rpmi: libncurses-devel-6.1.20180407-alt2 sisyphus+222164.200.1.1 1550686226 installed <13>Jul 31 09:28:37 rpmi: python3-dev-3.8.5-alt1 sisyphus+244405.100.3.1 1595544514 installed <13>Jul 31 09:28:37 rpmi: python3-module-setuptools-1:46.1.3-alt1 sisyphus+250566.200.3.1 1587973342 installed Installing python3-module-blosc-1.5.1-alt3.src.rpm Building target platforms: i586 Building for target i586 Executing(%prep): /bin/sh -e /usr/src/tmp/rpm-tmp.90010 + umask 022 + /bin/mkdir -p /usr/src/RPM/BUILD + cd /usr/src/RPM/BUILD + cd /usr/src/RPM/BUILD + rm -rf python3-module-blosc-1.5.1 + echo 'Source #0 (python3-module-blosc-1.5.1.tar):' Source #0 (python3-module-blosc-1.5.1.tar): + /bin/tar -xf /usr/src/RPM/SOURCES/python3-module-blosc-1.5.1.tar + cd python3-module-blosc-1.5.1 + /bin/chmod -c -Rf u+rwX,go-w . + sed -i 's|sphinx-build|sphinx-build-3|' doc/Makefile ++ find ./ -name '*.py' + sed -i 's|#!/usr/bin/env python|#!/usr/bin/env python3|' ./setup.py ./doc/conf.py ./cpuinfo.py ./c-blosc/bench/plot-speeds.py ./blosc/toplevel.py ./blosc/test.py ./blosc/__init__.py ./bench/threadpool.py ./bench/compress_ptr.py ./bench/compare-pack-ptr.py + exit 0 Executing(%build): /bin/sh -e /usr/src/tmp/rpm-tmp.90010 + umask 022 + /bin/mkdir -p /usr/src/RPM/BUILD + cd /usr/src/RPM/BUILD + cd python3-module-blosc-1.5.1 + CFLAGS='-pipe -frecord-gcc-switches -Wall -g -O2 -march=i586 -mtune=generic' + export CFLAGS + CXXFLAGS='-pipe -frecord-gcc-switches -Wall -g -O2 -march=i586 -mtune=generic' + export CXXFLAGS + FFLAGS='-pipe -frecord-gcc-switches -Wall -g -O2 -march=i586 -mtune=generic' + export FFLAGS + /usr/bin/python3 setup.py build --debug --blosc=/usr running build running build_py creating build creating build/lib.linux-i686-3.8 creating build/lib.linux-i686-3.8/blosc copying blosc/version.py -> build/lib.linux-i686-3.8/blosc copying blosc/__init__.py -> build/lib.linux-i686-3.8/blosc copying blosc/test.py -> build/lib.linux-i686-3.8/blosc copying blosc/toplevel.py -> build/lib.linux-i686-3.8/blosc running build_ext building 'blosc.blosc_extension' extension creating build/temp.linux-i686-3.8 creating build/temp.linux-i686-3.8/blosc i586-alt-linux-gcc -pthread -Wno-unused-result -Wsign-compare -DNDEBUG -g -fwrapv -O3 -Wall -pipe -frecord-gcc-switches -Wall -g -O3 -march=i586 -mtune=generic -pipe -frecord-gcc-switches -Wall -g -O2 -march=i586 -mtune=generic -fPIC -g -I/usr/include -I/usr/include/python3.8 -c blosc/blosc_extension.c -o build/temp.linux-i686-3.8/blosc/blosc_extension.o -pipe -frecord-gcc-switches -Wall -g -O2 -march=i586 -mtune=generic blosc/blosc_extension.c: In function ‘PyBlosc_compressor_list’: blosc/blosc_extension.c:88:8: warning: assignment discards ‘const’ qualifier from pointer target type [-Wdiscarded-qualifiers] 88 | list = blosc_list_compressors(); | ^ blosc/blosc_extension.c: In function ‘PyBlosc_code_to_name’: blosc/blosc_extension.c:107:40: warning: passing argument 2 of ‘blosc_compcode_to_compname’ from incompatible pointer type [-Wincompatible-pointer-types] 107 | if (blosc_compcode_to_compname(code, &name) < 0) | ^~~~~ | | | char ** In file included from blosc/blosc_extension.c:13: /usr/include/blosc.h:389:72: note: expected ‘const char **’ but argument is of type ‘char **’ 389 | BLOSC_EXPORT int blosc_compcode_to_compname(int compcode, const char **compname); | ~~~~~~~~~~~~~^~~~~~~~ blosc/blosc_extension.c: In function ‘PyBlosc_get_clib’: blosc/blosc_extension.c:329:8: warning: assignment discards ‘const’ qualifier from pointer target type [-Wdiscarded-qualifiers] 329 | clib = blosc_cbuffer_complib(input); | ^ i586-alt-linux-gcc -pthread -shared -pipe -frecord-gcc-switches -Wall -g -O2 -march=i586 -mtune=generic -g build/temp.linux-i686-3.8/blosc/blosc_extension.o -L/usr/lib -L/usr/lib -lblosc -o build/lib.linux-i686-3.8/blosc/blosc_extension.cpython-38.so + exit 0 Executing(%install): /bin/sh -e /usr/src/tmp/rpm-tmp.98316 + umask 022 + /bin/mkdir -p /usr/src/RPM/BUILD + cd /usr/src/RPM/BUILD + /bin/chmod -Rf u+rwX -- /usr/src/tmp/python3-module-blosc-buildroot + : + /bin/rm -rf -- /usr/src/tmp/python3-module-blosc-buildroot + cd python3-module-blosc-1.5.1 + CFLAGS='-pipe -frecord-gcc-switches -Wall -g -O2 -march=i586 -mtune=generic' + export CFLAGS + CXXFLAGS='-pipe -frecord-gcc-switches -Wall -g -O2 -march=i586 -mtune=generic' + export CXXFLAGS + FFLAGS='-pipe -frecord-gcc-switches -Wall -g -O2 -march=i586 -mtune=generic' + export FFLAGS + /usr/bin/python3 setup.py install --skip-build --root=/usr/src/tmp/python3-module-blosc-buildroot --force --blosc=/usr running install running install_lib creating /usr/src/tmp/python3-module-blosc-buildroot creating /usr/src/tmp/python3-module-blosc-buildroot/usr creating /usr/src/tmp/python3-module-blosc-buildroot/usr/lib creating /usr/src/tmp/python3-module-blosc-buildroot/usr/lib/python3 creating /usr/src/tmp/python3-module-blosc-buildroot/usr/lib/python3/site-packages creating /usr/src/tmp/python3-module-blosc-buildroot/usr/lib/python3/site-packages/blosc copying build/lib.linux-i686-3.8/blosc/blosc_extension.cpython-38.so -> /usr/src/tmp/python3-module-blosc-buildroot/usr/lib/python3/site-packages/blosc copying build/lib.linux-i686-3.8/blosc/toplevel.py -> /usr/src/tmp/python3-module-blosc-buildroot/usr/lib/python3/site-packages/blosc copying build/lib.linux-i686-3.8/blosc/test.py -> /usr/src/tmp/python3-module-blosc-buildroot/usr/lib/python3/site-packages/blosc copying build/lib.linux-i686-3.8/blosc/__init__.py -> /usr/src/tmp/python3-module-blosc-buildroot/usr/lib/python3/site-packages/blosc copying build/lib.linux-i686-3.8/blosc/version.py -> /usr/src/tmp/python3-module-blosc-buildroot/usr/lib/python3/site-packages/blosc byte-compiling /usr/src/tmp/python3-module-blosc-buildroot/usr/lib/python3/site-packages/blosc/toplevel.py to toplevel.cpython-38.pyc byte-compiling /usr/src/tmp/python3-module-blosc-buildroot/usr/lib/python3/site-packages/blosc/test.py to test.cpython-38.pyc byte-compiling /usr/src/tmp/python3-module-blosc-buildroot/usr/lib/python3/site-packages/blosc/__init__.py to __init__.cpython-38.pyc byte-compiling /usr/src/tmp/python3-module-blosc-buildroot/usr/lib/python3/site-packages/blosc/version.py to version.cpython-38.pyc running install_egg_info running egg_info creating blosc.egg-info writing blosc.egg-info/PKG-INFO writing dependency_links to blosc.egg-info/dependency_links.txt writing top-level names to blosc.egg-info/top_level.txt writing manifest file 'blosc.egg-info/SOURCES.txt' reading manifest file 'blosc.egg-info/SOURCES.txt' reading manifest template 'MANIFEST.in' warning: no files found matching '*.cpp' under directory 'c-blosc' warning: no files found matching '*.hpp' under directory 'c-blosc' writing manifest file 'blosc.egg-info/SOURCES.txt' Copying blosc.egg-info to /usr/src/tmp/python3-module-blosc-buildroot/usr/lib/python3/site-packages/blosc-1.5.1-py3.8.egg-info running install_scripts + export PYTHONPATH=/usr/src/tmp/python3-module-blosc-buildroot/usr/lib/python3/site-packages + PYTHONPATH=/usr/src/tmp/python3-module-blosc-buildroot/usr/lib/python3/site-packages + make -C doc pickle make: Entering directory '/usr/src/RPM/BUILD/python3-module-blosc-1.5.1/doc' sphinx-build-3 -b pickle -d _build/doctrees -n -v -v . _build/pickle Running Sphinx v2.4.4 [app] setting up extension: 'sphinx.addnodes' [app] adding node: (<class 'sphinx.addnodes.toctree'>, {}) [app] adding translation_handlers: <class 'sphinx.addnodes.toctree'>, {} [app] adding node: (<class 'sphinx.addnodes.desc'>, {}) [app] adding translation_handlers: <class 'sphinx.addnodes.desc'>, {} [app] adding node: (<class 'sphinx.addnodes.desc_signature'>, {}) [app] adding translation_handlers: <class 'sphinx.addnodes.desc_signature'>, {} [app] adding node: (<class 'sphinx.addnodes.desc_signature_line'>, {}) [app] adding translation_handlers: <class 'sphinx.addnodes.desc_signature_line'>, {} [app] adding node: (<class 'sphinx.addnodes.desc_addname'>, {}) [app] adding translation_handlers: <class 'sphinx.addnodes.desc_addname'>, {} [app] adding node: (<class 'sphinx.addnodes.desc_type'>, {}) [app] adding translation_handlers: <class 'sphinx.addnodes.desc_type'>, {} [app] adding node: (<class 'sphinx.addnodes.desc_returns'>, {}) [app] adding translation_handlers: <class 'sphinx.addnodes.desc_returns'>, {} [app] adding node: (<class 'sphinx.addnodes.desc_name'>, {}) [app] adding translation_handlers: <class 'sphinx.addnodes.desc_name'>, {} [app] adding node: (<class 'sphinx.addnodes.desc_parameterlist'>, {}) [app] adding translation_handlers: <class 'sphinx.addnodes.desc_parameterlist'>, {} [app] adding node: (<class 'sphinx.addnodes.desc_parameter'>, {}) [app] adding translation_handlers: <class 'sphinx.addnodes.desc_parameter'>, {} [app] adding node: (<class 'sphinx.addnodes.desc_optional'>, {}) [app] adding translation_handlers: <class 'sphinx.addnodes.desc_optional'>, {} [app] adding node: (<class 'sphinx.addnodes.desc_annotation'>, {}) [app] adding translation_handlers: <class 'sphinx.addnodes.desc_annotation'>, {} [app] adding node: (<class 'sphinx.addnodes.desc_content'>, {}) [app] adding translation_handlers: <class 'sphinx.addnodes.desc_content'>, {} [app] adding node: (<class 'sphinx.addnodes.versionmodified'>, {}) [app] adding translation_handlers: <class 'sphinx.addnodes.versionmodified'>, {} [app] adding node: (<class 'sphinx.addnodes.seealso'>, {}) [app] adding translation_handlers: <class 'sphinx.addnodes.seealso'>, {} [app] adding node: (<class 'sphinx.addnodes.productionlist'>, {}) [app] adding translation_handlers: <class 'sphinx.addnodes.productionlist'>, {} [app] adding node: (<class 'sphinx.addnodes.production'>, {}) [app] adding translation_handlers: <class 'sphinx.addnodes.production'>, {} [app] adding node: (<class 'sphinx.addnodes.displaymath'>, {}) [app] adding translation_handlers: <class 'sphinx.addnodes.displaymath'>, {} [app] adding node: (<class 'sphinx.addnodes.index'>, {}) [app] adding translation_handlers: <class 'sphinx.addnodes.index'>, {} [app] adding node: (<class 'sphinx.addnodes.centered'>, {}) [app] adding translation_handlers: <class 'sphinx.addnodes.centered'>, {} [app] adding node: (<class 'sphinx.addnodes.acks'>, {}) [app] adding translation_handlers: <class 'sphinx.addnodes.acks'>, {} [app] adding node: (<class 'sphinx.addnodes.hlist'>, {}) [app] adding translation_handlers: <class 'sphinx.addnodes.hlist'>, {} [app] adding node: (<class 'sphinx.addnodes.hlistcol'>, {}) [app] adding translation_handlers: <class 'sphinx.addnodes.hlistcol'>, {} [app] adding node: (<class 'sphinx.addnodes.compact_paragraph'>, {}) [app] adding translation_handlers: <class 'sphinx.addnodes.compact_paragraph'>, {} [app] adding node: (<class 'sphinx.addnodes.glossary'>, {}) [app] adding translation_handlers: <class 'sphinx.addnodes.glossary'>, {} [app] adding node: (<class 'sphinx.addnodes.only'>, {}) [app] adding translation_handlers: <class 'sphinx.addnodes.only'>, {} [app] adding node: (<class 'sphinx.addnodes.start_of_file'>, {}) [app] adding translation_handlers: <class 'sphinx.addnodes.start_of_file'>, {} [app] adding node: (<class 'sphinx.addnodes.highlightlang'>, {}) [app] adding translation_handlers: <class 'sphinx.addnodes.highlightlang'>, {} [app] adding node: (<class 'sphinx.addnodes.tabular_col_spec'>, {}) [app] adding translation_handlers: <class 'sphinx.addnodes.tabular_col_spec'>, {} [app] adding node: (<class 'sphinx.addnodes.meta'>, {}) [app] adding translation_handlers: <class 'sphinx.addnodes.meta'>, {} [app] adding node: (<class 'sphinx.addnodes.pending_xref'>, {}) [app] adding translation_handlers: <class 'sphinx.addnodes.pending_xref'>, {} [app] adding node: (<class 'sphinx.addnodes.number_reference'>, {}) [app] adding translation_handlers: <class 'sphinx.addnodes.number_reference'>, {} [app] adding node: (<class 'sphinx.addnodes.download_reference'>, {}) [app] adding translation_handlers: <class 'sphinx.addnodes.download_reference'>, {} [app] adding node: (<class 'sphinx.addnodes.literal_emphasis'>, {}) [app] adding translation_handlers: <class 'sphinx.addnodes.literal_emphasis'>, {} [app] adding node: (<class 'sphinx.addnodes.literal_strong'>, {}) [app] adding translation_handlers: <class 'sphinx.addnodes.literal_strong'>, {} [app] adding node: (<class 'sphinx.addnodes.manpage'>, {}) [app] adding translation_handlers: <class 'sphinx.addnodes.manpage'>, {} [app] setting up extension: 'sphinx.builders.changes' [app] adding builder: <class 'sphinx.builders.changes.ChangesBuilder'> [app] setting up extension: 'sphinx.builders.epub3' [app] adding builder: <class 'sphinx.builders.epub3.Epub3Builder'> [app] adding config value: ('epub_basename', <function setup.<locals>.<lambda> at 0xf64ec580>, None) [app] adding config value: ('epub_version', 3.0, 'epub') [app] adding config value: ('epub_theme', 'epub', 'epub') [app] adding config value: ('epub_theme_options', {}, 'epub') [app] adding config value: ('epub_title', <function setup.<locals>.<lambda> at 0xf5fc6d18>, 'epub') [app] adding config value: ('epub_author', <function setup.<locals>.<lambda> at 0xf5fc6d60>, 'epub') [app] adding config value: ('epub_language', <function setup.<locals>.<lambda> at 0xf5fc6da8>, 'epub') [app] adding config value: ('epub_publisher', <function setup.<locals>.<lambda> at 0xf5fc6df0>, 'epub') [app] adding config value: ('epub_copyright', <function setup.<locals>.<lambda> at 0xf5fc6e38>, 'epub') [app] adding config value: ('epub_identifier', 'unknown', 'epub') [app] adding config value: ('epub_scheme', 'unknown', 'epub') [app] adding config value: ('epub_uid', 'unknown', 'env') [app] adding config value: ('epub_cover', (), 'env') [app] adding config value: ('epub_guide', (), 'env') [app] adding config value: ('epub_pre_files', [], 'env') [app] adding config value: ('epub_post_files', [], 'env') [app] adding config value: ('epub_css_files', <function setup.<locals>.<lambda> at 0xf5fc6e80>, 'epub') [app] adding config value: ('epub_exclude_files', [], 'env') [app] adding config value: ('epub_tocdepth', 3, 'env') [app] adding config value: ('epub_tocdup', True, 'env') [app] adding config value: ('epub_tocscope', 'default', 'env') [app] adding config value: ('epub_fix_images', False, 'env') [app] adding config value: ('epub_max_image_width', 0, 'env') [app] adding config value: ('epub_show_urls', 'inline', 'epub') [app] adding config value: ('epub_use_index', <function setup.<locals>.<lambda> at 0xf5fc6ec8>, 'epub') [app] adding config value: ('epub_description', 'unknown', 'epub') [app] adding config value: ('epub_contributor', 'unknown', 'epub') [app] adding config value: ('epub_writing_mode', 'horizontal', 'epub', <sphinx.config.ENUM object at 0xf64734f0>) [app] connecting event 'config-inited': <function convert_epub_css_files at 0xf5fc6c88> [id=0] [app] connecting event 'builder-inited': <function validate_config_values at 0xf5fc6a48> [id=1] [app] setting up extension: 'sphinx.builders.dirhtml' [app] setting up extension: 'sphinx.builders.html' [app] adding builder: <class 'sphinx.builders.html.StandaloneHTMLBuilder'> [app] adding config value: ('html_theme', 'alabaster', 'html') [app] adding config value: ('html_theme_path', [], 'html') [app] adding config value: ('html_theme_options', {}, 'html') [app] adding config value: ('html_title', <function setup.<locals>.<lambda> at 0xf5fc6fa0>, 'html', [<class 'str'>]) [app] adding config value: ('html_short_title', <function setup.<locals>.<lambda> at 0xf5fca028>, 'html') [app] adding config value: ('html_style', None, 'html', [<class 'str'>]) [app] adding config value: ('html_logo', None, 'html', [<class 'str'>]) [app] adding config value: ('html_favicon', None, 'html', [<class 'str'>]) [app] adding config value: ('html_css_files', [], 'html') [app] adding config value: ('html_js_files', [], 'html') [app] adding config value: ('html_static_path', [], 'html') [app] adding config value: ('html_extra_path', [], 'html') [app] adding config value: ('html_last_updated_fmt', None, 'html', [<class 'str'>]) [app] adding config value: ('html_sidebars', {}, 'html') [app] adding config value: ('html_additional_pages', {}, 'html') [app] adding config value: ('html_domain_indices', True, 'html', [<class 'list'>]) [app] adding config value: ('html_add_permalinks', '¶', 'html') [app] adding config value: ('html_use_index', True, 'html') [app] adding config value: ('html_split_index', False, 'html') [app] adding config value: ('html_copy_source', True, 'html') [app] adding config value: ('html_show_sourcelink', True, 'html') [app] adding config value: ('html_sourcelink_suffix', '.txt', 'html') [app] adding config value: ('html_use_opensearch', '', 'html') [app] adding config value: ('html_file_suffix', None, 'html', [<class 'str'>]) [app] adding config value: ('html_link_suffix', None, 'html', [<class 'str'>]) [app] adding config value: ('html_show_copyright', True, 'html') [app] adding config value: ('html_show_sphinx', True, 'html') [app] adding config value: ('html_context', {}, 'html') [app] adding config value: ('html_output_encoding', 'utf-8', 'html') [app] adding config value: ('html_compact_lists', True, 'html') [app] adding config value: ('html_secnumber_suffix', '. ', 'html') [app] adding config value: ('html_search_language', None, 'html', [<class 'str'>]) [app] adding config value: ('html_search_options', {}, 'html') [app] adding config value: ('html_search_scorer', '', None) [app] adding config value: ('html_scaled_image_link', True, 'html') [app] adding config value: ('html_baseurl', '', 'html') [app] adding config value: ('html_math_renderer', None, 'env') [app] adding config value: ('html4_writer', False, 'html') [app] connecting event 'config-inited': <function convert_html_css_files at 0xf60a5a00> [id=2] [app] connecting event 'config-inited': <function convert_html_js_files at 0xf5fbac40> [id=3] [app] connecting event 'config-inited': <function validate_html_extra_path at 0xf5fbad18> [id=4] [app] connecting event 'config-inited': <function validate_html_static_path at 0xf5fbad60> [id=5] [app] connecting event 'config-inited': <function validate_html_logo at 0xf5fbada8> [id=6] [app] connecting event 'config-inited': <function validate_html_favicon at 0xf5fbadf0> [id=7] [app] connecting event 'builder-inited': <function validate_math_renderer at 0xf5fbacd0> [id=8] [app] connecting event 'html-page-context': <function setup_js_tag_helper at 0xf5fbac88> [id=9] [app] setting up extension: 'sphinx.ext.mathjax' [app] adding html_math_renderer: mathjax, (<function html_visit_math at 0xf5fca148>, None), (<function html_visit_displaymath at 0xf5fca2f8>, None) [app] adding config value: ('mathjax_path', 'https://cdnjs.cloudflare.com/ajax/libs/mathjax/2.7.5/latest.js?config=TeX-AMS-MML_HTMLorMML', 'html') [app] adding config value: ('mathjax_options', {}, 'html') [app] adding config value: ('mathjax_inline', ['\\(', '\\)'], 'html') [app] adding config value: ('mathjax_display', ['\\[', '\\]'], 'html') [app] adding config value: ('mathjax_config', None, 'html') [app] connecting event 'env-updated': <function install_mathjax at 0xf5fca340> [id=10] [app] adding builder: <class 'sphinx.builders.dirhtml.DirectoryHTMLBuilder'> [app] setting up extension: 'sphinx.builders.dummy' [app] adding builder: <class 'sphinx.builders.dummy.DummyBuilder'> [app] setting up extension: 'sphinx.builders.gettext' [app] adding builder: <class 'sphinx.builders.gettext.MessageCatalogBuilder'> [app] adding config value: ('gettext_compact', True, 'gettext') [app] adding config value: ('gettext_location', True, 'gettext') [app] adding config value: ('gettext_uuid', False, 'gettext') [app] adding config value: ('gettext_auto_build', True, 'env') [app] adding config value: ('gettext_additional_targets', [], 'env') [app] adding config value: ('gettext_last_translator', 'FULL NAME <EMAIL@ADDRESS>', 'gettext') [app] adding config value: ('gettext_language_team', 'LANGUAGE <LL@li.org>', 'gettext') [app] setting up extension: 'sphinx.builders.html' [app] setting up extension: 'sphinx.builders.latex' [app] setting up extension: 'sphinx.builders.latex.transforms' [app] adding transform: <class 'sphinx.builders.latex.transforms.FootnoteDocnameUpdater'> [app] adding post transform: <class 'sphinx.builders.latex.transforms.BibliographyTransform'> [app] adding post transform: <class 'sphinx.builders.latex.transforms.CitationReferenceTransform'> [app] adding post transform: <class 'sphinx.builders.latex.transforms.DocumentTargetTransform'> [app] adding post transform: <class 'sphinx.builders.latex.transforms.IndexInSectionTitleTransform'> [app] adding post transform: <class 'sphinx.builders.latex.transforms.LaTeXFootnoteTransform'> [app] adding post transform: <class 'sphinx.builders.latex.transforms.LiteralBlockTransform'> [app] adding post transform: <class 'sphinx.builders.latex.transforms.MathReferenceTransform'> [app] adding post transform: <class 'sphinx.builders.latex.transforms.ShowUrlsTransform'> [app] adding builder: <class 'sphinx.builders.latex.LaTeXBuilder'> [app] connecting event 'config-inited': <function validate_config_values at 0xf5ee2d18> [id=11] [app] adding config value: ('latex_engine', <function default_latex_engine at 0xf5ee2d60>, None, <sphinx.config.ENUM object at 0xf5fc3988>) [app] adding config value: ('latex_documents', <function default_latex_documents at 0xf5ee2e38>, None) [app] adding config value: ('latex_logo', None, None, [<class 'str'>]) [app] adding config value: ('latex_appendices', [], None) [app] adding config value: ('latex_use_latex_multicolumn', False, None) [app] adding config value: ('latex_use_xindy', <function default_latex_use_xindy at 0xf5ee2df0>, None, [<class 'bool'>]) [app] adding config value: ('latex_toplevel_sectioning', None, None, <sphinx.config.ENUM object at 0xf5fc3be0>) [app] adding config value: ('latex_domain_indices', True, None, [<class 'list'>]) [app] adding config value: ('latex_show_urls', 'no', None) [app] adding config value: ('latex_show_pagerefs', False, None) [app] adding config value: ('latex_elements', {}, None) [app] adding config value: ('latex_additional_files', [], None) [app] adding config value: ('latex_docclass', <function default_latex_docclass at 0xf5ee2da8>, None) [app] setting up extension: 'sphinx.builders.linkcheck' [app] adding builder: <class 'sphinx.builders.linkcheck.CheckExternalLinksBuilder'> [app] adding config value: ('linkcheck_ignore', [], None) [app] adding config value: ('linkcheck_auth', [], None) [app] adding config value: ('linkcheck_retries', 1, None) [app] adding config value: ('linkcheck_timeout', None, None, [<class 'int'>]) [app] adding config value: ('linkcheck_workers', 5, None) [app] adding config value: ('linkcheck_anchors', True, None) [app] adding config value: ('linkcheck_anchors_ignore', ['^!'], None) [app] setting up extension: 'sphinx.builders.manpage' [app] adding builder: <class 'sphinx.builders.manpage.ManualPageBuilder'> [app] adding config value: ('man_pages', <function default_man_pages at 0xf5d3e460>, None) [app] adding config value: ('man_show_urls', False, None) [app] setting up extension: 'sphinx.builders.singlehtml' [app] setting up extension: 'sphinx.builders.html' [app] adding builder: <class 'sphinx.builders.singlehtml.SingleFileHTMLBuilder'> [app] adding config value: ('singlehtml_sidebars', <function setup.<locals>.<lambda> at 0xf5fca0b8>, 'html') [app] setting up extension: 'sphinx.builders.texinfo' [app] adding builder: <class 'sphinx.builders.texinfo.TexinfoBuilder'> [app] adding config value: ('texinfo_documents', <function default_texinfo_documents at 0xf5d5b5c8>, None) [app] adding config value: ('texinfo_appendices', [], None) [app] adding config value: ('texinfo_elements', {}, None) [app] adding config value: ('texinfo_domain_indices', True, None, [<class 'list'>]) [app] adding config value: ('texinfo_show_urls', 'footnote', None) [app] adding config value: ('texinfo_no_detailmenu', False, None) [app] setting up extension: 'sphinx.builders.text' [app] adding builder: <class 'sphinx.builders.text.TextBuilder'> [app] adding config value: ('text_sectionchars', '*=-~"+`', 'env') [app] adding config value: ('text_newlines', 'unix', 'env') [app] adding config value: ('text_add_secnumbers', True, 'env') [app] adding config value: ('text_secnumber_suffix', '. ', 'env') [app] setting up extension: 'sphinx.builders.xml' [app] adding builder: <class 'sphinx.builders.xml.XMLBuilder'> [app] adding builder: <class 'sphinx.builders.xml.PseudoXMLBuilder'> [app] adding config value: ('xml_pretty', True, 'env') [app] setting up extension: 'sphinx.config' [app] connecting event 'config-inited': <function convert_source_suffix at 0xf6b01da8> [id=12] [app] connecting event 'config-inited': <function init_numfig_format at 0xf6b01df0> [id=13] [app] connecting event 'config-inited': <function correct_copyright_year at 0xf6b01e38> [id=14] [app] connecting event 'config-inited': <function check_confval_types at 0xf6b01e80> [id=15] [app] connecting event 'config-inited': <function check_primary_domain at 0xf6b01f10> [id=16] [app] connecting event 'env-get-outdated': <function check_master_doc at 0xf6b01f58> [id=17] [app] setting up extension: 'sphinx.domains.c' [app] adding domain: <class 'sphinx.domains.c.CDomain'> [app] setting up extension: 'sphinx.domains.changeset' [app] adding domain: <class 'sphinx.domains.changeset.ChangeSetDomain'> [app] adding directive: ('deprecated', <class 'sphinx.domains.changeset.VersionChange'>, None, None, {}) [app] adding directive: ('versionadded', <class 'sphinx.domains.changeset.VersionChange'>, None, None, {}) [app] adding directive: ('versionchanged', <class 'sphinx.domains.changeset.VersionChange'>, None, None, {}) [app] setting up extension: 'sphinx.domains.citation' [app] adding domain: <class 'sphinx.domains.citation.CitationDomain'> [app] adding transform: <class 'sphinx.domains.citation.CitationDefinitionTransform'> [app] adding transform: <class 'sphinx.domains.citation.CitationReferenceTransform'> [app] setting up extension: 'sphinx.domains.cpp' [app] adding domain: <class 'sphinx.domains.cpp.CPPDomain'> [app] adding config value: ('cpp_index_common_prefix', [], 'env') [app] adding config value: ('cpp_id_attributes', [], 'env') [app] adding config value: ('cpp_paren_attributes', [], 'env') [app] adding post transform: <class 'sphinx.domains.cpp.AliasTransform'> [app] setting up extension: 'sphinx.domains.index' [app] adding domain: <class 'sphinx.domains.index.IndexDomain'> [app] adding directive: ('index', <class 'sphinx.domains.index.IndexDirective'>, None, None, {}) [app] adding role: ('index', <sphinx.domains.index.IndexRole object at 0xf5d23ce8>) [app] setting up extension: 'sphinx.domains.javascript' [app] adding domain: <class 'sphinx.domains.javascript.JavaScriptDomain'> [app] setting up extension: 'sphinx.domains.math' [app] adding domain: <class 'sphinx.domains.math.MathDomain'> [app] adding role: ('eq', <sphinx.domains.math.MathReferenceRole object at 0xf5e15058>) [app] setting up extension: 'sphinx.domains.python' [app] adding domain: <class 'sphinx.domains.python.PythonDomain'> [app] setting up extension: 'sphinx.domains.rst' [app] adding domain: <class 'sphinx.domains.rst.ReSTDomain'> [app] setting up extension: 'sphinx.domains.std' [app] adding domain: <class 'sphinx.domains.std.StandardDomain'> [app] setting up extension: 'sphinx.directives' [app] adding event: 'object-description-transform' [app] setting up extension: 'sphinx.directives.code' [app] setting up extension: 'sphinx.directives.other' [app] setting up extension: 'sphinx.directives.patches' [app] setting up extension: 'sphinx.extension' [app] connecting event 'config-inited': <function verify_needs_extensions at 0xf6b14c88> [id=18] [app] setting up extension: 'sphinx.parsers' [app] adding search source_parser: (<class 'sphinx.parsers.RSTParser'>,) [app] setting up extension: 'sphinx.registry' [app] connecting event 'config-inited': <function merge_source_suffix at 0xf688e658> [id=19] [app] setting up extension: 'sphinx.roles' [app] setting up extension: 'sphinx.transforms' [app] adding transform: <class 'sphinx.transforms.ApplySourceWorkaround'> [app] adding transform: <class 'sphinx.transforms.ExtraTranslatableNodes'> [app] adding transform: <class 'sphinx.transforms.DefaultSubstitutions'> [app] adding transform: <class 'sphinx.transforms.MoveModuleTargets'> [app] adding transform: <class 'sphinx.transforms.HandleCodeBlocks'> [app] adding transform: <class 'sphinx.transforms.SortIds'> [app] adding transform: <class 'sphinx.transforms.DoctestTransform'> [app] adding transform: <class 'sphinx.transforms.FigureAligner'> [app] adding transform: <class 'sphinx.transforms.AutoNumbering'> [app] adding transform: <class 'sphinx.transforms.AutoIndexUpgrader'> [app] adding transform: <class 'sphinx.transforms.FilterSystemMessages'> [app] adding transform: <class 'sphinx.transforms.UnreferencedFootnotesDetector'> [app] adding transform: <class 'sphinx.transforms.SphinxSmartQuotes'> [app] adding transform: <class 'sphinx.transforms.DoctreeReadEvent'> [app] adding transform: <class 'sphinx.transforms.ManpageLink'> [app] setting up extension: 'sphinx.transforms.compact_bullet_list' [app] adding transform: <class 'sphinx.transforms.compact_bullet_list.RefOnlyBulletListTransform'> [app] setting up extension: 'sphinx.transforms.i18n' [app] adding transform: <class 'sphinx.transforms.i18n.PreserveTranslatableMessages'> [app] adding transform: <class 'sphinx.transforms.i18n.Locale'> [app] adding transform: <class 'sphinx.transforms.i18n.RemoveTranslatableInline'> [app] setting up extension: 'sphinx.transforms.references' [app] adding transform: <class 'sphinx.transforms.references.SubstitutionDefinitionsRemover'> [app] adding transform: <class 'sphinx.transforms.references.SphinxDanglingReferences'> [app] adding transform: <class 'sphinx.transforms.references.SphinxDomains'> [app] setting up extension: 'sphinx.transforms.post_transforms' [app] adding post transform: <class 'sphinx.transforms.post_transforms.ReferencesResolver'> [app] adding post transform: <class 'sphinx.transforms.post_transforms.OnlyNodeTransform'> [app] setting up extension: 'sphinx.transforms.post_transforms.code' [app] adding post transform: <class 'sphinx.transforms.post_transforms.code.HighlightLanguageTransform'> [app] adding post transform: <class 'sphinx.transforms.post_transforms.code.TrimDoctestFlagsTransform'> [app] setting up extension: 'sphinx.transforms.post_transforms.images' [app] adding post transform: <class 'sphinx.transforms.post_transforms.images.ImageDownloader'> [app] adding post transform: <class 'sphinx.transforms.post_transforms.images.DataURIExtractor'> [app] setting up extension: 'sphinx.transforms.post_transforms.compat' [app] adding post transform: <class 'sphinx.transforms.post_transforms.compat.MathNodeMigrator'> [app] setting up extension: 'sphinx.util.compat' [app] adding transform: <class 'sphinx.util.compat.IndexEntriesMigrator'> [app] connecting event 'config-inited': <function deprecate_source_parsers at 0xf5be5778> [id=20] [app] connecting event 'builder-inited': <function register_application_for_autosummary at 0xf5be5808> [id=21] [app] setting up extension: 'sphinx.versioning' [app] adding transform: <class 'sphinx.versioning.UIDTransform'> [app] setting up extension: 'sphinx.environment.collectors.dependencies' [app] adding environment collector: <class 'sphinx.environment.collectors.dependencies.DependenciesCollector'> [app] connecting event 'doctree-read': <bound method DependenciesCollector.process_doc of <sphinx.environment.collectors.dependencies.DependenciesCollector object at 0xf5da9da8>> [id=22] [app] connecting event 'env-merge-info': <bound method DependenciesCollector.merge_other of <sphinx.environment.collectors.dependencies.DependenciesCollector object at 0xf5da9da8>> [id=23] [app] connecting event 'env-purge-doc': <bound method DependenciesCollector.clear_doc of <sphinx.environment.collectors.dependencies.DependenciesCollector object at 0xf5da9da8>> [id=24] [app] connecting event 'env-get-updated': <bound method EnvironmentCollector.get_updated_docs of <sphinx.environment.collectors.dependencies.DependenciesCollector object at 0xf5da9da8>> [id=25] [app] connecting event 'env-get-outdated': <bound method EnvironmentCollector.get_outdated_docs of <sphinx.environment.collectors.dependencies.DependenciesCollector object at 0xf5da9da8>> [id=26] [app] setting up extension: 'sphinx.environment.collectors.asset' [app] adding environment collector: <class 'sphinx.environment.collectors.asset.ImageCollector'> [app] connecting event 'doctree-read': <bound method ImageCollector.process_doc of <sphinx.environment.collectors.asset.ImageCollector object at 0xf5da9b20>> [id=27] [app] connecting event 'env-merge-info': <bound method ImageCollector.merge_other of <sphinx.environment.collectors.asset.ImageCollector object at 0xf5da9b20>> [id=28] [app] connecting event 'env-purge-doc': <bound method ImageCollector.clear_doc of <sphinx.environment.collectors.asset.ImageCollector object at 0xf5da9b20>> [id=29] [app] connecting event 'env-get-updated': <bound method EnvironmentCollector.get_updated_docs of <sphinx.environment.collectors.asset.ImageCollector object at 0xf5da9b20>> [id=30] [app] connecting event 'env-get-outdated': <bound method EnvironmentCollector.get_outdated_docs of <sphinx.environment.collectors.asset.ImageCollector object at 0xf5da9b20>> [id=31] [app] adding environment collector: <class 'sphinx.environment.collectors.asset.DownloadFileCollector'> [app] connecting event 'doctree-read': <bound method DownloadFileCollector.process_doc of <sphinx.environment.collectors.asset.DownloadFileCollector object at 0xf5bed070>> [id=32] [app] connecting event 'env-merge-info': <bound method DownloadFileCollector.merge_other of <sphinx.environment.collectors.asset.DownloadFileCollector object at 0xf5bed070>> [id=33] [app] connecting event 'env-purge-doc': <bound method DownloadFileCollector.clear_doc of <sphinx.environment.collectors.asset.DownloadFileCollector object at 0xf5bed070>> [id=34] [app] connecting event 'env-get-updated': <bound method EnvironmentCollector.get_updated_docs of <sphinx.environment.collectors.asset.DownloadFileCollector object at 0xf5bed070>> [id=35] [app] connecting event 'env-get-outdated': <bound method EnvironmentCollector.get_outdated_docs of <sphinx.environment.collectors.asset.DownloadFileCollector object at 0xf5bed070>> [id=36] [app] setting up extension: 'sphinx.environment.collectors.metadata' [app] adding environment collector: <class 'sphinx.environment.collectors.metadata.MetadataCollector'> [app] connecting event 'doctree-read': <bound method MetadataCollector.process_doc of <sphinx.environment.collectors.metadata.MetadataCollector object at 0xf5bed088>> [id=37] [app] connecting event 'env-merge-info': <bound method MetadataCollector.merge_other of <sphinx.environment.collectors.metadata.MetadataCollector object at 0xf5bed088>> [id=38] [app] connecting event 'env-purge-doc': <bound method MetadataCollector.clear_doc of <sphinx.environment.collectors.metadata.MetadataCollector object at 0xf5bed088>> [id=39] [app] connecting event 'env-get-updated': <bound method EnvironmentCollector.get_updated_docs of <sphinx.environment.collectors.metadata.MetadataCollector object at 0xf5bed088>> [id=40] [app] connecting event 'env-get-outdated': <bound method EnvironmentCollector.get_outdated_docs of <sphinx.environment.collectors.metadata.MetadataCollector object at 0xf5bed088>> [id=41] [app] setting up extension: 'sphinx.environment.collectors.title' [app] adding environment collector: <class 'sphinx.environment.collectors.title.TitleCollector'> [app] connecting event 'doctree-read': <bound method TitleCollector.process_doc of <sphinx.environment.collectors.title.TitleCollector object at 0xf5bed340>> [id=42] [app] connecting event 'env-merge-info': <bound method TitleCollector.merge_other of <sphinx.environment.collectors.title.TitleCollector object at 0xf5bed340>> [id=43] [app] connecting event 'env-purge-doc': <bound method TitleCollector.clear_doc of <sphinx.environment.collectors.title.TitleCollector object at 0xf5bed340>> [id=44] [app] connecting event 'env-get-updated': <bound method EnvironmentCollector.get_updated_docs of <sphinx.environment.collectors.title.TitleCollector object at 0xf5bed340>> [id=45] [app] connecting event 'env-get-outdated': <bound method EnvironmentCollector.get_outdated_docs of <sphinx.environment.collectors.title.TitleCollector object at 0xf5bed340>> [id=46] [app] setting up extension: 'sphinx.environment.collectors.toctree' [app] adding environment collector: <class 'sphinx.environment.collectors.toctree.TocTreeCollector'> [app] connecting event 'doctree-read': <bound method TocTreeCollector.process_doc of <sphinx.environment.collectors.toctree.TocTreeCollector object at 0xf5bed388>> [id=47] [app] connecting event 'env-merge-info': <bound method TocTreeCollector.merge_other of <sphinx.environment.collectors.toctree.TocTreeCollector object at 0xf5bed388>> [id=48] [app] connecting event 'env-purge-doc': <bound method TocTreeCollector.clear_doc of <sphinx.environment.collectors.toctree.TocTreeCollector object at 0xf5bed388>> [id=49] [app] connecting event 'env-get-updated': <bound method TocTreeCollector.get_updated_docs of <sphinx.environment.collectors.toctree.TocTreeCollector object at 0xf5bed388>> [id=50] [app] connecting event 'env-get-outdated': <bound method EnvironmentCollector.get_outdated_docs of <sphinx.environment.collectors.toctree.TocTreeCollector object at 0xf5bed388>> [id=51] [app] setting up extension: 'sphinxcontrib.applehelp' [app] setting up extension: 'sphinx.builders.html' [app] adding builder: <class 'sphinxcontrib.applehelp.AppleHelpBuilder'> [app] adding config value: ('applehelp_bundle_name', <function setup.<locals>.<lambda> at 0xf5be5b20>, 'applehelp') [app] adding config value: ('applehelp_bundle_id', None, 'applehelp', [<class 'str'>]) [app] adding config value: ('applehelp_dev_region', 'en-us', 'applehelp') [app] adding config value: ('applehelp_bundle_version', '1', 'applehelp') [app] adding config value: ('applehelp_icon', None, 'applehelp', [<class 'str'>]) [app] adding config value: ('applehelp_kb_product', <function setup.<locals>.<lambda> at 0xf5bf4538>, 'applehelp') [app] adding config value: ('applehelp_kb_url', None, 'applehelp', [<class 'str'>]) [app] adding config value: ('applehelp_remote_url', None, 'applehelp', [<class 'str'>]) [app] adding config value: ('applehelp_index_anchors', False, 'applehelp', [<class 'str'>]) [app] adding config value: ('applehelp_min_term_length', None, 'applehelp', [<class 'str'>]) [app] adding config value: ('applehelp_stopwords', <function setup.<locals>.<lambda> at 0xf5bf44f0>, 'applehelp') [app] adding config value: ('applehelp_locale', <function setup.<locals>.<lambda> at 0xf5bf4ec8>, 'applehelp') [app] adding config value: ('applehelp_title', <function setup.<locals>.<lambda> at 0xf5bf4f10>, 'applehelp') [app] adding config value: ('applehelp_codesign_identity', <function setup.<locals>.<lambda> at 0xf5bf4f58>, 'applehelp') [app] adding config value: ('applehelp_codesign_flags', <function setup.<locals>.<lambda> at 0xf5bf4fa0>, 'applehelp') [app] adding config value: ('applehelp_indexer_path', '/usr/bin/hiutil', 'applehelp') [app] adding config value: ('applehelp_codesign_path', '/usr/bin/codesign', 'applehelp') [app] adding config value: ('applehelp_disable_external_tools', False, 'applehelp') [app] setting up extension: 'sphinxcontrib.devhelp' [app] setting up extension: 'sphinx.builders.html' [app] adding builder: <class 'sphinxcontrib.devhelp.DevhelpBuilder'> [app] adding config value: ('devhelp_basename', <function setup.<locals>.<lambda> at 0xf5bfe028>, 'devhelp') [app] setting up extension: 'sphinxcontrib.htmlhelp' [app] setting up extension: 'sphinx.builders.html' [app] adding builder: <class 'sphinxcontrib.htmlhelp.HTMLHelpBuilder'> [app] adding config value: ('htmlhelp_basename', <function default_htmlhelp_basename at 0xf5ca4f10>, None) [app] adding config value: ('htmlhelp_file_suffix', None, 'html', [<class 'str'>]) [app] adding config value: ('htmlhelp_link_suffix', None, 'html', [<class 'str'>]) [app] setting up extension: 'sphinxcontrib.serializinghtml' [app] setting up extension: 'sphinx.builders.html' [app] adding builder: <class 'sphinxcontrib.serializinghtml.JSONHTMLBuilder'> [app] adding builder: <class 'sphinxcontrib.serializinghtml.PickleHTMLBuilder'> [app] setting up extension: 'sphinxcontrib.qthelp' [app] setting up extension: 'sphinx.builders.html' [app] adding builder: <class 'sphinxcontrib.qthelp.QtHelpBuilder'> [app] adding config value: ('qthelp_basename', <function setup.<locals>.<lambda> at 0xf5ca4a90>, 'html') [app] adding config value: ('qthelp_namespace', None, 'html', [<class 'str'>]) [app] adding config value: ('qthelp_theme', 'nonav', 'html') [app] adding config value: ('qthelp_theme_options', {}, 'html') [app] setting up extension: 'alabaster' [app] connecting event 'html-page-context': <function update_context at 0xf5cb7388> [id=52] [app] setting up extension: 'sphinx.ext.autodoc' [app] adding autodocumenter: <class 'sphinx.ext.autodoc.ModuleDocumenter'> [app] adding directive: ('automodule', <class 'sphinx.ext.autodoc.directive.AutodocDirective'>, None, None, {}) [app] adding autodocumenter: <class 'sphinx.ext.autodoc.ClassDocumenter'> [app] adding directive: ('autoclass', <class 'sphinx.ext.autodoc.directive.AutodocDirective'>, None, None, {}) [app] adding autodocumenter: <class 'sphinx.ext.autodoc.ExceptionDocumenter'> [app] adding directive: ('autoexception', <class 'sphinx.ext.autodoc.directive.AutodocDirective'>, None, None, {}) [app] adding autodocumenter: <class 'sphinx.ext.autodoc.DataDocumenter'> [app] adding directive: ('autodata', <class 'sphinx.ext.autodoc.directive.AutodocDirective'>, None, None, {}) [app] adding autodocumenter: <class 'sphinx.ext.autodoc.DataDeclarationDocumenter'> [app] adding directive: ('autodatadecl', <class 'sphinx.ext.autodoc.directive.AutodocDirective'>, None, None, {}) [app] adding autodocumenter: <class 'sphinx.ext.autodoc.FunctionDocumenter'> [app] adding directive: ('autofunction', <class 'sphinx.ext.autodoc.directive.AutodocDirective'>, None, None, {}) [app] adding autodocumenter: <class 'sphinx.ext.autodoc.DecoratorDocumenter'> [app] adding directive: ('autodecorator', <class 'sphinx.ext.autodoc.directive.AutodocDirective'>, None, None, {}) [app] adding autodocumenter: <class 'sphinx.ext.autodoc.MethodDocumenter'> [app] adding directive: ('automethod', <class 'sphinx.ext.autodoc.directive.AutodocDirective'>, None, None, {}) [app] adding autodocumenter: <class 'sphinx.ext.autodoc.AttributeDocumenter'> [app] adding directive: ('autoattribute', <class 'sphinx.ext.autodoc.directive.AutodocDirective'>, None, None, {}) [app] adding autodocumenter: <class 'sphinx.ext.autodoc.PropertyDocumenter'> [app] adding directive: ('autoproperty', <class 'sphinx.ext.autodoc.directive.AutodocDirective'>, None, None, {}) [app] adding autodocumenter: <class 'sphinx.ext.autodoc.InstanceAttributeDocumenter'> [app] adding directive: ('autoinstanceattribute', <class 'sphinx.ext.autodoc.directive.AutodocDirective'>, None, None, {}) [app] adding autodocumenter: <class 'sphinx.ext.autodoc.SlotsAttributeDocumenter'> [app] adding directive: ('autoslotsattribute', <class 'sphinx.ext.autodoc.directive.AutodocDirective'>, None, None, {}) [app] adding config value: ('autoclass_content', 'class', True) [app] adding config value: ('autodoc_member_order', 'alphabetic', True) [app] adding config value: ('autodoc_default_flags', [], True) [app] adding config value: ('autodoc_default_options', {}, True) [app] adding config value: ('autodoc_docstring_signature', True, True) [app] adding config value: ('autodoc_mock_imports', [], True) [app] adding config value: ('autodoc_typehints', 'signature', True, <sphinx.config.ENUM object at 0xf5ca7628>) [app] adding config value: ('autodoc_warningiserror', True, True) [app] adding config value: ('autodoc_inherit_docstrings', True, True) [app] adding event: 'autodoc-before-process-signature' [app] adding event: 'autodoc-process-docstring' [app] adding event: 'autodoc-process-signature' [app] adding event: 'autodoc-skip-member' [app] connecting event 'config-inited': <function merge_autodoc_default_flags at 0xf5a6a2f8> [id=53] [app] setting up extension: 'sphinx.ext.autodoc.type_comment' [app] connecting event 'autodoc-before-process-signature': <function update_annotations_using_type_comments at 0xf5a6a658> [id=54] [app] setting up extension: 'sphinx.ext.doctest' [app] adding directive: ('testsetup', <class 'sphinx.ext.doctest.TestsetupDirective'>, None, None, {}) [app] adding directive: ('testcleanup', <class 'sphinx.ext.doctest.TestcleanupDirective'>, None, None, {}) [app] adding directive: ('doctest', <class 'sphinx.ext.doctest.DoctestDirective'>, None, None, {}) [app] adding directive: ('testcode', <class 'sphinx.ext.doctest.TestcodeDirective'>, None, None, {}) [app] adding directive: ('testoutput', <class 'sphinx.ext.doctest.TestoutputDirective'>, None, None, {}) [app] adding builder: <class 'sphinx.ext.doctest.DocTestBuilder'> [app] adding config value: ('doctest_path', [], False) [app] adding config value: ('doctest_test_doctest_blocks', 'default', False) [app] adding config value: ('doctest_global_setup', '', False) [app] adding config value: ('doctest_global_cleanup', '', False) [app] adding config value: ('doctest_default_flags', 41, False) [app] setting up extension: 'sphinx.ext.intersphinx' [app] adding config value: ('intersphinx_mapping', {}, True) [app] adding config value: ('intersphinx_cache_limit', 5, False) [app] adding config value: ('intersphinx_timeout', None, False) [app] connecting event 'config-inited': <function normalize_intersphinx_mapping at 0xf5a6abf8> [id=55] [app] connecting event 'builder-inited': <function load_mappings at 0xf5a6ab68> [id=56] [app] connecting event 'missing-reference': <function missing_reference at 0xf5a6abb0> [id=57] [app] setting up extension: 'sphinx.ext.todo' [app] adding event: 'todo-defined' [app] adding config value: ('todo_include_todos', False, 'html') [app] adding config value: ('todo_link_only', False, 'html') [app] adding config value: ('todo_emit_warnings', False, 'html') [app] adding node: (<class 'sphinx.ext.todo.todolist'>, {}) [app] adding translation_handlers: <class 'sphinx.ext.todo.todolist'>, {} [app] adding node: (<class 'sphinx.ext.todo.todo_node'>, {'html': (<function visit_todo_node at 0xf5a75220>, <function depart_todo_node at 0xf5a75268>), 'latex': (<function latex_visit_todo_node at 0xf5a752b0>, <function latex_depart_todo_node at 0xf5a752f8>), 'text': (<function visit_todo_node at 0xf5a75220>, <function depart_todo_node at 0xf5a75268>), 'man': (<function visit_todo_node at 0xf5a75220>, <function depart_todo_node at 0xf5a75268>), 'texinfo': (<function visit_todo_node at 0xf5a75220>, <function depart_todo_node at 0xf5a75268>)}) [app] adding translation_handlers: <class 'sphinx.ext.todo.todo_node'>, {'html': (<function visit_todo_node at 0xf5a75220>, <function depart_todo_node at 0xf5a75268>), 'latex': (<function latex_visit_todo_node at 0xf5a752b0>, <function latex_depart_todo_node at 0xf5a752f8>), 'text': (<function visit_todo_node at 0xf5a75220>, <function depart_todo_node at 0xf5a75268>), 'man': (<function visit_todo_node at 0xf5a75220>, <function depart_todo_node at 0xf5a75268>), 'texinfo': (<function visit_todo_node at 0xf5a75220>, <function depart_todo_node at 0xf5a75268>)} [app] adding directive: ('todo', <class 'sphinx.ext.todo.Todo'>, None, None, {}) [app] adding directive: ('todolist', <class 'sphinx.ext.todo.TodoList'>, None, None, {}) [app] adding domain: <class 'sphinx.ext.todo.TodoDomain'> [app] connecting event 'doctree-resolved': <class 'sphinx.ext.todo.TodoListProcessor'> [id=58] [app] setting up extension: 'sphinx.ext.coverage' [app] adding builder: <class 'sphinx.ext.coverage.CoverageBuilder'> [app] adding config value: ('coverage_ignore_modules', [], False) [app] adding config value: ('coverage_ignore_functions', [], False) [app] adding config value: ('coverage_ignore_classes', [], False) [app] adding config value: ('coverage_ignore_pyobjects', [], False) [app] adding config value: ('coverage_c_path', [], False) [app] adding config value: ('coverage_c_regexes', {}, False) [app] adding config value: ('coverage_ignore_c_items', {}, False) [app] adding config value: ('coverage_write_headline', True, False) [app] adding config value: ('coverage_skip_undoc_in_source', False, False) [app] setting up extension: 'numpydoc' [app] connecting event 'autodoc-process-docstring': <function mangle_docstrings at 0xf5d74808> [id=59] [app] connecting event 'autodoc-process-signature': <function mangle_signature at 0xf5d74850> [id=60] [app] adding config value: ('numpydoc_edit_link', None, False) [app] adding config value: ('numpydoc_use_plots', None, False) [app] adding config value: ('numpydoc_show_class_members', True, True) [app] adding config value: ('numpydoc_show_inherited_class_members', True, True) [app] adding config value: ('numpydoc_class_members_toctree', True, True) [app] adding config value: ('numpydoc_citation_re', '[a-z0-9_.-]+', True) [app] adding domain: <class 'numpydoc.numpydoc.NumpyPythonDomain'> [app] adding domain: <class 'numpydoc.numpydoc.NumpyCDomain'> making output directory... done [app] emitting event: 'config-inited'(<sphinx.config.Config object at 0xf64c8cb8>,) WARNING: html_static_path entry '_static' does not exist [app] emitting event: 'builder-inited'() loading intersphinx inventory from http://docs.python.org/objects.inv... WARNING: failed to reach any of the inventories with the following issues: intersphinx inventory 'http://docs.python.org/objects.inv' not fetchable due to <class 'requests.exceptions.ConnectionError'>: HTTPConnectionPool(host='docs.python.org', port=80): Max retries exceeded with url: /objects.inv (Caused by NewConnectionError('<urllib3.connection.HTTPConnection object at 0xf5b22d60>: Failed to establish a new connection: [Errno -3] Temporary failure in name resolution')) building [mo]: targets for 0 po files that are out of date building [pickle]: targets for 5 source files that are out of date updating environment: [app] emitting event: 'env-get-outdated'(<sphinxcontrib.serializinghtml.PickleHTMLBuilder object at 0xf6473490>, {'tutorial', 'intro', 'inde [new config] 5 added, 0 changed, 0 removed [app] emitting event: 'env-before-read-docs'(<sphinx.environment.BuildEnvironment object at 0xf5a67508>, ['index', 'install', 'intro', 'referenc reading sources... [ 20%] index [app] emitting event: 'env-purge-doc'(<sphinx.environment.BuildEnvironment object at 0xf5a67508>, 'index') [app] emitting event: 'source-read'('index', [".. python-blosc documentation master file, created by\n sphinx-quickstart on Sun May [app] emitting event: 'doctree-read'(<document: <comment...><section "welcome to python-blosc's document ...>,) reading sources... [ 40%] install [app] emitting event: 'env-purge-doc'(<sphinx.environment.BuildEnvironment object at 0xf5a67508>, 'install') [app] emitting event: 'source-read'('install', ['------------\nInstallation\n------------\n\npython-blosc comes with C Blosc sources, s [app] emitting event: 'doctree-read'(<document: <section "installation"...>>,) reading sources... [ 60%] intro [app] emitting event: 'env-purge-doc'(<sphinx.environment.BuildEnvironment object at 0xf5a67508>, 'intro') [app] emitting event: 'source-read'('intro', ['------------\nIntroduction\n------------\n\nWhat is python-blosc?\n===================== [app] emitting event: 'doctree-read'(<document: <section "introduction"...>>,) reading sources... [ 80%] reference [app] emitting event: 'env-purge-doc'(<sphinx.environment.BuildEnvironment object at 0xf5a67508>, 'reference') [app] emitting event: 'source-read'('reference', ['-----------------\nLibrary Reference\n-----------------\n\nFirst level variables\n== [app] emitting event: 'object-description-transform'('py', 'attribute', <desc_content: <paragraph...>>) [app] emitting event: 'object-description-transform'('py', 'attribute', <desc_content: <paragraph...>>) [app] emitting event: 'object-description-transform'('py', 'attribute', <desc_content: <paragraph...>>) [app] emitting event: 'object-description-transform'('py', 'attribute', <desc_content: <paragraph...>>) [app] emitting event: 'object-description-transform'('py', 'attribute', <desc_content: <paragraph...>>) [app] emitting event: 'object-description-transform'('py', 'attribute', <desc_content: <paragraph...>>) [autodoc] /usr/src/RPM/BUILD/python3-module-blosc-1.5.1/doc/reference.rst:37: input: .. automodule:: blosc :members: compress, compress_ptr, decompress, decompress_ptr, pack_array, unpack_array [autodoc] import blosc [autodoc] import blosc => <module 'blosc' from '/usr/src/tmp/python3-module-blosc-buildroot/usr/lib/python3/site-packages/blosc/__init__.py'> [app] emitting event: 'autodoc-process-signature'('module', 'blosc', <module 'blosc' from '/usr/src/tmp/python3-module-blosc-buildroot/usr/lib/python [app] emitting event: 'autodoc-process-docstring'('module', 'blosc', <module 'blosc' from '/usr/src/tmp/python3-module-blosc-buildroot/usr/lib/python [app] emitting event: 'autodoc-skip-member'('module', 'compress', <function compress at 0xf64ecb20>, False, {'members': ['compress', 'compress_ [app] emitting event: 'autodoc-skip-member'('module', 'compress_ptr', <function compress_ptr at 0xf64ecb68>, False, {'members': ['compress', 'c [app] emitting event: 'autodoc-skip-member'('module', 'decompress', <function decompress at 0xf64ecbb0>, False, {'members': ['compress', 'compr [app] emitting event: 'autodoc-skip-member'('module', 'decompress_ptr', <function decompress_ptr at 0xf64ecbf8>, False, {'members': ['compress' [app] emitting event: 'autodoc-skip-member'('module', 'pack_array', <function pack_array at 0xf64ecc40>, False, {'members': ['compress', 'compr [app] emitting event: 'autodoc-skip-member'('module', 'unpack_array', <function unpack_array at 0xf64ecc88>, False, {'members': ['compress', 'c [autodoc] from blosc import compress [autodoc] import blosc => <module 'blosc' from '/usr/src/tmp/python3-module-blosc-buildroot/usr/lib/python3/site-packages/blosc/__init__.py'> [autodoc] getattr(_, 'compress') [autodoc] => <function compress at 0xf64ecb20> [app] emitting event: 'autodoc-process-signature'('function', 'blosc.compress', <function compress at 0xf64ecb20>, {'members': ['compress', 'compress [app] emitting event: 'autodoc-process-docstring'('function', 'blosc.compress', <function compress at 0xf64ecb20>, {'members': ['compress', 'compress [autodoc] from blosc import compress_ptr [autodoc] import blosc => <module 'blosc' from '/usr/src/tmp/python3-module-blosc-buildroot/usr/lib/python3/site-packages/blosc/__init__.py'> [autodoc] getattr(_, 'compress_ptr') [autodoc] => <function compress_ptr at 0xf64ecb68> [app] emitting event: 'autodoc-process-signature'('function', 'blosc.compress_ptr', <function compress_ptr at 0xf64ecb68>, {'members': ['compress', ' [app] emitting event: 'autodoc-process-docstring'('function', 'blosc.compress_ptr', <function compress_ptr at 0xf64ecb68>, {'members': ['compress', ' [autodoc] from blosc import decompress [autodoc] import blosc => <module 'blosc' from '/usr/src/tmp/python3-module-blosc-buildroot/usr/lib/python3/site-packages/blosc/__init__.py'> [autodoc] getattr(_, 'decompress') [autodoc] => <function decompress at 0xf64ecbb0> [app] emitting event: 'autodoc-process-signature'('function', 'blosc.decompress', <function decompress at 0xf64ecbb0>, {'members': ['compress', 'comp [app] emitting event: 'autodoc-process-docstring'('function', 'blosc.decompress', <function decompress at 0xf64ecbb0>, {'members': ['compress', 'comp [autodoc] from blosc import decompress_ptr [autodoc] import blosc => <module 'blosc' from '/usr/src/tmp/python3-module-blosc-buildroot/usr/lib/python3/site-packages/blosc/__init__.py'> [autodoc] getattr(_, 'decompress_ptr') [autodoc] => <function decompress_ptr at 0xf64ecbf8> [app] emitting event: 'autodoc-process-signature'('function', 'blosc.decompress_ptr', <function decompress_ptr at 0xf64ecbf8>, {'members': ['compress [app] emitting event: 'autodoc-process-docstring'('function', 'blosc.decompress_ptr', <function decompress_ptr at 0xf64ecbf8>, {'members': ['compress [autodoc] from blosc import pack_array [autodoc] import blosc => <module 'blosc' from '/usr/src/tmp/python3-module-blosc-buildroot/usr/lib/python3/site-packages/blosc/__init__.py'> [autodoc] getattr(_, 'pack_array') [autodoc] => <function pack_array at 0xf64ecc40> [app] emitting event: 'autodoc-process-signature'('function', 'blosc.pack_array', <function pack_array at 0xf64ecc40>, {'members': ['compress', 'comp [app] emitting event: 'autodoc-process-docstring'('function', 'blosc.pack_array', <function pack_array at 0xf64ecc40>, {'members': ['compress', 'comp [autodoc] from blosc import unpack_array [autodoc] import blosc => <module 'blosc' from '/usr/src/tmp/python3-module-blosc-buildroot/usr/lib/python3/site-packages/blosc/__init__.py'> [autodoc] getattr(_, 'unpack_array') [autodoc] => <function unpack_array at 0xf64ecc88> [app] emitting event: 'autodoc-process-signature'('function', 'blosc.unpack_array', <function unpack_array at 0xf64ecc88>, {'members': ['compress', ' [app] emitting event: 'autodoc-process-docstring'('function', 'blosc.unpack_array', <function unpack_array at 0xf64ecc88>, {'members': ['compress', ' [autodoc] output: .. py:module:: blosc .. py:function:: compress(bytesobj[, typesize=8, clevel=9, shuffle=blosc.SHUFFLE, cname='blosclz']]) :module: blosc Compress bytesobj, with a given type size. :Parameters: **bytesobj** : bytes-like object (supporting the buffer interface) The data to be compressed. **typesize** : int The data type size. **clevel** : int (optional) The compression level from 0 (no compression) to 9 (maximum compression). The default is 9. **shuffle** : int (optional) The shuffle filter to be activated. Allowed values are blosc.NOSHUFFLE, blosc.SHUFFLE and blosc.BITSHUFFLE. The default is blosc.SHUFFLE. **cname** : string (optional) The name of the compressor used internally in Blosc. It can be any of the supported by Blosc ('blosclz', 'lz4', 'lz4hc', 'snappy', 'zlib', 'zstd' and maybe others too). The default is 'blosclz'. :Returns: **out** : str / bytes The compressed data in form of a Python str / bytes object. :Raises: **TypeError** If bytesobj doesn't support the buffer interface. **ValueError** If bytesobj is too long. If typesize is not within the allowed range. If clevel is not within the allowed range. If cname is not a valid codec. .. rubric:: Examples >>> import array >>> a = array.array('i', range(1000*1000)) >>> a_bytesobj = a.tostring() >>> c_bytesobj = blosc.compress(a_bytesobj, typesize=4) >>> len(c_bytesobj) < len(a_bytesobj) True .. py:function:: compress_ptr(address, items[, typesize=8, clevel=9, shuffle=blosc.SHUFFLE, cname='blosclz']]) :module: blosc Compress the data at address with given items and typesize. :Parameters: **address** : int or long the pointer to the data to be compressed **items** : int The number of items (of typesize) to be compressed. **typesize** : int The data type size. **clevel** : int (optional) The compression level from 0 (no compression) to 9 (maximum compression). The default is 9. **shuffle** : int (optional) The shuffle filter to be activated. Allowed values are blosc.NOSHUFFLE, blosc.SHUFFLE and blosc.BITSHUFFLE. The default is blosc.SHUFFLE. **cname** : string (optional) The name of the compressor used internally in Blosc. It can be any of the supported by Blosc ('blosclz', 'lz4', 'lz4hc', 'snappy', 'zlib', 'zstd' and maybe others too). The default is 'blosclz'. :Returns: **out** : str / bytes The compressed data in form of a Python str / bytes object. :Raises: **TypeError** If address is not of type int or long. **ValueError** If items * typesize is larger than the maximum allowed buffer size. If typesize is not within the allowed range. If clevel is not within the allowed range. If cname is not within the supported compressors. .. rubric:: Notes This function can be used anywhere that a memory address is available in Python. For example the Numpy "__array_interface__['data'][0]" construct, or when using the ctypes modules. Importantly, the user is responsible for making sure that the memory address is valid and that the memory pointed to is contiguous. Passing a non-valid address has a high likelihood of crashing the interpreter by segfault. .. rubric:: Examples >>> import numpy >>> items = 7 >>> np_array = numpy.arange(items) >>> c = blosc.compress_ptr(np_array.__array_interface__['data'][0], items, np_array.dtype.itemsize) >>> d = blosc.decompress(c) >>> np_ans = numpy.fromstring(d, dtype=np_array.dtype) >>> (np_array == np_ans).all() True >>> import ctypes >>> typesize = 8 >>> data = [float(i) for i in range(items)] >>> Array = ctypes.c_double * items >>> a = Array(*data) >>> c = blosc.compress_ptr(ctypes.addressof(a), items, typesize) >>> d = blosc.decompress(c) >>> import struct >>> ans = [struct.unpack('d', d[i:i+typesize])[0] for i in range(0, items*typesize, typesize)] >>> data == ans True .. py:function:: decompress(bytesobj) :module: blosc Decompresses a bytesobj compressed object. :Parameters: **bytesobj** : str / bytes The data to be decompressed. **as_bytearray** : bool, optional If this flag is True then the return type will be a bytearray object instead of a bytesobject. :Returns: **out** : str / bytes or bytearray The decompressed data in form of a Python str / bytes object. If as_bytearray is True then this will be a bytearray object, otherwise this will be a str/ bytes object. :Raises: **TypeError** If bytesobj is not of type bytes or string. .. rubric:: Examples >>> import array >>> a = array.array('i', range(1000*1000)) >>> a_bytesobj = a.tostring() >>> c_bytesobj = blosc.compress(a_bytesobj, typesize=4) >>> a_bytesobj2 = blosc.decompress(c_bytesobj) >>> a_bytesobj == a_bytesobj2 True >>> b"" == blosc.decompress(blosc.compress(b"", 1)) True >>> b"1"*7 == blosc.decompress(blosc.compress(b"1"*7, 8)) True >>> type(blosc.decompress(blosc.compress(b"1"*7, 8), ... as_bytearray=True)) is bytearray True .. py:function:: decompress_ptr(bytesobj, address) :module: blosc Decompresses a bytesobj compressed object into the memory at address. :Parameters: **bytesobj** : str / bytes The data to be decompressed. **address** : int or long the pointer to the data to be compressed :Returns: **nbytes** : int the number of bytes written to the buffer :Raises: **TypeError** If bytesobj is not of type bytes or string. If address is not of type int or long. .. rubric:: Notes This function can be used anywhere that a memory address is available in Python. For example the Numpy "__array_interface__['data'][0]" construct, or when using the ctypes modules. Importantly, the user is responsible for making sure that the memory address is valid and that the memory pointed to is contiguous and can be written to. Passing a non-valid address has a high likelihood of crashing the interpreter by segfault. .. rubric:: Examples >>> import numpy >>> items = 7 >>> np_array = numpy.arange(items) >>> c = blosc.compress_ptr(np_array.__array_interface__['data'][0], items, np_array.dtype.itemsize) >>> np_ans = numpy.empty(items, dtype=np_array.dtype) >>> nbytes = blosc.decompress_ptr(c, np_ans.__array_interface__['data'][0]) >>> (np_array == np_ans).all() True >>> nbytes == items * np_array.dtype.itemsize True >>> import ctypes >>> typesize = 8 >>> data = [float(i) for i in range(items)] >>> Array = ctypes.c_double * items >>> in_array = Array(*data) >>> c = blosc.compress_ptr(ctypes.addressof(in_array), items, typesize) >>> out_array = ctypes.create_string_buffer(items*typesize) >>> nbytes = blosc.decompress_ptr(c, ctypes.addressof(out_array)) >>> import struct >>> ans = [struct.unpack('d', out_array[i:i+typesize])[0] for i in range(0, items*typesize, typesize)] >>> data == ans True >>> nbytes == items * typesize True .. py:function:: pack_array(array[, clevel=9, shuffle=blosc.SHUFFLE, cname='blosclz']]) :module: blosc Pack (compress) a NumPy array. :Parameters: **array** : ndarray The NumPy array to be packed. **clevel** : int (optional) The compression level from 0 (no compression) to 9 (maximum compression). The default is 9. **shuffle** : int (optional) The shuffle filter to be activated. Allowed values are blosc.NOSHUFFLE, blosc.SHUFFLE and blosc.BITSHUFFLE. The default is blosc.SHUFFLE. **cname** : string (optional) The name of the compressor used internally in Blosc. It can be any of the supported by Blosc ('blosclz', 'lz4', 'lz4hc', 'snappy', 'zlib', 'zstd' and maybe others too). The default is 'blosclz'. :Returns: **out** : str / bytes The packed array in form of a Python str / bytes object. :Raises: **TypeError** If array does not quack like a numpy ndarray. **ValueError** If array.itemsize * array.size is larger than the maximum allowed buffer size. If typesize is not within the allowed range. If clevel is not within the allowed range. If cname is not within the supported compressors. .. rubric:: Examples >>> import numpy >>> a = numpy.arange(1e6) >>> parray = blosc.pack_array(a) >>> len(parray) < a.size*a.itemsize True .. py:function:: unpack_array(packed_array) :module: blosc Unpack (decompress) a packed NumPy array. :Parameters: **packed_array** : str / bytes The packed array to be decompressed. :Returns: **out** : ndarray The decompressed data in form of a NumPy array. :Raises: **TypeError** If packed_array is not of type bytes or string. .. rubric:: Examples >>> import numpy >>> a = numpy.arange(1e6) >>> parray = blosc.pack_array(a) >>> len(parray) < a.size*a.itemsize True >>> a2 = blosc.unpack_array(parray) >>> numpy.alltrue(a == a2) True [app] emitting event: 'object-description-transform'('py', 'function', <desc_content: <paragraph...><field_list...><rubric...><doctest_block...>>) [app] emitting event: 'object-description-transform'('py', 'function', <desc_content: <paragraph...><field_list...><rubric...><paragraph...><p ...>) [app] emitting event: 'object-description-transform'('py', 'function', <desc_content: <paragraph...><field_list...><rubric...><doctest_block...>>) [app] emitting event: 'object-description-transform'('py', 'function', <desc_content: <paragraph...><field_list...><rubric...><paragraph...><p ...>) [app] emitting event: 'object-description-transform'('py', 'function', <desc_content: <paragraph...><field_list...><rubric...><doctest_block...>>) [app] emitting event: 'object-description-transform'('py', 'function', <desc_content: <paragraph...><field_list...><rubric...><doctest_block...>>) [autodoc] /usr/src/RPM/BUILD/python3-module-blosc-1.5.1/doc/reference.rst:44: input: .. automodule:: blosc :members: clib_info, compressor_list, detect_number_of_cores, free_resources, get_clib, set_blocksize, set_nthreads, set_releasegil, print_versions, test [autodoc] import blosc [autodoc] import blosc => <module 'blosc' from '/usr/src/tmp/python3-module-blosc-buildroot/usr/lib/python3/site-packages/blosc/__init__.py'> [app] emitting event: 'autodoc-process-signature'('module', 'blosc', <module 'blosc' from '/usr/src/tmp/python3-module-blosc-buildroot/usr/lib/python [app] emitting event: 'autodoc-process-docstring'('module', 'blosc', <module 'blosc' from '/usr/src/tmp/python3-module-blosc-buildroot/usr/lib/python [app] emitting event: 'autodoc-skip-member'('module', 'clib_info', <function clib_info at 0xf64ec850>, False, {'members': ['clib_info', 'compre [app] emitting event: 'autodoc-skip-member'('module', 'compressor_list', <function compressor_list at 0xf64ec778>, False, {'members': ['clib_in [app] emitting event: 'autodoc-skip-member'('module', 'detect_number_of_cores', <function detect_number_of_cores at 0xf64ec5c8>, False, {'membe [app] emitting event: 'autodoc-skip-member'('module', 'free_resources', <function free_resources at 0xf64ec8e0>, False, {'members': ['clib_info [app] emitting event: 'autodoc-skip-member'('module', 'get_clib', <function get_clib at 0xf64ec898>, False, {'members': ['clib_info', 'compress [app] emitting event: 'autodoc-skip-member'('module', 'set_blocksize', <function set_blocksize at 0xf64ec6e8>, False, {'members': ['clib_info', [app] emitting event: 'autodoc-skip-member'('module', 'set_nthreads', <function set_nthreads at 0xf64ec6a0>, False, {'members': ['clib_info', ' [app] emitting event: 'autodoc-skip-member'('module', 'set_releasegil', <function set_releasegil at 0xf64ec730>, False, {'members': ['clib_info [app] emitting event: 'autodoc-skip-member'('module', 'print_versions', <function print_versions at 0xf64ecd18>, False, {'members': ['clib_info [app] emitting event: 'autodoc-skip-member'('module', 'test', <function run at 0xf64ecd60>, True, {'members': ['clib_info', 'compressor_list', [autodoc] from blosc import clib_info [autodoc] import blosc => <module 'blosc' from '/usr/src/tmp/python3-module-blosc-buildroot/usr/lib/python3/site-packages/blosc/__init__.py'> [autodoc] getattr(_, 'clib_info') [autodoc] => <function clib_info at 0xf64ec850> [app] emitting event: 'autodoc-process-signature'('function', 'blosc.clib_info', <function clib_info at 0xf64ec850>, {'members': ['clib_info', 'compr [app] emitting event: 'autodoc-process-docstring'('function', 'blosc.clib_info', <function clib_info at 0xf64ec850>, {'members': ['clib_info', 'compr [autodoc] from blosc import compressor_list [autodoc] import blosc => <module 'blosc' from '/usr/src/tmp/python3-module-blosc-buildroot/usr/lib/python3/site-packages/blosc/__init__.py'> [autodoc] getattr(_, 'compressor_list') [autodoc] => <function compressor_list at 0xf64ec778> [app] emitting event: 'autodoc-process-signature'('function', 'blosc.compressor_list', <function compressor_list at 0xf64ec778>, {'members': ['clib_i [app] emitting event: 'autodoc-process-docstring'('function', 'blosc.compressor_list', <function compressor_list at 0xf64ec778>, {'members': ['clib_i [autodoc] from blosc import detect_number_of_cores [autodoc] import blosc => <module 'blosc' from '/usr/src/tmp/python3-module-blosc-buildroot/usr/lib/python3/site-packages/blosc/__init__.py'> [autodoc] getattr(_, 'detect_number_of_cores') [autodoc] => <function detect_number_of_cores at 0xf64ec5c8> [app] emitting event: 'autodoc-process-signature'('function', 'blosc.detect_number_of_cores', <function detect_number_of_cores at 0xf64ec5c8>, {'memb [app] emitting event: 'autodoc-process-docstring'('function', 'blosc.detect_number_of_cores', <function detect_number_of_cores at 0xf64ec5c8>, {'memb [autodoc] from blosc import free_resources [autodoc] import blosc => <module 'blosc' from '/usr/src/tmp/python3-module-blosc-buildroot/usr/lib/python3/site-packages/blosc/__init__.py'> [autodoc] getattr(_, 'free_resources') [autodoc] => <function free_resources at 0xf64ec8e0> [app] emitting event: 'autodoc-process-signature'('function', 'blosc.free_resources', <function free_resources at 0xf64ec8e0>, {'members': ['clib_inf [app] emitting event: 'autodoc-process-docstring'('function', 'blosc.free_resources', <function free_resources at 0xf64ec8e0>, {'members': ['clib_inf [autodoc] from blosc import get_clib [autodoc] import blosc => <module 'blosc' from '/usr/src/tmp/python3-module-blosc-buildroot/usr/lib/python3/site-packages/blosc/__init__.py'> [autodoc] getattr(_, 'get_clib') [autodoc] => <function get_clib at 0xf64ec898> [app] emitting event: 'autodoc-process-signature'('function', 'blosc.get_clib', <function get_clib at 0xf64ec898>, {'members': ['clib_info', 'compres [app] emitting event: 'autodoc-process-docstring'('function', 'blosc.get_clib', <function get_clib at 0xf64ec898>, {'members': ['clib_info', 'compres [autodoc] from blosc import set_blocksize [autodoc] import blosc => <module 'blosc' from '/usr/src/tmp/python3-module-blosc-buildroot/usr/lib/python3/site-packages/blosc/__init__.py'> [autodoc] getattr(_, 'set_blocksize') [autodoc] => <function set_blocksize at 0xf64ec6e8> [app] emitting event: 'autodoc-process-signature'('function', 'blosc.set_blocksize', <function set_blocksize at 0xf64ec6e8>, {'members': ['clib_info' [app] emitting event: 'autodoc-process-docstring'('function', 'blosc.set_blocksize', <function set_blocksize at 0xf64ec6e8>, {'members': ['clib_info' [autodoc] from blosc import set_nthreads [autodoc] import blosc => <module 'blosc' from '/usr/src/tmp/python3-module-blosc-buildroot/usr/lib/python3/site-packages/blosc/__init__.py'> [autodoc] getattr(_, 'set_nthreads') [autodoc] => <function set_nthreads at 0xf64ec6a0> [app] emitting event: 'autodoc-process-signature'('function', 'blosc.set_nthreads', <function set_nthreads at 0xf64ec6a0>, {'members': ['clib_info', [app] emitting event: 'autodoc-process-docstring'('function', 'blosc.set_nthreads', <function set_nthreads at 0xf64ec6a0>, {'members': ['clib_info', [autodoc] from blosc import set_releasegil [autodoc] import blosc => <module 'blosc' from '/usr/src/tmp/python3-module-blosc-buildroot/usr/lib/python3/site-packages/blosc/__init__.py'> [autodoc] getattr(_, 'set_releasegil') [autodoc] => <function set_releasegil at 0xf64ec730> [app] emitting event: 'autodoc-process-signature'('function', 'blosc.set_releasegil', <function set_releasegil at 0xf64ec730>, {'members': ['clib_inf [app] emitting event: 'autodoc-process-docstring'('function', 'blosc.set_releasegil', <function set_releasegil at 0xf64ec730>, {'members': ['clib_inf [autodoc] from blosc import print_versions [autodoc] import blosc => <module 'blosc' from '/usr/src/tmp/python3-module-blosc-buildroot/usr/lib/python3/site-packages/blosc/__init__.py'> [autodoc] getattr(_, 'print_versions') [autodoc] => <function print_versions at 0xf64ecd18> [app] emitting event: 'autodoc-before-process-signature'(<function print_versions at 0xf64ecd18>, False) [app] emitting event: 'autodoc-process-signature'('function', 'blosc.print_versions', <function print_versions at 0xf64ecd18>, {'members': ['clib_inf [app] emitting event: 'autodoc-process-docstring'('function', 'blosc.print_versions', <function print_versions at 0xf64ecd18>, {'members': ['clib_inf [autodoc] output: .. py:module:: blosc .. py:function:: clib_info(cname) :module: blosc Return info for compression libraries in C library. :Parameters: **cname** : str The compressor name. :Returns: **out** : tuple The associated library name and version. .. py:function:: compressor_list() :module: blosc Returns a list of compressors available in C library. :Parameters: **None** :Returns: **out** : list The list of names. .. py:function:: detect_number_of_cores() :module: blosc Detect the number of cores in this system. :Returns: **out** : int The number of cores in this system. .. py:function:: free_resources() :module: blosc Free possible memory temporaries and thread resources. :Returns: **out** : None .. rubric:: Notes Blosc maintain a pool of threads waiting for work as well as some temporary space. You can use this function to release these resources when you are not going to use Blosc for a long while. .. rubric:: Examples >>> blosc.free_resources() >>> .. py:function:: get_clib(bytesobj) :module: blosc Return the name of the compression library for Blosc `bytesobj` buffer. :Parameters: **bytesobj** : str / bytes The compressed buffer. :Returns: **out** : str The name of the compression library. .. py:function:: set_blocksize(blocksize) :module: blosc Force the use of a specific blocksize. If 0, an automatic blocksize will be used (the default). .. rubric:: Notes This is a low-level function and is recommened for expert users only. .. rubric:: Examples >>> blosc.set_blocksize(512) .. py:function:: set_nthreads(nthreads) :module: blosc Set the number of threads to be used during Blosc operation. :Parameters: **nthreads** : int The number of threads to be used during Blosc operation. :Returns: **out** : int The previous number of used threads. :Raises: **ValueError** If nthreads is larger that the maximum number of threads blosc can use. .. rubric:: Notes The number of threads for Blosc is the maximum number of cores detected on your machine (via `detect_number_of_cores`). In some cases Blosc gets better results if you set the number of threads to a value slightly below than your number of cores. .. rubric:: Examples Set the number of threads to 2 and then to 1: >>> oldn = blosc.set_nthreads(2) >>> blosc.set_nthreads(1) 2 .. py:function:: set_releasegil( gitstate ) :module: blosc Sets a boolean on whether to release the Python global inter-lock (GIL) during c-blosc compress and decompress operations or not. This defaults to False. .. rubric:: Notes Designed to be used with larger chunk sizes and a ThreadPool. There is a small performance penalty with releasing the GIL that will more harshly penalize small block sizes. .. rubric:: Examples >>> oldReleaseState = blosc.set_releasegil(True) .. py:function:: print_versions() :module: blosc Print all the versions of software that python-blosc relies on. [app] emitting event: 'object-description-transform'('py', 'function', <desc_content: <paragraph...><field_list...>>) [app] emitting event: 'object-description-transform'('py', 'function', <desc_content: <paragraph...><field_list...>>) [app] emitting event: 'object-description-transform'('py', 'function', <desc_content: <paragraph...><field_list...>>) [app] emitting event: 'object-description-transform'('py', 'function', <desc_content: <paragraph...><field_list...><rubric...><paragraph...><r ...>) [app] emitting event: 'object-description-transform'('py', 'function', <desc_content: <paragraph...><field_list...>>) [app] emitting event: 'object-description-transform'('py', 'function', <desc_content: <paragraph...><rubric...><paragraph...><rubric...><docte ...>) [app] emitting event: 'object-description-transform'('py', 'function', <desc_content: <paragraph...><field_list...><rubric...><paragraph...><r ...>) [app] emitting event: 'object-description-transform'('py', 'function', <desc_content: <paragraph...><rubric...><paragraph...><rubric...><docte ...>) [app] emitting event: 'object-description-transform'('py', 'function', <desc_content: <paragraph...>>) [i18n] PATCH: 'docutils.nodes.field_name' to have source and line: <field_name>Parameters</field_name> [i18n] PATCH: 'docutils.nodes.field_name' to have source and line: <field_name>Returns</field_name> [i18n] PATCH: 'docutils.nodes.field_name' to have source and line: <field_name>Raises</field_name> [i18n] PATCH: 'docutils.nodes.field_name' to have source and line: <field_name>Parameters</field_name> [i18n] PATCH: 'docutils.nodes.field_name' to have source and line: <field_name>Returns</field_name> [i18n] PATCH: 'docutils.nodes.field_name' to have source and line: <field_name>Raises</field_name> [i18n] PATCH: 'docutils.nodes.field_name' to have source and line: <field_name>Parameters</field_name> [i18n] PATCH: 'docutils.nodes.field_name' to have source and line: <field_name>Returns</field_name> [i18n] PATCH: 'docutils.nodes.field_name' to have source and line: <field_name>Raises</field_name> [i18n] PATCH: 'docutils.nodes.field_name' to have source and line: <field_name>Parameters</field_name> [i18n] PATCH: 'docutils.nodes.field_name' to have source and line: <field_name>Returns</field_name> [i18n] PATCH: 'docutils.nodes.field_name' to have source and line: <field_name>Raises</field_name> [i18n] PATCH: 'docutils.nodes.field_name' to have source and line: <field_name>Parameters</field_name> [i18n] PATCH: 'docutils.nodes.field_name' to have source and line: <field_name>Returns</field_name> [i18n] PATCH: 'docutils.nodes.field_name' to have source and line: <field_name>Raises</field_name> [i18n] PATCH: 'docutils.nodes.term' to have rawsource: <term>If array.itemsize * array.size is larger than the maximum allowed</term> [i18n] PATCH: 'docutils.nodes.field_name' to have source and line: <field_name>Parameters</field_name> [i18n] PATCH: 'docutils.nodes.field_name' to have source and line: <field_name>Returns</field_name> [i18n] PATCH: 'docutils.nodes.field_name' to have source and line: <field_name>Raises</field_name> [i18n] PATCH: 'docutils.nodes.field_name' to have source and line: <field_name>Parameters</field_name> [i18n] PATCH: 'docutils.nodes.field_name' to have source and line: <field_name>Returns</field_name> [i18n] PATCH: 'docutils.nodes.field_name' to have source and line: <field_name>Parameters</field_name> [i18n] PATCH: 'docutils.nodes.field_name' to have source and line: <field_name>Returns</field_name> [i18n] PATCH: 'docutils.nodes.field_name' to have source and line: <field_name>Returns</field_name> [i18n] PATCH: 'docutils.nodes.field_name' to have source and line: <field_name>Returns</field_name> [i18n] PATCH: 'docutils.nodes.field_name' to have source and line: <field_name>Parameters</field_name> [i18n] PATCH: 'docutils.nodes.field_name' to have source and line: <field_name>Returns</field_name> [i18n] PATCH: 'docutils.nodes.field_name' to have source and line: <field_name>Parameters</field_name> [i18n] PATCH: 'docutils.nodes.field_name' to have source and line: <field_name>Returns</field_name> [i18n] PATCH: 'docutils.nodes.field_name' to have source and line: <field_name>Raises</field_name> [app] emitting event: 'doctree-read'(<document: <section "library reference"...>>,) /usr/src/tmp/python3-module-blosc-buildroot/usr/lib/python3/site-packages/blosc/__init__.py:docstring of blosc.pack_array:47: (WARNING/2) Definition list ends without a blank line; unexpected unindent. [filtered system message] reading sources... [100%] tutorial [app] emitting event: 'env-purge-doc'(<sphinx.environment.BuildEnvironment object at 0xf5a67508>, 'tutorial') [app] emitting event: 'source-read'('tutorial', ['---------\nTutorials\n---------\n\nUsing `python-blosc` (or just `blosc`, because we [app] emitting event: 'doctree-read'(<document: <section "tutorials"...>>,) [app] emitting event: 'env-updated'(<sphinx.environment.BuildEnvironment object at 0xf5a67508>,) /usr/src/tmp/python3-module-blosc-buildroot/usr/lib/python3/site-packages/blosc/__init__.py:docstring of blosc.pack_array:47: WARNING: Definition list ends without a blank line; unexpected unindent. /usr/src/RPM/BUILD/python3-module-blosc-1.5.1/doc/reference.rst:2: WARNING: duplicate object description of blosc, other instance in reference, use :noindex: for one of them /usr/src/tmp/python3-module-blosc-buildroot/usr/lib/python3/site-packages/blosc/__init__.py:docstring of blosc.print_versions:17: WARNING: Duplicate ID: "module-blosc". looking for now-outdated files... [app] emitting event: 'env-get-updated'(<sphinx.environment.BuildEnvironment object at 0xf5a67508>,) none found pickling environment... done checking consistency... [app] emitting event: 'env-check-consistency'(<sphinx.environment.BuildEnvironment object at 0xf5a67508>,) done docnames to write: index, install, intro, reference, tutorial preparing documents... done writing output... [ 20%] index [app] emitting event: 'doctree-resolved'(<document: <comment...><section "welcome to python-blosc's document ...>, 'index') SphinxTranslator.dispatch_visit calling visit_document for <document source="<partial node>"><title>Welcome to python-blosc’s documentation!</title></document> SphinxTranslator.dispatch_visit calling visit_title for <title>Welcome to python-blosc’s documentation!</title> SphinxTranslator.dispatch_visit calling visit_Text for Welcome to python-blosc’s documentation! SphinxTranslator.dispatch_departure calling depart_Text for Welcome to python-blosc’s documentation! SphinxTranslator.dispatch_departure calling depart_title for <title>Welcome to python-blosc’s documentation!</title> SphinxTranslator.dispatch_departure calling depart_document for <document source="<partial node>"><title>Welcome to python-blosc’s documentation!</title></document> SphinxTranslator.dispatch_visit calling visit_document for <document source="/usr/src/RPM/BUILD/python3-module-blosc-1.5.1/doc/index.rst"><comment xml:space="preserve">python-blosc documentation master file, created by sphinx-quickstart on Sun May 5 19:38:24 2013. You can adapt this file completely to your liking, but it should at least contain the root `toctree` directive.</comment><section ids="welcome-to-python-blosc-s-documentation" names="welcome\ to\ python-blosc's\ documentation!"><title>Welcome to python-blosc’s documentation!</title><paragraph>Contents:</paragraph><compound classes="toctree-wrapper"><compact_paragraph toctree="True"><bullet_list><list_item classes="toctree-l1"><compact_paragraph classes="toctree-l1"><reference anchorname="" internal="True" refuri="intro/">Introduction</reference></compact_paragraph><bullet_list><list_item classes="toctree-l2"><compact_paragraph classes="toctree-l2"><reference anchorname="#what-is-python-blosc" internal="True" refuri="intro/#what-is-python-blosc">What is python-blosc?</reference></compact_paragraph></list_item><list_item classes="toctree-l2"><compact_paragraph classes="toctree-l2"><reference anchorname="#mailing-list" internal="True" refuri="intro/#mailing-list">Mailing list</reference></compact_paragraph></list_item></bullet_list></list_item><list_item classes="toctree-l1"><compact_paragraph classes="toctree-l1"><reference anchorname="" internal="True" refuri="install/">Installation</reference></compact_paragraph><bullet_list><list_item classes="toctree-l2"><compact_paragraph classes="toctree-l2"><reference anchorname="#installing-from-pypi-repository" internal="True" refuri="install/#installing-from-pypi-repository">Installing from PyPI repository</reference></compact_paragraph></list_item><list_item classes="toctree-l2"><compact_paragraph classes="toctree-l2"><reference anchorname="#building-manually" internal="True" refuri="install/#building-manually">Building manually</reference></compact_paragraph></list_item><list_item classes="toctree-l2"><compact_paragraph classes="toctree-l2"><reference anchorname="#testing" internal="True" refuri="install/#testing">Testing</reference></compact_paragraph></list_item><list_item classes="toctree-l2"><compact_paragraph classes="toctree-l2"><reference anchorname="#installing" internal="True" refuri="install/#installing">Installing</reference></compact_paragraph></list_item></bullet_list></list_item><list_item classes="toctree-l1"><compact_paragraph classes="toctree-l1"><reference anchorname="" internal="True" refuri="tutorial/">Tutorials</reference></compact_paragraph><bullet_list><list_item classes="toctree-l2"><compact_paragraph classes="toctree-l2"><reference anchorname="#compressing-and-decompressing-with-blosc" internal="True" refuri="tutorial/#compressing-and-decompressing-with-blosc">Compressing and decompressing with <literal>blosc</literal></reference></compact_paragraph></list_item><list_item classes="toctree-l2"><compact_paragraph classes="toctree-l2"><reference anchorname="#using-different-filters" internal="True" refuri="tutorial/#using-different-filters">Using different filters</reference></compact_paragraph></list_item><list_item classes="toctree-l2"><compact_paragraph classes="toctree-l2"><reference anchorname="#supporting-the-buffer-interface" internal="True" refuri="tutorial/#supporting-the-buffer-interface">Supporting the buffer interface</reference></compact_paragraph></list_item><list_item classes="toctree-l2"><compact_paragraph classes="toctree-l2"><reference anchorname="#packaging-numpy-arrays" internal="True" refuri="tutorial/#packaging-numpy-arrays">Packaging NumPy arrays</reference></compact_paragraph></list_item><list_item classes="toctree-l2"><compact_paragraph classes="toctree-l2"><reference anchorname="#compressing-from-a-data-pointer" internal="True" refuri="tutorial/#compressing-from-a-data-pointer">Compressing from a data pointer</reference></compact_paragraph></list_item><list_item classes="toctree-l2"><compact_paragraph classes="toctree-l2"><reference anchorname="#fine-tuning-compression-parameters" internal="True" refuri="tutorial/#fine-tuning-compression-parameters">Fine-tuning compression parameters</reference></compact_paragraph></list_item><list_item classes="toctree-l2"><compact_paragraph classes="toctree-l2"><reference anchorname="#links-to-external-discussions-on-blosc-optimization" internal="True" refuri="tutorial/#links-to-external-discussions-on-blosc-optimization">Links to external discussions on <literal>blosc</literal> optimization</reference></compact_paragraph></list_item></bullet_list></list_item><list_item classes="toctree-l1"><compact_paragraph classes="toctree-l1"><reference anchorname="" internal="True" refuri="reference/">Library Reference</reference></compact_paragraph><bullet_list><list_item classes="toctree-l2"><compact_paragraph classes="toctree-l2"><reference anchorname="#first-level-variables" internal="True" refuri="reference/#first-level-variables">First level variables</reference></compact_paragraph></list_item><list_item classes="toctree-l2"><compact_paragraph classes="toctree-l2"><reference anchorname="#module-blosc" internal="True" refuri="reference/#module-blosc">Public functions</reference></compact_paragraph></list_item><list_item classes="toctree-l2"><compact_paragraph classes="toctree-l2"><reference anchorname="#module-blosc" internal="True" refuri="reference/#module-blosc">Utilities</reference></compact_paragraph></list_item></bullet_list></list_item></bullet_list></compact_paragraph></compound></section><section ids="indices-and-tables" names="indices\ and\ tables"><title>Indices and tables</title><bullet_list bullet="*"><list_item><paragraph><reference internal="True" refuri="genindex/"><inline classes="std std-ref">Index</inline></reference></paragraph></list_item><list_item><paragraph><reference internal="True" refuri="py-modindex/"><inline classes="std std-ref">Module Index</inline></reference></paragraph></list_item><list_item><paragraph><reference internal="True" refuri="search/"><inline classes="std std-ref">Search Page</inline></reference></paragraph></list_item></bullet_list></section></document> SphinxTranslator.dispatch_visit calling visit_comment for <comment xml:space="preserve">python-blosc documentation master file, created by sphinx-quickstart on Sun May 5 19:38:24 2013. You can adapt this file completely to your liking, but it should at least contain the root `toctree` directive.</comment> SphinxTranslator.dispatch_visit calling visit_section for <section ids="welcome-to-python-blosc-s-documentation" names="welcome\ to\ python-blosc's\ documentation!"><title>Welcome to python-blosc’s documentation!</title><paragraph>Contents:</paragraph><compound classes="toctree-wrapper"><compact_paragraph toctree="True"><bullet_list><list_item classes="toctree-l1"><compact_paragraph classes="toctree-l1"><reference anchorname="" internal="True" refuri="intro/">Introduction</reference></compact_paragraph><bullet_list><list_item classes="toctree-l2"><compact_paragraph classes="toctree-l2"><reference anchorname="#what-is-python-blosc" internal="True" refuri="intro/#what-is-python-blosc">What is python-blosc?</reference></compact_paragraph></list_item><list_item classes="toctree-l2"><compact_paragraph classes="toctree-l2"><reference anchorname="#mailing-list" internal="True" refuri="intro/#mailing-list">Mailing list</reference></compact_paragraph></list_item></bullet_list></list_item><list_item classes="toctree-l1"><compact_paragraph classes="toctree-l1"><reference anchorname="" internal="True" refuri="install/">Installation</reference></compact_paragraph><bullet_list><list_item classes="toctree-l2"><compact_paragraph classes="toctree-l2"><reference anchorname="#installing-from-pypi-repository" internal="True" refuri="install/#installing-from-pypi-repository">Installing from PyPI repository</reference></compact_paragraph></list_item><list_item classes="toctree-l2"><compact_paragraph classes="toctree-l2"><reference anchorname="#building-manually" internal="True" refuri="install/#building-manually">Building manually</reference></compact_paragraph></list_item><list_item classes="toctree-l2"><compact_paragraph classes="toctree-l2"><reference anchorname="#testing" internal="True" refuri="install/#testing">Testing</reference></compact_paragraph></list_item><list_item classes="toctree-l2"><compact_paragraph classes="toctree-l2"><reference anchorname="#installing" internal="True" refuri="install/#installing">Installing</reference></compact_paragraph></list_item></bullet_list></list_item><list_item classes="toctree-l1"><compact_paragraph classes="toctree-l1"><reference anchorname="" internal="True" refuri="tutorial/">Tutorials</reference></compact_paragraph><bullet_list><list_item classes="toctree-l2"><compact_paragraph classes="toctree-l2"><reference anchorname="#compressing-and-decompressing-with-blosc" internal="True" refuri="tutorial/#compressing-and-decompressing-with-blosc">Compressing and decompressing with <literal>blosc</literal></reference></compact_paragraph></list_item><list_item classes="toctree-l2"><compact_paragraph classes="toctree-l2"><reference anchorname="#using-different-filters" internal="True" refuri="tutorial/#using-different-filters">Using different filters</reference></compact_paragraph></list_item><list_item classes="toctree-l2"><compact_paragraph classes="toctree-l2"><reference anchorname="#supporting-the-buffer-interface" internal="True" refuri="tutorial/#supporting-the-buffer-interface">Supporting the buffer interface</reference></compact_paragraph></list_item><list_item classes="toctree-l2"><compact_paragraph classes="toctree-l2"><reference anchorname="#packaging-numpy-arrays" internal="True" refuri="tutorial/#packaging-numpy-arrays">Packaging NumPy arrays</reference></compact_paragraph></list_item><list_item classes="toctree-l2"><compact_paragraph classes="toctree-l2"><reference anchorname="#compressing-from-a-data-pointer" internal="True" refuri="tutorial/#compressing-from-a-data-pointer">Compressing from a data pointer</reference></compact_paragraph></list_item><list_item classes="toctree-l2"><compact_paragraph classes="toctree-l2"><reference anchorname="#fine-tuning-compression-parameters" internal="True" refuri="tutorial/#fine-tuning-compression-parameters">Fine-tuning compression parameters</reference></compact_paragraph></list_item><list_item classes="toctree-l2"><compact_paragraph classes="toctree-l2"><reference anchorname="#links-to-external-discussions-on-blosc-optimization" internal="True" refuri="tutorial/#links-to-external-discussions-on-blosc-optimization">Links to external discussions on <literal>blosc</literal> optimization</reference></compact_paragraph></list_item></bullet_list></list_item><list_item classes="toctree-l1"><compact_paragraph classes="toctree-l1"><reference anchorname="" internal="True" refuri="reference/">Library Reference</reference></compact_paragraph><bullet_list><list_item classes="toctree-l2"><compact_paragraph classes="toctree-l2"><reference anchorname="#first-level-variables" internal="True" refuri="reference/#first-level-variables">First level variables</reference></compact_paragraph></list_item><list_item classes="toctree-l2"><compact_paragraph classes="toctree-l2"><reference anchorname="#module-blosc" internal="True" refuri="reference/#module-blosc">Public functions</reference></compact_paragraph></list_item><list_item classes="toctree-l2"><compact_paragraph classes="toctree-l2"><reference anchorname="#module-blosc" internal="True" refuri="reference/#module-blosc">Utilities</reference></compact_paragraph></list_item></bullet_list></list_item></bullet_list></compact_paragraph></compound></section> SphinxTranslator.dispatch_visit calling visit_title for <title>Welcome to python-blosc’s documentation!</title> SphinxTranslator.dispatch_visit calling visit_Text for Welcome to python-blosc’s documentation! SphinxTranslator.dispatch_departure calling depart_Text for Welcome to python-blosc’s documentation! SphinxTranslator.dispatch_departure calling depart_title for <title>Welcome to python-blosc’s documentation!</title> SphinxTranslator.dispatch_visit calling visit_paragraph for <paragraph>Contents:</paragraph> SphinxTranslator.dispatch_visit calling visit_Text for Contents: SphinxTranslator.dispatch_departure calling depart_Text for Contents: SphinxTranslator.dispatch_departure calling depart_paragraph for <paragraph>Contents:</paragraph> SphinxTranslator.dispatch_visit calling visit_compound for <compound classes="toctree-wrapper"><compact_paragraph toctree="True"><bullet_list><list_item classes="toctree-l1"><compact_paragraph classes="toctree-l1"><reference anchorname="" internal="True" refuri="intro/">Introduction</reference></compact_paragraph><bullet_list><list_item classes="toctree-l2"><compact_paragraph classes="toctree-l2"><reference anchorname="#what-is-python-blosc" internal="True" refuri="intro/#what-is-python-blosc">What is python-blosc?</reference></compact_paragraph></list_item><list_item classes="toctree-l2"><compact_paragraph classes="toctree-l2"><reference anchorname="#mailing-list" internal="True" refuri="intro/#mailing-list">Mailing list</reference></compact_paragraph></list_item></bullet_list></list_item><list_item classes="toctree-l1"><compact_paragraph classes="toctree-l1"><reference anchorname="" internal="True" refuri="install/">Installation</reference></compact_paragraph><bullet_list><list_item classes="toctree-l2"><compact_paragraph classes="toctree-l2"><reference anchorname="#installing-from-pypi-repository" internal="True" refuri="install/#installing-from-pypi-repository">Installing from PyPI repository</reference></compact_paragraph></list_item><list_item classes="toctree-l2"><compact_paragraph classes="toctree-l2"><reference anchorname="#building-manually" internal="True" refuri="install/#building-manually">Building manually</reference></compact_paragraph></list_item><list_item classes="toctree-l2"><compact_paragraph classes="toctree-l2"><reference anchorname="#testing" internal="True" refuri="install/#testing">Testing</reference></compact_paragraph></list_item><list_item classes="toctree-l2"><compact_paragraph classes="toctree-l2"><reference anchorname="#installing" internal="True" refuri="install/#installing">Installing</reference></compact_paragraph></list_item></bullet_list></list_item><list_item classes="toctree-l1"><compact_paragraph classes="toctree-l1"><reference anchorname="" internal="True" refuri="tutorial/">Tutorials</reference></compact_paragraph><bullet_list><list_item classes="toctree-l2"><compact_paragraph classes="toctree-l2"><reference anchorname="#compressing-and-decompressing-with-blosc" internal="True" refuri="tutorial/#compressing-and-decompressing-with-blosc">Compressing and decompressing with <literal>blosc</literal></reference></compact_paragraph></list_item><list_item classes="toctree-l2"><compact_paragraph classes="toctree-l2"><reference anchorname="#using-different-filters" internal="True" refuri="tutorial/#using-different-filters">Using different filters</reference></compact_paragraph></list_item><list_item classes="toctree-l2"><compact_paragraph classes="toctree-l2"><reference anchorname="#supporting-the-buffer-interface" internal="True" refuri="tutorial/#supporting-the-buffer-interface">Supporting the buffer interface</reference></compact_paragraph></list_item><list_item classes="toctree-l2"><compact_paragraph classes="toctree-l2"><reference anchorname="#packaging-numpy-arrays" internal="True" refuri="tutorial/#packaging-numpy-arrays">Packaging NumPy arrays</reference></compact_paragraph></list_item><list_item classes="toctree-l2"><compact_paragraph classes="toctree-l2"><reference anchorname="#compressing-from-a-data-pointer" internal="True" refuri="tutorial/#compressing-from-a-data-pointer">Compressing from a data pointer</reference></compact_paragraph></list_item><list_item classes="toctree-l2"><compact_paragraph classes="toctree-l2"><reference anchorname="#fine-tuning-compression-parameters" internal="True" refuri="tutorial/#fine-tuning-compression-parameters">Fine-tuning compression parameters</reference></compact_paragraph></list_item><list_item classes="toctree-l2"><compact_paragraph classes="toctree-l2"><reference anchorname="#links-to-external-discussions-on-blosc-optimization" internal="True" refuri="tutorial/#links-to-external-discussions-on-blosc-optimization">Links to external discussions on <literal>blosc</literal> optimization</reference></compact_paragraph></list_item></bullet_list></list_item><list_item classes="toctree-l1"><compact_paragraph classes="toctree-l1"><reference anchorname="" internal="True" refuri="reference/">Library Reference</reference></compact_paragraph><bullet_list><list_item classes="toctree-l2"><compact_paragraph classes="toctree-l2"><reference anchorname="#first-level-variables" internal="True" refuri="reference/#first-level-variables">First level variables</reference></compact_paragraph></list_item><list_item classes="toctree-l2"><compact_paragraph classes="toctree-l2"><reference anchorname="#module-blosc" internal="True" refuri="reference/#module-blosc">Public functions</reference></compact_paragraph></list_item><list_item classes="toctree-l2"><compact_paragraph classes="toctree-l2"><reference anchorname="#module-blosc" internal="True" refuri="reference/#module-blosc">Utilities</reference></compact_paragraph></list_item></bullet_list></list_item></bullet_list></compact_paragraph></compound> SphinxTranslator.dispatch_visit calling visit_compact_paragraph for <compact_paragraph toctree="True"><bullet_list><list_item classes="toctree-l1"><compact_paragraph classes="toctree-l1"><reference anchorname="" internal="True" refuri="intro/">Introduction</reference></compact_paragraph><bullet_list><list_item classes="toctree-l2"><compact_paragraph classes="toctree-l2"><reference anchorname="#what-is-python-blosc" internal="True" refuri="intro/#what-is-python-blosc">What is python-blosc?</reference></compact_paragraph></list_item><list_item classes="toctree-l2"><compact_paragraph classes="toctree-l2"><reference anchorname="#mailing-list" internal="True" refuri="intro/#mailing-list">Mailing list</reference></compact_paragraph></list_item></bullet_list></list_item><list_item classes="toctree-l1"><compact_paragraph classes="toctree-l1"><reference anchorname="" internal="True" refuri="install/">Installation</reference></compact_paragraph><bullet_list><list_item classes="toctree-l2"><compact_paragraph classes="toctree-l2"><reference anchorname="#installing-from-pypi-repository" internal="True" refuri="install/#installing-from-pypi-repository">Installing from PyPI repository</reference></compact_paragraph></list_item><list_item classes="toctree-l2"><compact_paragraph classes="toctree-l2"><reference anchorname="#building-manually" internal="True" refuri="install/#building-manually">Building manually</reference></compact_paragraph></list_item><list_item classes="toctree-l2"><compact_paragraph classes="toctree-l2"><reference anchorname="#testing" internal="True" refuri="install/#testing">Testing</reference></compact_paragraph></list_item><list_item classes="toctree-l2"><compact_paragraph classes="toctree-l2"><reference anchorname="#installing" internal="True" refuri="install/#installing">Installing</reference></compact_paragraph></list_item></bullet_list></list_item><list_item classes="toctree-l1"><compact_paragraph classes="toctree-l1"><reference anchorname="" internal="True" refuri="tutorial/">Tutorials</reference></compact_paragraph><bullet_list><list_item classes="toctree-l2"><compact_paragraph classes="toctree-l2"><reference anchorname="#compressing-and-decompressing-with-blosc" internal="True" refuri="tutorial/#compressing-and-decompressing-with-blosc">Compressing and decompressing with <literal>blosc</literal></reference></compact_paragraph></list_item><list_item classes="toctree-l2"><compact_paragraph classes="toctree-l2"><reference anchorname="#using-different-filters" internal="True" refuri="tutorial/#using-different-filters">Using different filters</reference></compact_paragraph></list_item><list_item classes="toctree-l2"><compact_paragraph classes="toctree-l2"><reference anchorname="#supporting-the-buffer-interface" internal="True" refuri="tutorial/#supporting-the-buffer-interface">Supporting the buffer interface</reference></compact_paragraph></list_item><list_item classes="toctree-l2"><compact_paragraph classes="toctree-l2"><reference anchorname="#packaging-numpy-arrays" internal="True" refuri="tutorial/#packaging-numpy-arrays">Packaging NumPy arrays</reference></compact_paragraph></list_item><list_item classes="toctree-l2"><compact_paragraph classes="toctree-l2"><reference anchorname="#compressing-from-a-data-pointer" internal="True" refuri="tutorial/#compressing-from-a-data-pointer">Compressing from a data pointer</reference></compact_paragraph></list_item><list_item classes="toctree-l2"><compact_paragraph classes="toctree-l2"><reference anchorname="#fine-tuning-compression-parameters" internal="True" refuri="tutorial/#fine-tuning-compression-parameters">Fine-tuning compression parameters</reference></compact_paragraph></list_item><list_item classes="toctree-l2"><compact_paragraph classes="toctree-l2"><reference anchorname="#links-to-external-discussions-on-blosc-optimization" internal="True" refuri="tutorial/#links-to-external-discussions-on-blosc-optimization">Links to external discussions on <literal>blosc</literal> optimization</reference></compact_paragraph></list_item></bullet_list></list_item><list_item classes="toctree-l1"><compact_paragraph classes="toctree-l1"><reference anchorname="" internal="True" refuri="reference/">Library Reference</reference></compact_paragraph><bullet_list><list_item classes="toctree-l2"><compact_paragraph classes="toctree-l2"><reference anchorname="#first-level-variables" internal="True" refuri="reference/#first-level-variables">First level variables</reference></compact_paragraph></list_item><list_item classes="toctree-l2"><compact_paragraph classes="toctree-l2"><reference anchorname="#module-blosc" internal="True" refuri="reference/#module-blosc">Public functions</reference></compact_paragraph></list_item><list_item classes="toctree-l2"><compact_paragraph classes="toctree-l2"><reference anchorname="#module-blosc" internal="True" refuri="reference/#module-blosc">Utilities</reference></compact_paragraph></list_item></bullet_list></list_item></bullet_list></compact_paragraph> SphinxTranslator.dispatch_visit calling visit_bullet_list for <bullet_list><list_item classes="toctree-l1"><compact_paragraph classes="toctree-l1"><reference anchorname="" internal="True" refuri="intro/">Introduction</reference></compact_paragraph><bullet_list><list_item classes="toctree-l2"><compact_paragraph classes="toctree-l2"><reference anchorname="#what-is-python-blosc" internal="True" refuri="intro/#what-is-python-blosc">What is python-blosc?</reference></compact_paragraph></list_item><list_item classes="toctree-l2"><compact_paragraph classes="toctree-l2"><reference anchorname="#mailing-list" internal="True" refuri="intro/#mailing-list">Mailing list</reference></compact_paragraph></list_item></bullet_list></list_item><list_item classes="toctree-l1"><compact_paragraph classes="toctree-l1"><reference anchorname="" internal="True" refuri="install/">Installation</reference></compact_paragraph><bullet_list><list_item classes="toctree-l2"><compact_paragraph classes="toctree-l2"><reference anchorname="#installing-from-pypi-repository" internal="True" refuri="install/#installing-from-pypi-repository">Installing from PyPI repository</reference></compact_paragraph></list_item><list_item classes="toctree-l2"><compact_paragraph classes="toctree-l2"><reference anchorname="#building-manually" internal="True" refuri="install/#building-manually">Building manually</reference></compact_paragraph></list_item><list_item classes="toctree-l2"><compact_paragraph classes="toctree-l2"><reference anchorname="#testing" internal="True" refuri="install/#testing">Testing</reference></compact_paragraph></list_item><list_item classes="toctree-l2"><compact_paragraph classes="toctree-l2"><reference anchorname="#installing" internal="True" refuri="install/#installing">Installing</reference></compact_paragraph></list_item></bullet_list></list_item><list_item classes="toctree-l1"><compact_paragraph classes="toctree-l1"><reference anchorname="" internal="True" refuri="tutorial/">Tutorials</reference></compact_paragraph><bullet_list><list_item classes="toctree-l2"><compact_paragraph classes="toctree-l2"><reference anchorname="#compressing-and-decompressing-with-blosc" internal="True" refuri="tutorial/#compressing-and-decompressing-with-blosc">Compressing and decompressing with <literal>blosc</literal></reference></compact_paragraph></list_item><list_item classes="toctree-l2"><compact_paragraph classes="toctree-l2"><reference anchorname="#using-different-filters" internal="True" refuri="tutorial/#using-different-filters">Using different filters</reference></compact_paragraph></list_item><list_item classes="toctree-l2"><compact_paragraph classes="toctree-l2"><reference anchorname="#supporting-the-buffer-interface" internal="True" refuri="tutorial/#supporting-the-buffer-interface">Supporting the buffer interface</reference></compact_paragraph></list_item><list_item classes="toctree-l2"><compact_paragraph classes="toctree-l2"><reference anchorname="#packaging-numpy-arrays" internal="True" refuri="tutorial/#packaging-numpy-arrays">Packaging NumPy arrays</reference></compact_paragraph></list_item><list_item classes="toctree-l2"><compact_paragraph classes="toctree-l2"><reference anchorname="#compressing-from-a-data-pointer" internal="True" refuri="tutorial/#compressing-from-a-data-pointer">Compressing from a data pointer</reference></compact_paragraph></list_item><list_item classes="toctree-l2"><compact_paragraph classes="toctree-l2"><reference anchorname="#fine-tuning-compression-parameters" internal="True" refuri="tutorial/#fine-tuning-compression-parameters">Fine-tuning compression parameters</reference></compact_paragraph></list_item><list_item classes="toctree-l2"><compact_paragraph classes="toctree-l2"><reference anchorname="#links-to-external-discussions-on-blosc-optimization" internal="True" refuri="tutorial/#links-to-external-discussions-on-blosc-optimization">Links to external discussions on <literal>blosc</literal> optimization</reference></compact_paragraph></list_item></bullet_list></list_item><list_item classes="toctree-l1"><compact_paragraph classes="toctree-l1"><reference anchorname="" internal="True" refuri="reference/">Library Reference</reference></compact_paragraph><bullet_list><list_item classes="toctree-l2"><compact_paragraph classes="toctree-l2"><reference anchorname="#first-level-variables" internal="True" refuri="reference/#first-level-variables">First level variables</reference></compact_paragraph></list_item><list_item classes="toctree-l2"><compact_paragraph classes="toctree-l2"><reference anchorname="#module-blosc" internal="True" refuri="reference/#module-blosc">Public functions</reference></compact_paragraph></list_item><list_item classes="toctree-l2"><compact_paragraph classes="toctree-l2"><reference anchorname="#module-blosc" internal="True" refuri="reference/#module-blosc">Utilities</reference></compact_paragraph></list_item></bullet_list></list_item></bullet_list> SphinxTranslator.dispatch_visit calling visit_list_item for <list_item classes="toctree-l1"><compact_paragraph classes="toctree-l1"><reference anchorname="" internal="True" refuri="intro/">Introduction</reference></compact_paragraph><bullet_list><list_item classes="toctree-l2"><compact_paragraph classes="toctree-l2"><reference anchorname="#what-is-python-blosc" internal="True" refuri="intro/#what-is-python-blosc">What is python-blosc?</reference></compact_paragraph></list_item><list_item classes="toctree-l2"><compact_paragraph classes="toctree-l2"><reference anchorname="#mailing-list" internal="True" refuri="intro/#mailing-list">Mailing list</reference></compact_paragraph></list_item></bullet_list></list_item> SphinxTranslator.dispatch_visit calling visit_compact_paragraph for <compact_paragraph classes="toctree-l1"><reference anchorname="" internal="True" refuri="intro/">Introduction</reference></compact_paragraph> SphinxTranslator.dispatch_visit calling visit_reference for <reference anchorname="" internal="True" refuri="intro/">Introduction</reference> SphinxTranslator.dispatch_visit calling visit_Text for Introduction SphinxTranslator.dispatch_departure calling depart_Text for Introduction SphinxTranslator.dispatch_departure calling depart_reference for <reference anchorname="" internal="True" refuri="intro/">Introduction</reference> SphinxTranslator.dispatch_departure calling depart_compact_paragraph for <compact_paragraph classes="toctree-l1"><reference anchorname="" internal="True" refuri="intro/">Introduction</reference></compact_paragraph> SphinxTranslator.dispatch_visit calling visit_bullet_list for <bullet_list><list_item classes="toctree-l2"><compact_paragraph classes="toctree-l2"><reference anchorname="#what-is-python-blosc" internal="True" refuri="intro/#what-is-python-blosc">What is python-blosc?</reference></compact_paragraph></list_item><list_item classes="toctree-l2"><compact_paragraph classes="toctree-l2"><reference anchorname="#mailing-list" internal="True" refuri="intro/#mailing-list">Mailing list</reference></compact_paragraph></list_item></bullet_list> SphinxTranslator.dispatch_visit calling visit_list_item for <list_item classes="toctree-l2"><compact_paragraph classes="toctree-l2"><reference anchorname="#what-is-python-blosc" internal="True" refuri="intro/#what-is-python-blosc">What is python-blosc?</reference></compact_paragraph></list_item> SphinxTranslator.dispatch_visit calling visit_compact_paragraph for <compact_paragraph classes="toctree-l2"><reference anchorname="#what-is-python-blosc" internal="True" refuri="intro/#what-is-python-blosc">What is python-blosc?</reference></compact_paragraph> SphinxTranslator.dispatch_visit calling visit_reference for <reference anchorname="#what-is-python-blosc" internal="True" refuri="intro/#what-is-python-blosc">What is python-blosc?</reference> SphinxTranslator.dispatch_visit calling visit_Text for What is python-blosc? SphinxTranslator.dispatch_departure calling depart_Text for What is python-blosc? SphinxTranslator.dispatch_departure calling depart_reference for <reference anchorname="#what-is-python-blosc" internal="True" refuri="intro/#what-is-python-blosc">What is python-blosc?</reference> SphinxTranslator.dispatch_departure calling depart_compact_paragraph for <compact_paragraph classes="toctree-l2"><reference anchorname="#what-is-python-blosc" internal="True" refuri="intro/#what-is-python-blosc">What is python-blosc?</reference></compact_paragraph> SphinxTranslator.dispatch_departure calling depart_list_item for <list_item classes="toctree-l2"><compact_paragraph classes="toctree-l2"><reference anchorname="#what-is-python-blosc" internal="True" refuri="intro/#what-is-python-blosc">What is python-blosc?</reference></compact_paragraph></list_item> SphinxTranslator.dispatch_visit calling visit_list_item for <list_item classes="toctree-l2"><compact_paragraph classes="toctree-l2"><reference anchorname="#mailing-list" internal="True" refuri="intro/#mailing-list">Mailing list</reference></compact_paragraph></list_item> SphinxTranslator.dispatch_visit calling visit_compact_paragraph for <compact_paragraph classes="toctree-l2"><reference anchorname="#mailing-list" internal="True" refuri="intro/#mailing-list">Mailing list</reference></compact_paragraph> SphinxTranslator.dispatch_visit calling visit_reference for <reference anchorname="#mailing-list" internal="True" refuri="intro/#mailing-list">Mailing list</reference> SphinxTranslator.dispatch_visit calling visit_Text for Mailing list SphinxTranslator.dispatch_departure calling depart_Text for Mailing list SphinxTranslator.dispatch_departure calling depart_reference for <reference anchorname="#mailing-list" internal="True" refuri="intro/#mailing-list">Mailing list</reference> SphinxTranslator.dispatch_departure calling depart_compact_paragraph for <compact_paragraph classes="toctree-l2"><reference anchorname="#mailing-list" internal="True" refuri="intro/#mailing-list">Mailing list</reference></compact_paragraph> SphinxTranslator.dispatch_departure calling depart_list_item for <list_item classes="toctree-l2"><compact_paragraph classes="toctree-l2"><reference anchorname="#mailing-list" internal="True" refuri="intro/#mailing-list">Mailing list</reference></compact_paragraph></list_item> SphinxTranslator.dispatch_departure calling depart_bullet_list for <bullet_list><list_item classes="toctree-l2"><compact_paragraph classes="toctree-l2"><reference anchorname="#what-is-python-blosc" internal="True" refuri="intro/#what-is-python-blosc">What is python-blosc?</reference></compact_paragraph></list_item><list_item classes="toctree-l2"><compact_paragraph classes="toctree-l2"><reference anchorname="#mailing-list" internal="True" refuri="intro/#mailing-list">Mailing list</reference></compact_paragraph></list_item></bullet_list> SphinxTranslator.dispatch_departure calling depart_list_item for <list_item classes="toctree-l1"><compact_paragraph classes="toctree-l1"><reference anchorname="" internal="True" refuri="intro/">Introduction</reference></compact_paragraph><bullet_list><list_item classes="toctree-l2"><compact_paragraph classes="toctree-l2"><reference anchorname="#what-is-python-blosc" internal="True" refuri="intro/#what-is-python-blosc">What is python-blosc?</reference></compact_paragraph></list_item><list_item classes="toctree-l2"><compact_paragraph classes="toctree-l2"><reference anchorname="#mailing-list" internal="True" refuri="intro/#mailing-list">Mailing list</reference></compact_paragraph></list_item></bullet_list></list_item> SphinxTranslator.dispatch_visit calling visit_list_item for <list_item classes="toctree-l1"><compact_paragraph classes="toctree-l1"><reference anchorname="" internal="True" refuri="install/">Installation</reference></compact_paragraph><bullet_list><list_item classes="toctree-l2"><compact_paragraph classes="toctree-l2"><reference anchorname="#installing-from-pypi-repository" internal="True" refuri="install/#installing-from-pypi-repository">Installing from PyPI repository</reference></compact_paragraph></list_item><list_item classes="toctree-l2"><compact_paragraph classes="toctree-l2"><reference anchorname="#building-manually" internal="True" refuri="install/#building-manually">Building manually</reference></compact_paragraph></list_item><list_item classes="toctree-l2"><compact_paragraph classes="toctree-l2"><reference anchorname="#testing" internal="True" refuri="install/#testing">Testing</reference></compact_paragraph></list_item><list_item classes="toctree-l2"><compact_paragraph classes="toctree-l2"><reference anchorname="#installing" internal="True" refuri="install/#installing">Installing</reference></compact_paragraph></list_item></bullet_list></list_item> SphinxTranslator.dispatch_visit calling visit_compact_paragraph for <compact_paragraph classes="toctree-l1"><reference anchorname="" internal="True" refuri="install/">Installation</reference></compact_paragraph> SphinxTranslator.dispatch_visit calling visit_reference for <reference anchorname="" internal="True" refuri="install/">Installation</reference> SphinxTranslator.dispatch_visit calling visit_Text for Installation SphinxTranslator.dispatch_departure calling depart_Text for Installation SphinxTranslator.dispatch_departure calling depart_reference for <reference anchorname="" internal="True" refuri="install/">Installation</reference> SphinxTranslator.dispatch_departure calling depart_compact_paragraph for <compact_paragraph classes="toctree-l1"><reference anchorname="" internal="True" refuri="install/">Installation</reference></compact_paragraph> SphinxTranslator.dispatch_visit calling visit_bullet_list for <bullet_list><list_item classes="toctree-l2"><compact_paragraph classes="toctree-l2"><reference anchorname="#installing-from-pypi-repository" internal="True" refuri="install/#installing-from-pypi-repository">Installing from PyPI repository</reference></compact_paragraph></list_item><list_item classes="toctree-l2"><compact_paragraph classes="toctree-l2"><reference anchorname="#building-manually" internal="True" refuri="install/#building-manually">Building manually</reference></compact_paragraph></list_item><list_item classes="toctree-l2"><compact_paragraph classes="toctree-l2"><reference anchorname="#testing" internal="True" refuri="install/#testing">Testing</reference></compact_paragraph></list_item><list_item classes="toctree-l2"><compact_paragraph classes="toctree-l2"><reference anchorname="#installing" internal="True" refuri="install/#installing">Installing</reference></compact_paragraph></list_item></bullet_list> SphinxTranslator.dispatch_visit calling visit_list_item for <list_item classes="toctree-l2"><compact_paragraph classes="toctree-l2"><reference anchorname="#installing-from-pypi-repository" internal="True" refuri="install/#installing-from-pypi-repository">Installing from PyPI repository</reference></compact_paragraph></list_item> SphinxTranslator.dispatch_visit calling visit_compact_paragraph for <compact_paragraph classes="toctree-l2"><reference anchorname="#installing-from-pypi-repository" internal="True" refuri="install/#installing-from-pypi-repository">Installing from PyPI repository</reference></compact_paragraph> SphinxTranslator.dispatch_visit calling visit_reference for <reference anchorname="#installing-from-pypi-repository" internal="True" refuri="install/#installing-from-pypi-repository">Installing from PyPI repository</reference> SphinxTranslator.dispatch_visit calling visit_Text for Installing from PyPI repository SphinxTranslator.dispatch_departure calling depart_Text for Installing from PyPI repository SphinxTranslator.dispatch_departure calling depart_reference for <reference anchorname="#installing-from-pypi-repository" internal="True" refuri="install/#installing-from-pypi-repository">Installing from PyPI repository</reference> SphinxTranslator.dispatch_departure calling depart_compact_paragraph for <compact_paragraph classes="toctree-l2"><reference anchorname="#installing-from-pypi-repository" internal="True" refuri="install/#installing-from-pypi-repository">Installing from PyPI repository</reference></compact_paragraph> SphinxTranslator.dispatch_departure calling depart_list_item for <list_item classes="toctree-l2"><compact_paragraph classes="toctree-l2"><reference anchorname="#installing-from-pypi-repository" internal="True" refuri="install/#installing-from-pypi-repository">Installing from PyPI repository</reference></compact_paragraph></list_item> SphinxTranslator.dispatch_visit calling visit_list_item for <list_item classes="toctree-l2"><compact_paragraph classes="toctree-l2"><reference anchorname="#building-manually" internal="True" refuri="install/#building-manually">Building manually</reference></compact_paragraph></list_item> SphinxTranslator.dispatch_visit calling visit_compact_paragraph for <compact_paragraph classes="toctree-l2"><reference anchorname="#building-manually" internal="True" refuri="install/#building-manually">Building manually</reference></compact_paragraph> SphinxTranslator.dispatch_visit calling visit_reference for <reference anchorname="#building-manually" internal="True" refuri="install/#building-manually">Building manually</reference> SphinxTranslator.dispatch_visit calling visit_Text for Building manually SphinxTranslator.dispatch_departure calling depart_Text for Building manually SphinxTranslator.dispatch_departure calling depart_reference for <reference anchorname="#building-manually" internal="True" refuri="install/#building-manually">Building manually</reference> SphinxTranslator.dispatch_departure calling depart_compact_paragraph for <compact_paragraph classes="toctree-l2"><reference anchorname="#building-manually" internal="True" refuri="install/#building-manually">Building manually</reference></compact_paragraph> SphinxTranslator.dispatch_departure calling depart_list_item for <list_item classes="toctree-l2"><compact_paragraph classes="toctree-l2"><reference anchorname="#building-manually" internal="True" refuri="install/#building-manually">Building manually</reference></compact_paragraph></list_item> SphinxTranslator.dispatch_visit calling visit_list_item for <list_item classes="toctree-l2"><compact_paragraph classes="toctree-l2"><reference anchorname="#testing" internal="True" refuri="install/#testing">Testing</reference></compact_paragraph></list_item> SphinxTranslator.dispatch_visit calling visit_compact_paragraph for <compact_paragraph classes="toctree-l2"><reference anchorname="#testing" internal="True" refuri="install/#testing">Testing</reference></compact_paragraph> SphinxTranslator.dispatch_visit calling visit_reference for <reference anchorname="#testing" internal="True" refuri="install/#testing">Testing</reference> SphinxTranslator.dispatch_visit calling visit_Text for Testing SphinxTranslator.dispatch_departure calling depart_Text for Testing SphinxTranslator.dispatch_departure calling depart_reference for <reference anchorname="#testing" internal="True" refuri="install/#testing">Testing</reference> SphinxTranslator.dispatch_departure calling depart_compact_paragraph for <compact_paragraph classes="toctree-l2"><reference anchorname="#testing" internal="True" refuri="install/#testing">Testing</reference></compact_paragraph> SphinxTranslator.dispatch_departure calling depart_list_item for <list_item classes="toctree-l2"><compact_paragraph classes="toctree-l2"><reference anchorname="#testing" internal="True" refuri="install/#testing">Testing</reference></compact_paragraph></list_item> SphinxTranslator.dispatch_visit calling visit_list_item for <list_item classes="toctree-l2"><compact_paragraph classes="toctree-l2"><reference anchorname="#installing" internal="True" refuri="install/#installing">Installing</reference></compact_paragraph></list_item> SphinxTranslator.dispatch_visit calling visit_compact_paragraph for <compact_paragraph classes="toctree-l2"><reference anchorname="#installing" internal="True" refuri="install/#installing">Installing</reference></compact_paragraph> SphinxTranslator.dispatch_visit calling visit_reference for <reference anchorname="#installing" internal="True" refuri="install/#installing">Installing</reference> SphinxTranslator.dispatch_visit calling visit_Text for Installing SphinxTranslator.dispatch_departure calling depart_Text for Installing SphinxTranslator.dispatch_departure calling depart_reference for <reference anchorname="#installing" internal="True" refuri="install/#installing">Installing</reference> SphinxTranslator.dispatch_departure calling depart_compact_paragraph for <compact_paragraph classes="toctree-l2"><reference anchorname="#installing" internal="True" refuri="install/#installing">Installing</reference></compact_paragraph> SphinxTranslator.dispatch_departure calling depart_list_item for <list_item classes="toctree-l2"><compact_paragraph classes="toctree-l2"><reference anchorname="#installing" internal="True" refuri="install/#installing">Installing</reference></compact_paragraph></list_item> SphinxTranslator.dispatch_departure calling depart_bullet_list for <bullet_list><list_item classes="toctree-l2"><compact_paragraph classes="toctree-l2"><reference anchorname="#installing-from-pypi-repository" internal="True" refuri="install/#installing-from-pypi-repository">Installing from PyPI repository</reference></compact_paragraph></list_item><list_item classes="toctree-l2"><compact_paragraph classes="toctree-l2"><reference anchorname="#building-manually" internal="True" refuri="install/#building-manually">Building manually</reference></compact_paragraph></list_item><list_item classes="toctree-l2"><compact_paragraph classes="toctree-l2"><reference anchorname="#testing" internal="True" refuri="install/#testing">Testing</reference></compact_paragraph></list_item><list_item classes="toctree-l2"><compact_paragraph classes="toctree-l2"><reference anchorname="#installing" internal="True" refuri="install/#installing">Installing</reference></compact_paragraph></list_item></bullet_list> SphinxTranslator.dispatch_departure calling depart_list_item for <list_item classes="toctree-l1"><compact_paragraph classes="toctree-l1"><reference anchorname="" internal="True" refuri="install/">Installation</reference></compact_paragraph><bullet_list><list_item classes="toctree-l2"><compact_paragraph classes="toctree-l2"><reference anchorname="#installing-from-pypi-repository" internal="True" refuri="install/#installing-from-pypi-repository">Installing from PyPI repository</reference></compact_paragraph></list_item><list_item classes="toctree-l2"><compact_paragraph classes="toctree-l2"><reference anchorname="#building-manually" internal="True" refuri="install/#building-manually">Building manually</reference></compact_paragraph></list_item><list_item classes="toctree-l2"><compact_paragraph classes="toctree-l2"><reference anchorname="#testing" internal="True" refuri="install/#testing">Testing</reference></compact_paragraph></list_item><list_item classes="toctree-l2"><compact_paragraph classes="toctree-l2"><reference anchorname="#installing" internal="True" refuri="install/#installing">Installing</reference></compact_paragraph></list_item></bullet_list></list_item> SphinxTranslator.dispatch_visit calling visit_list_item for <list_item classes="toctree-l1"><compact_paragraph classes="toctree-l1"><reference anchorname="" internal="True" refuri="tutorial/">Tutorials</reference></compact_paragraph><bullet_list><list_item classes="toctree-l2"><compact_paragraph classes="toctree-l2"><reference anchorname="#compressing-and-decompressing-with-blosc" internal="True" refuri="tutorial/#compressing-and-decompressing-with-blosc">Compressing and decompressing with <literal>blosc</literal></reference></compact_paragraph></list_item><list_item classes="toctree-l2"><compact_paragraph classes="toctree-l2"><reference anchorname="#using-different-filters" internal="True" refuri="tutorial/#using-different-filters">Using different filters</reference></compact_paragraph></list_item><list_item classes="toctree-l2"><compact_paragraph classes="toctree-l2"><reference anchorname="#supporting-the-buffer-interface" internal="True" refuri="tutorial/#supporting-the-buffer-interface">Supporting the buffer interface</reference></compact_paragraph></list_item><list_item classes="toctree-l2"><compact_paragraph classes="toctree-l2"><reference anchorname="#packaging-numpy-arrays" internal="True" refuri="tutorial/#packaging-numpy-arrays">Packaging NumPy arrays</reference></compact_paragraph></list_item><list_item classes="toctree-l2"><compact_paragraph classes="toctree-l2"><reference anchorname="#compressing-from-a-data-pointer" internal="True" refuri="tutorial/#compressing-from-a-data-pointer">Compressing from a data pointer</reference></compact_paragraph></list_item><list_item classes="toctree-l2"><compact_paragraph classes="toctree-l2"><reference anchorname="#fine-tuning-compression-parameters" internal="True" refuri="tutorial/#fine-tuning-compression-parameters">Fine-tuning compression parameters</reference></compact_paragraph></list_item><list_item classes="toctree-l2"><compact_paragraph classes="toctree-l2"><reference anchorname="#links-to-external-discussions-on-blosc-optimization" internal="True" refuri="tutorial/#links-to-external-discussions-on-blosc-optimization">Links to external discussions on <literal>blosc</literal> optimization</reference></compact_paragraph></list_item></bullet_list></list_item> SphinxTranslator.dispatch_visit calling visit_compact_paragraph for <compact_paragraph classes="toctree-l1"><reference anchorname="" internal="True" refuri="tutorial/">Tutorials</reference></compact_paragraph> SphinxTranslator.dispatch_visit calling visit_reference for <reference anchorname="" internal="True" refuri="tutorial/">Tutorials</reference> SphinxTranslator.dispatch_visit calling visit_Text for Tutorials SphinxTranslator.dispatch_departure calling depart_Text for Tutorials SphinxTranslator.dispatch_departure calling depart_reference for <reference anchorname="" internal="True" refuri="tutorial/">Tutorials</reference> SphinxTranslator.dispatch_departure calling depart_compact_paragraph for <compact_paragraph classes="toctree-l1"><reference anchorname="" internal="True" refuri="tutorial/">Tutorials</reference></compact_paragraph> SphinxTranslator.dispatch_visit calling visit_bullet_list for <bullet_list><list_item classes="toctree-l2"><compact_paragraph classes="toctree-l2"><reference anchorname="#compressing-and-decompressing-with-blosc" internal="True" refuri="tutorial/#compressing-and-decompressing-with-blosc">Compressing and decompressing with <literal>blosc</literal></reference></compact_paragraph></list_item><list_item classes="toctree-l2"><compact_paragraph classes="toctree-l2"><reference anchorname="#using-different-filters" internal="True" refuri="tutorial/#using-different-filters">Using different filters</reference></compact_paragraph></list_item><list_item classes="toctree-l2"><compact_paragraph classes="toctree-l2"><reference anchorname="#supporting-the-buffer-interface" internal="True" refuri="tutorial/#supporting-the-buffer-interface">Supporting the buffer interface</reference></compact_paragraph></list_item><list_item classes="toctree-l2"><compact_paragraph classes="toctree-l2"><reference anchorname="#packaging-numpy-arrays" internal="True" refuri="tutorial/#packaging-numpy-arrays">Packaging NumPy arrays</reference></compact_paragraph></list_item><list_item classes="toctree-l2"><compact_paragraph classes="toctree-l2"><reference anchorname="#compressing-from-a-data-pointer" internal="True" refuri="tutorial/#compressing-from-a-data-pointer">Compressing from a data pointer</reference></compact_paragraph></list_item><list_item classes="toctree-l2"><compact_paragraph classes="toctree-l2"><reference anchorname="#fine-tuning-compression-parameters" internal="True" refuri="tutorial/#fine-tuning-compression-parameters">Fine-tuning compression parameters</reference></compact_paragraph></list_item><list_item classes="toctree-l2"><compact_paragraph classes="toctree-l2"><reference anchorname="#links-to-external-discussions-on-blosc-optimization" internal="True" refuri="tutorial/#links-to-external-discussions-on-blosc-optimization">Links to external discussions on <literal>blosc</literal> optimization</reference></compact_paragraph></list_item></bullet_list> SphinxTranslator.dispatch_visit calling visit_list_item for <list_item classes="toctree-l2"><compact_paragraph classes="toctree-l2"><reference anchorname="#compressing-and-decompressing-with-blosc" internal="True" refuri="tutorial/#compressing-and-decompressing-with-blosc">Compressing and decompressing with <literal>blosc</literal></reference></compact_paragraph></list_item> SphinxTranslator.dispatch_visit calling visit_compact_paragraph for <compact_paragraph classes="toctree-l2"><reference anchorname="#compressing-and-decompressing-with-blosc" internal="True" refuri="tutorial/#compressing-and-decompressing-with-blosc">Compressing and decompressing with <literal>blosc</literal></reference></compact_paragraph> SphinxTranslator.dispatch_visit calling visit_reference for <reference anchorname="#compressing-and-decompressing-with-blosc" internal="True" refuri="tutorial/#compressing-and-decompressing-with-blosc">Compressing and decompressing with <literal>blosc</literal></reference> SphinxTranslator.dispatch_visit calling visit_Text for Compressing and decompressing with SphinxTranslator.dispatch_departure calling depart_Text for Compressing and decompressing with SphinxTranslator.dispatch_visit calling visit_literal for <literal>blosc</literal> SphinxTranslator.dispatch_visit calling visit_Text for blosc SphinxTranslator.dispatch_departure calling depart_Text for blosc SphinxTranslator.dispatch_departure calling depart_literal for <literal>blosc</literal> SphinxTranslator.dispatch_departure calling depart_reference for <reference anchorname="#compressing-and-decompressing-with-blosc" internal="True" refuri="tutorial/#compressing-and-decompressing-with-blosc">Compressing and decompressing with <literal>blosc</literal></reference> SphinxTranslator.dispatch_departure calling depart_compact_paragraph for <compact_paragraph classes="toctree-l2"><reference anchorname="#compressing-and-decompressing-with-blosc" internal="True" refuri="tutorial/#compressing-and-decompressing-with-blosc">Compressing and decompressing with <literal>blosc</literal></reference></compact_paragraph> SphinxTranslator.dispatch_departure calling depart_list_item for <list_item classes="toctree-l2"><compact_paragraph classes="toctree-l2"><reference anchorname="#compressing-and-decompressing-with-blosc" internal="True" refuri="tutorial/#compressing-and-decompressing-with-blosc">Compressing and decompressing with <literal>blosc</literal></reference></compact_paragraph></list_item> SphinxTranslator.dispatch_visit calling visit_list_item for <list_item classes="toctree-l2"><compact_paragraph classes="toctree-l2"><reference anchorname="#using-different-filters" internal="True" refuri="tutorial/#using-different-filters">Using different filters</reference></compact_paragraph></list_item> SphinxTranslator.dispatch_visit calling visit_compact_paragraph for <compact_paragraph classes="toctree-l2"><reference anchorname="#using-different-filters" internal="True" refuri="tutorial/#using-different-filters">Using different filters</reference></compact_paragraph> SphinxTranslator.dispatch_visit calling visit_reference for <reference anchorname="#using-different-filters" internal="True" refuri="tutorial/#using-different-filters">Using different filters</reference> SphinxTranslator.dispatch_visit calling visit_Text for Using different filters SphinxTranslator.dispatch_departure calling depart_Text for Using different filters SphinxTranslator.dispatch_departure calling depart_reference for <reference anchorname="#using-different-filters" internal="True" refuri="tutorial/#using-different-filters">Using different filters</reference> SphinxTranslator.dispatch_departure calling depart_compact_paragraph for <compact_paragraph classes="toctree-l2"><reference anchorname="#using-different-filters" internal="True" refuri="tutorial/#using-different-filters">Using different filters</reference></compact_paragraph> SphinxTranslator.dispatch_departure calling depart_list_item for <list_item classes="toctree-l2"><compact_paragraph classes="toctree-l2"><reference anchorname="#using-different-filters" internal="True" refuri="tutorial/#using-different-filters">Using different filters</reference></compact_paragraph></list_item> SphinxTranslator.dispatch_visit calling visit_list_item for <list_item classes="toctree-l2"><compact_paragraph classes="toctree-l2"><reference anchorname="#supporting-the-buffer-interface" internal="True" refuri="tutorial/#supporting-the-buffer-interface">Supporting the buffer interface</reference></compact_paragraph></list_item> SphinxTranslator.dispatch_visit calling visit_compact_paragraph for <compact_paragraph classes="toctree-l2"><reference anchorname="#supporting-the-buffer-interface" internal="True" refuri="tutorial/#supporting-the-buffer-interface">Supporting the buffer interface</reference></compact_paragraph> SphinxTranslator.dispatch_visit calling visit_reference for <reference anchorname="#supporting-the-buffer-interface" internal="True" refuri="tutorial/#supporting-the-buffer-interface">Supporting the buffer interface</reference> SphinxTranslator.dispatch_visit calling visit_Text for Supporting the buffer interface SphinxTranslator.dispatch_departure calling depart_Text for Supporting the buffer interface SphinxTranslator.dispatch_departure calling depart_reference for <reference anchorname="#supporting-the-buffer-interface" internal="True" refuri="tutorial/#supporting-the-buffer-interface">Supporting the buffer interface</reference> SphinxTranslator.dispatch_departure calling depart_compact_paragraph for <compact_paragraph classes="toctree-l2"><reference anchorname="#supporting-the-buffer-interface" internal="True" refuri="tutorial/#supporting-the-buffer-interface">Supporting the buffer interface</reference></compact_paragraph> SphinxTranslator.dispatch_departure calling depart_list_item for <list_item classes="toctree-l2"><compact_paragraph classes="toctree-l2"><reference anchorname="#supporting-the-buffer-interface" internal="True" refuri="tutorial/#supporting-the-buffer-interface">Supporting the buffer interface</reference></compact_paragraph></list_item> SphinxTranslator.dispatch_visit calling visit_list_item for <list_item classes="toctree-l2"><compact_paragraph classes="toctree-l2"><reference anchorname="#packaging-numpy-arrays" internal="True" refuri="tutorial/#packaging-numpy-arrays">Packaging NumPy arrays</reference></compact_paragraph></list_item> SphinxTranslator.dispatch_visit calling visit_compact_paragraph for <compact_paragraph classes="toctree-l2"><reference anchorname="#packaging-numpy-arrays" internal="True" refuri="tutorial/#packaging-numpy-arrays">Packaging NumPy arrays</reference></compact_paragraph> SphinxTranslator.dispatch_visit calling visit_reference for <reference anchorname="#packaging-numpy-arrays" internal="True" refuri="tutorial/#packaging-numpy-arrays">Packaging NumPy arrays</reference> SphinxTranslator.dispatch_visit calling visit_Text for Packaging NumPy arrays SphinxTranslator.dispatch_departure calling depart_Text for Packaging NumPy arrays SphinxTranslator.dispatch_departure calling depart_reference for <reference anchorname="#packaging-numpy-arrays" internal="True" refuri="tutorial/#packaging-numpy-arrays">Packaging NumPy arrays</reference> SphinxTranslator.dispatch_departure calling depart_compact_paragraph for <compact_paragraph classes="toctree-l2"><reference anchorname="#packaging-numpy-arrays" internal="True" refuri="tutorial/#packaging-numpy-arrays">Packaging NumPy arrays</reference></compact_paragraph> SphinxTranslator.dispatch_departure calling depart_list_item for <list_item classes="toctree-l2"><compact_paragraph classes="toctree-l2"><reference anchorname="#packaging-numpy-arrays" internal="True" refuri="tutorial/#packaging-numpy-arrays">Packaging NumPy arrays</reference></compact_paragraph></list_item> SphinxTranslator.dispatch_visit calling visit_list_item for <list_item classes="toctree-l2"><compact_paragraph classes="toctree-l2"><reference anchorname="#compressing-from-a-data-pointer" internal="True" refuri="tutorial/#compressing-from-a-data-pointer">Compressing from a data pointer</reference></compact_paragraph></list_item> SphinxTranslator.dispatch_visit calling visit_compact_paragraph for <compact_paragraph classes="toctree-l2"><reference anchorname="#compressing-from-a-data-pointer" internal="True" refuri="tutorial/#compressing-from-a-data-pointer">Compressing from a data pointer</reference></compact_paragraph> SphinxTranslator.dispatch_visit calling visit_reference for <reference anchorname="#compressing-from-a-data-pointer" internal="True" refuri="tutorial/#compressing-from-a-data-pointer">Compressing from a data pointer</reference> SphinxTranslator.dispatch_visit calling visit_Text for Compressing from a data pointer SphinxTranslator.dispatch_departure calling depart_Text for Compressing from a data pointer SphinxTranslator.dispatch_departure calling depart_reference for <reference anchorname="#compressing-from-a-data-pointer" internal="True" refuri="tutorial/#compressing-from-a-data-pointer">Compressing from a data pointer</reference> SphinxTranslator.dispatch_departure calling depart_compact_paragraph for <compact_paragraph classes="toctree-l2"><reference anchorname="#compressing-from-a-data-pointer" internal="True" refuri="tutorial/#compressing-from-a-data-pointer">Compressing from a data pointer</reference></compact_paragraph> SphinxTranslator.dispatch_departure calling depart_list_item for <list_item classes="toctree-l2"><compact_paragraph classes="toctree-l2"><reference anchorname="#compressing-from-a-data-pointer" internal="True" refuri="tutorial/#compressing-from-a-data-pointer">Compressing from a data pointer</reference></compact_paragraph></list_item> SphinxTranslator.dispatch_visit calling visit_list_item for <list_item classes="toctree-l2"><compact_paragraph classes="toctree-l2"><reference anchorname="#fine-tuning-compression-parameters" internal="True" refuri="tutorial/#fine-tuning-compression-parameters">Fine-tuning compression parameters</reference></compact_paragraph></list_item> SphinxTranslator.dispatch_visit calling visit_compact_paragraph for <compact_paragraph classes="toctree-l2"><reference anchorname="#fine-tuning-compression-parameters" internal="True" refuri="tutorial/#fine-tuning-compression-parameters">Fine-tuning compression parameters</reference></compact_paragraph> SphinxTranslator.dispatch_visit calling visit_reference for <reference anchorname="#fine-tuning-compression-parameters" internal="True" refuri="tutorial/#fine-tuning-compression-parameters">Fine-tuning compression parameters</reference> SphinxTranslator.dispatch_visit calling visit_Text for Fine-tuning compression parameters SphinxTranslator.dispatch_departure calling depart_Text for Fine-tuning compression parameters SphinxTranslator.dispatch_departure calling depart_reference for <reference anchorname="#fine-tuning-compression-parameters" internal="True" refuri="tutorial/#fine-tuning-compression-parameters">Fine-tuning compression parameters</reference> SphinxTranslator.dispatch_departure calling depart_compact_paragraph for <compact_paragraph classes="toctree-l2"><reference anchorname="#fine-tuning-compression-parameters" internal="True" refuri="tutorial/#fine-tuning-compression-parameters">Fine-tuning compression parameters</reference></compact_paragraph> SphinxTranslator.dispatch_departure calling depart_list_item for <list_item classes="toctree-l2"><compact_paragraph classes="toctree-l2"><reference anchorname="#fine-tuning-compression-parameters" internal="True" refuri="tutorial/#fine-tuning-compression-parameters">Fine-tuning compression parameters</reference></compact_paragraph></list_item> SphinxTranslator.dispatch_visit calling visit_list_item for <list_item classes="toctree-l2"><compact_paragraph classes="toctree-l2"><reference anchorname="#links-to-external-discussions-on-blosc-optimization" internal="True" refuri="tutorial/#links-to-external-discussions-on-blosc-optimization">Links to external discussions on <literal>blosc</literal> optimization</reference></compact_paragraph></list_item> SphinxTranslator.dispatch_visit calling visit_compact_paragraph for <compact_paragraph classes="toctree-l2"><reference anchorname="#links-to-external-discussions-on-blosc-optimization" internal="True" refuri="tutorial/#links-to-external-discussions-on-blosc-optimization">Links to external discussions on <literal>blosc</literal> optimization</reference></compact_paragraph> SphinxTranslator.dispatch_visit calling visit_reference for <reference anchorname="#links-to-external-discussions-on-blosc-optimization" internal="True" refuri="tutorial/#links-to-external-discussions-on-blosc-optimization">Links to external discussions on <literal>blosc</literal> optimization</reference> SphinxTranslator.dispatch_visit calling visit_Text for Links to external discussions on SphinxTranslator.dispatch_departure calling depart_Text for Links to external discussions on SphinxTranslator.dispatch_visit calling visit_literal for <literal>blosc</literal> SphinxTranslator.dispatch_visit calling visit_Text for blosc SphinxTranslator.dispatch_departure calling depart_Text for blosc SphinxTranslator.dispatch_departure calling depart_literal for <literal>blosc</literal> SphinxTranslator.dispatch_visit calling visit_Text for optimization SphinxTranslator.dispatch_departure calling depart_Text for optimization SphinxTranslator.dispatch_departure calling depart_reference for <reference anchorname="#links-to-external-discussions-on-blosc-optimization" internal="True" refuri="tutorial/#links-to-external-discussions-on-blosc-optimization">Links to external discussions on <literal>blosc</literal> optimization</reference> SphinxTranslator.dispatch_departure calling depart_compact_paragraph for <compact_paragraph classes="toctree-l2"><reference anchorname="#links-to-external-discussions-on-blosc-optimization" internal="True" refuri="tutorial/#links-to-external-discussions-on-blosc-optimization">Links to external discussions on <literal>blosc</literal> optimization</reference></compact_paragraph> SphinxTranslator.dispatch_departure calling depart_list_item for <list_item classes="toctree-l2"><compact_paragraph classes="toctree-l2"><reference anchorname="#links-to-external-discussions-on-blosc-optimization" internal="True" refuri="tutorial/#links-to-external-discussions-on-blosc-optimization">Links to external discussions on <literal>blosc</literal> optimization</reference></compact_paragraph></list_item> SphinxTranslator.dispatch_departure calling depart_bullet_list for <bullet_list><list_item classes="toctree-l2"><compact_paragraph classes="toctree-l2"><reference anchorname="#compressing-and-decompressing-with-blosc" internal="True" refuri="tutorial/#compressing-and-decompressing-with-blosc">Compressing and decompressing with <literal>blosc</literal></reference></compact_paragraph></list_item><list_item classes="toctree-l2"><compact_paragraph classes="toctree-l2"><reference anchorname="#using-different-filters" internal="True" refuri="tutorial/#using-different-filters">Using different filters</reference></compact_paragraph></list_item><list_item classes="toctree-l2"><compact_paragraph classes="toctree-l2"><reference anchorname="#supporting-the-buffer-interface" internal="True" refuri="tutorial/#supporting-the-buffer-interface">Supporting the buffer interface</reference></compact_paragraph></list_item><list_item classes="toctree-l2"><compact_paragraph classes="toctree-l2"><reference anchorname="#packaging-numpy-arrays" internal="True" refuri="tutorial/#packaging-numpy-arrays">Packaging NumPy arrays</reference></compact_paragraph></list_item><list_item classes="toctree-l2"><compact_paragraph classes="toctree-l2"><reference anchorname="#compressing-from-a-data-pointer" internal="True" refuri="tutorial/#compressing-from-a-data-pointer">Compressing from a data pointer</reference></compact_paragraph></list_item><list_item classes="toctree-l2"><compact_paragraph classes="toctree-l2"><reference anchorname="#fine-tuning-compression-parameters" internal="True" refuri="tutorial/#fine-tuning-compression-parameters">Fine-tuning compression parameters</reference></compact_paragraph></list_item><list_item classes="toctree-l2"><compact_paragraph classes="toctree-l2"><reference anchorname="#links-to-external-discussions-on-blosc-optimization" internal="True" refuri="tutorial/#links-to-external-discussions-on-blosc-optimization">Links to external discussions on <literal>blosc</literal> optimization</reference></compact_paragraph></list_item></bullet_list> SphinxTranslator.dispatch_departure calling depart_list_item for <list_item classes="toctree-l1"><compact_paragraph classes="toctree-l1"><reference anchorname="" internal="True" refuri="tutorial/">Tutorials</reference></compact_paragraph><bullet_list><list_item classes="toctree-l2"><compact_paragraph classes="toctree-l2"><reference anchorname="#compressing-and-decompressing-with-blosc" internal="True" refuri="tutorial/#compressing-and-decompressing-with-blosc">Compressing and decompressing with <literal>blosc</literal></reference></compact_paragraph></list_item><list_item classes="toctree-l2"><compact_paragraph classes="toctree-l2"><reference anchorname="#using-different-filters" internal="True" refuri="tutorial/#using-different-filters">Using different filters</reference></compact_paragraph></list_item><list_item classes="toctree-l2"><compact_paragraph classes="toctree-l2"><reference anchorname="#supporting-the-buffer-interface" internal="True" refuri="tutorial/#supporting-the-buffer-interface">Supporting the buffer interface</reference></compact_paragraph></list_item><list_item classes="toctree-l2"><compact_paragraph classes="toctree-l2"><reference anchorname="#packaging-numpy-arrays" internal="True" refuri="tutorial/#packaging-numpy-arrays">Packaging NumPy arrays</reference></compact_paragraph></list_item><list_item classes="toctree-l2"><compact_paragraph classes="toctree-l2"><reference anchorname="#compressing-from-a-data-pointer" internal="True" refuri="tutorial/#compressing-from-a-data-pointer">Compressing from a data pointer</reference></compact_paragraph></list_item><list_item classes="toctree-l2"><compact_paragraph classes="toctree-l2"><reference anchorname="#fine-tuning-compression-parameters" internal="True" refuri="tutorial/#fine-tuning-compression-parameters">Fine-tuning compression parameters</reference></compact_paragraph></list_item><list_item classes="toctree-l2"><compact_paragraph classes="toctree-l2"><reference anchorname="#links-to-external-discussions-on-blosc-optimization" internal="True" refuri="tutorial/#links-to-external-discussions-on-blosc-optimization">Links to external discussions on <literal>blosc</literal> optimization</reference></compact_paragraph></list_item></bullet_list></list_item> SphinxTranslator.dispatch_visit calling visit_list_item for <list_item classes="toctree-l1"><compact_paragraph classes="toctree-l1"><reference anchorname="" internal="True" refuri="reference/">Library Reference</reference></compact_paragraph><bullet_list><list_item classes="toctree-l2"><compact_paragraph classes="toctree-l2"><reference anchorname="#first-level-variables" internal="True" refuri="reference/#first-level-variables">First level variables</reference></compact_paragraph></list_item><list_item classes="toctree-l2"><compact_paragraph classes="toctree-l2"><reference anchorname="#module-blosc" internal="True" refuri="reference/#module-blosc">Public functions</reference></compact_paragraph></list_item><list_item classes="toctree-l2"><compact_paragraph classes="toctree-l2"><reference anchorname="#module-blosc" internal="True" refuri="reference/#module-blosc">Utilities</reference></compact_paragraph></list_item></bullet_list></list_item> SphinxTranslator.dispatch_visit calling visit_compact_paragraph for <compact_paragraph classes="toctree-l1"><reference anchorname="" internal="True" refuri="reference/">Library Reference</reference></compact_paragraph> SphinxTranslator.dispatch_visit calling visit_reference for <reference anchorname="" internal="True" refuri="reference/">Library Reference</reference> SphinxTranslator.dispatch_visit calling visit_Text for Library Reference SphinxTranslator.dispatch_departure calling depart_Text for Library Reference SphinxTranslator.dispatch_departure calling depart_reference for <reference anchorname="" internal="True" refuri="reference/">Library Reference</reference> SphinxTranslator.dispatch_departure calling depart_compact_paragraph for <compact_paragraph classes="toctree-l1"><reference anchorname="" internal="True" refuri="reference/">Library Reference</reference></compact_paragraph> SphinxTranslator.dispatch_visit calling visit_bullet_list for <bullet_list><list_item classes="toctree-l2"><compact_paragraph classes="toctree-l2"><reference anchorname="#first-level-variables" internal="True" refuri="reference/#first-level-variables">First level variables</reference></compact_paragraph></list_item><list_item classes="toctree-l2"><compact_paragraph classes="toctree-l2"><reference anchorname="#module-blosc" internal="True" refuri="reference/#module-blosc">Public functions</reference></compact_paragraph></list_item><list_item classes="toctree-l2"><compact_paragraph classes="toctree-l2"><reference anchorname="#module-blosc" internal="True" refuri="reference/#module-blosc">Utilities</reference></compact_paragraph></list_item></bullet_list> SphinxTranslator.dispatch_visit calling visit_list_item for <list_item classes="toctree-l2"><compact_paragraph classes="toctree-l2"><reference anchorname="#first-level-variables" internal="True" refuri="reference/#first-level-variables">First level variables</reference></compact_paragraph></list_item> SphinxTranslator.dispatch_visit calling visit_compact_paragraph for <compact_paragraph classes="toctree-l2"><reference anchorname="#first-level-variables" internal="True" refuri="reference/#first-level-variables">First level variables</reference></compact_paragraph> SphinxTranslator.dispatch_visit calling visit_reference for <reference anchorname="#first-level-variables" internal="True" refuri="reference/#first-level-variables">First level variables</reference> SphinxTranslator.dispatch_visit calling visit_Text for First level variables SphinxTranslator.dispatch_departure calling depart_Text for First level variables SphinxTranslator.dispatch_departure calling depart_reference for <reference anchorname="#first-level-variables" internal="True" refuri="reference/#first-level-variables">First level variables</reference> SphinxTranslator.dispatch_departure calling depart_compact_paragraph for <compact_paragraph classes="toctree-l2"><reference anchorname="#first-level-variables" internal="True" refuri="reference/#first-level-variables">First level variables</reference></compact_paragraph> SphinxTranslator.dispatch_departure calling depart_list_item for <list_item classes="toctree-l2"><compact_paragraph classes="toctree-l2"><reference anchorname="#first-level-variables" internal="True" refuri="reference/#first-level-variables">First level variables</reference></compact_paragraph></list_item> SphinxTranslator.dispatch_visit calling visit_list_item for <list_item classes="toctree-l2"><compact_paragraph classes="toctree-l2"><reference anchorname="#module-blosc" internal="True" refuri="reference/#module-blosc">Public functions</reference></compact_paragraph></list_item> SphinxTranslator.dispatch_visit calling visit_compact_paragraph for <compact_paragraph classes="toctree-l2"><reference anchorname="#module-blosc" internal="True" refuri="reference/#module-blosc">Public functions</reference></compact_paragraph> SphinxTranslator.dispatch_visit calling visit_reference for <reference anchorname="#module-blosc" internal="True" refuri="reference/#module-blosc">Public functions</reference> SphinxTranslator.dispatch_visit calling visit_Text for Public functions SphinxTranslator.dispatch_departure calling depart_Text for Public functions SphinxTranslator.dispatch_departure calling depart_reference for <reference anchorname="#module-blosc" internal="True" refuri="reference/#module-blosc">Public functions</reference> SphinxTranslator.dispatch_departure calling depart_compact_paragraph for <compact_paragraph classes="toctree-l2"><reference anchorname="#module-blosc" internal="True" refuri="reference/#module-blosc">Public functions</reference></compact_paragraph> SphinxTranslator.dispatch_departure calling depart_list_item for <list_item classes="toctree-l2"><compact_paragraph classes="toctree-l2"><reference anchorname="#module-blosc" internal="True" refuri="reference/#module-blosc">Public functions</reference></compact_paragraph></list_item> SphinxTranslator.dispatch_visit calling visit_list_item for <list_item classes="toctree-l2"><compact_paragraph classes="toctree-l2"><reference anchorname="#module-blosc" internal="True" refuri="reference/#module-blosc">Utilities</reference></compact_paragraph></list_item> SphinxTranslator.dispatch_visit calling visit_compact_paragraph for <compact_paragraph classes="toctree-l2"><reference anchorname="#module-blosc" internal="True" refuri="reference/#module-blosc">Utilities</reference></compact_paragraph> SphinxTranslator.dispatch_visit calling visit_reference for <reference anchorname="#module-blosc" internal="True" refuri="reference/#module-blosc">Utilities</reference> SphinxTranslator.dispatch_visit calling visit_Text for Utilities SphinxTranslator.dispatch_departure calling depart_Text for Utilities SphinxTranslator.dispatch_departure calling depart_reference for <reference anchorname="#module-blosc" internal="True" refuri="reference/#module-blosc">Utilities</reference> SphinxTranslator.dispatch_departure calling depart_compact_paragraph for <compact_paragraph classes="toctree-l2"><reference anchorname="#module-blosc" internal="True" refuri="reference/#module-blosc">Utilities</reference></compact_paragraph> SphinxTranslator.dispatch_departure calling depart_list_item for <list_item classes="toctree-l2"><compact_paragraph classes="toctree-l2"><reference anchorname="#module-blosc" internal="True" refuri="reference/#module-blosc">Utilities</reference></compact_paragraph></list_item> SphinxTranslator.dispatch_departure calling depart_bullet_list for <bullet_list><list_item classes="toctree-l2"><compact_paragraph classes="toctree-l2"><reference anchorname="#first-level-variables" internal="True" refuri="reference/#first-level-variables">First level variables</reference></compact_paragraph></list_item><list_item classes="toctree-l2"><compact_paragraph classes="toctree-l2"><reference anchorname="#module-blosc" internal="True" refuri="reference/#module-blosc">Public functions</reference></compact_paragraph></list_item><list_item classes="toctree-l2"><compact_paragraph classes="toctree-l2"><reference anchorname="#module-blosc" internal="True" refuri="reference/#module-blosc">Utilities</reference></compact_paragraph></list_item></bullet_list> SphinxTranslator.dispatch_departure calling depart_list_item for <list_item classes="toctree-l1"><compact_paragraph classes="toctree-l1"><reference anchorname="" internal="True" refuri="reference/">Library Reference</reference></compact_paragraph><bullet_list><list_item classes="toctree-l2"><compact_paragraph classes="toctree-l2"><reference anchorname="#first-level-variables" internal="True" refuri="reference/#first-level-variables">First level variables</reference></compact_paragraph></list_item><list_item classes="toctree-l2"><compact_paragraph classes="toctree-l2"><reference anchorname="#module-blosc" internal="True" refuri="reference/#module-blosc">Public functions</reference></compact_paragraph></list_item><list_item classes="toctree-l2"><compact_paragraph classes="toctree-l2"><reference anchorname="#module-blosc" internal="True" refuri="reference/#module-blosc">Utilities</reference></compact_paragraph></list_item></bullet_list></list_item> SphinxTranslator.dispatch_departure calling depart_bullet_list for <bullet_list><list_item classes="toctree-l1"><compact_paragraph classes="toctree-l1"><reference anchorname="" internal="True" refuri="intro/">Introduction</reference></compact_paragraph><bullet_list><list_item classes="toctree-l2"><compact_paragraph classes="toctree-l2"><reference anchorname="#what-is-python-blosc" internal="True" refuri="intro/#what-is-python-blosc">What is python-blosc?</reference></compact_paragraph></list_item><list_item classes="toctree-l2"><compact_paragraph classes="toctree-l2"><reference anchorname="#mailing-list" internal="True" refuri="intro/#mailing-list">Mailing list</reference></compact_paragraph></list_item></bullet_list></list_item><list_item classes="toctree-l1"><compact_paragraph classes="toctree-l1"><reference anchorname="" internal="True" refuri="install/">Installation</reference></compact_paragraph><bullet_list><list_item classes="toctree-l2"><compact_paragraph classes="toctree-l2"><reference anchorname="#installing-from-pypi-repository" internal="True" refuri="install/#installing-from-pypi-repository">Installing from PyPI repository</reference></compact_paragraph></list_item><list_item classes="toctree-l2"><compact_paragraph classes="toctree-l2"><reference anchorname="#building-manually" internal="True" refuri="install/#building-manually">Building manually</reference></compact_paragraph></list_item><list_item classes="toctree-l2"><compact_paragraph classes="toctree-l2"><reference anchorname="#testing" internal="True" refuri="install/#testing">Testing</reference></compact_paragraph></list_item><list_item classes="toctree-l2"><compact_paragraph classes="toctree-l2"><reference anchorname="#installing" internal="True" refuri="install/#installing">Installing</reference></compact_paragraph></list_item></bullet_list></list_item><list_item classes="toctree-l1"><compact_paragraph classes="toctree-l1"><reference anchorname="" internal="True" refuri="tutorial/">Tutorials</reference></compact_paragraph><bullet_list><list_item classes="toctree-l2"><compact_paragraph classes="toctree-l2"><reference anchorname="#compressing-and-decompressing-with-blosc" internal="True" refuri="tutorial/#compressing-and-decompressing-with-blosc">Compressing and decompressing with <literal>blosc</literal></reference></compact_paragraph></list_item><list_item classes="toctree-l2"><compact_paragraph classes="toctree-l2"><reference anchorname="#using-different-filters" internal="True" refuri="tutorial/#using-different-filters">Using different filters</reference></compact_paragraph></list_item><list_item classes="toctree-l2"><compact_paragraph classes="toctree-l2"><reference anchorname="#supporting-the-buffer-interface" internal="True" refuri="tutorial/#supporting-the-buffer-interface">Supporting the buffer interface</reference></compact_paragraph></list_item><list_item classes="toctree-l2"><compact_paragraph classes="toctree-l2"><reference anchorname="#packaging-numpy-arrays" internal="True" refuri="tutorial/#packaging-numpy-arrays">Packaging NumPy arrays</reference></compact_paragraph></list_item><list_item classes="toctree-l2"><compact_paragraph classes="toctree-l2"><reference anchorname="#compressing-from-a-data-pointer" internal="True" refuri="tutorial/#compressing-from-a-data-pointer">Compressing from a data pointer</reference></compact_paragraph></list_item><list_item classes="toctree-l2"><compact_paragraph classes="toctree-l2"><reference anchorname="#fine-tuning-compression-parameters" internal="True" refuri="tutorial/#fine-tuning-compression-parameters">Fine-tuning compression parameters</reference></compact_paragraph></list_item><list_item classes="toctree-l2"><compact_paragraph classes="toctree-l2"><reference anchorname="#links-to-external-discussions-on-blosc-optimization" internal="True" refuri="tutorial/#links-to-external-discussions-on-blosc-optimization">Links to external discussions on <literal>blosc</literal> optimization</reference></compact_paragraph></list_item></bullet_list></list_item><list_item classes="toctree-l1"><compact_paragraph classes="toctree-l1"><reference anchorname="" internal="True" refuri="reference/">Library Reference</reference></compact_paragraph><bullet_list><list_item classes="toctree-l2"><compact_paragraph classes="toctree-l2"><reference anchorname="#first-level-variables" internal="True" refuri="reference/#first-level-variables">First level variables</reference></compact_paragraph></list_item><list_item classes="toctree-l2"><compact_paragraph classes="toctree-l2"><reference anchorname="#module-blosc" internal="True" refuri="reference/#module-blosc">Public functions</reference></compact_paragraph></list_item><list_item classes="toctree-l2"><compact_paragraph classes="toctree-l2"><reference anchorname="#module-blosc" internal="True" refuri="reference/#module-blosc">Utilities</reference></compact_paragraph></list_item></bullet_list></list_item></bullet_list> SphinxTranslator.dispatch_departure calling depart_compact_paragraph for <compact_paragraph toctree="True"><bullet_list><list_item classes="toctree-l1"><compact_paragraph classes="toctree-l1"><reference anchorname="" internal="True" refuri="intro/">Introduction</reference></compact_paragraph><bullet_list><list_item classes="toctree-l2"><compact_paragraph classes="toctree-l2"><reference anchorname="#what-is-python-blosc" internal="True" refuri="intro/#what-is-python-blosc">What is python-blosc?</reference></compact_paragraph></list_item><list_item classes="toctree-l2"><compact_paragraph classes="toctree-l2"><reference anchorname="#mailing-list" internal="True" refuri="intro/#mailing-list">Mailing list</reference></compact_paragraph></list_item></bullet_list></list_item><list_item classes="toctree-l1"><compact_paragraph classes="toctree-l1"><reference anchorname="" internal="True" refuri="install/">Installation</reference></compact_paragraph><bullet_list><list_item classes="toctree-l2"><compact_paragraph classes="toctree-l2"><reference anchorname="#installing-from-pypi-repository" internal="True" refuri="install/#installing-from-pypi-repository">Installing from PyPI repository</reference></compact_paragraph></list_item><list_item classes="toctree-l2"><compact_paragraph classes="toctree-l2"><reference anchorname="#building-manually" internal="True" refuri="install/#building-manually">Building manually</reference></compact_paragraph></list_item><list_item classes="toctree-l2"><compact_paragraph classes="toctree-l2"><reference anchorname="#testing" internal="True" refuri="install/#testing">Testing</reference></compact_paragraph></list_item><list_item classes="toctree-l2"><compact_paragraph classes="toctree-l2"><reference anchorname="#installing" internal="True" refuri="install/#installing">Installing</reference></compact_paragraph></list_item></bullet_list></list_item><list_item classes="toctree-l1"><compact_paragraph classes="toctree-l1"><reference anchorname="" internal="True" refuri="tutorial/">Tutorials</reference></compact_paragraph><bullet_list><list_item classes="toctree-l2"><compact_paragraph classes="toctree-l2"><reference anchorname="#compressing-and-decompressing-with-blosc" internal="True" refuri="tutorial/#compressing-and-decompressing-with-blosc">Compressing and decompressing with <literal>blosc</literal></reference></compact_paragraph></list_item><list_item classes="toctree-l2"><compact_paragraph classes="toctree-l2"><reference anchorname="#using-different-filters" internal="True" refuri="tutorial/#using-different-filters">Using different filters</reference></compact_paragraph></list_item><list_item classes="toctree-l2"><compact_paragraph classes="toctree-l2"><reference anchorname="#supporting-the-buffer-interface" internal="True" refuri="tutorial/#supporting-the-buffer-interface">Supporting the buffer interface</reference></compact_paragraph></list_item><list_item classes="toctree-l2"><compact_paragraph classes="toctree-l2"><reference anchorname="#packaging-numpy-arrays" internal="True" refuri="tutorial/#packaging-numpy-arrays">Packaging NumPy arrays</reference></compact_paragraph></list_item><list_item classes="toctree-l2"><compact_paragraph classes="toctree-l2"><reference anchorname="#compressing-from-a-data-pointer" internal="True" refuri="tutorial/#compressing-from-a-data-pointer">Compressing from a data pointer</reference></compact_paragraph></list_item><list_item classes="toctree-l2"><compact_paragraph classes="toctree-l2"><reference anchorname="#fine-tuning-compression-parameters" internal="True" refuri="tutorial/#fine-tuning-compression-parameters">Fine-tuning compression parameters</reference></compact_paragraph></list_item><list_item classes="toctree-l2"><compact_paragraph classes="toctree-l2"><reference anchorname="#links-to-external-discussions-on-blosc-optimization" internal="True" refuri="tutorial/#links-to-external-discussions-on-blosc-optimization">Links to external discussions on <literal>blosc</literal> optimization</reference></compact_paragraph></list_item></bullet_list></list_item><list_item classes="toctree-l1"><compact_paragraph classes="toctree-l1"><reference anchorname="" internal="True" refuri="reference/">Library Reference</reference></compact_paragraph><bullet_list><list_item classes="toctree-l2"><compact_paragraph classes="toctree-l2"><reference anchorname="#first-level-variables" internal="True" refuri="reference/#first-level-variables">First level variables</reference></compact_paragraph></list_item><list_item classes="toctree-l2"><compact_paragraph classes="toctree-l2"><reference anchorname="#module-blosc" internal="True" refuri="reference/#module-blosc">Public functions</reference></compact_paragraph></list_item><list_item classes="toctree-l2"><compact_paragraph classes="toctree-l2"><reference anchorname="#module-blosc" internal="True" refuri="reference/#module-blosc">Utilities</reference></compact_paragraph></list_item></bullet_list></list_item></bullet_list></compact_paragraph> SphinxTranslator.dispatch_departure calling depart_compound for <compound classes="toctree-wrapper"><compact_paragraph toctree="True"><bullet_list><list_item classes="toctree-l1"><compact_paragraph classes="toctree-l1"><reference anchorname="" internal="True" refuri="intro/">Introduction</reference></compact_paragraph><bullet_list><list_item classes="toctree-l2"><compact_paragraph classes="toctree-l2"><reference anchorname="#what-is-python-blosc" internal="True" refuri="intro/#what-is-python-blosc">What is python-blosc?</reference></compact_paragraph></list_item><list_item classes="toctree-l2"><compact_paragraph classes="toctree-l2"><reference anchorname="#mailing-list" internal="True" refuri="intro/#mailing-list">Mailing list</reference></compact_paragraph></list_item></bullet_list></list_item><list_item classes="toctree-l1"><compact_paragraph classes="toctree-l1"><reference anchorname="" internal="True" refuri="install/">Installation</reference></compact_paragraph><bullet_list><list_item classes="toctree-l2"><compact_paragraph classes="toctree-l2"><reference anchorname="#installing-from-pypi-repository" internal="True" refuri="install/#installing-from-pypi-repository">Installing from PyPI repository</reference></compact_paragraph></list_item><list_item classes="toctree-l2"><compact_paragraph classes="toctree-l2"><reference anchorname="#building-manually" internal="True" refuri="install/#building-manually">Building manually</reference></compact_paragraph></list_item><list_item classes="toctree-l2"><compact_paragraph classes="toctree-l2"><reference anchorname="#testing" internal="True" refuri="install/#testing">Testing</reference></compact_paragraph></list_item><list_item classes="toctree-l2"><compact_paragraph classes="toctree-l2"><reference anchorname="#installing" internal="True" refuri="install/#installing">Installing</reference></compact_paragraph></list_item></bullet_list></list_item><list_item classes="toctree-l1"><compact_paragraph classes="toctree-l1"><reference anchorname="" internal="True" refuri="tutorial/">Tutorials</reference></compact_paragraph><bullet_list><list_item classes="toctree-l2"><compact_paragraph classes="toctree-l2"><reference anchorname="#compressing-and-decompressing-with-blosc" internal="True" refuri="tutorial/#compressing-and-decompressing-with-blosc">Compressing and decompressing with <literal>blosc</literal></reference></compact_paragraph></list_item><list_item classes="toctree-l2"><compact_paragraph classes="toctree-l2"><reference anchorname="#using-different-filters" internal="True" refuri="tutorial/#using-different-filters">Using different filters</reference></compact_paragraph></list_item><list_item classes="toctree-l2"><compact_paragraph classes="toctree-l2"><reference anchorname="#supporting-the-buffer-interface" internal="True" refuri="tutorial/#supporting-the-buffer-interface">Supporting the buffer interface</reference></compact_paragraph></list_item><list_item classes="toctree-l2"><compact_paragraph classes="toctree-l2"><reference anchorname="#packaging-numpy-arrays" internal="True" refuri="tutorial/#packaging-numpy-arrays">Packaging NumPy arrays</reference></compact_paragraph></list_item><list_item classes="toctree-l2"><compact_paragraph classes="toctree-l2"><reference anchorname="#compressing-from-a-data-pointer" internal="True" refuri="tutorial/#compressing-from-a-data-pointer">Compressing from a data pointer</reference></compact_paragraph></list_item><list_item classes="toctree-l2"><compact_paragraph classes="toctree-l2"><reference anchorname="#fine-tuning-compression-parameters" internal="True" refuri="tutorial/#fine-tuning-compression-parameters">Fine-tuning compression parameters</reference></compact_paragraph></list_item><list_item classes="toctree-l2"><compact_paragraph classes="toctree-l2"><reference anchorname="#links-to-external-discussions-on-blosc-optimization" internal="True" refuri="tutorial/#links-to-external-discussions-on-blosc-optimization">Links to external discussions on <literal>blosc</literal> optimization</reference></compact_paragraph></list_item></bullet_list></list_item><list_item classes="toctree-l1"><compact_paragraph classes="toctree-l1"><reference anchorname="" internal="True" refuri="reference/">Library Reference</reference></compact_paragraph><bullet_list><list_item classes="toctree-l2"><compact_paragraph classes="toctree-l2"><reference anchorname="#first-level-variables" internal="True" refuri="reference/#first-level-variables">First level variables</reference></compact_paragraph></list_item><list_item classes="toctree-l2"><compact_paragraph classes="toctree-l2"><reference anchorname="#module-blosc" internal="True" refuri="reference/#module-blosc">Public functions</reference></compact_paragraph></list_item><list_item classes="toctree-l2"><compact_paragraph classes="toctree-l2"><reference anchorname="#module-blosc" internal="True" refuri="reference/#module-blosc">Utilities</reference></compact_paragraph></list_item></bullet_list></list_item></bullet_list></compact_paragraph></compound> SphinxTranslator.dispatch_departure calling depart_section for <section ids="welcome-to-python-blosc-s-documentation" names="welcome\ to\ python-blosc's\ documentation!"><title>Welcome to python-blosc’s documentation!</title><paragraph>Contents:</paragraph><compound classes="toctree-wrapper"><compact_paragraph toctree="True"><bullet_list><list_item classes="toctree-l1"><compact_paragraph classes="toctree-l1"><reference anchorname="" internal="True" refuri="intro/">Introduction</reference></compact_paragraph><bullet_list><list_item classes="toctree-l2"><compact_paragraph classes="toctree-l2"><reference anchorname="#what-is-python-blosc" internal="True" refuri="intro/#what-is-python-blosc">What is python-blosc?</reference></compact_paragraph></list_item><list_item classes="toctree-l2"><compact_paragraph classes="toctree-l2"><reference anchorname="#mailing-list" internal="True" refuri="intro/#mailing-list">Mailing list</reference></compact_paragraph></list_item></bullet_list></list_item><list_item classes="toctree-l1"><compact_paragraph classes="toctree-l1"><reference anchorname="" internal="True" refuri="install/">Installation</reference></compact_paragraph><bullet_list><list_item classes="toctree-l2"><compact_paragraph classes="toctree-l2"><reference anchorname="#installing-from-pypi-repository" internal="True" refuri="install/#installing-from-pypi-repository">Installing from PyPI repository</reference></compact_paragraph></list_item><list_item classes="toctree-l2"><compact_paragraph classes="toctree-l2"><reference anchorname="#building-manually" internal="True" refuri="install/#building-manually">Building manually</reference></compact_paragraph></list_item><list_item classes="toctree-l2"><compact_paragraph classes="toctree-l2"><reference anchorname="#testing" internal="True" refuri="install/#testing">Testing</reference></compact_paragraph></list_item><list_item classes="toctree-l2"><compact_paragraph classes="toctree-l2"><reference anchorname="#installing" internal="True" refuri="install/#installing">Installing</reference></compact_paragraph></list_item></bullet_list></list_item><list_item classes="toctree-l1"><compact_paragraph classes="toctree-l1"><reference anchorname="" internal="True" refuri="tutorial/">Tutorials</reference></compact_paragraph><bullet_list><list_item classes="toctree-l2"><compact_paragraph classes="toctree-l2"><reference anchorname="#compressing-and-decompressing-with-blosc" internal="True" refuri="tutorial/#compressing-and-decompressing-with-blosc">Compressing and decompressing with <literal>blosc</literal></reference></compact_paragraph></list_item><list_item classes="toctree-l2"><compact_paragraph classes="toctree-l2"><reference anchorname="#using-different-filters" internal="True" refuri="tutorial/#using-different-filters">Using different filters</reference></compact_paragraph></list_item><list_item classes="toctree-l2"><compact_paragraph classes="toctree-l2"><reference anchorname="#supporting-the-buffer-interface" internal="True" refuri="tutorial/#supporting-the-buffer-interface">Supporting the buffer interface</reference></compact_paragraph></list_item><list_item classes="toctree-l2"><compact_paragraph classes="toctree-l2"><reference anchorname="#packaging-numpy-arrays" internal="True" refuri="tutorial/#packaging-numpy-arrays">Packaging NumPy arrays</reference></compact_paragraph></list_item><list_item classes="toctree-l2"><compact_paragraph classes="toctree-l2"><reference anchorname="#compressing-from-a-data-pointer" internal="True" refuri="tutorial/#compressing-from-a-data-pointer">Compressing from a data pointer</reference></compact_paragraph></list_item><list_item classes="toctree-l2"><compact_paragraph classes="toctree-l2"><reference anchorname="#fine-tuning-compression-parameters" internal="True" refuri="tutorial/#fine-tuning-compression-parameters">Fine-tuning compression parameters</reference></compact_paragraph></list_item><list_item classes="toctree-l2"><compact_paragraph classes="toctree-l2"><reference anchorname="#links-to-external-discussions-on-blosc-optimization" internal="True" refuri="tutorial/#links-to-external-discussions-on-blosc-optimization">Links to external discussions on <literal>blosc</literal> optimization</reference></compact_paragraph></list_item></bullet_list></list_item><list_item classes="toctree-l1"><compact_paragraph classes="toctree-l1"><reference anchorname="" internal="True" refuri="reference/">Library Reference</reference></compact_paragraph><bullet_list><list_item classes="toctree-l2"><compact_paragraph classes="toctree-l2"><reference anchorname="#first-level-variables" internal="True" refuri="reference/#first-level-variables">First level variables</reference></compact_paragraph></list_item><list_item classes="toctree-l2"><compact_paragraph classes="toctree-l2"><reference anchorname="#module-blosc" internal="True" refuri="reference/#module-blosc">Public functions</reference></compact_paragraph></list_item><list_item classes="toctree-l2"><compact_paragraph classes="toctree-l2"><reference anchorname="#module-blosc" internal="True" refuri="reference/#module-blosc">Utilities</reference></compact_paragraph></list_item></bullet_list></list_item></bullet_list></compact_paragraph></compound></section> SphinxTranslator.dispatch_visit calling visit_section for <section ids="indices-and-tables" names="indices\ and\ tables"><title>Indices and tables</title><bullet_list bullet="*"><list_item><paragraph><reference internal="True" refuri="genindex/"><inline classes="std std-ref">Index</inline></reference></paragraph></list_item><list_item><paragraph><reference internal="True" refuri="py-modindex/"><inline classes="std std-ref">Module Index</inline></reference></paragraph></list_item><list_item><paragraph><reference internal="True" refuri="search/"><inline classes="std std-ref">Search Page</inline></reference></paragraph></list_item></bullet_list></section> SphinxTranslator.dispatch_visit calling visit_title for <title>Indices and tables</title> SphinxTranslator.dispatch_visit calling visit_Text for Indices and tables SphinxTranslator.dispatch_departure calling depart_Text for Indices and tables SphinxTranslator.dispatch_departure calling depart_title for <title>Indices and tables</title> SphinxTranslator.dispatch_visit calling visit_bullet_list for <bullet_list bullet="*"><list_item><paragraph><reference internal="True" refuri="genindex/"><inline classes="std std-ref">Index</inline></reference></paragraph></list_item><list_item><paragraph><reference internal="True" refuri="py-modindex/"><inline classes="std std-ref">Module Index</inline></reference></paragraph></list_item><list_item><paragraph><reference internal="True" refuri="search/"><inline classes="std std-ref">Search Page</inline></reference></paragraph></list_item></bullet_list> SphinxTranslator.dispatch_visit calling visit_list_item for <list_item><paragraph><reference internal="True" refuri="genindex/"><inline classes="std std-ref">Index</inline></reference></paragraph></list_item> SphinxTranslator.dispatch_visit calling visit_paragraph for <paragraph><reference internal="True" refuri="genindex/"><inline classes="std std-ref">Index</inline></reference></paragraph> SphinxTranslator.dispatch_visit calling visit_reference for <reference internal="True" refuri="genindex/"><inline classes="std std-ref">Index</inline></reference> SphinxTranslator.dispatch_visit calling visit_inline for <inline classes="std std-ref">Index</inline> SphinxTranslator.dispatch_visit calling visit_Text for Index SphinxTranslator.dispatch_departure calling depart_Text for Index SphinxTranslator.dispatch_departure calling depart_inline for <inline classes="std std-ref">Index</inline> SphinxTranslator.dispatch_departure calling depart_reference for <reference internal="True" refuri="genindex/"><inline classes="std std-ref">Index</inline></reference> SphinxTranslator.dispatch_departure calling depart_paragraph for <paragraph><reference internal="True" refuri="genindex/"><inline classes="std std-ref">Index</inline></reference></paragraph> SphinxTranslator.dispatch_departure calling depart_list_item for <list_item><paragraph><reference internal="True" refuri="genindex/"><inline classes="std std-ref">Index</inline></reference></paragraph></list_item> SphinxTranslator.dispatch_visit calling visit_list_item for <list_item><paragraph><reference internal="True" refuri="py-modindex/"><inline classes="std std-ref">Module Index</inline></reference></paragraph></list_item> SphinxTranslator.dispatch_visit calling visit_paragraph for <paragraph><reference internal="True" refuri="py-modindex/"><inline classes="std std-ref">Module Index</inline></reference></paragraph> SphinxTranslator.dispatch_visit calling visit_reference for <reference internal="True" refuri="py-modindex/"><inline classes="std std-ref">Module Index</inline></reference> SphinxTranslator.dispatch_visit calling visit_inline for <inline classes="std std-ref">Module Index</inline> SphinxTranslator.dispatch_visit calling visit_Text for Module Index SphinxTranslator.dispatch_departure calling depart_Text for Module Index SphinxTranslator.dispatch_departure calling depart_inline for <inline classes="std std-ref">Module Index</inline> SphinxTranslator.dispatch_departure calling depart_reference for <reference internal="True" refuri="py-modindex/"><inline classes="std std-ref">Module Index</inline></reference> SphinxTranslator.dispatch_departure calling depart_paragraph for <paragraph><reference internal="True" refuri="py-modindex/"><inline classes="std std-ref">Module Index</inline></reference></paragraph> SphinxTranslator.dispatch_departure calling depart_list_item for <list_item><paragraph><reference internal="True" refuri="py-modindex/"><inline classes="std std-ref">Module Index</inline></reference></paragraph></list_item> SphinxTranslator.dispatch_visit calling visit_list_item for <list_item><paragraph><reference internal="True" refuri="search/"><inline classes="std std-ref">Search Page</inline></reference></paragraph></list_item> SphinxTranslator.dispatch_visit calling visit_paragraph for <paragraph><reference internal="True" refuri="search/"><inline classes="std std-ref">Search Page</inline></reference></paragraph> SphinxTranslator.dispatch_visit calling visit_reference for <reference internal="True" refuri="search/"><inline classes="std std-ref">Search Page</inline></reference> SphinxTranslator.dispatch_visit calling visit_inline for <inline classes="std std-ref">Search Page</inline> SphinxTranslator.dispatch_visit calling visit_Text for Search Page SphinxTranslator.dispatch_departure calling depart_Text for Search Page SphinxTranslator.dispatch_departure calling depart_inline for <inline classes="std std-ref">Search Page</inline> SphinxTranslator.dispatch_departure calling depart_reference for <reference internal="True" refuri="search/"><inline classes="std std-ref">Search Page</inline></reference> SphinxTranslator.dispatch_departure calling depart_paragraph for <paragraph><reference internal="True" refuri="search/"><inline classes="std std-ref">Search Page</inline></reference></paragraph> SphinxTranslator.dispatch_departure calling depart_list_item for <list_item><paragraph><reference internal="True" refuri="search/"><inline classes="std std-ref">Search Page</inline></reference></paragraph></list_item> SphinxTranslator.dispatch_departure calling depart_bullet_list for <bullet_list bullet="*"><list_item><paragraph><reference internal="True" refuri="genindex/"><inline classes="std std-ref">Index</inline></reference></paragraph></list_item><list_item><paragraph><reference internal="True" refuri="py-modindex/"><inline classes="std std-ref">Module Index</inline></reference></paragraph></list_item><list_item><paragraph><reference internal="True" refuri="search/"><inline classes="std std-ref">Search Page</inline></reference></paragraph></list_item></bullet_list> SphinxTranslator.dispatch_departure calling depart_section for <section ids="indices-and-tables" names="indices\ and\ tables"><title>Indices and tables</title><bullet_list bullet="*"><list_item><paragraph><reference internal="True" refuri="genindex/"><inline classes="std std-ref">Index</inline></reference></paragraph></list_item><list_item><paragraph><reference internal="True" refuri="py-modindex/"><inline classes="std std-ref">Module Index</inline></reference></paragraph></list_item><list_item><paragraph><reference internal="True" refuri="search/"><inline classes="std std-ref">Search Page</inline></reference></paragraph></list_item></bullet_list></section> SphinxTranslator.dispatch_departure calling depart_document for <document source="/usr/src/RPM/BUILD/python3-module-blosc-1.5.1/doc/index.rst"><comment xml:space="preserve">python-blosc documentation master file, created by sphinx-quickstart on Sun May 5 19:38:24 2013. You can adapt this file completely to your liking, but it should at least contain the root `toctree` directive.</comment><section ids="welcome-to-python-blosc-s-documentation" names="welcome\ to\ python-blosc's\ documentation!"><title>Welcome to python-blosc’s documentation!</title><paragraph>Contents:</paragraph><compound classes="toctree-wrapper"><compact_paragraph toctree="True"><bullet_list><list_item classes="toctree-l1"><compact_paragraph classes="toctree-l1"><reference anchorname="" internal="True" refuri="intro/">Introduction</reference></compact_paragraph><bullet_list><list_item classes="toctree-l2"><compact_paragraph classes="toctree-l2"><reference anchorname="#what-is-python-blosc" internal="True" refuri="intro/#what-is-python-blosc">What is python-blosc?</reference></compact_paragraph></list_item><list_item classes="toctree-l2"><compact_paragraph classes="toctree-l2"><reference anchorname="#mailing-list" internal="True" refuri="intro/#mailing-list">Mailing list</reference></compact_paragraph></list_item></bullet_list></list_item><list_item classes="toctree-l1"><compact_paragraph classes="toctree-l1"><reference anchorname="" internal="True" refuri="install/">Installation</reference></compact_paragraph><bullet_list><list_item classes="toctree-l2"><compact_paragraph classes="toctree-l2"><reference anchorname="#installing-from-pypi-repository" internal="True" refuri="install/#installing-from-pypi-repository">Installing from PyPI repository</reference></compact_paragraph></list_item><list_item classes="toctree-l2"><compact_paragraph classes="toctree-l2"><reference anchorname="#building-manually" internal="True" refuri="install/#building-manually">Building manually</reference></compact_paragraph></list_item><list_item classes="toctree-l2"><compact_paragraph classes="toctree-l2"><reference anchorname="#testing" internal="True" refuri="install/#testing">Testing</reference></compact_paragraph></list_item><list_item classes="toctree-l2"><compact_paragraph classes="toctree-l2"><reference anchorname="#installing" internal="True" refuri="install/#installing">Installing</reference></compact_paragraph></list_item></bullet_list></list_item><list_item classes="toctree-l1"><compact_paragraph classes="toctree-l1"><reference anchorname="" internal="True" refuri="tutorial/">Tutorials</reference></compact_paragraph><bullet_list><list_item classes="toctree-l2"><compact_paragraph classes="toctree-l2"><reference anchorname="#compressing-and-decompressing-with-blosc" internal="True" refuri="tutorial/#compressing-and-decompressing-with-blosc">Compressing and decompressing with <literal>blosc</literal></reference></compact_paragraph></list_item><list_item classes="toctree-l2"><compact_paragraph classes="toctree-l2"><reference anchorname="#using-different-filters" internal="True" refuri="tutorial/#using-different-filters">Using different filters</reference></compact_paragraph></list_item><list_item classes="toctree-l2"><compact_paragraph classes="toctree-l2"><reference anchorname="#supporting-the-buffer-interface" internal="True" refuri="tutorial/#supporting-the-buffer-interface">Supporting the buffer interface</reference></compact_paragraph></list_item><list_item classes="toctree-l2"><compact_paragraph classes="toctree-l2"><reference anchorname="#packaging-numpy-arrays" internal="True" refuri="tutorial/#packaging-numpy-arrays">Packaging NumPy arrays</reference></compact_paragraph></list_item><list_item classes="toctree-l2"><compact_paragraph classes="toctree-l2"><reference anchorname="#compressing-from-a-data-pointer" internal="True" refuri="tutorial/#compressing-from-a-data-pointer">Compressing from a data pointer</reference></compact_paragraph></list_item><list_item classes="toctree-l2"><compact_paragraph classes="toctree-l2"><reference anchorname="#fine-tuning-compression-parameters" internal="True" refuri="tutorial/#fine-tuning-compression-parameters">Fine-tuning compression parameters</reference></compact_paragraph></list_item><list_item classes="toctree-l2"><compact_paragraph classes="toctree-l2"><reference anchorname="#links-to-external-discussions-on-blosc-optimization" internal="True" refuri="tutorial/#links-to-external-discussions-on-blosc-optimization">Links to external discussions on <literal>blosc</literal> optimization</reference></compact_paragraph></list_item></bullet_list></list_item><list_item classes="toctree-l1"><compact_paragraph classes="toctree-l1"><reference anchorname="" internal="True" refuri="reference/">Library Reference</reference></compact_paragraph><bullet_list><list_item classes="toctree-l2"><compact_paragraph classes="toctree-l2"><reference anchorname="#first-level-variables" internal="True" refuri="reference/#first-level-variables">First level variables</reference></compact_paragraph></list_item><list_item classes="toctree-l2"><compact_paragraph classes="toctree-l2"><reference anchorname="#module-blosc" internal="True" refuri="reference/#module-blosc">Public functions</reference></compact_paragraph></list_item><list_item classes="toctree-l2"><compact_paragraph classes="toctree-l2"><reference anchorname="#module-blosc" internal="True" refuri="reference/#module-blosc">Utilities</reference></compact_paragraph></list_item></bullet_list></list_item></bullet_list></compact_paragraph></compound></section><section ids="indices-and-tables" names="indices\ and\ tables"><title>Indices and tables</title><bullet_list bullet="*"><list_item><paragraph><reference internal="True" refuri="genindex/"><inline classes="std std-ref">Index</inline></reference></paragraph></list_item><list_item><paragraph><reference internal="True" refuri="py-modindex/"><inline classes="std std-ref">Module Index</inline></reference></paragraph></list_item><list_item><paragraph><reference internal="True" refuri="search/"><inline classes="std std-ref">Search Page</inline></reference></paragraph></list_item></bullet_list></section></document> SphinxTranslator.dispatch_visit calling visit_document for <document source="<partial node>"><title>Introduction</title></document> SphinxTranslator.dispatch_visit calling visit_title for <title>Introduction</title> SphinxTranslator.dispatch_visit calling visit_Text for Introduction SphinxTranslator.dispatch_departure calling depart_Text for Introduction SphinxTranslator.dispatch_departure calling depart_title for <title>Introduction</title> SphinxTranslator.dispatch_departure calling depart_document for <document source="<partial node>"><title>Introduction</title></document> SphinxTranslator.dispatch_visit calling visit_document for <document source="<partial node>"><title>Welcome to python-blosc’s documentation!</title></document> SphinxTranslator.dispatch_visit calling visit_title for <title>Welcome to python-blosc’s documentation!</title> SphinxTranslator.dispatch_visit calling visit_Text for Welcome to python-blosc’s documentation! SphinxTranslator.dispatch_departure calling depart_Text for Welcome to python-blosc’s documentation! SphinxTranslator.dispatch_departure calling depart_title for <title>Welcome to python-blosc’s documentation!</title> SphinxTranslator.dispatch_departure calling depart_document for <document source="<partial node>"><title>Welcome to python-blosc’s documentation!</title></document> SphinxTranslator.dispatch_visit calling visit_document for <document source="<partial node>"><bullet_list><list_item><compact_paragraph><reference anchorname="" internal="True" refuri="#">Welcome to python-blosc’s documentation!</reference></compact_paragraph><bullet_list><toctree caption="None" entries="[(None, 'intro'), (None, 'install'), (None, 'tutorial'), (None, 'reference')]" glob="False" hidden="False" includefiles="['intro', 'install', 'tutorial', 'reference']" includehidden="False" maxdepth="2" numbered="0" parent="index" rawentries="[]" titlesonly="False"/></bullet_list></list_item><list_item><compact_paragraph><reference anchorname="#indices-and-tables" internal="True" refuri="#indices-and-tables">Indices and tables</reference></compact_paragraph></list_item></bullet_list></document> SphinxTranslator.dispatch_visit calling visit_bullet_list for <bullet_list><list_item><compact_paragraph><reference anchorname="" internal="True" refuri="#">Welcome to python-blosc’s documentation!</reference></compact_paragraph><bullet_list><toctree caption="None" entries="[(None, 'intro'), (None, 'install'), (None, 'tutorial'), (None, 'reference')]" glob="False" hidden="False" includefiles="['intro', 'install', 'tutorial', 'reference']" includehidden="False" maxdepth="2" numbered="0" parent="index" rawentries="[]" titlesonly="False"/></bullet_list></list_item><list_item><compact_paragraph><reference anchorname="#indices-and-tables" internal="True" refuri="#indices-and-tables">Indices and tables</reference></compact_paragraph></list_item></bullet_list> SphinxTranslator.dispatch_visit calling visit_list_item for <list_item><compact_paragraph><reference anchorname="" internal="True" refuri="#">Welcome to python-blosc’s documentation!</reference></compact_paragraph><bullet_list><toctree caption="None" entries="[(None, 'intro'), (None, 'install'), (None, 'tutorial'), (None, 'reference')]" glob="False" hidden="False" includefiles="['intro', 'install', 'tutorial', 'reference']" includehidden="False" maxdepth="2" numbered="0" parent="index" rawentries="[]" titlesonly="False"/></bullet_list></list_item> SphinxTranslator.dispatch_visit calling visit_compact_paragraph for <compact_paragraph><reference anchorname="" internal="True" refuri="#">Welcome to python-blosc’s documentation!</reference></compact_paragraph> SphinxTranslator.dispatch_visit calling visit_reference for <reference anchorname="" internal="True" refuri="#">Welcome to python-blosc’s documentation!</reference> SphinxTranslator.dispatch_visit calling visit_Text for Welcome to python-blosc’s documentation! SphinxTranslator.dispatch_departure calling depart_Text for Welcome to python-blosc’s documentation! SphinxTranslator.dispatch_departure calling depart_reference for <reference anchorname="" internal="True" refuri="#">Welcome to python-blosc’s documentation!</reference> SphinxTranslator.dispatch_departure calling depart_compact_paragraph for <compact_paragraph><reference anchorname="" internal="True" refuri="#">Welcome to python-blosc’s documentation!</reference></compact_paragraph> SphinxTranslator.dispatch_visit calling visit_bullet_list for <bullet_list><toctree caption="None" entries="[(None, 'intro'), (None, 'install'), (None, 'tutorial'), (None, 'reference')]" glob="False" hidden="False" includefiles="['intro', 'install', 'tutorial', 'reference']" includehidden="False" maxdepth="2" numbered="0" parent="index" rawentries="[]" titlesonly="False"/></bullet_list> SphinxTranslator.dispatch_departure calling depart_list_item for <list_item><compact_paragraph><reference anchorname="" internal="True" refuri="#">Welcome to python-blosc’s documentation!</reference></compact_paragraph><bullet_list><toctree caption="None" entries="[(None, 'intro'), (None, 'install'), (None, 'tutorial'), (None, 'reference')]" glob="False" hidden="False" includefiles="['intro', 'install', 'tutorial', 'reference']" includehidden="False" maxdepth="2" numbered="0" parent="index" rawentries="[]" titlesonly="False"/></bullet_list></list_item> SphinxTranslator.dispatch_visit calling visit_list_item for <list_item><compact_paragraph><reference anchorname="#indices-and-tables" internal="True" refuri="#indices-and-tables">Indices and tables</reference></compact_paragraph></list_item> SphinxTranslator.dispatch_visit calling visit_compact_paragraph for <compact_paragraph><reference anchorname="#indices-and-tables" internal="True" refuri="#indices-and-tables">Indices and tables</reference></compact_paragraph> SphinxTranslator.dispatch_visit calling visit_reference for <reference anchorname="#indices-and-tables" internal="True" refuri="#indices-and-tables">Indices and tables</reference> SphinxTranslator.dispatch_visit calling visit_Text for Indices and tables SphinxTranslator.dispatch_departure calling depart_Text for Indices and tables SphinxTranslator.dispatch_departure calling depart_reference for <reference anchorname="#indices-and-tables" internal="True" refuri="#indices-and-tables">Indices and tables</reference> SphinxTranslator.dispatch_departure calling depart_compact_paragraph for <compact_paragraph><reference anchorname="#indices-and-tables" internal="True" refuri="#indices-and-tables">Indices and tables</reference></compact_paragraph> SphinxTranslator.dispatch_departure calling depart_list_item for <list_item><compact_paragraph><reference anchorname="#indices-and-tables" internal="True" refuri="#indices-and-tables">Indices and tables</reference></compact_paragraph></list_item> SphinxTranslator.dispatch_departure calling depart_bullet_list for <bullet_list><list_item><compact_paragraph><reference anchorname="" internal="True" refuri="#">Welcome to python-blosc’s documentation!</reference></compact_paragraph><bullet_list><toctree caption="None" entries="[(None, 'intro'), (None, 'install'), (None, 'tutorial'), (None, 'reference')]" glob="False" hidden="False" includefiles="['intro', 'install', 'tutorial', 'reference']" includehidden="False" maxdepth="2" numbered="0" parent="index" rawentries="[]" titlesonly="False"/></bullet_list></list_item><list_item><compact_paragraph><reference anchorname="#indices-and-tables" internal="True" refuri="#indices-and-tables">Indices and tables</reference></compact_paragraph></list_item></bullet_list> SphinxTranslator.dispatch_departure calling depart_document for <document source="<partial node>"><bullet_list><list_item><compact_paragraph><reference anchorname="" internal="True" refuri="#">Welcome to python-blosc’s documentation!</reference></compact_paragraph><bullet_list><toctree caption="None" entries="[(None, 'intro'), (None, 'install'), (None, 'tutorial'), (None, 'reference')]" glob="False" hidden="False" includefiles="['intro', 'install', 'tutorial', 'reference']" includehidden="False" maxdepth="2" numbered="0" parent="index" rawentries="[]" titlesonly="False"/></bullet_list></list_item><list_item><compact_paragraph><reference anchorname="#indices-and-tables" internal="True" refuri="#indices-and-tables">Indices and tables</reference></compact_paragraph></list_item></bullet_list></document> [app] emitting event: 'html-page-context'('index', 'page.html', {'parents': [], 'prev': None, 'next': {'link': 'intro/', 'title': 'Introducti writing output... [ 40%] install [app] emitting event: 'doctree-resolved'(<document: <section "installation"...>>, 'install') SphinxTranslator.dispatch_visit calling visit_document for <document source="<partial node>"><title>Installation</title></document> SphinxTranslator.dispatch_visit calling visit_title for <title>Installation</title> SphinxTranslator.dispatch_visit calling visit_Text for Installation SphinxTranslator.dispatch_departure calling depart_Text for Installation SphinxTranslator.dispatch_departure calling depart_title for <title>Installation</title> SphinxTranslator.dispatch_departure calling depart_document for <document source="<partial node>"><title>Installation</title></document> SphinxTranslator.dispatch_visit calling visit_document for <document source="/usr/src/RPM/BUILD/python3-module-blosc-1.5.1/doc/install.rst"><section ids="installation" names="installation"><title>Installation</title><paragraph>python-blosc comes with C Blosc sources, so it does not depend on any other library (bar Python itself of course). Of course, if you are going to install from sources, you are going to need a C compiler (GCC, clang and MSVC 2008/2010/2012/2015 have been tested).</paragraph><paragraph>Also, there are situations where you may want to link with an already existing Blosc library in your system. You can do that too.</paragraph><paragraph>This package supports Python 2.6, 2.7 and 3.3 or higher versions.</paragraph><section ids="installing-from-pypi-repository" names="installing\ from\ pypi\ repository"><title>Installing from PyPI repository</title><paragraph>Do:</paragraph><literal_block force="False" highlight_args="{}" language="console" linenos="False" xml:space="preserve">$ pip install -U blosc</literal_block></section><section ids="building-manually" names="building\ manually"><title>Building manually</title><paragraph>First, go to the python-blosc official repository at <reference refuri="https://github.com/Blosc/python-blosc">https://github.com/Blosc/python-blosc</reference> and download the sources.</paragraph><paragraph>Then, there are different ways to compile python-blosc, depending on whether you want to link with an already installed Blosc library or not.</paragraph><section ids="compiling-without-an-installed-blosc-library" names="compiling\ without\ an\ installed\ blosc\ library"><title>Compiling without an installed Blosc library</title><paragraph>python-blosc comes with the Blosc sources with it so, assuming that you have a C compiler installed, do:</paragraph><literal_block force="False" highlight_args="{}" language="console" linenos="False" xml:space="preserve">$ python setup.py build_ext --inplace</literal_block><paragraph>That’s all. You can proceed with testing section now.</paragraph></section><section ids="compiling-with-an-installed-blosc-library" names="compiling\ with\ an\ installed\ blosc\ library"><title>Compiling with an installed Blosc library</title><paragraph>In case you have Blosc installed as an external library (and disregard the included Blosc sources) you can link with it in a couple of ways.</paragraph><paragraph>Using an environment variable:</paragraph><literal_block force="False" highlight_args="{}" language="console" linenos="False" xml:space="preserve">$ BLOSC_DIR=/usr/local (or "set BLOSC_DIR=\blosc" on Win) $ export BLOSC_DIR (not needed on Win) $ python setup.py build_ext --inplace</literal_block><paragraph>Using a flag:</paragraph><literal_block force="False" highlight_args="{}" language="console" linenos="False" xml:space="preserve">$ python setup.py build_ext --inplace --blosc=/usr/local</literal_block></section><section ids="generating-sphinx-documentation" names="generating\ sphinx\ documentation"><title>Generating Sphinx documentation</title><paragraph>In case you want to generate the documentation locally, you will need to have the <literal>Sphinx</literal> documentation system, as well as the <literal>numpydoc</literal> extension, installed. Then go down to <literal>doc/</literal> directory and do:</paragraph><literal_block force="False" highlight_args="{}" language="console" linenos="False" xml:space="preserve">$ make html|latex|latexpdf</literal_block></section></section><section ids="testing" names="testing"><title>Testing</title><paragraph>After compiling, you can quickly check that the package is sane by running the doctests in <literal>blosc/test.py</literal>:</paragraph><literal_block force="False" highlight_args="{}" language="console" linenos="False" xml:space="preserve">$ PYTHONPATH=. (or "set PYTHONPATH=." on Win) $ export PYTHONPATH=. (not needed on Win) $ python blosc/test.py (add -v for verbose mode)</literal_block><paragraph>Or alternatively, you can use the third-party <literal>nosetests</literal> script to run both the doctests and the test suite:</paragraph><literal_block force="False" highlight_args="{}" language="console" linenos="False" xml:space="preserve">$ nosetests --with-doctest (add -v for verbose mode)</literal_block><paragraph>Once installed, you can re-run the tests at any time with:</paragraph><literal_block force="False" highlight_args="{}" language="console" linenos="False" xml:space="preserve">$ python -c "import blosc; blosc.test()"</literal_block></section><section ids="installing" names="installing"><title>Installing</title><paragraph>Install it as a typical Python package:</paragraph><literal_block force="False" highlight_args="{}" language="console" linenos="False" xml:space="preserve">$ python setup.py install</literal_block></section></section></document> SphinxTranslator.dispatch_visit calling visit_section for <section ids="installation" names="installation"><title>Installation</title><paragraph>python-blosc comes with C Blosc sources, so it does not depend on any other library (bar Python itself of course). Of course, if you are going to install from sources, you are going to need a C compiler (GCC, clang and MSVC 2008/2010/2012/2015 have been tested).</paragraph><paragraph>Also, there are situations where you may want to link with an already existing Blosc library in your system. You can do that too.</paragraph><paragraph>This package supports Python 2.6, 2.7 and 3.3 or higher versions.</paragraph><section ids="installing-from-pypi-repository" names="installing\ from\ pypi\ repository"><title>Installing from PyPI repository</title><paragraph>Do:</paragraph><literal_block force="False" highlight_args="{}" language="console" linenos="False" xml:space="preserve">$ pip install -U blosc</literal_block></section><section ids="building-manually" names="building\ manually"><title>Building manually</title><paragraph>First, go to the python-blosc official repository at <reference refuri="https://github.com/Blosc/python-blosc">https://github.com/Blosc/python-blosc</reference> and download the sources.</paragraph><paragraph>Then, there are different ways to compile python-blosc, depending on whether you want to link with an already installed Blosc library or not.</paragraph><section ids="compiling-without-an-installed-blosc-library" names="compiling\ without\ an\ installed\ blosc\ library"><title>Compiling without an installed Blosc library</title><paragraph>python-blosc comes with the Blosc sources with it so, assuming that you have a C compiler installed, do:</paragraph><literal_block force="False" highlight_args="{}" language="console" linenos="False" xml:space="preserve">$ python setup.py build_ext --inplace</literal_block><paragraph>That’s all. You can proceed with testing section now.</paragraph></section><section ids="compiling-with-an-installed-blosc-library" names="compiling\ with\ an\ installed\ blosc\ library"><title>Compiling with an installed Blosc library</title><paragraph>In case you have Blosc installed as an external library (and disregard the included Blosc sources) you can link with it in a couple of ways.</paragraph><paragraph>Using an environment variable:</paragraph><literal_block force="False" highlight_args="{}" language="console" linenos="False" xml:space="preserve">$ BLOSC_DIR=/usr/local (or "set BLOSC_DIR=\blosc" on Win) $ export BLOSC_DIR (not needed on Win) $ python setup.py build_ext --inplace</literal_block><paragraph>Using a flag:</paragraph><literal_block force="False" highlight_args="{}" language="console" linenos="False" xml:space="preserve">$ python setup.py build_ext --inplace --blosc=/usr/local</literal_block></section><section ids="generating-sphinx-documentation" names="generating\ sphinx\ documentation"><title>Generating Sphinx documentation</title><paragraph>In case you want to generate the documentation locally, you will need to have the <literal>Sphinx</literal> documentation system, as well as the <literal>numpydoc</literal> extension, installed. Then go down to <literal>doc/</literal> directory and do:</paragraph><literal_block force="False" highlight_args="{}" language="console" linenos="False" xml:space="preserve">$ make html|latex|latexpdf</literal_block></section></section><section ids="testing" names="testing"><title>Testing</title><paragraph>After compiling, you can quickly check that the package is sane by running the doctests in <literal>blosc/test.py</literal>:</paragraph><literal_block force="False" highlight_args="{}" language="console" linenos="False" xml:space="preserve">$ PYTHONPATH=. (or "set PYTHONPATH=." on Win) $ export PYTHONPATH=. (not needed on Win) $ python blosc/test.py (add -v for verbose mode)</literal_block><paragraph>Or alternatively, you can use the third-party <literal>nosetests</literal> script to run both the doctests and the test suite:</paragraph><literal_block force="False" highlight_args="{}" language="console" linenos="False" xml:space="preserve">$ nosetests --with-doctest (add -v for verbose mode)</literal_block><paragraph>Once installed, you can re-run the tests at any time with:</paragraph><literal_block force="False" highlight_args="{}" language="console" linenos="False" xml:space="preserve">$ python -c "import blosc; blosc.test()"</literal_block></section><section ids="installing" names="installing"><title>Installing</title><paragraph>Install it as a typical Python package:</paragraph><literal_block force="False" highlight_args="{}" language="console" linenos="False" xml:space="preserve">$ python setup.py install</literal_block></section></section> SphinxTranslator.dispatch_visit calling visit_title for <title>Installation</title> SphinxTranslator.dispatch_visit calling visit_Text for Installation SphinxTranslator.dispatch_departure calling depart_Text for Installation SphinxTranslator.dispatch_departure calling depart_title for <title>Installation</title> SphinxTranslator.dispatch_visit calling visit_paragraph for <paragraph>python-blosc comes with C Blosc sources, so it does not depend on any other library (bar Python itself of course). Of course, if you are going to install from sources, you are going to need a C compiler (GCC, clang and MSVC 2008/2010/2012/2015 have been tested).</paragraph> SphinxTranslator.dispatch_visit calling visit_Text for python-blosc comes with C Blosc sources, so it does not depend on any other library (bar Python itself of course). Of course, if you are going to install from sources, you are going to need a C compiler (GCC, clang and MSVC 2008/2010/2012/2015 have been tested). SphinxTranslator.dispatch_departure calling depart_Text for python-blosc comes with C Blosc sources, so it does not depend on any other library (bar Python itself of course). Of course, if you are going to install from sources, you are going to need a C compiler (GCC, clang and MSVC 2008/2010/2012/2015 have been tested). SphinxTranslator.dispatch_departure calling depart_paragraph for <paragraph>python-blosc comes with C Blosc sources, so it does not depend on any other library (bar Python itself of course). Of course, if you are going to install from sources, you are going to need a C compiler (GCC, clang and MSVC 2008/2010/2012/2015 have been tested).</paragraph> SphinxTranslator.dispatch_visit calling visit_paragraph for <paragraph>Also, there are situations where you may want to link with an already existing Blosc library in your system. You can do that too.</paragraph> SphinxTranslator.dispatch_visit calling visit_Text for Also, there are situations where you may want to link with an already existing Blosc library in your system. You can do that too. SphinxTranslator.dispatch_departure calling depart_Text for Also, there are situations where you may want to link with an already existing Blosc library in your system. You can do that too. SphinxTranslator.dispatch_departure calling depart_paragraph for <paragraph>Also, there are situations where you may want to link with an already existing Blosc library in your system. You can do that too.</paragraph> SphinxTranslator.dispatch_visit calling visit_paragraph for <paragraph>This package supports Python 2.6, 2.7 and 3.3 or higher versions.</paragraph> SphinxTranslator.dispatch_visit calling visit_Text for This package supports Python 2.6, 2.7 and 3.3 or higher versions. SphinxTranslator.dispatch_departure calling depart_Text for This package supports Python 2.6, 2.7 and 3.3 or higher versions. SphinxTranslator.dispatch_departure calling depart_paragraph for <paragraph>This package supports Python 2.6, 2.7 and 3.3 or higher versions.</paragraph> SphinxTranslator.dispatch_visit calling visit_section for <section ids="installing-from-pypi-repository" names="installing\ from\ pypi\ repository"><title>Installing from PyPI repository</title><paragraph>Do:</paragraph><literal_block force="False" highlight_args="{}" language="console" linenos="False" xml:space="preserve">$ pip install -U blosc</literal_block></section> SphinxTranslator.dispatch_visit calling visit_title for <title>Installing from PyPI repository</title> SphinxTranslator.dispatch_visit calling visit_Text for Installing from PyPI repository SphinxTranslator.dispatch_departure calling depart_Text for Installing from PyPI repository SphinxTranslator.dispatch_departure calling depart_title for <title>Installing from PyPI repository</title> SphinxTranslator.dispatch_visit calling visit_paragraph for <paragraph>Do:</paragraph> SphinxTranslator.dispatch_visit calling visit_Text for Do: SphinxTranslator.dispatch_departure calling depart_Text for Do: SphinxTranslator.dispatch_departure calling depart_paragraph for <paragraph>Do:</paragraph> SphinxTranslator.dispatch_visit calling visit_literal_block for <literal_block force="False" highlight_args="{}" language="console" linenos="False" xml:space="preserve">$ pip install -U blosc</literal_block> SphinxTranslator.dispatch_departure calling depart_section for <section ids="installing-from-pypi-repository" names="installing\ from\ pypi\ repository"><title>Installing from PyPI repository</title><paragraph>Do:</paragraph><literal_block force="False" highlight_args="{'force': False}" language="console" linenos="False" xml:space="preserve">$ pip install -U blosc</literal_block></section> SphinxTranslator.dispatch_visit calling visit_section for <section ids="building-manually" names="building\ manually"><title>Building manually</title><paragraph>First, go to the python-blosc official repository at <reference refuri="https://github.com/Blosc/python-blosc">https://github.com/Blosc/python-blosc</reference> and download the sources.</paragraph><paragraph>Then, there are different ways to compile python-blosc, depending on whether you want to link with an already installed Blosc library or not.</paragraph><section ids="compiling-without-an-installed-blosc-library" names="compiling\ without\ an\ installed\ blosc\ library"><title>Compiling without an installed Blosc library</title><paragraph>python-blosc comes with the Blosc sources with it so, assuming that you have a C compiler installed, do:</paragraph><literal_block force="False" highlight_args="{}" language="console" linenos="False" xml:space="preserve">$ python setup.py build_ext --inplace</literal_block><paragraph>That’s all. You can proceed with testing section now.</paragraph></section><section ids="compiling-with-an-installed-blosc-library" names="compiling\ with\ an\ installed\ blosc\ library"><title>Compiling with an installed Blosc library</title><paragraph>In case you have Blosc installed as an external library (and disregard the included Blosc sources) you can link with it in a couple of ways.</paragraph><paragraph>Using an environment variable:</paragraph><literal_block force="False" highlight_args="{}" language="console" linenos="False" xml:space="preserve">$ BLOSC_DIR=/usr/local (or "set BLOSC_DIR=\blosc" on Win) $ export BLOSC_DIR (not needed on Win) $ python setup.py build_ext --inplace</literal_block><paragraph>Using a flag:</paragraph><literal_block force="False" highlight_args="{}" language="console" linenos="False" xml:space="preserve">$ python setup.py build_ext --inplace --blosc=/usr/local</literal_block></section><section ids="generating-sphinx-documentation" names="generating\ sphinx\ documentation"><title>Generating Sphinx documentation</title><paragraph>In case you want to generate the documentation locally, you will need to have the <literal>Sphinx</literal> documentation system, as well as the <literal>numpydoc</literal> extension, installed. Then go down to <literal>doc/</literal> directory and do:</paragraph><literal_block force="False" highlight_args="{}" language="console" linenos="False" xml:space="preserve">$ make html|latex|latexpdf</literal_block></section></section> SphinxTranslator.dispatch_visit calling visit_title for <title>Building manually</title> SphinxTranslator.dispatch_visit calling visit_Text for Building manually SphinxTranslator.dispatch_departure calling depart_Text for Building manually SphinxTranslator.dispatch_departure calling depart_title for <title>Building manually</title> SphinxTranslator.dispatch_visit calling visit_paragraph for <paragraph>First, go to the python-blosc official repository at <reference refuri="https://github.com/Blosc/python-blosc">https://github.com/Blosc/python-blosc</reference> and download the sources.</paragraph> SphinxTranslator.dispatch_visit calling visit_Text for First, go to the python-blosc official repository at SphinxTranslator.dispatch_departure calling depart_Text for First, go to the python-blosc official repository at SphinxTranslator.dispatch_visit calling visit_reference for <reference refuri="https://github.com/Blosc/python-blosc">https://github.com/Blosc/python-blosc</reference> SphinxTranslator.dispatch_visit calling visit_Text for https://github.com/Blosc/python-blosc SphinxTranslator.dispatch_departure calling depart_Text for https://github.com/Blosc/python-blosc SphinxTranslator.dispatch_departure calling depart_reference for <reference refuri="https://github.com/Blosc/python-blosc">https://github.com/Blosc/python-blosc</reference> SphinxTranslator.dispatch_visit calling visit_Text for and download the sources. SphinxTranslator.dispatch_departure calling depart_Text for and download the sources. SphinxTranslator.dispatch_departure calling depart_paragraph for <paragraph>First, go to the python-blosc official repository at <reference refuri="https://github.com/Blosc/python-blosc">https://github.com/Blosc/python-blosc</reference> and download the sources.</paragraph> SphinxTranslator.dispatch_visit calling visit_paragraph for <paragraph>Then, there are different ways to compile python-blosc, depending on whether you want to link with an already installed Blosc library or not.</paragraph> SphinxTranslator.dispatch_visit calling visit_Text for Then, there are different ways to compile python-blosc, depending on whether you want to link with an already installed Blosc library or not. SphinxTranslator.dispatch_departure calling depart_Text for Then, there are different ways to compile python-blosc, depending on whether you want to link with an already installed Blosc library or not. SphinxTranslator.dispatch_departure calling depart_paragraph for <paragraph>Then, there are different ways to compile python-blosc, depending on whether you want to link with an already installed Blosc library or not.</paragraph> SphinxTranslator.dispatch_visit calling visit_section for <section ids="compiling-without-an-installed-blosc-library" names="compiling\ without\ an\ installed\ blosc\ library"><title>Compiling without an installed Blosc library</title><paragraph>python-blosc comes with the Blosc sources with it so, assuming that you have a C compiler installed, do:</paragraph><literal_block force="False" highlight_args="{}" language="console" linenos="False" xml:space="preserve">$ python setup.py build_ext --inplace</literal_block><paragraph>That’s all. You can proceed with testing section now.</paragraph></section> SphinxTranslator.dispatch_visit calling visit_title for <title>Compiling without an installed Blosc library</title> SphinxTranslator.dispatch_visit calling visit_Text for Compiling without an installed Blosc library SphinxTranslator.dispatch_departure calling depart_Text for Compiling without an installed Blosc library SphinxTranslator.dispatch_departure calling depart_title for <title>Compiling without an installed Blosc library</title> SphinxTranslator.dispatch_visit calling visit_paragraph for <paragraph>python-blosc comes with the Blosc sources with it so, assuming that you have a C compiler installed, do:</paragraph> SphinxTranslator.dispatch_visit calling visit_Text for python-blosc comes with the Blosc sources with it so, assuming that you have a C compiler installed, do: SphinxTranslator.dispatch_departure calling depart_Text for python-blosc comes with the Blosc sources with it so, assuming that you have a C compiler installed, do: SphinxTranslator.dispatch_departure calling depart_paragraph for <paragraph>python-blosc comes with the Blosc sources with it so, assuming that you have a C compiler installed, do:</paragraph> SphinxTranslator.dispatch_visit calling visit_literal_block for <literal_block force="False" highlight_args="{}" language="console" linenos="False" xml:space="preserve">$ python setup.py build_ext --inplace</literal_block> SphinxTranslator.dispatch_visit calling visit_paragraph for <paragraph>That’s all. You can proceed with testing section now.</paragraph> SphinxTranslator.dispatch_visit calling visit_Text for That’s all. You can proceed with testing section now. SphinxTranslator.dispatch_departure calling depart_Text for That’s all. You can proceed with testing section now. SphinxTranslator.dispatch_departure calling depart_paragraph for <paragraph>That’s all. You can proceed with testing section now.</paragraph> SphinxTranslator.dispatch_departure calling depart_section for <section ids="compiling-without-an-installed-blosc-library" names="compiling\ without\ an\ installed\ blosc\ library"><title>Compiling without an installed Blosc library</title><paragraph>python-blosc comes with the Blosc sources with it so, assuming that you have a C compiler installed, do:</paragraph><literal_block force="False" highlight_args="{'force': False}" language="console" linenos="False" xml:space="preserve">$ python setup.py build_ext --inplace</literal_block><paragraph>That’s all. You can proceed with testing section now.</paragraph></section> SphinxTranslator.dispatch_visit calling visit_section for <section ids="compiling-with-an-installed-blosc-library" names="compiling\ with\ an\ installed\ blosc\ library"><title>Compiling with an installed Blosc library</title><paragraph>In case you have Blosc installed as an external library (and disregard the included Blosc sources) you can link with it in a couple of ways.</paragraph><paragraph>Using an environment variable:</paragraph><literal_block force="False" highlight_args="{}" language="console" linenos="False" xml:space="preserve">$ BLOSC_DIR=/usr/local (or "set BLOSC_DIR=\blosc" on Win) $ export BLOSC_DIR (not needed on Win) $ python setup.py build_ext --inplace</literal_block><paragraph>Using a flag:</paragraph><literal_block force="False" highlight_args="{}" language="console" linenos="False" xml:space="preserve">$ python setup.py build_ext --inplace --blosc=/usr/local</literal_block></section> SphinxTranslator.dispatch_visit calling visit_title for <title>Compiling with an installed Blosc library</title> SphinxTranslator.dispatch_visit calling visit_Text for Compiling with an installed Blosc library SphinxTranslator.dispatch_departure calling depart_Text for Compiling with an installed Blosc library SphinxTranslator.dispatch_departure calling depart_title for <title>Compiling with an installed Blosc library</title> SphinxTranslator.dispatch_visit calling visit_paragraph for <paragraph>In case you have Blosc installed as an external library (and disregard the included Blosc sources) you can link with it in a couple of ways.</paragraph> SphinxTranslator.dispatch_visit calling visit_Text for In case you have Blosc installed as an external library (and disregard the included Blosc sources) you can link with it in a couple of ways. SphinxTranslator.dispatch_departure calling depart_Text for In case you have Blosc installed as an external library (and disregard the included Blosc sources) you can link with it in a couple of ways. SphinxTranslator.dispatch_departure calling depart_paragraph for <paragraph>In case you have Blosc installed as an external library (and disregard the included Blosc sources) you can link with it in a couple of ways.</paragraph> SphinxTranslator.dispatch_visit calling visit_paragraph for <paragraph>Using an environment variable:</paragraph> SphinxTranslator.dispatch_visit calling visit_Text for Using an environment variable: SphinxTranslator.dispatch_departure calling depart_Text for Using an environment variable: SphinxTranslator.dispatch_departure calling depart_paragraph for <paragraph>Using an environment variable:</paragraph> SphinxTranslator.dispatch_visit calling visit_literal_block for <literal_block force="False" highlight_args="{}" language="console" linenos="False" xml:space="preserve">$ BLOSC_DIR=/usr/local (or "set BLOSC_DIR=\blosc" on Win) $ export BLOSC_DIR (not needed on Win) $ python setup.py build_ext --inplace</literal_block> SphinxTranslator.dispatch_visit calling visit_paragraph for <paragraph>Using a flag:</paragraph> SphinxTranslator.dispatch_visit calling visit_Text for Using a flag: SphinxTranslator.dispatch_departure calling depart_Text for Using a flag: SphinxTranslator.dispatch_departure calling depart_paragraph for <paragraph>Using a flag:</paragraph> SphinxTranslator.dispatch_visit calling visit_literal_block for <literal_block force="False" highlight_args="{}" language="console" linenos="False" xml:space="preserve">$ python setup.py build_ext --inplace --blosc=/usr/local</literal_block> SphinxTranslator.dispatch_departure calling depart_section for <section ids="compiling-with-an-installed-blosc-library" names="compiling\ with\ an\ installed\ blosc\ library"><title>Compiling with an installed Blosc library</title><paragraph>In case you have Blosc installed as an external library (and disregard the included Blosc sources) you can link with it in a couple of ways.</paragraph><paragraph>Using an environment variable:</paragraph><literal_block force="False" highlight_args="{'force': False}" language="console" linenos="False" xml:space="preserve">$ BLOSC_DIR=/usr/local (or "set BLOSC_DIR=\blosc" on Win) $ export BLOSC_DIR (not needed on Win) $ python setup.py build_ext --inplace</literal_block><paragraph>Using a flag:</paragraph><literal_block force="False" highlight_args="{'force': False}" language="console" linenos="False" xml:space="preserve">$ python setup.py build_ext --inplace --blosc=/usr/local</literal_block></section> SphinxTranslator.dispatch_visit calling visit_section for <section ids="generating-sphinx-documentation" names="generating\ sphinx\ documentation"><title>Generating Sphinx documentation</title><paragraph>In case you want to generate the documentation locally, you will need to have the <literal>Sphinx</literal> documentation system, as well as the <literal>numpydoc</literal> extension, installed. Then go down to <literal>doc/</literal> directory and do:</paragraph><literal_block force="False" highlight_args="{}" language="console" linenos="False" xml:space="preserve">$ make html|latex|latexpdf</literal_block></section> SphinxTranslator.dispatch_visit calling visit_title for <title>Generating Sphinx documentation</title> SphinxTranslator.dispatch_visit calling visit_Text for Generating Sphinx documentation SphinxTranslator.dispatch_departure calling depart_Text for Generating Sphinx documentation SphinxTranslator.dispatch_departure calling depart_title for <title>Generating Sphinx documentation</title> SphinxTranslator.dispatch_visit calling visit_paragraph for <paragraph>In case you want to generate the documentation locally, you will need to have the <literal>Sphinx</literal> documentation system, as well as the <literal>numpydoc</literal> extension, installed. Then go down to <literal>doc/</literal> directory and do:</paragraph> SphinxTranslator.dispatch_visit calling visit_Text for In case you want to generate the documentation locally, you will need to have the SphinxTranslator.dispatch_departure calling depart_Text for In case you want to generate the documentation locally, you will need to have the SphinxTranslator.dispatch_visit calling visit_literal for <literal>Sphinx</literal> SphinxTranslator.dispatch_visit calling visit_Text for Sphinx SphinxTranslator.dispatch_departure calling depart_Text for Sphinx SphinxTranslator.dispatch_departure calling depart_literal for <literal>Sphinx</literal> SphinxTranslator.dispatch_visit calling visit_Text for documentation system, as well as the SphinxTranslator.dispatch_departure calling depart_Text for documentation system, as well as the SphinxTranslator.dispatch_visit calling visit_literal for <literal>numpydoc</literal> SphinxTranslator.dispatch_visit calling visit_Text for numpydoc SphinxTranslator.dispatch_departure calling depart_Text for numpydoc SphinxTranslator.dispatch_departure calling depart_literal for <literal>numpydoc</literal> SphinxTranslator.dispatch_visit calling visit_Text for extension, installed. Then go down to SphinxTranslator.dispatch_departure calling depart_Text for extension, installed. Then go down to SphinxTranslator.dispatch_visit calling visit_literal for <literal>doc/</literal> SphinxTranslator.dispatch_visit calling visit_Text for doc/ SphinxTranslator.dispatch_departure calling depart_Text for doc/ SphinxTranslator.dispatch_departure calling depart_literal for <literal>doc/</literal> SphinxTranslator.dispatch_visit calling visit_Text for directory and do: SphinxTranslator.dispatch_departure calling depart_Text for directory and do: SphinxTranslator.dispatch_departure calling depart_paragraph for <paragraph>In case you want to generate the documentation locally, you will need to have the <literal>Sphinx</literal> documentation system, as well as the <literal>numpydoc</literal> extension, installed. Then go down to <literal>doc/</literal> directory and do:</paragraph> SphinxTranslator.dispatch_visit calling visit_literal_block for <literal_block force="False" highlight_args="{}" language="console" linenos="False" xml:space="preserve">$ make html|latex|latexpdf</literal_block> SphinxTranslator.dispatch_departure calling depart_section for <section ids="generating-sphinx-documentation" names="generating\ sphinx\ documentation"><title>Generating Sphinx documentation</title><paragraph>In case you want to generate the documentation locally, you will need to have the <literal>Sphinx</literal> documentation system, as well as the <literal>numpydoc</literal> extension, installed. Then go down to <literal>doc/</literal> directory and do:</paragraph><literal_block force="False" highlight_args="{'force': False}" language="console" linenos="False" xml:space="preserve">$ make html|latex|latexpdf</literal_block></section> SphinxTranslator.dispatch_departure calling depart_section for <section ids="building-manually" names="building\ manually"><title>Building manually</title><paragraph>First, go to the python-blosc official repository at <reference refuri="https://github.com/Blosc/python-blosc">https://github.com/Blosc/python-blosc</reference> and download the sources.</paragraph><paragraph>Then, there are different ways to compile python-blosc, depending on whether you want to link with an already installed Blosc library or not.</paragraph><section ids="compiling-without-an-installed-blosc-library" names="compiling\ without\ an\ installed\ blosc\ library"><title>Compiling without an installed Blosc library</title><paragraph>python-blosc comes with the Blosc sources with it so, assuming that you have a C compiler installed, do:</paragraph><literal_block force="False" highlight_args="{'force': False}" language="console" linenos="False" xml:space="preserve">$ python setup.py build_ext --inplace</literal_block><paragraph>That’s all. You can proceed with testing section now.</paragraph></section><section ids="compiling-with-an-installed-blosc-library" names="compiling\ with\ an\ installed\ blosc\ library"><title>Compiling with an installed Blosc library</title><paragraph>In case you have Blosc installed as an external library (and disregard the included Blosc sources) you can link with it in a couple of ways.</paragraph><paragraph>Using an environment variable:</paragraph><literal_block force="False" highlight_args="{'force': False}" language="console" linenos="False" xml:space="preserve">$ BLOSC_DIR=/usr/local (or "set BLOSC_DIR=\blosc" on Win) $ export BLOSC_DIR (not needed on Win) $ python setup.py build_ext --inplace</literal_block><paragraph>Using a flag:</paragraph><literal_block force="False" highlight_args="{'force': False}" language="console" linenos="False" xml:space="preserve">$ python setup.py build_ext --inplace --blosc=/usr/local</literal_block></section><section ids="generating-sphinx-documentation" names="generating\ sphinx\ documentation"><title>Generating Sphinx documentation</title><paragraph>In case you want to generate the documentation locally, you will need to have the <literal>Sphinx</literal> documentation system, as well as the <literal>numpydoc</literal> extension, installed. Then go down to <literal>doc/</literal> directory and do:</paragraph><literal_block force="False" highlight_args="{'force': False}" language="console" linenos="False" xml:space="preserve">$ make html|latex|latexpdf</literal_block></section></section> SphinxTranslator.dispatch_visit calling visit_section for <section ids="testing" names="testing"><title>Testing</title><paragraph>After compiling, you can quickly check that the package is sane by running the doctests in <literal>blosc/test.py</literal>:</paragraph><literal_block force="False" highlight_args="{}" language="console" linenos="False" xml:space="preserve">$ PYTHONPATH=. (or "set PYTHONPATH=." on Win) $ export PYTHONPATH=. (not needed on Win) $ python blosc/test.py (add -v for verbose mode)</literal_block><paragraph>Or alternatively, you can use the third-party <literal>nosetests</literal> script to run both the doctests and the test suite:</paragraph><literal_block force="False" highlight_args="{}" language="console" linenos="False" xml:space="preserve">$ nosetests --with-doctest (add -v for verbose mode)</literal_block><paragraph>Once installed, you can re-run the tests at any time with:</paragraph><literal_block force="False" highlight_args="{}" language="console" linenos="False" xml:space="preserve">$ python -c "import blosc; blosc.test()"</literal_block></section> SphinxTranslator.dispatch_visit calling visit_title for <title>Testing</title> SphinxTranslator.dispatch_visit calling visit_Text for Testing SphinxTranslator.dispatch_departure calling depart_Text for Testing SphinxTranslator.dispatch_departure calling depart_title for <title>Testing</title> SphinxTranslator.dispatch_visit calling visit_paragraph for <paragraph>After compiling, you can quickly check that the package is sane by running the doctests in <literal>blosc/test.py</literal>:</paragraph> SphinxTranslator.dispatch_visit calling visit_Text for After compiling, you can quickly check that the package is sane by running the doctests in SphinxTranslator.dispatch_departure calling depart_Text for After compiling, you can quickly check that the package is sane by running the doctests in SphinxTranslator.dispatch_visit calling visit_literal for <literal>blosc/test.py</literal> SphinxTranslator.dispatch_visit calling visit_Text for blosc/test.py SphinxTranslator.dispatch_departure calling depart_Text for blosc/test.py SphinxTranslator.dispatch_departure calling depart_literal for <literal>blosc/test.py</literal> SphinxTranslator.dispatch_visit calling visit_Text for : SphinxTranslator.dispatch_departure calling depart_Text for : SphinxTranslator.dispatch_departure calling depart_paragraph for <paragraph>After compiling, you can quickly check that the package is sane by running the doctests in <literal>blosc/test.py</literal>:</paragraph> SphinxTranslator.dispatch_visit calling visit_literal_block for <literal_block force="False" highlight_args="{}" language="console" linenos="False" xml:space="preserve">$ PYTHONPATH=. (or "set PYTHONPATH=." on Win) $ export PYTHONPATH=. (not needed on Win) $ python blosc/test.py (add -v for verbose mode)</literal_block> SphinxTranslator.dispatch_visit calling visit_paragraph for <paragraph>Or alternatively, you can use the third-party <literal>nosetests</literal> script to run both the doctests and the test suite:</paragraph> SphinxTranslator.dispatch_visit calling visit_Text for Or alternatively, you can use the third-party SphinxTranslator.dispatch_departure calling depart_Text for Or alternatively, you can use the third-party SphinxTranslator.dispatch_visit calling visit_literal for <literal>nosetests</literal> SphinxTranslator.dispatch_visit calling visit_Text for nosetests SphinxTranslator.dispatch_departure calling depart_Text for nosetests SphinxTranslator.dispatch_departure calling depart_literal for <literal>nosetests</literal> SphinxTranslator.dispatch_visit calling visit_Text for script to run both the doctests and the test suite: SphinxTranslator.dispatch_departure calling depart_Text for script to run both the doctests and the test suite: SphinxTranslator.dispatch_departure calling depart_paragraph for <paragraph>Or alternatively, you can use the third-party <literal>nosetests</literal> script to run both the doctests and the test suite:</paragraph> SphinxTranslator.dispatch_visit calling visit_literal_block for <literal_block force="False" highlight_args="{}" language="console" linenos="False" xml:space="preserve">$ nosetests --with-doctest (add -v for verbose mode)</literal_block> SphinxTranslator.dispatch_visit calling visit_paragraph for <paragraph>Once installed, you can re-run the tests at any time with:</paragraph> SphinxTranslator.dispatch_visit calling visit_Text for Once installed, you can re-run the tests at any time with: SphinxTranslator.dispatch_departure calling depart_Text for Once installed, you can re-run the tests at any time with: SphinxTranslator.dispatch_departure calling depart_paragraph for <paragraph>Once installed, you can re-run the tests at any time with:</paragraph> SphinxTranslator.dispatch_visit calling visit_literal_block for <literal_block force="False" highlight_args="{}" language="console" linenos="False" xml:space="preserve">$ python -c "import blosc; blosc.test()"</literal_block> SphinxTranslator.dispatch_departure calling depart_section for <section ids="testing" names="testing"><title>Testing</title><paragraph>After compiling, you can quickly check that the package is sane by running the doctests in <literal>blosc/test.py</literal>:</paragraph><literal_block force="False" highlight_args="{'force': False}" language="console" linenos="False" xml:space="preserve">$ PYTHONPATH=. (or "set PYTHONPATH=." on Win) $ export PYTHONPATH=. (not needed on Win) $ python blosc/test.py (add -v for verbose mode)</literal_block><paragraph>Or alternatively, you can use the third-party <literal>nosetests</literal> script to run both the doctests and the test suite:</paragraph><literal_block force="False" highlight_args="{'force': False}" language="console" linenos="False" xml:space="preserve">$ nosetests --with-doctest (add -v for verbose mode)</literal_block><paragraph>Once installed, you can re-run the tests at any time with:</paragraph><literal_block force="False" highlight_args="{'force': False}" language="console" linenos="False" xml:space="preserve">$ python -c "import blosc; blosc.test()"</literal_block></section> SphinxTranslator.dispatch_visit calling visit_section for <section ids="installing" names="installing"><title>Installing</title><paragraph>Install it as a typical Python package:</paragraph><literal_block force="False" highlight_args="{}" language="console" linenos="False" xml:space="preserve">$ python setup.py install</literal_block></section> SphinxTranslator.dispatch_visit calling visit_title for <title>Installing</title> SphinxTranslator.dispatch_visit calling visit_Text for Installing SphinxTranslator.dispatch_departure calling depart_Text for Installing SphinxTranslator.dispatch_departure calling depart_title for <title>Installing</title> SphinxTranslator.dispatch_visit calling visit_paragraph for <paragraph>Install it as a typical Python package:</paragraph> SphinxTranslator.dispatch_visit calling visit_Text for Install it as a typical Python package: SphinxTranslator.dispatch_departure calling depart_Text for Install it as a typical Python package: SphinxTranslator.dispatch_departure calling depart_paragraph for <paragraph>Install it as a typical Python package:</paragraph> SphinxTranslator.dispatch_visit calling visit_literal_block for <literal_block force="False" highlight_args="{}" language="console" linenos="False" xml:space="preserve">$ python setup.py install</literal_block> SphinxTranslator.dispatch_departure calling depart_section for <section ids="installing" names="installing"><title>Installing</title><paragraph>Install it as a typical Python package:</paragraph><literal_block force="False" highlight_args="{'force': False}" language="console" linenos="False" xml:space="preserve">$ python setup.py install</literal_block></section> SphinxTranslator.dispatch_departure calling depart_section for <section ids="installation" names="installation"><title>Installation</title><paragraph>python-blosc comes with C Blosc sources, so it does not depend on any other library (bar Python itself of course). Of course, if you are going to install from sources, you are going to need a C compiler (GCC, clang and MSVC 2008/2010/2012/2015 have been tested).</paragraph><paragraph>Also, there are situations where you may want to link with an already existing Blosc library in your system. You can do that too.</paragraph><paragraph>This package supports Python 2.6, 2.7 and 3.3 or higher versions.</paragraph><section ids="installing-from-pypi-repository" names="installing\ from\ pypi\ repository"><title>Installing from PyPI repository</title><paragraph>Do:</paragraph><literal_block force="False" highlight_args="{'force': False}" language="console" linenos="False" xml:space="preserve">$ pip install -U blosc</literal_block></section><section ids="building-manually" names="building\ manually"><title>Building manually</title><paragraph>First, go to the python-blosc official repository at <reference refuri="https://github.com/Blosc/python-blosc">https://github.com/Blosc/python-blosc</reference> and download the sources.</paragraph><paragraph>Then, there are different ways to compile python-blosc, depending on whether you want to link with an already installed Blosc library or not.</paragraph><section ids="compiling-without-an-installed-blosc-library" names="compiling\ without\ an\ installed\ blosc\ library"><title>Compiling without an installed Blosc library</title><paragraph>python-blosc comes with the Blosc sources with it so, assuming that you have a C compiler installed, do:</paragraph><literal_block force="False" highlight_args="{'force': False}" language="console" linenos="False" xml:space="preserve">$ python setup.py build_ext --inplace</literal_block><paragraph>That’s all. You can proceed with testing section now.</paragraph></section><section ids="compiling-with-an-installed-blosc-library" names="compiling\ with\ an\ installed\ blosc\ library"><title>Compiling with an installed Blosc library</title><paragraph>In case you have Blosc installed as an external library (and disregard the included Blosc sources) you can link with it in a couple of ways.</paragraph><paragraph>Using an environment variable:</paragraph><literal_block force="False" highlight_args="{'force': False}" language="console" linenos="False" xml:space="preserve">$ BLOSC_DIR=/usr/local (or "set BLOSC_DIR=\blosc" on Win) $ export BLOSC_DIR (not needed on Win) $ python setup.py build_ext --inplace</literal_block><paragraph>Using a flag:</paragraph><literal_block force="False" highlight_args="{'force': False}" language="console" linenos="False" xml:space="preserve">$ python setup.py build_ext --inplace --blosc=/usr/local</literal_block></section><section ids="generating-sphinx-documentation" names="generating\ sphinx\ documentation"><title>Generating Sphinx documentation</title><paragraph>In case you want to generate the documentation locally, you will need to have the <literal>Sphinx</literal> documentation system, as well as the <literal>numpydoc</literal> extension, installed. Then go down to <literal>doc/</literal> directory and do:</paragraph><literal_block force="False" highlight_args="{'force': False}" language="console" linenos="False" xml:space="preserve">$ make html|latex|latexpdf</literal_block></section></section><section ids="testing" names="testing"><title>Testing</title><paragraph>After compiling, you can quickly check that the package is sane by running the doctests in <literal>blosc/test.py</literal>:</paragraph><literal_block force="False" highlight_args="{'force': False}" language="console" linenos="False" xml:space="preserve">$ PYTHONPATH=. (or "set PYTHONPATH=." on Win) $ export PYTHONPATH=. (not needed on Win) $ python blosc/test.py (add -v for verbose mode)</literal_block><paragraph>Or alternatively, you can use the third-party <literal>nosetests</literal> script to run both the doctests and the test suite:</paragraph><literal_block force="False" highlight_args="{'force': False}" language="console" linenos="False" xml:space="preserve">$ nosetests --with-doctest (add -v for verbose mode)</literal_block><paragraph>Once installed, you can re-run the tests at any time with:</paragraph><literal_block force="False" highlight_args="{'force': False}" language="console" linenos="False" xml:space="preserve">$ python -c "import blosc; blosc.test()"</literal_block></section><section ids="installing" names="installing"><title>Installing</title><paragraph>Install it as a typical Python package:</paragraph><literal_block force="False" highlight_args="{'force': False}" language="console" linenos="False" xml:space="preserve">$ python setup.py install</literal_block></section></section> SphinxTranslator.dispatch_departure calling depart_document for <document source="/usr/src/RPM/BUILD/python3-module-blosc-1.5.1/doc/install.rst"><section ids="installation" names="installation"><title>Installation</title><paragraph>python-blosc comes with C Blosc sources, so it does not depend on any other library (bar Python itself of course). Of course, if you are going to install from sources, you are going to need a C compiler (GCC, clang and MSVC 2008/2010/2012/2015 have been tested).</paragraph><paragraph>Also, there are situations where you may want to link with an already existing Blosc library in your system. You can do that too.</paragraph><paragraph>This package supports Python 2.6, 2.7 and 3.3 or higher versions.</paragraph><section ids="installing-from-pypi-repository" names="installing\ from\ pypi\ repository"><title>Installing from PyPI repository</title><paragraph>Do:</paragraph><literal_block force="False" highlight_args="{'force': False}" language="console" linenos="False" xml:space="preserve">$ pip install -U blosc</literal_block></section><section ids="building-manually" names="building\ manually"><title>Building manually</title><paragraph>First, go to the python-blosc official repository at <reference refuri="https://github.com/Blosc/python-blosc">https://github.com/Blosc/python-blosc</reference> and download the sources.</paragraph><paragraph>Then, there are different ways to compile python-blosc, depending on whether you want to link with an already installed Blosc library or not.</paragraph><section ids="compiling-without-an-installed-blosc-library" names="compiling\ without\ an\ installed\ blosc\ library"><title>Compiling without an installed Blosc library</title><paragraph>python-blosc comes with the Blosc sources with it so, assuming that you have a C compiler installed, do:</paragraph><literal_block force="False" highlight_args="{'force': False}" language="console" linenos="False" xml:space="preserve">$ python setup.py build_ext --inplace</literal_block><paragraph>That’s all. You can proceed with testing section now.</paragraph></section><section ids="compiling-with-an-installed-blosc-library" names="compiling\ with\ an\ installed\ blosc\ library"><title>Compiling with an installed Blosc library</title><paragraph>In case you have Blosc installed as an external library (and disregard the included Blosc sources) you can link with it in a couple of ways.</paragraph><paragraph>Using an environment variable:</paragraph><literal_block force="False" highlight_args="{'force': False}" language="console" linenos="False" xml:space="preserve">$ BLOSC_DIR=/usr/local (or "set BLOSC_DIR=\blosc" on Win) $ export BLOSC_DIR (not needed on Win) $ python setup.py build_ext --inplace</literal_block><paragraph>Using a flag:</paragraph><literal_block force="False" highlight_args="{'force': False}" language="console" linenos="False" xml:space="preserve">$ python setup.py build_ext --inplace --blosc=/usr/local</literal_block></section><section ids="generating-sphinx-documentation" names="generating\ sphinx\ documentation"><title>Generating Sphinx documentation</title><paragraph>In case you want to generate the documentation locally, you will need to have the <literal>Sphinx</literal> documentation system, as well as the <literal>numpydoc</literal> extension, installed. Then go down to <literal>doc/</literal> directory and do:</paragraph><literal_block force="False" highlight_args="{'force': False}" language="console" linenos="False" xml:space="preserve">$ make html|latex|latexpdf</literal_block></section></section><section ids="testing" names="testing"><title>Testing</title><paragraph>After compiling, you can quickly check that the package is sane by running the doctests in <literal>blosc/test.py</literal>:</paragraph><literal_block force="False" highlight_args="{'force': False}" language="console" linenos="False" xml:space="preserve">$ PYTHONPATH=. (or "set PYTHONPATH=." on Win) $ export PYTHONPATH=. (not needed on Win) $ python blosc/test.py (add -v for verbose mode)</literal_block><paragraph>Or alternatively, you can use the third-party <literal>nosetests</literal> script to run both the doctests and the test suite:</paragraph><literal_block force="False" highlight_args="{'force': False}" language="console" linenos="False" xml:space="preserve">$ nosetests --with-doctest (add -v for verbose mode)</literal_block><paragraph>Once installed, you can re-run the tests at any time with:</paragraph><literal_block force="False" highlight_args="{'force': False}" language="console" linenos="False" xml:space="preserve">$ python -c "import blosc; blosc.test()"</literal_block></section><section ids="installing" names="installing"><title>Installing</title><paragraph>Install it as a typical Python package:</paragraph><literal_block force="False" highlight_args="{'force': False}" language="console" linenos="False" xml:space="preserve">$ python setup.py install</literal_block></section></section></document> SphinxTranslator.dispatch_visit calling visit_document for <document source="<partial node>"><title>Tutorials</title></document> SphinxTranslator.dispatch_visit calling visit_title for <title>Tutorials</title> SphinxTranslator.dispatch_visit calling visit_Text for Tutorials SphinxTranslator.dispatch_departure calling depart_Text for Tutorials SphinxTranslator.dispatch_departure calling depart_title for <title>Tutorials</title> SphinxTranslator.dispatch_departure calling depart_document for <document source="<partial node>"><title>Tutorials</title></document> SphinxTranslator.dispatch_visit calling visit_document for <document source="<partial node>"><title>Introduction</title></document> SphinxTranslator.dispatch_visit calling visit_title for <title>Introduction</title> SphinxTranslator.dispatch_visit calling visit_Text for Introduction SphinxTranslator.dispatch_departure calling depart_Text for Introduction SphinxTranslator.dispatch_departure calling depart_title for <title>Introduction</title> SphinxTranslator.dispatch_departure calling depart_document for <document source="<partial node>"><title>Introduction</title></document> SphinxTranslator.dispatch_visit calling visit_document for <document source="<partial node>"><title>Welcome to python-blosc’s documentation!</title></document> SphinxTranslator.dispatch_visit calling visit_title for <title>Welcome to python-blosc’s documentation!</title> SphinxTranslator.dispatch_visit calling visit_Text for Welcome to python-blosc’s documentation! SphinxTranslator.dispatch_departure calling depart_Text for Welcome to python-blosc’s documentation! SphinxTranslator.dispatch_departure calling depart_title for <title>Welcome to python-blosc’s documentation!</title> SphinxTranslator.dispatch_departure calling depart_document for <document source="<partial node>"><title>Welcome to python-blosc’s documentation!</title></document> SphinxTranslator.dispatch_visit calling visit_document for <document source="<partial node>"><title>Installation</title></document> SphinxTranslator.dispatch_visit calling visit_title for <title>Installation</title> SphinxTranslator.dispatch_visit calling visit_Text for Installation SphinxTranslator.dispatch_departure calling depart_Text for Installation SphinxTranslator.dispatch_departure calling depart_title for <title>Installation</title> SphinxTranslator.dispatch_departure calling depart_document for <document source="<partial node>"><title>Installation</title></document> SphinxTranslator.dispatch_visit calling visit_document for <document source="<partial node>"><bullet_list><list_item><compact_paragraph><reference anchorname="" internal="True" refuri="#">Installation</reference></compact_paragraph><bullet_list><list_item><compact_paragraph><reference anchorname="#installing-from-pypi-repository" internal="True" refuri="#installing-from-pypi-repository">Installing from PyPI repository</reference></compact_paragraph></list_item><list_item><compact_paragraph><reference anchorname="#building-manually" internal="True" refuri="#building-manually">Building manually</reference></compact_paragraph><bullet_list><list_item><compact_paragraph><reference anchorname="#compiling-without-an-installed-blosc-library" internal="True" refuri="#compiling-without-an-installed-blosc-library">Compiling without an installed Blosc library</reference></compact_paragraph></list_item><list_item><compact_paragraph><reference anchorname="#compiling-with-an-installed-blosc-library" internal="True" refuri="#compiling-with-an-installed-blosc-library">Compiling with an installed Blosc library</reference></compact_paragraph></list_item><list_item><compact_paragraph><reference anchorname="#generating-sphinx-documentation" internal="True" refuri="#generating-sphinx-documentation">Generating Sphinx documentation</reference></compact_paragraph></list_item></bullet_list></list_item><list_item><compact_paragraph><reference anchorname="#testing" internal="True" refuri="#testing">Testing</reference></compact_paragraph></list_item><list_item><compact_paragraph><reference anchorname="#installing" internal="True" refuri="#installing">Installing</reference></compact_paragraph></list_item></bullet_list></list_item></bullet_list></document> SphinxTranslator.dispatch_visit calling visit_bullet_list for <bullet_list><list_item><compact_paragraph><reference anchorname="" internal="True" refuri="#">Installation</reference></compact_paragraph><bullet_list><list_item><compact_paragraph><reference anchorname="#installing-from-pypi-repository" internal="True" refuri="#installing-from-pypi-repository">Installing from PyPI repository</reference></compact_paragraph></list_item><list_item><compact_paragraph><reference anchorname="#building-manually" internal="True" refuri="#building-manually">Building manually</reference></compact_paragraph><bullet_list><list_item><compact_paragraph><reference anchorname="#compiling-without-an-installed-blosc-library" internal="True" refuri="#compiling-without-an-installed-blosc-library">Compiling without an installed Blosc library</reference></compact_paragraph></list_item><list_item><compact_paragraph><reference anchorname="#compiling-with-an-installed-blosc-library" internal="True" refuri="#compiling-with-an-installed-blosc-library">Compiling with an installed Blosc library</reference></compact_paragraph></list_item><list_item><compact_paragraph><reference anchorname="#generating-sphinx-documentation" internal="True" refuri="#generating-sphinx-documentation">Generating Sphinx documentation</reference></compact_paragraph></list_item></bullet_list></list_item><list_item><compact_paragraph><reference anchorname="#testing" internal="True" refuri="#testing">Testing</reference></compact_paragraph></list_item><list_item><compact_paragraph><reference anchorname="#installing" internal="True" refuri="#installing">Installing</reference></compact_paragraph></list_item></bullet_list></list_item></bullet_list> SphinxTranslator.dispatch_visit calling visit_list_item for <list_item><compact_paragraph><reference anchorname="" internal="True" refuri="#">Installation</reference></compact_paragraph><bullet_list><list_item><compact_paragraph><reference anchorname="#installing-from-pypi-repository" internal="True" refuri="#installing-from-pypi-repository">Installing from PyPI repository</reference></compact_paragraph></list_item><list_item><compact_paragraph><reference anchorname="#building-manually" internal="True" refuri="#building-manually">Building manually</reference></compact_paragraph><bullet_list><list_item><compact_paragraph><reference anchorname="#compiling-without-an-installed-blosc-library" internal="True" refuri="#compiling-without-an-installed-blosc-library">Compiling without an installed Blosc library</reference></compact_paragraph></list_item><list_item><compact_paragraph><reference anchorname="#compiling-with-an-installed-blosc-library" internal="True" refuri="#compiling-with-an-installed-blosc-library">Compiling with an installed Blosc library</reference></compact_paragraph></list_item><list_item><compact_paragraph><reference anchorname="#generating-sphinx-documentation" internal="True" refuri="#generating-sphinx-documentation">Generating Sphinx documentation</reference></compact_paragraph></list_item></bullet_list></list_item><list_item><compact_paragraph><reference anchorname="#testing" internal="True" refuri="#testing">Testing</reference></compact_paragraph></list_item><list_item><compact_paragraph><reference anchorname="#installing" internal="True" refuri="#installing">Installing</reference></compact_paragraph></list_item></bullet_list></list_item> SphinxTranslator.dispatch_visit calling visit_compact_paragraph for <compact_paragraph><reference anchorname="" internal="True" refuri="#">Installation</reference></compact_paragraph> SphinxTranslator.dispatch_visit calling visit_reference for <reference anchorname="" internal="True" refuri="#">Installation</reference> SphinxTranslator.dispatch_visit calling visit_Text for Installation SphinxTranslator.dispatch_departure calling depart_Text for Installation SphinxTranslator.dispatch_departure calling depart_reference for <reference anchorname="" internal="True" refuri="#">Installation</reference> SphinxTranslator.dispatch_departure calling depart_compact_paragraph for <compact_paragraph><reference anchorname="" internal="True" refuri="#">Installation</reference></compact_paragraph> SphinxTranslator.dispatch_visit calling visit_bullet_list for <bullet_list><list_item><compact_paragraph><reference anchorname="#installing-from-pypi-repository" internal="True" refuri="#installing-from-pypi-repository">Installing from PyPI repository</reference></compact_paragraph></list_item><list_item><compact_paragraph><reference anchorname="#building-manually" internal="True" refuri="#building-manually">Building manually</reference></compact_paragraph><bullet_list><list_item><compact_paragraph><reference anchorname="#compiling-without-an-installed-blosc-library" internal="True" refuri="#compiling-without-an-installed-blosc-library">Compiling without an installed Blosc library</reference></compact_paragraph></list_item><list_item><compact_paragraph><reference anchorname="#compiling-with-an-installed-blosc-library" internal="True" refuri="#compiling-with-an-installed-blosc-library">Compiling with an installed Blosc library</reference></compact_paragraph></list_item><list_item><compact_paragraph><reference anchorname="#generating-sphinx-documentation" internal="True" refuri="#generating-sphinx-documentation">Generating Sphinx documentation</reference></compact_paragraph></list_item></bullet_list></list_item><list_item><compact_paragraph><reference anchorname="#testing" internal="True" refuri="#testing">Testing</reference></compact_paragraph></list_item><list_item><compact_paragraph><reference anchorname="#installing" internal="True" refuri="#installing">Installing</reference></compact_paragraph></list_item></bullet_list> SphinxTranslator.dispatch_visit calling visit_list_item for <list_item><compact_paragraph><reference anchorname="#installing-from-pypi-repository" internal="True" refuri="#installing-from-pypi-repository">Installing from PyPI repository</reference></compact_paragraph></list_item> SphinxTranslator.dispatch_visit calling visit_compact_paragraph for <compact_paragraph><reference anchorname="#installing-from-pypi-repository" internal="True" refuri="#installing-from-pypi-repository">Installing from PyPI repository</reference></compact_paragraph> SphinxTranslator.dispatch_visit calling visit_reference for <reference anchorname="#installing-from-pypi-repository" internal="True" refuri="#installing-from-pypi-repository">Installing from PyPI repository</reference> SphinxTranslator.dispatch_visit calling visit_Text for Installing from PyPI repository SphinxTranslator.dispatch_departure calling depart_Text for Installing from PyPI repository SphinxTranslator.dispatch_departure calling depart_reference for <reference anchorname="#installing-from-pypi-repository" internal="True" refuri="#installing-from-pypi-repository">Installing from PyPI repository</reference> SphinxTranslator.dispatch_departure calling depart_compact_paragraph for <compact_paragraph><reference anchorname="#installing-from-pypi-repository" internal="True" refuri="#installing-from-pypi-repository">Installing from PyPI repository</reference></compact_paragraph> SphinxTranslator.dispatch_departure calling depart_list_item for <list_item><compact_paragraph><reference anchorname="#installing-from-pypi-repository" internal="True" refuri="#installing-from-pypi-repository">Installing from PyPI repository</reference></compact_paragraph></list_item> SphinxTranslator.dispatch_visit calling visit_list_item for <list_item><compact_paragraph><reference anchorname="#building-manually" internal="True" refuri="#building-manually">Building manually</reference></compact_paragraph><bullet_list><list_item><compact_paragraph><reference anchorname="#compiling-without-an-installed-blosc-library" internal="True" refuri="#compiling-without-an-installed-blosc-library">Compiling without an installed Blosc library</reference></compact_paragraph></list_item><list_item><compact_paragraph><reference anchorname="#compiling-with-an-installed-blosc-library" internal="True" refuri="#compiling-with-an-installed-blosc-library">Compiling with an installed Blosc library</reference></compact_paragraph></list_item><list_item><compact_paragraph><reference anchorname="#generating-sphinx-documentation" internal="True" refuri="#generating-sphinx-documentation">Generating Sphinx documentation</reference></compact_paragraph></list_item></bullet_list></list_item> SphinxTranslator.dispatch_visit calling visit_compact_paragraph for <compact_paragraph><reference anchorname="#building-manually" internal="True" refuri="#building-manually">Building manually</reference></compact_paragraph> SphinxTranslator.dispatch_visit calling visit_reference for <reference anchorname="#building-manually" internal="True" refuri="#building-manually">Building manually</reference> SphinxTranslator.dispatch_visit calling visit_Text for Building manually SphinxTranslator.dispatch_departure calling depart_Text for Building manually SphinxTranslator.dispatch_departure calling depart_reference for <reference anchorname="#building-manually" internal="True" refuri="#building-manually">Building manually</reference> SphinxTranslator.dispatch_departure calling depart_compact_paragraph for <compact_paragraph><reference anchorname="#building-manually" internal="True" refuri="#building-manually">Building manually</reference></compact_paragraph> SphinxTranslator.dispatch_visit calling visit_bullet_list for <bullet_list><list_item><compact_paragraph><reference anchorname="#compiling-without-an-installed-blosc-library" internal="True" refuri="#compiling-without-an-installed-blosc-library">Compiling without an installed Blosc library</reference></compact_paragraph></list_item><list_item><compact_paragraph><reference anchorname="#compiling-with-an-installed-blosc-library" internal="True" refuri="#compiling-with-an-installed-blosc-library">Compiling with an installed Blosc library</reference></compact_paragraph></list_item><list_item><compact_paragraph><reference anchorname="#generating-sphinx-documentation" internal="True" refuri="#generating-sphinx-documentation">Generating Sphinx documentation</reference></compact_paragraph></list_item></bullet_list> SphinxTranslator.dispatch_visit calling visit_list_item for <list_item><compact_paragraph><reference anchorname="#compiling-without-an-installed-blosc-library" internal="True" refuri="#compiling-without-an-installed-blosc-library">Compiling without an installed Blosc library</reference></compact_paragraph></list_item> SphinxTranslator.dispatch_visit calling visit_compact_paragraph for <compact_paragraph><reference anchorname="#compiling-without-an-installed-blosc-library" internal="True" refuri="#compiling-without-an-installed-blosc-library">Compiling without an installed Blosc library</reference></compact_paragraph> SphinxTranslator.dispatch_visit calling visit_reference for <reference anchorname="#compiling-without-an-installed-blosc-library" internal="True" refuri="#compiling-without-an-installed-blosc-library">Compiling without an installed Blosc library</reference> SphinxTranslator.dispatch_visit calling visit_Text for Compiling without an installed Blosc library SphinxTranslator.dispatch_departure calling depart_Text for Compiling without an installed Blosc library SphinxTranslator.dispatch_departure calling depart_reference for <reference anchorname="#compiling-without-an-installed-blosc-library" internal="True" refuri="#compiling-without-an-installed-blosc-library">Compiling without an installed Blosc library</reference> SphinxTranslator.dispatch_departure calling depart_compact_paragraph for <compact_paragraph><reference anchorname="#compiling-without-an-installed-blosc-library" internal="True" refuri="#compiling-without-an-installed-blosc-library">Compiling without an installed Blosc library</reference></compact_paragraph> SphinxTranslator.dispatch_departure calling depart_list_item for <list_item><compact_paragraph><reference anchorname="#compiling-without-an-installed-blosc-library" internal="True" refuri="#compiling-without-an-installed-blosc-library">Compiling without an installed Blosc library</reference></compact_paragraph></list_item> SphinxTranslator.dispatch_visit calling visit_list_item for <list_item><compact_paragraph><reference anchorname="#compiling-with-an-installed-blosc-library" internal="True" refuri="#compiling-with-an-installed-blosc-library">Compiling with an installed Blosc library</reference></compact_paragraph></list_item> SphinxTranslator.dispatch_visit calling visit_compact_paragraph for <compact_paragraph><reference anchorname="#compiling-with-an-installed-blosc-library" internal="True" refuri="#compiling-with-an-installed-blosc-library">Compiling with an installed Blosc library</reference></compact_paragraph> SphinxTranslator.dispatch_visit calling visit_reference for <reference anchorname="#compiling-with-an-installed-blosc-library" internal="True" refuri="#compiling-with-an-installed-blosc-library">Compiling with an installed Blosc library</reference> SphinxTranslator.dispatch_visit calling visit_Text for Compiling with an installed Blosc library SphinxTranslator.dispatch_departure calling depart_Text for Compiling with an installed Blosc library SphinxTranslator.dispatch_departure calling depart_reference for <reference anchorname="#compiling-with-an-installed-blosc-library" internal="True" refuri="#compiling-with-an-installed-blosc-library">Compiling with an installed Blosc library</reference> SphinxTranslator.dispatch_departure calling depart_compact_paragraph for <compact_paragraph><reference anchorname="#compiling-with-an-installed-blosc-library" internal="True" refuri="#compiling-with-an-installed-blosc-library">Compiling with an installed Blosc library</reference></compact_paragraph> SphinxTranslator.dispatch_departure calling depart_list_item for <list_item><compact_paragraph><reference anchorname="#compiling-with-an-installed-blosc-library" internal="True" refuri="#compiling-with-an-installed-blosc-library">Compiling with an installed Blosc library</reference></compact_paragraph></list_item> SphinxTranslator.dispatch_visit calling visit_list_item for <list_item><compact_paragraph><reference anchorname="#generating-sphinx-documentation" internal="True" refuri="#generating-sphinx-documentation">Generating Sphinx documentation</reference></compact_paragraph></list_item> SphinxTranslator.dispatch_visit calling visit_compact_paragraph for <compact_paragraph><reference anchorname="#generating-sphinx-documentation" internal="True" refuri="#generating-sphinx-documentation">Generating Sphinx documentation</reference></compact_paragraph> SphinxTranslator.dispatch_visit calling visit_reference for <reference anchorname="#generating-sphinx-documentation" internal="True" refuri="#generating-sphinx-documentation">Generating Sphinx documentation</reference> SphinxTranslator.dispatch_visit calling visit_Text for Generating Sphinx documentation SphinxTranslator.dispatch_departure calling depart_Text for Generating Sphinx documentation SphinxTranslator.dispatch_departure calling depart_reference for <reference anchorname="#generating-sphinx-documentation" internal="True" refuri="#generating-sphinx-documentation">Generating Sphinx documentation</reference> SphinxTranslator.dispatch_departure calling depart_compact_paragraph for <compact_paragraph><reference anchorname="#generating-sphinx-documentation" internal="True" refuri="#generating-sphinx-documentation">Generating Sphinx documentation</reference></compact_paragraph> SphinxTranslator.dispatch_departure calling depart_list_item for <list_item><compact_paragraph><reference anchorname="#generating-sphinx-documentation" internal="True" refuri="#generating-sphinx-documentation">Generating Sphinx documentation</reference></compact_paragraph></list_item> SphinxTranslator.dispatch_departure calling depart_bullet_list for <bullet_list><list_item><compact_paragraph><reference anchorname="#compiling-without-an-installed-blosc-library" internal="True" refuri="#compiling-without-an-installed-blosc-library">Compiling without an installed Blosc library</reference></compact_paragraph></list_item><list_item><compact_paragraph><reference anchorname="#compiling-with-an-installed-blosc-library" internal="True" refuri="#compiling-with-an-installed-blosc-library">Compiling with an installed Blosc library</reference></compact_paragraph></list_item><list_item><compact_paragraph><reference anchorname="#generating-sphinx-documentation" internal="True" refuri="#generating-sphinx-documentation">Generating Sphinx documentation</reference></compact_paragraph></list_item></bullet_list> SphinxTranslator.dispatch_departure calling depart_list_item for <list_item><compact_paragraph><reference anchorname="#building-manually" internal="True" refuri="#building-manually">Building manually</reference></compact_paragraph><bullet_list><list_item><compact_paragraph><reference anchorname="#compiling-without-an-installed-blosc-library" internal="True" refuri="#compiling-without-an-installed-blosc-library">Compiling without an installed Blosc library</reference></compact_paragraph></list_item><list_item><compact_paragraph><reference anchorname="#compiling-with-an-installed-blosc-library" internal="True" refuri="#compiling-with-an-installed-blosc-library">Compiling with an installed Blosc library</reference></compact_paragraph></list_item><list_item><compact_paragraph><reference anchorname="#generating-sphinx-documentation" internal="True" refuri="#generating-sphinx-documentation">Generating Sphinx documentation</reference></compact_paragraph></list_item></bullet_list></list_item> SphinxTranslator.dispatch_visit calling visit_list_item for <list_item><compact_paragraph><reference anchorname="#testing" internal="True" refuri="#testing">Testing</reference></compact_paragraph></list_item> SphinxTranslator.dispatch_visit calling visit_compact_paragraph for <compact_paragraph><reference anchorname="#testing" internal="True" refuri="#testing">Testing</reference></compact_paragraph> SphinxTranslator.dispatch_visit calling visit_reference for <reference anchorname="#testing" internal="True" refuri="#testing">Testing</reference> SphinxTranslator.dispatch_visit calling visit_Text for Testing SphinxTranslator.dispatch_departure calling depart_Text for Testing SphinxTranslator.dispatch_departure calling depart_reference for <reference anchorname="#testing" internal="True" refuri="#testing">Testing</reference> SphinxTranslator.dispatch_departure calling depart_compact_paragraph for <compact_paragraph><reference anchorname="#testing" internal="True" refuri="#testing">Testing</reference></compact_paragraph> SphinxTranslator.dispatch_departure calling depart_list_item for <list_item><compact_paragraph><reference anchorname="#testing" internal="True" refuri="#testing">Testing</reference></compact_paragraph></list_item> SphinxTranslator.dispatch_visit calling visit_list_item for <list_item><compact_paragraph><reference anchorname="#installing" internal="True" refuri="#installing">Installing</reference></compact_paragraph></list_item> SphinxTranslator.dispatch_visit calling visit_compact_paragraph for <compact_paragraph><reference anchorname="#installing" internal="True" refuri="#installing">Installing</reference></compact_paragraph> SphinxTranslator.dispatch_visit calling visit_reference for <reference anchorname="#installing" internal="True" refuri="#installing">Installing</reference> SphinxTranslator.dispatch_visit calling visit_Text for Installing SphinxTranslator.dispatch_departure calling depart_Text for Installing SphinxTranslator.dispatch_departure calling depart_reference for <reference anchorname="#installing" internal="True" refuri="#installing">Installing</reference> SphinxTranslator.dispatch_departure calling depart_compact_paragraph for <compact_paragraph><reference anchorname="#installing" internal="True" refuri="#installing">Installing</reference></compact_paragraph> SphinxTranslator.dispatch_departure calling depart_list_item for <list_item><compact_paragraph><reference anchorname="#installing" internal="True" refuri="#installing">Installing</reference></compact_paragraph></list_item> SphinxTranslator.dispatch_departure calling depart_bullet_list for <bullet_list><list_item><compact_paragraph><reference anchorname="#installing-from-pypi-repository" internal="True" refuri="#installing-from-pypi-repository">Installing from PyPI repository</reference></compact_paragraph></list_item><list_item><compact_paragraph><reference anchorname="#building-manually" internal="True" refuri="#building-manually">Building manually</reference></compact_paragraph><bullet_list><list_item><compact_paragraph><reference anchorname="#compiling-without-an-installed-blosc-library" internal="True" refuri="#compiling-without-an-installed-blosc-library">Compiling without an installed Blosc library</reference></compact_paragraph></list_item><list_item><compact_paragraph><reference anchorname="#compiling-with-an-installed-blosc-library" internal="True" refuri="#compiling-with-an-installed-blosc-library">Compiling with an installed Blosc library</reference></compact_paragraph></list_item><list_item><compact_paragraph><reference anchorname="#generating-sphinx-documentation" internal="True" refuri="#generating-sphinx-documentation">Generating Sphinx documentation</reference></compact_paragraph></list_item></bullet_list></list_item><list_item><compact_paragraph><reference anchorname="#testing" internal="True" refuri="#testing">Testing</reference></compact_paragraph></list_item><list_item><compact_paragraph><reference anchorname="#installing" internal="True" refuri="#installing">Installing</reference></compact_paragraph></list_item></bullet_list> SphinxTranslator.dispatch_departure calling depart_list_item for <list_item><compact_paragraph><reference anchorname="" internal="True" refuri="#">Installation</reference></compact_paragraph><bullet_list><list_item><compact_paragraph><reference anchorname="#installing-from-pypi-repository" internal="True" refuri="#installing-from-pypi-repository">Installing from PyPI repository</reference></compact_paragraph></list_item><list_item><compact_paragraph><reference anchorname="#building-manually" internal="True" refuri="#building-manually">Building manually</reference></compact_paragraph><bullet_list><list_item><compact_paragraph><reference anchorname="#compiling-without-an-installed-blosc-library" internal="True" refuri="#compiling-without-an-installed-blosc-library">Compiling without an installed Blosc library</reference></compact_paragraph></list_item><list_item><compact_paragraph><reference anchorname="#compiling-with-an-installed-blosc-library" internal="True" refuri="#compiling-with-an-installed-blosc-library">Compiling with an installed Blosc library</reference></compact_paragraph></list_item><list_item><compact_paragraph><reference anchorname="#generating-sphinx-documentation" internal="True" refuri="#generating-sphinx-documentation">Generating Sphinx documentation</reference></compact_paragraph></list_item></bullet_list></list_item><list_item><compact_paragraph><reference anchorname="#testing" internal="True" refuri="#testing">Testing</reference></compact_paragraph></list_item><list_item><compact_paragraph><reference anchorname="#installing" internal="True" refuri="#installing">Installing</reference></compact_paragraph></list_item></bullet_list></list_item> SphinxTranslator.dispatch_departure calling depart_bullet_list for <bullet_list><list_item><compact_paragraph><reference anchorname="" internal="True" refuri="#">Installation</reference></compact_paragraph><bullet_list><list_item><compact_paragraph><reference anchorname="#installing-from-pypi-repository" internal="True" refuri="#installing-from-pypi-repository">Installing from PyPI repository</reference></compact_paragraph></list_item><list_item><compact_paragraph><reference anchorname="#building-manually" internal="True" refuri="#building-manually">Building manually</reference></compact_paragraph><bullet_list><list_item><compact_paragraph><reference anchorname="#compiling-without-an-installed-blosc-library" internal="True" refuri="#compiling-without-an-installed-blosc-library">Compiling without an installed Blosc library</reference></compact_paragraph></list_item><list_item><compact_paragraph><reference anchorname="#compiling-with-an-installed-blosc-library" internal="True" refuri="#compiling-with-an-installed-blosc-library">Compiling with an installed Blosc library</reference></compact_paragraph></list_item><list_item><compact_paragraph><reference anchorname="#generating-sphinx-documentation" internal="True" refuri="#generating-sphinx-documentation">Generating Sphinx documentation</reference></compact_paragraph></list_item></bullet_list></list_item><list_item><compact_paragraph><reference anchorname="#testing" internal="True" refuri="#testing">Testing</reference></compact_paragraph></list_item><list_item><compact_paragraph><reference anchorname="#installing" internal="True" refuri="#installing">Installing</reference></compact_paragraph></list_item></bullet_list></list_item></bullet_list> SphinxTranslator.dispatch_departure calling depart_document for <document source="<partial node>"><bullet_list><list_item><compact_paragraph><reference anchorname="" internal="True" refuri="#">Installation</reference></compact_paragraph><bullet_list><list_item><compact_paragraph><reference anchorname="#installing-from-pypi-repository" internal="True" refuri="#installing-from-pypi-repository">Installing from PyPI repository</reference></compact_paragraph></list_item><list_item><compact_paragraph><reference anchorname="#building-manually" internal="True" refuri="#building-manually">Building manually</reference></compact_paragraph><bullet_list><list_item><compact_paragraph><reference anchorname="#compiling-without-an-installed-blosc-library" internal="True" refuri="#compiling-without-an-installed-blosc-library">Compiling without an installed Blosc library</reference></compact_paragraph></list_item><list_item><compact_paragraph><reference anchorname="#compiling-with-an-installed-blosc-library" internal="True" refuri="#compiling-with-an-installed-blosc-library">Compiling with an installed Blosc library</reference></compact_paragraph></list_item><list_item><compact_paragraph><reference anchorname="#generating-sphinx-documentation" internal="True" refuri="#generating-sphinx-documentation">Generating Sphinx documentation</reference></compact_paragraph></list_item></bullet_list></list_item><list_item><compact_paragraph><reference anchorname="#testing" internal="True" refuri="#testing">Testing</reference></compact_paragraph></list_item><list_item><compact_paragraph><reference anchorname="#installing" internal="True" refuri="#installing">Installing</reference></compact_paragraph></list_item></bullet_list></list_item></bullet_list></document> [app] emitting event: 'html-page-context'('install', 'page.html', {'parents': [], 'prev': {'link': '../intro/', 'title': 'Introduction'}, 'ne writing output... [ 60%] intro [app] emitting event: 'doctree-resolved'(<document: <section "introduction"...>>, 'intro') SphinxTranslator.dispatch_visit calling visit_document for <document source="<partial node>"><title>Introduction</title></document> SphinxTranslator.dispatch_visit calling visit_title for <title>Introduction</title> SphinxTranslator.dispatch_visit calling visit_Text for Introduction SphinxTranslator.dispatch_departure calling depart_Text for Introduction SphinxTranslator.dispatch_departure calling depart_title for <title>Introduction</title> SphinxTranslator.dispatch_departure calling depart_document for <document source="<partial node>"><title>Introduction</title></document> SphinxTranslator.dispatch_visit calling visit_document for <document source="/usr/src/RPM/BUILD/python3-module-blosc-1.5.1/doc/intro.rst"><section ids="introduction" names="introduction"><title>Introduction</title><section ids="what-is-python-blosc" names="what\ is\ python-blosc?"><title>What is python-blosc?</title><paragraph>Blosc (<reference refuri="http://blosc.org">http://blosc.org</reference>) is a high performance compressor optimized for binary data. It has been designed to transmit data to the processor cache faster than the traditional, non-compressed, direct memory fetch approach via a memcpy() OS call.</paragraph><paragraph>Blosc works well for compressing numerical arrays that contains data with relatively low entropy, like sparse data, time series, grids with regular-spaced values, etc.</paragraph><paragraph>This is a Python package that wraps it.</paragraph></section><section ids="mailing-list" names="mailing\ list"><title>Mailing list</title><paragraph>Discussion about this module is welcome in the Blosc list:</paragraph><paragraph><reference refuri="mailto:blosc@googlegroups.com">blosc@googlegroups.com</reference></paragraph><paragraph><reference refuri="http://groups.google.es/group/blosc">http://groups.google.es/group/blosc</reference></paragraph></section></section></document> SphinxTranslator.dispatch_visit calling visit_section for <section ids="introduction" names="introduction"><title>Introduction</title><section ids="what-is-python-blosc" names="what\ is\ python-blosc?"><title>What is python-blosc?</title><paragraph>Blosc (<reference refuri="http://blosc.org">http://blosc.org</reference>) is a high performance compressor optimized for binary data. It has been designed to transmit data to the processor cache faster than the traditional, non-compressed, direct memory fetch approach via a memcpy() OS call.</paragraph><paragraph>Blosc works well for compressing numerical arrays that contains data with relatively low entropy, like sparse data, time series, grids with regular-spaced values, etc.</paragraph><paragraph>This is a Python package that wraps it.</paragraph></section><section ids="mailing-list" names="mailing\ list"><title>Mailing list</title><paragraph>Discussion about this module is welcome in the Blosc list:</paragraph><paragraph><reference refuri="mailto:blosc@googlegroups.com">blosc@googlegroups.com</reference></paragraph><paragraph><reference refuri="http://groups.google.es/group/blosc">http://groups.google.es/group/blosc</reference></paragraph></section></section> SphinxTranslator.dispatch_visit calling visit_title for <title>Introduction</title> SphinxTranslator.dispatch_visit calling visit_Text for Introduction SphinxTranslator.dispatch_departure calling depart_Text for Introduction SphinxTranslator.dispatch_departure calling depart_title for <title>Introduction</title> SphinxTranslator.dispatch_visit calling visit_section for <section ids="what-is-python-blosc" names="what\ is\ python-blosc?"><title>What is python-blosc?</title><paragraph>Blosc (<reference refuri="http://blosc.org">http://blosc.org</reference>) is a high performance compressor optimized for binary data. It has been designed to transmit data to the processor cache faster than the traditional, non-compressed, direct memory fetch approach via a memcpy() OS call.</paragraph><paragraph>Blosc works well for compressing numerical arrays that contains data with relatively low entropy, like sparse data, time series, grids with regular-spaced values, etc.</paragraph><paragraph>This is a Python package that wraps it.</paragraph></section> SphinxTranslator.dispatch_visit calling visit_title for <title>What is python-blosc?</title> SphinxTranslator.dispatch_visit calling visit_Text for What is python-blosc? SphinxTranslator.dispatch_departure calling depart_Text for What is python-blosc? SphinxTranslator.dispatch_departure calling depart_title for <title>What is python-blosc?</title> SphinxTranslator.dispatch_visit calling visit_paragraph for <paragraph>Blosc (<reference refuri="http://blosc.org">http://blosc.org</reference>) is a high performance compressor optimized for binary data. It has been designed to transmit data to the processor cache faster than the traditional, non-compressed, direct memory fetch approach via a memcpy() OS call.</paragraph> SphinxTranslator.dispatch_visit calling visit_Text for Blosc ( SphinxTranslator.dispatch_departure calling depart_Text for Blosc ( SphinxTranslator.dispatch_visit calling visit_reference for <reference refuri="http://blosc.org">http://blosc.org</reference> SphinxTranslator.dispatch_visit calling visit_Text for http://blosc.org SphinxTranslator.dispatch_departure calling depart_Text for http://blosc.org SphinxTranslator.dispatch_departure calling depart_reference for <reference refuri="http://blosc.org">http://blosc.org</reference> SphinxTranslator.dispatch_visit calling visit_Text for ) is a high performance compressor optimized for binary data. It has been designed to transmit data to the processor cache faster than the traditional, non-compressed, direct memory fetch approach via a memcpy() OS call. SphinxTranslator.dispatch_departure calling depart_Text for ) is a high performance compressor optimized for binary data. It has been designed to transmit data to the processor cache faster than the traditional, non-compressed, direct memory fetch approach via a memcpy() OS call. SphinxTranslator.dispatch_departure calling depart_paragraph for <paragraph>Blosc (<reference refuri="http://blosc.org">http://blosc.org</reference>) is a high performance compressor optimized for binary data. It has been designed to transmit data to the processor cache faster than the traditional, non-compressed, direct memory fetch approach via a memcpy() OS call.</paragraph> SphinxTranslator.dispatch_visit calling visit_paragraph for <paragraph>Blosc works well for compressing numerical arrays that contains data with relatively low entropy, like sparse data, time series, grids with regular-spaced values, etc.</paragraph> SphinxTranslator.dispatch_visit calling visit_Text for Blosc works well for compressing numerical arrays that contains data with relatively low entropy, like sparse data, time series, grids with regular-spaced values, etc. SphinxTranslator.dispatch_departure calling depart_Text for Blosc works well for compressing numerical arrays that contains data with relatively low entropy, like sparse data, time series, grids with regular-spaced values, etc. SphinxTranslator.dispatch_departure calling depart_paragraph for <paragraph>Blosc works well for compressing numerical arrays that contains data with relatively low entropy, like sparse data, time series, grids with regular-spaced values, etc.</paragraph> SphinxTranslator.dispatch_visit calling visit_paragraph for <paragraph>This is a Python package that wraps it.</paragraph> SphinxTranslator.dispatch_visit calling visit_Text for This is a Python package that wraps it. SphinxTranslator.dispatch_departure calling depart_Text for This is a Python package that wraps it. SphinxTranslator.dispatch_departure calling depart_paragraph for <paragraph>This is a Python package that wraps it.</paragraph> SphinxTranslator.dispatch_departure calling depart_section for <section ids="what-is-python-blosc" names="what\ is\ python-blosc?"><title>What is python-blosc?</title><paragraph>Blosc (<reference refuri="http://blosc.org">http://blosc.org</reference>) is a high performance compressor optimized for binary data. It has been designed to transmit data to the processor cache faster than the traditional, non-compressed, direct memory fetch approach via a memcpy() OS call.</paragraph><paragraph>Blosc works well for compressing numerical arrays that contains data with relatively low entropy, like sparse data, time series, grids with regular-spaced values, etc.</paragraph><paragraph>This is a Python package that wraps it.</paragraph></section> SphinxTranslator.dispatch_visit calling visit_section for <section ids="mailing-list" names="mailing\ list"><title>Mailing list</title><paragraph>Discussion about this module is welcome in the Blosc list:</paragraph><paragraph><reference refuri="mailto:blosc@googlegroups.com">blosc@googlegroups.com</reference></paragraph><paragraph><reference refuri="http://groups.google.es/group/blosc">http://groups.google.es/group/blosc</reference></paragraph></section> SphinxTranslator.dispatch_visit calling visit_title for <title>Mailing list</title> SphinxTranslator.dispatch_visit calling visit_Text for Mailing list SphinxTranslator.dispatch_departure calling depart_Text for Mailing list SphinxTranslator.dispatch_departure calling depart_title for <title>Mailing list</title> SphinxTranslator.dispatch_visit calling visit_paragraph for <paragraph>Discussion about this module is welcome in the Blosc list:</paragraph> SphinxTranslator.dispatch_visit calling visit_Text for Discussion about this module is welcome in the Blosc list: SphinxTranslator.dispatch_departure calling depart_Text for Discussion about this module is welcome in the Blosc list: SphinxTranslator.dispatch_departure calling depart_paragraph for <paragraph>Discussion about this module is welcome in the Blosc list:</paragraph> SphinxTranslator.dispatch_visit calling visit_paragraph for <paragraph><reference refuri="mailto:blosc@googlegroups.com">blosc@googlegroups.com</reference></paragraph> SphinxTranslator.dispatch_visit calling visit_reference for <reference refuri="mailto:blosc@googlegroups.com">blosc@googlegroups.com</reference> SphinxTranslator.dispatch_visit calling visit_Text for blosc@googlegroups.com SphinxTranslator.dispatch_departure calling depart_Text for blosc@googlegroups.com SphinxTranslator.dispatch_departure calling depart_reference for <reference refuri="mailto:blosc@googlegroups.com">blosc@googlegroups.com</reference> SphinxTranslator.dispatch_departure calling depart_paragraph for <paragraph><reference refuri="mailto:blosc@googlegroups.com">blosc@googlegroups.com</reference></paragraph> SphinxTranslator.dispatch_visit calling visit_paragraph for <paragraph><reference refuri="http://groups.google.es/group/blosc">http://groups.google.es/group/blosc</reference></paragraph> SphinxTranslator.dispatch_visit calling visit_reference for <reference refuri="http://groups.google.es/group/blosc">http://groups.google.es/group/blosc</reference> SphinxTranslator.dispatch_visit calling visit_Text for http://groups.google.es/group/blosc SphinxTranslator.dispatch_departure calling depart_Text for http://groups.google.es/group/blosc SphinxTranslator.dispatch_departure calling depart_reference for <reference refuri="http://groups.google.es/group/blosc">http://groups.google.es/group/blosc</reference> SphinxTranslator.dispatch_departure calling depart_paragraph for <paragraph><reference refuri="http://groups.google.es/group/blosc">http://groups.google.es/group/blosc</reference></paragraph> SphinxTranslator.dispatch_departure calling depart_section for <section ids="mailing-list" names="mailing\ list"><title>Mailing list</title><paragraph>Discussion about this module is welcome in the Blosc list:</paragraph><paragraph><reference refuri="mailto:blosc@googlegroups.com">blosc@googlegroups.com</reference></paragraph><paragraph><reference refuri="http://groups.google.es/group/blosc">http://groups.google.es/group/blosc</reference></paragraph></section> SphinxTranslator.dispatch_departure calling depart_section for <section ids="introduction" names="introduction"><title>Introduction</title><section ids="what-is-python-blosc" names="what\ is\ python-blosc?"><title>What is python-blosc?</title><paragraph>Blosc (<reference refuri="http://blosc.org">http://blosc.org</reference>) is a high performance compressor optimized for binary data. It has been designed to transmit data to the processor cache faster than the traditional, non-compressed, direct memory fetch approach via a memcpy() OS call.</paragraph><paragraph>Blosc works well for compressing numerical arrays that contains data with relatively low entropy, like sparse data, time series, grids with regular-spaced values, etc.</paragraph><paragraph>This is a Python package that wraps it.</paragraph></section><section ids="mailing-list" names="mailing\ list"><title>Mailing list</title><paragraph>Discussion about this module is welcome in the Blosc list:</paragraph><paragraph><reference refuri="mailto:blosc@googlegroups.com">blosc@googlegroups.com</reference></paragraph><paragraph><reference refuri="http://groups.google.es/group/blosc">http://groups.google.es/group/blosc</reference></paragraph></section></section> SphinxTranslator.dispatch_departure calling depart_document for <document source="/usr/src/RPM/BUILD/python3-module-blosc-1.5.1/doc/intro.rst"><section ids="introduction" names="introduction"><title>Introduction</title><section ids="what-is-python-blosc" names="what\ is\ python-blosc?"><title>What is python-blosc?</title><paragraph>Blosc (<reference refuri="http://blosc.org">http://blosc.org</reference>) is a high performance compressor optimized for binary data. It has been designed to transmit data to the processor cache faster than the traditional, non-compressed, direct memory fetch approach via a memcpy() OS call.</paragraph><paragraph>Blosc works well for compressing numerical arrays that contains data with relatively low entropy, like sparse data, time series, grids with regular-spaced values, etc.</paragraph><paragraph>This is a Python package that wraps it.</paragraph></section><section ids="mailing-list" names="mailing\ list"><title>Mailing list</title><paragraph>Discussion about this module is welcome in the Blosc list:</paragraph><paragraph><reference refuri="mailto:blosc@googlegroups.com">blosc@googlegroups.com</reference></paragraph><paragraph><reference refuri="http://groups.google.es/group/blosc">http://groups.google.es/group/blosc</reference></paragraph></section></section></document> SphinxTranslator.dispatch_visit calling visit_document for <document source="<partial node>"><title>Installation</title></document> SphinxTranslator.dispatch_visit calling visit_title for <title>Installation</title> SphinxTranslator.dispatch_visit calling visit_Text for Installation SphinxTranslator.dispatch_departure calling depart_Text for Installation SphinxTranslator.dispatch_departure calling depart_title for <title>Installation</title> SphinxTranslator.dispatch_departure calling depart_document for <document source="<partial node>"><title>Installation</title></document> SphinxTranslator.dispatch_visit calling visit_document for <document source="<partial node>"><title>Welcome to python-blosc’s documentation!</title></document> SphinxTranslator.dispatch_visit calling visit_title for <title>Welcome to python-blosc’s documentation!</title> SphinxTranslator.dispatch_visit calling visit_Text for Welcome to python-blosc’s documentation! SphinxTranslator.dispatch_departure calling depart_Text for Welcome to python-blosc’s documentation! SphinxTranslator.dispatch_departure calling depart_title for <title>Welcome to python-blosc’s documentation!</title> SphinxTranslator.dispatch_departure calling depart_document for <document source="<partial node>"><title>Welcome to python-blosc’s documentation!</title></document> SphinxTranslator.dispatch_visit calling visit_document for <document source="<partial node>"><title>Welcome to python-blosc’s documentation!</title></document> SphinxTranslator.dispatch_visit calling visit_title for <title>Welcome to python-blosc’s documentation!</title> SphinxTranslator.dispatch_visit calling visit_Text for Welcome to python-blosc’s documentation! SphinxTranslator.dispatch_departure calling depart_Text for Welcome to python-blosc’s documentation! SphinxTranslator.dispatch_departure calling depart_title for <title>Welcome to python-blosc’s documentation!</title> SphinxTranslator.dispatch_departure calling depart_document for <document source="<partial node>"><title>Welcome to python-blosc’s documentation!</title></document> SphinxTranslator.dispatch_visit calling visit_document for <document source="<partial node>"><title>Introduction</title></document> SphinxTranslator.dispatch_visit calling visit_title for <title>Introduction</title> SphinxTranslator.dispatch_visit calling visit_Text for Introduction SphinxTranslator.dispatch_departure calling depart_Text for Introduction SphinxTranslator.dispatch_departure calling depart_title for <title>Introduction</title> SphinxTranslator.dispatch_departure calling depart_document for <document source="<partial node>"><title>Introduction</title></document> SphinxTranslator.dispatch_visit calling visit_document for <document source="<partial node>"><bullet_list><list_item><compact_paragraph><reference anchorname="" internal="True" refuri="#">Introduction</reference></compact_paragraph><bullet_list><list_item><compact_paragraph><reference anchorname="#what-is-python-blosc" internal="True" refuri="#what-is-python-blosc">What is python-blosc?</reference></compact_paragraph></list_item><list_item><compact_paragraph><reference anchorname="#mailing-list" internal="True" refuri="#mailing-list">Mailing list</reference></compact_paragraph></list_item></bullet_list></list_item></bullet_list></document> SphinxTranslator.dispatch_visit calling visit_bullet_list for <bullet_list><list_item><compact_paragraph><reference anchorname="" internal="True" refuri="#">Introduction</reference></compact_paragraph><bullet_list><list_item><compact_paragraph><reference anchorname="#what-is-python-blosc" internal="True" refuri="#what-is-python-blosc">What is python-blosc?</reference></compact_paragraph></list_item><list_item><compact_paragraph><reference anchorname="#mailing-list" internal="True" refuri="#mailing-list">Mailing list</reference></compact_paragraph></list_item></bullet_list></list_item></bullet_list> SphinxTranslator.dispatch_visit calling visit_list_item for <list_item><compact_paragraph><reference anchorname="" internal="True" refuri="#">Introduction</reference></compact_paragraph><bullet_list><list_item><compact_paragraph><reference anchorname="#what-is-python-blosc" internal="True" refuri="#what-is-python-blosc">What is python-blosc?</reference></compact_paragraph></list_item><list_item><compact_paragraph><reference anchorname="#mailing-list" internal="True" refuri="#mailing-list">Mailing list</reference></compact_paragraph></list_item></bullet_list></list_item> SphinxTranslator.dispatch_visit calling visit_compact_paragraph for <compact_paragraph><reference anchorname="" internal="True" refuri="#">Introduction</reference></compact_paragraph> SphinxTranslator.dispatch_visit calling visit_reference for <reference anchorname="" internal="True" refuri="#">Introduction</reference> SphinxTranslator.dispatch_visit calling visit_Text for Introduction SphinxTranslator.dispatch_departure calling depart_Text for Introduction SphinxTranslator.dispatch_departure calling depart_reference for <reference anchorname="" internal="True" refuri="#">Introduction</reference> SphinxTranslator.dispatch_departure calling depart_compact_paragraph for <compact_paragraph><reference anchorname="" internal="True" refuri="#">Introduction</reference></compact_paragraph> SphinxTranslator.dispatch_visit calling visit_bullet_list for <bullet_list><list_item><compact_paragraph><reference anchorname="#what-is-python-blosc" internal="True" refuri="#what-is-python-blosc">What is python-blosc?</reference></compact_paragraph></list_item><list_item><compact_paragraph><reference anchorname="#mailing-list" internal="True" refuri="#mailing-list">Mailing list</reference></compact_paragraph></list_item></bullet_list> SphinxTranslator.dispatch_visit calling visit_list_item for <list_item><compact_paragraph><reference anchorname="#what-is-python-blosc" internal="True" refuri="#what-is-python-blosc">What is python-blosc?</reference></compact_paragraph></list_item> SphinxTranslator.dispatch_visit calling visit_compact_paragraph for <compact_paragraph><reference anchorname="#what-is-python-blosc" internal="True" refuri="#what-is-python-blosc">What is python-blosc?</reference></compact_paragraph> SphinxTranslator.dispatch_visit calling visit_reference for <reference anchorname="#what-is-python-blosc" internal="True" refuri="#what-is-python-blosc">What is python-blosc?</reference> SphinxTranslator.dispatch_visit calling visit_Text for What is python-blosc? SphinxTranslator.dispatch_departure calling depart_Text for What is python-blosc? SphinxTranslator.dispatch_departure calling depart_reference for <reference anchorname="#what-is-python-blosc" internal="True" refuri="#what-is-python-blosc">What is python-blosc?</reference> SphinxTranslator.dispatch_departure calling depart_compact_paragraph for <compact_paragraph><reference anchorname="#what-is-python-blosc" internal="True" refuri="#what-is-python-blosc">What is python-blosc?</reference></compact_paragraph> SphinxTranslator.dispatch_departure calling depart_list_item for <list_item><compact_paragraph><reference anchorname="#what-is-python-blosc" internal="True" refuri="#what-is-python-blosc">What is python-blosc?</reference></compact_paragraph></list_item> SphinxTranslator.dispatch_visit calling visit_list_item for <list_item><compact_paragraph><reference anchorname="#mailing-list" internal="True" refuri="#mailing-list">Mailing list</reference></compact_paragraph></list_item> SphinxTranslator.dispatch_visit calling visit_compact_paragraph for <compact_paragraph><reference anchorname="#mailing-list" internal="True" refuri="#mailing-list">Mailing list</reference></compact_paragraph> SphinxTranslator.dispatch_visit calling visit_reference for <reference anchorname="#mailing-list" internal="True" refuri="#mailing-list">Mailing list</reference> SphinxTranslator.dispatch_visit calling visit_Text for Mailing list SphinxTranslator.dispatch_departure calling depart_Text for Mailing list SphinxTranslator.dispatch_departure calling depart_reference for <reference anchorname="#mailing-list" internal="True" refuri="#mailing-list">Mailing list</reference> SphinxTranslator.dispatch_departure calling depart_compact_paragraph for <compact_paragraph><reference anchorname="#mailing-list" internal="True" refuri="#mailing-list">Mailing list</reference></compact_paragraph> SphinxTranslator.dispatch_departure calling depart_list_item for <list_item><compact_paragraph><reference anchorname="#mailing-list" internal="True" refuri="#mailing-list">Mailing list</reference></compact_paragraph></list_item> SphinxTranslator.dispatch_departure calling depart_bullet_list for <bullet_list><list_item><compact_paragraph><reference anchorname="#what-is-python-blosc" internal="True" refuri="#what-is-python-blosc">What is python-blosc?</reference></compact_paragraph></list_item><list_item><compact_paragraph><reference anchorname="#mailing-list" internal="True" refuri="#mailing-list">Mailing list</reference></compact_paragraph></list_item></bullet_list> SphinxTranslator.dispatch_departure calling depart_list_item for <list_item><compact_paragraph><reference anchorname="" internal="True" refuri="#">Introduction</reference></compact_paragraph><bullet_list><list_item><compact_paragraph><reference anchorname="#what-is-python-blosc" internal="True" refuri="#what-is-python-blosc">What is python-blosc?</reference></compact_paragraph></list_item><list_item><compact_paragraph><reference anchorname="#mailing-list" internal="True" refuri="#mailing-list">Mailing list</reference></compact_paragraph></list_item></bullet_list></list_item> SphinxTranslator.dispatch_departure calling depart_bullet_list for <bullet_list><list_item><compact_paragraph><reference anchorname="" internal="True" refuri="#">Introduction</reference></compact_paragraph><bullet_list><list_item><compact_paragraph><reference anchorname="#what-is-python-blosc" internal="True" refuri="#what-is-python-blosc">What is python-blosc?</reference></compact_paragraph></list_item><list_item><compact_paragraph><reference anchorname="#mailing-list" internal="True" refuri="#mailing-list">Mailing list</reference></compact_paragraph></list_item></bullet_list></list_item></bullet_list> SphinxTranslator.dispatch_departure calling depart_document for <document source="<partial node>"><bullet_list><list_item><compact_paragraph><reference anchorname="" internal="True" refuri="#">Introduction</reference></compact_paragraph><bullet_list><list_item><compact_paragraph><reference anchorname="#what-is-python-blosc" internal="True" refuri="#what-is-python-blosc">What is python-blosc?</reference></compact_paragraph></list_item><list_item><compact_paragraph><reference anchorname="#mailing-list" internal="True" refuri="#mailing-list">Mailing list</reference></compact_paragraph></list_item></bullet_list></list_item></bullet_list></document> [app] emitting event: 'html-page-context'('intro', 'page.html', {'parents': [], 'prev': {'link': '../', 'title': 'Welcome to python-blosc’s d writing output... [ 80%] reference [app] emitting event: 'doctree-resolved'(<document: <section "library reference"...>>, 'reference') SphinxTranslator.dispatch_visit calling visit_document for <document source="<partial node>"><title>Library Reference</title></document> SphinxTranslator.dispatch_visit calling visit_title for <title>Library Reference</title> SphinxTranslator.dispatch_visit calling visit_Text for Library Reference SphinxTranslator.dispatch_departure calling depart_Text for Library Reference SphinxTranslator.dispatch_departure calling depart_title for <title>Library Reference</title> SphinxTranslator.dispatch_departure calling depart_document for <document source="<partial node>"><title>Library Reference</title></document> SphinxTranslator.dispatch_visit calling visit_document for <document source="/usr/src/RPM/BUILD/python3-module-blosc-1.5.1/doc/reference.rst"><section ids="library-reference" names="library\ reference"><title>Library Reference</title><section ids="first-level-variables" names="first\ level\ variables"><title>First level variables</title><index entries="[('single', '__version__', '__version__', '', None)]"/><desc desctype="attribute" domain="py" noindex="False" objtype="attribute"><desc_signature class="" first="False" fullname="__version__" ids="__version__" module="True" names="__version__"><desc_name xml:space="preserve">__version__</desc_name></desc_signature><desc_content><paragraph>The version of the blosc package.</paragraph></desc_content></desc><index entries="[('single', 'blosclib_version', 'blosclib_version', '', None)]"/><desc desctype="attribute" domain="py" noindex="False" objtype="attribute"><desc_signature class="" first="False" fullname="blosclib_version" ids="blosclib_version" module="True" names="blosclib_version"><desc_name xml:space="preserve">blosclib_version</desc_name></desc_signature><desc_content><paragraph>The version of the Blosc C library.</paragraph></desc_content></desc><index entries="[('single', 'clib_versions', 'clib_versions', '', None)]"/><desc desctype="attribute" domain="py" noindex="False" objtype="attribute"><desc_signature class="" first="False" fullname="clib_versions" ids="clib_versions" module="True" names="clib_versions"><desc_name xml:space="preserve">clib_versions</desc_name></desc_signature><desc_content><paragraph>A map for the versions of the compression libraries included in C library.</paragraph></desc_content></desc><index entries="[('single', 'cnames', 'cnames', '', None)]"/><desc desctype="attribute" domain="py" noindex="False" objtype="attribute"><desc_signature class="" first="False" fullname="cnames" ids="cnames" module="True" names="cnames"><desc_name xml:space="preserve">cnames</desc_name></desc_signature><desc_content><paragraph>The list of compressors included in C library.</paragraph></desc_content></desc><index entries="[('single', 'cname2clib', 'cname2clib', '', None)]"/><desc desctype="attribute" domain="py" noindex="False" objtype="attribute"><desc_signature class="" first="False" fullname="cname2clib" ids="cname2clib" module="True" names="cname2clib"><desc_name xml:space="preserve">cname2clib</desc_name></desc_signature><desc_content><paragraph>A map between compressor names and its libraries (or formats).</paragraph></desc_content></desc><index entries="[('single', 'ncores', 'ncores', '', None)]"/><desc desctype="attribute" domain="py" noindex="False" objtype="attribute"><desc_signature class="" first="False" fullname="ncores" ids="ncores" module="True" names="ncores"><desc_name xml:space="preserve">ncores</desc_name></desc_signature><desc_content><paragraph>The number of cores detected.</paragraph></desc_content></desc></section><section ids="module-blosc public-functions" names="public\ functions"><title>Public functions</title><index entries="[('single', 'blosc (module)', 'module-blosc', '', None)]"/><index entries="[('single', 'compress() (in module blosc)', 'blosc.compress', '', None)]"/><desc desctype="function" domain="py" noindex="False" objtype="function"><desc_signature class="" first="False" fullname="compress" ids="blosc.compress" module="blosc" names="blosc.compress"><desc_addname xml:space="preserve">blosc.</desc_addname><desc_name xml:space="preserve">compress</desc_name><desc_parameterlist xml:space="preserve"><desc_parameter xml:space="preserve">bytesobj[, typesize=8, clevel=9, shuffle=blosc.SHUFFLE, cname='blosclz']]</desc_parameter></desc_parameterlist></desc_signature><desc_content><paragraph>Compress bytesobj, with a given type size.</paragraph><field_list><field><field_name>Parameters</field_name><field_body><paragraph><strong>bytesobj</strong> : bytes-like object (supporting the buffer interface)</paragraph><block_quote><paragraph>The data to be compressed.</paragraph></block_quote><paragraph><strong>typesize</strong> : int</paragraph><block_quote><paragraph>The data type size.</paragraph></block_quote><paragraph><strong>clevel</strong> : int (optional)</paragraph><block_quote><paragraph>The compression level from 0 (no compression) to 9 (maximum compression). The default is 9.</paragraph></block_quote><paragraph><strong>shuffle</strong> : int (optional)</paragraph><block_quote><paragraph>The shuffle filter to be activated. Allowed values are blosc.NOSHUFFLE, blosc.SHUFFLE and blosc.BITSHUFFLE. The default is blosc.SHUFFLE.</paragraph></block_quote><paragraph><strong>cname</strong> : string (optional)</paragraph><block_quote><paragraph>The name of the compressor used internally in Blosc. It can be any of the supported by Blosc (‘blosclz’, ‘lz4’, ‘lz4hc’, ‘snappy’, ‘zlib’, ‘zstd’ and maybe others too). The default is ‘blosclz’.</paragraph></block_quote></field_body></field><field><field_name>Returns</field_name><field_body><paragraph><strong>out</strong> : str / bytes</paragraph><block_quote><paragraph>The compressed data in form of a Python str / bytes object.</paragraph></block_quote></field_body></field><field><field_name>Raises</field_name><field_body><paragraph><strong>TypeError</strong></paragraph><block_quote><paragraph>If bytesobj doesn’t support the buffer interface.</paragraph></block_quote><paragraph><strong>ValueError</strong></paragraph><block_quote><paragraph>If bytesobj is too long. If typesize is not within the allowed range. If clevel is not within the allowed range. If cname is not a valid codec.</paragraph></block_quote></field_body></field></field_list><rubric>Examples</rubric><doctest_block classes="doctest" xml:space="preserve">>>> import array >>> a = array.array('i', range(1000*1000)) >>> a_bytesobj = a.tostring() >>> c_bytesobj = blosc.compress(a_bytesobj, typesize=4) >>> len(c_bytesobj) < len(a_bytesobj) True</doctest_block></desc_content></desc><index entries="[('single', 'compress_ptr() (in module blosc)', 'blosc.compress_ptr', '', None)]"/><desc desctype="function" domain="py" noindex="False" objtype="function"><desc_signature class="" first="False" fullname="compress_ptr" ids="blosc.compress_ptr" module="blosc" names="blosc.compress_ptr"><desc_addname xml:space="preserve">blosc.</desc_addname><desc_name xml:space="preserve">compress_ptr</desc_name><desc_parameterlist xml:space="preserve"><desc_parameter xml:space="preserve">address, items[, typesize=8, clevel=9, shuffle=blosc.SHUFFLE, cname='blosclz']]</desc_parameter></desc_parameterlist></desc_signature><desc_content><paragraph>Compress the data at address with given items and typesize.</paragraph><field_list><field><field_name>Parameters</field_name><field_body><paragraph><strong>address</strong> : int or long</paragraph><block_quote><paragraph>the pointer to the data to be compressed</paragraph></block_quote><paragraph><strong>items</strong> : int</paragraph><block_quote><paragraph>The number of items (of typesize) to be compressed.</paragraph></block_quote><paragraph><strong>typesize</strong> : int</paragraph><block_quote><paragraph>The data type size.</paragraph></block_quote><paragraph><strong>clevel</strong> : int (optional)</paragraph><block_quote><paragraph>The compression level from 0 (no compression) to 9 (maximum compression). The default is 9.</paragraph></block_quote><paragraph><strong>shuffle</strong> : int (optional)</paragraph><block_quote><paragraph>The shuffle filter to be activated. Allowed values are blosc.NOSHUFFLE, blosc.SHUFFLE and blosc.BITSHUFFLE. The default is blosc.SHUFFLE.</paragraph></block_quote><paragraph><strong>cname</strong> : string (optional)</paragraph><block_quote><paragraph>The name of the compressor used internally in Blosc. It can be any of the supported by Blosc (‘blosclz’, ‘lz4’, ‘lz4hc’, ‘snappy’, ‘zlib’, ‘zstd’ and maybe others too). The default is ‘blosclz’.</paragraph></block_quote></field_body></field><field><field_name>Returns</field_name><field_body><paragraph><strong>out</strong> : str / bytes</paragraph><block_quote><paragraph>The compressed data in form of a Python str / bytes object.</paragraph></block_quote></field_body></field><field><field_name>Raises</field_name><field_body><paragraph><strong>TypeError</strong></paragraph><block_quote><paragraph>If address is not of type int or long.</paragraph></block_quote><paragraph><strong>ValueError</strong></paragraph><block_quote><paragraph>If items * typesize is larger than the maximum allowed buffer size. If typesize is not within the allowed range. If clevel is not within the allowed range. If cname is not within the supported compressors.</paragraph></block_quote></field_body></field></field_list><rubric>Notes</rubric><paragraph>This function can be used anywhere that a memory address is available in Python. For example the Numpy “__array_interface__[‘data’][0]†construct, or when using the ctypes modules.</paragraph><paragraph>Importantly, the user is responsible for making sure that the memory address is valid and that the memory pointed to is contiguous. Passing a non-valid address has a high likelihood of crashing the interpreter by segfault.</paragraph><rubric>Examples</rubric><doctest_block classes="doctest" xml:space="preserve">>>> import numpy >>> items = 7 >>> np_array = numpy.arange(items) >>> c = blosc.compress_ptr(np_array.__array_interface__['data'][0], items, np_array.dtype.itemsize) >>> d = blosc.decompress(c) >>> np_ans = numpy.fromstring(d, dtype=np_array.dtype) >>> (np_array == np_ans).all() True</doctest_block><doctest_block classes="doctest" xml:space="preserve">>>> import ctypes >>> typesize = 8 >>> data = [float(i) for i in range(items)] >>> Array = ctypes.c_double * items >>> a = Array(*data) >>> c = blosc.compress_ptr(ctypes.addressof(a), items, typesize) >>> d = blosc.decompress(c) >>> import struct >>> ans = [struct.unpack('d', d[i:i+typesize])[0] for i in range(0, items*typesize, typesize)] >>> data == ans True</doctest_block></desc_content></desc><index entries="[('single', 'decompress() (in module blosc)', 'blosc.decompress', '', None)]"/><desc desctype="function" domain="py" noindex="False" objtype="function"><desc_signature class="" first="False" fullname="decompress" ids="blosc.decompress" module="blosc" names="blosc.decompress"><desc_addname xml:space="preserve">blosc.</desc_addname><desc_name xml:space="preserve">decompress</desc_name><desc_parameterlist xml:space="preserve"><desc_parameter xml:space="preserve">bytesobj</desc_parameter></desc_parameterlist></desc_signature><desc_content><paragraph>Decompresses a bytesobj compressed object.</paragraph><field_list><field><field_name>Parameters</field_name><field_body><paragraph><strong>bytesobj</strong> : str / bytes</paragraph><block_quote><paragraph>The data to be decompressed.</paragraph></block_quote><paragraph><strong>as_bytearray</strong> : bool, optional</paragraph><block_quote><paragraph>If this flag is True then the return type will be a bytearray object instead of a bytesobject.</paragraph></block_quote></field_body></field><field><field_name>Returns</field_name><field_body><paragraph><strong>out</strong> : str / bytes or bytearray</paragraph><block_quote><paragraph>The decompressed data in form of a Python str / bytes object. If as_bytearray is True then this will be a bytearray object, otherwise this will be a str/ bytes object.</paragraph></block_quote></field_body></field><field><field_name>Raises</field_name><field_body><paragraph><strong>TypeError</strong></paragraph><block_quote><paragraph>If bytesobj is not of type bytes or string.</paragraph></block_quote></field_body></field></field_list><rubric>Examples</rubric><doctest_block classes="doctest" xml:space="preserve">>>> import array >>> a = array.array('i', range(1000*1000)) >>> a_bytesobj = a.tostring() >>> c_bytesobj = blosc.compress(a_bytesobj, typesize=4) >>> a_bytesobj2 = blosc.decompress(c_bytesobj) >>> a_bytesobj == a_bytesobj2 True >>> b"" == blosc.decompress(blosc.compress(b"", 1)) True >>> b"1"*7 == blosc.decompress(blosc.compress(b"1"*7, 8)) True >>> type(blosc.decompress(blosc.compress(b"1"*7, 8), ... as_bytearray=True)) is bytearray True</doctest_block></desc_content></desc><index entries="[('single', 'decompress_ptr() (in module blosc)', 'blosc.decompress_ptr', '', None)]"/><desc desctype="function" domain="py" noindex="False" objtype="function"><desc_signature class="" first="False" fullname="decompress_ptr" ids="blosc.decompress_ptr" module="blosc" names="blosc.decompress_ptr"><desc_addname xml:space="preserve">blosc.</desc_addname><desc_name xml:space="preserve">decompress_ptr</desc_name><desc_parameterlist xml:space="preserve"><desc_parameter xml:space="preserve">bytesobj</desc_parameter><desc_parameter xml:space="preserve">address</desc_parameter></desc_parameterlist></desc_signature><desc_content><paragraph>Decompresses a bytesobj compressed object into the memory at address.</paragraph><field_list><field><field_name>Parameters</field_name><field_body><paragraph><strong>bytesobj</strong> : str / bytes</paragraph><block_quote><paragraph>The data to be decompressed.</paragraph></block_quote><paragraph><strong>address</strong> : int or long</paragraph><block_quote><paragraph>the pointer to the data to be compressed</paragraph></block_quote></field_body></field><field><field_name>Returns</field_name><field_body><paragraph><strong>nbytes</strong> : int</paragraph><block_quote><paragraph>the number of bytes written to the buffer</paragraph></block_quote></field_body></field><field><field_name>Raises</field_name><field_body><paragraph><strong>TypeError</strong></paragraph><block_quote><paragraph>If bytesobj is not of type bytes or string. If address is not of type int or long.</paragraph></block_quote></field_body></field></field_list><rubric>Notes</rubric><paragraph>This function can be used anywhere that a memory address is available in Python. For example the Numpy “__array_interface__[‘data’][0]†construct, or when using the ctypes modules.</paragraph><paragraph>Importantly, the user is responsible for making sure that the memory address is valid and that the memory pointed to is contiguous and can be written to. Passing a non-valid address has a high likelihood of crashing the interpreter by segfault.</paragraph><rubric>Examples</rubric><doctest_block classes="doctest" xml:space="preserve">>>> import numpy >>> items = 7 >>> np_array = numpy.arange(items) >>> c = blosc.compress_ptr(np_array.__array_interface__['data'][0], items, np_array.dtype.itemsize) >>> np_ans = numpy.empty(items, dtype=np_array.dtype) >>> nbytes = blosc.decompress_ptr(c, np_ans.__array_interface__['data'][0]) >>> (np_array == np_ans).all() True >>> nbytes == items * np_array.dtype.itemsize True</doctest_block><doctest_block classes="doctest" xml:space="preserve">>>> import ctypes >>> typesize = 8 >>> data = [float(i) for i in range(items)] >>> Array = ctypes.c_double * items >>> in_array = Array(*data) >>> c = blosc.compress_ptr(ctypes.addressof(in_array), items, typesize) >>> out_array = ctypes.create_string_buffer(items*typesize) >>> nbytes = blosc.decompress_ptr(c, ctypes.addressof(out_array)) >>> import struct >>> ans = [struct.unpack('d', out_array[i:i+typesize])[0] for i in range(0, items*typesize, typesize)] >>> data == ans True >>> nbytes == items * typesize True</doctest_block></desc_content></desc><index entries="[('single', 'pack_array() (in module blosc)', 'blosc.pack_array', '', None)]"/><desc desctype="function" domain="py" noindex="False" objtype="function"><desc_signature class="" first="False" fullname="pack_array" ids="blosc.pack_array" module="blosc" names="blosc.pack_array"><desc_addname xml:space="preserve">blosc.</desc_addname><desc_name xml:space="preserve">pack_array</desc_name><desc_parameterlist xml:space="preserve"><desc_parameter xml:space="preserve">array[, clevel=9, shuffle=blosc.SHUFFLE, cname='blosclz']]</desc_parameter></desc_parameterlist></desc_signature><desc_content><paragraph>Pack (compress) a NumPy array.</paragraph><field_list><field><field_name>Parameters</field_name><field_body><paragraph><strong>array</strong> : ndarray</paragraph><block_quote><paragraph>The NumPy array to be packed.</paragraph></block_quote><paragraph><strong>clevel</strong> : int (optional)</paragraph><block_quote><paragraph>The compression level from 0 (no compression) to 9 (maximum compression). The default is 9.</paragraph></block_quote><paragraph><strong>shuffle</strong> : int (optional)</paragraph><block_quote><paragraph>The shuffle filter to be activated. Allowed values are blosc.NOSHUFFLE, blosc.SHUFFLE and blosc.BITSHUFFLE. The default is blosc.SHUFFLE.</paragraph></block_quote><paragraph><strong>cname</strong> : string (optional)</paragraph><block_quote><paragraph>The name of the compressor used internally in Blosc. It can be any of the supported by Blosc (‘blosclz’, ‘lz4’, ‘lz4hc’, ‘snappy’, ‘zlib’, ‘zstd’ and maybe others too). The default is ‘blosclz’.</paragraph></block_quote></field_body></field><field><field_name>Returns</field_name><field_body><paragraph><strong>out</strong> : str / bytes</paragraph><block_quote><paragraph>The packed array in form of a Python str / bytes object.</paragraph></block_quote></field_body></field><field><field_name>Raises</field_name><field_body><paragraph><strong>TypeError</strong></paragraph><block_quote><paragraph>If array does not quack like a numpy ndarray.</paragraph></block_quote><paragraph><strong>ValueError</strong></paragraph><block_quote><definition_list><definition_list_item><term>If array.itemsize * array.size is larger than the maximum allowed</term><definition><paragraph>buffer size.</paragraph></definition></definition_list_item></definition_list><paragraph>If typesize is not within the allowed range. If clevel is not within the allowed range. If cname is not within the supported compressors.</paragraph></block_quote></field_body></field></field_list><rubric>Examples</rubric><doctest_block classes="doctest" xml:space="preserve">>>> import numpy >>> a = numpy.arange(1e6) >>> parray = blosc.pack_array(a) >>> len(parray) < a.size*a.itemsize True</doctest_block></desc_content></desc><index entries="[('single', 'unpack_array() (in module blosc)', 'blosc.unpack_array', '', None)]"/><desc desctype="function" domain="py" noindex="False" objtype="function"><desc_signature class="" first="False" fullname="unpack_array" ids="blosc.unpack_array" module="blosc" names="blosc.unpack_array"><desc_addname xml:space="preserve">blosc.</desc_addname><desc_name xml:space="preserve">unpack_array</desc_name><desc_parameterlist xml:space="preserve"><desc_parameter xml:space="preserve">packed_array</desc_parameter></desc_parameterlist></desc_signature><desc_content><paragraph>Unpack (decompress) a packed NumPy array.</paragraph><field_list><field><field_name>Parameters</field_name><field_body><paragraph><strong>packed_array</strong> : str / bytes</paragraph><block_quote><paragraph>The packed array to be decompressed.</paragraph></block_quote></field_body></field><field><field_name>Returns</field_name><field_body><paragraph><strong>out</strong> : ndarray</paragraph><block_quote><paragraph>The decompressed data in form of a NumPy array.</paragraph></block_quote></field_body></field><field><field_name>Raises</field_name><field_body><paragraph><strong>TypeError</strong></paragraph><block_quote><paragraph>If packed_array is not of type bytes or string.</paragraph></block_quote></field_body></field></field_list><rubric>Examples</rubric><doctest_block classes="doctest" xml:space="preserve">>>> import numpy >>> a = numpy.arange(1e6) >>> parray = blosc.pack_array(a) >>> len(parray) < a.size*a.itemsize True >>> a2 = blosc.unpack_array(parray) >>> numpy.alltrue(a == a2) True</doctest_block></desc_content></desc></section><section ids="module-blosc utilities" names="utilities"><title>Utilities</title><index entries="[('single', 'blosc (module)', 'module-blosc', '', None)]"/><index entries="[('single', 'clib_info() (in module blosc)', 'blosc.clib_info', '', None)]"/><desc desctype="function" domain="py" noindex="False" objtype="function"><desc_signature class="" first="False" fullname="clib_info" ids="blosc.clib_info" module="blosc" names="blosc.clib_info"><desc_addname xml:space="preserve">blosc.</desc_addname><desc_name xml:space="preserve">clib_info</desc_name><desc_parameterlist xml:space="preserve"><desc_parameter xml:space="preserve">cname</desc_parameter></desc_parameterlist></desc_signature><desc_content><paragraph>Return info for compression libraries in C library.</paragraph><field_list><field><field_name>Parameters</field_name><field_body><paragraph><strong>cname</strong> : str</paragraph><block_quote><paragraph>The compressor name.</paragraph></block_quote></field_body></field><field><field_name>Returns</field_name><field_body><paragraph><strong>out</strong> : tuple</paragraph><block_quote><paragraph>The associated library name and version.</paragraph></block_quote></field_body></field></field_list></desc_content></desc><index entries="[('single', 'compressor_list() (in module blosc)', 'blosc.compressor_list', '', None)]"/><desc desctype="function" domain="py" noindex="False" objtype="function"><desc_signature class="" first="False" fullname="compressor_list" ids="blosc.compressor_list" module="blosc" names="blosc.compressor_list"><desc_addname xml:space="preserve">blosc.</desc_addname><desc_name xml:space="preserve">compressor_list</desc_name><desc_parameterlist xml:space="preserve"/></desc_signature><desc_content><paragraph>Returns a list of compressors available in C library.</paragraph><field_list><field><field_name>Parameters</field_name><field_body><paragraph><strong>None</strong></paragraph></field_body></field><field><field_name>Returns</field_name><field_body><paragraph><strong>out</strong> : list</paragraph><block_quote><paragraph>The list of names.</paragraph></block_quote></field_body></field></field_list></desc_content></desc><index entries="[('single', 'detect_number_of_cores() (in module blosc)', 'blosc.detect_number_of_cores', '', None)]"/><desc desctype="function" domain="py" noindex="False" objtype="function"><desc_signature class="" first="False" fullname="detect_number_of_cores" ids="blosc.detect_number_of_cores" module="blosc" names="blosc.detect_number_of_cores"><desc_addname xml:space="preserve">blosc.</desc_addname><desc_name xml:space="preserve">detect_number_of_cores</desc_name><desc_parameterlist xml:space="preserve"/></desc_signature><desc_content><paragraph>Detect the number of cores in this system.</paragraph><field_list><field><field_name>Returns</field_name><field_body><paragraph><strong>out</strong> : int</paragraph><block_quote><paragraph>The number of cores in this system.</paragraph></block_quote></field_body></field></field_list></desc_content></desc><index entries="[('single', 'free_resources() (in module blosc)', 'blosc.free_resources', '', None)]"/><desc desctype="function" domain="py" noindex="False" objtype="function"><desc_signature class="" first="False" fullname="free_resources" ids="blosc.free_resources" module="blosc" names="blosc.free_resources"><desc_addname xml:space="preserve">blosc.</desc_addname><desc_name xml:space="preserve">free_resources</desc_name><desc_parameterlist xml:space="preserve"/></desc_signature><desc_content><paragraph>Free possible memory temporaries and thread resources.</paragraph><field_list><field><field_name>Returns</field_name><field_body><paragraph><strong>out</strong> : None</paragraph></field_body></field></field_list><rubric>Notes</rubric><paragraph>Blosc maintain a pool of threads waiting for work as well as some temporary space. You can use this function to release these resources when you are not going to use Blosc for a long while.</paragraph><rubric>Examples</rubric><doctest_block classes="doctest" xml:space="preserve">>>> blosc.free_resources() >>></doctest_block></desc_content></desc><index entries="[('single', 'get_clib() (in module blosc)', 'blosc.get_clib', '', None)]"/><desc desctype="function" domain="py" noindex="False" objtype="function"><desc_signature class="" first="False" fullname="get_clib" ids="blosc.get_clib" module="blosc" names="blosc.get_clib"><desc_addname xml:space="preserve">blosc.</desc_addname><desc_name xml:space="preserve">get_clib</desc_name><desc_parameterlist xml:space="preserve"><desc_parameter xml:space="preserve">bytesobj</desc_parameter></desc_parameterlist></desc_signature><desc_content><paragraph>Return the name of the compression library for Blosc <literal>bytesobj</literal> buffer.</paragraph><field_list><field><field_name>Parameters</field_name><field_body><paragraph><strong>bytesobj</strong> : str / bytes</paragraph><block_quote><paragraph>The compressed buffer.</paragraph></block_quote></field_body></field><field><field_name>Returns</field_name><field_body><paragraph><strong>out</strong> : str</paragraph><block_quote><paragraph>The name of the compression library.</paragraph></block_quote></field_body></field></field_list></desc_content></desc><index entries="[('single', 'set_blocksize() (in module blosc)', 'blosc.set_blocksize', '', None)]"/><desc desctype="function" domain="py" noindex="False" objtype="function"><desc_signature class="" first="False" fullname="set_blocksize" ids="blosc.set_blocksize" module="blosc" names="blosc.set_blocksize"><desc_addname xml:space="preserve">blosc.</desc_addname><desc_name xml:space="preserve">set_blocksize</desc_name><desc_parameterlist xml:space="preserve"><desc_parameter xml:space="preserve">blocksize</desc_parameter></desc_parameterlist></desc_signature><desc_content><paragraph>Force the use of a specific blocksize. If 0, an automatic blocksize will be used (the default).</paragraph><rubric>Notes</rubric><paragraph>This is a low-level function and is recommened for expert users only.</paragraph><rubric>Examples</rubric><doctest_block classes="doctest" xml:space="preserve">>>> blosc.set_blocksize(512)</doctest_block></desc_content></desc><index entries="[('single', 'set_nthreads() (in module blosc)', 'blosc.set_nthreads', '', None)]"/><desc desctype="function" domain="py" noindex="False" objtype="function"><desc_signature class="" first="False" fullname="set_nthreads" ids="blosc.set_nthreads" module="blosc" names="blosc.set_nthreads"><desc_addname xml:space="preserve">blosc.</desc_addname><desc_name xml:space="preserve">set_nthreads</desc_name><desc_parameterlist xml:space="preserve"><desc_parameter xml:space="preserve">nthreads</desc_parameter></desc_parameterlist></desc_signature><desc_content><paragraph>Set the number of threads to be used during Blosc operation.</paragraph><field_list><field><field_name>Parameters</field_name><field_body><paragraph><strong>nthreads</strong> : int</paragraph><block_quote><paragraph>The number of threads to be used during Blosc operation.</paragraph></block_quote></field_body></field><field><field_name>Returns</field_name><field_body><paragraph><strong>out</strong> : int</paragraph><block_quote><paragraph>The previous number of used threads.</paragraph></block_quote></field_body></field><field><field_name>Raises</field_name><field_body><paragraph><strong>ValueError</strong></paragraph><block_quote><paragraph>If nthreads is larger that the maximum number of threads blosc can use.</paragraph></block_quote></field_body></field></field_list><rubric>Notes</rubric><paragraph>The number of threads for Blosc is the maximum number of cores detected on your machine (via <literal>detect_number_of_cores</literal>). In some cases Blosc gets better results if you set the number of threads to a value slightly below than your number of cores.</paragraph><rubric>Examples</rubric><paragraph>Set the number of threads to 2 and then to 1:</paragraph><doctest_block classes="doctest" xml:space="preserve">>>> oldn = blosc.set_nthreads(2) >>> blosc.set_nthreads(1) 2</doctest_block></desc_content></desc><index entries="[('single', 'set_releasegil() (in module blosc)', 'blosc.set_releasegil', '', None)]"/><desc desctype="function" domain="py" noindex="False" objtype="function"><desc_signature class="" first="False" fullname="set_releasegil" ids="blosc.set_releasegil" module="blosc" names="blosc.set_releasegil"><desc_addname xml:space="preserve">blosc.</desc_addname><desc_name xml:space="preserve">set_releasegil</desc_name><desc_parameterlist xml:space="preserve"><desc_parameter xml:space="preserve">gitstate</desc_parameter></desc_parameterlist></desc_signature><desc_content><paragraph>Sets a boolean on whether to release the Python global inter-lock (GIL) during c-blosc compress and decompress operations or not. This defaults to False.</paragraph><rubric>Notes</rubric><paragraph>Designed to be used with larger chunk sizes and a ThreadPool. There is a small performance penalty with releasing the GIL that will more harshly penalize small block sizes.</paragraph><rubric>Examples</rubric><doctest_block classes="doctest" xml:space="preserve">>>> oldReleaseState = blosc.set_releasegil(True)</doctest_block></desc_content></desc><index entries="[('single', 'print_versions() (in module blosc)', 'blosc.print_versions', '', None)]"/><desc desctype="function" domain="py" noindex="False" objtype="function"><desc_signature class="" first="False" fullname="print_versions" ids="blosc.print_versions" module="blosc" names="blosc.print_versions"><desc_addname xml:space="preserve">blosc.</desc_addname><desc_name xml:space="preserve">print_versions</desc_name><desc_parameterlist xml:space="preserve"/></desc_signature><desc_content><paragraph>Print all the versions of software that python-blosc relies on.</paragraph></desc_content></desc></section></section></document> SphinxTranslator.dispatch_visit calling visit_section for <section ids="library-reference" names="library\ reference"><title>Library Reference</title><section ids="first-level-variables" names="first\ level\ variables"><title>First level variables</title><index entries="[('single', '__version__', '__version__', '', None)]"/><desc desctype="attribute" domain="py" noindex="False" objtype="attribute"><desc_signature class="" first="False" fullname="__version__" ids="__version__" module="True" names="__version__"><desc_name xml:space="preserve">__version__</desc_name></desc_signature><desc_content><paragraph>The version of the blosc package.</paragraph></desc_content></desc><index entries="[('single', 'blosclib_version', 'blosclib_version', '', None)]"/><desc desctype="attribute" domain="py" noindex="False" objtype="attribute"><desc_signature class="" first="False" fullname="blosclib_version" ids="blosclib_version" module="True" names="blosclib_version"><desc_name xml:space="preserve">blosclib_version</desc_name></desc_signature><desc_content><paragraph>The version of the Blosc C library.</paragraph></desc_content></desc><index entries="[('single', 'clib_versions', 'clib_versions', '', None)]"/><desc desctype="attribute" domain="py" noindex="False" objtype="attribute"><desc_signature class="" first="False" fullname="clib_versions" ids="clib_versions" module="True" names="clib_versions"><desc_name xml:space="preserve">clib_versions</desc_name></desc_signature><desc_content><paragraph>A map for the versions of the compression libraries included in C library.</paragraph></desc_content></desc><index entries="[('single', 'cnames', 'cnames', '', None)]"/><desc desctype="attribute" domain="py" noindex="False" objtype="attribute"><desc_signature class="" first="False" fullname="cnames" ids="cnames" module="True" names="cnames"><desc_name xml:space="preserve">cnames</desc_name></desc_signature><desc_content><paragraph>The list of compressors included in C library.</paragraph></desc_content></desc><index entries="[('single', 'cname2clib', 'cname2clib', '', None)]"/><desc desctype="attribute" domain="py" noindex="False" objtype="attribute"><desc_signature class="" first="False" fullname="cname2clib" ids="cname2clib" module="True" names="cname2clib"><desc_name xml:space="preserve">cname2clib</desc_name></desc_signature><desc_content><paragraph>A map between compressor names and its libraries (or formats).</paragraph></desc_content></desc><index entries="[('single', 'ncores', 'ncores', '', None)]"/><desc desctype="attribute" domain="py" noindex="False" objtype="attribute"><desc_signature class="" first="False" fullname="ncores" ids="ncores" module="True" names="ncores"><desc_name xml:space="preserve">ncores</desc_name></desc_signature><desc_content><paragraph>The number of cores detected.</paragraph></desc_content></desc></section><section ids="module-blosc public-functions" names="public\ functions"><title>Public functions</title><index entries="[('single', 'blosc (module)', 'module-blosc', '', None)]"/><index entries="[('single', 'compress() (in module blosc)', 'blosc.compress', '', None)]"/><desc desctype="function" domain="py" noindex="False" objtype="function"><desc_signature class="" first="False" fullname="compress" ids="blosc.compress" module="blosc" names="blosc.compress"><desc_addname xml:space="preserve">blosc.</desc_addname><desc_name xml:space="preserve">compress</desc_name><desc_parameterlist xml:space="preserve"><desc_parameter xml:space="preserve">bytesobj[, typesize=8, clevel=9, shuffle=blosc.SHUFFLE, cname='blosclz']]</desc_parameter></desc_parameterlist></desc_signature><desc_content><paragraph>Compress bytesobj, with a given type size.</paragraph><field_list><field><field_name>Parameters</field_name><field_body><paragraph><strong>bytesobj</strong> : bytes-like object (supporting the buffer interface)</paragraph><block_quote><paragraph>The data to be compressed.</paragraph></block_quote><paragraph><strong>typesize</strong> : int</paragraph><block_quote><paragraph>The data type size.</paragraph></block_quote><paragraph><strong>clevel</strong> : int (optional)</paragraph><block_quote><paragraph>The compression level from 0 (no compression) to 9 (maximum compression). The default is 9.</paragraph></block_quote><paragraph><strong>shuffle</strong> : int (optional)</paragraph><block_quote><paragraph>The shuffle filter to be activated. Allowed values are blosc.NOSHUFFLE, blosc.SHUFFLE and blosc.BITSHUFFLE. The default is blosc.SHUFFLE.</paragraph></block_quote><paragraph><strong>cname</strong> : string (optional)</paragraph><block_quote><paragraph>The name of the compressor used internally in Blosc. It can be any of the supported by Blosc (‘blosclz’, ‘lz4’, ‘lz4hc’, ‘snappy’, ‘zlib’, ‘zstd’ and maybe others too). The default is ‘blosclz’.</paragraph></block_quote></field_body></field><field><field_name>Returns</field_name><field_body><paragraph><strong>out</strong> : str / bytes</paragraph><block_quote><paragraph>The compressed data in form of a Python str / bytes object.</paragraph></block_quote></field_body></field><field><field_name>Raises</field_name><field_body><paragraph><strong>TypeError</strong></paragraph><block_quote><paragraph>If bytesobj doesn’t support the buffer interface.</paragraph></block_quote><paragraph><strong>ValueError</strong></paragraph><block_quote><paragraph>If bytesobj is too long. If typesize is not within the allowed range. If clevel is not within the allowed range. If cname is not a valid codec.</paragraph></block_quote></field_body></field></field_list><rubric>Examples</rubric><doctest_block classes="doctest" xml:space="preserve">>>> import array >>> a = array.array('i', range(1000*1000)) >>> a_bytesobj = a.tostring() >>> c_bytesobj = blosc.compress(a_bytesobj, typesize=4) >>> len(c_bytesobj) < len(a_bytesobj) True</doctest_block></desc_content></desc><index entries="[('single', 'compress_ptr() (in module blosc)', 'blosc.compress_ptr', '', None)]"/><desc desctype="function" domain="py" noindex="False" objtype="function"><desc_signature class="" first="False" fullname="compress_ptr" ids="blosc.compress_ptr" module="blosc" names="blosc.compress_ptr"><desc_addname xml:space="preserve">blosc.</desc_addname><desc_name xml:space="preserve">compress_ptr</desc_name><desc_parameterlist xml:space="preserve"><desc_parameter xml:space="preserve">address, items[, typesize=8, clevel=9, shuffle=blosc.SHUFFLE, cname='blosclz']]</desc_parameter></desc_parameterlist></desc_signature><desc_content><paragraph>Compress the data at address with given items and typesize.</paragraph><field_list><field><field_name>Parameters</field_name><field_body><paragraph><strong>address</strong> : int or long</paragraph><block_quote><paragraph>the pointer to the data to be compressed</paragraph></block_quote><paragraph><strong>items</strong> : int</paragraph><block_quote><paragraph>The number of items (of typesize) to be compressed.</paragraph></block_quote><paragraph><strong>typesize</strong> : int</paragraph><block_quote><paragraph>The data type size.</paragraph></block_quote><paragraph><strong>clevel</strong> : int (optional)</paragraph><block_quote><paragraph>The compression level from 0 (no compression) to 9 (maximum compression). The default is 9.</paragraph></block_quote><paragraph><strong>shuffle</strong> : int (optional)</paragraph><block_quote><paragraph>The shuffle filter to be activated. Allowed values are blosc.NOSHUFFLE, blosc.SHUFFLE and blosc.BITSHUFFLE. The default is blosc.SHUFFLE.</paragraph></block_quote><paragraph><strong>cname</strong> : string (optional)</paragraph><block_quote><paragraph>The name of the compressor used internally in Blosc. It can be any of the supported by Blosc (‘blosclz’, ‘lz4’, ‘lz4hc’, ‘snappy’, ‘zlib’, ‘zstd’ and maybe others too). The default is ‘blosclz’.</paragraph></block_quote></field_body></field><field><field_name>Returns</field_name><field_body><paragraph><strong>out</strong> : str / bytes</paragraph><block_quote><paragraph>The compressed data in form of a Python str / bytes object.</paragraph></block_quote></field_body></field><field><field_name>Raises</field_name><field_body><paragraph><strong>TypeError</strong></paragraph><block_quote><paragraph>If address is not of type int or long.</paragraph></block_quote><paragraph><strong>ValueError</strong></paragraph><block_quote><paragraph>If items * typesize is larger than the maximum allowed buffer size. If typesize is not within the allowed range. If clevel is not within the allowed range. If cname is not within the supported compressors.</paragraph></block_quote></field_body></field></field_list><rubric>Notes</rubric><paragraph>This function can be used anywhere that a memory address is available in Python. For example the Numpy “__array_interface__[‘data’][0]†construct, or when using the ctypes modules.</paragraph><paragraph>Importantly, the user is responsible for making sure that the memory address is valid and that the memory pointed to is contiguous. Passing a non-valid address has a high likelihood of crashing the interpreter by segfault.</paragraph><rubric>Examples</rubric><doctest_block classes="doctest" xml:space="preserve">>>> import numpy >>> items = 7 >>> np_array = numpy.arange(items) >>> c = blosc.compress_ptr(np_array.__array_interface__['data'][0], items, np_array.dtype.itemsize) >>> d = blosc.decompress(c) >>> np_ans = numpy.fromstring(d, dtype=np_array.dtype) >>> (np_array == np_ans).all() True</doctest_block><doctest_block classes="doctest" xml:space="preserve">>>> import ctypes >>> typesize = 8 >>> data = [float(i) for i in range(items)] >>> Array = ctypes.c_double * items >>> a = Array(*data) >>> c = blosc.compress_ptr(ctypes.addressof(a), items, typesize) >>> d = blosc.decompress(c) >>> import struct >>> ans = [struct.unpack('d', d[i:i+typesize])[0] for i in range(0, items*typesize, typesize)] >>> data == ans True</doctest_block></desc_content></desc><index entries="[('single', 'decompress() (in module blosc)', 'blosc.decompress', '', None)]"/><desc desctype="function" domain="py" noindex="False" objtype="function"><desc_signature class="" first="False" fullname="decompress" ids="blosc.decompress" module="blosc" names="blosc.decompress"><desc_addname xml:space="preserve">blosc.</desc_addname><desc_name xml:space="preserve">decompress</desc_name><desc_parameterlist xml:space="preserve"><desc_parameter xml:space="preserve">bytesobj</desc_parameter></desc_parameterlist></desc_signature><desc_content><paragraph>Decompresses a bytesobj compressed object.</paragraph><field_list><field><field_name>Parameters</field_name><field_body><paragraph><strong>bytesobj</strong> : str / bytes</paragraph><block_quote><paragraph>The data to be decompressed.</paragraph></block_quote><paragraph><strong>as_bytearray</strong> : bool, optional</paragraph><block_quote><paragraph>If this flag is True then the return type will be a bytearray object instead of a bytesobject.</paragraph></block_quote></field_body></field><field><field_name>Returns</field_name><field_body><paragraph><strong>out</strong> : str / bytes or bytearray</paragraph><block_quote><paragraph>The decompressed data in form of a Python str / bytes object. If as_bytearray is True then this will be a bytearray object, otherwise this will be a str/ bytes object.</paragraph></block_quote></field_body></field><field><field_name>Raises</field_name><field_body><paragraph><strong>TypeError</strong></paragraph><block_quote><paragraph>If bytesobj is not of type bytes or string.</paragraph></block_quote></field_body></field></field_list><rubric>Examples</rubric><doctest_block classes="doctest" xml:space="preserve">>>> import array >>> a = array.array('i', range(1000*1000)) >>> a_bytesobj = a.tostring() >>> c_bytesobj = blosc.compress(a_bytesobj, typesize=4) >>> a_bytesobj2 = blosc.decompress(c_bytesobj) >>> a_bytesobj == a_bytesobj2 True >>> b"" == blosc.decompress(blosc.compress(b"", 1)) True >>> b"1"*7 == blosc.decompress(blosc.compress(b"1"*7, 8)) True >>> type(blosc.decompress(blosc.compress(b"1"*7, 8), ... as_bytearray=True)) is bytearray True</doctest_block></desc_content></desc><index entries="[('single', 'decompress_ptr() (in module blosc)', 'blosc.decompress_ptr', '', None)]"/><desc desctype="function" domain="py" noindex="False" objtype="function"><desc_signature class="" first="False" fullname="decompress_ptr" ids="blosc.decompress_ptr" module="blosc" names="blosc.decompress_ptr"><desc_addname xml:space="preserve">blosc.</desc_addname><desc_name xml:space="preserve">decompress_ptr</desc_name><desc_parameterlist xml:space="preserve"><desc_parameter xml:space="preserve">bytesobj</desc_parameter><desc_parameter xml:space="preserve">address</desc_parameter></desc_parameterlist></desc_signature><desc_content><paragraph>Decompresses a bytesobj compressed object into the memory at address.</paragraph><field_list><field><field_name>Parameters</field_name><field_body><paragraph><strong>bytesobj</strong> : str / bytes</paragraph><block_quote><paragraph>The data to be decompressed.</paragraph></block_quote><paragraph><strong>address</strong> : int or long</paragraph><block_quote><paragraph>the pointer to the data to be compressed</paragraph></block_quote></field_body></field><field><field_name>Returns</field_name><field_body><paragraph><strong>nbytes</strong> : int</paragraph><block_quote><paragraph>the number of bytes written to the buffer</paragraph></block_quote></field_body></field><field><field_name>Raises</field_name><field_body><paragraph><strong>TypeError</strong></paragraph><block_quote><paragraph>If bytesobj is not of type bytes or string. If address is not of type int or long.</paragraph></block_quote></field_body></field></field_list><rubric>Notes</rubric><paragraph>This function can be used anywhere that a memory address is available in Python. For example the Numpy “__array_interface__[‘data’][0]†construct, or when using the ctypes modules.</paragraph><paragraph>Importantly, the user is responsible for making sure that the memory address is valid and that the memory pointed to is contiguous and can be written to. Passing a non-valid address has a high likelihood of crashing the interpreter by segfault.</paragraph><rubric>Examples</rubric><doctest_block classes="doctest" xml:space="preserve">>>> import numpy >>> items = 7 >>> np_array = numpy.arange(items) >>> c = blosc.compress_ptr(np_array.__array_interface__['data'][0], items, np_array.dtype.itemsize) >>> np_ans = numpy.empty(items, dtype=np_array.dtype) >>> nbytes = blosc.decompress_ptr(c, np_ans.__array_interface__['data'][0]) >>> (np_array == np_ans).all() True >>> nbytes == items * np_array.dtype.itemsize True</doctest_block><doctest_block classes="doctest" xml:space="preserve">>>> import ctypes >>> typesize = 8 >>> data = [float(i) for i in range(items)] >>> Array = ctypes.c_double * items >>> in_array = Array(*data) >>> c = blosc.compress_ptr(ctypes.addressof(in_array), items, typesize) >>> out_array = ctypes.create_string_buffer(items*typesize) >>> nbytes = blosc.decompress_ptr(c, ctypes.addressof(out_array)) >>> import struct >>> ans = [struct.unpack('d', out_array[i:i+typesize])[0] for i in range(0, items*typesize, typesize)] >>> data == ans True >>> nbytes == items * typesize True</doctest_block></desc_content></desc><index entries="[('single', 'pack_array() (in module blosc)', 'blosc.pack_array', '', None)]"/><desc desctype="function" domain="py" noindex="False" objtype="function"><desc_signature class="" first="False" fullname="pack_array" ids="blosc.pack_array" module="blosc" names="blosc.pack_array"><desc_addname xml:space="preserve">blosc.</desc_addname><desc_name xml:space="preserve">pack_array</desc_name><desc_parameterlist xml:space="preserve"><desc_parameter xml:space="preserve">array[, clevel=9, shuffle=blosc.SHUFFLE, cname='blosclz']]</desc_parameter></desc_parameterlist></desc_signature><desc_content><paragraph>Pack (compress) a NumPy array.</paragraph><field_list><field><field_name>Parameters</field_name><field_body><paragraph><strong>array</strong> : ndarray</paragraph><block_quote><paragraph>The NumPy array to be packed.</paragraph></block_quote><paragraph><strong>clevel</strong> : int (optional)</paragraph><block_quote><paragraph>The compression level from 0 (no compression) to 9 (maximum compression). The default is 9.</paragraph></block_quote><paragraph><strong>shuffle</strong> : int (optional)</paragraph><block_quote><paragraph>The shuffle filter to be activated. Allowed values are blosc.NOSHUFFLE, blosc.SHUFFLE and blosc.BITSHUFFLE. The default is blosc.SHUFFLE.</paragraph></block_quote><paragraph><strong>cname</strong> : string (optional)</paragraph><block_quote><paragraph>The name of the compressor used internally in Blosc. It can be any of the supported by Blosc (‘blosclz’, ‘lz4’, ‘lz4hc’, ‘snappy’, ‘zlib’, ‘zstd’ and maybe others too). The default is ‘blosclz’.</paragraph></block_quote></field_body></field><field><field_name>Returns</field_name><field_body><paragraph><strong>out</strong> : str / bytes</paragraph><block_quote><paragraph>The packed array in form of a Python str / bytes object.</paragraph></block_quote></field_body></field><field><field_name>Raises</field_name><field_body><paragraph><strong>TypeError</strong></paragraph><block_quote><paragraph>If array does not quack like a numpy ndarray.</paragraph></block_quote><paragraph><strong>ValueError</strong></paragraph><block_quote><definition_list><definition_list_item><term>If array.itemsize * array.size is larger than the maximum allowed</term><definition><paragraph>buffer size.</paragraph></definition></definition_list_item></definition_list><paragraph>If typesize is not within the allowed range. If clevel is not within the allowed range. If cname is not within the supported compressors.</paragraph></block_quote></field_body></field></field_list><rubric>Examples</rubric><doctest_block classes="doctest" xml:space="preserve">>>> import numpy >>> a = numpy.arange(1e6) >>> parray = blosc.pack_array(a) >>> len(parray) < a.size*a.itemsize True</doctest_block></desc_content></desc><index entries="[('single', 'unpack_array() (in module blosc)', 'blosc.unpack_array', '', None)]"/><desc desctype="function" domain="py" noindex="False" objtype="function"><desc_signature class="" first="False" fullname="unpack_array" ids="blosc.unpack_array" module="blosc" names="blosc.unpack_array"><desc_addname xml:space="preserve">blosc.</desc_addname><desc_name xml:space="preserve">unpack_array</desc_name><desc_parameterlist xml:space="preserve"><desc_parameter xml:space="preserve">packed_array</desc_parameter></desc_parameterlist></desc_signature><desc_content><paragraph>Unpack (decompress) a packed NumPy array.</paragraph><field_list><field><field_name>Parameters</field_name><field_body><paragraph><strong>packed_array</strong> : str / bytes</paragraph><block_quote><paragraph>The packed array to be decompressed.</paragraph></block_quote></field_body></field><field><field_name>Returns</field_name><field_body><paragraph><strong>out</strong> : ndarray</paragraph><block_quote><paragraph>The decompressed data in form of a NumPy array.</paragraph></block_quote></field_body></field><field><field_name>Raises</field_name><field_body><paragraph><strong>TypeError</strong></paragraph><block_quote><paragraph>If packed_array is not of type bytes or string.</paragraph></block_quote></field_body></field></field_list><rubric>Examples</rubric><doctest_block classes="doctest" xml:space="preserve">>>> import numpy >>> a = numpy.arange(1e6) >>> parray = blosc.pack_array(a) >>> len(parray) < a.size*a.itemsize True >>> a2 = blosc.unpack_array(parray) >>> numpy.alltrue(a == a2) True</doctest_block></desc_content></desc></section><section ids="module-blosc utilities" names="utilities"><title>Utilities</title><index entries="[('single', 'blosc (module)', 'module-blosc', '', None)]"/><index entries="[('single', 'clib_info() (in module blosc)', 'blosc.clib_info', '', None)]"/><desc desctype="function" domain="py" noindex="False" objtype="function"><desc_signature class="" first="False" fullname="clib_info" ids="blosc.clib_info" module="blosc" names="blosc.clib_info"><desc_addname xml:space="preserve">blosc.</desc_addname><desc_name xml:space="preserve">clib_info</desc_name><desc_parameterlist xml:space="preserve"><desc_parameter xml:space="preserve">cname</desc_parameter></desc_parameterlist></desc_signature><desc_content><paragraph>Return info for compression libraries in C library.</paragraph><field_list><field><field_name>Parameters</field_name><field_body><paragraph><strong>cname</strong> : str</paragraph><block_quote><paragraph>The compressor name.</paragraph></block_quote></field_body></field><field><field_name>Returns</field_name><field_body><paragraph><strong>out</strong> : tuple</paragraph><block_quote><paragraph>The associated library name and version.</paragraph></block_quote></field_body></field></field_list></desc_content></desc><index entries="[('single', 'compressor_list() (in module blosc)', 'blosc.compressor_list', '', None)]"/><desc desctype="function" domain="py" noindex="False" objtype="function"><desc_signature class="" first="False" fullname="compressor_list" ids="blosc.compressor_list" module="blosc" names="blosc.compressor_list"><desc_addname xml:space="preserve">blosc.</desc_addname><desc_name xml:space="preserve">compressor_list</desc_name><desc_parameterlist xml:space="preserve"/></desc_signature><desc_content><paragraph>Returns a list of compressors available in C library.</paragraph><field_list><field><field_name>Parameters</field_name><field_body><paragraph><strong>None</strong></paragraph></field_body></field><field><field_name>Returns</field_name><field_body><paragraph><strong>out</strong> : list</paragraph><block_quote><paragraph>The list of names.</paragraph></block_quote></field_body></field></field_list></desc_content></desc><index entries="[('single', 'detect_number_of_cores() (in module blosc)', 'blosc.detect_number_of_cores', '', None)]"/><desc desctype="function" domain="py" noindex="False" objtype="function"><desc_signature class="" first="False" fullname="detect_number_of_cores" ids="blosc.detect_number_of_cores" module="blosc" names="blosc.detect_number_of_cores"><desc_addname xml:space="preserve">blosc.</desc_addname><desc_name xml:space="preserve">detect_number_of_cores</desc_name><desc_parameterlist xml:space="preserve"/></desc_signature><desc_content><paragraph>Detect the number of cores in this system.</paragraph><field_list><field><field_name>Returns</field_name><field_body><paragraph><strong>out</strong> : int</paragraph><block_quote><paragraph>The number of cores in this system.</paragraph></block_quote></field_body></field></field_list></desc_content></desc><index entries="[('single', 'free_resources() (in module blosc)', 'blosc.free_resources', '', None)]"/><desc desctype="function" domain="py" noindex="False" objtype="function"><desc_signature class="" first="False" fullname="free_resources" ids="blosc.free_resources" module="blosc" names="blosc.free_resources"><desc_addname xml:space="preserve">blosc.</desc_addname><desc_name xml:space="preserve">free_resources</desc_name><desc_parameterlist xml:space="preserve"/></desc_signature><desc_content><paragraph>Free possible memory temporaries and thread resources.</paragraph><field_list><field><field_name>Returns</field_name><field_body><paragraph><strong>out</strong> : None</paragraph></field_body></field></field_list><rubric>Notes</rubric><paragraph>Blosc maintain a pool of threads waiting for work as well as some temporary space. You can use this function to release these resources when you are not going to use Blosc for a long while.</paragraph><rubric>Examples</rubric><doctest_block classes="doctest" xml:space="preserve">>>> blosc.free_resources() >>></doctest_block></desc_content></desc><index entries="[('single', 'get_clib() (in module blosc)', 'blosc.get_clib', '', None)]"/><desc desctype="function" domain="py" noindex="False" objtype="function"><desc_signature class="" first="False" fullname="get_clib" ids="blosc.get_clib" module="blosc" names="blosc.get_clib"><desc_addname xml:space="preserve">blosc.</desc_addname><desc_name xml:space="preserve">get_clib</desc_name><desc_parameterlist xml:space="preserve"><desc_parameter xml:space="preserve">bytesobj</desc_parameter></desc_parameterlist></desc_signature><desc_content><paragraph>Return the name of the compression library for Blosc <literal>bytesobj</literal> buffer.</paragraph><field_list><field><field_name>Parameters</field_name><field_body><paragraph><strong>bytesobj</strong> : str / bytes</paragraph><block_quote><paragraph>The compressed buffer.</paragraph></block_quote></field_body></field><field><field_name>Returns</field_name><field_body><paragraph><strong>out</strong> : str</paragraph><block_quote><paragraph>The name of the compression library.</paragraph></block_quote></field_body></field></field_list></desc_content></desc><index entries="[('single', 'set_blocksize() (in module blosc)', 'blosc.set_blocksize', '', None)]"/><desc desctype="function" domain="py" noindex="False" objtype="function"><desc_signature class="" first="False" fullname="set_blocksize" ids="blosc.set_blocksize" module="blosc" names="blosc.set_blocksize"><desc_addname xml:space="preserve">blosc.</desc_addname><desc_name xml:space="preserve">set_blocksize</desc_name><desc_parameterlist xml:space="preserve"><desc_parameter xml:space="preserve">blocksize</desc_parameter></desc_parameterlist></desc_signature><desc_content><paragraph>Force the use of a specific blocksize. If 0, an automatic blocksize will be used (the default).</paragraph><rubric>Notes</rubric><paragraph>This is a low-level function and is recommened for expert users only.</paragraph><rubric>Examples</rubric><doctest_block classes="doctest" xml:space="preserve">>>> blosc.set_blocksize(512)</doctest_block></desc_content></desc><index entries="[('single', 'set_nthreads() (in module blosc)', 'blosc.set_nthreads', '', None)]"/><desc desctype="function" domain="py" noindex="False" objtype="function"><desc_signature class="" first="False" fullname="set_nthreads" ids="blosc.set_nthreads" module="blosc" names="blosc.set_nthreads"><desc_addname xml:space="preserve">blosc.</desc_addname><desc_name xml:space="preserve">set_nthreads</desc_name><desc_parameterlist xml:space="preserve"><desc_parameter xml:space="preserve">nthreads</desc_parameter></desc_parameterlist></desc_signature><desc_content><paragraph>Set the number of threads to be used during Blosc operation.</paragraph><field_list><field><field_name>Parameters</field_name><field_body><paragraph><strong>nthreads</strong> : int</paragraph><block_quote><paragraph>The number of threads to be used during Blosc operation.</paragraph></block_quote></field_body></field><field><field_name>Returns</field_name><field_body><paragraph><strong>out</strong> : int</paragraph><block_quote><paragraph>The previous number of used threads.</paragraph></block_quote></field_body></field><field><field_name>Raises</field_name><field_body><paragraph><strong>ValueError</strong></paragraph><block_quote><paragraph>If nthreads is larger that the maximum number of threads blosc can use.</paragraph></block_quote></field_body></field></field_list><rubric>Notes</rubric><paragraph>The number of threads for Blosc is the maximum number of cores detected on your machine (via <literal>detect_number_of_cores</literal>). In some cases Blosc gets better results if you set the number of threads to a value slightly below than your number of cores.</paragraph><rubric>Examples</rubric><paragraph>Set the number of threads to 2 and then to 1:</paragraph><doctest_block classes="doctest" xml:space="preserve">>>> oldn = blosc.set_nthreads(2) >>> blosc.set_nthreads(1) 2</doctest_block></desc_content></desc><index entries="[('single', 'set_releasegil() (in module blosc)', 'blosc.set_releasegil', '', None)]"/><desc desctype="function" domain="py" noindex="False" objtype="function"><desc_signature class="" first="False" fullname="set_releasegil" ids="blosc.set_releasegil" module="blosc" names="blosc.set_releasegil"><desc_addname xml:space="preserve">blosc.</desc_addname><desc_name xml:space="preserve">set_releasegil</desc_name><desc_parameterlist xml:space="preserve"><desc_parameter xml:space="preserve">gitstate</desc_parameter></desc_parameterlist></desc_signature><desc_content><paragraph>Sets a boolean on whether to release the Python global inter-lock (GIL) during c-blosc compress and decompress operations or not. This defaults to False.</paragraph><rubric>Notes</rubric><paragraph>Designed to be used with larger chunk sizes and a ThreadPool. There is a small performance penalty with releasing the GIL that will more harshly penalize small block sizes.</paragraph><rubric>Examples</rubric><doctest_block classes="doctest" xml:space="preserve">>>> oldReleaseState = blosc.set_releasegil(True)</doctest_block></desc_content></desc><index entries="[('single', 'print_versions() (in module blosc)', 'blosc.print_versions', '', None)]"/><desc desctype="function" domain="py" noindex="False" objtype="function"><desc_signature class="" first="False" fullname="print_versions" ids="blosc.print_versions" module="blosc" names="blosc.print_versions"><desc_addname xml:space="preserve">blosc.</desc_addname><desc_name xml:space="preserve">print_versions</desc_name><desc_parameterlist xml:space="preserve"/></desc_signature><desc_content><paragraph>Print all the versions of software that python-blosc relies on.</paragraph></desc_content></desc></section></section> SphinxTranslator.dispatch_visit calling visit_title for <title>Library Reference</title> SphinxTranslator.dispatch_visit calling visit_Text for Library Reference SphinxTranslator.dispatch_departure calling depart_Text for Library Reference SphinxTranslator.dispatch_departure calling depart_title for <title>Library Reference</title> SphinxTranslator.dispatch_visit calling visit_section for <section ids="first-level-variables" names="first\ level\ variables"><title>First level variables</title><index entries="[('single', '__version__', '__version__', '', None)]"/><desc desctype="attribute" domain="py" noindex="False" objtype="attribute"><desc_signature class="" first="False" fullname="__version__" ids="__version__" module="True" names="__version__"><desc_name xml:space="preserve">__version__</desc_name></desc_signature><desc_content><paragraph>The version of the blosc package.</paragraph></desc_content></desc><index entries="[('single', 'blosclib_version', 'blosclib_version', '', None)]"/><desc desctype="attribute" domain="py" noindex="False" objtype="attribute"><desc_signature class="" first="False" fullname="blosclib_version" ids="blosclib_version" module="True" names="blosclib_version"><desc_name xml:space="preserve">blosclib_version</desc_name></desc_signature><desc_content><paragraph>The version of the Blosc C library.</paragraph></desc_content></desc><index entries="[('single', 'clib_versions', 'clib_versions', '', None)]"/><desc desctype="attribute" domain="py" noindex="False" objtype="attribute"><desc_signature class="" first="False" fullname="clib_versions" ids="clib_versions" module="True" names="clib_versions"><desc_name xml:space="preserve">clib_versions</desc_name></desc_signature><desc_content><paragraph>A map for the versions of the compression libraries included in C library.</paragraph></desc_content></desc><index entries="[('single', 'cnames', 'cnames', '', None)]"/><desc desctype="attribute" domain="py" noindex="False" objtype="attribute"><desc_signature class="" first="False" fullname="cnames" ids="cnames" module="True" names="cnames"><desc_name xml:space="preserve">cnames</desc_name></desc_signature><desc_content><paragraph>The list of compressors included in C library.</paragraph></desc_content></desc><index entries="[('single', 'cname2clib', 'cname2clib', '', None)]"/><desc desctype="attribute" domain="py" noindex="False" objtype="attribute"><desc_signature class="" first="False" fullname="cname2clib" ids="cname2clib" module="True" names="cname2clib"><desc_name xml:space="preserve">cname2clib</desc_name></desc_signature><desc_content><paragraph>A map between compressor names and its libraries (or formats).</paragraph></desc_content></desc><index entries="[('single', 'ncores', 'ncores', '', None)]"/><desc desctype="attribute" domain="py" noindex="False" objtype="attribute"><desc_signature class="" first="False" fullname="ncores" ids="ncores" module="True" names="ncores"><desc_name xml:space="preserve">ncores</desc_name></desc_signature><desc_content><paragraph>The number of cores detected.</paragraph></desc_content></desc></section> SphinxTranslator.dispatch_visit calling visit_title for <title>First level variables</title> SphinxTranslator.dispatch_visit calling visit_Text for First level variables SphinxTranslator.dispatch_departure calling depart_Text for First level variables SphinxTranslator.dispatch_departure calling depart_title for <title>First level variables</title> SphinxTranslator.dispatch_visit calling visit_index for <index entries="[('single', '__version__', '__version__', '', None)]"/> SphinxTranslator.dispatch_visit calling visit_desc for <desc desctype="attribute" domain="py" noindex="False" objtype="attribute"><desc_signature class="" first="False" fullname="__version__" ids="__version__" module="True" names="__version__"><desc_name xml:space="preserve">__version__</desc_name></desc_signature><desc_content><paragraph>The version of the blosc package.</paragraph></desc_content></desc> SphinxTranslator.dispatch_visit calling visit_desc_signature for <desc_signature class="" first="False" fullname="__version__" ids="__version__" module="True" names="__version__"><desc_name xml:space="preserve">__version__</desc_name></desc_signature> SphinxTranslator.dispatch_visit calling visit_desc_name for <desc_name xml:space="preserve">__version__</desc_name> SphinxTranslator.dispatch_visit calling visit_Text for __version__ SphinxTranslator.dispatch_departure calling depart_Text for __version__ SphinxTranslator.dispatch_departure calling depart_desc_name for <desc_name xml:space="preserve">__version__</desc_name> SphinxTranslator.dispatch_departure calling depart_desc_signature for <desc_signature class="" first="False" fullname="__version__" ids="__version__" module="True" names="__version__"><desc_name xml:space="preserve">__version__</desc_name></desc_signature> SphinxTranslator.dispatch_visit calling visit_desc_content for <desc_content><paragraph>The version of the blosc package.</paragraph></desc_content> SphinxTranslator.dispatch_visit calling visit_paragraph for <paragraph>The version of the blosc package.</paragraph> SphinxTranslator.dispatch_visit calling visit_Text for The version of the blosc package. SphinxTranslator.dispatch_departure calling depart_Text for The version of the blosc package. SphinxTranslator.dispatch_departure calling depart_paragraph for <paragraph>The version of the blosc package.</paragraph> SphinxTranslator.dispatch_departure calling depart_desc_content for <desc_content><paragraph>The version of the blosc package.</paragraph></desc_content> SphinxTranslator.dispatch_departure calling depart_desc for <desc desctype="attribute" domain="py" noindex="False" objtype="attribute"><desc_signature class="" first="False" fullname="__version__" ids="__version__" module="True" names="__version__"><desc_name xml:space="preserve">__version__</desc_name></desc_signature><desc_content><paragraph>The version of the blosc package.</paragraph></desc_content></desc> SphinxTranslator.dispatch_visit calling visit_index for <index entries="[('single', 'blosclib_version', 'blosclib_version', '', None)]"/> SphinxTranslator.dispatch_visit calling visit_desc for <desc desctype="attribute" domain="py" noindex="False" objtype="attribute"><desc_signature class="" first="False" fullname="blosclib_version" ids="blosclib_version" module="True" names="blosclib_version"><desc_name xml:space="preserve">blosclib_version</desc_name></desc_signature><desc_content><paragraph>The version of the Blosc C library.</paragraph></desc_content></desc> SphinxTranslator.dispatch_visit calling visit_desc_signature for <desc_signature class="" first="False" fullname="blosclib_version" ids="blosclib_version" module="True" names="blosclib_version"><desc_name xml:space="preserve">blosclib_version</desc_name></desc_signature> SphinxTranslator.dispatch_visit calling visit_desc_name for <desc_name xml:space="preserve">blosclib_version</desc_name> SphinxTranslator.dispatch_visit calling visit_Text for blosclib_version SphinxTranslator.dispatch_departure calling depart_Text for blosclib_version SphinxTranslator.dispatch_departure calling depart_desc_name for <desc_name xml:space="preserve">blosclib_version</desc_name> SphinxTranslator.dispatch_departure calling depart_desc_signature for <desc_signature class="" first="False" fullname="blosclib_version" ids="blosclib_version" module="True" names="blosclib_version"><desc_name xml:space="preserve">blosclib_version</desc_name></desc_signature> SphinxTranslator.dispatch_visit calling visit_desc_content for <desc_content><paragraph>The version of the Blosc C library.</paragraph></desc_content> SphinxTranslator.dispatch_visit calling visit_paragraph for <paragraph>The version of the Blosc C library.</paragraph> SphinxTranslator.dispatch_visit calling visit_Text for The version of the Blosc C library. SphinxTranslator.dispatch_departure calling depart_Text for The version of the Blosc C library. SphinxTranslator.dispatch_departure calling depart_paragraph for <paragraph>The version of the Blosc C library.</paragraph> SphinxTranslator.dispatch_departure calling depart_desc_content for <desc_content><paragraph>The version of the Blosc C library.</paragraph></desc_content> SphinxTranslator.dispatch_departure calling depart_desc for <desc desctype="attribute" domain="py" noindex="False" objtype="attribute"><desc_signature class="" first="False" fullname="blosclib_version" ids="blosclib_version" module="True" names="blosclib_version"><desc_name xml:space="preserve">blosclib_version</desc_name></desc_signature><desc_content><paragraph>The version of the Blosc C library.</paragraph></desc_content></desc> SphinxTranslator.dispatch_visit calling visit_index for <index entries="[('single', 'clib_versions', 'clib_versions', '', None)]"/> SphinxTranslator.dispatch_visit calling visit_desc for <desc desctype="attribute" domain="py" noindex="False" objtype="attribute"><desc_signature class="" first="False" fullname="clib_versions" ids="clib_versions" module="True" names="clib_versions"><desc_name xml:space="preserve">clib_versions</desc_name></desc_signature><desc_content><paragraph>A map for the versions of the compression libraries included in C library.</paragraph></desc_content></desc> SphinxTranslator.dispatch_visit calling visit_desc_signature for <desc_signature class="" first="False" fullname="clib_versions" ids="clib_versions" module="True" names="clib_versions"><desc_name xml:space="preserve">clib_versions</desc_name></desc_signature> SphinxTranslator.dispatch_visit calling visit_desc_name for <desc_name xml:space="preserve">clib_versions</desc_name> SphinxTranslator.dispatch_visit calling visit_Text for clib_versions SphinxTranslator.dispatch_departure calling depart_Text for clib_versions SphinxTranslator.dispatch_departure calling depart_desc_name for <desc_name xml:space="preserve">clib_versions</desc_name> SphinxTranslator.dispatch_departure calling depart_desc_signature for <desc_signature class="" first="False" fullname="clib_versions" ids="clib_versions" module="True" names="clib_versions"><desc_name xml:space="preserve">clib_versions</desc_name></desc_signature> SphinxTranslator.dispatch_visit calling visit_desc_content for <desc_content><paragraph>A map for the versions of the compression libraries included in C library.</paragraph></desc_content> SphinxTranslator.dispatch_visit calling visit_paragraph for <paragraph>A map for the versions of the compression libraries included in C library.</paragraph> SphinxTranslator.dispatch_visit calling visit_Text for A map for the versions of the compression libraries included in C library. SphinxTranslator.dispatch_departure calling depart_Text for A map for the versions of the compression libraries included in C library. SphinxTranslator.dispatch_departure calling depart_paragraph for <paragraph>A map for the versions of the compression libraries included in C library.</paragraph> SphinxTranslator.dispatch_departure calling depart_desc_content for <desc_content><paragraph>A map for the versions of the compression libraries included in C library.</paragraph></desc_content> SphinxTranslator.dispatch_departure calling depart_desc for <desc desctype="attribute" domain="py" noindex="False" objtype="attribute"><desc_signature class="" first="False" fullname="clib_versions" ids="clib_versions" module="True" names="clib_versions"><desc_name xml:space="preserve">clib_versions</desc_name></desc_signature><desc_content><paragraph>A map for the versions of the compression libraries included in C library.</paragraph></desc_content></desc> SphinxTranslator.dispatch_visit calling visit_index for <index entries="[('single', 'cnames', 'cnames', '', None)]"/> SphinxTranslator.dispatch_visit calling visit_desc for <desc desctype="attribute" domain="py" noindex="False" objtype="attribute"><desc_signature class="" first="False" fullname="cnames" ids="cnames" module="True" names="cnames"><desc_name xml:space="preserve">cnames</desc_name></desc_signature><desc_content><paragraph>The list of compressors included in C library.</paragraph></desc_content></desc> SphinxTranslator.dispatch_visit calling visit_desc_signature for <desc_signature class="" first="False" fullname="cnames" ids="cnames" module="True" names="cnames"><desc_name xml:space="preserve">cnames</desc_name></desc_signature> SphinxTranslator.dispatch_visit calling visit_desc_name for <desc_name xml:space="preserve">cnames</desc_name> SphinxTranslator.dispatch_visit calling visit_Text for cnames SphinxTranslator.dispatch_departure calling depart_Text for cnames SphinxTranslator.dispatch_departure calling depart_desc_name for <desc_name xml:space="preserve">cnames</desc_name> SphinxTranslator.dispatch_departure calling depart_desc_signature for <desc_signature class="" first="False" fullname="cnames" ids="cnames" module="True" names="cnames"><desc_name xml:space="preserve">cnames</desc_name></desc_signature> SphinxTranslator.dispatch_visit calling visit_desc_content for <desc_content><paragraph>The list of compressors included in C library.</paragraph></desc_content> SphinxTranslator.dispatch_visit calling visit_paragraph for <paragraph>The list of compressors included in C library.</paragraph> SphinxTranslator.dispatch_visit calling visit_Text for The list of compressors included in C library. SphinxTranslator.dispatch_departure calling depart_Text for The list of compressors included in C library. SphinxTranslator.dispatch_departure calling depart_paragraph for <paragraph>The list of compressors included in C library.</paragraph> SphinxTranslator.dispatch_departure calling depart_desc_content for <desc_content><paragraph>The list of compressors included in C library.</paragraph></desc_content> SphinxTranslator.dispatch_departure calling depart_desc for <desc desctype="attribute" domain="py" noindex="False" objtype="attribute"><desc_signature class="" first="False" fullname="cnames" ids="cnames" module="True" names="cnames"><desc_name xml:space="preserve">cnames</desc_name></desc_signature><desc_content><paragraph>The list of compressors included in C library.</paragraph></desc_content></desc> SphinxTranslator.dispatch_visit calling visit_index for <index entries="[('single', 'cname2clib', 'cname2clib', '', None)]"/> SphinxTranslator.dispatch_visit calling visit_desc for <desc desctype="attribute" domain="py" noindex="False" objtype="attribute"><desc_signature class="" first="False" fullname="cname2clib" ids="cname2clib" module="True" names="cname2clib"><desc_name xml:space="preserve">cname2clib</desc_name></desc_signature><desc_content><paragraph>A map between compressor names and its libraries (or formats).</paragraph></desc_content></desc> SphinxTranslator.dispatch_visit calling visit_desc_signature for <desc_signature class="" first="False" fullname="cname2clib" ids="cname2clib" module="True" names="cname2clib"><desc_name xml:space="preserve">cname2clib</desc_name></desc_signature> SphinxTranslator.dispatch_visit calling visit_desc_name for <desc_name xml:space="preserve">cname2clib</desc_name> SphinxTranslator.dispatch_visit calling visit_Text for cname2clib SphinxTranslator.dispatch_departure calling depart_Text for cname2clib SphinxTranslator.dispatch_departure calling depart_desc_name for <desc_name xml:space="preserve">cname2clib</desc_name> SphinxTranslator.dispatch_departure calling depart_desc_signature for <desc_signature class="" first="False" fullname="cname2clib" ids="cname2clib" module="True" names="cname2clib"><desc_name xml:space="preserve">cname2clib</desc_name></desc_signature> SphinxTranslator.dispatch_visit calling visit_desc_content for <desc_content><paragraph>A map between compressor names and its libraries (or formats).</paragraph></desc_content> SphinxTranslator.dispatch_visit calling visit_paragraph for <paragraph>A map between compressor names and its libraries (or formats).</paragraph> SphinxTranslator.dispatch_visit calling visit_Text for A map between compressor names and its libraries (or formats). SphinxTranslator.dispatch_departure calling depart_Text for A map between compressor names and its libraries (or formats). SphinxTranslator.dispatch_departure calling depart_paragraph for <paragraph>A map between compressor names and its libraries (or formats).</paragraph> SphinxTranslator.dispatch_departure calling depart_desc_content for <desc_content><paragraph>A map between compressor names and its libraries (or formats).</paragraph></desc_content> SphinxTranslator.dispatch_departure calling depart_desc for <desc desctype="attribute" domain="py" noindex="False" objtype="attribute"><desc_signature class="" first="False" fullname="cname2clib" ids="cname2clib" module="True" names="cname2clib"><desc_name xml:space="preserve">cname2clib</desc_name></desc_signature><desc_content><paragraph>A map between compressor names and its libraries (or formats).</paragraph></desc_content></desc> SphinxTranslator.dispatch_visit calling visit_index for <index entries="[('single', 'ncores', 'ncores', '', None)]"/> SphinxTranslator.dispatch_visit calling visit_desc for <desc desctype="attribute" domain="py" noindex="False" objtype="attribute"><desc_signature class="" first="False" fullname="ncores" ids="ncores" module="True" names="ncores"><desc_name xml:space="preserve">ncores</desc_name></desc_signature><desc_content><paragraph>The number of cores detected.</paragraph></desc_content></desc> SphinxTranslator.dispatch_visit calling visit_desc_signature for <desc_signature class="" first="False" fullname="ncores" ids="ncores" module="True" names="ncores"><desc_name xml:space="preserve">ncores</desc_name></desc_signature> SphinxTranslator.dispatch_visit calling visit_desc_name for <desc_name xml:space="preserve">ncores</desc_name> SphinxTranslator.dispatch_visit calling visit_Text for ncores SphinxTranslator.dispatch_departure calling depart_Text for ncores SphinxTranslator.dispatch_departure calling depart_desc_name for <desc_name xml:space="preserve">ncores</desc_name> SphinxTranslator.dispatch_departure calling depart_desc_signature for <desc_signature class="" first="False" fullname="ncores" ids="ncores" module="True" names="ncores"><desc_name xml:space="preserve">ncores</desc_name></desc_signature> SphinxTranslator.dispatch_visit calling visit_desc_content for <desc_content><paragraph>The number of cores detected.</paragraph></desc_content> SphinxTranslator.dispatch_visit calling visit_paragraph for <paragraph>The number of cores detected.</paragraph> SphinxTranslator.dispatch_visit calling visit_Text for The number of cores detected. SphinxTranslator.dispatch_departure calling depart_Text for The number of cores detected. SphinxTranslator.dispatch_departure calling depart_paragraph for <paragraph>The number of cores detected.</paragraph> SphinxTranslator.dispatch_departure calling depart_desc_content for <desc_content><paragraph>The number of cores detected.</paragraph></desc_content> SphinxTranslator.dispatch_departure calling depart_desc for <desc desctype="attribute" domain="py" noindex="False" objtype="attribute"><desc_signature class="" first="False" fullname="ncores" ids="ncores" module="True" names="ncores"><desc_name xml:space="preserve">ncores</desc_name></desc_signature><desc_content><paragraph>The number of cores detected.</paragraph></desc_content></desc> SphinxTranslator.dispatch_departure calling depart_section for <section ids="first-level-variables" names="first\ level\ variables"><title>First level variables</title><index entries="[('single', '__version__', '__version__', '', None)]"/><desc desctype="attribute" domain="py" noindex="False" objtype="attribute"><desc_signature class="" first="False" fullname="__version__" ids="__version__" module="True" names="__version__"><desc_name xml:space="preserve">__version__</desc_name></desc_signature><desc_content><paragraph>The version of the blosc package.</paragraph></desc_content></desc><index entries="[('single', 'blosclib_version', 'blosclib_version', '', None)]"/><desc desctype="attribute" domain="py" noindex="False" objtype="attribute"><desc_signature class="" first="False" fullname="blosclib_version" ids="blosclib_version" module="True" names="blosclib_version"><desc_name xml:space="preserve">blosclib_version</desc_name></desc_signature><desc_content><paragraph>The version of the Blosc C library.</paragraph></desc_content></desc><index entries="[('single', 'clib_versions', 'clib_versions', '', None)]"/><desc desctype="attribute" domain="py" noindex="False" objtype="attribute"><desc_signature class="" first="False" fullname="clib_versions" ids="clib_versions" module="True" names="clib_versions"><desc_name xml:space="preserve">clib_versions</desc_name></desc_signature><desc_content><paragraph>A map for the versions of the compression libraries included in C library.</paragraph></desc_content></desc><index entries="[('single', 'cnames', 'cnames', '', None)]"/><desc desctype="attribute" domain="py" noindex="False" objtype="attribute"><desc_signature class="" first="False" fullname="cnames" ids="cnames" module="True" names="cnames"><desc_name xml:space="preserve">cnames</desc_name></desc_signature><desc_content><paragraph>The list of compressors included in C library.</paragraph></desc_content></desc><index entries="[('single', 'cname2clib', 'cname2clib', '', None)]"/><desc desctype="attribute" domain="py" noindex="False" objtype="attribute"><desc_signature class="" first="False" fullname="cname2clib" ids="cname2clib" module="True" names="cname2clib"><desc_name xml:space="preserve">cname2clib</desc_name></desc_signature><desc_content><paragraph>A map between compressor names and its libraries (or formats).</paragraph></desc_content></desc><index entries="[('single', 'ncores', 'ncores', '', None)]"/><desc desctype="attribute" domain="py" noindex="False" objtype="attribute"><desc_signature class="" first="False" fullname="ncores" ids="ncores" module="True" names="ncores"><desc_name xml:space="preserve">ncores</desc_name></desc_signature><desc_content><paragraph>The number of cores detected.</paragraph></desc_content></desc></section> SphinxTranslator.dispatch_visit calling visit_section for <section ids="module-blosc public-functions" names="public\ functions"><title>Public functions</title><index entries="[('single', 'blosc (module)', 'module-blosc', '', None)]"/><index entries="[('single', 'compress() (in module blosc)', 'blosc.compress', '', None)]"/><desc desctype="function" domain="py" noindex="False" objtype="function"><desc_signature class="" first="False" fullname="compress" ids="blosc.compress" module="blosc" names="blosc.compress"><desc_addname xml:space="preserve">blosc.</desc_addname><desc_name xml:space="preserve">compress</desc_name><desc_parameterlist xml:space="preserve"><desc_parameter xml:space="preserve">bytesobj[, typesize=8, clevel=9, shuffle=blosc.SHUFFLE, cname='blosclz']]</desc_parameter></desc_parameterlist></desc_signature><desc_content><paragraph>Compress bytesobj, with a given type size.</paragraph><field_list><field><field_name>Parameters</field_name><field_body><paragraph><strong>bytesobj</strong> : bytes-like object (supporting the buffer interface)</paragraph><block_quote><paragraph>The data to be compressed.</paragraph></block_quote><paragraph><strong>typesize</strong> : int</paragraph><block_quote><paragraph>The data type size.</paragraph></block_quote><paragraph><strong>clevel</strong> : int (optional)</paragraph><block_quote><paragraph>The compression level from 0 (no compression) to 9 (maximum compression). The default is 9.</paragraph></block_quote><paragraph><strong>shuffle</strong> : int (optional)</paragraph><block_quote><paragraph>The shuffle filter to be activated. Allowed values are blosc.NOSHUFFLE, blosc.SHUFFLE and blosc.BITSHUFFLE. The default is blosc.SHUFFLE.</paragraph></block_quote><paragraph><strong>cname</strong> : string (optional)</paragraph><block_quote><paragraph>The name of the compressor used internally in Blosc. It can be any of the supported by Blosc (‘blosclz’, ‘lz4’, ‘lz4hc’, ‘snappy’, ‘zlib’, ‘zstd’ and maybe others too). The default is ‘blosclz’.</paragraph></block_quote></field_body></field><field><field_name>Returns</field_name><field_body><paragraph><strong>out</strong> : str / bytes</paragraph><block_quote><paragraph>The compressed data in form of a Python str / bytes object.</paragraph></block_quote></field_body></field><field><field_name>Raises</field_name><field_body><paragraph><strong>TypeError</strong></paragraph><block_quote><paragraph>If bytesobj doesn’t support the buffer interface.</paragraph></block_quote><paragraph><strong>ValueError</strong></paragraph><block_quote><paragraph>If bytesobj is too long. If typesize is not within the allowed range. If clevel is not within the allowed range. If cname is not a valid codec.</paragraph></block_quote></field_body></field></field_list><rubric>Examples</rubric><doctest_block classes="doctest" xml:space="preserve">>>> import array >>> a = array.array('i', range(1000*1000)) >>> a_bytesobj = a.tostring() >>> c_bytesobj = blosc.compress(a_bytesobj, typesize=4) >>> len(c_bytesobj) < len(a_bytesobj) True</doctest_block></desc_content></desc><index entries="[('single', 'compress_ptr() (in module blosc)', 'blosc.compress_ptr', '', None)]"/><desc desctype="function" domain="py" noindex="False" objtype="function"><desc_signature class="" first="False" fullname="compress_ptr" ids="blosc.compress_ptr" module="blosc" names="blosc.compress_ptr"><desc_addname xml:space="preserve">blosc.</desc_addname><desc_name xml:space="preserve">compress_ptr</desc_name><desc_parameterlist xml:space="preserve"><desc_parameter xml:space="preserve">address, items[, typesize=8, clevel=9, shuffle=blosc.SHUFFLE, cname='blosclz']]</desc_parameter></desc_parameterlist></desc_signature><desc_content><paragraph>Compress the data at address with given items and typesize.</paragraph><field_list><field><field_name>Parameters</field_name><field_body><paragraph><strong>address</strong> : int or long</paragraph><block_quote><paragraph>the pointer to the data to be compressed</paragraph></block_quote><paragraph><strong>items</strong> : int</paragraph><block_quote><paragraph>The number of items (of typesize) to be compressed.</paragraph></block_quote><paragraph><strong>typesize</strong> : int</paragraph><block_quote><paragraph>The data type size.</paragraph></block_quote><paragraph><strong>clevel</strong> : int (optional)</paragraph><block_quote><paragraph>The compression level from 0 (no compression) to 9 (maximum compression). The default is 9.</paragraph></block_quote><paragraph><strong>shuffle</strong> : int (optional)</paragraph><block_quote><paragraph>The shuffle filter to be activated. Allowed values are blosc.NOSHUFFLE, blosc.SHUFFLE and blosc.BITSHUFFLE. The default is blosc.SHUFFLE.</paragraph></block_quote><paragraph><strong>cname</strong> : string (optional)</paragraph><block_quote><paragraph>The name of the compressor used internally in Blosc. It can be any of the supported by Blosc (‘blosclz’, ‘lz4’, ‘lz4hc’, ‘snappy’, ‘zlib’, ‘zstd’ and maybe others too). The default is ‘blosclz’.</paragraph></block_quote></field_body></field><field><field_name>Returns</field_name><field_body><paragraph><strong>out</strong> : str / bytes</paragraph><block_quote><paragraph>The compressed data in form of a Python str / bytes object.</paragraph></block_quote></field_body></field><field><field_name>Raises</field_name><field_body><paragraph><strong>TypeError</strong></paragraph><block_quote><paragraph>If address is not of type int or long.</paragraph></block_quote><paragraph><strong>ValueError</strong></paragraph><block_quote><paragraph>If items * typesize is larger than the maximum allowed buffer size. If typesize is not within the allowed range. If clevel is not within the allowed range. If cname is not within the supported compressors.</paragraph></block_quote></field_body></field></field_list><rubric>Notes</rubric><paragraph>This function can be used anywhere that a memory address is available in Python. For example the Numpy “__array_interface__[‘data’][0]†construct, or when using the ctypes modules.</paragraph><paragraph>Importantly, the user is responsible for making sure that the memory address is valid and that the memory pointed to is contiguous. Passing a non-valid address has a high likelihood of crashing the interpreter by segfault.</paragraph><rubric>Examples</rubric><doctest_block classes="doctest" xml:space="preserve">>>> import numpy >>> items = 7 >>> np_array = numpy.arange(items) >>> c = blosc.compress_ptr(np_array.__array_interface__['data'][0], items, np_array.dtype.itemsize) >>> d = blosc.decompress(c) >>> np_ans = numpy.fromstring(d, dtype=np_array.dtype) >>> (np_array == np_ans).all() True</doctest_block><doctest_block classes="doctest" xml:space="preserve">>>> import ctypes >>> typesize = 8 >>> data = [float(i) for i in range(items)] >>> Array = ctypes.c_double * items >>> a = Array(*data) >>> c = blosc.compress_ptr(ctypes.addressof(a), items, typesize) >>> d = blosc.decompress(c) >>> import struct >>> ans = [struct.unpack('d', d[i:i+typesize])[0] for i in range(0, items*typesize, typesize)] >>> data == ans True</doctest_block></desc_content></desc><index entries="[('single', 'decompress() (in module blosc)', 'blosc.decompress', '', None)]"/><desc desctype="function" domain="py" noindex="False" objtype="function"><desc_signature class="" first="False" fullname="decompress" ids="blosc.decompress" module="blosc" names="blosc.decompress"><desc_addname xml:space="preserve">blosc.</desc_addname><desc_name xml:space="preserve">decompress</desc_name><desc_parameterlist xml:space="preserve"><desc_parameter xml:space="preserve">bytesobj</desc_parameter></desc_parameterlist></desc_signature><desc_content><paragraph>Decompresses a bytesobj compressed object.</paragraph><field_list><field><field_name>Parameters</field_name><field_body><paragraph><strong>bytesobj</strong> : str / bytes</paragraph><block_quote><paragraph>The data to be decompressed.</paragraph></block_quote><paragraph><strong>as_bytearray</strong> : bool, optional</paragraph><block_quote><paragraph>If this flag is True then the return type will be a bytearray object instead of a bytesobject.</paragraph></block_quote></field_body></field><field><field_name>Returns</field_name><field_body><paragraph><strong>out</strong> : str / bytes or bytearray</paragraph><block_quote><paragraph>The decompressed data in form of a Python str / bytes object. If as_bytearray is True then this will be a bytearray object, otherwise this will be a str/ bytes object.</paragraph></block_quote></field_body></field><field><field_name>Raises</field_name><field_body><paragraph><strong>TypeError</strong></paragraph><block_quote><paragraph>If bytesobj is not of type bytes or string.</paragraph></block_quote></field_body></field></field_list><rubric>Examples</rubric><doctest_block classes="doctest" xml:space="preserve">>>> import array >>> a = array.array('i', range(1000*1000)) >>> a_bytesobj = a.tostring() >>> c_bytesobj = blosc.compress(a_bytesobj, typesize=4) >>> a_bytesobj2 = blosc.decompress(c_bytesobj) >>> a_bytesobj == a_bytesobj2 True >>> b"" == blosc.decompress(blosc.compress(b"", 1)) True >>> b"1"*7 == blosc.decompress(blosc.compress(b"1"*7, 8)) True >>> type(blosc.decompress(blosc.compress(b"1"*7, 8), ... as_bytearray=True)) is bytearray True</doctest_block></desc_content></desc><index entries="[('single', 'decompress_ptr() (in module blosc)', 'blosc.decompress_ptr', '', None)]"/><desc desctype="function" domain="py" noindex="False" objtype="function"><desc_signature class="" first="False" fullname="decompress_ptr" ids="blosc.decompress_ptr" module="blosc" names="blosc.decompress_ptr"><desc_addname xml:space="preserve">blosc.</desc_addname><desc_name xml:space="preserve">decompress_ptr</desc_name><desc_parameterlist xml:space="preserve"><desc_parameter xml:space="preserve">bytesobj</desc_parameter><desc_parameter xml:space="preserve">address</desc_parameter></desc_parameterlist></desc_signature><desc_content><paragraph>Decompresses a bytesobj compressed object into the memory at address.</paragraph><field_list><field><field_name>Parameters</field_name><field_body><paragraph><strong>bytesobj</strong> : str / bytes</paragraph><block_quote><paragraph>The data to be decompressed.</paragraph></block_quote><paragraph><strong>address</strong> : int or long</paragraph><block_quote><paragraph>the pointer to the data to be compressed</paragraph></block_quote></field_body></field><field><field_name>Returns</field_name><field_body><paragraph><strong>nbytes</strong> : int</paragraph><block_quote><paragraph>the number of bytes written to the buffer</paragraph></block_quote></field_body></field><field><field_name>Raises</field_name><field_body><paragraph><strong>TypeError</strong></paragraph><block_quote><paragraph>If bytesobj is not of type bytes or string. If address is not of type int or long.</paragraph></block_quote></field_body></field></field_list><rubric>Notes</rubric><paragraph>This function can be used anywhere that a memory address is available in Python. For example the Numpy “__array_interface__[‘data’][0]†construct, or when using the ctypes modules.</paragraph><paragraph>Importantly, the user is responsible for making sure that the memory address is valid and that the memory pointed to is contiguous and can be written to. Passing a non-valid address has a high likelihood of crashing the interpreter by segfault.</paragraph><rubric>Examples</rubric><doctest_block classes="doctest" xml:space="preserve">>>> import numpy >>> items = 7 >>> np_array = numpy.arange(items) >>> c = blosc.compress_ptr(np_array.__array_interface__['data'][0], items, np_array.dtype.itemsize) >>> np_ans = numpy.empty(items, dtype=np_array.dtype) >>> nbytes = blosc.decompress_ptr(c, np_ans.__array_interface__['data'][0]) >>> (np_array == np_ans).all() True >>> nbytes == items * np_array.dtype.itemsize True</doctest_block><doctest_block classes="doctest" xml:space="preserve">>>> import ctypes >>> typesize = 8 >>> data = [float(i) for i in range(items)] >>> Array = ctypes.c_double * items >>> in_array = Array(*data) >>> c = blosc.compress_ptr(ctypes.addressof(in_array), items, typesize) >>> out_array = ctypes.create_string_buffer(items*typesize) >>> nbytes = blosc.decompress_ptr(c, ctypes.addressof(out_array)) >>> import struct >>> ans = [struct.unpack('d', out_array[i:i+typesize])[0] for i in range(0, items*typesize, typesize)] >>> data == ans True >>> nbytes == items * typesize True</doctest_block></desc_content></desc><index entries="[('single', 'pack_array() (in module blosc)', 'blosc.pack_array', '', None)]"/><desc desctype="function" domain="py" noindex="False" objtype="function"><desc_signature class="" first="False" fullname="pack_array" ids="blosc.pack_array" module="blosc" names="blosc.pack_array"><desc_addname xml:space="preserve">blosc.</desc_addname><desc_name xml:space="preserve">pack_array</desc_name><desc_parameterlist xml:space="preserve"><desc_parameter xml:space="preserve">array[, clevel=9, shuffle=blosc.SHUFFLE, cname='blosclz']]</desc_parameter></desc_parameterlist></desc_signature><desc_content><paragraph>Pack (compress) a NumPy array.</paragraph><field_list><field><field_name>Parameters</field_name><field_body><paragraph><strong>array</strong> : ndarray</paragraph><block_quote><paragraph>The NumPy array to be packed.</paragraph></block_quote><paragraph><strong>clevel</strong> : int (optional)</paragraph><block_quote><paragraph>The compression level from 0 (no compression) to 9 (maximum compression). The default is 9.</paragraph></block_quote><paragraph><strong>shuffle</strong> : int (optional)</paragraph><block_quote><paragraph>The shuffle filter to be activated. Allowed values are blosc.NOSHUFFLE, blosc.SHUFFLE and blosc.BITSHUFFLE. The default is blosc.SHUFFLE.</paragraph></block_quote><paragraph><strong>cname</strong> : string (optional)</paragraph><block_quote><paragraph>The name of the compressor used internally in Blosc. It can be any of the supported by Blosc (‘blosclz’, ‘lz4’, ‘lz4hc’, ‘snappy’, ‘zlib’, ‘zstd’ and maybe others too). The default is ‘blosclz’.</paragraph></block_quote></field_body></field><field><field_name>Returns</field_name><field_body><paragraph><strong>out</strong> : str / bytes</paragraph><block_quote><paragraph>The packed array in form of a Python str / bytes object.</paragraph></block_quote></field_body></field><field><field_name>Raises</field_name><field_body><paragraph><strong>TypeError</strong></paragraph><block_quote><paragraph>If array does not quack like a numpy ndarray.</paragraph></block_quote><paragraph><strong>ValueError</strong></paragraph><block_quote><definition_list><definition_list_item><term>If array.itemsize * array.size is larger than the maximum allowed</term><definition><paragraph>buffer size.</paragraph></definition></definition_list_item></definition_list><paragraph>If typesize is not within the allowed range. If clevel is not within the allowed range. If cname is not within the supported compressors.</paragraph></block_quote></field_body></field></field_list><rubric>Examples</rubric><doctest_block classes="doctest" xml:space="preserve">>>> import numpy >>> a = numpy.arange(1e6) >>> parray = blosc.pack_array(a) >>> len(parray) < a.size*a.itemsize True</doctest_block></desc_content></desc><index entries="[('single', 'unpack_array() (in module blosc)', 'blosc.unpack_array', '', None)]"/><desc desctype="function" domain="py" noindex="False" objtype="function"><desc_signature class="" first="False" fullname="unpack_array" ids="blosc.unpack_array" module="blosc" names="blosc.unpack_array"><desc_addname xml:space="preserve">blosc.</desc_addname><desc_name xml:space="preserve">unpack_array</desc_name><desc_parameterlist xml:space="preserve"><desc_parameter xml:space="preserve">packed_array</desc_parameter></desc_parameterlist></desc_signature><desc_content><paragraph>Unpack (decompress) a packed NumPy array.</paragraph><field_list><field><field_name>Parameters</field_name><field_body><paragraph><strong>packed_array</strong> : str / bytes</paragraph><block_quote><paragraph>The packed array to be decompressed.</paragraph></block_quote></field_body></field><field><field_name>Returns</field_name><field_body><paragraph><strong>out</strong> : ndarray</paragraph><block_quote><paragraph>The decompressed data in form of a NumPy array.</paragraph></block_quote></field_body></field><field><field_name>Raises</field_name><field_body><paragraph><strong>TypeError</strong></paragraph><block_quote><paragraph>If packed_array is not of type bytes or string.</paragraph></block_quote></field_body></field></field_list><rubric>Examples</rubric><doctest_block classes="doctest" xml:space="preserve">>>> import numpy >>> a = numpy.arange(1e6) >>> parray = blosc.pack_array(a) >>> len(parray) < a.size*a.itemsize True >>> a2 = blosc.unpack_array(parray) >>> numpy.alltrue(a == a2) True</doctest_block></desc_content></desc></section> SphinxTranslator.dispatch_visit calling visit_title for <title>Public functions</title> SphinxTranslator.dispatch_visit calling visit_Text for Public functions SphinxTranslator.dispatch_departure calling depart_Text for Public functions SphinxTranslator.dispatch_departure calling depart_title for <title>Public functions</title> SphinxTranslator.dispatch_visit calling visit_index for <index entries="[('single', 'blosc (module)', 'module-blosc', '', None)]"/> SphinxTranslator.dispatch_visit calling visit_index for <index entries="[('single', 'compress() (in module blosc)', 'blosc.compress', '', None)]"/> SphinxTranslator.dispatch_visit calling visit_desc for <desc desctype="function" domain="py" noindex="False" objtype="function"><desc_signature class="" first="False" fullname="compress" ids="blosc.compress" module="blosc" names="blosc.compress"><desc_addname xml:space="preserve">blosc.</desc_addname><desc_name xml:space="preserve">compress</desc_name><desc_parameterlist xml:space="preserve"><desc_parameter xml:space="preserve">bytesobj[, typesize=8, clevel=9, shuffle=blosc.SHUFFLE, cname='blosclz']]</desc_parameter></desc_parameterlist></desc_signature><desc_content><paragraph>Compress bytesobj, with a given type size.</paragraph><field_list><field><field_name>Parameters</field_name><field_body><paragraph><strong>bytesobj</strong> : bytes-like object (supporting the buffer interface)</paragraph><block_quote><paragraph>The data to be compressed.</paragraph></block_quote><paragraph><strong>typesize</strong> : int</paragraph><block_quote><paragraph>The data type size.</paragraph></block_quote><paragraph><strong>clevel</strong> : int (optional)</paragraph><block_quote><paragraph>The compression level from 0 (no compression) to 9 (maximum compression). The default is 9.</paragraph></block_quote><paragraph><strong>shuffle</strong> : int (optional)</paragraph><block_quote><paragraph>The shuffle filter to be activated. Allowed values are blosc.NOSHUFFLE, blosc.SHUFFLE and blosc.BITSHUFFLE. The default is blosc.SHUFFLE.</paragraph></block_quote><paragraph><strong>cname</strong> : string (optional)</paragraph><block_quote><paragraph>The name of the compressor used internally in Blosc. It can be any of the supported by Blosc (‘blosclz’, ‘lz4’, ‘lz4hc’, ‘snappy’, ‘zlib’, ‘zstd’ and maybe others too). The default is ‘blosclz’.</paragraph></block_quote></field_body></field><field><field_name>Returns</field_name><field_body><paragraph><strong>out</strong> : str / bytes</paragraph><block_quote><paragraph>The compressed data in form of a Python str / bytes object.</paragraph></block_quote></field_body></field><field><field_name>Raises</field_name><field_body><paragraph><strong>TypeError</strong></paragraph><block_quote><paragraph>If bytesobj doesn’t support the buffer interface.</paragraph></block_quote><paragraph><strong>ValueError</strong></paragraph><block_quote><paragraph>If bytesobj is too long. If typesize is not within the allowed range. If clevel is not within the allowed range. If cname is not a valid codec.</paragraph></block_quote></field_body></field></field_list><rubric>Examples</rubric><doctest_block classes="doctest" xml:space="preserve">>>> import array >>> a = array.array('i', range(1000*1000)) >>> a_bytesobj = a.tostring() >>> c_bytesobj = blosc.compress(a_bytesobj, typesize=4) >>> len(c_bytesobj) < len(a_bytesobj) True</doctest_block></desc_content></desc> SphinxTranslator.dispatch_visit calling visit_desc_signature for <desc_signature class="" first="False" fullname="compress" ids="blosc.compress" module="blosc" names="blosc.compress"><desc_addname xml:space="preserve">blosc.</desc_addname><desc_name xml:space="preserve">compress</desc_name><desc_parameterlist xml:space="preserve"><desc_parameter xml:space="preserve">bytesobj[, typesize=8, clevel=9, shuffle=blosc.SHUFFLE, cname='blosclz']]</desc_parameter></desc_parameterlist></desc_signature> SphinxTranslator.dispatch_visit calling visit_desc_addname for <desc_addname xml:space="preserve">blosc.</desc_addname> SphinxTranslator.dispatch_visit calling visit_Text for blosc. SphinxTranslator.dispatch_departure calling depart_Text for blosc. SphinxTranslator.dispatch_departure calling depart_desc_addname for <desc_addname xml:space="preserve">blosc.</desc_addname> SphinxTranslator.dispatch_visit calling visit_desc_name for <desc_name xml:space="preserve">compress</desc_name> SphinxTranslator.dispatch_visit calling visit_Text for compress SphinxTranslator.dispatch_departure calling depart_Text for compress SphinxTranslator.dispatch_departure calling depart_desc_name for <desc_name xml:space="preserve">compress</desc_name> SphinxTranslator.dispatch_visit calling visit_desc_parameterlist for <desc_parameterlist xml:space="preserve"><desc_parameter xml:space="preserve">bytesobj[, typesize=8, clevel=9, shuffle=blosc.SHUFFLE, cname='blosclz']]</desc_parameter></desc_parameterlist> SphinxTranslator.dispatch_visit calling visit_desc_parameter for <desc_parameter xml:space="preserve">bytesobj[, typesize=8, clevel=9, shuffle=blosc.SHUFFLE, cname='blosclz']]</desc_parameter> SphinxTranslator.dispatch_visit calling visit_Text for bytesobj[, typesize=8, clevel=9, shuffle=blosc.SHUFFLE, cname='blosclz']] SphinxTranslator.dispatch_departure calling depart_Text for bytesobj[, typesize=8, clevel=9, shuffle=blosc.SHUFFLE, cname='blosclz']] SphinxTranslator.dispatch_departure calling depart_desc_parameter for <desc_parameter xml:space="preserve">bytesobj[, typesize=8, clevel=9, shuffle=blosc.SHUFFLE, cname='blosclz']]</desc_parameter> SphinxTranslator.dispatch_departure calling depart_desc_parameterlist for <desc_parameterlist xml:space="preserve"><desc_parameter xml:space="preserve">bytesobj[, typesize=8, clevel=9, shuffle=blosc.SHUFFLE, cname='blosclz']]</desc_parameter></desc_parameterlist> SphinxTranslator.dispatch_departure calling depart_desc_signature for <desc_signature class="" first="False" fullname="compress" ids="blosc.compress" module="blosc" names="blosc.compress"><desc_addname xml:space="preserve">blosc.</desc_addname><desc_name xml:space="preserve">compress</desc_name><desc_parameterlist xml:space="preserve"><desc_parameter xml:space="preserve">bytesobj[, typesize=8, clevel=9, shuffle=blosc.SHUFFLE, cname='blosclz']]</desc_parameter></desc_parameterlist></desc_signature> SphinxTranslator.dispatch_visit calling visit_desc_content for <desc_content><paragraph>Compress bytesobj, with a given type size.</paragraph><field_list><field><field_name>Parameters</field_name><field_body><paragraph><strong>bytesobj</strong> : bytes-like object (supporting the buffer interface)</paragraph><block_quote><paragraph>The data to be compressed.</paragraph></block_quote><paragraph><strong>typesize</strong> : int</paragraph><block_quote><paragraph>The data type size.</paragraph></block_quote><paragraph><strong>clevel</strong> : int (optional)</paragraph><block_quote><paragraph>The compression level from 0 (no compression) to 9 (maximum compression). The default is 9.</paragraph></block_quote><paragraph><strong>shuffle</strong> : int (optional)</paragraph><block_quote><paragraph>The shuffle filter to be activated. Allowed values are blosc.NOSHUFFLE, blosc.SHUFFLE and blosc.BITSHUFFLE. The default is blosc.SHUFFLE.</paragraph></block_quote><paragraph><strong>cname</strong> : string (optional)</paragraph><block_quote><paragraph>The name of the compressor used internally in Blosc. It can be any of the supported by Blosc (‘blosclz’, ‘lz4’, ‘lz4hc’, ‘snappy’, ‘zlib’, ‘zstd’ and maybe others too). The default is ‘blosclz’.</paragraph></block_quote></field_body></field><field><field_name>Returns</field_name><field_body><paragraph><strong>out</strong> : str / bytes</paragraph><block_quote><paragraph>The compressed data in form of a Python str / bytes object.</paragraph></block_quote></field_body></field><field><field_name>Raises</field_name><field_body><paragraph><strong>TypeError</strong></paragraph><block_quote><paragraph>If bytesobj doesn’t support the buffer interface.</paragraph></block_quote><paragraph><strong>ValueError</strong></paragraph><block_quote><paragraph>If bytesobj is too long. If typesize is not within the allowed range. If clevel is not within the allowed range. If cname is not a valid codec.</paragraph></block_quote></field_body></field></field_list><rubric>Examples</rubric><doctest_block classes="doctest" xml:space="preserve">>>> import array >>> a = array.array('i', range(1000*1000)) >>> a_bytesobj = a.tostring() >>> c_bytesobj = blosc.compress(a_bytesobj, typesize=4) >>> len(c_bytesobj) < len(a_bytesobj) True</doctest_block></desc_content> SphinxTranslator.dispatch_visit calling visit_paragraph for <paragraph>Compress bytesobj, with a given type size.</paragraph> SphinxTranslator.dispatch_visit calling visit_Text for Compress bytesobj, with a given type size. SphinxTranslator.dispatch_departure calling depart_Text for Compress bytesobj, with a given type size. SphinxTranslator.dispatch_departure calling depart_paragraph for <paragraph>Compress bytesobj, with a given type size.</paragraph> SphinxTranslator.dispatch_visit calling visit_field_list for <field_list><field><field_name>Parameters</field_name><field_body><paragraph><strong>bytesobj</strong> : bytes-like object (supporting the buffer interface)</paragraph><block_quote><paragraph>The data to be compressed.</paragraph></block_quote><paragraph><strong>typesize</strong> : int</paragraph><block_quote><paragraph>The data type size.</paragraph></block_quote><paragraph><strong>clevel</strong> : int (optional)</paragraph><block_quote><paragraph>The compression level from 0 (no compression) to 9 (maximum compression). The default is 9.</paragraph></block_quote><paragraph><strong>shuffle</strong> : int (optional)</paragraph><block_quote><paragraph>The shuffle filter to be activated. Allowed values are blosc.NOSHUFFLE, blosc.SHUFFLE and blosc.BITSHUFFLE. The default is blosc.SHUFFLE.</paragraph></block_quote><paragraph><strong>cname</strong> : string (optional)</paragraph><block_quote><paragraph>The name of the compressor used internally in Blosc. It can be any of the supported by Blosc (‘blosclz’, ‘lz4’, ‘lz4hc’, ‘snappy’, ‘zlib’, ‘zstd’ and maybe others too). The default is ‘blosclz’.</paragraph></block_quote></field_body></field><field><field_name>Returns</field_name><field_body><paragraph><strong>out</strong> : str / bytes</paragraph><block_quote><paragraph>The compressed data in form of a Python str / bytes object.</paragraph></block_quote></field_body></field><field><field_name>Raises</field_name><field_body><paragraph><strong>TypeError</strong></paragraph><block_quote><paragraph>If bytesobj doesn’t support the buffer interface.</paragraph></block_quote><paragraph><strong>ValueError</strong></paragraph><block_quote><paragraph>If bytesobj is too long. If typesize is not within the allowed range. If clevel is not within the allowed range. If cname is not a valid codec.</paragraph></block_quote></field_body></field></field_list> SphinxTranslator.dispatch_visit calling visit_field for <field><field_name>Parameters</field_name><field_body><paragraph><strong>bytesobj</strong> : bytes-like object (supporting the buffer interface)</paragraph><block_quote><paragraph>The data to be compressed.</paragraph></block_quote><paragraph><strong>typesize</strong> : int</paragraph><block_quote><paragraph>The data type size.</paragraph></block_quote><paragraph><strong>clevel</strong> : int (optional)</paragraph><block_quote><paragraph>The compression level from 0 (no compression) to 9 (maximum compression). The default is 9.</paragraph></block_quote><paragraph><strong>shuffle</strong> : int (optional)</paragraph><block_quote><paragraph>The shuffle filter to be activated. Allowed values are blosc.NOSHUFFLE, blosc.SHUFFLE and blosc.BITSHUFFLE. The default is blosc.SHUFFLE.</paragraph></block_quote><paragraph><strong>cname</strong> : string (optional)</paragraph><block_quote><paragraph>The name of the compressor used internally in Blosc. It can be any of the supported by Blosc (‘blosclz’, ‘lz4’, ‘lz4hc’, ‘snappy’, ‘zlib’, ‘zstd’ and maybe others too). The default is ‘blosclz’.</paragraph></block_quote></field_body></field> SphinxTranslator.dispatch_visit calling visit_field_name for <field_name>Parameters</field_name> SphinxTranslator.dispatch_visit calling visit_Text for Parameters SphinxTranslator.dispatch_departure calling depart_Text for Parameters SphinxTranslator.dispatch_departure calling depart_field_name for <field_name>Parameters</field_name> SphinxTranslator.dispatch_visit calling visit_field_body for <field_body><paragraph><strong>bytesobj</strong> : bytes-like object (supporting the buffer interface)</paragraph><block_quote><paragraph>The data to be compressed.</paragraph></block_quote><paragraph><strong>typesize</strong> : int</paragraph><block_quote><paragraph>The data type size.</paragraph></block_quote><paragraph><strong>clevel</strong> : int (optional)</paragraph><block_quote><paragraph>The compression level from 0 (no compression) to 9 (maximum compression). The default is 9.</paragraph></block_quote><paragraph><strong>shuffle</strong> : int (optional)</paragraph><block_quote><paragraph>The shuffle filter to be activated. Allowed values are blosc.NOSHUFFLE, blosc.SHUFFLE and blosc.BITSHUFFLE. The default is blosc.SHUFFLE.</paragraph></block_quote><paragraph><strong>cname</strong> : string (optional)</paragraph><block_quote><paragraph>The name of the compressor used internally in Blosc. It can be any of the supported by Blosc (‘blosclz’, ‘lz4’, ‘lz4hc’, ‘snappy’, ‘zlib’, ‘zstd’ and maybe others too). The default is ‘blosclz’.</paragraph></block_quote></field_body> SphinxTranslator.dispatch_visit calling visit_paragraph for <paragraph><strong>bytesobj</strong> : bytes-like object (supporting the buffer interface)</paragraph> SphinxTranslator.dispatch_visit calling visit_strong for <strong>bytesobj</strong> SphinxTranslator.dispatch_visit calling visit_Text for bytesobj SphinxTranslator.dispatch_departure calling depart_Text for bytesobj SphinxTranslator.dispatch_departure calling depart_strong for <strong>bytesobj</strong> SphinxTranslator.dispatch_visit calling visit_Text for : bytes-like object (supporting the buffer interface) SphinxTranslator.dispatch_departure calling depart_Text for : bytes-like object (supporting the buffer interface) SphinxTranslator.dispatch_departure calling depart_paragraph for <paragraph><strong>bytesobj</strong> : bytes-like object (supporting the buffer interface)</paragraph> SphinxTranslator.dispatch_visit calling visit_block_quote for <block_quote><paragraph>The data to be compressed.</paragraph></block_quote> SphinxTranslator.dispatch_visit calling visit_paragraph for <paragraph>The data to be compressed.</paragraph> SphinxTranslator.dispatch_visit calling visit_Text for The data to be compressed. SphinxTranslator.dispatch_departure calling depart_Text for The data to be compressed. SphinxTranslator.dispatch_departure calling depart_paragraph for <paragraph>The data to be compressed.</paragraph> SphinxTranslator.dispatch_departure calling depart_block_quote for <block_quote><paragraph>The data to be compressed.</paragraph></block_quote> SphinxTranslator.dispatch_visit calling visit_paragraph for <paragraph><strong>typesize</strong> : int</paragraph> SphinxTranslator.dispatch_visit calling visit_strong for <strong>typesize</strong> SphinxTranslator.dispatch_visit calling visit_Text for typesize SphinxTranslator.dispatch_departure calling depart_Text for typesize SphinxTranslator.dispatch_departure calling depart_strong for <strong>typesize</strong> SphinxTranslator.dispatch_visit calling visit_Text for : int SphinxTranslator.dispatch_departure calling depart_Text for : int SphinxTranslator.dispatch_departure calling depart_paragraph for <paragraph><strong>typesize</strong> : int</paragraph> SphinxTranslator.dispatch_visit calling visit_block_quote for <block_quote><paragraph>The data type size.</paragraph></block_quote> SphinxTranslator.dispatch_visit calling visit_paragraph for <paragraph>The data type size.</paragraph> SphinxTranslator.dispatch_visit calling visit_Text for The data type size. SphinxTranslator.dispatch_departure calling depart_Text for The data type size. SphinxTranslator.dispatch_departure calling depart_paragraph for <paragraph>The data type size.</paragraph> SphinxTranslator.dispatch_departure calling depart_block_quote for <block_quote><paragraph>The data type size.</paragraph></block_quote> SphinxTranslator.dispatch_visit calling visit_paragraph for <paragraph><strong>clevel</strong> : int (optional)</paragraph> SphinxTranslator.dispatch_visit calling visit_strong for <strong>clevel</strong> SphinxTranslator.dispatch_visit calling visit_Text for clevel SphinxTranslator.dispatch_departure calling depart_Text for clevel SphinxTranslator.dispatch_departure calling depart_strong for <strong>clevel</strong> SphinxTranslator.dispatch_visit calling visit_Text for : int (optional) SphinxTranslator.dispatch_departure calling depart_Text for : int (optional) SphinxTranslator.dispatch_departure calling depart_paragraph for <paragraph><strong>clevel</strong> : int (optional)</paragraph> SphinxTranslator.dispatch_visit calling visit_block_quote for <block_quote><paragraph>The compression level from 0 (no compression) to 9 (maximum compression). The default is 9.</paragraph></block_quote> SphinxTranslator.dispatch_visit calling visit_paragraph for <paragraph>The compression level from 0 (no compression) to 9 (maximum compression). The default is 9.</paragraph> SphinxTranslator.dispatch_visit calling visit_Text for The compression level from 0 (no compression) to 9 (maximum compression). The default is 9. SphinxTranslator.dispatch_departure calling depart_Text for The compression level from 0 (no compression) to 9 (maximum compression). The default is 9. SphinxTranslator.dispatch_departure calling depart_paragraph for <paragraph>The compression level from 0 (no compression) to 9 (maximum compression). The default is 9.</paragraph> SphinxTranslator.dispatch_departure calling depart_block_quote for <block_quote><paragraph>The compression level from 0 (no compression) to 9 (maximum compression). The default is 9.</paragraph></block_quote> SphinxTranslator.dispatch_visit calling visit_paragraph for <paragraph><strong>shuffle</strong> : int (optional)</paragraph> SphinxTranslator.dispatch_visit calling visit_strong for <strong>shuffle</strong> SphinxTranslator.dispatch_visit calling visit_Text for shuffle SphinxTranslator.dispatch_departure calling depart_Text for shuffle SphinxTranslator.dispatch_departure calling depart_strong for <strong>shuffle</strong> SphinxTranslator.dispatch_visit calling visit_Text for : int (optional) SphinxTranslator.dispatch_departure calling depart_Text for : int (optional) SphinxTranslator.dispatch_departure calling depart_paragraph for <paragraph><strong>shuffle</strong> : int (optional)</paragraph> SphinxTranslator.dispatch_visit calling visit_block_quote for <block_quote><paragraph>The shuffle filter to be activated. Allowed values are blosc.NOSHUFFLE, blosc.SHUFFLE and blosc.BITSHUFFLE. The default is blosc.SHUFFLE.</paragraph></block_quote> SphinxTranslator.dispatch_visit calling visit_paragraph for <paragraph>The shuffle filter to be activated. Allowed values are blosc.NOSHUFFLE, blosc.SHUFFLE and blosc.BITSHUFFLE. The default is blosc.SHUFFLE.</paragraph> SphinxTranslator.dispatch_visit calling visit_Text for The shuffle filter to be activated. Allowed values are blosc.NOSHUFFLE, blosc.SHUFFLE and blosc.BITSHUFFLE. The default is blosc.SHUFFLE. SphinxTranslator.dispatch_departure calling depart_Text for The shuffle filter to be activated. Allowed values are blosc.NOSHUFFLE, blosc.SHUFFLE and blosc.BITSHUFFLE. The default is blosc.SHUFFLE. SphinxTranslator.dispatch_departure calling depart_paragraph for <paragraph>The shuffle filter to be activated. Allowed values are blosc.NOSHUFFLE, blosc.SHUFFLE and blosc.BITSHUFFLE. The default is blosc.SHUFFLE.</paragraph> SphinxTranslator.dispatch_departure calling depart_block_quote for <block_quote><paragraph>The shuffle filter to be activated. Allowed values are blosc.NOSHUFFLE, blosc.SHUFFLE and blosc.BITSHUFFLE. The default is blosc.SHUFFLE.</paragraph></block_quote> SphinxTranslator.dispatch_visit calling visit_paragraph for <paragraph><strong>cname</strong> : string (optional)</paragraph> SphinxTranslator.dispatch_visit calling visit_strong for <strong>cname</strong> SphinxTranslator.dispatch_visit calling visit_Text for cname SphinxTranslator.dispatch_departure calling depart_Text for cname SphinxTranslator.dispatch_departure calling depart_strong for <strong>cname</strong> SphinxTranslator.dispatch_visit calling visit_Text for : string (optional) SphinxTranslator.dispatch_departure calling depart_Text for : string (optional) SphinxTranslator.dispatch_departure calling depart_paragraph for <paragraph><strong>cname</strong> : string (optional)</paragraph> SphinxTranslator.dispatch_visit calling visit_block_quote for <block_quote><paragraph>The name of the compressor used internally in Blosc. It can be any of the supported by Blosc (‘blosclz’, ‘lz4’, ‘lz4hc’, ‘snappy’, ‘zlib’, ‘zstd’ and maybe others too). The default is ‘blosclz’.</paragraph></block_quote> SphinxTranslator.dispatch_visit calling visit_paragraph for <paragraph>The name of the compressor used internally in Blosc. It can be any of the supported by Blosc (‘blosclz’, ‘lz4’, ‘lz4hc’, ‘snappy’, ‘zlib’, ‘zstd’ and maybe others too). The default is ‘blosclz’.</paragraph> SphinxTranslator.dispatch_visit calling visit_Text for The name of the compressor used internally in Blosc. It can be any of the supported by Blosc (‘blosclz’, ‘lz4’, ‘lz4hc’, ‘snappy’, ‘zlib’, ‘zstd’ and maybe others too). The default is ‘blosclz’. SphinxTranslator.dispatch_departure calling depart_Text for The name of the compressor used internally in Blosc. It can be any of the supported by Blosc (‘blosclz’, ‘lz4’, ‘lz4hc’, ‘snappy’, ‘zlib’, ‘zstd’ and maybe others too). The default is ‘blosclz’. SphinxTranslator.dispatch_departure calling depart_paragraph for <paragraph>The name of the compressor used internally in Blosc. It can be any of the supported by Blosc (‘blosclz’, ‘lz4’, ‘lz4hc’, ‘snappy’, ‘zlib’, ‘zstd’ and maybe others too). The default is ‘blosclz’.</paragraph> SphinxTranslator.dispatch_departure calling depart_block_quote for <block_quote><paragraph>The name of the compressor used internally in Blosc. It can be any of the supported by Blosc (‘blosclz’, ‘lz4’, ‘lz4hc’, ‘snappy’, ‘zlib’, ‘zstd’ and maybe others too). The default is ‘blosclz’.</paragraph></block_quote> SphinxTranslator.dispatch_departure calling depart_field_body for <field_body><paragraph><strong>bytesobj</strong> : bytes-like object (supporting the buffer interface)</paragraph><block_quote><paragraph>The data to be compressed.</paragraph></block_quote><paragraph><strong>typesize</strong> : int</paragraph><block_quote><paragraph>The data type size.</paragraph></block_quote><paragraph><strong>clevel</strong> : int (optional)</paragraph><block_quote><paragraph>The compression level from 0 (no compression) to 9 (maximum compression). The default is 9.</paragraph></block_quote><paragraph><strong>shuffle</strong> : int (optional)</paragraph><block_quote><paragraph>The shuffle filter to be activated. Allowed values are blosc.NOSHUFFLE, blosc.SHUFFLE and blosc.BITSHUFFLE. The default is blosc.SHUFFLE.</paragraph></block_quote><paragraph><strong>cname</strong> : string (optional)</paragraph><block_quote><paragraph>The name of the compressor used internally in Blosc. It can be any of the supported by Blosc (‘blosclz’, ‘lz4’, ‘lz4hc’, ‘snappy’, ‘zlib’, ‘zstd’ and maybe others too). The default is ‘blosclz’.</paragraph></block_quote></field_body> SphinxTranslator.dispatch_departure calling depart_field for <field classes="field-odd"><field_name>Parameters</field_name><field_body><paragraph><strong>bytesobj</strong> : bytes-like object (supporting the buffer interface)</paragraph><block_quote><paragraph>The data to be compressed.</paragraph></block_quote><paragraph><strong>typesize</strong> : int</paragraph><block_quote><paragraph>The data type size.</paragraph></block_quote><paragraph><strong>clevel</strong> : int (optional)</paragraph><block_quote><paragraph>The compression level from 0 (no compression) to 9 (maximum compression). The default is 9.</paragraph></block_quote><paragraph><strong>shuffle</strong> : int (optional)</paragraph><block_quote><paragraph>The shuffle filter to be activated. Allowed values are blosc.NOSHUFFLE, blosc.SHUFFLE and blosc.BITSHUFFLE. The default is blosc.SHUFFLE.</paragraph></block_quote><paragraph><strong>cname</strong> : string (optional)</paragraph><block_quote><paragraph>The name of the compressor used internally in Blosc. It can be any of the supported by Blosc (‘blosclz’, ‘lz4’, ‘lz4hc’, ‘snappy’, ‘zlib’, ‘zstd’ and maybe others too). The default is ‘blosclz’.</paragraph></block_quote></field_body></field> SphinxTranslator.dispatch_visit calling visit_field for <field><field_name>Returns</field_name><field_body><paragraph><strong>out</strong> : str / bytes</paragraph><block_quote><paragraph>The compressed data in form of a Python str / bytes object.</paragraph></block_quote></field_body></field> SphinxTranslator.dispatch_visit calling visit_field_name for <field_name>Returns</field_name> SphinxTranslator.dispatch_visit calling visit_Text for Returns SphinxTranslator.dispatch_departure calling depart_Text for Returns SphinxTranslator.dispatch_departure calling depart_field_name for <field_name>Returns</field_name> SphinxTranslator.dispatch_visit calling visit_field_body for <field_body><paragraph><strong>out</strong> : str / bytes</paragraph><block_quote><paragraph>The compressed data in form of a Python str / bytes object.</paragraph></block_quote></field_body> SphinxTranslator.dispatch_visit calling visit_paragraph for <paragraph><strong>out</strong> : str / bytes</paragraph> SphinxTranslator.dispatch_visit calling visit_strong for <strong>out</strong> SphinxTranslator.dispatch_visit calling visit_Text for out SphinxTranslator.dispatch_departure calling depart_Text for out SphinxTranslator.dispatch_departure calling depart_strong for <strong>out</strong> SphinxTranslator.dispatch_visit calling visit_Text for : str / bytes SphinxTranslator.dispatch_departure calling depart_Text for : str / bytes SphinxTranslator.dispatch_departure calling depart_paragraph for <paragraph><strong>out</strong> : str / bytes</paragraph> SphinxTranslator.dispatch_visit calling visit_block_quote for <block_quote><paragraph>The compressed data in form of a Python str / bytes object.</paragraph></block_quote> SphinxTranslator.dispatch_visit calling visit_paragraph for <paragraph>The compressed data in form of a Python str / bytes object.</paragraph> SphinxTranslator.dispatch_visit calling visit_Text for The compressed data in form of a Python str / bytes object. SphinxTranslator.dispatch_departure calling depart_Text for The compressed data in form of a Python str / bytes object. SphinxTranslator.dispatch_departure calling depart_paragraph for <paragraph>The compressed data in form of a Python str / bytes object.</paragraph> SphinxTranslator.dispatch_departure calling depart_block_quote for <block_quote><paragraph>The compressed data in form of a Python str / bytes object.</paragraph></block_quote> SphinxTranslator.dispatch_departure calling depart_field_body for <field_body><paragraph><strong>out</strong> : str / bytes</paragraph><block_quote><paragraph>The compressed data in form of a Python str / bytes object.</paragraph></block_quote></field_body> SphinxTranslator.dispatch_departure calling depart_field for <field classes="field-even"><field_name>Returns</field_name><field_body><paragraph><strong>out</strong> : str / bytes</paragraph><block_quote><paragraph>The compressed data in form of a Python str / bytes object.</paragraph></block_quote></field_body></field> SphinxTranslator.dispatch_visit calling visit_field for <field><field_name>Raises</field_name><field_body><paragraph><strong>TypeError</strong></paragraph><block_quote><paragraph>If bytesobj doesn’t support the buffer interface.</paragraph></block_quote><paragraph><strong>ValueError</strong></paragraph><block_quote><paragraph>If bytesobj is too long. If typesize is not within the allowed range. If clevel is not within the allowed range. If cname is not a valid codec.</paragraph></block_quote></field_body></field> SphinxTranslator.dispatch_visit calling visit_field_name for <field_name>Raises</field_name> SphinxTranslator.dispatch_visit calling visit_Text for Raises SphinxTranslator.dispatch_departure calling depart_Text for Raises SphinxTranslator.dispatch_departure calling depart_field_name for <field_name>Raises</field_name> SphinxTranslator.dispatch_visit calling visit_field_body for <field_body><paragraph><strong>TypeError</strong></paragraph><block_quote><paragraph>If bytesobj doesn’t support the buffer interface.</paragraph></block_quote><paragraph><strong>ValueError</strong></paragraph><block_quote><paragraph>If bytesobj is too long. If typesize is not within the allowed range. If clevel is not within the allowed range. If cname is not a valid codec.</paragraph></block_quote></field_body> SphinxTranslator.dispatch_visit calling visit_paragraph for <paragraph><strong>TypeError</strong></paragraph> SphinxTranslator.dispatch_visit calling visit_strong for <strong>TypeError</strong> SphinxTranslator.dispatch_visit calling visit_Text for TypeError SphinxTranslator.dispatch_departure calling depart_Text for TypeError SphinxTranslator.dispatch_departure calling depart_strong for <strong>TypeError</strong> SphinxTranslator.dispatch_departure calling depart_paragraph for <paragraph><strong>TypeError</strong></paragraph> SphinxTranslator.dispatch_visit calling visit_block_quote for <block_quote><paragraph>If bytesobj doesn’t support the buffer interface.</paragraph></block_quote> SphinxTranslator.dispatch_visit calling visit_paragraph for <paragraph>If bytesobj doesn’t support the buffer interface.</paragraph> SphinxTranslator.dispatch_visit calling visit_Text for If bytesobj doesn’t support the buffer interface. SphinxTranslator.dispatch_departure calling depart_Text for If bytesobj doesn’t support the buffer interface. SphinxTranslator.dispatch_departure calling depart_paragraph for <paragraph>If bytesobj doesn’t support the buffer interface.</paragraph> SphinxTranslator.dispatch_departure calling depart_block_quote for <block_quote><paragraph>If bytesobj doesn’t support the buffer interface.</paragraph></block_quote> SphinxTranslator.dispatch_visit calling visit_paragraph for <paragraph><strong>ValueError</strong></paragraph> SphinxTranslator.dispatch_visit calling visit_strong for <strong>ValueError</strong> SphinxTranslator.dispatch_visit calling visit_Text for ValueError SphinxTranslator.dispatch_departure calling depart_Text for ValueError SphinxTranslator.dispatch_departure calling depart_strong for <strong>ValueError</strong> SphinxTranslator.dispatch_departure calling depart_paragraph for <paragraph><strong>ValueError</strong></paragraph> SphinxTranslator.dispatch_visit calling visit_block_quote for <block_quote><paragraph>If bytesobj is too long. If typesize is not within the allowed range. If clevel is not within the allowed range. If cname is not a valid codec.</paragraph></block_quote> SphinxTranslator.dispatch_visit calling visit_paragraph for <paragraph>If bytesobj is too long. If typesize is not within the allowed range. If clevel is not within the allowed range. If cname is not a valid codec.</paragraph> SphinxTranslator.dispatch_visit calling visit_Text for If bytesobj is too long. If typesize is not within the allowed range. If clevel is not within the allowed range. If cname is not a valid codec. SphinxTranslator.dispatch_departure calling depart_Text for If bytesobj is too long. If typesize is not within the allowed range. If clevel is not within the allowed range. If cname is not a valid codec. SphinxTranslator.dispatch_departure calling depart_paragraph for <paragraph>If bytesobj is too long. If typesize is not within the allowed range. If clevel is not within the allowed range. If cname is not a valid codec.</paragraph> SphinxTranslator.dispatch_departure calling depart_block_quote for <block_quote><paragraph>If bytesobj is too long. If typesize is not within the allowed range. If clevel is not within the allowed range. If cname is not a valid codec.</paragraph></block_quote> SphinxTranslator.dispatch_departure calling depart_field_body for <field_body><paragraph><strong>TypeError</strong></paragraph><block_quote><paragraph>If bytesobj doesn’t support the buffer interface.</paragraph></block_quote><paragraph><strong>ValueError</strong></paragraph><block_quote><paragraph>If bytesobj is too long. If typesize is not within the allowed range. If clevel is not within the allowed range. If cname is not a valid codec.</paragraph></block_quote></field_body> SphinxTranslator.dispatch_departure calling depart_field for <field classes="field-odd"><field_name>Raises</field_name><field_body><paragraph><strong>TypeError</strong></paragraph><block_quote><paragraph>If bytesobj doesn’t support the buffer interface.</paragraph></block_quote><paragraph><strong>ValueError</strong></paragraph><block_quote><paragraph>If bytesobj is too long. If typesize is not within the allowed range. If clevel is not within the allowed range. If cname is not a valid codec.</paragraph></block_quote></field_body></field> SphinxTranslator.dispatch_departure calling depart_field_list for <field_list><field classes="field-odd"><field_name>Parameters</field_name><field_body><paragraph><strong>bytesobj</strong> : bytes-like object (supporting the buffer interface)</paragraph><block_quote><paragraph>The data to be compressed.</paragraph></block_quote><paragraph><strong>typesize</strong> : int</paragraph><block_quote><paragraph>The data type size.</paragraph></block_quote><paragraph><strong>clevel</strong> : int (optional)</paragraph><block_quote><paragraph>The compression level from 0 (no compression) to 9 (maximum compression). The default is 9.</paragraph></block_quote><paragraph><strong>shuffle</strong> : int (optional)</paragraph><block_quote><paragraph>The shuffle filter to be activated. Allowed values are blosc.NOSHUFFLE, blosc.SHUFFLE and blosc.BITSHUFFLE. The default is blosc.SHUFFLE.</paragraph></block_quote><paragraph><strong>cname</strong> : string (optional)</paragraph><block_quote><paragraph>The name of the compressor used internally in Blosc. It can be any of the supported by Blosc (‘blosclz’, ‘lz4’, ‘lz4hc’, ‘snappy’, ‘zlib’, ‘zstd’ and maybe others too). The default is ‘blosclz’.</paragraph></block_quote></field_body></field><field classes="field-even"><field_name>Returns</field_name><field_body><paragraph><strong>out</strong> : str / bytes</paragraph><block_quote><paragraph>The compressed data in form of a Python str / bytes object.</paragraph></block_quote></field_body></field><field classes="field-odd"><field_name>Raises</field_name><field_body><paragraph><strong>TypeError</strong></paragraph><block_quote><paragraph>If bytesobj doesn’t support the buffer interface.</paragraph></block_quote><paragraph><strong>ValueError</strong></paragraph><block_quote><paragraph>If bytesobj is too long. If typesize is not within the allowed range. If clevel is not within the allowed range. If cname is not a valid codec.</paragraph></block_quote></field_body></field></field_list> SphinxTranslator.dispatch_visit calling visit_rubric for <rubric>Examples</rubric> SphinxTranslator.dispatch_visit calling visit_Text for Examples SphinxTranslator.dispatch_departure calling depart_Text for Examples SphinxTranslator.dispatch_departure calling depart_rubric for <rubric>Examples</rubric> SphinxTranslator.dispatch_visit calling visit_doctest_block for <doctest_block classes="doctest" xml:space="preserve">>>> import array >>> a = array.array('i', range(1000*1000)) >>> a_bytesobj = a.tostring() >>> c_bytesobj = blosc.compress(a_bytesobj, typesize=4) >>> len(c_bytesobj) < len(a_bytesobj) True</doctest_block> SphinxTranslator.dispatch_departure calling depart_desc_content for <desc_content><paragraph>Compress bytesobj, with a given type size.</paragraph><field_list><field classes="field-odd"><field_name>Parameters</field_name><field_body><paragraph><strong>bytesobj</strong> : bytes-like object (supporting the buffer interface)</paragraph><block_quote><paragraph>The data to be compressed.</paragraph></block_quote><paragraph><strong>typesize</strong> : int</paragraph><block_quote><paragraph>The data type size.</paragraph></block_quote><paragraph><strong>clevel</strong> : int (optional)</paragraph><block_quote><paragraph>The compression level from 0 (no compression) to 9 (maximum compression). The default is 9.</paragraph></block_quote><paragraph><strong>shuffle</strong> : int (optional)</paragraph><block_quote><paragraph>The shuffle filter to be activated. Allowed values are blosc.NOSHUFFLE, blosc.SHUFFLE and blosc.BITSHUFFLE. The default is blosc.SHUFFLE.</paragraph></block_quote><paragraph><strong>cname</strong> : string (optional)</paragraph><block_quote><paragraph>The name of the compressor used internally in Blosc. It can be any of the supported by Blosc (‘blosclz’, ‘lz4’, ‘lz4hc’, ‘snappy’, ‘zlib’, ‘zstd’ and maybe others too). The default is ‘blosclz’.</paragraph></block_quote></field_body></field><field classes="field-even"><field_name>Returns</field_name><field_body><paragraph><strong>out</strong> : str / bytes</paragraph><block_quote><paragraph>The compressed data in form of a Python str / bytes object.</paragraph></block_quote></field_body></field><field classes="field-odd"><field_name>Raises</field_name><field_body><paragraph><strong>TypeError</strong></paragraph><block_quote><paragraph>If bytesobj doesn’t support the buffer interface.</paragraph></block_quote><paragraph><strong>ValueError</strong></paragraph><block_quote><paragraph>If bytesobj is too long. If typesize is not within the allowed range. If clevel is not within the allowed range. If cname is not a valid codec.</paragraph></block_quote></field_body></field></field_list><rubric>Examples</rubric><doctest_block classes="doctest" xml:space="preserve">>>> import array >>> a = array.array('i', range(1000*1000)) >>> a_bytesobj = a.tostring() >>> c_bytesobj = blosc.compress(a_bytesobj, typesize=4) >>> len(c_bytesobj) < len(a_bytesobj) True</doctest_block></desc_content> SphinxTranslator.dispatch_departure calling depart_desc for <desc desctype="function" domain="py" noindex="False" objtype="function"><desc_signature class="" first="False" fullname="compress" ids="blosc.compress" module="blosc" names="blosc.compress"><desc_addname xml:space="preserve">blosc.</desc_addname><desc_name xml:space="preserve">compress</desc_name><desc_parameterlist xml:space="preserve"><desc_parameter xml:space="preserve">bytesobj[, typesize=8, clevel=9, shuffle=blosc.SHUFFLE, cname='blosclz']]</desc_parameter></desc_parameterlist></desc_signature><desc_content><paragraph>Compress bytesobj, with a given type size.</paragraph><field_list><field classes="field-odd"><field_name>Parameters</field_name><field_body><paragraph><strong>bytesobj</strong> : bytes-like object (supporting the buffer interface)</paragraph><block_quote><paragraph>The data to be compressed.</paragraph></block_quote><paragraph><strong>typesize</strong> : int</paragraph><block_quote><paragraph>The data type size.</paragraph></block_quote><paragraph><strong>clevel</strong> : int (optional)</paragraph><block_quote><paragraph>The compression level from 0 (no compression) to 9 (maximum compression). The default is 9.</paragraph></block_quote><paragraph><strong>shuffle</strong> : int (optional)</paragraph><block_quote><paragraph>The shuffle filter to be activated. Allowed values are blosc.NOSHUFFLE, blosc.SHUFFLE and blosc.BITSHUFFLE. The default is blosc.SHUFFLE.</paragraph></block_quote><paragraph><strong>cname</strong> : string (optional)</paragraph><block_quote><paragraph>The name of the compressor used internally in Blosc. It can be any of the supported by Blosc (‘blosclz’, ‘lz4’, ‘lz4hc’, ‘snappy’, ‘zlib’, ‘zstd’ and maybe others too). The default is ‘blosclz’.</paragraph></block_quote></field_body></field><field classes="field-even"><field_name>Returns</field_name><field_body><paragraph><strong>out</strong> : str / bytes</paragraph><block_quote><paragraph>The compressed data in form of a Python str / bytes object.</paragraph></block_quote></field_body></field><field classes="field-odd"><field_name>Raises</field_name><field_body><paragraph><strong>TypeError</strong></paragraph><block_quote><paragraph>If bytesobj doesn’t support the buffer interface.</paragraph></block_quote><paragraph><strong>ValueError</strong></paragraph><block_quote><paragraph>If bytesobj is too long. If typesize is not within the allowed range. If clevel is not within the allowed range. If cname is not a valid codec.</paragraph></block_quote></field_body></field></field_list><rubric>Examples</rubric><doctest_block classes="doctest" xml:space="preserve">>>> import array >>> a = array.array('i', range(1000*1000)) >>> a_bytesobj = a.tostring() >>> c_bytesobj = blosc.compress(a_bytesobj, typesize=4) >>> len(c_bytesobj) < len(a_bytesobj) True</doctest_block></desc_content></desc> SphinxTranslator.dispatch_visit calling visit_index for <index entries="[('single', 'compress_ptr() (in module blosc)', 'blosc.compress_ptr', '', None)]"/> SphinxTranslator.dispatch_visit calling visit_desc for <desc desctype="function" domain="py" noindex="False" objtype="function"><desc_signature class="" first="False" fullname="compress_ptr" ids="blosc.compress_ptr" module="blosc" names="blosc.compress_ptr"><desc_addname xml:space="preserve">blosc.</desc_addname><desc_name xml:space="preserve">compress_ptr</desc_name><desc_parameterlist xml:space="preserve"><desc_parameter xml:space="preserve">address, items[, typesize=8, clevel=9, shuffle=blosc.SHUFFLE, cname='blosclz']]</desc_parameter></desc_parameterlist></desc_signature><desc_content><paragraph>Compress the data at address with given items and typesize.</paragraph><field_list><field><field_name>Parameters</field_name><field_body><paragraph><strong>address</strong> : int or long</paragraph><block_quote><paragraph>the pointer to the data to be compressed</paragraph></block_quote><paragraph><strong>items</strong> : int</paragraph><block_quote><paragraph>The number of items (of typesize) to be compressed.</paragraph></block_quote><paragraph><strong>typesize</strong> : int</paragraph><block_quote><paragraph>The data type size.</paragraph></block_quote><paragraph><strong>clevel</strong> : int (optional)</paragraph><block_quote><paragraph>The compression level from 0 (no compression) to 9 (maximum compression). The default is 9.</paragraph></block_quote><paragraph><strong>shuffle</strong> : int (optional)</paragraph><block_quote><paragraph>The shuffle filter to be activated. Allowed values are blosc.NOSHUFFLE, blosc.SHUFFLE and blosc.BITSHUFFLE. The default is blosc.SHUFFLE.</paragraph></block_quote><paragraph><strong>cname</strong> : string (optional)</paragraph><block_quote><paragraph>The name of the compressor used internally in Blosc. It can be any of the supported by Blosc (‘blosclz’, ‘lz4’, ‘lz4hc’, ‘snappy’, ‘zlib’, ‘zstd’ and maybe others too). The default is ‘blosclz’.</paragraph></block_quote></field_body></field><field><field_name>Returns</field_name><field_body><paragraph><strong>out</strong> : str / bytes</paragraph><block_quote><paragraph>The compressed data in form of a Python str / bytes object.</paragraph></block_quote></field_body></field><field><field_name>Raises</field_name><field_body><paragraph><strong>TypeError</strong></paragraph><block_quote><paragraph>If address is not of type int or long.</paragraph></block_quote><paragraph><strong>ValueError</strong></paragraph><block_quote><paragraph>If items * typesize is larger than the maximum allowed buffer size. If typesize is not within the allowed range. If clevel is not within the allowed range. If cname is not within the supported compressors.</paragraph></block_quote></field_body></field></field_list><rubric>Notes</rubric><paragraph>This function can be used anywhere that a memory address is available in Python. For example the Numpy “__array_interface__[‘data’][0]†construct, or when using the ctypes modules.</paragraph><paragraph>Importantly, the user is responsible for making sure that the memory address is valid and that the memory pointed to is contiguous. Passing a non-valid address has a high likelihood of crashing the interpreter by segfault.</paragraph><rubric>Examples</rubric><doctest_block classes="doctest" xml:space="preserve">>>> import numpy >>> items = 7 >>> np_array = numpy.arange(items) >>> c = blosc.compress_ptr(np_array.__array_interface__['data'][0], items, np_array.dtype.itemsize) >>> d = blosc.decompress(c) >>> np_ans = numpy.fromstring(d, dtype=np_array.dtype) >>> (np_array == np_ans).all() True</doctest_block><doctest_block classes="doctest" xml:space="preserve">>>> import ctypes >>> typesize = 8 >>> data = [float(i) for i in range(items)] >>> Array = ctypes.c_double * items >>> a = Array(*data) >>> c = blosc.compress_ptr(ctypes.addressof(a), items, typesize) >>> d = blosc.decompress(c) >>> import struct >>> ans = [struct.unpack('d', d[i:i+typesize])[0] for i in range(0, items*typesize, typesize)] >>> data == ans True</doctest_block></desc_content></desc> SphinxTranslator.dispatch_visit calling visit_desc_signature for <desc_signature class="" first="False" fullname="compress_ptr" ids="blosc.compress_ptr" module="blosc" names="blosc.compress_ptr"><desc_addname xml:space="preserve">blosc.</desc_addname><desc_name xml:space="preserve">compress_ptr</desc_name><desc_parameterlist xml:space="preserve"><desc_parameter xml:space="preserve">address, items[, typesize=8, clevel=9, shuffle=blosc.SHUFFLE, cname='blosclz']]</desc_parameter></desc_parameterlist></desc_signature> SphinxTranslator.dispatch_visit calling visit_desc_addname for <desc_addname xml:space="preserve">blosc.</desc_addname> SphinxTranslator.dispatch_visit calling visit_Text for blosc. SphinxTranslator.dispatch_departure calling depart_Text for blosc. SphinxTranslator.dispatch_departure calling depart_desc_addname for <desc_addname xml:space="preserve">blosc.</desc_addname> SphinxTranslator.dispatch_visit calling visit_desc_name for <desc_name xml:space="preserve">compress_ptr</desc_name> SphinxTranslator.dispatch_visit calling visit_Text for compress_ptr SphinxTranslator.dispatch_departure calling depart_Text for compress_ptr SphinxTranslator.dispatch_departure calling depart_desc_name for <desc_name xml:space="preserve">compress_ptr</desc_name> SphinxTranslator.dispatch_visit calling visit_desc_parameterlist for <desc_parameterlist xml:space="preserve"><desc_parameter xml:space="preserve">address, items[, typesize=8, clevel=9, shuffle=blosc.SHUFFLE, cname='blosclz']]</desc_parameter></desc_parameterlist> SphinxTranslator.dispatch_visit calling visit_desc_parameter for <desc_parameter xml:space="preserve">address, items[, typesize=8, clevel=9, shuffle=blosc.SHUFFLE, cname='blosclz']]</desc_parameter> SphinxTranslator.dispatch_visit calling visit_Text for address, items[, typesize=8, clevel=9, shuffle=blosc.SHUFFLE, cname='blosclz']] SphinxTranslator.dispatch_departure calling depart_Text for address, items[, typesize=8, clevel=9, shuffle=blosc.SHUFFLE, cname='blosclz']] SphinxTranslator.dispatch_departure calling depart_desc_parameter for <desc_parameter xml:space="preserve">address, items[, typesize=8, clevel=9, shuffle=blosc.SHUFFLE, cname='blosclz']]</desc_parameter> SphinxTranslator.dispatch_departure calling depart_desc_parameterlist for <desc_parameterlist xml:space="preserve"><desc_parameter xml:space="preserve">address, items[, typesize=8, clevel=9, shuffle=blosc.SHUFFLE, cname='blosclz']]</desc_parameter></desc_parameterlist> SphinxTranslator.dispatch_departure calling depart_desc_signature for <desc_signature class="" first="False" fullname="compress_ptr" ids="blosc.compress_ptr" module="blosc" names="blosc.compress_ptr"><desc_addname xml:space="preserve">blosc.</desc_addname><desc_name xml:space="preserve">compress_ptr</desc_name><desc_parameterlist xml:space="preserve"><desc_parameter xml:space="preserve">address, items[, typesize=8, clevel=9, shuffle=blosc.SHUFFLE, cname='blosclz']]</desc_parameter></desc_parameterlist></desc_signature> SphinxTranslator.dispatch_visit calling visit_desc_content for <desc_content><paragraph>Compress the data at address with given items and typesize.</paragraph><field_list><field><field_name>Parameters</field_name><field_body><paragraph><strong>address</strong> : int or long</paragraph><block_quote><paragraph>the pointer to the data to be compressed</paragraph></block_quote><paragraph><strong>items</strong> : int</paragraph><block_quote><paragraph>The number of items (of typesize) to be compressed.</paragraph></block_quote><paragraph><strong>typesize</strong> : int</paragraph><block_quote><paragraph>The data type size.</paragraph></block_quote><paragraph><strong>clevel</strong> : int (optional)</paragraph><block_quote><paragraph>The compression level from 0 (no compression) to 9 (maximum compression). The default is 9.</paragraph></block_quote><paragraph><strong>shuffle</strong> : int (optional)</paragraph><block_quote><paragraph>The shuffle filter to be activated. Allowed values are blosc.NOSHUFFLE, blosc.SHUFFLE and blosc.BITSHUFFLE. The default is blosc.SHUFFLE.</paragraph></block_quote><paragraph><strong>cname</strong> : string (optional)</paragraph><block_quote><paragraph>The name of the compressor used internally in Blosc. It can be any of the supported by Blosc (‘blosclz’, ‘lz4’, ‘lz4hc’, ‘snappy’, ‘zlib’, ‘zstd’ and maybe others too). The default is ‘blosclz’.</paragraph></block_quote></field_body></field><field><field_name>Returns</field_name><field_body><paragraph><strong>out</strong> : str / bytes</paragraph><block_quote><paragraph>The compressed data in form of a Python str / bytes object.</paragraph></block_quote></field_body></field><field><field_name>Raises</field_name><field_body><paragraph><strong>TypeError</strong></paragraph><block_quote><paragraph>If address is not of type int or long.</paragraph></block_quote><paragraph><strong>ValueError</strong></paragraph><block_quote><paragraph>If items * typesize is larger than the maximum allowed buffer size. If typesize is not within the allowed range. If clevel is not within the allowed range. If cname is not within the supported compressors.</paragraph></block_quote></field_body></field></field_list><rubric>Notes</rubric><paragraph>This function can be used anywhere that a memory address is available in Python. For example the Numpy “__array_interface__[‘data’][0]†construct, or when using the ctypes modules.</paragraph><paragraph>Importantly, the user is responsible for making sure that the memory address is valid and that the memory pointed to is contiguous. Passing a non-valid address has a high likelihood of crashing the interpreter by segfault.</paragraph><rubric>Examples</rubric><doctest_block classes="doctest" xml:space="preserve">>>> import numpy >>> items = 7 >>> np_array = numpy.arange(items) >>> c = blosc.compress_ptr(np_array.__array_interface__['data'][0], items, np_array.dtype.itemsize) >>> d = blosc.decompress(c) >>> np_ans = numpy.fromstring(d, dtype=np_array.dtype) >>> (np_array == np_ans).all() True</doctest_block><doctest_block classes="doctest" xml:space="preserve">>>> import ctypes >>> typesize = 8 >>> data = [float(i) for i in range(items)] >>> Array = ctypes.c_double * items >>> a = Array(*data) >>> c = blosc.compress_ptr(ctypes.addressof(a), items, typesize) >>> d = blosc.decompress(c) >>> import struct >>> ans = [struct.unpack('d', d[i:i+typesize])[0] for i in range(0, items*typesize, typesize)] >>> data == ans True</doctest_block></desc_content> SphinxTranslator.dispatch_visit calling visit_paragraph for <paragraph>Compress the data at address with given items and typesize.</paragraph> SphinxTranslator.dispatch_visit calling visit_Text for Compress the data at address with given items and typesize. SphinxTranslator.dispatch_departure calling depart_Text for Compress the data at address with given items and typesize. SphinxTranslator.dispatch_departure calling depart_paragraph for <paragraph>Compress the data at address with given items and typesize.</paragraph> SphinxTranslator.dispatch_visit calling visit_field_list for <field_list><field><field_name>Parameters</field_name><field_body><paragraph><strong>address</strong> : int or long</paragraph><block_quote><paragraph>the pointer to the data to be compressed</paragraph></block_quote><paragraph><strong>items</strong> : int</paragraph><block_quote><paragraph>The number of items (of typesize) to be compressed.</paragraph></block_quote><paragraph><strong>typesize</strong> : int</paragraph><block_quote><paragraph>The data type size.</paragraph></block_quote><paragraph><strong>clevel</strong> : int (optional)</paragraph><block_quote><paragraph>The compression level from 0 (no compression) to 9 (maximum compression). The default is 9.</paragraph></block_quote><paragraph><strong>shuffle</strong> : int (optional)</paragraph><block_quote><paragraph>The shuffle filter to be activated. Allowed values are blosc.NOSHUFFLE, blosc.SHUFFLE and blosc.BITSHUFFLE. The default is blosc.SHUFFLE.</paragraph></block_quote><paragraph><strong>cname</strong> : string (optional)</paragraph><block_quote><paragraph>The name of the compressor used internally in Blosc. It can be any of the supported by Blosc (‘blosclz’, ‘lz4’, ‘lz4hc’, ‘snappy’, ‘zlib’, ‘zstd’ and maybe others too). The default is ‘blosclz’.</paragraph></block_quote></field_body></field><field><field_name>Returns</field_name><field_body><paragraph><strong>out</strong> : str / bytes</paragraph><block_quote><paragraph>The compressed data in form of a Python str / bytes object.</paragraph></block_quote></field_body></field><field><field_name>Raises</field_name><field_body><paragraph><strong>TypeError</strong></paragraph><block_quote><paragraph>If address is not of type int or long.</paragraph></block_quote><paragraph><strong>ValueError</strong></paragraph><block_quote><paragraph>If items * typesize is larger than the maximum allowed buffer size. If typesize is not within the allowed range. If clevel is not within the allowed range. If cname is not within the supported compressors.</paragraph></block_quote></field_body></field></field_list> SphinxTranslator.dispatch_visit calling visit_field for <field><field_name>Parameters</field_name><field_body><paragraph><strong>address</strong> : int or long</paragraph><block_quote><paragraph>the pointer to the data to be compressed</paragraph></block_quote><paragraph><strong>items</strong> : int</paragraph><block_quote><paragraph>The number of items (of typesize) to be compressed.</paragraph></block_quote><paragraph><strong>typesize</strong> : int</paragraph><block_quote><paragraph>The data type size.</paragraph></block_quote><paragraph><strong>clevel</strong> : int (optional)</paragraph><block_quote><paragraph>The compression level from 0 (no compression) to 9 (maximum compression). The default is 9.</paragraph></block_quote><paragraph><strong>shuffle</strong> : int (optional)</paragraph><block_quote><paragraph>The shuffle filter to be activated. Allowed values are blosc.NOSHUFFLE, blosc.SHUFFLE and blosc.BITSHUFFLE. The default is blosc.SHUFFLE.</paragraph></block_quote><paragraph><strong>cname</strong> : string (optional)</paragraph><block_quote><paragraph>The name of the compressor used internally in Blosc. It can be any of the supported by Blosc (‘blosclz’, ‘lz4’, ‘lz4hc’, ‘snappy’, ‘zlib’, ‘zstd’ and maybe others too). The default is ‘blosclz’.</paragraph></block_quote></field_body></field> SphinxTranslator.dispatch_visit calling visit_field_name for <field_name>Parameters</field_name> SphinxTranslator.dispatch_visit calling visit_Text for Parameters SphinxTranslator.dispatch_departure calling depart_Text for Parameters SphinxTranslator.dispatch_departure calling depart_field_name for <field_name>Parameters</field_name> SphinxTranslator.dispatch_visit calling visit_field_body for <field_body><paragraph><strong>address</strong> : int or long</paragraph><block_quote><paragraph>the pointer to the data to be compressed</paragraph></block_quote><paragraph><strong>items</strong> : int</paragraph><block_quote><paragraph>The number of items (of typesize) to be compressed.</paragraph></block_quote><paragraph><strong>typesize</strong> : int</paragraph><block_quote><paragraph>The data type size.</paragraph></block_quote><paragraph><strong>clevel</strong> : int (optional)</paragraph><block_quote><paragraph>The compression level from 0 (no compression) to 9 (maximum compression). The default is 9.</paragraph></block_quote><paragraph><strong>shuffle</strong> : int (optional)</paragraph><block_quote><paragraph>The shuffle filter to be activated. Allowed values are blosc.NOSHUFFLE, blosc.SHUFFLE and blosc.BITSHUFFLE. The default is blosc.SHUFFLE.</paragraph></block_quote><paragraph><strong>cname</strong> : string (optional)</paragraph><block_quote><paragraph>The name of the compressor used internally in Blosc. It can be any of the supported by Blosc (‘blosclz’, ‘lz4’, ‘lz4hc’, ‘snappy’, ‘zlib’, ‘zstd’ and maybe others too). The default is ‘blosclz’.</paragraph></block_quote></field_body> SphinxTranslator.dispatch_visit calling visit_paragraph for <paragraph><strong>address</strong> : int or long</paragraph> SphinxTranslator.dispatch_visit calling visit_strong for <strong>address</strong> SphinxTranslator.dispatch_visit calling visit_Text for address SphinxTranslator.dispatch_departure calling depart_Text for address SphinxTranslator.dispatch_departure calling depart_strong for <strong>address</strong> SphinxTranslator.dispatch_visit calling visit_Text for : int or long SphinxTranslator.dispatch_departure calling depart_Text for : int or long SphinxTranslator.dispatch_departure calling depart_paragraph for <paragraph><strong>address</strong> : int or long</paragraph> SphinxTranslator.dispatch_visit calling visit_block_quote for <block_quote><paragraph>the pointer to the data to be compressed</paragraph></block_quote> SphinxTranslator.dispatch_visit calling visit_paragraph for <paragraph>the pointer to the data to be compressed</paragraph> SphinxTranslator.dispatch_visit calling visit_Text for the pointer to the data to be compressed SphinxTranslator.dispatch_departure calling depart_Text for the pointer to the data to be compressed SphinxTranslator.dispatch_departure calling depart_paragraph for <paragraph>the pointer to the data to be compressed</paragraph> SphinxTranslator.dispatch_departure calling depart_block_quote for <block_quote><paragraph>the pointer to the data to be compressed</paragraph></block_quote> SphinxTranslator.dispatch_visit calling visit_paragraph for <paragraph><strong>items</strong> : int</paragraph> SphinxTranslator.dispatch_visit calling visit_strong for <strong>items</strong> SphinxTranslator.dispatch_visit calling visit_Text for items SphinxTranslator.dispatch_departure calling depart_Text for items SphinxTranslator.dispatch_departure calling depart_strong for <strong>items</strong> SphinxTranslator.dispatch_visit calling visit_Text for : int SphinxTranslator.dispatch_departure calling depart_Text for : int SphinxTranslator.dispatch_departure calling depart_paragraph for <paragraph><strong>items</strong> : int</paragraph> SphinxTranslator.dispatch_visit calling visit_block_quote for <block_quote><paragraph>The number of items (of typesize) to be compressed.</paragraph></block_quote> SphinxTranslator.dispatch_visit calling visit_paragraph for <paragraph>The number of items (of typesize) to be compressed.</paragraph> SphinxTranslator.dispatch_visit calling visit_Text for The number of items (of typesize) to be compressed. SphinxTranslator.dispatch_departure calling depart_Text for The number of items (of typesize) to be compressed. SphinxTranslator.dispatch_departure calling depart_paragraph for <paragraph>The number of items (of typesize) to be compressed.</paragraph> SphinxTranslator.dispatch_departure calling depart_block_quote for <block_quote><paragraph>The number of items (of typesize) to be compressed.</paragraph></block_quote> SphinxTranslator.dispatch_visit calling visit_paragraph for <paragraph><strong>typesize</strong> : int</paragraph> SphinxTranslator.dispatch_visit calling visit_strong for <strong>typesize</strong> SphinxTranslator.dispatch_visit calling visit_Text for typesize SphinxTranslator.dispatch_departure calling depart_Text for typesize SphinxTranslator.dispatch_departure calling depart_strong for <strong>typesize</strong> SphinxTranslator.dispatch_visit calling visit_Text for : int SphinxTranslator.dispatch_departure calling depart_Text for : int SphinxTranslator.dispatch_departure calling depart_paragraph for <paragraph><strong>typesize</strong> : int</paragraph> SphinxTranslator.dispatch_visit calling visit_block_quote for <block_quote><paragraph>The data type size.</paragraph></block_quote> SphinxTranslator.dispatch_visit calling visit_paragraph for <paragraph>The data type size.</paragraph> SphinxTranslator.dispatch_visit calling visit_Text for The data type size. SphinxTranslator.dispatch_departure calling depart_Text for The data type size. SphinxTranslator.dispatch_departure calling depart_paragraph for <paragraph>The data type size.</paragraph> SphinxTranslator.dispatch_departure calling depart_block_quote for <block_quote><paragraph>The data type size.</paragraph></block_quote> SphinxTranslator.dispatch_visit calling visit_paragraph for <paragraph><strong>clevel</strong> : int (optional)</paragraph> SphinxTranslator.dispatch_visit calling visit_strong for <strong>clevel</strong> SphinxTranslator.dispatch_visit calling visit_Text for clevel SphinxTranslator.dispatch_departure calling depart_Text for clevel SphinxTranslator.dispatch_departure calling depart_strong for <strong>clevel</strong> SphinxTranslator.dispatch_visit calling visit_Text for : int (optional) SphinxTranslator.dispatch_departure calling depart_Text for : int (optional) SphinxTranslator.dispatch_departure calling depart_paragraph for <paragraph><strong>clevel</strong> : int (optional)</paragraph> SphinxTranslator.dispatch_visit calling visit_block_quote for <block_quote><paragraph>The compression level from 0 (no compression) to 9 (maximum compression). The default is 9.</paragraph></block_quote> SphinxTranslator.dispatch_visit calling visit_paragraph for <paragraph>The compression level from 0 (no compression) to 9 (maximum compression). The default is 9.</paragraph> SphinxTranslator.dispatch_visit calling visit_Text for The compression level from 0 (no compression) to 9 (maximum compression). The default is 9. SphinxTranslator.dispatch_departure calling depart_Text for The compression level from 0 (no compression) to 9 (maximum compression). The default is 9. SphinxTranslator.dispatch_departure calling depart_paragraph for <paragraph>The compression level from 0 (no compression) to 9 (maximum compression). The default is 9.</paragraph> SphinxTranslator.dispatch_departure calling depart_block_quote for <block_quote><paragraph>The compression level from 0 (no compression) to 9 (maximum compression). The default is 9.</paragraph></block_quote> SphinxTranslator.dispatch_visit calling visit_paragraph for <paragraph><strong>shuffle</strong> : int (optional)</paragraph> SphinxTranslator.dispatch_visit calling visit_strong for <strong>shuffle</strong> SphinxTranslator.dispatch_visit calling visit_Text for shuffle SphinxTranslator.dispatch_departure calling depart_Text for shuffle SphinxTranslator.dispatch_departure calling depart_strong for <strong>shuffle</strong> SphinxTranslator.dispatch_visit calling visit_Text for : int (optional) SphinxTranslator.dispatch_departure calling depart_Text for : int (optional) SphinxTranslator.dispatch_departure calling depart_paragraph for <paragraph><strong>shuffle</strong> : int (optional)</paragraph> SphinxTranslator.dispatch_visit calling visit_block_quote for <block_quote><paragraph>The shuffle filter to be activated. Allowed values are blosc.NOSHUFFLE, blosc.SHUFFLE and blosc.BITSHUFFLE. The default is blosc.SHUFFLE.</paragraph></block_quote> SphinxTranslator.dispatch_visit calling visit_paragraph for <paragraph>The shuffle filter to be activated. Allowed values are blosc.NOSHUFFLE, blosc.SHUFFLE and blosc.BITSHUFFLE. The default is blosc.SHUFFLE.</paragraph> SphinxTranslator.dispatch_visit calling visit_Text for The shuffle filter to be activated. Allowed values are blosc.NOSHUFFLE, blosc.SHUFFLE and blosc.BITSHUFFLE. The default is blosc.SHUFFLE. SphinxTranslator.dispatch_departure calling depart_Text for The shuffle filter to be activated. Allowed values are blosc.NOSHUFFLE, blosc.SHUFFLE and blosc.BITSHUFFLE. The default is blosc.SHUFFLE. SphinxTranslator.dispatch_departure calling depart_paragraph for <paragraph>The shuffle filter to be activated. Allowed values are blosc.NOSHUFFLE, blosc.SHUFFLE and blosc.BITSHUFFLE. The default is blosc.SHUFFLE.</paragraph> SphinxTranslator.dispatch_departure calling depart_block_quote for <block_quote><paragraph>The shuffle filter to be activated. Allowed values are blosc.NOSHUFFLE, blosc.SHUFFLE and blosc.BITSHUFFLE. The default is blosc.SHUFFLE.</paragraph></block_quote> SphinxTranslator.dispatch_visit calling visit_paragraph for <paragraph><strong>cname</strong> : string (optional)</paragraph> SphinxTranslator.dispatch_visit calling visit_strong for <strong>cname</strong> SphinxTranslator.dispatch_visit calling visit_Text for cname SphinxTranslator.dispatch_departure calling depart_Text for cname SphinxTranslator.dispatch_departure calling depart_strong for <strong>cname</strong> SphinxTranslator.dispatch_visit calling visit_Text for : string (optional) SphinxTranslator.dispatch_departure calling depart_Text for : string (optional) SphinxTranslator.dispatch_departure calling depart_paragraph for <paragraph><strong>cname</strong> : string (optional)</paragraph> SphinxTranslator.dispatch_visit calling visit_block_quote for <block_quote><paragraph>The name of the compressor used internally in Blosc. It can be any of the supported by Blosc (‘blosclz’, ‘lz4’, ‘lz4hc’, ‘snappy’, ‘zlib’, ‘zstd’ and maybe others too). The default is ‘blosclz’.</paragraph></block_quote> SphinxTranslator.dispatch_visit calling visit_paragraph for <paragraph>The name of the compressor used internally in Blosc. It can be any of the supported by Blosc (‘blosclz’, ‘lz4’, ‘lz4hc’, ‘snappy’, ‘zlib’, ‘zstd’ and maybe others too). The default is ‘blosclz’.</paragraph> SphinxTranslator.dispatch_visit calling visit_Text for The name of the compressor used internally in Blosc. It can be any of the supported by Blosc (‘blosclz’, ‘lz4’, ‘lz4hc’, ‘snappy’, ‘zlib’, ‘zstd’ and maybe others too). The default is ‘blosclz’. SphinxTranslator.dispatch_departure calling depart_Text for The name of the compressor used internally in Blosc. It can be any of the supported by Blosc (‘blosclz’, ‘lz4’, ‘lz4hc’, ‘snappy’, ‘zlib’, ‘zstd’ and maybe others too). The default is ‘blosclz’. SphinxTranslator.dispatch_departure calling depart_paragraph for <paragraph>The name of the compressor used internally in Blosc. It can be any of the supported by Blosc (‘blosclz’, ‘lz4’, ‘lz4hc’, ‘snappy’, ‘zlib’, ‘zstd’ and maybe others too). The default is ‘blosclz’.</paragraph> SphinxTranslator.dispatch_departure calling depart_block_quote for <block_quote><paragraph>The name of the compressor used internally in Blosc. It can be any of the supported by Blosc (‘blosclz’, ‘lz4’, ‘lz4hc’, ‘snappy’, ‘zlib’, ‘zstd’ and maybe others too). The default is ‘blosclz’.</paragraph></block_quote> SphinxTranslator.dispatch_departure calling depart_field_body for <field_body><paragraph><strong>address</strong> : int or long</paragraph><block_quote><paragraph>the pointer to the data to be compressed</paragraph></block_quote><paragraph><strong>items</strong> : int</paragraph><block_quote><paragraph>The number of items (of typesize) to be compressed.</paragraph></block_quote><paragraph><strong>typesize</strong> : int</paragraph><block_quote><paragraph>The data type size.</paragraph></block_quote><paragraph><strong>clevel</strong> : int (optional)</paragraph><block_quote><paragraph>The compression level from 0 (no compression) to 9 (maximum compression). The default is 9.</paragraph></block_quote><paragraph><strong>shuffle</strong> : int (optional)</paragraph><block_quote><paragraph>The shuffle filter to be activated. Allowed values are blosc.NOSHUFFLE, blosc.SHUFFLE and blosc.BITSHUFFLE. The default is blosc.SHUFFLE.</paragraph></block_quote><paragraph><strong>cname</strong> : string (optional)</paragraph><block_quote><paragraph>The name of the compressor used internally in Blosc. It can be any of the supported by Blosc (‘blosclz’, ‘lz4’, ‘lz4hc’, ‘snappy’, ‘zlib’, ‘zstd’ and maybe others too). The default is ‘blosclz’.</paragraph></block_quote></field_body> SphinxTranslator.dispatch_departure calling depart_field for <field classes="field-odd"><field_name>Parameters</field_name><field_body><paragraph><strong>address</strong> : int or long</paragraph><block_quote><paragraph>the pointer to the data to be compressed</paragraph></block_quote><paragraph><strong>items</strong> : int</paragraph><block_quote><paragraph>The number of items (of typesize) to be compressed.</paragraph></block_quote><paragraph><strong>typesize</strong> : int</paragraph><block_quote><paragraph>The data type size.</paragraph></block_quote><paragraph><strong>clevel</strong> : int (optional)</paragraph><block_quote><paragraph>The compression level from 0 (no compression) to 9 (maximum compression). The default is 9.</paragraph></block_quote><paragraph><strong>shuffle</strong> : int (optional)</paragraph><block_quote><paragraph>The shuffle filter to be activated. Allowed values are blosc.NOSHUFFLE, blosc.SHUFFLE and blosc.BITSHUFFLE. The default is blosc.SHUFFLE.</paragraph></block_quote><paragraph><strong>cname</strong> : string (optional)</paragraph><block_quote><paragraph>The name of the compressor used internally in Blosc. It can be any of the supported by Blosc (‘blosclz’, ‘lz4’, ‘lz4hc’, ‘snappy’, ‘zlib’, ‘zstd’ and maybe others too). The default is ‘blosclz’.</paragraph></block_quote></field_body></field> SphinxTranslator.dispatch_visit calling visit_field for <field><field_name>Returns</field_name><field_body><paragraph><strong>out</strong> : str / bytes</paragraph><block_quote><paragraph>The compressed data in form of a Python str / bytes object.</paragraph></block_quote></field_body></field> SphinxTranslator.dispatch_visit calling visit_field_name for <field_name>Returns</field_name> SphinxTranslator.dispatch_visit calling visit_Text for Returns SphinxTranslator.dispatch_departure calling depart_Text for Returns SphinxTranslator.dispatch_departure calling depart_field_name for <field_name>Returns</field_name> SphinxTranslator.dispatch_visit calling visit_field_body for <field_body><paragraph><strong>out</strong> : str / bytes</paragraph><block_quote><paragraph>The compressed data in form of a Python str / bytes object.</paragraph></block_quote></field_body> SphinxTranslator.dispatch_visit calling visit_paragraph for <paragraph><strong>out</strong> : str / bytes</paragraph> SphinxTranslator.dispatch_visit calling visit_strong for <strong>out</strong> SphinxTranslator.dispatch_visit calling visit_Text for out SphinxTranslator.dispatch_departure calling depart_Text for out SphinxTranslator.dispatch_departure calling depart_strong for <strong>out</strong> SphinxTranslator.dispatch_visit calling visit_Text for : str / bytes SphinxTranslator.dispatch_departure calling depart_Text for : str / bytes SphinxTranslator.dispatch_departure calling depart_paragraph for <paragraph><strong>out</strong> : str / bytes</paragraph> SphinxTranslator.dispatch_visit calling visit_block_quote for <block_quote><paragraph>The compressed data in form of a Python str / bytes object.</paragraph></block_quote> SphinxTranslator.dispatch_visit calling visit_paragraph for <paragraph>The compressed data in form of a Python str / bytes object.</paragraph> SphinxTranslator.dispatch_visit calling visit_Text for The compressed data in form of a Python str / bytes object. SphinxTranslator.dispatch_departure calling depart_Text for The compressed data in form of a Python str / bytes object. SphinxTranslator.dispatch_departure calling depart_paragraph for <paragraph>The compressed data in form of a Python str / bytes object.</paragraph> SphinxTranslator.dispatch_departure calling depart_block_quote for <block_quote><paragraph>The compressed data in form of a Python str / bytes object.</paragraph></block_quote> SphinxTranslator.dispatch_departure calling depart_field_body for <field_body><paragraph><strong>out</strong> : str / bytes</paragraph><block_quote><paragraph>The compressed data in form of a Python str / bytes object.</paragraph></block_quote></field_body> SphinxTranslator.dispatch_departure calling depart_field for <field classes="field-even"><field_name>Returns</field_name><field_body><paragraph><strong>out</strong> : str / bytes</paragraph><block_quote><paragraph>The compressed data in form of a Python str / bytes object.</paragraph></block_quote></field_body></field> SphinxTranslator.dispatch_visit calling visit_field for <field><field_name>Raises</field_name><field_body><paragraph><strong>TypeError</strong></paragraph><block_quote><paragraph>If address is not of type int or long.</paragraph></block_quote><paragraph><strong>ValueError</strong></paragraph><block_quote><paragraph>If items * typesize is larger than the maximum allowed buffer size. If typesize is not within the allowed range. If clevel is not within the allowed range. If cname is not within the supported compressors.</paragraph></block_quote></field_body></field> SphinxTranslator.dispatch_visit calling visit_field_name for <field_name>Raises</field_name> SphinxTranslator.dispatch_visit calling visit_Text for Raises SphinxTranslator.dispatch_departure calling depart_Text for Raises SphinxTranslator.dispatch_departure calling depart_field_name for <field_name>Raises</field_name> SphinxTranslator.dispatch_visit calling visit_field_body for <field_body><paragraph><strong>TypeError</strong></paragraph><block_quote><paragraph>If address is not of type int or long.</paragraph></block_quote><paragraph><strong>ValueError</strong></paragraph><block_quote><paragraph>If items * typesize is larger than the maximum allowed buffer size. If typesize is not within the allowed range. If clevel is not within the allowed range. If cname is not within the supported compressors.</paragraph></block_quote></field_body> SphinxTranslator.dispatch_visit calling visit_paragraph for <paragraph><strong>TypeError</strong></paragraph> SphinxTranslator.dispatch_visit calling visit_strong for <strong>TypeError</strong> SphinxTranslator.dispatch_visit calling visit_Text for TypeError SphinxTranslator.dispatch_departure calling depart_Text for TypeError SphinxTranslator.dispatch_departure calling depart_strong for <strong>TypeError</strong> SphinxTranslator.dispatch_departure calling depart_paragraph for <paragraph><strong>TypeError</strong></paragraph> SphinxTranslator.dispatch_visit calling visit_block_quote for <block_quote><paragraph>If address is not of type int or long.</paragraph></block_quote> SphinxTranslator.dispatch_visit calling visit_paragraph for <paragraph>If address is not of type int or long.</paragraph> SphinxTranslator.dispatch_visit calling visit_Text for If address is not of type int or long. SphinxTranslator.dispatch_departure calling depart_Text for If address is not of type int or long. SphinxTranslator.dispatch_departure calling depart_paragraph for <paragraph>If address is not of type int or long.</paragraph> SphinxTranslator.dispatch_departure calling depart_block_quote for <block_quote><paragraph>If address is not of type int or long.</paragraph></block_quote> SphinxTranslator.dispatch_visit calling visit_paragraph for <paragraph><strong>ValueError</strong></paragraph> SphinxTranslator.dispatch_visit calling visit_strong for <strong>ValueError</strong> SphinxTranslator.dispatch_visit calling visit_Text for ValueError SphinxTranslator.dispatch_departure calling depart_Text for ValueError SphinxTranslator.dispatch_departure calling depart_strong for <strong>ValueError</strong> SphinxTranslator.dispatch_departure calling depart_paragraph for <paragraph><strong>ValueError</strong></paragraph> SphinxTranslator.dispatch_visit calling visit_block_quote for <block_quote><paragraph>If items * typesize is larger than the maximum allowed buffer size. If typesize is not within the allowed range. If clevel is not within the allowed range. If cname is not within the supported compressors.</paragraph></block_quote> SphinxTranslator.dispatch_visit calling visit_paragraph for <paragraph>If items * typesize is larger than the maximum allowed buffer size. If typesize is not within the allowed range. If clevel is not within the allowed range. If cname is not within the supported compressors.</paragraph> SphinxTranslator.dispatch_visit calling visit_Text for If items * typesize is larger than the maximum allowed buffer size. If typesize is not within the allowed range. If clevel is not within the allowed range. If cname is not within the supported compressors. SphinxTranslator.dispatch_departure calling depart_Text for If items * typesize is larger than the maximum allowed buffer size. If typesize is not within the allowed range. If clevel is not within the allowed range. If cname is not within the supported compressors. SphinxTranslator.dispatch_departure calling depart_paragraph for <paragraph>If items * typesize is larger than the maximum allowed buffer size. If typesize is not within the allowed range. If clevel is not within the allowed range. If cname is not within the supported compressors.</paragraph> SphinxTranslator.dispatch_departure calling depart_block_quote for <block_quote><paragraph>If items * typesize is larger than the maximum allowed buffer size. If typesize is not within the allowed range. If clevel is not within the allowed range. If cname is not within the supported compressors.</paragraph></block_quote> SphinxTranslator.dispatch_departure calling depart_field_body for <field_body><paragraph><strong>TypeError</strong></paragraph><block_quote><paragraph>If address is not of type int or long.</paragraph></block_quote><paragraph><strong>ValueError</strong></paragraph><block_quote><paragraph>If items * typesize is larger than the maximum allowed buffer size. If typesize is not within the allowed range. If clevel is not within the allowed range. If cname is not within the supported compressors.</paragraph></block_quote></field_body> SphinxTranslator.dispatch_departure calling depart_field for <field classes="field-odd"><field_name>Raises</field_name><field_body><paragraph><strong>TypeError</strong></paragraph><block_quote><paragraph>If address is not of type int or long.</paragraph></block_quote><paragraph><strong>ValueError</strong></paragraph><block_quote><paragraph>If items * typesize is larger than the maximum allowed buffer size. If typesize is not within the allowed range. If clevel is not within the allowed range. If cname is not within the supported compressors.</paragraph></block_quote></field_body></field> SphinxTranslator.dispatch_departure calling depart_field_list for <field_list><field classes="field-odd"><field_name>Parameters</field_name><field_body><paragraph><strong>address</strong> : int or long</paragraph><block_quote><paragraph>the pointer to the data to be compressed</paragraph></block_quote><paragraph><strong>items</strong> : int</paragraph><block_quote><paragraph>The number of items (of typesize) to be compressed.</paragraph></block_quote><paragraph><strong>typesize</strong> : int</paragraph><block_quote><paragraph>The data type size.</paragraph></block_quote><paragraph><strong>clevel</strong> : int (optional)</paragraph><block_quote><paragraph>The compression level from 0 (no compression) to 9 (maximum compression). The default is 9.</paragraph></block_quote><paragraph><strong>shuffle</strong> : int (optional)</paragraph><block_quote><paragraph>The shuffle filter to be activated. Allowed values are blosc.NOSHUFFLE, blosc.SHUFFLE and blosc.BITSHUFFLE. The default is blosc.SHUFFLE.</paragraph></block_quote><paragraph><strong>cname</strong> : string (optional)</paragraph><block_quote><paragraph>The name of the compressor used internally in Blosc. It can be any of the supported by Blosc (‘blosclz’, ‘lz4’, ‘lz4hc’, ‘snappy’, ‘zlib’, ‘zstd’ and maybe others too). The default is ‘blosclz’.</paragraph></block_quote></field_body></field><field classes="field-even"><field_name>Returns</field_name><field_body><paragraph><strong>out</strong> : str / bytes</paragraph><block_quote><paragraph>The compressed data in form of a Python str / bytes object.</paragraph></block_quote></field_body></field><field classes="field-odd"><field_name>Raises</field_name><field_body><paragraph><strong>TypeError</strong></paragraph><block_quote><paragraph>If address is not of type int or long.</paragraph></block_quote><paragraph><strong>ValueError</strong></paragraph><block_quote><paragraph>If items * typesize is larger than the maximum allowed buffer size. If typesize is not within the allowed range. If clevel is not within the allowed range. If cname is not within the supported compressors.</paragraph></block_quote></field_body></field></field_list> SphinxTranslator.dispatch_visit calling visit_rubric for <rubric>Notes</rubric> SphinxTranslator.dispatch_visit calling visit_Text for Notes SphinxTranslator.dispatch_departure calling depart_Text for Notes SphinxTranslator.dispatch_departure calling depart_rubric for <rubric>Notes</rubric> SphinxTranslator.dispatch_visit calling visit_paragraph for <paragraph>This function can be used anywhere that a memory address is available in Python. For example the Numpy “__array_interface__[‘data’][0]†construct, or when using the ctypes modules.</paragraph> SphinxTranslator.dispatch_visit calling visit_Text for This function can be used anywhere that a memory address is available in Python. For example the Numpy “__array_interface__[‘data’][0]†construct, or when using the ctypes modules. SphinxTranslator.dispatch_departure calling depart_Text for This function can be used anywhere that a memory address is available in Python. For example the Numpy “__array_interface__[‘data’][0]†construct, or when using the ctypes modules. SphinxTranslator.dispatch_departure calling depart_paragraph for <paragraph>This function can be used anywhere that a memory address is available in Python. For example the Numpy “__array_interface__[‘data’][0]†construct, or when using the ctypes modules.</paragraph> SphinxTranslator.dispatch_visit calling visit_paragraph for <paragraph>Importantly, the user is responsible for making sure that the memory address is valid and that the memory pointed to is contiguous. Passing a non-valid address has a high likelihood of crashing the interpreter by segfault.</paragraph> SphinxTranslator.dispatch_visit calling visit_Text for Importantly, the user is responsible for making sure that the memory address is valid and that the memory pointed to is contiguous. Passing a non-valid address has a high likelihood of crashing the interpreter by segfault. SphinxTranslator.dispatch_departure calling depart_Text for Importantly, the user is responsible for making sure that the memory address is valid and that the memory pointed to is contiguous. Passing a non-valid address has a high likelihood of crashing the interpreter by segfault. SphinxTranslator.dispatch_departure calling depart_paragraph for <paragraph>Importantly, the user is responsible for making sure that the memory address is valid and that the memory pointed to is contiguous. Passing a non-valid address has a high likelihood of crashing the interpreter by segfault.</paragraph> SphinxTranslator.dispatch_visit calling visit_rubric for <rubric>Examples</rubric> SphinxTranslator.dispatch_visit calling visit_Text for Examples SphinxTranslator.dispatch_departure calling depart_Text for Examples SphinxTranslator.dispatch_departure calling depart_rubric for <rubric>Examples</rubric> SphinxTranslator.dispatch_visit calling visit_doctest_block for <doctest_block classes="doctest" xml:space="preserve">>>> import numpy >>> items = 7 >>> np_array = numpy.arange(items) >>> c = blosc.compress_ptr(np_array.__array_interface__['data'][0], items, np_array.dtype.itemsize) >>> d = blosc.decompress(c) >>> np_ans = numpy.fromstring(d, dtype=np_array.dtype) >>> (np_array == np_ans).all() True</doctest_block> SphinxTranslator.dispatch_visit calling visit_doctest_block for <doctest_block classes="doctest" xml:space="preserve">>>> import ctypes >>> typesize = 8 >>> data = [float(i) for i in range(items)] >>> Array = ctypes.c_double * items >>> a = Array(*data) >>> c = blosc.compress_ptr(ctypes.addressof(a), items, typesize) >>> d = blosc.decompress(c) >>> import struct >>> ans = [struct.unpack('d', d[i:i+typesize])[0] for i in range(0, items*typesize, typesize)] >>> data == ans True</doctest_block> SphinxTranslator.dispatch_departure calling depart_desc_content for <desc_content><paragraph>Compress the data at address with given items and typesize.</paragraph><field_list><field classes="field-odd"><field_name>Parameters</field_name><field_body><paragraph><strong>address</strong> : int or long</paragraph><block_quote><paragraph>the pointer to the data to be compressed</paragraph></block_quote><paragraph><strong>items</strong> : int</paragraph><block_quote><paragraph>The number of items (of typesize) to be compressed.</paragraph></block_quote><paragraph><strong>typesize</strong> : int</paragraph><block_quote><paragraph>The data type size.</paragraph></block_quote><paragraph><strong>clevel</strong> : int (optional)</paragraph><block_quote><paragraph>The compression level from 0 (no compression) to 9 (maximum compression). The default is 9.</paragraph></block_quote><paragraph><strong>shuffle</strong> : int (optional)</paragraph><block_quote><paragraph>The shuffle filter to be activated. Allowed values are blosc.NOSHUFFLE, blosc.SHUFFLE and blosc.BITSHUFFLE. The default is blosc.SHUFFLE.</paragraph></block_quote><paragraph><strong>cname</strong> : string (optional)</paragraph><block_quote><paragraph>The name of the compressor used internally in Blosc. It can be any of the supported by Blosc (‘blosclz’, ‘lz4’, ‘lz4hc’, ‘snappy’, ‘zlib’, ‘zstd’ and maybe others too). The default is ‘blosclz’.</paragraph></block_quote></field_body></field><field classes="field-even"><field_name>Returns</field_name><field_body><paragraph><strong>out</strong> : str / bytes</paragraph><block_quote><paragraph>The compressed data in form of a Python str / bytes object.</paragraph></block_quote></field_body></field><field classes="field-odd"><field_name>Raises</field_name><field_body><paragraph><strong>TypeError</strong></paragraph><block_quote><paragraph>If address is not of type int or long.</paragraph></block_quote><paragraph><strong>ValueError</strong></paragraph><block_quote><paragraph>If items * typesize is larger than the maximum allowed buffer size. If typesize is not within the allowed range. If clevel is not within the allowed range. If cname is not within the supported compressors.</paragraph></block_quote></field_body></field></field_list><rubric>Notes</rubric><paragraph>This function can be used anywhere that a memory address is available in Python. For example the Numpy “__array_interface__[‘data’][0]†construct, or when using the ctypes modules.</paragraph><paragraph>Importantly, the user is responsible for making sure that the memory address is valid and that the memory pointed to is contiguous. Passing a non-valid address has a high likelihood of crashing the interpreter by segfault.</paragraph><rubric>Examples</rubric><doctest_block classes="doctest" xml:space="preserve">>>> import numpy >>> items = 7 >>> np_array = numpy.arange(items) >>> c = blosc.compress_ptr(np_array.__array_interface__['data'][0], items, np_array.dtype.itemsize) >>> d = blosc.decompress(c) >>> np_ans = numpy.fromstring(d, dtype=np_array.dtype) >>> (np_array == np_ans).all() True</doctest_block><doctest_block classes="doctest" xml:space="preserve">>>> import ctypes >>> typesize = 8 >>> data = [float(i) for i in range(items)] >>> Array = ctypes.c_double * items >>> a = Array(*data) >>> c = blosc.compress_ptr(ctypes.addressof(a), items, typesize) >>> d = blosc.decompress(c) >>> import struct >>> ans = [struct.unpack('d', d[i:i+typesize])[0] for i in range(0, items*typesize, typesize)] >>> data == ans True</doctest_block></desc_content> SphinxTranslator.dispatch_departure calling depart_desc for <desc desctype="function" domain="py" noindex="False" objtype="function"><desc_signature class="" first="False" fullname="compress_ptr" ids="blosc.compress_ptr" module="blosc" names="blosc.compress_ptr"><desc_addname xml:space="preserve">blosc.</desc_addname><desc_name xml:space="preserve">compress_ptr</desc_name><desc_parameterlist xml:space="preserve"><desc_parameter xml:space="preserve">address, items[, typesize=8, clevel=9, shuffle=blosc.SHUFFLE, cname='blosclz']]</desc_parameter></desc_parameterlist></desc_signature><desc_content><paragraph>Compress the data at address with given items and typesize.</paragraph><field_list><field classes="field-odd"><field_name>Parameters</field_name><field_body><paragraph><strong>address</strong> : int or long</paragraph><block_quote><paragraph>the pointer to the data to be compressed</paragraph></block_quote><paragraph><strong>items</strong> : int</paragraph><block_quote><paragraph>The number of items (of typesize) to be compressed.</paragraph></block_quote><paragraph><strong>typesize</strong> : int</paragraph><block_quote><paragraph>The data type size.</paragraph></block_quote><paragraph><strong>clevel</strong> : int (optional)</paragraph><block_quote><paragraph>The compression level from 0 (no compression) to 9 (maximum compression). The default is 9.</paragraph></block_quote><paragraph><strong>shuffle</strong> : int (optional)</paragraph><block_quote><paragraph>The shuffle filter to be activated. Allowed values are blosc.NOSHUFFLE, blosc.SHUFFLE and blosc.BITSHUFFLE. The default is blosc.SHUFFLE.</paragraph></block_quote><paragraph><strong>cname</strong> : string (optional)</paragraph><block_quote><paragraph>The name of the compressor used internally in Blosc. It can be any of the supported by Blosc (‘blosclz’, ‘lz4’, ‘lz4hc’, ‘snappy’, ‘zlib’, ‘zstd’ and maybe others too). The default is ‘blosclz’.</paragraph></block_quote></field_body></field><field classes="field-even"><field_name>Returns</field_name><field_body><paragraph><strong>out</strong> : str / bytes</paragraph><block_quote><paragraph>The compressed data in form of a Python str / bytes object.</paragraph></block_quote></field_body></field><field classes="field-odd"><field_name>Raises</field_name><field_body><paragraph><strong>TypeError</strong></paragraph><block_quote><paragraph>If address is not of type int or long.</paragraph></block_quote><paragraph><strong>ValueError</strong></paragraph><block_quote><paragraph>If items * typesize is larger than the maximum allowed buffer size. If typesize is not within the allowed range. If clevel is not within the allowed range. If cname is not within the supported compressors.</paragraph></block_quote></field_body></field></field_list><rubric>Notes</rubric><paragraph>This function can be used anywhere that a memory address is available in Python. For example the Numpy “__array_interface__[‘data’][0]†construct, or when using the ctypes modules.</paragraph><paragraph>Importantly, the user is responsible for making sure that the memory address is valid and that the memory pointed to is contiguous. Passing a non-valid address has a high likelihood of crashing the interpreter by segfault.</paragraph><rubric>Examples</rubric><doctest_block classes="doctest" xml:space="preserve">>>> import numpy >>> items = 7 >>> np_array = numpy.arange(items) >>> c = blosc.compress_ptr(np_array.__array_interface__['data'][0], items, np_array.dtype.itemsize) >>> d = blosc.decompress(c) >>> np_ans = numpy.fromstring(d, dtype=np_array.dtype) >>> (np_array == np_ans).all() True</doctest_block><doctest_block classes="doctest" xml:space="preserve">>>> import ctypes >>> typesize = 8 >>> data = [float(i) for i in range(items)] >>> Array = ctypes.c_double * items >>> a = Array(*data) >>> c = blosc.compress_ptr(ctypes.addressof(a), items, typesize) >>> d = blosc.decompress(c) >>> import struct >>> ans = [struct.unpack('d', d[i:i+typesize])[0] for i in range(0, items*typesize, typesize)] >>> data == ans True</doctest_block></desc_content></desc> SphinxTranslator.dispatch_visit calling visit_index for <index entries="[('single', 'decompress() (in module blosc)', 'blosc.decompress', '', None)]"/> SphinxTranslator.dispatch_visit calling visit_desc for <desc desctype="function" domain="py" noindex="False" objtype="function"><desc_signature class="" first="False" fullname="decompress" ids="blosc.decompress" module="blosc" names="blosc.decompress"><desc_addname xml:space="preserve">blosc.</desc_addname><desc_name xml:space="preserve">decompress</desc_name><desc_parameterlist xml:space="preserve"><desc_parameter xml:space="preserve">bytesobj</desc_parameter></desc_parameterlist></desc_signature><desc_content><paragraph>Decompresses a bytesobj compressed object.</paragraph><field_list><field><field_name>Parameters</field_name><field_body><paragraph><strong>bytesobj</strong> : str / bytes</paragraph><block_quote><paragraph>The data to be decompressed.</paragraph></block_quote><paragraph><strong>as_bytearray</strong> : bool, optional</paragraph><block_quote><paragraph>If this flag is True then the return type will be a bytearray object instead of a bytesobject.</paragraph></block_quote></field_body></field><field><field_name>Returns</field_name><field_body><paragraph><strong>out</strong> : str / bytes or bytearray</paragraph><block_quote><paragraph>The decompressed data in form of a Python str / bytes object. If as_bytearray is True then this will be a bytearray object, otherwise this will be a str/ bytes object.</paragraph></block_quote></field_body></field><field><field_name>Raises</field_name><field_body><paragraph><strong>TypeError</strong></paragraph><block_quote><paragraph>If bytesobj is not of type bytes or string.</paragraph></block_quote></field_body></field></field_list><rubric>Examples</rubric><doctest_block classes="doctest" xml:space="preserve">>>> import array >>> a = array.array('i', range(1000*1000)) >>> a_bytesobj = a.tostring() >>> c_bytesobj = blosc.compress(a_bytesobj, typesize=4) >>> a_bytesobj2 = blosc.decompress(c_bytesobj) >>> a_bytesobj == a_bytesobj2 True >>> b"" == blosc.decompress(blosc.compress(b"", 1)) True >>> b"1"*7 == blosc.decompress(blosc.compress(b"1"*7, 8)) True >>> type(blosc.decompress(blosc.compress(b"1"*7, 8), ... as_bytearray=True)) is bytearray True</doctest_block></desc_content></desc> SphinxTranslator.dispatch_visit calling visit_desc_signature for <desc_signature class="" first="False" fullname="decompress" ids="blosc.decompress" module="blosc" names="blosc.decompress"><desc_addname xml:space="preserve">blosc.</desc_addname><desc_name xml:space="preserve">decompress</desc_name><desc_parameterlist xml:space="preserve"><desc_parameter xml:space="preserve">bytesobj</desc_parameter></desc_parameterlist></desc_signature> SphinxTranslator.dispatch_visit calling visit_desc_addname for <desc_addname xml:space="preserve">blosc.</desc_addname> SphinxTranslator.dispatch_visit calling visit_Text for blosc. SphinxTranslator.dispatch_departure calling depart_Text for blosc. SphinxTranslator.dispatch_departure calling depart_desc_addname for <desc_addname xml:space="preserve">blosc.</desc_addname> SphinxTranslator.dispatch_visit calling visit_desc_name for <desc_name xml:space="preserve">decompress</desc_name> SphinxTranslator.dispatch_visit calling visit_Text for decompress SphinxTranslator.dispatch_departure calling depart_Text for decompress SphinxTranslator.dispatch_departure calling depart_desc_name for <desc_name xml:space="preserve">decompress</desc_name> SphinxTranslator.dispatch_visit calling visit_desc_parameterlist for <desc_parameterlist xml:space="preserve"><desc_parameter xml:space="preserve">bytesobj</desc_parameter></desc_parameterlist> SphinxTranslator.dispatch_visit calling visit_desc_parameter for <desc_parameter xml:space="preserve">bytesobj</desc_parameter> SphinxTranslator.dispatch_visit calling visit_Text for bytesobj SphinxTranslator.dispatch_departure calling depart_Text for bytesobj SphinxTranslator.dispatch_departure calling depart_desc_parameter for <desc_parameter xml:space="preserve">bytesobj</desc_parameter> SphinxTranslator.dispatch_departure calling depart_desc_parameterlist for <desc_parameterlist xml:space="preserve"><desc_parameter xml:space="preserve">bytesobj</desc_parameter></desc_parameterlist> SphinxTranslator.dispatch_departure calling depart_desc_signature for <desc_signature class="" first="False" fullname="decompress" ids="blosc.decompress" module="blosc" names="blosc.decompress"><desc_addname xml:space="preserve">blosc.</desc_addname><desc_name xml:space="preserve">decompress</desc_name><desc_parameterlist xml:space="preserve"><desc_parameter xml:space="preserve">bytesobj</desc_parameter></desc_parameterlist></desc_signature> SphinxTranslator.dispatch_visit calling visit_desc_content for <desc_content><paragraph>Decompresses a bytesobj compressed object.</paragraph><field_list><field><field_name>Parameters</field_name><field_body><paragraph><strong>bytesobj</strong> : str / bytes</paragraph><block_quote><paragraph>The data to be decompressed.</paragraph></block_quote><paragraph><strong>as_bytearray</strong> : bool, optional</paragraph><block_quote><paragraph>If this flag is True then the return type will be a bytearray object instead of a bytesobject.</paragraph></block_quote></field_body></field><field><field_name>Returns</field_name><field_body><paragraph><strong>out</strong> : str / bytes or bytearray</paragraph><block_quote><paragraph>The decompressed data in form of a Python str / bytes object. If as_bytearray is True then this will be a bytearray object, otherwise this will be a str/ bytes object.</paragraph></block_quote></field_body></field><field><field_name>Raises</field_name><field_body><paragraph><strong>TypeError</strong></paragraph><block_quote><paragraph>If bytesobj is not of type bytes or string.</paragraph></block_quote></field_body></field></field_list><rubric>Examples</rubric><doctest_block classes="doctest" xml:space="preserve">>>> import array >>> a = array.array('i', range(1000*1000)) >>> a_bytesobj = a.tostring() >>> c_bytesobj = blosc.compress(a_bytesobj, typesize=4) >>> a_bytesobj2 = blosc.decompress(c_bytesobj) >>> a_bytesobj == a_bytesobj2 True >>> b"" == blosc.decompress(blosc.compress(b"", 1)) True >>> b"1"*7 == blosc.decompress(blosc.compress(b"1"*7, 8)) True >>> type(blosc.decompress(blosc.compress(b"1"*7, 8), ... as_bytearray=True)) is bytearray True</doctest_block></desc_content> SphinxTranslator.dispatch_visit calling visit_paragraph for <paragraph>Decompresses a bytesobj compressed object.</paragraph> SphinxTranslator.dispatch_visit calling visit_Text for Decompresses a bytesobj compressed object. SphinxTranslator.dispatch_departure calling depart_Text for Decompresses a bytesobj compressed object. SphinxTranslator.dispatch_departure calling depart_paragraph for <paragraph>Decompresses a bytesobj compressed object.</paragraph> SphinxTranslator.dispatch_visit calling visit_field_list for <field_list><field><field_name>Parameters</field_name><field_body><paragraph><strong>bytesobj</strong> : str / bytes</paragraph><block_quote><paragraph>The data to be decompressed.</paragraph></block_quote><paragraph><strong>as_bytearray</strong> : bool, optional</paragraph><block_quote><paragraph>If this flag is True then the return type will be a bytearray object instead of a bytesobject.</paragraph></block_quote></field_body></field><field><field_name>Returns</field_name><field_body><paragraph><strong>out</strong> : str / bytes or bytearray</paragraph><block_quote><paragraph>The decompressed data in form of a Python str / bytes object. If as_bytearray is True then this will be a bytearray object, otherwise this will be a str/ bytes object.</paragraph></block_quote></field_body></field><field><field_name>Raises</field_name><field_body><paragraph><strong>TypeError</strong></paragraph><block_quote><paragraph>If bytesobj is not of type bytes or string.</paragraph></block_quote></field_body></field></field_list> SphinxTranslator.dispatch_visit calling visit_field for <field><field_name>Parameters</field_name><field_body><paragraph><strong>bytesobj</strong> : str / bytes</paragraph><block_quote><paragraph>The data to be decompressed.</paragraph></block_quote><paragraph><strong>as_bytearray</strong> : bool, optional</paragraph><block_quote><paragraph>If this flag is True then the return type will be a bytearray object instead of a bytesobject.</paragraph></block_quote></field_body></field> SphinxTranslator.dispatch_visit calling visit_field_name for <field_name>Parameters</field_name> SphinxTranslator.dispatch_visit calling visit_Text for Parameters SphinxTranslator.dispatch_departure calling depart_Text for Parameters SphinxTranslator.dispatch_departure calling depart_field_name for <field_name>Parameters</field_name> SphinxTranslator.dispatch_visit calling visit_field_body for <field_body><paragraph><strong>bytesobj</strong> : str / bytes</paragraph><block_quote><paragraph>The data to be decompressed.</paragraph></block_quote><paragraph><strong>as_bytearray</strong> : bool, optional</paragraph><block_quote><paragraph>If this flag is True then the return type will be a bytearray object instead of a bytesobject.</paragraph></block_quote></field_body> SphinxTranslator.dispatch_visit calling visit_paragraph for <paragraph><strong>bytesobj</strong> : str / bytes</paragraph> SphinxTranslator.dispatch_visit calling visit_strong for <strong>bytesobj</strong> SphinxTranslator.dispatch_visit calling visit_Text for bytesobj SphinxTranslator.dispatch_departure calling depart_Text for bytesobj SphinxTranslator.dispatch_departure calling depart_strong for <strong>bytesobj</strong> SphinxTranslator.dispatch_visit calling visit_Text for : str / bytes SphinxTranslator.dispatch_departure calling depart_Text for : str / bytes SphinxTranslator.dispatch_departure calling depart_paragraph for <paragraph><strong>bytesobj</strong> : str / bytes</paragraph> SphinxTranslator.dispatch_visit calling visit_block_quote for <block_quote><paragraph>The data to be decompressed.</paragraph></block_quote> SphinxTranslator.dispatch_visit calling visit_paragraph for <paragraph>The data to be decompressed.</paragraph> SphinxTranslator.dispatch_visit calling visit_Text for The data to be decompressed. SphinxTranslator.dispatch_departure calling depart_Text for The data to be decompressed. SphinxTranslator.dispatch_departure calling depart_paragraph for <paragraph>The data to be decompressed.</paragraph> SphinxTranslator.dispatch_departure calling depart_block_quote for <block_quote><paragraph>The data to be decompressed.</paragraph></block_quote> SphinxTranslator.dispatch_visit calling visit_paragraph for <paragraph><strong>as_bytearray</strong> : bool, optional</paragraph> SphinxTranslator.dispatch_visit calling visit_strong for <strong>as_bytearray</strong> SphinxTranslator.dispatch_visit calling visit_Text for as_bytearray SphinxTranslator.dispatch_departure calling depart_Text for as_bytearray SphinxTranslator.dispatch_departure calling depart_strong for <strong>as_bytearray</strong> SphinxTranslator.dispatch_visit calling visit_Text for : bool, optional SphinxTranslator.dispatch_departure calling depart_Text for : bool, optional SphinxTranslator.dispatch_departure calling depart_paragraph for <paragraph><strong>as_bytearray</strong> : bool, optional</paragraph> SphinxTranslator.dispatch_visit calling visit_block_quote for <block_quote><paragraph>If this flag is True then the return type will be a bytearray object instead of a bytesobject.</paragraph></block_quote> SphinxTranslator.dispatch_visit calling visit_paragraph for <paragraph>If this flag is True then the return type will be a bytearray object instead of a bytesobject.</paragraph> SphinxTranslator.dispatch_visit calling visit_Text for If this flag is True then the return type will be a bytearray object instead of a bytesobject. SphinxTranslator.dispatch_departure calling depart_Text for If this flag is True then the return type will be a bytearray object instead of a bytesobject. SphinxTranslator.dispatch_departure calling depart_paragraph for <paragraph>If this flag is True then the return type will be a bytearray object instead of a bytesobject.</paragraph> SphinxTranslator.dispatch_departure calling depart_block_quote for <block_quote><paragraph>If this flag is True then the return type will be a bytearray object instead of a bytesobject.</paragraph></block_quote> SphinxTranslator.dispatch_departure calling depart_field_body for <field_body><paragraph><strong>bytesobj</strong> : str / bytes</paragraph><block_quote><paragraph>The data to be decompressed.</paragraph></block_quote><paragraph><strong>as_bytearray</strong> : bool, optional</paragraph><block_quote><paragraph>If this flag is True then the return type will be a bytearray object instead of a bytesobject.</paragraph></block_quote></field_body> SphinxTranslator.dispatch_departure calling depart_field for <field classes="field-odd"><field_name>Parameters</field_name><field_body><paragraph><strong>bytesobj</strong> : str / bytes</paragraph><block_quote><paragraph>The data to be decompressed.</paragraph></block_quote><paragraph><strong>as_bytearray</strong> : bool, optional</paragraph><block_quote><paragraph>If this flag is True then the return type will be a bytearray object instead of a bytesobject.</paragraph></block_quote></field_body></field> SphinxTranslator.dispatch_visit calling visit_field for <field><field_name>Returns</field_name><field_body><paragraph><strong>out</strong> : str / bytes or bytearray</paragraph><block_quote><paragraph>The decompressed data in form of a Python str / bytes object. If as_bytearray is True then this will be a bytearray object, otherwise this will be a str/ bytes object.</paragraph></block_quote></field_body></field> SphinxTranslator.dispatch_visit calling visit_field_name for <field_name>Returns</field_name> SphinxTranslator.dispatch_visit calling visit_Text for Returns SphinxTranslator.dispatch_departure calling depart_Text for Returns SphinxTranslator.dispatch_departure calling depart_field_name for <field_name>Returns</field_name> SphinxTranslator.dispatch_visit calling visit_field_body for <field_body><paragraph><strong>out</strong> : str / bytes or bytearray</paragraph><block_quote><paragraph>The decompressed data in form of a Python str / bytes object. If as_bytearray is True then this will be a bytearray object, otherwise this will be a str/ bytes object.</paragraph></block_quote></field_body> SphinxTranslator.dispatch_visit calling visit_paragraph for <paragraph><strong>out</strong> : str / bytes or bytearray</paragraph> SphinxTranslator.dispatch_visit calling visit_strong for <strong>out</strong> SphinxTranslator.dispatch_visit calling visit_Text for out SphinxTranslator.dispatch_departure calling depart_Text for out SphinxTranslator.dispatch_departure calling depart_strong for <strong>out</strong> SphinxTranslator.dispatch_visit calling visit_Text for : str / bytes or bytearray SphinxTranslator.dispatch_departure calling depart_Text for : str / bytes or bytearray SphinxTranslator.dispatch_departure calling depart_paragraph for <paragraph><strong>out</strong> : str / bytes or bytearray</paragraph> SphinxTranslator.dispatch_visit calling visit_block_quote for <block_quote><paragraph>The decompressed data in form of a Python str / bytes object. If as_bytearray is True then this will be a bytearray object, otherwise this will be a str/ bytes object.</paragraph></block_quote> SphinxTranslator.dispatch_visit calling visit_paragraph for <paragraph>The decompressed data in form of a Python str / bytes object. If as_bytearray is True then this will be a bytearray object, otherwise this will be a str/ bytes object.</paragraph> SphinxTranslator.dispatch_visit calling visit_Text for The decompressed data in form of a Python str / bytes object. If as_bytearray is True then this will be a bytearray object, otherwise this will be a str/ bytes object. SphinxTranslator.dispatch_departure calling depart_Text for The decompressed data in form of a Python str / bytes object. If as_bytearray is True then this will be a bytearray object, otherwise this will be a str/ bytes object. SphinxTranslator.dispatch_departure calling depart_paragraph for <paragraph>The decompressed data in form of a Python str / bytes object. If as_bytearray is True then this will be a bytearray object, otherwise this will be a str/ bytes object.</paragraph> SphinxTranslator.dispatch_departure calling depart_block_quote for <block_quote><paragraph>The decompressed data in form of a Python str / bytes object. If as_bytearray is True then this will be a bytearray object, otherwise this will be a str/ bytes object.</paragraph></block_quote> SphinxTranslator.dispatch_departure calling depart_field_body for <field_body><paragraph><strong>out</strong> : str / bytes or bytearray</paragraph><block_quote><paragraph>The decompressed data in form of a Python str / bytes object. If as_bytearray is True then this will be a bytearray object, otherwise this will be a str/ bytes object.</paragraph></block_quote></field_body> SphinxTranslator.dispatch_departure calling depart_field for <field classes="field-even"><field_name>Returns</field_name><field_body><paragraph><strong>out</strong> : str / bytes or bytearray</paragraph><block_quote><paragraph>The decompressed data in form of a Python str / bytes object. If as_bytearray is True then this will be a bytearray object, otherwise this will be a str/ bytes object.</paragraph></block_quote></field_body></field> SphinxTranslator.dispatch_visit calling visit_field for <field><field_name>Raises</field_name><field_body><paragraph><strong>TypeError</strong></paragraph><block_quote><paragraph>If bytesobj is not of type bytes or string.</paragraph></block_quote></field_body></field> SphinxTranslator.dispatch_visit calling visit_field_name for <field_name>Raises</field_name> SphinxTranslator.dispatch_visit calling visit_Text for Raises SphinxTranslator.dispatch_departure calling depart_Text for Raises SphinxTranslator.dispatch_departure calling depart_field_name for <field_name>Raises</field_name> SphinxTranslator.dispatch_visit calling visit_field_body for <field_body><paragraph><strong>TypeError</strong></paragraph><block_quote><paragraph>If bytesobj is not of type bytes or string.</paragraph></block_quote></field_body> SphinxTranslator.dispatch_visit calling visit_paragraph for <paragraph><strong>TypeError</strong></paragraph> SphinxTranslator.dispatch_visit calling visit_strong for <strong>TypeError</strong> SphinxTranslator.dispatch_visit calling visit_Text for TypeError SphinxTranslator.dispatch_departure calling depart_Text for TypeError SphinxTranslator.dispatch_departure calling depart_strong for <strong>TypeError</strong> SphinxTranslator.dispatch_departure calling depart_paragraph for <paragraph><strong>TypeError</strong></paragraph> SphinxTranslator.dispatch_visit calling visit_block_quote for <block_quote><paragraph>If bytesobj is not of type bytes or string.</paragraph></block_quote> SphinxTranslator.dispatch_visit calling visit_paragraph for <paragraph>If bytesobj is not of type bytes or string.</paragraph> SphinxTranslator.dispatch_visit calling visit_Text for If bytesobj is not of type bytes or string. SphinxTranslator.dispatch_departure calling depart_Text for If bytesobj is not of type bytes or string. SphinxTranslator.dispatch_departure calling depart_paragraph for <paragraph>If bytesobj is not of type bytes or string.</paragraph> SphinxTranslator.dispatch_departure calling depart_block_quote for <block_quote><paragraph>If bytesobj is not of type bytes or string.</paragraph></block_quote> SphinxTranslator.dispatch_departure calling depart_field_body for <field_body><paragraph><strong>TypeError</strong></paragraph><block_quote><paragraph>If bytesobj is not of type bytes or string.</paragraph></block_quote></field_body> SphinxTranslator.dispatch_departure calling depart_field for <field classes="field-odd"><field_name>Raises</field_name><field_body><paragraph><strong>TypeError</strong></paragraph><block_quote><paragraph>If bytesobj is not of type bytes or string.</paragraph></block_quote></field_body></field> SphinxTranslator.dispatch_departure calling depart_field_list for <field_list><field classes="field-odd"><field_name>Parameters</field_name><field_body><paragraph><strong>bytesobj</strong> : str / bytes</paragraph><block_quote><paragraph>The data to be decompressed.</paragraph></block_quote><paragraph><strong>as_bytearray</strong> : bool, optional</paragraph><block_quote><paragraph>If this flag is True then the return type will be a bytearray object instead of a bytesobject.</paragraph></block_quote></field_body></field><field classes="field-even"><field_name>Returns</field_name><field_body><paragraph><strong>out</strong> : str / bytes or bytearray</paragraph><block_quote><paragraph>The decompressed data in form of a Python str / bytes object. If as_bytearray is True then this will be a bytearray object, otherwise this will be a str/ bytes object.</paragraph></block_quote></field_body></field><field classes="field-odd"><field_name>Raises</field_name><field_body><paragraph><strong>TypeError</strong></paragraph><block_quote><paragraph>If bytesobj is not of type bytes or string.</paragraph></block_quote></field_body></field></field_list> SphinxTranslator.dispatch_visit calling visit_rubric for <rubric>Examples</rubric> SphinxTranslator.dispatch_visit calling visit_Text for Examples SphinxTranslator.dispatch_departure calling depart_Text for Examples SphinxTranslator.dispatch_departure calling depart_rubric for <rubric>Examples</rubric> SphinxTranslator.dispatch_visit calling visit_doctest_block for <doctest_block classes="doctest" xml:space="preserve">>>> import array >>> a = array.array('i', range(1000*1000)) >>> a_bytesobj = a.tostring() >>> c_bytesobj = blosc.compress(a_bytesobj, typesize=4) >>> a_bytesobj2 = blosc.decompress(c_bytesobj) >>> a_bytesobj == a_bytesobj2 True >>> b"" == blosc.decompress(blosc.compress(b"", 1)) True >>> b"1"*7 == blosc.decompress(blosc.compress(b"1"*7, 8)) True >>> type(blosc.decompress(blosc.compress(b"1"*7, 8), ... as_bytearray=True)) is bytearray True</doctest_block> SphinxTranslator.dispatch_departure calling depart_desc_content for <desc_content><paragraph>Decompresses a bytesobj compressed object.</paragraph><field_list><field classes="field-odd"><field_name>Parameters</field_name><field_body><paragraph><strong>bytesobj</strong> : str / bytes</paragraph><block_quote><paragraph>The data to be decompressed.</paragraph></block_quote><paragraph><strong>as_bytearray</strong> : bool, optional</paragraph><block_quote><paragraph>If this flag is True then the return type will be a bytearray object instead of a bytesobject.</paragraph></block_quote></field_body></field><field classes="field-even"><field_name>Returns</field_name><field_body><paragraph><strong>out</strong> : str / bytes or bytearray</paragraph><block_quote><paragraph>The decompressed data in form of a Python str / bytes object. If as_bytearray is True then this will be a bytearray object, otherwise this will be a str/ bytes object.</paragraph></block_quote></field_body></field><field classes="field-odd"><field_name>Raises</field_name><field_body><paragraph><strong>TypeError</strong></paragraph><block_quote><paragraph>If bytesobj is not of type bytes or string.</paragraph></block_quote></field_body></field></field_list><rubric>Examples</rubric><doctest_block classes="doctest" xml:space="preserve">>>> import array >>> a = array.array('i', range(1000*1000)) >>> a_bytesobj = a.tostring() >>> c_bytesobj = blosc.compress(a_bytesobj, typesize=4) >>> a_bytesobj2 = blosc.decompress(c_bytesobj) >>> a_bytesobj == a_bytesobj2 True >>> b"" == blosc.decompress(blosc.compress(b"", 1)) True >>> b"1"*7 == blosc.decompress(blosc.compress(b"1"*7, 8)) True >>> type(blosc.decompress(blosc.compress(b"1"*7, 8), ... as_bytearray=True)) is bytearray True</doctest_block></desc_content> SphinxTranslator.dispatch_departure calling depart_desc for <desc desctype="function" domain="py" noindex="False" objtype="function"><desc_signature class="" first="False" fullname="decompress" ids="blosc.decompress" module="blosc" names="blosc.decompress"><desc_addname xml:space="preserve">blosc.</desc_addname><desc_name xml:space="preserve">decompress</desc_name><desc_parameterlist xml:space="preserve"><desc_parameter xml:space="preserve">bytesobj</desc_parameter></desc_parameterlist></desc_signature><desc_content><paragraph>Decompresses a bytesobj compressed object.</paragraph><field_list><field classes="field-odd"><field_name>Parameters</field_name><field_body><paragraph><strong>bytesobj</strong> : str / bytes</paragraph><block_quote><paragraph>The data to be decompressed.</paragraph></block_quote><paragraph><strong>as_bytearray</strong> : bool, optional</paragraph><block_quote><paragraph>If this flag is True then the return type will be a bytearray object instead of a bytesobject.</paragraph></block_quote></field_body></field><field classes="field-even"><field_name>Returns</field_name><field_body><paragraph><strong>out</strong> : str / bytes or bytearray</paragraph><block_quote><paragraph>The decompressed data in form of a Python str / bytes object. If as_bytearray is True then this will be a bytearray object, otherwise this will be a str/ bytes object.</paragraph></block_quote></field_body></field><field classes="field-odd"><field_name>Raises</field_name><field_body><paragraph><strong>TypeError</strong></paragraph><block_quote><paragraph>If bytesobj is not of type bytes or string.</paragraph></block_quote></field_body></field></field_list><rubric>Examples</rubric><doctest_block classes="doctest" xml:space="preserve">>>> import array >>> a = array.array('i', range(1000*1000)) >>> a_bytesobj = a.tostring() >>> c_bytesobj = blosc.compress(a_bytesobj, typesize=4) >>> a_bytesobj2 = blosc.decompress(c_bytesobj) >>> a_bytesobj == a_bytesobj2 True >>> b"" == blosc.decompress(blosc.compress(b"", 1)) True >>> b"1"*7 == blosc.decompress(blosc.compress(b"1"*7, 8)) True >>> type(blosc.decompress(blosc.compress(b"1"*7, 8), ... as_bytearray=True)) is bytearray True</doctest_block></desc_content></desc> SphinxTranslator.dispatch_visit calling visit_index for <index entries="[('single', 'decompress_ptr() (in module blosc)', 'blosc.decompress_ptr', '', None)]"/> SphinxTranslator.dispatch_visit calling visit_desc for <desc desctype="function" domain="py" noindex="False" objtype="function"><desc_signature class="" first="False" fullname="decompress_ptr" ids="blosc.decompress_ptr" module="blosc" names="blosc.decompress_ptr"><desc_addname xml:space="preserve">blosc.</desc_addname><desc_name xml:space="preserve">decompress_ptr</desc_name><desc_parameterlist xml:space="preserve"><desc_parameter xml:space="preserve">bytesobj</desc_parameter><desc_parameter xml:space="preserve">address</desc_parameter></desc_parameterlist></desc_signature><desc_content><paragraph>Decompresses a bytesobj compressed object into the memory at address.</paragraph><field_list><field><field_name>Parameters</field_name><field_body><paragraph><strong>bytesobj</strong> : str / bytes</paragraph><block_quote><paragraph>The data to be decompressed.</paragraph></block_quote><paragraph><strong>address</strong> : int or long</paragraph><block_quote><paragraph>the pointer to the data to be compressed</paragraph></block_quote></field_body></field><field><field_name>Returns</field_name><field_body><paragraph><strong>nbytes</strong> : int</paragraph><block_quote><paragraph>the number of bytes written to the buffer</paragraph></block_quote></field_body></field><field><field_name>Raises</field_name><field_body><paragraph><strong>TypeError</strong></paragraph><block_quote><paragraph>If bytesobj is not of type bytes or string. If address is not of type int or long.</paragraph></block_quote></field_body></field></field_list><rubric>Notes</rubric><paragraph>This function can be used anywhere that a memory address is available in Python. For example the Numpy “__array_interface__[‘data’][0]†construct, or when using the ctypes modules.</paragraph><paragraph>Importantly, the user is responsible for making sure that the memory address is valid and that the memory pointed to is contiguous and can be written to. Passing a non-valid address has a high likelihood of crashing the interpreter by segfault.</paragraph><rubric>Examples</rubric><doctest_block classes="doctest" xml:space="preserve">>>> import numpy >>> items = 7 >>> np_array = numpy.arange(items) >>> c = blosc.compress_ptr(np_array.__array_interface__['data'][0], items, np_array.dtype.itemsize) >>> np_ans = numpy.empty(items, dtype=np_array.dtype) >>> nbytes = blosc.decompress_ptr(c, np_ans.__array_interface__['data'][0]) >>> (np_array == np_ans).all() True >>> nbytes == items * np_array.dtype.itemsize True</doctest_block><doctest_block classes="doctest" xml:space="preserve">>>> import ctypes >>> typesize = 8 >>> data = [float(i) for i in range(items)] >>> Array = ctypes.c_double * items >>> in_array = Array(*data) >>> c = blosc.compress_ptr(ctypes.addressof(in_array), items, typesize) >>> out_array = ctypes.create_string_buffer(items*typesize) >>> nbytes = blosc.decompress_ptr(c, ctypes.addressof(out_array)) >>> import struct >>> ans = [struct.unpack('d', out_array[i:i+typesize])[0] for i in range(0, items*typesize, typesize)] >>> data == ans True >>> nbytes == items * typesize True</doctest_block></desc_content></desc> SphinxTranslator.dispatch_visit calling visit_desc_signature for <desc_signature class="" first="False" fullname="decompress_ptr" ids="blosc.decompress_ptr" module="blosc" names="blosc.decompress_ptr"><desc_addname xml:space="preserve">blosc.</desc_addname><desc_name xml:space="preserve">decompress_ptr</desc_name><desc_parameterlist xml:space="preserve"><desc_parameter xml:space="preserve">bytesobj</desc_parameter><desc_parameter xml:space="preserve">address</desc_parameter></desc_parameterlist></desc_signature> SphinxTranslator.dispatch_visit calling visit_desc_addname for <desc_addname xml:space="preserve">blosc.</desc_addname> SphinxTranslator.dispatch_visit calling visit_Text for blosc. SphinxTranslator.dispatch_departure calling depart_Text for blosc. SphinxTranslator.dispatch_departure calling depart_desc_addname for <desc_addname xml:space="preserve">blosc.</desc_addname> SphinxTranslator.dispatch_visit calling visit_desc_name for <desc_name xml:space="preserve">decompress_ptr</desc_name> SphinxTranslator.dispatch_visit calling visit_Text for decompress_ptr SphinxTranslator.dispatch_departure calling depart_Text for decompress_ptr SphinxTranslator.dispatch_departure calling depart_desc_name for <desc_name xml:space="preserve">decompress_ptr</desc_name> SphinxTranslator.dispatch_visit calling visit_desc_parameterlist for <desc_parameterlist xml:space="preserve"><desc_parameter xml:space="preserve">bytesobj</desc_parameter><desc_parameter xml:space="preserve">address</desc_parameter></desc_parameterlist> SphinxTranslator.dispatch_visit calling visit_desc_parameter for <desc_parameter xml:space="preserve">bytesobj</desc_parameter> SphinxTranslator.dispatch_visit calling visit_Text for bytesobj SphinxTranslator.dispatch_departure calling depart_Text for bytesobj SphinxTranslator.dispatch_departure calling depart_desc_parameter for <desc_parameter xml:space="preserve">bytesobj</desc_parameter> SphinxTranslator.dispatch_visit calling visit_desc_parameter for <desc_parameter xml:space="preserve">address</desc_parameter> SphinxTranslator.dispatch_visit calling visit_Text for address SphinxTranslator.dispatch_departure calling depart_Text for address SphinxTranslator.dispatch_departure calling depart_desc_parameter for <desc_parameter xml:space="preserve">address</desc_parameter> SphinxTranslator.dispatch_departure calling depart_desc_parameterlist for <desc_parameterlist xml:space="preserve"><desc_parameter xml:space="preserve">bytesobj</desc_parameter><desc_parameter xml:space="preserve">address</desc_parameter></desc_parameterlist> SphinxTranslator.dispatch_departure calling depart_desc_signature for <desc_signature class="" first="False" fullname="decompress_ptr" ids="blosc.decompress_ptr" module="blosc" names="blosc.decompress_ptr"><desc_addname xml:space="preserve">blosc.</desc_addname><desc_name xml:space="preserve">decompress_ptr</desc_name><desc_parameterlist xml:space="preserve"><desc_parameter xml:space="preserve">bytesobj</desc_parameter><desc_parameter xml:space="preserve">address</desc_parameter></desc_parameterlist></desc_signature> SphinxTranslator.dispatch_visit calling visit_desc_content for <desc_content><paragraph>Decompresses a bytesobj compressed object into the memory at address.</paragraph><field_list><field><field_name>Parameters</field_name><field_body><paragraph><strong>bytesobj</strong> : str / bytes</paragraph><block_quote><paragraph>The data to be decompressed.</paragraph></block_quote><paragraph><strong>address</strong> : int or long</paragraph><block_quote><paragraph>the pointer to the data to be compressed</paragraph></block_quote></field_body></field><field><field_name>Returns</field_name><field_body><paragraph><strong>nbytes</strong> : int</paragraph><block_quote><paragraph>the number of bytes written to the buffer</paragraph></block_quote></field_body></field><field><field_name>Raises</field_name><field_body><paragraph><strong>TypeError</strong></paragraph><block_quote><paragraph>If bytesobj is not of type bytes or string. If address is not of type int or long.</paragraph></block_quote></field_body></field></field_list><rubric>Notes</rubric><paragraph>This function can be used anywhere that a memory address is available in Python. For example the Numpy “__array_interface__[‘data’][0]†construct, or when using the ctypes modules.</paragraph><paragraph>Importantly, the user is responsible for making sure that the memory address is valid and that the memory pointed to is contiguous and can be written to. Passing a non-valid address has a high likelihood of crashing the interpreter by segfault.</paragraph><rubric>Examples</rubric><doctest_block classes="doctest" xml:space="preserve">>>> import numpy >>> items = 7 >>> np_array = numpy.arange(items) >>> c = blosc.compress_ptr(np_array.__array_interface__['data'][0], items, np_array.dtype.itemsize) >>> np_ans = numpy.empty(items, dtype=np_array.dtype) >>> nbytes = blosc.decompress_ptr(c, np_ans.__array_interface__['data'][0]) >>> (np_array == np_ans).all() True >>> nbytes == items * np_array.dtype.itemsize True</doctest_block><doctest_block classes="doctest" xml:space="preserve">>>> import ctypes >>> typesize = 8 >>> data = [float(i) for i in range(items)] >>> Array = ctypes.c_double * items >>> in_array = Array(*data) >>> c = blosc.compress_ptr(ctypes.addressof(in_array), items, typesize) >>> out_array = ctypes.create_string_buffer(items*typesize) >>> nbytes = blosc.decompress_ptr(c, ctypes.addressof(out_array)) >>> import struct >>> ans = [struct.unpack('d', out_array[i:i+typesize])[0] for i in range(0, items*typesize, typesize)] >>> data == ans True >>> nbytes == items * typesize True</doctest_block></desc_content> SphinxTranslator.dispatch_visit calling visit_paragraph for <paragraph>Decompresses a bytesobj compressed object into the memory at address.</paragraph> SphinxTranslator.dispatch_visit calling visit_Text for Decompresses a bytesobj compressed object into the memory at address. SphinxTranslator.dispatch_departure calling depart_Text for Decompresses a bytesobj compressed object into the memory at address. SphinxTranslator.dispatch_departure calling depart_paragraph for <paragraph>Decompresses a bytesobj compressed object into the memory at address.</paragraph> SphinxTranslator.dispatch_visit calling visit_field_list for <field_list><field><field_name>Parameters</field_name><field_body><paragraph><strong>bytesobj</strong> : str / bytes</paragraph><block_quote><paragraph>The data to be decompressed.</paragraph></block_quote><paragraph><strong>address</strong> : int or long</paragraph><block_quote><paragraph>the pointer to the data to be compressed</paragraph></block_quote></field_body></field><field><field_name>Returns</field_name><field_body><paragraph><strong>nbytes</strong> : int</paragraph><block_quote><paragraph>the number of bytes written to the buffer</paragraph></block_quote></field_body></field><field><field_name>Raises</field_name><field_body><paragraph><strong>TypeError</strong></paragraph><block_quote><paragraph>If bytesobj is not of type bytes or string. If address is not of type int or long.</paragraph></block_quote></field_body></field></field_list> SphinxTranslator.dispatch_visit calling visit_field for <field><field_name>Parameters</field_name><field_body><paragraph><strong>bytesobj</strong> : str / bytes</paragraph><block_quote><paragraph>The data to be decompressed.</paragraph></block_quote><paragraph><strong>address</strong> : int or long</paragraph><block_quote><paragraph>the pointer to the data to be compressed</paragraph></block_quote></field_body></field> SphinxTranslator.dispatch_visit calling visit_field_name for <field_name>Parameters</field_name> SphinxTranslator.dispatch_visit calling visit_Text for Parameters SphinxTranslator.dispatch_departure calling depart_Text for Parameters SphinxTranslator.dispatch_departure calling depart_field_name for <field_name>Parameters</field_name> SphinxTranslator.dispatch_visit calling visit_field_body for <field_body><paragraph><strong>bytesobj</strong> : str / bytes</paragraph><block_quote><paragraph>The data to be decompressed.</paragraph></block_quote><paragraph><strong>address</strong> : int or long</paragraph><block_quote><paragraph>the pointer to the data to be compressed</paragraph></block_quote></field_body> SphinxTranslator.dispatch_visit calling visit_paragraph for <paragraph><strong>bytesobj</strong> : str / bytes</paragraph> SphinxTranslator.dispatch_visit calling visit_strong for <strong>bytesobj</strong> SphinxTranslator.dispatch_visit calling visit_Text for bytesobj SphinxTranslator.dispatch_departure calling depart_Text for bytesobj SphinxTranslator.dispatch_departure calling depart_strong for <strong>bytesobj</strong> SphinxTranslator.dispatch_visit calling visit_Text for : str / bytes SphinxTranslator.dispatch_departure calling depart_Text for : str / bytes SphinxTranslator.dispatch_departure calling depart_paragraph for <paragraph><strong>bytesobj</strong> : str / bytes</paragraph> SphinxTranslator.dispatch_visit calling visit_block_quote for <block_quote><paragraph>The data to be decompressed.</paragraph></block_quote> SphinxTranslator.dispatch_visit calling visit_paragraph for <paragraph>The data to be decompressed.</paragraph> SphinxTranslator.dispatch_visit calling visit_Text for The data to be decompressed. SphinxTranslator.dispatch_departure calling depart_Text for The data to be decompressed. SphinxTranslator.dispatch_departure calling depart_paragraph for <paragraph>The data to be decompressed.</paragraph> SphinxTranslator.dispatch_departure calling depart_block_quote for <block_quote><paragraph>The data to be decompressed.</paragraph></block_quote> SphinxTranslator.dispatch_visit calling visit_paragraph for <paragraph><strong>address</strong> : int or long</paragraph> SphinxTranslator.dispatch_visit calling visit_strong for <strong>address</strong> SphinxTranslator.dispatch_visit calling visit_Text for address SphinxTranslator.dispatch_departure calling depart_Text for address SphinxTranslator.dispatch_departure calling depart_strong for <strong>address</strong> SphinxTranslator.dispatch_visit calling visit_Text for : int or long SphinxTranslator.dispatch_departure calling depart_Text for : int or long SphinxTranslator.dispatch_departure calling depart_paragraph for <paragraph><strong>address</strong> : int or long</paragraph> SphinxTranslator.dispatch_visit calling visit_block_quote for <block_quote><paragraph>the pointer to the data to be compressed</paragraph></block_quote> SphinxTranslator.dispatch_visit calling visit_paragraph for <paragraph>the pointer to the data to be compressed</paragraph> SphinxTranslator.dispatch_visit calling visit_Text for the pointer to the data to be compressed SphinxTranslator.dispatch_departure calling depart_Text for the pointer to the data to be compressed SphinxTranslator.dispatch_departure calling depart_paragraph for <paragraph>the pointer to the data to be compressed</paragraph> SphinxTranslator.dispatch_departure calling depart_block_quote for <block_quote><paragraph>the pointer to the data to be compressed</paragraph></block_quote> SphinxTranslator.dispatch_departure calling depart_field_body for <field_body><paragraph><strong>bytesobj</strong> : str / bytes</paragraph><block_quote><paragraph>The data to be decompressed.</paragraph></block_quote><paragraph><strong>address</strong> : int or long</paragraph><block_quote><paragraph>the pointer to the data to be compressed</paragraph></block_quote></field_body> SphinxTranslator.dispatch_departure calling depart_field for <field classes="field-odd"><field_name>Parameters</field_name><field_body><paragraph><strong>bytesobj</strong> : str / bytes</paragraph><block_quote><paragraph>The data to be decompressed.</paragraph></block_quote><paragraph><strong>address</strong> : int or long</paragraph><block_quote><paragraph>the pointer to the data to be compressed</paragraph></block_quote></field_body></field> SphinxTranslator.dispatch_visit calling visit_field for <field><field_name>Returns</field_name><field_body><paragraph><strong>nbytes</strong> : int</paragraph><block_quote><paragraph>the number of bytes written to the buffer</paragraph></block_quote></field_body></field> SphinxTranslator.dispatch_visit calling visit_field_name for <field_name>Returns</field_name> SphinxTranslator.dispatch_visit calling visit_Text for Returns SphinxTranslator.dispatch_departure calling depart_Text for Returns SphinxTranslator.dispatch_departure calling depart_field_name for <field_name>Returns</field_name> SphinxTranslator.dispatch_visit calling visit_field_body for <field_body><paragraph><strong>nbytes</strong> : int</paragraph><block_quote><paragraph>the number of bytes written to the buffer</paragraph></block_quote></field_body> SphinxTranslator.dispatch_visit calling visit_paragraph for <paragraph><strong>nbytes</strong> : int</paragraph> SphinxTranslator.dispatch_visit calling visit_strong for <strong>nbytes</strong> SphinxTranslator.dispatch_visit calling visit_Text for nbytes SphinxTranslator.dispatch_departure calling depart_Text for nbytes SphinxTranslator.dispatch_departure calling depart_strong for <strong>nbytes</strong> SphinxTranslator.dispatch_visit calling visit_Text for : int SphinxTranslator.dispatch_departure calling depart_Text for : int SphinxTranslator.dispatch_departure calling depart_paragraph for <paragraph><strong>nbytes</strong> : int</paragraph> SphinxTranslator.dispatch_visit calling visit_block_quote for <block_quote><paragraph>the number of bytes written to the buffer</paragraph></block_quote> SphinxTranslator.dispatch_visit calling visit_paragraph for <paragraph>the number of bytes written to the buffer</paragraph> SphinxTranslator.dispatch_visit calling visit_Text for the number of bytes written to the buffer SphinxTranslator.dispatch_departure calling depart_Text for the number of bytes written to the buffer SphinxTranslator.dispatch_departure calling depart_paragraph for <paragraph>the number of bytes written to the buffer</paragraph> SphinxTranslator.dispatch_departure calling depart_block_quote for <block_quote><paragraph>the number of bytes written to the buffer</paragraph></block_quote> SphinxTranslator.dispatch_departure calling depart_field_body for <field_body><paragraph><strong>nbytes</strong> : int</paragraph><block_quote><paragraph>the number of bytes written to the buffer</paragraph></block_quote></field_body> SphinxTranslator.dispatch_departure calling depart_field for <field classes="field-even"><field_name>Returns</field_name><field_body><paragraph><strong>nbytes</strong> : int</paragraph><block_quote><paragraph>the number of bytes written to the buffer</paragraph></block_quote></field_body></field> SphinxTranslator.dispatch_visit calling visit_field for <field><field_name>Raises</field_name><field_body><paragraph><strong>TypeError</strong></paragraph><block_quote><paragraph>If bytesobj is not of type bytes or string. If address is not of type int or long.</paragraph></block_quote></field_body></field> SphinxTranslator.dispatch_visit calling visit_field_name for <field_name>Raises</field_name> SphinxTranslator.dispatch_visit calling visit_Text for Raises SphinxTranslator.dispatch_departure calling depart_Text for Raises SphinxTranslator.dispatch_departure calling depart_field_name for <field_name>Raises</field_name> SphinxTranslator.dispatch_visit calling visit_field_body for <field_body><paragraph><strong>TypeError</strong></paragraph><block_quote><paragraph>If bytesobj is not of type bytes or string. If address is not of type int or long.</paragraph></block_quote></field_body> SphinxTranslator.dispatch_visit calling visit_paragraph for <paragraph><strong>TypeError</strong></paragraph> SphinxTranslator.dispatch_visit calling visit_strong for <strong>TypeError</strong> SphinxTranslator.dispatch_visit calling visit_Text for TypeError SphinxTranslator.dispatch_departure calling depart_Text for TypeError SphinxTranslator.dispatch_departure calling depart_strong for <strong>TypeError</strong> SphinxTranslator.dispatch_departure calling depart_paragraph for <paragraph><strong>TypeError</strong></paragraph> SphinxTranslator.dispatch_visit calling visit_block_quote for <block_quote><paragraph>If bytesobj is not of type bytes or string. If address is not of type int or long.</paragraph></block_quote> SphinxTranslator.dispatch_visit calling visit_paragraph for <paragraph>If bytesobj is not of type bytes or string. If address is not of type int or long.</paragraph> SphinxTranslator.dispatch_visit calling visit_Text for If bytesobj is not of type bytes or string. If address is not of type int or long. SphinxTranslator.dispatch_departure calling depart_Text for If bytesobj is not of type bytes or string. If address is not of type int or long. SphinxTranslator.dispatch_departure calling depart_paragraph for <paragraph>If bytesobj is not of type bytes or string. If address is not of type int or long.</paragraph> SphinxTranslator.dispatch_departure calling depart_block_quote for <block_quote><paragraph>If bytesobj is not of type bytes or string. If address is not of type int or long.</paragraph></block_quote> SphinxTranslator.dispatch_departure calling depart_field_body for <field_body><paragraph><strong>TypeError</strong></paragraph><block_quote><paragraph>If bytesobj is not of type bytes or string. If address is not of type int or long.</paragraph></block_quote></field_body> SphinxTranslator.dispatch_departure calling depart_field for <field classes="field-odd"><field_name>Raises</field_name><field_body><paragraph><strong>TypeError</strong></paragraph><block_quote><paragraph>If bytesobj is not of type bytes or string. If address is not of type int or long.</paragraph></block_quote></field_body></field> SphinxTranslator.dispatch_departure calling depart_field_list for <field_list><field classes="field-odd"><field_name>Parameters</field_name><field_body><paragraph><strong>bytesobj</strong> : str / bytes</paragraph><block_quote><paragraph>The data to be decompressed.</paragraph></block_quote><paragraph><strong>address</strong> : int or long</paragraph><block_quote><paragraph>the pointer to the data to be compressed</paragraph></block_quote></field_body></field><field classes="field-even"><field_name>Returns</field_name><field_body><paragraph><strong>nbytes</strong> : int</paragraph><block_quote><paragraph>the number of bytes written to the buffer</paragraph></block_quote></field_body></field><field classes="field-odd"><field_name>Raises</field_name><field_body><paragraph><strong>TypeError</strong></paragraph><block_quote><paragraph>If bytesobj is not of type bytes or string. If address is not of type int or long.</paragraph></block_quote></field_body></field></field_list> SphinxTranslator.dispatch_visit calling visit_rubric for <rubric>Notes</rubric> SphinxTranslator.dispatch_visit calling visit_Text for Notes SphinxTranslator.dispatch_departure calling depart_Text for Notes SphinxTranslator.dispatch_departure calling depart_rubric for <rubric>Notes</rubric> SphinxTranslator.dispatch_visit calling visit_paragraph for <paragraph>This function can be used anywhere that a memory address is available in Python. For example the Numpy “__array_interface__[‘data’][0]†construct, or when using the ctypes modules.</paragraph> SphinxTranslator.dispatch_visit calling visit_Text for This function can be used anywhere that a memory address is available in Python. For example the Numpy “__array_interface__[‘data’][0]†construct, or when using the ctypes modules. SphinxTranslator.dispatch_departure calling depart_Text for This function can be used anywhere that a memory address is available in Python. For example the Numpy “__array_interface__[‘data’][0]†construct, or when using the ctypes modules. SphinxTranslator.dispatch_departure calling depart_paragraph for <paragraph>This function can be used anywhere that a memory address is available in Python. For example the Numpy “__array_interface__[‘data’][0]†construct, or when using the ctypes modules.</paragraph> SphinxTranslator.dispatch_visit calling visit_paragraph for <paragraph>Importantly, the user is responsible for making sure that the memory address is valid and that the memory pointed to is contiguous and can be written to. Passing a non-valid address has a high likelihood of crashing the interpreter by segfault.</paragraph> SphinxTranslator.dispatch_visit calling visit_Text for Importantly, the user is responsible for making sure that the memory address is valid and that the memory pointed to is contiguous and can be written to. Passing a non-valid address has a high likelihood of crashing the interpreter by segfault. SphinxTranslator.dispatch_departure calling depart_Text for Importantly, the user is responsible for making sure that the memory address is valid and that the memory pointed to is contiguous and can be written to. Passing a non-valid address has a high likelihood of crashing the interpreter by segfault. SphinxTranslator.dispatch_departure calling depart_paragraph for <paragraph>Importantly, the user is responsible for making sure that the memory address is valid and that the memory pointed to is contiguous and can be written to. Passing a non-valid address has a high likelihood of crashing the interpreter by segfault.</paragraph> SphinxTranslator.dispatch_visit calling visit_rubric for <rubric>Examples</rubric> SphinxTranslator.dispatch_visit calling visit_Text for Examples SphinxTranslator.dispatch_departure calling depart_Text for Examples SphinxTranslator.dispatch_departure calling depart_rubric for <rubric>Examples</rubric> SphinxTranslator.dispatch_visit calling visit_doctest_block for <doctest_block classes="doctest" xml:space="preserve">>>> import numpy >>> items = 7 >>> np_array = numpy.arange(items) >>> c = blosc.compress_ptr(np_array.__array_interface__['data'][0], items, np_array.dtype.itemsize) >>> np_ans = numpy.empty(items, dtype=np_array.dtype) >>> nbytes = blosc.decompress_ptr(c, np_ans.__array_interface__['data'][0]) >>> (np_array == np_ans).all() True >>> nbytes == items * np_array.dtype.itemsize True</doctest_block> SphinxTranslator.dispatch_visit calling visit_doctest_block for <doctest_block classes="doctest" xml:space="preserve">>>> import ctypes >>> typesize = 8 >>> data = [float(i) for i in range(items)] >>> Array = ctypes.c_double * items >>> in_array = Array(*data) >>> c = blosc.compress_ptr(ctypes.addressof(in_array), items, typesize) >>> out_array = ctypes.create_string_buffer(items*typesize) >>> nbytes = blosc.decompress_ptr(c, ctypes.addressof(out_array)) >>> import struct >>> ans = [struct.unpack('d', out_array[i:i+typesize])[0] for i in range(0, items*typesize, typesize)] >>> data == ans True >>> nbytes == items * typesize True</doctest_block> SphinxTranslator.dispatch_departure calling depart_desc_content for <desc_content><paragraph>Decompresses a bytesobj compressed object into the memory at address.</paragraph><field_list><field classes="field-odd"><field_name>Parameters</field_name><field_body><paragraph><strong>bytesobj</strong> : str / bytes</paragraph><block_quote><paragraph>The data to be decompressed.</paragraph></block_quote><paragraph><strong>address</strong> : int or long</paragraph><block_quote><paragraph>the pointer to the data to be compressed</paragraph></block_quote></field_body></field><field classes="field-even"><field_name>Returns</field_name><field_body><paragraph><strong>nbytes</strong> : int</paragraph><block_quote><paragraph>the number of bytes written to the buffer</paragraph></block_quote></field_body></field><field classes="field-odd"><field_name>Raises</field_name><field_body><paragraph><strong>TypeError</strong></paragraph><block_quote><paragraph>If bytesobj is not of type bytes or string. If address is not of type int or long.</paragraph></block_quote></field_body></field></field_list><rubric>Notes</rubric><paragraph>This function can be used anywhere that a memory address is available in Python. For example the Numpy “__array_interface__[‘data’][0]†construct, or when using the ctypes modules.</paragraph><paragraph>Importantly, the user is responsible for making sure that the memory address is valid and that the memory pointed to is contiguous and can be written to. Passing a non-valid address has a high likelihood of crashing the interpreter by segfault.</paragraph><rubric>Examples</rubric><doctest_block classes="doctest" xml:space="preserve">>>> import numpy >>> items = 7 >>> np_array = numpy.arange(items) >>> c = blosc.compress_ptr(np_array.__array_interface__['data'][0], items, np_array.dtype.itemsize) >>> np_ans = numpy.empty(items, dtype=np_array.dtype) >>> nbytes = blosc.decompress_ptr(c, np_ans.__array_interface__['data'][0]) >>> (np_array == np_ans).all() True >>> nbytes == items * np_array.dtype.itemsize True</doctest_block><doctest_block classes="doctest" xml:space="preserve">>>> import ctypes >>> typesize = 8 >>> data = [float(i) for i in range(items)] >>> Array = ctypes.c_double * items >>> in_array = Array(*data) >>> c = blosc.compress_ptr(ctypes.addressof(in_array), items, typesize) >>> out_array = ctypes.create_string_buffer(items*typesize) >>> nbytes = blosc.decompress_ptr(c, ctypes.addressof(out_array)) >>> import struct >>> ans = [struct.unpack('d', out_array[i:i+typesize])[0] for i in range(0, items*typesize, typesize)] >>> data == ans True >>> nbytes == items * typesize True</doctest_block></desc_content> SphinxTranslator.dispatch_departure calling depart_desc for <desc desctype="function" domain="py" noindex="False" objtype="function"><desc_signature class="" first="False" fullname="decompress_ptr" ids="blosc.decompress_ptr" module="blosc" names="blosc.decompress_ptr"><desc_addname xml:space="preserve">blosc.</desc_addname><desc_name xml:space="preserve">decompress_ptr</desc_name><desc_parameterlist xml:space="preserve"><desc_parameter xml:space="preserve">bytesobj</desc_parameter><desc_parameter xml:space="preserve">address</desc_parameter></desc_parameterlist></desc_signature><desc_content><paragraph>Decompresses a bytesobj compressed object into the memory at address.</paragraph><field_list><field classes="field-odd"><field_name>Parameters</field_name><field_body><paragraph><strong>bytesobj</strong> : str / bytes</paragraph><block_quote><paragraph>The data to be decompressed.</paragraph></block_quote><paragraph><strong>address</strong> : int or long</paragraph><block_quote><paragraph>the pointer to the data to be compressed</paragraph></block_quote></field_body></field><field classes="field-even"><field_name>Returns</field_name><field_body><paragraph><strong>nbytes</strong> : int</paragraph><block_quote><paragraph>the number of bytes written to the buffer</paragraph></block_quote></field_body></field><field classes="field-odd"><field_name>Raises</field_name><field_body><paragraph><strong>TypeError</strong></paragraph><block_quote><paragraph>If bytesobj is not of type bytes or string. If address is not of type int or long.</paragraph></block_quote></field_body></field></field_list><rubric>Notes</rubric><paragraph>This function can be used anywhere that a memory address is available in Python. For example the Numpy “__array_interface__[‘data’][0]†construct, or when using the ctypes modules.</paragraph><paragraph>Importantly, the user is responsible for making sure that the memory address is valid and that the memory pointed to is contiguous and can be written to. Passing a non-valid address has a high likelihood of crashing the interpreter by segfault.</paragraph><rubric>Examples</rubric><doctest_block classes="doctest" xml:space="preserve">>>> import numpy >>> items = 7 >>> np_array = numpy.arange(items) >>> c = blosc.compress_ptr(np_array.__array_interface__['data'][0], items, np_array.dtype.itemsize) >>> np_ans = numpy.empty(items, dtype=np_array.dtype) >>> nbytes = blosc.decompress_ptr(c, np_ans.__array_interface__['data'][0]) >>> (np_array == np_ans).all() True >>> nbytes == items * np_array.dtype.itemsize True</doctest_block><doctest_block classes="doctest" xml:space="preserve">>>> import ctypes >>> typesize = 8 >>> data = [float(i) for i in range(items)] >>> Array = ctypes.c_double * items >>> in_array = Array(*data) >>> c = blosc.compress_ptr(ctypes.addressof(in_array), items, typesize) >>> out_array = ctypes.create_string_buffer(items*typesize) >>> nbytes = blosc.decompress_ptr(c, ctypes.addressof(out_array)) >>> import struct >>> ans = [struct.unpack('d', out_array[i:i+typesize])[0] for i in range(0, items*typesize, typesize)] >>> data == ans True >>> nbytes == items * typesize True</doctest_block></desc_content></desc> SphinxTranslator.dispatch_visit calling visit_index for <index entries="[('single', 'pack_array() (in module blosc)', 'blosc.pack_array', '', None)]"/> SphinxTranslator.dispatch_visit calling visit_desc for <desc desctype="function" domain="py" noindex="False" objtype="function"><desc_signature class="" first="False" fullname="pack_array" ids="blosc.pack_array" module="blosc" names="blosc.pack_array"><desc_addname xml:space="preserve">blosc.</desc_addname><desc_name xml:space="preserve">pack_array</desc_name><desc_parameterlist xml:space="preserve"><desc_parameter xml:space="preserve">array[, clevel=9, shuffle=blosc.SHUFFLE, cname='blosclz']]</desc_parameter></desc_parameterlist></desc_signature><desc_content><paragraph>Pack (compress) a NumPy array.</paragraph><field_list><field><field_name>Parameters</field_name><field_body><paragraph><strong>array</strong> : ndarray</paragraph><block_quote><paragraph>The NumPy array to be packed.</paragraph></block_quote><paragraph><strong>clevel</strong> : int (optional)</paragraph><block_quote><paragraph>The compression level from 0 (no compression) to 9 (maximum compression). The default is 9.</paragraph></block_quote><paragraph><strong>shuffle</strong> : int (optional)</paragraph><block_quote><paragraph>The shuffle filter to be activated. Allowed values are blosc.NOSHUFFLE, blosc.SHUFFLE and blosc.BITSHUFFLE. The default is blosc.SHUFFLE.</paragraph></block_quote><paragraph><strong>cname</strong> : string (optional)</paragraph><block_quote><paragraph>The name of the compressor used internally in Blosc. It can be any of the supported by Blosc (‘blosclz’, ‘lz4’, ‘lz4hc’, ‘snappy’, ‘zlib’, ‘zstd’ and maybe others too). The default is ‘blosclz’.</paragraph></block_quote></field_body></field><field><field_name>Returns</field_name><field_body><paragraph><strong>out</strong> : str / bytes</paragraph><block_quote><paragraph>The packed array in form of a Python str / bytes object.</paragraph></block_quote></field_body></field><field><field_name>Raises</field_name><field_body><paragraph><strong>TypeError</strong></paragraph><block_quote><paragraph>If array does not quack like a numpy ndarray.</paragraph></block_quote><paragraph><strong>ValueError</strong></paragraph><block_quote><definition_list><definition_list_item><term>If array.itemsize * array.size is larger than the maximum allowed</term><definition><paragraph>buffer size.</paragraph></definition></definition_list_item></definition_list><paragraph>If typesize is not within the allowed range. If clevel is not within the allowed range. If cname is not within the supported compressors.</paragraph></block_quote></field_body></field></field_list><rubric>Examples</rubric><doctest_block classes="doctest" xml:space="preserve">>>> import numpy >>> a = numpy.arange(1e6) >>> parray = blosc.pack_array(a) >>> len(parray) < a.size*a.itemsize True</doctest_block></desc_content></desc> SphinxTranslator.dispatch_visit calling visit_desc_signature for <desc_signature class="" first="False" fullname="pack_array" ids="blosc.pack_array" module="blosc" names="blosc.pack_array"><desc_addname xml:space="preserve">blosc.</desc_addname><desc_name xml:space="preserve">pack_array</desc_name><desc_parameterlist xml:space="preserve"><desc_parameter xml:space="preserve">array[, clevel=9, shuffle=blosc.SHUFFLE, cname='blosclz']]</desc_parameter></desc_parameterlist></desc_signature> SphinxTranslator.dispatch_visit calling visit_desc_addname for <desc_addname xml:space="preserve">blosc.</desc_addname> SphinxTranslator.dispatch_visit calling visit_Text for blosc. SphinxTranslator.dispatch_departure calling depart_Text for blosc. SphinxTranslator.dispatch_departure calling depart_desc_addname for <desc_addname xml:space="preserve">blosc.</desc_addname> SphinxTranslator.dispatch_visit calling visit_desc_name for <desc_name xml:space="preserve">pack_array</desc_name> SphinxTranslator.dispatch_visit calling visit_Text for pack_array SphinxTranslator.dispatch_departure calling depart_Text for pack_array SphinxTranslator.dispatch_departure calling depart_desc_name for <desc_name xml:space="preserve">pack_array</desc_name> SphinxTranslator.dispatch_visit calling visit_desc_parameterlist for <desc_parameterlist xml:space="preserve"><desc_parameter xml:space="preserve">array[, clevel=9, shuffle=blosc.SHUFFLE, cname='blosclz']]</desc_parameter></desc_parameterlist> SphinxTranslator.dispatch_visit calling visit_desc_parameter for <desc_parameter xml:space="preserve">array[, clevel=9, shuffle=blosc.SHUFFLE, cname='blosclz']]</desc_parameter> SphinxTranslator.dispatch_visit calling visit_Text for array[, clevel=9, shuffle=blosc.SHUFFLE, cname='blosclz']] SphinxTranslator.dispatch_departure calling depart_Text for array[, clevel=9, shuffle=blosc.SHUFFLE, cname='blosclz']] SphinxTranslator.dispatch_departure calling depart_desc_parameter for <desc_parameter xml:space="preserve">array[, clevel=9, shuffle=blosc.SHUFFLE, cname='blosclz']]</desc_parameter> SphinxTranslator.dispatch_departure calling depart_desc_parameterlist for <desc_parameterlist xml:space="preserve"><desc_parameter xml:space="preserve">array[, clevel=9, shuffle=blosc.SHUFFLE, cname='blosclz']]</desc_parameter></desc_parameterlist> SphinxTranslator.dispatch_departure calling depart_desc_signature for <desc_signature class="" first="False" fullname="pack_array" ids="blosc.pack_array" module="blosc" names="blosc.pack_array"><desc_addname xml:space="preserve">blosc.</desc_addname><desc_name xml:space="preserve">pack_array</desc_name><desc_parameterlist xml:space="preserve"><desc_parameter xml:space="preserve">array[, clevel=9, shuffle=blosc.SHUFFLE, cname='blosclz']]</desc_parameter></desc_parameterlist></desc_signature> SphinxTranslator.dispatch_visit calling visit_desc_content for <desc_content><paragraph>Pack (compress) a NumPy array.</paragraph><field_list><field><field_name>Parameters</field_name><field_body><paragraph><strong>array</strong> : ndarray</paragraph><block_quote><paragraph>The NumPy array to be packed.</paragraph></block_quote><paragraph><strong>clevel</strong> : int (optional)</paragraph><block_quote><paragraph>The compression level from 0 (no compression) to 9 (maximum compression). The default is 9.</paragraph></block_quote><paragraph><strong>shuffle</strong> : int (optional)</paragraph><block_quote><paragraph>The shuffle filter to be activated. Allowed values are blosc.NOSHUFFLE, blosc.SHUFFLE and blosc.BITSHUFFLE. The default is blosc.SHUFFLE.</paragraph></block_quote><paragraph><strong>cname</strong> : string (optional)</paragraph><block_quote><paragraph>The name of the compressor used internally in Blosc. It can be any of the supported by Blosc (‘blosclz’, ‘lz4’, ‘lz4hc’, ‘snappy’, ‘zlib’, ‘zstd’ and maybe others too). The default is ‘blosclz’.</paragraph></block_quote></field_body></field><field><field_name>Returns</field_name><field_body><paragraph><strong>out</strong> : str / bytes</paragraph><block_quote><paragraph>The packed array in form of a Python str / bytes object.</paragraph></block_quote></field_body></field><field><field_name>Raises</field_name><field_body><paragraph><strong>TypeError</strong></paragraph><block_quote><paragraph>If array does not quack like a numpy ndarray.</paragraph></block_quote><paragraph><strong>ValueError</strong></paragraph><block_quote><definition_list><definition_list_item><term>If array.itemsize * array.size is larger than the maximum allowed</term><definition><paragraph>buffer size.</paragraph></definition></definition_list_item></definition_list><paragraph>If typesize is not within the allowed range. If clevel is not within the allowed range. If cname is not within the supported compressors.</paragraph></block_quote></field_body></field></field_list><rubric>Examples</rubric><doctest_block classes="doctest" xml:space="preserve">>>> import numpy >>> a = numpy.arange(1e6) >>> parray = blosc.pack_array(a) >>> len(parray) < a.size*a.itemsize True</doctest_block></desc_content> SphinxTranslator.dispatch_visit calling visit_paragraph for <paragraph>Pack (compress) a NumPy array.</paragraph> SphinxTranslator.dispatch_visit calling visit_Text for Pack (compress) a NumPy array. SphinxTranslator.dispatch_departure calling depart_Text for Pack (compress) a NumPy array. SphinxTranslator.dispatch_departure calling depart_paragraph for <paragraph>Pack (compress) a NumPy array.</paragraph> SphinxTranslator.dispatch_visit calling visit_field_list for <field_list><field><field_name>Parameters</field_name><field_body><paragraph><strong>array</strong> : ndarray</paragraph><block_quote><paragraph>The NumPy array to be packed.</paragraph></block_quote><paragraph><strong>clevel</strong> : int (optional)</paragraph><block_quote><paragraph>The compression level from 0 (no compression) to 9 (maximum compression). The default is 9.</paragraph></block_quote><paragraph><strong>shuffle</strong> : int (optional)</paragraph><block_quote><paragraph>The shuffle filter to be activated. Allowed values are blosc.NOSHUFFLE, blosc.SHUFFLE and blosc.BITSHUFFLE. The default is blosc.SHUFFLE.</paragraph></block_quote><paragraph><strong>cname</strong> : string (optional)</paragraph><block_quote><paragraph>The name of the compressor used internally in Blosc. It can be any of the supported by Blosc (‘blosclz’, ‘lz4’, ‘lz4hc’, ‘snappy’, ‘zlib’, ‘zstd’ and maybe others too). The default is ‘blosclz’.</paragraph></block_quote></field_body></field><field><field_name>Returns</field_name><field_body><paragraph><strong>out</strong> : str / bytes</paragraph><block_quote><paragraph>The packed array in form of a Python str / bytes object.</paragraph></block_quote></field_body></field><field><field_name>Raises</field_name><field_body><paragraph><strong>TypeError</strong></paragraph><block_quote><paragraph>If array does not quack like a numpy ndarray.</paragraph></block_quote><paragraph><strong>ValueError</strong></paragraph><block_quote><definition_list><definition_list_item><term>If array.itemsize * array.size is larger than the maximum allowed</term><definition><paragraph>buffer size.</paragraph></definition></definition_list_item></definition_list><paragraph>If typesize is not within the allowed range. If clevel is not within the allowed range. If cname is not within the supported compressors.</paragraph></block_quote></field_body></field></field_list> SphinxTranslator.dispatch_visit calling visit_field for <field><field_name>Parameters</field_name><field_body><paragraph><strong>array</strong> : ndarray</paragraph><block_quote><paragraph>The NumPy array to be packed.</paragraph></block_quote><paragraph><strong>clevel</strong> : int (optional)</paragraph><block_quote><paragraph>The compression level from 0 (no compression) to 9 (maximum compression). The default is 9.</paragraph></block_quote><paragraph><strong>shuffle</strong> : int (optional)</paragraph><block_quote><paragraph>The shuffle filter to be activated. Allowed values are blosc.NOSHUFFLE, blosc.SHUFFLE and blosc.BITSHUFFLE. The default is blosc.SHUFFLE.</paragraph></block_quote><paragraph><strong>cname</strong> : string (optional)</paragraph><block_quote><paragraph>The name of the compressor used internally in Blosc. It can be any of the supported by Blosc (‘blosclz’, ‘lz4’, ‘lz4hc’, ‘snappy’, ‘zlib’, ‘zstd’ and maybe others too). The default is ‘blosclz’.</paragraph></block_quote></field_body></field> SphinxTranslator.dispatch_visit calling visit_field_name for <field_name>Parameters</field_name> SphinxTranslator.dispatch_visit calling visit_Text for Parameters SphinxTranslator.dispatch_departure calling depart_Text for Parameters SphinxTranslator.dispatch_departure calling depart_field_name for <field_name>Parameters</field_name> SphinxTranslator.dispatch_visit calling visit_field_body for <field_body><paragraph><strong>array</strong> : ndarray</paragraph><block_quote><paragraph>The NumPy array to be packed.</paragraph></block_quote><paragraph><strong>clevel</strong> : int (optional)</paragraph><block_quote><paragraph>The compression level from 0 (no compression) to 9 (maximum compression). The default is 9.</paragraph></block_quote><paragraph><strong>shuffle</strong> : int (optional)</paragraph><block_quote><paragraph>The shuffle filter to be activated. Allowed values are blosc.NOSHUFFLE, blosc.SHUFFLE and blosc.BITSHUFFLE. The default is blosc.SHUFFLE.</paragraph></block_quote><paragraph><strong>cname</strong> : string (optional)</paragraph><block_quote><paragraph>The name of the compressor used internally in Blosc. It can be any of the supported by Blosc (‘blosclz’, ‘lz4’, ‘lz4hc’, ‘snappy’, ‘zlib’, ‘zstd’ and maybe others too). The default is ‘blosclz’.</paragraph></block_quote></field_body> SphinxTranslator.dispatch_visit calling visit_paragraph for <paragraph><strong>array</strong> : ndarray</paragraph> SphinxTranslator.dispatch_visit calling visit_strong for <strong>array</strong> SphinxTranslator.dispatch_visit calling visit_Text for array SphinxTranslator.dispatch_departure calling depart_Text for array SphinxTranslator.dispatch_departure calling depart_strong for <strong>array</strong> SphinxTranslator.dispatch_visit calling visit_Text for : ndarray SphinxTranslator.dispatch_departure calling depart_Text for : ndarray SphinxTranslator.dispatch_departure calling depart_paragraph for <paragraph><strong>array</strong> : ndarray</paragraph> SphinxTranslator.dispatch_visit calling visit_block_quote for <block_quote><paragraph>The NumPy array to be packed.</paragraph></block_quote> SphinxTranslator.dispatch_visit calling visit_paragraph for <paragraph>The NumPy array to be packed.</paragraph> SphinxTranslator.dispatch_visit calling visit_Text for The NumPy array to be packed. SphinxTranslator.dispatch_departure calling depart_Text for The NumPy array to be packed. SphinxTranslator.dispatch_departure calling depart_paragraph for <paragraph>The NumPy array to be packed.</paragraph> SphinxTranslator.dispatch_departure calling depart_block_quote for <block_quote><paragraph>The NumPy array to be packed.</paragraph></block_quote> SphinxTranslator.dispatch_visit calling visit_paragraph for <paragraph><strong>clevel</strong> : int (optional)</paragraph> SphinxTranslator.dispatch_visit calling visit_strong for <strong>clevel</strong> SphinxTranslator.dispatch_visit calling visit_Text for clevel SphinxTranslator.dispatch_departure calling depart_Text for clevel SphinxTranslator.dispatch_departure calling depart_strong for <strong>clevel</strong> SphinxTranslator.dispatch_visit calling visit_Text for : int (optional) SphinxTranslator.dispatch_departure calling depart_Text for : int (optional) SphinxTranslator.dispatch_departure calling depart_paragraph for <paragraph><strong>clevel</strong> : int (optional)</paragraph> SphinxTranslator.dispatch_visit calling visit_block_quote for <block_quote><paragraph>The compression level from 0 (no compression) to 9 (maximum compression). The default is 9.</paragraph></block_quote> SphinxTranslator.dispatch_visit calling visit_paragraph for <paragraph>The compression level from 0 (no compression) to 9 (maximum compression). The default is 9.</paragraph> SphinxTranslator.dispatch_visit calling visit_Text for The compression level from 0 (no compression) to 9 (maximum compression). The default is 9. SphinxTranslator.dispatch_departure calling depart_Text for The compression level from 0 (no compression) to 9 (maximum compression). The default is 9. SphinxTranslator.dispatch_departure calling depart_paragraph for <paragraph>The compression level from 0 (no compression) to 9 (maximum compression). The default is 9.</paragraph> SphinxTranslator.dispatch_departure calling depart_block_quote for <block_quote><paragraph>The compression level from 0 (no compression) to 9 (maximum compression). The default is 9.</paragraph></block_quote> SphinxTranslator.dispatch_visit calling visit_paragraph for <paragraph><strong>shuffle</strong> : int (optional)</paragraph> SphinxTranslator.dispatch_visit calling visit_strong for <strong>shuffle</strong> SphinxTranslator.dispatch_visit calling visit_Text for shuffle SphinxTranslator.dispatch_departure calling depart_Text for shuffle SphinxTranslator.dispatch_departure calling depart_strong for <strong>shuffle</strong> SphinxTranslator.dispatch_visit calling visit_Text for : int (optional) SphinxTranslator.dispatch_departure calling depart_Text for : int (optional) SphinxTranslator.dispatch_departure calling depart_paragraph for <paragraph><strong>shuffle</strong> : int (optional)</paragraph> SphinxTranslator.dispatch_visit calling visit_block_quote for <block_quote><paragraph>The shuffle filter to be activated. Allowed values are blosc.NOSHUFFLE, blosc.SHUFFLE and blosc.BITSHUFFLE. The default is blosc.SHUFFLE.</paragraph></block_quote> SphinxTranslator.dispatch_visit calling visit_paragraph for <paragraph>The shuffle filter to be activated. Allowed values are blosc.NOSHUFFLE, blosc.SHUFFLE and blosc.BITSHUFFLE. The default is blosc.SHUFFLE.</paragraph> SphinxTranslator.dispatch_visit calling visit_Text for The shuffle filter to be activated. Allowed values are blosc.NOSHUFFLE, blosc.SHUFFLE and blosc.BITSHUFFLE. The default is blosc.SHUFFLE. SphinxTranslator.dispatch_departure calling depart_Text for The shuffle filter to be activated. Allowed values are blosc.NOSHUFFLE, blosc.SHUFFLE and blosc.BITSHUFFLE. The default is blosc.SHUFFLE. SphinxTranslator.dispatch_departure calling depart_paragraph for <paragraph>The shuffle filter to be activated. Allowed values are blosc.NOSHUFFLE, blosc.SHUFFLE and blosc.BITSHUFFLE. The default is blosc.SHUFFLE.</paragraph> SphinxTranslator.dispatch_departure calling depart_block_quote for <block_quote><paragraph>The shuffle filter to be activated. Allowed values are blosc.NOSHUFFLE, blosc.SHUFFLE and blosc.BITSHUFFLE. The default is blosc.SHUFFLE.</paragraph></block_quote> SphinxTranslator.dispatch_visit calling visit_paragraph for <paragraph><strong>cname</strong> : string (optional)</paragraph> SphinxTranslator.dispatch_visit calling visit_strong for <strong>cname</strong> SphinxTranslator.dispatch_visit calling visit_Text for cname SphinxTranslator.dispatch_departure calling depart_Text for cname SphinxTranslator.dispatch_departure calling depart_strong for <strong>cname</strong> SphinxTranslator.dispatch_visit calling visit_Text for : string (optional) SphinxTranslator.dispatch_departure calling depart_Text for : string (optional) SphinxTranslator.dispatch_departure calling depart_paragraph for <paragraph><strong>cname</strong> : string (optional)</paragraph> SphinxTranslator.dispatch_visit calling visit_block_quote for <block_quote><paragraph>The name of the compressor used internally in Blosc. It can be any of the supported by Blosc (‘blosclz’, ‘lz4’, ‘lz4hc’, ‘snappy’, ‘zlib’, ‘zstd’ and maybe others too). The default is ‘blosclz’.</paragraph></block_quote> SphinxTranslator.dispatch_visit calling visit_paragraph for <paragraph>The name of the compressor used internally in Blosc. It can be any of the supported by Blosc (‘blosclz’, ‘lz4’, ‘lz4hc’, ‘snappy’, ‘zlib’, ‘zstd’ and maybe others too). The default is ‘blosclz’.</paragraph> SphinxTranslator.dispatch_visit calling visit_Text for The name of the compressor used internally in Blosc. It can be any of the supported by Blosc (‘blosclz’, ‘lz4’, ‘lz4hc’, ‘snappy’, ‘zlib’, ‘zstd’ and maybe others too). The default is ‘blosclz’. SphinxTranslator.dispatch_departure calling depart_Text for The name of the compressor used internally in Blosc. It can be any of the supported by Blosc (‘blosclz’, ‘lz4’, ‘lz4hc’, ‘snappy’, ‘zlib’, ‘zstd’ and maybe others too). The default is ‘blosclz’. SphinxTranslator.dispatch_departure calling depart_paragraph for <paragraph>The name of the compressor used internally in Blosc. It can be any of the supported by Blosc (‘blosclz’, ‘lz4’, ‘lz4hc’, ‘snappy’, ‘zlib’, ‘zstd’ and maybe others too). The default is ‘blosclz’.</paragraph> SphinxTranslator.dispatch_departure calling depart_block_quote for <block_quote><paragraph>The name of the compressor used internally in Blosc. It can be any of the supported by Blosc (‘blosclz’, ‘lz4’, ‘lz4hc’, ‘snappy’, ‘zlib’, ‘zstd’ and maybe others too). The default is ‘blosclz’.</paragraph></block_quote> SphinxTranslator.dispatch_departure calling depart_field_body for <field_body><paragraph><strong>array</strong> : ndarray</paragraph><block_quote><paragraph>The NumPy array to be packed.</paragraph></block_quote><paragraph><strong>clevel</strong> : int (optional)</paragraph><block_quote><paragraph>The compression level from 0 (no compression) to 9 (maximum compression). The default is 9.</paragraph></block_quote><paragraph><strong>shuffle</strong> : int (optional)</paragraph><block_quote><paragraph>The shuffle filter to be activated. Allowed values are blosc.NOSHUFFLE, blosc.SHUFFLE and blosc.BITSHUFFLE. The default is blosc.SHUFFLE.</paragraph></block_quote><paragraph><strong>cname</strong> : string (optional)</paragraph><block_quote><paragraph>The name of the compressor used internally in Blosc. It can be any of the supported by Blosc (‘blosclz’, ‘lz4’, ‘lz4hc’, ‘snappy’, ‘zlib’, ‘zstd’ and maybe others too). The default is ‘blosclz’.</paragraph></block_quote></field_body> SphinxTranslator.dispatch_departure calling depart_field for <field classes="field-odd"><field_name>Parameters</field_name><field_body><paragraph><strong>array</strong> : ndarray</paragraph><block_quote><paragraph>The NumPy array to be packed.</paragraph></block_quote><paragraph><strong>clevel</strong> : int (optional)</paragraph><block_quote><paragraph>The compression level from 0 (no compression) to 9 (maximum compression). The default is 9.</paragraph></block_quote><paragraph><strong>shuffle</strong> : int (optional)</paragraph><block_quote><paragraph>The shuffle filter to be activated. Allowed values are blosc.NOSHUFFLE, blosc.SHUFFLE and blosc.BITSHUFFLE. The default is blosc.SHUFFLE.</paragraph></block_quote><paragraph><strong>cname</strong> : string (optional)</paragraph><block_quote><paragraph>The name of the compressor used internally in Blosc. It can be any of the supported by Blosc (‘blosclz’, ‘lz4’, ‘lz4hc’, ‘snappy’, ‘zlib’, ‘zstd’ and maybe others too). The default is ‘blosclz’.</paragraph></block_quote></field_body></field> SphinxTranslator.dispatch_visit calling visit_field for <field><field_name>Returns</field_name><field_body><paragraph><strong>out</strong> : str / bytes</paragraph><block_quote><paragraph>The packed array in form of a Python str / bytes object.</paragraph></block_quote></field_body></field> SphinxTranslator.dispatch_visit calling visit_field_name for <field_name>Returns</field_name> SphinxTranslator.dispatch_visit calling visit_Text for Returns SphinxTranslator.dispatch_departure calling depart_Text for Returns SphinxTranslator.dispatch_departure calling depart_field_name for <field_name>Returns</field_name> SphinxTranslator.dispatch_visit calling visit_field_body for <field_body><paragraph><strong>out</strong> : str / bytes</paragraph><block_quote><paragraph>The packed array in form of a Python str / bytes object.</paragraph></block_quote></field_body> SphinxTranslator.dispatch_visit calling visit_paragraph for <paragraph><strong>out</strong> : str / bytes</paragraph> SphinxTranslator.dispatch_visit calling visit_strong for <strong>out</strong> SphinxTranslator.dispatch_visit calling visit_Text for out SphinxTranslator.dispatch_departure calling depart_Text for out SphinxTranslator.dispatch_departure calling depart_strong for <strong>out</strong> SphinxTranslator.dispatch_visit calling visit_Text for : str / bytes SphinxTranslator.dispatch_departure calling depart_Text for : str / bytes SphinxTranslator.dispatch_departure calling depart_paragraph for <paragraph><strong>out</strong> : str / bytes</paragraph> SphinxTranslator.dispatch_visit calling visit_block_quote for <block_quote><paragraph>The packed array in form of a Python str / bytes object.</paragraph></block_quote> SphinxTranslator.dispatch_visit calling visit_paragraph for <paragraph>The packed array in form of a Python str / bytes object.</paragraph> SphinxTranslator.dispatch_visit calling visit_Text for The packed array in form of a Python str / bytes object. SphinxTranslator.dispatch_departure calling depart_Text for The packed array in form of a Python str / bytes object. SphinxTranslator.dispatch_departure calling depart_paragraph for <paragraph>The packed array in form of a Python str / bytes object.</paragraph> SphinxTranslator.dispatch_departure calling depart_block_quote for <block_quote><paragraph>The packed array in form of a Python str / bytes object.</paragraph></block_quote> SphinxTranslator.dispatch_departure calling depart_field_body for <field_body><paragraph><strong>out</strong> : str / bytes</paragraph><block_quote><paragraph>The packed array in form of a Python str / bytes object.</paragraph></block_quote></field_body> SphinxTranslator.dispatch_departure calling depart_field for <field classes="field-even"><field_name>Returns</field_name><field_body><paragraph><strong>out</strong> : str / bytes</paragraph><block_quote><paragraph>The packed array in form of a Python str / bytes object.</paragraph></block_quote></field_body></field> SphinxTranslator.dispatch_visit calling visit_field for <field><field_name>Raises</field_name><field_body><paragraph><strong>TypeError</strong></paragraph><block_quote><paragraph>If array does not quack like a numpy ndarray.</paragraph></block_quote><paragraph><strong>ValueError</strong></paragraph><block_quote><definition_list><definition_list_item><term>If array.itemsize * array.size is larger than the maximum allowed</term><definition><paragraph>buffer size.</paragraph></definition></definition_list_item></definition_list><paragraph>If typesize is not within the allowed range. If clevel is not within the allowed range. If cname is not within the supported compressors.</paragraph></block_quote></field_body></field> SphinxTranslator.dispatch_visit calling visit_field_name for <field_name>Raises</field_name> SphinxTranslator.dispatch_visit calling visit_Text for Raises SphinxTranslator.dispatch_departure calling depart_Text for Raises SphinxTranslator.dispatch_departure calling depart_field_name for <field_name>Raises</field_name> SphinxTranslator.dispatch_visit calling visit_field_body for <field_body><paragraph><strong>TypeError</strong></paragraph><block_quote><paragraph>If array does not quack like a numpy ndarray.</paragraph></block_quote><paragraph><strong>ValueError</strong></paragraph><block_quote><definition_list><definition_list_item><term>If array.itemsize * array.size is larger than the maximum allowed</term><definition><paragraph>buffer size.</paragraph></definition></definition_list_item></definition_list><paragraph>If typesize is not within the allowed range. If clevel is not within the allowed range. If cname is not within the supported compressors.</paragraph></block_quote></field_body> SphinxTranslator.dispatch_visit calling visit_paragraph for <paragraph><strong>TypeError</strong></paragraph> SphinxTranslator.dispatch_visit calling visit_strong for <strong>TypeError</strong> SphinxTranslator.dispatch_visit calling visit_Text for TypeError SphinxTranslator.dispatch_departure calling depart_Text for TypeError SphinxTranslator.dispatch_departure calling depart_strong for <strong>TypeError</strong> SphinxTranslator.dispatch_departure calling depart_paragraph for <paragraph><strong>TypeError</strong></paragraph> SphinxTranslator.dispatch_visit calling visit_block_quote for <block_quote><paragraph>If array does not quack like a numpy ndarray.</paragraph></block_quote> SphinxTranslator.dispatch_visit calling visit_paragraph for <paragraph>If array does not quack like a numpy ndarray.</paragraph> SphinxTranslator.dispatch_visit calling visit_Text for If array does not quack like a numpy ndarray. SphinxTranslator.dispatch_departure calling depart_Text for If array does not quack like a numpy ndarray. SphinxTranslator.dispatch_departure calling depart_paragraph for <paragraph>If array does not quack like a numpy ndarray.</paragraph> SphinxTranslator.dispatch_departure calling depart_block_quote for <block_quote><paragraph>If array does not quack like a numpy ndarray.</paragraph></block_quote> SphinxTranslator.dispatch_visit calling visit_paragraph for <paragraph><strong>ValueError</strong></paragraph> SphinxTranslator.dispatch_visit calling visit_strong for <strong>ValueError</strong> SphinxTranslator.dispatch_visit calling visit_Text for ValueError SphinxTranslator.dispatch_departure calling depart_Text for ValueError SphinxTranslator.dispatch_departure calling depart_strong for <strong>ValueError</strong> SphinxTranslator.dispatch_departure calling depart_paragraph for <paragraph><strong>ValueError</strong></paragraph> SphinxTranslator.dispatch_visit calling visit_block_quote for <block_quote><definition_list><definition_list_item><term>If array.itemsize * array.size is larger than the maximum allowed</term><definition><paragraph>buffer size.</paragraph></definition></definition_list_item></definition_list><paragraph>If typesize is not within the allowed range. If clevel is not within the allowed range. If cname is not within the supported compressors.</paragraph></block_quote> SphinxTranslator.dispatch_visit calling visit_definition_list for <definition_list><definition_list_item><term>If array.itemsize * array.size is larger than the maximum allowed</term><definition><paragraph>buffer size.</paragraph></definition></definition_list_item></definition_list> SphinxTranslator.dispatch_visit calling visit_definition_list_item for <definition_list_item><term>If array.itemsize * array.size is larger than the maximum allowed</term><definition><paragraph>buffer size.</paragraph></definition></definition_list_item> SphinxTranslator.dispatch_visit calling visit_term for <term>If array.itemsize * array.size is larger than the maximum allowed</term> SphinxTranslator.dispatch_visit calling visit_Text for If array.itemsize * array.size is larger than the maximum allowed SphinxTranslator.dispatch_departure calling depart_Text for If array.itemsize * array.size is larger than the maximum allowed SphinxTranslator.dispatch_departure calling depart_term for <term>If array.itemsize * array.size is larger than the maximum allowed</term> SphinxTranslator.dispatch_visit calling visit_definition for <definition><paragraph>buffer size.</paragraph></definition> SphinxTranslator.dispatch_visit calling visit_paragraph for <paragraph>buffer size.</paragraph> SphinxTranslator.dispatch_visit calling visit_Text for buffer size. SphinxTranslator.dispatch_departure calling depart_Text for buffer size. SphinxTranslator.dispatch_departure calling depart_paragraph for <paragraph>buffer size.</paragraph> SphinxTranslator.dispatch_departure calling depart_definition for <definition><paragraph>buffer size.</paragraph></definition> SphinxTranslator.dispatch_departure calling depart_definition_list_item for <definition_list_item><term>If array.itemsize * array.size is larger than the maximum allowed</term><definition><paragraph>buffer size.</paragraph></definition></definition_list_item> SphinxTranslator.dispatch_departure calling depart_definition_list for <definition_list classes="simple"><definition_list_item><term>If array.itemsize * array.size is larger than the maximum allowed</term><definition><paragraph>buffer size.</paragraph></definition></definition_list_item></definition_list> SphinxTranslator.dispatch_visit calling visit_paragraph for <paragraph>If typesize is not within the allowed range. If clevel is not within the allowed range. If cname is not within the supported compressors.</paragraph> SphinxTranslator.dispatch_visit calling visit_Text for If typesize is not within the allowed range. If clevel is not within the allowed range. If cname is not within the supported compressors. SphinxTranslator.dispatch_departure calling depart_Text for If typesize is not within the allowed range. If clevel is not within the allowed range. If cname is not within the supported compressors. SphinxTranslator.dispatch_departure calling depart_paragraph for <paragraph>If typesize is not within the allowed range. If clevel is not within the allowed range. If cname is not within the supported compressors.</paragraph> SphinxTranslator.dispatch_departure calling depart_block_quote for <block_quote><definition_list classes="simple"><definition_list_item><term>If array.itemsize * array.size is larger than the maximum allowed</term><definition><paragraph>buffer size.</paragraph></definition></definition_list_item></definition_list><paragraph>If typesize is not within the allowed range. If clevel is not within the allowed range. If cname is not within the supported compressors.</paragraph></block_quote> SphinxTranslator.dispatch_departure calling depart_field_body for <field_body><paragraph><strong>TypeError</strong></paragraph><block_quote><paragraph>If array does not quack like a numpy ndarray.</paragraph></block_quote><paragraph><strong>ValueError</strong></paragraph><block_quote><definition_list classes="simple"><definition_list_item><term>If array.itemsize * array.size is larger than the maximum allowed</term><definition><paragraph>buffer size.</paragraph></definition></definition_list_item></definition_list><paragraph>If typesize is not within the allowed range. If clevel is not within the allowed range. If cname is not within the supported compressors.</paragraph></block_quote></field_body> SphinxTranslator.dispatch_departure calling depart_field for <field classes="field-odd"><field_name>Raises</field_name><field_body><paragraph><strong>TypeError</strong></paragraph><block_quote><paragraph>If array does not quack like a numpy ndarray.</paragraph></block_quote><paragraph><strong>ValueError</strong></paragraph><block_quote><definition_list classes="simple"><definition_list_item><term>If array.itemsize * array.size is larger than the maximum allowed</term><definition><paragraph>buffer size.</paragraph></definition></definition_list_item></definition_list><paragraph>If typesize is not within the allowed range. If clevel is not within the allowed range. If cname is not within the supported compressors.</paragraph></block_quote></field_body></field> SphinxTranslator.dispatch_departure calling depart_field_list for <field_list><field classes="field-odd"><field_name>Parameters</field_name><field_body><paragraph><strong>array</strong> : ndarray</paragraph><block_quote><paragraph>The NumPy array to be packed.</paragraph></block_quote><paragraph><strong>clevel</strong> : int (optional)</paragraph><block_quote><paragraph>The compression level from 0 (no compression) to 9 (maximum compression). The default is 9.</paragraph></block_quote><paragraph><strong>shuffle</strong> : int (optional)</paragraph><block_quote><paragraph>The shuffle filter to be activated. Allowed values are blosc.NOSHUFFLE, blosc.SHUFFLE and blosc.BITSHUFFLE. The default is blosc.SHUFFLE.</paragraph></block_quote><paragraph><strong>cname</strong> : string (optional)</paragraph><block_quote><paragraph>The name of the compressor used internally in Blosc. It can be any of the supported by Blosc (‘blosclz’, ‘lz4’, ‘lz4hc’, ‘snappy’, ‘zlib’, ‘zstd’ and maybe others too). The default is ‘blosclz’.</paragraph></block_quote></field_body></field><field classes="field-even"><field_name>Returns</field_name><field_body><paragraph><strong>out</strong> : str / bytes</paragraph><block_quote><paragraph>The packed array in form of a Python str / bytes object.</paragraph></block_quote></field_body></field><field classes="field-odd"><field_name>Raises</field_name><field_body><paragraph><strong>TypeError</strong></paragraph><block_quote><paragraph>If array does not quack like a numpy ndarray.</paragraph></block_quote><paragraph><strong>ValueError</strong></paragraph><block_quote><definition_list classes="simple"><definition_list_item><term>If array.itemsize * array.size is larger than the maximum allowed</term><definition><paragraph>buffer size.</paragraph></definition></definition_list_item></definition_list><paragraph>If typesize is not within the allowed range. If clevel is not within the allowed range. If cname is not within the supported compressors.</paragraph></block_quote></field_body></field></field_list> SphinxTranslator.dispatch_visit calling visit_rubric for <rubric>Examples</rubric> SphinxTranslator.dispatch_visit calling visit_Text for Examples SphinxTranslator.dispatch_departure calling depart_Text for Examples SphinxTranslator.dispatch_departure calling depart_rubric for <rubric>Examples</rubric> SphinxTranslator.dispatch_visit calling visit_doctest_block for <doctest_block classes="doctest" xml:space="preserve">>>> import numpy >>> a = numpy.arange(1e6) >>> parray = blosc.pack_array(a) >>> len(parray) < a.size*a.itemsize True</doctest_block> SphinxTranslator.dispatch_departure calling depart_desc_content for <desc_content><paragraph>Pack (compress) a NumPy array.</paragraph><field_list><field classes="field-odd"><field_name>Parameters</field_name><field_body><paragraph><strong>array</strong> : ndarray</paragraph><block_quote><paragraph>The NumPy array to be packed.</paragraph></block_quote><paragraph><strong>clevel</strong> : int (optional)</paragraph><block_quote><paragraph>The compression level from 0 (no compression) to 9 (maximum compression). The default is 9.</paragraph></block_quote><paragraph><strong>shuffle</strong> : int (optional)</paragraph><block_quote><paragraph>The shuffle filter to be activated. Allowed values are blosc.NOSHUFFLE, blosc.SHUFFLE and blosc.BITSHUFFLE. The default is blosc.SHUFFLE.</paragraph></block_quote><paragraph><strong>cname</strong> : string (optional)</paragraph><block_quote><paragraph>The name of the compressor used internally in Blosc. It can be any of the supported by Blosc (‘blosclz’, ‘lz4’, ‘lz4hc’, ‘snappy’, ‘zlib’, ‘zstd’ and maybe others too). The default is ‘blosclz’.</paragraph></block_quote></field_body></field><field classes="field-even"><field_name>Returns</field_name><field_body><paragraph><strong>out</strong> : str / bytes</paragraph><block_quote><paragraph>The packed array in form of a Python str / bytes object.</paragraph></block_quote></field_body></field><field classes="field-odd"><field_name>Raises</field_name><field_body><paragraph><strong>TypeError</strong></paragraph><block_quote><paragraph>If array does not quack like a numpy ndarray.</paragraph></block_quote><paragraph><strong>ValueError</strong></paragraph><block_quote><definition_list classes="simple"><definition_list_item><term>If array.itemsize * array.size is larger than the maximum allowed</term><definition><paragraph>buffer size.</paragraph></definition></definition_list_item></definition_list><paragraph>If typesize is not within the allowed range. If clevel is not within the allowed range. If cname is not within the supported compressors.</paragraph></block_quote></field_body></field></field_list><rubric>Examples</rubric><doctest_block classes="doctest" xml:space="preserve">>>> import numpy >>> a = numpy.arange(1e6) >>> parray = blosc.pack_array(a) >>> len(parray) < a.size*a.itemsize True</doctest_block></desc_content> SphinxTranslator.dispatch_departure calling depart_desc for <desc desctype="function" domain="py" noindex="False" objtype="function"><desc_signature class="" first="False" fullname="pack_array" ids="blosc.pack_array" module="blosc" names="blosc.pack_array"><desc_addname xml:space="preserve">blosc.</desc_addname><desc_name xml:space="preserve">pack_array</desc_name><desc_parameterlist xml:space="preserve"><desc_parameter xml:space="preserve">array[, clevel=9, shuffle=blosc.SHUFFLE, cname='blosclz']]</desc_parameter></desc_parameterlist></desc_signature><desc_content><paragraph>Pack (compress) a NumPy array.</paragraph><field_list><field classes="field-odd"><field_name>Parameters</field_name><field_body><paragraph><strong>array</strong> : ndarray</paragraph><block_quote><paragraph>The NumPy array to be packed.</paragraph></block_quote><paragraph><strong>clevel</strong> : int (optional)</paragraph><block_quote><paragraph>The compression level from 0 (no compression) to 9 (maximum compression). The default is 9.</paragraph></block_quote><paragraph><strong>shuffle</strong> : int (optional)</paragraph><block_quote><paragraph>The shuffle filter to be activated. Allowed values are blosc.NOSHUFFLE, blosc.SHUFFLE and blosc.BITSHUFFLE. The default is blosc.SHUFFLE.</paragraph></block_quote><paragraph><strong>cname</strong> : string (optional)</paragraph><block_quote><paragraph>The name of the compressor used internally in Blosc. It can be any of the supported by Blosc (‘blosclz’, ‘lz4’, ‘lz4hc’, ‘snappy’, ‘zlib’, ‘zstd’ and maybe others too). The default is ‘blosclz’.</paragraph></block_quote></field_body></field><field classes="field-even"><field_name>Returns</field_name><field_body><paragraph><strong>out</strong> : str / bytes</paragraph><block_quote><paragraph>The packed array in form of a Python str / bytes object.</paragraph></block_quote></field_body></field><field classes="field-odd"><field_name>Raises</field_name><field_body><paragraph><strong>TypeError</strong></paragraph><block_quote><paragraph>If array does not quack like a numpy ndarray.</paragraph></block_quote><paragraph><strong>ValueError</strong></paragraph><block_quote><definition_list classes="simple"><definition_list_item><term>If array.itemsize * array.size is larger than the maximum allowed</term><definition><paragraph>buffer size.</paragraph></definition></definition_list_item></definition_list><paragraph>If typesize is not within the allowed range. If clevel is not within the allowed range. If cname is not within the supported compressors.</paragraph></block_quote></field_body></field></field_list><rubric>Examples</rubric><doctest_block classes="doctest" xml:space="preserve">>>> import numpy >>> a = numpy.arange(1e6) >>> parray = blosc.pack_array(a) >>> len(parray) < a.size*a.itemsize True</doctest_block></desc_content></desc> SphinxTranslator.dispatch_visit calling visit_index for <index entries="[('single', 'unpack_array() (in module blosc)', 'blosc.unpack_array', '', None)]"/> SphinxTranslator.dispatch_visit calling visit_desc for <desc desctype="function" domain="py" noindex="False" objtype="function"><desc_signature class="" first="False" fullname="unpack_array" ids="blosc.unpack_array" module="blosc" names="blosc.unpack_array"><desc_addname xml:space="preserve">blosc.</desc_addname><desc_name xml:space="preserve">unpack_array</desc_name><desc_parameterlist xml:space="preserve"><desc_parameter xml:space="preserve">packed_array</desc_parameter></desc_parameterlist></desc_signature><desc_content><paragraph>Unpack (decompress) a packed NumPy array.</paragraph><field_list><field><field_name>Parameters</field_name><field_body><paragraph><strong>packed_array</strong> : str / bytes</paragraph><block_quote><paragraph>The packed array to be decompressed.</paragraph></block_quote></field_body></field><field><field_name>Returns</field_name><field_body><paragraph><strong>out</strong> : ndarray</paragraph><block_quote><paragraph>The decompressed data in form of a NumPy array.</paragraph></block_quote></field_body></field><field><field_name>Raises</field_name><field_body><paragraph><strong>TypeError</strong></paragraph><block_quote><paragraph>If packed_array is not of type bytes or string.</paragraph></block_quote></field_body></field></field_list><rubric>Examples</rubric><doctest_block classes="doctest" xml:space="preserve">>>> import numpy >>> a = numpy.arange(1e6) >>> parray = blosc.pack_array(a) >>> len(parray) < a.size*a.itemsize True >>> a2 = blosc.unpack_array(parray) >>> numpy.alltrue(a == a2) True</doctest_block></desc_content></desc> SphinxTranslator.dispatch_visit calling visit_desc_signature for <desc_signature class="" first="False" fullname="unpack_array" ids="blosc.unpack_array" module="blosc" names="blosc.unpack_array"><desc_addname xml:space="preserve">blosc.</desc_addname><desc_name xml:space="preserve">unpack_array</desc_name><desc_parameterlist xml:space="preserve"><desc_parameter xml:space="preserve">packed_array</desc_parameter></desc_parameterlist></desc_signature> SphinxTranslator.dispatch_visit calling visit_desc_addname for <desc_addname xml:space="preserve">blosc.</desc_addname> SphinxTranslator.dispatch_visit calling visit_Text for blosc. SphinxTranslator.dispatch_departure calling depart_Text for blosc. SphinxTranslator.dispatch_departure calling depart_desc_addname for <desc_addname xml:space="preserve">blosc.</desc_addname> SphinxTranslator.dispatch_visit calling visit_desc_name for <desc_name xml:space="preserve">unpack_array</desc_name> SphinxTranslator.dispatch_visit calling visit_Text for unpack_array SphinxTranslator.dispatch_departure calling depart_Text for unpack_array SphinxTranslator.dispatch_departure calling depart_desc_name for <desc_name xml:space="preserve">unpack_array</desc_name> SphinxTranslator.dispatch_visit calling visit_desc_parameterlist for <desc_parameterlist xml:space="preserve"><desc_parameter xml:space="preserve">packed_array</desc_parameter></desc_parameterlist> SphinxTranslator.dispatch_visit calling visit_desc_parameter for <desc_parameter xml:space="preserve">packed_array</desc_parameter> SphinxTranslator.dispatch_visit calling visit_Text for packed_array SphinxTranslator.dispatch_departure calling depart_Text for packed_array SphinxTranslator.dispatch_departure calling depart_desc_parameter for <desc_parameter xml:space="preserve">packed_array</desc_parameter> SphinxTranslator.dispatch_departure calling depart_desc_parameterlist for <desc_parameterlist xml:space="preserve"><desc_parameter xml:space="preserve">packed_array</desc_parameter></desc_parameterlist> SphinxTranslator.dispatch_departure calling depart_desc_signature for <desc_signature class="" first="False" fullname="unpack_array" ids="blosc.unpack_array" module="blosc" names="blosc.unpack_array"><desc_addname xml:space="preserve">blosc.</desc_addname><desc_name xml:space="preserve">unpack_array</desc_name><desc_parameterlist xml:space="preserve"><desc_parameter xml:space="preserve">packed_array</desc_parameter></desc_parameterlist></desc_signature> SphinxTranslator.dispatch_visit calling visit_desc_content for <desc_content><paragraph>Unpack (decompress) a packed NumPy array.</paragraph><field_list><field><field_name>Parameters</field_name><field_body><paragraph><strong>packed_array</strong> : str / bytes</paragraph><block_quote><paragraph>The packed array to be decompressed.</paragraph></block_quote></field_body></field><field><field_name>Returns</field_name><field_body><paragraph><strong>out</strong> : ndarray</paragraph><block_quote><paragraph>The decompressed data in form of a NumPy array.</paragraph></block_quote></field_body></field><field><field_name>Raises</field_name><field_body><paragraph><strong>TypeError</strong></paragraph><block_quote><paragraph>If packed_array is not of type bytes or string.</paragraph></block_quote></field_body></field></field_list><rubric>Examples</rubric><doctest_block classes="doctest" xml:space="preserve">>>> import numpy >>> a = numpy.arange(1e6) >>> parray = blosc.pack_array(a) >>> len(parray) < a.size*a.itemsize True >>> a2 = blosc.unpack_array(parray) >>> numpy.alltrue(a == a2) True</doctest_block></desc_content> SphinxTranslator.dispatch_visit calling visit_paragraph for <paragraph>Unpack (decompress) a packed NumPy array.</paragraph> SphinxTranslator.dispatch_visit calling visit_Text for Unpack (decompress) a packed NumPy array. SphinxTranslator.dispatch_departure calling depart_Text for Unpack (decompress) a packed NumPy array. SphinxTranslator.dispatch_departure calling depart_paragraph for <paragraph>Unpack (decompress) a packed NumPy array.</paragraph> SphinxTranslator.dispatch_visit calling visit_field_list for <field_list><field><field_name>Parameters</field_name><field_body><paragraph><strong>packed_array</strong> : str / bytes</paragraph><block_quote><paragraph>The packed array to be decompressed.</paragraph></block_quote></field_body></field><field><field_name>Returns</field_name><field_body><paragraph><strong>out</strong> : ndarray</paragraph><block_quote><paragraph>The decompressed data in form of a NumPy array.</paragraph></block_quote></field_body></field><field><field_name>Raises</field_name><field_body><paragraph><strong>TypeError</strong></paragraph><block_quote><paragraph>If packed_array is not of type bytes or string.</paragraph></block_quote></field_body></field></field_list> SphinxTranslator.dispatch_visit calling visit_field for <field><field_name>Parameters</field_name><field_body><paragraph><strong>packed_array</strong> : str / bytes</paragraph><block_quote><paragraph>The packed array to be decompressed.</paragraph></block_quote></field_body></field> SphinxTranslator.dispatch_visit calling visit_field_name for <field_name>Parameters</field_name> SphinxTranslator.dispatch_visit calling visit_Text for Parameters SphinxTranslator.dispatch_departure calling depart_Text for Parameters SphinxTranslator.dispatch_departure calling depart_field_name for <field_name>Parameters</field_name> SphinxTranslator.dispatch_visit calling visit_field_body for <field_body><paragraph><strong>packed_array</strong> : str / bytes</paragraph><block_quote><paragraph>The packed array to be decompressed.</paragraph></block_quote></field_body> SphinxTranslator.dispatch_visit calling visit_paragraph for <paragraph><strong>packed_array</strong> : str / bytes</paragraph> SphinxTranslator.dispatch_visit calling visit_strong for <strong>packed_array</strong> SphinxTranslator.dispatch_visit calling visit_Text for packed_array SphinxTranslator.dispatch_departure calling depart_Text for packed_array SphinxTranslator.dispatch_departure calling depart_strong for <strong>packed_array</strong> SphinxTranslator.dispatch_visit calling visit_Text for : str / bytes SphinxTranslator.dispatch_departure calling depart_Text for : str / bytes SphinxTranslator.dispatch_departure calling depart_paragraph for <paragraph><strong>packed_array</strong> : str / bytes</paragraph> SphinxTranslator.dispatch_visit calling visit_block_quote for <block_quote><paragraph>The packed array to be decompressed.</paragraph></block_quote> SphinxTranslator.dispatch_visit calling visit_paragraph for <paragraph>The packed array to be decompressed.</paragraph> SphinxTranslator.dispatch_visit calling visit_Text for The packed array to be decompressed. SphinxTranslator.dispatch_departure calling depart_Text for The packed array to be decompressed. SphinxTranslator.dispatch_departure calling depart_paragraph for <paragraph>The packed array to be decompressed.</paragraph> SphinxTranslator.dispatch_departure calling depart_block_quote for <block_quote><paragraph>The packed array to be decompressed.</paragraph></block_quote> SphinxTranslator.dispatch_departure calling depart_field_body for <field_body><paragraph><strong>packed_array</strong> : str / bytes</paragraph><block_quote><paragraph>The packed array to be decompressed.</paragraph></block_quote></field_body> SphinxTranslator.dispatch_departure calling depart_field for <field classes="field-odd"><field_name>Parameters</field_name><field_body><paragraph><strong>packed_array</strong> : str / bytes</paragraph><block_quote><paragraph>The packed array to be decompressed.</paragraph></block_quote></field_body></field> SphinxTranslator.dispatch_visit calling visit_field for <field><field_name>Returns</field_name><field_body><paragraph><strong>out</strong> : ndarray</paragraph><block_quote><paragraph>The decompressed data in form of a NumPy array.</paragraph></block_quote></field_body></field> SphinxTranslator.dispatch_visit calling visit_field_name for <field_name>Returns</field_name> SphinxTranslator.dispatch_visit calling visit_Text for Returns SphinxTranslator.dispatch_departure calling depart_Text for Returns SphinxTranslator.dispatch_departure calling depart_field_name for <field_name>Returns</field_name> SphinxTranslator.dispatch_visit calling visit_field_body for <field_body><paragraph><strong>out</strong> : ndarray</paragraph><block_quote><paragraph>The decompressed data in form of a NumPy array.</paragraph></block_quote></field_body> SphinxTranslator.dispatch_visit calling visit_paragraph for <paragraph><strong>out</strong> : ndarray</paragraph> SphinxTranslator.dispatch_visit calling visit_strong for <strong>out</strong> SphinxTranslator.dispatch_visit calling visit_Text for out SphinxTranslator.dispatch_departure calling depart_Text for out SphinxTranslator.dispatch_departure calling depart_strong for <strong>out</strong> SphinxTranslator.dispatch_visit calling visit_Text for : ndarray SphinxTranslator.dispatch_departure calling depart_Text for : ndarray SphinxTranslator.dispatch_departure calling depart_paragraph for <paragraph><strong>out</strong> : ndarray</paragraph> SphinxTranslator.dispatch_visit calling visit_block_quote for <block_quote><paragraph>The decompressed data in form of a NumPy array.</paragraph></block_quote> SphinxTranslator.dispatch_visit calling visit_paragraph for <paragraph>The decompressed data in form of a NumPy array.</paragraph> SphinxTranslator.dispatch_visit calling visit_Text for The decompressed data in form of a NumPy array. SphinxTranslator.dispatch_departure calling depart_Text for The decompressed data in form of a NumPy array. SphinxTranslator.dispatch_departure calling depart_paragraph for <paragraph>The decompressed data in form of a NumPy array.</paragraph> SphinxTranslator.dispatch_departure calling depart_block_quote for <block_quote><paragraph>The decompressed data in form of a NumPy array.</paragraph></block_quote> SphinxTranslator.dispatch_departure calling depart_field_body for <field_body><paragraph><strong>out</strong> : ndarray</paragraph><block_quote><paragraph>The decompressed data in form of a NumPy array.</paragraph></block_quote></field_body> SphinxTranslator.dispatch_departure calling depart_field for <field classes="field-even"><field_name>Returns</field_name><field_body><paragraph><strong>out</strong> : ndarray</paragraph><block_quote><paragraph>The decompressed data in form of a NumPy array.</paragraph></block_quote></field_body></field> SphinxTranslator.dispatch_visit calling visit_field for <field><field_name>Raises</field_name><field_body><paragraph><strong>TypeError</strong></paragraph><block_quote><paragraph>If packed_array is not of type bytes or string.</paragraph></block_quote></field_body></field> SphinxTranslator.dispatch_visit calling visit_field_name for <field_name>Raises</field_name> SphinxTranslator.dispatch_visit calling visit_Text for Raises SphinxTranslator.dispatch_departure calling depart_Text for Raises SphinxTranslator.dispatch_departure calling depart_field_name for <field_name>Raises</field_name> SphinxTranslator.dispatch_visit calling visit_field_body for <field_body><paragraph><strong>TypeError</strong></paragraph><block_quote><paragraph>If packed_array is not of type bytes or string.</paragraph></block_quote></field_body> SphinxTranslator.dispatch_visit calling visit_paragraph for <paragraph><strong>TypeError</strong></paragraph> SphinxTranslator.dispatch_visit calling visit_strong for <strong>TypeError</strong> SphinxTranslator.dispatch_visit calling visit_Text for TypeError SphinxTranslator.dispatch_departure calling depart_Text for TypeError SphinxTranslator.dispatch_departure calling depart_strong for <strong>TypeError</strong> SphinxTranslator.dispatch_departure calling depart_paragraph for <paragraph><strong>TypeError</strong></paragraph> SphinxTranslator.dispatch_visit calling visit_block_quote for <block_quote><paragraph>If packed_array is not of type bytes or string.</paragraph></block_quote> SphinxTranslator.dispatch_visit calling visit_paragraph for <paragraph>If packed_array is not of type bytes or string.</paragraph> SphinxTranslator.dispatch_visit calling visit_Text for If packed_array is not of type bytes or string. SphinxTranslator.dispatch_departure calling depart_Text for If packed_array is not of type bytes or string. SphinxTranslator.dispatch_departure calling depart_paragraph for <paragraph>If packed_array is not of type bytes or string.</paragraph> SphinxTranslator.dispatch_departure calling depart_block_quote for <block_quote><paragraph>If packed_array is not of type bytes or string.</paragraph></block_quote> SphinxTranslator.dispatch_departure calling depart_field_body for <field_body><paragraph><strong>TypeError</strong></paragraph><block_quote><paragraph>If packed_array is not of type bytes or string.</paragraph></block_quote></field_body> SphinxTranslator.dispatch_departure calling depart_field for <field classes="field-odd"><field_name>Raises</field_name><field_body><paragraph><strong>TypeError</strong></paragraph><block_quote><paragraph>If packed_array is not of type bytes or string.</paragraph></block_quote></field_body></field> SphinxTranslator.dispatch_departure calling depart_field_list for <field_list><field classes="field-odd"><field_name>Parameters</field_name><field_body><paragraph><strong>packed_array</strong> : str / bytes</paragraph><block_quote><paragraph>The packed array to be decompressed.</paragraph></block_quote></field_body></field><field classes="field-even"><field_name>Returns</field_name><field_body><paragraph><strong>out</strong> : ndarray</paragraph><block_quote><paragraph>The decompressed data in form of a NumPy array.</paragraph></block_quote></field_body></field><field classes="field-odd"><field_name>Raises</field_name><field_body><paragraph><strong>TypeError</strong></paragraph><block_quote><paragraph>If packed_array is not of type bytes or string.</paragraph></block_quote></field_body></field></field_list> SphinxTranslator.dispatch_visit calling visit_rubric for <rubric>Examples</rubric> SphinxTranslator.dispatch_visit calling visit_Text for Examples SphinxTranslator.dispatch_departure calling depart_Text for Examples SphinxTranslator.dispatch_departure calling depart_rubric for <rubric>Examples</rubric> SphinxTranslator.dispatch_visit calling visit_doctest_block for <doctest_block classes="doctest" xml:space="preserve">>>> import numpy >>> a = numpy.arange(1e6) >>> parray = blosc.pack_array(a) >>> len(parray) < a.size*a.itemsize True >>> a2 = blosc.unpack_array(parray) >>> numpy.alltrue(a == a2) True</doctest_block> SphinxTranslator.dispatch_departure calling depart_desc_content for <desc_content><paragraph>Unpack (decompress) a packed NumPy array.</paragraph><field_list><field classes="field-odd"><field_name>Parameters</field_name><field_body><paragraph><strong>packed_array</strong> : str / bytes</paragraph><block_quote><paragraph>The packed array to be decompressed.</paragraph></block_quote></field_body></field><field classes="field-even"><field_name>Returns</field_name><field_body><paragraph><strong>out</strong> : ndarray</paragraph><block_quote><paragraph>The decompressed data in form of a NumPy array.</paragraph></block_quote></field_body></field><field classes="field-odd"><field_name>Raises</field_name><field_body><paragraph><strong>TypeError</strong></paragraph><block_quote><paragraph>If packed_array is not of type bytes or string.</paragraph></block_quote></field_body></field></field_list><rubric>Examples</rubric><doctest_block classes="doctest" xml:space="preserve">>>> import numpy >>> a = numpy.arange(1e6) >>> parray = blosc.pack_array(a) >>> len(parray) < a.size*a.itemsize True >>> a2 = blosc.unpack_array(parray) >>> numpy.alltrue(a == a2) True</doctest_block></desc_content> SphinxTranslator.dispatch_departure calling depart_desc for <desc desctype="function" domain="py" noindex="False" objtype="function"><desc_signature class="" first="False" fullname="unpack_array" ids="blosc.unpack_array" module="blosc" names="blosc.unpack_array"><desc_addname xml:space="preserve">blosc.</desc_addname><desc_name xml:space="preserve">unpack_array</desc_name><desc_parameterlist xml:space="preserve"><desc_parameter xml:space="preserve">packed_array</desc_parameter></desc_parameterlist></desc_signature><desc_content><paragraph>Unpack (decompress) a packed NumPy array.</paragraph><field_list><field classes="field-odd"><field_name>Parameters</field_name><field_body><paragraph><strong>packed_array</strong> : str / bytes</paragraph><block_quote><paragraph>The packed array to be decompressed.</paragraph></block_quote></field_body></field><field classes="field-even"><field_name>Returns</field_name><field_body><paragraph><strong>out</strong> : ndarray</paragraph><block_quote><paragraph>The decompressed data in form of a NumPy array.</paragraph></block_quote></field_body></field><field classes="field-odd"><field_name>Raises</field_name><field_body><paragraph><strong>TypeError</strong></paragraph><block_quote><paragraph>If packed_array is not of type bytes or string.</paragraph></block_quote></field_body></field></field_list><rubric>Examples</rubric><doctest_block classes="doctest" xml:space="preserve">>>> import numpy >>> a = numpy.arange(1e6) >>> parray = blosc.pack_array(a) >>> len(parray) < a.size*a.itemsize True >>> a2 = blosc.unpack_array(parray) >>> numpy.alltrue(a == a2) True</doctest_block></desc_content></desc> SphinxTranslator.dispatch_departure calling depart_section for <section ids="module-blosc public-functions" names="public\ functions"><title>Public functions</title><index entries="[('single', 'blosc (module)', 'module-blosc', '', None)]"/><index entries="[('single', 'compress() (in module blosc)', 'blosc.compress', '', None)]"/><desc desctype="function" domain="py" noindex="False" objtype="function"><desc_signature class="" first="False" fullname="compress" ids="blosc.compress" module="blosc" names="blosc.compress"><desc_addname xml:space="preserve">blosc.</desc_addname><desc_name xml:space="preserve">compress</desc_name><desc_parameterlist xml:space="preserve"><desc_parameter xml:space="preserve">bytesobj[, typesize=8, clevel=9, shuffle=blosc.SHUFFLE, cname='blosclz']]</desc_parameter></desc_parameterlist></desc_signature><desc_content><paragraph>Compress bytesobj, with a given type size.</paragraph><field_list><field classes="field-odd"><field_name>Parameters</field_name><field_body><paragraph><strong>bytesobj</strong> : bytes-like object (supporting the buffer interface)</paragraph><block_quote><paragraph>The data to be compressed.</paragraph></block_quote><paragraph><strong>typesize</strong> : int</paragraph><block_quote><paragraph>The data type size.</paragraph></block_quote><paragraph><strong>clevel</strong> : int (optional)</paragraph><block_quote><paragraph>The compression level from 0 (no compression) to 9 (maximum compression). The default is 9.</paragraph></block_quote><paragraph><strong>shuffle</strong> : int (optional)</paragraph><block_quote><paragraph>The shuffle filter to be activated. Allowed values are blosc.NOSHUFFLE, blosc.SHUFFLE and blosc.BITSHUFFLE. The default is blosc.SHUFFLE.</paragraph></block_quote><paragraph><strong>cname</strong> : string (optional)</paragraph><block_quote><paragraph>The name of the compressor used internally in Blosc. It can be any of the supported by Blosc (‘blosclz’, ‘lz4’, ‘lz4hc’, ‘snappy’, ‘zlib’, ‘zstd’ and maybe others too). The default is ‘blosclz’.</paragraph></block_quote></field_body></field><field classes="field-even"><field_name>Returns</field_name><field_body><paragraph><strong>out</strong> : str / bytes</paragraph><block_quote><paragraph>The compressed data in form of a Python str / bytes object.</paragraph></block_quote></field_body></field><field classes="field-odd"><field_name>Raises</field_name><field_body><paragraph><strong>TypeError</strong></paragraph><block_quote><paragraph>If bytesobj doesn’t support the buffer interface.</paragraph></block_quote><paragraph><strong>ValueError</strong></paragraph><block_quote><paragraph>If bytesobj is too long. If typesize is not within the allowed range. If clevel is not within the allowed range. If cname is not a valid codec.</paragraph></block_quote></field_body></field></field_list><rubric>Examples</rubric><doctest_block classes="doctest" xml:space="preserve">>>> import array >>> a = array.array('i', range(1000*1000)) >>> a_bytesobj = a.tostring() >>> c_bytesobj = blosc.compress(a_bytesobj, typesize=4) >>> len(c_bytesobj) < len(a_bytesobj) True</doctest_block></desc_content></desc><index entries="[('single', 'compress_ptr() (in module blosc)', 'blosc.compress_ptr', '', None)]"/><desc desctype="function" domain="py" noindex="False" objtype="function"><desc_signature class="" first="False" fullname="compress_ptr" ids="blosc.compress_ptr" module="blosc" names="blosc.compress_ptr"><desc_addname xml:space="preserve">blosc.</desc_addname><desc_name xml:space="preserve">compress_ptr</desc_name><desc_parameterlist xml:space="preserve"><desc_parameter xml:space="preserve">address, items[, typesize=8, clevel=9, shuffle=blosc.SHUFFLE, cname='blosclz']]</desc_parameter></desc_parameterlist></desc_signature><desc_content><paragraph>Compress the data at address with given items and typesize.</paragraph><field_list><field classes="field-odd"><field_name>Parameters</field_name><field_body><paragraph><strong>address</strong> : int or long</paragraph><block_quote><paragraph>the pointer to the data to be compressed</paragraph></block_quote><paragraph><strong>items</strong> : int</paragraph><block_quote><paragraph>The number of items (of typesize) to be compressed.</paragraph></block_quote><paragraph><strong>typesize</strong> : int</paragraph><block_quote><paragraph>The data type size.</paragraph></block_quote><paragraph><strong>clevel</strong> : int (optional)</paragraph><block_quote><paragraph>The compression level from 0 (no compression) to 9 (maximum compression). The default is 9.</paragraph></block_quote><paragraph><strong>shuffle</strong> : int (optional)</paragraph><block_quote><paragraph>The shuffle filter to be activated. Allowed values are blosc.NOSHUFFLE, blosc.SHUFFLE and blosc.BITSHUFFLE. The default is blosc.SHUFFLE.</paragraph></block_quote><paragraph><strong>cname</strong> : string (optional)</paragraph><block_quote><paragraph>The name of the compressor used internally in Blosc. It can be any of the supported by Blosc (‘blosclz’, ‘lz4’, ‘lz4hc’, ‘snappy’, ‘zlib’, ‘zstd’ and maybe others too). The default is ‘blosclz’.</paragraph></block_quote></field_body></field><field classes="field-even"><field_name>Returns</field_name><field_body><paragraph><strong>out</strong> : str / bytes</paragraph><block_quote><paragraph>The compressed data in form of a Python str / bytes object.</paragraph></block_quote></field_body></field><field classes="field-odd"><field_name>Raises</field_name><field_body><paragraph><strong>TypeError</strong></paragraph><block_quote><paragraph>If address is not of type int or long.</paragraph></block_quote><paragraph><strong>ValueError</strong></paragraph><block_quote><paragraph>If items * typesize is larger than the maximum allowed buffer size. If typesize is not within the allowed range. If clevel is not within the allowed range. If cname is not within the supported compressors.</paragraph></block_quote></field_body></field></field_list><rubric>Notes</rubric><paragraph>This function can be used anywhere that a memory address is available in Python. For example the Numpy “__array_interface__[‘data’][0]†construct, or when using the ctypes modules.</paragraph><paragraph>Importantly, the user is responsible for making sure that the memory address is valid and that the memory pointed to is contiguous. Passing a non-valid address has a high likelihood of crashing the interpreter by segfault.</paragraph><rubric>Examples</rubric><doctest_block classes="doctest" xml:space="preserve">>>> import numpy >>> items = 7 >>> np_array = numpy.arange(items) >>> c = blosc.compress_ptr(np_array.__array_interface__['data'][0], items, np_array.dtype.itemsize) >>> d = blosc.decompress(c) >>> np_ans = numpy.fromstring(d, dtype=np_array.dtype) >>> (np_array == np_ans).all() True</doctest_block><doctest_block classes="doctest" xml:space="preserve">>>> import ctypes >>> typesize = 8 >>> data = [float(i) for i in range(items)] >>> Array = ctypes.c_double * items >>> a = Array(*data) >>> c = blosc.compress_ptr(ctypes.addressof(a), items, typesize) >>> d = blosc.decompress(c) >>> import struct >>> ans = [struct.unpack('d', d[i:i+typesize])[0] for i in range(0, items*typesize, typesize)] >>> data == ans True</doctest_block></desc_content></desc><index entries="[('single', 'decompress() (in module blosc)', 'blosc.decompress', '', None)]"/><desc desctype="function" domain="py" noindex="False" objtype="function"><desc_signature class="" first="False" fullname="decompress" ids="blosc.decompress" module="blosc" names="blosc.decompress"><desc_addname xml:space="preserve">blosc.</desc_addname><desc_name xml:space="preserve">decompress</desc_name><desc_parameterlist xml:space="preserve"><desc_parameter xml:space="preserve">bytesobj</desc_parameter></desc_parameterlist></desc_signature><desc_content><paragraph>Decompresses a bytesobj compressed object.</paragraph><field_list><field classes="field-odd"><field_name>Parameters</field_name><field_body><paragraph><strong>bytesobj</strong> : str / bytes</paragraph><block_quote><paragraph>The data to be decompressed.</paragraph></block_quote><paragraph><strong>as_bytearray</strong> : bool, optional</paragraph><block_quote><paragraph>If this flag is True then the return type will be a bytearray object instead of a bytesobject.</paragraph></block_quote></field_body></field><field classes="field-even"><field_name>Returns</field_name><field_body><paragraph><strong>out</strong> : str / bytes or bytearray</paragraph><block_quote><paragraph>The decompressed data in form of a Python str / bytes object. If as_bytearray is True then this will be a bytearray object, otherwise this will be a str/ bytes object.</paragraph></block_quote></field_body></field><field classes="field-odd"><field_name>Raises</field_name><field_body><paragraph><strong>TypeError</strong></paragraph><block_quote><paragraph>If bytesobj is not of type bytes or string.</paragraph></block_quote></field_body></field></field_list><rubric>Examples</rubric><doctest_block classes="doctest" xml:space="preserve">>>> import array >>> a = array.array('i', range(1000*1000)) >>> a_bytesobj = a.tostring() >>> c_bytesobj = blosc.compress(a_bytesobj, typesize=4) >>> a_bytesobj2 = blosc.decompress(c_bytesobj) >>> a_bytesobj == a_bytesobj2 True >>> b"" == blosc.decompress(blosc.compress(b"", 1)) True >>> b"1"*7 == blosc.decompress(blosc.compress(b"1"*7, 8)) True >>> type(blosc.decompress(blosc.compress(b"1"*7, 8), ... as_bytearray=True)) is bytearray True</doctest_block></desc_content></desc><index entries="[('single', 'decompress_ptr() (in module blosc)', 'blosc.decompress_ptr', '', None)]"/><desc desctype="function" domain="py" noindex="False" objtype="function"><desc_signature class="" first="False" fullname="decompress_ptr" ids="blosc.decompress_ptr" module="blosc" names="blosc.decompress_ptr"><desc_addname xml:space="preserve">blosc.</desc_addname><desc_name xml:space="preserve">decompress_ptr</desc_name><desc_parameterlist xml:space="preserve"><desc_parameter xml:space="preserve">bytesobj</desc_parameter><desc_parameter xml:space="preserve">address</desc_parameter></desc_parameterlist></desc_signature><desc_content><paragraph>Decompresses a bytesobj compressed object into the memory at address.</paragraph><field_list><field classes="field-odd"><field_name>Parameters</field_name><field_body><paragraph><strong>bytesobj</strong> : str / bytes</paragraph><block_quote><paragraph>The data to be decompressed.</paragraph></block_quote><paragraph><strong>address</strong> : int or long</paragraph><block_quote><paragraph>the pointer to the data to be compressed</paragraph></block_quote></field_body></field><field classes="field-even"><field_name>Returns</field_name><field_body><paragraph><strong>nbytes</strong> : int</paragraph><block_quote><paragraph>the number of bytes written to the buffer</paragraph></block_quote></field_body></field><field classes="field-odd"><field_name>Raises</field_name><field_body><paragraph><strong>TypeError</strong></paragraph><block_quote><paragraph>If bytesobj is not of type bytes or string. If address is not of type int or long.</paragraph></block_quote></field_body></field></field_list><rubric>Notes</rubric><paragraph>This function can be used anywhere that a memory address is available in Python. For example the Numpy “__array_interface__[‘data’][0]†construct, or when using the ctypes modules.</paragraph><paragraph>Importantly, the user is responsible for making sure that the memory address is valid and that the memory pointed to is contiguous and can be written to. Passing a non-valid address has a high likelihood of crashing the interpreter by segfault.</paragraph><rubric>Examples</rubric><doctest_block classes="doctest" xml:space="preserve">>>> import numpy >>> items = 7 >>> np_array = numpy.arange(items) >>> c = blosc.compress_ptr(np_array.__array_interface__['data'][0], items, np_array.dtype.itemsize) >>> np_ans = numpy.empty(items, dtype=np_array.dtype) >>> nbytes = blosc.decompress_ptr(c, np_ans.__array_interface__['data'][0]) >>> (np_array == np_ans).all() True >>> nbytes == items * np_array.dtype.itemsize True</doctest_block><doctest_block classes="doctest" xml:space="preserve">>>> import ctypes >>> typesize = 8 >>> data = [float(i) for i in range(items)] >>> Array = ctypes.c_double * items >>> in_array = Array(*data) >>> c = blosc.compress_ptr(ctypes.addressof(in_array), items, typesize) >>> out_array = ctypes.create_string_buffer(items*typesize) >>> nbytes = blosc.decompress_ptr(c, ctypes.addressof(out_array)) >>> import struct >>> ans = [struct.unpack('d', out_array[i:i+typesize])[0] for i in range(0, items*typesize, typesize)] >>> data == ans True >>> nbytes == items * typesize True</doctest_block></desc_content></desc><index entries="[('single', 'pack_array() (in module blosc)', 'blosc.pack_array', '', None)]"/><desc desctype="function" domain="py" noindex="False" objtype="function"><desc_signature class="" first="False" fullname="pack_array" ids="blosc.pack_array" module="blosc" names="blosc.pack_array"><desc_addname xml:space="preserve">blosc.</desc_addname><desc_name xml:space="preserve">pack_array</desc_name><desc_parameterlist xml:space="preserve"><desc_parameter xml:space="preserve">array[, clevel=9, shuffle=blosc.SHUFFLE, cname='blosclz']]</desc_parameter></desc_parameterlist></desc_signature><desc_content><paragraph>Pack (compress) a NumPy array.</paragraph><field_list><field classes="field-odd"><field_name>Parameters</field_name><field_body><paragraph><strong>array</strong> : ndarray</paragraph><block_quote><paragraph>The NumPy array to be packed.</paragraph></block_quote><paragraph><strong>clevel</strong> : int (optional)</paragraph><block_quote><paragraph>The compression level from 0 (no compression) to 9 (maximum compression). The default is 9.</paragraph></block_quote><paragraph><strong>shuffle</strong> : int (optional)</paragraph><block_quote><paragraph>The shuffle filter to be activated. Allowed values are blosc.NOSHUFFLE, blosc.SHUFFLE and blosc.BITSHUFFLE. The default is blosc.SHUFFLE.</paragraph></block_quote><paragraph><strong>cname</strong> : string (optional)</paragraph><block_quote><paragraph>The name of the compressor used internally in Blosc. It can be any of the supported by Blosc (‘blosclz’, ‘lz4’, ‘lz4hc’, ‘snappy’, ‘zlib’, ‘zstd’ and maybe others too). The default is ‘blosclz’.</paragraph></block_quote></field_body></field><field classes="field-even"><field_name>Returns</field_name><field_body><paragraph><strong>out</strong> : str / bytes</paragraph><block_quote><paragraph>The packed array in form of a Python str / bytes object.</paragraph></block_quote></field_body></field><field classes="field-odd"><field_name>Raises</field_name><field_body><paragraph><strong>TypeError</strong></paragraph><block_quote><paragraph>If array does not quack like a numpy ndarray.</paragraph></block_quote><paragraph><strong>ValueError</strong></paragraph><block_quote><definition_list classes="simple"><definition_list_item><term>If array.itemsize * array.size is larger than the maximum allowed</term><definition><paragraph>buffer size.</paragraph></definition></definition_list_item></definition_list><paragraph>If typesize is not within the allowed range. If clevel is not within the allowed range. If cname is not within the supported compressors.</paragraph></block_quote></field_body></field></field_list><rubric>Examples</rubric><doctest_block classes="doctest" xml:space="preserve">>>> import numpy >>> a = numpy.arange(1e6) >>> parray = blosc.pack_array(a) >>> len(parray) < a.size*a.itemsize True</doctest_block></desc_content></desc><index entries="[('single', 'unpack_array() (in module blosc)', 'blosc.unpack_array', '', None)]"/><desc desctype="function" domain="py" noindex="False" objtype="function"><desc_signature class="" first="False" fullname="unpack_array" ids="blosc.unpack_array" module="blosc" names="blosc.unpack_array"><desc_addname xml:space="preserve">blosc.</desc_addname><desc_name xml:space="preserve">unpack_array</desc_name><desc_parameterlist xml:space="preserve"><desc_parameter xml:space="preserve">packed_array</desc_parameter></desc_parameterlist></desc_signature><desc_content><paragraph>Unpack (decompress) a packed NumPy array.</paragraph><field_list><field classes="field-odd"><field_name>Parameters</field_name><field_body><paragraph><strong>packed_array</strong> : str / bytes</paragraph><block_quote><paragraph>The packed array to be decompressed.</paragraph></block_quote></field_body></field><field classes="field-even"><field_name>Returns</field_name><field_body><paragraph><strong>out</strong> : ndarray</paragraph><block_quote><paragraph>The decompressed data in form of a NumPy array.</paragraph></block_quote></field_body></field><field classes="field-odd"><field_name>Raises</field_name><field_body><paragraph><strong>TypeError</strong></paragraph><block_quote><paragraph>If packed_array is not of type bytes or string.</paragraph></block_quote></field_body></field></field_list><rubric>Examples</rubric><doctest_block classes="doctest" xml:space="preserve">>>> import numpy >>> a = numpy.arange(1e6) >>> parray = blosc.pack_array(a) >>> len(parray) < a.size*a.itemsize True >>> a2 = blosc.unpack_array(parray) >>> numpy.alltrue(a == a2) True</doctest_block></desc_content></desc></section> SphinxTranslator.dispatch_visit calling visit_section for <section ids="module-blosc utilities" names="utilities"><title>Utilities</title><index entries="[('single', 'blosc (module)', 'module-blosc', '', None)]"/><index entries="[('single', 'clib_info() (in module blosc)', 'blosc.clib_info', '', None)]"/><desc desctype="function" domain="py" noindex="False" objtype="function"><desc_signature class="" first="False" fullname="clib_info" ids="blosc.clib_info" module="blosc" names="blosc.clib_info"><desc_addname xml:space="preserve">blosc.</desc_addname><desc_name xml:space="preserve">clib_info</desc_name><desc_parameterlist xml:space="preserve"><desc_parameter xml:space="preserve">cname</desc_parameter></desc_parameterlist></desc_signature><desc_content><paragraph>Return info for compression libraries in C library.</paragraph><field_list><field><field_name>Parameters</field_name><field_body><paragraph><strong>cname</strong> : str</paragraph><block_quote><paragraph>The compressor name.</paragraph></block_quote></field_body></field><field><field_name>Returns</field_name><field_body><paragraph><strong>out</strong> : tuple</paragraph><block_quote><paragraph>The associated library name and version.</paragraph></block_quote></field_body></field></field_list></desc_content></desc><index entries="[('single', 'compressor_list() (in module blosc)', 'blosc.compressor_list', '', None)]"/><desc desctype="function" domain="py" noindex="False" objtype="function"><desc_signature class="" first="False" fullname="compressor_list" ids="blosc.compressor_list" module="blosc" names="blosc.compressor_list"><desc_addname xml:space="preserve">blosc.</desc_addname><desc_name xml:space="preserve">compressor_list</desc_name><desc_parameterlist xml:space="preserve"/></desc_signature><desc_content><paragraph>Returns a list of compressors available in C library.</paragraph><field_list><field><field_name>Parameters</field_name><field_body><paragraph><strong>None</strong></paragraph></field_body></field><field><field_name>Returns</field_name><field_body><paragraph><strong>out</strong> : list</paragraph><block_quote><paragraph>The list of names.</paragraph></block_quote></field_body></field></field_list></desc_content></desc><index entries="[('single', 'detect_number_of_cores() (in module blosc)', 'blosc.detect_number_of_cores', '', None)]"/><desc desctype="function" domain="py" noindex="False" objtype="function"><desc_signature class="" first="False" fullname="detect_number_of_cores" ids="blosc.detect_number_of_cores" module="blosc" names="blosc.detect_number_of_cores"><desc_addname xml:space="preserve">blosc.</desc_addname><desc_name xml:space="preserve">detect_number_of_cores</desc_name><desc_parameterlist xml:space="preserve"/></desc_signature><desc_content><paragraph>Detect the number of cores in this system.</paragraph><field_list><field><field_name>Returns</field_name><field_body><paragraph><strong>out</strong> : int</paragraph><block_quote><paragraph>The number of cores in this system.</paragraph></block_quote></field_body></field></field_list></desc_content></desc><index entries="[('single', 'free_resources() (in module blosc)', 'blosc.free_resources', '', None)]"/><desc desctype="function" domain="py" noindex="False" objtype="function"><desc_signature class="" first="False" fullname="free_resources" ids="blosc.free_resources" module="blosc" names="blosc.free_resources"><desc_addname xml:space="preserve">blosc.</desc_addname><desc_name xml:space="preserve">free_resources</desc_name><desc_parameterlist xml:space="preserve"/></desc_signature><desc_content><paragraph>Free possible memory temporaries and thread resources.</paragraph><field_list><field><field_name>Returns</field_name><field_body><paragraph><strong>out</strong> : None</paragraph></field_body></field></field_list><rubric>Notes</rubric><paragraph>Blosc maintain a pool of threads waiting for work as well as some temporary space. You can use this function to release these resources when you are not going to use Blosc for a long while.</paragraph><rubric>Examples</rubric><doctest_block classes="doctest" xml:space="preserve">>>> blosc.free_resources() >>></doctest_block></desc_content></desc><index entries="[('single', 'get_clib() (in module blosc)', 'blosc.get_clib', '', None)]"/><desc desctype="function" domain="py" noindex="False" objtype="function"><desc_signature class="" first="False" fullname="get_clib" ids="blosc.get_clib" module="blosc" names="blosc.get_clib"><desc_addname xml:space="preserve">blosc.</desc_addname><desc_name xml:space="preserve">get_clib</desc_name><desc_parameterlist xml:space="preserve"><desc_parameter xml:space="preserve">bytesobj</desc_parameter></desc_parameterlist></desc_signature><desc_content><paragraph>Return the name of the compression library for Blosc <literal>bytesobj</literal> buffer.</paragraph><field_list><field><field_name>Parameters</field_name><field_body><paragraph><strong>bytesobj</strong> : str / bytes</paragraph><block_quote><paragraph>The compressed buffer.</paragraph></block_quote></field_body></field><field><field_name>Returns</field_name><field_body><paragraph><strong>out</strong> : str</paragraph><block_quote><paragraph>The name of the compression library.</paragraph></block_quote></field_body></field></field_list></desc_content></desc><index entries="[('single', 'set_blocksize() (in module blosc)', 'blosc.set_blocksize', '', None)]"/><desc desctype="function" domain="py" noindex="False" objtype="function"><desc_signature class="" first="False" fullname="set_blocksize" ids="blosc.set_blocksize" module="blosc" names="blosc.set_blocksize"><desc_addname xml:space="preserve">blosc.</desc_addname><desc_name xml:space="preserve">set_blocksize</desc_name><desc_parameterlist xml:space="preserve"><desc_parameter xml:space="preserve">blocksize</desc_parameter></desc_parameterlist></desc_signature><desc_content><paragraph>Force the use of a specific blocksize. If 0, an automatic blocksize will be used (the default).</paragraph><rubric>Notes</rubric><paragraph>This is a low-level function and is recommened for expert users only.</paragraph><rubric>Examples</rubric><doctest_block classes="doctest" xml:space="preserve">>>> blosc.set_blocksize(512)</doctest_block></desc_content></desc><index entries="[('single', 'set_nthreads() (in module blosc)', 'blosc.set_nthreads', '', None)]"/><desc desctype="function" domain="py" noindex="False" objtype="function"><desc_signature class="" first="False" fullname="set_nthreads" ids="blosc.set_nthreads" module="blosc" names="blosc.set_nthreads"><desc_addname xml:space="preserve">blosc.</desc_addname><desc_name xml:space="preserve">set_nthreads</desc_name><desc_parameterlist xml:space="preserve"><desc_parameter xml:space="preserve">nthreads</desc_parameter></desc_parameterlist></desc_signature><desc_content><paragraph>Set the number of threads to be used during Blosc operation.</paragraph><field_list><field><field_name>Parameters</field_name><field_body><paragraph><strong>nthreads</strong> : int</paragraph><block_quote><paragraph>The number of threads to be used during Blosc operation.</paragraph></block_quote></field_body></field><field><field_name>Returns</field_name><field_body><paragraph><strong>out</strong> : int</paragraph><block_quote><paragraph>The previous number of used threads.</paragraph></block_quote></field_body></field><field><field_name>Raises</field_name><field_body><paragraph><strong>ValueError</strong></paragraph><block_quote><paragraph>If nthreads is larger that the maximum number of threads blosc can use.</paragraph></block_quote></field_body></field></field_list><rubric>Notes</rubric><paragraph>The number of threads for Blosc is the maximum number of cores detected on your machine (via <literal>detect_number_of_cores</literal>). In some cases Blosc gets better results if you set the number of threads to a value slightly below than your number of cores.</paragraph><rubric>Examples</rubric><paragraph>Set the number of threads to 2 and then to 1:</paragraph><doctest_block classes="doctest" xml:space="preserve">>>> oldn = blosc.set_nthreads(2) >>> blosc.set_nthreads(1) 2</doctest_block></desc_content></desc><index entries="[('single', 'set_releasegil() (in module blosc)', 'blosc.set_releasegil', '', None)]"/><desc desctype="function" domain="py" noindex="False" objtype="function"><desc_signature class="" first="False" fullname="set_releasegil" ids="blosc.set_releasegil" module="blosc" names="blosc.set_releasegil"><desc_addname xml:space="preserve">blosc.</desc_addname><desc_name xml:space="preserve">set_releasegil</desc_name><desc_parameterlist xml:space="preserve"><desc_parameter xml:space="preserve">gitstate</desc_parameter></desc_parameterlist></desc_signature><desc_content><paragraph>Sets a boolean on whether to release the Python global inter-lock (GIL) during c-blosc compress and decompress operations or not. This defaults to False.</paragraph><rubric>Notes</rubric><paragraph>Designed to be used with larger chunk sizes and a ThreadPool. There is a small performance penalty with releasing the GIL that will more harshly penalize small block sizes.</paragraph><rubric>Examples</rubric><doctest_block classes="doctest" xml:space="preserve">>>> oldReleaseState = blosc.set_releasegil(True)</doctest_block></desc_content></desc><index entries="[('single', 'print_versions() (in module blosc)', 'blosc.print_versions', '', None)]"/><desc desctype="function" domain="py" noindex="False" objtype="function"><desc_signature class="" first="False" fullname="print_versions" ids="blosc.print_versions" module="blosc" names="blosc.print_versions"><desc_addname xml:space="preserve">blosc.</desc_addname><desc_name xml:space="preserve">print_versions</desc_name><desc_parameterlist xml:space="preserve"/></desc_signature><desc_content><paragraph>Print all the versions of software that python-blosc relies on.</paragraph></desc_content></desc></section> SphinxTranslator.dispatch_visit calling visit_title for <title>Utilities</title> SphinxTranslator.dispatch_visit calling visit_Text for Utilities SphinxTranslator.dispatch_departure calling depart_Text for Utilities SphinxTranslator.dispatch_departure calling depart_title for <title>Utilities</title> SphinxTranslator.dispatch_visit calling visit_index for <index entries="[('single', 'blosc (module)', 'module-blosc', '', None)]"/> SphinxTranslator.dispatch_visit calling visit_index for <index entries="[('single', 'clib_info() (in module blosc)', 'blosc.clib_info', '', None)]"/> SphinxTranslator.dispatch_visit calling visit_desc for <desc desctype="function" domain="py" noindex="False" objtype="function"><desc_signature class="" first="False" fullname="clib_info" ids="blosc.clib_info" module="blosc" names="blosc.clib_info"><desc_addname xml:space="preserve">blosc.</desc_addname><desc_name xml:space="preserve">clib_info</desc_name><desc_parameterlist xml:space="preserve"><desc_parameter xml:space="preserve">cname</desc_parameter></desc_parameterlist></desc_signature><desc_content><paragraph>Return info for compression libraries in C library.</paragraph><field_list><field><field_name>Parameters</field_name><field_body><paragraph><strong>cname</strong> : str</paragraph><block_quote><paragraph>The compressor name.</paragraph></block_quote></field_body></field><field><field_name>Returns</field_name><field_body><paragraph><strong>out</strong> : tuple</paragraph><block_quote><paragraph>The associated library name and version.</paragraph></block_quote></field_body></field></field_list></desc_content></desc> SphinxTranslator.dispatch_visit calling visit_desc_signature for <desc_signature class="" first="False" fullname="clib_info" ids="blosc.clib_info" module="blosc" names="blosc.clib_info"><desc_addname xml:space="preserve">blosc.</desc_addname><desc_name xml:space="preserve">clib_info</desc_name><desc_parameterlist xml:space="preserve"><desc_parameter xml:space="preserve">cname</desc_parameter></desc_parameterlist></desc_signature> SphinxTranslator.dispatch_visit calling visit_desc_addname for <desc_addname xml:space="preserve">blosc.</desc_addname> SphinxTranslator.dispatch_visit calling visit_Text for blosc. SphinxTranslator.dispatch_departure calling depart_Text for blosc. SphinxTranslator.dispatch_departure calling depart_desc_addname for <desc_addname xml:space="preserve">blosc.</desc_addname> SphinxTranslator.dispatch_visit calling visit_desc_name for <desc_name xml:space="preserve">clib_info</desc_name> SphinxTranslator.dispatch_visit calling visit_Text for clib_info SphinxTranslator.dispatch_departure calling depart_Text for clib_info SphinxTranslator.dispatch_departure calling depart_desc_name for <desc_name xml:space="preserve">clib_info</desc_name> SphinxTranslator.dispatch_visit calling visit_desc_parameterlist for <desc_parameterlist xml:space="preserve"><desc_parameter xml:space="preserve">cname</desc_parameter></desc_parameterlist> SphinxTranslator.dispatch_visit calling visit_desc_parameter for <desc_parameter xml:space="preserve">cname</desc_parameter> SphinxTranslator.dispatch_visit calling visit_Text for cname SphinxTranslator.dispatch_departure calling depart_Text for cname SphinxTranslator.dispatch_departure calling depart_desc_parameter for <desc_parameter xml:space="preserve">cname</desc_parameter> SphinxTranslator.dispatch_departure calling depart_desc_parameterlist for <desc_parameterlist xml:space="preserve"><desc_parameter xml:space="preserve">cname</desc_parameter></desc_parameterlist> SphinxTranslator.dispatch_departure calling depart_desc_signature for <desc_signature class="" first="False" fullname="clib_info" ids="blosc.clib_info" module="blosc" names="blosc.clib_info"><desc_addname xml:space="preserve">blosc.</desc_addname><desc_name xml:space="preserve">clib_info</desc_name><desc_parameterlist xml:space="preserve"><desc_parameter xml:space="preserve">cname</desc_parameter></desc_parameterlist></desc_signature> SphinxTranslator.dispatch_visit calling visit_desc_content for <desc_content><paragraph>Return info for compression libraries in C library.</paragraph><field_list><field><field_name>Parameters</field_name><field_body><paragraph><strong>cname</strong> : str</paragraph><block_quote><paragraph>The compressor name.</paragraph></block_quote></field_body></field><field><field_name>Returns</field_name><field_body><paragraph><strong>out</strong> : tuple</paragraph><block_quote><paragraph>The associated library name and version.</paragraph></block_quote></field_body></field></field_list></desc_content> SphinxTranslator.dispatch_visit calling visit_paragraph for <paragraph>Return info for compression libraries in C library.</paragraph> SphinxTranslator.dispatch_visit calling visit_Text for Return info for compression libraries in C library. SphinxTranslator.dispatch_departure calling depart_Text for Return info for compression libraries in C library. SphinxTranslator.dispatch_departure calling depart_paragraph for <paragraph>Return info for compression libraries in C library.</paragraph> SphinxTranslator.dispatch_visit calling visit_field_list for <field_list><field><field_name>Parameters</field_name><field_body><paragraph><strong>cname</strong> : str</paragraph><block_quote><paragraph>The compressor name.</paragraph></block_quote></field_body></field><field><field_name>Returns</field_name><field_body><paragraph><strong>out</strong> : tuple</paragraph><block_quote><paragraph>The associated library name and version.</paragraph></block_quote></field_body></field></field_list> SphinxTranslator.dispatch_visit calling visit_field for <field><field_name>Parameters</field_name><field_body><paragraph><strong>cname</strong> : str</paragraph><block_quote><paragraph>The compressor name.</paragraph></block_quote></field_body></field> SphinxTranslator.dispatch_visit calling visit_field_name for <field_name>Parameters</field_name> SphinxTranslator.dispatch_visit calling visit_Text for Parameters SphinxTranslator.dispatch_departure calling depart_Text for Parameters SphinxTranslator.dispatch_departure calling depart_field_name for <field_name>Parameters</field_name> SphinxTranslator.dispatch_visit calling visit_field_body for <field_body><paragraph><strong>cname</strong> : str</paragraph><block_quote><paragraph>The compressor name.</paragraph></block_quote></field_body> SphinxTranslator.dispatch_visit calling visit_paragraph for <paragraph><strong>cname</strong> : str</paragraph> SphinxTranslator.dispatch_visit calling visit_strong for <strong>cname</strong> SphinxTranslator.dispatch_visit calling visit_Text for cname SphinxTranslator.dispatch_departure calling depart_Text for cname SphinxTranslator.dispatch_departure calling depart_strong for <strong>cname</strong> SphinxTranslator.dispatch_visit calling visit_Text for : str SphinxTranslator.dispatch_departure calling depart_Text for : str SphinxTranslator.dispatch_departure calling depart_paragraph for <paragraph><strong>cname</strong> : str</paragraph> SphinxTranslator.dispatch_visit calling visit_block_quote for <block_quote><paragraph>The compressor name.</paragraph></block_quote> SphinxTranslator.dispatch_visit calling visit_paragraph for <paragraph>The compressor name.</paragraph> SphinxTranslator.dispatch_visit calling visit_Text for The compressor name. SphinxTranslator.dispatch_departure calling depart_Text for The compressor name. SphinxTranslator.dispatch_departure calling depart_paragraph for <paragraph>The compressor name.</paragraph> SphinxTranslator.dispatch_departure calling depart_block_quote for <block_quote><paragraph>The compressor name.</paragraph></block_quote> SphinxTranslator.dispatch_departure calling depart_field_body for <field_body><paragraph><strong>cname</strong> : str</paragraph><block_quote><paragraph>The compressor name.</paragraph></block_quote></field_body> SphinxTranslator.dispatch_departure calling depart_field for <field classes="field-odd"><field_name>Parameters</field_name><field_body><paragraph><strong>cname</strong> : str</paragraph><block_quote><paragraph>The compressor name.</paragraph></block_quote></field_body></field> SphinxTranslator.dispatch_visit calling visit_field for <field><field_name>Returns</field_name><field_body><paragraph><strong>out</strong> : tuple</paragraph><block_quote><paragraph>The associated library name and version.</paragraph></block_quote></field_body></field> SphinxTranslator.dispatch_visit calling visit_field_name for <field_name>Returns</field_name> SphinxTranslator.dispatch_visit calling visit_Text for Returns SphinxTranslator.dispatch_departure calling depart_Text for Returns SphinxTranslator.dispatch_departure calling depart_field_name for <field_name>Returns</field_name> SphinxTranslator.dispatch_visit calling visit_field_body for <field_body><paragraph><strong>out</strong> : tuple</paragraph><block_quote><paragraph>The associated library name and version.</paragraph></block_quote></field_body> SphinxTranslator.dispatch_visit calling visit_paragraph for <paragraph><strong>out</strong> : tuple</paragraph> SphinxTranslator.dispatch_visit calling visit_strong for <strong>out</strong> SphinxTranslator.dispatch_visit calling visit_Text for out SphinxTranslator.dispatch_departure calling depart_Text for out SphinxTranslator.dispatch_departure calling depart_strong for <strong>out</strong> SphinxTranslator.dispatch_visit calling visit_Text for : tuple SphinxTranslator.dispatch_departure calling depart_Text for : tuple SphinxTranslator.dispatch_departure calling depart_paragraph for <paragraph><strong>out</strong> : tuple</paragraph> SphinxTranslator.dispatch_visit calling visit_block_quote for <block_quote><paragraph>The associated library name and version.</paragraph></block_quote> SphinxTranslator.dispatch_visit calling visit_paragraph for <paragraph>The associated library name and version.</paragraph> SphinxTranslator.dispatch_visit calling visit_Text for The associated library name and version. SphinxTranslator.dispatch_departure calling depart_Text for The associated library name and version. SphinxTranslator.dispatch_departure calling depart_paragraph for <paragraph>The associated library name and version.</paragraph> SphinxTranslator.dispatch_departure calling depart_block_quote for <block_quote><paragraph>The associated library name and version.</paragraph></block_quote> SphinxTranslator.dispatch_departure calling depart_field_body for <field_body><paragraph><strong>out</strong> : tuple</paragraph><block_quote><paragraph>The associated library name and version.</paragraph></block_quote></field_body> SphinxTranslator.dispatch_departure calling depart_field for <field classes="field-even"><field_name>Returns</field_name><field_body><paragraph><strong>out</strong> : tuple</paragraph><block_quote><paragraph>The associated library name and version.</paragraph></block_quote></field_body></field> SphinxTranslator.dispatch_departure calling depart_field_list for <field_list><field classes="field-odd"><field_name>Parameters</field_name><field_body><paragraph><strong>cname</strong> : str</paragraph><block_quote><paragraph>The compressor name.</paragraph></block_quote></field_body></field><field classes="field-even"><field_name>Returns</field_name><field_body><paragraph><strong>out</strong> : tuple</paragraph><block_quote><paragraph>The associated library name and version.</paragraph></block_quote></field_body></field></field_list> SphinxTranslator.dispatch_departure calling depart_desc_content for <desc_content><paragraph>Return info for compression libraries in C library.</paragraph><field_list><field classes="field-odd"><field_name>Parameters</field_name><field_body><paragraph><strong>cname</strong> : str</paragraph><block_quote><paragraph>The compressor name.</paragraph></block_quote></field_body></field><field classes="field-even"><field_name>Returns</field_name><field_body><paragraph><strong>out</strong> : tuple</paragraph><block_quote><paragraph>The associated library name and version.</paragraph></block_quote></field_body></field></field_list></desc_content> SphinxTranslator.dispatch_departure calling depart_desc for <desc desctype="function" domain="py" noindex="False" objtype="function"><desc_signature class="" first="False" fullname="clib_info" ids="blosc.clib_info" module="blosc" names="blosc.clib_info"><desc_addname xml:space="preserve">blosc.</desc_addname><desc_name xml:space="preserve">clib_info</desc_name><desc_parameterlist xml:space="preserve"><desc_parameter xml:space="preserve">cname</desc_parameter></desc_parameterlist></desc_signature><desc_content><paragraph>Return info for compression libraries in C library.</paragraph><field_list><field classes="field-odd"><field_name>Parameters</field_name><field_body><paragraph><strong>cname</strong> : str</paragraph><block_quote><paragraph>The compressor name.</paragraph></block_quote></field_body></field><field classes="field-even"><field_name>Returns</field_name><field_body><paragraph><strong>out</strong> : tuple</paragraph><block_quote><paragraph>The associated library name and version.</paragraph></block_quote></field_body></field></field_list></desc_content></desc> SphinxTranslator.dispatch_visit calling visit_index for <index entries="[('single', 'compressor_list() (in module blosc)', 'blosc.compressor_list', '', None)]"/> SphinxTranslator.dispatch_visit calling visit_desc for <desc desctype="function" domain="py" noindex="False" objtype="function"><desc_signature class="" first="False" fullname="compressor_list" ids="blosc.compressor_list" module="blosc" names="blosc.compressor_list"><desc_addname xml:space="preserve">blosc.</desc_addname><desc_name xml:space="preserve">compressor_list</desc_name><desc_parameterlist xml:space="preserve"/></desc_signature><desc_content><paragraph>Returns a list of compressors available in C library.</paragraph><field_list><field><field_name>Parameters</field_name><field_body><paragraph><strong>None</strong></paragraph></field_body></field><field><field_name>Returns</field_name><field_body><paragraph><strong>out</strong> : list</paragraph><block_quote><paragraph>The list of names.</paragraph></block_quote></field_body></field></field_list></desc_content></desc> SphinxTranslator.dispatch_visit calling visit_desc_signature for <desc_signature class="" first="False" fullname="compressor_list" ids="blosc.compressor_list" module="blosc" names="blosc.compressor_list"><desc_addname xml:space="preserve">blosc.</desc_addname><desc_name xml:space="preserve">compressor_list</desc_name><desc_parameterlist xml:space="preserve"/></desc_signature> SphinxTranslator.dispatch_visit calling visit_desc_addname for <desc_addname xml:space="preserve">blosc.</desc_addname> SphinxTranslator.dispatch_visit calling visit_Text for blosc. SphinxTranslator.dispatch_departure calling depart_Text for blosc. SphinxTranslator.dispatch_departure calling depart_desc_addname for <desc_addname xml:space="preserve">blosc.</desc_addname> SphinxTranslator.dispatch_visit calling visit_desc_name for <desc_name xml:space="preserve">compressor_list</desc_name> SphinxTranslator.dispatch_visit calling visit_Text for compressor_list SphinxTranslator.dispatch_departure calling depart_Text for compressor_list SphinxTranslator.dispatch_departure calling depart_desc_name for <desc_name xml:space="preserve">compressor_list</desc_name> SphinxTranslator.dispatch_visit calling visit_desc_parameterlist for <desc_parameterlist xml:space="preserve"/> SphinxTranslator.dispatch_departure calling depart_desc_parameterlist for <desc_parameterlist xml:space="preserve"/> SphinxTranslator.dispatch_departure calling depart_desc_signature for <desc_signature class="" first="False" fullname="compressor_list" ids="blosc.compressor_list" module="blosc" names="blosc.compressor_list"><desc_addname xml:space="preserve">blosc.</desc_addname><desc_name xml:space="preserve">compressor_list</desc_name><desc_parameterlist xml:space="preserve"/></desc_signature> SphinxTranslator.dispatch_visit calling visit_desc_content for <desc_content><paragraph>Returns a list of compressors available in C library.</paragraph><field_list><field><field_name>Parameters</field_name><field_body><paragraph><strong>None</strong></paragraph></field_body></field><field><field_name>Returns</field_name><field_body><paragraph><strong>out</strong> : list</paragraph><block_quote><paragraph>The list of names.</paragraph></block_quote></field_body></field></field_list></desc_content> SphinxTranslator.dispatch_visit calling visit_paragraph for <paragraph>Returns a list of compressors available in C library.</paragraph> SphinxTranslator.dispatch_visit calling visit_Text for Returns a list of compressors available in C library. SphinxTranslator.dispatch_departure calling depart_Text for Returns a list of compressors available in C library. SphinxTranslator.dispatch_departure calling depart_paragraph for <paragraph>Returns a list of compressors available in C library.</paragraph> SphinxTranslator.dispatch_visit calling visit_field_list for <field_list><field><field_name>Parameters</field_name><field_body><paragraph><strong>None</strong></paragraph></field_body></field><field><field_name>Returns</field_name><field_body><paragraph><strong>out</strong> : list</paragraph><block_quote><paragraph>The list of names.</paragraph></block_quote></field_body></field></field_list> SphinxTranslator.dispatch_visit calling visit_field for <field><field_name>Parameters</field_name><field_body><paragraph><strong>None</strong></paragraph></field_body></field> SphinxTranslator.dispatch_visit calling visit_field_name for <field_name>Parameters</field_name> SphinxTranslator.dispatch_visit calling visit_Text for Parameters SphinxTranslator.dispatch_departure calling depart_Text for Parameters SphinxTranslator.dispatch_departure calling depart_field_name for <field_name>Parameters</field_name> SphinxTranslator.dispatch_visit calling visit_field_body for <field_body><paragraph><strong>None</strong></paragraph></field_body> SphinxTranslator.dispatch_visit calling visit_paragraph for <paragraph><strong>None</strong></paragraph> SphinxTranslator.dispatch_visit calling visit_strong for <strong>None</strong> SphinxTranslator.dispatch_visit calling visit_Text for None SphinxTranslator.dispatch_departure calling depart_Text for None SphinxTranslator.dispatch_departure calling depart_strong for <strong>None</strong> SphinxTranslator.dispatch_departure calling depart_paragraph for <paragraph><strong>None</strong></paragraph> SphinxTranslator.dispatch_departure calling depart_field_body for <field_body><paragraph><strong>None</strong></paragraph></field_body> SphinxTranslator.dispatch_departure calling depart_field for <field classes="field-odd"><field_name>Parameters</field_name><field_body><paragraph><strong>None</strong></paragraph></field_body></field> SphinxTranslator.dispatch_visit calling visit_field for <field><field_name>Returns</field_name><field_body><paragraph><strong>out</strong> : list</paragraph><block_quote><paragraph>The list of names.</paragraph></block_quote></field_body></field> SphinxTranslator.dispatch_visit calling visit_field_name for <field_name>Returns</field_name> SphinxTranslator.dispatch_visit calling visit_Text for Returns SphinxTranslator.dispatch_departure calling depart_Text for Returns SphinxTranslator.dispatch_departure calling depart_field_name for <field_name>Returns</field_name> SphinxTranslator.dispatch_visit calling visit_field_body for <field_body><paragraph><strong>out</strong> : list</paragraph><block_quote><paragraph>The list of names.</paragraph></block_quote></field_body> SphinxTranslator.dispatch_visit calling visit_paragraph for <paragraph><strong>out</strong> : list</paragraph> SphinxTranslator.dispatch_visit calling visit_strong for <strong>out</strong> SphinxTranslator.dispatch_visit calling visit_Text for out SphinxTranslator.dispatch_departure calling depart_Text for out SphinxTranslator.dispatch_departure calling depart_strong for <strong>out</strong> SphinxTranslator.dispatch_visit calling visit_Text for : list SphinxTranslator.dispatch_departure calling depart_Text for : list SphinxTranslator.dispatch_departure calling depart_paragraph for <paragraph><strong>out</strong> : list</paragraph> SphinxTranslator.dispatch_visit calling visit_block_quote for <block_quote><paragraph>The list of names.</paragraph></block_quote> SphinxTranslator.dispatch_visit calling visit_paragraph for <paragraph>The list of names.</paragraph> SphinxTranslator.dispatch_visit calling visit_Text for The list of names. SphinxTranslator.dispatch_departure calling depart_Text for The list of names. SphinxTranslator.dispatch_departure calling depart_paragraph for <paragraph>The list of names.</paragraph> SphinxTranslator.dispatch_departure calling depart_block_quote for <block_quote><paragraph>The list of names.</paragraph></block_quote> SphinxTranslator.dispatch_departure calling depart_field_body for <field_body><paragraph><strong>out</strong> : list</paragraph><block_quote><paragraph>The list of names.</paragraph></block_quote></field_body> SphinxTranslator.dispatch_departure calling depart_field for <field classes="field-even"><field_name>Returns</field_name><field_body><paragraph><strong>out</strong> : list</paragraph><block_quote><paragraph>The list of names.</paragraph></block_quote></field_body></field> SphinxTranslator.dispatch_departure calling depart_field_list for <field_list><field classes="field-odd"><field_name>Parameters</field_name><field_body><paragraph><strong>None</strong></paragraph></field_body></field><field classes="field-even"><field_name>Returns</field_name><field_body><paragraph><strong>out</strong> : list</paragraph><block_quote><paragraph>The list of names.</paragraph></block_quote></field_body></field></field_list> SphinxTranslator.dispatch_departure calling depart_desc_content for <desc_content><paragraph>Returns a list of compressors available in C library.</paragraph><field_list><field classes="field-odd"><field_name>Parameters</field_name><field_body><paragraph><strong>None</strong></paragraph></field_body></field><field classes="field-even"><field_name>Returns</field_name><field_body><paragraph><strong>out</strong> : list</paragraph><block_quote><paragraph>The list of names.</paragraph></block_quote></field_body></field></field_list></desc_content> SphinxTranslator.dispatch_departure calling depart_desc for <desc desctype="function" domain="py" noindex="False" objtype="function"><desc_signature class="" first="False" fullname="compressor_list" ids="blosc.compressor_list" module="blosc" names="blosc.compressor_list"><desc_addname xml:space="preserve">blosc.</desc_addname><desc_name xml:space="preserve">compressor_list</desc_name><desc_parameterlist xml:space="preserve"/></desc_signature><desc_content><paragraph>Returns a list of compressors available in C library.</paragraph><field_list><field classes="field-odd"><field_name>Parameters</field_name><field_body><paragraph><strong>None</strong></paragraph></field_body></field><field classes="field-even"><field_name>Returns</field_name><field_body><paragraph><strong>out</strong> : list</paragraph><block_quote><paragraph>The list of names.</paragraph></block_quote></field_body></field></field_list></desc_content></desc> SphinxTranslator.dispatch_visit calling visit_index for <index entries="[('single', 'detect_number_of_cores() (in module blosc)', 'blosc.detect_number_of_cores', '', None)]"/> SphinxTranslator.dispatch_visit calling visit_desc for <desc desctype="function" domain="py" noindex="False" objtype="function"><desc_signature class="" first="False" fullname="detect_number_of_cores" ids="blosc.detect_number_of_cores" module="blosc" names="blosc.detect_number_of_cores"><desc_addname xml:space="preserve">blosc.</desc_addname><desc_name xml:space="preserve">detect_number_of_cores</desc_name><desc_parameterlist xml:space="preserve"/></desc_signature><desc_content><paragraph>Detect the number of cores in this system.</paragraph><field_list><field><field_name>Returns</field_name><field_body><paragraph><strong>out</strong> : int</paragraph><block_quote><paragraph>The number of cores in this system.</paragraph></block_quote></field_body></field></field_list></desc_content></desc> SphinxTranslator.dispatch_visit calling visit_desc_signature for <desc_signature class="" first="False" fullname="detect_number_of_cores" ids="blosc.detect_number_of_cores" module="blosc" names="blosc.detect_number_of_cores"><desc_addname xml:space="preserve">blosc.</desc_addname><desc_name xml:space="preserve">detect_number_of_cores</desc_name><desc_parameterlist xml:space="preserve"/></desc_signature> SphinxTranslator.dispatch_visit calling visit_desc_addname for <desc_addname xml:space="preserve">blosc.</desc_addname> SphinxTranslator.dispatch_visit calling visit_Text for blosc. SphinxTranslator.dispatch_departure calling depart_Text for blosc. SphinxTranslator.dispatch_departure calling depart_desc_addname for <desc_addname xml:space="preserve">blosc.</desc_addname> SphinxTranslator.dispatch_visit calling visit_desc_name for <desc_name xml:space="preserve">detect_number_of_cores</desc_name> SphinxTranslator.dispatch_visit calling visit_Text for detect_number_of_cores SphinxTranslator.dispatch_departure calling depart_Text for detect_number_of_cores SphinxTranslator.dispatch_departure calling depart_desc_name for <desc_name xml:space="preserve">detect_number_of_cores</desc_name> SphinxTranslator.dispatch_visit calling visit_desc_parameterlist for <desc_parameterlist xml:space="preserve"/> SphinxTranslator.dispatch_departure calling depart_desc_parameterlist for <desc_parameterlist xml:space="preserve"/> SphinxTranslator.dispatch_departure calling depart_desc_signature for <desc_signature class="" first="False" fullname="detect_number_of_cores" ids="blosc.detect_number_of_cores" module="blosc" names="blosc.detect_number_of_cores"><desc_addname xml:space="preserve">blosc.</desc_addname><desc_name xml:space="preserve">detect_number_of_cores</desc_name><desc_parameterlist xml:space="preserve"/></desc_signature> SphinxTranslator.dispatch_visit calling visit_desc_content for <desc_content><paragraph>Detect the number of cores in this system.</paragraph><field_list><field><field_name>Returns</field_name><field_body><paragraph><strong>out</strong> : int</paragraph><block_quote><paragraph>The number of cores in this system.</paragraph></block_quote></field_body></field></field_list></desc_content> SphinxTranslator.dispatch_visit calling visit_paragraph for <paragraph>Detect the number of cores in this system.</paragraph> SphinxTranslator.dispatch_visit calling visit_Text for Detect the number of cores in this system. SphinxTranslator.dispatch_departure calling depart_Text for Detect the number of cores in this system. SphinxTranslator.dispatch_departure calling depart_paragraph for <paragraph>Detect the number of cores in this system.</paragraph> SphinxTranslator.dispatch_visit calling visit_field_list for <field_list><field><field_name>Returns</field_name><field_body><paragraph><strong>out</strong> : int</paragraph><block_quote><paragraph>The number of cores in this system.</paragraph></block_quote></field_body></field></field_list> SphinxTranslator.dispatch_visit calling visit_field for <field><field_name>Returns</field_name><field_body><paragraph><strong>out</strong> : int</paragraph><block_quote><paragraph>The number of cores in this system.</paragraph></block_quote></field_body></field> SphinxTranslator.dispatch_visit calling visit_field_name for <field_name>Returns</field_name> SphinxTranslator.dispatch_visit calling visit_Text for Returns SphinxTranslator.dispatch_departure calling depart_Text for Returns SphinxTranslator.dispatch_departure calling depart_field_name for <field_name>Returns</field_name> SphinxTranslator.dispatch_visit calling visit_field_body for <field_body><paragraph><strong>out</strong> : int</paragraph><block_quote><paragraph>The number of cores in this system.</paragraph></block_quote></field_body> SphinxTranslator.dispatch_visit calling visit_paragraph for <paragraph><strong>out</strong> : int</paragraph> SphinxTranslator.dispatch_visit calling visit_strong for <strong>out</strong> SphinxTranslator.dispatch_visit calling visit_Text for out SphinxTranslator.dispatch_departure calling depart_Text for out SphinxTranslator.dispatch_departure calling depart_strong for <strong>out</strong> SphinxTranslator.dispatch_visit calling visit_Text for : int SphinxTranslator.dispatch_departure calling depart_Text for : int SphinxTranslator.dispatch_departure calling depart_paragraph for <paragraph><strong>out</strong> : int</paragraph> SphinxTranslator.dispatch_visit calling visit_block_quote for <block_quote><paragraph>The number of cores in this system.</paragraph></block_quote> SphinxTranslator.dispatch_visit calling visit_paragraph for <paragraph>The number of cores in this system.</paragraph> SphinxTranslator.dispatch_visit calling visit_Text for The number of cores in this system. SphinxTranslator.dispatch_departure calling depart_Text for The number of cores in this system. SphinxTranslator.dispatch_departure calling depart_paragraph for <paragraph>The number of cores in this system.</paragraph> SphinxTranslator.dispatch_departure calling depart_block_quote for <block_quote><paragraph>The number of cores in this system.</paragraph></block_quote> SphinxTranslator.dispatch_departure calling depart_field_body for <field_body><paragraph><strong>out</strong> : int</paragraph><block_quote><paragraph>The number of cores in this system.</paragraph></block_quote></field_body> SphinxTranslator.dispatch_departure calling depart_field for <field classes="field-odd"><field_name>Returns</field_name><field_body><paragraph><strong>out</strong> : int</paragraph><block_quote><paragraph>The number of cores in this system.</paragraph></block_quote></field_body></field> SphinxTranslator.dispatch_departure calling depart_field_list for <field_list><field classes="field-odd"><field_name>Returns</field_name><field_body><paragraph><strong>out</strong> : int</paragraph><block_quote><paragraph>The number of cores in this system.</paragraph></block_quote></field_body></field></field_list> SphinxTranslator.dispatch_departure calling depart_desc_content for <desc_content><paragraph>Detect the number of cores in this system.</paragraph><field_list><field classes="field-odd"><field_name>Returns</field_name><field_body><paragraph><strong>out</strong> : int</paragraph><block_quote><paragraph>The number of cores in this system.</paragraph></block_quote></field_body></field></field_list></desc_content> SphinxTranslator.dispatch_departure calling depart_desc for <desc desctype="function" domain="py" noindex="False" objtype="function"><desc_signature class="" first="False" fullname="detect_number_of_cores" ids="blosc.detect_number_of_cores" module="blosc" names="blosc.detect_number_of_cores"><desc_addname xml:space="preserve">blosc.</desc_addname><desc_name xml:space="preserve">detect_number_of_cores</desc_name><desc_parameterlist xml:space="preserve"/></desc_signature><desc_content><paragraph>Detect the number of cores in this system.</paragraph><field_list><field classes="field-odd"><field_name>Returns</field_name><field_body><paragraph><strong>out</strong> : int</paragraph><block_quote><paragraph>The number of cores in this system.</paragraph></block_quote></field_body></field></field_list></desc_content></desc> SphinxTranslator.dispatch_visit calling visit_index for <index entries="[('single', 'free_resources() (in module blosc)', 'blosc.free_resources', '', None)]"/> SphinxTranslator.dispatch_visit calling visit_desc for <desc desctype="function" domain="py" noindex="False" objtype="function"><desc_signature class="" first="False" fullname="free_resources" ids="blosc.free_resources" module="blosc" names="blosc.free_resources"><desc_addname xml:space="preserve">blosc.</desc_addname><desc_name xml:space="preserve">free_resources</desc_name><desc_parameterlist xml:space="preserve"/></desc_signature><desc_content><paragraph>Free possible memory temporaries and thread resources.</paragraph><field_list><field><field_name>Returns</field_name><field_body><paragraph><strong>out</strong> : None</paragraph></field_body></field></field_list><rubric>Notes</rubric><paragraph>Blosc maintain a pool of threads waiting for work as well as some temporary space. You can use this function to release these resources when you are not going to use Blosc for a long while.</paragraph><rubric>Examples</rubric><doctest_block classes="doctest" xml:space="preserve">>>> blosc.free_resources() >>></doctest_block></desc_content></desc> SphinxTranslator.dispatch_visit calling visit_desc_signature for <desc_signature class="" first="False" fullname="free_resources" ids="blosc.free_resources" module="blosc" names="blosc.free_resources"><desc_addname xml:space="preserve">blosc.</desc_addname><desc_name xml:space="preserve">free_resources</desc_name><desc_parameterlist xml:space="preserve"/></desc_signature> SphinxTranslator.dispatch_visit calling visit_desc_addname for <desc_addname xml:space="preserve">blosc.</desc_addname> SphinxTranslator.dispatch_visit calling visit_Text for blosc. SphinxTranslator.dispatch_departure calling depart_Text for blosc. SphinxTranslator.dispatch_departure calling depart_desc_addname for <desc_addname xml:space="preserve">blosc.</desc_addname> SphinxTranslator.dispatch_visit calling visit_desc_name for <desc_name xml:space="preserve">free_resources</desc_name> SphinxTranslator.dispatch_visit calling visit_Text for free_resources SphinxTranslator.dispatch_departure calling depart_Text for free_resources SphinxTranslator.dispatch_departure calling depart_desc_name for <desc_name xml:space="preserve">free_resources</desc_name> SphinxTranslator.dispatch_visit calling visit_desc_parameterlist for <desc_parameterlist xml:space="preserve"/> SphinxTranslator.dispatch_departure calling depart_desc_parameterlist for <desc_parameterlist xml:space="preserve"/> SphinxTranslator.dispatch_departure calling depart_desc_signature for <desc_signature class="" first="False" fullname="free_resources" ids="blosc.free_resources" module="blosc" names="blosc.free_resources"><desc_addname xml:space="preserve">blosc.</desc_addname><desc_name xml:space="preserve">free_resources</desc_name><desc_parameterlist xml:space="preserve"/></desc_signature> SphinxTranslator.dispatch_visit calling visit_desc_content for <desc_content><paragraph>Free possible memory temporaries and thread resources.</paragraph><field_list><field><field_name>Returns</field_name><field_body><paragraph><strong>out</strong> : None</paragraph></field_body></field></field_list><rubric>Notes</rubric><paragraph>Blosc maintain a pool of threads waiting for work as well as some temporary space. You can use this function to release these resources when you are not going to use Blosc for a long while.</paragraph><rubric>Examples</rubric><doctest_block classes="doctest" xml:space="preserve">>>> blosc.free_resources() >>></doctest_block></desc_content> SphinxTranslator.dispatch_visit calling visit_paragraph for <paragraph>Free possible memory temporaries and thread resources.</paragraph> SphinxTranslator.dispatch_visit calling visit_Text for Free possible memory temporaries and thread resources. SphinxTranslator.dispatch_departure calling depart_Text for Free possible memory temporaries and thread resources. SphinxTranslator.dispatch_departure calling depart_paragraph for <paragraph>Free possible memory temporaries and thread resources.</paragraph> SphinxTranslator.dispatch_visit calling visit_field_list for <field_list><field><field_name>Returns</field_name><field_body><paragraph><strong>out</strong> : None</paragraph></field_body></field></field_list> SphinxTranslator.dispatch_visit calling visit_field for <field><field_name>Returns</field_name><field_body><paragraph><strong>out</strong> : None</paragraph></field_body></field> SphinxTranslator.dispatch_visit calling visit_field_name for <field_name>Returns</field_name> SphinxTranslator.dispatch_visit calling visit_Text for Returns SphinxTranslator.dispatch_departure calling depart_Text for Returns SphinxTranslator.dispatch_departure calling depart_field_name for <field_name>Returns</field_name> SphinxTranslator.dispatch_visit calling visit_field_body for <field_body><paragraph><strong>out</strong> : None</paragraph></field_body> SphinxTranslator.dispatch_visit calling visit_paragraph for <paragraph><strong>out</strong> : None</paragraph> SphinxTranslator.dispatch_visit calling visit_strong for <strong>out</strong> SphinxTranslator.dispatch_visit calling visit_Text for out SphinxTranslator.dispatch_departure calling depart_Text for out SphinxTranslator.dispatch_departure calling depart_strong for <strong>out</strong> SphinxTranslator.dispatch_visit calling visit_Text for : None SphinxTranslator.dispatch_departure calling depart_Text for : None SphinxTranslator.dispatch_departure calling depart_paragraph for <paragraph><strong>out</strong> : None</paragraph> SphinxTranslator.dispatch_departure calling depart_field_body for <field_body><paragraph><strong>out</strong> : None</paragraph></field_body> SphinxTranslator.dispatch_departure calling depart_field for <field classes="field-odd"><field_name>Returns</field_name><field_body><paragraph><strong>out</strong> : None</paragraph></field_body></field> SphinxTranslator.dispatch_departure calling depart_field_list for <field_list><field classes="field-odd"><field_name>Returns</field_name><field_body><paragraph><strong>out</strong> : None</paragraph></field_body></field></field_list> SphinxTranslator.dispatch_visit calling visit_rubric for <rubric>Notes</rubric> SphinxTranslator.dispatch_visit calling visit_Text for Notes SphinxTranslator.dispatch_departure calling depart_Text for Notes SphinxTranslator.dispatch_departure calling depart_rubric for <rubric>Notes</rubric> SphinxTranslator.dispatch_visit calling visit_paragraph for <paragraph>Blosc maintain a pool of threads waiting for work as well as some temporary space. You can use this function to release these resources when you are not going to use Blosc for a long while.</paragraph> SphinxTranslator.dispatch_visit calling visit_Text for Blosc maintain a pool of threads waiting for work as well as some temporary space. You can use this function to release these resources when you are not going to use Blosc for a long while. SphinxTranslator.dispatch_departure calling depart_Text for Blosc maintain a pool of threads waiting for work as well as some temporary space. You can use this function to release these resources when you are not going to use Blosc for a long while. SphinxTranslator.dispatch_departure calling depart_paragraph for <paragraph>Blosc maintain a pool of threads waiting for work as well as some temporary space. You can use this function to release these resources when you are not going to use Blosc for a long while.</paragraph> SphinxTranslator.dispatch_visit calling visit_rubric for <rubric>Examples</rubric> SphinxTranslator.dispatch_visit calling visit_Text for Examples SphinxTranslator.dispatch_departure calling depart_Text for Examples SphinxTranslator.dispatch_departure calling depart_rubric for <rubric>Examples</rubric> SphinxTranslator.dispatch_visit calling visit_doctest_block for <doctest_block classes="doctest" xml:space="preserve">>>> blosc.free_resources() >>></doctest_block> SphinxTranslator.dispatch_departure calling depart_desc_content for <desc_content><paragraph>Free possible memory temporaries and thread resources.</paragraph><field_list><field classes="field-odd"><field_name>Returns</field_name><field_body><paragraph><strong>out</strong> : None</paragraph></field_body></field></field_list><rubric>Notes</rubric><paragraph>Blosc maintain a pool of threads waiting for work as well as some temporary space. You can use this function to release these resources when you are not going to use Blosc for a long while.</paragraph><rubric>Examples</rubric><doctest_block classes="doctest" xml:space="preserve">>>> blosc.free_resources() >>></doctest_block></desc_content> SphinxTranslator.dispatch_departure calling depart_desc for <desc desctype="function" domain="py" noindex="False" objtype="function"><desc_signature class="" first="False" fullname="free_resources" ids="blosc.free_resources" module="blosc" names="blosc.free_resources"><desc_addname xml:space="preserve">blosc.</desc_addname><desc_name xml:space="preserve">free_resources</desc_name><desc_parameterlist xml:space="preserve"/></desc_signature><desc_content><paragraph>Free possible memory temporaries and thread resources.</paragraph><field_list><field classes="field-odd"><field_name>Returns</field_name><field_body><paragraph><strong>out</strong> : None</paragraph></field_body></field></field_list><rubric>Notes</rubric><paragraph>Blosc maintain a pool of threads waiting for work as well as some temporary space. You can use this function to release these resources when you are not going to use Blosc for a long while.</paragraph><rubric>Examples</rubric><doctest_block classes="doctest" xml:space="preserve">>>> blosc.free_resources() >>></doctest_block></desc_content></desc> SphinxTranslator.dispatch_visit calling visit_index for <index entries="[('single', 'get_clib() (in module blosc)', 'blosc.get_clib', '', None)]"/> SphinxTranslator.dispatch_visit calling visit_desc for <desc desctype="function" domain="py" noindex="False" objtype="function"><desc_signature class="" first="False" fullname="get_clib" ids="blosc.get_clib" module="blosc" names="blosc.get_clib"><desc_addname xml:space="preserve">blosc.</desc_addname><desc_name xml:space="preserve">get_clib</desc_name><desc_parameterlist xml:space="preserve"><desc_parameter xml:space="preserve">bytesobj</desc_parameter></desc_parameterlist></desc_signature><desc_content><paragraph>Return the name of the compression library for Blosc <literal>bytesobj</literal> buffer.</paragraph><field_list><field><field_name>Parameters</field_name><field_body><paragraph><strong>bytesobj</strong> : str / bytes</paragraph><block_quote><paragraph>The compressed buffer.</paragraph></block_quote></field_body></field><field><field_name>Returns</field_name><field_body><paragraph><strong>out</strong> : str</paragraph><block_quote><paragraph>The name of the compression library.</paragraph></block_quote></field_body></field></field_list></desc_content></desc> SphinxTranslator.dispatch_visit calling visit_desc_signature for <desc_signature class="" first="False" fullname="get_clib" ids="blosc.get_clib" module="blosc" names="blosc.get_clib"><desc_addname xml:space="preserve">blosc.</desc_addname><desc_name xml:space="preserve">get_clib</desc_name><desc_parameterlist xml:space="preserve"><desc_parameter xml:space="preserve">bytesobj</desc_parameter></desc_parameterlist></desc_signature> SphinxTranslator.dispatch_visit calling visit_desc_addname for <desc_addname xml:space="preserve">blosc.</desc_addname> SphinxTranslator.dispatch_visit calling visit_Text for blosc. SphinxTranslator.dispatch_departure calling depart_Text for blosc. SphinxTranslator.dispatch_departure calling depart_desc_addname for <desc_addname xml:space="preserve">blosc.</desc_addname> SphinxTranslator.dispatch_visit calling visit_desc_name for <desc_name xml:space="preserve">get_clib</desc_name> SphinxTranslator.dispatch_visit calling visit_Text for get_clib SphinxTranslator.dispatch_departure calling depart_Text for get_clib SphinxTranslator.dispatch_departure calling depart_desc_name for <desc_name xml:space="preserve">get_clib</desc_name> SphinxTranslator.dispatch_visit calling visit_desc_parameterlist for <desc_parameterlist xml:space="preserve"><desc_parameter xml:space="preserve">bytesobj</desc_parameter></desc_parameterlist> SphinxTranslator.dispatch_visit calling visit_desc_parameter for <desc_parameter xml:space="preserve">bytesobj</desc_parameter> SphinxTranslator.dispatch_visit calling visit_Text for bytesobj SphinxTranslator.dispatch_departure calling depart_Text for bytesobj SphinxTranslator.dispatch_departure calling depart_desc_parameter for <desc_parameter xml:space="preserve">bytesobj</desc_parameter> SphinxTranslator.dispatch_departure calling depart_desc_parameterlist for <desc_parameterlist xml:space="preserve"><desc_parameter xml:space="preserve">bytesobj</desc_parameter></desc_parameterlist> SphinxTranslator.dispatch_departure calling depart_desc_signature for <desc_signature class="" first="False" fullname="get_clib" ids="blosc.get_clib" module="blosc" names="blosc.get_clib"><desc_addname xml:space="preserve">blosc.</desc_addname><desc_name xml:space="preserve">get_clib</desc_name><desc_parameterlist xml:space="preserve"><desc_parameter xml:space="preserve">bytesobj</desc_parameter></desc_parameterlist></desc_signature> SphinxTranslator.dispatch_visit calling visit_desc_content for <desc_content><paragraph>Return the name of the compression library for Blosc <literal>bytesobj</literal> buffer.</paragraph><field_list><field><field_name>Parameters</field_name><field_body><paragraph><strong>bytesobj</strong> : str / bytes</paragraph><block_quote><paragraph>The compressed buffer.</paragraph></block_quote></field_body></field><field><field_name>Returns</field_name><field_body><paragraph><strong>out</strong> : str</paragraph><block_quote><paragraph>The name of the compression library.</paragraph></block_quote></field_body></field></field_list></desc_content> SphinxTranslator.dispatch_visit calling visit_paragraph for <paragraph>Return the name of the compression library for Blosc <literal>bytesobj</literal> buffer.</paragraph> SphinxTranslator.dispatch_visit calling visit_Text for Return the name of the compression library for Blosc SphinxTranslator.dispatch_departure calling depart_Text for Return the name of the compression library for Blosc SphinxTranslator.dispatch_visit calling visit_literal for <literal>bytesobj</literal> SphinxTranslator.dispatch_visit calling visit_Text for bytesobj SphinxTranslator.dispatch_departure calling depart_Text for bytesobj SphinxTranslator.dispatch_departure calling depart_literal for <literal>bytesobj</literal> SphinxTranslator.dispatch_visit calling visit_Text for buffer. SphinxTranslator.dispatch_departure calling depart_Text for buffer. SphinxTranslator.dispatch_departure calling depart_paragraph for <paragraph>Return the name of the compression library for Blosc <literal>bytesobj</literal> buffer.</paragraph> SphinxTranslator.dispatch_visit calling visit_field_list for <field_list><field><field_name>Parameters</field_name><field_body><paragraph><strong>bytesobj</strong> : str / bytes</paragraph><block_quote><paragraph>The compressed buffer.</paragraph></block_quote></field_body></field><field><field_name>Returns</field_name><field_body><paragraph><strong>out</strong> : str</paragraph><block_quote><paragraph>The name of the compression library.</paragraph></block_quote></field_body></field></field_list> SphinxTranslator.dispatch_visit calling visit_field for <field><field_name>Parameters</field_name><field_body><paragraph><strong>bytesobj</strong> : str / bytes</paragraph><block_quote><paragraph>The compressed buffer.</paragraph></block_quote></field_body></field> SphinxTranslator.dispatch_visit calling visit_field_name for <field_name>Parameters</field_name> SphinxTranslator.dispatch_visit calling visit_Text for Parameters SphinxTranslator.dispatch_departure calling depart_Text for Parameters SphinxTranslator.dispatch_departure calling depart_field_name for <field_name>Parameters</field_name> SphinxTranslator.dispatch_visit calling visit_field_body for <field_body><paragraph><strong>bytesobj</strong> : str / bytes</paragraph><block_quote><paragraph>The compressed buffer.</paragraph></block_quote></field_body> SphinxTranslator.dispatch_visit calling visit_paragraph for <paragraph><strong>bytesobj</strong> : str / bytes</paragraph> SphinxTranslator.dispatch_visit calling visit_strong for <strong>bytesobj</strong> SphinxTranslator.dispatch_visit calling visit_Text for bytesobj SphinxTranslator.dispatch_departure calling depart_Text for bytesobj SphinxTranslator.dispatch_departure calling depart_strong for <strong>bytesobj</strong> SphinxTranslator.dispatch_visit calling visit_Text for : str / bytes SphinxTranslator.dispatch_departure calling depart_Text for : str / bytes SphinxTranslator.dispatch_departure calling depart_paragraph for <paragraph><strong>bytesobj</strong> : str / bytes</paragraph> SphinxTranslator.dispatch_visit calling visit_block_quote for <block_quote><paragraph>The compressed buffer.</paragraph></block_quote> SphinxTranslator.dispatch_visit calling visit_paragraph for <paragraph>The compressed buffer.</paragraph> SphinxTranslator.dispatch_visit calling visit_Text for The compressed buffer. SphinxTranslator.dispatch_departure calling depart_Text for The compressed buffer. SphinxTranslator.dispatch_departure calling depart_paragraph for <paragraph>The compressed buffer.</paragraph> SphinxTranslator.dispatch_departure calling depart_block_quote for <block_quote><paragraph>The compressed buffer.</paragraph></block_quote> SphinxTranslator.dispatch_departure calling depart_field_body for <field_body><paragraph><strong>bytesobj</strong> : str / bytes</paragraph><block_quote><paragraph>The compressed buffer.</paragraph></block_quote></field_body> SphinxTranslator.dispatch_departure calling depart_field for <field classes="field-odd"><field_name>Parameters</field_name><field_body><paragraph><strong>bytesobj</strong> : str / bytes</paragraph><block_quote><paragraph>The compressed buffer.</paragraph></block_quote></field_body></field> SphinxTranslator.dispatch_visit calling visit_field for <field><field_name>Returns</field_name><field_body><paragraph><strong>out</strong> : str</paragraph><block_quote><paragraph>The name of the compression library.</paragraph></block_quote></field_body></field> SphinxTranslator.dispatch_visit calling visit_field_name for <field_name>Returns</field_name> SphinxTranslator.dispatch_visit calling visit_Text for Returns SphinxTranslator.dispatch_departure calling depart_Text for Returns SphinxTranslator.dispatch_departure calling depart_field_name for <field_name>Returns</field_name> SphinxTranslator.dispatch_visit calling visit_field_body for <field_body><paragraph><strong>out</strong> : str</paragraph><block_quote><paragraph>The name of the compression library.</paragraph></block_quote></field_body> SphinxTranslator.dispatch_visit calling visit_paragraph for <paragraph><strong>out</strong> : str</paragraph> SphinxTranslator.dispatch_visit calling visit_strong for <strong>out</strong> SphinxTranslator.dispatch_visit calling visit_Text for out SphinxTranslator.dispatch_departure calling depart_Text for out SphinxTranslator.dispatch_departure calling depart_strong for <strong>out</strong> SphinxTranslator.dispatch_visit calling visit_Text for : str SphinxTranslator.dispatch_departure calling depart_Text for : str SphinxTranslator.dispatch_departure calling depart_paragraph for <paragraph><strong>out</strong> : str</paragraph> SphinxTranslator.dispatch_visit calling visit_block_quote for <block_quote><paragraph>The name of the compression library.</paragraph></block_quote> SphinxTranslator.dispatch_visit calling visit_paragraph for <paragraph>The name of the compression library.</paragraph> SphinxTranslator.dispatch_visit calling visit_Text for The name of the compression library. SphinxTranslator.dispatch_departure calling depart_Text for The name of the compression library. SphinxTranslator.dispatch_departure calling depart_paragraph for <paragraph>The name of the compression library.</paragraph> SphinxTranslator.dispatch_departure calling depart_block_quote for <block_quote><paragraph>The name of the compression library.</paragraph></block_quote> SphinxTranslator.dispatch_departure calling depart_field_body for <field_body><paragraph><strong>out</strong> : str</paragraph><block_quote><paragraph>The name of the compression library.</paragraph></block_quote></field_body> SphinxTranslator.dispatch_departure calling depart_field for <field classes="field-even"><field_name>Returns</field_name><field_body><paragraph><strong>out</strong> : str</paragraph><block_quote><paragraph>The name of the compression library.</paragraph></block_quote></field_body></field> SphinxTranslator.dispatch_departure calling depart_field_list for <field_list><field classes="field-odd"><field_name>Parameters</field_name><field_body><paragraph><strong>bytesobj</strong> : str / bytes</paragraph><block_quote><paragraph>The compressed buffer.</paragraph></block_quote></field_body></field><field classes="field-even"><field_name>Returns</field_name><field_body><paragraph><strong>out</strong> : str</paragraph><block_quote><paragraph>The name of the compression library.</paragraph></block_quote></field_body></field></field_list> SphinxTranslator.dispatch_departure calling depart_desc_content for <desc_content><paragraph>Return the name of the compression library for Blosc <literal>bytesobj</literal> buffer.</paragraph><field_list><field classes="field-odd"><field_name>Parameters</field_name><field_body><paragraph><strong>bytesobj</strong> : str / bytes</paragraph><block_quote><paragraph>The compressed buffer.</paragraph></block_quote></field_body></field><field classes="field-even"><field_name>Returns</field_name><field_body><paragraph><strong>out</strong> : str</paragraph><block_quote><paragraph>The name of the compression library.</paragraph></block_quote></field_body></field></field_list></desc_content> SphinxTranslator.dispatch_departure calling depart_desc for <desc desctype="function" domain="py" noindex="False" objtype="function"><desc_signature class="" first="False" fullname="get_clib" ids="blosc.get_clib" module="blosc" names="blosc.get_clib"><desc_addname xml:space="preserve">blosc.</desc_addname><desc_name xml:space="preserve">get_clib</desc_name><desc_parameterlist xml:space="preserve"><desc_parameter xml:space="preserve">bytesobj</desc_parameter></desc_parameterlist></desc_signature><desc_content><paragraph>Return the name of the compression library for Blosc <literal>bytesobj</literal> buffer.</paragraph><field_list><field classes="field-odd"><field_name>Parameters</field_name><field_body><paragraph><strong>bytesobj</strong> : str / bytes</paragraph><block_quote><paragraph>The compressed buffer.</paragraph></block_quote></field_body></field><field classes="field-even"><field_name>Returns</field_name><field_body><paragraph><strong>out</strong> : str</paragraph><block_quote><paragraph>The name of the compression library.</paragraph></block_quote></field_body></field></field_list></desc_content></desc> SphinxTranslator.dispatch_visit calling visit_index for <index entries="[('single', 'set_blocksize() (in module blosc)', 'blosc.set_blocksize', '', None)]"/> SphinxTranslator.dispatch_visit calling visit_desc for <desc desctype="function" domain="py" noindex="False" objtype="function"><desc_signature class="" first="False" fullname="set_blocksize" ids="blosc.set_blocksize" module="blosc" names="blosc.set_blocksize"><desc_addname xml:space="preserve">blosc.</desc_addname><desc_name xml:space="preserve">set_blocksize</desc_name><desc_parameterlist xml:space="preserve"><desc_parameter xml:space="preserve">blocksize</desc_parameter></desc_parameterlist></desc_signature><desc_content><paragraph>Force the use of a specific blocksize. If 0, an automatic blocksize will be used (the default).</paragraph><rubric>Notes</rubric><paragraph>This is a low-level function and is recommened for expert users only.</paragraph><rubric>Examples</rubric><doctest_block classes="doctest" xml:space="preserve">>>> blosc.set_blocksize(512)</doctest_block></desc_content></desc> SphinxTranslator.dispatch_visit calling visit_desc_signature for <desc_signature class="" first="False" fullname="set_blocksize" ids="blosc.set_blocksize" module="blosc" names="blosc.set_blocksize"><desc_addname xml:space="preserve">blosc.</desc_addname><desc_name xml:space="preserve">set_blocksize</desc_name><desc_parameterlist xml:space="preserve"><desc_parameter xml:space="preserve">blocksize</desc_parameter></desc_parameterlist></desc_signature> SphinxTranslator.dispatch_visit calling visit_desc_addname for <desc_addname xml:space="preserve">blosc.</desc_addname> SphinxTranslator.dispatch_visit calling visit_Text for blosc. SphinxTranslator.dispatch_departure calling depart_Text for blosc. SphinxTranslator.dispatch_departure calling depart_desc_addname for <desc_addname xml:space="preserve">blosc.</desc_addname> SphinxTranslator.dispatch_visit calling visit_desc_name for <desc_name xml:space="preserve">set_blocksize</desc_name> SphinxTranslator.dispatch_visit calling visit_Text for set_blocksize SphinxTranslator.dispatch_departure calling depart_Text for set_blocksize SphinxTranslator.dispatch_departure calling depart_desc_name for <desc_name xml:space="preserve">set_blocksize</desc_name> SphinxTranslator.dispatch_visit calling visit_desc_parameterlist for <desc_parameterlist xml:space="preserve"><desc_parameter xml:space="preserve">blocksize</desc_parameter></desc_parameterlist> SphinxTranslator.dispatch_visit calling visit_desc_parameter for <desc_parameter xml:space="preserve">blocksize</desc_parameter> SphinxTranslator.dispatch_visit calling visit_Text for blocksize SphinxTranslator.dispatch_departure calling depart_Text for blocksize SphinxTranslator.dispatch_departure calling depart_desc_parameter for <desc_parameter xml:space="preserve">blocksize</desc_parameter> SphinxTranslator.dispatch_departure calling depart_desc_parameterlist for <desc_parameterlist xml:space="preserve"><desc_parameter xml:space="preserve">blocksize</desc_parameter></desc_parameterlist> SphinxTranslator.dispatch_departure calling depart_desc_signature for <desc_signature class="" first="False" fullname="set_blocksize" ids="blosc.set_blocksize" module="blosc" names="blosc.set_blocksize"><desc_addname xml:space="preserve">blosc.</desc_addname><desc_name xml:space="preserve">set_blocksize</desc_name><desc_parameterlist xml:space="preserve"><desc_parameter xml:space="preserve">blocksize</desc_parameter></desc_parameterlist></desc_signature> SphinxTranslator.dispatch_visit calling visit_desc_content for <desc_content><paragraph>Force the use of a specific blocksize. If 0, an automatic blocksize will be used (the default).</paragraph><rubric>Notes</rubric><paragraph>This is a low-level function and is recommened for expert users only.</paragraph><rubric>Examples</rubric><doctest_block classes="doctest" xml:space="preserve">>>> blosc.set_blocksize(512)</doctest_block></desc_content> SphinxTranslator.dispatch_visit calling visit_paragraph for <paragraph>Force the use of a specific blocksize. If 0, an automatic blocksize will be used (the default).</paragraph> SphinxTranslator.dispatch_visit calling visit_Text for Force the use of a specific blocksize. If 0, an automatic blocksize will be used (the default). SphinxTranslator.dispatch_departure calling depart_Text for Force the use of a specific blocksize. If 0, an automatic blocksize will be used (the default). SphinxTranslator.dispatch_departure calling depart_paragraph for <paragraph>Force the use of a specific blocksize. If 0, an automatic blocksize will be used (the default).</paragraph> SphinxTranslator.dispatch_visit calling visit_rubric for <rubric>Notes</rubric> SphinxTranslator.dispatch_visit calling visit_Text for Notes SphinxTranslator.dispatch_departure calling depart_Text for Notes SphinxTranslator.dispatch_departure calling depart_rubric for <rubric>Notes</rubric> SphinxTranslator.dispatch_visit calling visit_paragraph for <paragraph>This is a low-level function and is recommened for expert users only.</paragraph> SphinxTranslator.dispatch_visit calling visit_Text for This is a low-level function and is recommened for expert users only. SphinxTranslator.dispatch_departure calling depart_Text for This is a low-level function and is recommened for expert users only. SphinxTranslator.dispatch_departure calling depart_paragraph for <paragraph>This is a low-level function and is recommened for expert users only.</paragraph> SphinxTranslator.dispatch_visit calling visit_rubric for <rubric>Examples</rubric> SphinxTranslator.dispatch_visit calling visit_Text for Examples SphinxTranslator.dispatch_departure calling depart_Text for Examples SphinxTranslator.dispatch_departure calling depart_rubric for <rubric>Examples</rubric> SphinxTranslator.dispatch_visit calling visit_doctest_block for <doctest_block classes="doctest" xml:space="preserve">>>> blosc.set_blocksize(512)</doctest_block> SphinxTranslator.dispatch_departure calling depart_desc_content for <desc_content><paragraph>Force the use of a specific blocksize. If 0, an automatic blocksize will be used (the default).</paragraph><rubric>Notes</rubric><paragraph>This is a low-level function and is recommened for expert users only.</paragraph><rubric>Examples</rubric><doctest_block classes="doctest" xml:space="preserve">>>> blosc.set_blocksize(512)</doctest_block></desc_content> SphinxTranslator.dispatch_departure calling depart_desc for <desc desctype="function" domain="py" noindex="False" objtype="function"><desc_signature class="" first="False" fullname="set_blocksize" ids="blosc.set_blocksize" module="blosc" names="blosc.set_blocksize"><desc_addname xml:space="preserve">blosc.</desc_addname><desc_name xml:space="preserve">set_blocksize</desc_name><desc_parameterlist xml:space="preserve"><desc_parameter xml:space="preserve">blocksize</desc_parameter></desc_parameterlist></desc_signature><desc_content><paragraph>Force the use of a specific blocksize. If 0, an automatic blocksize will be used (the default).</paragraph><rubric>Notes</rubric><paragraph>This is a low-level function and is recommened for expert users only.</paragraph><rubric>Examples</rubric><doctest_block classes="doctest" xml:space="preserve">>>> blosc.set_blocksize(512)</doctest_block></desc_content></desc> SphinxTranslator.dispatch_visit calling visit_index for <index entries="[('single', 'set_nthreads() (in module blosc)', 'blosc.set_nthreads', '', None)]"/> SphinxTranslator.dispatch_visit calling visit_desc for <desc desctype="function" domain="py" noindex="False" objtype="function"><desc_signature class="" first="False" fullname="set_nthreads" ids="blosc.set_nthreads" module="blosc" names="blosc.set_nthreads"><desc_addname xml:space="preserve">blosc.</desc_addname><desc_name xml:space="preserve">set_nthreads</desc_name><desc_parameterlist xml:space="preserve"><desc_parameter xml:space="preserve">nthreads</desc_parameter></desc_parameterlist></desc_signature><desc_content><paragraph>Set the number of threads to be used during Blosc operation.</paragraph><field_list><field><field_name>Parameters</field_name><field_body><paragraph><strong>nthreads</strong> : int</paragraph><block_quote><paragraph>The number of threads to be used during Blosc operation.</paragraph></block_quote></field_body></field><field><field_name>Returns</field_name><field_body><paragraph><strong>out</strong> : int</paragraph><block_quote><paragraph>The previous number of used threads.</paragraph></block_quote></field_body></field><field><field_name>Raises</field_name><field_body><paragraph><strong>ValueError</strong></paragraph><block_quote><paragraph>If nthreads is larger that the maximum number of threads blosc can use.</paragraph></block_quote></field_body></field></field_list><rubric>Notes</rubric><paragraph>The number of threads for Blosc is the maximum number of cores detected on your machine (via <literal>detect_number_of_cores</literal>). In some cases Blosc gets better results if you set the number of threads to a value slightly below than your number of cores.</paragraph><rubric>Examples</rubric><paragraph>Set the number of threads to 2 and then to 1:</paragraph><doctest_block classes="doctest" xml:space="preserve">>>> oldn = blosc.set_nthreads(2) >>> blosc.set_nthreads(1) 2</doctest_block></desc_content></desc> SphinxTranslator.dispatch_visit calling visit_desc_signature for <desc_signature class="" first="False" fullname="set_nthreads" ids="blosc.set_nthreads" module="blosc" names="blosc.set_nthreads"><desc_addname xml:space="preserve">blosc.</desc_addname><desc_name xml:space="preserve">set_nthreads</desc_name><desc_parameterlist xml:space="preserve"><desc_parameter xml:space="preserve">nthreads</desc_parameter></desc_parameterlist></desc_signature> SphinxTranslator.dispatch_visit calling visit_desc_addname for <desc_addname xml:space="preserve">blosc.</desc_addname> SphinxTranslator.dispatch_visit calling visit_Text for blosc. SphinxTranslator.dispatch_departure calling depart_Text for blosc. SphinxTranslator.dispatch_departure calling depart_desc_addname for <desc_addname xml:space="preserve">blosc.</desc_addname> SphinxTranslator.dispatch_visit calling visit_desc_name for <desc_name xml:space="preserve">set_nthreads</desc_name> SphinxTranslator.dispatch_visit calling visit_Text for set_nthreads SphinxTranslator.dispatch_departure calling depart_Text for set_nthreads SphinxTranslator.dispatch_departure calling depart_desc_name for <desc_name xml:space="preserve">set_nthreads</desc_name> SphinxTranslator.dispatch_visit calling visit_desc_parameterlist for <desc_parameterlist xml:space="preserve"><desc_parameter xml:space="preserve">nthreads</desc_parameter></desc_parameterlist> SphinxTranslator.dispatch_visit calling visit_desc_parameter for <desc_parameter xml:space="preserve">nthreads</desc_parameter> SphinxTranslator.dispatch_visit calling visit_Text for nthreads SphinxTranslator.dispatch_departure calling depart_Text for nthreads SphinxTranslator.dispatch_departure calling depart_desc_parameter for <desc_parameter xml:space="preserve">nthreads</desc_parameter> SphinxTranslator.dispatch_departure calling depart_desc_parameterlist for <desc_parameterlist xml:space="preserve"><desc_parameter xml:space="preserve">nthreads</desc_parameter></desc_parameterlist> SphinxTranslator.dispatch_departure calling depart_desc_signature for <desc_signature class="" first="False" fullname="set_nthreads" ids="blosc.set_nthreads" module="blosc" names="blosc.set_nthreads"><desc_addname xml:space="preserve">blosc.</desc_addname><desc_name xml:space="preserve">set_nthreads</desc_name><desc_parameterlist xml:space="preserve"><desc_parameter xml:space="preserve">nthreads</desc_parameter></desc_parameterlist></desc_signature> SphinxTranslator.dispatch_visit calling visit_desc_content for <desc_content><paragraph>Set the number of threads to be used during Blosc operation.</paragraph><field_list><field><field_name>Parameters</field_name><field_body><paragraph><strong>nthreads</strong> : int</paragraph><block_quote><paragraph>The number of threads to be used during Blosc operation.</paragraph></block_quote></field_body></field><field><field_name>Returns</field_name><field_body><paragraph><strong>out</strong> : int</paragraph><block_quote><paragraph>The previous number of used threads.</paragraph></block_quote></field_body></field><field><field_name>Raises</field_name><field_body><paragraph><strong>ValueError</strong></paragraph><block_quote><paragraph>If nthreads is larger that the maximum number of threads blosc can use.</paragraph></block_quote></field_body></field></field_list><rubric>Notes</rubric><paragraph>The number of threads for Blosc is the maximum number of cores detected on your machine (via <literal>detect_number_of_cores</literal>). In some cases Blosc gets better results if you set the number of threads to a value slightly below than your number of cores.</paragraph><rubric>Examples</rubric><paragraph>Set the number of threads to 2 and then to 1:</paragraph><doctest_block classes="doctest" xml:space="preserve">>>> oldn = blosc.set_nthreads(2) >>> blosc.set_nthreads(1) 2</doctest_block></desc_content> SphinxTranslator.dispatch_visit calling visit_paragraph for <paragraph>Set the number of threads to be used during Blosc operation.</paragraph> SphinxTranslator.dispatch_visit calling visit_Text for Set the number of threads to be used during Blosc operation. SphinxTranslator.dispatch_departure calling depart_Text for Set the number of threads to be used during Blosc operation. SphinxTranslator.dispatch_departure calling depart_paragraph for <paragraph>Set the number of threads to be used during Blosc operation.</paragraph> SphinxTranslator.dispatch_visit calling visit_field_list for <field_list><field><field_name>Parameters</field_name><field_body><paragraph><strong>nthreads</strong> : int</paragraph><block_quote><paragraph>The number of threads to be used during Blosc operation.</paragraph></block_quote></field_body></field><field><field_name>Returns</field_name><field_body><paragraph><strong>out</strong> : int</paragraph><block_quote><paragraph>The previous number of used threads.</paragraph></block_quote></field_body></field><field><field_name>Raises</field_name><field_body><paragraph><strong>ValueError</strong></paragraph><block_quote><paragraph>If nthreads is larger that the maximum number of threads blosc can use.</paragraph></block_quote></field_body></field></field_list> SphinxTranslator.dispatch_visit calling visit_field for <field><field_name>Parameters</field_name><field_body><paragraph><strong>nthreads</strong> : int</paragraph><block_quote><paragraph>The number of threads to be used during Blosc operation.</paragraph></block_quote></field_body></field> SphinxTranslator.dispatch_visit calling visit_field_name for <field_name>Parameters</field_name> SphinxTranslator.dispatch_visit calling visit_Text for Parameters SphinxTranslator.dispatch_departure calling depart_Text for Parameters SphinxTranslator.dispatch_departure calling depart_field_name for <field_name>Parameters</field_name> SphinxTranslator.dispatch_visit calling visit_field_body for <field_body><paragraph><strong>nthreads</strong> : int</paragraph><block_quote><paragraph>The number of threads to be used during Blosc operation.</paragraph></block_quote></field_body> SphinxTranslator.dispatch_visit calling visit_paragraph for <paragraph><strong>nthreads</strong> : int</paragraph> SphinxTranslator.dispatch_visit calling visit_strong for <strong>nthreads</strong> SphinxTranslator.dispatch_visit calling visit_Text for nthreads SphinxTranslator.dispatch_departure calling depart_Text for nthreads SphinxTranslator.dispatch_departure calling depart_strong for <strong>nthreads</strong> SphinxTranslator.dispatch_visit calling visit_Text for : int SphinxTranslator.dispatch_departure calling depart_Text for : int SphinxTranslator.dispatch_departure calling depart_paragraph for <paragraph><strong>nthreads</strong> : int</paragraph> SphinxTranslator.dispatch_visit calling visit_block_quote for <block_quote><paragraph>The number of threads to be used during Blosc operation.</paragraph></block_quote> SphinxTranslator.dispatch_visit calling visit_paragraph for <paragraph>The number of threads to be used during Blosc operation.</paragraph> SphinxTranslator.dispatch_visit calling visit_Text for The number of threads to be used during Blosc operation. SphinxTranslator.dispatch_departure calling depart_Text for The number of threads to be used during Blosc operation. SphinxTranslator.dispatch_departure calling depart_paragraph for <paragraph>The number of threads to be used during Blosc operation.</paragraph> SphinxTranslator.dispatch_departure calling depart_block_quote for <block_quote><paragraph>The number of threads to be used during Blosc operation.</paragraph></block_quote> SphinxTranslator.dispatch_departure calling depart_field_body for <field_body><paragraph><strong>nthreads</strong> : int</paragraph><block_quote><paragraph>The number of threads to be used during Blosc operation.</paragraph></block_quote></field_body> SphinxTranslator.dispatch_departure calling depart_field for <field classes="field-odd"><field_name>Parameters</field_name><field_body><paragraph><strong>nthreads</strong> : int</paragraph><block_quote><paragraph>The number of threads to be used during Blosc operation.</paragraph></block_quote></field_body></field> SphinxTranslator.dispatch_visit calling visit_field for <field><field_name>Returns</field_name><field_body><paragraph><strong>out</strong> : int</paragraph><block_quote><paragraph>The previous number of used threads.</paragraph></block_quote></field_body></field> SphinxTranslator.dispatch_visit calling visit_field_name for <field_name>Returns</field_name> SphinxTranslator.dispatch_visit calling visit_Text for Returns SphinxTranslator.dispatch_departure calling depart_Text for Returns SphinxTranslator.dispatch_departure calling depart_field_name for <field_name>Returns</field_name> SphinxTranslator.dispatch_visit calling visit_field_body for <field_body><paragraph><strong>out</strong> : int</paragraph><block_quote><paragraph>The previous number of used threads.</paragraph></block_quote></field_body> SphinxTranslator.dispatch_visit calling visit_paragraph for <paragraph><strong>out</strong> : int</paragraph> SphinxTranslator.dispatch_visit calling visit_strong for <strong>out</strong> SphinxTranslator.dispatch_visit calling visit_Text for out SphinxTranslator.dispatch_departure calling depart_Text for out SphinxTranslator.dispatch_departure calling depart_strong for <strong>out</strong> SphinxTranslator.dispatch_visit calling visit_Text for : int SphinxTranslator.dispatch_departure calling depart_Text for : int SphinxTranslator.dispatch_departure calling depart_paragraph for <paragraph><strong>out</strong> : int</paragraph> SphinxTranslator.dispatch_visit calling visit_block_quote for <block_quote><paragraph>The previous number of used threads.</paragraph></block_quote> SphinxTranslator.dispatch_visit calling visit_paragraph for <paragraph>The previous number of used threads.</paragraph> SphinxTranslator.dispatch_visit calling visit_Text for The previous number of used threads. SphinxTranslator.dispatch_departure calling depart_Text for The previous number of used threads. SphinxTranslator.dispatch_departure calling depart_paragraph for <paragraph>The previous number of used threads.</paragraph> SphinxTranslator.dispatch_departure calling depart_block_quote for <block_quote><paragraph>The previous number of used threads.</paragraph></block_quote> SphinxTranslator.dispatch_departure calling depart_field_body for <field_body><paragraph><strong>out</strong> : int</paragraph><block_quote><paragraph>The previous number of used threads.</paragraph></block_quote></field_body> SphinxTranslator.dispatch_departure calling depart_field for <field classes="field-even"><field_name>Returns</field_name><field_body><paragraph><strong>out</strong> : int</paragraph><block_quote><paragraph>The previous number of used threads.</paragraph></block_quote></field_body></field> SphinxTranslator.dispatch_visit calling visit_field for <field><field_name>Raises</field_name><field_body><paragraph><strong>ValueError</strong></paragraph><block_quote><paragraph>If nthreads is larger that the maximum number of threads blosc can use.</paragraph></block_quote></field_body></field> SphinxTranslator.dispatch_visit calling visit_field_name for <field_name>Raises</field_name> SphinxTranslator.dispatch_visit calling visit_Text for Raises SphinxTranslator.dispatch_departure calling depart_Text for Raises SphinxTranslator.dispatch_departure calling depart_field_name for <field_name>Raises</field_name> SphinxTranslator.dispatch_visit calling visit_field_body for <field_body><paragraph><strong>ValueError</strong></paragraph><block_quote><paragraph>If nthreads is larger that the maximum number of threads blosc can use.</paragraph></block_quote></field_body> SphinxTranslator.dispatch_visit calling visit_paragraph for <paragraph><strong>ValueError</strong></paragraph> SphinxTranslator.dispatch_visit calling visit_strong for <strong>ValueError</strong> SphinxTranslator.dispatch_visit calling visit_Text for ValueError SphinxTranslator.dispatch_departure calling depart_Text for ValueError SphinxTranslator.dispatch_departure calling depart_strong for <strong>ValueError</strong> SphinxTranslator.dispatch_departure calling depart_paragraph for <paragraph><strong>ValueError</strong></paragraph> SphinxTranslator.dispatch_visit calling visit_block_quote for <block_quote><paragraph>If nthreads is larger that the maximum number of threads blosc can use.</paragraph></block_quote> SphinxTranslator.dispatch_visit calling visit_paragraph for <paragraph>If nthreads is larger that the maximum number of threads blosc can use.</paragraph> SphinxTranslator.dispatch_visit calling visit_Text for If nthreads is larger that the maximum number of threads blosc can use. SphinxTranslator.dispatch_departure calling depart_Text for If nthreads is larger that the maximum number of threads blosc can use. SphinxTranslator.dispatch_departure calling depart_paragraph for <paragraph>If nthreads is larger that the maximum number of threads blosc can use.</paragraph> SphinxTranslator.dispatch_departure calling depart_block_quote for <block_quote><paragraph>If nthreads is larger that the maximum number of threads blosc can use.</paragraph></block_quote> SphinxTranslator.dispatch_departure calling depart_field_body for <field_body><paragraph><strong>ValueError</strong></paragraph><block_quote><paragraph>If nthreads is larger that the maximum number of threads blosc can use.</paragraph></block_quote></field_body> SphinxTranslator.dispatch_departure calling depart_field for <field classes="field-odd"><field_name>Raises</field_name><field_body><paragraph><strong>ValueError</strong></paragraph><block_quote><paragraph>If nthreads is larger that the maximum number of threads blosc can use.</paragraph></block_quote></field_body></field> SphinxTranslator.dispatch_departure calling depart_field_list for <field_list><field classes="field-odd"><field_name>Parameters</field_name><field_body><paragraph><strong>nthreads</strong> : int</paragraph><block_quote><paragraph>The number of threads to be used during Blosc operation.</paragraph></block_quote></field_body></field><field classes="field-even"><field_name>Returns</field_name><field_body><paragraph><strong>out</strong> : int</paragraph><block_quote><paragraph>The previous number of used threads.</paragraph></block_quote></field_body></field><field classes="field-odd"><field_name>Raises</field_name><field_body><paragraph><strong>ValueError</strong></paragraph><block_quote><paragraph>If nthreads is larger that the maximum number of threads blosc can use.</paragraph></block_quote></field_body></field></field_list> SphinxTranslator.dispatch_visit calling visit_rubric for <rubric>Notes</rubric> SphinxTranslator.dispatch_visit calling visit_Text for Notes SphinxTranslator.dispatch_departure calling depart_Text for Notes SphinxTranslator.dispatch_departure calling depart_rubric for <rubric>Notes</rubric> SphinxTranslator.dispatch_visit calling visit_paragraph for <paragraph>The number of threads for Blosc is the maximum number of cores detected on your machine (via <literal>detect_number_of_cores</literal>). In some cases Blosc gets better results if you set the number of threads to a value slightly below than your number of cores.</paragraph> SphinxTranslator.dispatch_visit calling visit_Text for The number of threads for Blosc is the maximum number of cores detected on your machine (via SphinxTranslator.dispatch_departure calling depart_Text for The number of threads for Blosc is the maximum number of cores detected on your machine (via SphinxTranslator.dispatch_visit calling visit_literal for <literal>detect_number_of_cores</literal> SphinxTranslator.dispatch_visit calling visit_Text for detect_number_of_cores SphinxTranslator.dispatch_departure calling depart_Text for detect_number_of_cores SphinxTranslator.dispatch_departure calling depart_literal for <literal>detect_number_of_cores</literal> SphinxTranslator.dispatch_visit calling visit_Text for ). In some cases Blosc gets better results if you set the number of threads to a value slightly below than your number of cores. SphinxTranslator.dispatch_departure calling depart_Text for ). In some cases Blosc gets better results if you set the number of threads to a value slightly below than your number of cores. SphinxTranslator.dispatch_departure calling depart_paragraph for <paragraph>The number of threads for Blosc is the maximum number of cores detected on your machine (via <literal>detect_number_of_cores</literal>). In some cases Blosc gets better results if you set the number of threads to a value slightly below than your number of cores.</paragraph> SphinxTranslator.dispatch_visit calling visit_rubric for <rubric>Examples</rubric> SphinxTranslator.dispatch_visit calling visit_Text for Examples SphinxTranslator.dispatch_departure calling depart_Text for Examples SphinxTranslator.dispatch_departure calling depart_rubric for <rubric>Examples</rubric> SphinxTranslator.dispatch_visit calling visit_paragraph for <paragraph>Set the number of threads to 2 and then to 1:</paragraph> SphinxTranslator.dispatch_visit calling visit_Text for Set the number of threads to 2 and then to 1: SphinxTranslator.dispatch_departure calling depart_Text for Set the number of threads to 2 and then to 1: SphinxTranslator.dispatch_departure calling depart_paragraph for <paragraph>Set the number of threads to 2 and then to 1:</paragraph> SphinxTranslator.dispatch_visit calling visit_doctest_block for <doctest_block classes="doctest" xml:space="preserve">>>> oldn = blosc.set_nthreads(2) >>> blosc.set_nthreads(1) 2</doctest_block> SphinxTranslator.dispatch_departure calling depart_desc_content for <desc_content><paragraph>Set the number of threads to be used during Blosc operation.</paragraph><field_list><field classes="field-odd"><field_name>Parameters</field_name><field_body><paragraph><strong>nthreads</strong> : int</paragraph><block_quote><paragraph>The number of threads to be used during Blosc operation.</paragraph></block_quote></field_body></field><field classes="field-even"><field_name>Returns</field_name><field_body><paragraph><strong>out</strong> : int</paragraph><block_quote><paragraph>The previous number of used threads.</paragraph></block_quote></field_body></field><field classes="field-odd"><field_name>Raises</field_name><field_body><paragraph><strong>ValueError</strong></paragraph><block_quote><paragraph>If nthreads is larger that the maximum number of threads blosc can use.</paragraph></block_quote></field_body></field></field_list><rubric>Notes</rubric><paragraph>The number of threads for Blosc is the maximum number of cores detected on your machine (via <literal>detect_number_of_cores</literal>). In some cases Blosc gets better results if you set the number of threads to a value slightly below than your number of cores.</paragraph><rubric>Examples</rubric><paragraph>Set the number of threads to 2 and then to 1:</paragraph><doctest_block classes="doctest" xml:space="preserve">>>> oldn = blosc.set_nthreads(2) >>> blosc.set_nthreads(1) 2</doctest_block></desc_content> SphinxTranslator.dispatch_departure calling depart_desc for <desc desctype="function" domain="py" noindex="False" objtype="function"><desc_signature class="" first="False" fullname="set_nthreads" ids="blosc.set_nthreads" module="blosc" names="blosc.set_nthreads"><desc_addname xml:space="preserve">blosc.</desc_addname><desc_name xml:space="preserve">set_nthreads</desc_name><desc_parameterlist xml:space="preserve"><desc_parameter xml:space="preserve">nthreads</desc_parameter></desc_parameterlist></desc_signature><desc_content><paragraph>Set the number of threads to be used during Blosc operation.</paragraph><field_list><field classes="field-odd"><field_name>Parameters</field_name><field_body><paragraph><strong>nthreads</strong> : int</paragraph><block_quote><paragraph>The number of threads to be used during Blosc operation.</paragraph></block_quote></field_body></field><field classes="field-even"><field_name>Returns</field_name><field_body><paragraph><strong>out</strong> : int</paragraph><block_quote><paragraph>The previous number of used threads.</paragraph></block_quote></field_body></field><field classes="field-odd"><field_name>Raises</field_name><field_body><paragraph><strong>ValueError</strong></paragraph><block_quote><paragraph>If nthreads is larger that the maximum number of threads blosc can use.</paragraph></block_quote></field_body></field></field_list><rubric>Notes</rubric><paragraph>The number of threads for Blosc is the maximum number of cores detected on your machine (via <literal>detect_number_of_cores</literal>). In some cases Blosc gets better results if you set the number of threads to a value slightly below than your number of cores.</paragraph><rubric>Examples</rubric><paragraph>Set the number of threads to 2 and then to 1:</paragraph><doctest_block classes="doctest" xml:space="preserve">>>> oldn = blosc.set_nthreads(2) >>> blosc.set_nthreads(1) 2</doctest_block></desc_content></desc> SphinxTranslator.dispatch_visit calling visit_index for <index entries="[('single', 'set_releasegil() (in module blosc)', 'blosc.set_releasegil', '', None)]"/> SphinxTranslator.dispatch_visit calling visit_desc for <desc desctype="function" domain="py" noindex="False" objtype="function"><desc_signature class="" first="False" fullname="set_releasegil" ids="blosc.set_releasegil" module="blosc" names="blosc.set_releasegil"><desc_addname xml:space="preserve">blosc.</desc_addname><desc_name xml:space="preserve">set_releasegil</desc_name><desc_parameterlist xml:space="preserve"><desc_parameter xml:space="preserve">gitstate</desc_parameter></desc_parameterlist></desc_signature><desc_content><paragraph>Sets a boolean on whether to release the Python global inter-lock (GIL) during c-blosc compress and decompress operations or not. This defaults to False.</paragraph><rubric>Notes</rubric><paragraph>Designed to be used with larger chunk sizes and a ThreadPool. There is a small performance penalty with releasing the GIL that will more harshly penalize small block sizes.</paragraph><rubric>Examples</rubric><doctest_block classes="doctest" xml:space="preserve">>>> oldReleaseState = blosc.set_releasegil(True)</doctest_block></desc_content></desc> SphinxTranslator.dispatch_visit calling visit_desc_signature for <desc_signature class="" first="False" fullname="set_releasegil" ids="blosc.set_releasegil" module="blosc" names="blosc.set_releasegil"><desc_addname xml:space="preserve">blosc.</desc_addname><desc_name xml:space="preserve">set_releasegil</desc_name><desc_parameterlist xml:space="preserve"><desc_parameter xml:space="preserve">gitstate</desc_parameter></desc_parameterlist></desc_signature> SphinxTranslator.dispatch_visit calling visit_desc_addname for <desc_addname xml:space="preserve">blosc.</desc_addname> SphinxTranslator.dispatch_visit calling visit_Text for blosc. SphinxTranslator.dispatch_departure calling depart_Text for blosc. SphinxTranslator.dispatch_departure calling depart_desc_addname for <desc_addname xml:space="preserve">blosc.</desc_addname> SphinxTranslator.dispatch_visit calling visit_desc_name for <desc_name xml:space="preserve">set_releasegil</desc_name> SphinxTranslator.dispatch_visit calling visit_Text for set_releasegil SphinxTranslator.dispatch_departure calling depart_Text for set_releasegil SphinxTranslator.dispatch_departure calling depart_desc_name for <desc_name xml:space="preserve">set_releasegil</desc_name> SphinxTranslator.dispatch_visit calling visit_desc_parameterlist for <desc_parameterlist xml:space="preserve"><desc_parameter xml:space="preserve">gitstate</desc_parameter></desc_parameterlist> SphinxTranslator.dispatch_visit calling visit_desc_parameter for <desc_parameter xml:space="preserve">gitstate</desc_parameter> SphinxTranslator.dispatch_visit calling visit_Text for gitstate SphinxTranslator.dispatch_departure calling depart_Text for gitstate SphinxTranslator.dispatch_departure calling depart_desc_parameter for <desc_parameter xml:space="preserve">gitstate</desc_parameter> SphinxTranslator.dispatch_departure calling depart_desc_parameterlist for <desc_parameterlist xml:space="preserve"><desc_parameter xml:space="preserve">gitstate</desc_parameter></desc_parameterlist> SphinxTranslator.dispatch_departure calling depart_desc_signature for <desc_signature class="" first="False" fullname="set_releasegil" ids="blosc.set_releasegil" module="blosc" names="blosc.set_releasegil"><desc_addname xml:space="preserve">blosc.</desc_addname><desc_name xml:space="preserve">set_releasegil</desc_name><desc_parameterlist xml:space="preserve"><desc_parameter xml:space="preserve">gitstate</desc_parameter></desc_parameterlist></desc_signature> SphinxTranslator.dispatch_visit calling visit_desc_content for <desc_content><paragraph>Sets a boolean on whether to release the Python global inter-lock (GIL) during c-blosc compress and decompress operations or not. This defaults to False.</paragraph><rubric>Notes</rubric><paragraph>Designed to be used with larger chunk sizes and a ThreadPool. There is a small performance penalty with releasing the GIL that will more harshly penalize small block sizes.</paragraph><rubric>Examples</rubric><doctest_block classes="doctest" xml:space="preserve">>>> oldReleaseState = blosc.set_releasegil(True)</doctest_block></desc_content> SphinxTranslator.dispatch_visit calling visit_paragraph for <paragraph>Sets a boolean on whether to release the Python global inter-lock (GIL) during c-blosc compress and decompress operations or not. This defaults to False.</paragraph> SphinxTranslator.dispatch_visit calling visit_Text for Sets a boolean on whether to release the Python global inter-lock (GIL) during c-blosc compress and decompress operations or not. This defaults to False. SphinxTranslator.dispatch_departure calling depart_Text for Sets a boolean on whether to release the Python global inter-lock (GIL) during c-blosc compress and decompress operations or not. This defaults to False. SphinxTranslator.dispatch_departure calling depart_paragraph for <paragraph>Sets a boolean on whether to release the Python global inter-lock (GIL) during c-blosc compress and decompress operations or not. This defaults to False.</paragraph> SphinxTranslator.dispatch_visit calling visit_rubric for <rubric>Notes</rubric> SphinxTranslator.dispatch_visit calling visit_Text for Notes SphinxTranslator.dispatch_departure calling depart_Text for Notes SphinxTranslator.dispatch_departure calling depart_rubric for <rubric>Notes</rubric> SphinxTranslator.dispatch_visit calling visit_paragraph for <paragraph>Designed to be used with larger chunk sizes and a ThreadPool. There is a small performance penalty with releasing the GIL that will more harshly penalize small block sizes.</paragraph> SphinxTranslator.dispatch_visit calling visit_Text for Designed to be used with larger chunk sizes and a ThreadPool. There is a small performance penalty with releasing the GIL that will more harshly penalize small block sizes. SphinxTranslator.dispatch_departure calling depart_Text for Designed to be used with larger chunk sizes and a ThreadPool. There is a small performance penalty with releasing the GIL that will more harshly penalize small block sizes. SphinxTranslator.dispatch_departure calling depart_paragraph for <paragraph>Designed to be used with larger chunk sizes and a ThreadPool. There is a small performance penalty with releasing the GIL that will more harshly penalize small block sizes.</paragraph> SphinxTranslator.dispatch_visit calling visit_rubric for <rubric>Examples</rubric> SphinxTranslator.dispatch_visit calling visit_Text for Examples SphinxTranslator.dispatch_departure calling depart_Text for Examples SphinxTranslator.dispatch_departure calling depart_rubric for <rubric>Examples</rubric> SphinxTranslator.dispatch_visit calling visit_doctest_block for <doctest_block classes="doctest" xml:space="preserve">>>> oldReleaseState = blosc.set_releasegil(True)</doctest_block> SphinxTranslator.dispatch_departure calling depart_desc_content for <desc_content><paragraph>Sets a boolean on whether to release the Python global inter-lock (GIL) during c-blosc compress and decompress operations or not. This defaults to False.</paragraph><rubric>Notes</rubric><paragraph>Designed to be used with larger chunk sizes and a ThreadPool. There is a small performance penalty with releasing the GIL that will more harshly penalize small block sizes.</paragraph><rubric>Examples</rubric><doctest_block classes="doctest" xml:space="preserve">>>> oldReleaseState = blosc.set_releasegil(True)</doctest_block></desc_content> SphinxTranslator.dispatch_departure calling depart_desc for <desc desctype="function" domain="py" noindex="False" objtype="function"><desc_signature class="" first="False" fullname="set_releasegil" ids="blosc.set_releasegil" module="blosc" names="blosc.set_releasegil"><desc_addname xml:space="preserve">blosc.</desc_addname><desc_name xml:space="preserve">set_releasegil</desc_name><desc_parameterlist xml:space="preserve"><desc_parameter xml:space="preserve">gitstate</desc_parameter></desc_parameterlist></desc_signature><desc_content><paragraph>Sets a boolean on whether to release the Python global inter-lock (GIL) during c-blosc compress and decompress operations or not. This defaults to False.</paragraph><rubric>Notes</rubric><paragraph>Designed to be used with larger chunk sizes and a ThreadPool. There is a small performance penalty with releasing the GIL that will more harshly penalize small block sizes.</paragraph><rubric>Examples</rubric><doctest_block classes="doctest" xml:space="preserve">>>> oldReleaseState = blosc.set_releasegil(True)</doctest_block></desc_content></desc> SphinxTranslator.dispatch_visit calling visit_index for <index entries="[('single', 'print_versions() (in module blosc)', 'blosc.print_versions', '', None)]"/> SphinxTranslator.dispatch_visit calling visit_desc for <desc desctype="function" domain="py" noindex="False" objtype="function"><desc_signature class="" first="False" fullname="print_versions" ids="blosc.print_versions" module="blosc" names="blosc.print_versions"><desc_addname xml:space="preserve">blosc.</desc_addname><desc_name xml:space="preserve">print_versions</desc_name><desc_parameterlist xml:space="preserve"/></desc_signature><desc_content><paragraph>Print all the versions of software that python-blosc relies on.</paragraph></desc_content></desc> SphinxTranslator.dispatch_visit calling visit_desc_signature for <desc_signature class="" first="False" fullname="print_versions" ids="blosc.print_versions" module="blosc" names="blosc.print_versions"><desc_addname xml:space="preserve">blosc.</desc_addname><desc_name xml:space="preserve">print_versions</desc_name><desc_parameterlist xml:space="preserve"/></desc_signature> SphinxTranslator.dispatch_visit calling visit_desc_addname for <desc_addname xml:space="preserve">blosc.</desc_addname> SphinxTranslator.dispatch_visit calling visit_Text for blosc. SphinxTranslator.dispatch_departure calling depart_Text for blosc. SphinxTranslator.dispatch_departure calling depart_desc_addname for <desc_addname xml:space="preserve">blosc.</desc_addname> SphinxTranslator.dispatch_visit calling visit_desc_name for <desc_name xml:space="preserve">print_versions</desc_name> SphinxTranslator.dispatch_visit calling visit_Text for print_versions SphinxTranslator.dispatch_departure calling depart_Text for print_versions SphinxTranslator.dispatch_departure calling depart_desc_name for <desc_name xml:space="preserve">print_versions</desc_name> SphinxTranslator.dispatch_visit calling visit_desc_parameterlist for <desc_parameterlist xml:space="preserve"/> SphinxTranslator.dispatch_departure calling depart_desc_parameterlist for <desc_parameterlist xml:space="preserve"/> SphinxTranslator.dispatch_departure calling depart_desc_signature for <desc_signature class="" first="False" fullname="print_versions" ids="blosc.print_versions" module="blosc" names="blosc.print_versions"><desc_addname xml:space="preserve">blosc.</desc_addname><desc_name xml:space="preserve">print_versions</desc_name><desc_parameterlist xml:space="preserve"/></desc_signature> SphinxTranslator.dispatch_visit calling visit_desc_content for <desc_content><paragraph>Print all the versions of software that python-blosc relies on.</paragraph></desc_content> SphinxTranslator.dispatch_visit calling visit_paragraph for <paragraph>Print all the versions of software that python-blosc relies on.</paragraph> SphinxTranslator.dispatch_visit calling visit_Text for Print all the versions of software that python-blosc relies on. SphinxTranslator.dispatch_departure calling depart_Text for Print all the versions of software that python-blosc relies on. SphinxTranslator.dispatch_departure calling depart_paragraph for <paragraph>Print all the versions of software that python-blosc relies on.</paragraph> SphinxTranslator.dispatch_departure calling depart_desc_content for <desc_content><paragraph>Print all the versions of software that python-blosc relies on.</paragraph></desc_content> SphinxTranslator.dispatch_departure calling depart_desc for <desc desctype="function" domain="py" noindex="False" objtype="function"><desc_signature class="" first="False" fullname="print_versions" ids="blosc.print_versions" module="blosc" names="blosc.print_versions"><desc_addname xml:space="preserve">blosc.</desc_addname><desc_name xml:space="preserve">print_versions</desc_name><desc_parameterlist xml:space="preserve"/></desc_signature><desc_content><paragraph>Print all the versions of software that python-blosc relies on.</paragraph></desc_content></desc> SphinxTranslator.dispatch_departure calling depart_section for <section ids="module-blosc utilities" names="utilities"><title>Utilities</title><index entries="[('single', 'blosc (module)', 'module-blosc', '', None)]"/><index entries="[('single', 'clib_info() (in module blosc)', 'blosc.clib_info', '', None)]"/><desc desctype="function" domain="py" noindex="False" objtype="function"><desc_signature class="" first="False" fullname="clib_info" ids="blosc.clib_info" module="blosc" names="blosc.clib_info"><desc_addname xml:space="preserve">blosc.</desc_addname><desc_name xml:space="preserve">clib_info</desc_name><desc_parameterlist xml:space="preserve"><desc_parameter xml:space="preserve">cname</desc_parameter></desc_parameterlist></desc_signature><desc_content><paragraph>Return info for compression libraries in C library.</paragraph><field_list><field classes="field-odd"><field_name>Parameters</field_name><field_body><paragraph><strong>cname</strong> : str</paragraph><block_quote><paragraph>The compressor name.</paragraph></block_quote></field_body></field><field classes="field-even"><field_name>Returns</field_name><field_body><paragraph><strong>out</strong> : tuple</paragraph><block_quote><paragraph>The associated library name and version.</paragraph></block_quote></field_body></field></field_list></desc_content></desc><index entries="[('single', 'compressor_list() (in module blosc)', 'blosc.compressor_list', '', None)]"/><desc desctype="function" domain="py" noindex="False" objtype="function"><desc_signature class="" first="False" fullname="compressor_list" ids="blosc.compressor_list" module="blosc" names="blosc.compressor_list"><desc_addname xml:space="preserve">blosc.</desc_addname><desc_name xml:space="preserve">compressor_list</desc_name><desc_parameterlist xml:space="preserve"/></desc_signature><desc_content><paragraph>Returns a list of compressors available in C library.</paragraph><field_list><field classes="field-odd"><field_name>Parameters</field_name><field_body><paragraph><strong>None</strong></paragraph></field_body></field><field classes="field-even"><field_name>Returns</field_name><field_body><paragraph><strong>out</strong> : list</paragraph><block_quote><paragraph>The list of names.</paragraph></block_quote></field_body></field></field_list></desc_content></desc><index entries="[('single', 'detect_number_of_cores() (in module blosc)', 'blosc.detect_number_of_cores', '', None)]"/><desc desctype="function" domain="py" noindex="False" objtype="function"><desc_signature class="" first="False" fullname="detect_number_of_cores" ids="blosc.detect_number_of_cores" module="blosc" names="blosc.detect_number_of_cores"><desc_addname xml:space="preserve">blosc.</desc_addname><desc_name xml:space="preserve">detect_number_of_cores</desc_name><desc_parameterlist xml:space="preserve"/></desc_signature><desc_content><paragraph>Detect the number of cores in this system.</paragraph><field_list><field classes="field-odd"><field_name>Returns</field_name><field_body><paragraph><strong>out</strong> : int</paragraph><block_quote><paragraph>The number of cores in this system.</paragraph></block_quote></field_body></field></field_list></desc_content></desc><index entries="[('single', 'free_resources() (in module blosc)', 'blosc.free_resources', '', None)]"/><desc desctype="function" domain="py" noindex="False" objtype="function"><desc_signature class="" first="False" fullname="free_resources" ids="blosc.free_resources" module="blosc" names="blosc.free_resources"><desc_addname xml:space="preserve">blosc.</desc_addname><desc_name xml:space="preserve">free_resources</desc_name><desc_parameterlist xml:space="preserve"/></desc_signature><desc_content><paragraph>Free possible memory temporaries and thread resources.</paragraph><field_list><field classes="field-odd"><field_name>Returns</field_name><field_body><paragraph><strong>out</strong> : None</paragraph></field_body></field></field_list><rubric>Notes</rubric><paragraph>Blosc maintain a pool of threads waiting for work as well as some temporary space. You can use this function to release these resources when you are not going to use Blosc for a long while.</paragraph><rubric>Examples</rubric><doctest_block classes="doctest" xml:space="preserve">>>> blosc.free_resources() >>></doctest_block></desc_content></desc><index entries="[('single', 'get_clib() (in module blosc)', 'blosc.get_clib', '', None)]"/><desc desctype="function" domain="py" noindex="False" objtype="function"><desc_signature class="" first="False" fullname="get_clib" ids="blosc.get_clib" module="blosc" names="blosc.get_clib"><desc_addname xml:space="preserve">blosc.</desc_addname><desc_name xml:space="preserve">get_clib</desc_name><desc_parameterlist xml:space="preserve"><desc_parameter xml:space="preserve">bytesobj</desc_parameter></desc_parameterlist></desc_signature><desc_content><paragraph>Return the name of the compression library for Blosc <literal>bytesobj</literal> buffer.</paragraph><field_list><field classes="field-odd"><field_name>Parameters</field_name><field_body><paragraph><strong>bytesobj</strong> : str / bytes</paragraph><block_quote><paragraph>The compressed buffer.</paragraph></block_quote></field_body></field><field classes="field-even"><field_name>Returns</field_name><field_body><paragraph><strong>out</strong> : str</paragraph><block_quote><paragraph>The name of the compression library.</paragraph></block_quote></field_body></field></field_list></desc_content></desc><index entries="[('single', 'set_blocksize() (in module blosc)', 'blosc.set_blocksize', '', None)]"/><desc desctype="function" domain="py" noindex="False" objtype="function"><desc_signature class="" first="False" fullname="set_blocksize" ids="blosc.set_blocksize" module="blosc" names="blosc.set_blocksize"><desc_addname xml:space="preserve">blosc.</desc_addname><desc_name xml:space="preserve">set_blocksize</desc_name><desc_parameterlist xml:space="preserve"><desc_parameter xml:space="preserve">blocksize</desc_parameter></desc_parameterlist></desc_signature><desc_content><paragraph>Force the use of a specific blocksize. If 0, an automatic blocksize will be used (the default).</paragraph><rubric>Notes</rubric><paragraph>This is a low-level function and is recommened for expert users only.</paragraph><rubric>Examples</rubric><doctest_block classes="doctest" xml:space="preserve">>>> blosc.set_blocksize(512)</doctest_block></desc_content></desc><index entries="[('single', 'set_nthreads() (in module blosc)', 'blosc.set_nthreads', '', None)]"/><desc desctype="function" domain="py" noindex="False" objtype="function"><desc_signature class="" first="False" fullname="set_nthreads" ids="blosc.set_nthreads" module="blosc" names="blosc.set_nthreads"><desc_addname xml:space="preserve">blosc.</desc_addname><desc_name xml:space="preserve">set_nthreads</desc_name><desc_parameterlist xml:space="preserve"><desc_parameter xml:space="preserve">nthreads</desc_parameter></desc_parameterlist></desc_signature><desc_content><paragraph>Set the number of threads to be used during Blosc operation.</paragraph><field_list><field classes="field-odd"><field_name>Parameters</field_name><field_body><paragraph><strong>nthreads</strong> : int</paragraph><block_quote><paragraph>The number of threads to be used during Blosc operation.</paragraph></block_quote></field_body></field><field classes="field-even"><field_name>Returns</field_name><field_body><paragraph><strong>out</strong> : int</paragraph><block_quote><paragraph>The previous number of used threads.</paragraph></block_quote></field_body></field><field classes="field-odd"><field_name>Raises</field_name><field_body><paragraph><strong>ValueError</strong></paragraph><block_quote><paragraph>If nthreads is larger that the maximum number of threads blosc can use.</paragraph></block_quote></field_body></field></field_list><rubric>Notes</rubric><paragraph>The number of threads for Blosc is the maximum number of cores detected on your machine (via <literal>detect_number_of_cores</literal>). In some cases Blosc gets better results if you set the number of threads to a value slightly below than your number of cores.</paragraph><rubric>Examples</rubric><paragraph>Set the number of threads to 2 and then to 1:</paragraph><doctest_block classes="doctest" xml:space="preserve">>>> oldn = blosc.set_nthreads(2) >>> blosc.set_nthreads(1) 2</doctest_block></desc_content></desc><index entries="[('single', 'set_releasegil() (in module blosc)', 'blosc.set_releasegil', '', None)]"/><desc desctype="function" domain="py" noindex="False" objtype="function"><desc_signature class="" first="False" fullname="set_releasegil" ids="blosc.set_releasegil" module="blosc" names="blosc.set_releasegil"><desc_addname xml:space="preserve">blosc.</desc_addname><desc_name xml:space="preserve">set_releasegil</desc_name><desc_parameterlist xml:space="preserve"><desc_parameter xml:space="preserve">gitstate</desc_parameter></desc_parameterlist></desc_signature><desc_content><paragraph>Sets a boolean on whether to release the Python global inter-lock (GIL) during c-blosc compress and decompress operations or not. This defaults to False.</paragraph><rubric>Notes</rubric><paragraph>Designed to be used with larger chunk sizes and a ThreadPool. There is a small performance penalty with releasing the GIL that will more harshly penalize small block sizes.</paragraph><rubric>Examples</rubric><doctest_block classes="doctest" xml:space="preserve">>>> oldReleaseState = blosc.set_releasegil(True)</doctest_block></desc_content></desc><index entries="[('single', 'print_versions() (in module blosc)', 'blosc.print_versions', '', None)]"/><desc desctype="function" domain="py" noindex="False" objtype="function"><desc_signature class="" first="False" fullname="print_versions" ids="blosc.print_versions" module="blosc" names="blosc.print_versions"><desc_addname xml:space="preserve">blosc.</desc_addname><desc_name xml:space="preserve">print_versions</desc_name><desc_parameterlist xml:space="preserve"/></desc_signature><desc_content><paragraph>Print all the versions of software that python-blosc relies on.</paragraph></desc_content></desc></section> SphinxTranslator.dispatch_departure calling depart_section for <section ids="library-reference" names="library\ reference"><title>Library Reference</title><section ids="first-level-variables" names="first\ level\ variables"><title>First level variables</title><index entries="[('single', '__version__', '__version__', '', None)]"/><desc desctype="attribute" domain="py" noindex="False" objtype="attribute"><desc_signature class="" first="False" fullname="__version__" ids="__version__" module="True" names="__version__"><desc_name xml:space="preserve">__version__</desc_name></desc_signature><desc_content><paragraph>The version of the blosc package.</paragraph></desc_content></desc><index entries="[('single', 'blosclib_version', 'blosclib_version', '', None)]"/><desc desctype="attribute" domain="py" noindex="False" objtype="attribute"><desc_signature class="" first="False" fullname="blosclib_version" ids="blosclib_version" module="True" names="blosclib_version"><desc_name xml:space="preserve">blosclib_version</desc_name></desc_signature><desc_content><paragraph>The version of the Blosc C library.</paragraph></desc_content></desc><index entries="[('single', 'clib_versions', 'clib_versions', '', None)]"/><desc desctype="attribute" domain="py" noindex="False" objtype="attribute"><desc_signature class="" first="False" fullname="clib_versions" ids="clib_versions" module="True" names="clib_versions"><desc_name xml:space="preserve">clib_versions</desc_name></desc_signature><desc_content><paragraph>A map for the versions of the compression libraries included in C library.</paragraph></desc_content></desc><index entries="[('single', 'cnames', 'cnames', '', None)]"/><desc desctype="attribute" domain="py" noindex="False" objtype="attribute"><desc_signature class="" first="False" fullname="cnames" ids="cnames" module="True" names="cnames"><desc_name xml:space="preserve">cnames</desc_name></desc_signature><desc_content><paragraph>The list of compressors included in C library.</paragraph></desc_content></desc><index entries="[('single', 'cname2clib', 'cname2clib', '', None)]"/><desc desctype="attribute" domain="py" noindex="False" objtype="attribute"><desc_signature class="" first="False" fullname="cname2clib" ids="cname2clib" module="True" names="cname2clib"><desc_name xml:space="preserve">cname2clib</desc_name></desc_signature><desc_content><paragraph>A map between compressor names and its libraries (or formats).</paragraph></desc_content></desc><index entries="[('single', 'ncores', 'ncores', '', None)]"/><desc desctype="attribute" domain="py" noindex="False" objtype="attribute"><desc_signature class="" first="False" fullname="ncores" ids="ncores" module="True" names="ncores"><desc_name xml:space="preserve">ncores</desc_name></desc_signature><desc_content><paragraph>The number of cores detected.</paragraph></desc_content></desc></section><section ids="module-blosc public-functions" names="public\ functions"><title>Public functions</title><index entries="[('single', 'blosc (module)', 'module-blosc', '', None)]"/><index entries="[('single', 'compress() (in module blosc)', 'blosc.compress', '', None)]"/><desc desctype="function" domain="py" noindex="False" objtype="function"><desc_signature class="" first="False" fullname="compress" ids="blosc.compress" module="blosc" names="blosc.compress"><desc_addname xml:space="preserve">blosc.</desc_addname><desc_name xml:space="preserve">compress</desc_name><desc_parameterlist xml:space="preserve"><desc_parameter xml:space="preserve">bytesobj[, typesize=8, clevel=9, shuffle=blosc.SHUFFLE, cname='blosclz']]</desc_parameter></desc_parameterlist></desc_signature><desc_content><paragraph>Compress bytesobj, with a given type size.</paragraph><field_list><field classes="field-odd"><field_name>Parameters</field_name><field_body><paragraph><strong>bytesobj</strong> : bytes-like object (supporting the buffer interface)</paragraph><block_quote><paragraph>The data to be compressed.</paragraph></block_quote><paragraph><strong>typesize</strong> : int</paragraph><block_quote><paragraph>The data type size.</paragraph></block_quote><paragraph><strong>clevel</strong> : int (optional)</paragraph><block_quote><paragraph>The compression level from 0 (no compression) to 9 (maximum compression). The default is 9.</paragraph></block_quote><paragraph><strong>shuffle</strong> : int (optional)</paragraph><block_quote><paragraph>The shuffle filter to be activated. Allowed values are blosc.NOSHUFFLE, blosc.SHUFFLE and blosc.BITSHUFFLE. The default is blosc.SHUFFLE.</paragraph></block_quote><paragraph><strong>cname</strong> : string (optional)</paragraph><block_quote><paragraph>The name of the compressor used internally in Blosc. It can be any of the supported by Blosc (‘blosclz’, ‘lz4’, ‘lz4hc’, ‘snappy’, ‘zlib’, ‘zstd’ and maybe others too). The default is ‘blosclz’.</paragraph></block_quote></field_body></field><field classes="field-even"><field_name>Returns</field_name><field_body><paragraph><strong>out</strong> : str / bytes</paragraph><block_quote><paragraph>The compressed data in form of a Python str / bytes object.</paragraph></block_quote></field_body></field><field classes="field-odd"><field_name>Raises</field_name><field_body><paragraph><strong>TypeError</strong></paragraph><block_quote><paragraph>If bytesobj doesn’t support the buffer interface.</paragraph></block_quote><paragraph><strong>ValueError</strong></paragraph><block_quote><paragraph>If bytesobj is too long. If typesize is not within the allowed range. If clevel is not within the allowed range. If cname is not a valid codec.</paragraph></block_quote></field_body></field></field_list><rubric>Examples</rubric><doctest_block classes="doctest" xml:space="preserve">>>> import array >>> a = array.array('i', range(1000*1000)) >>> a_bytesobj = a.tostring() >>> c_bytesobj = blosc.compress(a_bytesobj, typesize=4) >>> len(c_bytesobj) < len(a_bytesobj) True</doctest_block></desc_content></desc><index entries="[('single', 'compress_ptr() (in module blosc)', 'blosc.compress_ptr', '', None)]"/><desc desctype="function" domain="py" noindex="False" objtype="function"><desc_signature class="" first="False" fullname="compress_ptr" ids="blosc.compress_ptr" module="blosc" names="blosc.compress_ptr"><desc_addname xml:space="preserve">blosc.</desc_addname><desc_name xml:space="preserve">compress_ptr</desc_name><desc_parameterlist xml:space="preserve"><desc_parameter xml:space="preserve">address, items[, typesize=8, clevel=9, shuffle=blosc.SHUFFLE, cname='blosclz']]</desc_parameter></desc_parameterlist></desc_signature><desc_content><paragraph>Compress the data at address with given items and typesize.</paragraph><field_list><field classes="field-odd"><field_name>Parameters</field_name><field_body><paragraph><strong>address</strong> : int or long</paragraph><block_quote><paragraph>the pointer to the data to be compressed</paragraph></block_quote><paragraph><strong>items</strong> : int</paragraph><block_quote><paragraph>The number of items (of typesize) to be compressed.</paragraph></block_quote><paragraph><strong>typesize</strong> : int</paragraph><block_quote><paragraph>The data type size.</paragraph></block_quote><paragraph><strong>clevel</strong> : int (optional)</paragraph><block_quote><paragraph>The compression level from 0 (no compression) to 9 (maximum compression). The default is 9.</paragraph></block_quote><paragraph><strong>shuffle</strong> : int (optional)</paragraph><block_quote><paragraph>The shuffle filter to be activated. Allowed values are blosc.NOSHUFFLE, blosc.SHUFFLE and blosc.BITSHUFFLE. The default is blosc.SHUFFLE.</paragraph></block_quote><paragraph><strong>cname</strong> : string (optional)</paragraph><block_quote><paragraph>The name of the compressor used internally in Blosc. It can be any of the supported by Blosc (‘blosclz’, ‘lz4’, ‘lz4hc’, ‘snappy’, ‘zlib’, ‘zstd’ and maybe others too). The default is ‘blosclz’.</paragraph></block_quote></field_body></field><field classes="field-even"><field_name>Returns</field_name><field_body><paragraph><strong>out</strong> : str / bytes</paragraph><block_quote><paragraph>The compressed data in form of a Python str / bytes object.</paragraph></block_quote></field_body></field><field classes="field-odd"><field_name>Raises</field_name><field_body><paragraph><strong>TypeError</strong></paragraph><block_quote><paragraph>If address is not of type int or long.</paragraph></block_quote><paragraph><strong>ValueError</strong></paragraph><block_quote><paragraph>If items * typesize is larger than the maximum allowed buffer size. If typesize is not within the allowed range. If clevel is not within the allowed range. If cname is not within the supported compressors.</paragraph></block_quote></field_body></field></field_list><rubric>Notes</rubric><paragraph>This function can be used anywhere that a memory address is available in Python. For example the Numpy “__array_interface__[‘data’][0]†construct, or when using the ctypes modules.</paragraph><paragraph>Importantly, the user is responsible for making sure that the memory address is valid and that the memory pointed to is contiguous. Passing a non-valid address has a high likelihood of crashing the interpreter by segfault.</paragraph><rubric>Examples</rubric><doctest_block classes="doctest" xml:space="preserve">>>> import numpy >>> items = 7 >>> np_array = numpy.arange(items) >>> c = blosc.compress_ptr(np_array.__array_interface__['data'][0], items, np_array.dtype.itemsize) >>> d = blosc.decompress(c) >>> np_ans = numpy.fromstring(d, dtype=np_array.dtype) >>> (np_array == np_ans).all() True</doctest_block><doctest_block classes="doctest" xml:space="preserve">>>> import ctypes >>> typesize = 8 >>> data = [float(i) for i in range(items)] >>> Array = ctypes.c_double * items >>> a = Array(*data) >>> c = blosc.compress_ptr(ctypes.addressof(a), items, typesize) >>> d = blosc.decompress(c) >>> import struct >>> ans = [struct.unpack('d', d[i:i+typesize])[0] for i in range(0, items*typesize, typesize)] >>> data == ans True</doctest_block></desc_content></desc><index entries="[('single', 'decompress() (in module blosc)', 'blosc.decompress', '', None)]"/><desc desctype="function" domain="py" noindex="False" objtype="function"><desc_signature class="" first="False" fullname="decompress" ids="blosc.decompress" module="blosc" names="blosc.decompress"><desc_addname xml:space="preserve">blosc.</desc_addname><desc_name xml:space="preserve">decompress</desc_name><desc_parameterlist xml:space="preserve"><desc_parameter xml:space="preserve">bytesobj</desc_parameter></desc_parameterlist></desc_signature><desc_content><paragraph>Decompresses a bytesobj compressed object.</paragraph><field_list><field classes="field-odd"><field_name>Parameters</field_name><field_body><paragraph><strong>bytesobj</strong> : str / bytes</paragraph><block_quote><paragraph>The data to be decompressed.</paragraph></block_quote><paragraph><strong>as_bytearray</strong> : bool, optional</paragraph><block_quote><paragraph>If this flag is True then the return type will be a bytearray object instead of a bytesobject.</paragraph></block_quote></field_body></field><field classes="field-even"><field_name>Returns</field_name><field_body><paragraph><strong>out</strong> : str / bytes or bytearray</paragraph><block_quote><paragraph>The decompressed data in form of a Python str / bytes object. If as_bytearray is True then this will be a bytearray object, otherwise this will be a str/ bytes object.</paragraph></block_quote></field_body></field><field classes="field-odd"><field_name>Raises</field_name><field_body><paragraph><strong>TypeError</strong></paragraph><block_quote><paragraph>If bytesobj is not of type bytes or string.</paragraph></block_quote></field_body></field></field_list><rubric>Examples</rubric><doctest_block classes="doctest" xml:space="preserve">>>> import array >>> a = array.array('i', range(1000*1000)) >>> a_bytesobj = a.tostring() >>> c_bytesobj = blosc.compress(a_bytesobj, typesize=4) >>> a_bytesobj2 = blosc.decompress(c_bytesobj) >>> a_bytesobj == a_bytesobj2 True >>> b"" == blosc.decompress(blosc.compress(b"", 1)) True >>> b"1"*7 == blosc.decompress(blosc.compress(b"1"*7, 8)) True >>> type(blosc.decompress(blosc.compress(b"1"*7, 8), ... as_bytearray=True)) is bytearray True</doctest_block></desc_content></desc><index entries="[('single', 'decompress_ptr() (in module blosc)', 'blosc.decompress_ptr', '', None)]"/><desc desctype="function" domain="py" noindex="False" objtype="function"><desc_signature class="" first="False" fullname="decompress_ptr" ids="blosc.decompress_ptr" module="blosc" names="blosc.decompress_ptr"><desc_addname xml:space="preserve">blosc.</desc_addname><desc_name xml:space="preserve">decompress_ptr</desc_name><desc_parameterlist xml:space="preserve"><desc_parameter xml:space="preserve">bytesobj</desc_parameter><desc_parameter xml:space="preserve">address</desc_parameter></desc_parameterlist></desc_signature><desc_content><paragraph>Decompresses a bytesobj compressed object into the memory at address.</paragraph><field_list><field classes="field-odd"><field_name>Parameters</field_name><field_body><paragraph><strong>bytesobj</strong> : str / bytes</paragraph><block_quote><paragraph>The data to be decompressed.</paragraph></block_quote><paragraph><strong>address</strong> : int or long</paragraph><block_quote><paragraph>the pointer to the data to be compressed</paragraph></block_quote></field_body></field><field classes="field-even"><field_name>Returns</field_name><field_body><paragraph><strong>nbytes</strong> : int</paragraph><block_quote><paragraph>the number of bytes written to the buffer</paragraph></block_quote></field_body></field><field classes="field-odd"><field_name>Raises</field_name><field_body><paragraph><strong>TypeError</strong></paragraph><block_quote><paragraph>If bytesobj is not of type bytes or string. If address is not of type int or long.</paragraph></block_quote></field_body></field></field_list><rubric>Notes</rubric><paragraph>This function can be used anywhere that a memory address is available in Python. For example the Numpy “__array_interface__[‘data’][0]†construct, or when using the ctypes modules.</paragraph><paragraph>Importantly, the user is responsible for making sure that the memory address is valid and that the memory pointed to is contiguous and can be written to. Passing a non-valid address has a high likelihood of crashing the interpreter by segfault.</paragraph><rubric>Examples</rubric><doctest_block classes="doctest" xml:space="preserve">>>> import numpy >>> items = 7 >>> np_array = numpy.arange(items) >>> c = blosc.compress_ptr(np_array.__array_interface__['data'][0], items, np_array.dtype.itemsize) >>> np_ans = numpy.empty(items, dtype=np_array.dtype) >>> nbytes = blosc.decompress_ptr(c, np_ans.__array_interface__['data'][0]) >>> (np_array == np_ans).all() True >>> nbytes == items * np_array.dtype.itemsize True</doctest_block><doctest_block classes="doctest" xml:space="preserve">>>> import ctypes >>> typesize = 8 >>> data = [float(i) for i in range(items)] >>> Array = ctypes.c_double * items >>> in_array = Array(*data) >>> c = blosc.compress_ptr(ctypes.addressof(in_array), items, typesize) >>> out_array = ctypes.create_string_buffer(items*typesize) >>> nbytes = blosc.decompress_ptr(c, ctypes.addressof(out_array)) >>> import struct >>> ans = [struct.unpack('d', out_array[i:i+typesize])[0] for i in range(0, items*typesize, typesize)] >>> data == ans True >>> nbytes == items * typesize True</doctest_block></desc_content></desc><index entries="[('single', 'pack_array() (in module blosc)', 'blosc.pack_array', '', None)]"/><desc desctype="function" domain="py" noindex="False" objtype="function"><desc_signature class="" first="False" fullname="pack_array" ids="blosc.pack_array" module="blosc" names="blosc.pack_array"><desc_addname xml:space="preserve">blosc.</desc_addname><desc_name xml:space="preserve">pack_array</desc_name><desc_parameterlist xml:space="preserve"><desc_parameter xml:space="preserve">array[, clevel=9, shuffle=blosc.SHUFFLE, cname='blosclz']]</desc_parameter></desc_parameterlist></desc_signature><desc_content><paragraph>Pack (compress) a NumPy array.</paragraph><field_list><field classes="field-odd"><field_name>Parameters</field_name><field_body><paragraph><strong>array</strong> : ndarray</paragraph><block_quote><paragraph>The NumPy array to be packed.</paragraph></block_quote><paragraph><strong>clevel</strong> : int (optional)</paragraph><block_quote><paragraph>The compression level from 0 (no compression) to 9 (maximum compression). The default is 9.</paragraph></block_quote><paragraph><strong>shuffle</strong> : int (optional)</paragraph><block_quote><paragraph>The shuffle filter to be activated. Allowed values are blosc.NOSHUFFLE, blosc.SHUFFLE and blosc.BITSHUFFLE. The default is blosc.SHUFFLE.</paragraph></block_quote><paragraph><strong>cname</strong> : string (optional)</paragraph><block_quote><paragraph>The name of the compressor used internally in Blosc. It can be any of the supported by Blosc (‘blosclz’, ‘lz4’, ‘lz4hc’, ‘snappy’, ‘zlib’, ‘zstd’ and maybe others too). The default is ‘blosclz’.</paragraph></block_quote></field_body></field><field classes="field-even"><field_name>Returns</field_name><field_body><paragraph><strong>out</strong> : str / bytes</paragraph><block_quote><paragraph>The packed array in form of a Python str / bytes object.</paragraph></block_quote></field_body></field><field classes="field-odd"><field_name>Raises</field_name><field_body><paragraph><strong>TypeError</strong></paragraph><block_quote><paragraph>If array does not quack like a numpy ndarray.</paragraph></block_quote><paragraph><strong>ValueError</strong></paragraph><block_quote><definition_list classes="simple"><definition_list_item><term>If array.itemsize * array.size is larger than the maximum allowed</term><definition><paragraph>buffer size.</paragraph></definition></definition_list_item></definition_list><paragraph>If typesize is not within the allowed range. If clevel is not within the allowed range. If cname is not within the supported compressors.</paragraph></block_quote></field_body></field></field_list><rubric>Examples</rubric><doctest_block classes="doctest" xml:space="preserve">>>> import numpy >>> a = numpy.arange(1e6) >>> parray = blosc.pack_array(a) >>> len(parray) < a.size*a.itemsize True</doctest_block></desc_content></desc><index entries="[('single', 'unpack_array() (in module blosc)', 'blosc.unpack_array', '', None)]"/><desc desctype="function" domain="py" noindex="False" objtype="function"><desc_signature class="" first="False" fullname="unpack_array" ids="blosc.unpack_array" module="blosc" names="blosc.unpack_array"><desc_addname xml:space="preserve">blosc.</desc_addname><desc_name xml:space="preserve">unpack_array</desc_name><desc_parameterlist xml:space="preserve"><desc_parameter xml:space="preserve">packed_array</desc_parameter></desc_parameterlist></desc_signature><desc_content><paragraph>Unpack (decompress) a packed NumPy array.</paragraph><field_list><field classes="field-odd"><field_name>Parameters</field_name><field_body><paragraph><strong>packed_array</strong> : str / bytes</paragraph><block_quote><paragraph>The packed array to be decompressed.</paragraph></block_quote></field_body></field><field classes="field-even"><field_name>Returns</field_name><field_body><paragraph><strong>out</strong> : ndarray</paragraph><block_quote><paragraph>The decompressed data in form of a NumPy array.</paragraph></block_quote></field_body></field><field classes="field-odd"><field_name>Raises</field_name><field_body><paragraph><strong>TypeError</strong></paragraph><block_quote><paragraph>If packed_array is not of type bytes or string.</paragraph></block_quote></field_body></field></field_list><rubric>Examples</rubric><doctest_block classes="doctest" xml:space="preserve">>>> import numpy >>> a = numpy.arange(1e6) >>> parray = blosc.pack_array(a) >>> len(parray) < a.size*a.itemsize True >>> a2 = blosc.unpack_array(parray) >>> numpy.alltrue(a == a2) True</doctest_block></desc_content></desc></section><section ids="module-blosc utilities" names="utilities"><title>Utilities</title><index entries="[('single', 'blosc (module)', 'module-blosc', '', None)]"/><index entries="[('single', 'clib_info() (in module blosc)', 'blosc.clib_info', '', None)]"/><desc desctype="function" domain="py" noindex="False" objtype="function"><desc_signature class="" first="False" fullname="clib_info" ids="blosc.clib_info" module="blosc" names="blosc.clib_info"><desc_addname xml:space="preserve">blosc.</desc_addname><desc_name xml:space="preserve">clib_info</desc_name><desc_parameterlist xml:space="preserve"><desc_parameter xml:space="preserve">cname</desc_parameter></desc_parameterlist></desc_signature><desc_content><paragraph>Return info for compression libraries in C library.</paragraph><field_list><field classes="field-odd"><field_name>Parameters</field_name><field_body><paragraph><strong>cname</strong> : str</paragraph><block_quote><paragraph>The compressor name.</paragraph></block_quote></field_body></field><field classes="field-even"><field_name>Returns</field_name><field_body><paragraph><strong>out</strong> : tuple</paragraph><block_quote><paragraph>The associated library name and version.</paragraph></block_quote></field_body></field></field_list></desc_content></desc><index entries="[('single', 'compressor_list() (in module blosc)', 'blosc.compressor_list', '', None)]"/><desc desctype="function" domain="py" noindex="False" objtype="function"><desc_signature class="" first="False" fullname="compressor_list" ids="blosc.compressor_list" module="blosc" names="blosc.compressor_list"><desc_addname xml:space="preserve">blosc.</desc_addname><desc_name xml:space="preserve">compressor_list</desc_name><desc_parameterlist xml:space="preserve"/></desc_signature><desc_content><paragraph>Returns a list of compressors available in C library.</paragraph><field_list><field classes="field-odd"><field_name>Parameters</field_name><field_body><paragraph><strong>None</strong></paragraph></field_body></field><field classes="field-even"><field_name>Returns</field_name><field_body><paragraph><strong>out</strong> : list</paragraph><block_quote><paragraph>The list of names.</paragraph></block_quote></field_body></field></field_list></desc_content></desc><index entries="[('single', 'detect_number_of_cores() (in module blosc)', 'blosc.detect_number_of_cores', '', None)]"/><desc desctype="function" domain="py" noindex="False" objtype="function"><desc_signature class="" first="False" fullname="detect_number_of_cores" ids="blosc.detect_number_of_cores" module="blosc" names="blosc.detect_number_of_cores"><desc_addname xml:space="preserve">blosc.</desc_addname><desc_name xml:space="preserve">detect_number_of_cores</desc_name><desc_parameterlist xml:space="preserve"/></desc_signature><desc_content><paragraph>Detect the number of cores in this system.</paragraph><field_list><field classes="field-odd"><field_name>Returns</field_name><field_body><paragraph><strong>out</strong> : int</paragraph><block_quote><paragraph>The number of cores in this system.</paragraph></block_quote></field_body></field></field_list></desc_content></desc><index entries="[('single', 'free_resources() (in module blosc)', 'blosc.free_resources', '', None)]"/><desc desctype="function" domain="py" noindex="False" objtype="function"><desc_signature class="" first="False" fullname="free_resources" ids="blosc.free_resources" module="blosc" names="blosc.free_resources"><desc_addname xml:space="preserve">blosc.</desc_addname><desc_name xml:space="preserve">free_resources</desc_name><desc_parameterlist xml:space="preserve"/></desc_signature><desc_content><paragraph>Free possible memory temporaries and thread resources.</paragraph><field_list><field classes="field-odd"><field_name>Returns</field_name><field_body><paragraph><strong>out</strong> : None</paragraph></field_body></field></field_list><rubric>Notes</rubric><paragraph>Blosc maintain a pool of threads waiting for work as well as some temporary space. You can use this function to release these resources when you are not going to use Blosc for a long while.</paragraph><rubric>Examples</rubric><doctest_block classes="doctest" xml:space="preserve">>>> blosc.free_resources() >>></doctest_block></desc_content></desc><index entries="[('single', 'get_clib() (in module blosc)', 'blosc.get_clib', '', None)]"/><desc desctype="function" domain="py" noindex="False" objtype="function"><desc_signature class="" first="False" fullname="get_clib" ids="blosc.get_clib" module="blosc" names="blosc.get_clib"><desc_addname xml:space="preserve">blosc.</desc_addname><desc_name xml:space="preserve">get_clib</desc_name><desc_parameterlist xml:space="preserve"><desc_parameter xml:space="preserve">bytesobj</desc_parameter></desc_parameterlist></desc_signature><desc_content><paragraph>Return the name of the compression library for Blosc <literal>bytesobj</literal> buffer.</paragraph><field_list><field classes="field-odd"><field_name>Parameters</field_name><field_body><paragraph><strong>bytesobj</strong> : str / bytes</paragraph><block_quote><paragraph>The compressed buffer.</paragraph></block_quote></field_body></field><field classes="field-even"><field_name>Returns</field_name><field_body><paragraph><strong>out</strong> : str</paragraph><block_quote><paragraph>The name of the compression library.</paragraph></block_quote></field_body></field></field_list></desc_content></desc><index entries="[('single', 'set_blocksize() (in module blosc)', 'blosc.set_blocksize', '', None)]"/><desc desctype="function" domain="py" noindex="False" objtype="function"><desc_signature class="" first="False" fullname="set_blocksize" ids="blosc.set_blocksize" module="blosc" names="blosc.set_blocksize"><desc_addname xml:space="preserve">blosc.</desc_addname><desc_name xml:space="preserve">set_blocksize</desc_name><desc_parameterlist xml:space="preserve"><desc_parameter xml:space="preserve">blocksize</desc_parameter></desc_parameterlist></desc_signature><desc_content><paragraph>Force the use of a specific blocksize. If 0, an automatic blocksize will be used (the default).</paragraph><rubric>Notes</rubric><paragraph>This is a low-level function and is recommened for expert users only.</paragraph><rubric>Examples</rubric><doctest_block classes="doctest" xml:space="preserve">>>> blosc.set_blocksize(512)</doctest_block></desc_content></desc><index entries="[('single', 'set_nthreads() (in module blosc)', 'blosc.set_nthreads', '', None)]"/><desc desctype="function" domain="py" noindex="False" objtype="function"><desc_signature class="" first="False" fullname="set_nthreads" ids="blosc.set_nthreads" module="blosc" names="blosc.set_nthreads"><desc_addname xml:space="preserve">blosc.</desc_addname><desc_name xml:space="preserve">set_nthreads</desc_name><desc_parameterlist xml:space="preserve"><desc_parameter xml:space="preserve">nthreads</desc_parameter></desc_parameterlist></desc_signature><desc_content><paragraph>Set the number of threads to be used during Blosc operation.</paragraph><field_list><field classes="field-odd"><field_name>Parameters</field_name><field_body><paragraph><strong>nthreads</strong> : int</paragraph><block_quote><paragraph>The number of threads to be used during Blosc operation.</paragraph></block_quote></field_body></field><field classes="field-even"><field_name>Returns</field_name><field_body><paragraph><strong>out</strong> : int</paragraph><block_quote><paragraph>The previous number of used threads.</paragraph></block_quote></field_body></field><field classes="field-odd"><field_name>Raises</field_name><field_body><paragraph><strong>ValueError</strong></paragraph><block_quote><paragraph>If nthreads is larger that the maximum number of threads blosc can use.</paragraph></block_quote></field_body></field></field_list><rubric>Notes</rubric><paragraph>The number of threads for Blosc is the maximum number of cores detected on your machine (via <literal>detect_number_of_cores</literal>). In some cases Blosc gets better results if you set the number of threads to a value slightly below than your number of cores.</paragraph><rubric>Examples</rubric><paragraph>Set the number of threads to 2 and then to 1:</paragraph><doctest_block classes="doctest" xml:space="preserve">>>> oldn = blosc.set_nthreads(2) >>> blosc.set_nthreads(1) 2</doctest_block></desc_content></desc><index entries="[('single', 'set_releasegil() (in module blosc)', 'blosc.set_releasegil', '', None)]"/><desc desctype="function" domain="py" noindex="False" objtype="function"><desc_signature class="" first="False" fullname="set_releasegil" ids="blosc.set_releasegil" module="blosc" names="blosc.set_releasegil"><desc_addname xml:space="preserve">blosc.</desc_addname><desc_name xml:space="preserve">set_releasegil</desc_name><desc_parameterlist xml:space="preserve"><desc_parameter xml:space="preserve">gitstate</desc_parameter></desc_parameterlist></desc_signature><desc_content><paragraph>Sets a boolean on whether to release the Python global inter-lock (GIL) during c-blosc compress and decompress operations or not. This defaults to False.</paragraph><rubric>Notes</rubric><paragraph>Designed to be used with larger chunk sizes and a ThreadPool. There is a small performance penalty with releasing the GIL that will more harshly penalize small block sizes.</paragraph><rubric>Examples</rubric><doctest_block classes="doctest" xml:space="preserve">>>> oldReleaseState = blosc.set_releasegil(True)</doctest_block></desc_content></desc><index entries="[('single', 'print_versions() (in module blosc)', 'blosc.print_versions', '', None)]"/><desc desctype="function" domain="py" noindex="False" objtype="function"><desc_signature class="" first="False" fullname="print_versions" ids="blosc.print_versions" module="blosc" names="blosc.print_versions"><desc_addname xml:space="preserve">blosc.</desc_addname><desc_name xml:space="preserve">print_versions</desc_name><desc_parameterlist xml:space="preserve"/></desc_signature><desc_content><paragraph>Print all the versions of software that python-blosc relies on.</paragraph></desc_content></desc></section></section> SphinxTranslator.dispatch_departure calling depart_document for <document source="/usr/src/RPM/BUILD/python3-module-blosc-1.5.1/doc/reference.rst"><section ids="library-reference" names="library\ reference"><title>Library Reference</title><section ids="first-level-variables" names="first\ level\ variables"><title>First level variables</title><index entries="[('single', '__version__', '__version__', '', None)]"/><desc desctype="attribute" domain="py" noindex="False" objtype="attribute"><desc_signature class="" first="False" fullname="__version__" ids="__version__" module="True" names="__version__"><desc_name xml:space="preserve">__version__</desc_name></desc_signature><desc_content><paragraph>The version of the blosc package.</paragraph></desc_content></desc><index entries="[('single', 'blosclib_version', 'blosclib_version', '', None)]"/><desc desctype="attribute" domain="py" noindex="False" objtype="attribute"><desc_signature class="" first="False" fullname="blosclib_version" ids="blosclib_version" module="True" names="blosclib_version"><desc_name xml:space="preserve">blosclib_version</desc_name></desc_signature><desc_content><paragraph>The version of the Blosc C library.</paragraph></desc_content></desc><index entries="[('single', 'clib_versions', 'clib_versions', '', None)]"/><desc desctype="attribute" domain="py" noindex="False" objtype="attribute"><desc_signature class="" first="False" fullname="clib_versions" ids="clib_versions" module="True" names="clib_versions"><desc_name xml:space="preserve">clib_versions</desc_name></desc_signature><desc_content><paragraph>A map for the versions of the compression libraries included in C library.</paragraph></desc_content></desc><index entries="[('single', 'cnames', 'cnames', '', None)]"/><desc desctype="attribute" domain="py" noindex="False" objtype="attribute"><desc_signature class="" first="False" fullname="cnames" ids="cnames" module="True" names="cnames"><desc_name xml:space="preserve">cnames</desc_name></desc_signature><desc_content><paragraph>The list of compressors included in C library.</paragraph></desc_content></desc><index entries="[('single', 'cname2clib', 'cname2clib', '', None)]"/><desc desctype="attribute" domain="py" noindex="False" objtype="attribute"><desc_signature class="" first="False" fullname="cname2clib" ids="cname2clib" module="True" names="cname2clib"><desc_name xml:space="preserve">cname2clib</desc_name></desc_signature><desc_content><paragraph>A map between compressor names and its libraries (or formats).</paragraph></desc_content></desc><index entries="[('single', 'ncores', 'ncores', '', None)]"/><desc desctype="attribute" domain="py" noindex="False" objtype="attribute"><desc_signature class="" first="False" fullname="ncores" ids="ncores" module="True" names="ncores"><desc_name xml:space="preserve">ncores</desc_name></desc_signature><desc_content><paragraph>The number of cores detected.</paragraph></desc_content></desc></section><section ids="module-blosc public-functions" names="public\ functions"><title>Public functions</title><index entries="[('single', 'blosc (module)', 'module-blosc', '', None)]"/><index entries="[('single', 'compress() (in module blosc)', 'blosc.compress', '', None)]"/><desc desctype="function" domain="py" noindex="False" objtype="function"><desc_signature class="" first="False" fullname="compress" ids="blosc.compress" module="blosc" names="blosc.compress"><desc_addname xml:space="preserve">blosc.</desc_addname><desc_name xml:space="preserve">compress</desc_name><desc_parameterlist xml:space="preserve"><desc_parameter xml:space="preserve">bytesobj[, typesize=8, clevel=9, shuffle=blosc.SHUFFLE, cname='blosclz']]</desc_parameter></desc_parameterlist></desc_signature><desc_content><paragraph>Compress bytesobj, with a given type size.</paragraph><field_list><field classes="field-odd"><field_name>Parameters</field_name><field_body><paragraph><strong>bytesobj</strong> : bytes-like object (supporting the buffer interface)</paragraph><block_quote><paragraph>The data to be compressed.</paragraph></block_quote><paragraph><strong>typesize</strong> : int</paragraph><block_quote><paragraph>The data type size.</paragraph></block_quote><paragraph><strong>clevel</strong> : int (optional)</paragraph><block_quote><paragraph>The compression level from 0 (no compression) to 9 (maximum compression). The default is 9.</paragraph></block_quote><paragraph><strong>shuffle</strong> : int (optional)</paragraph><block_quote><paragraph>The shuffle filter to be activated. Allowed values are blosc.NOSHUFFLE, blosc.SHUFFLE and blosc.BITSHUFFLE. The default is blosc.SHUFFLE.</paragraph></block_quote><paragraph><strong>cname</strong> : string (optional)</paragraph><block_quote><paragraph>The name of the compressor used internally in Blosc. It can be any of the supported by Blosc (‘blosclz’, ‘lz4’, ‘lz4hc’, ‘snappy’, ‘zlib’, ‘zstd’ and maybe others too). The default is ‘blosclz’.</paragraph></block_quote></field_body></field><field classes="field-even"><field_name>Returns</field_name><field_body><paragraph><strong>out</strong> : str / bytes</paragraph><block_quote><paragraph>The compressed data in form of a Python str / bytes object.</paragraph></block_quote></field_body></field><field classes="field-odd"><field_name>Raises</field_name><field_body><paragraph><strong>TypeError</strong></paragraph><block_quote><paragraph>If bytesobj doesn’t support the buffer interface.</paragraph></block_quote><paragraph><strong>ValueError</strong></paragraph><block_quote><paragraph>If bytesobj is too long. If typesize is not within the allowed range. If clevel is not within the allowed range. If cname is not a valid codec.</paragraph></block_quote></field_body></field></field_list><rubric>Examples</rubric><doctest_block classes="doctest" xml:space="preserve">>>> import array >>> a = array.array('i', range(1000*1000)) >>> a_bytesobj = a.tostring() >>> c_bytesobj = blosc.compress(a_bytesobj, typesize=4) >>> len(c_bytesobj) < len(a_bytesobj) True</doctest_block></desc_content></desc><index entries="[('single', 'compress_ptr() (in module blosc)', 'blosc.compress_ptr', '', None)]"/><desc desctype="function" domain="py" noindex="False" objtype="function"><desc_signature class="" first="False" fullname="compress_ptr" ids="blosc.compress_ptr" module="blosc" names="blosc.compress_ptr"><desc_addname xml:space="preserve">blosc.</desc_addname><desc_name xml:space="preserve">compress_ptr</desc_name><desc_parameterlist xml:space="preserve"><desc_parameter xml:space="preserve">address, items[, typesize=8, clevel=9, shuffle=blosc.SHUFFLE, cname='blosclz']]</desc_parameter></desc_parameterlist></desc_signature><desc_content><paragraph>Compress the data at address with given items and typesize.</paragraph><field_list><field classes="field-odd"><field_name>Parameters</field_name><field_body><paragraph><strong>address</strong> : int or long</paragraph><block_quote><paragraph>the pointer to the data to be compressed</paragraph></block_quote><paragraph><strong>items</strong> : int</paragraph><block_quote><paragraph>The number of items (of typesize) to be compressed.</paragraph></block_quote><paragraph><strong>typesize</strong> : int</paragraph><block_quote><paragraph>The data type size.</paragraph></block_quote><paragraph><strong>clevel</strong> : int (optional)</paragraph><block_quote><paragraph>The compression level from 0 (no compression) to 9 (maximum compression). The default is 9.</paragraph></block_quote><paragraph><strong>shuffle</strong> : int (optional)</paragraph><block_quote><paragraph>The shuffle filter to be activated. Allowed values are blosc.NOSHUFFLE, blosc.SHUFFLE and blosc.BITSHUFFLE. The default is blosc.SHUFFLE.</paragraph></block_quote><paragraph><strong>cname</strong> : string (optional)</paragraph><block_quote><paragraph>The name of the compressor used internally in Blosc. It can be any of the supported by Blosc (‘blosclz’, ‘lz4’, ‘lz4hc’, ‘snappy’, ‘zlib’, ‘zstd’ and maybe others too). The default is ‘blosclz’.</paragraph></block_quote></field_body></field><field classes="field-even"><field_name>Returns</field_name><field_body><paragraph><strong>out</strong> : str / bytes</paragraph><block_quote><paragraph>The compressed data in form of a Python str / bytes object.</paragraph></block_quote></field_body></field><field classes="field-odd"><field_name>Raises</field_name><field_body><paragraph><strong>TypeError</strong></paragraph><block_quote><paragraph>If address is not of type int or long.</paragraph></block_quote><paragraph><strong>ValueError</strong></paragraph><block_quote><paragraph>If items * typesize is larger than the maximum allowed buffer size. If typesize is not within the allowed range. If clevel is not within the allowed range. If cname is not within the supported compressors.</paragraph></block_quote></field_body></field></field_list><rubric>Notes</rubric><paragraph>This function can be used anywhere that a memory address is available in Python. For example the Numpy “__array_interface__[‘data’][0]†construct, or when using the ctypes modules.</paragraph><paragraph>Importantly, the user is responsible for making sure that the memory address is valid and that the memory pointed to is contiguous. Passing a non-valid address has a high likelihood of crashing the interpreter by segfault.</paragraph><rubric>Examples</rubric><doctest_block classes="doctest" xml:space="preserve">>>> import numpy >>> items = 7 >>> np_array = numpy.arange(items) >>> c = blosc.compress_ptr(np_array.__array_interface__['data'][0], items, np_array.dtype.itemsize) >>> d = blosc.decompress(c) >>> np_ans = numpy.fromstring(d, dtype=np_array.dtype) >>> (np_array == np_ans).all() True</doctest_block><doctest_block classes="doctest" xml:space="preserve">>>> import ctypes >>> typesize = 8 >>> data = [float(i) for i in range(items)] >>> Array = ctypes.c_double * items >>> a = Array(*data) >>> c = blosc.compress_ptr(ctypes.addressof(a), items, typesize) >>> d = blosc.decompress(c) >>> import struct >>> ans = [struct.unpack('d', d[i:i+typesize])[0] for i in range(0, items*typesize, typesize)] >>> data == ans True</doctest_block></desc_content></desc><index entries="[('single', 'decompress() (in module blosc)', 'blosc.decompress', '', None)]"/><desc desctype="function" domain="py" noindex="False" objtype="function"><desc_signature class="" first="False" fullname="decompress" ids="blosc.decompress" module="blosc" names="blosc.decompress"><desc_addname xml:space="preserve">blosc.</desc_addname><desc_name xml:space="preserve">decompress</desc_name><desc_parameterlist xml:space="preserve"><desc_parameter xml:space="preserve">bytesobj</desc_parameter></desc_parameterlist></desc_signature><desc_content><paragraph>Decompresses a bytesobj compressed object.</paragraph><field_list><field classes="field-odd"><field_name>Parameters</field_name><field_body><paragraph><strong>bytesobj</strong> : str / bytes</paragraph><block_quote><paragraph>The data to be decompressed.</paragraph></block_quote><paragraph><strong>as_bytearray</strong> : bool, optional</paragraph><block_quote><paragraph>If this flag is True then the return type will be a bytearray object instead of a bytesobject.</paragraph></block_quote></field_body></field><field classes="field-even"><field_name>Returns</field_name><field_body><paragraph><strong>out</strong> : str / bytes or bytearray</paragraph><block_quote><paragraph>The decompressed data in form of a Python str / bytes object. If as_bytearray is True then this will be a bytearray object, otherwise this will be a str/ bytes object.</paragraph></block_quote></field_body></field><field classes="field-odd"><field_name>Raises</field_name><field_body><paragraph><strong>TypeError</strong></paragraph><block_quote><paragraph>If bytesobj is not of type bytes or string.</paragraph></block_quote></field_body></field></field_list><rubric>Examples</rubric><doctest_block classes="doctest" xml:space="preserve">>>> import array >>> a = array.array('i', range(1000*1000)) >>> a_bytesobj = a.tostring() >>> c_bytesobj = blosc.compress(a_bytesobj, typesize=4) >>> a_bytesobj2 = blosc.decompress(c_bytesobj) >>> a_bytesobj == a_bytesobj2 True >>> b"" == blosc.decompress(blosc.compress(b"", 1)) True >>> b"1"*7 == blosc.decompress(blosc.compress(b"1"*7, 8)) True >>> type(blosc.decompress(blosc.compress(b"1"*7, 8), ... as_bytearray=True)) is bytearray True</doctest_block></desc_content></desc><index entries="[('single', 'decompress_ptr() (in module blosc)', 'blosc.decompress_ptr', '', None)]"/><desc desctype="function" domain="py" noindex="False" objtype="function"><desc_signature class="" first="False" fullname="decompress_ptr" ids="blosc.decompress_ptr" module="blosc" names="blosc.decompress_ptr"><desc_addname xml:space="preserve">blosc.</desc_addname><desc_name xml:space="preserve">decompress_ptr</desc_name><desc_parameterlist xml:space="preserve"><desc_parameter xml:space="preserve">bytesobj</desc_parameter><desc_parameter xml:space="preserve">address</desc_parameter></desc_parameterlist></desc_signature><desc_content><paragraph>Decompresses a bytesobj compressed object into the memory at address.</paragraph><field_list><field classes="field-odd"><field_name>Parameters</field_name><field_body><paragraph><strong>bytesobj</strong> : str / bytes</paragraph><block_quote><paragraph>The data to be decompressed.</paragraph></block_quote><paragraph><strong>address</strong> : int or long</paragraph><block_quote><paragraph>the pointer to the data to be compressed</paragraph></block_quote></field_body></field><field classes="field-even"><field_name>Returns</field_name><field_body><paragraph><strong>nbytes</strong> : int</paragraph><block_quote><paragraph>the number of bytes written to the buffer</paragraph></block_quote></field_body></field><field classes="field-odd"><field_name>Raises</field_name><field_body><paragraph><strong>TypeError</strong></paragraph><block_quote><paragraph>If bytesobj is not of type bytes or string. If address is not of type int or long.</paragraph></block_quote></field_body></field></field_list><rubric>Notes</rubric><paragraph>This function can be used anywhere that a memory address is available in Python. For example the Numpy “__array_interface__[‘data’][0]†construct, or when using the ctypes modules.</paragraph><paragraph>Importantly, the user is responsible for making sure that the memory address is valid and that the memory pointed to is contiguous and can be written to. Passing a non-valid address has a high likelihood of crashing the interpreter by segfault.</paragraph><rubric>Examples</rubric><doctest_block classes="doctest" xml:space="preserve">>>> import numpy >>> items = 7 >>> np_array = numpy.arange(items) >>> c = blosc.compress_ptr(np_array.__array_interface__['data'][0], items, np_array.dtype.itemsize) >>> np_ans = numpy.empty(items, dtype=np_array.dtype) >>> nbytes = blosc.decompress_ptr(c, np_ans.__array_interface__['data'][0]) >>> (np_array == np_ans).all() True >>> nbytes == items * np_array.dtype.itemsize True</doctest_block><doctest_block classes="doctest" xml:space="preserve">>>> import ctypes >>> typesize = 8 >>> data = [float(i) for i in range(items)] >>> Array = ctypes.c_double * items >>> in_array = Array(*data) >>> c = blosc.compress_ptr(ctypes.addressof(in_array), items, typesize) >>> out_array = ctypes.create_string_buffer(items*typesize) >>> nbytes = blosc.decompress_ptr(c, ctypes.addressof(out_array)) >>> import struct >>> ans = [struct.unpack('d', out_array[i:i+typesize])[0] for i in range(0, items*typesize, typesize)] >>> data == ans True >>> nbytes == items * typesize True</doctest_block></desc_content></desc><index entries="[('single', 'pack_array() (in module blosc)', 'blosc.pack_array', '', None)]"/><desc desctype="function" domain="py" noindex="False" objtype="function"><desc_signature class="" first="False" fullname="pack_array" ids="blosc.pack_array" module="blosc" names="blosc.pack_array"><desc_addname xml:space="preserve">blosc.</desc_addname><desc_name xml:space="preserve">pack_array</desc_name><desc_parameterlist xml:space="preserve"><desc_parameter xml:space="preserve">array[, clevel=9, shuffle=blosc.SHUFFLE, cname='blosclz']]</desc_parameter></desc_parameterlist></desc_signature><desc_content><paragraph>Pack (compress) a NumPy array.</paragraph><field_list><field classes="field-odd"><field_name>Parameters</field_name><field_body><paragraph><strong>array</strong> : ndarray</paragraph><block_quote><paragraph>The NumPy array to be packed.</paragraph></block_quote><paragraph><strong>clevel</strong> : int (optional)</paragraph><block_quote><paragraph>The compression level from 0 (no compression) to 9 (maximum compression). The default is 9.</paragraph></block_quote><paragraph><strong>shuffle</strong> : int (optional)</paragraph><block_quote><paragraph>The shuffle filter to be activated. Allowed values are blosc.NOSHUFFLE, blosc.SHUFFLE and blosc.BITSHUFFLE. The default is blosc.SHUFFLE.</paragraph></block_quote><paragraph><strong>cname</strong> : string (optional)</paragraph><block_quote><paragraph>The name of the compressor used internally in Blosc. It can be any of the supported by Blosc (‘blosclz’, ‘lz4’, ‘lz4hc’, ‘snappy’, ‘zlib’, ‘zstd’ and maybe others too). The default is ‘blosclz’.</paragraph></block_quote></field_body></field><field classes="field-even"><field_name>Returns</field_name><field_body><paragraph><strong>out</strong> : str / bytes</paragraph><block_quote><paragraph>The packed array in form of a Python str / bytes object.</paragraph></block_quote></field_body></field><field classes="field-odd"><field_name>Raises</field_name><field_body><paragraph><strong>TypeError</strong></paragraph><block_quote><paragraph>If array does not quack like a numpy ndarray.</paragraph></block_quote><paragraph><strong>ValueError</strong></paragraph><block_quote><definition_list classes="simple"><definition_list_item><term>If array.itemsize * array.size is larger than the maximum allowed</term><definition><paragraph>buffer size.</paragraph></definition></definition_list_item></definition_list><paragraph>If typesize is not within the allowed range. If clevel is not within the allowed range. If cname is not within the supported compressors.</paragraph></block_quote></field_body></field></field_list><rubric>Examples</rubric><doctest_block classes="doctest" xml:space="preserve">>>> import numpy >>> a = numpy.arange(1e6) >>> parray = blosc.pack_array(a) >>> len(parray) < a.size*a.itemsize True</doctest_block></desc_content></desc><index entries="[('single', 'unpack_array() (in module blosc)', 'blosc.unpack_array', '', None)]"/><desc desctype="function" domain="py" noindex="False" objtype="function"><desc_signature class="" first="False" fullname="unpack_array" ids="blosc.unpack_array" module="blosc" names="blosc.unpack_array"><desc_addname xml:space="preserve">blosc.</desc_addname><desc_name xml:space="preserve">unpack_array</desc_name><desc_parameterlist xml:space="preserve"><desc_parameter xml:space="preserve">packed_array</desc_parameter></desc_parameterlist></desc_signature><desc_content><paragraph>Unpack (decompress) a packed NumPy array.</paragraph><field_list><field classes="field-odd"><field_name>Parameters</field_name><field_body><paragraph><strong>packed_array</strong> : str / bytes</paragraph><block_quote><paragraph>The packed array to be decompressed.</paragraph></block_quote></field_body></field><field classes="field-even"><field_name>Returns</field_name><field_body><paragraph><strong>out</strong> : ndarray</paragraph><block_quote><paragraph>The decompressed data in form of a NumPy array.</paragraph></block_quote></field_body></field><field classes="field-odd"><field_name>Raises</field_name><field_body><paragraph><strong>TypeError</strong></paragraph><block_quote><paragraph>If packed_array is not of type bytes or string.</paragraph></block_quote></field_body></field></field_list><rubric>Examples</rubric><doctest_block classes="doctest" xml:space="preserve">>>> import numpy >>> a = numpy.arange(1e6) >>> parray = blosc.pack_array(a) >>> len(parray) < a.size*a.itemsize True >>> a2 = blosc.unpack_array(parray) >>> numpy.alltrue(a == a2) True</doctest_block></desc_content></desc></section><section ids="module-blosc utilities" names="utilities"><title>Utilities</title><index entries="[('single', 'blosc (module)', 'module-blosc', '', None)]"/><index entries="[('single', 'clib_info() (in module blosc)', 'blosc.clib_info', '', None)]"/><desc desctype="function" domain="py" noindex="False" objtype="function"><desc_signature class="" first="False" fullname="clib_info" ids="blosc.clib_info" module="blosc" names="blosc.clib_info"><desc_addname xml:space="preserve">blosc.</desc_addname><desc_name xml:space="preserve">clib_info</desc_name><desc_parameterlist xml:space="preserve"><desc_parameter xml:space="preserve">cname</desc_parameter></desc_parameterlist></desc_signature><desc_content><paragraph>Return info for compression libraries in C library.</paragraph><field_list><field classes="field-odd"><field_name>Parameters</field_name><field_body><paragraph><strong>cname</strong> : str</paragraph><block_quote><paragraph>The compressor name.</paragraph></block_quote></field_body></field><field classes="field-even"><field_name>Returns</field_name><field_body><paragraph><strong>out</strong> : tuple</paragraph><block_quote><paragraph>The associated library name and version.</paragraph></block_quote></field_body></field></field_list></desc_content></desc><index entries="[('single', 'compressor_list() (in module blosc)', 'blosc.compressor_list', '', None)]"/><desc desctype="function" domain="py" noindex="False" objtype="function"><desc_signature class="" first="False" fullname="compressor_list" ids="blosc.compressor_list" module="blosc" names="blosc.compressor_list"><desc_addname xml:space="preserve">blosc.</desc_addname><desc_name xml:space="preserve">compressor_list</desc_name><desc_parameterlist xml:space="preserve"/></desc_signature><desc_content><paragraph>Returns a list of compressors available in C library.</paragraph><field_list><field classes="field-odd"><field_name>Parameters</field_name><field_body><paragraph><strong>None</strong></paragraph></field_body></field><field classes="field-even"><field_name>Returns</field_name><field_body><paragraph><strong>out</strong> : list</paragraph><block_quote><paragraph>The list of names.</paragraph></block_quote></field_body></field></field_list></desc_content></desc><index entries="[('single', 'detect_number_of_cores() (in module blosc)', 'blosc.detect_number_of_cores', '', None)]"/><desc desctype="function" domain="py" noindex="False" objtype="function"><desc_signature class="" first="False" fullname="detect_number_of_cores" ids="blosc.detect_number_of_cores" module="blosc" names="blosc.detect_number_of_cores"><desc_addname xml:space="preserve">blosc.</desc_addname><desc_name xml:space="preserve">detect_number_of_cores</desc_name><desc_parameterlist xml:space="preserve"/></desc_signature><desc_content><paragraph>Detect the number of cores in this system.</paragraph><field_list><field classes="field-odd"><field_name>Returns</field_name><field_body><paragraph><strong>out</strong> : int</paragraph><block_quote><paragraph>The number of cores in this system.</paragraph></block_quote></field_body></field></field_list></desc_content></desc><index entries="[('single', 'free_resources() (in module blosc)', 'blosc.free_resources', '', None)]"/><desc desctype="function" domain="py" noindex="False" objtype="function"><desc_signature class="" first="False" fullname="free_resources" ids="blosc.free_resources" module="blosc" names="blosc.free_resources"><desc_addname xml:space="preserve">blosc.</desc_addname><desc_name xml:space="preserve">free_resources</desc_name><desc_parameterlist xml:space="preserve"/></desc_signature><desc_content><paragraph>Free possible memory temporaries and thread resources.</paragraph><field_list><field classes="field-odd"><field_name>Returns</field_name><field_body><paragraph><strong>out</strong> : None</paragraph></field_body></field></field_list><rubric>Notes</rubric><paragraph>Blosc maintain a pool of threads waiting for work as well as some temporary space. You can use this function to release these resources when you are not going to use Blosc for a long while.</paragraph><rubric>Examples</rubric><doctest_block classes="doctest" xml:space="preserve">>>> blosc.free_resources() >>></doctest_block></desc_content></desc><index entries="[('single', 'get_clib() (in module blosc)', 'blosc.get_clib', '', None)]"/><desc desctype="function" domain="py" noindex="False" objtype="function"><desc_signature class="" first="False" fullname="get_clib" ids="blosc.get_clib" module="blosc" names="blosc.get_clib"><desc_addname xml:space="preserve">blosc.</desc_addname><desc_name xml:space="preserve">get_clib</desc_name><desc_parameterlist xml:space="preserve"><desc_parameter xml:space="preserve">bytesobj</desc_parameter></desc_parameterlist></desc_signature><desc_content><paragraph>Return the name of the compression library for Blosc <literal>bytesobj</literal> buffer.</paragraph><field_list><field classes="field-odd"><field_name>Parameters</field_name><field_body><paragraph><strong>bytesobj</strong> : str / bytes</paragraph><block_quote><paragraph>The compressed buffer.</paragraph></block_quote></field_body></field><field classes="field-even"><field_name>Returns</field_name><field_body><paragraph><strong>out</strong> : str</paragraph><block_quote><paragraph>The name of the compression library.</paragraph></block_quote></field_body></field></field_list></desc_content></desc><index entries="[('single', 'set_blocksize() (in module blosc)', 'blosc.set_blocksize', '', None)]"/><desc desctype="function" domain="py" noindex="False" objtype="function"><desc_signature class="" first="False" fullname="set_blocksize" ids="blosc.set_blocksize" module="blosc" names="blosc.set_blocksize"><desc_addname xml:space="preserve">blosc.</desc_addname><desc_name xml:space="preserve">set_blocksize</desc_name><desc_parameterlist xml:space="preserve"><desc_parameter xml:space="preserve">blocksize</desc_parameter></desc_parameterlist></desc_signature><desc_content><paragraph>Force the use of a specific blocksize. If 0, an automatic blocksize will be used (the default).</paragraph><rubric>Notes</rubric><paragraph>This is a low-level function and is recommened for expert users only.</paragraph><rubric>Examples</rubric><doctest_block classes="doctest" xml:space="preserve">>>> blosc.set_blocksize(512)</doctest_block></desc_content></desc><index entries="[('single', 'set_nthreads() (in module blosc)', 'blosc.set_nthreads', '', None)]"/><desc desctype="function" domain="py" noindex="False" objtype="function"><desc_signature class="" first="False" fullname="set_nthreads" ids="blosc.set_nthreads" module="blosc" names="blosc.set_nthreads"><desc_addname xml:space="preserve">blosc.</desc_addname><desc_name xml:space="preserve">set_nthreads</desc_name><desc_parameterlist xml:space="preserve"><desc_parameter xml:space="preserve">nthreads</desc_parameter></desc_parameterlist></desc_signature><desc_content><paragraph>Set the number of threads to be used during Blosc operation.</paragraph><field_list><field classes="field-odd"><field_name>Parameters</field_name><field_body><paragraph><strong>nthreads</strong> : int</paragraph><block_quote><paragraph>The number of threads to be used during Blosc operation.</paragraph></block_quote></field_body></field><field classes="field-even"><field_name>Returns</field_name><field_body><paragraph><strong>out</strong> : int</paragraph><block_quote><paragraph>The previous number of used threads.</paragraph></block_quote></field_body></field><field classes="field-odd"><field_name>Raises</field_name><field_body><paragraph><strong>ValueError</strong></paragraph><block_quote><paragraph>If nthreads is larger that the maximum number of threads blosc can use.</paragraph></block_quote></field_body></field></field_list><rubric>Notes</rubric><paragraph>The number of threads for Blosc is the maximum number of cores detected on your machine (via <literal>detect_number_of_cores</literal>). In some cases Blosc gets better results if you set the number of threads to a value slightly below than your number of cores.</paragraph><rubric>Examples</rubric><paragraph>Set the number of threads to 2 and then to 1:</paragraph><doctest_block classes="doctest" xml:space="preserve">>>> oldn = blosc.set_nthreads(2) >>> blosc.set_nthreads(1) 2</doctest_block></desc_content></desc><index entries="[('single', 'set_releasegil() (in module blosc)', 'blosc.set_releasegil', '', None)]"/><desc desctype="function" domain="py" noindex="False" objtype="function"><desc_signature class="" first="False" fullname="set_releasegil" ids="blosc.set_releasegil" module="blosc" names="blosc.set_releasegil"><desc_addname xml:space="preserve">blosc.</desc_addname><desc_name xml:space="preserve">set_releasegil</desc_name><desc_parameterlist xml:space="preserve"><desc_parameter xml:space="preserve">gitstate</desc_parameter></desc_parameterlist></desc_signature><desc_content><paragraph>Sets a boolean on whether to release the Python global inter-lock (GIL) during c-blosc compress and decompress operations or not. This defaults to False.</paragraph><rubric>Notes</rubric><paragraph>Designed to be used with larger chunk sizes and a ThreadPool. There is a small performance penalty with releasing the GIL that will more harshly penalize small block sizes.</paragraph><rubric>Examples</rubric><doctest_block classes="doctest" xml:space="preserve">>>> oldReleaseState = blosc.set_releasegil(True)</doctest_block></desc_content></desc><index entries="[('single', 'print_versions() (in module blosc)', 'blosc.print_versions', '', None)]"/><desc desctype="function" domain="py" noindex="False" objtype="function"><desc_signature class="" first="False" fullname="print_versions" ids="blosc.print_versions" module="blosc" names="blosc.print_versions"><desc_addname xml:space="preserve">blosc.</desc_addname><desc_name xml:space="preserve">print_versions</desc_name><desc_parameterlist xml:space="preserve"/></desc_signature><desc_content><paragraph>Print all the versions of software that python-blosc relies on.</paragraph></desc_content></desc></section></section></document> SphinxTranslator.dispatch_visit calling visit_document for <document source="<partial node>"><title>Tutorials</title></document> SphinxTranslator.dispatch_visit calling visit_title for <title>Tutorials</title> SphinxTranslator.dispatch_visit calling visit_Text for Tutorials SphinxTranslator.dispatch_departure calling depart_Text for Tutorials SphinxTranslator.dispatch_departure calling depart_title for <title>Tutorials</title> SphinxTranslator.dispatch_departure calling depart_document for <document source="<partial node>"><title>Tutorials</title></document> SphinxTranslator.dispatch_visit calling visit_document for <document source="<partial node>"><title>Welcome to python-blosc’s documentation!</title></document> SphinxTranslator.dispatch_visit calling visit_title for <title>Welcome to python-blosc’s documentation!</title> SphinxTranslator.dispatch_visit calling visit_Text for Welcome to python-blosc’s documentation! SphinxTranslator.dispatch_departure calling depart_Text for Welcome to python-blosc’s documentation! SphinxTranslator.dispatch_departure calling depart_title for <title>Welcome to python-blosc’s documentation!</title> SphinxTranslator.dispatch_departure calling depart_document for <document source="<partial node>"><title>Welcome to python-blosc’s documentation!</title></document> SphinxTranslator.dispatch_visit calling visit_document for <document source="<partial node>"><title>Library Reference</title></document> SphinxTranslator.dispatch_visit calling visit_title for <title>Library Reference</title> SphinxTranslator.dispatch_visit calling visit_Text for Library Reference SphinxTranslator.dispatch_departure calling depart_Text for Library Reference SphinxTranslator.dispatch_departure calling depart_title for <title>Library Reference</title> SphinxTranslator.dispatch_departure calling depart_document for <document source="<partial node>"><title>Library Reference</title></document> SphinxTranslator.dispatch_visit calling visit_document for <document source="<partial node>"><bullet_list><list_item><compact_paragraph><reference anchorname="" internal="True" refuri="#">Library Reference</reference></compact_paragraph><bullet_list><list_item><compact_paragraph><reference anchorname="#first-level-variables" internal="True" refuri="#first-level-variables">First level variables</reference></compact_paragraph></list_item><list_item><compact_paragraph><reference anchorname="#module-blosc" internal="True" refuri="#module-blosc">Public functions</reference></compact_paragraph></list_item><list_item><compact_paragraph><reference anchorname="#module-blosc" internal="True" refuri="#module-blosc">Utilities</reference></compact_paragraph></list_item></bullet_list></list_item></bullet_list></document> SphinxTranslator.dispatch_visit calling visit_bullet_list for <bullet_list><list_item><compact_paragraph><reference anchorname="" internal="True" refuri="#">Library Reference</reference></compact_paragraph><bullet_list><list_item><compact_paragraph><reference anchorname="#first-level-variables" internal="True" refuri="#first-level-variables">First level variables</reference></compact_paragraph></list_item><list_item><compact_paragraph><reference anchorname="#module-blosc" internal="True" refuri="#module-blosc">Public functions</reference></compact_paragraph></list_item><list_item><compact_paragraph><reference anchorname="#module-blosc" internal="True" refuri="#module-blosc">Utilities</reference></compact_paragraph></list_item></bullet_list></list_item></bullet_list> SphinxTranslator.dispatch_visit calling visit_list_item for <list_item><compact_paragraph><reference anchorname="" internal="True" refuri="#">Library Reference</reference></compact_paragraph><bullet_list><list_item><compact_paragraph><reference anchorname="#first-level-variables" internal="True" refuri="#first-level-variables">First level variables</reference></compact_paragraph></list_item><list_item><compact_paragraph><reference anchorname="#module-blosc" internal="True" refuri="#module-blosc">Public functions</reference></compact_paragraph></list_item><list_item><compact_paragraph><reference anchorname="#module-blosc" internal="True" refuri="#module-blosc">Utilities</reference></compact_paragraph></list_item></bullet_list></list_item> SphinxTranslator.dispatch_visit calling visit_compact_paragraph for <compact_paragraph><reference anchorname="" internal="True" refuri="#">Library Reference</reference></compact_paragraph> SphinxTranslator.dispatch_visit calling visit_reference for <reference anchorname="" internal="True" refuri="#">Library Reference</reference> SphinxTranslator.dispatch_visit calling visit_Text for Library Reference SphinxTranslator.dispatch_departure calling depart_Text for Library Reference SphinxTranslator.dispatch_departure calling depart_reference for <reference anchorname="" internal="True" refuri="#">Library Reference</reference> SphinxTranslator.dispatch_departure calling depart_compact_paragraph for <compact_paragraph><reference anchorname="" internal="True" refuri="#">Library Reference</reference></compact_paragraph> SphinxTranslator.dispatch_visit calling visit_bullet_list for <bullet_list><list_item><compact_paragraph><reference anchorname="#first-level-variables" internal="True" refuri="#first-level-variables">First level variables</reference></compact_paragraph></list_item><list_item><compact_paragraph><reference anchorname="#module-blosc" internal="True" refuri="#module-blosc">Public functions</reference></compact_paragraph></list_item><list_item><compact_paragraph><reference anchorname="#module-blosc" internal="True" refuri="#module-blosc">Utilities</reference></compact_paragraph></list_item></bullet_list> SphinxTranslator.dispatch_visit calling visit_list_item for <list_item><compact_paragraph><reference anchorname="#first-level-variables" internal="True" refuri="#first-level-variables">First level variables</reference></compact_paragraph></list_item> SphinxTranslator.dispatch_visit calling visit_compact_paragraph for <compact_paragraph><reference anchorname="#first-level-variables" internal="True" refuri="#first-level-variables">First level variables</reference></compact_paragraph> SphinxTranslator.dispatch_visit calling visit_reference for <reference anchorname="#first-level-variables" internal="True" refuri="#first-level-variables">First level variables</reference> SphinxTranslator.dispatch_visit calling visit_Text for First level variables SphinxTranslator.dispatch_departure calling depart_Text for First level variables SphinxTranslator.dispatch_departure calling depart_reference for <reference anchorname="#first-level-variables" internal="True" refuri="#first-level-variables">First level variables</reference> SphinxTranslator.dispatch_departure calling depart_compact_paragraph for <compact_paragraph><reference anchorname="#first-level-variables" internal="True" refuri="#first-level-variables">First level variables</reference></compact_paragraph> SphinxTranslator.dispatch_departure calling depart_list_item for <list_item><compact_paragraph><reference anchorname="#first-level-variables" internal="True" refuri="#first-level-variables">First level variables</reference></compact_paragraph></list_item> SphinxTranslator.dispatch_visit calling visit_list_item for <list_item><compact_paragraph><reference anchorname="#module-blosc" internal="True" refuri="#module-blosc">Public functions</reference></compact_paragraph></list_item> SphinxTranslator.dispatch_visit calling visit_compact_paragraph for <compact_paragraph><reference anchorname="#module-blosc" internal="True" refuri="#module-blosc">Public functions</reference></compact_paragraph> SphinxTranslator.dispatch_visit calling visit_reference for <reference anchorname="#module-blosc" internal="True" refuri="#module-blosc">Public functions</reference> SphinxTranslator.dispatch_visit calling visit_Text for Public functions SphinxTranslator.dispatch_departure calling depart_Text for Public functions SphinxTranslator.dispatch_departure calling depart_reference for <reference anchorname="#module-blosc" internal="True" refuri="#module-blosc">Public functions</reference> SphinxTranslator.dispatch_departure calling depart_compact_paragraph for <compact_paragraph><reference anchorname="#module-blosc" internal="True" refuri="#module-blosc">Public functions</reference></compact_paragraph> SphinxTranslator.dispatch_departure calling depart_list_item for <list_item><compact_paragraph><reference anchorname="#module-blosc" internal="True" refuri="#module-blosc">Public functions</reference></compact_paragraph></list_item> SphinxTranslator.dispatch_visit calling visit_list_item for <list_item><compact_paragraph><reference anchorname="#module-blosc" internal="True" refuri="#module-blosc">Utilities</reference></compact_paragraph></list_item> SphinxTranslator.dispatch_visit calling visit_compact_paragraph for <compact_paragraph><reference anchorname="#module-blosc" internal="True" refuri="#module-blosc">Utilities</reference></compact_paragraph> SphinxTranslator.dispatch_visit calling visit_reference for <reference anchorname="#module-blosc" internal="True" refuri="#module-blosc">Utilities</reference> SphinxTranslator.dispatch_visit calling visit_Text for Utilities SphinxTranslator.dispatch_departure calling depart_Text for Utilities SphinxTranslator.dispatch_departure calling depart_reference for <reference anchorname="#module-blosc" internal="True" refuri="#module-blosc">Utilities</reference> SphinxTranslator.dispatch_departure calling depart_compact_paragraph for <compact_paragraph><reference anchorname="#module-blosc" internal="True" refuri="#module-blosc">Utilities</reference></compact_paragraph> SphinxTranslator.dispatch_departure calling depart_list_item for <list_item><compact_paragraph><reference anchorname="#module-blosc" internal="True" refuri="#module-blosc">Utilities</reference></compact_paragraph></list_item> SphinxTranslator.dispatch_departure calling depart_bullet_list for <bullet_list><list_item><compact_paragraph><reference anchorname="#first-level-variables" internal="True" refuri="#first-level-variables">First level variables</reference></compact_paragraph></list_item><list_item><compact_paragraph><reference anchorname="#module-blosc" internal="True" refuri="#module-blosc">Public functions</reference></compact_paragraph></list_item><list_item><compact_paragraph><reference anchorname="#module-blosc" internal="True" refuri="#module-blosc">Utilities</reference></compact_paragraph></list_item></bullet_list> SphinxTranslator.dispatch_departure calling depart_list_item for <list_item><compact_paragraph><reference anchorname="" internal="True" refuri="#">Library Reference</reference></compact_paragraph><bullet_list><list_item><compact_paragraph><reference anchorname="#first-level-variables" internal="True" refuri="#first-level-variables">First level variables</reference></compact_paragraph></list_item><list_item><compact_paragraph><reference anchorname="#module-blosc" internal="True" refuri="#module-blosc">Public functions</reference></compact_paragraph></list_item><list_item><compact_paragraph><reference anchorname="#module-blosc" internal="True" refuri="#module-blosc">Utilities</reference></compact_paragraph></list_item></bullet_list></list_item> SphinxTranslator.dispatch_departure calling depart_bullet_list for <bullet_list><list_item><compact_paragraph><reference anchorname="" internal="True" refuri="#">Library Reference</reference></compact_paragraph><bullet_list><list_item><compact_paragraph><reference anchorname="#first-level-variables" internal="True" refuri="#first-level-variables">First level variables</reference></compact_paragraph></list_item><list_item><compact_paragraph><reference anchorname="#module-blosc" internal="True" refuri="#module-blosc">Public functions</reference></compact_paragraph></list_item><list_item><compact_paragraph><reference anchorname="#module-blosc" internal="True" refuri="#module-blosc">Utilities</reference></compact_paragraph></list_item></bullet_list></list_item></bullet_list> SphinxTranslator.dispatch_departure calling depart_document for <document source="<partial node>"><bullet_list><list_item><compact_paragraph><reference anchorname="" internal="True" refuri="#">Library Reference</reference></compact_paragraph><bullet_list><list_item><compact_paragraph><reference anchorname="#first-level-variables" internal="True" refuri="#first-level-variables">First level variables</reference></compact_paragraph></list_item><list_item><compact_paragraph><reference anchorname="#module-blosc" internal="True" refuri="#module-blosc">Public functions</reference></compact_paragraph></list_item><list_item><compact_paragraph><reference anchorname="#module-blosc" internal="True" refuri="#module-blosc">Utilities</reference></compact_paragraph></list_item></bullet_list></list_item></bullet_list></document> [app] emitting event: 'html-page-context'('reference', 'page.html', {'parents': [], 'prev': {'link': '../tutorial/', 'title': 'Tutorials'}, ' writing output... [100%] tutorial [app] emitting event: 'doctree-resolved'(<document: <section "tutorials"...>>, 'tutorial') SphinxTranslator.dispatch_visit calling visit_document for <document source="<partial node>"><title>Tutorials</title></document> SphinxTranslator.dispatch_visit calling visit_title for <title>Tutorials</title> SphinxTranslator.dispatch_visit calling visit_Text for Tutorials SphinxTranslator.dispatch_departure calling depart_Text for Tutorials SphinxTranslator.dispatch_departure calling depart_title for <title>Tutorials</title> SphinxTranslator.dispatch_departure calling depart_document for <document source="<partial node>"><title>Tutorials</title></document> SphinxTranslator.dispatch_visit calling visit_document for <document source="/usr/src/RPM/BUILD/python3-module-blosc-1.5.1/doc/tutorial.rst"><section ids="tutorials" names="tutorials"><title>Tutorials</title><paragraph>Using <literal>python-blosc</literal> (or just <literal>blosc</literal>, because we are going to talk always on how to use it in a Python environment) is pretty easy. It basically mimics the API of the <literal>zlib</literal> module included in the standard Python library.</paragraph><paragraph>Here are some examples on how to use it. For the full documentation, please refer to the <reference name="Library Reference" refuri="http://python-blosc.blosc.org/reference.html">Library Reference</reference><target ids="['library-reference']" names="['library reference']" refuri="http://python-blosc.blosc.org/reference.html"/> section.</paragraph><paragraph>Most of the times in this tutorial have been obtained using a VM with 2 cores on top of a Intel(R) Core(TM) i5-3380M CPU @ 2.90GHz.</paragraph><section ids="compressing-and-decompressing-with-blosc" names="compressing\ and\ decompressing\ with\ blosc"><title>Compressing and decompressing with <literal>blosc</literal></title><paragraph>Let’s start creating a NumPy array with 80 MB full of data:</paragraph><literal_block force="False" language="default" linenos="False" xml:space="preserve">>>> import numpy as np >>> a = np.linspace(0, 100, 1e7) >>> bytes_array = a.tostring() # get an array of bytes</literal_block><paragraph>and let’s compare Blosc operation with <literal>zlib</literal> (please note that we are using IPython for leveraging its timing capabilities):</paragraph><literal_block force="False" language="default" linenos="False" xml:space="preserve">>>> import zlib >>> %timeit zlib.compress(bytes_array) 1 loops, best of 3: 4.65 s per loop # ~ 17 MB/s >>> import blosc >>> %timeit blosc.compress(bytes_array, typesize=8) 100 loops, best of 3: 17.7 ms per loop # ~ 4.5 GB/s and 260x faster than zlib</literal_block><paragraph>but Blosc can use different codecs under the hood. Let’s try the LZ4 codec (instead of the BloscLZ which is the default):</paragraph><literal_block force="False" language="default" linenos="False" xml:space="preserve">>>> %timeit blosc.compress(bytes_array, typesize=8, cname='lz4') 100 loops, best of 3: 8.77 ms per loop # ~ 9.1 GB/s and 530x faster than zlib</literal_block><paragraph>It is important to note that this is quite more than the speed of a memcpy() in this machine:</paragraph><literal_block force="False" language="default" linenos="False" xml:space="preserve">>>> %timeit a.copy() 10 loops, best of 3: 27.2 ms per loop # ~ 2.9 GB/s</literal_block><paragraph>which means that both BloscLZ and LZ4 codecs can be faster than memcpy(), just as the Blosc slogan promises.</paragraph><paragraph>Blosc also comes with the ZLib codec too, and it actually runs faster than the naked zlib:</paragraph><literal_block force="False" language="default" linenos="False" xml:space="preserve">>>> %timeit blosc.compress(bytes_array, typesize=8, cname='zlib') 10 loops, best of 3: 139 ms per loop # ~ 580 MB/s and 33x faster than zlib</literal_block><paragraph>The reason why the internal Zlib codec in Blosc is faster than the ‘naked’ one is 1) that Blosc can use multithreading (using 8 threads here) and 2) that Blosc splits the data to compress in smaller blocks that are more friendly to the caches in modern CPUs.</paragraph><paragraph>Now, let’s have a look at the compression ratios:</paragraph><literal_block force="False" language="default" linenos="False" xml:space="preserve">>>> zpacked = zlib.compress(bytes_array); len(zpacked) 52994692 >>> round(len(bytes_array) / float(len(zpacked)), 3) 1.51 # zlib achieves a 1.5x compression ratio >>> blzpacked = blosc.compress(bytes_array, typesize=8, cname='blosclz'); len(blzpacked) 6986533 >>> round(len(bytes_array) / float(len(blzpacked)), 3) 11.451 # BloscLZ codec reaches more than 11x compression ratio >>> lz4packed = blosc.compress(bytes_array, typesize=8, cname='lz4'); len(lz4packed) 3716015 >>> round(len(bytes_array) / float(len(lz4packed)), 3) 21.528 # LZ4 codec reaches more than 21x compression ratio</literal_block><paragraph>Here we can see how Blosc, with its different codecs, is very efficient compressing this kind of binary data. It is important to note that the codecs alone are not the only responsible for high compression ratios. See what a naked LZ4 codec can do on the same string:</paragraph><literal_block force="False" language="default" linenos="False" xml:space="preserve">>>> import lz4 >>> lz4_packed = lz4.compress(bytes_array); len(lz4_packed) 80309133 >>> round(len(bytes_array) / float(len(lz4_packed)), 3) 0.996</literal_block><paragraph>That is, the naked LZ4 codec cannot compress the array of bytes at all, whereas through Blosc LZ4 can compress quite a lot. In fact, this difference in compression also happens with ZLib:</paragraph><literal_block force="False" language="default" linenos="False" xml:space="preserve">>>> zlibpacked = blosc.compress(bytes_array, typesize=8, cname='zlib'); len(zlibpacked) 875274 >>> round(len(zpacked) / float(len(zlibpacked)), 3) 60.546 # ZLib codec reaches 60x more compression than naked ZLib</literal_block><paragraph>Here it is a plot with the different compression ratios achieved:</paragraph><reference internal="True" refuri="../_images/cratio-blosc-codecs.png"><image candidates="{'*': 'cratio-blosc-codecs.png'}" scale="75" uri="cratio-blosc-codecs.png"/></reference><paragraph>The explanation for this apparently shocking result is that Blosc uses filters (<literal>SHUFFLE</literal> and <literal>BITSHUFFLE</literal> currently, but the list can increase more in the future) prior to the compression stage and these allow in general for better compression ratios when using binary data.</paragraph><paragraph>How about decompression?:</paragraph><literal_block force="False" language="default" linenos="False" xml:space="preserve">>>> %timeit zlib.decompress(zpacked) 1 loops, best of 3: 275 ms per loop # ~ 290 MB/s >>> %timeit blosc.decompress(blzpacked) 100 loops, best of 3: 17.3 ms per loop # ~ 4.3 GB/s and 16x faster than zlib >>> %timeit blosc.decompress(lz4packed) 10 loops, best of 3: 41.9 ms per loop # ~ 1.9 GB/s and 6.5x faster than zlib >>> %timeit blosc.decompress(zlibpacked) 10 loops, best of 3: 40.7 ms per loop # ~ 2.0 GB/S and 6.8x faster than zlib</literal_block><paragraph>Here we see a couple of things:</paragraph><bullet_list bullet="*"><list_item><paragraph>All the internal codecs in Blosc are way faster than naked ZLib</paragraph></list_item><list_item><paragraph>The fastest codec for decompressing here is BloscLZ (remember that LZ4 was the fastest for compression).</paragraph></list_item></bullet_list><paragraph>The next plot summarizes the speed benchmarks above:</paragraph><reference internal="True" refuri="../_images/speed-blosc-codecs.png"><image candidates="{'*': 'speed-blosc-codecs.png'}" scale="75" uri="speed-blosc-codecs.png"/></reference><paragraph>These results should reinforce the idea that there is not a single codec that wins in all areas (compression ratio, compression speed and decompression speed) and each has its pro’s and con’s. It is up to the user to choose whatever fits better to him (hint: there is no replacement for experimentation).</paragraph><paragraph>Finally, here it is the way to discover all the internal codecs inside your Blosc package:</paragraph><literal_block force="False" language="default" linenos="False" xml:space="preserve">>>> blosc.cnames ['blosclz', 'lz4', 'lz4hc', 'snappy', 'zlib', 'zstd']</literal_block><paragraph><emphasis>Note</emphasis>: the actual list of codecs may change depening on how you have compiled the underlying C-Blosc library.</paragraph></section><section ids="using-different-filters" names="using\ different\ filters"><title>Using different filters</title><paragraph>In the same way that you can use different codecs inside Blosc, you can use different filters too (currently <literal>SHUFFLE</literal> and <literal>BITSHUFLE</literal>). These allow the integrated compressors to compress more efficiently or not, depending on your datasets.</paragraph><paragraph>Here it is an example using the <literal>SHUFFLE</literal> filter:</paragraph><literal_block force="False" language="default" linenos="False" xml:space="preserve">>>> %time bpacked = blosc.compress(bytes_array, shuffle=blosc.SHUFFLE) CPU times: user 112 ms, sys: 4 ms, total: 116 ms Wall time: 29.9 ms >>> len(bpacked) 6986533</literal_block><paragraph>Here there is another example using <literal>BITSHUFFLE</literal>:</paragraph><literal_block force="False" language="default" linenos="False" xml:space="preserve">>>> %time bpacked = blosc.compress(bytes_array, shuffle=blosc.BITSHUFFLE) CPU times: user 120 ms, sys: 8 ms, total: 128 ms Wall time: 32.9 ms >>> len(bpacked) 5942257 # ~ 1.2x smaller than blosclz/shuffle</literal_block><paragraph>You can also deactivate filters completely with <literal>NOSHUFFLE</literal>:</paragraph><literal_block force="False" language="default" linenos="False" xml:space="preserve">>>> %time bpacked = blosc.compress(bytes_array, shuffle=blosc.NOSHUFFLE) CPU times: user 416 ms, sys: 8 ms, total: 424 ms Wall time: 107 ms >>> len(bpacked) 74323591 # just a 7% of compression wrt the original buffer</literal_block><paragraph>So you have quite a bit of flexibility on choosing different codecs and filters inside Blosc. Again, depending on the dataset you have and the requeriments on performance, you may want to experiment a bit before sticking with your preferred one.</paragraph></section><section ids="supporting-the-buffer-interface" names="supporting\ the\ buffer\ interface"><title>Supporting the buffer interface</title><paragraph>python-blosc supports compressing and decompressing from any bytes-like object that supports the buffer-interface: this includes <literal>buffer</literal>, <literal>memoryview</literal> and <literal>bytearray</literal>:</paragraph><literal_block force="False" language="default" linenos="False" xml:space="preserve">>>> input_bytes = b"abcdefghijklmnopqrstuvwxyz" >>> blosc.compress(input_bytes, typesize=1) '\x02\x01\x03\x01\x1a\x00\x00\x00\x1a\x00\x00\x00*\x00\x00\x00abcdefghijklmnopqrstuvwxyz' >>> blosc.compress(memoryview(input_bytes), typesize=1) '\x02\x01\x03\x01\x1a\x00\x00\x00\x1a\x00\x00\x00*\x00\x00\x00abcdefghijklmnopqrstuvwxyz' >>> blosc.compress(bytearray(input_bytes), typesize=1) '\x02\x01\x03\x01\x1a\x00\x00\x00\x1a\x00\x00\x00*\x00\x00\x00abcdefghijklmnopqrstuvwxyz' >>> compressed = blosc.compress(input_bytes, typesize=1) >>> blosc.decompress(compressed) 'abcdefghijklmnopqrstuvwxyz' >>> blosc.decompress(memoryview(compressed)) 'abcdefghijklmnopqrstuvwxyz' >>> blosc.decompress(bytearray(compressed)) 'abcdefghijklmnopqrstuvwxyz'</literal_block><paragraph>Note however, that there are subtle differences between Python 2.x and 3.x. For example, in Python 2.x we can compress/decompress both <literal>str</literal> and <literal>unicode</literal> types, whereas in Python 3.x we can only compress ‘binary’ data which does <emphasis>not</emphasis> include <literal>unicode</literal>.</paragraph></section><section ids="packaging-numpy-arrays" names="packaging\ numpy\ arrays"><title>Packaging NumPy arrays</title><paragraph>Want to use <literal>blosc</literal> to compress and decompress NumPy objects without having to worry about passing the typesize for optimal compression, or having to create the final container for decompression? <literal>blosc</literal> comes with the <literal>pack_array</literal> and <literal>unpack_array</literal> to perform this in a handy way:</paragraph><literal_block force="False" language="default" linenos="False" xml:space="preserve">>>> a = np.linspace(0, 100, 1e7) >>> packed = blosc.pack_array(a) >>> %timeit blosc.pack_array(a) 10 loops, best of 3: 104 ms per loop # ~ 770 MB/s >>> %timeit blosc.unpack_array(packed) 10 loops, best of 3: 76.3 ms per loop # ~ 1 GB/s</literal_block><paragraph>Although this is a convenient way for compressing/decompressing NumPy arrays, this method uses pickle/unpickle behind the scenes. This step implies additional copies, which takes both memory and time.</paragraph></section><section ids="compressing-from-a-data-pointer" names="compressing\ from\ a\ data\ pointer"><title>Compressing from a data pointer</title><paragraph>For avoiding the data copy problem in the previous section, <literal>blosc</literal> comes with a couple of lower-level functions: <literal>compress_ptr</literal> and <literal>decompress_ptr</literal>. Here are they in action:</paragraph><literal_block force="False" language="default" linenos="False" xml:space="preserve">>>> c = blosc.compress_ptr(a.__array_interface__['data'][0], a.size, a.dtype.itemsize, 9, True) >>> %timeit blosc.compress_ptr(a.__array_interface__['data'][0], a.size, a.dtype.itemsize, 9, True) 10 loops, best of 3: 17.8 ms per loop # ~ 4.5 GB/s >>> a2 = np.empty(a.size, dtype=a.dtype) >>> %timeit blosc.decompress_ptr(c, a2.__array_interface__['data'][0]) 100 loops, best of 3: 11 ms per loop # ~ 7.3 GB/s >>> (a == a2).all() True</literal_block><paragraph>As you see, these are really low level functions because you should pass actual pointers where the data is, as well as the size and itemsize (for compression). Needless to say, it is very easy to cause a segfault by passing incorrect parameters to the functions (wrong pointer or wrong size).</paragraph><paragraph>On the other hand, and contrarily to the <literal>pack_array</literal> / <literal>unpack_array</literal> method, the <literal>compress_ptr</literal> / <literal>decompress_ptr</literal> functions do not need to make internal copies of the data buffers, so they are extremely fast (as much as the C-Blosc library can be), but you have to provide a container when doing the de-serialization.</paragraph><paragraph><literal>blosc</literal> has a maximum <literal>blocksize</literal> of 2**31 bytes = 2 GB. Larger <literal>numpy</literal> arrays must be chunked by slicing, for example as:</paragraph><literal_block force="False" language="default" linenos="False" xml:space="preserve">>>> c = b'' >>> for index in np.arange( a.shape[0] ): c += blosc.compress_ptr(a[index,...].__array_interface__['data'][0], a.size, a.dtype.itemsize, 9, True)</literal_block></section><section ids="fine-tuning-compression-parameters" names="fine-tuning\ compression\ parameters"><title>Fine-tuning compression parameters</title><paragraph>There are a number of parameters that affect the de/compression bandwidth achieved by <literal>blosc</literal>:</paragraph><bullet_list bullet="*"><list_item><paragraph>The information content of the underlying data, and <literal>chunksize</literal>: the size of the data in each call to <literal>compress</literal> and analogous functions. ‘blosc’ does not manage chunksize itself, but an example implementation can be seen in the <literal>bloscpack</literal> module.</paragraph></list_item><list_item><paragraph><literal>n_threads</literal>: The number of threads to spawn inside <literal>c-blosc</literal>. <literal>n_threads</literal> may be changed by calling <literal>blosc.set_nthreads(16)</literal> for example. <literal>blosc</literal> performance generally scales sub-linearly with the number of threads with a coefficient roughly around 0.5-0.67. I.e. the expected performance compared to a single thread is 1.0 / (0.6*n_threads). For systems with hyper-threading the optimum number of threads is usually a small over-subscription of the number of _physical_ (not virtual) cores.</paragraph></list_item><list_item><paragraph><literal>blocksize</literal>: is the size of each continuously memory-element that is compressed, in bytes. Normally <literal>blosc</literal> attempts to automatically guess the size of each compressed block of data, but the user can set it manually by calling <literal>blosc.set_blocksize( size_in_bytes )</literal> for hand optimized situations. Often the L2 cache size (e.g. 256kB for an Intel Haswell) is a good starting point for optimization.</paragraph></list_item><list_item><paragraph><literal>shuffle</literal>: as discussed above the <literal>shuffle</literal> mode can substantially improve compression ratios when the</paragraph></list_item><list_item><paragraph><literal>clevel</literal>: the compression level called for the algorithm. Called as an argument to <literal>compress</literal> and similar functions.</paragraph></list_item><list_item><paragraph><literal>cname</literal>: the compressor codec itself. Each codec has its own characteristics that also vary depending on the underlying data. For example, ‘lz4’ tends to prefer smaller <literal>blocksize</literal> and does not slow significantly with <literal>clevel</literal>. In comparison <literal>zlib</literal> and <literal>zstd</literal> both slow substantially with increasing <literal>clevel</literal>, with an inflection point around <literal>clevel`=4-5 for 'zlib' and `clevel`=2-4 for 'zstd'. Called as an argument to `compress</literal> and similar functions.</paragraph></list_item><list_item><paragraph><literal>releasegil</literal>: optionally the Python Global Interpreter Lock (GIL) can be turned off during <literal>c-blosc</literal> operations by calling <literal>blosc.set_releasegil(True)</literal>. The default is off as there is a small overhead in releasing the GIL which can be significant for a small <literal>blocksize</literal>. GIL release is intended to be used in situations where other bounds (such as file or network I/O) are the rate-limiting ones and a Python <literal>ThreadPool</literal> or similar object can be used for parallel processing either with or without <literal>blosc</literal> threads. Initial testing suggests that an equal mix of <literal>ThreadPool</literal> and <literal>blosc</literal> threads is near optimal. I.e. a computer with 16 cores would have 4 <literal>blosc</literal> threads and 4 <literal>ThreadPool</literal> threads. An example of combining <literal>blosc</literal> and <literal>ThreadPool</literal> may be found in <literal>bench/threadpool.py</literal>.</paragraph></list_item></bullet_list></section><section ids="links-to-external-discussions-on-blosc-optimization" names="links\ to\ external\ discussions\ on\ blosc\ optimization"><title>Links to external discussions on <literal>blosc</literal> optimization</title><bullet_list bullet="*"><list_item><paragraph><reference name="Synthetic Benchmarks" refuri="http://www.blosc.org/synthetic-benchmarks.html">Synthetic Benchmarks</reference><target ids="['synthetic-benchmarks']" names="['synthetic benchmarks']" refuri="http://www.blosc.org/synthetic-benchmarks.html"/> by Francesc Alted</paragraph></list_item><list_item><paragraph><reference name="Genotype compressor benchmark" refuri="http://alimanfoo.github.io/2016/09/21/genotype-compression-benchmark.html">Genotype compressor benchmark</reference><target ids="['genotype-compressor-benchmark']" names="['genotype compressor benchmark']" refuri="http://alimanfoo.github.io/2016/09/21/genotype-compression-benchmark.html"/> by Alistair Miles</paragraph></list_item></bullet_list></section></section></document> SphinxTranslator.dispatch_visit calling visit_section for <section ids="tutorials" names="tutorials"><title>Tutorials</title><paragraph>Using <literal>python-blosc</literal> (or just <literal>blosc</literal>, because we are going to talk always on how to use it in a Python environment) is pretty easy. It basically mimics the API of the <literal>zlib</literal> module included in the standard Python library.</paragraph><paragraph>Here are some examples on how to use it. For the full documentation, please refer to the <reference name="Library Reference" refuri="http://python-blosc.blosc.org/reference.html">Library Reference</reference><target ids="['library-reference']" names="['library reference']" refuri="http://python-blosc.blosc.org/reference.html"/> section.</paragraph><paragraph>Most of the times in this tutorial have been obtained using a VM with 2 cores on top of a Intel(R) Core(TM) i5-3380M CPU @ 2.90GHz.</paragraph><section ids="compressing-and-decompressing-with-blosc" names="compressing\ and\ decompressing\ with\ blosc"><title>Compressing and decompressing with <literal>blosc</literal></title><paragraph>Let’s start creating a NumPy array with 80 MB full of data:</paragraph><literal_block force="False" language="default" linenos="False" xml:space="preserve">>>> import numpy as np >>> a = np.linspace(0, 100, 1e7) >>> bytes_array = a.tostring() # get an array of bytes</literal_block><paragraph>and let’s compare Blosc operation with <literal>zlib</literal> (please note that we are using IPython for leveraging its timing capabilities):</paragraph><literal_block force="False" language="default" linenos="False" xml:space="preserve">>>> import zlib >>> %timeit zlib.compress(bytes_array) 1 loops, best of 3: 4.65 s per loop # ~ 17 MB/s >>> import blosc >>> %timeit blosc.compress(bytes_array, typesize=8) 100 loops, best of 3: 17.7 ms per loop # ~ 4.5 GB/s and 260x faster than zlib</literal_block><paragraph>but Blosc can use different codecs under the hood. Let’s try the LZ4 codec (instead of the BloscLZ which is the default):</paragraph><literal_block force="False" language="default" linenos="False" xml:space="preserve">>>> %timeit blosc.compress(bytes_array, typesize=8, cname='lz4') 100 loops, best of 3: 8.77 ms per loop # ~ 9.1 GB/s and 530x faster than zlib</literal_block><paragraph>It is important to note that this is quite more than the speed of a memcpy() in this machine:</paragraph><literal_block force="False" language="default" linenos="False" xml:space="preserve">>>> %timeit a.copy() 10 loops, best of 3: 27.2 ms per loop # ~ 2.9 GB/s</literal_block><paragraph>which means that both BloscLZ and LZ4 codecs can be faster than memcpy(), just as the Blosc slogan promises.</paragraph><paragraph>Blosc also comes with the ZLib codec too, and it actually runs faster than the naked zlib:</paragraph><literal_block force="False" language="default" linenos="False" xml:space="preserve">>>> %timeit blosc.compress(bytes_array, typesize=8, cname='zlib') 10 loops, best of 3: 139 ms per loop # ~ 580 MB/s and 33x faster than zlib</literal_block><paragraph>The reason why the internal Zlib codec in Blosc is faster than the ‘naked’ one is 1) that Blosc can use multithreading (using 8 threads here) and 2) that Blosc splits the data to compress in smaller blocks that are more friendly to the caches in modern CPUs.</paragraph><paragraph>Now, let’s have a look at the compression ratios:</paragraph><literal_block force="False" language="default" linenos="False" xml:space="preserve">>>> zpacked = zlib.compress(bytes_array); len(zpacked) 52994692 >>> round(len(bytes_array) / float(len(zpacked)), 3) 1.51 # zlib achieves a 1.5x compression ratio >>> blzpacked = blosc.compress(bytes_array, typesize=8, cname='blosclz'); len(blzpacked) 6986533 >>> round(len(bytes_array) / float(len(blzpacked)), 3) 11.451 # BloscLZ codec reaches more than 11x compression ratio >>> lz4packed = blosc.compress(bytes_array, typesize=8, cname='lz4'); len(lz4packed) 3716015 >>> round(len(bytes_array) / float(len(lz4packed)), 3) 21.528 # LZ4 codec reaches more than 21x compression ratio</literal_block><paragraph>Here we can see how Blosc, with its different codecs, is very efficient compressing this kind of binary data. It is important to note that the codecs alone are not the only responsible for high compression ratios. See what a naked LZ4 codec can do on the same string:</paragraph><literal_block force="False" language="default" linenos="False" xml:space="preserve">>>> import lz4 >>> lz4_packed = lz4.compress(bytes_array); len(lz4_packed) 80309133 >>> round(len(bytes_array) / float(len(lz4_packed)), 3) 0.996</literal_block><paragraph>That is, the naked LZ4 codec cannot compress the array of bytes at all, whereas through Blosc LZ4 can compress quite a lot. In fact, this difference in compression also happens with ZLib:</paragraph><literal_block force="False" language="default" linenos="False" xml:space="preserve">>>> zlibpacked = blosc.compress(bytes_array, typesize=8, cname='zlib'); len(zlibpacked) 875274 >>> round(len(zpacked) / float(len(zlibpacked)), 3) 60.546 # ZLib codec reaches 60x more compression than naked ZLib</literal_block><paragraph>Here it is a plot with the different compression ratios achieved:</paragraph><reference internal="True" refuri="../_images/cratio-blosc-codecs.png"><image candidates="{'*': 'cratio-blosc-codecs.png'}" scale="75" uri="cratio-blosc-codecs.png"/></reference><paragraph>The explanation for this apparently shocking result is that Blosc uses filters (<literal>SHUFFLE</literal> and <literal>BITSHUFFLE</literal> currently, but the list can increase more in the future) prior to the compression stage and these allow in general for better compression ratios when using binary data.</paragraph><paragraph>How about decompression?:</paragraph><literal_block force="False" language="default" linenos="False" xml:space="preserve">>>> %timeit zlib.decompress(zpacked) 1 loops, best of 3: 275 ms per loop # ~ 290 MB/s >>> %timeit blosc.decompress(blzpacked) 100 loops, best of 3: 17.3 ms per loop # ~ 4.3 GB/s and 16x faster than zlib >>> %timeit blosc.decompress(lz4packed) 10 loops, best of 3: 41.9 ms per loop # ~ 1.9 GB/s and 6.5x faster than zlib >>> %timeit blosc.decompress(zlibpacked) 10 loops, best of 3: 40.7 ms per loop # ~ 2.0 GB/S and 6.8x faster than zlib</literal_block><paragraph>Here we see a couple of things:</paragraph><bullet_list bullet="*"><list_item><paragraph>All the internal codecs in Blosc are way faster than naked ZLib</paragraph></list_item><list_item><paragraph>The fastest codec for decompressing here is BloscLZ (remember that LZ4 was the fastest for compression).</paragraph></list_item></bullet_list><paragraph>The next plot summarizes the speed benchmarks above:</paragraph><reference internal="True" refuri="../_images/speed-blosc-codecs.png"><image candidates="{'*': 'speed-blosc-codecs.png'}" scale="75" uri="speed-blosc-codecs.png"/></reference><paragraph>These results should reinforce the idea that there is not a single codec that wins in all areas (compression ratio, compression speed and decompression speed) and each has its pro’s and con’s. It is up to the user to choose whatever fits better to him (hint: there is no replacement for experimentation).</paragraph><paragraph>Finally, here it is the way to discover all the internal codecs inside your Blosc package:</paragraph><literal_block force="False" language="default" linenos="False" xml:space="preserve">>>> blosc.cnames ['blosclz', 'lz4', 'lz4hc', 'snappy', 'zlib', 'zstd']</literal_block><paragraph><emphasis>Note</emphasis>: the actual list of codecs may change depening on how you have compiled the underlying C-Blosc library.</paragraph></section><section ids="using-different-filters" names="using\ different\ filters"><title>Using different filters</title><paragraph>In the same way that you can use different codecs inside Blosc, you can use different filters too (currently <literal>SHUFFLE</literal> and <literal>BITSHUFLE</literal>). These allow the integrated compressors to compress more efficiently or not, depending on your datasets.</paragraph><paragraph>Here it is an example using the <literal>SHUFFLE</literal> filter:</paragraph><literal_block force="False" language="default" linenos="False" xml:space="preserve">>>> %time bpacked = blosc.compress(bytes_array, shuffle=blosc.SHUFFLE) CPU times: user 112 ms, sys: 4 ms, total: 116 ms Wall time: 29.9 ms >>> len(bpacked) 6986533</literal_block><paragraph>Here there is another example using <literal>BITSHUFFLE</literal>:</paragraph><literal_block force="False" language="default" linenos="False" xml:space="preserve">>>> %time bpacked = blosc.compress(bytes_array, shuffle=blosc.BITSHUFFLE) CPU times: user 120 ms, sys: 8 ms, total: 128 ms Wall time: 32.9 ms >>> len(bpacked) 5942257 # ~ 1.2x smaller than blosclz/shuffle</literal_block><paragraph>You can also deactivate filters completely with <literal>NOSHUFFLE</literal>:</paragraph><literal_block force="False" language="default" linenos="False" xml:space="preserve">>>> %time bpacked = blosc.compress(bytes_array, shuffle=blosc.NOSHUFFLE) CPU times: user 416 ms, sys: 8 ms, total: 424 ms Wall time: 107 ms >>> len(bpacked) 74323591 # just a 7% of compression wrt the original buffer</literal_block><paragraph>So you have quite a bit of flexibility on choosing different codecs and filters inside Blosc. Again, depending on the dataset you have and the requeriments on performance, you may want to experiment a bit before sticking with your preferred one.</paragraph></section><section ids="supporting-the-buffer-interface" names="supporting\ the\ buffer\ interface"><title>Supporting the buffer interface</title><paragraph>python-blosc supports compressing and decompressing from any bytes-like object that supports the buffer-interface: this includes <literal>buffer</literal>, <literal>memoryview</literal> and <literal>bytearray</literal>:</paragraph><literal_block force="False" language="default" linenos="False" xml:space="preserve">>>> input_bytes = b"abcdefghijklmnopqrstuvwxyz" >>> blosc.compress(input_bytes, typesize=1) '\x02\x01\x03\x01\x1a\x00\x00\x00\x1a\x00\x00\x00*\x00\x00\x00abcdefghijklmnopqrstuvwxyz' >>> blosc.compress(memoryview(input_bytes), typesize=1) '\x02\x01\x03\x01\x1a\x00\x00\x00\x1a\x00\x00\x00*\x00\x00\x00abcdefghijklmnopqrstuvwxyz' >>> blosc.compress(bytearray(input_bytes), typesize=1) '\x02\x01\x03\x01\x1a\x00\x00\x00\x1a\x00\x00\x00*\x00\x00\x00abcdefghijklmnopqrstuvwxyz' >>> compressed = blosc.compress(input_bytes, typesize=1) >>> blosc.decompress(compressed) 'abcdefghijklmnopqrstuvwxyz' >>> blosc.decompress(memoryview(compressed)) 'abcdefghijklmnopqrstuvwxyz' >>> blosc.decompress(bytearray(compressed)) 'abcdefghijklmnopqrstuvwxyz'</literal_block><paragraph>Note however, that there are subtle differences between Python 2.x and 3.x. For example, in Python 2.x we can compress/decompress both <literal>str</literal> and <literal>unicode</literal> types, whereas in Python 3.x we can only compress ‘binary’ data which does <emphasis>not</emphasis> include <literal>unicode</literal>.</paragraph></section><section ids="packaging-numpy-arrays" names="packaging\ numpy\ arrays"><title>Packaging NumPy arrays</title><paragraph>Want to use <literal>blosc</literal> to compress and decompress NumPy objects without having to worry about passing the typesize for optimal compression, or having to create the final container for decompression? <literal>blosc</literal> comes with the <literal>pack_array</literal> and <literal>unpack_array</literal> to perform this in a handy way:</paragraph><literal_block force="False" language="default" linenos="False" xml:space="preserve">>>> a = np.linspace(0, 100, 1e7) >>> packed = blosc.pack_array(a) >>> %timeit blosc.pack_array(a) 10 loops, best of 3: 104 ms per loop # ~ 770 MB/s >>> %timeit blosc.unpack_array(packed) 10 loops, best of 3: 76.3 ms per loop # ~ 1 GB/s</literal_block><paragraph>Although this is a convenient way for compressing/decompressing NumPy arrays, this method uses pickle/unpickle behind the scenes. This step implies additional copies, which takes both memory and time.</paragraph></section><section ids="compressing-from-a-data-pointer" names="compressing\ from\ a\ data\ pointer"><title>Compressing from a data pointer</title><paragraph>For avoiding the data copy problem in the previous section, <literal>blosc</literal> comes with a couple of lower-level functions: <literal>compress_ptr</literal> and <literal>decompress_ptr</literal>. Here are they in action:</paragraph><literal_block force="False" language="default" linenos="False" xml:space="preserve">>>> c = blosc.compress_ptr(a.__array_interface__['data'][0], a.size, a.dtype.itemsize, 9, True) >>> %timeit blosc.compress_ptr(a.__array_interface__['data'][0], a.size, a.dtype.itemsize, 9, True) 10 loops, best of 3: 17.8 ms per loop # ~ 4.5 GB/s >>> a2 = np.empty(a.size, dtype=a.dtype) >>> %timeit blosc.decompress_ptr(c, a2.__array_interface__['data'][0]) 100 loops, best of 3: 11 ms per loop # ~ 7.3 GB/s >>> (a == a2).all() True</literal_block><paragraph>As you see, these are really low level functions because you should pass actual pointers where the data is, as well as the size and itemsize (for compression). Needless to say, it is very easy to cause a segfault by passing incorrect parameters to the functions (wrong pointer or wrong size).</paragraph><paragraph>On the other hand, and contrarily to the <literal>pack_array</literal> / <literal>unpack_array</literal> method, the <literal>compress_ptr</literal> / <literal>decompress_ptr</literal> functions do not need to make internal copies of the data buffers, so they are extremely fast (as much as the C-Blosc library can be), but you have to provide a container when doing the de-serialization.</paragraph><paragraph><literal>blosc</literal> has a maximum <literal>blocksize</literal> of 2**31 bytes = 2 GB. Larger <literal>numpy</literal> arrays must be chunked by slicing, for example as:</paragraph><literal_block force="False" language="default" linenos="False" xml:space="preserve">>>> c = b'' >>> for index in np.arange( a.shape[0] ): c += blosc.compress_ptr(a[index,...].__array_interface__['data'][0], a.size, a.dtype.itemsize, 9, True)</literal_block></section><section ids="fine-tuning-compression-parameters" names="fine-tuning\ compression\ parameters"><title>Fine-tuning compression parameters</title><paragraph>There are a number of parameters that affect the de/compression bandwidth achieved by <literal>blosc</literal>:</paragraph><bullet_list bullet="*"><list_item><paragraph>The information content of the underlying data, and <literal>chunksize</literal>: the size of the data in each call to <literal>compress</literal> and analogous functions. ‘blosc’ does not manage chunksize itself, but an example implementation can be seen in the <literal>bloscpack</literal> module.</paragraph></list_item><list_item><paragraph><literal>n_threads</literal>: The number of threads to spawn inside <literal>c-blosc</literal>. <literal>n_threads</literal> may be changed by calling <literal>blosc.set_nthreads(16)</literal> for example. <literal>blosc</literal> performance generally scales sub-linearly with the number of threads with a coefficient roughly around 0.5-0.67. I.e. the expected performance compared to a single thread is 1.0 / (0.6*n_threads). For systems with hyper-threading the optimum number of threads is usually a small over-subscription of the number of _physical_ (not virtual) cores.</paragraph></list_item><list_item><paragraph><literal>blocksize</literal>: is the size of each continuously memory-element that is compressed, in bytes. Normally <literal>blosc</literal> attempts to automatically guess the size of each compressed block of data, but the user can set it manually by calling <literal>blosc.set_blocksize( size_in_bytes )</literal> for hand optimized situations. Often the L2 cache size (e.g. 256kB for an Intel Haswell) is a good starting point for optimization.</paragraph></list_item><list_item><paragraph><literal>shuffle</literal>: as discussed above the <literal>shuffle</literal> mode can substantially improve compression ratios when the</paragraph></list_item><list_item><paragraph><literal>clevel</literal>: the compression level called for the algorithm. Called as an argument to <literal>compress</literal> and similar functions.</paragraph></list_item><list_item><paragraph><literal>cname</literal>: the compressor codec itself. Each codec has its own characteristics that also vary depending on the underlying data. For example, ‘lz4’ tends to prefer smaller <literal>blocksize</literal> and does not slow significantly with <literal>clevel</literal>. In comparison <literal>zlib</literal> and <literal>zstd</literal> both slow substantially with increasing <literal>clevel</literal>, with an inflection point around <literal>clevel`=4-5 for 'zlib' and `clevel`=2-4 for 'zstd'. Called as an argument to `compress</literal> and similar functions.</paragraph></list_item><list_item><paragraph><literal>releasegil</literal>: optionally the Python Global Interpreter Lock (GIL) can be turned off during <literal>c-blosc</literal> operations by calling <literal>blosc.set_releasegil(True)</literal>. The default is off as there is a small overhead in releasing the GIL which can be significant for a small <literal>blocksize</literal>. GIL release is intended to be used in situations where other bounds (such as file or network I/O) are the rate-limiting ones and a Python <literal>ThreadPool</literal> or similar object can be used for parallel processing either with or without <literal>blosc</literal> threads. Initial testing suggests that an equal mix of <literal>ThreadPool</literal> and <literal>blosc</literal> threads is near optimal. I.e. a computer with 16 cores would have 4 <literal>blosc</literal> threads and 4 <literal>ThreadPool</literal> threads. An example of combining <literal>blosc</literal> and <literal>ThreadPool</literal> may be found in <literal>bench/threadpool.py</literal>.</paragraph></list_item></bullet_list></section><section ids="links-to-external-discussions-on-blosc-optimization" names="links\ to\ external\ discussions\ on\ blosc\ optimization"><title>Links to external discussions on <literal>blosc</literal> optimization</title><bullet_list bullet="*"><list_item><paragraph><reference name="Synthetic Benchmarks" refuri="http://www.blosc.org/synthetic-benchmarks.html">Synthetic Benchmarks</reference><target ids="['synthetic-benchmarks']" names="['synthetic benchmarks']" refuri="http://www.blosc.org/synthetic-benchmarks.html"/> by Francesc Alted</paragraph></list_item><list_item><paragraph><reference name="Genotype compressor benchmark" refuri="http://alimanfoo.github.io/2016/09/21/genotype-compression-benchmark.html">Genotype compressor benchmark</reference><target ids="['genotype-compressor-benchmark']" names="['genotype compressor benchmark']" refuri="http://alimanfoo.github.io/2016/09/21/genotype-compression-benchmark.html"/> by Alistair Miles</paragraph></list_item></bullet_list></section></section> SphinxTranslator.dispatch_visit calling visit_title for <title>Tutorials</title> SphinxTranslator.dispatch_visit calling visit_Text for Tutorials SphinxTranslator.dispatch_departure calling depart_Text for Tutorials SphinxTranslator.dispatch_departure calling depart_title for <title>Tutorials</title> SphinxTranslator.dispatch_visit calling visit_paragraph for <paragraph>Using <literal>python-blosc</literal> (or just <literal>blosc</literal>, because we are going to talk always on how to use it in a Python environment) is pretty easy. It basically mimics the API of the <literal>zlib</literal> module included in the standard Python library.</paragraph> SphinxTranslator.dispatch_visit calling visit_Text for Using SphinxTranslator.dispatch_departure calling depart_Text for Using SphinxTranslator.dispatch_visit calling visit_literal for <literal>python-blosc</literal> SphinxTranslator.dispatch_visit calling visit_Text for python-blosc SphinxTranslator.dispatch_departure calling depart_Text for python-blosc SphinxTranslator.dispatch_departure calling depart_literal for <literal>python-blosc</literal> SphinxTranslator.dispatch_visit calling visit_Text for (or just SphinxTranslator.dispatch_departure calling depart_Text for (or just SphinxTranslator.dispatch_visit calling visit_literal for <literal>blosc</literal> SphinxTranslator.dispatch_visit calling visit_Text for blosc SphinxTranslator.dispatch_departure calling depart_Text for blosc SphinxTranslator.dispatch_departure calling depart_literal for <literal>blosc</literal> SphinxTranslator.dispatch_visit calling visit_Text for , because we are going to talk always on how to use it in a Python environment) is pretty easy. It basically mimics the API of the SphinxTranslator.dispatch_departure calling depart_Text for , because we are going to talk always on how to use it in a Python environment) is pretty easy. It basically mimics the API of the SphinxTranslator.dispatch_visit calling visit_literal for <literal>zlib</literal> SphinxTranslator.dispatch_visit calling visit_Text for zlib SphinxTranslator.dispatch_departure calling depart_Text for zlib SphinxTranslator.dispatch_departure calling depart_literal for <literal>zlib</literal> SphinxTranslator.dispatch_visit calling visit_Text for module included in the standard Python library. SphinxTranslator.dispatch_departure calling depart_Text for module included in the standard Python library. SphinxTranslator.dispatch_departure calling depart_paragraph for <paragraph>Using <literal>python-blosc</literal> (or just <literal>blosc</literal>, because we are going to talk always on how to use it in a Python environment) is pretty easy. It basically mimics the API of the <literal>zlib</literal> module included in the standard Python library.</paragraph> SphinxTranslator.dispatch_visit calling visit_paragraph for <paragraph>Here are some examples on how to use it. For the full documentation, please refer to the <reference name="Library Reference" refuri="http://python-blosc.blosc.org/reference.html">Library Reference</reference><target ids="['library-reference']" names="['library reference']" refuri="http://python-blosc.blosc.org/reference.html"/> section.</paragraph> SphinxTranslator.dispatch_visit calling visit_Text for Here are some examples on how to use it. For the full documentation, please refer to the SphinxTranslator.dispatch_departure calling depart_Text for Here are some examples on how to use it. For the full documentation, please refer to the SphinxTranslator.dispatch_visit calling visit_reference for <reference name="Library Reference" refuri="http://python-blosc.blosc.org/reference.html">Library Reference</reference> SphinxTranslator.dispatch_visit calling visit_Text for Library Reference SphinxTranslator.dispatch_departure calling depart_Text for Library Reference SphinxTranslator.dispatch_departure calling depart_reference for <reference name="Library Reference" refuri="http://python-blosc.blosc.org/reference.html">Library Reference</reference> SphinxTranslator.dispatch_visit calling visit_target for <target ids="['library-reference']" names="['library reference']" refuri="http://python-blosc.blosc.org/reference.html"/> SphinxTranslator.dispatch_departure calling depart_target for <target ids="['library-reference']" names="['library reference']" refuri="http://python-blosc.blosc.org/reference.html"/> SphinxTranslator.dispatch_visit calling visit_Text for section. SphinxTranslator.dispatch_departure calling depart_Text for section. SphinxTranslator.dispatch_departure calling depart_paragraph for <paragraph>Here are some examples on how to use it. For the full documentation, please refer to the <reference name="Library Reference" refuri="http://python-blosc.blosc.org/reference.html">Library Reference</reference><target ids="['library-reference']" names="['library reference']" refuri="http://python-blosc.blosc.org/reference.html"/> section.</paragraph> SphinxTranslator.dispatch_visit calling visit_paragraph for <paragraph>Most of the times in this tutorial have been obtained using a VM with 2 cores on top of a Intel(R) Core(TM) i5-3380M CPU @ 2.90GHz.</paragraph> SphinxTranslator.dispatch_visit calling visit_Text for Most of the times in this tutorial have been obtained using a VM with 2 cores on top of a Intel(R) Core(TM) i5-3380M CPU @ 2.90GHz. SphinxTranslator.dispatch_departure calling depart_Text for Most of the times in this tutorial have been obtained using a VM with 2 cores on top of a Intel(R) Core(TM) i5-3380M CPU @ 2.90GHz. SphinxTranslator.dispatch_departure calling depart_paragraph for <paragraph>Most of the times in this tutorial have been obtained using a VM with 2 cores on top of a Intel(R) Core(TM) i5-3380M CPU @ 2.90GHz.</paragraph> SphinxTranslator.dispatch_visit calling visit_section for <section ids="compressing-and-decompressing-with-blosc" names="compressing\ and\ decompressing\ with\ blosc"><title>Compressing and decompressing with <literal>blosc</literal></title><paragraph>Let’s start creating a NumPy array with 80 MB full of data:</paragraph><literal_block force="False" language="default" linenos="False" xml:space="preserve">>>> import numpy as np >>> a = np.linspace(0, 100, 1e7) >>> bytes_array = a.tostring() # get an array of bytes</literal_block><paragraph>and let’s compare Blosc operation with <literal>zlib</literal> (please note that we are using IPython for leveraging its timing capabilities):</paragraph><literal_block force="False" language="default" linenos="False" xml:space="preserve">>>> import zlib >>> %timeit zlib.compress(bytes_array) 1 loops, best of 3: 4.65 s per loop # ~ 17 MB/s >>> import blosc >>> %timeit blosc.compress(bytes_array, typesize=8) 100 loops, best of 3: 17.7 ms per loop # ~ 4.5 GB/s and 260x faster than zlib</literal_block><paragraph>but Blosc can use different codecs under the hood. Let’s try the LZ4 codec (instead of the BloscLZ which is the default):</paragraph><literal_block force="False" language="default" linenos="False" xml:space="preserve">>>> %timeit blosc.compress(bytes_array, typesize=8, cname='lz4') 100 loops, best of 3: 8.77 ms per loop # ~ 9.1 GB/s and 530x faster than zlib</literal_block><paragraph>It is important to note that this is quite more than the speed of a memcpy() in this machine:</paragraph><literal_block force="False" language="default" linenos="False" xml:space="preserve">>>> %timeit a.copy() 10 loops, best of 3: 27.2 ms per loop # ~ 2.9 GB/s</literal_block><paragraph>which means that both BloscLZ and LZ4 codecs can be faster than memcpy(), just as the Blosc slogan promises.</paragraph><paragraph>Blosc also comes with the ZLib codec too, and it actually runs faster than the naked zlib:</paragraph><literal_block force="False" language="default" linenos="False" xml:space="preserve">>>> %timeit blosc.compress(bytes_array, typesize=8, cname='zlib') 10 loops, best of 3: 139 ms per loop # ~ 580 MB/s and 33x faster than zlib</literal_block><paragraph>The reason why the internal Zlib codec in Blosc is faster than the ‘naked’ one is 1) that Blosc can use multithreading (using 8 threads here) and 2) that Blosc splits the data to compress in smaller blocks that are more friendly to the caches in modern CPUs.</paragraph><paragraph>Now, let’s have a look at the compression ratios:</paragraph><literal_block force="False" language="default" linenos="False" xml:space="preserve">>>> zpacked = zlib.compress(bytes_array); len(zpacked) 52994692 >>> round(len(bytes_array) / float(len(zpacked)), 3) 1.51 # zlib achieves a 1.5x compression ratio >>> blzpacked = blosc.compress(bytes_array, typesize=8, cname='blosclz'); len(blzpacked) 6986533 >>> round(len(bytes_array) / float(len(blzpacked)), 3) 11.451 # BloscLZ codec reaches more than 11x compression ratio >>> lz4packed = blosc.compress(bytes_array, typesize=8, cname='lz4'); len(lz4packed) 3716015 >>> round(len(bytes_array) / float(len(lz4packed)), 3) 21.528 # LZ4 codec reaches more than 21x compression ratio</literal_block><paragraph>Here we can see how Blosc, with its different codecs, is very efficient compressing this kind of binary data. It is important to note that the codecs alone are not the only responsible for high compression ratios. See what a naked LZ4 codec can do on the same string:</paragraph><literal_block force="False" language="default" linenos="False" xml:space="preserve">>>> import lz4 >>> lz4_packed = lz4.compress(bytes_array); len(lz4_packed) 80309133 >>> round(len(bytes_array) / float(len(lz4_packed)), 3) 0.996</literal_block><paragraph>That is, the naked LZ4 codec cannot compress the array of bytes at all, whereas through Blosc LZ4 can compress quite a lot. In fact, this difference in compression also happens with ZLib:</paragraph><literal_block force="False" language="default" linenos="False" xml:space="preserve">>>> zlibpacked = blosc.compress(bytes_array, typesize=8, cname='zlib'); len(zlibpacked) 875274 >>> round(len(zpacked) / float(len(zlibpacked)), 3) 60.546 # ZLib codec reaches 60x more compression than naked ZLib</literal_block><paragraph>Here it is a plot with the different compression ratios achieved:</paragraph><reference internal="True" refuri="../_images/cratio-blosc-codecs.png"><image candidates="{'*': 'cratio-blosc-codecs.png'}" scale="75" uri="cratio-blosc-codecs.png"/></reference><paragraph>The explanation for this apparently shocking result is that Blosc uses filters (<literal>SHUFFLE</literal> and <literal>BITSHUFFLE</literal> currently, but the list can increase more in the future) prior to the compression stage and these allow in general for better compression ratios when using binary data.</paragraph><paragraph>How about decompression?:</paragraph><literal_block force="False" language="default" linenos="False" xml:space="preserve">>>> %timeit zlib.decompress(zpacked) 1 loops, best of 3: 275 ms per loop # ~ 290 MB/s >>> %timeit blosc.decompress(blzpacked) 100 loops, best of 3: 17.3 ms per loop # ~ 4.3 GB/s and 16x faster than zlib >>> %timeit blosc.decompress(lz4packed) 10 loops, best of 3: 41.9 ms per loop # ~ 1.9 GB/s and 6.5x faster than zlib >>> %timeit blosc.decompress(zlibpacked) 10 loops, best of 3: 40.7 ms per loop # ~ 2.0 GB/S and 6.8x faster than zlib</literal_block><paragraph>Here we see a couple of things:</paragraph><bullet_list bullet="*"><list_item><paragraph>All the internal codecs in Blosc are way faster than naked ZLib</paragraph></list_item><list_item><paragraph>The fastest codec for decompressing here is BloscLZ (remember that LZ4 was the fastest for compression).</paragraph></list_item></bullet_list><paragraph>The next plot summarizes the speed benchmarks above:</paragraph><reference internal="True" refuri="../_images/speed-blosc-codecs.png"><image candidates="{'*': 'speed-blosc-codecs.png'}" scale="75" uri="speed-blosc-codecs.png"/></reference><paragraph>These results should reinforce the idea that there is not a single codec that wins in all areas (compression ratio, compression speed and decompression speed) and each has its pro’s and con’s. It is up to the user to choose whatever fits better to him (hint: there is no replacement for experimentation).</paragraph><paragraph>Finally, here it is the way to discover all the internal codecs inside your Blosc package:</paragraph><literal_block force="False" language="default" linenos="False" xml:space="preserve">>>> blosc.cnames ['blosclz', 'lz4', 'lz4hc', 'snappy', 'zlib', 'zstd']</literal_block><paragraph><emphasis>Note</emphasis>: the actual list of codecs may change depening on how you have compiled the underlying C-Blosc library.</paragraph></section> SphinxTranslator.dispatch_visit calling visit_title for <title>Compressing and decompressing with <literal>blosc</literal></title> SphinxTranslator.dispatch_visit calling visit_Text for Compressing and decompressing with SphinxTranslator.dispatch_departure calling depart_Text for Compressing and decompressing with SphinxTranslator.dispatch_visit calling visit_literal for <literal>blosc</literal> SphinxTranslator.dispatch_visit calling visit_Text for blosc SphinxTranslator.dispatch_departure calling depart_Text for blosc SphinxTranslator.dispatch_departure calling depart_literal for <literal>blosc</literal> SphinxTranslator.dispatch_departure calling depart_title for <title>Compressing and decompressing with <literal>blosc</literal></title> SphinxTranslator.dispatch_visit calling visit_paragraph for <paragraph>Let’s start creating a NumPy array with 80 MB full of data:</paragraph> SphinxTranslator.dispatch_visit calling visit_Text for Let’s start creating a NumPy array with 80 MB full of data: SphinxTranslator.dispatch_departure calling depart_Text for Let’s start creating a NumPy array with 80 MB full of data: SphinxTranslator.dispatch_departure calling depart_paragraph for <paragraph>Let’s start creating a NumPy array with 80 MB full of data:</paragraph> SphinxTranslator.dispatch_visit calling visit_literal_block for <literal_block force="False" language="default" linenos="False" xml:space="preserve">>>> import numpy as np >>> a = np.linspace(0, 100, 1e7) >>> bytes_array = a.tostring() # get an array of bytes</literal_block> SphinxTranslator.dispatch_visit calling visit_paragraph for <paragraph>and let’s compare Blosc operation with <literal>zlib</literal> (please note that we are using IPython for leveraging its timing capabilities):</paragraph> SphinxTranslator.dispatch_visit calling visit_Text for and let’s compare Blosc operation with SphinxTranslator.dispatch_departure calling depart_Text for and let’s compare Blosc operation with SphinxTranslator.dispatch_visit calling visit_literal for <literal>zlib</literal> SphinxTranslator.dispatch_visit calling visit_Text for zlib SphinxTranslator.dispatch_departure calling depart_Text for zlib SphinxTranslator.dispatch_departure calling depart_literal for <literal>zlib</literal> SphinxTranslator.dispatch_visit calling visit_Text for (please note that we are using IPython for leveraging its timing capabilities): SphinxTranslator.dispatch_departure calling depart_Text for (please note that we are using IPython for leveraging its timing capabilities): SphinxTranslator.dispatch_departure calling depart_paragraph for <paragraph>and let’s compare Blosc operation with <literal>zlib</literal> (please note that we are using IPython for leveraging its timing capabilities):</paragraph> SphinxTranslator.dispatch_visit calling visit_literal_block for <literal_block force="False" language="default" linenos="False" xml:space="preserve">>>> import zlib >>> %timeit zlib.compress(bytes_array) 1 loops, best of 3: 4.65 s per loop # ~ 17 MB/s >>> import blosc >>> %timeit blosc.compress(bytes_array, typesize=8) 100 loops, best of 3: 17.7 ms per loop # ~ 4.5 GB/s and 260x faster than zlib</literal_block> SphinxTranslator.dispatch_visit calling visit_paragraph for <paragraph>but Blosc can use different codecs under the hood. Let’s try the LZ4 codec (instead of the BloscLZ which is the default):</paragraph> SphinxTranslator.dispatch_visit calling visit_Text for but Blosc can use different codecs under the hood. Let’s try the LZ4 codec (instead of the BloscLZ which is the default): SphinxTranslator.dispatch_departure calling depart_Text for but Blosc can use different codecs under the hood. Let’s try the LZ4 codec (instead of the BloscLZ which is the default): SphinxTranslator.dispatch_departure calling depart_paragraph for <paragraph>but Blosc can use different codecs under the hood. Let’s try the LZ4 codec (instead of the BloscLZ which is the default):</paragraph> SphinxTranslator.dispatch_visit calling visit_literal_block for <literal_block force="False" language="default" linenos="False" xml:space="preserve">>>> %timeit blosc.compress(bytes_array, typesize=8, cname='lz4') 100 loops, best of 3: 8.77 ms per loop # ~ 9.1 GB/s and 530x faster than zlib</literal_block> SphinxTranslator.dispatch_visit calling visit_paragraph for <paragraph>It is important to note that this is quite more than the speed of a memcpy() in this machine:</paragraph> SphinxTranslator.dispatch_visit calling visit_Text for It is important to note that this is quite more than the speed of a memcpy() in this machine: SphinxTranslator.dispatch_departure calling depart_Text for It is important to note that this is quite more than the speed of a memcpy() in this machine: SphinxTranslator.dispatch_departure calling depart_paragraph for <paragraph>It is important to note that this is quite more than the speed of a memcpy() in this machine:</paragraph> SphinxTranslator.dispatch_visit calling visit_literal_block for <literal_block force="False" language="default" linenos="False" xml:space="preserve">>>> %timeit a.copy() 10 loops, best of 3: 27.2 ms per loop # ~ 2.9 GB/s</literal_block> SphinxTranslator.dispatch_visit calling visit_paragraph for <paragraph>which means that both BloscLZ and LZ4 codecs can be faster than memcpy(), just as the Blosc slogan promises.</paragraph> SphinxTranslator.dispatch_visit calling visit_Text for which means that both BloscLZ and LZ4 codecs can be faster than memcpy(), just as the Blosc slogan promises. SphinxTranslator.dispatch_departure calling depart_Text for which means that both BloscLZ and LZ4 codecs can be faster than memcpy(), just as the Blosc slogan promises. SphinxTranslator.dispatch_departure calling depart_paragraph for <paragraph>which means that both BloscLZ and LZ4 codecs can be faster than memcpy(), just as the Blosc slogan promises.</paragraph> SphinxTranslator.dispatch_visit calling visit_paragraph for <paragraph>Blosc also comes with the ZLib codec too, and it actually runs faster than the naked zlib:</paragraph> SphinxTranslator.dispatch_visit calling visit_Text for Blosc also comes with the ZLib codec too, and it actually runs faster than the naked zlib: SphinxTranslator.dispatch_departure calling depart_Text for Blosc also comes with the ZLib codec too, and it actually runs faster than the naked zlib: SphinxTranslator.dispatch_departure calling depart_paragraph for <paragraph>Blosc also comes with the ZLib codec too, and it actually runs faster than the naked zlib:</paragraph> SphinxTranslator.dispatch_visit calling visit_literal_block for <literal_block force="False" language="default" linenos="False" xml:space="preserve">>>> %timeit blosc.compress(bytes_array, typesize=8, cname='zlib') 10 loops, best of 3: 139 ms per loop # ~ 580 MB/s and 33x faster than zlib</literal_block> SphinxTranslator.dispatch_visit calling visit_paragraph for <paragraph>The reason why the internal Zlib codec in Blosc is faster than the ‘naked’ one is 1) that Blosc can use multithreading (using 8 threads here) and 2) that Blosc splits the data to compress in smaller blocks that are more friendly to the caches in modern CPUs.</paragraph> SphinxTranslator.dispatch_visit calling visit_Text for The reason why the internal Zlib codec in Blosc is faster than the ‘naked’ one is 1) that Blosc can use multithreading (using 8 threads here) and 2) that Blosc splits the data to compress in smaller blocks that are more friendly to the caches in modern CPUs. SphinxTranslator.dispatch_departure calling depart_Text for The reason why the internal Zlib codec in Blosc is faster than the ‘naked’ one is 1) that Blosc can use multithreading (using 8 threads here) and 2) that Blosc splits the data to compress in smaller blocks that are more friendly to the caches in modern CPUs. SphinxTranslator.dispatch_departure calling depart_paragraph for <paragraph>The reason why the internal Zlib codec in Blosc is faster than the ‘naked’ one is 1) that Blosc can use multithreading (using 8 threads here) and 2) that Blosc splits the data to compress in smaller blocks that are more friendly to the caches in modern CPUs.</paragraph> SphinxTranslator.dispatch_visit calling visit_paragraph for <paragraph>Now, let’s have a look at the compression ratios:</paragraph> SphinxTranslator.dispatch_visit calling visit_Text for Now, let’s have a look at the compression ratios: SphinxTranslator.dispatch_departure calling depart_Text for Now, let’s have a look at the compression ratios: SphinxTranslator.dispatch_departure calling depart_paragraph for <paragraph>Now, let’s have a look at the compression ratios:</paragraph> SphinxTranslator.dispatch_visit calling visit_literal_block for <literal_block force="False" language="default" linenos="False" xml:space="preserve">>>> zpacked = zlib.compress(bytes_array); len(zpacked) 52994692 >>> round(len(bytes_array) / float(len(zpacked)), 3) 1.51 # zlib achieves a 1.5x compression ratio >>> blzpacked = blosc.compress(bytes_array, typesize=8, cname='blosclz'); len(blzpacked) 6986533 >>> round(len(bytes_array) / float(len(blzpacked)), 3) 11.451 # BloscLZ codec reaches more than 11x compression ratio >>> lz4packed = blosc.compress(bytes_array, typesize=8, cname='lz4'); len(lz4packed) 3716015 >>> round(len(bytes_array) / float(len(lz4packed)), 3) 21.528 # LZ4 codec reaches more than 21x compression ratio</literal_block> SphinxTranslator.dispatch_visit calling visit_paragraph for <paragraph>Here we can see how Blosc, with its different codecs, is very efficient compressing this kind of binary data. It is important to note that the codecs alone are not the only responsible for high compression ratios. See what a naked LZ4 codec can do on the same string:</paragraph> SphinxTranslator.dispatch_visit calling visit_Text for Here we can see how Blosc, with its different codecs, is very efficient compressing this kind of binary data. It is important to note that the codecs alone are not the only responsible for high compression ratios. See what a naked LZ4 codec can do on the same string: SphinxTranslator.dispatch_departure calling depart_Text for Here we can see how Blosc, with its different codecs, is very efficient compressing this kind of binary data. It is important to note that the codecs alone are not the only responsible for high compression ratios. See what a naked LZ4 codec can do on the same string: SphinxTranslator.dispatch_departure calling depart_paragraph for <paragraph>Here we can see how Blosc, with its different codecs, is very efficient compressing this kind of binary data. It is important to note that the codecs alone are not the only responsible for high compression ratios. See what a naked LZ4 codec can do on the same string:</paragraph> SphinxTranslator.dispatch_visit calling visit_literal_block for <literal_block force="False" language="default" linenos="False" xml:space="preserve">>>> import lz4 >>> lz4_packed = lz4.compress(bytes_array); len(lz4_packed) 80309133 >>> round(len(bytes_array) / float(len(lz4_packed)), 3) 0.996</literal_block> SphinxTranslator.dispatch_visit calling visit_paragraph for <paragraph>That is, the naked LZ4 codec cannot compress the array of bytes at all, whereas through Blosc LZ4 can compress quite a lot. In fact, this difference in compression also happens with ZLib:</paragraph> SphinxTranslator.dispatch_visit calling visit_Text for That is, the naked LZ4 codec cannot compress the array of bytes at all, whereas through Blosc LZ4 can compress quite a lot. In fact, this difference in compression also happens with ZLib: SphinxTranslator.dispatch_departure calling depart_Text for That is, the naked LZ4 codec cannot compress the array of bytes at all, whereas through Blosc LZ4 can compress quite a lot. In fact, this difference in compression also happens with ZLib: SphinxTranslator.dispatch_departure calling depart_paragraph for <paragraph>That is, the naked LZ4 codec cannot compress the array of bytes at all, whereas through Blosc LZ4 can compress quite a lot. In fact, this difference in compression also happens with ZLib:</paragraph> SphinxTranslator.dispatch_visit calling visit_literal_block for <literal_block force="False" language="default" linenos="False" xml:space="preserve">>>> zlibpacked = blosc.compress(bytes_array, typesize=8, cname='zlib'); len(zlibpacked) 875274 >>> round(len(zpacked) / float(len(zlibpacked)), 3) 60.546 # ZLib codec reaches 60x more compression than naked ZLib</literal_block> SphinxTranslator.dispatch_visit calling visit_paragraph for <paragraph>Here it is a plot with the different compression ratios achieved:</paragraph> SphinxTranslator.dispatch_visit calling visit_Text for Here it is a plot with the different compression ratios achieved: SphinxTranslator.dispatch_departure calling depart_Text for Here it is a plot with the different compression ratios achieved: SphinxTranslator.dispatch_departure calling depart_paragraph for <paragraph>Here it is a plot with the different compression ratios achieved:</paragraph> SphinxTranslator.dispatch_visit calling visit_reference for <reference internal="True" refuri="../_images/cratio-blosc-codecs.png"><image candidates="{'*': 'cratio-blosc-codecs.png'}" scale="75" uri="cratio-blosc-codecs.png"/></reference> SphinxTranslator.dispatch_visit calling visit_image for <image candidates="{'*': 'cratio-blosc-codecs.png'}" scale="75" uri="cratio-blosc-codecs.png"/> SphinxTranslator.dispatch_departure calling depart_image for <image candidates="{'*': 'cratio-blosc-codecs.png'}" height="600" scale="75" uri="../_images/cratio-blosc-codecs.png" width="800"/> SphinxTranslator.dispatch_departure calling depart_reference for <reference internal="True" refuri="../_images/cratio-blosc-codecs.png"><image candidates="{'*': 'cratio-blosc-codecs.png'}" height="600" scale="75" uri="../_images/cratio-blosc-codecs.png" width="800"/></reference> SphinxTranslator.dispatch_visit calling visit_paragraph for <paragraph>The explanation for this apparently shocking result is that Blosc uses filters (<literal>SHUFFLE</literal> and <literal>BITSHUFFLE</literal> currently, but the list can increase more in the future) prior to the compression stage and these allow in general for better compression ratios when using binary data.</paragraph> SphinxTranslator.dispatch_visit calling visit_Text for The explanation for this apparently shocking result is that Blosc uses filters ( SphinxTranslator.dispatch_departure calling depart_Text for The explanation for this apparently shocking result is that Blosc uses filters ( SphinxTranslator.dispatch_visit calling visit_literal for <literal>SHUFFLE</literal> SphinxTranslator.dispatch_visit calling visit_Text for SHUFFLE SphinxTranslator.dispatch_departure calling depart_Text for SHUFFLE SphinxTranslator.dispatch_departure calling depart_literal for <literal>SHUFFLE</literal> SphinxTranslator.dispatch_visit calling visit_Text for and SphinxTranslator.dispatch_departure calling depart_Text for and SphinxTranslator.dispatch_visit calling visit_literal for <literal>BITSHUFFLE</literal> SphinxTranslator.dispatch_visit calling visit_Text for BITSHUFFLE SphinxTranslator.dispatch_departure calling depart_Text for BITSHUFFLE SphinxTranslator.dispatch_departure calling depart_literal for <literal>BITSHUFFLE</literal> SphinxTranslator.dispatch_visit calling visit_Text for currently, but the list can increase more in the future) prior to the compression stage and these allow in general for better compression ratios when using binary data. SphinxTranslator.dispatch_departure calling depart_Text for currently, but the list can increase more in the future) prior to the compression stage and these allow in general for better compression ratios when using binary data. SphinxTranslator.dispatch_departure calling depart_paragraph for <paragraph>The explanation for this apparently shocking result is that Blosc uses filters (<literal>SHUFFLE</literal> and <literal>BITSHUFFLE</literal> currently, but the list can increase more in the future) prior to the compression stage and these allow in general for better compression ratios when using binary data.</paragraph> SphinxTranslator.dispatch_visit calling visit_paragraph for <paragraph>How about decompression?:</paragraph> SphinxTranslator.dispatch_visit calling visit_Text for How about decompression?: SphinxTranslator.dispatch_departure calling depart_Text for How about decompression?: SphinxTranslator.dispatch_departure calling depart_paragraph for <paragraph>How about decompression?:</paragraph> SphinxTranslator.dispatch_visit calling visit_literal_block for <literal_block force="False" language="default" linenos="False" xml:space="preserve">>>> %timeit zlib.decompress(zpacked) 1 loops, best of 3: 275 ms per loop # ~ 290 MB/s >>> %timeit blosc.decompress(blzpacked) 100 loops, best of 3: 17.3 ms per loop # ~ 4.3 GB/s and 16x faster than zlib >>> %timeit blosc.decompress(lz4packed) 10 loops, best of 3: 41.9 ms per loop # ~ 1.9 GB/s and 6.5x faster than zlib >>> %timeit blosc.decompress(zlibpacked) 10 loops, best of 3: 40.7 ms per loop # ~ 2.0 GB/S and 6.8x faster than zlib</literal_block> SphinxTranslator.dispatch_visit calling visit_paragraph for <paragraph>Here we see a couple of things:</paragraph> SphinxTranslator.dispatch_visit calling visit_Text for Here we see a couple of things: SphinxTranslator.dispatch_departure calling depart_Text for Here we see a couple of things: SphinxTranslator.dispatch_departure calling depart_paragraph for <paragraph>Here we see a couple of things:</paragraph> SphinxTranslator.dispatch_visit calling visit_bullet_list for <bullet_list bullet="*"><list_item><paragraph>All the internal codecs in Blosc are way faster than naked ZLib</paragraph></list_item><list_item><paragraph>The fastest codec for decompressing here is BloscLZ (remember that LZ4 was the fastest for compression).</paragraph></list_item></bullet_list> SphinxTranslator.dispatch_visit calling visit_list_item for <list_item><paragraph>All the internal codecs in Blosc are way faster than naked ZLib</paragraph></list_item> SphinxTranslator.dispatch_visit calling visit_paragraph for <paragraph>All the internal codecs in Blosc are way faster than naked ZLib</paragraph> SphinxTranslator.dispatch_visit calling visit_Text for All the internal codecs in Blosc are way faster than naked ZLib SphinxTranslator.dispatch_departure calling depart_Text for All the internal codecs in Blosc are way faster than naked ZLib SphinxTranslator.dispatch_departure calling depart_paragraph for <paragraph>All the internal codecs in Blosc are way faster than naked ZLib</paragraph> SphinxTranslator.dispatch_departure calling depart_list_item for <list_item><paragraph>All the internal codecs in Blosc are way faster than naked ZLib</paragraph></list_item> SphinxTranslator.dispatch_visit calling visit_list_item for <list_item><paragraph>The fastest codec for decompressing here is BloscLZ (remember that LZ4 was the fastest for compression).</paragraph></list_item> SphinxTranslator.dispatch_visit calling visit_paragraph for <paragraph>The fastest codec for decompressing here is BloscLZ (remember that LZ4 was the fastest for compression).</paragraph> SphinxTranslator.dispatch_visit calling visit_Text for The fastest codec for decompressing here is BloscLZ (remember that LZ4 was the fastest for compression). SphinxTranslator.dispatch_departure calling depart_Text for The fastest codec for decompressing here is BloscLZ (remember that LZ4 was the fastest for compression). SphinxTranslator.dispatch_departure calling depart_paragraph for <paragraph>The fastest codec for decompressing here is BloscLZ (remember that LZ4 was the fastest for compression).</paragraph> SphinxTranslator.dispatch_departure calling depart_list_item for <list_item><paragraph>The fastest codec for decompressing here is BloscLZ (remember that LZ4 was the fastest for compression).</paragraph></list_item> SphinxTranslator.dispatch_departure calling depart_bullet_list for <bullet_list bullet="*"><list_item><paragraph>All the internal codecs in Blosc are way faster than naked ZLib</paragraph></list_item><list_item><paragraph>The fastest codec for decompressing here is BloscLZ (remember that LZ4 was the fastest for compression).</paragraph></list_item></bullet_list> SphinxTranslator.dispatch_visit calling visit_paragraph for <paragraph>The next plot summarizes the speed benchmarks above:</paragraph> SphinxTranslator.dispatch_visit calling visit_Text for The next plot summarizes the speed benchmarks above: SphinxTranslator.dispatch_departure calling depart_Text for The next plot summarizes the speed benchmarks above: SphinxTranslator.dispatch_departure calling depart_paragraph for <paragraph>The next plot summarizes the speed benchmarks above:</paragraph> SphinxTranslator.dispatch_visit calling visit_reference for <reference internal="True" refuri="../_images/speed-blosc-codecs.png"><image candidates="{'*': 'speed-blosc-codecs.png'}" scale="75" uri="speed-blosc-codecs.png"/></reference> SphinxTranslator.dispatch_visit calling visit_image for <image candidates="{'*': 'speed-blosc-codecs.png'}" scale="75" uri="speed-blosc-codecs.png"/> SphinxTranslator.dispatch_departure calling depart_image for <image candidates="{'*': 'speed-blosc-codecs.png'}" height="600" scale="75" uri="../_images/speed-blosc-codecs.png" width="800"/> SphinxTranslator.dispatch_departure calling depart_reference for <reference internal="True" refuri="../_images/speed-blosc-codecs.png"><image candidates="{'*': 'speed-blosc-codecs.png'}" height="600" scale="75" uri="../_images/speed-blosc-codecs.png" width="800"/></reference> SphinxTranslator.dispatch_visit calling visit_paragraph for <paragraph>These results should reinforce the idea that there is not a single codec that wins in all areas (compression ratio, compression speed and decompression speed) and each has its pro’s and con’s. It is up to the user to choose whatever fits better to him (hint: there is no replacement for experimentation).</paragraph> SphinxTranslator.dispatch_visit calling visit_Text for These results should reinforce the idea that there is not a single codec that wins in all areas (compression ratio, compression speed and decompression speed) and each has its pro’s and con’s. It is up to the user to choose whatever fits better to him (hint: there is no replacement for experimentation). SphinxTranslator.dispatch_departure calling depart_Text for These results should reinforce the idea that there is not a single codec that wins in all areas (compression ratio, compression speed and decompression speed) and each has its pro’s and con’s. It is up to the user to choose whatever fits better to him (hint: there is no replacement for experimentation). SphinxTranslator.dispatch_departure calling depart_paragraph for <paragraph>These results should reinforce the idea that there is not a single codec that wins in all areas (compression ratio, compression speed and decompression speed) and each has its pro’s and con’s. It is up to the user to choose whatever fits better to him (hint: there is no replacement for experimentation).</paragraph> SphinxTranslator.dispatch_visit calling visit_paragraph for <paragraph>Finally, here it is the way to discover all the internal codecs inside your Blosc package:</paragraph> SphinxTranslator.dispatch_visit calling visit_Text for Finally, here it is the way to discover all the internal codecs inside your Blosc package: SphinxTranslator.dispatch_departure calling depart_Text for Finally, here it is the way to discover all the internal codecs inside your Blosc package: SphinxTranslator.dispatch_departure calling depart_paragraph for <paragraph>Finally, here it is the way to discover all the internal codecs inside your Blosc package:</paragraph> SphinxTranslator.dispatch_visit calling visit_literal_block for <literal_block force="False" language="default" linenos="False" xml:space="preserve">>>> blosc.cnames ['blosclz', 'lz4', 'lz4hc', 'snappy', 'zlib', 'zstd']</literal_block> SphinxTranslator.dispatch_visit calling visit_paragraph for <paragraph><emphasis>Note</emphasis>: the actual list of codecs may change depening on how you have compiled the underlying C-Blosc library.</paragraph> SphinxTranslator.dispatch_visit calling visit_emphasis for <emphasis>Note</emphasis> SphinxTranslator.dispatch_visit calling visit_Text for Note SphinxTranslator.dispatch_departure calling depart_Text for Note SphinxTranslator.dispatch_departure calling depart_emphasis for <emphasis>Note</emphasis> SphinxTranslator.dispatch_visit calling visit_Text for : the actual list of codecs may change depening on how you have compiled the underlying C-Blosc library. SphinxTranslator.dispatch_departure calling depart_Text for : the actual list of codecs may change depening on how you have compiled the underlying C-Blosc library. SphinxTranslator.dispatch_departure calling depart_paragraph for <paragraph><emphasis>Note</emphasis>: the actual list of codecs may change depening on how you have compiled the underlying C-Blosc library.</paragraph> SphinxTranslator.dispatch_departure calling depart_section for <section ids="compressing-and-decompressing-with-blosc" names="compressing\ and\ decompressing\ with\ blosc"><title>Compressing and decompressing with <literal>blosc</literal></title><paragraph>Let’s start creating a NumPy array with 80 MB full of data:</paragraph><literal_block force="False" language="default" linenos="False" xml:space="preserve">>>> import numpy as np >>> a = np.linspace(0, 100, 1e7) >>> bytes_array = a.tostring() # get an array of bytes</literal_block><paragraph>and let’s compare Blosc operation with <literal>zlib</literal> (please note that we are using IPython for leveraging its timing capabilities):</paragraph><literal_block force="False" language="default" linenos="False" xml:space="preserve">>>> import zlib >>> %timeit zlib.compress(bytes_array) 1 loops, best of 3: 4.65 s per loop # ~ 17 MB/s >>> import blosc >>> %timeit blosc.compress(bytes_array, typesize=8) 100 loops, best of 3: 17.7 ms per loop # ~ 4.5 GB/s and 260x faster than zlib</literal_block><paragraph>but Blosc can use different codecs under the hood. Let’s try the LZ4 codec (instead of the BloscLZ which is the default):</paragraph><literal_block force="False" language="default" linenos="False" xml:space="preserve">>>> %timeit blosc.compress(bytes_array, typesize=8, cname='lz4') 100 loops, best of 3: 8.77 ms per loop # ~ 9.1 GB/s and 530x faster than zlib</literal_block><paragraph>It is important to note that this is quite more than the speed of a memcpy() in this machine:</paragraph><literal_block force="False" language="default" linenos="False" xml:space="preserve">>>> %timeit a.copy() 10 loops, best of 3: 27.2 ms per loop # ~ 2.9 GB/s</literal_block><paragraph>which means that both BloscLZ and LZ4 codecs can be faster than memcpy(), just as the Blosc slogan promises.</paragraph><paragraph>Blosc also comes with the ZLib codec too, and it actually runs faster than the naked zlib:</paragraph><literal_block force="False" language="default" linenos="False" xml:space="preserve">>>> %timeit blosc.compress(bytes_array, typesize=8, cname='zlib') 10 loops, best of 3: 139 ms per loop # ~ 580 MB/s and 33x faster than zlib</literal_block><paragraph>The reason why the internal Zlib codec in Blosc is faster than the ‘naked’ one is 1) that Blosc can use multithreading (using 8 threads here) and 2) that Blosc splits the data to compress in smaller blocks that are more friendly to the caches in modern CPUs.</paragraph><paragraph>Now, let’s have a look at the compression ratios:</paragraph><literal_block force="False" language="default" linenos="False" xml:space="preserve">>>> zpacked = zlib.compress(bytes_array); len(zpacked) 52994692 >>> round(len(bytes_array) / float(len(zpacked)), 3) 1.51 # zlib achieves a 1.5x compression ratio >>> blzpacked = blosc.compress(bytes_array, typesize=8, cname='blosclz'); len(blzpacked) 6986533 >>> round(len(bytes_array) / float(len(blzpacked)), 3) 11.451 # BloscLZ codec reaches more than 11x compression ratio >>> lz4packed = blosc.compress(bytes_array, typesize=8, cname='lz4'); len(lz4packed) 3716015 >>> round(len(bytes_array) / float(len(lz4packed)), 3) 21.528 # LZ4 codec reaches more than 21x compression ratio</literal_block><paragraph>Here we can see how Blosc, with its different codecs, is very efficient compressing this kind of binary data. It is important to note that the codecs alone are not the only responsible for high compression ratios. See what a naked LZ4 codec can do on the same string:</paragraph><literal_block force="False" language="default" linenos="False" xml:space="preserve">>>> import lz4 >>> lz4_packed = lz4.compress(bytes_array); len(lz4_packed) 80309133 >>> round(len(bytes_array) / float(len(lz4_packed)), 3) 0.996</literal_block><paragraph>That is, the naked LZ4 codec cannot compress the array of bytes at all, whereas through Blosc LZ4 can compress quite a lot. In fact, this difference in compression also happens with ZLib:</paragraph><literal_block force="False" language="default" linenos="False" xml:space="preserve">>>> zlibpacked = blosc.compress(bytes_array, typesize=8, cname='zlib'); len(zlibpacked) 875274 >>> round(len(zpacked) / float(len(zlibpacked)), 3) 60.546 # ZLib codec reaches 60x more compression than naked ZLib</literal_block><paragraph>Here it is a plot with the different compression ratios achieved:</paragraph><reference internal="True" refuri="../_images/cratio-blosc-codecs.png"><image candidates="{'*': 'cratio-blosc-codecs.png'}" height="600" scale="75" uri="../_images/cratio-blosc-codecs.png" width="800"/></reference><paragraph>The explanation for this apparently shocking result is that Blosc uses filters (<literal>SHUFFLE</literal> and <literal>BITSHUFFLE</literal> currently, but the list can increase more in the future) prior to the compression stage and these allow in general for better compression ratios when using binary data.</paragraph><paragraph>How about decompression?:</paragraph><literal_block force="False" language="default" linenos="False" xml:space="preserve">>>> %timeit zlib.decompress(zpacked) 1 loops, best of 3: 275 ms per loop # ~ 290 MB/s >>> %timeit blosc.decompress(blzpacked) 100 loops, best of 3: 17.3 ms per loop # ~ 4.3 GB/s and 16x faster than zlib >>> %timeit blosc.decompress(lz4packed) 10 loops, best of 3: 41.9 ms per loop # ~ 1.9 GB/s and 6.5x faster than zlib >>> %timeit blosc.decompress(zlibpacked) 10 loops, best of 3: 40.7 ms per loop # ~ 2.0 GB/S and 6.8x faster than zlib</literal_block><paragraph>Here we see a couple of things:</paragraph><bullet_list bullet="*"><list_item><paragraph>All the internal codecs in Blosc are way faster than naked ZLib</paragraph></list_item><list_item><paragraph>The fastest codec for decompressing here is BloscLZ (remember that LZ4 was the fastest for compression).</paragraph></list_item></bullet_list><paragraph>The next plot summarizes the speed benchmarks above:</paragraph><reference internal="True" refuri="../_images/speed-blosc-codecs.png"><image candidates="{'*': 'speed-blosc-codecs.png'}" height="600" scale="75" uri="../_images/speed-blosc-codecs.png" width="800"/></reference><paragraph>These results should reinforce the idea that there is not a single codec that wins in all areas (compression ratio, compression speed and decompression speed) and each has its pro’s and con’s. It is up to the user to choose whatever fits better to him (hint: there is no replacement for experimentation).</paragraph><paragraph>Finally, here it is the way to discover all the internal codecs inside your Blosc package:</paragraph><literal_block force="False" language="default" linenos="False" xml:space="preserve">>>> blosc.cnames ['blosclz', 'lz4', 'lz4hc', 'snappy', 'zlib', 'zstd']</literal_block><paragraph><emphasis>Note</emphasis>: the actual list of codecs may change depening on how you have compiled the underlying C-Blosc library.</paragraph></section> SphinxTranslator.dispatch_visit calling visit_section for <section ids="using-different-filters" names="using\ different\ filters"><title>Using different filters</title><paragraph>In the same way that you can use different codecs inside Blosc, you can use different filters too (currently <literal>SHUFFLE</literal> and <literal>BITSHUFLE</literal>). These allow the integrated compressors to compress more efficiently or not, depending on your datasets.</paragraph><paragraph>Here it is an example using the <literal>SHUFFLE</literal> filter:</paragraph><literal_block force="False" language="default" linenos="False" xml:space="preserve">>>> %time bpacked = blosc.compress(bytes_array, shuffle=blosc.SHUFFLE) CPU times: user 112 ms, sys: 4 ms, total: 116 ms Wall time: 29.9 ms >>> len(bpacked) 6986533</literal_block><paragraph>Here there is another example using <literal>BITSHUFFLE</literal>:</paragraph><literal_block force="False" language="default" linenos="False" xml:space="preserve">>>> %time bpacked = blosc.compress(bytes_array, shuffle=blosc.BITSHUFFLE) CPU times: user 120 ms, sys: 8 ms, total: 128 ms Wall time: 32.9 ms >>> len(bpacked) 5942257 # ~ 1.2x smaller than blosclz/shuffle</literal_block><paragraph>You can also deactivate filters completely with <literal>NOSHUFFLE</literal>:</paragraph><literal_block force="False" language="default" linenos="False" xml:space="preserve">>>> %time bpacked = blosc.compress(bytes_array, shuffle=blosc.NOSHUFFLE) CPU times: user 416 ms, sys: 8 ms, total: 424 ms Wall time: 107 ms >>> len(bpacked) 74323591 # just a 7% of compression wrt the original buffer</literal_block><paragraph>So you have quite a bit of flexibility on choosing different codecs and filters inside Blosc. Again, depending on the dataset you have and the requeriments on performance, you may want to experiment a bit before sticking with your preferred one.</paragraph></section> SphinxTranslator.dispatch_visit calling visit_title for <title>Using different filters</title> SphinxTranslator.dispatch_visit calling visit_Text for Using different filters SphinxTranslator.dispatch_departure calling depart_Text for Using different filters SphinxTranslator.dispatch_departure calling depart_title for <title>Using different filters</title> SphinxTranslator.dispatch_visit calling visit_paragraph for <paragraph>In the same way that you can use different codecs inside Blosc, you can use different filters too (currently <literal>SHUFFLE</literal> and <literal>BITSHUFLE</literal>). These allow the integrated compressors to compress more efficiently or not, depending on your datasets.</paragraph> SphinxTranslator.dispatch_visit calling visit_Text for In the same way that you can use different codecs inside Blosc, you can use different filters too (currently SphinxTranslator.dispatch_departure calling depart_Text for In the same way that you can use different codecs inside Blosc, you can use different filters too (currently SphinxTranslator.dispatch_visit calling visit_literal for <literal>SHUFFLE</literal> SphinxTranslator.dispatch_visit calling visit_Text for SHUFFLE SphinxTranslator.dispatch_departure calling depart_Text for SHUFFLE SphinxTranslator.dispatch_departure calling depart_literal for <literal>SHUFFLE</literal> SphinxTranslator.dispatch_visit calling visit_Text for and SphinxTranslator.dispatch_departure calling depart_Text for and SphinxTranslator.dispatch_visit calling visit_literal for <literal>BITSHUFLE</literal> SphinxTranslator.dispatch_visit calling visit_Text for BITSHUFLE SphinxTranslator.dispatch_departure calling depart_Text for BITSHUFLE SphinxTranslator.dispatch_departure calling depart_literal for <literal>BITSHUFLE</literal> SphinxTranslator.dispatch_visit calling visit_Text for ). These allow the integrated compressors to compress more efficiently or not, depending on your datasets. SphinxTranslator.dispatch_departure calling depart_Text for ). These allow the integrated compressors to compress more efficiently or not, depending on your datasets. SphinxTranslator.dispatch_departure calling depart_paragraph for <paragraph>In the same way that you can use different codecs inside Blosc, you can use different filters too (currently <literal>SHUFFLE</literal> and <literal>BITSHUFLE</literal>). These allow the integrated compressors to compress more efficiently or not, depending on your datasets.</paragraph> SphinxTranslator.dispatch_visit calling visit_paragraph for <paragraph>Here it is an example using the <literal>SHUFFLE</literal> filter:</paragraph> SphinxTranslator.dispatch_visit calling visit_Text for Here it is an example using the SphinxTranslator.dispatch_departure calling depart_Text for Here it is an example using the SphinxTranslator.dispatch_visit calling visit_literal for <literal>SHUFFLE</literal> SphinxTranslator.dispatch_visit calling visit_Text for SHUFFLE SphinxTranslator.dispatch_departure calling depart_Text for SHUFFLE SphinxTranslator.dispatch_departure calling depart_literal for <literal>SHUFFLE</literal> SphinxTranslator.dispatch_visit calling visit_Text for filter: SphinxTranslator.dispatch_departure calling depart_Text for filter: SphinxTranslator.dispatch_departure calling depart_paragraph for <paragraph>Here it is an example using the <literal>SHUFFLE</literal> filter:</paragraph> SphinxTranslator.dispatch_visit calling visit_literal_block for <literal_block force="False" language="default" linenos="False" xml:space="preserve">>>> %time bpacked = blosc.compress(bytes_array, shuffle=blosc.SHUFFLE) CPU times: user 112 ms, sys: 4 ms, total: 116 ms Wall time: 29.9 ms >>> len(bpacked) 6986533</literal_block> SphinxTranslator.dispatch_visit calling visit_paragraph for <paragraph>Here there is another example using <literal>BITSHUFFLE</literal>:</paragraph> SphinxTranslator.dispatch_visit calling visit_Text for Here there is another example using SphinxTranslator.dispatch_departure calling depart_Text for Here there is another example using SphinxTranslator.dispatch_visit calling visit_literal for <literal>BITSHUFFLE</literal> SphinxTranslator.dispatch_visit calling visit_Text for BITSHUFFLE SphinxTranslator.dispatch_departure calling depart_Text for BITSHUFFLE SphinxTranslator.dispatch_departure calling depart_literal for <literal>BITSHUFFLE</literal> SphinxTranslator.dispatch_visit calling visit_Text for : SphinxTranslator.dispatch_departure calling depart_Text for : SphinxTranslator.dispatch_departure calling depart_paragraph for <paragraph>Here there is another example using <literal>BITSHUFFLE</literal>:</paragraph> SphinxTranslator.dispatch_visit calling visit_literal_block for <literal_block force="False" language="default" linenos="False" xml:space="preserve">>>> %time bpacked = blosc.compress(bytes_array, shuffle=blosc.BITSHUFFLE) CPU times: user 120 ms, sys: 8 ms, total: 128 ms Wall time: 32.9 ms >>> len(bpacked) 5942257 # ~ 1.2x smaller than blosclz/shuffle</literal_block> SphinxTranslator.dispatch_visit calling visit_paragraph for <paragraph>You can also deactivate filters completely with <literal>NOSHUFFLE</literal>:</paragraph> SphinxTranslator.dispatch_visit calling visit_Text for You can also deactivate filters completely with SphinxTranslator.dispatch_departure calling depart_Text for You can also deactivate filters completely with SphinxTranslator.dispatch_visit calling visit_literal for <literal>NOSHUFFLE</literal> SphinxTranslator.dispatch_visit calling visit_Text for NOSHUFFLE SphinxTranslator.dispatch_departure calling depart_Text for NOSHUFFLE SphinxTranslator.dispatch_departure calling depart_literal for <literal>NOSHUFFLE</literal> SphinxTranslator.dispatch_visit calling visit_Text for : SphinxTranslator.dispatch_departure calling depart_Text for : SphinxTranslator.dispatch_departure calling depart_paragraph for <paragraph>You can also deactivate filters completely with <literal>NOSHUFFLE</literal>:</paragraph> SphinxTranslator.dispatch_visit calling visit_literal_block for <literal_block force="False" language="default" linenos="False" xml:space="preserve">>>> %time bpacked = blosc.compress(bytes_array, shuffle=blosc.NOSHUFFLE) CPU times: user 416 ms, sys: 8 ms, total: 424 ms Wall time: 107 ms >>> len(bpacked) 74323591 # just a 7% of compression wrt the original buffer</literal_block> SphinxTranslator.dispatch_visit calling visit_paragraph for <paragraph>So you have quite a bit of flexibility on choosing different codecs and filters inside Blosc. Again, depending on the dataset you have and the requeriments on performance, you may want to experiment a bit before sticking with your preferred one.</paragraph> SphinxTranslator.dispatch_visit calling visit_Text for So you have quite a bit of flexibility on choosing different codecs and filters inside Blosc. Again, depending on the dataset you have and the requeriments on performance, you may want to experiment a bit before sticking with your preferred one. SphinxTranslator.dispatch_departure calling depart_Text for So you have quite a bit of flexibility on choosing different codecs and filters inside Blosc. Again, depending on the dataset you have and the requeriments on performance, you may want to experiment a bit before sticking with your preferred one. SphinxTranslator.dispatch_departure calling depart_paragraph for <paragraph>So you have quite a bit of flexibility on choosing different codecs and filters inside Blosc. Again, depending on the dataset you have and the requeriments on performance, you may want to experiment a bit before sticking with your preferred one.</paragraph> SphinxTranslator.dispatch_departure calling depart_section for <section ids="using-different-filters" names="using\ different\ filters"><title>Using different filters</title><paragraph>In the same way that you can use different codecs inside Blosc, you can use different filters too (currently <literal>SHUFFLE</literal> and <literal>BITSHUFLE</literal>). These allow the integrated compressors to compress more efficiently or not, depending on your datasets.</paragraph><paragraph>Here it is an example using the <literal>SHUFFLE</literal> filter:</paragraph><literal_block force="False" language="default" linenos="False" xml:space="preserve">>>> %time bpacked = blosc.compress(bytes_array, shuffle=blosc.SHUFFLE) CPU times: user 112 ms, sys: 4 ms, total: 116 ms Wall time: 29.9 ms >>> len(bpacked) 6986533</literal_block><paragraph>Here there is another example using <literal>BITSHUFFLE</literal>:</paragraph><literal_block force="False" language="default" linenos="False" xml:space="preserve">>>> %time bpacked = blosc.compress(bytes_array, shuffle=blosc.BITSHUFFLE) CPU times: user 120 ms, sys: 8 ms, total: 128 ms Wall time: 32.9 ms >>> len(bpacked) 5942257 # ~ 1.2x smaller than blosclz/shuffle</literal_block><paragraph>You can also deactivate filters completely with <literal>NOSHUFFLE</literal>:</paragraph><literal_block force="False" language="default" linenos="False" xml:space="preserve">>>> %time bpacked = blosc.compress(bytes_array, shuffle=blosc.NOSHUFFLE) CPU times: user 416 ms, sys: 8 ms, total: 424 ms Wall time: 107 ms >>> len(bpacked) 74323591 # just a 7% of compression wrt the original buffer</literal_block><paragraph>So you have quite a bit of flexibility on choosing different codecs and filters inside Blosc. Again, depending on the dataset you have and the requeriments on performance, you may want to experiment a bit before sticking with your preferred one.</paragraph></section> SphinxTranslator.dispatch_visit calling visit_section for <section ids="supporting-the-buffer-interface" names="supporting\ the\ buffer\ interface"><title>Supporting the buffer interface</title><paragraph>python-blosc supports compressing and decompressing from any bytes-like object that supports the buffer-interface: this includes <literal>buffer</literal>, <literal>memoryview</literal> and <literal>bytearray</literal>:</paragraph><literal_block force="False" language="default" linenos="False" xml:space="preserve">>>> input_bytes = b"abcdefghijklmnopqrstuvwxyz" >>> blosc.compress(input_bytes, typesize=1) '\x02\x01\x03\x01\x1a\x00\x00\x00\x1a\x00\x00\x00*\x00\x00\x00abcdefghijklmnopqrstuvwxyz' >>> blosc.compress(memoryview(input_bytes), typesize=1) '\x02\x01\x03\x01\x1a\x00\x00\x00\x1a\x00\x00\x00*\x00\x00\x00abcdefghijklmnopqrstuvwxyz' >>> blosc.compress(bytearray(input_bytes), typesize=1) '\x02\x01\x03\x01\x1a\x00\x00\x00\x1a\x00\x00\x00*\x00\x00\x00abcdefghijklmnopqrstuvwxyz' >>> compressed = blosc.compress(input_bytes, typesize=1) >>> blosc.decompress(compressed) 'abcdefghijklmnopqrstuvwxyz' >>> blosc.decompress(memoryview(compressed)) 'abcdefghijklmnopqrstuvwxyz' >>> blosc.decompress(bytearray(compressed)) 'abcdefghijklmnopqrstuvwxyz'</literal_block><paragraph>Note however, that there are subtle differences between Python 2.x and 3.x. For example, in Python 2.x we can compress/decompress both <literal>str</literal> and <literal>unicode</literal> types, whereas in Python 3.x we can only compress ‘binary’ data which does <emphasis>not</emphasis> include <literal>unicode</literal>.</paragraph></section> SphinxTranslator.dispatch_visit calling visit_title for <title>Supporting the buffer interface</title> SphinxTranslator.dispatch_visit calling visit_Text for Supporting the buffer interface SphinxTranslator.dispatch_departure calling depart_Text for Supporting the buffer interface SphinxTranslator.dispatch_departure calling depart_title for <title>Supporting the buffer interface</title> SphinxTranslator.dispatch_visit calling visit_paragraph for <paragraph>python-blosc supports compressing and decompressing from any bytes-like object that supports the buffer-interface: this includes <literal>buffer</literal>, <literal>memoryview</literal> and <literal>bytearray</literal>:</paragraph> SphinxTranslator.dispatch_visit calling visit_Text for python-blosc supports compressing and decompressing from any bytes-like object that supports the buffer-interface: this includes SphinxTranslator.dispatch_departure calling depart_Text for python-blosc supports compressing and decompressing from any bytes-like object that supports the buffer-interface: this includes SphinxTranslator.dispatch_visit calling visit_literal for <literal>buffer</literal> SphinxTranslator.dispatch_visit calling visit_Text for buffer SphinxTranslator.dispatch_departure calling depart_Text for buffer SphinxTranslator.dispatch_departure calling depart_literal for <literal>buffer</literal> SphinxTranslator.dispatch_visit calling visit_Text for , SphinxTranslator.dispatch_departure calling depart_Text for , SphinxTranslator.dispatch_visit calling visit_literal for <literal>memoryview</literal> SphinxTranslator.dispatch_visit calling visit_Text for memoryview SphinxTranslator.dispatch_departure calling depart_Text for memoryview SphinxTranslator.dispatch_departure calling depart_literal for <literal>memoryview</literal> SphinxTranslator.dispatch_visit calling visit_Text for and SphinxTranslator.dispatch_departure calling depart_Text for and SphinxTranslator.dispatch_visit calling visit_literal for <literal>bytearray</literal> SphinxTranslator.dispatch_visit calling visit_Text for bytearray SphinxTranslator.dispatch_departure calling depart_Text for bytearray SphinxTranslator.dispatch_departure calling depart_literal for <literal>bytearray</literal> SphinxTranslator.dispatch_visit calling visit_Text for : SphinxTranslator.dispatch_departure calling depart_Text for : SphinxTranslator.dispatch_departure calling depart_paragraph for <paragraph>python-blosc supports compressing and decompressing from any bytes-like object that supports the buffer-interface: this includes <literal>buffer</literal>, <literal>memoryview</literal> and <literal>bytearray</literal>:</paragraph> SphinxTranslator.dispatch_visit calling visit_literal_block for <literal_block force="False" language="default" linenos="False" xml:space="preserve">>>> input_bytes = b"abcdefghijklmnopqrstuvwxyz" >>> blosc.compress(input_bytes, typesize=1) '\x02\x01\x03\x01\x1a\x00\x00\x00\x1a\x00\x00\x00*\x00\x00\x00abcdefghijklmnopqrstuvwxyz' >>> blosc.compress(memoryview(input_bytes), typesize=1) '\x02\x01\x03\x01\x1a\x00\x00\x00\x1a\x00\x00\x00*\x00\x00\x00abcdefghijklmnopqrstuvwxyz' >>> blosc.compress(bytearray(input_bytes), typesize=1) '\x02\x01\x03\x01\x1a\x00\x00\x00\x1a\x00\x00\x00*\x00\x00\x00abcdefghijklmnopqrstuvwxyz' >>> compressed = blosc.compress(input_bytes, typesize=1) >>> blosc.decompress(compressed) 'abcdefghijklmnopqrstuvwxyz' >>> blosc.decompress(memoryview(compressed)) 'abcdefghijklmnopqrstuvwxyz' >>> blosc.decompress(bytearray(compressed)) 'abcdefghijklmnopqrstuvwxyz'</literal_block> SphinxTranslator.dispatch_visit calling visit_paragraph for <paragraph>Note however, that there are subtle differences between Python 2.x and 3.x. For example, in Python 2.x we can compress/decompress both <literal>str</literal> and <literal>unicode</literal> types, whereas in Python 3.x we can only compress ‘binary’ data which does <emphasis>not</emphasis> include <literal>unicode</literal>.</paragraph> SphinxTranslator.dispatch_visit calling visit_Text for Note however, that there are subtle differences between Python 2.x and 3.x. For example, in Python 2.x we can compress/decompress both SphinxTranslator.dispatch_departure calling depart_Text for Note however, that there are subtle differences between Python 2.x and 3.x. For example, in Python 2.x we can compress/decompress both SphinxTranslator.dispatch_visit calling visit_literal for <literal>str</literal> SphinxTranslator.dispatch_visit calling visit_Text for str SphinxTranslator.dispatch_departure calling depart_Text for str SphinxTranslator.dispatch_departure calling depart_literal for <literal>str</literal> SphinxTranslator.dispatch_visit calling visit_Text for and SphinxTranslator.dispatch_departure calling depart_Text for and SphinxTranslator.dispatch_visit calling visit_literal for <literal>unicode</literal> SphinxTranslator.dispatch_visit calling visit_Text for unicode SphinxTranslator.dispatch_departure calling depart_Text for unicode SphinxTranslator.dispatch_departure calling depart_literal for <literal>unicode</literal> SphinxTranslator.dispatch_visit calling visit_Text for types, whereas in Python 3.x we can only compress ‘binary’ data which does SphinxTranslator.dispatch_departure calling depart_Text for types, whereas in Python 3.x we can only compress ‘binary’ data which does SphinxTranslator.dispatch_visit calling visit_emphasis for <emphasis>not</emphasis> SphinxTranslator.dispatch_visit calling visit_Text for not SphinxTranslator.dispatch_departure calling depart_Text for not SphinxTranslator.dispatch_departure calling depart_emphasis for <emphasis>not</emphasis> SphinxTranslator.dispatch_visit calling visit_Text for include SphinxTranslator.dispatch_departure calling depart_Text for include SphinxTranslator.dispatch_visit calling visit_literal for <literal>unicode</literal> SphinxTranslator.dispatch_visit calling visit_Text for unicode SphinxTranslator.dispatch_departure calling depart_Text for unicode SphinxTranslator.dispatch_departure calling depart_literal for <literal>unicode</literal> SphinxTranslator.dispatch_visit calling visit_Text for . SphinxTranslator.dispatch_departure calling depart_Text for . SphinxTranslator.dispatch_departure calling depart_paragraph for <paragraph>Note however, that there are subtle differences between Python 2.x and 3.x. For example, in Python 2.x we can compress/decompress both <literal>str</literal> and <literal>unicode</literal> types, whereas in Python 3.x we can only compress ‘binary’ data which does <emphasis>not</emphasis> include <literal>unicode</literal>.</paragraph> SphinxTranslator.dispatch_departure calling depart_section for <section ids="supporting-the-buffer-interface" names="supporting\ the\ buffer\ interface"><title>Supporting the buffer interface</title><paragraph>python-blosc supports compressing and decompressing from any bytes-like object that supports the buffer-interface: this includes <literal>buffer</literal>, <literal>memoryview</literal> and <literal>bytearray</literal>:</paragraph><literal_block force="False" language="default" linenos="False" xml:space="preserve">>>> input_bytes = b"abcdefghijklmnopqrstuvwxyz" >>> blosc.compress(input_bytes, typesize=1) '\x02\x01\x03\x01\x1a\x00\x00\x00\x1a\x00\x00\x00*\x00\x00\x00abcdefghijklmnopqrstuvwxyz' >>> blosc.compress(memoryview(input_bytes), typesize=1) '\x02\x01\x03\x01\x1a\x00\x00\x00\x1a\x00\x00\x00*\x00\x00\x00abcdefghijklmnopqrstuvwxyz' >>> blosc.compress(bytearray(input_bytes), typesize=1) '\x02\x01\x03\x01\x1a\x00\x00\x00\x1a\x00\x00\x00*\x00\x00\x00abcdefghijklmnopqrstuvwxyz' >>> compressed = blosc.compress(input_bytes, typesize=1) >>> blosc.decompress(compressed) 'abcdefghijklmnopqrstuvwxyz' >>> blosc.decompress(memoryview(compressed)) 'abcdefghijklmnopqrstuvwxyz' >>> blosc.decompress(bytearray(compressed)) 'abcdefghijklmnopqrstuvwxyz'</literal_block><paragraph>Note however, that there are subtle differences between Python 2.x and 3.x. For example, in Python 2.x we can compress/decompress both <literal>str</literal> and <literal>unicode</literal> types, whereas in Python 3.x we can only compress ‘binary’ data which does <emphasis>not</emphasis> include <literal>unicode</literal>.</paragraph></section> SphinxTranslator.dispatch_visit calling visit_section for <section ids="packaging-numpy-arrays" names="packaging\ numpy\ arrays"><title>Packaging NumPy arrays</title><paragraph>Want to use <literal>blosc</literal> to compress and decompress NumPy objects without having to worry about passing the typesize for optimal compression, or having to create the final container for decompression? <literal>blosc</literal> comes with the <literal>pack_array</literal> and <literal>unpack_array</literal> to perform this in a handy way:</paragraph><literal_block force="False" language="default" linenos="False" xml:space="preserve">>>> a = np.linspace(0, 100, 1e7) >>> packed = blosc.pack_array(a) >>> %timeit blosc.pack_array(a) 10 loops, best of 3: 104 ms per loop # ~ 770 MB/s >>> %timeit blosc.unpack_array(packed) 10 loops, best of 3: 76.3 ms per loop # ~ 1 GB/s</literal_block><paragraph>Although this is a convenient way for compressing/decompressing NumPy arrays, this method uses pickle/unpickle behind the scenes. This step implies additional copies, which takes both memory and time.</paragraph></section> SphinxTranslator.dispatch_visit calling visit_title for <title>Packaging NumPy arrays</title> SphinxTranslator.dispatch_visit calling visit_Text for Packaging NumPy arrays SphinxTranslator.dispatch_departure calling depart_Text for Packaging NumPy arrays SphinxTranslator.dispatch_departure calling depart_title for <title>Packaging NumPy arrays</title> SphinxTranslator.dispatch_visit calling visit_paragraph for <paragraph>Want to use <literal>blosc</literal> to compress and decompress NumPy objects without having to worry about passing the typesize for optimal compression, or having to create the final container for decompression? <literal>blosc</literal> comes with the <literal>pack_array</literal> and <literal>unpack_array</literal> to perform this in a handy way:</paragraph> SphinxTranslator.dispatch_visit calling visit_Text for Want to use SphinxTranslator.dispatch_departure calling depart_Text for Want to use SphinxTranslator.dispatch_visit calling visit_literal for <literal>blosc</literal> SphinxTranslator.dispatch_visit calling visit_Text for blosc SphinxTranslator.dispatch_departure calling depart_Text for blosc SphinxTranslator.dispatch_departure calling depart_literal for <literal>blosc</literal> SphinxTranslator.dispatch_visit calling visit_Text for to compress and decompress NumPy objects without having to worry about passing the typesize for optimal compression, or having to create the final container for decompression? SphinxTranslator.dispatch_departure calling depart_Text for to compress and decompress NumPy objects without having to worry about passing the typesize for optimal compression, or having to create the final container for decompression? SphinxTranslator.dispatch_visit calling visit_literal for <literal>blosc</literal> SphinxTranslator.dispatch_visit calling visit_Text for blosc SphinxTranslator.dispatch_departure calling depart_Text for blosc SphinxTranslator.dispatch_departure calling depart_literal for <literal>blosc</literal> SphinxTranslator.dispatch_visit calling visit_Text for comes with the SphinxTranslator.dispatch_departure calling depart_Text for comes with the SphinxTranslator.dispatch_visit calling visit_literal for <literal>pack_array</literal> SphinxTranslator.dispatch_visit calling visit_Text for pack_array SphinxTranslator.dispatch_departure calling depart_Text for pack_array SphinxTranslator.dispatch_departure calling depart_literal for <literal>pack_array</literal> SphinxTranslator.dispatch_visit calling visit_Text for and SphinxTranslator.dispatch_departure calling depart_Text for and SphinxTranslator.dispatch_visit calling visit_literal for <literal>unpack_array</literal> SphinxTranslator.dispatch_visit calling visit_Text for unpack_array SphinxTranslator.dispatch_departure calling depart_Text for unpack_array SphinxTranslator.dispatch_departure calling depart_literal for <literal>unpack_array</literal> SphinxTranslator.dispatch_visit calling visit_Text for to perform this in a handy way: SphinxTranslator.dispatch_departure calling depart_Text for to perform this in a handy way: SphinxTranslator.dispatch_departure calling depart_paragraph for <paragraph>Want to use <literal>blosc</literal> to compress and decompress NumPy objects without having to worry about passing the typesize for optimal compression, or having to create the final container for decompression? <literal>blosc</literal> comes with the <literal>pack_array</literal> and <literal>unpack_array</literal> to perform this in a handy way:</paragraph> SphinxTranslator.dispatch_visit calling visit_literal_block for <literal_block force="False" language="default" linenos="False" xml:space="preserve">>>> a = np.linspace(0, 100, 1e7) >>> packed = blosc.pack_array(a) >>> %timeit blosc.pack_array(a) 10 loops, best of 3: 104 ms per loop # ~ 770 MB/s >>> %timeit blosc.unpack_array(packed) 10 loops, best of 3: 76.3 ms per loop # ~ 1 GB/s</literal_block> SphinxTranslator.dispatch_visit calling visit_paragraph for <paragraph>Although this is a convenient way for compressing/decompressing NumPy arrays, this method uses pickle/unpickle behind the scenes. This step implies additional copies, which takes both memory and time.</paragraph> SphinxTranslator.dispatch_visit calling visit_Text for Although this is a convenient way for compressing/decompressing NumPy arrays, this method uses pickle/unpickle behind the scenes. This step implies additional copies, which takes both memory and time. SphinxTranslator.dispatch_departure calling depart_Text for Although this is a convenient way for compressing/decompressing NumPy arrays, this method uses pickle/unpickle behind the scenes. This step implies additional copies, which takes both memory and time. SphinxTranslator.dispatch_departure calling depart_paragraph for <paragraph>Although this is a convenient way for compressing/decompressing NumPy arrays, this method uses pickle/unpickle behind the scenes. This step implies additional copies, which takes both memory and time.</paragraph> SphinxTranslator.dispatch_departure calling depart_section for <section ids="packaging-numpy-arrays" names="packaging\ numpy\ arrays"><title>Packaging NumPy arrays</title><paragraph>Want to use <literal>blosc</literal> to compress and decompress NumPy objects without having to worry about passing the typesize for optimal compression, or having to create the final container for decompression? <literal>blosc</literal> comes with the <literal>pack_array</literal> and <literal>unpack_array</literal> to perform this in a handy way:</paragraph><literal_block force="False" language="default" linenos="False" xml:space="preserve">>>> a = np.linspace(0, 100, 1e7) >>> packed = blosc.pack_array(a) >>> %timeit blosc.pack_array(a) 10 loops, best of 3: 104 ms per loop # ~ 770 MB/s >>> %timeit blosc.unpack_array(packed) 10 loops, best of 3: 76.3 ms per loop # ~ 1 GB/s</literal_block><paragraph>Although this is a convenient way for compressing/decompressing NumPy arrays, this method uses pickle/unpickle behind the scenes. This step implies additional copies, which takes both memory and time.</paragraph></section> SphinxTranslator.dispatch_visit calling visit_section for <section ids="compressing-from-a-data-pointer" names="compressing\ from\ a\ data\ pointer"><title>Compressing from a data pointer</title><paragraph>For avoiding the data copy problem in the previous section, <literal>blosc</literal> comes with a couple of lower-level functions: <literal>compress_ptr</literal> and <literal>decompress_ptr</literal>. Here are they in action:</paragraph><literal_block force="False" language="default" linenos="False" xml:space="preserve">>>> c = blosc.compress_ptr(a.__array_interface__['data'][0], a.size, a.dtype.itemsize, 9, True) >>> %timeit blosc.compress_ptr(a.__array_interface__['data'][0], a.size, a.dtype.itemsize, 9, True) 10 loops, best of 3: 17.8 ms per loop # ~ 4.5 GB/s >>> a2 = np.empty(a.size, dtype=a.dtype) >>> %timeit blosc.decompress_ptr(c, a2.__array_interface__['data'][0]) 100 loops, best of 3: 11 ms per loop # ~ 7.3 GB/s >>> (a == a2).all() True</literal_block><paragraph>As you see, these are really low level functions because you should pass actual pointers where the data is, as well as the size and itemsize (for compression). Needless to say, it is very easy to cause a segfault by passing incorrect parameters to the functions (wrong pointer or wrong size).</paragraph><paragraph>On the other hand, and contrarily to the <literal>pack_array</literal> / <literal>unpack_array</literal> method, the <literal>compress_ptr</literal> / <literal>decompress_ptr</literal> functions do not need to make internal copies of the data buffers, so they are extremely fast (as much as the C-Blosc library can be), but you have to provide a container when doing the de-serialization.</paragraph><paragraph><literal>blosc</literal> has a maximum <literal>blocksize</literal> of 2**31 bytes = 2 GB. Larger <literal>numpy</literal> arrays must be chunked by slicing, for example as:</paragraph><literal_block force="False" language="default" linenos="False" xml:space="preserve">>>> c = b'' >>> for index in np.arange( a.shape[0] ): c += blosc.compress_ptr(a[index,...].__array_interface__['data'][0], a.size, a.dtype.itemsize, 9, True)</literal_block></section> SphinxTranslator.dispatch_visit calling visit_title for <title>Compressing from a data pointer</title> SphinxTranslator.dispatch_visit calling visit_Text for Compressing from a data pointer SphinxTranslator.dispatch_departure calling depart_Text for Compressing from a data pointer SphinxTranslator.dispatch_departure calling depart_title for <title>Compressing from a data pointer</title> SphinxTranslator.dispatch_visit calling visit_paragraph for <paragraph>For avoiding the data copy problem in the previous section, <literal>blosc</literal> comes with a couple of lower-level functions: <literal>compress_ptr</literal> and <literal>decompress_ptr</literal>. Here are they in action:</paragraph> SphinxTranslator.dispatch_visit calling visit_Text for For avoiding the data copy problem in the previous section, SphinxTranslator.dispatch_departure calling depart_Text for For avoiding the data copy problem in the previous section, SphinxTranslator.dispatch_visit calling visit_literal for <literal>blosc</literal> SphinxTranslator.dispatch_visit calling visit_Text for blosc SphinxTranslator.dispatch_departure calling depart_Text for blosc SphinxTranslator.dispatch_departure calling depart_literal for <literal>blosc</literal> SphinxTranslator.dispatch_visit calling visit_Text for comes with a couple of lower-level functions: SphinxTranslator.dispatch_departure calling depart_Text for comes with a couple of lower-level functions: SphinxTranslator.dispatch_visit calling visit_literal for <literal>compress_ptr</literal> SphinxTranslator.dispatch_visit calling visit_Text for compress_ptr SphinxTranslator.dispatch_departure calling depart_Text for compress_ptr SphinxTranslator.dispatch_departure calling depart_literal for <literal>compress_ptr</literal> SphinxTranslator.dispatch_visit calling visit_Text for and SphinxTranslator.dispatch_departure calling depart_Text for and SphinxTranslator.dispatch_visit calling visit_literal for <literal>decompress_ptr</literal> SphinxTranslator.dispatch_visit calling visit_Text for decompress_ptr SphinxTranslator.dispatch_departure calling depart_Text for decompress_ptr SphinxTranslator.dispatch_departure calling depart_literal for <literal>decompress_ptr</literal> SphinxTranslator.dispatch_visit calling visit_Text for . Here are they in action: SphinxTranslator.dispatch_departure calling depart_Text for . Here are they in action: SphinxTranslator.dispatch_departure calling depart_paragraph for <paragraph>For avoiding the data copy problem in the previous section, <literal>blosc</literal> comes with a couple of lower-level functions: <literal>compress_ptr</literal> and <literal>decompress_ptr</literal>. Here are they in action:</paragraph> SphinxTranslator.dispatch_visit calling visit_literal_block for <literal_block force="False" language="default" linenos="False" xml:space="preserve">>>> c = blosc.compress_ptr(a.__array_interface__['data'][0], a.size, a.dtype.itemsize, 9, True) >>> %timeit blosc.compress_ptr(a.__array_interface__['data'][0], a.size, a.dtype.itemsize, 9, True) 10 loops, best of 3: 17.8 ms per loop # ~ 4.5 GB/s >>> a2 = np.empty(a.size, dtype=a.dtype) >>> %timeit blosc.decompress_ptr(c, a2.__array_interface__['data'][0]) 100 loops, best of 3: 11 ms per loop # ~ 7.3 GB/s >>> (a == a2).all() True</literal_block> SphinxTranslator.dispatch_visit calling visit_paragraph for <paragraph>As you see, these are really low level functions because you should pass actual pointers where the data is, as well as the size and itemsize (for compression). Needless to say, it is very easy to cause a segfault by passing incorrect parameters to the functions (wrong pointer or wrong size).</paragraph> SphinxTranslator.dispatch_visit calling visit_Text for As you see, these are really low level functions because you should pass actual pointers where the data is, as well as the size and itemsize (for compression). Needless to say, it is very easy to cause a segfault by passing incorrect parameters to the functions (wrong pointer or wrong size). SphinxTranslator.dispatch_departure calling depart_Text for As you see, these are really low level functions because you should pass actual pointers where the data is, as well as the size and itemsize (for compression). Needless to say, it is very easy to cause a segfault by passing incorrect parameters to the functions (wrong pointer or wrong size). SphinxTranslator.dispatch_departure calling depart_paragraph for <paragraph>As you see, these are really low level functions because you should pass actual pointers where the data is, as well as the size and itemsize (for compression). Needless to say, it is very easy to cause a segfault by passing incorrect parameters to the functions (wrong pointer or wrong size).</paragraph> SphinxTranslator.dispatch_visit calling visit_paragraph for <paragraph>On the other hand, and contrarily to the <literal>pack_array</literal> / <literal>unpack_array</literal> method, the <literal>compress_ptr</literal> / <literal>decompress_ptr</literal> functions do not need to make internal copies of the data buffers, so they are extremely fast (as much as the C-Blosc library can be), but you have to provide a container when doing the de-serialization.</paragraph> SphinxTranslator.dispatch_visit calling visit_Text for On the other hand, and contrarily to the SphinxTranslator.dispatch_departure calling depart_Text for On the other hand, and contrarily to the SphinxTranslator.dispatch_visit calling visit_literal for <literal>pack_array</literal> SphinxTranslator.dispatch_visit calling visit_Text for pack_array SphinxTranslator.dispatch_departure calling depart_Text for pack_array SphinxTranslator.dispatch_departure calling depart_literal for <literal>pack_array</literal> SphinxTranslator.dispatch_visit calling visit_Text for / SphinxTranslator.dispatch_departure calling depart_Text for / SphinxTranslator.dispatch_visit calling visit_literal for <literal>unpack_array</literal> SphinxTranslator.dispatch_visit calling visit_Text for unpack_array SphinxTranslator.dispatch_departure calling depart_Text for unpack_array SphinxTranslator.dispatch_departure calling depart_literal for <literal>unpack_array</literal> SphinxTranslator.dispatch_visit calling visit_Text for method, the SphinxTranslator.dispatch_departure calling depart_Text for method, the SphinxTranslator.dispatch_visit calling visit_literal for <literal>compress_ptr</literal> SphinxTranslator.dispatch_visit calling visit_Text for compress_ptr SphinxTranslator.dispatch_departure calling depart_Text for compress_ptr SphinxTranslator.dispatch_departure calling depart_literal for <literal>compress_ptr</literal> SphinxTranslator.dispatch_visit calling visit_Text for / SphinxTranslator.dispatch_departure calling depart_Text for / SphinxTranslator.dispatch_visit calling visit_literal for <literal>decompress_ptr</literal> SphinxTranslator.dispatch_visit calling visit_Text for decompress_ptr SphinxTranslator.dispatch_departure calling depart_Text for decompress_ptr SphinxTranslator.dispatch_departure calling depart_literal for <literal>decompress_ptr</literal> SphinxTranslator.dispatch_visit calling visit_Text for functions do not need to make internal copies of the data buffers, so they are extremely fast (as much as the C-Blosc library can be), but you have to provide a container when doing the de-serialization. SphinxTranslator.dispatch_departure calling depart_Text for functions do not need to make internal copies of the data buffers, so they are extremely fast (as much as the C-Blosc library can be), but you have to provide a container when doing the de-serialization. SphinxTranslator.dispatch_departure calling depart_paragraph for <paragraph>On the other hand, and contrarily to the <literal>pack_array</literal> / <literal>unpack_array</literal> method, the <literal>compress_ptr</literal> / <literal>decompress_ptr</literal> functions do not need to make internal copies of the data buffers, so they are extremely fast (as much as the C-Blosc library can be), but you have to provide a container when doing the de-serialization.</paragraph> SphinxTranslator.dispatch_visit calling visit_paragraph for <paragraph><literal>blosc</literal> has a maximum <literal>blocksize</literal> of 2**31 bytes = 2 GB. Larger <literal>numpy</literal> arrays must be chunked by slicing, for example as:</paragraph> SphinxTranslator.dispatch_visit calling visit_literal for <literal>blosc</literal> SphinxTranslator.dispatch_visit calling visit_Text for blosc SphinxTranslator.dispatch_departure calling depart_Text for blosc SphinxTranslator.dispatch_departure calling depart_literal for <literal>blosc</literal> SphinxTranslator.dispatch_visit calling visit_Text for has a maximum SphinxTranslator.dispatch_departure calling depart_Text for has a maximum SphinxTranslator.dispatch_visit calling visit_literal for <literal>blocksize</literal> SphinxTranslator.dispatch_visit calling visit_Text for blocksize SphinxTranslator.dispatch_departure calling depart_Text for blocksize SphinxTranslator.dispatch_departure calling depart_literal for <literal>blocksize</literal> SphinxTranslator.dispatch_visit calling visit_Text for of 2**31 bytes = 2 GB. Larger SphinxTranslator.dispatch_departure calling depart_Text for of 2**31 bytes = 2 GB. Larger SphinxTranslator.dispatch_visit calling visit_literal for <literal>numpy</literal> SphinxTranslator.dispatch_visit calling visit_Text for numpy SphinxTranslator.dispatch_departure calling depart_Text for numpy SphinxTranslator.dispatch_departure calling depart_literal for <literal>numpy</literal> SphinxTranslator.dispatch_visit calling visit_Text for arrays must be chunked by slicing, for example as: SphinxTranslator.dispatch_departure calling depart_Text for arrays must be chunked by slicing, for example as: SphinxTranslator.dispatch_departure calling depart_paragraph for <paragraph><literal>blosc</literal> has a maximum <literal>blocksize</literal> of 2**31 bytes = 2 GB. Larger <literal>numpy</literal> arrays must be chunked by slicing, for example as:</paragraph> SphinxTranslator.dispatch_visit calling visit_literal_block for <literal_block force="False" language="default" linenos="False" xml:space="preserve">>>> c = b'' >>> for index in np.arange( a.shape[0] ): c += blosc.compress_ptr(a[index,...].__array_interface__['data'][0], a.size, a.dtype.itemsize, 9, True)</literal_block> SphinxTranslator.dispatch_departure calling depart_section for <section ids="compressing-from-a-data-pointer" names="compressing\ from\ a\ data\ pointer"><title>Compressing from a data pointer</title><paragraph>For avoiding the data copy problem in the previous section, <literal>blosc</literal> comes with a couple of lower-level functions: <literal>compress_ptr</literal> and <literal>decompress_ptr</literal>. Here are they in action:</paragraph><literal_block force="False" language="default" linenos="False" xml:space="preserve">>>> c = blosc.compress_ptr(a.__array_interface__['data'][0], a.size, a.dtype.itemsize, 9, True) >>> %timeit blosc.compress_ptr(a.__array_interface__['data'][0], a.size, a.dtype.itemsize, 9, True) 10 loops, best of 3: 17.8 ms per loop # ~ 4.5 GB/s >>> a2 = np.empty(a.size, dtype=a.dtype) >>> %timeit blosc.decompress_ptr(c, a2.__array_interface__['data'][0]) 100 loops, best of 3: 11 ms per loop # ~ 7.3 GB/s >>> (a == a2).all() True</literal_block><paragraph>As you see, these are really low level functions because you should pass actual pointers where the data is, as well as the size and itemsize (for compression). Needless to say, it is very easy to cause a segfault by passing incorrect parameters to the functions (wrong pointer or wrong size).</paragraph><paragraph>On the other hand, and contrarily to the <literal>pack_array</literal> / <literal>unpack_array</literal> method, the <literal>compress_ptr</literal> / <literal>decompress_ptr</literal> functions do not need to make internal copies of the data buffers, so they are extremely fast (as much as the C-Blosc library can be), but you have to provide a container when doing the de-serialization.</paragraph><paragraph><literal>blosc</literal> has a maximum <literal>blocksize</literal> of 2**31 bytes = 2 GB. Larger <literal>numpy</literal> arrays must be chunked by slicing, for example as:</paragraph><literal_block force="False" language="default" linenos="False" xml:space="preserve">>>> c = b'' >>> for index in np.arange( a.shape[0] ): c += blosc.compress_ptr(a[index,...].__array_interface__['data'][0], a.size, a.dtype.itemsize, 9, True)</literal_block></section> SphinxTranslator.dispatch_visit calling visit_section for <section ids="fine-tuning-compression-parameters" names="fine-tuning\ compression\ parameters"><title>Fine-tuning compression parameters</title><paragraph>There are a number of parameters that affect the de/compression bandwidth achieved by <literal>blosc</literal>:</paragraph><bullet_list bullet="*"><list_item><paragraph>The information content of the underlying data, and <literal>chunksize</literal>: the size of the data in each call to <literal>compress</literal> and analogous functions. ‘blosc’ does not manage chunksize itself, but an example implementation can be seen in the <literal>bloscpack</literal> module.</paragraph></list_item><list_item><paragraph><literal>n_threads</literal>: The number of threads to spawn inside <literal>c-blosc</literal>. <literal>n_threads</literal> may be changed by calling <literal>blosc.set_nthreads(16)</literal> for example. <literal>blosc</literal> performance generally scales sub-linearly with the number of threads with a coefficient roughly around 0.5-0.67. I.e. the expected performance compared to a single thread is 1.0 / (0.6*n_threads). For systems with hyper-threading the optimum number of threads is usually a small over-subscription of the number of _physical_ (not virtual) cores.</paragraph></list_item><list_item><paragraph><literal>blocksize</literal>: is the size of each continuously memory-element that is compressed, in bytes. Normally <literal>blosc</literal> attempts to automatically guess the size of each compressed block of data, but the user can set it manually by calling <literal>blosc.set_blocksize( size_in_bytes )</literal> for hand optimized situations. Often the L2 cache size (e.g. 256kB for an Intel Haswell) is a good starting point for optimization.</paragraph></list_item><list_item><paragraph><literal>shuffle</literal>: as discussed above the <literal>shuffle</literal> mode can substantially improve compression ratios when the</paragraph></list_item><list_item><paragraph><literal>clevel</literal>: the compression level called for the algorithm. Called as an argument to <literal>compress</literal> and similar functions.</paragraph></list_item><list_item><paragraph><literal>cname</literal>: the compressor codec itself. Each codec has its own characteristics that also vary depending on the underlying data. For example, ‘lz4’ tends to prefer smaller <literal>blocksize</literal> and does not slow significantly with <literal>clevel</literal>. In comparison <literal>zlib</literal> and <literal>zstd</literal> both slow substantially with increasing <literal>clevel</literal>, with an inflection point around <literal>clevel`=4-5 for 'zlib' and `clevel`=2-4 for 'zstd'. Called as an argument to `compress</literal> and similar functions.</paragraph></list_item><list_item><paragraph><literal>releasegil</literal>: optionally the Python Global Interpreter Lock (GIL) can be turned off during <literal>c-blosc</literal> operations by calling <literal>blosc.set_releasegil(True)</literal>. The default is off as there is a small overhead in releasing the GIL which can be significant for a small <literal>blocksize</literal>. GIL release is intended to be used in situations where other bounds (such as file or network I/O) are the rate-limiting ones and a Python <literal>ThreadPool</literal> or similar object can be used for parallel processing either with or without <literal>blosc</literal> threads. Initial testing suggests that an equal mix of <literal>ThreadPool</literal> and <literal>blosc</literal> threads is near optimal. I.e. a computer with 16 cores would have 4 <literal>blosc</literal> threads and 4 <literal>ThreadPool</literal> threads. An example of combining <literal>blosc</literal> and <literal>ThreadPool</literal> may be found in <literal>bench/threadpool.py</literal>.</paragraph></list_item></bullet_list></section> SphinxTranslator.dispatch_visit calling visit_title for <title>Fine-tuning compression parameters</title> SphinxTranslator.dispatch_visit calling visit_Text for Fine-tuning compression parameters SphinxTranslator.dispatch_departure calling depart_Text for Fine-tuning compression parameters SphinxTranslator.dispatch_departure calling depart_title for <title>Fine-tuning compression parameters</title> SphinxTranslator.dispatch_visit calling visit_paragraph for <paragraph>There are a number of parameters that affect the de/compression bandwidth achieved by <literal>blosc</literal>:</paragraph> SphinxTranslator.dispatch_visit calling visit_Text for There are a number of parameters that affect the de/compression bandwidth achieved by SphinxTranslator.dispatch_departure calling depart_Text for There are a number of parameters that affect the de/compression bandwidth achieved by SphinxTranslator.dispatch_visit calling visit_literal for <literal>blosc</literal> SphinxTranslator.dispatch_visit calling visit_Text for blosc SphinxTranslator.dispatch_departure calling depart_Text for blosc SphinxTranslator.dispatch_departure calling depart_literal for <literal>blosc</literal> SphinxTranslator.dispatch_visit calling visit_Text for : SphinxTranslator.dispatch_departure calling depart_Text for : SphinxTranslator.dispatch_departure calling depart_paragraph for <paragraph>There are a number of parameters that affect the de/compression bandwidth achieved by <literal>blosc</literal>:</paragraph> SphinxTranslator.dispatch_visit calling visit_bullet_list for <bullet_list bullet="*"><list_item><paragraph>The information content of the underlying data, and <literal>chunksize</literal>: the size of the data in each call to <literal>compress</literal> and analogous functions. ‘blosc’ does not manage chunksize itself, but an example implementation can be seen in the <literal>bloscpack</literal> module.</paragraph></list_item><list_item><paragraph><literal>n_threads</literal>: The number of threads to spawn inside <literal>c-blosc</literal>. <literal>n_threads</literal> may be changed by calling <literal>blosc.set_nthreads(16)</literal> for example. <literal>blosc</literal> performance generally scales sub-linearly with the number of threads with a coefficient roughly around 0.5-0.67. I.e. the expected performance compared to a single thread is 1.0 / (0.6*n_threads). For systems with hyper-threading the optimum number of threads is usually a small over-subscription of the number of _physical_ (not virtual) cores.</paragraph></list_item><list_item><paragraph><literal>blocksize</literal>: is the size of each continuously memory-element that is compressed, in bytes. Normally <literal>blosc</literal> attempts to automatically guess the size of each compressed block of data, but the user can set it manually by calling <literal>blosc.set_blocksize( size_in_bytes )</literal> for hand optimized situations. Often the L2 cache size (e.g. 256kB for an Intel Haswell) is a good starting point for optimization.</paragraph></list_item><list_item><paragraph><literal>shuffle</literal>: as discussed above the <literal>shuffle</literal> mode can substantially improve compression ratios when the</paragraph></list_item><list_item><paragraph><literal>clevel</literal>: the compression level called for the algorithm. Called as an argument to <literal>compress</literal> and similar functions.</paragraph></list_item><list_item><paragraph><literal>cname</literal>: the compressor codec itself. Each codec has its own characteristics that also vary depending on the underlying data. For example, ‘lz4’ tends to prefer smaller <literal>blocksize</literal> and does not slow significantly with <literal>clevel</literal>. In comparison <literal>zlib</literal> and <literal>zstd</literal> both slow substantially with increasing <literal>clevel</literal>, with an inflection point around <literal>clevel`=4-5 for 'zlib' and `clevel`=2-4 for 'zstd'. Called as an argument to `compress</literal> and similar functions.</paragraph></list_item><list_item><paragraph><literal>releasegil</literal>: optionally the Python Global Interpreter Lock (GIL) can be turned off during <literal>c-blosc</literal> operations by calling <literal>blosc.set_releasegil(True)</literal>. The default is off as there is a small overhead in releasing the GIL which can be significant for a small <literal>blocksize</literal>. GIL release is intended to be used in situations where other bounds (such as file or network I/O) are the rate-limiting ones and a Python <literal>ThreadPool</literal> or similar object can be used for parallel processing either with or without <literal>blosc</literal> threads. Initial testing suggests that an equal mix of <literal>ThreadPool</literal> and <literal>blosc</literal> threads is near optimal. I.e. a computer with 16 cores would have 4 <literal>blosc</literal> threads and 4 <literal>ThreadPool</literal> threads. An example of combining <literal>blosc</literal> and <literal>ThreadPool</literal> may be found in <literal>bench/threadpool.py</literal>.</paragraph></list_item></bullet_list> SphinxTranslator.dispatch_visit calling visit_list_item for <list_item><paragraph>The information content of the underlying data, and <literal>chunksize</literal>: the size of the data in each call to <literal>compress</literal> and analogous functions. ‘blosc’ does not manage chunksize itself, but an example implementation can be seen in the <literal>bloscpack</literal> module.</paragraph></list_item> SphinxTranslator.dispatch_visit calling visit_paragraph for <paragraph>The information content of the underlying data, and <literal>chunksize</literal>: the size of the data in each call to <literal>compress</literal> and analogous functions. ‘blosc’ does not manage chunksize itself, but an example implementation can be seen in the <literal>bloscpack</literal> module.</paragraph> SphinxTranslator.dispatch_visit calling visit_Text for The information content of the underlying data, and SphinxTranslator.dispatch_departure calling depart_Text for The information content of the underlying data, and SphinxTranslator.dispatch_visit calling visit_literal for <literal>chunksize</literal> SphinxTranslator.dispatch_visit calling visit_Text for chunksize SphinxTranslator.dispatch_departure calling depart_Text for chunksize SphinxTranslator.dispatch_departure calling depart_literal for <literal>chunksize</literal> SphinxTranslator.dispatch_visit calling visit_Text for : the size of the data in each call to SphinxTranslator.dispatch_departure calling depart_Text for : the size of the data in each call to SphinxTranslator.dispatch_visit calling visit_literal for <literal>compress</literal> SphinxTranslator.dispatch_visit calling visit_Text for compress SphinxTranslator.dispatch_departure calling depart_Text for compress SphinxTranslator.dispatch_departure calling depart_literal for <literal>compress</literal> SphinxTranslator.dispatch_visit calling visit_Text for and analogous functions. ‘blosc’ does not manage chunksize itself, but an example implementation can be seen in the SphinxTranslator.dispatch_departure calling depart_Text for and analogous functions. ‘blosc’ does not manage chunksize itself, but an example implementation can be seen in the SphinxTranslator.dispatch_visit calling visit_literal for <literal>bloscpack</literal> SphinxTranslator.dispatch_visit calling visit_Text for bloscpack SphinxTranslator.dispatch_departure calling depart_Text for bloscpack SphinxTranslator.dispatch_departure calling depart_literal for <literal>bloscpack</literal> SphinxTranslator.dispatch_visit calling visit_Text for module. SphinxTranslator.dispatch_departure calling depart_Text for module. SphinxTranslator.dispatch_departure calling depart_paragraph for <paragraph>The information content of the underlying data, and <literal>chunksize</literal>: the size of the data in each call to <literal>compress</literal> and analogous functions. ‘blosc’ does not manage chunksize itself, but an example implementation can be seen in the <literal>bloscpack</literal> module.</paragraph> SphinxTranslator.dispatch_departure calling depart_list_item for <list_item><paragraph>The information content of the underlying data, and <literal>chunksize</literal>: the size of the data in each call to <literal>compress</literal> and analogous functions. ‘blosc’ does not manage chunksize itself, but an example implementation can be seen in the <literal>bloscpack</literal> module.</paragraph></list_item> SphinxTranslator.dispatch_visit calling visit_list_item for <list_item><paragraph><literal>n_threads</literal>: The number of threads to spawn inside <literal>c-blosc</literal>. <literal>n_threads</literal> may be changed by calling <literal>blosc.set_nthreads(16)</literal> for example. <literal>blosc</literal> performance generally scales sub-linearly with the number of threads with a coefficient roughly around 0.5-0.67. I.e. the expected performance compared to a single thread is 1.0 / (0.6*n_threads). For systems with hyper-threading the optimum number of threads is usually a small over-subscription of the number of _physical_ (not virtual) cores.</paragraph></list_item> SphinxTranslator.dispatch_visit calling visit_paragraph for <paragraph><literal>n_threads</literal>: The number of threads to spawn inside <literal>c-blosc</literal>. <literal>n_threads</literal> may be changed by calling <literal>blosc.set_nthreads(16)</literal> for example. <literal>blosc</literal> performance generally scales sub-linearly with the number of threads with a coefficient roughly around 0.5-0.67. I.e. the expected performance compared to a single thread is 1.0 / (0.6*n_threads). For systems with hyper-threading the optimum number of threads is usually a small over-subscription of the number of _physical_ (not virtual) cores.</paragraph> SphinxTranslator.dispatch_visit calling visit_literal for <literal>n_threads</literal> SphinxTranslator.dispatch_visit calling visit_Text for n_threads SphinxTranslator.dispatch_departure calling depart_Text for n_threads SphinxTranslator.dispatch_departure calling depart_literal for <literal>n_threads</literal> SphinxTranslator.dispatch_visit calling visit_Text for : The number of threads to spawn inside SphinxTranslator.dispatch_departure calling depart_Text for : The number of threads to spawn inside SphinxTranslator.dispatch_visit calling visit_literal for <literal>c-blosc</literal> SphinxTranslator.dispatch_visit calling visit_Text for c-blosc SphinxTranslator.dispatch_departure calling depart_Text for c-blosc SphinxTranslator.dispatch_departure calling depart_literal for <literal>c-blosc</literal> SphinxTranslator.dispatch_visit calling visit_Text for . SphinxTranslator.dispatch_departure calling depart_Text for . SphinxTranslator.dispatch_visit calling visit_literal for <literal>n_threads</literal> SphinxTranslator.dispatch_visit calling visit_Text for n_threads SphinxTranslator.dispatch_departure calling depart_Text for n_threads SphinxTranslator.dispatch_departure calling depart_literal for <literal>n_threads</literal> SphinxTranslator.dispatch_visit calling visit_Text for may be changed by calling SphinxTranslator.dispatch_departure calling depart_Text for may be changed by calling SphinxTranslator.dispatch_visit calling visit_literal for <literal>blosc.set_nthreads(16)</literal> SphinxTranslator.dispatch_visit calling visit_Text for blosc.set_nthreads(16) SphinxTranslator.dispatch_departure calling depart_Text for blosc.set_nthreads(16) SphinxTranslator.dispatch_departure calling depart_literal for <literal>blosc.set_nthreads(16)</literal> SphinxTranslator.dispatch_visit calling visit_Text for for example. SphinxTranslator.dispatch_departure calling depart_Text for for example. SphinxTranslator.dispatch_visit calling visit_literal for <literal>blosc</literal> SphinxTranslator.dispatch_visit calling visit_Text for blosc SphinxTranslator.dispatch_departure calling depart_Text for blosc SphinxTranslator.dispatch_departure calling depart_literal for <literal>blosc</literal> SphinxTranslator.dispatch_visit calling visit_Text for performance generally scales sub-linearly with the number of threads with a coefficient roughly around 0.5-0.67. I.e. the expected performance compared to a single thread is 1.0 / (0.6*n_threads). For systems with hyper-threading the optimum number of threads is usually a small over-subscription of the number of _physical_ (not virtual) cores. SphinxTranslator.dispatch_departure calling depart_Text for performance generally scales sub-linearly with the number of threads with a coefficient roughly around 0.5-0.67. I.e. the expected performance compared to a single thread is 1.0 / (0.6*n_threads). For systems with hyper-threading the optimum number of threads is usually a small over-subscription of the number of _physical_ (not virtual) cores. SphinxTranslator.dispatch_departure calling depart_paragraph for <paragraph><literal>n_threads</literal>: The number of threads to spawn inside <literal>c-blosc</literal>. <literal>n_threads</literal> may be changed by calling <literal>blosc.set_nthreads(16)</literal> for example. <literal>blosc</literal> performance generally scales sub-linearly with the number of threads with a coefficient roughly around 0.5-0.67. I.e. the expected performance compared to a single thread is 1.0 / (0.6*n_threads). For systems with hyper-threading the optimum number of threads is usually a small over-subscription of the number of _physical_ (not virtual) cores.</paragraph> SphinxTranslator.dispatch_departure calling depart_list_item for <list_item><paragraph><literal>n_threads</literal>: The number of threads to spawn inside <literal>c-blosc</literal>. <literal>n_threads</literal> may be changed by calling <literal>blosc.set_nthreads(16)</literal> for example. <literal>blosc</literal> performance generally scales sub-linearly with the number of threads with a coefficient roughly around 0.5-0.67. I.e. the expected performance compared to a single thread is 1.0 / (0.6*n_threads). For systems with hyper-threading the optimum number of threads is usually a small over-subscription of the number of _physical_ (not virtual) cores.</paragraph></list_item> SphinxTranslator.dispatch_visit calling visit_list_item for <list_item><paragraph><literal>blocksize</literal>: is the size of each continuously memory-element that is compressed, in bytes. Normally <literal>blosc</literal> attempts to automatically guess the size of each compressed block of data, but the user can set it manually by calling <literal>blosc.set_blocksize( size_in_bytes )</literal> for hand optimized situations. Often the L2 cache size (e.g. 256kB for an Intel Haswell) is a good starting point for optimization.</paragraph></list_item> SphinxTranslator.dispatch_visit calling visit_paragraph for <paragraph><literal>blocksize</literal>: is the size of each continuously memory-element that is compressed, in bytes. Normally <literal>blosc</literal> attempts to automatically guess the size of each compressed block of data, but the user can set it manually by calling <literal>blosc.set_blocksize( size_in_bytes )</literal> for hand optimized situations. Often the L2 cache size (e.g. 256kB for an Intel Haswell) is a good starting point for optimization.</paragraph> SphinxTranslator.dispatch_visit calling visit_literal for <literal>blocksize</literal> SphinxTranslator.dispatch_visit calling visit_Text for blocksize SphinxTranslator.dispatch_departure calling depart_Text for blocksize SphinxTranslator.dispatch_departure calling depart_literal for <literal>blocksize</literal> SphinxTranslator.dispatch_visit calling visit_Text for : is the size of each continuously memory-element that is compressed, in bytes. Normally SphinxTranslator.dispatch_departure calling depart_Text for : is the size of each continuously memory-element that is compressed, in bytes. Normally SphinxTranslator.dispatch_visit calling visit_literal for <literal>blosc</literal> SphinxTranslator.dispatch_visit calling visit_Text for blosc SphinxTranslator.dispatch_departure calling depart_Text for blosc SphinxTranslator.dispatch_departure calling depart_literal for <literal>blosc</literal> SphinxTranslator.dispatch_visit calling visit_Text for attempts to automatically guess the size of each compressed block of data, but the user can set it manually by calling SphinxTranslator.dispatch_departure calling depart_Text for attempts to automatically guess the size of each compressed block of data, but the user can set it manually by calling SphinxTranslator.dispatch_visit calling visit_literal for <literal>blosc.set_blocksize( size_in_bytes )</literal> SphinxTranslator.dispatch_visit calling visit_Text for blosc.set_blocksize( size_in_bytes ) SphinxTranslator.dispatch_departure calling depart_Text for blosc.set_blocksize( size_in_bytes ) SphinxTranslator.dispatch_departure calling depart_literal for <literal>blosc.set_blocksize( size_in_bytes )</literal> SphinxTranslator.dispatch_visit calling visit_Text for for hand optimized situations. Often the L2 cache size (e.g. 256kB for an Intel Haswell) is a good starting point for optimization. SphinxTranslator.dispatch_departure calling depart_Text for for hand optimized situations. Often the L2 cache size (e.g. 256kB for an Intel Haswell) is a good starting point for optimization. SphinxTranslator.dispatch_departure calling depart_paragraph for <paragraph><literal>blocksize</literal>: is the size of each continuously memory-element that is compressed, in bytes. Normally <literal>blosc</literal> attempts to automatically guess the size of each compressed block of data, but the user can set it manually by calling <literal>blosc.set_blocksize( size_in_bytes )</literal> for hand optimized situations. Often the L2 cache size (e.g. 256kB for an Intel Haswell) is a good starting point for optimization.</paragraph> SphinxTranslator.dispatch_departure calling depart_list_item for <list_item><paragraph><literal>blocksize</literal>: is the size of each continuously memory-element that is compressed, in bytes. Normally <literal>blosc</literal> attempts to automatically guess the size of each compressed block of data, but the user can set it manually by calling <literal>blosc.set_blocksize( size_in_bytes )</literal> for hand optimized situations. Often the L2 cache size (e.g. 256kB for an Intel Haswell) is a good starting point for optimization.</paragraph></list_item> SphinxTranslator.dispatch_visit calling visit_list_item for <list_item><paragraph><literal>shuffle</literal>: as discussed above the <literal>shuffle</literal> mode can substantially improve compression ratios when the</paragraph></list_item> SphinxTranslator.dispatch_visit calling visit_paragraph for <paragraph><literal>shuffle</literal>: as discussed above the <literal>shuffle</literal> mode can substantially improve compression ratios when the</paragraph> SphinxTranslator.dispatch_visit calling visit_literal for <literal>shuffle</literal> SphinxTranslator.dispatch_visit calling visit_Text for shuffle SphinxTranslator.dispatch_departure calling depart_Text for shuffle SphinxTranslator.dispatch_departure calling depart_literal for <literal>shuffle</literal> SphinxTranslator.dispatch_visit calling visit_Text for : as discussed above the SphinxTranslator.dispatch_departure calling depart_Text for : as discussed above the SphinxTranslator.dispatch_visit calling visit_literal for <literal>shuffle</literal> SphinxTranslator.dispatch_visit calling visit_Text for shuffle SphinxTranslator.dispatch_departure calling depart_Text for shuffle SphinxTranslator.dispatch_departure calling depart_literal for <literal>shuffle</literal> SphinxTranslator.dispatch_visit calling visit_Text for mode can substantially improve compression ratios when the SphinxTranslator.dispatch_departure calling depart_Text for mode can substantially improve compression ratios when the SphinxTranslator.dispatch_departure calling depart_paragraph for <paragraph><literal>shuffle</literal>: as discussed above the <literal>shuffle</literal> mode can substantially improve compression ratios when the</paragraph> SphinxTranslator.dispatch_departure calling depart_list_item for <list_item><paragraph><literal>shuffle</literal>: as discussed above the <literal>shuffle</literal> mode can substantially improve compression ratios when the</paragraph></list_item> SphinxTranslator.dispatch_visit calling visit_list_item for <list_item><paragraph><literal>clevel</literal>: the compression level called for the algorithm. Called as an argument to <literal>compress</literal> and similar functions.</paragraph></list_item> SphinxTranslator.dispatch_visit calling visit_paragraph for <paragraph><literal>clevel</literal>: the compression level called for the algorithm. Called as an argument to <literal>compress</literal> and similar functions.</paragraph> SphinxTranslator.dispatch_visit calling visit_literal for <literal>clevel</literal> SphinxTranslator.dispatch_visit calling visit_Text for clevel SphinxTranslator.dispatch_departure calling depart_Text for clevel SphinxTranslator.dispatch_departure calling depart_literal for <literal>clevel</literal> SphinxTranslator.dispatch_visit calling visit_Text for : the compression level called for the algorithm. Called as an argument to SphinxTranslator.dispatch_departure calling depart_Text for : the compression level called for the algorithm. Called as an argument to SphinxTranslator.dispatch_visit calling visit_literal for <literal>compress</literal> SphinxTranslator.dispatch_visit calling visit_Text for compress SphinxTranslator.dispatch_departure calling depart_Text for compress SphinxTranslator.dispatch_departure calling depart_literal for <literal>compress</literal> SphinxTranslator.dispatch_visit calling visit_Text for and similar functions. SphinxTranslator.dispatch_departure calling depart_Text for and similar functions. SphinxTranslator.dispatch_departure calling depart_paragraph for <paragraph><literal>clevel</literal>: the compression level called for the algorithm. Called as an argument to <literal>compress</literal> and similar functions.</paragraph> SphinxTranslator.dispatch_departure calling depart_list_item for <list_item><paragraph><literal>clevel</literal>: the compression level called for the algorithm. Called as an argument to <literal>compress</literal> and similar functions.</paragraph></list_item> SphinxTranslator.dispatch_visit calling visit_list_item for <list_item><paragraph><literal>cname</literal>: the compressor codec itself. Each codec has its own characteristics that also vary depending on the underlying data. For example, ‘lz4’ tends to prefer smaller <literal>blocksize</literal> and does not slow significantly with <literal>clevel</literal>. In comparison <literal>zlib</literal> and <literal>zstd</literal> both slow substantially with increasing <literal>clevel</literal>, with an inflection point around <literal>clevel`=4-5 for 'zlib' and `clevel`=2-4 for 'zstd'. Called as an argument to `compress</literal> and similar functions.</paragraph></list_item> SphinxTranslator.dispatch_visit calling visit_paragraph for <paragraph><literal>cname</literal>: the compressor codec itself. Each codec has its own characteristics that also vary depending on the underlying data. For example, ‘lz4’ tends to prefer smaller <literal>blocksize</literal> and does not slow significantly with <literal>clevel</literal>. In comparison <literal>zlib</literal> and <literal>zstd</literal> both slow substantially with increasing <literal>clevel</literal>, with an inflection point around <literal>clevel`=4-5 for 'zlib' and `clevel`=2-4 for 'zstd'. Called as an argument to `compress</literal> and similar functions.</paragraph> SphinxTranslator.dispatch_visit calling visit_literal for <literal>cname</literal> SphinxTranslator.dispatch_visit calling visit_Text for cname SphinxTranslator.dispatch_departure calling depart_Text for cname SphinxTranslator.dispatch_departure calling depart_literal for <literal>cname</literal> SphinxTranslator.dispatch_visit calling visit_Text for : the compressor codec itself. Each codec has its own characteristics that also vary depending on the underlying data. For example, ‘lz4’ tends to prefer smaller SphinxTranslator.dispatch_departure calling depart_Text for : the compressor codec itself. Each codec has its own characteristics that also vary depending on the underlying data. For example, ‘lz4’ tends to prefer smaller SphinxTranslator.dispatch_visit calling visit_literal for <literal>blocksize</literal> SphinxTranslator.dispatch_visit calling visit_Text for blocksize SphinxTranslator.dispatch_departure calling depart_Text for blocksize SphinxTranslator.dispatch_departure calling depart_literal for <literal>blocksize</literal> SphinxTranslator.dispatch_visit calling visit_Text for and does not slow significantly with SphinxTranslator.dispatch_departure calling depart_Text for and does not slow significantly with SphinxTranslator.dispatch_visit calling visit_literal for <literal>clevel</literal> SphinxTranslator.dispatch_visit calling visit_Text for clevel SphinxTranslator.dispatch_departure calling depart_Text for clevel SphinxTranslator.dispatch_departure calling depart_literal for <literal>clevel</literal> SphinxTranslator.dispatch_visit calling visit_Text for . In comparison SphinxTranslator.dispatch_departure calling depart_Text for . In comparison SphinxTranslator.dispatch_visit calling visit_literal for <literal>zlib</literal> SphinxTranslator.dispatch_visit calling visit_Text for zlib SphinxTranslator.dispatch_departure calling depart_Text for zlib SphinxTranslator.dispatch_departure calling depart_literal for <literal>zlib</literal> SphinxTranslator.dispatch_visit calling visit_Text for and SphinxTranslator.dispatch_departure calling depart_Text for and SphinxTranslator.dispatch_visit calling visit_literal for <literal>zstd</literal> SphinxTranslator.dispatch_visit calling visit_Text for zstd SphinxTranslator.dispatch_departure calling depart_Text for zstd SphinxTranslator.dispatch_departure calling depart_literal for <literal>zstd</literal> SphinxTranslator.dispatch_visit calling visit_Text for both slow substantially with increasing SphinxTranslator.dispatch_departure calling depart_Text for both slow substantially with increasing SphinxTranslator.dispatch_visit calling visit_literal for <literal>clevel</literal> SphinxTranslator.dispatch_visit calling visit_Text for clevel SphinxTranslator.dispatch_departure calling depart_Text for clevel SphinxTranslator.dispatch_departure calling depart_literal for <literal>clevel</literal> SphinxTranslator.dispatch_visit calling visit_Text for , with an inflection point around SphinxTranslator.dispatch_departure calling depart_Text for , with an inflection point around SphinxTranslator.dispatch_visit calling visit_literal for <literal>clevel`=4-5 for 'zlib' and `clevel`=2-4 for 'zstd'. Called as an argument to `compress</literal> SphinxTranslator.dispatch_visit calling visit_Text for clevel`=4-5 for 'zlib' and `clevel`=2-4 for 'zstd'. Called as an argument to `compress SphinxTranslator.dispatch_departure calling depart_Text for clevel`=4-5 for 'zlib' and `clevel`=2-4 for 'zstd'. Called as an argument to `compress SphinxTranslator.dispatch_departure calling depart_literal for <literal>clevel`=4-5 for 'zlib' and `clevel`=2-4 for 'zstd'. Called as an argument to `compress</literal> SphinxTranslator.dispatch_visit calling visit_Text for and similar functions. SphinxTranslator.dispatch_departure calling depart_Text for and similar functions. SphinxTranslator.dispatch_departure calling depart_paragraph for <paragraph><literal>cname</literal>: the compressor codec itself. Each codec has its own characteristics that also vary depending on the underlying data. For example, ‘lz4’ tends to prefer smaller <literal>blocksize</literal> and does not slow significantly with <literal>clevel</literal>. In comparison <literal>zlib</literal> and <literal>zstd</literal> both slow substantially with increasing <literal>clevel</literal>, with an inflection point around <literal>clevel`=4-5 for 'zlib' and `clevel`=2-4 for 'zstd'. Called as an argument to `compress</literal> and similar functions.</paragraph> SphinxTranslator.dispatch_departure calling depart_list_item for <list_item><paragraph><literal>cname</literal>: the compressor codec itself. Each codec has its own characteristics that also vary depending on the underlying data. For example, ‘lz4’ tends to prefer smaller <literal>blocksize</literal> and does not slow significantly with <literal>clevel</literal>. In comparison <literal>zlib</literal> and <literal>zstd</literal> both slow substantially with increasing <literal>clevel</literal>, with an inflection point around <literal>clevel`=4-5 for 'zlib' and `clevel`=2-4 for 'zstd'. Called as an argument to `compress</literal> and similar functions.</paragraph></list_item> SphinxTranslator.dispatch_visit calling visit_list_item for <list_item><paragraph><literal>releasegil</literal>: optionally the Python Global Interpreter Lock (GIL) can be turned off during <literal>c-blosc</literal> operations by calling <literal>blosc.set_releasegil(True)</literal>. The default is off as there is a small overhead in releasing the GIL which can be significant for a small <literal>blocksize</literal>. GIL release is intended to be used in situations where other bounds (such as file or network I/O) are the rate-limiting ones and a Python <literal>ThreadPool</literal> or similar object can be used for parallel processing either with or without <literal>blosc</literal> threads. Initial testing suggests that an equal mix of <literal>ThreadPool</literal> and <literal>blosc</literal> threads is near optimal. I.e. a computer with 16 cores would have 4 <literal>blosc</literal> threads and 4 <literal>ThreadPool</literal> threads. An example of combining <literal>blosc</literal> and <literal>ThreadPool</literal> may be found in <literal>bench/threadpool.py</literal>.</paragraph></list_item> SphinxTranslator.dispatch_visit calling visit_paragraph for <paragraph><literal>releasegil</literal>: optionally the Python Global Interpreter Lock (GIL) can be turned off during <literal>c-blosc</literal> operations by calling <literal>blosc.set_releasegil(True)</literal>. The default is off as there is a small overhead in releasing the GIL which can be significant for a small <literal>blocksize</literal>. GIL release is intended to be used in situations where other bounds (such as file or network I/O) are the rate-limiting ones and a Python <literal>ThreadPool</literal> or similar object can be used for parallel processing either with or without <literal>blosc</literal> threads. Initial testing suggests that an equal mix of <literal>ThreadPool</literal> and <literal>blosc</literal> threads is near optimal. I.e. a computer with 16 cores would have 4 <literal>blosc</literal> threads and 4 <literal>ThreadPool</literal> threads. An example of combining <literal>blosc</literal> and <literal>ThreadPool</literal> may be found in <literal>bench/threadpool.py</literal>.</paragraph> SphinxTranslator.dispatch_visit calling visit_literal for <literal>releasegil</literal> SphinxTranslator.dispatch_visit calling visit_Text for releasegil SphinxTranslator.dispatch_departure calling depart_Text for releasegil SphinxTranslator.dispatch_departure calling depart_literal for <literal>releasegil</literal> SphinxTranslator.dispatch_visit calling visit_Text for : optionally the Python Global Interpreter Lock (GIL) can be turned off during SphinxTranslator.dispatch_departure calling depart_Text for : optionally the Python Global Interpreter Lock (GIL) can be turned off during SphinxTranslator.dispatch_visit calling visit_literal for <literal>c-blosc</literal> SphinxTranslator.dispatch_visit calling visit_Text for c-blosc SphinxTranslator.dispatch_departure calling depart_Text for c-blosc SphinxTranslator.dispatch_departure calling depart_literal for <literal>c-blosc</literal> SphinxTranslator.dispatch_visit calling visit_Text for operations by calling SphinxTranslator.dispatch_departure calling depart_Text for operations by calling SphinxTranslator.dispatch_visit calling visit_literal for <literal>blosc.set_releasegil(True)</literal> SphinxTranslator.dispatch_visit calling visit_Text for blosc.set_releasegil(True) SphinxTranslator.dispatch_departure calling depart_Text for blosc.set_releasegil(True) SphinxTranslator.dispatch_departure calling depart_literal for <literal>blosc.set_releasegil(True)</literal> SphinxTranslator.dispatch_visit calling visit_Text for . The default is off as there is a small overhead in releasing the GIL which can be significant for a small SphinxTranslator.dispatch_departure calling depart_Text for . The default is off as there is a small overhead in releasing the GIL which can be significant for a small SphinxTranslator.dispatch_visit calling visit_literal for <literal>blocksize</literal> SphinxTranslator.dispatch_visit calling visit_Text for blocksize SphinxTranslator.dispatch_departure calling depart_Text for blocksize SphinxTranslator.dispatch_departure calling depart_literal for <literal>blocksize</literal> SphinxTranslator.dispatch_visit calling visit_Text for . GIL release is intended to be used in situations where other bounds (such as file or network I/O) are the rate-limiting ones and a Python SphinxTranslator.dispatch_departure calling depart_Text for . GIL release is intended to be used in situations where other bounds (such as file or network I/O) are the rate-limiting ones and a Python SphinxTranslator.dispatch_visit calling visit_literal for <literal>ThreadPool</literal> SphinxTranslator.dispatch_visit calling visit_Text for ThreadPool SphinxTranslator.dispatch_departure calling depart_Text for ThreadPool SphinxTranslator.dispatch_departure calling depart_literal for <literal>ThreadPool</literal> SphinxTranslator.dispatch_visit calling visit_Text for or similar object can be used for parallel processing either with or without SphinxTranslator.dispatch_departure calling depart_Text for or similar object can be used for parallel processing either with or without SphinxTranslator.dispatch_visit calling visit_literal for <literal>blosc</literal> SphinxTranslator.dispatch_visit calling visit_Text for blosc SphinxTranslator.dispatch_departure calling depart_Text for blosc SphinxTranslator.dispatch_departure calling depart_literal for <literal>blosc</literal> SphinxTranslator.dispatch_visit calling visit_Text for threads. Initial testing suggests that an equal mix of SphinxTranslator.dispatch_departure calling depart_Text for threads. Initial testing suggests that an equal mix of SphinxTranslator.dispatch_visit calling visit_literal for <literal>ThreadPool</literal> SphinxTranslator.dispatch_visit calling visit_Text for ThreadPool SphinxTranslator.dispatch_departure calling depart_Text for ThreadPool SphinxTranslator.dispatch_departure calling depart_literal for <literal>ThreadPool</literal> SphinxTranslator.dispatch_visit calling visit_Text for and SphinxTranslator.dispatch_departure calling depart_Text for and SphinxTranslator.dispatch_visit calling visit_literal for <literal>blosc</literal> SphinxTranslator.dispatch_visit calling visit_Text for blosc SphinxTranslator.dispatch_departure calling depart_Text for blosc SphinxTranslator.dispatch_departure calling depart_literal for <literal>blosc</literal> SphinxTranslator.dispatch_visit calling visit_Text for threads is near optimal. I.e. a computer with 16 cores would have 4 SphinxTranslator.dispatch_departure calling depart_Text for threads is near optimal. I.e. a computer with 16 cores would have 4 SphinxTranslator.dispatch_visit calling visit_literal for <literal>blosc</literal> SphinxTranslator.dispatch_visit calling visit_Text for blosc SphinxTranslator.dispatch_departure calling depart_Text for blosc SphinxTranslator.dispatch_departure calling depart_literal for <literal>blosc</literal> SphinxTranslator.dispatch_visit calling visit_Text for threads and 4 SphinxTranslator.dispatch_departure calling depart_Text for threads and 4 SphinxTranslator.dispatch_visit calling visit_literal for <literal>ThreadPool</literal> SphinxTranslator.dispatch_visit calling visit_Text for ThreadPool SphinxTranslator.dispatch_departure calling depart_Text for ThreadPool SphinxTranslator.dispatch_departure calling depart_literal for <literal>ThreadPool</literal> SphinxTranslator.dispatch_visit calling visit_Text for threads. An example of combining SphinxTranslator.dispatch_departure calling depart_Text for threads. An example of combining SphinxTranslator.dispatch_visit calling visit_literal for <literal>blosc</literal> SphinxTranslator.dispatch_visit calling visit_Text for blosc SphinxTranslator.dispatch_departure calling depart_Text for blosc SphinxTranslator.dispatch_departure calling depart_literal for <literal>blosc</literal> SphinxTranslator.dispatch_visit calling visit_Text for and SphinxTranslator.dispatch_departure calling depart_Text for and SphinxTranslator.dispatch_visit calling visit_literal for <literal>ThreadPool</literal> SphinxTranslator.dispatch_visit calling visit_Text for ThreadPool SphinxTranslator.dispatch_departure calling depart_Text for ThreadPool SphinxTranslator.dispatch_departure calling depart_literal for <literal>ThreadPool</literal> SphinxTranslator.dispatch_visit calling visit_Text for may be found in SphinxTranslator.dispatch_departure calling depart_Text for may be found in SphinxTranslator.dispatch_visit calling visit_literal for <literal>bench/threadpool.py</literal> SphinxTranslator.dispatch_visit calling visit_Text for bench/threadpool.py SphinxTranslator.dispatch_departure calling depart_Text for bench/threadpool.py SphinxTranslator.dispatch_departure calling depart_literal for <literal>bench/threadpool.py</literal> SphinxTranslator.dispatch_visit calling visit_Text for . SphinxTranslator.dispatch_departure calling depart_Text for . SphinxTranslator.dispatch_departure calling depart_paragraph for <paragraph><literal>releasegil</literal>: optionally the Python Global Interpreter Lock (GIL) can be turned off during <literal>c-blosc</literal> operations by calling <literal>blosc.set_releasegil(True)</literal>. The default is off as there is a small overhead in releasing the GIL which can be significant for a small <literal>blocksize</literal>. GIL release is intended to be used in situations where other bounds (such as file or network I/O) are the rate-limiting ones and a Python <literal>ThreadPool</literal> or similar object can be used for parallel processing either with or without <literal>blosc</literal> threads. Initial testing suggests that an equal mix of <literal>ThreadPool</literal> and <literal>blosc</literal> threads is near optimal. I.e. a computer with 16 cores would have 4 <literal>blosc</literal> threads and 4 <literal>ThreadPool</literal> threads. An example of combining <literal>blosc</literal> and <literal>ThreadPool</literal> may be found in <literal>bench/threadpool.py</literal>.</paragraph> SphinxTranslator.dispatch_departure calling depart_list_item for <list_item><paragraph><literal>releasegil</literal>: optionally the Python Global Interpreter Lock (GIL) can be turned off during <literal>c-blosc</literal> operations by calling <literal>blosc.set_releasegil(True)</literal>. The default is off as there is a small overhead in releasing the GIL which can be significant for a small <literal>blocksize</literal>. GIL release is intended to be used in situations where other bounds (such as file or network I/O) are the rate-limiting ones and a Python <literal>ThreadPool</literal> or similar object can be used for parallel processing either with or without <literal>blosc</literal> threads. Initial testing suggests that an equal mix of <literal>ThreadPool</literal> and <literal>blosc</literal> threads is near optimal. I.e. a computer with 16 cores would have 4 <literal>blosc</literal> threads and 4 <literal>ThreadPool</literal> threads. An example of combining <literal>blosc</literal> and <literal>ThreadPool</literal> may be found in <literal>bench/threadpool.py</literal>.</paragraph></list_item> SphinxTranslator.dispatch_departure calling depart_bullet_list for <bullet_list bullet="*"><list_item><paragraph>The information content of the underlying data, and <literal>chunksize</literal>: the size of the data in each call to <literal>compress</literal> and analogous functions. ‘blosc’ does not manage chunksize itself, but an example implementation can be seen in the <literal>bloscpack</literal> module.</paragraph></list_item><list_item><paragraph><literal>n_threads</literal>: The number of threads to spawn inside <literal>c-blosc</literal>. <literal>n_threads</literal> may be changed by calling <literal>blosc.set_nthreads(16)</literal> for example. <literal>blosc</literal> performance generally scales sub-linearly with the number of threads with a coefficient roughly around 0.5-0.67. I.e. the expected performance compared to a single thread is 1.0 / (0.6*n_threads). For systems with hyper-threading the optimum number of threads is usually a small over-subscription of the number of _physical_ (not virtual) cores.</paragraph></list_item><list_item><paragraph><literal>blocksize</literal>: is the size of each continuously memory-element that is compressed, in bytes. Normally <literal>blosc</literal> attempts to automatically guess the size of each compressed block of data, but the user can set it manually by calling <literal>blosc.set_blocksize( size_in_bytes )</literal> for hand optimized situations. Often the L2 cache size (e.g. 256kB for an Intel Haswell) is a good starting point for optimization.</paragraph></list_item><list_item><paragraph><literal>shuffle</literal>: as discussed above the <literal>shuffle</literal> mode can substantially improve compression ratios when the</paragraph></list_item><list_item><paragraph><literal>clevel</literal>: the compression level called for the algorithm. Called as an argument to <literal>compress</literal> and similar functions.</paragraph></list_item><list_item><paragraph><literal>cname</literal>: the compressor codec itself. Each codec has its own characteristics that also vary depending on the underlying data. For example, ‘lz4’ tends to prefer smaller <literal>blocksize</literal> and does not slow significantly with <literal>clevel</literal>. In comparison <literal>zlib</literal> and <literal>zstd</literal> both slow substantially with increasing <literal>clevel</literal>, with an inflection point around <literal>clevel`=4-5 for 'zlib' and `clevel`=2-4 for 'zstd'. Called as an argument to `compress</literal> and similar functions.</paragraph></list_item><list_item><paragraph><literal>releasegil</literal>: optionally the Python Global Interpreter Lock (GIL) can be turned off during <literal>c-blosc</literal> operations by calling <literal>blosc.set_releasegil(True)</literal>. The default is off as there is a small overhead in releasing the GIL which can be significant for a small <literal>blocksize</literal>. GIL release is intended to be used in situations where other bounds (such as file or network I/O) are the rate-limiting ones and a Python <literal>ThreadPool</literal> or similar object can be used for parallel processing either with or without <literal>blosc</literal> threads. Initial testing suggests that an equal mix of <literal>ThreadPool</literal> and <literal>blosc</literal> threads is near optimal. I.e. a computer with 16 cores would have 4 <literal>blosc</literal> threads and 4 <literal>ThreadPool</literal> threads. An example of combining <literal>blosc</literal> and <literal>ThreadPool</literal> may be found in <literal>bench/threadpool.py</literal>.</paragraph></list_item></bullet_list> SphinxTranslator.dispatch_departure calling depart_section for <section ids="fine-tuning-compression-parameters" names="fine-tuning\ compression\ parameters"><title>Fine-tuning compression parameters</title><paragraph>There are a number of parameters that affect the de/compression bandwidth achieved by <literal>blosc</literal>:</paragraph><bullet_list bullet="*"><list_item><paragraph>The information content of the underlying data, and <literal>chunksize</literal>: the size of the data in each call to <literal>compress</literal> and analogous functions. ‘blosc’ does not manage chunksize itself, but an example implementation can be seen in the <literal>bloscpack</literal> module.</paragraph></list_item><list_item><paragraph><literal>n_threads</literal>: The number of threads to spawn inside <literal>c-blosc</literal>. <literal>n_threads</literal> may be changed by calling <literal>blosc.set_nthreads(16)</literal> for example. <literal>blosc</literal> performance generally scales sub-linearly with the number of threads with a coefficient roughly around 0.5-0.67. I.e. the expected performance compared to a single thread is 1.0 / (0.6*n_threads). For systems with hyper-threading the optimum number of threads is usually a small over-subscription of the number of _physical_ (not virtual) cores.</paragraph></list_item><list_item><paragraph><literal>blocksize</literal>: is the size of each continuously memory-element that is compressed, in bytes. Normally <literal>blosc</literal> attempts to automatically guess the size of each compressed block of data, but the user can set it manually by calling <literal>blosc.set_blocksize( size_in_bytes )</literal> for hand optimized situations. Often the L2 cache size (e.g. 256kB for an Intel Haswell) is a good starting point for optimization.</paragraph></list_item><list_item><paragraph><literal>shuffle</literal>: as discussed above the <literal>shuffle</literal> mode can substantially improve compression ratios when the</paragraph></list_item><list_item><paragraph><literal>clevel</literal>: the compression level called for the algorithm. Called as an argument to <literal>compress</literal> and similar functions.</paragraph></list_item><list_item><paragraph><literal>cname</literal>: the compressor codec itself. Each codec has its own characteristics that also vary depending on the underlying data. For example, ‘lz4’ tends to prefer smaller <literal>blocksize</literal> and does not slow significantly with <literal>clevel</literal>. In comparison <literal>zlib</literal> and <literal>zstd</literal> both slow substantially with increasing <literal>clevel</literal>, with an inflection point around <literal>clevel`=4-5 for 'zlib' and `clevel`=2-4 for 'zstd'. Called as an argument to `compress</literal> and similar functions.</paragraph></list_item><list_item><paragraph><literal>releasegil</literal>: optionally the Python Global Interpreter Lock (GIL) can be turned off during <literal>c-blosc</literal> operations by calling <literal>blosc.set_releasegil(True)</literal>. The default is off as there is a small overhead in releasing the GIL which can be significant for a small <literal>blocksize</literal>. GIL release is intended to be used in situations where other bounds (such as file or network I/O) are the rate-limiting ones and a Python <literal>ThreadPool</literal> or similar object can be used for parallel processing either with or without <literal>blosc</literal> threads. Initial testing suggests that an equal mix of <literal>ThreadPool</literal> and <literal>blosc</literal> threads is near optimal. I.e. a computer with 16 cores would have 4 <literal>blosc</literal> threads and 4 <literal>ThreadPool</literal> threads. An example of combining <literal>blosc</literal> and <literal>ThreadPool</literal> may be found in <literal>bench/threadpool.py</literal>.</paragraph></list_item></bullet_list></section> SphinxTranslator.dispatch_visit calling visit_section for <section ids="links-to-external-discussions-on-blosc-optimization" names="links\ to\ external\ discussions\ on\ blosc\ optimization"><title>Links to external discussions on <literal>blosc</literal> optimization</title><bullet_list bullet="*"><list_item><paragraph><reference name="Synthetic Benchmarks" refuri="http://www.blosc.org/synthetic-benchmarks.html">Synthetic Benchmarks</reference><target ids="['synthetic-benchmarks']" names="['synthetic benchmarks']" refuri="http://www.blosc.org/synthetic-benchmarks.html"/> by Francesc Alted</paragraph></list_item><list_item><paragraph><reference name="Genotype compressor benchmark" refuri="http://alimanfoo.github.io/2016/09/21/genotype-compression-benchmark.html">Genotype compressor benchmark</reference><target ids="['genotype-compressor-benchmark']" names="['genotype compressor benchmark']" refuri="http://alimanfoo.github.io/2016/09/21/genotype-compression-benchmark.html"/> by Alistair Miles</paragraph></list_item></bullet_list></section> SphinxTranslator.dispatch_visit calling visit_title for <title>Links to external discussions on <literal>blosc</literal> optimization</title> SphinxTranslator.dispatch_visit calling visit_Text for Links to external discussions on SphinxTranslator.dispatch_departure calling depart_Text for Links to external discussions on SphinxTranslator.dispatch_visit calling visit_literal for <literal>blosc</literal> SphinxTranslator.dispatch_visit calling visit_Text for blosc SphinxTranslator.dispatch_departure calling depart_Text for blosc SphinxTranslator.dispatch_departure calling depart_literal for <literal>blosc</literal> SphinxTranslator.dispatch_visit calling visit_Text for optimization SphinxTranslator.dispatch_departure calling depart_Text for optimization SphinxTranslator.dispatch_departure calling depart_title for <title>Links to external discussions on <literal>blosc</literal> optimization</title> SphinxTranslator.dispatch_visit calling visit_bullet_list for <bullet_list bullet="*"><list_item><paragraph><reference name="Synthetic Benchmarks" refuri="http://www.blosc.org/synthetic-benchmarks.html">Synthetic Benchmarks</reference><target ids="['synthetic-benchmarks']" names="['synthetic benchmarks']" refuri="http://www.blosc.org/synthetic-benchmarks.html"/> by Francesc Alted</paragraph></list_item><list_item><paragraph><reference name="Genotype compressor benchmark" refuri="http://alimanfoo.github.io/2016/09/21/genotype-compression-benchmark.html">Genotype compressor benchmark</reference><target ids="['genotype-compressor-benchmark']" names="['genotype compressor benchmark']" refuri="http://alimanfoo.github.io/2016/09/21/genotype-compression-benchmark.html"/> by Alistair Miles</paragraph></list_item></bullet_list> SphinxTranslator.dispatch_visit calling visit_list_item for <list_item><paragraph><reference name="Synthetic Benchmarks" refuri="http://www.blosc.org/synthetic-benchmarks.html">Synthetic Benchmarks</reference><target ids="['synthetic-benchmarks']" names="['synthetic benchmarks']" refuri="http://www.blosc.org/synthetic-benchmarks.html"/> by Francesc Alted</paragraph></list_item> SphinxTranslator.dispatch_visit calling visit_paragraph for <paragraph><reference name="Synthetic Benchmarks" refuri="http://www.blosc.org/synthetic-benchmarks.html">Synthetic Benchmarks</reference><target ids="['synthetic-benchmarks']" names="['synthetic benchmarks']" refuri="http://www.blosc.org/synthetic-benchmarks.html"/> by Francesc Alted</paragraph> SphinxTranslator.dispatch_visit calling visit_reference for <reference name="Synthetic Benchmarks" refuri="http://www.blosc.org/synthetic-benchmarks.html">Synthetic Benchmarks</reference> SphinxTranslator.dispatch_visit calling visit_Text for Synthetic Benchmarks SphinxTranslator.dispatch_departure calling depart_Text for Synthetic Benchmarks SphinxTranslator.dispatch_departure calling depart_reference for <reference name="Synthetic Benchmarks" refuri="http://www.blosc.org/synthetic-benchmarks.html">Synthetic Benchmarks</reference> SphinxTranslator.dispatch_visit calling visit_target for <target ids="['synthetic-benchmarks']" names="['synthetic benchmarks']" refuri="http://www.blosc.org/synthetic-benchmarks.html"/> SphinxTranslator.dispatch_departure calling depart_target for <target ids="['synthetic-benchmarks']" names="['synthetic benchmarks']" refuri="http://www.blosc.org/synthetic-benchmarks.html"/> SphinxTranslator.dispatch_visit calling visit_Text for by Francesc Alted SphinxTranslator.dispatch_departure calling depart_Text for by Francesc Alted SphinxTranslator.dispatch_departure calling depart_paragraph for <paragraph><reference name="Synthetic Benchmarks" refuri="http://www.blosc.org/synthetic-benchmarks.html">Synthetic Benchmarks</reference><target ids="['synthetic-benchmarks']" names="['synthetic benchmarks']" refuri="http://www.blosc.org/synthetic-benchmarks.html"/> by Francesc Alted</paragraph> SphinxTranslator.dispatch_departure calling depart_list_item for <list_item><paragraph><reference name="Synthetic Benchmarks" refuri="http://www.blosc.org/synthetic-benchmarks.html">Synthetic Benchmarks</reference><target ids="['synthetic-benchmarks']" names="['synthetic benchmarks']" refuri="http://www.blosc.org/synthetic-benchmarks.html"/> by Francesc Alted</paragraph></list_item> SphinxTranslator.dispatch_visit calling visit_list_item for <list_item><paragraph><reference name="Genotype compressor benchmark" refuri="http://alimanfoo.github.io/2016/09/21/genotype-compression-benchmark.html">Genotype compressor benchmark</reference><target ids="['genotype-compressor-benchmark']" names="['genotype compressor benchmark']" refuri="http://alimanfoo.github.io/2016/09/21/genotype-compression-benchmark.html"/> by Alistair Miles</paragraph></list_item> SphinxTranslator.dispatch_visit calling visit_paragraph for <paragraph><reference name="Genotype compressor benchmark" refuri="http://alimanfoo.github.io/2016/09/21/genotype-compression-benchmark.html">Genotype compressor benchmark</reference><target ids="['genotype-compressor-benchmark']" names="['genotype compressor benchmark']" refuri="http://alimanfoo.github.io/2016/09/21/genotype-compression-benchmark.html"/> by Alistair Miles</paragraph> SphinxTranslator.dispatch_visit calling visit_reference for <reference name="Genotype compressor benchmark" refuri="http://alimanfoo.github.io/2016/09/21/genotype-compression-benchmark.html">Genotype compressor benchmark</reference> SphinxTranslator.dispatch_visit calling visit_Text for Genotype compressor benchmark SphinxTranslator.dispatch_departure calling depart_Text for Genotype compressor benchmark SphinxTranslator.dispatch_departure calling depart_reference for <reference name="Genotype compressor benchmark" refuri="http://alimanfoo.github.io/2016/09/21/genotype-compression-benchmark.html">Genotype compressor benchmark</reference> SphinxTranslator.dispatch_visit calling visit_target for <target ids="['genotype-compressor-benchmark']" names="['genotype compressor benchmark']" refuri="http://alimanfoo.github.io/2016/09/21/genotype-compression-benchmark.html"/> SphinxTranslator.dispatch_departure calling depart_target for <target ids="['genotype-compressor-benchmark']" names="['genotype compressor benchmark']" refuri="http://alimanfoo.github.io/2016/09/21/genotype-compression-benchmark.html"/> SphinxTranslator.dispatch_visit calling visit_Text for by Alistair Miles SphinxTranslator.dispatch_departure calling depart_Text for by Alistair Miles SphinxTranslator.dispatch_departure calling depart_paragraph for <paragraph><reference name="Genotype compressor benchmark" refuri="http://alimanfoo.github.io/2016/09/21/genotype-compression-benchmark.html">Genotype compressor benchmark</reference><target ids="['genotype-compressor-benchmark']" names="['genotype compressor benchmark']" refuri="http://alimanfoo.github.io/2016/09/21/genotype-compression-benchmark.html"/> by Alistair Miles</paragraph> SphinxTranslator.dispatch_departure calling depart_list_item for <list_item><paragraph><reference name="Genotype compressor benchmark" refuri="http://alimanfoo.github.io/2016/09/21/genotype-compression-benchmark.html">Genotype compressor benchmark</reference><target ids="['genotype-compressor-benchmark']" names="['genotype compressor benchmark']" refuri="http://alimanfoo.github.io/2016/09/21/genotype-compression-benchmark.html"/> by Alistair Miles</paragraph></list_item> SphinxTranslator.dispatch_departure calling depart_bullet_list for <bullet_list bullet="*"><list_item><paragraph><reference name="Synthetic Benchmarks" refuri="http://www.blosc.org/synthetic-benchmarks.html">Synthetic Benchmarks</reference><target ids="['synthetic-benchmarks']" names="['synthetic benchmarks']" refuri="http://www.blosc.org/synthetic-benchmarks.html"/> by Francesc Alted</paragraph></list_item><list_item><paragraph><reference name="Genotype compressor benchmark" refuri="http://alimanfoo.github.io/2016/09/21/genotype-compression-benchmark.html">Genotype compressor benchmark</reference><target ids="['genotype-compressor-benchmark']" names="['genotype compressor benchmark']" refuri="http://alimanfoo.github.io/2016/09/21/genotype-compression-benchmark.html"/> by Alistair Miles</paragraph></list_item></bullet_list> SphinxTranslator.dispatch_departure calling depart_section for <section ids="links-to-external-discussions-on-blosc-optimization" names="links\ to\ external\ discussions\ on\ blosc\ optimization"><title>Links to external discussions on <literal>blosc</literal> optimization</title><bullet_list bullet="*"><list_item><paragraph><reference name="Synthetic Benchmarks" refuri="http://www.blosc.org/synthetic-benchmarks.html">Synthetic Benchmarks</reference><target ids="['synthetic-benchmarks']" names="['synthetic benchmarks']" refuri="http://www.blosc.org/synthetic-benchmarks.html"/> by Francesc Alted</paragraph></list_item><list_item><paragraph><reference name="Genotype compressor benchmark" refuri="http://alimanfoo.github.io/2016/09/21/genotype-compression-benchmark.html">Genotype compressor benchmark</reference><target ids="['genotype-compressor-benchmark']" names="['genotype compressor benchmark']" refuri="http://alimanfoo.github.io/2016/09/21/genotype-compression-benchmark.html"/> by Alistair Miles</paragraph></list_item></bullet_list></section> SphinxTranslator.dispatch_departure calling depart_section for <section ids="tutorials" names="tutorials"><title>Tutorials</title><paragraph>Using <literal>python-blosc</literal> (or just <literal>blosc</literal>, because we are going to talk always on how to use it in a Python environment) is pretty easy. It basically mimics the API of the <literal>zlib</literal> module included in the standard Python library.</paragraph><paragraph>Here are some examples on how to use it. For the full documentation, please refer to the <reference name="Library Reference" refuri="http://python-blosc.blosc.org/reference.html">Library Reference</reference><target ids="['library-reference']" names="['library reference']" refuri="http://python-blosc.blosc.org/reference.html"/> section.</paragraph><paragraph>Most of the times in this tutorial have been obtained using a VM with 2 cores on top of a Intel(R) Core(TM) i5-3380M CPU @ 2.90GHz.</paragraph><section ids="compressing-and-decompressing-with-blosc" names="compressing\ and\ decompressing\ with\ blosc"><title>Compressing and decompressing with <literal>blosc</literal></title><paragraph>Let’s start creating a NumPy array with 80 MB full of data:</paragraph><literal_block force="False" language="default" linenos="False" xml:space="preserve">>>> import numpy as np >>> a = np.linspace(0, 100, 1e7) >>> bytes_array = a.tostring() # get an array of bytes</literal_block><paragraph>and let’s compare Blosc operation with <literal>zlib</literal> (please note that we are using IPython for leveraging its timing capabilities):</paragraph><literal_block force="False" language="default" linenos="False" xml:space="preserve">>>> import zlib >>> %timeit zlib.compress(bytes_array) 1 loops, best of 3: 4.65 s per loop # ~ 17 MB/s >>> import blosc >>> %timeit blosc.compress(bytes_array, typesize=8) 100 loops, best of 3: 17.7 ms per loop # ~ 4.5 GB/s and 260x faster than zlib</literal_block><paragraph>but Blosc can use different codecs under the hood. Let’s try the LZ4 codec (instead of the BloscLZ which is the default):</paragraph><literal_block force="False" language="default" linenos="False" xml:space="preserve">>>> %timeit blosc.compress(bytes_array, typesize=8, cname='lz4') 100 loops, best of 3: 8.77 ms per loop # ~ 9.1 GB/s and 530x faster than zlib</literal_block><paragraph>It is important to note that this is quite more than the speed of a memcpy() in this machine:</paragraph><literal_block force="False" language="default" linenos="False" xml:space="preserve">>>> %timeit a.copy() 10 loops, best of 3: 27.2 ms per loop # ~ 2.9 GB/s</literal_block><paragraph>which means that both BloscLZ and LZ4 codecs can be faster than memcpy(), just as the Blosc slogan promises.</paragraph><paragraph>Blosc also comes with the ZLib codec too, and it actually runs faster than the naked zlib:</paragraph><literal_block force="False" language="default" linenos="False" xml:space="preserve">>>> %timeit blosc.compress(bytes_array, typesize=8, cname='zlib') 10 loops, best of 3: 139 ms per loop # ~ 580 MB/s and 33x faster than zlib</literal_block><paragraph>The reason why the internal Zlib codec in Blosc is faster than the ‘naked’ one is 1) that Blosc can use multithreading (using 8 threads here) and 2) that Blosc splits the data to compress in smaller blocks that are more friendly to the caches in modern CPUs.</paragraph><paragraph>Now, let’s have a look at the compression ratios:</paragraph><literal_block force="False" language="default" linenos="False" xml:space="preserve">>>> zpacked = zlib.compress(bytes_array); len(zpacked) 52994692 >>> round(len(bytes_array) / float(len(zpacked)), 3) 1.51 # zlib achieves a 1.5x compression ratio >>> blzpacked = blosc.compress(bytes_array, typesize=8, cname='blosclz'); len(blzpacked) 6986533 >>> round(len(bytes_array) / float(len(blzpacked)), 3) 11.451 # BloscLZ codec reaches more than 11x compression ratio >>> lz4packed = blosc.compress(bytes_array, typesize=8, cname='lz4'); len(lz4packed) 3716015 >>> round(len(bytes_array) / float(len(lz4packed)), 3) 21.528 # LZ4 codec reaches more than 21x compression ratio</literal_block><paragraph>Here we can see how Blosc, with its different codecs, is very efficient compressing this kind of binary data. It is important to note that the codecs alone are not the only responsible for high compression ratios. See what a naked LZ4 codec can do on the same string:</paragraph><literal_block force="False" language="default" linenos="False" xml:space="preserve">>>> import lz4 >>> lz4_packed = lz4.compress(bytes_array); len(lz4_packed) 80309133 >>> round(len(bytes_array) / float(len(lz4_packed)), 3) 0.996</literal_block><paragraph>That is, the naked LZ4 codec cannot compress the array of bytes at all, whereas through Blosc LZ4 can compress quite a lot. In fact, this difference in compression also happens with ZLib:</paragraph><literal_block force="False" language="default" linenos="False" xml:space="preserve">>>> zlibpacked = blosc.compress(bytes_array, typesize=8, cname='zlib'); len(zlibpacked) 875274 >>> round(len(zpacked) / float(len(zlibpacked)), 3) 60.546 # ZLib codec reaches 60x more compression than naked ZLib</literal_block><paragraph>Here it is a plot with the different compression ratios achieved:</paragraph><reference internal="True" refuri="../_images/cratio-blosc-codecs.png"><image candidates="{'*': 'cratio-blosc-codecs.png'}" height="600" scale="75" uri="../_images/cratio-blosc-codecs.png" width="800"/></reference><paragraph>The explanation for this apparently shocking result is that Blosc uses filters (<literal>SHUFFLE</literal> and <literal>BITSHUFFLE</literal> currently, but the list can increase more in the future) prior to the compression stage and these allow in general for better compression ratios when using binary data.</paragraph><paragraph>How about decompression?:</paragraph><literal_block force="False" language="default" linenos="False" xml:space="preserve">>>> %timeit zlib.decompress(zpacked) 1 loops, best of 3: 275 ms per loop # ~ 290 MB/s >>> %timeit blosc.decompress(blzpacked) 100 loops, best of 3: 17.3 ms per loop # ~ 4.3 GB/s and 16x faster than zlib >>> %timeit blosc.decompress(lz4packed) 10 loops, best of 3: 41.9 ms per loop # ~ 1.9 GB/s and 6.5x faster than zlib >>> %timeit blosc.decompress(zlibpacked) 10 loops, best of 3: 40.7 ms per loop # ~ 2.0 GB/S and 6.8x faster than zlib</literal_block><paragraph>Here we see a couple of things:</paragraph><bullet_list bullet="*"><list_item><paragraph>All the internal codecs in Blosc are way faster than naked ZLib</paragraph></list_item><list_item><paragraph>The fastest codec for decompressing here is BloscLZ (remember that LZ4 was the fastest for compression).</paragraph></list_item></bullet_list><paragraph>The next plot summarizes the speed benchmarks above:</paragraph><reference internal="True" refuri="../_images/speed-blosc-codecs.png"><image candidates="{'*': 'speed-blosc-codecs.png'}" height="600" scale="75" uri="../_images/speed-blosc-codecs.png" width="800"/></reference><paragraph>These results should reinforce the idea that there is not a single codec that wins in all areas (compression ratio, compression speed and decompression speed) and each has its pro’s and con’s. It is up to the user to choose whatever fits better to him (hint: there is no replacement for experimentation).</paragraph><paragraph>Finally, here it is the way to discover all the internal codecs inside your Blosc package:</paragraph><literal_block force="False" language="default" linenos="False" xml:space="preserve">>>> blosc.cnames ['blosclz', 'lz4', 'lz4hc', 'snappy', 'zlib', 'zstd']</literal_block><paragraph><emphasis>Note</emphasis>: the actual list of codecs may change depening on how you have compiled the underlying C-Blosc library.</paragraph></section><section ids="using-different-filters" names="using\ different\ filters"><title>Using different filters</title><paragraph>In the same way that you can use different codecs inside Blosc, you can use different filters too (currently <literal>SHUFFLE</literal> and <literal>BITSHUFLE</literal>). These allow the integrated compressors to compress more efficiently or not, depending on your datasets.</paragraph><paragraph>Here it is an example using the <literal>SHUFFLE</literal> filter:</paragraph><literal_block force="False" language="default" linenos="False" xml:space="preserve">>>> %time bpacked = blosc.compress(bytes_array, shuffle=blosc.SHUFFLE) CPU times: user 112 ms, sys: 4 ms, total: 116 ms Wall time: 29.9 ms >>> len(bpacked) 6986533</literal_block><paragraph>Here there is another example using <literal>BITSHUFFLE</literal>:</paragraph><literal_block force="False" language="default" linenos="False" xml:space="preserve">>>> %time bpacked = blosc.compress(bytes_array, shuffle=blosc.BITSHUFFLE) CPU times: user 120 ms, sys: 8 ms, total: 128 ms Wall time: 32.9 ms >>> len(bpacked) 5942257 # ~ 1.2x smaller than blosclz/shuffle</literal_block><paragraph>You can also deactivate filters completely with <literal>NOSHUFFLE</literal>:</paragraph><literal_block force="False" language="default" linenos="False" xml:space="preserve">>>> %time bpacked = blosc.compress(bytes_array, shuffle=blosc.NOSHUFFLE) CPU times: user 416 ms, sys: 8 ms, total: 424 ms Wall time: 107 ms >>> len(bpacked) 74323591 # just a 7% of compression wrt the original buffer</literal_block><paragraph>So you have quite a bit of flexibility on choosing different codecs and filters inside Blosc. Again, depending on the dataset you have and the requeriments on performance, you may want to experiment a bit before sticking with your preferred one.</paragraph></section><section ids="supporting-the-buffer-interface" names="supporting\ the\ buffer\ interface"><title>Supporting the buffer interface</title><paragraph>python-blosc supports compressing and decompressing from any bytes-like object that supports the buffer-interface: this includes <literal>buffer</literal>, <literal>memoryview</literal> and <literal>bytearray</literal>:</paragraph><literal_block force="False" language="default" linenos="False" xml:space="preserve">>>> input_bytes = b"abcdefghijklmnopqrstuvwxyz" >>> blosc.compress(input_bytes, typesize=1) '\x02\x01\x03\x01\x1a\x00\x00\x00\x1a\x00\x00\x00*\x00\x00\x00abcdefghijklmnopqrstuvwxyz' >>> blosc.compress(memoryview(input_bytes), typesize=1) '\x02\x01\x03\x01\x1a\x00\x00\x00\x1a\x00\x00\x00*\x00\x00\x00abcdefghijklmnopqrstuvwxyz' >>> blosc.compress(bytearray(input_bytes), typesize=1) '\x02\x01\x03\x01\x1a\x00\x00\x00\x1a\x00\x00\x00*\x00\x00\x00abcdefghijklmnopqrstuvwxyz' >>> compressed = blosc.compress(input_bytes, typesize=1) >>> blosc.decompress(compressed) 'abcdefghijklmnopqrstuvwxyz' >>> blosc.decompress(memoryview(compressed)) 'abcdefghijklmnopqrstuvwxyz' >>> blosc.decompress(bytearray(compressed)) 'abcdefghijklmnopqrstuvwxyz'</literal_block><paragraph>Note however, that there are subtle differences between Python 2.x and 3.x. For example, in Python 2.x we can compress/decompress both <literal>str</literal> and <literal>unicode</literal> types, whereas in Python 3.x we can only compress ‘binary’ data which does <emphasis>not</emphasis> include <literal>unicode</literal>.</paragraph></section><section ids="packaging-numpy-arrays" names="packaging\ numpy\ arrays"><title>Packaging NumPy arrays</title><paragraph>Want to use <literal>blosc</literal> to compress and decompress NumPy objects without having to worry about passing the typesize for optimal compression, or having to create the final container for decompression? <literal>blosc</literal> comes with the <literal>pack_array</literal> and <literal>unpack_array</literal> to perform this in a handy way:</paragraph><literal_block force="False" language="default" linenos="False" xml:space="preserve">>>> a = np.linspace(0, 100, 1e7) >>> packed = blosc.pack_array(a) >>> %timeit blosc.pack_array(a) 10 loops, best of 3: 104 ms per loop # ~ 770 MB/s >>> %timeit blosc.unpack_array(packed) 10 loops, best of 3: 76.3 ms per loop # ~ 1 GB/s</literal_block><paragraph>Although this is a convenient way for compressing/decompressing NumPy arrays, this method uses pickle/unpickle behind the scenes. This step implies additional copies, which takes both memory and time.</paragraph></section><section ids="compressing-from-a-data-pointer" names="compressing\ from\ a\ data\ pointer"><title>Compressing from a data pointer</title><paragraph>For avoiding the data copy problem in the previous section, <literal>blosc</literal> comes with a couple of lower-level functions: <literal>compress_ptr</literal> and <literal>decompress_ptr</literal>. Here are they in action:</paragraph><literal_block force="False" language="default" linenos="False" xml:space="preserve">>>> c = blosc.compress_ptr(a.__array_interface__['data'][0], a.size, a.dtype.itemsize, 9, True) >>> %timeit blosc.compress_ptr(a.__array_interface__['data'][0], a.size, a.dtype.itemsize, 9, True) 10 loops, best of 3: 17.8 ms per loop # ~ 4.5 GB/s >>> a2 = np.empty(a.size, dtype=a.dtype) >>> %timeit blosc.decompress_ptr(c, a2.__array_interface__['data'][0]) 100 loops, best of 3: 11 ms per loop # ~ 7.3 GB/s >>> (a == a2).all() True</literal_block><paragraph>As you see, these are really low level functions because you should pass actual pointers where the data is, as well as the size and itemsize (for compression). Needless to say, it is very easy to cause a segfault by passing incorrect parameters to the functions (wrong pointer or wrong size).</paragraph><paragraph>On the other hand, and contrarily to the <literal>pack_array</literal> / <literal>unpack_array</literal> method, the <literal>compress_ptr</literal> / <literal>decompress_ptr</literal> functions do not need to make internal copies of the data buffers, so they are extremely fast (as much as the C-Blosc library can be), but you have to provide a container when doing the de-serialization.</paragraph><paragraph><literal>blosc</literal> has a maximum <literal>blocksize</literal> of 2**31 bytes = 2 GB. Larger <literal>numpy</literal> arrays must be chunked by slicing, for example as:</paragraph><literal_block force="False" language="default" linenos="False" xml:space="preserve">>>> c = b'' >>> for index in np.arange( a.shape[0] ): c += blosc.compress_ptr(a[index,...].__array_interface__['data'][0], a.size, a.dtype.itemsize, 9, True)</literal_block></section><section ids="fine-tuning-compression-parameters" names="fine-tuning\ compression\ parameters"><title>Fine-tuning compression parameters</title><paragraph>There are a number of parameters that affect the de/compression bandwidth achieved by <literal>blosc</literal>:</paragraph><bullet_list bullet="*"><list_item><paragraph>The information content of the underlying data, and <literal>chunksize</literal>: the size of the data in each call to <literal>compress</literal> and analogous functions. ‘blosc’ does not manage chunksize itself, but an example implementation can be seen in the <literal>bloscpack</literal> module.</paragraph></list_item><list_item><paragraph><literal>n_threads</literal>: The number of threads to spawn inside <literal>c-blosc</literal>. <literal>n_threads</literal> may be changed by calling <literal>blosc.set_nthreads(16)</literal> for example. <literal>blosc</literal> performance generally scales sub-linearly with the number of threads with a coefficient roughly around 0.5-0.67. I.e. the expected performance compared to a single thread is 1.0 / (0.6*n_threads). For systems with hyper-threading the optimum number of threads is usually a small over-subscription of the number of _physical_ (not virtual) cores.</paragraph></list_item><list_item><paragraph><literal>blocksize</literal>: is the size of each continuously memory-element that is compressed, in bytes. Normally <literal>blosc</literal> attempts to automatically guess the size of each compressed block of data, but the user can set it manually by calling <literal>blosc.set_blocksize( size_in_bytes )</literal> for hand optimized situations. Often the L2 cache size (e.g. 256kB for an Intel Haswell) is a good starting point for optimization.</paragraph></list_item><list_item><paragraph><literal>shuffle</literal>: as discussed above the <literal>shuffle</literal> mode can substantially improve compression ratios when the</paragraph></list_item><list_item><paragraph><literal>clevel</literal>: the compression level called for the algorithm. Called as an argument to <literal>compress</literal> and similar functions.</paragraph></list_item><list_item><paragraph><literal>cname</literal>: the compressor codec itself. Each codec has its own characteristics that also vary depending on the underlying data. For example, ‘lz4’ tends to prefer smaller <literal>blocksize</literal> and does not slow significantly with <literal>clevel</literal>. In comparison <literal>zlib</literal> and <literal>zstd</literal> both slow substantially with increasing <literal>clevel</literal>, with an inflection point around <literal>clevel`=4-5 for 'zlib' and `clevel`=2-4 for 'zstd'. Called as an argument to `compress</literal> and similar functions.</paragraph></list_item><list_item><paragraph><literal>releasegil</literal>: optionally the Python Global Interpreter Lock (GIL) can be turned off during <literal>c-blosc</literal> operations by calling <literal>blosc.set_releasegil(True)</literal>. The default is off as there is a small overhead in releasing the GIL which can be significant for a small <literal>blocksize</literal>. GIL release is intended to be used in situations where other bounds (such as file or network I/O) are the rate-limiting ones and a Python <literal>ThreadPool</literal> or similar object can be used for parallel processing either with or without <literal>blosc</literal> threads. Initial testing suggests that an equal mix of <literal>ThreadPool</literal> and <literal>blosc</literal> threads is near optimal. I.e. a computer with 16 cores would have 4 <literal>blosc</literal> threads and 4 <literal>ThreadPool</literal> threads. An example of combining <literal>blosc</literal> and <literal>ThreadPool</literal> may be found in <literal>bench/threadpool.py</literal>.</paragraph></list_item></bullet_list></section><section ids="links-to-external-discussions-on-blosc-optimization" names="links\ to\ external\ discussions\ on\ blosc\ optimization"><title>Links to external discussions on <literal>blosc</literal> optimization</title><bullet_list bullet="*"><list_item><paragraph><reference name="Synthetic Benchmarks" refuri="http://www.blosc.org/synthetic-benchmarks.html">Synthetic Benchmarks</reference><target ids="['synthetic-benchmarks']" names="['synthetic benchmarks']" refuri="http://www.blosc.org/synthetic-benchmarks.html"/> by Francesc Alted</paragraph></list_item><list_item><paragraph><reference name="Genotype compressor benchmark" refuri="http://alimanfoo.github.io/2016/09/21/genotype-compression-benchmark.html">Genotype compressor benchmark</reference><target ids="['genotype-compressor-benchmark']" names="['genotype compressor benchmark']" refuri="http://alimanfoo.github.io/2016/09/21/genotype-compression-benchmark.html"/> by Alistair Miles</paragraph></list_item></bullet_list></section></section> SphinxTranslator.dispatch_departure calling depart_document for <document source="/usr/src/RPM/BUILD/python3-module-blosc-1.5.1/doc/tutorial.rst"><section ids="tutorials" names="tutorials"><title>Tutorials</title><paragraph>Using <literal>python-blosc</literal> (or just <literal>blosc</literal>, because we are going to talk always on how to use it in a Python environment) is pretty easy. It basically mimics the API of the <literal>zlib</literal> module included in the standard Python library.</paragraph><paragraph>Here are some examples on how to use it. For the full documentation, please refer to the <reference name="Library Reference" refuri="http://python-blosc.blosc.org/reference.html">Library Reference</reference><target ids="['library-reference']" names="['library reference']" refuri="http://python-blosc.blosc.org/reference.html"/> section.</paragraph><paragraph>Most of the times in this tutorial have been obtained using a VM with 2 cores on top of a Intel(R) Core(TM) i5-3380M CPU @ 2.90GHz.</paragraph><section ids="compressing-and-decompressing-with-blosc" names="compressing\ and\ decompressing\ with\ blosc"><title>Compressing and decompressing with <literal>blosc</literal></title><paragraph>Let’s start creating a NumPy array with 80 MB full of data:</paragraph><literal_block force="False" language="default" linenos="False" xml:space="preserve">>>> import numpy as np >>> a = np.linspace(0, 100, 1e7) >>> bytes_array = a.tostring() # get an array of bytes</literal_block><paragraph>and let’s compare Blosc operation with <literal>zlib</literal> (please note that we are using IPython for leveraging its timing capabilities):</paragraph><literal_block force="False" language="default" linenos="False" xml:space="preserve">>>> import zlib >>> %timeit zlib.compress(bytes_array) 1 loops, best of 3: 4.65 s per loop # ~ 17 MB/s >>> import blosc >>> %timeit blosc.compress(bytes_array, typesize=8) 100 loops, best of 3: 17.7 ms per loop # ~ 4.5 GB/s and 260x faster than zlib</literal_block><paragraph>but Blosc can use different codecs under the hood. Let’s try the LZ4 codec (instead of the BloscLZ which is the default):</paragraph><literal_block force="False" language="default" linenos="False" xml:space="preserve">>>> %timeit blosc.compress(bytes_array, typesize=8, cname='lz4') 100 loops, best of 3: 8.77 ms per loop # ~ 9.1 GB/s and 530x faster than zlib</literal_block><paragraph>It is important to note that this is quite more than the speed of a memcpy() in this machine:</paragraph><literal_block force="False" language="default" linenos="False" xml:space="preserve">>>> %timeit a.copy() 10 loops, best of 3: 27.2 ms per loop # ~ 2.9 GB/s</literal_block><paragraph>which means that both BloscLZ and LZ4 codecs can be faster than memcpy(), just as the Blosc slogan promises.</paragraph><paragraph>Blosc also comes with the ZLib codec too, and it actually runs faster than the naked zlib:</paragraph><literal_block force="False" language="default" linenos="False" xml:space="preserve">>>> %timeit blosc.compress(bytes_array, typesize=8, cname='zlib') 10 loops, best of 3: 139 ms per loop # ~ 580 MB/s and 33x faster than zlib</literal_block><paragraph>The reason why the internal Zlib codec in Blosc is faster than the ‘naked’ one is 1) that Blosc can use multithreading (using 8 threads here) and 2) that Blosc splits the data to compress in smaller blocks that are more friendly to the caches in modern CPUs.</paragraph><paragraph>Now, let’s have a look at the compression ratios:</paragraph><literal_block force="False" language="default" linenos="False" xml:space="preserve">>>> zpacked = zlib.compress(bytes_array); len(zpacked) 52994692 >>> round(len(bytes_array) / float(len(zpacked)), 3) 1.51 # zlib achieves a 1.5x compression ratio >>> blzpacked = blosc.compress(bytes_array, typesize=8, cname='blosclz'); len(blzpacked) 6986533 >>> round(len(bytes_array) / float(len(blzpacked)), 3) 11.451 # BloscLZ codec reaches more than 11x compression ratio >>> lz4packed = blosc.compress(bytes_array, typesize=8, cname='lz4'); len(lz4packed) 3716015 >>> round(len(bytes_array) / float(len(lz4packed)), 3) 21.528 # LZ4 codec reaches more than 21x compression ratio</literal_block><paragraph>Here we can see how Blosc, with its different codecs, is very efficient compressing this kind of binary data. It is important to note that the codecs alone are not the only responsible for high compression ratios. See what a naked LZ4 codec can do on the same string:</paragraph><literal_block force="False" language="default" linenos="False" xml:space="preserve">>>> import lz4 >>> lz4_packed = lz4.compress(bytes_array); len(lz4_packed) 80309133 >>> round(len(bytes_array) / float(len(lz4_packed)), 3) 0.996</literal_block><paragraph>That is, the naked LZ4 codec cannot compress the array of bytes at all, whereas through Blosc LZ4 can compress quite a lot. In fact, this difference in compression also happens with ZLib:</paragraph><literal_block force="False" language="default" linenos="False" xml:space="preserve">>>> zlibpacked = blosc.compress(bytes_array, typesize=8, cname='zlib'); len(zlibpacked) 875274 >>> round(len(zpacked) / float(len(zlibpacked)), 3) 60.546 # ZLib codec reaches 60x more compression than naked ZLib</literal_block><paragraph>Here it is a plot with the different compression ratios achieved:</paragraph><reference internal="True" refuri="../_images/cratio-blosc-codecs.png"><image candidates="{'*': 'cratio-blosc-codecs.png'}" height="600" scale="75" uri="../_images/cratio-blosc-codecs.png" width="800"/></reference><paragraph>The explanation for this apparently shocking result is that Blosc uses filters (<literal>SHUFFLE</literal> and <literal>BITSHUFFLE</literal> currently, but the list can increase more in the future) prior to the compression stage and these allow in general for better compression ratios when using binary data.</paragraph><paragraph>How about decompression?:</paragraph><literal_block force="False" language="default" linenos="False" xml:space="preserve">>>> %timeit zlib.decompress(zpacked) 1 loops, best of 3: 275 ms per loop # ~ 290 MB/s >>> %timeit blosc.decompress(blzpacked) 100 loops, best of 3: 17.3 ms per loop # ~ 4.3 GB/s and 16x faster than zlib >>> %timeit blosc.decompress(lz4packed) 10 loops, best of 3: 41.9 ms per loop # ~ 1.9 GB/s and 6.5x faster than zlib >>> %timeit blosc.decompress(zlibpacked) 10 loops, best of 3: 40.7 ms per loop # ~ 2.0 GB/S and 6.8x faster than zlib</literal_block><paragraph>Here we see a couple of things:</paragraph><bullet_list bullet="*"><list_item><paragraph>All the internal codecs in Blosc are way faster than naked ZLib</paragraph></list_item><list_item><paragraph>The fastest codec for decompressing here is BloscLZ (remember that LZ4 was the fastest for compression).</paragraph></list_item></bullet_list><paragraph>The next plot summarizes the speed benchmarks above:</paragraph><reference internal="True" refuri="../_images/speed-blosc-codecs.png"><image candidates="{'*': 'speed-blosc-codecs.png'}" height="600" scale="75" uri="../_images/speed-blosc-codecs.png" width="800"/></reference><paragraph>These results should reinforce the idea that there is not a single codec that wins in all areas (compression ratio, compression speed and decompression speed) and each has its pro’s and con’s. It is up to the user to choose whatever fits better to him (hint: there is no replacement for experimentation).</paragraph><paragraph>Finally, here it is the way to discover all the internal codecs inside your Blosc package:</paragraph><literal_block force="False" language="default" linenos="False" xml:space="preserve">>>> blosc.cnames ['blosclz', 'lz4', 'lz4hc', 'snappy', 'zlib', 'zstd']</literal_block><paragraph><emphasis>Note</emphasis>: the actual list of codecs may change depening on how you have compiled the underlying C-Blosc library.</paragraph></section><section ids="using-different-filters" names="using\ different\ filters"><title>Using different filters</title><paragraph>In the same way that you can use different codecs inside Blosc, you can use different filters too (currently <literal>SHUFFLE</literal> and <literal>BITSHUFLE</literal>). These allow the integrated compressors to compress more efficiently or not, depending on your datasets.</paragraph><paragraph>Here it is an example using the <literal>SHUFFLE</literal> filter:</paragraph><literal_block force="False" language="default" linenos="False" xml:space="preserve">>>> %time bpacked = blosc.compress(bytes_array, shuffle=blosc.SHUFFLE) CPU times: user 112 ms, sys: 4 ms, total: 116 ms Wall time: 29.9 ms >>> len(bpacked) 6986533</literal_block><paragraph>Here there is another example using <literal>BITSHUFFLE</literal>:</paragraph><literal_block force="False" language="default" linenos="False" xml:space="preserve">>>> %time bpacked = blosc.compress(bytes_array, shuffle=blosc.BITSHUFFLE) CPU times: user 120 ms, sys: 8 ms, total: 128 ms Wall time: 32.9 ms >>> len(bpacked) 5942257 # ~ 1.2x smaller than blosclz/shuffle</literal_block><paragraph>You can also deactivate filters completely with <literal>NOSHUFFLE</literal>:</paragraph><literal_block force="False" language="default" linenos="False" xml:space="preserve">>>> %time bpacked = blosc.compress(bytes_array, shuffle=blosc.NOSHUFFLE) CPU times: user 416 ms, sys: 8 ms, total: 424 ms Wall time: 107 ms >>> len(bpacked) 74323591 # just a 7% of compression wrt the original buffer</literal_block><paragraph>So you have quite a bit of flexibility on choosing different codecs and filters inside Blosc. Again, depending on the dataset you have and the requeriments on performance, you may want to experiment a bit before sticking with your preferred one.</paragraph></section><section ids="supporting-the-buffer-interface" names="supporting\ the\ buffer\ interface"><title>Supporting the buffer interface</title><paragraph>python-blosc supports compressing and decompressing from any bytes-like object that supports the buffer-interface: this includes <literal>buffer</literal>, <literal>memoryview</literal> and <literal>bytearray</literal>:</paragraph><literal_block force="False" language="default" linenos="False" xml:space="preserve">>>> input_bytes = b"abcdefghijklmnopqrstuvwxyz" >>> blosc.compress(input_bytes, typesize=1) '\x02\x01\x03\x01\x1a\x00\x00\x00\x1a\x00\x00\x00*\x00\x00\x00abcdefghijklmnopqrstuvwxyz' >>> blosc.compress(memoryview(input_bytes), typesize=1) '\x02\x01\x03\x01\x1a\x00\x00\x00\x1a\x00\x00\x00*\x00\x00\x00abcdefghijklmnopqrstuvwxyz' >>> blosc.compress(bytearray(input_bytes), typesize=1) '\x02\x01\x03\x01\x1a\x00\x00\x00\x1a\x00\x00\x00*\x00\x00\x00abcdefghijklmnopqrstuvwxyz' >>> compressed = blosc.compress(input_bytes, typesize=1) >>> blosc.decompress(compressed) 'abcdefghijklmnopqrstuvwxyz' >>> blosc.decompress(memoryview(compressed)) 'abcdefghijklmnopqrstuvwxyz' >>> blosc.decompress(bytearray(compressed)) 'abcdefghijklmnopqrstuvwxyz'</literal_block><paragraph>Note however, that there are subtle differences between Python 2.x and 3.x. For example, in Python 2.x we can compress/decompress both <literal>str</literal> and <literal>unicode</literal> types, whereas in Python 3.x we can only compress ‘binary’ data which does <emphasis>not</emphasis> include <literal>unicode</literal>.</paragraph></section><section ids="packaging-numpy-arrays" names="packaging\ numpy\ arrays"><title>Packaging NumPy arrays</title><paragraph>Want to use <literal>blosc</literal> to compress and decompress NumPy objects without having to worry about passing the typesize for optimal compression, or having to create the final container for decompression? <literal>blosc</literal> comes with the <literal>pack_array</literal> and <literal>unpack_array</literal> to perform this in a handy way:</paragraph><literal_block force="False" language="default" linenos="False" xml:space="preserve">>>> a = np.linspace(0, 100, 1e7) >>> packed = blosc.pack_array(a) >>> %timeit blosc.pack_array(a) 10 loops, best of 3: 104 ms per loop # ~ 770 MB/s >>> %timeit blosc.unpack_array(packed) 10 loops, best of 3: 76.3 ms per loop # ~ 1 GB/s</literal_block><paragraph>Although this is a convenient way for compressing/decompressing NumPy arrays, this method uses pickle/unpickle behind the scenes. This step implies additional copies, which takes both memory and time.</paragraph></section><section ids="compressing-from-a-data-pointer" names="compressing\ from\ a\ data\ pointer"><title>Compressing from a data pointer</title><paragraph>For avoiding the data copy problem in the previous section, <literal>blosc</literal> comes with a couple of lower-level functions: <literal>compress_ptr</literal> and <literal>decompress_ptr</literal>. Here are they in action:</paragraph><literal_block force="False" language="default" linenos="False" xml:space="preserve">>>> c = blosc.compress_ptr(a.__array_interface__['data'][0], a.size, a.dtype.itemsize, 9, True) >>> %timeit blosc.compress_ptr(a.__array_interface__['data'][0], a.size, a.dtype.itemsize, 9, True) 10 loops, best of 3: 17.8 ms per loop # ~ 4.5 GB/s >>> a2 = np.empty(a.size, dtype=a.dtype) >>> %timeit blosc.decompress_ptr(c, a2.__array_interface__['data'][0]) 100 loops, best of 3: 11 ms per loop # ~ 7.3 GB/s >>> (a == a2).all() True</literal_block><paragraph>As you see, these are really low level functions because you should pass actual pointers where the data is, as well as the size and itemsize (for compression). Needless to say, it is very easy to cause a segfault by passing incorrect parameters to the functions (wrong pointer or wrong size).</paragraph><paragraph>On the other hand, and contrarily to the <literal>pack_array</literal> / <literal>unpack_array</literal> method, the <literal>compress_ptr</literal> / <literal>decompress_ptr</literal> functions do not need to make internal copies of the data buffers, so they are extremely fast (as much as the C-Blosc library can be), but you have to provide a container when doing the de-serialization.</paragraph><paragraph><literal>blosc</literal> has a maximum <literal>blocksize</literal> of 2**31 bytes = 2 GB. Larger <literal>numpy</literal> arrays must be chunked by slicing, for example as:</paragraph><literal_block force="False" language="default" linenos="False" xml:space="preserve">>>> c = b'' >>> for index in np.arange( a.shape[0] ): c += blosc.compress_ptr(a[index,...].__array_interface__['data'][0], a.size, a.dtype.itemsize, 9, True)</literal_block></section><section ids="fine-tuning-compression-parameters" names="fine-tuning\ compression\ parameters"><title>Fine-tuning compression parameters</title><paragraph>There are a number of parameters that affect the de/compression bandwidth achieved by <literal>blosc</literal>:</paragraph><bullet_list bullet="*"><list_item><paragraph>The information content of the underlying data, and <literal>chunksize</literal>: the size of the data in each call to <literal>compress</literal> and analogous functions. ‘blosc’ does not manage chunksize itself, but an example implementation can be seen in the <literal>bloscpack</literal> module.</paragraph></list_item><list_item><paragraph><literal>n_threads</literal>: The number of threads to spawn inside <literal>c-blosc</literal>. <literal>n_threads</literal> may be changed by calling <literal>blosc.set_nthreads(16)</literal> for example. <literal>blosc</literal> performance generally scales sub-linearly with the number of threads with a coefficient roughly around 0.5-0.67. I.e. the expected performance compared to a single thread is 1.0 / (0.6*n_threads). For systems with hyper-threading the optimum number of threads is usually a small over-subscription of the number of _physical_ (not virtual) cores.</paragraph></list_item><list_item><paragraph><literal>blocksize</literal>: is the size of each continuously memory-element that is compressed, in bytes. Normally <literal>blosc</literal> attempts to automatically guess the size of each compressed block of data, but the user can set it manually by calling <literal>blosc.set_blocksize( size_in_bytes )</literal> for hand optimized situations. Often the L2 cache size (e.g. 256kB for an Intel Haswell) is a good starting point for optimization.</paragraph></list_item><list_item><paragraph><literal>shuffle</literal>: as discussed above the <literal>shuffle</literal> mode can substantially improve compression ratios when the</paragraph></list_item><list_item><paragraph><literal>clevel</literal>: the compression level called for the algorithm. Called as an argument to <literal>compress</literal> and similar functions.</paragraph></list_item><list_item><paragraph><literal>cname</literal>: the compressor codec itself. Each codec has its own characteristics that also vary depending on the underlying data. For example, ‘lz4’ tends to prefer smaller <literal>blocksize</literal> and does not slow significantly with <literal>clevel</literal>. In comparison <literal>zlib</literal> and <literal>zstd</literal> both slow substantially with increasing <literal>clevel</literal>, with an inflection point around <literal>clevel`=4-5 for 'zlib' and `clevel`=2-4 for 'zstd'. Called as an argument to `compress</literal> and similar functions.</paragraph></list_item><list_item><paragraph><literal>releasegil</literal>: optionally the Python Global Interpreter Lock (GIL) can be turned off during <literal>c-blosc</literal> operations by calling <literal>blosc.set_releasegil(True)</literal>. The default is off as there is a small overhead in releasing the GIL which can be significant for a small <literal>blocksize</literal>. GIL release is intended to be used in situations where other bounds (such as file or network I/O) are the rate-limiting ones and a Python <literal>ThreadPool</literal> or similar object can be used for parallel processing either with or without <literal>blosc</literal> threads. Initial testing suggests that an equal mix of <literal>ThreadPool</literal> and <literal>blosc</literal> threads is near optimal. I.e. a computer with 16 cores would have 4 <literal>blosc</literal> threads and 4 <literal>ThreadPool</literal> threads. An example of combining <literal>blosc</literal> and <literal>ThreadPool</literal> may be found in <literal>bench/threadpool.py</literal>.</paragraph></list_item></bullet_list></section><section ids="links-to-external-discussions-on-blosc-optimization" names="links\ to\ external\ discussions\ on\ blosc\ optimization"><title>Links to external discussions on <literal>blosc</literal> optimization</title><bullet_list bullet="*"><list_item><paragraph><reference name="Synthetic Benchmarks" refuri="http://www.blosc.org/synthetic-benchmarks.html">Synthetic Benchmarks</reference><target ids="['synthetic-benchmarks']" names="['synthetic benchmarks']" refuri="http://www.blosc.org/synthetic-benchmarks.html"/> by Francesc Alted</paragraph></list_item><list_item><paragraph><reference name="Genotype compressor benchmark" refuri="http://alimanfoo.github.io/2016/09/21/genotype-compression-benchmark.html">Genotype compressor benchmark</reference><target ids="['genotype-compressor-benchmark']" names="['genotype compressor benchmark']" refuri="http://alimanfoo.github.io/2016/09/21/genotype-compression-benchmark.html"/> by Alistair Miles</paragraph></list_item></bullet_list></section></section></document> SphinxTranslator.dispatch_visit calling visit_document for <document source="<partial node>"><title>Library Reference</title></document> SphinxTranslator.dispatch_visit calling visit_title for <title>Library Reference</title> SphinxTranslator.dispatch_visit calling visit_Text for Library Reference SphinxTranslator.dispatch_departure calling depart_Text for Library Reference SphinxTranslator.dispatch_departure calling depart_title for <title>Library Reference</title> SphinxTranslator.dispatch_departure calling depart_document for <document source="<partial node>"><title>Library Reference</title></document> SphinxTranslator.dispatch_visit calling visit_document for <document source="<partial node>"><title>Installation</title></document> SphinxTranslator.dispatch_visit calling visit_title for <title>Installation</title> SphinxTranslator.dispatch_visit calling visit_Text for Installation SphinxTranslator.dispatch_departure calling depart_Text for Installation SphinxTranslator.dispatch_departure calling depart_title for <title>Installation</title> SphinxTranslator.dispatch_departure calling depart_document for <document source="<partial node>"><title>Installation</title></document> SphinxTranslator.dispatch_visit calling visit_document for <document source="<partial node>"><title>Welcome to python-blosc’s documentation!</title></document> SphinxTranslator.dispatch_visit calling visit_title for <title>Welcome to python-blosc’s documentation!</title> SphinxTranslator.dispatch_visit calling visit_Text for Welcome to python-blosc’s documentation! SphinxTranslator.dispatch_departure calling depart_Text for Welcome to python-blosc’s documentation! SphinxTranslator.dispatch_departure calling depart_title for <title>Welcome to python-blosc’s documentation!</title> SphinxTranslator.dispatch_departure calling depart_document for <document source="<partial node>"><title>Welcome to python-blosc’s documentation!</title></document> SphinxTranslator.dispatch_visit calling visit_document for <document source="<partial node>"><title>Tutorials</title></document> SphinxTranslator.dispatch_visit calling visit_title for <title>Tutorials</title> SphinxTranslator.dispatch_visit calling visit_Text for Tutorials SphinxTranslator.dispatch_departure calling depart_Text for Tutorials SphinxTranslator.dispatch_departure calling depart_title for <title>Tutorials</title> SphinxTranslator.dispatch_departure calling depart_document for <document source="<partial node>"><title>Tutorials</title></document> SphinxTranslator.dispatch_visit calling visit_document for <document source="<partial node>"><bullet_list><list_item><compact_paragraph><reference anchorname="" internal="True" refuri="#">Tutorials</reference></compact_paragraph><bullet_list><list_item><compact_paragraph><reference anchorname="#compressing-and-decompressing-with-blosc" internal="True" refuri="#compressing-and-decompressing-with-blosc">Compressing and decompressing with <literal>blosc</literal></reference></compact_paragraph></list_item><list_item><compact_paragraph><reference anchorname="#using-different-filters" internal="True" refuri="#using-different-filters">Using different filters</reference></compact_paragraph></list_item><list_item><compact_paragraph><reference anchorname="#supporting-the-buffer-interface" internal="True" refuri="#supporting-the-buffer-interface">Supporting the buffer interface</reference></compact_paragraph></list_item><list_item><compact_paragraph><reference anchorname="#packaging-numpy-arrays" internal="True" refuri="#packaging-numpy-arrays">Packaging NumPy arrays</reference></compact_paragraph></list_item><list_item><compact_paragraph><reference anchorname="#compressing-from-a-data-pointer" internal="True" refuri="#compressing-from-a-data-pointer">Compressing from a data pointer</reference></compact_paragraph></list_item><list_item><compact_paragraph><reference anchorname="#fine-tuning-compression-parameters" internal="True" refuri="#fine-tuning-compression-parameters">Fine-tuning compression parameters</reference></compact_paragraph></list_item><list_item><compact_paragraph><reference anchorname="#links-to-external-discussions-on-blosc-optimization" internal="True" refuri="#links-to-external-discussions-on-blosc-optimization">Links to external discussions on <literal>blosc</literal> optimization</reference></compact_paragraph></list_item></bullet_list></list_item></bullet_list></document> SphinxTranslator.dispatch_visit calling visit_bullet_list for <bullet_list><list_item><compact_paragraph><reference anchorname="" internal="True" refuri="#">Tutorials</reference></compact_paragraph><bullet_list><list_item><compact_paragraph><reference anchorname="#compressing-and-decompressing-with-blosc" internal="True" refuri="#compressing-and-decompressing-with-blosc">Compressing and decompressing with <literal>blosc</literal></reference></compact_paragraph></list_item><list_item><compact_paragraph><reference anchorname="#using-different-filters" internal="True" refuri="#using-different-filters">Using different filters</reference></compact_paragraph></list_item><list_item><compact_paragraph><reference anchorname="#supporting-the-buffer-interface" internal="True" refuri="#supporting-the-buffer-interface">Supporting the buffer interface</reference></compact_paragraph></list_item><list_item><compact_paragraph><reference anchorname="#packaging-numpy-arrays" internal="True" refuri="#packaging-numpy-arrays">Packaging NumPy arrays</reference></compact_paragraph></list_item><list_item><compact_paragraph><reference anchorname="#compressing-from-a-data-pointer" internal="True" refuri="#compressing-from-a-data-pointer">Compressing from a data pointer</reference></compact_paragraph></list_item><list_item><compact_paragraph><reference anchorname="#fine-tuning-compression-parameters" internal="True" refuri="#fine-tuning-compression-parameters">Fine-tuning compression parameters</reference></compact_paragraph></list_item><list_item><compact_paragraph><reference anchorname="#links-to-external-discussions-on-blosc-optimization" internal="True" refuri="#links-to-external-discussions-on-blosc-optimization">Links to external discussions on <literal>blosc</literal> optimization</reference></compact_paragraph></list_item></bullet_list></list_item></bullet_list> SphinxTranslator.dispatch_visit calling visit_list_item for <list_item><compact_paragraph><reference anchorname="" internal="True" refuri="#">Tutorials</reference></compact_paragraph><bullet_list><list_item><compact_paragraph><reference anchorname="#compressing-and-decompressing-with-blosc" internal="True" refuri="#compressing-and-decompressing-with-blosc">Compressing and decompressing with <literal>blosc</literal></reference></compact_paragraph></list_item><list_item><compact_paragraph><reference anchorname="#using-different-filters" internal="True" refuri="#using-different-filters">Using different filters</reference></compact_paragraph></list_item><list_item><compact_paragraph><reference anchorname="#supporting-the-buffer-interface" internal="True" refuri="#supporting-the-buffer-interface">Supporting the buffer interface</reference></compact_paragraph></list_item><list_item><compact_paragraph><reference anchorname="#packaging-numpy-arrays" internal="True" refuri="#packaging-numpy-arrays">Packaging NumPy arrays</reference></compact_paragraph></list_item><list_item><compact_paragraph><reference anchorname="#compressing-from-a-data-pointer" internal="True" refuri="#compressing-from-a-data-pointer">Compressing from a data pointer</reference></compact_paragraph></list_item><list_item><compact_paragraph><reference anchorname="#fine-tuning-compression-parameters" internal="True" refuri="#fine-tuning-compression-parameters">Fine-tuning compression parameters</reference></compact_paragraph></list_item><list_item><compact_paragraph><reference anchorname="#links-to-external-discussions-on-blosc-optimization" internal="True" refuri="#links-to-external-discussions-on-blosc-optimization">Links to external discussions on <literal>blosc</literal> optimization</reference></compact_paragraph></list_item></bullet_list></list_item> SphinxTranslator.dispatch_visit calling visit_compact_paragraph for <compact_paragraph><reference anchorname="" internal="True" refuri="#">Tutorials</reference></compact_paragraph> SphinxTranslator.dispatch_visit calling visit_reference for <reference anchorname="" internal="True" refuri="#">Tutorials</reference> SphinxTranslator.dispatch_visit calling visit_Text for Tutorials SphinxTranslator.dispatch_departure calling depart_Text for Tutorials SphinxTranslator.dispatch_departure calling depart_reference for <reference anchorname="" internal="True" refuri="#">Tutorials</reference> SphinxTranslator.dispatch_departure calling depart_compact_paragraph for <compact_paragraph><reference anchorname="" internal="True" refuri="#">Tutorials</reference></compact_paragraph> SphinxTranslator.dispatch_visit calling visit_bullet_list for <bullet_list><list_item><compact_paragraph><reference anchorname="#compressing-and-decompressing-with-blosc" internal="True" refuri="#compressing-and-decompressing-with-blosc">Compressing and decompressing with <literal>blosc</literal></reference></compact_paragraph></list_item><list_item><compact_paragraph><reference anchorname="#using-different-filters" internal="True" refuri="#using-different-filters">Using different filters</reference></compact_paragraph></list_item><list_item><compact_paragraph><reference anchorname="#supporting-the-buffer-interface" internal="True" refuri="#supporting-the-buffer-interface">Supporting the buffer interface</reference></compact_paragraph></list_item><list_item><compact_paragraph><reference anchorname="#packaging-numpy-arrays" internal="True" refuri="#packaging-numpy-arrays">Packaging NumPy arrays</reference></compact_paragraph></list_item><list_item><compact_paragraph><reference anchorname="#compressing-from-a-data-pointer" internal="True" refuri="#compressing-from-a-data-pointer">Compressing from a data pointer</reference></compact_paragraph></list_item><list_item><compact_paragraph><reference anchorname="#fine-tuning-compression-parameters" internal="True" refuri="#fine-tuning-compression-parameters">Fine-tuning compression parameters</reference></compact_paragraph></list_item><list_item><compact_paragraph><reference anchorname="#links-to-external-discussions-on-blosc-optimization" internal="True" refuri="#links-to-external-discussions-on-blosc-optimization">Links to external discussions on <literal>blosc</literal> optimization</reference></compact_paragraph></list_item></bullet_list> SphinxTranslator.dispatch_visit calling visit_list_item for <list_item><compact_paragraph><reference anchorname="#compressing-and-decompressing-with-blosc" internal="True" refuri="#compressing-and-decompressing-with-blosc">Compressing and decompressing with <literal>blosc</literal></reference></compact_paragraph></list_item> SphinxTranslator.dispatch_visit calling visit_compact_paragraph for <compact_paragraph><reference anchorname="#compressing-and-decompressing-with-blosc" internal="True" refuri="#compressing-and-decompressing-with-blosc">Compressing and decompressing with <literal>blosc</literal></reference></compact_paragraph> SphinxTranslator.dispatch_visit calling visit_reference for <reference anchorname="#compressing-and-decompressing-with-blosc" internal="True" refuri="#compressing-and-decompressing-with-blosc">Compressing and decompressing with <literal>blosc</literal></reference> SphinxTranslator.dispatch_visit calling visit_Text for Compressing and decompressing with SphinxTranslator.dispatch_departure calling depart_Text for Compressing and decompressing with SphinxTranslator.dispatch_visit calling visit_literal for <literal>blosc</literal> SphinxTranslator.dispatch_visit calling visit_Text for blosc SphinxTranslator.dispatch_departure calling depart_Text for blosc SphinxTranslator.dispatch_departure calling depart_literal for <literal>blosc</literal> SphinxTranslator.dispatch_departure calling depart_reference for <reference anchorname="#compressing-and-decompressing-with-blosc" internal="True" refuri="#compressing-and-decompressing-with-blosc">Compressing and decompressing with <literal>blosc</literal></reference> SphinxTranslator.dispatch_departure calling depart_compact_paragraph for <compact_paragraph><reference anchorname="#compressing-and-decompressing-with-blosc" internal="True" refuri="#compressing-and-decompressing-with-blosc">Compressing and decompressing with <literal>blosc</literal></reference></compact_paragraph> SphinxTranslator.dispatch_departure calling depart_list_item for <list_item><compact_paragraph><reference anchorname="#compressing-and-decompressing-with-blosc" internal="True" refuri="#compressing-and-decompressing-with-blosc">Compressing and decompressing with <literal>blosc</literal></reference></compact_paragraph></list_item> SphinxTranslator.dispatch_visit calling visit_list_item for <list_item><compact_paragraph><reference anchorname="#using-different-filters" internal="True" refuri="#using-different-filters">Using different filters</reference></compact_paragraph></list_item> SphinxTranslator.dispatch_visit calling visit_compact_paragraph for <compact_paragraph><reference anchorname="#using-different-filters" internal="True" refuri="#using-different-filters">Using different filters</reference></compact_paragraph> SphinxTranslator.dispatch_visit calling visit_reference for <reference anchorname="#using-different-filters" internal="True" refuri="#using-different-filters">Using different filters</reference> SphinxTranslator.dispatch_visit calling visit_Text for Using different filters SphinxTranslator.dispatch_departure calling depart_Text for Using different filters SphinxTranslator.dispatch_departure calling depart_reference for <reference anchorname="#using-different-filters" internal="True" refuri="#using-different-filters">Using different filters</reference> SphinxTranslator.dispatch_departure calling depart_compact_paragraph for <compact_paragraph><reference anchorname="#using-different-filters" internal="True" refuri="#using-different-filters">Using different filters</reference></compact_paragraph> SphinxTranslator.dispatch_departure calling depart_list_item for <list_item><compact_paragraph><reference anchorname="#using-different-filters" internal="True" refuri="#using-different-filters">Using different filters</reference></compact_paragraph></list_item> SphinxTranslator.dispatch_visit calling visit_list_item for <list_item><compact_paragraph><reference anchorname="#supporting-the-buffer-interface" internal="True" refuri="#supporting-the-buffer-interface">Supporting the buffer interface</reference></compact_paragraph></list_item> SphinxTranslator.dispatch_visit calling visit_compact_paragraph for <compact_paragraph><reference anchorname="#supporting-the-buffer-interface" internal="True" refuri="#supporting-the-buffer-interface">Supporting the buffer interface</reference></compact_paragraph> SphinxTranslator.dispatch_visit calling visit_reference for <reference anchorname="#supporting-the-buffer-interface" internal="True" refuri="#supporting-the-buffer-interface">Supporting the buffer interface</reference> SphinxTranslator.dispatch_visit calling visit_Text for Supporting the buffer interface SphinxTranslator.dispatch_departure calling depart_Text for Supporting the buffer interface SphinxTranslator.dispatch_departure calling depart_reference for <reference anchorname="#supporting-the-buffer-interface" internal="True" refuri="#supporting-the-buffer-interface">Supporting the buffer interface</reference> SphinxTranslator.dispatch_departure calling depart_compact_paragraph for <compact_paragraph><reference anchorname="#supporting-the-buffer-interface" internal="True" refuri="#supporting-the-buffer-interface">Supporting the buffer interface</reference></compact_paragraph> SphinxTranslator.dispatch_departure calling depart_list_item for <list_item><compact_paragraph><reference anchorname="#supporting-the-buffer-interface" internal="True" refuri="#supporting-the-buffer-interface">Supporting the buffer interface</reference></compact_paragraph></list_item> SphinxTranslator.dispatch_visit calling visit_list_item for <list_item><compact_paragraph><reference anchorname="#packaging-numpy-arrays" internal="True" refuri="#packaging-numpy-arrays">Packaging NumPy arrays</reference></compact_paragraph></list_item> SphinxTranslator.dispatch_visit calling visit_compact_paragraph for <compact_paragraph><reference anchorname="#packaging-numpy-arrays" internal="True" refuri="#packaging-numpy-arrays">Packaging NumPy arrays</reference></compact_paragraph> SphinxTranslator.dispatch_visit calling visit_reference for <reference anchorname="#packaging-numpy-arrays" internal="True" refuri="#packaging-numpy-arrays">Packaging NumPy arrays</reference> SphinxTranslator.dispatch_visit calling visit_Text for Packaging NumPy arrays SphinxTranslator.dispatch_departure calling depart_Text for Packaging NumPy arrays SphinxTranslator.dispatch_departure calling depart_reference for <reference anchorname="#packaging-numpy-arrays" internal="True" refuri="#packaging-numpy-arrays">Packaging NumPy arrays</reference> SphinxTranslator.dispatch_departure calling depart_compact_paragraph for <compact_paragraph><reference anchorname="#packaging-numpy-arrays" internal="True" refuri="#packaging-numpy-arrays">Packaging NumPy arrays</reference></compact_paragraph> SphinxTranslator.dispatch_departure calling depart_list_item for <list_item><compact_paragraph><reference anchorname="#packaging-numpy-arrays" internal="True" refuri="#packaging-numpy-arrays">Packaging NumPy arrays</reference></compact_paragraph></list_item> SphinxTranslator.dispatch_visit calling visit_list_item for <list_item><compact_paragraph><reference anchorname="#compressing-from-a-data-pointer" internal="True" refuri="#compressing-from-a-data-pointer">Compressing from a data pointer</reference></compact_paragraph></list_item> SphinxTranslator.dispatch_visit calling visit_compact_paragraph for <compact_paragraph><reference anchorname="#compressing-from-a-data-pointer" internal="True" refuri="#compressing-from-a-data-pointer">Compressing from a data pointer</reference></compact_paragraph> SphinxTranslator.dispatch_visit calling visit_reference for <reference anchorname="#compressing-from-a-data-pointer" internal="True" refuri="#compressing-from-a-data-pointer">Compressing from a data pointer</reference> SphinxTranslator.dispatch_visit calling visit_Text for Compressing from a data pointer SphinxTranslator.dispatch_departure calling depart_Text for Compressing from a data pointer SphinxTranslator.dispatch_departure calling depart_reference for <reference anchorname="#compressing-from-a-data-pointer" internal="True" refuri="#compressing-from-a-data-pointer">Compressing from a data pointer</reference> SphinxTranslator.dispatch_departure calling depart_compact_paragraph for <compact_paragraph><reference anchorname="#compressing-from-a-data-pointer" internal="True" refuri="#compressing-from-a-data-pointer">Compressing from a data pointer</reference></compact_paragraph> SphinxTranslator.dispatch_departure calling depart_list_item for <list_item><compact_paragraph><reference anchorname="#compressing-from-a-data-pointer" internal="True" refuri="#compressing-from-a-data-pointer">Compressing from a data pointer</reference></compact_paragraph></list_item> SphinxTranslator.dispatch_visit calling visit_list_item for <list_item><compact_paragraph><reference anchorname="#fine-tuning-compression-parameters" internal="True" refuri="#fine-tuning-compression-parameters">Fine-tuning compression parameters</reference></compact_paragraph></list_item> SphinxTranslator.dispatch_visit calling visit_compact_paragraph for <compact_paragraph><reference anchorname="#fine-tuning-compression-parameters" internal="True" refuri="#fine-tuning-compression-parameters">Fine-tuning compression parameters</reference></compact_paragraph> SphinxTranslator.dispatch_visit calling visit_reference for <reference anchorname="#fine-tuning-compression-parameters" internal="True" refuri="#fine-tuning-compression-parameters">Fine-tuning compression parameters</reference> SphinxTranslator.dispatch_visit calling visit_Text for Fine-tuning compression parameters SphinxTranslator.dispatch_departure calling depart_Text for Fine-tuning compression parameters SphinxTranslator.dispatch_departure calling depart_reference for <reference anchorname="#fine-tuning-compression-parameters" internal="True" refuri="#fine-tuning-compression-parameters">Fine-tuning compression parameters</reference> SphinxTranslator.dispatch_departure calling depart_compact_paragraph for <compact_paragraph><reference anchorname="#fine-tuning-compression-parameters" internal="True" refuri="#fine-tuning-compression-parameters">Fine-tuning compression parameters</reference></compact_paragraph> SphinxTranslator.dispatch_departure calling depart_list_item for <list_item><compact_paragraph><reference anchorname="#fine-tuning-compression-parameters" internal="True" refuri="#fine-tuning-compression-parameters">Fine-tuning compression parameters</reference></compact_paragraph></list_item> SphinxTranslator.dispatch_visit calling visit_list_item for <list_item><compact_paragraph><reference anchorname="#links-to-external-discussions-on-blosc-optimization" internal="True" refuri="#links-to-external-discussions-on-blosc-optimization">Links to external discussions on <literal>blosc</literal> optimization</reference></compact_paragraph></list_item> SphinxTranslator.dispatch_visit calling visit_compact_paragraph for <compact_paragraph><reference anchorname="#links-to-external-discussions-on-blosc-optimization" internal="True" refuri="#links-to-external-discussions-on-blosc-optimization">Links to external discussions on <literal>blosc</literal> optimization</reference></compact_paragraph> SphinxTranslator.dispatch_visit calling visit_reference for <reference anchorname="#links-to-external-discussions-on-blosc-optimization" internal="True" refuri="#links-to-external-discussions-on-blosc-optimization">Links to external discussions on <literal>blosc</literal> optimization</reference> SphinxTranslator.dispatch_visit calling visit_Text for Links to external discussions on SphinxTranslator.dispatch_departure calling depart_Text for Links to external discussions on SphinxTranslator.dispatch_visit calling visit_literal for <literal>blosc</literal> SphinxTranslator.dispatch_visit calling visit_Text for blosc SphinxTranslator.dispatch_departure calling depart_Text for blosc SphinxTranslator.dispatch_departure calling depart_literal for <literal>blosc</literal> SphinxTranslator.dispatch_visit calling visit_Text for optimization SphinxTranslator.dispatch_departure calling depart_Text for optimization SphinxTranslator.dispatch_departure calling depart_reference for <reference anchorname="#links-to-external-discussions-on-blosc-optimization" internal="True" refuri="#links-to-external-discussions-on-blosc-optimization">Links to external discussions on <literal>blosc</literal> optimization</reference> SphinxTranslator.dispatch_departure calling depart_compact_paragraph for <compact_paragraph><reference anchorname="#links-to-external-discussions-on-blosc-optimization" internal="True" refuri="#links-to-external-discussions-on-blosc-optimization">Links to external discussions on <literal>blosc</literal> optimization</reference></compact_paragraph> SphinxTranslator.dispatch_departure calling depart_list_item for <list_item><compact_paragraph><reference anchorname="#links-to-external-discussions-on-blosc-optimization" internal="True" refuri="#links-to-external-discussions-on-blosc-optimization">Links to external discussions on <literal>blosc</literal> optimization</reference></compact_paragraph></list_item> SphinxTranslator.dispatch_departure calling depart_bullet_list for <bullet_list><list_item><compact_paragraph><reference anchorname="#compressing-and-decompressing-with-blosc" internal="True" refuri="#compressing-and-decompressing-with-blosc">Compressing and decompressing with <literal>blosc</literal></reference></compact_paragraph></list_item><list_item><compact_paragraph><reference anchorname="#using-different-filters" internal="True" refuri="#using-different-filters">Using different filters</reference></compact_paragraph></list_item><list_item><compact_paragraph><reference anchorname="#supporting-the-buffer-interface" internal="True" refuri="#supporting-the-buffer-interface">Supporting the buffer interface</reference></compact_paragraph></list_item><list_item><compact_paragraph><reference anchorname="#packaging-numpy-arrays" internal="True" refuri="#packaging-numpy-arrays">Packaging NumPy arrays</reference></compact_paragraph></list_item><list_item><compact_paragraph><reference anchorname="#compressing-from-a-data-pointer" internal="True" refuri="#compressing-from-a-data-pointer">Compressing from a data pointer</reference></compact_paragraph></list_item><list_item><compact_paragraph><reference anchorname="#fine-tuning-compression-parameters" internal="True" refuri="#fine-tuning-compression-parameters">Fine-tuning compression parameters</reference></compact_paragraph></list_item><list_item><compact_paragraph><reference anchorname="#links-to-external-discussions-on-blosc-optimization" internal="True" refuri="#links-to-external-discussions-on-blosc-optimization">Links to external discussions on <literal>blosc</literal> optimization</reference></compact_paragraph></list_item></bullet_list> SphinxTranslator.dispatch_departure calling depart_list_item for <list_item><compact_paragraph><reference anchorname="" internal="True" refuri="#">Tutorials</reference></compact_paragraph><bullet_list><list_item><compact_paragraph><reference anchorname="#compressing-and-decompressing-with-blosc" internal="True" refuri="#compressing-and-decompressing-with-blosc">Compressing and decompressing with <literal>blosc</literal></reference></compact_paragraph></list_item><list_item><compact_paragraph><reference anchorname="#using-different-filters" internal="True" refuri="#using-different-filters">Using different filters</reference></compact_paragraph></list_item><list_item><compact_paragraph><reference anchorname="#supporting-the-buffer-interface" internal="True" refuri="#supporting-the-buffer-interface">Supporting the buffer interface</reference></compact_paragraph></list_item><list_item><compact_paragraph><reference anchorname="#packaging-numpy-arrays" internal="True" refuri="#packaging-numpy-arrays">Packaging NumPy arrays</reference></compact_paragraph></list_item><list_item><compact_paragraph><reference anchorname="#compressing-from-a-data-pointer" internal="True" refuri="#compressing-from-a-data-pointer">Compressing from a data pointer</reference></compact_paragraph></list_item><list_item><compact_paragraph><reference anchorname="#fine-tuning-compression-parameters" internal="True" refuri="#fine-tuning-compression-parameters">Fine-tuning compression parameters</reference></compact_paragraph></list_item><list_item><compact_paragraph><reference anchorname="#links-to-external-discussions-on-blosc-optimization" internal="True" refuri="#links-to-external-discussions-on-blosc-optimization">Links to external discussions on <literal>blosc</literal> optimization</reference></compact_paragraph></list_item></bullet_list></list_item> SphinxTranslator.dispatch_departure calling depart_bullet_list for <bullet_list><list_item><compact_paragraph><reference anchorname="" internal="True" refuri="#">Tutorials</reference></compact_paragraph><bullet_list><list_item><compact_paragraph><reference anchorname="#compressing-and-decompressing-with-blosc" internal="True" refuri="#compressing-and-decompressing-with-blosc">Compressing and decompressing with <literal>blosc</literal></reference></compact_paragraph></list_item><list_item><compact_paragraph><reference anchorname="#using-different-filters" internal="True" refuri="#using-different-filters">Using different filters</reference></compact_paragraph></list_item><list_item><compact_paragraph><reference anchorname="#supporting-the-buffer-interface" internal="True" refuri="#supporting-the-buffer-interface">Supporting the buffer interface</reference></compact_paragraph></list_item><list_item><compact_paragraph><reference anchorname="#packaging-numpy-arrays" internal="True" refuri="#packaging-numpy-arrays">Packaging NumPy arrays</reference></compact_paragraph></list_item><list_item><compact_paragraph><reference anchorname="#compressing-from-a-data-pointer" internal="True" refuri="#compressing-from-a-data-pointer">Compressing from a data pointer</reference></compact_paragraph></list_item><list_item><compact_paragraph><reference anchorname="#fine-tuning-compression-parameters" internal="True" refuri="#fine-tuning-compression-parameters">Fine-tuning compression parameters</reference></compact_paragraph></list_item><list_item><compact_paragraph><reference anchorname="#links-to-external-discussions-on-blosc-optimization" internal="True" refuri="#links-to-external-discussions-on-blosc-optimization">Links to external discussions on <literal>blosc</literal> optimization</reference></compact_paragraph></list_item></bullet_list></list_item></bullet_list> SphinxTranslator.dispatch_departure calling depart_document for <document source="<partial node>"><bullet_list><list_item><compact_paragraph><reference anchorname="" internal="True" refuri="#">Tutorials</reference></compact_paragraph><bullet_list><list_item><compact_paragraph><reference anchorname="#compressing-and-decompressing-with-blosc" internal="True" refuri="#compressing-and-decompressing-with-blosc">Compressing and decompressing with <literal>blosc</literal></reference></compact_paragraph></list_item><list_item><compact_paragraph><reference anchorname="#using-different-filters" internal="True" refuri="#using-different-filters">Using different filters</reference></compact_paragraph></list_item><list_item><compact_paragraph><reference anchorname="#supporting-the-buffer-interface" internal="True" refuri="#supporting-the-buffer-interface">Supporting the buffer interface</reference></compact_paragraph></list_item><list_item><compact_paragraph><reference anchorname="#packaging-numpy-arrays" internal="True" refuri="#packaging-numpy-arrays">Packaging NumPy arrays</reference></compact_paragraph></list_item><list_item><compact_paragraph><reference anchorname="#compressing-from-a-data-pointer" internal="True" refuri="#compressing-from-a-data-pointer">Compressing from a data pointer</reference></compact_paragraph></list_item><list_item><compact_paragraph><reference anchorname="#fine-tuning-compression-parameters" internal="True" refuri="#fine-tuning-compression-parameters">Fine-tuning compression parameters</reference></compact_paragraph></list_item><list_item><compact_paragraph><reference anchorname="#links-to-external-discussions-on-blosc-optimization" internal="True" refuri="#links-to-external-discussions-on-blosc-optimization">Links to external discussions on <literal>blosc</literal> optimization</reference></compact_paragraph></list_item></bullet_list></list_item></bullet_list></document> [app] emitting event: 'html-page-context'('tutorial', 'page.html', {'parents': [], 'prev': {'link': '../install/', 'title': 'Installation'}, generating indices... genindex[app] emitting event: 'html-page-context'('genindex', 'genindex.html', {'genindexentries': [('_', [('__version__', [[('', '../reference/#__ve py-modindex[app] emitting event: 'html-page-context'('py-modindex', 'domainindex.html', {'indextitle': 'Python Module Index', 'content': [('b', [IndexEn done [app] emitting event: 'html-collect-pages'() writing additional pages... search[app] emitting event: 'html-page-context'('search', 'search.html', {'current_page_name': 'search', 'sidebars': ['localtoc.html', 'relations.h done copying images... [ 50%] cratio-blosc-codecs.png copying images... [100%] speed-blosc-codecs.png copying static files... ... done copying extra files... done dumping search index in English (code: en)... done dumping object inventory... done build succeeded, 5 warnings. You can now process the pickle files in _build/pickle. [app] emitting event: 'build-finished'(None,) Build finished; now you can process the pickle files. make: Leaving directory '/usr/src/RPM/BUILD/python3-module-blosc-1.5.1/doc' + make -C doc html make: Entering directory '/usr/src/RPM/BUILD/python3-module-blosc-1.5.1/doc' sphinx-build-3 -b html -d _build/doctrees -n -v -v . _build/html Running Sphinx v2.4.4 [app] setting up extension: 'sphinx.addnodes' [app] adding node: (<class 'sphinx.addnodes.toctree'>, {}) [app] adding translation_handlers: <class 'sphinx.addnodes.toctree'>, {} [app] adding node: (<class 'sphinx.addnodes.desc'>, {}) [app] adding translation_handlers: <class 'sphinx.addnodes.desc'>, {} [app] adding node: (<class 'sphinx.addnodes.desc_signature'>, {}) [app] adding translation_handlers: <class 'sphinx.addnodes.desc_signature'>, {} [app] adding node: (<class 'sphinx.addnodes.desc_signature_line'>, {}) [app] adding translation_handlers: <class 'sphinx.addnodes.desc_signature_line'>, {} [app] adding node: (<class 'sphinx.addnodes.desc_addname'>, {}) [app] adding translation_handlers: <class 'sphinx.addnodes.desc_addname'>, {} [app] adding node: (<class 'sphinx.addnodes.desc_type'>, {}) [app] adding translation_handlers: <class 'sphinx.addnodes.desc_type'>, {} [app] adding node: (<class 'sphinx.addnodes.desc_returns'>, {}) [app] adding translation_handlers: <class 'sphinx.addnodes.desc_returns'>, {} [app] adding node: (<class 'sphinx.addnodes.desc_name'>, {}) [app] adding translation_handlers: <class 'sphinx.addnodes.desc_name'>, {} [app] adding node: (<class 'sphinx.addnodes.desc_parameterlist'>, {}) [app] adding translation_handlers: <class 'sphinx.addnodes.desc_parameterlist'>, {} [app] adding node: (<class 'sphinx.addnodes.desc_parameter'>, {}) [app] adding translation_handlers: <class 'sphinx.addnodes.desc_parameter'>, {} [app] adding node: (<class 'sphinx.addnodes.desc_optional'>, {}) [app] adding translation_handlers: <class 'sphinx.addnodes.desc_optional'>, {} [app] adding node: (<class 'sphinx.addnodes.desc_annotation'>, {}) [app] adding translation_handlers: <class 'sphinx.addnodes.desc_annotation'>, {} [app] adding node: (<class 'sphinx.addnodes.desc_content'>, {}) [app] adding translation_handlers: <class 'sphinx.addnodes.desc_content'>, {} [app] adding node: (<class 'sphinx.addnodes.versionmodified'>, {}) [app] adding translation_handlers: <class 'sphinx.addnodes.versionmodified'>, {} [app] adding node: (<class 'sphinx.addnodes.seealso'>, {}) [app] adding translation_handlers: <class 'sphinx.addnodes.seealso'>, {} [app] adding node: (<class 'sphinx.addnodes.productionlist'>, {}) [app] adding translation_handlers: <class 'sphinx.addnodes.productionlist'>, {} [app] adding node: (<class 'sphinx.addnodes.production'>, {}) [app] adding translation_handlers: <class 'sphinx.addnodes.production'>, {} [app] adding node: (<class 'sphinx.addnodes.displaymath'>, {}) [app] adding translation_handlers: <class 'sphinx.addnodes.displaymath'>, {} [app] adding node: (<class 'sphinx.addnodes.index'>, {}) [app] adding translation_handlers: <class 'sphinx.addnodes.index'>, {} [app] adding node: (<class 'sphinx.addnodes.centered'>, {}) [app] adding translation_handlers: <class 'sphinx.addnodes.centered'>, {} [app] adding node: (<class 'sphinx.addnodes.acks'>, {}) [app] adding translation_handlers: <class 'sphinx.addnodes.acks'>, {} [app] adding node: (<class 'sphinx.addnodes.hlist'>, {}) [app] adding translation_handlers: <class 'sphinx.addnodes.hlist'>, {} [app] adding node: (<class 'sphinx.addnodes.hlistcol'>, {}) [app] adding translation_handlers: <class 'sphinx.addnodes.hlistcol'>, {} [app] adding node: (<class 'sphinx.addnodes.compact_paragraph'>, {}) [app] adding translation_handlers: <class 'sphinx.addnodes.compact_paragraph'>, {} [app] adding node: (<class 'sphinx.addnodes.glossary'>, {}) [app] adding translation_handlers: <class 'sphinx.addnodes.glossary'>, {} [app] adding node: (<class 'sphinx.addnodes.only'>, {}) [app] adding translation_handlers: <class 'sphinx.addnodes.only'>, {} [app] adding node: (<class 'sphinx.addnodes.start_of_file'>, {}) [app] adding translation_handlers: <class 'sphinx.addnodes.start_of_file'>, {} [app] adding node: (<class 'sphinx.addnodes.highlightlang'>, {}) [app] adding translation_handlers: <class 'sphinx.addnodes.highlightlang'>, {} [app] adding node: (<class 'sphinx.addnodes.tabular_col_spec'>, {}) [app] adding translation_handlers: <class 'sphinx.addnodes.tabular_col_spec'>, {} [app] adding node: (<class 'sphinx.addnodes.meta'>, {}) [app] adding translation_handlers: <class 'sphinx.addnodes.meta'>, {} [app] adding node: (<class 'sphinx.addnodes.pending_xref'>, {}) [app] adding translation_handlers: <class 'sphinx.addnodes.pending_xref'>, {} [app] adding node: (<class 'sphinx.addnodes.number_reference'>, {}) [app] adding translation_handlers: <class 'sphinx.addnodes.number_reference'>, {} [app] adding node: (<class 'sphinx.addnodes.download_reference'>, {}) [app] adding translation_handlers: <class 'sphinx.addnodes.download_reference'>, {} [app] adding node: (<class 'sphinx.addnodes.literal_emphasis'>, {}) [app] adding translation_handlers: <class 'sphinx.addnodes.literal_emphasis'>, {} [app] adding node: (<class 'sphinx.addnodes.literal_strong'>, {}) [app] adding translation_handlers: <class 'sphinx.addnodes.literal_strong'>, {} [app] adding node: (<class 'sphinx.addnodes.manpage'>, {}) [app] adding translation_handlers: <class 'sphinx.addnodes.manpage'>, {} [app] setting up extension: 'sphinx.builders.changes' [app] adding builder: <class 'sphinx.builders.changes.ChangesBuilder'> [app] setting up extension: 'sphinx.builders.epub3' [app] adding builder: <class 'sphinx.builders.epub3.Epub3Builder'> [app] adding config value: ('epub_basename', <function setup.<locals>.<lambda> at 0xf6545580>, None) [app] adding config value: ('epub_version', 3.0, 'epub') [app] adding config value: ('epub_theme', 'epub', 'epub') [app] adding config value: ('epub_theme_options', {}, 'epub') [app] adding config value: ('epub_title', <function setup.<locals>.<lambda> at 0xf601dd18>, 'epub') [app] adding config value: ('epub_author', <function setup.<locals>.<lambda> at 0xf601dd60>, 'epub') [app] adding config value: ('epub_language', <function setup.<locals>.<lambda> at 0xf601dda8>, 'epub') [app] adding config value: ('epub_publisher', <function setup.<locals>.<lambda> at 0xf601ddf0>, 'epub') [app] adding config value: ('epub_copyright', <function setup.<locals>.<lambda> at 0xf601de38>, 'epub') [app] adding config value: ('epub_identifier', 'unknown', 'epub') [app] adding config value: ('epub_scheme', 'unknown', 'epub') [app] adding config value: ('epub_uid', 'unknown', 'env') [app] adding config value: ('epub_cover', (), 'env') [app] adding config value: ('epub_guide', (), 'env') [app] adding config value: ('epub_pre_files', [], 'env') [app] adding config value: ('epub_post_files', [], 'env') [app] adding config value: ('epub_css_files', <function setup.<locals>.<lambda> at 0xf601de80>, 'epub') [app] adding config value: ('epub_exclude_files', [], 'env') [app] adding config value: ('epub_tocdepth', 3, 'env') [app] adding config value: ('epub_tocdup', True, 'env') [app] adding config value: ('epub_tocscope', 'default', 'env') [app] adding config value: ('epub_fix_images', False, 'env') [app] adding config value: ('epub_max_image_width', 0, 'env') [app] adding config value: ('epub_show_urls', 'inline', 'epub') [app] adding config value: ('epub_use_index', <function setup.<locals>.<lambda> at 0xf601dec8>, 'epub') [app] adding config value: ('epub_description', 'unknown', 'epub') [app] adding config value: ('epub_contributor', 'unknown', 'epub') [app] adding config value: ('epub_writing_mode', 'horizontal', 'epub', <sphinx.config.ENUM object at 0xf64ca508>) [app] connecting event 'config-inited': <function convert_epub_css_files at 0xf601dc88> [id=0] [app] connecting event 'builder-inited': <function validate_config_values at 0xf601da48> [id=1] [app] setting up extension: 'sphinx.builders.dirhtml' [app] setting up extension: 'sphinx.builders.html' [app] adding builder: <class 'sphinx.builders.html.StandaloneHTMLBuilder'> [app] adding config value: ('html_theme', 'alabaster', 'html') [app] adding config value: ('html_theme_path', [], 'html') [app] adding config value: ('html_theme_options', {}, 'html') [app] adding config value: ('html_title', <function setup.<locals>.<lambda> at 0xf601dfa0>, 'html', [<class 'str'>]) [app] adding config value: ('html_short_title', <function setup.<locals>.<lambda> at 0xf6021028>, 'html') [app] adding config value: ('html_style', None, 'html', [<class 'str'>]) [app] adding config value: ('html_logo', None, 'html', [<class 'str'>]) [app] adding config value: ('html_favicon', None, 'html', [<class 'str'>]) [app] adding config value: ('html_css_files', [], 'html') [app] adding config value: ('html_js_files', [], 'html') [app] adding config value: ('html_static_path', [], 'html') [app] adding config value: ('html_extra_path', [], 'html') [app] adding config value: ('html_last_updated_fmt', None, 'html', [<class 'str'>]) [app] adding config value: ('html_sidebars', {}, 'html') [app] adding config value: ('html_additional_pages', {}, 'html') [app] adding config value: ('html_domain_indices', True, 'html', [<class 'list'>]) [app] adding config value: ('html_add_permalinks', '¶', 'html') [app] adding config value: ('html_use_index', True, 'html') [app] adding config value: ('html_split_index', False, 'html') [app] adding config value: ('html_copy_source', True, 'html') [app] adding config value: ('html_show_sourcelink', True, 'html') [app] adding config value: ('html_sourcelink_suffix', '.txt', 'html') [app] adding config value: ('html_use_opensearch', '', 'html') [app] adding config value: ('html_file_suffix', None, 'html', [<class 'str'>]) [app] adding config value: ('html_link_suffix', None, 'html', [<class 'str'>]) [app] adding config value: ('html_show_copyright', True, 'html') [app] adding config value: ('html_show_sphinx', True, 'html') [app] adding config value: ('html_context', {}, 'html') [app] adding config value: ('html_output_encoding', 'utf-8', 'html') [app] adding config value: ('html_compact_lists', True, 'html') [app] adding config value: ('html_secnumber_suffix', '. ', 'html') [app] adding config value: ('html_search_language', None, 'html', [<class 'str'>]) [app] adding config value: ('html_search_options', {}, 'html') [app] adding config value: ('html_search_scorer', '', None) [app] adding config value: ('html_scaled_image_link', True, 'html') [app] adding config value: ('html_baseurl', '', 'html') [app] adding config value: ('html_math_renderer', None, 'env') [app] adding config value: ('html4_writer', False, 'html') [app] connecting event 'config-inited': <function convert_html_css_files at 0xf60fca00> [id=2] [app] connecting event 'config-inited': <function convert_html_js_files at 0xf6010c40> [id=3] [app] connecting event 'config-inited': <function validate_html_extra_path at 0xf6010d18> [id=4] [app] connecting event 'config-inited': <function validate_html_static_path at 0xf6010d60> [id=5] [app] connecting event 'config-inited': <function validate_html_logo at 0xf6010da8> [id=6] [app] connecting event 'config-inited': <function validate_html_favicon at 0xf6010df0> [id=7] [app] connecting event 'builder-inited': <function validate_math_renderer at 0xf6010cd0> [id=8] [app] connecting event 'html-page-context': <function setup_js_tag_helper at 0xf6010c88> [id=9] [app] setting up extension: 'sphinx.ext.mathjax' [app] adding html_math_renderer: mathjax, (<function html_visit_math at 0xf6021148>, None), (<function html_visit_displaymath at 0xf60212f8>, None) [app] adding config value: ('mathjax_path', 'https://cdnjs.cloudflare.com/ajax/libs/mathjax/2.7.5/latest.js?config=TeX-AMS-MML_HTMLorMML', 'html') [app] adding config value: ('mathjax_options', {}, 'html') [app] adding config value: ('mathjax_inline', ['\\(', '\\)'], 'html') [app] adding config value: ('mathjax_display', ['\\[', '\\]'], 'html') [app] adding config value: ('mathjax_config', None, 'html') [app] connecting event 'env-updated': <function install_mathjax at 0xf6021340> [id=10] [app] adding builder: <class 'sphinx.builders.dirhtml.DirectoryHTMLBuilder'> [app] setting up extension: 'sphinx.builders.dummy' [app] adding builder: <class 'sphinx.builders.dummy.DummyBuilder'> [app] setting up extension: 'sphinx.builders.gettext' [app] adding builder: <class 'sphinx.builders.gettext.MessageCatalogBuilder'> [app] adding config value: ('gettext_compact', True, 'gettext') [app] adding config value: ('gettext_location', True, 'gettext') [app] adding config value: ('gettext_uuid', False, 'gettext') [app] adding config value: ('gettext_auto_build', True, 'env') [app] adding config value: ('gettext_additional_targets', [], 'env') [app] adding config value: ('gettext_last_translator', 'FULL NAME <EMAIL@ADDRESS>', 'gettext') [app] adding config value: ('gettext_language_team', 'LANGUAGE <LL@li.org>', 'gettext') [app] setting up extension: 'sphinx.builders.html' [app] setting up extension: 'sphinx.builders.latex' [app] setting up extension: 'sphinx.builders.latex.transforms' [app] adding transform: <class 'sphinx.builders.latex.transforms.FootnoteDocnameUpdater'> [app] adding post transform: <class 'sphinx.builders.latex.transforms.BibliographyTransform'> [app] adding post transform: <class 'sphinx.builders.latex.transforms.CitationReferenceTransform'> [app] adding post transform: <class 'sphinx.builders.latex.transforms.DocumentTargetTransform'> [app] adding post transform: <class 'sphinx.builders.latex.transforms.IndexInSectionTitleTransform'> [app] adding post transform: <class 'sphinx.builders.latex.transforms.LaTeXFootnoteTransform'> [app] adding post transform: <class 'sphinx.builders.latex.transforms.LiteralBlockTransform'> [app] adding post transform: <class 'sphinx.builders.latex.transforms.MathReferenceTransform'> [app] adding post transform: <class 'sphinx.builders.latex.transforms.ShowUrlsTransform'> [app] adding builder: <class 'sphinx.builders.latex.LaTeXBuilder'> [app] connecting event 'config-inited': <function validate_config_values at 0xf5f39d18> [id=11] [app] adding config value: ('latex_engine', <function default_latex_engine at 0xf5f39d60>, None, <sphinx.config.ENUM object at 0xf601a9a0>) [app] adding config value: ('latex_documents', <function default_latex_documents at 0xf5f39e38>, None) [app] adding config value: ('latex_logo', None, None, [<class 'str'>]) [app] adding config value: ('latex_appendices', [], None) [app] adding config value: ('latex_use_latex_multicolumn', False, None) [app] adding config value: ('latex_use_xindy', <function default_latex_use_xindy at 0xf5f39df0>, None, [<class 'bool'>]) [app] adding config value: ('latex_toplevel_sectioning', None, None, <sphinx.config.ENUM object at 0xf601abf8>) [app] adding config value: ('latex_domain_indices', True, None, [<class 'list'>]) [app] adding config value: ('latex_show_urls', 'no', None) [app] adding config value: ('latex_show_pagerefs', False, None) [app] adding config value: ('latex_elements', {}, None) [app] adding config value: ('latex_additional_files', [], None) [app] adding config value: ('latex_docclass', <function default_latex_docclass at 0xf5f39da8>, None) [app] setting up extension: 'sphinx.builders.linkcheck' [app] adding builder: <class 'sphinx.builders.linkcheck.CheckExternalLinksBuilder'> [app] adding config value: ('linkcheck_ignore', [], None) [app] adding config value: ('linkcheck_auth', [], None) [app] adding config value: ('linkcheck_retries', 1, None) [app] adding config value: ('linkcheck_timeout', None, None, [<class 'int'>]) [app] adding config value: ('linkcheck_workers', 5, None) [app] adding config value: ('linkcheck_anchors', True, None) [app] adding config value: ('linkcheck_anchors_ignore', ['^!'], None) [app] setting up extension: 'sphinx.builders.manpage' [app] adding builder: <class 'sphinx.builders.manpage.ManualPageBuilder'> [app] adding config value: ('man_pages', <function default_man_pages at 0xf5d95460>, None) [app] adding config value: ('man_show_urls', False, None) [app] setting up extension: 'sphinx.builders.singlehtml' [app] setting up extension: 'sphinx.builders.html' [app] adding builder: <class 'sphinx.builders.singlehtml.SingleFileHTMLBuilder'> [app] adding config value: ('singlehtml_sidebars', <function setup.<locals>.<lambda> at 0xf60210b8>, 'html') [app] setting up extension: 'sphinx.builders.texinfo' [app] adding builder: <class 'sphinx.builders.texinfo.TexinfoBuilder'> [app] adding config value: ('texinfo_documents', <function default_texinfo_documents at 0xf5db25c8>, None) [app] adding config value: ('texinfo_appendices', [], None) [app] adding config value: ('texinfo_elements', {}, None) [app] adding config value: ('texinfo_domain_indices', True, None, [<class 'list'>]) [app] adding config value: ('texinfo_show_urls', 'footnote', None) [app] adding config value: ('texinfo_no_detailmenu', False, None) [app] setting up extension: 'sphinx.builders.text' [app] adding builder: <class 'sphinx.builders.text.TextBuilder'> [app] adding config value: ('text_sectionchars', '*=-~"+`', 'env') [app] adding config value: ('text_newlines', 'unix', 'env') [app] adding config value: ('text_add_secnumbers', True, 'env') [app] adding config value: ('text_secnumber_suffix', '. ', 'env') [app] setting up extension: 'sphinx.builders.xml' [app] adding builder: <class 'sphinx.builders.xml.XMLBuilder'> [app] adding builder: <class 'sphinx.builders.xml.PseudoXMLBuilder'> [app] adding config value: ('xml_pretty', True, 'env') [app] setting up extension: 'sphinx.config' [app] connecting event 'config-inited': <function convert_source_suffix at 0xf6b58da8> [id=12] [app] connecting event 'config-inited': <function init_numfig_format at 0xf6b58df0> [id=13] [app] connecting event 'config-inited': <function correct_copyright_year at 0xf6b58e38> [id=14] [app] connecting event 'config-inited': <function check_confval_types at 0xf6b58e80> [id=15] [app] connecting event 'config-inited': <function check_primary_domain at 0xf6b58f10> [id=16] [app] connecting event 'env-get-outdated': <function check_master_doc at 0xf6b58f58> [id=17] [app] setting up extension: 'sphinx.domains.c' [app] adding domain: <class 'sphinx.domains.c.CDomain'> [app] setting up extension: 'sphinx.domains.changeset' [app] adding domain: <class 'sphinx.domains.changeset.ChangeSetDomain'> [app] adding directive: ('deprecated', <class 'sphinx.domains.changeset.VersionChange'>, None, None, {}) [app] adding directive: ('versionadded', <class 'sphinx.domains.changeset.VersionChange'>, None, None, {}) [app] adding directive: ('versionchanged', <class 'sphinx.domains.changeset.VersionChange'>, None, None, {}) [app] setting up extension: 'sphinx.domains.citation' [app] adding domain: <class 'sphinx.domains.citation.CitationDomain'> [app] adding transform: <class 'sphinx.domains.citation.CitationDefinitionTransform'> [app] adding transform: <class 'sphinx.domains.citation.CitationReferenceTransform'> [app] setting up extension: 'sphinx.domains.cpp' [app] adding domain: <class 'sphinx.domains.cpp.CPPDomain'> [app] adding config value: ('cpp_index_common_prefix', [], 'env') [app] adding config value: ('cpp_id_attributes', [], 'env') [app] adding config value: ('cpp_paren_attributes', [], 'env') [app] adding post transform: <class 'sphinx.domains.cpp.AliasTransform'> [app] setting up extension: 'sphinx.domains.index' [app] adding domain: <class 'sphinx.domains.index.IndexDomain'> [app] adding directive: ('index', <class 'sphinx.domains.index.IndexDirective'>, None, None, {}) [app] adding role: ('index', <sphinx.domains.index.IndexRole object at 0xf5d7a550>) [app] setting up extension: 'sphinx.domains.javascript' [app] adding domain: <class 'sphinx.domains.javascript.JavaScriptDomain'> [app] setting up extension: 'sphinx.domains.math' [app] adding domain: <class 'sphinx.domains.math.MathDomain'> [app] adding role: ('eq', <sphinx.domains.math.MathReferenceRole object at 0xf5e6b058>) [app] setting up extension: 'sphinx.domains.python' [app] adding domain: <class 'sphinx.domains.python.PythonDomain'> [app] setting up extension: 'sphinx.domains.rst' [app] adding domain: <class 'sphinx.domains.rst.ReSTDomain'> [app] setting up extension: 'sphinx.domains.std' [app] adding domain: <class 'sphinx.domains.std.StandardDomain'> [app] setting up extension: 'sphinx.directives' [app] adding event: 'object-description-transform' [app] setting up extension: 'sphinx.directives.code' [app] setting up extension: 'sphinx.directives.other' [app] setting up extension: 'sphinx.directives.patches' [app] setting up extension: 'sphinx.extension' [app] connecting event 'config-inited': <function verify_needs_extensions at 0xf6b6bc88> [id=18] [app] setting up extension: 'sphinx.parsers' [app] adding search source_parser: (<class 'sphinx.parsers.RSTParser'>,) [app] setting up extension: 'sphinx.registry' [app] connecting event 'config-inited': <function merge_source_suffix at 0xf68e5658> [id=19] [app] setting up extension: 'sphinx.roles' [app] setting up extension: 'sphinx.transforms' [app] adding transform: <class 'sphinx.transforms.ApplySourceWorkaround'> [app] adding transform: <class 'sphinx.transforms.ExtraTranslatableNodes'> [app] adding transform: <class 'sphinx.transforms.DefaultSubstitutions'> [app] adding transform: <class 'sphinx.transforms.MoveModuleTargets'> [app] adding transform: <class 'sphinx.transforms.HandleCodeBlocks'> [app] adding transform: <class 'sphinx.transforms.SortIds'> [app] adding transform: <class 'sphinx.transforms.DoctestTransform'> [app] adding transform: <class 'sphinx.transforms.FigureAligner'> [app] adding transform: <class 'sphinx.transforms.AutoNumbering'> [app] adding transform: <class 'sphinx.transforms.AutoIndexUpgrader'> [app] adding transform: <class 'sphinx.transforms.FilterSystemMessages'> [app] adding transform: <class 'sphinx.transforms.UnreferencedFootnotesDetector'> [app] adding transform: <class 'sphinx.transforms.SphinxSmartQuotes'> [app] adding transform: <class 'sphinx.transforms.DoctreeReadEvent'> [app] adding transform: <class 'sphinx.transforms.ManpageLink'> [app] setting up extension: 'sphinx.transforms.compact_bullet_list' [app] adding transform: <class 'sphinx.transforms.compact_bullet_list.RefOnlyBulletListTransform'> [app] setting up extension: 'sphinx.transforms.i18n' [app] adding transform: <class 'sphinx.transforms.i18n.PreserveTranslatableMessages'> [app] adding transform: <class 'sphinx.transforms.i18n.Locale'> [app] adding transform: <class 'sphinx.transforms.i18n.RemoveTranslatableInline'> [app] setting up extension: 'sphinx.transforms.references' [app] adding transform: <class 'sphinx.transforms.references.SubstitutionDefinitionsRemover'> [app] adding transform: <class 'sphinx.transforms.references.SphinxDanglingReferences'> [app] adding transform: <class 'sphinx.transforms.references.SphinxDomains'> [app] setting up extension: 'sphinx.transforms.post_transforms' [app] adding post transform: <class 'sphinx.transforms.post_transforms.ReferencesResolver'> [app] adding post transform: <class 'sphinx.transforms.post_transforms.OnlyNodeTransform'> [app] setting up extension: 'sphinx.transforms.post_transforms.code' [app] adding post transform: <class 'sphinx.transforms.post_transforms.code.HighlightLanguageTransform'> [app] adding post transform: <class 'sphinx.transforms.post_transforms.code.TrimDoctestFlagsTransform'> [app] setting up extension: 'sphinx.transforms.post_transforms.images' [app] adding post transform: <class 'sphinx.transforms.post_transforms.images.ImageDownloader'> [app] adding post transform: <class 'sphinx.transforms.post_transforms.images.DataURIExtractor'> [app] setting up extension: 'sphinx.transforms.post_transforms.compat' [app] adding post transform: <class 'sphinx.transforms.post_transforms.compat.MathNodeMigrator'> [app] setting up extension: 'sphinx.util.compat' [app] adding transform: <class 'sphinx.util.compat.IndexEntriesMigrator'> [app] connecting event 'config-inited': <function deprecate_source_parsers at 0xf5cfa778> [id=20] [app] connecting event 'builder-inited': <function register_application_for_autosummary at 0xf5cfa808> [id=21] [app] setting up extension: 'sphinx.versioning' [app] adding transform: <class 'sphinx.versioning.UIDTransform'> [app] setting up extension: 'sphinx.environment.collectors.dependencies' [app] adding environment collector: <class 'sphinx.environment.collectors.dependencies.DependenciesCollector'> [app] connecting event 'doctree-read': <bound method DependenciesCollector.process_doc of <sphinx.environment.collectors.dependencies.DependenciesCollector object at 0xf5e02dc0>> [id=22] [app] connecting event 'env-merge-info': <bound method DependenciesCollector.merge_other of <sphinx.environment.collectors.dependencies.DependenciesCollector object at 0xf5e02dc0>> [id=23] [app] connecting event 'env-purge-doc': <bound method DependenciesCollector.clear_doc of <sphinx.environment.collectors.dependencies.DependenciesCollector object at 0xf5e02dc0>> [id=24] [app] connecting event 'env-get-updated': <bound method EnvironmentCollector.get_updated_docs of <sphinx.environment.collectors.dependencies.DependenciesCollector object at 0xf5e02dc0>> [id=25] [app] connecting event 'env-get-outdated': <bound method EnvironmentCollector.get_outdated_docs of <sphinx.environment.collectors.dependencies.DependenciesCollector object at 0xf5e02dc0>> [id=26] [app] setting up extension: 'sphinx.environment.collectors.asset' [app] adding environment collector: <class 'sphinx.environment.collectors.asset.ImageCollector'> [app] connecting event 'doctree-read': <bound method ImageCollector.process_doc of <sphinx.environment.collectors.asset.ImageCollector object at 0xf5e02b38>> [id=27] [app] connecting event 'env-merge-info': <bound method ImageCollector.merge_other of <sphinx.environment.collectors.asset.ImageCollector object at 0xf5e02b38>> [id=28] [app] connecting event 'env-purge-doc': <bound method ImageCollector.clear_doc of <sphinx.environment.collectors.asset.ImageCollector object at 0xf5e02b38>> [id=29] [app] connecting event 'env-get-updated': <bound method EnvironmentCollector.get_updated_docs of <sphinx.environment.collectors.asset.ImageCollector object at 0xf5e02b38>> [id=30] [app] connecting event 'env-get-outdated': <bound method EnvironmentCollector.get_outdated_docs of <sphinx.environment.collectors.asset.ImageCollector object at 0xf5e02b38>> [id=31] [app] adding environment collector: <class 'sphinx.environment.collectors.asset.DownloadFileCollector'> [app] connecting event 'doctree-read': <bound method DownloadFileCollector.process_doc of <sphinx.environment.collectors.asset.DownloadFileCollector object at 0xf5d03088>> [id=32] [app] connecting event 'env-merge-info': <bound method DownloadFileCollector.merge_other of <sphinx.environment.collectors.asset.DownloadFileCollector object at 0xf5d03088>> [id=33] [app] connecting event 'env-purge-doc': <bound method DownloadFileCollector.clear_doc of <sphinx.environment.collectors.asset.DownloadFileCollector object at 0xf5d03088>> [id=34] [app] connecting event 'env-get-updated': <bound method EnvironmentCollector.get_updated_docs of <sphinx.environment.collectors.asset.DownloadFileCollector object at 0xf5d03088>> [id=35] [app] connecting event 'env-get-outdated': <bound method EnvironmentCollector.get_outdated_docs of <sphinx.environment.collectors.asset.DownloadFileCollector object at 0xf5d03088>> [id=36] [app] setting up extension: 'sphinx.environment.collectors.metadata' [app] adding environment collector: <class 'sphinx.environment.collectors.metadata.MetadataCollector'> [app] connecting event 'doctree-read': <bound method MetadataCollector.process_doc of <sphinx.environment.collectors.metadata.MetadataCollector object at 0xf5d030a0>> [id=37] [app] connecting event 'env-merge-info': <bound method MetadataCollector.merge_other of <sphinx.environment.collectors.metadata.MetadataCollector object at 0xf5d030a0>> [id=38] [app] connecting event 'env-purge-doc': <bound method MetadataCollector.clear_doc of <sphinx.environment.collectors.metadata.MetadataCollector object at 0xf5d030a0>> [id=39] [app] connecting event 'env-get-updated': <bound method EnvironmentCollector.get_updated_docs of <sphinx.environment.collectors.metadata.MetadataCollector object at 0xf5d030a0>> [id=40] [app] connecting event 'env-get-outdated': <bound method EnvironmentCollector.get_outdated_docs of <sphinx.environment.collectors.metadata.MetadataCollector object at 0xf5d030a0>> [id=41] [app] setting up extension: 'sphinx.environment.collectors.title' [app] adding environment collector: <class 'sphinx.environment.collectors.title.TitleCollector'> [app] connecting event 'doctree-read': <bound method TitleCollector.process_doc of <sphinx.environment.collectors.title.TitleCollector object at 0xf5d03358>> [id=42] [app] connecting event 'env-merge-info': <bound method TitleCollector.merge_other of <sphinx.environment.collectors.title.TitleCollector object at 0xf5d03358>> [id=43] [app] connecting event 'env-purge-doc': <bound method TitleCollector.clear_doc of <sphinx.environment.collectors.title.TitleCollector object at 0xf5d03358>> [id=44] [app] connecting event 'env-get-updated': <bound method EnvironmentCollector.get_updated_docs of <sphinx.environment.collectors.title.TitleCollector object at 0xf5d03358>> [id=45] [app] connecting event 'env-get-outdated': <bound method EnvironmentCollector.get_outdated_docs of <sphinx.environment.collectors.title.TitleCollector object at 0xf5d03358>> [id=46] [app] setting up extension: 'sphinx.environment.collectors.toctree' [app] adding environment collector: <class 'sphinx.environment.collectors.toctree.TocTreeCollector'> [app] connecting event 'doctree-read': <bound method TocTreeCollector.process_doc of <sphinx.environment.collectors.toctree.TocTreeCollector object at 0xf5d033a0>> [id=47] [app] connecting event 'env-merge-info': <bound method TocTreeCollector.merge_other of <sphinx.environment.collectors.toctree.TocTreeCollector object at 0xf5d033a0>> [id=48] [app] connecting event 'env-purge-doc': <bound method TocTreeCollector.clear_doc of <sphinx.environment.collectors.toctree.TocTreeCollector object at 0xf5d033a0>> [id=49] [app] connecting event 'env-get-updated': <bound method TocTreeCollector.get_updated_docs of <sphinx.environment.collectors.toctree.TocTreeCollector object at 0xf5d033a0>> [id=50] [app] connecting event 'env-get-outdated': <bound method EnvironmentCollector.get_outdated_docs of <sphinx.environment.collectors.toctree.TocTreeCollector object at 0xf5d033a0>> [id=51] [app] setting up extension: 'sphinxcontrib.applehelp' [app] setting up extension: 'sphinx.builders.html' [app] adding builder: <class 'sphinxcontrib.applehelp.AppleHelpBuilder'> [app] adding config value: ('applehelp_bundle_name', <function setup.<locals>.<lambda> at 0xf5cfab20>, 'applehelp') [app] adding config value: ('applehelp_bundle_id', None, 'applehelp', [<class 'str'>]) [app] adding config value: ('applehelp_dev_region', 'en-us', 'applehelp') [app] adding config value: ('applehelp_bundle_version', '1', 'applehelp') [app] adding config value: ('applehelp_icon', None, 'applehelp', [<class 'str'>]) [app] adding config value: ('applehelp_kb_product', <function setup.<locals>.<lambda> at 0xf5d09538>, 'applehelp') [app] adding config value: ('applehelp_kb_url', None, 'applehelp', [<class 'str'>]) [app] adding config value: ('applehelp_remote_url', None, 'applehelp', [<class 'str'>]) [app] adding config value: ('applehelp_index_anchors', False, 'applehelp', [<class 'str'>]) [app] adding config value: ('applehelp_min_term_length', None, 'applehelp', [<class 'str'>]) [app] adding config value: ('applehelp_stopwords', <function setup.<locals>.<lambda> at 0xf5d094f0>, 'applehelp') [app] adding config value: ('applehelp_locale', <function setup.<locals>.<lambda> at 0xf5d09ec8>, 'applehelp') [app] adding config value: ('applehelp_title', <function setup.<locals>.<lambda> at 0xf5d09f10>, 'applehelp') [app] adding config value: ('applehelp_codesign_identity', <function setup.<locals>.<lambda> at 0xf5d09f58>, 'applehelp') [app] adding config value: ('applehelp_codesign_flags', <function setup.<locals>.<lambda> at 0xf5d09fa0>, 'applehelp') [app] adding config value: ('applehelp_indexer_path', '/usr/bin/hiutil', 'applehelp') [app] adding config value: ('applehelp_codesign_path', '/usr/bin/codesign', 'applehelp') [app] adding config value: ('applehelp_disable_external_tools', False, 'applehelp') [app] setting up extension: 'sphinxcontrib.devhelp' [app] setting up extension: 'sphinx.builders.html' [app] adding builder: <class 'sphinxcontrib.devhelp.DevhelpBuilder'> [app] adding config value: ('devhelp_basename', <function setup.<locals>.<lambda> at 0xf5d13028>, 'devhelp') [app] setting up extension: 'sphinxcontrib.htmlhelp' [app] setting up extension: 'sphinx.builders.html' [app] adding builder: <class 'sphinxcontrib.htmlhelp.HTMLHelpBuilder'> [app] adding config value: ('htmlhelp_basename', <function default_htmlhelp_basename at 0xf5c3bf10>, None) [app] adding config value: ('htmlhelp_file_suffix', None, 'html', [<class 'str'>]) [app] adding config value: ('htmlhelp_link_suffix', None, 'html', [<class 'str'>]) [app] setting up extension: 'sphinxcontrib.serializinghtml' [app] setting up extension: 'sphinx.builders.html' [app] adding builder: <class 'sphinxcontrib.serializinghtml.JSONHTMLBuilder'> [app] adding builder: <class 'sphinxcontrib.serializinghtml.PickleHTMLBuilder'> [app] setting up extension: 'sphinxcontrib.qthelp' [app] setting up extension: 'sphinx.builders.html' [app] adding builder: <class 'sphinxcontrib.qthelp.QtHelpBuilder'> [app] adding config value: ('qthelp_basename', <function setup.<locals>.<lambda> at 0xf5c3ba90>, 'html') [app] adding config value: ('qthelp_namespace', None, 'html', [<class 'str'>]) [app] adding config value: ('qthelp_theme', 'nonav', 'html') [app] adding config value: ('qthelp_theme_options', {}, 'html') [app] setting up extension: 'alabaster' [app] connecting event 'html-page-context': <function update_context at 0xf5c4e388> [id=52] [app] setting up extension: 'sphinx.ext.autodoc' [app] adding autodocumenter: <class 'sphinx.ext.autodoc.ModuleDocumenter'> [app] adding directive: ('automodule', <class 'sphinx.ext.autodoc.directive.AutodocDirective'>, None, None, {}) [app] adding autodocumenter: <class 'sphinx.ext.autodoc.ClassDocumenter'> [app] adding directive: ('autoclass', <class 'sphinx.ext.autodoc.directive.AutodocDirective'>, None, None, {}) [app] adding autodocumenter: <class 'sphinx.ext.autodoc.ExceptionDocumenter'> [app] adding directive: ('autoexception', <class 'sphinx.ext.autodoc.directive.AutodocDirective'>, None, None, {}) [app] adding autodocumenter: <class 'sphinx.ext.autodoc.DataDocumenter'> [app] adding directive: ('autodata', <class 'sphinx.ext.autodoc.directive.AutodocDirective'>, None, None, {}) [app] adding autodocumenter: <class 'sphinx.ext.autodoc.DataDeclarationDocumenter'> [app] adding directive: ('autodatadecl', <class 'sphinx.ext.autodoc.directive.AutodocDirective'>, None, None, {}) [app] adding autodocumenter: <class 'sphinx.ext.autodoc.FunctionDocumenter'> [app] adding directive: ('autofunction', <class 'sphinx.ext.autodoc.directive.AutodocDirective'>, None, None, {}) [app] adding autodocumenter: <class 'sphinx.ext.autodoc.DecoratorDocumenter'> [app] adding directive: ('autodecorator', <class 'sphinx.ext.autodoc.directive.AutodocDirective'>, None, None, {}) [app] adding autodocumenter: <class 'sphinx.ext.autodoc.MethodDocumenter'> [app] adding directive: ('automethod', <class 'sphinx.ext.autodoc.directive.AutodocDirective'>, None, None, {}) [app] adding autodocumenter: <class 'sphinx.ext.autodoc.AttributeDocumenter'> [app] adding directive: ('autoattribute', <class 'sphinx.ext.autodoc.directive.AutodocDirective'>, None, None, {}) [app] adding autodocumenter: <class 'sphinx.ext.autodoc.PropertyDocumenter'> [app] adding directive: ('autoproperty', <class 'sphinx.ext.autodoc.directive.AutodocDirective'>, None, None, {}) [app] adding autodocumenter: <class 'sphinx.ext.autodoc.InstanceAttributeDocumenter'> [app] adding directive: ('autoinstanceattribute', <class 'sphinx.ext.autodoc.directive.AutodocDirective'>, None, None, {}) [app] adding autodocumenter: <class 'sphinx.ext.autodoc.SlotsAttributeDocumenter'> [app] adding directive: ('autoslotsattribute', <class 'sphinx.ext.autodoc.directive.AutodocDirective'>, None, None, {}) [app] adding config value: ('autoclass_content', 'class', True) [app] adding config value: ('autodoc_member_order', 'alphabetic', True) [app] adding config value: ('autodoc_default_flags', [], True) [app] adding config value: ('autodoc_default_options', {}, True) [app] adding config value: ('autodoc_docstring_signature', True, True) [app] adding config value: ('autodoc_mock_imports', [], True) [app] adding config value: ('autodoc_typehints', 'signature', True, <sphinx.config.ENUM object at 0xf5c3e640>) [app] adding config value: ('autodoc_warningiserror', True, True) [app] adding config value: ('autodoc_inherit_docstrings', True, True) [app] adding event: 'autodoc-before-process-signature' [app] adding event: 'autodoc-process-docstring' [app] adding event: 'autodoc-process-signature' [app] adding event: 'autodoc-skip-member' [app] connecting event 'config-inited': <function merge_autodoc_default_flags at 0xf5ac12f8> [id=53] [app] setting up extension: 'sphinx.ext.autodoc.type_comment' [app] connecting event 'autodoc-before-process-signature': <function update_annotations_using_type_comments at 0xf5ac1658> [id=54] [app] setting up extension: 'sphinx.ext.doctest' [app] adding directive: ('testsetup', <class 'sphinx.ext.doctest.TestsetupDirective'>, None, None, {}) [app] adding directive: ('testcleanup', <class 'sphinx.ext.doctest.TestcleanupDirective'>, None, None, {}) [app] adding directive: ('doctest', <class 'sphinx.ext.doctest.DoctestDirective'>, None, None, {}) [app] adding directive: ('testcode', <class 'sphinx.ext.doctest.TestcodeDirective'>, None, None, {}) [app] adding directive: ('testoutput', <class 'sphinx.ext.doctest.TestoutputDirective'>, None, None, {}) [app] adding builder: <class 'sphinx.ext.doctest.DocTestBuilder'> [app] adding config value: ('doctest_path', [], False) [app] adding config value: ('doctest_test_doctest_blocks', 'default', False) [app] adding config value: ('doctest_global_setup', '', False) [app] adding config value: ('doctest_global_cleanup', '', False) [app] adding config value: ('doctest_default_flags', 41, False) [app] setting up extension: 'sphinx.ext.intersphinx' [app] adding config value: ('intersphinx_mapping', {}, True) [app] adding config value: ('intersphinx_cache_limit', 5, False) [app] adding config value: ('intersphinx_timeout', None, False) [app] connecting event 'config-inited': <function normalize_intersphinx_mapping at 0xf5ac1bf8> [id=55] [app] connecting event 'builder-inited': <function load_mappings at 0xf5ac1b68> [id=56] [app] connecting event 'missing-reference': <function missing_reference at 0xf5ac1bb0> [id=57] [app] setting up extension: 'sphinx.ext.todo' [app] adding event: 'todo-defined' [app] adding config value: ('todo_include_todos', False, 'html') [app] adding config value: ('todo_link_only', False, 'html') [app] adding config value: ('todo_emit_warnings', False, 'html') [app] adding node: (<class 'sphinx.ext.todo.todolist'>, {}) [app] adding translation_handlers: <class 'sphinx.ext.todo.todolist'>, {} [app] adding node: (<class 'sphinx.ext.todo.todo_node'>, {'html': (<function visit_todo_node at 0xf5aca220>, <function depart_todo_node at 0xf5aca268>), 'latex': (<function latex_visit_todo_node at 0xf5aca2b0>, <function latex_depart_todo_node at 0xf5aca2f8>), 'text': (<function visit_todo_node at 0xf5aca220>, <function depart_todo_node at 0xf5aca268>), 'man': (<function visit_todo_node at 0xf5aca220>, <function depart_todo_node at 0xf5aca268>), 'texinfo': (<function visit_todo_node at 0xf5aca220>, <function depart_todo_node at 0xf5aca268>)}) [app] adding translation_handlers: <class 'sphinx.ext.todo.todo_node'>, {'html': (<function visit_todo_node at 0xf5aca220>, <function depart_todo_node at 0xf5aca268>), 'latex': (<function latex_visit_todo_node at 0xf5aca2b0>, <function latex_depart_todo_node at 0xf5aca2f8>), 'text': (<function visit_todo_node at 0xf5aca220>, <function depart_todo_node at 0xf5aca268>), 'man': (<function visit_todo_node at 0xf5aca220>, <function depart_todo_node at 0xf5aca268>), 'texinfo': (<function visit_todo_node at 0xf5aca220>, <function depart_todo_node at 0xf5aca268>)} [app] adding directive: ('todo', <class 'sphinx.ext.todo.Todo'>, None, None, {}) [app] adding directive: ('todolist', <class 'sphinx.ext.todo.TodoList'>, None, None, {}) [app] adding domain: <class 'sphinx.ext.todo.TodoDomain'> [app] connecting event 'doctree-resolved': <class 'sphinx.ext.todo.TodoListProcessor'> [id=58] [app] setting up extension: 'sphinx.ext.coverage' [app] adding builder: <class 'sphinx.ext.coverage.CoverageBuilder'> [app] adding config value: ('coverage_ignore_modules', [], False) [app] adding config value: ('coverage_ignore_functions', [], False) [app] adding config value: ('coverage_ignore_classes', [], False) [app] adding config value: ('coverage_ignore_pyobjects', [], False) [app] adding config value: ('coverage_c_path', [], False) [app] adding config value: ('coverage_c_regexes', {}, False) [app] adding config value: ('coverage_ignore_c_items', {}, False) [app] adding config value: ('coverage_write_headline', True, False) [app] adding config value: ('coverage_skip_undoc_in_source', False, False) [app] setting up extension: 'numpydoc' [app] connecting event 'autodoc-process-docstring': <function mangle_docstrings at 0xf5dcc808> [id=59] [app] connecting event 'autodoc-process-signature': <function mangle_signature at 0xf5dcc850> [id=60] [app] adding config value: ('numpydoc_edit_link', None, False) [app] adding config value: ('numpydoc_use_plots', None, False) [app] adding config value: ('numpydoc_show_class_members', True, True) [app] adding config value: ('numpydoc_show_inherited_class_members', True, True) [app] adding config value: ('numpydoc_class_members_toctree', True, True) [app] adding config value: ('numpydoc_citation_re', '[a-z0-9_.-]+', True) [app] adding domain: <class 'numpydoc.numpydoc.NumpyPythonDomain'> [app] adding domain: <class 'numpydoc.numpydoc.NumpyCDomain'> making output directory... done [app] emitting event: 'config-inited'(<sphinx.config.Config object at 0xf651fcd0>,) WARNING: html_static_path entry '_static' does not exist loading pickled environment... done [app] emitting event: 'builder-inited'() loading intersphinx inventory from http://docs.python.org/objects.inv... WARNING: failed to reach any of the inventories with the following issues: intersphinx inventory 'http://docs.python.org/objects.inv' not fetchable due to <class 'requests.exceptions.ConnectionError'>: HTTPConnectionPool(host='docs.python.org', port=80): Max retries exceeded with url: /objects.inv (Caused by NewConnectionError('<urllib3.connection.HTTPConnection object at 0xf5b9e430>: Failed to establish a new connection: [Errno -3] Temporary failure in name resolution')) building [mo]: targets for 0 po files that are out of date building [html]: targets for 5 source files that are out of date updating environment: [app] emitting event: 'env-get-outdated'(<sphinx.builders.html.StandaloneHTMLBuilder object at 0xf5af09e8>, set(), set(), set()) 0 added, 0 changed, 0 removed [app] emitting event: 'env-before-read-docs'(<sphinx.environment.BuildEnvironment object at 0xf5abe520>, []) [app] emitting event: 'env-updated'(<sphinx.environment.BuildEnvironment object at 0xf5abe520>,) looking for now-outdated files... [app] emitting event: 'env-get-updated'(<sphinx.environment.BuildEnvironment object at 0xf5abe520>,) none found docnames to write: index, install, intro, reference, tutorial preparing documents... done writing output... [ 20%] index [app] emitting event: 'doctree-resolved'(<document: <comment...><section "welcome to python-blosc's document ...>, 'index') SphinxTranslator.dispatch_visit calling visit_document for <document source="<partial node>"><title>Welcome to python-blosc’s documentation!</title></document> SphinxTranslator.dispatch_visit calling visit_title for <title>Welcome to python-blosc’s documentation!</title> SphinxTranslator.dispatch_visit calling visit_Text for Welcome to python-blosc’s documentation! SphinxTranslator.dispatch_departure calling depart_Text for Welcome to python-blosc’s documentation! SphinxTranslator.dispatch_departure calling depart_title for <title>Welcome to python-blosc’s documentation!</title> SphinxTranslator.dispatch_departure calling depart_document for <document source="<partial node>"><title>Welcome to python-blosc’s documentation!</title></document> SphinxTranslator.dispatch_visit calling visit_document for <document source="/usr/src/RPM/BUILD/python3-module-blosc-1.5.1/doc/index.rst"><comment xml:space="preserve">python-blosc documentation master file, created by sphinx-quickstart on Sun May 5 19:38:24 2013. You can adapt this file completely to your liking, but it should at least contain the root `toctree` directive.</comment><section ids="welcome-to-python-blosc-s-documentation" names="welcome\ to\ python-blosc's\ documentation!"><title>Welcome to python-blosc’s documentation!</title><paragraph>Contents:</paragraph><compound classes="toctree-wrapper"><compact_paragraph toctree="True"><bullet_list><list_item classes="toctree-l1"><compact_paragraph classes="toctree-l1"><reference anchorname="" internal="True" refuri="intro.html">Introduction</reference></compact_paragraph><bullet_list><list_item classes="toctree-l2"><compact_paragraph classes="toctree-l2"><reference anchorname="#what-is-python-blosc" internal="True" refuri="intro.html#what-is-python-blosc">What is python-blosc?</reference></compact_paragraph></list_item><list_item classes="toctree-l2"><compact_paragraph classes="toctree-l2"><reference anchorname="#mailing-list" internal="True" refuri="intro.html#mailing-list">Mailing list</reference></compact_paragraph></list_item></bullet_list></list_item><list_item classes="toctree-l1"><compact_paragraph classes="toctree-l1"><reference anchorname="" internal="True" refuri="install.html">Installation</reference></compact_paragraph><bullet_list><list_item classes="toctree-l2"><compact_paragraph classes="toctree-l2"><reference anchorname="#installing-from-pypi-repository" internal="True" refuri="install.html#installing-from-pypi-repository">Installing from PyPI repository</reference></compact_paragraph></list_item><list_item classes="toctree-l2"><compact_paragraph classes="toctree-l2"><reference anchorname="#building-manually" internal="True" refuri="install.html#building-manually">Building manually</reference></compact_paragraph></list_item><list_item classes="toctree-l2"><compact_paragraph classes="toctree-l2"><reference anchorname="#testing" internal="True" refuri="install.html#testing">Testing</reference></compact_paragraph></list_item><list_item classes="toctree-l2"><compact_paragraph classes="toctree-l2"><reference anchorname="#installing" internal="True" refuri="install.html#installing">Installing</reference></compact_paragraph></list_item></bullet_list></list_item><list_item classes="toctree-l1"><compact_paragraph classes="toctree-l1"><reference anchorname="" internal="True" refuri="tutorial.html">Tutorials</reference></compact_paragraph><bullet_list><list_item classes="toctree-l2"><compact_paragraph classes="toctree-l2"><reference anchorname="#compressing-and-decompressing-with-blosc" internal="True" refuri="tutorial.html#compressing-and-decompressing-with-blosc">Compressing and decompressing with <literal>blosc</literal></reference></compact_paragraph></list_item><list_item classes="toctree-l2"><compact_paragraph classes="toctree-l2"><reference anchorname="#using-different-filters" internal="True" refuri="tutorial.html#using-different-filters">Using different filters</reference></compact_paragraph></list_item><list_item classes="toctree-l2"><compact_paragraph classes="toctree-l2"><reference anchorname="#supporting-the-buffer-interface" internal="True" refuri="tutorial.html#supporting-the-buffer-interface">Supporting the buffer interface</reference></compact_paragraph></list_item><list_item classes="toctree-l2"><compact_paragraph classes="toctree-l2"><reference anchorname="#packaging-numpy-arrays" internal="True" refuri="tutorial.html#packaging-numpy-arrays">Packaging NumPy arrays</reference></compact_paragraph></list_item><list_item classes="toctree-l2"><compact_paragraph classes="toctree-l2"><reference anchorname="#compressing-from-a-data-pointer" internal="True" refuri="tutorial.html#compressing-from-a-data-pointer">Compressing from a data pointer</reference></compact_paragraph></list_item><list_item classes="toctree-l2"><compact_paragraph classes="toctree-l2"><reference anchorname="#fine-tuning-compression-parameters" internal="True" refuri="tutorial.html#fine-tuning-compression-parameters">Fine-tuning compression parameters</reference></compact_paragraph></list_item><list_item classes="toctree-l2"><compact_paragraph classes="toctree-l2"><reference anchorname="#links-to-external-discussions-on-blosc-optimization" internal="True" refuri="tutorial.html#links-to-external-discussions-on-blosc-optimization">Links to external discussions on <literal>blosc</literal> optimization</reference></compact_paragraph></list_item></bullet_list></list_item><list_item classes="toctree-l1"><compact_paragraph classes="toctree-l1"><reference anchorname="" internal="True" refuri="reference.html">Library Reference</reference></compact_paragraph><bullet_list><list_item classes="toctree-l2"><compact_paragraph classes="toctree-l2"><reference anchorname="#first-level-variables" internal="True" refuri="reference.html#first-level-variables">First level variables</reference></compact_paragraph></list_item><list_item classes="toctree-l2"><compact_paragraph classes="toctree-l2"><reference anchorname="#module-blosc" internal="True" refuri="reference.html#module-blosc">Public functions</reference></compact_paragraph></list_item><list_item classes="toctree-l2"><compact_paragraph classes="toctree-l2"><reference anchorname="#module-blosc" internal="True" refuri="reference.html#module-blosc">Utilities</reference></compact_paragraph></list_item></bullet_list></list_item></bullet_list></compact_paragraph></compound></section><section ids="indices-and-tables" names="indices\ and\ tables"><title>Indices and tables</title><bullet_list bullet="*"><list_item><paragraph><reference internal="True" refuri="genindex.html"><inline classes="std std-ref">Index</inline></reference></paragraph></list_item><list_item><paragraph><reference internal="True" refuri="py-modindex.html"><inline classes="std std-ref">Module Index</inline></reference></paragraph></list_item><list_item><paragraph><reference internal="True" refuri="search.html"><inline classes="std std-ref">Search Page</inline></reference></paragraph></list_item></bullet_list></section></document> SphinxTranslator.dispatch_visit calling visit_comment for <comment xml:space="preserve">python-blosc documentation master file, created by sphinx-quickstart on Sun May 5 19:38:24 2013. You can adapt this file completely to your liking, but it should at least contain the root `toctree` directive.</comment> SphinxTranslator.dispatch_visit calling visit_section for <section ids="welcome-to-python-blosc-s-documentation" names="welcome\ to\ python-blosc's\ documentation!"><title>Welcome to python-blosc’s documentation!</title><paragraph>Contents:</paragraph><compound classes="toctree-wrapper"><compact_paragraph toctree="True"><bullet_list><list_item classes="toctree-l1"><compact_paragraph classes="toctree-l1"><reference anchorname="" internal="True" refuri="intro.html">Introduction</reference></compact_paragraph><bullet_list><list_item classes="toctree-l2"><compact_paragraph classes="toctree-l2"><reference anchorname="#what-is-python-blosc" internal="True" refuri="intro.html#what-is-python-blosc">What is python-blosc?</reference></compact_paragraph></list_item><list_item classes="toctree-l2"><compact_paragraph classes="toctree-l2"><reference anchorname="#mailing-list" internal="True" refuri="intro.html#mailing-list">Mailing list</reference></compact_paragraph></list_item></bullet_list></list_item><list_item classes="toctree-l1"><compact_paragraph classes="toctree-l1"><reference anchorname="" internal="True" refuri="install.html">Installation</reference></compact_paragraph><bullet_list><list_item classes="toctree-l2"><compact_paragraph classes="toctree-l2"><reference anchorname="#installing-from-pypi-repository" internal="True" refuri="install.html#installing-from-pypi-repository">Installing from PyPI repository</reference></compact_paragraph></list_item><list_item classes="toctree-l2"><compact_paragraph classes="toctree-l2"><reference anchorname="#building-manually" internal="True" refuri="install.html#building-manually">Building manually</reference></compact_paragraph></list_item><list_item classes="toctree-l2"><compact_paragraph classes="toctree-l2"><reference anchorname="#testing" internal="True" refuri="install.html#testing">Testing</reference></compact_paragraph></list_item><list_item classes="toctree-l2"><compact_paragraph classes="toctree-l2"><reference anchorname="#installing" internal="True" refuri="install.html#installing">Installing</reference></compact_paragraph></list_item></bullet_list></list_item><list_item classes="toctree-l1"><compact_paragraph classes="toctree-l1"><reference anchorname="" internal="True" refuri="tutorial.html">Tutorials</reference></compact_paragraph><bullet_list><list_item classes="toctree-l2"><compact_paragraph classes="toctree-l2"><reference anchorname="#compressing-and-decompressing-with-blosc" internal="True" refuri="tutorial.html#compressing-and-decompressing-with-blosc">Compressing and decompressing with <literal>blosc</literal></reference></compact_paragraph></list_item><list_item classes="toctree-l2"><compact_paragraph classes="toctree-l2"><reference anchorname="#using-different-filters" internal="True" refuri="tutorial.html#using-different-filters">Using different filters</reference></compact_paragraph></list_item><list_item classes="toctree-l2"><compact_paragraph classes="toctree-l2"><reference anchorname="#supporting-the-buffer-interface" internal="True" refuri="tutorial.html#supporting-the-buffer-interface">Supporting the buffer interface</reference></compact_paragraph></list_item><list_item classes="toctree-l2"><compact_paragraph classes="toctree-l2"><reference anchorname="#packaging-numpy-arrays" internal="True" refuri="tutorial.html#packaging-numpy-arrays">Packaging NumPy arrays</reference></compact_paragraph></list_item><list_item classes="toctree-l2"><compact_paragraph classes="toctree-l2"><reference anchorname="#compressing-from-a-data-pointer" internal="True" refuri="tutorial.html#compressing-from-a-data-pointer">Compressing from a data pointer</reference></compact_paragraph></list_item><list_item classes="toctree-l2"><compact_paragraph classes="toctree-l2"><reference anchorname="#fine-tuning-compression-parameters" internal="True" refuri="tutorial.html#fine-tuning-compression-parameters">Fine-tuning compression parameters</reference></compact_paragraph></list_item><list_item classes="toctree-l2"><compact_paragraph classes="toctree-l2"><reference anchorname="#links-to-external-discussions-on-blosc-optimization" internal="True" refuri="tutorial.html#links-to-external-discussions-on-blosc-optimization">Links to external discussions on <literal>blosc</literal> optimization</reference></compact_paragraph></list_item></bullet_list></list_item><list_item classes="toctree-l1"><compact_paragraph classes="toctree-l1"><reference anchorname="" internal="True" refuri="reference.html">Library Reference</reference></compact_paragraph><bullet_list><list_item classes="toctree-l2"><compact_paragraph classes="toctree-l2"><reference anchorname="#first-level-variables" internal="True" refuri="reference.html#first-level-variables">First level variables</reference></compact_paragraph></list_item><list_item classes="toctree-l2"><compact_paragraph classes="toctree-l2"><reference anchorname="#module-blosc" internal="True" refuri="reference.html#module-blosc">Public functions</reference></compact_paragraph></list_item><list_item classes="toctree-l2"><compact_paragraph classes="toctree-l2"><reference anchorname="#module-blosc" internal="True" refuri="reference.html#module-blosc">Utilities</reference></compact_paragraph></list_item></bullet_list></list_item></bullet_list></compact_paragraph></compound></section> SphinxTranslator.dispatch_visit calling visit_title for <title>Welcome to python-blosc’s documentation!</title> SphinxTranslator.dispatch_visit calling visit_Text for Welcome to python-blosc’s documentation! SphinxTranslator.dispatch_departure calling depart_Text for Welcome to python-blosc’s documentation! SphinxTranslator.dispatch_departure calling depart_title for <title>Welcome to python-blosc’s documentation!</title> SphinxTranslator.dispatch_visit calling visit_paragraph for <paragraph>Contents:</paragraph> SphinxTranslator.dispatch_visit calling visit_Text for Contents: SphinxTranslator.dispatch_departure calling depart_Text for Contents: SphinxTranslator.dispatch_departure calling depart_paragraph for <paragraph>Contents:</paragraph> SphinxTranslator.dispatch_visit calling visit_compound for <compound classes="toctree-wrapper"><compact_paragraph toctree="True"><bullet_list><list_item classes="toctree-l1"><compact_paragraph classes="toctree-l1"><reference anchorname="" internal="True" refuri="intro.html">Introduction</reference></compact_paragraph><bullet_list><list_item classes="toctree-l2"><compact_paragraph classes="toctree-l2"><reference anchorname="#what-is-python-blosc" internal="True" refuri="intro.html#what-is-python-blosc">What is python-blosc?</reference></compact_paragraph></list_item><list_item classes="toctree-l2"><compact_paragraph classes="toctree-l2"><reference anchorname="#mailing-list" internal="True" refuri="intro.html#mailing-list">Mailing list</reference></compact_paragraph></list_item></bullet_list></list_item><list_item classes="toctree-l1"><compact_paragraph classes="toctree-l1"><reference anchorname="" internal="True" refuri="install.html">Installation</reference></compact_paragraph><bullet_list><list_item classes="toctree-l2"><compact_paragraph classes="toctree-l2"><reference anchorname="#installing-from-pypi-repository" internal="True" refuri="install.html#installing-from-pypi-repository">Installing from PyPI repository</reference></compact_paragraph></list_item><list_item classes="toctree-l2"><compact_paragraph classes="toctree-l2"><reference anchorname="#building-manually" internal="True" refuri="install.html#building-manually">Building manually</reference></compact_paragraph></list_item><list_item classes="toctree-l2"><compact_paragraph classes="toctree-l2"><reference anchorname="#testing" internal="True" refuri="install.html#testing">Testing</reference></compact_paragraph></list_item><list_item classes="toctree-l2"><compact_paragraph classes="toctree-l2"><reference anchorname="#installing" internal="True" refuri="install.html#installing">Installing</reference></compact_paragraph></list_item></bullet_list></list_item><list_item classes="toctree-l1"><compact_paragraph classes="toctree-l1"><reference anchorname="" internal="True" refuri="tutorial.html">Tutorials</reference></compact_paragraph><bullet_list><list_item classes="toctree-l2"><compact_paragraph classes="toctree-l2"><reference anchorname="#compressing-and-decompressing-with-blosc" internal="True" refuri="tutorial.html#compressing-and-decompressing-with-blosc">Compressing and decompressing with <literal>blosc</literal></reference></compact_paragraph></list_item><list_item classes="toctree-l2"><compact_paragraph classes="toctree-l2"><reference anchorname="#using-different-filters" internal="True" refuri="tutorial.html#using-different-filters">Using different filters</reference></compact_paragraph></list_item><list_item classes="toctree-l2"><compact_paragraph classes="toctree-l2"><reference anchorname="#supporting-the-buffer-interface" internal="True" refuri="tutorial.html#supporting-the-buffer-interface">Supporting the buffer interface</reference></compact_paragraph></list_item><list_item classes="toctree-l2"><compact_paragraph classes="toctree-l2"><reference anchorname="#packaging-numpy-arrays" internal="True" refuri="tutorial.html#packaging-numpy-arrays">Packaging NumPy arrays</reference></compact_paragraph></list_item><list_item classes="toctree-l2"><compact_paragraph classes="toctree-l2"><reference anchorname="#compressing-from-a-data-pointer" internal="True" refuri="tutorial.html#compressing-from-a-data-pointer">Compressing from a data pointer</reference></compact_paragraph></list_item><list_item classes="toctree-l2"><compact_paragraph classes="toctree-l2"><reference anchorname="#fine-tuning-compression-parameters" internal="True" refuri="tutorial.html#fine-tuning-compression-parameters">Fine-tuning compression parameters</reference></compact_paragraph></list_item><list_item classes="toctree-l2"><compact_paragraph classes="toctree-l2"><reference anchorname="#links-to-external-discussions-on-blosc-optimization" internal="True" refuri="tutorial.html#links-to-external-discussions-on-blosc-optimization">Links to external discussions on <literal>blosc</literal> optimization</reference></compact_paragraph></list_item></bullet_list></list_item><list_item classes="toctree-l1"><compact_paragraph classes="toctree-l1"><reference anchorname="" internal="True" refuri="reference.html">Library Reference</reference></compact_paragraph><bullet_list><list_item classes="toctree-l2"><compact_paragraph classes="toctree-l2"><reference anchorname="#first-level-variables" internal="True" refuri="reference.html#first-level-variables">First level variables</reference></compact_paragraph></list_item><list_item classes="toctree-l2"><compact_paragraph classes="toctree-l2"><reference anchorname="#module-blosc" internal="True" refuri="reference.html#module-blosc">Public functions</reference></compact_paragraph></list_item><list_item classes="toctree-l2"><compact_paragraph classes="toctree-l2"><reference anchorname="#module-blosc" internal="True" refuri="reference.html#module-blosc">Utilities</reference></compact_paragraph></list_item></bullet_list></list_item></bullet_list></compact_paragraph></compound> SphinxTranslator.dispatch_visit calling visit_compact_paragraph for <compact_paragraph toctree="True"><bullet_list><list_item classes="toctree-l1"><compact_paragraph classes="toctree-l1"><reference anchorname="" internal="True" refuri="intro.html">Introduction</reference></compact_paragraph><bullet_list><list_item classes="toctree-l2"><compact_paragraph classes="toctree-l2"><reference anchorname="#what-is-python-blosc" internal="True" refuri="intro.html#what-is-python-blosc">What is python-blosc?</reference></compact_paragraph></list_item><list_item classes="toctree-l2"><compact_paragraph classes="toctree-l2"><reference anchorname="#mailing-list" internal="True" refuri="intro.html#mailing-list">Mailing list</reference></compact_paragraph></list_item></bullet_list></list_item><list_item classes="toctree-l1"><compact_paragraph classes="toctree-l1"><reference anchorname="" internal="True" refuri="install.html">Installation</reference></compact_paragraph><bullet_list><list_item classes="toctree-l2"><compact_paragraph classes="toctree-l2"><reference anchorname="#installing-from-pypi-repository" internal="True" refuri="install.html#installing-from-pypi-repository">Installing from PyPI repository</reference></compact_paragraph></list_item><list_item classes="toctree-l2"><compact_paragraph classes="toctree-l2"><reference anchorname="#building-manually" internal="True" refuri="install.html#building-manually">Building manually</reference></compact_paragraph></list_item><list_item classes="toctree-l2"><compact_paragraph classes="toctree-l2"><reference anchorname="#testing" internal="True" refuri="install.html#testing">Testing</reference></compact_paragraph></list_item><list_item classes="toctree-l2"><compact_paragraph classes="toctree-l2"><reference anchorname="#installing" internal="True" refuri="install.html#installing">Installing</reference></compact_paragraph></list_item></bullet_list></list_item><list_item classes="toctree-l1"><compact_paragraph classes="toctree-l1"><reference anchorname="" internal="True" refuri="tutorial.html">Tutorials</reference></compact_paragraph><bullet_list><list_item classes="toctree-l2"><compact_paragraph classes="toctree-l2"><reference anchorname="#compressing-and-decompressing-with-blosc" internal="True" refuri="tutorial.html#compressing-and-decompressing-with-blosc">Compressing and decompressing with <literal>blosc</literal></reference></compact_paragraph></list_item><list_item classes="toctree-l2"><compact_paragraph classes="toctree-l2"><reference anchorname="#using-different-filters" internal="True" refuri="tutorial.html#using-different-filters">Using different filters</reference></compact_paragraph></list_item><list_item classes="toctree-l2"><compact_paragraph classes="toctree-l2"><reference anchorname="#supporting-the-buffer-interface" internal="True" refuri="tutorial.html#supporting-the-buffer-interface">Supporting the buffer interface</reference></compact_paragraph></list_item><list_item classes="toctree-l2"><compact_paragraph classes="toctree-l2"><reference anchorname="#packaging-numpy-arrays" internal="True" refuri="tutorial.html#packaging-numpy-arrays">Packaging NumPy arrays</reference></compact_paragraph></list_item><list_item classes="toctree-l2"><compact_paragraph classes="toctree-l2"><reference anchorname="#compressing-from-a-data-pointer" internal="True" refuri="tutorial.html#compressing-from-a-data-pointer">Compressing from a data pointer</reference></compact_paragraph></list_item><list_item classes="toctree-l2"><compact_paragraph classes="toctree-l2"><reference anchorname="#fine-tuning-compression-parameters" internal="True" refuri="tutorial.html#fine-tuning-compression-parameters">Fine-tuning compression parameters</reference></compact_paragraph></list_item><list_item classes="toctree-l2"><compact_paragraph classes="toctree-l2"><reference anchorname="#links-to-external-discussions-on-blosc-optimization" internal="True" refuri="tutorial.html#links-to-external-discussions-on-blosc-optimization">Links to external discussions on <literal>blosc</literal> optimization</reference></compact_paragraph></list_item></bullet_list></list_item><list_item classes="toctree-l1"><compact_paragraph classes="toctree-l1"><reference anchorname="" internal="True" refuri="reference.html">Library Reference</reference></compact_paragraph><bullet_list><list_item classes="toctree-l2"><compact_paragraph classes="toctree-l2"><reference anchorname="#first-level-variables" internal="True" refuri="reference.html#first-level-variables">First level variables</reference></compact_paragraph></list_item><list_item classes="toctree-l2"><compact_paragraph classes="toctree-l2"><reference anchorname="#module-blosc" internal="True" refuri="reference.html#module-blosc">Public functions</reference></compact_paragraph></list_item><list_item classes="toctree-l2"><compact_paragraph classes="toctree-l2"><reference anchorname="#module-blosc" internal="True" refuri="reference.html#module-blosc">Utilities</reference></compact_paragraph></list_item></bullet_list></list_item></bullet_list></compact_paragraph> SphinxTranslator.dispatch_visit calling visit_bullet_list for <bullet_list><list_item classes="toctree-l1"><compact_paragraph classes="toctree-l1"><reference anchorname="" internal="True" refuri="intro.html">Introduction</reference></compact_paragraph><bullet_list><list_item classes="toctree-l2"><compact_paragraph classes="toctree-l2"><reference anchorname="#what-is-python-blosc" internal="True" refuri="intro.html#what-is-python-blosc">What is python-blosc?</reference></compact_paragraph></list_item><list_item classes="toctree-l2"><compact_paragraph classes="toctree-l2"><reference anchorname="#mailing-list" internal="True" refuri="intro.html#mailing-list">Mailing list</reference></compact_paragraph></list_item></bullet_list></list_item><list_item classes="toctree-l1"><compact_paragraph classes="toctree-l1"><reference anchorname="" internal="True" refuri="install.html">Installation</reference></compact_paragraph><bullet_list><list_item classes="toctree-l2"><compact_paragraph classes="toctree-l2"><reference anchorname="#installing-from-pypi-repository" internal="True" refuri="install.html#installing-from-pypi-repository">Installing from PyPI repository</reference></compact_paragraph></list_item><list_item classes="toctree-l2"><compact_paragraph classes="toctree-l2"><reference anchorname="#building-manually" internal="True" refuri="install.html#building-manually">Building manually</reference></compact_paragraph></list_item><list_item classes="toctree-l2"><compact_paragraph classes="toctree-l2"><reference anchorname="#testing" internal="True" refuri="install.html#testing">Testing</reference></compact_paragraph></list_item><list_item classes="toctree-l2"><compact_paragraph classes="toctree-l2"><reference anchorname="#installing" internal="True" refuri="install.html#installing">Installing</reference></compact_paragraph></list_item></bullet_list></list_item><list_item classes="toctree-l1"><compact_paragraph classes="toctree-l1"><reference anchorname="" internal="True" refuri="tutorial.html">Tutorials</reference></compact_paragraph><bullet_list><list_item classes="toctree-l2"><compact_paragraph classes="toctree-l2"><reference anchorname="#compressing-and-decompressing-with-blosc" internal="True" refuri="tutorial.html#compressing-and-decompressing-with-blosc">Compressing and decompressing with <literal>blosc</literal></reference></compact_paragraph></list_item><list_item classes="toctree-l2"><compact_paragraph classes="toctree-l2"><reference anchorname="#using-different-filters" internal="True" refuri="tutorial.html#using-different-filters">Using different filters</reference></compact_paragraph></list_item><list_item classes="toctree-l2"><compact_paragraph classes="toctree-l2"><reference anchorname="#supporting-the-buffer-interface" internal="True" refuri="tutorial.html#supporting-the-buffer-interface">Supporting the buffer interface</reference></compact_paragraph></list_item><list_item classes="toctree-l2"><compact_paragraph classes="toctree-l2"><reference anchorname="#packaging-numpy-arrays" internal="True" refuri="tutorial.html#packaging-numpy-arrays">Packaging NumPy arrays</reference></compact_paragraph></list_item><list_item classes="toctree-l2"><compact_paragraph classes="toctree-l2"><reference anchorname="#compressing-from-a-data-pointer" internal="True" refuri="tutorial.html#compressing-from-a-data-pointer">Compressing from a data pointer</reference></compact_paragraph></list_item><list_item classes="toctree-l2"><compact_paragraph classes="toctree-l2"><reference anchorname="#fine-tuning-compression-parameters" internal="True" refuri="tutorial.html#fine-tuning-compression-parameters">Fine-tuning compression parameters</reference></compact_paragraph></list_item><list_item classes="toctree-l2"><compact_paragraph classes="toctree-l2"><reference anchorname="#links-to-external-discussions-on-blosc-optimization" internal="True" refuri="tutorial.html#links-to-external-discussions-on-blosc-optimization">Links to external discussions on <literal>blosc</literal> optimization</reference></compact_paragraph></list_item></bullet_list></list_item><list_item classes="toctree-l1"><compact_paragraph classes="toctree-l1"><reference anchorname="" internal="True" refuri="reference.html">Library Reference</reference></compact_paragraph><bullet_list><list_item classes="toctree-l2"><compact_paragraph classes="toctree-l2"><reference anchorname="#first-level-variables" internal="True" refuri="reference.html#first-level-variables">First level variables</reference></compact_paragraph></list_item><list_item classes="toctree-l2"><compact_paragraph classes="toctree-l2"><reference anchorname="#module-blosc" internal="True" refuri="reference.html#module-blosc">Public functions</reference></compact_paragraph></list_item><list_item classes="toctree-l2"><compact_paragraph classes="toctree-l2"><reference anchorname="#module-blosc" internal="True" refuri="reference.html#module-blosc">Utilities</reference></compact_paragraph></list_item></bullet_list></list_item></bullet_list> SphinxTranslator.dispatch_visit calling visit_list_item for <list_item classes="toctree-l1"><compact_paragraph classes="toctree-l1"><reference anchorname="" internal="True" refuri="intro.html">Introduction</reference></compact_paragraph><bullet_list><list_item classes="toctree-l2"><compact_paragraph classes="toctree-l2"><reference anchorname="#what-is-python-blosc" internal="True" refuri="intro.html#what-is-python-blosc">What is python-blosc?</reference></compact_paragraph></list_item><list_item classes="toctree-l2"><compact_paragraph classes="toctree-l2"><reference anchorname="#mailing-list" internal="True" refuri="intro.html#mailing-list">Mailing list</reference></compact_paragraph></list_item></bullet_list></list_item> SphinxTranslator.dispatch_visit calling visit_compact_paragraph for <compact_paragraph classes="toctree-l1"><reference anchorname="" internal="True" refuri="intro.html">Introduction</reference></compact_paragraph> SphinxTranslator.dispatch_visit calling visit_reference for <reference anchorname="" internal="True" refuri="intro.html">Introduction</reference> SphinxTranslator.dispatch_visit calling visit_Text for Introduction SphinxTranslator.dispatch_departure calling depart_Text for Introduction SphinxTranslator.dispatch_departure calling depart_reference for <reference anchorname="" internal="True" refuri="intro.html">Introduction</reference> SphinxTranslator.dispatch_departure calling depart_compact_paragraph for <compact_paragraph classes="toctree-l1"><reference anchorname="" internal="True" refuri="intro.html">Introduction</reference></compact_paragraph> SphinxTranslator.dispatch_visit calling visit_bullet_list for <bullet_list><list_item classes="toctree-l2"><compact_paragraph classes="toctree-l2"><reference anchorname="#what-is-python-blosc" internal="True" refuri="intro.html#what-is-python-blosc">What is python-blosc?</reference></compact_paragraph></list_item><list_item classes="toctree-l2"><compact_paragraph classes="toctree-l2"><reference anchorname="#mailing-list" internal="True" refuri="intro.html#mailing-list">Mailing list</reference></compact_paragraph></list_item></bullet_list> SphinxTranslator.dispatch_visit calling visit_list_item for <list_item classes="toctree-l2"><compact_paragraph classes="toctree-l2"><reference anchorname="#what-is-python-blosc" internal="True" refuri="intro.html#what-is-python-blosc">What is python-blosc?</reference></compact_paragraph></list_item> SphinxTranslator.dispatch_visit calling visit_compact_paragraph for <compact_paragraph classes="toctree-l2"><reference anchorname="#what-is-python-blosc" internal="True" refuri="intro.html#what-is-python-blosc">What is python-blosc?</reference></compact_paragraph> SphinxTranslator.dispatch_visit calling visit_reference for <reference anchorname="#what-is-python-blosc" internal="True" refuri="intro.html#what-is-python-blosc">What is python-blosc?</reference> SphinxTranslator.dispatch_visit calling visit_Text for What is python-blosc? SphinxTranslator.dispatch_departure calling depart_Text for What is python-blosc? SphinxTranslator.dispatch_departure calling depart_reference for <reference anchorname="#what-is-python-blosc" internal="True" refuri="intro.html#what-is-python-blosc">What is python-blosc?</reference> SphinxTranslator.dispatch_departure calling depart_compact_paragraph for <compact_paragraph classes="toctree-l2"><reference anchorname="#what-is-python-blosc" internal="True" refuri="intro.html#what-is-python-blosc">What is python-blosc?</reference></compact_paragraph> SphinxTranslator.dispatch_departure calling depart_list_item for <list_item classes="toctree-l2"><compact_paragraph classes="toctree-l2"><reference anchorname="#what-is-python-blosc" internal="True" refuri="intro.html#what-is-python-blosc">What is python-blosc?</reference></compact_paragraph></list_item> SphinxTranslator.dispatch_visit calling visit_list_item for <list_item classes="toctree-l2"><compact_paragraph classes="toctree-l2"><reference anchorname="#mailing-list" internal="True" refuri="intro.html#mailing-list">Mailing list</reference></compact_paragraph></list_item> SphinxTranslator.dispatch_visit calling visit_compact_paragraph for <compact_paragraph classes="toctree-l2"><reference anchorname="#mailing-list" internal="True" refuri="intro.html#mailing-list">Mailing list</reference></compact_paragraph> SphinxTranslator.dispatch_visit calling visit_reference for <reference anchorname="#mailing-list" internal="True" refuri="intro.html#mailing-list">Mailing list</reference> SphinxTranslator.dispatch_visit calling visit_Text for Mailing list SphinxTranslator.dispatch_departure calling depart_Text for Mailing list SphinxTranslator.dispatch_departure calling depart_reference for <reference anchorname="#mailing-list" internal="True" refuri="intro.html#mailing-list">Mailing list</reference> SphinxTranslator.dispatch_departure calling depart_compact_paragraph for <compact_paragraph classes="toctree-l2"><reference anchorname="#mailing-list" internal="True" refuri="intro.html#mailing-list">Mailing list</reference></compact_paragraph> SphinxTranslator.dispatch_departure calling depart_list_item for <list_item classes="toctree-l2"><compact_paragraph classes="toctree-l2"><reference anchorname="#mailing-list" internal="True" refuri="intro.html#mailing-list">Mailing list</reference></compact_paragraph></list_item> SphinxTranslator.dispatch_departure calling depart_bullet_list for <bullet_list><list_item classes="toctree-l2"><compact_paragraph classes="toctree-l2"><reference anchorname="#what-is-python-blosc" internal="True" refuri="intro.html#what-is-python-blosc">What is python-blosc?</reference></compact_paragraph></list_item><list_item classes="toctree-l2"><compact_paragraph classes="toctree-l2"><reference anchorname="#mailing-list" internal="True" refuri="intro.html#mailing-list">Mailing list</reference></compact_paragraph></list_item></bullet_list> SphinxTranslator.dispatch_departure calling depart_list_item for <list_item classes="toctree-l1"><compact_paragraph classes="toctree-l1"><reference anchorname="" internal="True" refuri="intro.html">Introduction</reference></compact_paragraph><bullet_list><list_item classes="toctree-l2"><compact_paragraph classes="toctree-l2"><reference anchorname="#what-is-python-blosc" internal="True" refuri="intro.html#what-is-python-blosc">What is python-blosc?</reference></compact_paragraph></list_item><list_item classes="toctree-l2"><compact_paragraph classes="toctree-l2"><reference anchorname="#mailing-list" internal="True" refuri="intro.html#mailing-list">Mailing list</reference></compact_paragraph></list_item></bullet_list></list_item> SphinxTranslator.dispatch_visit calling visit_list_item for <list_item classes="toctree-l1"><compact_paragraph classes="toctree-l1"><reference anchorname="" internal="True" refuri="install.html">Installation</reference></compact_paragraph><bullet_list><list_item classes="toctree-l2"><compact_paragraph classes="toctree-l2"><reference anchorname="#installing-from-pypi-repository" internal="True" refuri="install.html#installing-from-pypi-repository">Installing from PyPI repository</reference></compact_paragraph></list_item><list_item classes="toctree-l2"><compact_paragraph classes="toctree-l2"><reference anchorname="#building-manually" internal="True" refuri="install.html#building-manually">Building manually</reference></compact_paragraph></list_item><list_item classes="toctree-l2"><compact_paragraph classes="toctree-l2"><reference anchorname="#testing" internal="True" refuri="install.html#testing">Testing</reference></compact_paragraph></list_item><list_item classes="toctree-l2"><compact_paragraph classes="toctree-l2"><reference anchorname="#installing" internal="True" refuri="install.html#installing">Installing</reference></compact_paragraph></list_item></bullet_list></list_item> SphinxTranslator.dispatch_visit calling visit_compact_paragraph for <compact_paragraph classes="toctree-l1"><reference anchorname="" internal="True" refuri="install.html">Installation</reference></compact_paragraph> SphinxTranslator.dispatch_visit calling visit_reference for <reference anchorname="" internal="True" refuri="install.html">Installation</reference> SphinxTranslator.dispatch_visit calling visit_Text for Installation SphinxTranslator.dispatch_departure calling depart_Text for Installation SphinxTranslator.dispatch_departure calling depart_reference for <reference anchorname="" internal="True" refuri="install.html">Installation</reference> SphinxTranslator.dispatch_departure calling depart_compact_paragraph for <compact_paragraph classes="toctree-l1"><reference anchorname="" internal="True" refuri="install.html">Installation</reference></compact_paragraph> SphinxTranslator.dispatch_visit calling visit_bullet_list for <bullet_list><list_item classes="toctree-l2"><compact_paragraph classes="toctree-l2"><reference anchorname="#installing-from-pypi-repository" internal="True" refuri="install.html#installing-from-pypi-repository">Installing from PyPI repository</reference></compact_paragraph></list_item><list_item classes="toctree-l2"><compact_paragraph classes="toctree-l2"><reference anchorname="#building-manually" internal="True" refuri="install.html#building-manually">Building manually</reference></compact_paragraph></list_item><list_item classes="toctree-l2"><compact_paragraph classes="toctree-l2"><reference anchorname="#testing" internal="True" refuri="install.html#testing">Testing</reference></compact_paragraph></list_item><list_item classes="toctree-l2"><compact_paragraph classes="toctree-l2"><reference anchorname="#installing" internal="True" refuri="install.html#installing">Installing</reference></compact_paragraph></list_item></bullet_list> SphinxTranslator.dispatch_visit calling visit_list_item for <list_item classes="toctree-l2"><compact_paragraph classes="toctree-l2"><reference anchorname="#installing-from-pypi-repository" internal="True" refuri="install.html#installing-from-pypi-repository">Installing from PyPI repository</reference></compact_paragraph></list_item> SphinxTranslator.dispatch_visit calling visit_compact_paragraph for <compact_paragraph classes="toctree-l2"><reference anchorname="#installing-from-pypi-repository" internal="True" refuri="install.html#installing-from-pypi-repository">Installing from PyPI repository</reference></compact_paragraph> SphinxTranslator.dispatch_visit calling visit_reference for <reference anchorname="#installing-from-pypi-repository" internal="True" refuri="install.html#installing-from-pypi-repository">Installing from PyPI repository</reference> SphinxTranslator.dispatch_visit calling visit_Text for Installing from PyPI repository SphinxTranslator.dispatch_departure calling depart_Text for Installing from PyPI repository SphinxTranslator.dispatch_departure calling depart_reference for <reference anchorname="#installing-from-pypi-repository" internal="True" refuri="install.html#installing-from-pypi-repository">Installing from PyPI repository</reference> SphinxTranslator.dispatch_departure calling depart_compact_paragraph for <compact_paragraph classes="toctree-l2"><reference anchorname="#installing-from-pypi-repository" internal="True" refuri="install.html#installing-from-pypi-repository">Installing from PyPI repository</reference></compact_paragraph> SphinxTranslator.dispatch_departure calling depart_list_item for <list_item classes="toctree-l2"><compact_paragraph classes="toctree-l2"><reference anchorname="#installing-from-pypi-repository" internal="True" refuri="install.html#installing-from-pypi-repository">Installing from PyPI repository</reference></compact_paragraph></list_item> SphinxTranslator.dispatch_visit calling visit_list_item for <list_item classes="toctree-l2"><compact_paragraph classes="toctree-l2"><reference anchorname="#building-manually" internal="True" refuri="install.html#building-manually">Building manually</reference></compact_paragraph></list_item> SphinxTranslator.dispatch_visit calling visit_compact_paragraph for <compact_paragraph classes="toctree-l2"><reference anchorname="#building-manually" internal="True" refuri="install.html#building-manually">Building manually</reference></compact_paragraph> SphinxTranslator.dispatch_visit calling visit_reference for <reference anchorname="#building-manually" internal="True" refuri="install.html#building-manually">Building manually</reference> SphinxTranslator.dispatch_visit calling visit_Text for Building manually SphinxTranslator.dispatch_departure calling depart_Text for Building manually SphinxTranslator.dispatch_departure calling depart_reference for <reference anchorname="#building-manually" internal="True" refuri="install.html#building-manually">Building manually</reference> SphinxTranslator.dispatch_departure calling depart_compact_paragraph for <compact_paragraph classes="toctree-l2"><reference anchorname="#building-manually" internal="True" refuri="install.html#building-manually">Building manually</reference></compact_paragraph> SphinxTranslator.dispatch_departure calling depart_list_item for <list_item classes="toctree-l2"><compact_paragraph classes="toctree-l2"><reference anchorname="#building-manually" internal="True" refuri="install.html#building-manually">Building manually</reference></compact_paragraph></list_item> SphinxTranslator.dispatch_visit calling visit_list_item for <list_item classes="toctree-l2"><compact_paragraph classes="toctree-l2"><reference anchorname="#testing" internal="True" refuri="install.html#testing">Testing</reference></compact_paragraph></list_item> SphinxTranslator.dispatch_visit calling visit_compact_paragraph for <compact_paragraph classes="toctree-l2"><reference anchorname="#testing" internal="True" refuri="install.html#testing">Testing</reference></compact_paragraph> SphinxTranslator.dispatch_visit calling visit_reference for <reference anchorname="#testing" internal="True" refuri="install.html#testing">Testing</reference> SphinxTranslator.dispatch_visit calling visit_Text for Testing SphinxTranslator.dispatch_departure calling depart_Text for Testing SphinxTranslator.dispatch_departure calling depart_reference for <reference anchorname="#testing" internal="True" refuri="install.html#testing">Testing</reference> SphinxTranslator.dispatch_departure calling depart_compact_paragraph for <compact_paragraph classes="toctree-l2"><reference anchorname="#testing" internal="True" refuri="install.html#testing">Testing</reference></compact_paragraph> SphinxTranslator.dispatch_departure calling depart_list_item for <list_item classes="toctree-l2"><compact_paragraph classes="toctree-l2"><reference anchorname="#testing" internal="True" refuri="install.html#testing">Testing</reference></compact_paragraph></list_item> SphinxTranslator.dispatch_visit calling visit_list_item for <list_item classes="toctree-l2"><compact_paragraph classes="toctree-l2"><reference anchorname="#installing" internal="True" refuri="install.html#installing">Installing</reference></compact_paragraph></list_item> SphinxTranslator.dispatch_visit calling visit_compact_paragraph for <compact_paragraph classes="toctree-l2"><reference anchorname="#installing" internal="True" refuri="install.html#installing">Installing</reference></compact_paragraph> SphinxTranslator.dispatch_visit calling visit_reference for <reference anchorname="#installing" internal="True" refuri="install.html#installing">Installing</reference> SphinxTranslator.dispatch_visit calling visit_Text for Installing SphinxTranslator.dispatch_departure calling depart_Text for Installing SphinxTranslator.dispatch_departure calling depart_reference for <reference anchorname="#installing" internal="True" refuri="install.html#installing">Installing</reference> SphinxTranslator.dispatch_departure calling depart_compact_paragraph for <compact_paragraph classes="toctree-l2"><reference anchorname="#installing" internal="True" refuri="install.html#installing">Installing</reference></compact_paragraph> SphinxTranslator.dispatch_departure calling depart_list_item for <list_item classes="toctree-l2"><compact_paragraph classes="toctree-l2"><reference anchorname="#installing" internal="True" refuri="install.html#installing">Installing</reference></compact_paragraph></list_item> SphinxTranslator.dispatch_departure calling depart_bullet_list for <bullet_list><list_item classes="toctree-l2"><compact_paragraph classes="toctree-l2"><reference anchorname="#installing-from-pypi-repository" internal="True" refuri="install.html#installing-from-pypi-repository">Installing from PyPI repository</reference></compact_paragraph></list_item><list_item classes="toctree-l2"><compact_paragraph classes="toctree-l2"><reference anchorname="#building-manually" internal="True" refuri="install.html#building-manually">Building manually</reference></compact_paragraph></list_item><list_item classes="toctree-l2"><compact_paragraph classes="toctree-l2"><reference anchorname="#testing" internal="True" refuri="install.html#testing">Testing</reference></compact_paragraph></list_item><list_item classes="toctree-l2"><compact_paragraph classes="toctree-l2"><reference anchorname="#installing" internal="True" refuri="install.html#installing">Installing</reference></compact_paragraph></list_item></bullet_list> SphinxTranslator.dispatch_departure calling depart_list_item for <list_item classes="toctree-l1"><compact_paragraph classes="toctree-l1"><reference anchorname="" internal="True" refuri="install.html">Installation</reference></compact_paragraph><bullet_list><list_item classes="toctree-l2"><compact_paragraph classes="toctree-l2"><reference anchorname="#installing-from-pypi-repository" internal="True" refuri="install.html#installing-from-pypi-repository">Installing from PyPI repository</reference></compact_paragraph></list_item><list_item classes="toctree-l2"><compact_paragraph classes="toctree-l2"><reference anchorname="#building-manually" internal="True" refuri="install.html#building-manually">Building manually</reference></compact_paragraph></list_item><list_item classes="toctree-l2"><compact_paragraph classes="toctree-l2"><reference anchorname="#testing" internal="True" refuri="install.html#testing">Testing</reference></compact_paragraph></list_item><list_item classes="toctree-l2"><compact_paragraph classes="toctree-l2"><reference anchorname="#installing" internal="True" refuri="install.html#installing">Installing</reference></compact_paragraph></list_item></bullet_list></list_item> SphinxTranslator.dispatch_visit calling visit_list_item for <list_item classes="toctree-l1"><compact_paragraph classes="toctree-l1"><reference anchorname="" internal="True" refuri="tutorial.html">Tutorials</reference></compact_paragraph><bullet_list><list_item classes="toctree-l2"><compact_paragraph classes="toctree-l2"><reference anchorname="#compressing-and-decompressing-with-blosc" internal="True" refuri="tutorial.html#compressing-and-decompressing-with-blosc">Compressing and decompressing with <literal>blosc</literal></reference></compact_paragraph></list_item><list_item classes="toctree-l2"><compact_paragraph classes="toctree-l2"><reference anchorname="#using-different-filters" internal="True" refuri="tutorial.html#using-different-filters">Using different filters</reference></compact_paragraph></list_item><list_item classes="toctree-l2"><compact_paragraph classes="toctree-l2"><reference anchorname="#supporting-the-buffer-interface" internal="True" refuri="tutorial.html#supporting-the-buffer-interface">Supporting the buffer interface</reference></compact_paragraph></list_item><list_item classes="toctree-l2"><compact_paragraph classes="toctree-l2"><reference anchorname="#packaging-numpy-arrays" internal="True" refuri="tutorial.html#packaging-numpy-arrays">Packaging NumPy arrays</reference></compact_paragraph></list_item><list_item classes="toctree-l2"><compact_paragraph classes="toctree-l2"><reference anchorname="#compressing-from-a-data-pointer" internal="True" refuri="tutorial.html#compressing-from-a-data-pointer">Compressing from a data pointer</reference></compact_paragraph></list_item><list_item classes="toctree-l2"><compact_paragraph classes="toctree-l2"><reference anchorname="#fine-tuning-compression-parameters" internal="True" refuri="tutorial.html#fine-tuning-compression-parameters">Fine-tuning compression parameters</reference></compact_paragraph></list_item><list_item classes="toctree-l2"><compact_paragraph classes="toctree-l2"><reference anchorname="#links-to-external-discussions-on-blosc-optimization" internal="True" refuri="tutorial.html#links-to-external-discussions-on-blosc-optimization">Links to external discussions on <literal>blosc</literal> optimization</reference></compact_paragraph></list_item></bullet_list></list_item> SphinxTranslator.dispatch_visit calling visit_compact_paragraph for <compact_paragraph classes="toctree-l1"><reference anchorname="" internal="True" refuri="tutorial.html">Tutorials</reference></compact_paragraph> SphinxTranslator.dispatch_visit calling visit_reference for <reference anchorname="" internal="True" refuri="tutorial.html">Tutorials</reference> SphinxTranslator.dispatch_visit calling visit_Text for Tutorials SphinxTranslator.dispatch_departure calling depart_Text for Tutorials SphinxTranslator.dispatch_departure calling depart_reference for <reference anchorname="" internal="True" refuri="tutorial.html">Tutorials</reference> SphinxTranslator.dispatch_departure calling depart_compact_paragraph for <compact_paragraph classes="toctree-l1"><reference anchorname="" internal="True" refuri="tutorial.html">Tutorials</reference></compact_paragraph> SphinxTranslator.dispatch_visit calling visit_bullet_list for <bullet_list><list_item classes="toctree-l2"><compact_paragraph classes="toctree-l2"><reference anchorname="#compressing-and-decompressing-with-blosc" internal="True" refuri="tutorial.html#compressing-and-decompressing-with-blosc">Compressing and decompressing with <literal>blosc</literal></reference></compact_paragraph></list_item><list_item classes="toctree-l2"><compact_paragraph classes="toctree-l2"><reference anchorname="#using-different-filters" internal="True" refuri="tutorial.html#using-different-filters">Using different filters</reference></compact_paragraph></list_item><list_item classes="toctree-l2"><compact_paragraph classes="toctree-l2"><reference anchorname="#supporting-the-buffer-interface" internal="True" refuri="tutorial.html#supporting-the-buffer-interface">Supporting the buffer interface</reference></compact_paragraph></list_item><list_item classes="toctree-l2"><compact_paragraph classes="toctree-l2"><reference anchorname="#packaging-numpy-arrays" internal="True" refuri="tutorial.html#packaging-numpy-arrays">Packaging NumPy arrays</reference></compact_paragraph></list_item><list_item classes="toctree-l2"><compact_paragraph classes="toctree-l2"><reference anchorname="#compressing-from-a-data-pointer" internal="True" refuri="tutorial.html#compressing-from-a-data-pointer">Compressing from a data pointer</reference></compact_paragraph></list_item><list_item classes="toctree-l2"><compact_paragraph classes="toctree-l2"><reference anchorname="#fine-tuning-compression-parameters" internal="True" refuri="tutorial.html#fine-tuning-compression-parameters">Fine-tuning compression parameters</reference></compact_paragraph></list_item><list_item classes="toctree-l2"><compact_paragraph classes="toctree-l2"><reference anchorname="#links-to-external-discussions-on-blosc-optimization" internal="True" refuri="tutorial.html#links-to-external-discussions-on-blosc-optimization">Links to external discussions on <literal>blosc</literal> optimization</reference></compact_paragraph></list_item></bullet_list> SphinxTranslator.dispatch_visit calling visit_list_item for <list_item classes="toctree-l2"><compact_paragraph classes="toctree-l2"><reference anchorname="#compressing-and-decompressing-with-blosc" internal="True" refuri="tutorial.html#compressing-and-decompressing-with-blosc">Compressing and decompressing with <literal>blosc</literal></reference></compact_paragraph></list_item> SphinxTranslator.dispatch_visit calling visit_compact_paragraph for <compact_paragraph classes="toctree-l2"><reference anchorname="#compressing-and-decompressing-with-blosc" internal="True" refuri="tutorial.html#compressing-and-decompressing-with-blosc">Compressing and decompressing with <literal>blosc</literal></reference></compact_paragraph> SphinxTranslator.dispatch_visit calling visit_reference for <reference anchorname="#compressing-and-decompressing-with-blosc" internal="True" refuri="tutorial.html#compressing-and-decompressing-with-blosc">Compressing and decompressing with <literal>blosc</literal></reference> SphinxTranslator.dispatch_visit calling visit_Text for Compressing and decompressing with SphinxTranslator.dispatch_departure calling depart_Text for Compressing and decompressing with SphinxTranslator.dispatch_visit calling visit_literal for <literal>blosc</literal> SphinxTranslator.dispatch_visit calling visit_Text for blosc SphinxTranslator.dispatch_departure calling depart_Text for blosc SphinxTranslator.dispatch_departure calling depart_literal for <literal>blosc</literal> SphinxTranslator.dispatch_departure calling depart_reference for <reference anchorname="#compressing-and-decompressing-with-blosc" internal="True" refuri="tutorial.html#compressing-and-decompressing-with-blosc">Compressing and decompressing with <literal>blosc</literal></reference> SphinxTranslator.dispatch_departure calling depart_compact_paragraph for <compact_paragraph classes="toctree-l2"><reference anchorname="#compressing-and-decompressing-with-blosc" internal="True" refuri="tutorial.html#compressing-and-decompressing-with-blosc">Compressing and decompressing with <literal>blosc</literal></reference></compact_paragraph> SphinxTranslator.dispatch_departure calling depart_list_item for <list_item classes="toctree-l2"><compact_paragraph classes="toctree-l2"><reference anchorname="#compressing-and-decompressing-with-blosc" internal="True" refuri="tutorial.html#compressing-and-decompressing-with-blosc">Compressing and decompressing with <literal>blosc</literal></reference></compact_paragraph></list_item> SphinxTranslator.dispatch_visit calling visit_list_item for <list_item classes="toctree-l2"><compact_paragraph classes="toctree-l2"><reference anchorname="#using-different-filters" internal="True" refuri="tutorial.html#using-different-filters">Using different filters</reference></compact_paragraph></list_item> SphinxTranslator.dispatch_visit calling visit_compact_paragraph for <compact_paragraph classes="toctree-l2"><reference anchorname="#using-different-filters" internal="True" refuri="tutorial.html#using-different-filters">Using different filters</reference></compact_paragraph> SphinxTranslator.dispatch_visit calling visit_reference for <reference anchorname="#using-different-filters" internal="True" refuri="tutorial.html#using-different-filters">Using different filters</reference> SphinxTranslator.dispatch_visit calling visit_Text for Using different filters SphinxTranslator.dispatch_departure calling depart_Text for Using different filters SphinxTranslator.dispatch_departure calling depart_reference for <reference anchorname="#using-different-filters" internal="True" refuri="tutorial.html#using-different-filters">Using different filters</reference> SphinxTranslator.dispatch_departure calling depart_compact_paragraph for <compact_paragraph classes="toctree-l2"><reference anchorname="#using-different-filters" internal="True" refuri="tutorial.html#using-different-filters">Using different filters</reference></compact_paragraph> SphinxTranslator.dispatch_departure calling depart_list_item for <list_item classes="toctree-l2"><compact_paragraph classes="toctree-l2"><reference anchorname="#using-different-filters" internal="True" refuri="tutorial.html#using-different-filters">Using different filters</reference></compact_paragraph></list_item> SphinxTranslator.dispatch_visit calling visit_list_item for <list_item classes="toctree-l2"><compact_paragraph classes="toctree-l2"><reference anchorname="#supporting-the-buffer-interface" internal="True" refuri="tutorial.html#supporting-the-buffer-interface">Supporting the buffer interface</reference></compact_paragraph></list_item> SphinxTranslator.dispatch_visit calling visit_compact_paragraph for <compact_paragraph classes="toctree-l2"><reference anchorname="#supporting-the-buffer-interface" internal="True" refuri="tutorial.html#supporting-the-buffer-interface">Supporting the buffer interface</reference></compact_paragraph> SphinxTranslator.dispatch_visit calling visit_reference for <reference anchorname="#supporting-the-buffer-interface" internal="True" refuri="tutorial.html#supporting-the-buffer-interface">Supporting the buffer interface</reference> SphinxTranslator.dispatch_visit calling visit_Text for Supporting the buffer interface SphinxTranslator.dispatch_departure calling depart_Text for Supporting the buffer interface SphinxTranslator.dispatch_departure calling depart_reference for <reference anchorname="#supporting-the-buffer-interface" internal="True" refuri="tutorial.html#supporting-the-buffer-interface">Supporting the buffer interface</reference> SphinxTranslator.dispatch_departure calling depart_compact_paragraph for <compact_paragraph classes="toctree-l2"><reference anchorname="#supporting-the-buffer-interface" internal="True" refuri="tutorial.html#supporting-the-buffer-interface">Supporting the buffer interface</reference></compact_paragraph> SphinxTranslator.dispatch_departure calling depart_list_item for <list_item classes="toctree-l2"><compact_paragraph classes="toctree-l2"><reference anchorname="#supporting-the-buffer-interface" internal="True" refuri="tutorial.html#supporting-the-buffer-interface">Supporting the buffer interface</reference></compact_paragraph></list_item> SphinxTranslator.dispatch_visit calling visit_list_item for <list_item classes="toctree-l2"><compact_paragraph classes="toctree-l2"><reference anchorname="#packaging-numpy-arrays" internal="True" refuri="tutorial.html#packaging-numpy-arrays">Packaging NumPy arrays</reference></compact_paragraph></list_item> SphinxTranslator.dispatch_visit calling visit_compact_paragraph for <compact_paragraph classes="toctree-l2"><reference anchorname="#packaging-numpy-arrays" internal="True" refuri="tutorial.html#packaging-numpy-arrays">Packaging NumPy arrays</reference></compact_paragraph> SphinxTranslator.dispatch_visit calling visit_reference for <reference anchorname="#packaging-numpy-arrays" internal="True" refuri="tutorial.html#packaging-numpy-arrays">Packaging NumPy arrays</reference> SphinxTranslator.dispatch_visit calling visit_Text for Packaging NumPy arrays SphinxTranslator.dispatch_departure calling depart_Text for Packaging NumPy arrays SphinxTranslator.dispatch_departure calling depart_reference for <reference anchorname="#packaging-numpy-arrays" internal="True" refuri="tutorial.html#packaging-numpy-arrays">Packaging NumPy arrays</reference> SphinxTranslator.dispatch_departure calling depart_compact_paragraph for <compact_paragraph classes="toctree-l2"><reference anchorname="#packaging-numpy-arrays" internal="True" refuri="tutorial.html#packaging-numpy-arrays">Packaging NumPy arrays</reference></compact_paragraph> SphinxTranslator.dispatch_departure calling depart_list_item for <list_item classes="toctree-l2"><compact_paragraph classes="toctree-l2"><reference anchorname="#packaging-numpy-arrays" internal="True" refuri="tutorial.html#packaging-numpy-arrays">Packaging NumPy arrays</reference></compact_paragraph></list_item> SphinxTranslator.dispatch_visit calling visit_list_item for <list_item classes="toctree-l2"><compact_paragraph classes="toctree-l2"><reference anchorname="#compressing-from-a-data-pointer" internal="True" refuri="tutorial.html#compressing-from-a-data-pointer">Compressing from a data pointer</reference></compact_paragraph></list_item> SphinxTranslator.dispatch_visit calling visit_compact_paragraph for <compact_paragraph classes="toctree-l2"><reference anchorname="#compressing-from-a-data-pointer" internal="True" refuri="tutorial.html#compressing-from-a-data-pointer">Compressing from a data pointer</reference></compact_paragraph> SphinxTranslator.dispatch_visit calling visit_reference for <reference anchorname="#compressing-from-a-data-pointer" internal="True" refuri="tutorial.html#compressing-from-a-data-pointer">Compressing from a data pointer</reference> SphinxTranslator.dispatch_visit calling visit_Text for Compressing from a data pointer SphinxTranslator.dispatch_departure calling depart_Text for Compressing from a data pointer SphinxTranslator.dispatch_departure calling depart_reference for <reference anchorname="#compressing-from-a-data-pointer" internal="True" refuri="tutorial.html#compressing-from-a-data-pointer">Compressing from a data pointer</reference> SphinxTranslator.dispatch_departure calling depart_compact_paragraph for <compact_paragraph classes="toctree-l2"><reference anchorname="#compressing-from-a-data-pointer" internal="True" refuri="tutorial.html#compressing-from-a-data-pointer">Compressing from a data pointer</reference></compact_paragraph> SphinxTranslator.dispatch_departure calling depart_list_item for <list_item classes="toctree-l2"><compact_paragraph classes="toctree-l2"><reference anchorname="#compressing-from-a-data-pointer" internal="True" refuri="tutorial.html#compressing-from-a-data-pointer">Compressing from a data pointer</reference></compact_paragraph></list_item> SphinxTranslator.dispatch_visit calling visit_list_item for <list_item classes="toctree-l2"><compact_paragraph classes="toctree-l2"><reference anchorname="#fine-tuning-compression-parameters" internal="True" refuri="tutorial.html#fine-tuning-compression-parameters">Fine-tuning compression parameters</reference></compact_paragraph></list_item> SphinxTranslator.dispatch_visit calling visit_compact_paragraph for <compact_paragraph classes="toctree-l2"><reference anchorname="#fine-tuning-compression-parameters" internal="True" refuri="tutorial.html#fine-tuning-compression-parameters">Fine-tuning compression parameters</reference></compact_paragraph> SphinxTranslator.dispatch_visit calling visit_reference for <reference anchorname="#fine-tuning-compression-parameters" internal="True" refuri="tutorial.html#fine-tuning-compression-parameters">Fine-tuning compression parameters</reference> SphinxTranslator.dispatch_visit calling visit_Text for Fine-tuning compression parameters SphinxTranslator.dispatch_departure calling depart_Text for Fine-tuning compression parameters SphinxTranslator.dispatch_departure calling depart_reference for <reference anchorname="#fine-tuning-compression-parameters" internal="True" refuri="tutorial.html#fine-tuning-compression-parameters">Fine-tuning compression parameters</reference> SphinxTranslator.dispatch_departure calling depart_compact_paragraph for <compact_paragraph classes="toctree-l2"><reference anchorname="#fine-tuning-compression-parameters" internal="True" refuri="tutorial.html#fine-tuning-compression-parameters">Fine-tuning compression parameters</reference></compact_paragraph> SphinxTranslator.dispatch_departure calling depart_list_item for <list_item classes="toctree-l2"><compact_paragraph classes="toctree-l2"><reference anchorname="#fine-tuning-compression-parameters" internal="True" refuri="tutorial.html#fine-tuning-compression-parameters">Fine-tuning compression parameters</reference></compact_paragraph></list_item> SphinxTranslator.dispatch_visit calling visit_list_item for <list_item classes="toctree-l2"><compact_paragraph classes="toctree-l2"><reference anchorname="#links-to-external-discussions-on-blosc-optimization" internal="True" refuri="tutorial.html#links-to-external-discussions-on-blosc-optimization">Links to external discussions on <literal>blosc</literal> optimization</reference></compact_paragraph></list_item> SphinxTranslator.dispatch_visit calling visit_compact_paragraph for <compact_paragraph classes="toctree-l2"><reference anchorname="#links-to-external-discussions-on-blosc-optimization" internal="True" refuri="tutorial.html#links-to-external-discussions-on-blosc-optimization">Links to external discussions on <literal>blosc</literal> optimization</reference></compact_paragraph> SphinxTranslator.dispatch_visit calling visit_reference for <reference anchorname="#links-to-external-discussions-on-blosc-optimization" internal="True" refuri="tutorial.html#links-to-external-discussions-on-blosc-optimization">Links to external discussions on <literal>blosc</literal> optimization</reference> SphinxTranslator.dispatch_visit calling visit_Text for Links to external discussions on SphinxTranslator.dispatch_departure calling depart_Text for Links to external discussions on SphinxTranslator.dispatch_visit calling visit_literal for <literal>blosc</literal> SphinxTranslator.dispatch_visit calling visit_Text for blosc SphinxTranslator.dispatch_departure calling depart_Text for blosc SphinxTranslator.dispatch_departure calling depart_literal for <literal>blosc</literal> SphinxTranslator.dispatch_visit calling visit_Text for optimization SphinxTranslator.dispatch_departure calling depart_Text for optimization SphinxTranslator.dispatch_departure calling depart_reference for <reference anchorname="#links-to-external-discussions-on-blosc-optimization" internal="True" refuri="tutorial.html#links-to-external-discussions-on-blosc-optimization">Links to external discussions on <literal>blosc</literal> optimization</reference> SphinxTranslator.dispatch_departure calling depart_compact_paragraph for <compact_paragraph classes="toctree-l2"><reference anchorname="#links-to-external-discussions-on-blosc-optimization" internal="True" refuri="tutorial.html#links-to-external-discussions-on-blosc-optimization">Links to external discussions on <literal>blosc</literal> optimization</reference></compact_paragraph> SphinxTranslator.dispatch_departure calling depart_list_item for <list_item classes="toctree-l2"><compact_paragraph classes="toctree-l2"><reference anchorname="#links-to-external-discussions-on-blosc-optimization" internal="True" refuri="tutorial.html#links-to-external-discussions-on-blosc-optimization">Links to external discussions on <literal>blosc</literal> optimization</reference></compact_paragraph></list_item> SphinxTranslator.dispatch_departure calling depart_bullet_list for <bullet_list><list_item classes="toctree-l2"><compact_paragraph classes="toctree-l2"><reference anchorname="#compressing-and-decompressing-with-blosc" internal="True" refuri="tutorial.html#compressing-and-decompressing-with-blosc">Compressing and decompressing with <literal>blosc</literal></reference></compact_paragraph></list_item><list_item classes="toctree-l2"><compact_paragraph classes="toctree-l2"><reference anchorname="#using-different-filters" internal="True" refuri="tutorial.html#using-different-filters">Using different filters</reference></compact_paragraph></list_item><list_item classes="toctree-l2"><compact_paragraph classes="toctree-l2"><reference anchorname="#supporting-the-buffer-interface" internal="True" refuri="tutorial.html#supporting-the-buffer-interface">Supporting the buffer interface</reference></compact_paragraph></list_item><list_item classes="toctree-l2"><compact_paragraph classes="toctree-l2"><reference anchorname="#packaging-numpy-arrays" internal="True" refuri="tutorial.html#packaging-numpy-arrays">Packaging NumPy arrays</reference></compact_paragraph></list_item><list_item classes="toctree-l2"><compact_paragraph classes="toctree-l2"><reference anchorname="#compressing-from-a-data-pointer" internal="True" refuri="tutorial.html#compressing-from-a-data-pointer">Compressing from a data pointer</reference></compact_paragraph></list_item><list_item classes="toctree-l2"><compact_paragraph classes="toctree-l2"><reference anchorname="#fine-tuning-compression-parameters" internal="True" refuri="tutorial.html#fine-tuning-compression-parameters">Fine-tuning compression parameters</reference></compact_paragraph></list_item><list_item classes="toctree-l2"><compact_paragraph classes="toctree-l2"><reference anchorname="#links-to-external-discussions-on-blosc-optimization" internal="True" refuri="tutorial.html#links-to-external-discussions-on-blosc-optimization">Links to external discussions on <literal>blosc</literal> optimization</reference></compact_paragraph></list_item></bullet_list> SphinxTranslator.dispatch_departure calling depart_list_item for <list_item classes="toctree-l1"><compact_paragraph classes="toctree-l1"><reference anchorname="" internal="True" refuri="tutorial.html">Tutorials</reference></compact_paragraph><bullet_list><list_item classes="toctree-l2"><compact_paragraph classes="toctree-l2"><reference anchorname="#compressing-and-decompressing-with-blosc" internal="True" refuri="tutorial.html#compressing-and-decompressing-with-blosc">Compressing and decompressing with <literal>blosc</literal></reference></compact_paragraph></list_item><list_item classes="toctree-l2"><compact_paragraph classes="toctree-l2"><reference anchorname="#using-different-filters" internal="True" refuri="tutorial.html#using-different-filters">Using different filters</reference></compact_paragraph></list_item><list_item classes="toctree-l2"><compact_paragraph classes="toctree-l2"><reference anchorname="#supporting-the-buffer-interface" internal="True" refuri="tutorial.html#supporting-the-buffer-interface">Supporting the buffer interface</reference></compact_paragraph></list_item><list_item classes="toctree-l2"><compact_paragraph classes="toctree-l2"><reference anchorname="#packaging-numpy-arrays" internal="True" refuri="tutorial.html#packaging-numpy-arrays">Packaging NumPy arrays</reference></compact_paragraph></list_item><list_item classes="toctree-l2"><compact_paragraph classes="toctree-l2"><reference anchorname="#compressing-from-a-data-pointer" internal="True" refuri="tutorial.html#compressing-from-a-data-pointer">Compressing from a data pointer</reference></compact_paragraph></list_item><list_item classes="toctree-l2"><compact_paragraph classes="toctree-l2"><reference anchorname="#fine-tuning-compression-parameters" internal="True" refuri="tutorial.html#fine-tuning-compression-parameters">Fine-tuning compression parameters</reference></compact_paragraph></list_item><list_item classes="toctree-l2"><compact_paragraph classes="toctree-l2"><reference anchorname="#links-to-external-discussions-on-blosc-optimization" internal="True" refuri="tutorial.html#links-to-external-discussions-on-blosc-optimization">Links to external discussions on <literal>blosc</literal> optimization</reference></compact_paragraph></list_item></bullet_list></list_item> SphinxTranslator.dispatch_visit calling visit_list_item for <list_item classes="toctree-l1"><compact_paragraph classes="toctree-l1"><reference anchorname="" internal="True" refuri="reference.html">Library Reference</reference></compact_paragraph><bullet_list><list_item classes="toctree-l2"><compact_paragraph classes="toctree-l2"><reference anchorname="#first-level-variables" internal="True" refuri="reference.html#first-level-variables">First level variables</reference></compact_paragraph></list_item><list_item classes="toctree-l2"><compact_paragraph classes="toctree-l2"><reference anchorname="#module-blosc" internal="True" refuri="reference.html#module-blosc">Public functions</reference></compact_paragraph></list_item><list_item classes="toctree-l2"><compact_paragraph classes="toctree-l2"><reference anchorname="#module-blosc" internal="True" refuri="reference.html#module-blosc">Utilities</reference></compact_paragraph></list_item></bullet_list></list_item> SphinxTranslator.dispatch_visit calling visit_compact_paragraph for <compact_paragraph classes="toctree-l1"><reference anchorname="" internal="True" refuri="reference.html">Library Reference</reference></compact_paragraph> SphinxTranslator.dispatch_visit calling visit_reference for <reference anchorname="" internal="True" refuri="reference.html">Library Reference</reference> SphinxTranslator.dispatch_visit calling visit_Text for Library Reference SphinxTranslator.dispatch_departure calling depart_Text for Library Reference SphinxTranslator.dispatch_departure calling depart_reference for <reference anchorname="" internal="True" refuri="reference.html">Library Reference</reference> SphinxTranslator.dispatch_departure calling depart_compact_paragraph for <compact_paragraph classes="toctree-l1"><reference anchorname="" internal="True" refuri="reference.html">Library Reference</reference></compact_paragraph> SphinxTranslator.dispatch_visit calling visit_bullet_list for <bullet_list><list_item classes="toctree-l2"><compact_paragraph classes="toctree-l2"><reference anchorname="#first-level-variables" internal="True" refuri="reference.html#first-level-variables">First level variables</reference></compact_paragraph></list_item><list_item classes="toctree-l2"><compact_paragraph classes="toctree-l2"><reference anchorname="#module-blosc" internal="True" refuri="reference.html#module-blosc">Public functions</reference></compact_paragraph></list_item><list_item classes="toctree-l2"><compact_paragraph classes="toctree-l2"><reference anchorname="#module-blosc" internal="True" refuri="reference.html#module-blosc">Utilities</reference></compact_paragraph></list_item></bullet_list> SphinxTranslator.dispatch_visit calling visit_list_item for <list_item classes="toctree-l2"><compact_paragraph classes="toctree-l2"><reference anchorname="#first-level-variables" internal="True" refuri="reference.html#first-level-variables">First level variables</reference></compact_paragraph></list_item> SphinxTranslator.dispatch_visit calling visit_compact_paragraph for <compact_paragraph classes="toctree-l2"><reference anchorname="#first-level-variables" internal="True" refuri="reference.html#first-level-variables">First level variables</reference></compact_paragraph> SphinxTranslator.dispatch_visit calling visit_reference for <reference anchorname="#first-level-variables" internal="True" refuri="reference.html#first-level-variables">First level variables</reference> SphinxTranslator.dispatch_visit calling visit_Text for First level variables SphinxTranslator.dispatch_departure calling depart_Text for First level variables SphinxTranslator.dispatch_departure calling depart_reference for <reference anchorname="#first-level-variables" internal="True" refuri="reference.html#first-level-variables">First level variables</reference> SphinxTranslator.dispatch_departure calling depart_compact_paragraph for <compact_paragraph classes="toctree-l2"><reference anchorname="#first-level-variables" internal="True" refuri="reference.html#first-level-variables">First level variables</reference></compact_paragraph> SphinxTranslator.dispatch_departure calling depart_list_item for <list_item classes="toctree-l2"><compact_paragraph classes="toctree-l2"><reference anchorname="#first-level-variables" internal="True" refuri="reference.html#first-level-variables">First level variables</reference></compact_paragraph></list_item> SphinxTranslator.dispatch_visit calling visit_list_item for <list_item classes="toctree-l2"><compact_paragraph classes="toctree-l2"><reference anchorname="#module-blosc" internal="True" refuri="reference.html#module-blosc">Public functions</reference></compact_paragraph></list_item> SphinxTranslator.dispatch_visit calling visit_compact_paragraph for <compact_paragraph classes="toctree-l2"><reference anchorname="#module-blosc" internal="True" refuri="reference.html#module-blosc">Public functions</reference></compact_paragraph> SphinxTranslator.dispatch_visit calling visit_reference for <reference anchorname="#module-blosc" internal="True" refuri="reference.html#module-blosc">Public functions</reference> SphinxTranslator.dispatch_visit calling visit_Text for Public functions SphinxTranslator.dispatch_departure calling depart_Text for Public functions SphinxTranslator.dispatch_departure calling depart_reference for <reference anchorname="#module-blosc" internal="True" refuri="reference.html#module-blosc">Public functions</reference> SphinxTranslator.dispatch_departure calling depart_compact_paragraph for <compact_paragraph classes="toctree-l2"><reference anchorname="#module-blosc" internal="True" refuri="reference.html#module-blosc">Public functions</reference></compact_paragraph> SphinxTranslator.dispatch_departure calling depart_list_item for <list_item classes="toctree-l2"><compact_paragraph classes="toctree-l2"><reference anchorname="#module-blosc" internal="True" refuri="reference.html#module-blosc">Public functions</reference></compact_paragraph></list_item> SphinxTranslator.dispatch_visit calling visit_list_item for <list_item classes="toctree-l2"><compact_paragraph classes="toctree-l2"><reference anchorname="#module-blosc" internal="True" refuri="reference.html#module-blosc">Utilities</reference></compact_paragraph></list_item> SphinxTranslator.dispatch_visit calling visit_compact_paragraph for <compact_paragraph classes="toctree-l2"><reference anchorname="#module-blosc" internal="True" refuri="reference.html#module-blosc">Utilities</reference></compact_paragraph> SphinxTranslator.dispatch_visit calling visit_reference for <reference anchorname="#module-blosc" internal="True" refuri="reference.html#module-blosc">Utilities</reference> SphinxTranslator.dispatch_visit calling visit_Text for Utilities SphinxTranslator.dispatch_departure calling depart_Text for Utilities SphinxTranslator.dispatch_departure calling depart_reference for <reference anchorname="#module-blosc" internal="True" refuri="reference.html#module-blosc">Utilities</reference> SphinxTranslator.dispatch_departure calling depart_compact_paragraph for <compact_paragraph classes="toctree-l2"><reference anchorname="#module-blosc" internal="True" refuri="reference.html#module-blosc">Utilities</reference></compact_paragraph> SphinxTranslator.dispatch_departure calling depart_list_item for <list_item classes="toctree-l2"><compact_paragraph classes="toctree-l2"><reference anchorname="#module-blosc" internal="True" refuri="reference.html#module-blosc">Utilities</reference></compact_paragraph></list_item> SphinxTranslator.dispatch_departure calling depart_bullet_list for <bullet_list><list_item classes="toctree-l2"><compact_paragraph classes="toctree-l2"><reference anchorname="#first-level-variables" internal="True" refuri="reference.html#first-level-variables">First level variables</reference></compact_paragraph></list_item><list_item classes="toctree-l2"><compact_paragraph classes="toctree-l2"><reference anchorname="#module-blosc" internal="True" refuri="reference.html#module-blosc">Public functions</reference></compact_paragraph></list_item><list_item classes="toctree-l2"><compact_paragraph classes="toctree-l2"><reference anchorname="#module-blosc" internal="True" refuri="reference.html#module-blosc">Utilities</reference></compact_paragraph></list_item></bullet_list> SphinxTranslator.dispatch_departure calling depart_list_item for <list_item classes="toctree-l1"><compact_paragraph classes="toctree-l1"><reference anchorname="" internal="True" refuri="reference.html">Library Reference</reference></compact_paragraph><bullet_list><list_item classes="toctree-l2"><compact_paragraph classes="toctree-l2"><reference anchorname="#first-level-variables" internal="True" refuri="reference.html#first-level-variables">First level variables</reference></compact_paragraph></list_item><list_item classes="toctree-l2"><compact_paragraph classes="toctree-l2"><reference anchorname="#module-blosc" internal="True" refuri="reference.html#module-blosc">Public functions</reference></compact_paragraph></list_item><list_item classes="toctree-l2"><compact_paragraph classes="toctree-l2"><reference anchorname="#module-blosc" internal="True" refuri="reference.html#module-blosc">Utilities</reference></compact_paragraph></list_item></bullet_list></list_item> SphinxTranslator.dispatch_departure calling depart_bullet_list for <bullet_list><list_item classes="toctree-l1"><compact_paragraph classes="toctree-l1"><reference anchorname="" internal="True" refuri="intro.html">Introduction</reference></compact_paragraph><bullet_list><list_item classes="toctree-l2"><compact_paragraph classes="toctree-l2"><reference anchorname="#what-is-python-blosc" internal="True" refuri="intro.html#what-is-python-blosc">What is python-blosc?</reference></compact_paragraph></list_item><list_item classes="toctree-l2"><compact_paragraph classes="toctree-l2"><reference anchorname="#mailing-list" internal="True" refuri="intro.html#mailing-list">Mailing list</reference></compact_paragraph></list_item></bullet_list></list_item><list_item classes="toctree-l1"><compact_paragraph classes="toctree-l1"><reference anchorname="" internal="True" refuri="install.html">Installation</reference></compact_paragraph><bullet_list><list_item classes="toctree-l2"><compact_paragraph classes="toctree-l2"><reference anchorname="#installing-from-pypi-repository" internal="True" refuri="install.html#installing-from-pypi-repository">Installing from PyPI repository</reference></compact_paragraph></list_item><list_item classes="toctree-l2"><compact_paragraph classes="toctree-l2"><reference anchorname="#building-manually" internal="True" refuri="install.html#building-manually">Building manually</reference></compact_paragraph></list_item><list_item classes="toctree-l2"><compact_paragraph classes="toctree-l2"><reference anchorname="#testing" internal="True" refuri="install.html#testing">Testing</reference></compact_paragraph></list_item><list_item classes="toctree-l2"><compact_paragraph classes="toctree-l2"><reference anchorname="#installing" internal="True" refuri="install.html#installing">Installing</reference></compact_paragraph></list_item></bullet_list></list_item><list_item classes="toctree-l1"><compact_paragraph classes="toctree-l1"><reference anchorname="" internal="True" refuri="tutorial.html">Tutorials</reference></compact_paragraph><bullet_list><list_item classes="toctree-l2"><compact_paragraph classes="toctree-l2"><reference anchorname="#compressing-and-decompressing-with-blosc" internal="True" refuri="tutorial.html#compressing-and-decompressing-with-blosc">Compressing and decompressing with <literal>blosc</literal></reference></compact_paragraph></list_item><list_item classes="toctree-l2"><compact_paragraph classes="toctree-l2"><reference anchorname="#using-different-filters" internal="True" refuri="tutorial.html#using-different-filters">Using different filters</reference></compact_paragraph></list_item><list_item classes="toctree-l2"><compact_paragraph classes="toctree-l2"><reference anchorname="#supporting-the-buffer-interface" internal="True" refuri="tutorial.html#supporting-the-buffer-interface">Supporting the buffer interface</reference></compact_paragraph></list_item><list_item classes="toctree-l2"><compact_paragraph classes="toctree-l2"><reference anchorname="#packaging-numpy-arrays" internal="True" refuri="tutorial.html#packaging-numpy-arrays">Packaging NumPy arrays</reference></compact_paragraph></list_item><list_item classes="toctree-l2"><compact_paragraph classes="toctree-l2"><reference anchorname="#compressing-from-a-data-pointer" internal="True" refuri="tutorial.html#compressing-from-a-data-pointer">Compressing from a data pointer</reference></compact_paragraph></list_item><list_item classes="toctree-l2"><compact_paragraph classes="toctree-l2"><reference anchorname="#fine-tuning-compression-parameters" internal="True" refuri="tutorial.html#fine-tuning-compression-parameters">Fine-tuning compression parameters</reference></compact_paragraph></list_item><list_item classes="toctree-l2"><compact_paragraph classes="toctree-l2"><reference anchorname="#links-to-external-discussions-on-blosc-optimization" internal="True" refuri="tutorial.html#links-to-external-discussions-on-blosc-optimization">Links to external discussions on <literal>blosc</literal> optimization</reference></compact_paragraph></list_item></bullet_list></list_item><list_item classes="toctree-l1"><compact_paragraph classes="toctree-l1"><reference anchorname="" internal="True" refuri="reference.html">Library Reference</reference></compact_paragraph><bullet_list><list_item classes="toctree-l2"><compact_paragraph classes="toctree-l2"><reference anchorname="#first-level-variables" internal="True" refuri="reference.html#first-level-variables">First level variables</reference></compact_paragraph></list_item><list_item classes="toctree-l2"><compact_paragraph classes="toctree-l2"><reference anchorname="#module-blosc" internal="True" refuri="reference.html#module-blosc">Public functions</reference></compact_paragraph></list_item><list_item classes="toctree-l2"><compact_paragraph classes="toctree-l2"><reference anchorname="#module-blosc" internal="True" refuri="reference.html#module-blosc">Utilities</reference></compact_paragraph></list_item></bullet_list></list_item></bullet_list> SphinxTranslator.dispatch_departure calling depart_compact_paragraph for <compact_paragraph toctree="True"><bullet_list><list_item classes="toctree-l1"><compact_paragraph classes="toctree-l1"><reference anchorname="" internal="True" refuri="intro.html">Introduction</reference></compact_paragraph><bullet_list><list_item classes="toctree-l2"><compact_paragraph classes="toctree-l2"><reference anchorname="#what-is-python-blosc" internal="True" refuri="intro.html#what-is-python-blosc">What is python-blosc?</reference></compact_paragraph></list_item><list_item classes="toctree-l2"><compact_paragraph classes="toctree-l2"><reference anchorname="#mailing-list" internal="True" refuri="intro.html#mailing-list">Mailing list</reference></compact_paragraph></list_item></bullet_list></list_item><list_item classes="toctree-l1"><compact_paragraph classes="toctree-l1"><reference anchorname="" internal="True" refuri="install.html">Installation</reference></compact_paragraph><bullet_list><list_item classes="toctree-l2"><compact_paragraph classes="toctree-l2"><reference anchorname="#installing-from-pypi-repository" internal="True" refuri="install.html#installing-from-pypi-repository">Installing from PyPI repository</reference></compact_paragraph></list_item><list_item classes="toctree-l2"><compact_paragraph classes="toctree-l2"><reference anchorname="#building-manually" internal="True" refuri="install.html#building-manually">Building manually</reference></compact_paragraph></list_item><list_item classes="toctree-l2"><compact_paragraph classes="toctree-l2"><reference anchorname="#testing" internal="True" refuri="install.html#testing">Testing</reference></compact_paragraph></list_item><list_item classes="toctree-l2"><compact_paragraph classes="toctree-l2"><reference anchorname="#installing" internal="True" refuri="install.html#installing">Installing</reference></compact_paragraph></list_item></bullet_list></list_item><list_item classes="toctree-l1"><compact_paragraph classes="toctree-l1"><reference anchorname="" internal="True" refuri="tutorial.html">Tutorials</reference></compact_paragraph><bullet_list><list_item classes="toctree-l2"><compact_paragraph classes="toctree-l2"><reference anchorname="#compressing-and-decompressing-with-blosc" internal="True" refuri="tutorial.html#compressing-and-decompressing-with-blosc">Compressing and decompressing with <literal>blosc</literal></reference></compact_paragraph></list_item><list_item classes="toctree-l2"><compact_paragraph classes="toctree-l2"><reference anchorname="#using-different-filters" internal="True" refuri="tutorial.html#using-different-filters">Using different filters</reference></compact_paragraph></list_item><list_item classes="toctree-l2"><compact_paragraph classes="toctree-l2"><reference anchorname="#supporting-the-buffer-interface" internal="True" refuri="tutorial.html#supporting-the-buffer-interface">Supporting the buffer interface</reference></compact_paragraph></list_item><list_item classes="toctree-l2"><compact_paragraph classes="toctree-l2"><reference anchorname="#packaging-numpy-arrays" internal="True" refuri="tutorial.html#packaging-numpy-arrays">Packaging NumPy arrays</reference></compact_paragraph></list_item><list_item classes="toctree-l2"><compact_paragraph classes="toctree-l2"><reference anchorname="#compressing-from-a-data-pointer" internal="True" refuri="tutorial.html#compressing-from-a-data-pointer">Compressing from a data pointer</reference></compact_paragraph></list_item><list_item classes="toctree-l2"><compact_paragraph classes="toctree-l2"><reference anchorname="#fine-tuning-compression-parameters" internal="True" refuri="tutorial.html#fine-tuning-compression-parameters">Fine-tuning compression parameters</reference></compact_paragraph></list_item><list_item classes="toctree-l2"><compact_paragraph classes="toctree-l2"><reference anchorname="#links-to-external-discussions-on-blosc-optimization" internal="True" refuri="tutorial.html#links-to-external-discussions-on-blosc-optimization">Links to external discussions on <literal>blosc</literal> optimization</reference></compact_paragraph></list_item></bullet_list></list_item><list_item classes="toctree-l1"><compact_paragraph classes="toctree-l1"><reference anchorname="" internal="True" refuri="reference.html">Library Reference</reference></compact_paragraph><bullet_list><list_item classes="toctree-l2"><compact_paragraph classes="toctree-l2"><reference anchorname="#first-level-variables" internal="True" refuri="reference.html#first-level-variables">First level variables</reference></compact_paragraph></list_item><list_item classes="toctree-l2"><compact_paragraph classes="toctree-l2"><reference anchorname="#module-blosc" internal="True" refuri="reference.html#module-blosc">Public functions</reference></compact_paragraph></list_item><list_item classes="toctree-l2"><compact_paragraph classes="toctree-l2"><reference anchorname="#module-blosc" internal="True" refuri="reference.html#module-blosc">Utilities</reference></compact_paragraph></list_item></bullet_list></list_item></bullet_list></compact_paragraph> SphinxTranslator.dispatch_departure calling depart_compound for <compound classes="toctree-wrapper"><compact_paragraph toctree="True"><bullet_list><list_item classes="toctree-l1"><compact_paragraph classes="toctree-l1"><reference anchorname="" internal="True" refuri="intro.html">Introduction</reference></compact_paragraph><bullet_list><list_item classes="toctree-l2"><compact_paragraph classes="toctree-l2"><reference anchorname="#what-is-python-blosc" internal="True" refuri="intro.html#what-is-python-blosc">What is python-blosc?</reference></compact_paragraph></list_item><list_item classes="toctree-l2"><compact_paragraph classes="toctree-l2"><reference anchorname="#mailing-list" internal="True" refuri="intro.html#mailing-list">Mailing list</reference></compact_paragraph></list_item></bullet_list></list_item><list_item classes="toctree-l1"><compact_paragraph classes="toctree-l1"><reference anchorname="" internal="True" refuri="install.html">Installation</reference></compact_paragraph><bullet_list><list_item classes="toctree-l2"><compact_paragraph classes="toctree-l2"><reference anchorname="#installing-from-pypi-repository" internal="True" refuri="install.html#installing-from-pypi-repository">Installing from PyPI repository</reference></compact_paragraph></list_item><list_item classes="toctree-l2"><compact_paragraph classes="toctree-l2"><reference anchorname="#building-manually" internal="True" refuri="install.html#building-manually">Building manually</reference></compact_paragraph></list_item><list_item classes="toctree-l2"><compact_paragraph classes="toctree-l2"><reference anchorname="#testing" internal="True" refuri="install.html#testing">Testing</reference></compact_paragraph></list_item><list_item classes="toctree-l2"><compact_paragraph classes="toctree-l2"><reference anchorname="#installing" internal="True" refuri="install.html#installing">Installing</reference></compact_paragraph></list_item></bullet_list></list_item><list_item classes="toctree-l1"><compact_paragraph classes="toctree-l1"><reference anchorname="" internal="True" refuri="tutorial.html">Tutorials</reference></compact_paragraph><bullet_list><list_item classes="toctree-l2"><compact_paragraph classes="toctree-l2"><reference anchorname="#compressing-and-decompressing-with-blosc" internal="True" refuri="tutorial.html#compressing-and-decompressing-with-blosc">Compressing and decompressing with <literal>blosc</literal></reference></compact_paragraph></list_item><list_item classes="toctree-l2"><compact_paragraph classes="toctree-l2"><reference anchorname="#using-different-filters" internal="True" refuri="tutorial.html#using-different-filters">Using different filters</reference></compact_paragraph></list_item><list_item classes="toctree-l2"><compact_paragraph classes="toctree-l2"><reference anchorname="#supporting-the-buffer-interface" internal="True" refuri="tutorial.html#supporting-the-buffer-interface">Supporting the buffer interface</reference></compact_paragraph></list_item><list_item classes="toctree-l2"><compact_paragraph classes="toctree-l2"><reference anchorname="#packaging-numpy-arrays" internal="True" refuri="tutorial.html#packaging-numpy-arrays">Packaging NumPy arrays</reference></compact_paragraph></list_item><list_item classes="toctree-l2"><compact_paragraph classes="toctree-l2"><reference anchorname="#compressing-from-a-data-pointer" internal="True" refuri="tutorial.html#compressing-from-a-data-pointer">Compressing from a data pointer</reference></compact_paragraph></list_item><list_item classes="toctree-l2"><compact_paragraph classes="toctree-l2"><reference anchorname="#fine-tuning-compression-parameters" internal="True" refuri="tutorial.html#fine-tuning-compression-parameters">Fine-tuning compression parameters</reference></compact_paragraph></list_item><list_item classes="toctree-l2"><compact_paragraph classes="toctree-l2"><reference anchorname="#links-to-external-discussions-on-blosc-optimization" internal="True" refuri="tutorial.html#links-to-external-discussions-on-blosc-optimization">Links to external discussions on <literal>blosc</literal> optimization</reference></compact_paragraph></list_item></bullet_list></list_item><list_item classes="toctree-l1"><compact_paragraph classes="toctree-l1"><reference anchorname="" internal="True" refuri="reference.html">Library Reference</reference></compact_paragraph><bullet_list><list_item classes="toctree-l2"><compact_paragraph classes="toctree-l2"><reference anchorname="#first-level-variables" internal="True" refuri="reference.html#first-level-variables">First level variables</reference></compact_paragraph></list_item><list_item classes="toctree-l2"><compact_paragraph classes="toctree-l2"><reference anchorname="#module-blosc" internal="True" refuri="reference.html#module-blosc">Public functions</reference></compact_paragraph></list_item><list_item classes="toctree-l2"><compact_paragraph classes="toctree-l2"><reference anchorname="#module-blosc" internal="True" refuri="reference.html#module-blosc">Utilities</reference></compact_paragraph></list_item></bullet_list></list_item></bullet_list></compact_paragraph></compound> SphinxTranslator.dispatch_departure calling depart_section for <section ids="welcome-to-python-blosc-s-documentation" names="welcome\ to\ python-blosc's\ documentation!"><title>Welcome to python-blosc’s documentation!</title><paragraph>Contents:</paragraph><compound classes="toctree-wrapper"><compact_paragraph toctree="True"><bullet_list><list_item classes="toctree-l1"><compact_paragraph classes="toctree-l1"><reference anchorname="" internal="True" refuri="intro.html">Introduction</reference></compact_paragraph><bullet_list><list_item classes="toctree-l2"><compact_paragraph classes="toctree-l2"><reference anchorname="#what-is-python-blosc" internal="True" refuri="intro.html#what-is-python-blosc">What is python-blosc?</reference></compact_paragraph></list_item><list_item classes="toctree-l2"><compact_paragraph classes="toctree-l2"><reference anchorname="#mailing-list" internal="True" refuri="intro.html#mailing-list">Mailing list</reference></compact_paragraph></list_item></bullet_list></list_item><list_item classes="toctree-l1"><compact_paragraph classes="toctree-l1"><reference anchorname="" internal="True" refuri="install.html">Installation</reference></compact_paragraph><bullet_list><list_item classes="toctree-l2"><compact_paragraph classes="toctree-l2"><reference anchorname="#installing-from-pypi-repository" internal="True" refuri="install.html#installing-from-pypi-repository">Installing from PyPI repository</reference></compact_paragraph></list_item><list_item classes="toctree-l2"><compact_paragraph classes="toctree-l2"><reference anchorname="#building-manually" internal="True" refuri="install.html#building-manually">Building manually</reference></compact_paragraph></list_item><list_item classes="toctree-l2"><compact_paragraph classes="toctree-l2"><reference anchorname="#testing" internal="True" refuri="install.html#testing">Testing</reference></compact_paragraph></list_item><list_item classes="toctree-l2"><compact_paragraph classes="toctree-l2"><reference anchorname="#installing" internal="True" refuri="install.html#installing">Installing</reference></compact_paragraph></list_item></bullet_list></list_item><list_item classes="toctree-l1"><compact_paragraph classes="toctree-l1"><reference anchorname="" internal="True" refuri="tutorial.html">Tutorials</reference></compact_paragraph><bullet_list><list_item classes="toctree-l2"><compact_paragraph classes="toctree-l2"><reference anchorname="#compressing-and-decompressing-with-blosc" internal="True" refuri="tutorial.html#compressing-and-decompressing-with-blosc">Compressing and decompressing with <literal>blosc</literal></reference></compact_paragraph></list_item><list_item classes="toctree-l2"><compact_paragraph classes="toctree-l2"><reference anchorname="#using-different-filters" internal="True" refuri="tutorial.html#using-different-filters">Using different filters</reference></compact_paragraph></list_item><list_item classes="toctree-l2"><compact_paragraph classes="toctree-l2"><reference anchorname="#supporting-the-buffer-interface" internal="True" refuri="tutorial.html#supporting-the-buffer-interface">Supporting the buffer interface</reference></compact_paragraph></list_item><list_item classes="toctree-l2"><compact_paragraph classes="toctree-l2"><reference anchorname="#packaging-numpy-arrays" internal="True" refuri="tutorial.html#packaging-numpy-arrays">Packaging NumPy arrays</reference></compact_paragraph></list_item><list_item classes="toctree-l2"><compact_paragraph classes="toctree-l2"><reference anchorname="#compressing-from-a-data-pointer" internal="True" refuri="tutorial.html#compressing-from-a-data-pointer">Compressing from a data pointer</reference></compact_paragraph></list_item><list_item classes="toctree-l2"><compact_paragraph classes="toctree-l2"><reference anchorname="#fine-tuning-compression-parameters" internal="True" refuri="tutorial.html#fine-tuning-compression-parameters">Fine-tuning compression parameters</reference></compact_paragraph></list_item><list_item classes="toctree-l2"><compact_paragraph classes="toctree-l2"><reference anchorname="#links-to-external-discussions-on-blosc-optimization" internal="True" refuri="tutorial.html#links-to-external-discussions-on-blosc-optimization">Links to external discussions on <literal>blosc</literal> optimization</reference></compact_paragraph></list_item></bullet_list></list_item><list_item classes="toctree-l1"><compact_paragraph classes="toctree-l1"><reference anchorname="" internal="True" refuri="reference.html">Library Reference</reference></compact_paragraph><bullet_list><list_item classes="toctree-l2"><compact_paragraph classes="toctree-l2"><reference anchorname="#first-level-variables" internal="True" refuri="reference.html#first-level-variables">First level variables</reference></compact_paragraph></list_item><list_item classes="toctree-l2"><compact_paragraph classes="toctree-l2"><reference anchorname="#module-blosc" internal="True" refuri="reference.html#module-blosc">Public functions</reference></compact_paragraph></list_item><list_item classes="toctree-l2"><compact_paragraph classes="toctree-l2"><reference anchorname="#module-blosc" internal="True" refuri="reference.html#module-blosc">Utilities</reference></compact_paragraph></list_item></bullet_list></list_item></bullet_list></compact_paragraph></compound></section> SphinxTranslator.dispatch_visit calling visit_section for <section ids="indices-and-tables" names="indices\ and\ tables"><title>Indices and tables</title><bullet_list bullet="*"><list_item><paragraph><reference internal="True" refuri="genindex.html"><inline classes="std std-ref">Index</inline></reference></paragraph></list_item><list_item><paragraph><reference internal="True" refuri="py-modindex.html"><inline classes="std std-ref">Module Index</inline></reference></paragraph></list_item><list_item><paragraph><reference internal="True" refuri="search.html"><inline classes="std std-ref">Search Page</inline></reference></paragraph></list_item></bullet_list></section> SphinxTranslator.dispatch_visit calling visit_title for <title>Indices and tables</title> SphinxTranslator.dispatch_visit calling visit_Text for Indices and tables SphinxTranslator.dispatch_departure calling depart_Text for Indices and tables SphinxTranslator.dispatch_departure calling depart_title for <title>Indices and tables</title> SphinxTranslator.dispatch_visit calling visit_bullet_list for <bullet_list bullet="*"><list_item><paragraph><reference internal="True" refuri="genindex.html"><inline classes="std std-ref">Index</inline></reference></paragraph></list_item><list_item><paragraph><reference internal="True" refuri="py-modindex.html"><inline classes="std std-ref">Module Index</inline></reference></paragraph></list_item><list_item><paragraph><reference internal="True" refuri="search.html"><inline classes="std std-ref">Search Page</inline></reference></paragraph></list_item></bullet_list> SphinxTranslator.dispatch_visit calling visit_list_item for <list_item><paragraph><reference internal="True" refuri="genindex.html"><inline classes="std std-ref">Index</inline></reference></paragraph></list_item> SphinxTranslator.dispatch_visit calling visit_paragraph for <paragraph><reference internal="True" refuri="genindex.html"><inline classes="std std-ref">Index</inline></reference></paragraph> SphinxTranslator.dispatch_visit calling visit_reference for <reference internal="True" refuri="genindex.html"><inline classes="std std-ref">Index</inline></reference> SphinxTranslator.dispatch_visit calling visit_inline for <inline classes="std std-ref">Index</inline> SphinxTranslator.dispatch_visit calling visit_Text for Index SphinxTranslator.dispatch_departure calling depart_Text for Index SphinxTranslator.dispatch_departure calling depart_inline for <inline classes="std std-ref">Index</inline> SphinxTranslator.dispatch_departure calling depart_reference for <reference internal="True" refuri="genindex.html"><inline classes="std std-ref">Index</inline></reference> SphinxTranslator.dispatch_departure calling depart_paragraph for <paragraph><reference internal="True" refuri="genindex.html"><inline classes="std std-ref">Index</inline></reference></paragraph> SphinxTranslator.dispatch_departure calling depart_list_item for <list_item><paragraph><reference internal="True" refuri="genindex.html"><inline classes="std std-ref">Index</inline></reference></paragraph></list_item> SphinxTranslator.dispatch_visit calling visit_list_item for <list_item><paragraph><reference internal="True" refuri="py-modindex.html"><inline classes="std std-ref">Module Index</inline></reference></paragraph></list_item> SphinxTranslator.dispatch_visit calling visit_paragraph for <paragraph><reference internal="True" refuri="py-modindex.html"><inline classes="std std-ref">Module Index</inline></reference></paragraph> SphinxTranslator.dispatch_visit calling visit_reference for <reference internal="True" refuri="py-modindex.html"><inline classes="std std-ref">Module Index</inline></reference> SphinxTranslator.dispatch_visit calling visit_inline for <inline classes="std std-ref">Module Index</inline> SphinxTranslator.dispatch_visit calling visit_Text for Module Index SphinxTranslator.dispatch_departure calling depart_Text for Module Index SphinxTranslator.dispatch_departure calling depart_inline for <inline classes="std std-ref">Module Index</inline> SphinxTranslator.dispatch_departure calling depart_reference for <reference internal="True" refuri="py-modindex.html"><inline classes="std std-ref">Module Index</inline></reference> SphinxTranslator.dispatch_departure calling depart_paragraph for <paragraph><reference internal="True" refuri="py-modindex.html"><inline classes="std std-ref">Module Index</inline></reference></paragraph> SphinxTranslator.dispatch_departure calling depart_list_item for <list_item><paragraph><reference internal="True" refuri="py-modindex.html"><inline classes="std std-ref">Module Index</inline></reference></paragraph></list_item> SphinxTranslator.dispatch_visit calling visit_list_item for <list_item><paragraph><reference internal="True" refuri="search.html"><inline classes="std std-ref">Search Page</inline></reference></paragraph></list_item> SphinxTranslator.dispatch_visit calling visit_paragraph for <paragraph><reference internal="True" refuri="search.html"><inline classes="std std-ref">Search Page</inline></reference></paragraph> SphinxTranslator.dispatch_visit calling visit_reference for <reference internal="True" refuri="search.html"><inline classes="std std-ref">Search Page</inline></reference> SphinxTranslator.dispatch_visit calling visit_inline for <inline classes="std std-ref">Search Page</inline> SphinxTranslator.dispatch_visit calling visit_Text for Search Page SphinxTranslator.dispatch_departure calling depart_Text for Search Page SphinxTranslator.dispatch_departure calling depart_inline for <inline classes="std std-ref">Search Page</inline> SphinxTranslator.dispatch_departure calling depart_reference for <reference internal="True" refuri="search.html"><inline classes="std std-ref">Search Page</inline></reference> SphinxTranslator.dispatch_departure calling depart_paragraph for <paragraph><reference internal="True" refuri="search.html"><inline classes="std std-ref">Search Page</inline></reference></paragraph> SphinxTranslator.dispatch_departure calling depart_list_item for <list_item><paragraph><reference internal="True" refuri="search.html"><inline classes="std std-ref">Search Page</inline></reference></paragraph></list_item> SphinxTranslator.dispatch_departure calling depart_bullet_list for <bullet_list bullet="*"><list_item><paragraph><reference internal="True" refuri="genindex.html"><inline classes="std std-ref">Index</inline></reference></paragraph></list_item><list_item><paragraph><reference internal="True" refuri="py-modindex.html"><inline classes="std std-ref">Module Index</inline></reference></paragraph></list_item><list_item><paragraph><reference internal="True" refuri="search.html"><inline classes="std std-ref">Search Page</inline></reference></paragraph></list_item></bullet_list> SphinxTranslator.dispatch_departure calling depart_section for <section ids="indices-and-tables" names="indices\ and\ tables"><title>Indices and tables</title><bullet_list bullet="*"><list_item><paragraph><reference internal="True" refuri="genindex.html"><inline classes="std std-ref">Index</inline></reference></paragraph></list_item><list_item><paragraph><reference internal="True" refuri="py-modindex.html"><inline classes="std std-ref">Module Index</inline></reference></paragraph></list_item><list_item><paragraph><reference internal="True" refuri="search.html"><inline classes="std std-ref">Search Page</inline></reference></paragraph></list_item></bullet_list></section> SphinxTranslator.dispatch_departure calling depart_document for <document source="/usr/src/RPM/BUILD/python3-module-blosc-1.5.1/doc/index.rst"><comment xml:space="preserve">python-blosc documentation master file, created by sphinx-quickstart on Sun May 5 19:38:24 2013. You can adapt this file completely to your liking, but it should at least contain the root `toctree` directive.</comment><section ids="welcome-to-python-blosc-s-documentation" names="welcome\ to\ python-blosc's\ documentation!"><title>Welcome to python-blosc’s documentation!</title><paragraph>Contents:</paragraph><compound classes="toctree-wrapper"><compact_paragraph toctree="True"><bullet_list><list_item classes="toctree-l1"><compact_paragraph classes="toctree-l1"><reference anchorname="" internal="True" refuri="intro.html">Introduction</reference></compact_paragraph><bullet_list><list_item classes="toctree-l2"><compact_paragraph classes="toctree-l2"><reference anchorname="#what-is-python-blosc" internal="True" refuri="intro.html#what-is-python-blosc">What is python-blosc?</reference></compact_paragraph></list_item><list_item classes="toctree-l2"><compact_paragraph classes="toctree-l2"><reference anchorname="#mailing-list" internal="True" refuri="intro.html#mailing-list">Mailing list</reference></compact_paragraph></list_item></bullet_list></list_item><list_item classes="toctree-l1"><compact_paragraph classes="toctree-l1"><reference anchorname="" internal="True" refuri="install.html">Installation</reference></compact_paragraph><bullet_list><list_item classes="toctree-l2"><compact_paragraph classes="toctree-l2"><reference anchorname="#installing-from-pypi-repository" internal="True" refuri="install.html#installing-from-pypi-repository">Installing from PyPI repository</reference></compact_paragraph></list_item><list_item classes="toctree-l2"><compact_paragraph classes="toctree-l2"><reference anchorname="#building-manually" internal="True" refuri="install.html#building-manually">Building manually</reference></compact_paragraph></list_item><list_item classes="toctree-l2"><compact_paragraph classes="toctree-l2"><reference anchorname="#testing" internal="True" refuri="install.html#testing">Testing</reference></compact_paragraph></list_item><list_item classes="toctree-l2"><compact_paragraph classes="toctree-l2"><reference anchorname="#installing" internal="True" refuri="install.html#installing">Installing</reference></compact_paragraph></list_item></bullet_list></list_item><list_item classes="toctree-l1"><compact_paragraph classes="toctree-l1"><reference anchorname="" internal="True" refuri="tutorial.html">Tutorials</reference></compact_paragraph><bullet_list><list_item classes="toctree-l2"><compact_paragraph classes="toctree-l2"><reference anchorname="#compressing-and-decompressing-with-blosc" internal="True" refuri="tutorial.html#compressing-and-decompressing-with-blosc">Compressing and decompressing with <literal>blosc</literal></reference></compact_paragraph></list_item><list_item classes="toctree-l2"><compact_paragraph classes="toctree-l2"><reference anchorname="#using-different-filters" internal="True" refuri="tutorial.html#using-different-filters">Using different filters</reference></compact_paragraph></list_item><list_item classes="toctree-l2"><compact_paragraph classes="toctree-l2"><reference anchorname="#supporting-the-buffer-interface" internal="True" refuri="tutorial.html#supporting-the-buffer-interface">Supporting the buffer interface</reference></compact_paragraph></list_item><list_item classes="toctree-l2"><compact_paragraph classes="toctree-l2"><reference anchorname="#packaging-numpy-arrays" internal="True" refuri="tutorial.html#packaging-numpy-arrays">Packaging NumPy arrays</reference></compact_paragraph></list_item><list_item classes="toctree-l2"><compact_paragraph classes="toctree-l2"><reference anchorname="#compressing-from-a-data-pointer" internal="True" refuri="tutorial.html#compressing-from-a-data-pointer">Compressing from a data pointer</reference></compact_paragraph></list_item><list_item classes="toctree-l2"><compact_paragraph classes="toctree-l2"><reference anchorname="#fine-tuning-compression-parameters" internal="True" refuri="tutorial.html#fine-tuning-compression-parameters">Fine-tuning compression parameters</reference></compact_paragraph></list_item><list_item classes="toctree-l2"><compact_paragraph classes="toctree-l2"><reference anchorname="#links-to-external-discussions-on-blosc-optimization" internal="True" refuri="tutorial.html#links-to-external-discussions-on-blosc-optimization">Links to external discussions on <literal>blosc</literal> optimization</reference></compact_paragraph></list_item></bullet_list></list_item><list_item classes="toctree-l1"><compact_paragraph classes="toctree-l1"><reference anchorname="" internal="True" refuri="reference.html">Library Reference</reference></compact_paragraph><bullet_list><list_item classes="toctree-l2"><compact_paragraph classes="toctree-l2"><reference anchorname="#first-level-variables" internal="True" refuri="reference.html#first-level-variables">First level variables</reference></compact_paragraph></list_item><list_item classes="toctree-l2"><compact_paragraph classes="toctree-l2"><reference anchorname="#module-blosc" internal="True" refuri="reference.html#module-blosc">Public functions</reference></compact_paragraph></list_item><list_item classes="toctree-l2"><compact_paragraph classes="toctree-l2"><reference anchorname="#module-blosc" internal="True" refuri="reference.html#module-blosc">Utilities</reference></compact_paragraph></list_item></bullet_list></list_item></bullet_list></compact_paragraph></compound></section><section ids="indices-and-tables" names="indices\ and\ tables"><title>Indices and tables</title><bullet_list bullet="*"><list_item><paragraph><reference internal="True" refuri="genindex.html"><inline classes="std std-ref">Index</inline></reference></paragraph></list_item><list_item><paragraph><reference internal="True" refuri="py-modindex.html"><inline classes="std std-ref">Module Index</inline></reference></paragraph></list_item><list_item><paragraph><reference internal="True" refuri="search.html"><inline classes="std std-ref">Search Page</inline></reference></paragraph></list_item></bullet_list></section></document> SphinxTranslator.dispatch_visit calling visit_document for <document source="<partial node>"><title>Introduction</title></document> SphinxTranslator.dispatch_visit calling visit_title for <title>Introduction</title> SphinxTranslator.dispatch_visit calling visit_Text for Introduction SphinxTranslator.dispatch_departure calling depart_Text for Introduction SphinxTranslator.dispatch_departure calling depart_title for <title>Introduction</title> SphinxTranslator.dispatch_departure calling depart_document for <document source="<partial node>"><title>Introduction</title></document> SphinxTranslator.dispatch_visit calling visit_document for <document source="<partial node>"><title>Welcome to python-blosc’s documentation!</title></document> SphinxTranslator.dispatch_visit calling visit_title for <title>Welcome to python-blosc’s documentation!</title> SphinxTranslator.dispatch_visit calling visit_Text for Welcome to python-blosc’s documentation! SphinxTranslator.dispatch_departure calling depart_Text for Welcome to python-blosc’s documentation! SphinxTranslator.dispatch_departure calling depart_title for <title>Welcome to python-blosc’s documentation!</title> SphinxTranslator.dispatch_departure calling depart_document for <document source="<partial node>"><title>Welcome to python-blosc’s documentation!</title></document> SphinxTranslator.dispatch_visit calling visit_document for <document source="<partial node>"><bullet_list><list_item><compact_paragraph><reference anchorname="" internal="True" refuri="#">Welcome to python-blosc’s documentation!</reference></compact_paragraph><bullet_list><toctree caption="None" entries="[(None, 'intro'), (None, 'install'), (None, 'tutorial'), (None, 'reference')]" glob="False" hidden="False" includefiles="['intro', 'install', 'tutorial', 'reference']" includehidden="False" maxdepth="2" numbered="0" parent="index" rawentries="[]" titlesonly="False"/></bullet_list></list_item><list_item><compact_paragraph><reference anchorname="#indices-and-tables" internal="True" refuri="#indices-and-tables">Indices and tables</reference></compact_paragraph></list_item></bullet_list></document> SphinxTranslator.dispatch_visit calling visit_bullet_list for <bullet_list><list_item><compact_paragraph><reference anchorname="" internal="True" refuri="#">Welcome to python-blosc’s documentation!</reference></compact_paragraph><bullet_list><toctree caption="None" entries="[(None, 'intro'), (None, 'install'), (None, 'tutorial'), (None, 'reference')]" glob="False" hidden="False" includefiles="['intro', 'install', 'tutorial', 'reference']" includehidden="False" maxdepth="2" numbered="0" parent="index" rawentries="[]" titlesonly="False"/></bullet_list></list_item><list_item><compact_paragraph><reference anchorname="#indices-and-tables" internal="True" refuri="#indices-and-tables">Indices and tables</reference></compact_paragraph></list_item></bullet_list> SphinxTranslator.dispatch_visit calling visit_list_item for <list_item><compact_paragraph><reference anchorname="" internal="True" refuri="#">Welcome to python-blosc’s documentation!</reference></compact_paragraph><bullet_list><toctree caption="None" entries="[(None, 'intro'), (None, 'install'), (None, 'tutorial'), (None, 'reference')]" glob="False" hidden="False" includefiles="['intro', 'install', 'tutorial', 'reference']" includehidden="False" maxdepth="2" numbered="0" parent="index" rawentries="[]" titlesonly="False"/></bullet_list></list_item> SphinxTranslator.dispatch_visit calling visit_compact_paragraph for <compact_paragraph><reference anchorname="" internal="True" refuri="#">Welcome to python-blosc’s documentation!</reference></compact_paragraph> SphinxTranslator.dispatch_visit calling visit_reference for <reference anchorname="" internal="True" refuri="#">Welcome to python-blosc’s documentation!</reference> SphinxTranslator.dispatch_visit calling visit_Text for Welcome to python-blosc’s documentation! SphinxTranslator.dispatch_departure calling depart_Text for Welcome to python-blosc’s documentation! SphinxTranslator.dispatch_departure calling depart_reference for <reference anchorname="" internal="True" refuri="#">Welcome to python-blosc’s documentation!</reference> SphinxTranslator.dispatch_departure calling depart_compact_paragraph for <compact_paragraph><reference anchorname="" internal="True" refuri="#">Welcome to python-blosc’s documentation!</reference></compact_paragraph> SphinxTranslator.dispatch_visit calling visit_bullet_list for <bullet_list><toctree caption="None" entries="[(None, 'intro'), (None, 'install'), (None, 'tutorial'), (None, 'reference')]" glob="False" hidden="False" includefiles="['intro', 'install', 'tutorial', 'reference']" includehidden="False" maxdepth="2" numbered="0" parent="index" rawentries="[]" titlesonly="False"/></bullet_list> SphinxTranslator.dispatch_departure calling depart_list_item for <list_item><compact_paragraph><reference anchorname="" internal="True" refuri="#">Welcome to python-blosc’s documentation!</reference></compact_paragraph><bullet_list><toctree caption="None" entries="[(None, 'intro'), (None, 'install'), (None, 'tutorial'), (None, 'reference')]" glob="False" hidden="False" includefiles="['intro', 'install', 'tutorial', 'reference']" includehidden="False" maxdepth="2" numbered="0" parent="index" rawentries="[]" titlesonly="False"/></bullet_list></list_item> SphinxTranslator.dispatch_visit calling visit_list_item for <list_item><compact_paragraph><reference anchorname="#indices-and-tables" internal="True" refuri="#indices-and-tables">Indices and tables</reference></compact_paragraph></list_item> SphinxTranslator.dispatch_visit calling visit_compact_paragraph for <compact_paragraph><reference anchorname="#indices-and-tables" internal="True" refuri="#indices-and-tables">Indices and tables</reference></compact_paragraph> SphinxTranslator.dispatch_visit calling visit_reference for <reference anchorname="#indices-and-tables" internal="True" refuri="#indices-and-tables">Indices and tables</reference> SphinxTranslator.dispatch_visit calling visit_Text for Indices and tables SphinxTranslator.dispatch_departure calling depart_Text for Indices and tables SphinxTranslator.dispatch_departure calling depart_reference for <reference anchorname="#indices-and-tables" internal="True" refuri="#indices-and-tables">Indices and tables</reference> SphinxTranslator.dispatch_departure calling depart_compact_paragraph for <compact_paragraph><reference anchorname="#indices-and-tables" internal="True" refuri="#indices-and-tables">Indices and tables</reference></compact_paragraph> SphinxTranslator.dispatch_departure calling depart_list_item for <list_item><compact_paragraph><reference anchorname="#indices-and-tables" internal="True" refuri="#indices-and-tables">Indices and tables</reference></compact_paragraph></list_item> SphinxTranslator.dispatch_departure calling depart_bullet_list for <bullet_list><list_item><compact_paragraph><reference anchorname="" internal="True" refuri="#">Welcome to python-blosc’s documentation!</reference></compact_paragraph><bullet_list><toctree caption="None" entries="[(None, 'intro'), (None, 'install'), (None, 'tutorial'), (None, 'reference')]" glob="False" hidden="False" includefiles="['intro', 'install', 'tutorial', 'reference']" includehidden="False" maxdepth="2" numbered="0" parent="index" rawentries="[]" titlesonly="False"/></bullet_list></list_item><list_item><compact_paragraph><reference anchorname="#indices-and-tables" internal="True" refuri="#indices-and-tables">Indices and tables</reference></compact_paragraph></list_item></bullet_list> SphinxTranslator.dispatch_departure calling depart_document for <document source="<partial node>"><bullet_list><list_item><compact_paragraph><reference anchorname="" internal="True" refuri="#">Welcome to python-blosc’s documentation!</reference></compact_paragraph><bullet_list><toctree caption="None" entries="[(None, 'intro'), (None, 'install'), (None, 'tutorial'), (None, 'reference')]" glob="False" hidden="False" includefiles="['intro', 'install', 'tutorial', 'reference']" includehidden="False" maxdepth="2" numbered="0" parent="index" rawentries="[]" titlesonly="False"/></bullet_list></list_item><list_item><compact_paragraph><reference anchorname="#indices-and-tables" internal="True" refuri="#indices-and-tables">Indices and tables</reference></compact_paragraph></list_item></bullet_list></document> [app] emitting event: 'html-page-context'('index', 'page.html', {'embedded': False, 'project': 'python-blosc', 'release': '1.5.0', 'version': writing output... [ 40%] install [app] emitting event: 'doctree-resolved'(<document: <section "installation"...>>, 'install') SphinxTranslator.dispatch_visit calling visit_document for <document source="<partial node>"><title>Installation</title></document> SphinxTranslator.dispatch_visit calling visit_title for <title>Installation</title> SphinxTranslator.dispatch_visit calling visit_Text for Installation SphinxTranslator.dispatch_departure calling depart_Text for Installation SphinxTranslator.dispatch_departure calling depart_title for <title>Installation</title> SphinxTranslator.dispatch_departure calling depart_document for <document source="<partial node>"><title>Installation</title></document> SphinxTranslator.dispatch_visit calling visit_document for <document source="/usr/src/RPM/BUILD/python3-module-blosc-1.5.1/doc/install.rst"><section ids="installation" names="installation"><title>Installation</title><paragraph>python-blosc comes with C Blosc sources, so it does not depend on any other library (bar Python itself of course). Of course, if you are going to install from sources, you are going to need a C compiler (GCC, clang and MSVC 2008/2010/2012/2015 have been tested).</paragraph><paragraph>Also, there are situations where you may want to link with an already existing Blosc library in your system. You can do that too.</paragraph><paragraph>This package supports Python 2.6, 2.7 and 3.3 or higher versions.</paragraph><section ids="installing-from-pypi-repository" names="installing\ from\ pypi\ repository"><title>Installing from PyPI repository</title><paragraph>Do:</paragraph><literal_block force="False" highlight_args="{}" language="console" linenos="False" xml:space="preserve">$ pip install -U blosc</literal_block></section><section ids="building-manually" names="building\ manually"><title>Building manually</title><paragraph>First, go to the python-blosc official repository at <reference refuri="https://github.com/Blosc/python-blosc">https://github.com/Blosc/python-blosc</reference> and download the sources.</paragraph><paragraph>Then, there are different ways to compile python-blosc, depending on whether you want to link with an already installed Blosc library or not.</paragraph><section ids="compiling-without-an-installed-blosc-library" names="compiling\ without\ an\ installed\ blosc\ library"><title>Compiling without an installed Blosc library</title><paragraph>python-blosc comes with the Blosc sources with it so, assuming that you have a C compiler installed, do:</paragraph><literal_block force="False" highlight_args="{}" language="console" linenos="False" xml:space="preserve">$ python setup.py build_ext --inplace</literal_block><paragraph>That’s all. You can proceed with testing section now.</paragraph></section><section ids="compiling-with-an-installed-blosc-library" names="compiling\ with\ an\ installed\ blosc\ library"><title>Compiling with an installed Blosc library</title><paragraph>In case you have Blosc installed as an external library (and disregard the included Blosc sources) you can link with it in a couple of ways.</paragraph><paragraph>Using an environment variable:</paragraph><literal_block force="False" highlight_args="{}" language="console" linenos="False" xml:space="preserve">$ BLOSC_DIR=/usr/local (or "set BLOSC_DIR=\blosc" on Win) $ export BLOSC_DIR (not needed on Win) $ python setup.py build_ext --inplace</literal_block><paragraph>Using a flag:</paragraph><literal_block force="False" highlight_args="{}" language="console" linenos="False" xml:space="preserve">$ python setup.py build_ext --inplace --blosc=/usr/local</literal_block></section><section ids="generating-sphinx-documentation" names="generating\ sphinx\ documentation"><title>Generating Sphinx documentation</title><paragraph>In case you want to generate the documentation locally, you will need to have the <literal>Sphinx</literal> documentation system, as well as the <literal>numpydoc</literal> extension, installed. Then go down to <literal>doc/</literal> directory and do:</paragraph><literal_block force="False" highlight_args="{}" language="console" linenos="False" xml:space="preserve">$ make html|latex|latexpdf</literal_block></section></section><section ids="testing" names="testing"><title>Testing</title><paragraph>After compiling, you can quickly check that the package is sane by running the doctests in <literal>blosc/test.py</literal>:</paragraph><literal_block force="False" highlight_args="{}" language="console" linenos="False" xml:space="preserve">$ PYTHONPATH=. (or "set PYTHONPATH=." on Win) $ export PYTHONPATH=. (not needed on Win) $ python blosc/test.py (add -v for verbose mode)</literal_block><paragraph>Or alternatively, you can use the third-party <literal>nosetests</literal> script to run both the doctests and the test suite:</paragraph><literal_block force="False" highlight_args="{}" language="console" linenos="False" xml:space="preserve">$ nosetests --with-doctest (add -v for verbose mode)</literal_block><paragraph>Once installed, you can re-run the tests at any time with:</paragraph><literal_block force="False" highlight_args="{}" language="console" linenos="False" xml:space="preserve">$ python -c "import blosc; blosc.test()"</literal_block></section><section ids="installing" names="installing"><title>Installing</title><paragraph>Install it as a typical Python package:</paragraph><literal_block force="False" highlight_args="{}" language="console" linenos="False" xml:space="preserve">$ python setup.py install</literal_block></section></section></document> SphinxTranslator.dispatch_visit calling visit_section for <section ids="installation" names="installation"><title>Installation</title><paragraph>python-blosc comes with C Blosc sources, so it does not depend on any other library (bar Python itself of course). Of course, if you are going to install from sources, you are going to need a C compiler (GCC, clang and MSVC 2008/2010/2012/2015 have been tested).</paragraph><paragraph>Also, there are situations where you may want to link with an already existing Blosc library in your system. You can do that too.</paragraph><paragraph>This package supports Python 2.6, 2.7 and 3.3 or higher versions.</paragraph><section ids="installing-from-pypi-repository" names="installing\ from\ pypi\ repository"><title>Installing from PyPI repository</title><paragraph>Do:</paragraph><literal_block force="False" highlight_args="{}" language="console" linenos="False" xml:space="preserve">$ pip install -U blosc</literal_block></section><section ids="building-manually" names="building\ manually"><title>Building manually</title><paragraph>First, go to the python-blosc official repository at <reference refuri="https://github.com/Blosc/python-blosc">https://github.com/Blosc/python-blosc</reference> and download the sources.</paragraph><paragraph>Then, there are different ways to compile python-blosc, depending on whether you want to link with an already installed Blosc library or not.</paragraph><section ids="compiling-without-an-installed-blosc-library" names="compiling\ without\ an\ installed\ blosc\ library"><title>Compiling without an installed Blosc library</title><paragraph>python-blosc comes with the Blosc sources with it so, assuming that you have a C compiler installed, do:</paragraph><literal_block force="False" highlight_args="{}" language="console" linenos="False" xml:space="preserve">$ python setup.py build_ext --inplace</literal_block><paragraph>That’s all. You can proceed with testing section now.</paragraph></section><section ids="compiling-with-an-installed-blosc-library" names="compiling\ with\ an\ installed\ blosc\ library"><title>Compiling with an installed Blosc library</title><paragraph>In case you have Blosc installed as an external library (and disregard the included Blosc sources) you can link with it in a couple of ways.</paragraph><paragraph>Using an environment variable:</paragraph><literal_block force="False" highlight_args="{}" language="console" linenos="False" xml:space="preserve">$ BLOSC_DIR=/usr/local (or "set BLOSC_DIR=\blosc" on Win) $ export BLOSC_DIR (not needed on Win) $ python setup.py build_ext --inplace</literal_block><paragraph>Using a flag:</paragraph><literal_block force="False" highlight_args="{}" language="console" linenos="False" xml:space="preserve">$ python setup.py build_ext --inplace --blosc=/usr/local</literal_block></section><section ids="generating-sphinx-documentation" names="generating\ sphinx\ documentation"><title>Generating Sphinx documentation</title><paragraph>In case you want to generate the documentation locally, you will need to have the <literal>Sphinx</literal> documentation system, as well as the <literal>numpydoc</literal> extension, installed. Then go down to <literal>doc/</literal> directory and do:</paragraph><literal_block force="False" highlight_args="{}" language="console" linenos="False" xml:space="preserve">$ make html|latex|latexpdf</literal_block></section></section><section ids="testing" names="testing"><title>Testing</title><paragraph>After compiling, you can quickly check that the package is sane by running the doctests in <literal>blosc/test.py</literal>:</paragraph><literal_block force="False" highlight_args="{}" language="console" linenos="False" xml:space="preserve">$ PYTHONPATH=. (or "set PYTHONPATH=." on Win) $ export PYTHONPATH=. (not needed on Win) $ python blosc/test.py (add -v for verbose mode)</literal_block><paragraph>Or alternatively, you can use the third-party <literal>nosetests</literal> script to run both the doctests and the test suite:</paragraph><literal_block force="False" highlight_args="{}" language="console" linenos="False" xml:space="preserve">$ nosetests --with-doctest (add -v for verbose mode)</literal_block><paragraph>Once installed, you can re-run the tests at any time with:</paragraph><literal_block force="False" highlight_args="{}" language="console" linenos="False" xml:space="preserve">$ python -c "import blosc; blosc.test()"</literal_block></section><section ids="installing" names="installing"><title>Installing</title><paragraph>Install it as a typical Python package:</paragraph><literal_block force="False" highlight_args="{}" language="console" linenos="False" xml:space="preserve">$ python setup.py install</literal_block></section></section> SphinxTranslator.dispatch_visit calling visit_title for <title>Installation</title> SphinxTranslator.dispatch_visit calling visit_Text for Installation SphinxTranslator.dispatch_departure calling depart_Text for Installation SphinxTranslator.dispatch_departure calling depart_title for <title>Installation</title> SphinxTranslator.dispatch_visit calling visit_paragraph for <paragraph>python-blosc comes with C Blosc sources, so it does not depend on any other library (bar Python itself of course). Of course, if you are going to install from sources, you are going to need a C compiler (GCC, clang and MSVC 2008/2010/2012/2015 have been tested).</paragraph> SphinxTranslator.dispatch_visit calling visit_Text for python-blosc comes with C Blosc sources, so it does not depend on any other library (bar Python itself of course). Of course, if you are going to install from sources, you are going to need a C compiler (GCC, clang and MSVC 2008/2010/2012/2015 have been tested). SphinxTranslator.dispatch_departure calling depart_Text for python-blosc comes with C Blosc sources, so it does not depend on any other library (bar Python itself of course). Of course, if you are going to install from sources, you are going to need a C compiler (GCC, clang and MSVC 2008/2010/2012/2015 have been tested). SphinxTranslator.dispatch_departure calling depart_paragraph for <paragraph>python-blosc comes with C Blosc sources, so it does not depend on any other library (bar Python itself of course). Of course, if you are going to install from sources, you are going to need a C compiler (GCC, clang and MSVC 2008/2010/2012/2015 have been tested).</paragraph> SphinxTranslator.dispatch_visit calling visit_paragraph for <paragraph>Also, there are situations where you may want to link with an already existing Blosc library in your system. You can do that too.</paragraph> SphinxTranslator.dispatch_visit calling visit_Text for Also, there are situations where you may want to link with an already existing Blosc library in your system. You can do that too. SphinxTranslator.dispatch_departure calling depart_Text for Also, there are situations where you may want to link with an already existing Blosc library in your system. You can do that too. SphinxTranslator.dispatch_departure calling depart_paragraph for <paragraph>Also, there are situations where you may want to link with an already existing Blosc library in your system. You can do that too.</paragraph> SphinxTranslator.dispatch_visit calling visit_paragraph for <paragraph>This package supports Python 2.6, 2.7 and 3.3 or higher versions.</paragraph> SphinxTranslator.dispatch_visit calling visit_Text for This package supports Python 2.6, 2.7 and 3.3 or higher versions. SphinxTranslator.dispatch_departure calling depart_Text for This package supports Python 2.6, 2.7 and 3.3 or higher versions. SphinxTranslator.dispatch_departure calling depart_paragraph for <paragraph>This package supports Python 2.6, 2.7 and 3.3 or higher versions.</paragraph> SphinxTranslator.dispatch_visit calling visit_section for <section ids="installing-from-pypi-repository" names="installing\ from\ pypi\ repository"><title>Installing from PyPI repository</title><paragraph>Do:</paragraph><literal_block force="False" highlight_args="{}" language="console" linenos="False" xml:space="preserve">$ pip install -U blosc</literal_block></section> SphinxTranslator.dispatch_visit calling visit_title for <title>Installing from PyPI repository</title> SphinxTranslator.dispatch_visit calling visit_Text for Installing from PyPI repository SphinxTranslator.dispatch_departure calling depart_Text for Installing from PyPI repository SphinxTranslator.dispatch_departure calling depart_title for <title>Installing from PyPI repository</title> SphinxTranslator.dispatch_visit calling visit_paragraph for <paragraph>Do:</paragraph> SphinxTranslator.dispatch_visit calling visit_Text for Do: SphinxTranslator.dispatch_departure calling depart_Text for Do: SphinxTranslator.dispatch_departure calling depart_paragraph for <paragraph>Do:</paragraph> SphinxTranslator.dispatch_visit calling visit_literal_block for <literal_block force="False" highlight_args="{}" language="console" linenos="False" xml:space="preserve">$ pip install -U blosc</literal_block> SphinxTranslator.dispatch_departure calling depart_section for <section ids="installing-from-pypi-repository" names="installing\ from\ pypi\ repository"><title>Installing from PyPI repository</title><paragraph>Do:</paragraph><literal_block force="False" highlight_args="{'force': False}" language="console" linenos="False" xml:space="preserve">$ pip install -U blosc</literal_block></section> SphinxTranslator.dispatch_visit calling visit_section for <section ids="building-manually" names="building\ manually"><title>Building manually</title><paragraph>First, go to the python-blosc official repository at <reference refuri="https://github.com/Blosc/python-blosc">https://github.com/Blosc/python-blosc</reference> and download the sources.</paragraph><paragraph>Then, there are different ways to compile python-blosc, depending on whether you want to link with an already installed Blosc library or not.</paragraph><section ids="compiling-without-an-installed-blosc-library" names="compiling\ without\ an\ installed\ blosc\ library"><title>Compiling without an installed Blosc library</title><paragraph>python-blosc comes with the Blosc sources with it so, assuming that you have a C compiler installed, do:</paragraph><literal_block force="False" highlight_args="{}" language="console" linenos="False" xml:space="preserve">$ python setup.py build_ext --inplace</literal_block><paragraph>That’s all. You can proceed with testing section now.</paragraph></section><section ids="compiling-with-an-installed-blosc-library" names="compiling\ with\ an\ installed\ blosc\ library"><title>Compiling with an installed Blosc library</title><paragraph>In case you have Blosc installed as an external library (and disregard the included Blosc sources) you can link with it in a couple of ways.</paragraph><paragraph>Using an environment variable:</paragraph><literal_block force="False" highlight_args="{}" language="console" linenos="False" xml:space="preserve">$ BLOSC_DIR=/usr/local (or "set BLOSC_DIR=\blosc" on Win) $ export BLOSC_DIR (not needed on Win) $ python setup.py build_ext --inplace</literal_block><paragraph>Using a flag:</paragraph><literal_block force="False" highlight_args="{}" language="console" linenos="False" xml:space="preserve">$ python setup.py build_ext --inplace --blosc=/usr/local</literal_block></section><section ids="generating-sphinx-documentation" names="generating\ sphinx\ documentation"><title>Generating Sphinx documentation</title><paragraph>In case you want to generate the documentation locally, you will need to have the <literal>Sphinx</literal> documentation system, as well as the <literal>numpydoc</literal> extension, installed. Then go down to <literal>doc/</literal> directory and do:</paragraph><literal_block force="False" highlight_args="{}" language="console" linenos="False" xml:space="preserve">$ make html|latex|latexpdf</literal_block></section></section> SphinxTranslator.dispatch_visit calling visit_title for <title>Building manually</title> SphinxTranslator.dispatch_visit calling visit_Text for Building manually SphinxTranslator.dispatch_departure calling depart_Text for Building manually SphinxTranslator.dispatch_departure calling depart_title for <title>Building manually</title> SphinxTranslator.dispatch_visit calling visit_paragraph for <paragraph>First, go to the python-blosc official repository at <reference refuri="https://github.com/Blosc/python-blosc">https://github.com/Blosc/python-blosc</reference> and download the sources.</paragraph> SphinxTranslator.dispatch_visit calling visit_Text for First, go to the python-blosc official repository at SphinxTranslator.dispatch_departure calling depart_Text for First, go to the python-blosc official repository at SphinxTranslator.dispatch_visit calling visit_reference for <reference refuri="https://github.com/Blosc/python-blosc">https://github.com/Blosc/python-blosc</reference> SphinxTranslator.dispatch_visit calling visit_Text for https://github.com/Blosc/python-blosc SphinxTranslator.dispatch_departure calling depart_Text for https://github.com/Blosc/python-blosc SphinxTranslator.dispatch_departure calling depart_reference for <reference refuri="https://github.com/Blosc/python-blosc">https://github.com/Blosc/python-blosc</reference> SphinxTranslator.dispatch_visit calling visit_Text for and download the sources. SphinxTranslator.dispatch_departure calling depart_Text for and download the sources. SphinxTranslator.dispatch_departure calling depart_paragraph for <paragraph>First, go to the python-blosc official repository at <reference refuri="https://github.com/Blosc/python-blosc">https://github.com/Blosc/python-blosc</reference> and download the sources.</paragraph> SphinxTranslator.dispatch_visit calling visit_paragraph for <paragraph>Then, there are different ways to compile python-blosc, depending on whether you want to link with an already installed Blosc library or not.</paragraph> SphinxTranslator.dispatch_visit calling visit_Text for Then, there are different ways to compile python-blosc, depending on whether you want to link with an already installed Blosc library or not. SphinxTranslator.dispatch_departure calling depart_Text for Then, there are different ways to compile python-blosc, depending on whether you want to link with an already installed Blosc library or not. SphinxTranslator.dispatch_departure calling depart_paragraph for <paragraph>Then, there are different ways to compile python-blosc, depending on whether you want to link with an already installed Blosc library or not.</paragraph> SphinxTranslator.dispatch_visit calling visit_section for <section ids="compiling-without-an-installed-blosc-library" names="compiling\ without\ an\ installed\ blosc\ library"><title>Compiling without an installed Blosc library</title><paragraph>python-blosc comes with the Blosc sources with it so, assuming that you have a C compiler installed, do:</paragraph><literal_block force="False" highlight_args="{}" language="console" linenos="False" xml:space="preserve">$ python setup.py build_ext --inplace</literal_block><paragraph>That’s all. You can proceed with testing section now.</paragraph></section> SphinxTranslator.dispatch_visit calling visit_title for <title>Compiling without an installed Blosc library</title> SphinxTranslator.dispatch_visit calling visit_Text for Compiling without an installed Blosc library SphinxTranslator.dispatch_departure calling depart_Text for Compiling without an installed Blosc library SphinxTranslator.dispatch_departure calling depart_title for <title>Compiling without an installed Blosc library</title> SphinxTranslator.dispatch_visit calling visit_paragraph for <paragraph>python-blosc comes with the Blosc sources with it so, assuming that you have a C compiler installed, do:</paragraph> SphinxTranslator.dispatch_visit calling visit_Text for python-blosc comes with the Blosc sources with it so, assuming that you have a C compiler installed, do: SphinxTranslator.dispatch_departure calling depart_Text for python-blosc comes with the Blosc sources with it so, assuming that you have a C compiler installed, do: SphinxTranslator.dispatch_departure calling depart_paragraph for <paragraph>python-blosc comes with the Blosc sources with it so, assuming that you have a C compiler installed, do:</paragraph> SphinxTranslator.dispatch_visit calling visit_literal_block for <literal_block force="False" highlight_args="{}" language="console" linenos="False" xml:space="preserve">$ python setup.py build_ext --inplace</literal_block> SphinxTranslator.dispatch_visit calling visit_paragraph for <paragraph>That’s all. You can proceed with testing section now.</paragraph> SphinxTranslator.dispatch_visit calling visit_Text for That’s all. You can proceed with testing section now. SphinxTranslator.dispatch_departure calling depart_Text for That’s all. You can proceed with testing section now. SphinxTranslator.dispatch_departure calling depart_paragraph for <paragraph>That’s all. You can proceed with testing section now.</paragraph> SphinxTranslator.dispatch_departure calling depart_section for <section ids="compiling-without-an-installed-blosc-library" names="compiling\ without\ an\ installed\ blosc\ library"><title>Compiling without an installed Blosc library</title><paragraph>python-blosc comes with the Blosc sources with it so, assuming that you have a C compiler installed, do:</paragraph><literal_block force="False" highlight_args="{'force': False}" language="console" linenos="False" xml:space="preserve">$ python setup.py build_ext --inplace</literal_block><paragraph>That’s all. You can proceed with testing section now.</paragraph></section> SphinxTranslator.dispatch_visit calling visit_section for <section ids="compiling-with-an-installed-blosc-library" names="compiling\ with\ an\ installed\ blosc\ library"><title>Compiling with an installed Blosc library</title><paragraph>In case you have Blosc installed as an external library (and disregard the included Blosc sources) you can link with it in a couple of ways.</paragraph><paragraph>Using an environment variable:</paragraph><literal_block force="False" highlight_args="{}" language="console" linenos="False" xml:space="preserve">$ BLOSC_DIR=/usr/local (or "set BLOSC_DIR=\blosc" on Win) $ export BLOSC_DIR (not needed on Win) $ python setup.py build_ext --inplace</literal_block><paragraph>Using a flag:</paragraph><literal_block force="False" highlight_args="{}" language="console" linenos="False" xml:space="preserve">$ python setup.py build_ext --inplace --blosc=/usr/local</literal_block></section> SphinxTranslator.dispatch_visit calling visit_title for <title>Compiling with an installed Blosc library</title> SphinxTranslator.dispatch_visit calling visit_Text for Compiling with an installed Blosc library SphinxTranslator.dispatch_departure calling depart_Text for Compiling with an installed Blosc library SphinxTranslator.dispatch_departure calling depart_title for <title>Compiling with an installed Blosc library</title> SphinxTranslator.dispatch_visit calling visit_paragraph for <paragraph>In case you have Blosc installed as an external library (and disregard the included Blosc sources) you can link with it in a couple of ways.</paragraph> SphinxTranslator.dispatch_visit calling visit_Text for In case you have Blosc installed as an external library (and disregard the included Blosc sources) you can link with it in a couple of ways. SphinxTranslator.dispatch_departure calling depart_Text for In case you have Blosc installed as an external library (and disregard the included Blosc sources) you can link with it in a couple of ways. SphinxTranslator.dispatch_departure calling depart_paragraph for <paragraph>In case you have Blosc installed as an external library (and disregard the included Blosc sources) you can link with it in a couple of ways.</paragraph> SphinxTranslator.dispatch_visit calling visit_paragraph for <paragraph>Using an environment variable:</paragraph> SphinxTranslator.dispatch_visit calling visit_Text for Using an environment variable: SphinxTranslator.dispatch_departure calling depart_Text for Using an environment variable: SphinxTranslator.dispatch_departure calling depart_paragraph for <paragraph>Using an environment variable:</paragraph> SphinxTranslator.dispatch_visit calling visit_literal_block for <literal_block force="False" highlight_args="{}" language="console" linenos="False" xml:space="preserve">$ BLOSC_DIR=/usr/local (or "set BLOSC_DIR=\blosc" on Win) $ export BLOSC_DIR (not needed on Win) $ python setup.py build_ext --inplace</literal_block> SphinxTranslator.dispatch_visit calling visit_paragraph for <paragraph>Using a flag:</paragraph> SphinxTranslator.dispatch_visit calling visit_Text for Using a flag: SphinxTranslator.dispatch_departure calling depart_Text for Using a flag: SphinxTranslator.dispatch_departure calling depart_paragraph for <paragraph>Using a flag:</paragraph> SphinxTranslator.dispatch_visit calling visit_literal_block for <literal_block force="False" highlight_args="{}" language="console" linenos="False" xml:space="preserve">$ python setup.py build_ext --inplace --blosc=/usr/local</literal_block> SphinxTranslator.dispatch_departure calling depart_section for <section ids="compiling-with-an-installed-blosc-library" names="compiling\ with\ an\ installed\ blosc\ library"><title>Compiling with an installed Blosc library</title><paragraph>In case you have Blosc installed as an external library (and disregard the included Blosc sources) you can link with it in a couple of ways.</paragraph><paragraph>Using an environment variable:</paragraph><literal_block force="False" highlight_args="{'force': False}" language="console" linenos="False" xml:space="preserve">$ BLOSC_DIR=/usr/local (or "set BLOSC_DIR=\blosc" on Win) $ export BLOSC_DIR (not needed on Win) $ python setup.py build_ext --inplace</literal_block><paragraph>Using a flag:</paragraph><literal_block force="False" highlight_args="{'force': False}" language="console" linenos="False" xml:space="preserve">$ python setup.py build_ext --inplace --blosc=/usr/local</literal_block></section> SphinxTranslator.dispatch_visit calling visit_section for <section ids="generating-sphinx-documentation" names="generating\ sphinx\ documentation"><title>Generating Sphinx documentation</title><paragraph>In case you want to generate the documentation locally, you will need to have the <literal>Sphinx</literal> documentation system, as well as the <literal>numpydoc</literal> extension, installed. Then go down to <literal>doc/</literal> directory and do:</paragraph><literal_block force="False" highlight_args="{}" language="console" linenos="False" xml:space="preserve">$ make html|latex|latexpdf</literal_block></section> SphinxTranslator.dispatch_visit calling visit_title for <title>Generating Sphinx documentation</title> SphinxTranslator.dispatch_visit calling visit_Text for Generating Sphinx documentation SphinxTranslator.dispatch_departure calling depart_Text for Generating Sphinx documentation SphinxTranslator.dispatch_departure calling depart_title for <title>Generating Sphinx documentation</title> SphinxTranslator.dispatch_visit calling visit_paragraph for <paragraph>In case you want to generate the documentation locally, you will need to have the <literal>Sphinx</literal> documentation system, as well as the <literal>numpydoc</literal> extension, installed. Then go down to <literal>doc/</literal> directory and do:</paragraph> SphinxTranslator.dispatch_visit calling visit_Text for In case you want to generate the documentation locally, you will need to have the SphinxTranslator.dispatch_departure calling depart_Text for In case you want to generate the documentation locally, you will need to have the SphinxTranslator.dispatch_visit calling visit_literal for <literal>Sphinx</literal> SphinxTranslator.dispatch_visit calling visit_Text for Sphinx SphinxTranslator.dispatch_departure calling depart_Text for Sphinx SphinxTranslator.dispatch_departure calling depart_literal for <literal>Sphinx</literal> SphinxTranslator.dispatch_visit calling visit_Text for documentation system, as well as the SphinxTranslator.dispatch_departure calling depart_Text for documentation system, as well as the SphinxTranslator.dispatch_visit calling visit_literal for <literal>numpydoc</literal> SphinxTranslator.dispatch_visit calling visit_Text for numpydoc SphinxTranslator.dispatch_departure calling depart_Text for numpydoc SphinxTranslator.dispatch_departure calling depart_literal for <literal>numpydoc</literal> SphinxTranslator.dispatch_visit calling visit_Text for extension, installed. Then go down to SphinxTranslator.dispatch_departure calling depart_Text for extension, installed. Then go down to SphinxTranslator.dispatch_visit calling visit_literal for <literal>doc/</literal> SphinxTranslator.dispatch_visit calling visit_Text for doc/ SphinxTranslator.dispatch_departure calling depart_Text for doc/ SphinxTranslator.dispatch_departure calling depart_literal for <literal>doc/</literal> SphinxTranslator.dispatch_visit calling visit_Text for directory and do: SphinxTranslator.dispatch_departure calling depart_Text for directory and do: SphinxTranslator.dispatch_departure calling depart_paragraph for <paragraph>In case you want to generate the documentation locally, you will need to have the <literal>Sphinx</literal> documentation system, as well as the <literal>numpydoc</literal> extension, installed. Then go down to <literal>doc/</literal> directory and do:</paragraph> SphinxTranslator.dispatch_visit calling visit_literal_block for <literal_block force="False" highlight_args="{}" language="console" linenos="False" xml:space="preserve">$ make html|latex|latexpdf</literal_block> SphinxTranslator.dispatch_departure calling depart_section for <section ids="generating-sphinx-documentation" names="generating\ sphinx\ documentation"><title>Generating Sphinx documentation</title><paragraph>In case you want to generate the documentation locally, you will need to have the <literal>Sphinx</literal> documentation system, as well as the <literal>numpydoc</literal> extension, installed. Then go down to <literal>doc/</literal> directory and do:</paragraph><literal_block force="False" highlight_args="{'force': False}" language="console" linenos="False" xml:space="preserve">$ make html|latex|latexpdf</literal_block></section> SphinxTranslator.dispatch_departure calling depart_section for <section ids="building-manually" names="building\ manually"><title>Building manually</title><paragraph>First, go to the python-blosc official repository at <reference refuri="https://github.com/Blosc/python-blosc">https://github.com/Blosc/python-blosc</reference> and download the sources.</paragraph><paragraph>Then, there are different ways to compile python-blosc, depending on whether you want to link with an already installed Blosc library or not.</paragraph><section ids="compiling-without-an-installed-blosc-library" names="compiling\ without\ an\ installed\ blosc\ library"><title>Compiling without an installed Blosc library</title><paragraph>python-blosc comes with the Blosc sources with it so, assuming that you have a C compiler installed, do:</paragraph><literal_block force="False" highlight_args="{'force': False}" language="console" linenos="False" xml:space="preserve">$ python setup.py build_ext --inplace</literal_block><paragraph>That’s all. You can proceed with testing section now.</paragraph></section><section ids="compiling-with-an-installed-blosc-library" names="compiling\ with\ an\ installed\ blosc\ library"><title>Compiling with an installed Blosc library</title><paragraph>In case you have Blosc installed as an external library (and disregard the included Blosc sources) you can link with it in a couple of ways.</paragraph><paragraph>Using an environment variable:</paragraph><literal_block force="False" highlight_args="{'force': False}" language="console" linenos="False" xml:space="preserve">$ BLOSC_DIR=/usr/local (or "set BLOSC_DIR=\blosc" on Win) $ export BLOSC_DIR (not needed on Win) $ python setup.py build_ext --inplace</literal_block><paragraph>Using a flag:</paragraph><literal_block force="False" highlight_args="{'force': False}" language="console" linenos="False" xml:space="preserve">$ python setup.py build_ext --inplace --blosc=/usr/local</literal_block></section><section ids="generating-sphinx-documentation" names="generating\ sphinx\ documentation"><title>Generating Sphinx documentation</title><paragraph>In case you want to generate the documentation locally, you will need to have the <literal>Sphinx</literal> documentation system, as well as the <literal>numpydoc</literal> extension, installed. Then go down to <literal>doc/</literal> directory and do:</paragraph><literal_block force="False" highlight_args="{'force': False}" language="console" linenos="False" xml:space="preserve">$ make html|latex|latexpdf</literal_block></section></section> SphinxTranslator.dispatch_visit calling visit_section for <section ids="testing" names="testing"><title>Testing</title><paragraph>After compiling, you can quickly check that the package is sane by running the doctests in <literal>blosc/test.py</literal>:</paragraph><literal_block force="False" highlight_args="{}" language="console" linenos="False" xml:space="preserve">$ PYTHONPATH=. (or "set PYTHONPATH=." on Win) $ export PYTHONPATH=. (not needed on Win) $ python blosc/test.py (add -v for verbose mode)</literal_block><paragraph>Or alternatively, you can use the third-party <literal>nosetests</literal> script to run both the doctests and the test suite:</paragraph><literal_block force="False" highlight_args="{}" language="console" linenos="False" xml:space="preserve">$ nosetests --with-doctest (add -v for verbose mode)</literal_block><paragraph>Once installed, you can re-run the tests at any time with:</paragraph><literal_block force="False" highlight_args="{}" language="console" linenos="False" xml:space="preserve">$ python -c "import blosc; blosc.test()"</literal_block></section> SphinxTranslator.dispatch_visit calling visit_title for <title>Testing</title> SphinxTranslator.dispatch_visit calling visit_Text for Testing SphinxTranslator.dispatch_departure calling depart_Text for Testing SphinxTranslator.dispatch_departure calling depart_title for <title>Testing</title> SphinxTranslator.dispatch_visit calling visit_paragraph for <paragraph>After compiling, you can quickly check that the package is sane by running the doctests in <literal>blosc/test.py</literal>:</paragraph> SphinxTranslator.dispatch_visit calling visit_Text for After compiling, you can quickly check that the package is sane by running the doctests in SphinxTranslator.dispatch_departure calling depart_Text for After compiling, you can quickly check that the package is sane by running the doctests in SphinxTranslator.dispatch_visit calling visit_literal for <literal>blosc/test.py</literal> SphinxTranslator.dispatch_visit calling visit_Text for blosc/test.py SphinxTranslator.dispatch_departure calling depart_Text for blosc/test.py SphinxTranslator.dispatch_departure calling depart_literal for <literal>blosc/test.py</literal> SphinxTranslator.dispatch_visit calling visit_Text for : SphinxTranslator.dispatch_departure calling depart_Text for : SphinxTranslator.dispatch_departure calling depart_paragraph for <paragraph>After compiling, you can quickly check that the package is sane by running the doctests in <literal>blosc/test.py</literal>:</paragraph> SphinxTranslator.dispatch_visit calling visit_literal_block for <literal_block force="False" highlight_args="{}" language="console" linenos="False" xml:space="preserve">$ PYTHONPATH=. (or "set PYTHONPATH=." on Win) $ export PYTHONPATH=. (not needed on Win) $ python blosc/test.py (add -v for verbose mode)</literal_block> SphinxTranslator.dispatch_visit calling visit_paragraph for <paragraph>Or alternatively, you can use the third-party <literal>nosetests</literal> script to run both the doctests and the test suite:</paragraph> SphinxTranslator.dispatch_visit calling visit_Text for Or alternatively, you can use the third-party SphinxTranslator.dispatch_departure calling depart_Text for Or alternatively, you can use the third-party SphinxTranslator.dispatch_visit calling visit_literal for <literal>nosetests</literal> SphinxTranslator.dispatch_visit calling visit_Text for nosetests SphinxTranslator.dispatch_departure calling depart_Text for nosetests SphinxTranslator.dispatch_departure calling depart_literal for <literal>nosetests</literal> SphinxTranslator.dispatch_visit calling visit_Text for script to run both the doctests and the test suite: SphinxTranslator.dispatch_departure calling depart_Text for script to run both the doctests and the test suite: SphinxTranslator.dispatch_departure calling depart_paragraph for <paragraph>Or alternatively, you can use the third-party <literal>nosetests</literal> script to run both the doctests and the test suite:</paragraph> SphinxTranslator.dispatch_visit calling visit_literal_block for <literal_block force="False" highlight_args="{}" language="console" linenos="False" xml:space="preserve">$ nosetests --with-doctest (add -v for verbose mode)</literal_block> SphinxTranslator.dispatch_visit calling visit_paragraph for <paragraph>Once installed, you can re-run the tests at any time with:</paragraph> SphinxTranslator.dispatch_visit calling visit_Text for Once installed, you can re-run the tests at any time with: SphinxTranslator.dispatch_departure calling depart_Text for Once installed, you can re-run the tests at any time with: SphinxTranslator.dispatch_departure calling depart_paragraph for <paragraph>Once installed, you can re-run the tests at any time with:</paragraph> SphinxTranslator.dispatch_visit calling visit_literal_block for <literal_block force="False" highlight_args="{}" language="console" linenos="False" xml:space="preserve">$ python -c "import blosc; blosc.test()"</literal_block> SphinxTranslator.dispatch_departure calling depart_section for <section ids="testing" names="testing"><title>Testing</title><paragraph>After compiling, you can quickly check that the package is sane by running the doctests in <literal>blosc/test.py</literal>:</paragraph><literal_block force="False" highlight_args="{'force': False}" language="console" linenos="False" xml:space="preserve">$ PYTHONPATH=. (or "set PYTHONPATH=." on Win) $ export PYTHONPATH=. (not needed on Win) $ python blosc/test.py (add -v for verbose mode)</literal_block><paragraph>Or alternatively, you can use the third-party <literal>nosetests</literal> script to run both the doctests and the test suite:</paragraph><literal_block force="False" highlight_args="{'force': False}" language="console" linenos="False" xml:space="preserve">$ nosetests --with-doctest (add -v for verbose mode)</literal_block><paragraph>Once installed, you can re-run the tests at any time with:</paragraph><literal_block force="False" highlight_args="{'force': False}" language="console" linenos="False" xml:space="preserve">$ python -c "import blosc; blosc.test()"</literal_block></section> SphinxTranslator.dispatch_visit calling visit_section for <section ids="installing" names="installing"><title>Installing</title><paragraph>Install it as a typical Python package:</paragraph><literal_block force="False" highlight_args="{}" language="console" linenos="False" xml:space="preserve">$ python setup.py install</literal_block></section> SphinxTranslator.dispatch_visit calling visit_title for <title>Installing</title> SphinxTranslator.dispatch_visit calling visit_Text for Installing SphinxTranslator.dispatch_departure calling depart_Text for Installing SphinxTranslator.dispatch_departure calling depart_title for <title>Installing</title> SphinxTranslator.dispatch_visit calling visit_paragraph for <paragraph>Install it as a typical Python package:</paragraph> SphinxTranslator.dispatch_visit calling visit_Text for Install it as a typical Python package: SphinxTranslator.dispatch_departure calling depart_Text for Install it as a typical Python package: SphinxTranslator.dispatch_departure calling depart_paragraph for <paragraph>Install it as a typical Python package:</paragraph> SphinxTranslator.dispatch_visit calling visit_literal_block for <literal_block force="False" highlight_args="{}" language="console" linenos="False" xml:space="preserve">$ python setup.py install</literal_block> SphinxTranslator.dispatch_departure calling depart_section for <section ids="installing" names="installing"><title>Installing</title><paragraph>Install it as a typical Python package:</paragraph><literal_block force="False" highlight_args="{'force': False}" language="console" linenos="False" xml:space="preserve">$ python setup.py install</literal_block></section> SphinxTranslator.dispatch_departure calling depart_section for <section ids="installation" names="installation"><title>Installation</title><paragraph>python-blosc comes with C Blosc sources, so it does not depend on any other library (bar Python itself of course). Of course, if you are going to install from sources, you are going to need a C compiler (GCC, clang and MSVC 2008/2010/2012/2015 have been tested).</paragraph><paragraph>Also, there are situations where you may want to link with an already existing Blosc library in your system. You can do that too.</paragraph><paragraph>This package supports Python 2.6, 2.7 and 3.3 or higher versions.</paragraph><section ids="installing-from-pypi-repository" names="installing\ from\ pypi\ repository"><title>Installing from PyPI repository</title><paragraph>Do:</paragraph><literal_block force="False" highlight_args="{'force': False}" language="console" linenos="False" xml:space="preserve">$ pip install -U blosc</literal_block></section><section ids="building-manually" names="building\ manually"><title>Building manually</title><paragraph>First, go to the python-blosc official repository at <reference refuri="https://github.com/Blosc/python-blosc">https://github.com/Blosc/python-blosc</reference> and download the sources.</paragraph><paragraph>Then, there are different ways to compile python-blosc, depending on whether you want to link with an already installed Blosc library or not.</paragraph><section ids="compiling-without-an-installed-blosc-library" names="compiling\ without\ an\ installed\ blosc\ library"><title>Compiling without an installed Blosc library</title><paragraph>python-blosc comes with the Blosc sources with it so, assuming that you have a C compiler installed, do:</paragraph><literal_block force="False" highlight_args="{'force': False}" language="console" linenos="False" xml:space="preserve">$ python setup.py build_ext --inplace</literal_block><paragraph>That’s all. You can proceed with testing section now.</paragraph></section><section ids="compiling-with-an-installed-blosc-library" names="compiling\ with\ an\ installed\ blosc\ library"><title>Compiling with an installed Blosc library</title><paragraph>In case you have Blosc installed as an external library (and disregard the included Blosc sources) you can link with it in a couple of ways.</paragraph><paragraph>Using an environment variable:</paragraph><literal_block force="False" highlight_args="{'force': False}" language="console" linenos="False" xml:space="preserve">$ BLOSC_DIR=/usr/local (or "set BLOSC_DIR=\blosc" on Win) $ export BLOSC_DIR (not needed on Win) $ python setup.py build_ext --inplace</literal_block><paragraph>Using a flag:</paragraph><literal_block force="False" highlight_args="{'force': False}" language="console" linenos="False" xml:space="preserve">$ python setup.py build_ext --inplace --blosc=/usr/local</literal_block></section><section ids="generating-sphinx-documentation" names="generating\ sphinx\ documentation"><title>Generating Sphinx documentation</title><paragraph>In case you want to generate the documentation locally, you will need to have the <literal>Sphinx</literal> documentation system, as well as the <literal>numpydoc</literal> extension, installed. Then go down to <literal>doc/</literal> directory and do:</paragraph><literal_block force="False" highlight_args="{'force': False}" language="console" linenos="False" xml:space="preserve">$ make html|latex|latexpdf</literal_block></section></section><section ids="testing" names="testing"><title>Testing</title><paragraph>After compiling, you can quickly check that the package is sane by running the doctests in <literal>blosc/test.py</literal>:</paragraph><literal_block force="False" highlight_args="{'force': False}" language="console" linenos="False" xml:space="preserve">$ PYTHONPATH=. (or "set PYTHONPATH=." on Win) $ export PYTHONPATH=. (not needed on Win) $ python blosc/test.py (add -v for verbose mode)</literal_block><paragraph>Or alternatively, you can use the third-party <literal>nosetests</literal> script to run both the doctests and the test suite:</paragraph><literal_block force="False" highlight_args="{'force': False}" language="console" linenos="False" xml:space="preserve">$ nosetests --with-doctest (add -v for verbose mode)</literal_block><paragraph>Once installed, you can re-run the tests at any time with:</paragraph><literal_block force="False" highlight_args="{'force': False}" language="console" linenos="False" xml:space="preserve">$ python -c "import blosc; blosc.test()"</literal_block></section><section ids="installing" names="installing"><title>Installing</title><paragraph>Install it as a typical Python package:</paragraph><literal_block force="False" highlight_args="{'force': False}" language="console" linenos="False" xml:space="preserve">$ python setup.py install</literal_block></section></section> SphinxTranslator.dispatch_departure calling depart_document for <document source="/usr/src/RPM/BUILD/python3-module-blosc-1.5.1/doc/install.rst"><section ids="installation" names="installation"><title>Installation</title><paragraph>python-blosc comes with C Blosc sources, so it does not depend on any other library (bar Python itself of course). Of course, if you are going to install from sources, you are going to need a C compiler (GCC, clang and MSVC 2008/2010/2012/2015 have been tested).</paragraph><paragraph>Also, there are situations where you may want to link with an already existing Blosc library in your system. You can do that too.</paragraph><paragraph>This package supports Python 2.6, 2.7 and 3.3 or higher versions.</paragraph><section ids="installing-from-pypi-repository" names="installing\ from\ pypi\ repository"><title>Installing from PyPI repository</title><paragraph>Do:</paragraph><literal_block force="False" highlight_args="{'force': False}" language="console" linenos="False" xml:space="preserve">$ pip install -U blosc</literal_block></section><section ids="building-manually" names="building\ manually"><title>Building manually</title><paragraph>First, go to the python-blosc official repository at <reference refuri="https://github.com/Blosc/python-blosc">https://github.com/Blosc/python-blosc</reference> and download the sources.</paragraph><paragraph>Then, there are different ways to compile python-blosc, depending on whether you want to link with an already installed Blosc library or not.</paragraph><section ids="compiling-without-an-installed-blosc-library" names="compiling\ without\ an\ installed\ blosc\ library"><title>Compiling without an installed Blosc library</title><paragraph>python-blosc comes with the Blosc sources with it so, assuming that you have a C compiler installed, do:</paragraph><literal_block force="False" highlight_args="{'force': False}" language="console" linenos="False" xml:space="preserve">$ python setup.py build_ext --inplace</literal_block><paragraph>That’s all. You can proceed with testing section now.</paragraph></section><section ids="compiling-with-an-installed-blosc-library" names="compiling\ with\ an\ installed\ blosc\ library"><title>Compiling with an installed Blosc library</title><paragraph>In case you have Blosc installed as an external library (and disregard the included Blosc sources) you can link with it in a couple of ways.</paragraph><paragraph>Using an environment variable:</paragraph><literal_block force="False" highlight_args="{'force': False}" language="console" linenos="False" xml:space="preserve">$ BLOSC_DIR=/usr/local (or "set BLOSC_DIR=\blosc" on Win) $ export BLOSC_DIR (not needed on Win) $ python setup.py build_ext --inplace</literal_block><paragraph>Using a flag:</paragraph><literal_block force="False" highlight_args="{'force': False}" language="console" linenos="False" xml:space="preserve">$ python setup.py build_ext --inplace --blosc=/usr/local</literal_block></section><section ids="generating-sphinx-documentation" names="generating\ sphinx\ documentation"><title>Generating Sphinx documentation</title><paragraph>In case you want to generate the documentation locally, you will need to have the <literal>Sphinx</literal> documentation system, as well as the <literal>numpydoc</literal> extension, installed. Then go down to <literal>doc/</literal> directory and do:</paragraph><literal_block force="False" highlight_args="{'force': False}" language="console" linenos="False" xml:space="preserve">$ make html|latex|latexpdf</literal_block></section></section><section ids="testing" names="testing"><title>Testing</title><paragraph>After compiling, you can quickly check that the package is sane by running the doctests in <literal>blosc/test.py</literal>:</paragraph><literal_block force="False" highlight_args="{'force': False}" language="console" linenos="False" xml:space="preserve">$ PYTHONPATH=. (or "set PYTHONPATH=." on Win) $ export PYTHONPATH=. (not needed on Win) $ python blosc/test.py (add -v for verbose mode)</literal_block><paragraph>Or alternatively, you can use the third-party <literal>nosetests</literal> script to run both the doctests and the test suite:</paragraph><literal_block force="False" highlight_args="{'force': False}" language="console" linenos="False" xml:space="preserve">$ nosetests --with-doctest (add -v for verbose mode)</literal_block><paragraph>Once installed, you can re-run the tests at any time with:</paragraph><literal_block force="False" highlight_args="{'force': False}" language="console" linenos="False" xml:space="preserve">$ python -c "import blosc; blosc.test()"</literal_block></section><section ids="installing" names="installing"><title>Installing</title><paragraph>Install it as a typical Python package:</paragraph><literal_block force="False" highlight_args="{'force': False}" language="console" linenos="False" xml:space="preserve">$ python setup.py install</literal_block></section></section></document> SphinxTranslator.dispatch_visit calling visit_document for <document source="<partial node>"><title>Tutorials</title></document> SphinxTranslator.dispatch_visit calling visit_title for <title>Tutorials</title> SphinxTranslator.dispatch_visit calling visit_Text for Tutorials SphinxTranslator.dispatch_departure calling depart_Text for Tutorials SphinxTranslator.dispatch_departure calling depart_title for <title>Tutorials</title> SphinxTranslator.dispatch_departure calling depart_document for <document source="<partial node>"><title>Tutorials</title></document> SphinxTranslator.dispatch_visit calling visit_document for <document source="<partial node>"><title>Introduction</title></document> SphinxTranslator.dispatch_visit calling visit_title for <title>Introduction</title> SphinxTranslator.dispatch_visit calling visit_Text for Introduction SphinxTranslator.dispatch_departure calling depart_Text for Introduction SphinxTranslator.dispatch_departure calling depart_title for <title>Introduction</title> SphinxTranslator.dispatch_departure calling depart_document for <document source="<partial node>"><title>Introduction</title></document> SphinxTranslator.dispatch_visit calling visit_document for <document source="<partial node>"><title>Welcome to python-blosc’s documentation!</title></document> SphinxTranslator.dispatch_visit calling visit_title for <title>Welcome to python-blosc’s documentation!</title> SphinxTranslator.dispatch_visit calling visit_Text for Welcome to python-blosc’s documentation! SphinxTranslator.dispatch_departure calling depart_Text for Welcome to python-blosc’s documentation! SphinxTranslator.dispatch_departure calling depart_title for <title>Welcome to python-blosc’s documentation!</title> SphinxTranslator.dispatch_departure calling depart_document for <document source="<partial node>"><title>Welcome to python-blosc’s documentation!</title></document> SphinxTranslator.dispatch_visit calling visit_document for <document source="<partial node>"><title>Installation</title></document> SphinxTranslator.dispatch_visit calling visit_title for <title>Installation</title> SphinxTranslator.dispatch_visit calling visit_Text for Installation SphinxTranslator.dispatch_departure calling depart_Text for Installation SphinxTranslator.dispatch_departure calling depart_title for <title>Installation</title> SphinxTranslator.dispatch_departure calling depart_document for <document source="<partial node>"><title>Installation</title></document> SphinxTranslator.dispatch_visit calling visit_document for <document source="<partial node>"><bullet_list><list_item><compact_paragraph><reference anchorname="" internal="True" refuri="#">Installation</reference></compact_paragraph><bullet_list><list_item><compact_paragraph><reference anchorname="#installing-from-pypi-repository" internal="True" refuri="#installing-from-pypi-repository">Installing from PyPI repository</reference></compact_paragraph></list_item><list_item><compact_paragraph><reference anchorname="#building-manually" internal="True" refuri="#building-manually">Building manually</reference></compact_paragraph><bullet_list><list_item><compact_paragraph><reference anchorname="#compiling-without-an-installed-blosc-library" internal="True" refuri="#compiling-without-an-installed-blosc-library">Compiling without an installed Blosc library</reference></compact_paragraph></list_item><list_item><compact_paragraph><reference anchorname="#compiling-with-an-installed-blosc-library" internal="True" refuri="#compiling-with-an-installed-blosc-library">Compiling with an installed Blosc library</reference></compact_paragraph></list_item><list_item><compact_paragraph><reference anchorname="#generating-sphinx-documentation" internal="True" refuri="#generating-sphinx-documentation">Generating Sphinx documentation</reference></compact_paragraph></list_item></bullet_list></list_item><list_item><compact_paragraph><reference anchorname="#testing" internal="True" refuri="#testing">Testing</reference></compact_paragraph></list_item><list_item><compact_paragraph><reference anchorname="#installing" internal="True" refuri="#installing">Installing</reference></compact_paragraph></list_item></bullet_list></list_item></bullet_list></document> SphinxTranslator.dispatch_visit calling visit_bullet_list for <bullet_list><list_item><compact_paragraph><reference anchorname="" internal="True" refuri="#">Installation</reference></compact_paragraph><bullet_list><list_item><compact_paragraph><reference anchorname="#installing-from-pypi-repository" internal="True" refuri="#installing-from-pypi-repository">Installing from PyPI repository</reference></compact_paragraph></list_item><list_item><compact_paragraph><reference anchorname="#building-manually" internal="True" refuri="#building-manually">Building manually</reference></compact_paragraph><bullet_list><list_item><compact_paragraph><reference anchorname="#compiling-without-an-installed-blosc-library" internal="True" refuri="#compiling-without-an-installed-blosc-library">Compiling without an installed Blosc library</reference></compact_paragraph></list_item><list_item><compact_paragraph><reference anchorname="#compiling-with-an-installed-blosc-library" internal="True" refuri="#compiling-with-an-installed-blosc-library">Compiling with an installed Blosc library</reference></compact_paragraph></list_item><list_item><compact_paragraph><reference anchorname="#generating-sphinx-documentation" internal="True" refuri="#generating-sphinx-documentation">Generating Sphinx documentation</reference></compact_paragraph></list_item></bullet_list></list_item><list_item><compact_paragraph><reference anchorname="#testing" internal="True" refuri="#testing">Testing</reference></compact_paragraph></list_item><list_item><compact_paragraph><reference anchorname="#installing" internal="True" refuri="#installing">Installing</reference></compact_paragraph></list_item></bullet_list></list_item></bullet_list> SphinxTranslator.dispatch_visit calling visit_list_item for <list_item><compact_paragraph><reference anchorname="" internal="True" refuri="#">Installation</reference></compact_paragraph><bullet_list><list_item><compact_paragraph><reference anchorname="#installing-from-pypi-repository" internal="True" refuri="#installing-from-pypi-repository">Installing from PyPI repository</reference></compact_paragraph></list_item><list_item><compact_paragraph><reference anchorname="#building-manually" internal="True" refuri="#building-manually">Building manually</reference></compact_paragraph><bullet_list><list_item><compact_paragraph><reference anchorname="#compiling-without-an-installed-blosc-library" internal="True" refuri="#compiling-without-an-installed-blosc-library">Compiling without an installed Blosc library</reference></compact_paragraph></list_item><list_item><compact_paragraph><reference anchorname="#compiling-with-an-installed-blosc-library" internal="True" refuri="#compiling-with-an-installed-blosc-library">Compiling with an installed Blosc library</reference></compact_paragraph></list_item><list_item><compact_paragraph><reference anchorname="#generating-sphinx-documentation" internal="True" refuri="#generating-sphinx-documentation">Generating Sphinx documentation</reference></compact_paragraph></list_item></bullet_list></list_item><list_item><compact_paragraph><reference anchorname="#testing" internal="True" refuri="#testing">Testing</reference></compact_paragraph></list_item><list_item><compact_paragraph><reference anchorname="#installing" internal="True" refuri="#installing">Installing</reference></compact_paragraph></list_item></bullet_list></list_item> SphinxTranslator.dispatch_visit calling visit_compact_paragraph for <compact_paragraph><reference anchorname="" internal="True" refuri="#">Installation</reference></compact_paragraph> SphinxTranslator.dispatch_visit calling visit_reference for <reference anchorname="" internal="True" refuri="#">Installation</reference> SphinxTranslator.dispatch_visit calling visit_Text for Installation SphinxTranslator.dispatch_departure calling depart_Text for Installation SphinxTranslator.dispatch_departure calling depart_reference for <reference anchorname="" internal="True" refuri="#">Installation</reference> SphinxTranslator.dispatch_departure calling depart_compact_paragraph for <compact_paragraph><reference anchorname="" internal="True" refuri="#">Installation</reference></compact_paragraph> SphinxTranslator.dispatch_visit calling visit_bullet_list for <bullet_list><list_item><compact_paragraph><reference anchorname="#installing-from-pypi-repository" internal="True" refuri="#installing-from-pypi-repository">Installing from PyPI repository</reference></compact_paragraph></list_item><list_item><compact_paragraph><reference anchorname="#building-manually" internal="True" refuri="#building-manually">Building manually</reference></compact_paragraph><bullet_list><list_item><compact_paragraph><reference anchorname="#compiling-without-an-installed-blosc-library" internal="True" refuri="#compiling-without-an-installed-blosc-library">Compiling without an installed Blosc library</reference></compact_paragraph></list_item><list_item><compact_paragraph><reference anchorname="#compiling-with-an-installed-blosc-library" internal="True" refuri="#compiling-with-an-installed-blosc-library">Compiling with an installed Blosc library</reference></compact_paragraph></list_item><list_item><compact_paragraph><reference anchorname="#generating-sphinx-documentation" internal="True" refuri="#generating-sphinx-documentation">Generating Sphinx documentation</reference></compact_paragraph></list_item></bullet_list></list_item><list_item><compact_paragraph><reference anchorname="#testing" internal="True" refuri="#testing">Testing</reference></compact_paragraph></list_item><list_item><compact_paragraph><reference anchorname="#installing" internal="True" refuri="#installing">Installing</reference></compact_paragraph></list_item></bullet_list> SphinxTranslator.dispatch_visit calling visit_list_item for <list_item><compact_paragraph><reference anchorname="#installing-from-pypi-repository" internal="True" refuri="#installing-from-pypi-repository">Installing from PyPI repository</reference></compact_paragraph></list_item> SphinxTranslator.dispatch_visit calling visit_compact_paragraph for <compact_paragraph><reference anchorname="#installing-from-pypi-repository" internal="True" refuri="#installing-from-pypi-repository">Installing from PyPI repository</reference></compact_paragraph> SphinxTranslator.dispatch_visit calling visit_reference for <reference anchorname="#installing-from-pypi-repository" internal="True" refuri="#installing-from-pypi-repository">Installing from PyPI repository</reference> SphinxTranslator.dispatch_visit calling visit_Text for Installing from PyPI repository SphinxTranslator.dispatch_departure calling depart_Text for Installing from PyPI repository SphinxTranslator.dispatch_departure calling depart_reference for <reference anchorname="#installing-from-pypi-repository" internal="True" refuri="#installing-from-pypi-repository">Installing from PyPI repository</reference> SphinxTranslator.dispatch_departure calling depart_compact_paragraph for <compact_paragraph><reference anchorname="#installing-from-pypi-repository" internal="True" refuri="#installing-from-pypi-repository">Installing from PyPI repository</reference></compact_paragraph> SphinxTranslator.dispatch_departure calling depart_list_item for <list_item><compact_paragraph><reference anchorname="#installing-from-pypi-repository" internal="True" refuri="#installing-from-pypi-repository">Installing from PyPI repository</reference></compact_paragraph></list_item> SphinxTranslator.dispatch_visit calling visit_list_item for <list_item><compact_paragraph><reference anchorname="#building-manually" internal="True" refuri="#building-manually">Building manually</reference></compact_paragraph><bullet_list><list_item><compact_paragraph><reference anchorname="#compiling-without-an-installed-blosc-library" internal="True" refuri="#compiling-without-an-installed-blosc-library">Compiling without an installed Blosc library</reference></compact_paragraph></list_item><list_item><compact_paragraph><reference anchorname="#compiling-with-an-installed-blosc-library" internal="True" refuri="#compiling-with-an-installed-blosc-library">Compiling with an installed Blosc library</reference></compact_paragraph></list_item><list_item><compact_paragraph><reference anchorname="#generating-sphinx-documentation" internal="True" refuri="#generating-sphinx-documentation">Generating Sphinx documentation</reference></compact_paragraph></list_item></bullet_list></list_item> SphinxTranslator.dispatch_visit calling visit_compact_paragraph for <compact_paragraph><reference anchorname="#building-manually" internal="True" refuri="#building-manually">Building manually</reference></compact_paragraph> SphinxTranslator.dispatch_visit calling visit_reference for <reference anchorname="#building-manually" internal="True" refuri="#building-manually">Building manually</reference> SphinxTranslator.dispatch_visit calling visit_Text for Building manually SphinxTranslator.dispatch_departure calling depart_Text for Building manually SphinxTranslator.dispatch_departure calling depart_reference for <reference anchorname="#building-manually" internal="True" refuri="#building-manually">Building manually</reference> SphinxTranslator.dispatch_departure calling depart_compact_paragraph for <compact_paragraph><reference anchorname="#building-manually" internal="True" refuri="#building-manually">Building manually</reference></compact_paragraph> SphinxTranslator.dispatch_visit calling visit_bullet_list for <bullet_list><list_item><compact_paragraph><reference anchorname="#compiling-without-an-installed-blosc-library" internal="True" refuri="#compiling-without-an-installed-blosc-library">Compiling without an installed Blosc library</reference></compact_paragraph></list_item><list_item><compact_paragraph><reference anchorname="#compiling-with-an-installed-blosc-library" internal="True" refuri="#compiling-with-an-installed-blosc-library">Compiling with an installed Blosc library</reference></compact_paragraph></list_item><list_item><compact_paragraph><reference anchorname="#generating-sphinx-documentation" internal="True" refuri="#generating-sphinx-documentation">Generating Sphinx documentation</reference></compact_paragraph></list_item></bullet_list> SphinxTranslator.dispatch_visit calling visit_list_item for <list_item><compact_paragraph><reference anchorname="#compiling-without-an-installed-blosc-library" internal="True" refuri="#compiling-without-an-installed-blosc-library">Compiling without an installed Blosc library</reference></compact_paragraph></list_item> SphinxTranslator.dispatch_visit calling visit_compact_paragraph for <compact_paragraph><reference anchorname="#compiling-without-an-installed-blosc-library" internal="True" refuri="#compiling-without-an-installed-blosc-library">Compiling without an installed Blosc library</reference></compact_paragraph> SphinxTranslator.dispatch_visit calling visit_reference for <reference anchorname="#compiling-without-an-installed-blosc-library" internal="True" refuri="#compiling-without-an-installed-blosc-library">Compiling without an installed Blosc library</reference> SphinxTranslator.dispatch_visit calling visit_Text for Compiling without an installed Blosc library SphinxTranslator.dispatch_departure calling depart_Text for Compiling without an installed Blosc library SphinxTranslator.dispatch_departure calling depart_reference for <reference anchorname="#compiling-without-an-installed-blosc-library" internal="True" refuri="#compiling-without-an-installed-blosc-library">Compiling without an installed Blosc library</reference> SphinxTranslator.dispatch_departure calling depart_compact_paragraph for <compact_paragraph><reference anchorname="#compiling-without-an-installed-blosc-library" internal="True" refuri="#compiling-without-an-installed-blosc-library">Compiling without an installed Blosc library</reference></compact_paragraph> SphinxTranslator.dispatch_departure calling depart_list_item for <list_item><compact_paragraph><reference anchorname="#compiling-without-an-installed-blosc-library" internal="True" refuri="#compiling-without-an-installed-blosc-library">Compiling without an installed Blosc library</reference></compact_paragraph></list_item> SphinxTranslator.dispatch_visit calling visit_list_item for <list_item><compact_paragraph><reference anchorname="#compiling-with-an-installed-blosc-library" internal="True" refuri="#compiling-with-an-installed-blosc-library">Compiling with an installed Blosc library</reference></compact_paragraph></list_item> SphinxTranslator.dispatch_visit calling visit_compact_paragraph for <compact_paragraph><reference anchorname="#compiling-with-an-installed-blosc-library" internal="True" refuri="#compiling-with-an-installed-blosc-library">Compiling with an installed Blosc library</reference></compact_paragraph> SphinxTranslator.dispatch_visit calling visit_reference for <reference anchorname="#compiling-with-an-installed-blosc-library" internal="True" refuri="#compiling-with-an-installed-blosc-library">Compiling with an installed Blosc library</reference> SphinxTranslator.dispatch_visit calling visit_Text for Compiling with an installed Blosc library SphinxTranslator.dispatch_departure calling depart_Text for Compiling with an installed Blosc library SphinxTranslator.dispatch_departure calling depart_reference for <reference anchorname="#compiling-with-an-installed-blosc-library" internal="True" refuri="#compiling-with-an-installed-blosc-library">Compiling with an installed Blosc library</reference> SphinxTranslator.dispatch_departure calling depart_compact_paragraph for <compact_paragraph><reference anchorname="#compiling-with-an-installed-blosc-library" internal="True" refuri="#compiling-with-an-installed-blosc-library">Compiling with an installed Blosc library</reference></compact_paragraph> SphinxTranslator.dispatch_departure calling depart_list_item for <list_item><compact_paragraph><reference anchorname="#compiling-with-an-installed-blosc-library" internal="True" refuri="#compiling-with-an-installed-blosc-library">Compiling with an installed Blosc library</reference></compact_paragraph></list_item> SphinxTranslator.dispatch_visit calling visit_list_item for <list_item><compact_paragraph><reference anchorname="#generating-sphinx-documentation" internal="True" refuri="#generating-sphinx-documentation">Generating Sphinx documentation</reference></compact_paragraph></list_item> SphinxTranslator.dispatch_visit calling visit_compact_paragraph for <compact_paragraph><reference anchorname="#generating-sphinx-documentation" internal="True" refuri="#generating-sphinx-documentation">Generating Sphinx documentation</reference></compact_paragraph> SphinxTranslator.dispatch_visit calling visit_reference for <reference anchorname="#generating-sphinx-documentation" internal="True" refuri="#generating-sphinx-documentation">Generating Sphinx documentation</reference> SphinxTranslator.dispatch_visit calling visit_Text for Generating Sphinx documentation SphinxTranslator.dispatch_departure calling depart_Text for Generating Sphinx documentation SphinxTranslator.dispatch_departure calling depart_reference for <reference anchorname="#generating-sphinx-documentation" internal="True" refuri="#generating-sphinx-documentation">Generating Sphinx documentation</reference> SphinxTranslator.dispatch_departure calling depart_compact_paragraph for <compact_paragraph><reference anchorname="#generating-sphinx-documentation" internal="True" refuri="#generating-sphinx-documentation">Generating Sphinx documentation</reference></compact_paragraph> SphinxTranslator.dispatch_departure calling depart_list_item for <list_item><compact_paragraph><reference anchorname="#generating-sphinx-documentation" internal="True" refuri="#generating-sphinx-documentation">Generating Sphinx documentation</reference></compact_paragraph></list_item> SphinxTranslator.dispatch_departure calling depart_bullet_list for <bullet_list><list_item><compact_paragraph><reference anchorname="#compiling-without-an-installed-blosc-library" internal="True" refuri="#compiling-without-an-installed-blosc-library">Compiling without an installed Blosc library</reference></compact_paragraph></list_item><list_item><compact_paragraph><reference anchorname="#compiling-with-an-installed-blosc-library" internal="True" refuri="#compiling-with-an-installed-blosc-library">Compiling with an installed Blosc library</reference></compact_paragraph></list_item><list_item><compact_paragraph><reference anchorname="#generating-sphinx-documentation" internal="True" refuri="#generating-sphinx-documentation">Generating Sphinx documentation</reference></compact_paragraph></list_item></bullet_list> SphinxTranslator.dispatch_departure calling depart_list_item for <list_item><compact_paragraph><reference anchorname="#building-manually" internal="True" refuri="#building-manually">Building manually</reference></compact_paragraph><bullet_list><list_item><compact_paragraph><reference anchorname="#compiling-without-an-installed-blosc-library" internal="True" refuri="#compiling-without-an-installed-blosc-library">Compiling without an installed Blosc library</reference></compact_paragraph></list_item><list_item><compact_paragraph><reference anchorname="#compiling-with-an-installed-blosc-library" internal="True" refuri="#compiling-with-an-installed-blosc-library">Compiling with an installed Blosc library</reference></compact_paragraph></list_item><list_item><compact_paragraph><reference anchorname="#generating-sphinx-documentation" internal="True" refuri="#generating-sphinx-documentation">Generating Sphinx documentation</reference></compact_paragraph></list_item></bullet_list></list_item> SphinxTranslator.dispatch_visit calling visit_list_item for <list_item><compact_paragraph><reference anchorname="#testing" internal="True" refuri="#testing">Testing</reference></compact_paragraph></list_item> SphinxTranslator.dispatch_visit calling visit_compact_paragraph for <compact_paragraph><reference anchorname="#testing" internal="True" refuri="#testing">Testing</reference></compact_paragraph> SphinxTranslator.dispatch_visit calling visit_reference for <reference anchorname="#testing" internal="True" refuri="#testing">Testing</reference> SphinxTranslator.dispatch_visit calling visit_Text for Testing SphinxTranslator.dispatch_departure calling depart_Text for Testing SphinxTranslator.dispatch_departure calling depart_reference for <reference anchorname="#testing" internal="True" refuri="#testing">Testing</reference> SphinxTranslator.dispatch_departure calling depart_compact_paragraph for <compact_paragraph><reference anchorname="#testing" internal="True" refuri="#testing">Testing</reference></compact_paragraph> SphinxTranslator.dispatch_departure calling depart_list_item for <list_item><compact_paragraph><reference anchorname="#testing" internal="True" refuri="#testing">Testing</reference></compact_paragraph></list_item> SphinxTranslator.dispatch_visit calling visit_list_item for <list_item><compact_paragraph><reference anchorname="#installing" internal="True" refuri="#installing">Installing</reference></compact_paragraph></list_item> SphinxTranslator.dispatch_visit calling visit_compact_paragraph for <compact_paragraph><reference anchorname="#installing" internal="True" refuri="#installing">Installing</reference></compact_paragraph> SphinxTranslator.dispatch_visit calling visit_reference for <reference anchorname="#installing" internal="True" refuri="#installing">Installing</reference> SphinxTranslator.dispatch_visit calling visit_Text for Installing SphinxTranslator.dispatch_departure calling depart_Text for Installing SphinxTranslator.dispatch_departure calling depart_reference for <reference anchorname="#installing" internal="True" refuri="#installing">Installing</reference> SphinxTranslator.dispatch_departure calling depart_compact_paragraph for <compact_paragraph><reference anchorname="#installing" internal="True" refuri="#installing">Installing</reference></compact_paragraph> SphinxTranslator.dispatch_departure calling depart_list_item for <list_item><compact_paragraph><reference anchorname="#installing" internal="True" refuri="#installing">Installing</reference></compact_paragraph></list_item> SphinxTranslator.dispatch_departure calling depart_bullet_list for <bullet_list><list_item><compact_paragraph><reference anchorname="#installing-from-pypi-repository" internal="True" refuri="#installing-from-pypi-repository">Installing from PyPI repository</reference></compact_paragraph></list_item><list_item><compact_paragraph><reference anchorname="#building-manually" internal="True" refuri="#building-manually">Building manually</reference></compact_paragraph><bullet_list><list_item><compact_paragraph><reference anchorname="#compiling-without-an-installed-blosc-library" internal="True" refuri="#compiling-without-an-installed-blosc-library">Compiling without an installed Blosc library</reference></compact_paragraph></list_item><list_item><compact_paragraph><reference anchorname="#compiling-with-an-installed-blosc-library" internal="True" refuri="#compiling-with-an-installed-blosc-library">Compiling with an installed Blosc library</reference></compact_paragraph></list_item><list_item><compact_paragraph><reference anchorname="#generating-sphinx-documentation" internal="True" refuri="#generating-sphinx-documentation">Generating Sphinx documentation</reference></compact_paragraph></list_item></bullet_list></list_item><list_item><compact_paragraph><reference anchorname="#testing" internal="True" refuri="#testing">Testing</reference></compact_paragraph></list_item><list_item><compact_paragraph><reference anchorname="#installing" internal="True" refuri="#installing">Installing</reference></compact_paragraph></list_item></bullet_list> SphinxTranslator.dispatch_departure calling depart_list_item for <list_item><compact_paragraph><reference anchorname="" internal="True" refuri="#">Installation</reference></compact_paragraph><bullet_list><list_item><compact_paragraph><reference anchorname="#installing-from-pypi-repository" internal="True" refuri="#installing-from-pypi-repository">Installing from PyPI repository</reference></compact_paragraph></list_item><list_item><compact_paragraph><reference anchorname="#building-manually" internal="True" refuri="#building-manually">Building manually</reference></compact_paragraph><bullet_list><list_item><compact_paragraph><reference anchorname="#compiling-without-an-installed-blosc-library" internal="True" refuri="#compiling-without-an-installed-blosc-library">Compiling without an installed Blosc library</reference></compact_paragraph></list_item><list_item><compact_paragraph><reference anchorname="#compiling-with-an-installed-blosc-library" internal="True" refuri="#compiling-with-an-installed-blosc-library">Compiling with an installed Blosc library</reference></compact_paragraph></list_item><list_item><compact_paragraph><reference anchorname="#generating-sphinx-documentation" internal="True" refuri="#generating-sphinx-documentation">Generating Sphinx documentation</reference></compact_paragraph></list_item></bullet_list></list_item><list_item><compact_paragraph><reference anchorname="#testing" internal="True" refuri="#testing">Testing</reference></compact_paragraph></list_item><list_item><compact_paragraph><reference anchorname="#installing" internal="True" refuri="#installing">Installing</reference></compact_paragraph></list_item></bullet_list></list_item> SphinxTranslator.dispatch_departure calling depart_bullet_list for <bullet_list><list_item><compact_paragraph><reference anchorname="" internal="True" refuri="#">Installation</reference></compact_paragraph><bullet_list><list_item><compact_paragraph><reference anchorname="#installing-from-pypi-repository" internal="True" refuri="#installing-from-pypi-repository">Installing from PyPI repository</reference></compact_paragraph></list_item><list_item><compact_paragraph><reference anchorname="#building-manually" internal="True" refuri="#building-manually">Building manually</reference></compact_paragraph><bullet_list><list_item><compact_paragraph><reference anchorname="#compiling-without-an-installed-blosc-library" internal="True" refuri="#compiling-without-an-installed-blosc-library">Compiling without an installed Blosc library</reference></compact_paragraph></list_item><list_item><compact_paragraph><reference anchorname="#compiling-with-an-installed-blosc-library" internal="True" refuri="#compiling-with-an-installed-blosc-library">Compiling with an installed Blosc library</reference></compact_paragraph></list_item><list_item><compact_paragraph><reference anchorname="#generating-sphinx-documentation" internal="True" refuri="#generating-sphinx-documentation">Generating Sphinx documentation</reference></compact_paragraph></list_item></bullet_list></list_item><list_item><compact_paragraph><reference anchorname="#testing" internal="True" refuri="#testing">Testing</reference></compact_paragraph></list_item><list_item><compact_paragraph><reference anchorname="#installing" internal="True" refuri="#installing">Installing</reference></compact_paragraph></list_item></bullet_list></list_item></bullet_list> SphinxTranslator.dispatch_departure calling depart_document for <document source="<partial node>"><bullet_list><list_item><compact_paragraph><reference anchorname="" internal="True" refuri="#">Installation</reference></compact_paragraph><bullet_list><list_item><compact_paragraph><reference anchorname="#installing-from-pypi-repository" internal="True" refuri="#installing-from-pypi-repository">Installing from PyPI repository</reference></compact_paragraph></list_item><list_item><compact_paragraph><reference anchorname="#building-manually" internal="True" refuri="#building-manually">Building manually</reference></compact_paragraph><bullet_list><list_item><compact_paragraph><reference anchorname="#compiling-without-an-installed-blosc-library" internal="True" refuri="#compiling-without-an-installed-blosc-library">Compiling without an installed Blosc library</reference></compact_paragraph></list_item><list_item><compact_paragraph><reference anchorname="#compiling-with-an-installed-blosc-library" internal="True" refuri="#compiling-with-an-installed-blosc-library">Compiling with an installed Blosc library</reference></compact_paragraph></list_item><list_item><compact_paragraph><reference anchorname="#generating-sphinx-documentation" internal="True" refuri="#generating-sphinx-documentation">Generating Sphinx documentation</reference></compact_paragraph></list_item></bullet_list></list_item><list_item><compact_paragraph><reference anchorname="#testing" internal="True" refuri="#testing">Testing</reference></compact_paragraph></list_item><list_item><compact_paragraph><reference anchorname="#installing" internal="True" refuri="#installing">Installing</reference></compact_paragraph></list_item></bullet_list></list_item></bullet_list></document> [app] emitting event: 'html-page-context'('install', 'page.html', {'embedded': False, 'project': 'python-blosc', 'release': '1.5.0', 'version writing output... [ 60%] intro [app] emitting event: 'doctree-resolved'(<document: <section "introduction"...>>, 'intro') SphinxTranslator.dispatch_visit calling visit_document for <document source="<partial node>"><title>Introduction</title></document> SphinxTranslator.dispatch_visit calling visit_title for <title>Introduction</title> SphinxTranslator.dispatch_visit calling visit_Text for Introduction SphinxTranslator.dispatch_departure calling depart_Text for Introduction SphinxTranslator.dispatch_departure calling depart_title for <title>Introduction</title> SphinxTranslator.dispatch_departure calling depart_document for <document source="<partial node>"><title>Introduction</title></document> SphinxTranslator.dispatch_visit calling visit_document for <document source="/usr/src/RPM/BUILD/python3-module-blosc-1.5.1/doc/intro.rst"><section ids="introduction" names="introduction"><title>Introduction</title><section ids="what-is-python-blosc" names="what\ is\ python-blosc?"><title>What is python-blosc?</title><paragraph>Blosc (<reference refuri="http://blosc.org">http://blosc.org</reference>) is a high performance compressor optimized for binary data. It has been designed to transmit data to the processor cache faster than the traditional, non-compressed, direct memory fetch approach via a memcpy() OS call.</paragraph><paragraph>Blosc works well for compressing numerical arrays that contains data with relatively low entropy, like sparse data, time series, grids with regular-spaced values, etc.</paragraph><paragraph>This is a Python package that wraps it.</paragraph></section><section ids="mailing-list" names="mailing\ list"><title>Mailing list</title><paragraph>Discussion about this module is welcome in the Blosc list:</paragraph><paragraph><reference refuri="mailto:blosc@googlegroups.com">blosc@googlegroups.com</reference></paragraph><paragraph><reference refuri="http://groups.google.es/group/blosc">http://groups.google.es/group/blosc</reference></paragraph></section></section></document> SphinxTranslator.dispatch_visit calling visit_section for <section ids="introduction" names="introduction"><title>Introduction</title><section ids="what-is-python-blosc" names="what\ is\ python-blosc?"><title>What is python-blosc?</title><paragraph>Blosc (<reference refuri="http://blosc.org">http://blosc.org</reference>) is a high performance compressor optimized for binary data. It has been designed to transmit data to the processor cache faster than the traditional, non-compressed, direct memory fetch approach via a memcpy() OS call.</paragraph><paragraph>Blosc works well for compressing numerical arrays that contains data with relatively low entropy, like sparse data, time series, grids with regular-spaced values, etc.</paragraph><paragraph>This is a Python package that wraps it.</paragraph></section><section ids="mailing-list" names="mailing\ list"><title>Mailing list</title><paragraph>Discussion about this module is welcome in the Blosc list:</paragraph><paragraph><reference refuri="mailto:blosc@googlegroups.com">blosc@googlegroups.com</reference></paragraph><paragraph><reference refuri="http://groups.google.es/group/blosc">http://groups.google.es/group/blosc</reference></paragraph></section></section> SphinxTranslator.dispatch_visit calling visit_title for <title>Introduction</title> SphinxTranslator.dispatch_visit calling visit_Text for Introduction SphinxTranslator.dispatch_departure calling depart_Text for Introduction SphinxTranslator.dispatch_departure calling depart_title for <title>Introduction</title> SphinxTranslator.dispatch_visit calling visit_section for <section ids="what-is-python-blosc" names="what\ is\ python-blosc?"><title>What is python-blosc?</title><paragraph>Blosc (<reference refuri="http://blosc.org">http://blosc.org</reference>) is a high performance compressor optimized for binary data. It has been designed to transmit data to the processor cache faster than the traditional, non-compressed, direct memory fetch approach via a memcpy() OS call.</paragraph><paragraph>Blosc works well for compressing numerical arrays that contains data with relatively low entropy, like sparse data, time series, grids with regular-spaced values, etc.</paragraph><paragraph>This is a Python package that wraps it.</paragraph></section> SphinxTranslator.dispatch_visit calling visit_title for <title>What is python-blosc?</title> SphinxTranslator.dispatch_visit calling visit_Text for What is python-blosc? SphinxTranslator.dispatch_departure calling depart_Text for What is python-blosc? SphinxTranslator.dispatch_departure calling depart_title for <title>What is python-blosc?</title> SphinxTranslator.dispatch_visit calling visit_paragraph for <paragraph>Blosc (<reference refuri="http://blosc.org">http://blosc.org</reference>) is a high performance compressor optimized for binary data. It has been designed to transmit data to the processor cache faster than the traditional, non-compressed, direct memory fetch approach via a memcpy() OS call.</paragraph> SphinxTranslator.dispatch_visit calling visit_Text for Blosc ( SphinxTranslator.dispatch_departure calling depart_Text for Blosc ( SphinxTranslator.dispatch_visit calling visit_reference for <reference refuri="http://blosc.org">http://blosc.org</reference> SphinxTranslator.dispatch_visit calling visit_Text for http://blosc.org SphinxTranslator.dispatch_departure calling depart_Text for http://blosc.org SphinxTranslator.dispatch_departure calling depart_reference for <reference refuri="http://blosc.org">http://blosc.org</reference> SphinxTranslator.dispatch_visit calling visit_Text for ) is a high performance compressor optimized for binary data. It has been designed to transmit data to the processor cache faster than the traditional, non-compressed, direct memory fetch approach via a memcpy() OS call. SphinxTranslator.dispatch_departure calling depart_Text for ) is a high performance compressor optimized for binary data. It has been designed to transmit data to the processor cache faster than the traditional, non-compressed, direct memory fetch approach via a memcpy() OS call. SphinxTranslator.dispatch_departure calling depart_paragraph for <paragraph>Blosc (<reference refuri="http://blosc.org">http://blosc.org</reference>) is a high performance compressor optimized for binary data. It has been designed to transmit data to the processor cache faster than the traditional, non-compressed, direct memory fetch approach via a memcpy() OS call.</paragraph> SphinxTranslator.dispatch_visit calling visit_paragraph for <paragraph>Blosc works well for compressing numerical arrays that contains data with relatively low entropy, like sparse data, time series, grids with regular-spaced values, etc.</paragraph> SphinxTranslator.dispatch_visit calling visit_Text for Blosc works well for compressing numerical arrays that contains data with relatively low entropy, like sparse data, time series, grids with regular-spaced values, etc. SphinxTranslator.dispatch_departure calling depart_Text for Blosc works well for compressing numerical arrays that contains data with relatively low entropy, like sparse data, time series, grids with regular-spaced values, etc. SphinxTranslator.dispatch_departure calling depart_paragraph for <paragraph>Blosc works well for compressing numerical arrays that contains data with relatively low entropy, like sparse data, time series, grids with regular-spaced values, etc.</paragraph> SphinxTranslator.dispatch_visit calling visit_paragraph for <paragraph>This is a Python package that wraps it.</paragraph> SphinxTranslator.dispatch_visit calling visit_Text for This is a Python package that wraps it. SphinxTranslator.dispatch_departure calling depart_Text for This is a Python package that wraps it. SphinxTranslator.dispatch_departure calling depart_paragraph for <paragraph>This is a Python package that wraps it.</paragraph> SphinxTranslator.dispatch_departure calling depart_section for <section ids="what-is-python-blosc" names="what\ is\ python-blosc?"><title>What is python-blosc?</title><paragraph>Blosc (<reference refuri="http://blosc.org">http://blosc.org</reference>) is a high performance compressor optimized for binary data. It has been designed to transmit data to the processor cache faster than the traditional, non-compressed, direct memory fetch approach via a memcpy() OS call.</paragraph><paragraph>Blosc works well for compressing numerical arrays that contains data with relatively low entropy, like sparse data, time series, grids with regular-spaced values, etc.</paragraph><paragraph>This is a Python package that wraps it.</paragraph></section> SphinxTranslator.dispatch_visit calling visit_section for <section ids="mailing-list" names="mailing\ list"><title>Mailing list</title><paragraph>Discussion about this module is welcome in the Blosc list:</paragraph><paragraph><reference refuri="mailto:blosc@googlegroups.com">blosc@googlegroups.com</reference></paragraph><paragraph><reference refuri="http://groups.google.es/group/blosc">http://groups.google.es/group/blosc</reference></paragraph></section> SphinxTranslator.dispatch_visit calling visit_title for <title>Mailing list</title> SphinxTranslator.dispatch_visit calling visit_Text for Mailing list SphinxTranslator.dispatch_departure calling depart_Text for Mailing list SphinxTranslator.dispatch_departure calling depart_title for <title>Mailing list</title> SphinxTranslator.dispatch_visit calling visit_paragraph for <paragraph>Discussion about this module is welcome in the Blosc list:</paragraph> SphinxTranslator.dispatch_visit calling visit_Text for Discussion about this module is welcome in the Blosc list: SphinxTranslator.dispatch_departure calling depart_Text for Discussion about this module is welcome in the Blosc list: SphinxTranslator.dispatch_departure calling depart_paragraph for <paragraph>Discussion about this module is welcome in the Blosc list:</paragraph> SphinxTranslator.dispatch_visit calling visit_paragraph for <paragraph><reference refuri="mailto:blosc@googlegroups.com">blosc@googlegroups.com</reference></paragraph> SphinxTranslator.dispatch_visit calling visit_reference for <reference refuri="mailto:blosc@googlegroups.com">blosc@googlegroups.com</reference> SphinxTranslator.dispatch_visit calling visit_Text for blosc@googlegroups.com SphinxTranslator.dispatch_departure calling depart_Text for blosc@googlegroups.com SphinxTranslator.dispatch_departure calling depart_reference for <reference refuri="mailto:blosc@googlegroups.com">blosc@googlegroups.com</reference> SphinxTranslator.dispatch_departure calling depart_paragraph for <paragraph><reference refuri="mailto:blosc@googlegroups.com">blosc@googlegroups.com</reference></paragraph> SphinxTranslator.dispatch_visit calling visit_paragraph for <paragraph><reference refuri="http://groups.google.es/group/blosc">http://groups.google.es/group/blosc</reference></paragraph> SphinxTranslator.dispatch_visit calling visit_reference for <reference refuri="http://groups.google.es/group/blosc">http://groups.google.es/group/blosc</reference> SphinxTranslator.dispatch_visit calling visit_Text for http://groups.google.es/group/blosc SphinxTranslator.dispatch_departure calling depart_Text for http://groups.google.es/group/blosc SphinxTranslator.dispatch_departure calling depart_reference for <reference refuri="http://groups.google.es/group/blosc">http://groups.google.es/group/blosc</reference> SphinxTranslator.dispatch_departure calling depart_paragraph for <paragraph><reference refuri="http://groups.google.es/group/blosc">http://groups.google.es/group/blosc</reference></paragraph> SphinxTranslator.dispatch_departure calling depart_section for <section ids="mailing-list" names="mailing\ list"><title>Mailing list</title><paragraph>Discussion about this module is welcome in the Blosc list:</paragraph><paragraph><reference refuri="mailto:blosc@googlegroups.com">blosc@googlegroups.com</reference></paragraph><paragraph><reference refuri="http://groups.google.es/group/blosc">http://groups.google.es/group/blosc</reference></paragraph></section> SphinxTranslator.dispatch_departure calling depart_section for <section ids="introduction" names="introduction"><title>Introduction</title><section ids="what-is-python-blosc" names="what\ is\ python-blosc?"><title>What is python-blosc?</title><paragraph>Blosc (<reference refuri="http://blosc.org">http://blosc.org</reference>) is a high performance compressor optimized for binary data. It has been designed to transmit data to the processor cache faster than the traditional, non-compressed, direct memory fetch approach via a memcpy() OS call.</paragraph><paragraph>Blosc works well for compressing numerical arrays that contains data with relatively low entropy, like sparse data, time series, grids with regular-spaced values, etc.</paragraph><paragraph>This is a Python package that wraps it.</paragraph></section><section ids="mailing-list" names="mailing\ list"><title>Mailing list</title><paragraph>Discussion about this module is welcome in the Blosc list:</paragraph><paragraph><reference refuri="mailto:blosc@googlegroups.com">blosc@googlegroups.com</reference></paragraph><paragraph><reference refuri="http://groups.google.es/group/blosc">http://groups.google.es/group/blosc</reference></paragraph></section></section> SphinxTranslator.dispatch_departure calling depart_document for <document source="/usr/src/RPM/BUILD/python3-module-blosc-1.5.1/doc/intro.rst"><section ids="introduction" names="introduction"><title>Introduction</title><section ids="what-is-python-blosc" names="what\ is\ python-blosc?"><title>What is python-blosc?</title><paragraph>Blosc (<reference refuri="http://blosc.org">http://blosc.org</reference>) is a high performance compressor optimized for binary data. It has been designed to transmit data to the processor cache faster than the traditional, non-compressed, direct memory fetch approach via a memcpy() OS call.</paragraph><paragraph>Blosc works well for compressing numerical arrays that contains data with relatively low entropy, like sparse data, time series, grids with regular-spaced values, etc.</paragraph><paragraph>This is a Python package that wraps it.</paragraph></section><section ids="mailing-list" names="mailing\ list"><title>Mailing list</title><paragraph>Discussion about this module is welcome in the Blosc list:</paragraph><paragraph><reference refuri="mailto:blosc@googlegroups.com">blosc@googlegroups.com</reference></paragraph><paragraph><reference refuri="http://groups.google.es/group/blosc">http://groups.google.es/group/blosc</reference></paragraph></section></section></document> SphinxTranslator.dispatch_visit calling visit_document for <document source="<partial node>"><title>Installation</title></document> SphinxTranslator.dispatch_visit calling visit_title for <title>Installation</title> SphinxTranslator.dispatch_visit calling visit_Text for Installation SphinxTranslator.dispatch_departure calling depart_Text for Installation SphinxTranslator.dispatch_departure calling depart_title for <title>Installation</title> SphinxTranslator.dispatch_departure calling depart_document for <document source="<partial node>"><title>Installation</title></document> SphinxTranslator.dispatch_visit calling visit_document for <document source="<partial node>"><title>Welcome to python-blosc’s documentation!</title></document> SphinxTranslator.dispatch_visit calling visit_title for <title>Welcome to python-blosc’s documentation!</title> SphinxTranslator.dispatch_visit calling visit_Text for Welcome to python-blosc’s documentation! SphinxTranslator.dispatch_departure calling depart_Text for Welcome to python-blosc’s documentation! SphinxTranslator.dispatch_departure calling depart_title for <title>Welcome to python-blosc’s documentation!</title> SphinxTranslator.dispatch_departure calling depart_document for <document source="<partial node>"><title>Welcome to python-blosc’s documentation!</title></document> SphinxTranslator.dispatch_visit calling visit_document for <document source="<partial node>"><title>Welcome to python-blosc’s documentation!</title></document> SphinxTranslator.dispatch_visit calling visit_title for <title>Welcome to python-blosc’s documentation!</title> SphinxTranslator.dispatch_visit calling visit_Text for Welcome to python-blosc’s documentation! SphinxTranslator.dispatch_departure calling depart_Text for Welcome to python-blosc’s documentation! SphinxTranslator.dispatch_departure calling depart_title for <title>Welcome to python-blosc’s documentation!</title> SphinxTranslator.dispatch_departure calling depart_document for <document source="<partial node>"><title>Welcome to python-blosc’s documentation!</title></document> SphinxTranslator.dispatch_visit calling visit_document for <document source="<partial node>"><title>Introduction</title></document> SphinxTranslator.dispatch_visit calling visit_title for <title>Introduction</title> SphinxTranslator.dispatch_visit calling visit_Text for Introduction SphinxTranslator.dispatch_departure calling depart_Text for Introduction SphinxTranslator.dispatch_departure calling depart_title for <title>Introduction</title> SphinxTranslator.dispatch_departure calling depart_document for <document source="<partial node>"><title>Introduction</title></document> SphinxTranslator.dispatch_visit calling visit_document for <document source="<partial node>"><bullet_list><list_item><compact_paragraph><reference anchorname="" internal="True" refuri="#">Introduction</reference></compact_paragraph><bullet_list><list_item><compact_paragraph><reference anchorname="#what-is-python-blosc" internal="True" refuri="#what-is-python-blosc">What is python-blosc?</reference></compact_paragraph></list_item><list_item><compact_paragraph><reference anchorname="#mailing-list" internal="True" refuri="#mailing-list">Mailing list</reference></compact_paragraph></list_item></bullet_list></list_item></bullet_list></document> SphinxTranslator.dispatch_visit calling visit_bullet_list for <bullet_list><list_item><compact_paragraph><reference anchorname="" internal="True" refuri="#">Introduction</reference></compact_paragraph><bullet_list><list_item><compact_paragraph><reference anchorname="#what-is-python-blosc" internal="True" refuri="#what-is-python-blosc">What is python-blosc?</reference></compact_paragraph></list_item><list_item><compact_paragraph><reference anchorname="#mailing-list" internal="True" refuri="#mailing-list">Mailing list</reference></compact_paragraph></list_item></bullet_list></list_item></bullet_list> SphinxTranslator.dispatch_visit calling visit_list_item for <list_item><compact_paragraph><reference anchorname="" internal="True" refuri="#">Introduction</reference></compact_paragraph><bullet_list><list_item><compact_paragraph><reference anchorname="#what-is-python-blosc" internal="True" refuri="#what-is-python-blosc">What is python-blosc?</reference></compact_paragraph></list_item><list_item><compact_paragraph><reference anchorname="#mailing-list" internal="True" refuri="#mailing-list">Mailing list</reference></compact_paragraph></list_item></bullet_list></list_item> SphinxTranslator.dispatch_visit calling visit_compact_paragraph for <compact_paragraph><reference anchorname="" internal="True" refuri="#">Introduction</reference></compact_paragraph> SphinxTranslator.dispatch_visit calling visit_reference for <reference anchorname="" internal="True" refuri="#">Introduction</reference> SphinxTranslator.dispatch_visit calling visit_Text for Introduction SphinxTranslator.dispatch_departure calling depart_Text for Introduction SphinxTranslator.dispatch_departure calling depart_reference for <reference anchorname="" internal="True" refuri="#">Introduction</reference> SphinxTranslator.dispatch_departure calling depart_compact_paragraph for <compact_paragraph><reference anchorname="" internal="True" refuri="#">Introduction</reference></compact_paragraph> SphinxTranslator.dispatch_visit calling visit_bullet_list for <bullet_list><list_item><compact_paragraph><reference anchorname="#what-is-python-blosc" internal="True" refuri="#what-is-python-blosc">What is python-blosc?</reference></compact_paragraph></list_item><list_item><compact_paragraph><reference anchorname="#mailing-list" internal="True" refuri="#mailing-list">Mailing list</reference></compact_paragraph></list_item></bullet_list> SphinxTranslator.dispatch_visit calling visit_list_item for <list_item><compact_paragraph><reference anchorname="#what-is-python-blosc" internal="True" refuri="#what-is-python-blosc">What is python-blosc?</reference></compact_paragraph></list_item> SphinxTranslator.dispatch_visit calling visit_compact_paragraph for <compact_paragraph><reference anchorname="#what-is-python-blosc" internal="True" refuri="#what-is-python-blosc">What is python-blosc?</reference></compact_paragraph> SphinxTranslator.dispatch_visit calling visit_reference for <reference anchorname="#what-is-python-blosc" internal="True" refuri="#what-is-python-blosc">What is python-blosc?</reference> SphinxTranslator.dispatch_visit calling visit_Text for What is python-blosc? SphinxTranslator.dispatch_departure calling depart_Text for What is python-blosc? SphinxTranslator.dispatch_departure calling depart_reference for <reference anchorname="#what-is-python-blosc" internal="True" refuri="#what-is-python-blosc">What is python-blosc?</reference> SphinxTranslator.dispatch_departure calling depart_compact_paragraph for <compact_paragraph><reference anchorname="#what-is-python-blosc" internal="True" refuri="#what-is-python-blosc">What is python-blosc?</reference></compact_paragraph> SphinxTranslator.dispatch_departure calling depart_list_item for <list_item><compact_paragraph><reference anchorname="#what-is-python-blosc" internal="True" refuri="#what-is-python-blosc">What is python-blosc?</reference></compact_paragraph></list_item> SphinxTranslator.dispatch_visit calling visit_list_item for <list_item><compact_paragraph><reference anchorname="#mailing-list" internal="True" refuri="#mailing-list">Mailing list</reference></compact_paragraph></list_item> SphinxTranslator.dispatch_visit calling visit_compact_paragraph for <compact_paragraph><reference anchorname="#mailing-list" internal="True" refuri="#mailing-list">Mailing list</reference></compact_paragraph> SphinxTranslator.dispatch_visit calling visit_reference for <reference anchorname="#mailing-list" internal="True" refuri="#mailing-list">Mailing list</reference> SphinxTranslator.dispatch_visit calling visit_Text for Mailing list SphinxTranslator.dispatch_departure calling depart_Text for Mailing list SphinxTranslator.dispatch_departure calling depart_reference for <reference anchorname="#mailing-list" internal="True" refuri="#mailing-list">Mailing list</reference> SphinxTranslator.dispatch_departure calling depart_compact_paragraph for <compact_paragraph><reference anchorname="#mailing-list" internal="True" refuri="#mailing-list">Mailing list</reference></compact_paragraph> SphinxTranslator.dispatch_departure calling depart_list_item for <list_item><compact_paragraph><reference anchorname="#mailing-list" internal="True" refuri="#mailing-list">Mailing list</reference></compact_paragraph></list_item> SphinxTranslator.dispatch_departure calling depart_bullet_list for <bullet_list><list_item><compact_paragraph><reference anchorname="#what-is-python-blosc" internal="True" refuri="#what-is-python-blosc">What is python-blosc?</reference></compact_paragraph></list_item><list_item><compact_paragraph><reference anchorname="#mailing-list" internal="True" refuri="#mailing-list">Mailing list</reference></compact_paragraph></list_item></bullet_list> SphinxTranslator.dispatch_departure calling depart_list_item for <list_item><compact_paragraph><reference anchorname="" internal="True" refuri="#">Introduction</reference></compact_paragraph><bullet_list><list_item><compact_paragraph><reference anchorname="#what-is-python-blosc" internal="True" refuri="#what-is-python-blosc">What is python-blosc?</reference></compact_paragraph></list_item><list_item><compact_paragraph><reference anchorname="#mailing-list" internal="True" refuri="#mailing-list">Mailing list</reference></compact_paragraph></list_item></bullet_list></list_item> SphinxTranslator.dispatch_departure calling depart_bullet_list for <bullet_list><list_item><compact_paragraph><reference anchorname="" internal="True" refuri="#">Introduction</reference></compact_paragraph><bullet_list><list_item><compact_paragraph><reference anchorname="#what-is-python-blosc" internal="True" refuri="#what-is-python-blosc">What is python-blosc?</reference></compact_paragraph></list_item><list_item><compact_paragraph><reference anchorname="#mailing-list" internal="True" refuri="#mailing-list">Mailing list</reference></compact_paragraph></list_item></bullet_list></list_item></bullet_list> SphinxTranslator.dispatch_departure calling depart_document for <document source="<partial node>"><bullet_list><list_item><compact_paragraph><reference anchorname="" internal="True" refuri="#">Introduction</reference></compact_paragraph><bullet_list><list_item><compact_paragraph><reference anchorname="#what-is-python-blosc" internal="True" refuri="#what-is-python-blosc">What is python-blosc?</reference></compact_paragraph></list_item><list_item><compact_paragraph><reference anchorname="#mailing-list" internal="True" refuri="#mailing-list">Mailing list</reference></compact_paragraph></list_item></bullet_list></list_item></bullet_list></document> [app] emitting event: 'html-page-context'('intro', 'page.html', {'embedded': False, 'project': 'python-blosc', 'release': '1.5.0', 'version': writing output... [ 80%] reference [app] emitting event: 'doctree-resolved'(<document: <section "library reference"...>>, 'reference') SphinxTranslator.dispatch_visit calling visit_document for <document source="<partial node>"><title>Library Reference</title></document> SphinxTranslator.dispatch_visit calling visit_title for <title>Library Reference</title> SphinxTranslator.dispatch_visit calling visit_Text for Library Reference SphinxTranslator.dispatch_departure calling depart_Text for Library Reference SphinxTranslator.dispatch_departure calling depart_title for <title>Library Reference</title> SphinxTranslator.dispatch_departure calling depart_document for <document source="<partial node>"><title>Library Reference</title></document> SphinxTranslator.dispatch_visit calling visit_document for <document source="/usr/src/RPM/BUILD/python3-module-blosc-1.5.1/doc/reference.rst"><section ids="library-reference" names="library\ reference"><title>Library Reference</title><section ids="first-level-variables" names="first\ level\ variables"><title>First level variables</title><index entries="[('single', '__version__', '__version__', '', None)]"/><desc desctype="attribute" domain="py" noindex="False" objtype="attribute"><desc_signature class="" first="False" fullname="__version__" ids="__version__" module="True" names="__version__"><desc_name xml:space="preserve">__version__</desc_name></desc_signature><desc_content><paragraph>The version of the blosc package.</paragraph></desc_content></desc><index entries="[('single', 'blosclib_version', 'blosclib_version', '', None)]"/><desc desctype="attribute" domain="py" noindex="False" objtype="attribute"><desc_signature class="" first="False" fullname="blosclib_version" ids="blosclib_version" module="True" names="blosclib_version"><desc_name xml:space="preserve">blosclib_version</desc_name></desc_signature><desc_content><paragraph>The version of the Blosc C library.</paragraph></desc_content></desc><index entries="[('single', 'clib_versions', 'clib_versions', '', None)]"/><desc desctype="attribute" domain="py" noindex="False" objtype="attribute"><desc_signature class="" first="False" fullname="clib_versions" ids="clib_versions" module="True" names="clib_versions"><desc_name xml:space="preserve">clib_versions</desc_name></desc_signature><desc_content><paragraph>A map for the versions of the compression libraries included in C library.</paragraph></desc_content></desc><index entries="[('single', 'cnames', 'cnames', '', None)]"/><desc desctype="attribute" domain="py" noindex="False" objtype="attribute"><desc_signature class="" first="False" fullname="cnames" ids="cnames" module="True" names="cnames"><desc_name xml:space="preserve">cnames</desc_name></desc_signature><desc_content><paragraph>The list of compressors included in C library.</paragraph></desc_content></desc><index entries="[('single', 'cname2clib', 'cname2clib', '', None)]"/><desc desctype="attribute" domain="py" noindex="False" objtype="attribute"><desc_signature class="" first="False" fullname="cname2clib" ids="cname2clib" module="True" names="cname2clib"><desc_name xml:space="preserve">cname2clib</desc_name></desc_signature><desc_content><paragraph>A map between compressor names and its libraries (or formats).</paragraph></desc_content></desc><index entries="[('single', 'ncores', 'ncores', '', None)]"/><desc desctype="attribute" domain="py" noindex="False" objtype="attribute"><desc_signature class="" first="False" fullname="ncores" ids="ncores" module="True" names="ncores"><desc_name xml:space="preserve">ncores</desc_name></desc_signature><desc_content><paragraph>The number of cores detected.</paragraph></desc_content></desc></section><section ids="module-blosc public-functions" names="public\ functions"><title>Public functions</title><index entries="[('single', 'blosc (module)', 'module-blosc', '', None)]"/><index entries="[('single', 'compress() (in module blosc)', 'blosc.compress', '', None)]"/><desc desctype="function" domain="py" noindex="False" objtype="function"><desc_signature class="" first="False" fullname="compress" ids="blosc.compress" module="blosc" names="blosc.compress"><desc_addname xml:space="preserve">blosc.</desc_addname><desc_name xml:space="preserve">compress</desc_name><desc_parameterlist xml:space="preserve"><desc_parameter xml:space="preserve">bytesobj[, typesize=8, clevel=9, shuffle=blosc.SHUFFLE, cname='blosclz']]</desc_parameter></desc_parameterlist></desc_signature><desc_content><paragraph>Compress bytesobj, with a given type size.</paragraph><field_list><field><field_name>Parameters</field_name><field_body><paragraph><strong>bytesobj</strong> : bytes-like object (supporting the buffer interface)</paragraph><block_quote><paragraph>The data to be compressed.</paragraph></block_quote><paragraph><strong>typesize</strong> : int</paragraph><block_quote><paragraph>The data type size.</paragraph></block_quote><paragraph><strong>clevel</strong> : int (optional)</paragraph><block_quote><paragraph>The compression level from 0 (no compression) to 9 (maximum compression). The default is 9.</paragraph></block_quote><paragraph><strong>shuffle</strong> : int (optional)</paragraph><block_quote><paragraph>The shuffle filter to be activated. Allowed values are blosc.NOSHUFFLE, blosc.SHUFFLE and blosc.BITSHUFFLE. The default is blosc.SHUFFLE.</paragraph></block_quote><paragraph><strong>cname</strong> : string (optional)</paragraph><block_quote><paragraph>The name of the compressor used internally in Blosc. It can be any of the supported by Blosc (‘blosclz’, ‘lz4’, ‘lz4hc’, ‘snappy’, ‘zlib’, ‘zstd’ and maybe others too). The default is ‘blosclz’.</paragraph></block_quote></field_body></field><field><field_name>Returns</field_name><field_body><paragraph><strong>out</strong> : str / bytes</paragraph><block_quote><paragraph>The compressed data in form of a Python str / bytes object.</paragraph></block_quote></field_body></field><field><field_name>Raises</field_name><field_body><paragraph><strong>TypeError</strong></paragraph><block_quote><paragraph>If bytesobj doesn’t support the buffer interface.</paragraph></block_quote><paragraph><strong>ValueError</strong></paragraph><block_quote><paragraph>If bytesobj is too long. If typesize is not within the allowed range. If clevel is not within the allowed range. If cname is not a valid codec.</paragraph></block_quote></field_body></field></field_list><rubric>Examples</rubric><doctest_block classes="doctest" xml:space="preserve">>>> import array >>> a = array.array('i', range(1000*1000)) >>> a_bytesobj = a.tostring() >>> c_bytesobj = blosc.compress(a_bytesobj, typesize=4) >>> len(c_bytesobj) < len(a_bytesobj) True</doctest_block></desc_content></desc><index entries="[('single', 'compress_ptr() (in module blosc)', 'blosc.compress_ptr', '', None)]"/><desc desctype="function" domain="py" noindex="False" objtype="function"><desc_signature class="" first="False" fullname="compress_ptr" ids="blosc.compress_ptr" module="blosc" names="blosc.compress_ptr"><desc_addname xml:space="preserve">blosc.</desc_addname><desc_name xml:space="preserve">compress_ptr</desc_name><desc_parameterlist xml:space="preserve"><desc_parameter xml:space="preserve">address, items[, typesize=8, clevel=9, shuffle=blosc.SHUFFLE, cname='blosclz']]</desc_parameter></desc_parameterlist></desc_signature><desc_content><paragraph>Compress the data at address with given items and typesize.</paragraph><field_list><field><field_name>Parameters</field_name><field_body><paragraph><strong>address</strong> : int or long</paragraph><block_quote><paragraph>the pointer to the data to be compressed</paragraph></block_quote><paragraph><strong>items</strong> : int</paragraph><block_quote><paragraph>The number of items (of typesize) to be compressed.</paragraph></block_quote><paragraph><strong>typesize</strong> : int</paragraph><block_quote><paragraph>The data type size.</paragraph></block_quote><paragraph><strong>clevel</strong> : int (optional)</paragraph><block_quote><paragraph>The compression level from 0 (no compression) to 9 (maximum compression). The default is 9.</paragraph></block_quote><paragraph><strong>shuffle</strong> : int (optional)</paragraph><block_quote><paragraph>The shuffle filter to be activated. Allowed values are blosc.NOSHUFFLE, blosc.SHUFFLE and blosc.BITSHUFFLE. The default is blosc.SHUFFLE.</paragraph></block_quote><paragraph><strong>cname</strong> : string (optional)</paragraph><block_quote><paragraph>The name of the compressor used internally in Blosc. It can be any of the supported by Blosc (‘blosclz’, ‘lz4’, ‘lz4hc’, ‘snappy’, ‘zlib’, ‘zstd’ and maybe others too). The default is ‘blosclz’.</paragraph></block_quote></field_body></field><field><field_name>Returns</field_name><field_body><paragraph><strong>out</strong> : str / bytes</paragraph><block_quote><paragraph>The compressed data in form of a Python str / bytes object.</paragraph></block_quote></field_body></field><field><field_name>Raises</field_name><field_body><paragraph><strong>TypeError</strong></paragraph><block_quote><paragraph>If address is not of type int or long.</paragraph></block_quote><paragraph><strong>ValueError</strong></paragraph><block_quote><paragraph>If items * typesize is larger than the maximum allowed buffer size. If typesize is not within the allowed range. If clevel is not within the allowed range. If cname is not within the supported compressors.</paragraph></block_quote></field_body></field></field_list><rubric>Notes</rubric><paragraph>This function can be used anywhere that a memory address is available in Python. For example the Numpy “__array_interface__[‘data’][0]†construct, or when using the ctypes modules.</paragraph><paragraph>Importantly, the user is responsible for making sure that the memory address is valid and that the memory pointed to is contiguous. Passing a non-valid address has a high likelihood of crashing the interpreter by segfault.</paragraph><rubric>Examples</rubric><doctest_block classes="doctest" xml:space="preserve">>>> import numpy >>> items = 7 >>> np_array = numpy.arange(items) >>> c = blosc.compress_ptr(np_array.__array_interface__['data'][0], items, np_array.dtype.itemsize) >>> d = blosc.decompress(c) >>> np_ans = numpy.fromstring(d, dtype=np_array.dtype) >>> (np_array == np_ans).all() True</doctest_block><doctest_block classes="doctest" xml:space="preserve">>>> import ctypes >>> typesize = 8 >>> data = [float(i) for i in range(items)] >>> Array = ctypes.c_double * items >>> a = Array(*data) >>> c = blosc.compress_ptr(ctypes.addressof(a), items, typesize) >>> d = blosc.decompress(c) >>> import struct >>> ans = [struct.unpack('d', d[i:i+typesize])[0] for i in range(0, items*typesize, typesize)] >>> data == ans True</doctest_block></desc_content></desc><index entries="[('single', 'decompress() (in module blosc)', 'blosc.decompress', '', None)]"/><desc desctype="function" domain="py" noindex="False" objtype="function"><desc_signature class="" first="False" fullname="decompress" ids="blosc.decompress" module="blosc" names="blosc.decompress"><desc_addname xml:space="preserve">blosc.</desc_addname><desc_name xml:space="preserve">decompress</desc_name><desc_parameterlist xml:space="preserve"><desc_parameter xml:space="preserve">bytesobj</desc_parameter></desc_parameterlist></desc_signature><desc_content><paragraph>Decompresses a bytesobj compressed object.</paragraph><field_list><field><field_name>Parameters</field_name><field_body><paragraph><strong>bytesobj</strong> : str / bytes</paragraph><block_quote><paragraph>The data to be decompressed.</paragraph></block_quote><paragraph><strong>as_bytearray</strong> : bool, optional</paragraph><block_quote><paragraph>If this flag is True then the return type will be a bytearray object instead of a bytesobject.</paragraph></block_quote></field_body></field><field><field_name>Returns</field_name><field_body><paragraph><strong>out</strong> : str / bytes or bytearray</paragraph><block_quote><paragraph>The decompressed data in form of a Python str / bytes object. If as_bytearray is True then this will be a bytearray object, otherwise this will be a str/ bytes object.</paragraph></block_quote></field_body></field><field><field_name>Raises</field_name><field_body><paragraph><strong>TypeError</strong></paragraph><block_quote><paragraph>If bytesobj is not of type bytes or string.</paragraph></block_quote></field_body></field></field_list><rubric>Examples</rubric><doctest_block classes="doctest" xml:space="preserve">>>> import array >>> a = array.array('i', range(1000*1000)) >>> a_bytesobj = a.tostring() >>> c_bytesobj = blosc.compress(a_bytesobj, typesize=4) >>> a_bytesobj2 = blosc.decompress(c_bytesobj) >>> a_bytesobj == a_bytesobj2 True >>> b"" == blosc.decompress(blosc.compress(b"", 1)) True >>> b"1"*7 == blosc.decompress(blosc.compress(b"1"*7, 8)) True >>> type(blosc.decompress(blosc.compress(b"1"*7, 8), ... as_bytearray=True)) is bytearray True</doctest_block></desc_content></desc><index entries="[('single', 'decompress_ptr() (in module blosc)', 'blosc.decompress_ptr', '', None)]"/><desc desctype="function" domain="py" noindex="False" objtype="function"><desc_signature class="" first="False" fullname="decompress_ptr" ids="blosc.decompress_ptr" module="blosc" names="blosc.decompress_ptr"><desc_addname xml:space="preserve">blosc.</desc_addname><desc_name xml:space="preserve">decompress_ptr</desc_name><desc_parameterlist xml:space="preserve"><desc_parameter xml:space="preserve">bytesobj</desc_parameter><desc_parameter xml:space="preserve">address</desc_parameter></desc_parameterlist></desc_signature><desc_content><paragraph>Decompresses a bytesobj compressed object into the memory at address.</paragraph><field_list><field><field_name>Parameters</field_name><field_body><paragraph><strong>bytesobj</strong> : str / bytes</paragraph><block_quote><paragraph>The data to be decompressed.</paragraph></block_quote><paragraph><strong>address</strong> : int or long</paragraph><block_quote><paragraph>the pointer to the data to be compressed</paragraph></block_quote></field_body></field><field><field_name>Returns</field_name><field_body><paragraph><strong>nbytes</strong> : int</paragraph><block_quote><paragraph>the number of bytes written to the buffer</paragraph></block_quote></field_body></field><field><field_name>Raises</field_name><field_body><paragraph><strong>TypeError</strong></paragraph><block_quote><paragraph>If bytesobj is not of type bytes or string. If address is not of type int or long.</paragraph></block_quote></field_body></field></field_list><rubric>Notes</rubric><paragraph>This function can be used anywhere that a memory address is available in Python. For example the Numpy “__array_interface__[‘data’][0]†construct, or when using the ctypes modules.</paragraph><paragraph>Importantly, the user is responsible for making sure that the memory address is valid and that the memory pointed to is contiguous and can be written to. Passing a non-valid address has a high likelihood of crashing the interpreter by segfault.</paragraph><rubric>Examples</rubric><doctest_block classes="doctest" xml:space="preserve">>>> import numpy >>> items = 7 >>> np_array = numpy.arange(items) >>> c = blosc.compress_ptr(np_array.__array_interface__['data'][0], items, np_array.dtype.itemsize) >>> np_ans = numpy.empty(items, dtype=np_array.dtype) >>> nbytes = blosc.decompress_ptr(c, np_ans.__array_interface__['data'][0]) >>> (np_array == np_ans).all() True >>> nbytes == items * np_array.dtype.itemsize True</doctest_block><doctest_block classes="doctest" xml:space="preserve">>>> import ctypes >>> typesize = 8 >>> data = [float(i) for i in range(items)] >>> Array = ctypes.c_double * items >>> in_array = Array(*data) >>> c = blosc.compress_ptr(ctypes.addressof(in_array), items, typesize) >>> out_array = ctypes.create_string_buffer(items*typesize) >>> nbytes = blosc.decompress_ptr(c, ctypes.addressof(out_array)) >>> import struct >>> ans = [struct.unpack('d', out_array[i:i+typesize])[0] for i in range(0, items*typesize, typesize)] >>> data == ans True >>> nbytes == items * typesize True</doctest_block></desc_content></desc><index entries="[('single', 'pack_array() (in module blosc)', 'blosc.pack_array', '', None)]"/><desc desctype="function" domain="py" noindex="False" objtype="function"><desc_signature class="" first="False" fullname="pack_array" ids="blosc.pack_array" module="blosc" names="blosc.pack_array"><desc_addname xml:space="preserve">blosc.</desc_addname><desc_name xml:space="preserve">pack_array</desc_name><desc_parameterlist xml:space="preserve"><desc_parameter xml:space="preserve">array[, clevel=9, shuffle=blosc.SHUFFLE, cname='blosclz']]</desc_parameter></desc_parameterlist></desc_signature><desc_content><paragraph>Pack (compress) a NumPy array.</paragraph><field_list><field><field_name>Parameters</field_name><field_body><paragraph><strong>array</strong> : ndarray</paragraph><block_quote><paragraph>The NumPy array to be packed.</paragraph></block_quote><paragraph><strong>clevel</strong> : int (optional)</paragraph><block_quote><paragraph>The compression level from 0 (no compression) to 9 (maximum compression). The default is 9.</paragraph></block_quote><paragraph><strong>shuffle</strong> : int (optional)</paragraph><block_quote><paragraph>The shuffle filter to be activated. Allowed values are blosc.NOSHUFFLE, blosc.SHUFFLE and blosc.BITSHUFFLE. The default is blosc.SHUFFLE.</paragraph></block_quote><paragraph><strong>cname</strong> : string (optional)</paragraph><block_quote><paragraph>The name of the compressor used internally in Blosc. It can be any of the supported by Blosc (‘blosclz’, ‘lz4’, ‘lz4hc’, ‘snappy’, ‘zlib’, ‘zstd’ and maybe others too). The default is ‘blosclz’.</paragraph></block_quote></field_body></field><field><field_name>Returns</field_name><field_body><paragraph><strong>out</strong> : str / bytes</paragraph><block_quote><paragraph>The packed array in form of a Python str / bytes object.</paragraph></block_quote></field_body></field><field><field_name>Raises</field_name><field_body><paragraph><strong>TypeError</strong></paragraph><block_quote><paragraph>If array does not quack like a numpy ndarray.</paragraph></block_quote><paragraph><strong>ValueError</strong></paragraph><block_quote><definition_list><definition_list_item><term>If array.itemsize * array.size is larger than the maximum allowed</term><definition><paragraph>buffer size.</paragraph></definition></definition_list_item></definition_list><paragraph>If typesize is not within the allowed range. If clevel is not within the allowed range. If cname is not within the supported compressors.</paragraph></block_quote></field_body></field></field_list><rubric>Examples</rubric><doctest_block classes="doctest" xml:space="preserve">>>> import numpy >>> a = numpy.arange(1e6) >>> parray = blosc.pack_array(a) >>> len(parray) < a.size*a.itemsize True</doctest_block></desc_content></desc><index entries="[('single', 'unpack_array() (in module blosc)', 'blosc.unpack_array', '', None)]"/><desc desctype="function" domain="py" noindex="False" objtype="function"><desc_signature class="" first="False" fullname="unpack_array" ids="blosc.unpack_array" module="blosc" names="blosc.unpack_array"><desc_addname xml:space="preserve">blosc.</desc_addname><desc_name xml:space="preserve">unpack_array</desc_name><desc_parameterlist xml:space="preserve"><desc_parameter xml:space="preserve">packed_array</desc_parameter></desc_parameterlist></desc_signature><desc_content><paragraph>Unpack (decompress) a packed NumPy array.</paragraph><field_list><field><field_name>Parameters</field_name><field_body><paragraph><strong>packed_array</strong> : str / bytes</paragraph><block_quote><paragraph>The packed array to be decompressed.</paragraph></block_quote></field_body></field><field><field_name>Returns</field_name><field_body><paragraph><strong>out</strong> : ndarray</paragraph><block_quote><paragraph>The decompressed data in form of a NumPy array.</paragraph></block_quote></field_body></field><field><field_name>Raises</field_name><field_body><paragraph><strong>TypeError</strong></paragraph><block_quote><paragraph>If packed_array is not of type bytes or string.</paragraph></block_quote></field_body></field></field_list><rubric>Examples</rubric><doctest_block classes="doctest" xml:space="preserve">>>> import numpy >>> a = numpy.arange(1e6) >>> parray = blosc.pack_array(a) >>> len(parray) < a.size*a.itemsize True >>> a2 = blosc.unpack_array(parray) >>> numpy.alltrue(a == a2) True</doctest_block></desc_content></desc></section><section ids="module-blosc utilities" names="utilities"><title>Utilities</title><index entries="[('single', 'blosc (module)', 'module-blosc', '', None)]"/><index entries="[('single', 'clib_info() (in module blosc)', 'blosc.clib_info', '', None)]"/><desc desctype="function" domain="py" noindex="False" objtype="function"><desc_signature class="" first="False" fullname="clib_info" ids="blosc.clib_info" module="blosc" names="blosc.clib_info"><desc_addname xml:space="preserve">blosc.</desc_addname><desc_name xml:space="preserve">clib_info</desc_name><desc_parameterlist xml:space="preserve"><desc_parameter xml:space="preserve">cname</desc_parameter></desc_parameterlist></desc_signature><desc_content><paragraph>Return info for compression libraries in C library.</paragraph><field_list><field><field_name>Parameters</field_name><field_body><paragraph><strong>cname</strong> : str</paragraph><block_quote><paragraph>The compressor name.</paragraph></block_quote></field_body></field><field><field_name>Returns</field_name><field_body><paragraph><strong>out</strong> : tuple</paragraph><block_quote><paragraph>The associated library name and version.</paragraph></block_quote></field_body></field></field_list></desc_content></desc><index entries="[('single', 'compressor_list() (in module blosc)', 'blosc.compressor_list', '', None)]"/><desc desctype="function" domain="py" noindex="False" objtype="function"><desc_signature class="" first="False" fullname="compressor_list" ids="blosc.compressor_list" module="blosc" names="blosc.compressor_list"><desc_addname xml:space="preserve">blosc.</desc_addname><desc_name xml:space="preserve">compressor_list</desc_name><desc_parameterlist xml:space="preserve"/></desc_signature><desc_content><paragraph>Returns a list of compressors available in C library.</paragraph><field_list><field><field_name>Parameters</field_name><field_body><paragraph><strong>None</strong></paragraph></field_body></field><field><field_name>Returns</field_name><field_body><paragraph><strong>out</strong> : list</paragraph><block_quote><paragraph>The list of names.</paragraph></block_quote></field_body></field></field_list></desc_content></desc><index entries="[('single', 'detect_number_of_cores() (in module blosc)', 'blosc.detect_number_of_cores', '', None)]"/><desc desctype="function" domain="py" noindex="False" objtype="function"><desc_signature class="" first="False" fullname="detect_number_of_cores" ids="blosc.detect_number_of_cores" module="blosc" names="blosc.detect_number_of_cores"><desc_addname xml:space="preserve">blosc.</desc_addname><desc_name xml:space="preserve">detect_number_of_cores</desc_name><desc_parameterlist xml:space="preserve"/></desc_signature><desc_content><paragraph>Detect the number of cores in this system.</paragraph><field_list><field><field_name>Returns</field_name><field_body><paragraph><strong>out</strong> : int</paragraph><block_quote><paragraph>The number of cores in this system.</paragraph></block_quote></field_body></field></field_list></desc_content></desc><index entries="[('single', 'free_resources() (in module blosc)', 'blosc.free_resources', '', None)]"/><desc desctype="function" domain="py" noindex="False" objtype="function"><desc_signature class="" first="False" fullname="free_resources" ids="blosc.free_resources" module="blosc" names="blosc.free_resources"><desc_addname xml:space="preserve">blosc.</desc_addname><desc_name xml:space="preserve">free_resources</desc_name><desc_parameterlist xml:space="preserve"/></desc_signature><desc_content><paragraph>Free possible memory temporaries and thread resources.</paragraph><field_list><field><field_name>Returns</field_name><field_body><paragraph><strong>out</strong> : None</paragraph></field_body></field></field_list><rubric>Notes</rubric><paragraph>Blosc maintain a pool of threads waiting for work as well as some temporary space. You can use this function to release these resources when you are not going to use Blosc for a long while.</paragraph><rubric>Examples</rubric><doctest_block classes="doctest" xml:space="preserve">>>> blosc.free_resources() >>></doctest_block></desc_content></desc><index entries="[('single', 'get_clib() (in module blosc)', 'blosc.get_clib', '', None)]"/><desc desctype="function" domain="py" noindex="False" objtype="function"><desc_signature class="" first="False" fullname="get_clib" ids="blosc.get_clib" module="blosc" names="blosc.get_clib"><desc_addname xml:space="preserve">blosc.</desc_addname><desc_name xml:space="preserve">get_clib</desc_name><desc_parameterlist xml:space="preserve"><desc_parameter xml:space="preserve">bytesobj</desc_parameter></desc_parameterlist></desc_signature><desc_content><paragraph>Return the name of the compression library for Blosc <literal>bytesobj</literal> buffer.</paragraph><field_list><field><field_name>Parameters</field_name><field_body><paragraph><strong>bytesobj</strong> : str / bytes</paragraph><block_quote><paragraph>The compressed buffer.</paragraph></block_quote></field_body></field><field><field_name>Returns</field_name><field_body><paragraph><strong>out</strong> : str</paragraph><block_quote><paragraph>The name of the compression library.</paragraph></block_quote></field_body></field></field_list></desc_content></desc><index entries="[('single', 'set_blocksize() (in module blosc)', 'blosc.set_blocksize', '', None)]"/><desc desctype="function" domain="py" noindex="False" objtype="function"><desc_signature class="" first="False" fullname="set_blocksize" ids="blosc.set_blocksize" module="blosc" names="blosc.set_blocksize"><desc_addname xml:space="preserve">blosc.</desc_addname><desc_name xml:space="preserve">set_blocksize</desc_name><desc_parameterlist xml:space="preserve"><desc_parameter xml:space="preserve">blocksize</desc_parameter></desc_parameterlist></desc_signature><desc_content><paragraph>Force the use of a specific blocksize. If 0, an automatic blocksize will be used (the default).</paragraph><rubric>Notes</rubric><paragraph>This is a low-level function and is recommened for expert users only.</paragraph><rubric>Examples</rubric><doctest_block classes="doctest" xml:space="preserve">>>> blosc.set_blocksize(512)</doctest_block></desc_content></desc><index entries="[('single', 'set_nthreads() (in module blosc)', 'blosc.set_nthreads', '', None)]"/><desc desctype="function" domain="py" noindex="False" objtype="function"><desc_signature class="" first="False" fullname="set_nthreads" ids="blosc.set_nthreads" module="blosc" names="blosc.set_nthreads"><desc_addname xml:space="preserve">blosc.</desc_addname><desc_name xml:space="preserve">set_nthreads</desc_name><desc_parameterlist xml:space="preserve"><desc_parameter xml:space="preserve">nthreads</desc_parameter></desc_parameterlist></desc_signature><desc_content><paragraph>Set the number of threads to be used during Blosc operation.</paragraph><field_list><field><field_name>Parameters</field_name><field_body><paragraph><strong>nthreads</strong> : int</paragraph><block_quote><paragraph>The number of threads to be used during Blosc operation.</paragraph></block_quote></field_body></field><field><field_name>Returns</field_name><field_body><paragraph><strong>out</strong> : int</paragraph><block_quote><paragraph>The previous number of used threads.</paragraph></block_quote></field_body></field><field><field_name>Raises</field_name><field_body><paragraph><strong>ValueError</strong></paragraph><block_quote><paragraph>If nthreads is larger that the maximum number of threads blosc can use.</paragraph></block_quote></field_body></field></field_list><rubric>Notes</rubric><paragraph>The number of threads for Blosc is the maximum number of cores detected on your machine (via <literal>detect_number_of_cores</literal>). In some cases Blosc gets better results if you set the number of threads to a value slightly below than your number of cores.</paragraph><rubric>Examples</rubric><paragraph>Set the number of threads to 2 and then to 1:</paragraph><doctest_block classes="doctest" xml:space="preserve">>>> oldn = blosc.set_nthreads(2) >>> blosc.set_nthreads(1) 2</doctest_block></desc_content></desc><index entries="[('single', 'set_releasegil() (in module blosc)', 'blosc.set_releasegil', '', None)]"/><desc desctype="function" domain="py" noindex="False" objtype="function"><desc_signature class="" first="False" fullname="set_releasegil" ids="blosc.set_releasegil" module="blosc" names="blosc.set_releasegil"><desc_addname xml:space="preserve">blosc.</desc_addname><desc_name xml:space="preserve">set_releasegil</desc_name><desc_parameterlist xml:space="preserve"><desc_parameter xml:space="preserve">gitstate</desc_parameter></desc_parameterlist></desc_signature><desc_content><paragraph>Sets a boolean on whether to release the Python global inter-lock (GIL) during c-blosc compress and decompress operations or not. This defaults to False.</paragraph><rubric>Notes</rubric><paragraph>Designed to be used with larger chunk sizes and a ThreadPool. There is a small performance penalty with releasing the GIL that will more harshly penalize small block sizes.</paragraph><rubric>Examples</rubric><doctest_block classes="doctest" xml:space="preserve">>>> oldReleaseState = blosc.set_releasegil(True)</doctest_block></desc_content></desc><index entries="[('single', 'print_versions() (in module blosc)', 'blosc.print_versions', '', None)]"/><desc desctype="function" domain="py" noindex="False" objtype="function"><desc_signature class="" first="False" fullname="print_versions" ids="blosc.print_versions" module="blosc" names="blosc.print_versions"><desc_addname xml:space="preserve">blosc.</desc_addname><desc_name xml:space="preserve">print_versions</desc_name><desc_parameterlist xml:space="preserve"/></desc_signature><desc_content><paragraph>Print all the versions of software that python-blosc relies on.</paragraph></desc_content></desc></section></section></document> SphinxTranslator.dispatch_visit calling visit_section for <section ids="library-reference" names="library\ reference"><title>Library Reference</title><section ids="first-level-variables" names="first\ level\ variables"><title>First level variables</title><index entries="[('single', '__version__', '__version__', '', None)]"/><desc desctype="attribute" domain="py" noindex="False" objtype="attribute"><desc_signature class="" first="False" fullname="__version__" ids="__version__" module="True" names="__version__"><desc_name xml:space="preserve">__version__</desc_name></desc_signature><desc_content><paragraph>The version of the blosc package.</paragraph></desc_content></desc><index entries="[('single', 'blosclib_version', 'blosclib_version', '', None)]"/><desc desctype="attribute" domain="py" noindex="False" objtype="attribute"><desc_signature class="" first="False" fullname="blosclib_version" ids="blosclib_version" module="True" names="blosclib_version"><desc_name xml:space="preserve">blosclib_version</desc_name></desc_signature><desc_content><paragraph>The version of the Blosc C library.</paragraph></desc_content></desc><index entries="[('single', 'clib_versions', 'clib_versions', '', None)]"/><desc desctype="attribute" domain="py" noindex="False" objtype="attribute"><desc_signature class="" first="False" fullname="clib_versions" ids="clib_versions" module="True" names="clib_versions"><desc_name xml:space="preserve">clib_versions</desc_name></desc_signature><desc_content><paragraph>A map for the versions of the compression libraries included in C library.</paragraph></desc_content></desc><index entries="[('single', 'cnames', 'cnames', '', None)]"/><desc desctype="attribute" domain="py" noindex="False" objtype="attribute"><desc_signature class="" first="False" fullname="cnames" ids="cnames" module="True" names="cnames"><desc_name xml:space="preserve">cnames</desc_name></desc_signature><desc_content><paragraph>The list of compressors included in C library.</paragraph></desc_content></desc><index entries="[('single', 'cname2clib', 'cname2clib', '', None)]"/><desc desctype="attribute" domain="py" noindex="False" objtype="attribute"><desc_signature class="" first="False" fullname="cname2clib" ids="cname2clib" module="True" names="cname2clib"><desc_name xml:space="preserve">cname2clib</desc_name></desc_signature><desc_content><paragraph>A map between compressor names and its libraries (or formats).</paragraph></desc_content></desc><index entries="[('single', 'ncores', 'ncores', '', None)]"/><desc desctype="attribute" domain="py" noindex="False" objtype="attribute"><desc_signature class="" first="False" fullname="ncores" ids="ncores" module="True" names="ncores"><desc_name xml:space="preserve">ncores</desc_name></desc_signature><desc_content><paragraph>The number of cores detected.</paragraph></desc_content></desc></section><section ids="module-blosc public-functions" names="public\ functions"><title>Public functions</title><index entries="[('single', 'blosc (module)', 'module-blosc', '', None)]"/><index entries="[('single', 'compress() (in module blosc)', 'blosc.compress', '', None)]"/><desc desctype="function" domain="py" noindex="False" objtype="function"><desc_signature class="" first="False" fullname="compress" ids="blosc.compress" module="blosc" names="blosc.compress"><desc_addname xml:space="preserve">blosc.</desc_addname><desc_name xml:space="preserve">compress</desc_name><desc_parameterlist xml:space="preserve"><desc_parameter xml:space="preserve">bytesobj[, typesize=8, clevel=9, shuffle=blosc.SHUFFLE, cname='blosclz']]</desc_parameter></desc_parameterlist></desc_signature><desc_content><paragraph>Compress bytesobj, with a given type size.</paragraph><field_list><field><field_name>Parameters</field_name><field_body><paragraph><strong>bytesobj</strong> : bytes-like object (supporting the buffer interface)</paragraph><block_quote><paragraph>The data to be compressed.</paragraph></block_quote><paragraph><strong>typesize</strong> : int</paragraph><block_quote><paragraph>The data type size.</paragraph></block_quote><paragraph><strong>clevel</strong> : int (optional)</paragraph><block_quote><paragraph>The compression level from 0 (no compression) to 9 (maximum compression). The default is 9.</paragraph></block_quote><paragraph><strong>shuffle</strong> : int (optional)</paragraph><block_quote><paragraph>The shuffle filter to be activated. Allowed values are blosc.NOSHUFFLE, blosc.SHUFFLE and blosc.BITSHUFFLE. The default is blosc.SHUFFLE.</paragraph></block_quote><paragraph><strong>cname</strong> : string (optional)</paragraph><block_quote><paragraph>The name of the compressor used internally in Blosc. It can be any of the supported by Blosc (‘blosclz’, ‘lz4’, ‘lz4hc’, ‘snappy’, ‘zlib’, ‘zstd’ and maybe others too). The default is ‘blosclz’.</paragraph></block_quote></field_body></field><field><field_name>Returns</field_name><field_body><paragraph><strong>out</strong> : str / bytes</paragraph><block_quote><paragraph>The compressed data in form of a Python str / bytes object.</paragraph></block_quote></field_body></field><field><field_name>Raises</field_name><field_body><paragraph><strong>TypeError</strong></paragraph><block_quote><paragraph>If bytesobj doesn’t support the buffer interface.</paragraph></block_quote><paragraph><strong>ValueError</strong></paragraph><block_quote><paragraph>If bytesobj is too long. If typesize is not within the allowed range. If clevel is not within the allowed range. If cname is not a valid codec.</paragraph></block_quote></field_body></field></field_list><rubric>Examples</rubric><doctest_block classes="doctest" xml:space="preserve">>>> import array >>> a = array.array('i', range(1000*1000)) >>> a_bytesobj = a.tostring() >>> c_bytesobj = blosc.compress(a_bytesobj, typesize=4) >>> len(c_bytesobj) < len(a_bytesobj) True</doctest_block></desc_content></desc><index entries="[('single', 'compress_ptr() (in module blosc)', 'blosc.compress_ptr', '', None)]"/><desc desctype="function" domain="py" noindex="False" objtype="function"><desc_signature class="" first="False" fullname="compress_ptr" ids="blosc.compress_ptr" module="blosc" names="blosc.compress_ptr"><desc_addname xml:space="preserve">blosc.</desc_addname><desc_name xml:space="preserve">compress_ptr</desc_name><desc_parameterlist xml:space="preserve"><desc_parameter xml:space="preserve">address, items[, typesize=8, clevel=9, shuffle=blosc.SHUFFLE, cname='blosclz']]</desc_parameter></desc_parameterlist></desc_signature><desc_content><paragraph>Compress the data at address with given items and typesize.</paragraph><field_list><field><field_name>Parameters</field_name><field_body><paragraph><strong>address</strong> : int or long</paragraph><block_quote><paragraph>the pointer to the data to be compressed</paragraph></block_quote><paragraph><strong>items</strong> : int</paragraph><block_quote><paragraph>The number of items (of typesize) to be compressed.</paragraph></block_quote><paragraph><strong>typesize</strong> : int</paragraph><block_quote><paragraph>The data type size.</paragraph></block_quote><paragraph><strong>clevel</strong> : int (optional)</paragraph><block_quote><paragraph>The compression level from 0 (no compression) to 9 (maximum compression). The default is 9.</paragraph></block_quote><paragraph><strong>shuffle</strong> : int (optional)</paragraph><block_quote><paragraph>The shuffle filter to be activated. Allowed values are blosc.NOSHUFFLE, blosc.SHUFFLE and blosc.BITSHUFFLE. The default is blosc.SHUFFLE.</paragraph></block_quote><paragraph><strong>cname</strong> : string (optional)</paragraph><block_quote><paragraph>The name of the compressor used internally in Blosc. It can be any of the supported by Blosc (‘blosclz’, ‘lz4’, ‘lz4hc’, ‘snappy’, ‘zlib’, ‘zstd’ and maybe others too). The default is ‘blosclz’.</paragraph></block_quote></field_body></field><field><field_name>Returns</field_name><field_body><paragraph><strong>out</strong> : str / bytes</paragraph><block_quote><paragraph>The compressed data in form of a Python str / bytes object.</paragraph></block_quote></field_body></field><field><field_name>Raises</field_name><field_body><paragraph><strong>TypeError</strong></paragraph><block_quote><paragraph>If address is not of type int or long.</paragraph></block_quote><paragraph><strong>ValueError</strong></paragraph><block_quote><paragraph>If items * typesize is larger than the maximum allowed buffer size. If typesize is not within the allowed range. If clevel is not within the allowed range. If cname is not within the supported compressors.</paragraph></block_quote></field_body></field></field_list><rubric>Notes</rubric><paragraph>This function can be used anywhere that a memory address is available in Python. For example the Numpy “__array_interface__[‘data’][0]†construct, or when using the ctypes modules.</paragraph><paragraph>Importantly, the user is responsible for making sure that the memory address is valid and that the memory pointed to is contiguous. Passing a non-valid address has a high likelihood of crashing the interpreter by segfault.</paragraph><rubric>Examples</rubric><doctest_block classes="doctest" xml:space="preserve">>>> import numpy >>> items = 7 >>> np_array = numpy.arange(items) >>> c = blosc.compress_ptr(np_array.__array_interface__['data'][0], items, np_array.dtype.itemsize) >>> d = blosc.decompress(c) >>> np_ans = numpy.fromstring(d, dtype=np_array.dtype) >>> (np_array == np_ans).all() True</doctest_block><doctest_block classes="doctest" xml:space="preserve">>>> import ctypes >>> typesize = 8 >>> data = [float(i) for i in range(items)] >>> Array = ctypes.c_double * items >>> a = Array(*data) >>> c = blosc.compress_ptr(ctypes.addressof(a), items, typesize) >>> d = blosc.decompress(c) >>> import struct >>> ans = [struct.unpack('d', d[i:i+typesize])[0] for i in range(0, items*typesize, typesize)] >>> data == ans True</doctest_block></desc_content></desc><index entries="[('single', 'decompress() (in module blosc)', 'blosc.decompress', '', None)]"/><desc desctype="function" domain="py" noindex="False" objtype="function"><desc_signature class="" first="False" fullname="decompress" ids="blosc.decompress" module="blosc" names="blosc.decompress"><desc_addname xml:space="preserve">blosc.</desc_addname><desc_name xml:space="preserve">decompress</desc_name><desc_parameterlist xml:space="preserve"><desc_parameter xml:space="preserve">bytesobj</desc_parameter></desc_parameterlist></desc_signature><desc_content><paragraph>Decompresses a bytesobj compressed object.</paragraph><field_list><field><field_name>Parameters</field_name><field_body><paragraph><strong>bytesobj</strong> : str / bytes</paragraph><block_quote><paragraph>The data to be decompressed.</paragraph></block_quote><paragraph><strong>as_bytearray</strong> : bool, optional</paragraph><block_quote><paragraph>If this flag is True then the return type will be a bytearray object instead of a bytesobject.</paragraph></block_quote></field_body></field><field><field_name>Returns</field_name><field_body><paragraph><strong>out</strong> : str / bytes or bytearray</paragraph><block_quote><paragraph>The decompressed data in form of a Python str / bytes object. If as_bytearray is True then this will be a bytearray object, otherwise this will be a str/ bytes object.</paragraph></block_quote></field_body></field><field><field_name>Raises</field_name><field_body><paragraph><strong>TypeError</strong></paragraph><block_quote><paragraph>If bytesobj is not of type bytes or string.</paragraph></block_quote></field_body></field></field_list><rubric>Examples</rubric><doctest_block classes="doctest" xml:space="preserve">>>> import array >>> a = array.array('i', range(1000*1000)) >>> a_bytesobj = a.tostring() >>> c_bytesobj = blosc.compress(a_bytesobj, typesize=4) >>> a_bytesobj2 = blosc.decompress(c_bytesobj) >>> a_bytesobj == a_bytesobj2 True >>> b"" == blosc.decompress(blosc.compress(b"", 1)) True >>> b"1"*7 == blosc.decompress(blosc.compress(b"1"*7, 8)) True >>> type(blosc.decompress(blosc.compress(b"1"*7, 8), ... as_bytearray=True)) is bytearray True</doctest_block></desc_content></desc><index entries="[('single', 'decompress_ptr() (in module blosc)', 'blosc.decompress_ptr', '', None)]"/><desc desctype="function" domain="py" noindex="False" objtype="function"><desc_signature class="" first="False" fullname="decompress_ptr" ids="blosc.decompress_ptr" module="blosc" names="blosc.decompress_ptr"><desc_addname xml:space="preserve">blosc.</desc_addname><desc_name xml:space="preserve">decompress_ptr</desc_name><desc_parameterlist xml:space="preserve"><desc_parameter xml:space="preserve">bytesobj</desc_parameter><desc_parameter xml:space="preserve">address</desc_parameter></desc_parameterlist></desc_signature><desc_content><paragraph>Decompresses a bytesobj compressed object into the memory at address.</paragraph><field_list><field><field_name>Parameters</field_name><field_body><paragraph><strong>bytesobj</strong> : str / bytes</paragraph><block_quote><paragraph>The data to be decompressed.</paragraph></block_quote><paragraph><strong>address</strong> : int or long</paragraph><block_quote><paragraph>the pointer to the data to be compressed</paragraph></block_quote></field_body></field><field><field_name>Returns</field_name><field_body><paragraph><strong>nbytes</strong> : int</paragraph><block_quote><paragraph>the number of bytes written to the buffer</paragraph></block_quote></field_body></field><field><field_name>Raises</field_name><field_body><paragraph><strong>TypeError</strong></paragraph><block_quote><paragraph>If bytesobj is not of type bytes or string. If address is not of type int or long.</paragraph></block_quote></field_body></field></field_list><rubric>Notes</rubric><paragraph>This function can be used anywhere that a memory address is available in Python. For example the Numpy “__array_interface__[‘data’][0]†construct, or when using the ctypes modules.</paragraph><paragraph>Importantly, the user is responsible for making sure that the memory address is valid and that the memory pointed to is contiguous and can be written to. Passing a non-valid address has a high likelihood of crashing the interpreter by segfault.</paragraph><rubric>Examples</rubric><doctest_block classes="doctest" xml:space="preserve">>>> import numpy >>> items = 7 >>> np_array = numpy.arange(items) >>> c = blosc.compress_ptr(np_array.__array_interface__['data'][0], items, np_array.dtype.itemsize) >>> np_ans = numpy.empty(items, dtype=np_array.dtype) >>> nbytes = blosc.decompress_ptr(c, np_ans.__array_interface__['data'][0]) >>> (np_array == np_ans).all() True >>> nbytes == items * np_array.dtype.itemsize True</doctest_block><doctest_block classes="doctest" xml:space="preserve">>>> import ctypes >>> typesize = 8 >>> data = [float(i) for i in range(items)] >>> Array = ctypes.c_double * items >>> in_array = Array(*data) >>> c = blosc.compress_ptr(ctypes.addressof(in_array), items, typesize) >>> out_array = ctypes.create_string_buffer(items*typesize) >>> nbytes = blosc.decompress_ptr(c, ctypes.addressof(out_array)) >>> import struct >>> ans = [struct.unpack('d', out_array[i:i+typesize])[0] for i in range(0, items*typesize, typesize)] >>> data == ans True >>> nbytes == items * typesize True</doctest_block></desc_content></desc><index entries="[('single', 'pack_array() (in module blosc)', 'blosc.pack_array', '', None)]"/><desc desctype="function" domain="py" noindex="False" objtype="function"><desc_signature class="" first="False" fullname="pack_array" ids="blosc.pack_array" module="blosc" names="blosc.pack_array"><desc_addname xml:space="preserve">blosc.</desc_addname><desc_name xml:space="preserve">pack_array</desc_name><desc_parameterlist xml:space="preserve"><desc_parameter xml:space="preserve">array[, clevel=9, shuffle=blosc.SHUFFLE, cname='blosclz']]</desc_parameter></desc_parameterlist></desc_signature><desc_content><paragraph>Pack (compress) a NumPy array.</paragraph><field_list><field><field_name>Parameters</field_name><field_body><paragraph><strong>array</strong> : ndarray</paragraph><block_quote><paragraph>The NumPy array to be packed.</paragraph></block_quote><paragraph><strong>clevel</strong> : int (optional)</paragraph><block_quote><paragraph>The compression level from 0 (no compression) to 9 (maximum compression). The default is 9.</paragraph></block_quote><paragraph><strong>shuffle</strong> : int (optional)</paragraph><block_quote><paragraph>The shuffle filter to be activated. Allowed values are blosc.NOSHUFFLE, blosc.SHUFFLE and blosc.BITSHUFFLE. The default is blosc.SHUFFLE.</paragraph></block_quote><paragraph><strong>cname</strong> : string (optional)</paragraph><block_quote><paragraph>The name of the compressor used internally in Blosc. It can be any of the supported by Blosc (‘blosclz’, ‘lz4’, ‘lz4hc’, ‘snappy’, ‘zlib’, ‘zstd’ and maybe others too). The default is ‘blosclz’.</paragraph></block_quote></field_body></field><field><field_name>Returns</field_name><field_body><paragraph><strong>out</strong> : str / bytes</paragraph><block_quote><paragraph>The packed array in form of a Python str / bytes object.</paragraph></block_quote></field_body></field><field><field_name>Raises</field_name><field_body><paragraph><strong>TypeError</strong></paragraph><block_quote><paragraph>If array does not quack like a numpy ndarray.</paragraph></block_quote><paragraph><strong>ValueError</strong></paragraph><block_quote><definition_list><definition_list_item><term>If array.itemsize * array.size is larger than the maximum allowed</term><definition><paragraph>buffer size.</paragraph></definition></definition_list_item></definition_list><paragraph>If typesize is not within the allowed range. If clevel is not within the allowed range. If cname is not within the supported compressors.</paragraph></block_quote></field_body></field></field_list><rubric>Examples</rubric><doctest_block classes="doctest" xml:space="preserve">>>> import numpy >>> a = numpy.arange(1e6) >>> parray = blosc.pack_array(a) >>> len(parray) < a.size*a.itemsize True</doctest_block></desc_content></desc><index entries="[('single', 'unpack_array() (in module blosc)', 'blosc.unpack_array', '', None)]"/><desc desctype="function" domain="py" noindex="False" objtype="function"><desc_signature class="" first="False" fullname="unpack_array" ids="blosc.unpack_array" module="blosc" names="blosc.unpack_array"><desc_addname xml:space="preserve">blosc.</desc_addname><desc_name xml:space="preserve">unpack_array</desc_name><desc_parameterlist xml:space="preserve"><desc_parameter xml:space="preserve">packed_array</desc_parameter></desc_parameterlist></desc_signature><desc_content><paragraph>Unpack (decompress) a packed NumPy array.</paragraph><field_list><field><field_name>Parameters</field_name><field_body><paragraph><strong>packed_array</strong> : str / bytes</paragraph><block_quote><paragraph>The packed array to be decompressed.</paragraph></block_quote></field_body></field><field><field_name>Returns</field_name><field_body><paragraph><strong>out</strong> : ndarray</paragraph><block_quote><paragraph>The decompressed data in form of a NumPy array.</paragraph></block_quote></field_body></field><field><field_name>Raises</field_name><field_body><paragraph><strong>TypeError</strong></paragraph><block_quote><paragraph>If packed_array is not of type bytes or string.</paragraph></block_quote></field_body></field></field_list><rubric>Examples</rubric><doctest_block classes="doctest" xml:space="preserve">>>> import numpy >>> a = numpy.arange(1e6) >>> parray = blosc.pack_array(a) >>> len(parray) < a.size*a.itemsize True >>> a2 = blosc.unpack_array(parray) >>> numpy.alltrue(a == a2) True</doctest_block></desc_content></desc></section><section ids="module-blosc utilities" names="utilities"><title>Utilities</title><index entries="[('single', 'blosc (module)', 'module-blosc', '', None)]"/><index entries="[('single', 'clib_info() (in module blosc)', 'blosc.clib_info', '', None)]"/><desc desctype="function" domain="py" noindex="False" objtype="function"><desc_signature class="" first="False" fullname="clib_info" ids="blosc.clib_info" module="blosc" names="blosc.clib_info"><desc_addname xml:space="preserve">blosc.</desc_addname><desc_name xml:space="preserve">clib_info</desc_name><desc_parameterlist xml:space="preserve"><desc_parameter xml:space="preserve">cname</desc_parameter></desc_parameterlist></desc_signature><desc_content><paragraph>Return info for compression libraries in C library.</paragraph><field_list><field><field_name>Parameters</field_name><field_body><paragraph><strong>cname</strong> : str</paragraph><block_quote><paragraph>The compressor name.</paragraph></block_quote></field_body></field><field><field_name>Returns</field_name><field_body><paragraph><strong>out</strong> : tuple</paragraph><block_quote><paragraph>The associated library name and version.</paragraph></block_quote></field_body></field></field_list></desc_content></desc><index entries="[('single', 'compressor_list() (in module blosc)', 'blosc.compressor_list', '', None)]"/><desc desctype="function" domain="py" noindex="False" objtype="function"><desc_signature class="" first="False" fullname="compressor_list" ids="blosc.compressor_list" module="blosc" names="blosc.compressor_list"><desc_addname xml:space="preserve">blosc.</desc_addname><desc_name xml:space="preserve">compressor_list</desc_name><desc_parameterlist xml:space="preserve"/></desc_signature><desc_content><paragraph>Returns a list of compressors available in C library.</paragraph><field_list><field><field_name>Parameters</field_name><field_body><paragraph><strong>None</strong></paragraph></field_body></field><field><field_name>Returns</field_name><field_body><paragraph><strong>out</strong> : list</paragraph><block_quote><paragraph>The list of names.</paragraph></block_quote></field_body></field></field_list></desc_content></desc><index entries="[('single', 'detect_number_of_cores() (in module blosc)', 'blosc.detect_number_of_cores', '', None)]"/><desc desctype="function" domain="py" noindex="False" objtype="function"><desc_signature class="" first="False" fullname="detect_number_of_cores" ids="blosc.detect_number_of_cores" module="blosc" names="blosc.detect_number_of_cores"><desc_addname xml:space="preserve">blosc.</desc_addname><desc_name xml:space="preserve">detect_number_of_cores</desc_name><desc_parameterlist xml:space="preserve"/></desc_signature><desc_content><paragraph>Detect the number of cores in this system.</paragraph><field_list><field><field_name>Returns</field_name><field_body><paragraph><strong>out</strong> : int</paragraph><block_quote><paragraph>The number of cores in this system.</paragraph></block_quote></field_body></field></field_list></desc_content></desc><index entries="[('single', 'free_resources() (in module blosc)', 'blosc.free_resources', '', None)]"/><desc desctype="function" domain="py" noindex="False" objtype="function"><desc_signature class="" first="False" fullname="free_resources" ids="blosc.free_resources" module="blosc" names="blosc.free_resources"><desc_addname xml:space="preserve">blosc.</desc_addname><desc_name xml:space="preserve">free_resources</desc_name><desc_parameterlist xml:space="preserve"/></desc_signature><desc_content><paragraph>Free possible memory temporaries and thread resources.</paragraph><field_list><field><field_name>Returns</field_name><field_body><paragraph><strong>out</strong> : None</paragraph></field_body></field></field_list><rubric>Notes</rubric><paragraph>Blosc maintain a pool of threads waiting for work as well as some temporary space. You can use this function to release these resources when you are not going to use Blosc for a long while.</paragraph><rubric>Examples</rubric><doctest_block classes="doctest" xml:space="preserve">>>> blosc.free_resources() >>></doctest_block></desc_content></desc><index entries="[('single', 'get_clib() (in module blosc)', 'blosc.get_clib', '', None)]"/><desc desctype="function" domain="py" noindex="False" objtype="function"><desc_signature class="" first="False" fullname="get_clib" ids="blosc.get_clib" module="blosc" names="blosc.get_clib"><desc_addname xml:space="preserve">blosc.</desc_addname><desc_name xml:space="preserve">get_clib</desc_name><desc_parameterlist xml:space="preserve"><desc_parameter xml:space="preserve">bytesobj</desc_parameter></desc_parameterlist></desc_signature><desc_content><paragraph>Return the name of the compression library for Blosc <literal>bytesobj</literal> buffer.</paragraph><field_list><field><field_name>Parameters</field_name><field_body><paragraph><strong>bytesobj</strong> : str / bytes</paragraph><block_quote><paragraph>The compressed buffer.</paragraph></block_quote></field_body></field><field><field_name>Returns</field_name><field_body><paragraph><strong>out</strong> : str</paragraph><block_quote><paragraph>The name of the compression library.</paragraph></block_quote></field_body></field></field_list></desc_content></desc><index entries="[('single', 'set_blocksize() (in module blosc)', 'blosc.set_blocksize', '', None)]"/><desc desctype="function" domain="py" noindex="False" objtype="function"><desc_signature class="" first="False" fullname="set_blocksize" ids="blosc.set_blocksize" module="blosc" names="blosc.set_blocksize"><desc_addname xml:space="preserve">blosc.</desc_addname><desc_name xml:space="preserve">set_blocksize</desc_name><desc_parameterlist xml:space="preserve"><desc_parameter xml:space="preserve">blocksize</desc_parameter></desc_parameterlist></desc_signature><desc_content><paragraph>Force the use of a specific blocksize. If 0, an automatic blocksize will be used (the default).</paragraph><rubric>Notes</rubric><paragraph>This is a low-level function and is recommened for expert users only.</paragraph><rubric>Examples</rubric><doctest_block classes="doctest" xml:space="preserve">>>> blosc.set_blocksize(512)</doctest_block></desc_content></desc><index entries="[('single', 'set_nthreads() (in module blosc)', 'blosc.set_nthreads', '', None)]"/><desc desctype="function" domain="py" noindex="False" objtype="function"><desc_signature class="" first="False" fullname="set_nthreads" ids="blosc.set_nthreads" module="blosc" names="blosc.set_nthreads"><desc_addname xml:space="preserve">blosc.</desc_addname><desc_name xml:space="preserve">set_nthreads</desc_name><desc_parameterlist xml:space="preserve"><desc_parameter xml:space="preserve">nthreads</desc_parameter></desc_parameterlist></desc_signature><desc_content><paragraph>Set the number of threads to be used during Blosc operation.</paragraph><field_list><field><field_name>Parameters</field_name><field_body><paragraph><strong>nthreads</strong> : int</paragraph><block_quote><paragraph>The number of threads to be used during Blosc operation.</paragraph></block_quote></field_body></field><field><field_name>Returns</field_name><field_body><paragraph><strong>out</strong> : int</paragraph><block_quote><paragraph>The previous number of used threads.</paragraph></block_quote></field_body></field><field><field_name>Raises</field_name><field_body><paragraph><strong>ValueError</strong></paragraph><block_quote><paragraph>If nthreads is larger that the maximum number of threads blosc can use.</paragraph></block_quote></field_body></field></field_list><rubric>Notes</rubric><paragraph>The number of threads for Blosc is the maximum number of cores detected on your machine (via <literal>detect_number_of_cores</literal>). In some cases Blosc gets better results if you set the number of threads to a value slightly below than your number of cores.</paragraph><rubric>Examples</rubric><paragraph>Set the number of threads to 2 and then to 1:</paragraph><doctest_block classes="doctest" xml:space="preserve">>>> oldn = blosc.set_nthreads(2) >>> blosc.set_nthreads(1) 2</doctest_block></desc_content></desc><index entries="[('single', 'set_releasegil() (in module blosc)', 'blosc.set_releasegil', '', None)]"/><desc desctype="function" domain="py" noindex="False" objtype="function"><desc_signature class="" first="False" fullname="set_releasegil" ids="blosc.set_releasegil" module="blosc" names="blosc.set_releasegil"><desc_addname xml:space="preserve">blosc.</desc_addname><desc_name xml:space="preserve">set_releasegil</desc_name><desc_parameterlist xml:space="preserve"><desc_parameter xml:space="preserve">gitstate</desc_parameter></desc_parameterlist></desc_signature><desc_content><paragraph>Sets a boolean on whether to release the Python global inter-lock (GIL) during c-blosc compress and decompress operations or not. This defaults to False.</paragraph><rubric>Notes</rubric><paragraph>Designed to be used with larger chunk sizes and a ThreadPool. There is a small performance penalty with releasing the GIL that will more harshly penalize small block sizes.</paragraph><rubric>Examples</rubric><doctest_block classes="doctest" xml:space="preserve">>>> oldReleaseState = blosc.set_releasegil(True)</doctest_block></desc_content></desc><index entries="[('single', 'print_versions() (in module blosc)', 'blosc.print_versions', '', None)]"/><desc desctype="function" domain="py" noindex="False" objtype="function"><desc_signature class="" first="False" fullname="print_versions" ids="blosc.print_versions" module="blosc" names="blosc.print_versions"><desc_addname xml:space="preserve">blosc.</desc_addname><desc_name xml:space="preserve">print_versions</desc_name><desc_parameterlist xml:space="preserve"/></desc_signature><desc_content><paragraph>Print all the versions of software that python-blosc relies on.</paragraph></desc_content></desc></section></section> SphinxTranslator.dispatch_visit calling visit_title for <title>Library Reference</title> SphinxTranslator.dispatch_visit calling visit_Text for Library Reference SphinxTranslator.dispatch_departure calling depart_Text for Library Reference SphinxTranslator.dispatch_departure calling depart_title for <title>Library Reference</title> SphinxTranslator.dispatch_visit calling visit_section for <section ids="first-level-variables" names="first\ level\ variables"><title>First level variables</title><index entries="[('single', '__version__', '__version__', '', None)]"/><desc desctype="attribute" domain="py" noindex="False" objtype="attribute"><desc_signature class="" first="False" fullname="__version__" ids="__version__" module="True" names="__version__"><desc_name xml:space="preserve">__version__</desc_name></desc_signature><desc_content><paragraph>The version of the blosc package.</paragraph></desc_content></desc><index entries="[('single', 'blosclib_version', 'blosclib_version', '', None)]"/><desc desctype="attribute" domain="py" noindex="False" objtype="attribute"><desc_signature class="" first="False" fullname="blosclib_version" ids="blosclib_version" module="True" names="blosclib_version"><desc_name xml:space="preserve">blosclib_version</desc_name></desc_signature><desc_content><paragraph>The version of the Blosc C library.</paragraph></desc_content></desc><index entries="[('single', 'clib_versions', 'clib_versions', '', None)]"/><desc desctype="attribute" domain="py" noindex="False" objtype="attribute"><desc_signature class="" first="False" fullname="clib_versions" ids="clib_versions" module="True" names="clib_versions"><desc_name xml:space="preserve">clib_versions</desc_name></desc_signature><desc_content><paragraph>A map for the versions of the compression libraries included in C library.</paragraph></desc_content></desc><index entries="[('single', 'cnames', 'cnames', '', None)]"/><desc desctype="attribute" domain="py" noindex="False" objtype="attribute"><desc_signature class="" first="False" fullname="cnames" ids="cnames" module="True" names="cnames"><desc_name xml:space="preserve">cnames</desc_name></desc_signature><desc_content><paragraph>The list of compressors included in C library.</paragraph></desc_content></desc><index entries="[('single', 'cname2clib', 'cname2clib', '', None)]"/><desc desctype="attribute" domain="py" noindex="False" objtype="attribute"><desc_signature class="" first="False" fullname="cname2clib" ids="cname2clib" module="True" names="cname2clib"><desc_name xml:space="preserve">cname2clib</desc_name></desc_signature><desc_content><paragraph>A map between compressor names and its libraries (or formats).</paragraph></desc_content></desc><index entries="[('single', 'ncores', 'ncores', '', None)]"/><desc desctype="attribute" domain="py" noindex="False" objtype="attribute"><desc_signature class="" first="False" fullname="ncores" ids="ncores" module="True" names="ncores"><desc_name xml:space="preserve">ncores</desc_name></desc_signature><desc_content><paragraph>The number of cores detected.</paragraph></desc_content></desc></section> SphinxTranslator.dispatch_visit calling visit_title for <title>First level variables</title> SphinxTranslator.dispatch_visit calling visit_Text for First level variables SphinxTranslator.dispatch_departure calling depart_Text for First level variables SphinxTranslator.dispatch_departure calling depart_title for <title>First level variables</title> SphinxTranslator.dispatch_visit calling visit_index for <index entries="[('single', '__version__', '__version__', '', None)]"/> SphinxTranslator.dispatch_visit calling visit_desc for <desc desctype="attribute" domain="py" noindex="False" objtype="attribute"><desc_signature class="" first="False" fullname="__version__" ids="__version__" module="True" names="__version__"><desc_name xml:space="preserve">__version__</desc_name></desc_signature><desc_content><paragraph>The version of the blosc package.</paragraph></desc_content></desc> SphinxTranslator.dispatch_visit calling visit_desc_signature for <desc_signature class="" first="False" fullname="__version__" ids="__version__" module="True" names="__version__"><desc_name xml:space="preserve">__version__</desc_name></desc_signature> SphinxTranslator.dispatch_visit calling visit_desc_name for <desc_name xml:space="preserve">__version__</desc_name> SphinxTranslator.dispatch_visit calling visit_Text for __version__ SphinxTranslator.dispatch_departure calling depart_Text for __version__ SphinxTranslator.dispatch_departure calling depart_desc_name for <desc_name xml:space="preserve">__version__</desc_name> SphinxTranslator.dispatch_departure calling depart_desc_signature for <desc_signature class="" first="False" fullname="__version__" ids="__version__" module="True" names="__version__"><desc_name xml:space="preserve">__version__</desc_name></desc_signature> SphinxTranslator.dispatch_visit calling visit_desc_content for <desc_content><paragraph>The version of the blosc package.</paragraph></desc_content> SphinxTranslator.dispatch_visit calling visit_paragraph for <paragraph>The version of the blosc package.</paragraph> SphinxTranslator.dispatch_visit calling visit_Text for The version of the blosc package. SphinxTranslator.dispatch_departure calling depart_Text for The version of the blosc package. SphinxTranslator.dispatch_departure calling depart_paragraph for <paragraph>The version of the blosc package.</paragraph> SphinxTranslator.dispatch_departure calling depart_desc_content for <desc_content><paragraph>The version of the blosc package.</paragraph></desc_content> SphinxTranslator.dispatch_departure calling depart_desc for <desc desctype="attribute" domain="py" noindex="False" objtype="attribute"><desc_signature class="" first="False" fullname="__version__" ids="__version__" module="True" names="__version__"><desc_name xml:space="preserve">__version__</desc_name></desc_signature><desc_content><paragraph>The version of the blosc package.</paragraph></desc_content></desc> SphinxTranslator.dispatch_visit calling visit_index for <index entries="[('single', 'blosclib_version', 'blosclib_version', '', None)]"/> SphinxTranslator.dispatch_visit calling visit_desc for <desc desctype="attribute" domain="py" noindex="False" objtype="attribute"><desc_signature class="" first="False" fullname="blosclib_version" ids="blosclib_version" module="True" names="blosclib_version"><desc_name xml:space="preserve">blosclib_version</desc_name></desc_signature><desc_content><paragraph>The version of the Blosc C library.</paragraph></desc_content></desc> SphinxTranslator.dispatch_visit calling visit_desc_signature for <desc_signature class="" first="False" fullname="blosclib_version" ids="blosclib_version" module="True" names="blosclib_version"><desc_name xml:space="preserve">blosclib_version</desc_name></desc_signature> SphinxTranslator.dispatch_visit calling visit_desc_name for <desc_name xml:space="preserve">blosclib_version</desc_name> SphinxTranslator.dispatch_visit calling visit_Text for blosclib_version SphinxTranslator.dispatch_departure calling depart_Text for blosclib_version SphinxTranslator.dispatch_departure calling depart_desc_name for <desc_name xml:space="preserve">blosclib_version</desc_name> SphinxTranslator.dispatch_departure calling depart_desc_signature for <desc_signature class="" first="False" fullname="blosclib_version" ids="blosclib_version" module="True" names="blosclib_version"><desc_name xml:space="preserve">blosclib_version</desc_name></desc_signature> SphinxTranslator.dispatch_visit calling visit_desc_content for <desc_content><paragraph>The version of the Blosc C library.</paragraph></desc_content> SphinxTranslator.dispatch_visit calling visit_paragraph for <paragraph>The version of the Blosc C library.</paragraph> SphinxTranslator.dispatch_visit calling visit_Text for The version of the Blosc C library. SphinxTranslator.dispatch_departure calling depart_Text for The version of the Blosc C library. SphinxTranslator.dispatch_departure calling depart_paragraph for <paragraph>The version of the Blosc C library.</paragraph> SphinxTranslator.dispatch_departure calling depart_desc_content for <desc_content><paragraph>The version of the Blosc C library.</paragraph></desc_content> SphinxTranslator.dispatch_departure calling depart_desc for <desc desctype="attribute" domain="py" noindex="False" objtype="attribute"><desc_signature class="" first="False" fullname="blosclib_version" ids="blosclib_version" module="True" names="blosclib_version"><desc_name xml:space="preserve">blosclib_version</desc_name></desc_signature><desc_content><paragraph>The version of the Blosc C library.</paragraph></desc_content></desc> SphinxTranslator.dispatch_visit calling visit_index for <index entries="[('single', 'clib_versions', 'clib_versions', '', None)]"/> SphinxTranslator.dispatch_visit calling visit_desc for <desc desctype="attribute" domain="py" noindex="False" objtype="attribute"><desc_signature class="" first="False" fullname="clib_versions" ids="clib_versions" module="True" names="clib_versions"><desc_name xml:space="preserve">clib_versions</desc_name></desc_signature><desc_content><paragraph>A map for the versions of the compression libraries included in C library.</paragraph></desc_content></desc> SphinxTranslator.dispatch_visit calling visit_desc_signature for <desc_signature class="" first="False" fullname="clib_versions" ids="clib_versions" module="True" names="clib_versions"><desc_name xml:space="preserve">clib_versions</desc_name></desc_signature> SphinxTranslator.dispatch_visit calling visit_desc_name for <desc_name xml:space="preserve">clib_versions</desc_name> SphinxTranslator.dispatch_visit calling visit_Text for clib_versions SphinxTranslator.dispatch_departure calling depart_Text for clib_versions SphinxTranslator.dispatch_departure calling depart_desc_name for <desc_name xml:space="preserve">clib_versions</desc_name> SphinxTranslator.dispatch_departure calling depart_desc_signature for <desc_signature class="" first="False" fullname="clib_versions" ids="clib_versions" module="True" names="clib_versions"><desc_name xml:space="preserve">clib_versions</desc_name></desc_signature> SphinxTranslator.dispatch_visit calling visit_desc_content for <desc_content><paragraph>A map for the versions of the compression libraries included in C library.</paragraph></desc_content> SphinxTranslator.dispatch_visit calling visit_paragraph for <paragraph>A map for the versions of the compression libraries included in C library.</paragraph> SphinxTranslator.dispatch_visit calling visit_Text for A map for the versions of the compression libraries included in C library. SphinxTranslator.dispatch_departure calling depart_Text for A map for the versions of the compression libraries included in C library. SphinxTranslator.dispatch_departure calling depart_paragraph for <paragraph>A map for the versions of the compression libraries included in C library.</paragraph> SphinxTranslator.dispatch_departure calling depart_desc_content for <desc_content><paragraph>A map for the versions of the compression libraries included in C library.</paragraph></desc_content> SphinxTranslator.dispatch_departure calling depart_desc for <desc desctype="attribute" domain="py" noindex="False" objtype="attribute"><desc_signature class="" first="False" fullname="clib_versions" ids="clib_versions" module="True" names="clib_versions"><desc_name xml:space="preserve">clib_versions</desc_name></desc_signature><desc_content><paragraph>A map for the versions of the compression libraries included in C library.</paragraph></desc_content></desc> SphinxTranslator.dispatch_visit calling visit_index for <index entries="[('single', 'cnames', 'cnames', '', None)]"/> SphinxTranslator.dispatch_visit calling visit_desc for <desc desctype="attribute" domain="py" noindex="False" objtype="attribute"><desc_signature class="" first="False" fullname="cnames" ids="cnames" module="True" names="cnames"><desc_name xml:space="preserve">cnames</desc_name></desc_signature><desc_content><paragraph>The list of compressors included in C library.</paragraph></desc_content></desc> SphinxTranslator.dispatch_visit calling visit_desc_signature for <desc_signature class="" first="False" fullname="cnames" ids="cnames" module="True" names="cnames"><desc_name xml:space="preserve">cnames</desc_name></desc_signature> SphinxTranslator.dispatch_visit calling visit_desc_name for <desc_name xml:space="preserve">cnames</desc_name> SphinxTranslator.dispatch_visit calling visit_Text for cnames SphinxTranslator.dispatch_departure calling depart_Text for cnames SphinxTranslator.dispatch_departure calling depart_desc_name for <desc_name xml:space="preserve">cnames</desc_name> SphinxTranslator.dispatch_departure calling depart_desc_signature for <desc_signature class="" first="False" fullname="cnames" ids="cnames" module="True" names="cnames"><desc_name xml:space="preserve">cnames</desc_name></desc_signature> SphinxTranslator.dispatch_visit calling visit_desc_content for <desc_content><paragraph>The list of compressors included in C library.</paragraph></desc_content> SphinxTranslator.dispatch_visit calling visit_paragraph for <paragraph>The list of compressors included in C library.</paragraph> SphinxTranslator.dispatch_visit calling visit_Text for The list of compressors included in C library. SphinxTranslator.dispatch_departure calling depart_Text for The list of compressors included in C library. SphinxTranslator.dispatch_departure calling depart_paragraph for <paragraph>The list of compressors included in C library.</paragraph> SphinxTranslator.dispatch_departure calling depart_desc_content for <desc_content><paragraph>The list of compressors included in C library.</paragraph></desc_content> SphinxTranslator.dispatch_departure calling depart_desc for <desc desctype="attribute" domain="py" noindex="False" objtype="attribute"><desc_signature class="" first="False" fullname="cnames" ids="cnames" module="True" names="cnames"><desc_name xml:space="preserve">cnames</desc_name></desc_signature><desc_content><paragraph>The list of compressors included in C library.</paragraph></desc_content></desc> SphinxTranslator.dispatch_visit calling visit_index for <index entries="[('single', 'cname2clib', 'cname2clib', '', None)]"/> SphinxTranslator.dispatch_visit calling visit_desc for <desc desctype="attribute" domain="py" noindex="False" objtype="attribute"><desc_signature class="" first="False" fullname="cname2clib" ids="cname2clib" module="True" names="cname2clib"><desc_name xml:space="preserve">cname2clib</desc_name></desc_signature><desc_content><paragraph>A map between compressor names and its libraries (or formats).</paragraph></desc_content></desc> SphinxTranslator.dispatch_visit calling visit_desc_signature for <desc_signature class="" first="False" fullname="cname2clib" ids="cname2clib" module="True" names="cname2clib"><desc_name xml:space="preserve">cname2clib</desc_name></desc_signature> SphinxTranslator.dispatch_visit calling visit_desc_name for <desc_name xml:space="preserve">cname2clib</desc_name> SphinxTranslator.dispatch_visit calling visit_Text for cname2clib SphinxTranslator.dispatch_departure calling depart_Text for cname2clib SphinxTranslator.dispatch_departure calling depart_desc_name for <desc_name xml:space="preserve">cname2clib</desc_name> SphinxTranslator.dispatch_departure calling depart_desc_signature for <desc_signature class="" first="False" fullname="cname2clib" ids="cname2clib" module="True" names="cname2clib"><desc_name xml:space="preserve">cname2clib</desc_name></desc_signature> SphinxTranslator.dispatch_visit calling visit_desc_content for <desc_content><paragraph>A map between compressor names and its libraries (or formats).</paragraph></desc_content> SphinxTranslator.dispatch_visit calling visit_paragraph for <paragraph>A map between compressor names and its libraries (or formats).</paragraph> SphinxTranslator.dispatch_visit calling visit_Text for A map between compressor names and its libraries (or formats). SphinxTranslator.dispatch_departure calling depart_Text for A map between compressor names and its libraries (or formats). SphinxTranslator.dispatch_departure calling depart_paragraph for <paragraph>A map between compressor names and its libraries (or formats).</paragraph> SphinxTranslator.dispatch_departure calling depart_desc_content for <desc_content><paragraph>A map between compressor names and its libraries (or formats).</paragraph></desc_content> SphinxTranslator.dispatch_departure calling depart_desc for <desc desctype="attribute" domain="py" noindex="False" objtype="attribute"><desc_signature class="" first="False" fullname="cname2clib" ids="cname2clib" module="True" names="cname2clib"><desc_name xml:space="preserve">cname2clib</desc_name></desc_signature><desc_content><paragraph>A map between compressor names and its libraries (or formats).</paragraph></desc_content></desc> SphinxTranslator.dispatch_visit calling visit_index for <index entries="[('single', 'ncores', 'ncores', '', None)]"/> SphinxTranslator.dispatch_visit calling visit_desc for <desc desctype="attribute" domain="py" noindex="False" objtype="attribute"><desc_signature class="" first="False" fullname="ncores" ids="ncores" module="True" names="ncores"><desc_name xml:space="preserve">ncores</desc_name></desc_signature><desc_content><paragraph>The number of cores detected.</paragraph></desc_content></desc> SphinxTranslator.dispatch_visit calling visit_desc_signature for <desc_signature class="" first="False" fullname="ncores" ids="ncores" module="True" names="ncores"><desc_name xml:space="preserve">ncores</desc_name></desc_signature> SphinxTranslator.dispatch_visit calling visit_desc_name for <desc_name xml:space="preserve">ncores</desc_name> SphinxTranslator.dispatch_visit calling visit_Text for ncores SphinxTranslator.dispatch_departure calling depart_Text for ncores SphinxTranslator.dispatch_departure calling depart_desc_name for <desc_name xml:space="preserve">ncores</desc_name> SphinxTranslator.dispatch_departure calling depart_desc_signature for <desc_signature class="" first="False" fullname="ncores" ids="ncores" module="True" names="ncores"><desc_name xml:space="preserve">ncores</desc_name></desc_signature> SphinxTranslator.dispatch_visit calling visit_desc_content for <desc_content><paragraph>The number of cores detected.</paragraph></desc_content> SphinxTranslator.dispatch_visit calling visit_paragraph for <paragraph>The number of cores detected.</paragraph> SphinxTranslator.dispatch_visit calling visit_Text for The number of cores detected. SphinxTranslator.dispatch_departure calling depart_Text for The number of cores detected. SphinxTranslator.dispatch_departure calling depart_paragraph for <paragraph>The number of cores detected.</paragraph> SphinxTranslator.dispatch_departure calling depart_desc_content for <desc_content><paragraph>The number of cores detected.</paragraph></desc_content> SphinxTranslator.dispatch_departure calling depart_desc for <desc desctype="attribute" domain="py" noindex="False" objtype="attribute"><desc_signature class="" first="False" fullname="ncores" ids="ncores" module="True" names="ncores"><desc_name xml:space="preserve">ncores</desc_name></desc_signature><desc_content><paragraph>The number of cores detected.</paragraph></desc_content></desc> SphinxTranslator.dispatch_departure calling depart_section for <section ids="first-level-variables" names="first\ level\ variables"><title>First level variables</title><index entries="[('single', '__version__', '__version__', '', None)]"/><desc desctype="attribute" domain="py" noindex="False" objtype="attribute"><desc_signature class="" first="False" fullname="__version__" ids="__version__" module="True" names="__version__"><desc_name xml:space="preserve">__version__</desc_name></desc_signature><desc_content><paragraph>The version of the blosc package.</paragraph></desc_content></desc><index entries="[('single', 'blosclib_version', 'blosclib_version', '', None)]"/><desc desctype="attribute" domain="py" noindex="False" objtype="attribute"><desc_signature class="" first="False" fullname="blosclib_version" ids="blosclib_version" module="True" names="blosclib_version"><desc_name xml:space="preserve">blosclib_version</desc_name></desc_signature><desc_content><paragraph>The version of the Blosc C library.</paragraph></desc_content></desc><index entries="[('single', 'clib_versions', 'clib_versions', '', None)]"/><desc desctype="attribute" domain="py" noindex="False" objtype="attribute"><desc_signature class="" first="False" fullname="clib_versions" ids="clib_versions" module="True" names="clib_versions"><desc_name xml:space="preserve">clib_versions</desc_name></desc_signature><desc_content><paragraph>A map for the versions of the compression libraries included in C library.</paragraph></desc_content></desc><index entries="[('single', 'cnames', 'cnames', '', None)]"/><desc desctype="attribute" domain="py" noindex="False" objtype="attribute"><desc_signature class="" first="False" fullname="cnames" ids="cnames" module="True" names="cnames"><desc_name xml:space="preserve">cnames</desc_name></desc_signature><desc_content><paragraph>The list of compressors included in C library.</paragraph></desc_content></desc><index entries="[('single', 'cname2clib', 'cname2clib', '', None)]"/><desc desctype="attribute" domain="py" noindex="False" objtype="attribute"><desc_signature class="" first="False" fullname="cname2clib" ids="cname2clib" module="True" names="cname2clib"><desc_name xml:space="preserve">cname2clib</desc_name></desc_signature><desc_content><paragraph>A map between compressor names and its libraries (or formats).</paragraph></desc_content></desc><index entries="[('single', 'ncores', 'ncores', '', None)]"/><desc desctype="attribute" domain="py" noindex="False" objtype="attribute"><desc_signature class="" first="False" fullname="ncores" ids="ncores" module="True" names="ncores"><desc_name xml:space="preserve">ncores</desc_name></desc_signature><desc_content><paragraph>The number of cores detected.</paragraph></desc_content></desc></section> SphinxTranslator.dispatch_visit calling visit_section for <section ids="module-blosc public-functions" names="public\ functions"><title>Public functions</title><index entries="[('single', 'blosc (module)', 'module-blosc', '', None)]"/><index entries="[('single', 'compress() (in module blosc)', 'blosc.compress', '', None)]"/><desc desctype="function" domain="py" noindex="False" objtype="function"><desc_signature class="" first="False" fullname="compress" ids="blosc.compress" module="blosc" names="blosc.compress"><desc_addname xml:space="preserve">blosc.</desc_addname><desc_name xml:space="preserve">compress</desc_name><desc_parameterlist xml:space="preserve"><desc_parameter xml:space="preserve">bytesobj[, typesize=8, clevel=9, shuffle=blosc.SHUFFLE, cname='blosclz']]</desc_parameter></desc_parameterlist></desc_signature><desc_content><paragraph>Compress bytesobj, with a given type size.</paragraph><field_list><field><field_name>Parameters</field_name><field_body><paragraph><strong>bytesobj</strong> : bytes-like object (supporting the buffer interface)</paragraph><block_quote><paragraph>The data to be compressed.</paragraph></block_quote><paragraph><strong>typesize</strong> : int</paragraph><block_quote><paragraph>The data type size.</paragraph></block_quote><paragraph><strong>clevel</strong> : int (optional)</paragraph><block_quote><paragraph>The compression level from 0 (no compression) to 9 (maximum compression). The default is 9.</paragraph></block_quote><paragraph><strong>shuffle</strong> : int (optional)</paragraph><block_quote><paragraph>The shuffle filter to be activated. Allowed values are blosc.NOSHUFFLE, blosc.SHUFFLE and blosc.BITSHUFFLE. The default is blosc.SHUFFLE.</paragraph></block_quote><paragraph><strong>cname</strong> : string (optional)</paragraph><block_quote><paragraph>The name of the compressor used internally in Blosc. It can be any of the supported by Blosc (‘blosclz’, ‘lz4’, ‘lz4hc’, ‘snappy’, ‘zlib’, ‘zstd’ and maybe others too). The default is ‘blosclz’.</paragraph></block_quote></field_body></field><field><field_name>Returns</field_name><field_body><paragraph><strong>out</strong> : str / bytes</paragraph><block_quote><paragraph>The compressed data in form of a Python str / bytes object.</paragraph></block_quote></field_body></field><field><field_name>Raises</field_name><field_body><paragraph><strong>TypeError</strong></paragraph><block_quote><paragraph>If bytesobj doesn’t support the buffer interface.</paragraph></block_quote><paragraph><strong>ValueError</strong></paragraph><block_quote><paragraph>If bytesobj is too long. If typesize is not within the allowed range. If clevel is not within the allowed range. If cname is not a valid codec.</paragraph></block_quote></field_body></field></field_list><rubric>Examples</rubric><doctest_block classes="doctest" xml:space="preserve">>>> import array >>> a = array.array('i', range(1000*1000)) >>> a_bytesobj = a.tostring() >>> c_bytesobj = blosc.compress(a_bytesobj, typesize=4) >>> len(c_bytesobj) < len(a_bytesobj) True</doctest_block></desc_content></desc><index entries="[('single', 'compress_ptr() (in module blosc)', 'blosc.compress_ptr', '', None)]"/><desc desctype="function" domain="py" noindex="False" objtype="function"><desc_signature class="" first="False" fullname="compress_ptr" ids="blosc.compress_ptr" module="blosc" names="blosc.compress_ptr"><desc_addname xml:space="preserve">blosc.</desc_addname><desc_name xml:space="preserve">compress_ptr</desc_name><desc_parameterlist xml:space="preserve"><desc_parameter xml:space="preserve">address, items[, typesize=8, clevel=9, shuffle=blosc.SHUFFLE, cname='blosclz']]</desc_parameter></desc_parameterlist></desc_signature><desc_content><paragraph>Compress the data at address with given items and typesize.</paragraph><field_list><field><field_name>Parameters</field_name><field_body><paragraph><strong>address</strong> : int or long</paragraph><block_quote><paragraph>the pointer to the data to be compressed</paragraph></block_quote><paragraph><strong>items</strong> : int</paragraph><block_quote><paragraph>The number of items (of typesize) to be compressed.</paragraph></block_quote><paragraph><strong>typesize</strong> : int</paragraph><block_quote><paragraph>The data type size.</paragraph></block_quote><paragraph><strong>clevel</strong> : int (optional)</paragraph><block_quote><paragraph>The compression level from 0 (no compression) to 9 (maximum compression). The default is 9.</paragraph></block_quote><paragraph><strong>shuffle</strong> : int (optional)</paragraph><block_quote><paragraph>The shuffle filter to be activated. Allowed values are blosc.NOSHUFFLE, blosc.SHUFFLE and blosc.BITSHUFFLE. The default is blosc.SHUFFLE.</paragraph></block_quote><paragraph><strong>cname</strong> : string (optional)</paragraph><block_quote><paragraph>The name of the compressor used internally in Blosc. It can be any of the supported by Blosc (‘blosclz’, ‘lz4’, ‘lz4hc’, ‘snappy’, ‘zlib’, ‘zstd’ and maybe others too). The default is ‘blosclz’.</paragraph></block_quote></field_body></field><field><field_name>Returns</field_name><field_body><paragraph><strong>out</strong> : str / bytes</paragraph><block_quote><paragraph>The compressed data in form of a Python str / bytes object.</paragraph></block_quote></field_body></field><field><field_name>Raises</field_name><field_body><paragraph><strong>TypeError</strong></paragraph><block_quote><paragraph>If address is not of type int or long.</paragraph></block_quote><paragraph><strong>ValueError</strong></paragraph><block_quote><paragraph>If items * typesize is larger than the maximum allowed buffer size. If typesize is not within the allowed range. If clevel is not within the allowed range. If cname is not within the supported compressors.</paragraph></block_quote></field_body></field></field_list><rubric>Notes</rubric><paragraph>This function can be used anywhere that a memory address is available in Python. For example the Numpy “__array_interface__[‘data’][0]†construct, or when using the ctypes modules.</paragraph><paragraph>Importantly, the user is responsible for making sure that the memory address is valid and that the memory pointed to is contiguous. Passing a non-valid address has a high likelihood of crashing the interpreter by segfault.</paragraph><rubric>Examples</rubric><doctest_block classes="doctest" xml:space="preserve">>>> import numpy >>> items = 7 >>> np_array = numpy.arange(items) >>> c = blosc.compress_ptr(np_array.__array_interface__['data'][0], items, np_array.dtype.itemsize) >>> d = blosc.decompress(c) >>> np_ans = numpy.fromstring(d, dtype=np_array.dtype) >>> (np_array == np_ans).all() True</doctest_block><doctest_block classes="doctest" xml:space="preserve">>>> import ctypes >>> typesize = 8 >>> data = [float(i) for i in range(items)] >>> Array = ctypes.c_double * items >>> a = Array(*data) >>> c = blosc.compress_ptr(ctypes.addressof(a), items, typesize) >>> d = blosc.decompress(c) >>> import struct >>> ans = [struct.unpack('d', d[i:i+typesize])[0] for i in range(0, items*typesize, typesize)] >>> data == ans True</doctest_block></desc_content></desc><index entries="[('single', 'decompress() (in module blosc)', 'blosc.decompress', '', None)]"/><desc desctype="function" domain="py" noindex="False" objtype="function"><desc_signature class="" first="False" fullname="decompress" ids="blosc.decompress" module="blosc" names="blosc.decompress"><desc_addname xml:space="preserve">blosc.</desc_addname><desc_name xml:space="preserve">decompress</desc_name><desc_parameterlist xml:space="preserve"><desc_parameter xml:space="preserve">bytesobj</desc_parameter></desc_parameterlist></desc_signature><desc_content><paragraph>Decompresses a bytesobj compressed object.</paragraph><field_list><field><field_name>Parameters</field_name><field_body><paragraph><strong>bytesobj</strong> : str / bytes</paragraph><block_quote><paragraph>The data to be decompressed.</paragraph></block_quote><paragraph><strong>as_bytearray</strong> : bool, optional</paragraph><block_quote><paragraph>If this flag is True then the return type will be a bytearray object instead of a bytesobject.</paragraph></block_quote></field_body></field><field><field_name>Returns</field_name><field_body><paragraph><strong>out</strong> : str / bytes or bytearray</paragraph><block_quote><paragraph>The decompressed data in form of a Python str / bytes object. If as_bytearray is True then this will be a bytearray object, otherwise this will be a str/ bytes object.</paragraph></block_quote></field_body></field><field><field_name>Raises</field_name><field_body><paragraph><strong>TypeError</strong></paragraph><block_quote><paragraph>If bytesobj is not of type bytes or string.</paragraph></block_quote></field_body></field></field_list><rubric>Examples</rubric><doctest_block classes="doctest" xml:space="preserve">>>> import array >>> a = array.array('i', range(1000*1000)) >>> a_bytesobj = a.tostring() >>> c_bytesobj = blosc.compress(a_bytesobj, typesize=4) >>> a_bytesobj2 = blosc.decompress(c_bytesobj) >>> a_bytesobj == a_bytesobj2 True >>> b"" == blosc.decompress(blosc.compress(b"", 1)) True >>> b"1"*7 == blosc.decompress(blosc.compress(b"1"*7, 8)) True >>> type(blosc.decompress(blosc.compress(b"1"*7, 8), ... as_bytearray=True)) is bytearray True</doctest_block></desc_content></desc><index entries="[('single', 'decompress_ptr() (in module blosc)', 'blosc.decompress_ptr', '', None)]"/><desc desctype="function" domain="py" noindex="False" objtype="function"><desc_signature class="" first="False" fullname="decompress_ptr" ids="blosc.decompress_ptr" module="blosc" names="blosc.decompress_ptr"><desc_addname xml:space="preserve">blosc.</desc_addname><desc_name xml:space="preserve">decompress_ptr</desc_name><desc_parameterlist xml:space="preserve"><desc_parameter xml:space="preserve">bytesobj</desc_parameter><desc_parameter xml:space="preserve">address</desc_parameter></desc_parameterlist></desc_signature><desc_content><paragraph>Decompresses a bytesobj compressed object into the memory at address.</paragraph><field_list><field><field_name>Parameters</field_name><field_body><paragraph><strong>bytesobj</strong> : str / bytes</paragraph><block_quote><paragraph>The data to be decompressed.</paragraph></block_quote><paragraph><strong>address</strong> : int or long</paragraph><block_quote><paragraph>the pointer to the data to be compressed</paragraph></block_quote></field_body></field><field><field_name>Returns</field_name><field_body><paragraph><strong>nbytes</strong> : int</paragraph><block_quote><paragraph>the number of bytes written to the buffer</paragraph></block_quote></field_body></field><field><field_name>Raises</field_name><field_body><paragraph><strong>TypeError</strong></paragraph><block_quote><paragraph>If bytesobj is not of type bytes or string. If address is not of type int or long.</paragraph></block_quote></field_body></field></field_list><rubric>Notes</rubric><paragraph>This function can be used anywhere that a memory address is available in Python. For example the Numpy “__array_interface__[‘data’][0]†construct, or when using the ctypes modules.</paragraph><paragraph>Importantly, the user is responsible for making sure that the memory address is valid and that the memory pointed to is contiguous and can be written to. Passing a non-valid address has a high likelihood of crashing the interpreter by segfault.</paragraph><rubric>Examples</rubric><doctest_block classes="doctest" xml:space="preserve">>>> import numpy >>> items = 7 >>> np_array = numpy.arange(items) >>> c = blosc.compress_ptr(np_array.__array_interface__['data'][0], items, np_array.dtype.itemsize) >>> np_ans = numpy.empty(items, dtype=np_array.dtype) >>> nbytes = blosc.decompress_ptr(c, np_ans.__array_interface__['data'][0]) >>> (np_array == np_ans).all() True >>> nbytes == items * np_array.dtype.itemsize True</doctest_block><doctest_block classes="doctest" xml:space="preserve">>>> import ctypes >>> typesize = 8 >>> data = [float(i) for i in range(items)] >>> Array = ctypes.c_double * items >>> in_array = Array(*data) >>> c = blosc.compress_ptr(ctypes.addressof(in_array), items, typesize) >>> out_array = ctypes.create_string_buffer(items*typesize) >>> nbytes = blosc.decompress_ptr(c, ctypes.addressof(out_array)) >>> import struct >>> ans = [struct.unpack('d', out_array[i:i+typesize])[0] for i in range(0, items*typesize, typesize)] >>> data == ans True >>> nbytes == items * typesize True</doctest_block></desc_content></desc><index entries="[('single', 'pack_array() (in module blosc)', 'blosc.pack_array', '', None)]"/><desc desctype="function" domain="py" noindex="False" objtype="function"><desc_signature class="" first="False" fullname="pack_array" ids="blosc.pack_array" module="blosc" names="blosc.pack_array"><desc_addname xml:space="preserve">blosc.</desc_addname><desc_name xml:space="preserve">pack_array</desc_name><desc_parameterlist xml:space="preserve"><desc_parameter xml:space="preserve">array[, clevel=9, shuffle=blosc.SHUFFLE, cname='blosclz']]</desc_parameter></desc_parameterlist></desc_signature><desc_content><paragraph>Pack (compress) a NumPy array.</paragraph><field_list><field><field_name>Parameters</field_name><field_body><paragraph><strong>array</strong> : ndarray</paragraph><block_quote><paragraph>The NumPy array to be packed.</paragraph></block_quote><paragraph><strong>clevel</strong> : int (optional)</paragraph><block_quote><paragraph>The compression level from 0 (no compression) to 9 (maximum compression). The default is 9.</paragraph></block_quote><paragraph><strong>shuffle</strong> : int (optional)</paragraph><block_quote><paragraph>The shuffle filter to be activated. Allowed values are blosc.NOSHUFFLE, blosc.SHUFFLE and blosc.BITSHUFFLE. The default is blosc.SHUFFLE.</paragraph></block_quote><paragraph><strong>cname</strong> : string (optional)</paragraph><block_quote><paragraph>The name of the compressor used internally in Blosc. It can be any of the supported by Blosc (‘blosclz’, ‘lz4’, ‘lz4hc’, ‘snappy’, ‘zlib’, ‘zstd’ and maybe others too). The default is ‘blosclz’.</paragraph></block_quote></field_body></field><field><field_name>Returns</field_name><field_body><paragraph><strong>out</strong> : str / bytes</paragraph><block_quote><paragraph>The packed array in form of a Python str / bytes object.</paragraph></block_quote></field_body></field><field><field_name>Raises</field_name><field_body><paragraph><strong>TypeError</strong></paragraph><block_quote><paragraph>If array does not quack like a numpy ndarray.</paragraph></block_quote><paragraph><strong>ValueError</strong></paragraph><block_quote><definition_list><definition_list_item><term>If array.itemsize * array.size is larger than the maximum allowed</term><definition><paragraph>buffer size.</paragraph></definition></definition_list_item></definition_list><paragraph>If typesize is not within the allowed range. If clevel is not within the allowed range. If cname is not within the supported compressors.</paragraph></block_quote></field_body></field></field_list><rubric>Examples</rubric><doctest_block classes="doctest" xml:space="preserve">>>> import numpy >>> a = numpy.arange(1e6) >>> parray = blosc.pack_array(a) >>> len(parray) < a.size*a.itemsize True</doctest_block></desc_content></desc><index entries="[('single', 'unpack_array() (in module blosc)', 'blosc.unpack_array', '', None)]"/><desc desctype="function" domain="py" noindex="False" objtype="function"><desc_signature class="" first="False" fullname="unpack_array" ids="blosc.unpack_array" module="blosc" names="blosc.unpack_array"><desc_addname xml:space="preserve">blosc.</desc_addname><desc_name xml:space="preserve">unpack_array</desc_name><desc_parameterlist xml:space="preserve"><desc_parameter xml:space="preserve">packed_array</desc_parameter></desc_parameterlist></desc_signature><desc_content><paragraph>Unpack (decompress) a packed NumPy array.</paragraph><field_list><field><field_name>Parameters</field_name><field_body><paragraph><strong>packed_array</strong> : str / bytes</paragraph><block_quote><paragraph>The packed array to be decompressed.</paragraph></block_quote></field_body></field><field><field_name>Returns</field_name><field_body><paragraph><strong>out</strong> : ndarray</paragraph><block_quote><paragraph>The decompressed data in form of a NumPy array.</paragraph></block_quote></field_body></field><field><field_name>Raises</field_name><field_body><paragraph><strong>TypeError</strong></paragraph><block_quote><paragraph>If packed_array is not of type bytes or string.</paragraph></block_quote></field_body></field></field_list><rubric>Examples</rubric><doctest_block classes="doctest" xml:space="preserve">>>> import numpy >>> a = numpy.arange(1e6) >>> parray = blosc.pack_array(a) >>> len(parray) < a.size*a.itemsize True >>> a2 = blosc.unpack_array(parray) >>> numpy.alltrue(a == a2) True</doctest_block></desc_content></desc></section> SphinxTranslator.dispatch_visit calling visit_title for <title>Public functions</title> SphinxTranslator.dispatch_visit calling visit_Text for Public functions SphinxTranslator.dispatch_departure calling depart_Text for Public functions SphinxTranslator.dispatch_departure calling depart_title for <title>Public functions</title> SphinxTranslator.dispatch_visit calling visit_index for <index entries="[('single', 'blosc (module)', 'module-blosc', '', None)]"/> SphinxTranslator.dispatch_visit calling visit_index for <index entries="[('single', 'compress() (in module blosc)', 'blosc.compress', '', None)]"/> SphinxTranslator.dispatch_visit calling visit_desc for <desc desctype="function" domain="py" noindex="False" objtype="function"><desc_signature class="" first="False" fullname="compress" ids="blosc.compress" module="blosc" names="blosc.compress"><desc_addname xml:space="preserve">blosc.</desc_addname><desc_name xml:space="preserve">compress</desc_name><desc_parameterlist xml:space="preserve"><desc_parameter xml:space="preserve">bytesobj[, typesize=8, clevel=9, shuffle=blosc.SHUFFLE, cname='blosclz']]</desc_parameter></desc_parameterlist></desc_signature><desc_content><paragraph>Compress bytesobj, with a given type size.</paragraph><field_list><field><field_name>Parameters</field_name><field_body><paragraph><strong>bytesobj</strong> : bytes-like object (supporting the buffer interface)</paragraph><block_quote><paragraph>The data to be compressed.</paragraph></block_quote><paragraph><strong>typesize</strong> : int</paragraph><block_quote><paragraph>The data type size.</paragraph></block_quote><paragraph><strong>clevel</strong> : int (optional)</paragraph><block_quote><paragraph>The compression level from 0 (no compression) to 9 (maximum compression). The default is 9.</paragraph></block_quote><paragraph><strong>shuffle</strong> : int (optional)</paragraph><block_quote><paragraph>The shuffle filter to be activated. Allowed values are blosc.NOSHUFFLE, blosc.SHUFFLE and blosc.BITSHUFFLE. The default is blosc.SHUFFLE.</paragraph></block_quote><paragraph><strong>cname</strong> : string (optional)</paragraph><block_quote><paragraph>The name of the compressor used internally in Blosc. It can be any of the supported by Blosc (‘blosclz’, ‘lz4’, ‘lz4hc’, ‘snappy’, ‘zlib’, ‘zstd’ and maybe others too). The default is ‘blosclz’.</paragraph></block_quote></field_body></field><field><field_name>Returns</field_name><field_body><paragraph><strong>out</strong> : str / bytes</paragraph><block_quote><paragraph>The compressed data in form of a Python str / bytes object.</paragraph></block_quote></field_body></field><field><field_name>Raises</field_name><field_body><paragraph><strong>TypeError</strong></paragraph><block_quote><paragraph>If bytesobj doesn’t support the buffer interface.</paragraph></block_quote><paragraph><strong>ValueError</strong></paragraph><block_quote><paragraph>If bytesobj is too long. If typesize is not within the allowed range. If clevel is not within the allowed range. If cname is not a valid codec.</paragraph></block_quote></field_body></field></field_list><rubric>Examples</rubric><doctest_block classes="doctest" xml:space="preserve">>>> import array >>> a = array.array('i', range(1000*1000)) >>> a_bytesobj = a.tostring() >>> c_bytesobj = blosc.compress(a_bytesobj, typesize=4) >>> len(c_bytesobj) < len(a_bytesobj) True</doctest_block></desc_content></desc> SphinxTranslator.dispatch_visit calling visit_desc_signature for <desc_signature class="" first="False" fullname="compress" ids="blosc.compress" module="blosc" names="blosc.compress"><desc_addname xml:space="preserve">blosc.</desc_addname><desc_name xml:space="preserve">compress</desc_name><desc_parameterlist xml:space="preserve"><desc_parameter xml:space="preserve">bytesobj[, typesize=8, clevel=9, shuffle=blosc.SHUFFLE, cname='blosclz']]</desc_parameter></desc_parameterlist></desc_signature> SphinxTranslator.dispatch_visit calling visit_desc_addname for <desc_addname xml:space="preserve">blosc.</desc_addname> SphinxTranslator.dispatch_visit calling visit_Text for blosc. SphinxTranslator.dispatch_departure calling depart_Text for blosc. SphinxTranslator.dispatch_departure calling depart_desc_addname for <desc_addname xml:space="preserve">blosc.</desc_addname> SphinxTranslator.dispatch_visit calling visit_desc_name for <desc_name xml:space="preserve">compress</desc_name> SphinxTranslator.dispatch_visit calling visit_Text for compress SphinxTranslator.dispatch_departure calling depart_Text for compress SphinxTranslator.dispatch_departure calling depart_desc_name for <desc_name xml:space="preserve">compress</desc_name> SphinxTranslator.dispatch_visit calling visit_desc_parameterlist for <desc_parameterlist xml:space="preserve"><desc_parameter xml:space="preserve">bytesobj[, typesize=8, clevel=9, shuffle=blosc.SHUFFLE, cname='blosclz']]</desc_parameter></desc_parameterlist> SphinxTranslator.dispatch_visit calling visit_desc_parameter for <desc_parameter xml:space="preserve">bytesobj[, typesize=8, clevel=9, shuffle=blosc.SHUFFLE, cname='blosclz']]</desc_parameter> SphinxTranslator.dispatch_visit calling visit_Text for bytesobj[, typesize=8, clevel=9, shuffle=blosc.SHUFFLE, cname='blosclz']] SphinxTranslator.dispatch_departure calling depart_Text for bytesobj[, typesize=8, clevel=9, shuffle=blosc.SHUFFLE, cname='blosclz']] SphinxTranslator.dispatch_departure calling depart_desc_parameter for <desc_parameter xml:space="preserve">bytesobj[, typesize=8, clevel=9, shuffle=blosc.SHUFFLE, cname='blosclz']]</desc_parameter> SphinxTranslator.dispatch_departure calling depart_desc_parameterlist for <desc_parameterlist xml:space="preserve"><desc_parameter xml:space="preserve">bytesobj[, typesize=8, clevel=9, shuffle=blosc.SHUFFLE, cname='blosclz']]</desc_parameter></desc_parameterlist> SphinxTranslator.dispatch_departure calling depart_desc_signature for <desc_signature class="" first="False" fullname="compress" ids="blosc.compress" module="blosc" names="blosc.compress"><desc_addname xml:space="preserve">blosc.</desc_addname><desc_name xml:space="preserve">compress</desc_name><desc_parameterlist xml:space="preserve"><desc_parameter xml:space="preserve">bytesobj[, typesize=8, clevel=9, shuffle=blosc.SHUFFLE, cname='blosclz']]</desc_parameter></desc_parameterlist></desc_signature> SphinxTranslator.dispatch_visit calling visit_desc_content for <desc_content><paragraph>Compress bytesobj, with a given type size.</paragraph><field_list><field><field_name>Parameters</field_name><field_body><paragraph><strong>bytesobj</strong> : bytes-like object (supporting the buffer interface)</paragraph><block_quote><paragraph>The data to be compressed.</paragraph></block_quote><paragraph><strong>typesize</strong> : int</paragraph><block_quote><paragraph>The data type size.</paragraph></block_quote><paragraph><strong>clevel</strong> : int (optional)</paragraph><block_quote><paragraph>The compression level from 0 (no compression) to 9 (maximum compression). The default is 9.</paragraph></block_quote><paragraph><strong>shuffle</strong> : int (optional)</paragraph><block_quote><paragraph>The shuffle filter to be activated. Allowed values are blosc.NOSHUFFLE, blosc.SHUFFLE and blosc.BITSHUFFLE. The default is blosc.SHUFFLE.</paragraph></block_quote><paragraph><strong>cname</strong> : string (optional)</paragraph><block_quote><paragraph>The name of the compressor used internally in Blosc. It can be any of the supported by Blosc (‘blosclz’, ‘lz4’, ‘lz4hc’, ‘snappy’, ‘zlib’, ‘zstd’ and maybe others too). The default is ‘blosclz’.</paragraph></block_quote></field_body></field><field><field_name>Returns</field_name><field_body><paragraph><strong>out</strong> : str / bytes</paragraph><block_quote><paragraph>The compressed data in form of a Python str / bytes object.</paragraph></block_quote></field_body></field><field><field_name>Raises</field_name><field_body><paragraph><strong>TypeError</strong></paragraph><block_quote><paragraph>If bytesobj doesn’t support the buffer interface.</paragraph></block_quote><paragraph><strong>ValueError</strong></paragraph><block_quote><paragraph>If bytesobj is too long. If typesize is not within the allowed range. If clevel is not within the allowed range. If cname is not a valid codec.</paragraph></block_quote></field_body></field></field_list><rubric>Examples</rubric><doctest_block classes="doctest" xml:space="preserve">>>> import array >>> a = array.array('i', range(1000*1000)) >>> a_bytesobj = a.tostring() >>> c_bytesobj = blosc.compress(a_bytesobj, typesize=4) >>> len(c_bytesobj) < len(a_bytesobj) True</doctest_block></desc_content> SphinxTranslator.dispatch_visit calling visit_paragraph for <paragraph>Compress bytesobj, with a given type size.</paragraph> SphinxTranslator.dispatch_visit calling visit_Text for Compress bytesobj, with a given type size. SphinxTranslator.dispatch_departure calling depart_Text for Compress bytesobj, with a given type size. SphinxTranslator.dispatch_departure calling depart_paragraph for <paragraph>Compress bytesobj, with a given type size.</paragraph> SphinxTranslator.dispatch_visit calling visit_field_list for <field_list><field><field_name>Parameters</field_name><field_body><paragraph><strong>bytesobj</strong> : bytes-like object (supporting the buffer interface)</paragraph><block_quote><paragraph>The data to be compressed.</paragraph></block_quote><paragraph><strong>typesize</strong> : int</paragraph><block_quote><paragraph>The data type size.</paragraph></block_quote><paragraph><strong>clevel</strong> : int (optional)</paragraph><block_quote><paragraph>The compression level from 0 (no compression) to 9 (maximum compression). The default is 9.</paragraph></block_quote><paragraph><strong>shuffle</strong> : int (optional)</paragraph><block_quote><paragraph>The shuffle filter to be activated. Allowed values are blosc.NOSHUFFLE, blosc.SHUFFLE and blosc.BITSHUFFLE. The default is blosc.SHUFFLE.</paragraph></block_quote><paragraph><strong>cname</strong> : string (optional)</paragraph><block_quote><paragraph>The name of the compressor used internally in Blosc. It can be any of the supported by Blosc (‘blosclz’, ‘lz4’, ‘lz4hc’, ‘snappy’, ‘zlib’, ‘zstd’ and maybe others too). The default is ‘blosclz’.</paragraph></block_quote></field_body></field><field><field_name>Returns</field_name><field_body><paragraph><strong>out</strong> : str / bytes</paragraph><block_quote><paragraph>The compressed data in form of a Python str / bytes object.</paragraph></block_quote></field_body></field><field><field_name>Raises</field_name><field_body><paragraph><strong>TypeError</strong></paragraph><block_quote><paragraph>If bytesobj doesn’t support the buffer interface.</paragraph></block_quote><paragraph><strong>ValueError</strong></paragraph><block_quote><paragraph>If bytesobj is too long. If typesize is not within the allowed range. If clevel is not within the allowed range. If cname is not a valid codec.</paragraph></block_quote></field_body></field></field_list> SphinxTranslator.dispatch_visit calling visit_field for <field><field_name>Parameters</field_name><field_body><paragraph><strong>bytesobj</strong> : bytes-like object (supporting the buffer interface)</paragraph><block_quote><paragraph>The data to be compressed.</paragraph></block_quote><paragraph><strong>typesize</strong> : int</paragraph><block_quote><paragraph>The data type size.</paragraph></block_quote><paragraph><strong>clevel</strong> : int (optional)</paragraph><block_quote><paragraph>The compression level from 0 (no compression) to 9 (maximum compression). The default is 9.</paragraph></block_quote><paragraph><strong>shuffle</strong> : int (optional)</paragraph><block_quote><paragraph>The shuffle filter to be activated. Allowed values are blosc.NOSHUFFLE, blosc.SHUFFLE and blosc.BITSHUFFLE. The default is blosc.SHUFFLE.</paragraph></block_quote><paragraph><strong>cname</strong> : string (optional)</paragraph><block_quote><paragraph>The name of the compressor used internally in Blosc. It can be any of the supported by Blosc (‘blosclz’, ‘lz4’, ‘lz4hc’, ‘snappy’, ‘zlib’, ‘zstd’ and maybe others too). The default is ‘blosclz’.</paragraph></block_quote></field_body></field> SphinxTranslator.dispatch_visit calling visit_field_name for <field_name>Parameters</field_name> SphinxTranslator.dispatch_visit calling visit_Text for Parameters SphinxTranslator.dispatch_departure calling depart_Text for Parameters SphinxTranslator.dispatch_departure calling depart_field_name for <field_name>Parameters</field_name> SphinxTranslator.dispatch_visit calling visit_field_body for <field_body><paragraph><strong>bytesobj</strong> : bytes-like object (supporting the buffer interface)</paragraph><block_quote><paragraph>The data to be compressed.</paragraph></block_quote><paragraph><strong>typesize</strong> : int</paragraph><block_quote><paragraph>The data type size.</paragraph></block_quote><paragraph><strong>clevel</strong> : int (optional)</paragraph><block_quote><paragraph>The compression level from 0 (no compression) to 9 (maximum compression). The default is 9.</paragraph></block_quote><paragraph><strong>shuffle</strong> : int (optional)</paragraph><block_quote><paragraph>The shuffle filter to be activated. Allowed values are blosc.NOSHUFFLE, blosc.SHUFFLE and blosc.BITSHUFFLE. The default is blosc.SHUFFLE.</paragraph></block_quote><paragraph><strong>cname</strong> : string (optional)</paragraph><block_quote><paragraph>The name of the compressor used internally in Blosc. It can be any of the supported by Blosc (‘blosclz’, ‘lz4’, ‘lz4hc’, ‘snappy’, ‘zlib’, ‘zstd’ and maybe others too). The default is ‘blosclz’.</paragraph></block_quote></field_body> SphinxTranslator.dispatch_visit calling visit_paragraph for <paragraph><strong>bytesobj</strong> : bytes-like object (supporting the buffer interface)</paragraph> SphinxTranslator.dispatch_visit calling visit_strong for <strong>bytesobj</strong> SphinxTranslator.dispatch_visit calling visit_Text for bytesobj SphinxTranslator.dispatch_departure calling depart_Text for bytesobj SphinxTranslator.dispatch_departure calling depart_strong for <strong>bytesobj</strong> SphinxTranslator.dispatch_visit calling visit_Text for : bytes-like object (supporting the buffer interface) SphinxTranslator.dispatch_departure calling depart_Text for : bytes-like object (supporting the buffer interface) SphinxTranslator.dispatch_departure calling depart_paragraph for <paragraph><strong>bytesobj</strong> : bytes-like object (supporting the buffer interface)</paragraph> SphinxTranslator.dispatch_visit calling visit_block_quote for <block_quote><paragraph>The data to be compressed.</paragraph></block_quote> SphinxTranslator.dispatch_visit calling visit_paragraph for <paragraph>The data to be compressed.</paragraph> SphinxTranslator.dispatch_visit calling visit_Text for The data to be compressed. SphinxTranslator.dispatch_departure calling depart_Text for The data to be compressed. SphinxTranslator.dispatch_departure calling depart_paragraph for <paragraph>The data to be compressed.</paragraph> SphinxTranslator.dispatch_departure calling depart_block_quote for <block_quote><paragraph>The data to be compressed.</paragraph></block_quote> SphinxTranslator.dispatch_visit calling visit_paragraph for <paragraph><strong>typesize</strong> : int</paragraph> SphinxTranslator.dispatch_visit calling visit_strong for <strong>typesize</strong> SphinxTranslator.dispatch_visit calling visit_Text for typesize SphinxTranslator.dispatch_departure calling depart_Text for typesize SphinxTranslator.dispatch_departure calling depart_strong for <strong>typesize</strong> SphinxTranslator.dispatch_visit calling visit_Text for : int SphinxTranslator.dispatch_departure calling depart_Text for : int SphinxTranslator.dispatch_departure calling depart_paragraph for <paragraph><strong>typesize</strong> : int</paragraph> SphinxTranslator.dispatch_visit calling visit_block_quote for <block_quote><paragraph>The data type size.</paragraph></block_quote> SphinxTranslator.dispatch_visit calling visit_paragraph for <paragraph>The data type size.</paragraph> SphinxTranslator.dispatch_visit calling visit_Text for The data type size. SphinxTranslator.dispatch_departure calling depart_Text for The data type size. SphinxTranslator.dispatch_departure calling depart_paragraph for <paragraph>The data type size.</paragraph> SphinxTranslator.dispatch_departure calling depart_block_quote for <block_quote><paragraph>The data type size.</paragraph></block_quote> SphinxTranslator.dispatch_visit calling visit_paragraph for <paragraph><strong>clevel</strong> : int (optional)</paragraph> SphinxTranslator.dispatch_visit calling visit_strong for <strong>clevel</strong> SphinxTranslator.dispatch_visit calling visit_Text for clevel SphinxTranslator.dispatch_departure calling depart_Text for clevel SphinxTranslator.dispatch_departure calling depart_strong for <strong>clevel</strong> SphinxTranslator.dispatch_visit calling visit_Text for : int (optional) SphinxTranslator.dispatch_departure calling depart_Text for : int (optional) SphinxTranslator.dispatch_departure calling depart_paragraph for <paragraph><strong>clevel</strong> : int (optional)</paragraph> SphinxTranslator.dispatch_visit calling visit_block_quote for <block_quote><paragraph>The compression level from 0 (no compression) to 9 (maximum compression). The default is 9.</paragraph></block_quote> SphinxTranslator.dispatch_visit calling visit_paragraph for <paragraph>The compression level from 0 (no compression) to 9 (maximum compression). The default is 9.</paragraph> SphinxTranslator.dispatch_visit calling visit_Text for The compression level from 0 (no compression) to 9 (maximum compression). The default is 9. SphinxTranslator.dispatch_departure calling depart_Text for The compression level from 0 (no compression) to 9 (maximum compression). The default is 9. SphinxTranslator.dispatch_departure calling depart_paragraph for <paragraph>The compression level from 0 (no compression) to 9 (maximum compression). The default is 9.</paragraph> SphinxTranslator.dispatch_departure calling depart_block_quote for <block_quote><paragraph>The compression level from 0 (no compression) to 9 (maximum compression). The default is 9.</paragraph></block_quote> SphinxTranslator.dispatch_visit calling visit_paragraph for <paragraph><strong>shuffle</strong> : int (optional)</paragraph> SphinxTranslator.dispatch_visit calling visit_strong for <strong>shuffle</strong> SphinxTranslator.dispatch_visit calling visit_Text for shuffle SphinxTranslator.dispatch_departure calling depart_Text for shuffle SphinxTranslator.dispatch_departure calling depart_strong for <strong>shuffle</strong> SphinxTranslator.dispatch_visit calling visit_Text for : int (optional) SphinxTranslator.dispatch_departure calling depart_Text for : int (optional) SphinxTranslator.dispatch_departure calling depart_paragraph for <paragraph><strong>shuffle</strong> : int (optional)</paragraph> SphinxTranslator.dispatch_visit calling visit_block_quote for <block_quote><paragraph>The shuffle filter to be activated. Allowed values are blosc.NOSHUFFLE, blosc.SHUFFLE and blosc.BITSHUFFLE. The default is blosc.SHUFFLE.</paragraph></block_quote> SphinxTranslator.dispatch_visit calling visit_paragraph for <paragraph>The shuffle filter to be activated. Allowed values are blosc.NOSHUFFLE, blosc.SHUFFLE and blosc.BITSHUFFLE. The default is blosc.SHUFFLE.</paragraph> SphinxTranslator.dispatch_visit calling visit_Text for The shuffle filter to be activated. Allowed values are blosc.NOSHUFFLE, blosc.SHUFFLE and blosc.BITSHUFFLE. The default is blosc.SHUFFLE. SphinxTranslator.dispatch_departure calling depart_Text for The shuffle filter to be activated. Allowed values are blosc.NOSHUFFLE, blosc.SHUFFLE and blosc.BITSHUFFLE. The default is blosc.SHUFFLE. SphinxTranslator.dispatch_departure calling depart_paragraph for <paragraph>The shuffle filter to be activated. Allowed values are blosc.NOSHUFFLE, blosc.SHUFFLE and blosc.BITSHUFFLE. The default is blosc.SHUFFLE.</paragraph> SphinxTranslator.dispatch_departure calling depart_block_quote for <block_quote><paragraph>The shuffle filter to be activated. Allowed values are blosc.NOSHUFFLE, blosc.SHUFFLE and blosc.BITSHUFFLE. The default is blosc.SHUFFLE.</paragraph></block_quote> SphinxTranslator.dispatch_visit calling visit_paragraph for <paragraph><strong>cname</strong> : string (optional)</paragraph> SphinxTranslator.dispatch_visit calling visit_strong for <strong>cname</strong> SphinxTranslator.dispatch_visit calling visit_Text for cname SphinxTranslator.dispatch_departure calling depart_Text for cname SphinxTranslator.dispatch_departure calling depart_strong for <strong>cname</strong> SphinxTranslator.dispatch_visit calling visit_Text for : string (optional) SphinxTranslator.dispatch_departure calling depart_Text for : string (optional) SphinxTranslator.dispatch_departure calling depart_paragraph for <paragraph><strong>cname</strong> : string (optional)</paragraph> SphinxTranslator.dispatch_visit calling visit_block_quote for <block_quote><paragraph>The name of the compressor used internally in Blosc. It can be any of the supported by Blosc (‘blosclz’, ‘lz4’, ‘lz4hc’, ‘snappy’, ‘zlib’, ‘zstd’ and maybe others too). The default is ‘blosclz’.</paragraph></block_quote> SphinxTranslator.dispatch_visit calling visit_paragraph for <paragraph>The name of the compressor used internally in Blosc. It can be any of the supported by Blosc (‘blosclz’, ‘lz4’, ‘lz4hc’, ‘snappy’, ‘zlib’, ‘zstd’ and maybe others too). The default is ‘blosclz’.</paragraph> SphinxTranslator.dispatch_visit calling visit_Text for The name of the compressor used internally in Blosc. It can be any of the supported by Blosc (‘blosclz’, ‘lz4’, ‘lz4hc’, ‘snappy’, ‘zlib’, ‘zstd’ and maybe others too). The default is ‘blosclz’. SphinxTranslator.dispatch_departure calling depart_Text for The name of the compressor used internally in Blosc. It can be any of the supported by Blosc (‘blosclz’, ‘lz4’, ‘lz4hc’, ‘snappy’, ‘zlib’, ‘zstd’ and maybe others too). The default is ‘blosclz’. SphinxTranslator.dispatch_departure calling depart_paragraph for <paragraph>The name of the compressor used internally in Blosc. It can be any of the supported by Blosc (‘blosclz’, ‘lz4’, ‘lz4hc’, ‘snappy’, ‘zlib’, ‘zstd’ and maybe others too). The default is ‘blosclz’.</paragraph> SphinxTranslator.dispatch_departure calling depart_block_quote for <block_quote><paragraph>The name of the compressor used internally in Blosc. It can be any of the supported by Blosc (‘blosclz’, ‘lz4’, ‘lz4hc’, ‘snappy’, ‘zlib’, ‘zstd’ and maybe others too). The default is ‘blosclz’.</paragraph></block_quote> SphinxTranslator.dispatch_departure calling depart_field_body for <field_body><paragraph><strong>bytesobj</strong> : bytes-like object (supporting the buffer interface)</paragraph><block_quote><paragraph>The data to be compressed.</paragraph></block_quote><paragraph><strong>typesize</strong> : int</paragraph><block_quote><paragraph>The data type size.</paragraph></block_quote><paragraph><strong>clevel</strong> : int (optional)</paragraph><block_quote><paragraph>The compression level from 0 (no compression) to 9 (maximum compression). The default is 9.</paragraph></block_quote><paragraph><strong>shuffle</strong> : int (optional)</paragraph><block_quote><paragraph>The shuffle filter to be activated. Allowed values are blosc.NOSHUFFLE, blosc.SHUFFLE and blosc.BITSHUFFLE. The default is blosc.SHUFFLE.</paragraph></block_quote><paragraph><strong>cname</strong> : string (optional)</paragraph><block_quote><paragraph>The name of the compressor used internally in Blosc. It can be any of the supported by Blosc (‘blosclz’, ‘lz4’, ‘lz4hc’, ‘snappy’, ‘zlib’, ‘zstd’ and maybe others too). The default is ‘blosclz’.</paragraph></block_quote></field_body> SphinxTranslator.dispatch_departure calling depart_field for <field classes="field-odd"><field_name>Parameters</field_name><field_body><paragraph><strong>bytesobj</strong> : bytes-like object (supporting the buffer interface)</paragraph><block_quote><paragraph>The data to be compressed.</paragraph></block_quote><paragraph><strong>typesize</strong> : int</paragraph><block_quote><paragraph>The data type size.</paragraph></block_quote><paragraph><strong>clevel</strong> : int (optional)</paragraph><block_quote><paragraph>The compression level from 0 (no compression) to 9 (maximum compression). The default is 9.</paragraph></block_quote><paragraph><strong>shuffle</strong> : int (optional)</paragraph><block_quote><paragraph>The shuffle filter to be activated. Allowed values are blosc.NOSHUFFLE, blosc.SHUFFLE and blosc.BITSHUFFLE. The default is blosc.SHUFFLE.</paragraph></block_quote><paragraph><strong>cname</strong> : string (optional)</paragraph><block_quote><paragraph>The name of the compressor used internally in Blosc. It can be any of the supported by Blosc (‘blosclz’, ‘lz4’, ‘lz4hc’, ‘snappy’, ‘zlib’, ‘zstd’ and maybe others too). The default is ‘blosclz’.</paragraph></block_quote></field_body></field> SphinxTranslator.dispatch_visit calling visit_field for <field><field_name>Returns</field_name><field_body><paragraph><strong>out</strong> : str / bytes</paragraph><block_quote><paragraph>The compressed data in form of a Python str / bytes object.</paragraph></block_quote></field_body></field> SphinxTranslator.dispatch_visit calling visit_field_name for <field_name>Returns</field_name> SphinxTranslator.dispatch_visit calling visit_Text for Returns SphinxTranslator.dispatch_departure calling depart_Text for Returns SphinxTranslator.dispatch_departure calling depart_field_name for <field_name>Returns</field_name> SphinxTranslator.dispatch_visit calling visit_field_body for <field_body><paragraph><strong>out</strong> : str / bytes</paragraph><block_quote><paragraph>The compressed data in form of a Python str / bytes object.</paragraph></block_quote></field_body> SphinxTranslator.dispatch_visit calling visit_paragraph for <paragraph><strong>out</strong> : str / bytes</paragraph> SphinxTranslator.dispatch_visit calling visit_strong for <strong>out</strong> SphinxTranslator.dispatch_visit calling visit_Text for out SphinxTranslator.dispatch_departure calling depart_Text for out SphinxTranslator.dispatch_departure calling depart_strong for <strong>out</strong> SphinxTranslator.dispatch_visit calling visit_Text for : str / bytes SphinxTranslator.dispatch_departure calling depart_Text for : str / bytes SphinxTranslator.dispatch_departure calling depart_paragraph for <paragraph><strong>out</strong> : str / bytes</paragraph> SphinxTranslator.dispatch_visit calling visit_block_quote for <block_quote><paragraph>The compressed data in form of a Python str / bytes object.</paragraph></block_quote> SphinxTranslator.dispatch_visit calling visit_paragraph for <paragraph>The compressed data in form of a Python str / bytes object.</paragraph> SphinxTranslator.dispatch_visit calling visit_Text for The compressed data in form of a Python str / bytes object. SphinxTranslator.dispatch_departure calling depart_Text for The compressed data in form of a Python str / bytes object. SphinxTranslator.dispatch_departure calling depart_paragraph for <paragraph>The compressed data in form of a Python str / bytes object.</paragraph> SphinxTranslator.dispatch_departure calling depart_block_quote for <block_quote><paragraph>The compressed data in form of a Python str / bytes object.</paragraph></block_quote> SphinxTranslator.dispatch_departure calling depart_field_body for <field_body><paragraph><strong>out</strong> : str / bytes</paragraph><block_quote><paragraph>The compressed data in form of a Python str / bytes object.</paragraph></block_quote></field_body> SphinxTranslator.dispatch_departure calling depart_field for <field classes="field-even"><field_name>Returns</field_name><field_body><paragraph><strong>out</strong> : str / bytes</paragraph><block_quote><paragraph>The compressed data in form of a Python str / bytes object.</paragraph></block_quote></field_body></field> SphinxTranslator.dispatch_visit calling visit_field for <field><field_name>Raises</field_name><field_body><paragraph><strong>TypeError</strong></paragraph><block_quote><paragraph>If bytesobj doesn’t support the buffer interface.</paragraph></block_quote><paragraph><strong>ValueError</strong></paragraph><block_quote><paragraph>If bytesobj is too long. If typesize is not within the allowed range. If clevel is not within the allowed range. If cname is not a valid codec.</paragraph></block_quote></field_body></field> SphinxTranslator.dispatch_visit calling visit_field_name for <field_name>Raises</field_name> SphinxTranslator.dispatch_visit calling visit_Text for Raises SphinxTranslator.dispatch_departure calling depart_Text for Raises SphinxTranslator.dispatch_departure calling depart_field_name for <field_name>Raises</field_name> SphinxTranslator.dispatch_visit calling visit_field_body for <field_body><paragraph><strong>TypeError</strong></paragraph><block_quote><paragraph>If bytesobj doesn’t support the buffer interface.</paragraph></block_quote><paragraph><strong>ValueError</strong></paragraph><block_quote><paragraph>If bytesobj is too long. If typesize is not within the allowed range. If clevel is not within the allowed range. If cname is not a valid codec.</paragraph></block_quote></field_body> SphinxTranslator.dispatch_visit calling visit_paragraph for <paragraph><strong>TypeError</strong></paragraph> SphinxTranslator.dispatch_visit calling visit_strong for <strong>TypeError</strong> SphinxTranslator.dispatch_visit calling visit_Text for TypeError SphinxTranslator.dispatch_departure calling depart_Text for TypeError SphinxTranslator.dispatch_departure calling depart_strong for <strong>TypeError</strong> SphinxTranslator.dispatch_departure calling depart_paragraph for <paragraph><strong>TypeError</strong></paragraph> SphinxTranslator.dispatch_visit calling visit_block_quote for <block_quote><paragraph>If bytesobj doesn’t support the buffer interface.</paragraph></block_quote> SphinxTranslator.dispatch_visit calling visit_paragraph for <paragraph>If bytesobj doesn’t support the buffer interface.</paragraph> SphinxTranslator.dispatch_visit calling visit_Text for If bytesobj doesn’t support the buffer interface. SphinxTranslator.dispatch_departure calling depart_Text for If bytesobj doesn’t support the buffer interface. SphinxTranslator.dispatch_departure calling depart_paragraph for <paragraph>If bytesobj doesn’t support the buffer interface.</paragraph> SphinxTranslator.dispatch_departure calling depart_block_quote for <block_quote><paragraph>If bytesobj doesn’t support the buffer interface.</paragraph></block_quote> SphinxTranslator.dispatch_visit calling visit_paragraph for <paragraph><strong>ValueError</strong></paragraph> SphinxTranslator.dispatch_visit calling visit_strong for <strong>ValueError</strong> SphinxTranslator.dispatch_visit calling visit_Text for ValueError SphinxTranslator.dispatch_departure calling depart_Text for ValueError SphinxTranslator.dispatch_departure calling depart_strong for <strong>ValueError</strong> SphinxTranslator.dispatch_departure calling depart_paragraph for <paragraph><strong>ValueError</strong></paragraph> SphinxTranslator.dispatch_visit calling visit_block_quote for <block_quote><paragraph>If bytesobj is too long. If typesize is not within the allowed range. If clevel is not within the allowed range. If cname is not a valid codec.</paragraph></block_quote> SphinxTranslator.dispatch_visit calling visit_paragraph for <paragraph>If bytesobj is too long. If typesize is not within the allowed range. If clevel is not within the allowed range. If cname is not a valid codec.</paragraph> SphinxTranslator.dispatch_visit calling visit_Text for If bytesobj is too long. If typesize is not within the allowed range. If clevel is not within the allowed range. If cname is not a valid codec. SphinxTranslator.dispatch_departure calling depart_Text for If bytesobj is too long. If typesize is not within the allowed range. If clevel is not within the allowed range. If cname is not a valid codec. SphinxTranslator.dispatch_departure calling depart_paragraph for <paragraph>If bytesobj is too long. If typesize is not within the allowed range. If clevel is not within the allowed range. If cname is not a valid codec.</paragraph> SphinxTranslator.dispatch_departure calling depart_block_quote for <block_quote><paragraph>If bytesobj is too long. If typesize is not within the allowed range. If clevel is not within the allowed range. If cname is not a valid codec.</paragraph></block_quote> SphinxTranslator.dispatch_departure calling depart_field_body for <field_body><paragraph><strong>TypeError</strong></paragraph><block_quote><paragraph>If bytesobj doesn’t support the buffer interface.</paragraph></block_quote><paragraph><strong>ValueError</strong></paragraph><block_quote><paragraph>If bytesobj is too long. If typesize is not within the allowed range. If clevel is not within the allowed range. If cname is not a valid codec.</paragraph></block_quote></field_body> SphinxTranslator.dispatch_departure calling depart_field for <field classes="field-odd"><field_name>Raises</field_name><field_body><paragraph><strong>TypeError</strong></paragraph><block_quote><paragraph>If bytesobj doesn’t support the buffer interface.</paragraph></block_quote><paragraph><strong>ValueError</strong></paragraph><block_quote><paragraph>If bytesobj is too long. If typesize is not within the allowed range. If clevel is not within the allowed range. If cname is not a valid codec.</paragraph></block_quote></field_body></field> SphinxTranslator.dispatch_departure calling depart_field_list for <field_list><field classes="field-odd"><field_name>Parameters</field_name><field_body><paragraph><strong>bytesobj</strong> : bytes-like object (supporting the buffer interface)</paragraph><block_quote><paragraph>The data to be compressed.</paragraph></block_quote><paragraph><strong>typesize</strong> : int</paragraph><block_quote><paragraph>The data type size.</paragraph></block_quote><paragraph><strong>clevel</strong> : int (optional)</paragraph><block_quote><paragraph>The compression level from 0 (no compression) to 9 (maximum compression). The default is 9.</paragraph></block_quote><paragraph><strong>shuffle</strong> : int (optional)</paragraph><block_quote><paragraph>The shuffle filter to be activated. Allowed values are blosc.NOSHUFFLE, blosc.SHUFFLE and blosc.BITSHUFFLE. The default is blosc.SHUFFLE.</paragraph></block_quote><paragraph><strong>cname</strong> : string (optional)</paragraph><block_quote><paragraph>The name of the compressor used internally in Blosc. It can be any of the supported by Blosc (‘blosclz’, ‘lz4’, ‘lz4hc’, ‘snappy’, ‘zlib’, ‘zstd’ and maybe others too). The default is ‘blosclz’.</paragraph></block_quote></field_body></field><field classes="field-even"><field_name>Returns</field_name><field_body><paragraph><strong>out</strong> : str / bytes</paragraph><block_quote><paragraph>The compressed data in form of a Python str / bytes object.</paragraph></block_quote></field_body></field><field classes="field-odd"><field_name>Raises</field_name><field_body><paragraph><strong>TypeError</strong></paragraph><block_quote><paragraph>If bytesobj doesn’t support the buffer interface.</paragraph></block_quote><paragraph><strong>ValueError</strong></paragraph><block_quote><paragraph>If bytesobj is too long. If typesize is not within the allowed range. If clevel is not within the allowed range. If cname is not a valid codec.</paragraph></block_quote></field_body></field></field_list> SphinxTranslator.dispatch_visit calling visit_rubric for <rubric>Examples</rubric> SphinxTranslator.dispatch_visit calling visit_Text for Examples SphinxTranslator.dispatch_departure calling depart_Text for Examples SphinxTranslator.dispatch_departure calling depart_rubric for <rubric>Examples</rubric> SphinxTranslator.dispatch_visit calling visit_doctest_block for <doctest_block classes="doctest" xml:space="preserve">>>> import array >>> a = array.array('i', range(1000*1000)) >>> a_bytesobj = a.tostring() >>> c_bytesobj = blosc.compress(a_bytesobj, typesize=4) >>> len(c_bytesobj) < len(a_bytesobj) True</doctest_block> SphinxTranslator.dispatch_departure calling depart_desc_content for <desc_content><paragraph>Compress bytesobj, with a given type size.</paragraph><field_list><field classes="field-odd"><field_name>Parameters</field_name><field_body><paragraph><strong>bytesobj</strong> : bytes-like object (supporting the buffer interface)</paragraph><block_quote><paragraph>The data to be compressed.</paragraph></block_quote><paragraph><strong>typesize</strong> : int</paragraph><block_quote><paragraph>The data type size.</paragraph></block_quote><paragraph><strong>clevel</strong> : int (optional)</paragraph><block_quote><paragraph>The compression level from 0 (no compression) to 9 (maximum compression). The default is 9.</paragraph></block_quote><paragraph><strong>shuffle</strong> : int (optional)</paragraph><block_quote><paragraph>The shuffle filter to be activated. Allowed values are blosc.NOSHUFFLE, blosc.SHUFFLE and blosc.BITSHUFFLE. The default is blosc.SHUFFLE.</paragraph></block_quote><paragraph><strong>cname</strong> : string (optional)</paragraph><block_quote><paragraph>The name of the compressor used internally in Blosc. It can be any of the supported by Blosc (‘blosclz’, ‘lz4’, ‘lz4hc’, ‘snappy’, ‘zlib’, ‘zstd’ and maybe others too). The default is ‘blosclz’.</paragraph></block_quote></field_body></field><field classes="field-even"><field_name>Returns</field_name><field_body><paragraph><strong>out</strong> : str / bytes</paragraph><block_quote><paragraph>The compressed data in form of a Python str / bytes object.</paragraph></block_quote></field_body></field><field classes="field-odd"><field_name>Raises</field_name><field_body><paragraph><strong>TypeError</strong></paragraph><block_quote><paragraph>If bytesobj doesn’t support the buffer interface.</paragraph></block_quote><paragraph><strong>ValueError</strong></paragraph><block_quote><paragraph>If bytesobj is too long. If typesize is not within the allowed range. If clevel is not within the allowed range. If cname is not a valid codec.</paragraph></block_quote></field_body></field></field_list><rubric>Examples</rubric><doctest_block classes="doctest" xml:space="preserve">>>> import array >>> a = array.array('i', range(1000*1000)) >>> a_bytesobj = a.tostring() >>> c_bytesobj = blosc.compress(a_bytesobj, typesize=4) >>> len(c_bytesobj) < len(a_bytesobj) True</doctest_block></desc_content> SphinxTranslator.dispatch_departure calling depart_desc for <desc desctype="function" domain="py" noindex="False" objtype="function"><desc_signature class="" first="False" fullname="compress" ids="blosc.compress" module="blosc" names="blosc.compress"><desc_addname xml:space="preserve">blosc.</desc_addname><desc_name xml:space="preserve">compress</desc_name><desc_parameterlist xml:space="preserve"><desc_parameter xml:space="preserve">bytesobj[, typesize=8, clevel=9, shuffle=blosc.SHUFFLE, cname='blosclz']]</desc_parameter></desc_parameterlist></desc_signature><desc_content><paragraph>Compress bytesobj, with a given type size.</paragraph><field_list><field classes="field-odd"><field_name>Parameters</field_name><field_body><paragraph><strong>bytesobj</strong> : bytes-like object (supporting the buffer interface)</paragraph><block_quote><paragraph>The data to be compressed.</paragraph></block_quote><paragraph><strong>typesize</strong> : int</paragraph><block_quote><paragraph>The data type size.</paragraph></block_quote><paragraph><strong>clevel</strong> : int (optional)</paragraph><block_quote><paragraph>The compression level from 0 (no compression) to 9 (maximum compression). The default is 9.</paragraph></block_quote><paragraph><strong>shuffle</strong> : int (optional)</paragraph><block_quote><paragraph>The shuffle filter to be activated. Allowed values are blosc.NOSHUFFLE, blosc.SHUFFLE and blosc.BITSHUFFLE. The default is blosc.SHUFFLE.</paragraph></block_quote><paragraph><strong>cname</strong> : string (optional)</paragraph><block_quote><paragraph>The name of the compressor used internally in Blosc. It can be any of the supported by Blosc (‘blosclz’, ‘lz4’, ‘lz4hc’, ‘snappy’, ‘zlib’, ‘zstd’ and maybe others too). The default is ‘blosclz’.</paragraph></block_quote></field_body></field><field classes="field-even"><field_name>Returns</field_name><field_body><paragraph><strong>out</strong> : str / bytes</paragraph><block_quote><paragraph>The compressed data in form of a Python str / bytes object.</paragraph></block_quote></field_body></field><field classes="field-odd"><field_name>Raises</field_name><field_body><paragraph><strong>TypeError</strong></paragraph><block_quote><paragraph>If bytesobj doesn’t support the buffer interface.</paragraph></block_quote><paragraph><strong>ValueError</strong></paragraph><block_quote><paragraph>If bytesobj is too long. If typesize is not within the allowed range. If clevel is not within the allowed range. If cname is not a valid codec.</paragraph></block_quote></field_body></field></field_list><rubric>Examples</rubric><doctest_block classes="doctest" xml:space="preserve">>>> import array >>> a = array.array('i', range(1000*1000)) >>> a_bytesobj = a.tostring() >>> c_bytesobj = blosc.compress(a_bytesobj, typesize=4) >>> len(c_bytesobj) < len(a_bytesobj) True</doctest_block></desc_content></desc> SphinxTranslator.dispatch_visit calling visit_index for <index entries="[('single', 'compress_ptr() (in module blosc)', 'blosc.compress_ptr', '', None)]"/> SphinxTranslator.dispatch_visit calling visit_desc for <desc desctype="function" domain="py" noindex="False" objtype="function"><desc_signature class="" first="False" fullname="compress_ptr" ids="blosc.compress_ptr" module="blosc" names="blosc.compress_ptr"><desc_addname xml:space="preserve">blosc.</desc_addname><desc_name xml:space="preserve">compress_ptr</desc_name><desc_parameterlist xml:space="preserve"><desc_parameter xml:space="preserve">address, items[, typesize=8, clevel=9, shuffle=blosc.SHUFFLE, cname='blosclz']]</desc_parameter></desc_parameterlist></desc_signature><desc_content><paragraph>Compress the data at address with given items and typesize.</paragraph><field_list><field><field_name>Parameters</field_name><field_body><paragraph><strong>address</strong> : int or long</paragraph><block_quote><paragraph>the pointer to the data to be compressed</paragraph></block_quote><paragraph><strong>items</strong> : int</paragraph><block_quote><paragraph>The number of items (of typesize) to be compressed.</paragraph></block_quote><paragraph><strong>typesize</strong> : int</paragraph><block_quote><paragraph>The data type size.</paragraph></block_quote><paragraph><strong>clevel</strong> : int (optional)</paragraph><block_quote><paragraph>The compression level from 0 (no compression) to 9 (maximum compression). The default is 9.</paragraph></block_quote><paragraph><strong>shuffle</strong> : int (optional)</paragraph><block_quote><paragraph>The shuffle filter to be activated. Allowed values are blosc.NOSHUFFLE, blosc.SHUFFLE and blosc.BITSHUFFLE. The default is blosc.SHUFFLE.</paragraph></block_quote><paragraph><strong>cname</strong> : string (optional)</paragraph><block_quote><paragraph>The name of the compressor used internally in Blosc. It can be any of the supported by Blosc (‘blosclz’, ‘lz4’, ‘lz4hc’, ‘snappy’, ‘zlib’, ‘zstd’ and maybe others too). The default is ‘blosclz’.</paragraph></block_quote></field_body></field><field><field_name>Returns</field_name><field_body><paragraph><strong>out</strong> : str / bytes</paragraph><block_quote><paragraph>The compressed data in form of a Python str / bytes object.</paragraph></block_quote></field_body></field><field><field_name>Raises</field_name><field_body><paragraph><strong>TypeError</strong></paragraph><block_quote><paragraph>If address is not of type int or long.</paragraph></block_quote><paragraph><strong>ValueError</strong></paragraph><block_quote><paragraph>If items * typesize is larger than the maximum allowed buffer size. If typesize is not within the allowed range. If clevel is not within the allowed range. If cname is not within the supported compressors.</paragraph></block_quote></field_body></field></field_list><rubric>Notes</rubric><paragraph>This function can be used anywhere that a memory address is available in Python. For example the Numpy “__array_interface__[‘data’][0]†construct, or when using the ctypes modules.</paragraph><paragraph>Importantly, the user is responsible for making sure that the memory address is valid and that the memory pointed to is contiguous. Passing a non-valid address has a high likelihood of crashing the interpreter by segfault.</paragraph><rubric>Examples</rubric><doctest_block classes="doctest" xml:space="preserve">>>> import numpy >>> items = 7 >>> np_array = numpy.arange(items) >>> c = blosc.compress_ptr(np_array.__array_interface__['data'][0], items, np_array.dtype.itemsize) >>> d = blosc.decompress(c) >>> np_ans = numpy.fromstring(d, dtype=np_array.dtype) >>> (np_array == np_ans).all() True</doctest_block><doctest_block classes="doctest" xml:space="preserve">>>> import ctypes >>> typesize = 8 >>> data = [float(i) for i in range(items)] >>> Array = ctypes.c_double * items >>> a = Array(*data) >>> c = blosc.compress_ptr(ctypes.addressof(a), items, typesize) >>> d = blosc.decompress(c) >>> import struct >>> ans = [struct.unpack('d', d[i:i+typesize])[0] for i in range(0, items*typesize, typesize)] >>> data == ans True</doctest_block></desc_content></desc> SphinxTranslator.dispatch_visit calling visit_desc_signature for <desc_signature class="" first="False" fullname="compress_ptr" ids="blosc.compress_ptr" module="blosc" names="blosc.compress_ptr"><desc_addname xml:space="preserve">blosc.</desc_addname><desc_name xml:space="preserve">compress_ptr</desc_name><desc_parameterlist xml:space="preserve"><desc_parameter xml:space="preserve">address, items[, typesize=8, clevel=9, shuffle=blosc.SHUFFLE, cname='blosclz']]</desc_parameter></desc_parameterlist></desc_signature> SphinxTranslator.dispatch_visit calling visit_desc_addname for <desc_addname xml:space="preserve">blosc.</desc_addname> SphinxTranslator.dispatch_visit calling visit_Text for blosc. SphinxTranslator.dispatch_departure calling depart_Text for blosc. SphinxTranslator.dispatch_departure calling depart_desc_addname for <desc_addname xml:space="preserve">blosc.</desc_addname> SphinxTranslator.dispatch_visit calling visit_desc_name for <desc_name xml:space="preserve">compress_ptr</desc_name> SphinxTranslator.dispatch_visit calling visit_Text for compress_ptr SphinxTranslator.dispatch_departure calling depart_Text for compress_ptr SphinxTranslator.dispatch_departure calling depart_desc_name for <desc_name xml:space="preserve">compress_ptr</desc_name> SphinxTranslator.dispatch_visit calling visit_desc_parameterlist for <desc_parameterlist xml:space="preserve"><desc_parameter xml:space="preserve">address, items[, typesize=8, clevel=9, shuffle=blosc.SHUFFLE, cname='blosclz']]</desc_parameter></desc_parameterlist> SphinxTranslator.dispatch_visit calling visit_desc_parameter for <desc_parameter xml:space="preserve">address, items[, typesize=8, clevel=9, shuffle=blosc.SHUFFLE, cname='blosclz']]</desc_parameter> SphinxTranslator.dispatch_visit calling visit_Text for address, items[, typesize=8, clevel=9, shuffle=blosc.SHUFFLE, cname='blosclz']] SphinxTranslator.dispatch_departure calling depart_Text for address, items[, typesize=8, clevel=9, shuffle=blosc.SHUFFLE, cname='blosclz']] SphinxTranslator.dispatch_departure calling depart_desc_parameter for <desc_parameter xml:space="preserve">address, items[, typesize=8, clevel=9, shuffle=blosc.SHUFFLE, cname='blosclz']]</desc_parameter> SphinxTranslator.dispatch_departure calling depart_desc_parameterlist for <desc_parameterlist xml:space="preserve"><desc_parameter xml:space="preserve">address, items[, typesize=8, clevel=9, shuffle=blosc.SHUFFLE, cname='blosclz']]</desc_parameter></desc_parameterlist> SphinxTranslator.dispatch_departure calling depart_desc_signature for <desc_signature class="" first="False" fullname="compress_ptr" ids="blosc.compress_ptr" module="blosc" names="blosc.compress_ptr"><desc_addname xml:space="preserve">blosc.</desc_addname><desc_name xml:space="preserve">compress_ptr</desc_name><desc_parameterlist xml:space="preserve"><desc_parameter xml:space="preserve">address, items[, typesize=8, clevel=9, shuffle=blosc.SHUFFLE, cname='blosclz']]</desc_parameter></desc_parameterlist></desc_signature> SphinxTranslator.dispatch_visit calling visit_desc_content for <desc_content><paragraph>Compress the data at address with given items and typesize.</paragraph><field_list><field><field_name>Parameters</field_name><field_body><paragraph><strong>address</strong> : int or long</paragraph><block_quote><paragraph>the pointer to the data to be compressed</paragraph></block_quote><paragraph><strong>items</strong> : int</paragraph><block_quote><paragraph>The number of items (of typesize) to be compressed.</paragraph></block_quote><paragraph><strong>typesize</strong> : int</paragraph><block_quote><paragraph>The data type size.</paragraph></block_quote><paragraph><strong>clevel</strong> : int (optional)</paragraph><block_quote><paragraph>The compression level from 0 (no compression) to 9 (maximum compression). The default is 9.</paragraph></block_quote><paragraph><strong>shuffle</strong> : int (optional)</paragraph><block_quote><paragraph>The shuffle filter to be activated. Allowed values are blosc.NOSHUFFLE, blosc.SHUFFLE and blosc.BITSHUFFLE. The default is blosc.SHUFFLE.</paragraph></block_quote><paragraph><strong>cname</strong> : string (optional)</paragraph><block_quote><paragraph>The name of the compressor used internally in Blosc. It can be any of the supported by Blosc (‘blosclz’, ‘lz4’, ‘lz4hc’, ‘snappy’, ‘zlib’, ‘zstd’ and maybe others too). The default is ‘blosclz’.</paragraph></block_quote></field_body></field><field><field_name>Returns</field_name><field_body><paragraph><strong>out</strong> : str / bytes</paragraph><block_quote><paragraph>The compressed data in form of a Python str / bytes object.</paragraph></block_quote></field_body></field><field><field_name>Raises</field_name><field_body><paragraph><strong>TypeError</strong></paragraph><block_quote><paragraph>If address is not of type int or long.</paragraph></block_quote><paragraph><strong>ValueError</strong></paragraph><block_quote><paragraph>If items * typesize is larger than the maximum allowed buffer size. If typesize is not within the allowed range. If clevel is not within the allowed range. If cname is not within the supported compressors.</paragraph></block_quote></field_body></field></field_list><rubric>Notes</rubric><paragraph>This function can be used anywhere that a memory address is available in Python. For example the Numpy “__array_interface__[‘data’][0]†construct, or when using the ctypes modules.</paragraph><paragraph>Importantly, the user is responsible for making sure that the memory address is valid and that the memory pointed to is contiguous. Passing a non-valid address has a high likelihood of crashing the interpreter by segfault.</paragraph><rubric>Examples</rubric><doctest_block classes="doctest" xml:space="preserve">>>> import numpy >>> items = 7 >>> np_array = numpy.arange(items) >>> c = blosc.compress_ptr(np_array.__array_interface__['data'][0], items, np_array.dtype.itemsize) >>> d = blosc.decompress(c) >>> np_ans = numpy.fromstring(d, dtype=np_array.dtype) >>> (np_array == np_ans).all() True</doctest_block><doctest_block classes="doctest" xml:space="preserve">>>> import ctypes >>> typesize = 8 >>> data = [float(i) for i in range(items)] >>> Array = ctypes.c_double * items >>> a = Array(*data) >>> c = blosc.compress_ptr(ctypes.addressof(a), items, typesize) >>> d = blosc.decompress(c) >>> import struct >>> ans = [struct.unpack('d', d[i:i+typesize])[0] for i in range(0, items*typesize, typesize)] >>> data == ans True</doctest_block></desc_content> SphinxTranslator.dispatch_visit calling visit_paragraph for <paragraph>Compress the data at address with given items and typesize.</paragraph> SphinxTranslator.dispatch_visit calling visit_Text for Compress the data at address with given items and typesize. SphinxTranslator.dispatch_departure calling depart_Text for Compress the data at address with given items and typesize. SphinxTranslator.dispatch_departure calling depart_paragraph for <paragraph>Compress the data at address with given items and typesize.</paragraph> SphinxTranslator.dispatch_visit calling visit_field_list for <field_list><field><field_name>Parameters</field_name><field_body><paragraph><strong>address</strong> : int or long</paragraph><block_quote><paragraph>the pointer to the data to be compressed</paragraph></block_quote><paragraph><strong>items</strong> : int</paragraph><block_quote><paragraph>The number of items (of typesize) to be compressed.</paragraph></block_quote><paragraph><strong>typesize</strong> : int</paragraph><block_quote><paragraph>The data type size.</paragraph></block_quote><paragraph><strong>clevel</strong> : int (optional)</paragraph><block_quote><paragraph>The compression level from 0 (no compression) to 9 (maximum compression). The default is 9.</paragraph></block_quote><paragraph><strong>shuffle</strong> : int (optional)</paragraph><block_quote><paragraph>The shuffle filter to be activated. Allowed values are blosc.NOSHUFFLE, blosc.SHUFFLE and blosc.BITSHUFFLE. The default is blosc.SHUFFLE.</paragraph></block_quote><paragraph><strong>cname</strong> : string (optional)</paragraph><block_quote><paragraph>The name of the compressor used internally in Blosc. It can be any of the supported by Blosc (‘blosclz’, ‘lz4’, ‘lz4hc’, ‘snappy’, ‘zlib’, ‘zstd’ and maybe others too). The default is ‘blosclz’.</paragraph></block_quote></field_body></field><field><field_name>Returns</field_name><field_body><paragraph><strong>out</strong> : str / bytes</paragraph><block_quote><paragraph>The compressed data in form of a Python str / bytes object.</paragraph></block_quote></field_body></field><field><field_name>Raises</field_name><field_body><paragraph><strong>TypeError</strong></paragraph><block_quote><paragraph>If address is not of type int or long.</paragraph></block_quote><paragraph><strong>ValueError</strong></paragraph><block_quote><paragraph>If items * typesize is larger than the maximum allowed buffer size. If typesize is not within the allowed range. If clevel is not within the allowed range. If cname is not within the supported compressors.</paragraph></block_quote></field_body></field></field_list> SphinxTranslator.dispatch_visit calling visit_field for <field><field_name>Parameters</field_name><field_body><paragraph><strong>address</strong> : int or long</paragraph><block_quote><paragraph>the pointer to the data to be compressed</paragraph></block_quote><paragraph><strong>items</strong> : int</paragraph><block_quote><paragraph>The number of items (of typesize) to be compressed.</paragraph></block_quote><paragraph><strong>typesize</strong> : int</paragraph><block_quote><paragraph>The data type size.</paragraph></block_quote><paragraph><strong>clevel</strong> : int (optional)</paragraph><block_quote><paragraph>The compression level from 0 (no compression) to 9 (maximum compression). The default is 9.</paragraph></block_quote><paragraph><strong>shuffle</strong> : int (optional)</paragraph><block_quote><paragraph>The shuffle filter to be activated. Allowed values are blosc.NOSHUFFLE, blosc.SHUFFLE and blosc.BITSHUFFLE. The default is blosc.SHUFFLE.</paragraph></block_quote><paragraph><strong>cname</strong> : string (optional)</paragraph><block_quote><paragraph>The name of the compressor used internally in Blosc. It can be any of the supported by Blosc (‘blosclz’, ‘lz4’, ‘lz4hc’, ‘snappy’, ‘zlib’, ‘zstd’ and maybe others too). The default is ‘blosclz’.</paragraph></block_quote></field_body></field> SphinxTranslator.dispatch_visit calling visit_field_name for <field_name>Parameters</field_name> SphinxTranslator.dispatch_visit calling visit_Text for Parameters SphinxTranslator.dispatch_departure calling depart_Text for Parameters SphinxTranslator.dispatch_departure calling depart_field_name for <field_name>Parameters</field_name> SphinxTranslator.dispatch_visit calling visit_field_body for <field_body><paragraph><strong>address</strong> : int or long</paragraph><block_quote><paragraph>the pointer to the data to be compressed</paragraph></block_quote><paragraph><strong>items</strong> : int</paragraph><block_quote><paragraph>The number of items (of typesize) to be compressed.</paragraph></block_quote><paragraph><strong>typesize</strong> : int</paragraph><block_quote><paragraph>The data type size.</paragraph></block_quote><paragraph><strong>clevel</strong> : int (optional)</paragraph><block_quote><paragraph>The compression level from 0 (no compression) to 9 (maximum compression). The default is 9.</paragraph></block_quote><paragraph><strong>shuffle</strong> : int (optional)</paragraph><block_quote><paragraph>The shuffle filter to be activated. Allowed values are blosc.NOSHUFFLE, blosc.SHUFFLE and blosc.BITSHUFFLE. The default is blosc.SHUFFLE.</paragraph></block_quote><paragraph><strong>cname</strong> : string (optional)</paragraph><block_quote><paragraph>The name of the compressor used internally in Blosc. It can be any of the supported by Blosc (‘blosclz’, ‘lz4’, ‘lz4hc’, ‘snappy’, ‘zlib’, ‘zstd’ and maybe others too). The default is ‘blosclz’.</paragraph></block_quote></field_body> SphinxTranslator.dispatch_visit calling visit_paragraph for <paragraph><strong>address</strong> : int or long</paragraph> SphinxTranslator.dispatch_visit calling visit_strong for <strong>address</strong> SphinxTranslator.dispatch_visit calling visit_Text for address SphinxTranslator.dispatch_departure calling depart_Text for address SphinxTranslator.dispatch_departure calling depart_strong for <strong>address</strong> SphinxTranslator.dispatch_visit calling visit_Text for : int or long SphinxTranslator.dispatch_departure calling depart_Text for : int or long SphinxTranslator.dispatch_departure calling depart_paragraph for <paragraph><strong>address</strong> : int or long</paragraph> SphinxTranslator.dispatch_visit calling visit_block_quote for <block_quote><paragraph>the pointer to the data to be compressed</paragraph></block_quote> SphinxTranslator.dispatch_visit calling visit_paragraph for <paragraph>the pointer to the data to be compressed</paragraph> SphinxTranslator.dispatch_visit calling visit_Text for the pointer to the data to be compressed SphinxTranslator.dispatch_departure calling depart_Text for the pointer to the data to be compressed SphinxTranslator.dispatch_departure calling depart_paragraph for <paragraph>the pointer to the data to be compressed</paragraph> SphinxTranslator.dispatch_departure calling depart_block_quote for <block_quote><paragraph>the pointer to the data to be compressed</paragraph></block_quote> SphinxTranslator.dispatch_visit calling visit_paragraph for <paragraph><strong>items</strong> : int</paragraph> SphinxTranslator.dispatch_visit calling visit_strong for <strong>items</strong> SphinxTranslator.dispatch_visit calling visit_Text for items SphinxTranslator.dispatch_departure calling depart_Text for items SphinxTranslator.dispatch_departure calling depart_strong for <strong>items</strong> SphinxTranslator.dispatch_visit calling visit_Text for : int SphinxTranslator.dispatch_departure calling depart_Text for : int SphinxTranslator.dispatch_departure calling depart_paragraph for <paragraph><strong>items</strong> : int</paragraph> SphinxTranslator.dispatch_visit calling visit_block_quote for <block_quote><paragraph>The number of items (of typesize) to be compressed.</paragraph></block_quote> SphinxTranslator.dispatch_visit calling visit_paragraph for <paragraph>The number of items (of typesize) to be compressed.</paragraph> SphinxTranslator.dispatch_visit calling visit_Text for The number of items (of typesize) to be compressed. SphinxTranslator.dispatch_departure calling depart_Text for The number of items (of typesize) to be compressed. SphinxTranslator.dispatch_departure calling depart_paragraph for <paragraph>The number of items (of typesize) to be compressed.</paragraph> SphinxTranslator.dispatch_departure calling depart_block_quote for <block_quote><paragraph>The number of items (of typesize) to be compressed.</paragraph></block_quote> SphinxTranslator.dispatch_visit calling visit_paragraph for <paragraph><strong>typesize</strong> : int</paragraph> SphinxTranslator.dispatch_visit calling visit_strong for <strong>typesize</strong> SphinxTranslator.dispatch_visit calling visit_Text for typesize SphinxTranslator.dispatch_departure calling depart_Text for typesize SphinxTranslator.dispatch_departure calling depart_strong for <strong>typesize</strong> SphinxTranslator.dispatch_visit calling visit_Text for : int SphinxTranslator.dispatch_departure calling depart_Text for : int SphinxTranslator.dispatch_departure calling depart_paragraph for <paragraph><strong>typesize</strong> : int</paragraph> SphinxTranslator.dispatch_visit calling visit_block_quote for <block_quote><paragraph>The data type size.</paragraph></block_quote> SphinxTranslator.dispatch_visit calling visit_paragraph for <paragraph>The data type size.</paragraph> SphinxTranslator.dispatch_visit calling visit_Text for The data type size. SphinxTranslator.dispatch_departure calling depart_Text for The data type size. SphinxTranslator.dispatch_departure calling depart_paragraph for <paragraph>The data type size.</paragraph> SphinxTranslator.dispatch_departure calling depart_block_quote for <block_quote><paragraph>The data type size.</paragraph></block_quote> SphinxTranslator.dispatch_visit calling visit_paragraph for <paragraph><strong>clevel</strong> : int (optional)</paragraph> SphinxTranslator.dispatch_visit calling visit_strong for <strong>clevel</strong> SphinxTranslator.dispatch_visit calling visit_Text for clevel SphinxTranslator.dispatch_departure calling depart_Text for clevel SphinxTranslator.dispatch_departure calling depart_strong for <strong>clevel</strong> SphinxTranslator.dispatch_visit calling visit_Text for : int (optional) SphinxTranslator.dispatch_departure calling depart_Text for : int (optional) SphinxTranslator.dispatch_departure calling depart_paragraph for <paragraph><strong>clevel</strong> : int (optional)</paragraph> SphinxTranslator.dispatch_visit calling visit_block_quote for <block_quote><paragraph>The compression level from 0 (no compression) to 9 (maximum compression). The default is 9.</paragraph></block_quote> SphinxTranslator.dispatch_visit calling visit_paragraph for <paragraph>The compression level from 0 (no compression) to 9 (maximum compression). The default is 9.</paragraph> SphinxTranslator.dispatch_visit calling visit_Text for The compression level from 0 (no compression) to 9 (maximum compression). The default is 9. SphinxTranslator.dispatch_departure calling depart_Text for The compression level from 0 (no compression) to 9 (maximum compression). The default is 9. SphinxTranslator.dispatch_departure calling depart_paragraph for <paragraph>The compression level from 0 (no compression) to 9 (maximum compression). The default is 9.</paragraph> SphinxTranslator.dispatch_departure calling depart_block_quote for <block_quote><paragraph>The compression level from 0 (no compression) to 9 (maximum compression). The default is 9.</paragraph></block_quote> SphinxTranslator.dispatch_visit calling visit_paragraph for <paragraph><strong>shuffle</strong> : int (optional)</paragraph> SphinxTranslator.dispatch_visit calling visit_strong for <strong>shuffle</strong> SphinxTranslator.dispatch_visit calling visit_Text for shuffle SphinxTranslator.dispatch_departure calling depart_Text for shuffle SphinxTranslator.dispatch_departure calling depart_strong for <strong>shuffle</strong> SphinxTranslator.dispatch_visit calling visit_Text for : int (optional) SphinxTranslator.dispatch_departure calling depart_Text for : int (optional) SphinxTranslator.dispatch_departure calling depart_paragraph for <paragraph><strong>shuffle</strong> : int (optional)</paragraph> SphinxTranslator.dispatch_visit calling visit_block_quote for <block_quote><paragraph>The shuffle filter to be activated. Allowed values are blosc.NOSHUFFLE, blosc.SHUFFLE and blosc.BITSHUFFLE. The default is blosc.SHUFFLE.</paragraph></block_quote> SphinxTranslator.dispatch_visit calling visit_paragraph for <paragraph>The shuffle filter to be activated. Allowed values are blosc.NOSHUFFLE, blosc.SHUFFLE and blosc.BITSHUFFLE. The default is blosc.SHUFFLE.</paragraph> SphinxTranslator.dispatch_visit calling visit_Text for The shuffle filter to be activated. Allowed values are blosc.NOSHUFFLE, blosc.SHUFFLE and blosc.BITSHUFFLE. The default is blosc.SHUFFLE. SphinxTranslator.dispatch_departure calling depart_Text for The shuffle filter to be activated. Allowed values are blosc.NOSHUFFLE, blosc.SHUFFLE and blosc.BITSHUFFLE. The default is blosc.SHUFFLE. SphinxTranslator.dispatch_departure calling depart_paragraph for <paragraph>The shuffle filter to be activated. Allowed values are blosc.NOSHUFFLE, blosc.SHUFFLE and blosc.BITSHUFFLE. The default is blosc.SHUFFLE.</paragraph> SphinxTranslator.dispatch_departure calling depart_block_quote for <block_quote><paragraph>The shuffle filter to be activated. Allowed values are blosc.NOSHUFFLE, blosc.SHUFFLE and blosc.BITSHUFFLE. The default is blosc.SHUFFLE.</paragraph></block_quote> SphinxTranslator.dispatch_visit calling visit_paragraph for <paragraph><strong>cname</strong> : string (optional)</paragraph> SphinxTranslator.dispatch_visit calling visit_strong for <strong>cname</strong> SphinxTranslator.dispatch_visit calling visit_Text for cname SphinxTranslator.dispatch_departure calling depart_Text for cname SphinxTranslator.dispatch_departure calling depart_strong for <strong>cname</strong> SphinxTranslator.dispatch_visit calling visit_Text for : string (optional) SphinxTranslator.dispatch_departure calling depart_Text for : string (optional) SphinxTranslator.dispatch_departure calling depart_paragraph for <paragraph><strong>cname</strong> : string (optional)</paragraph> SphinxTranslator.dispatch_visit calling visit_block_quote for <block_quote><paragraph>The name of the compressor used internally in Blosc. It can be any of the supported by Blosc (‘blosclz’, ‘lz4’, ‘lz4hc’, ‘snappy’, ‘zlib’, ‘zstd’ and maybe others too). The default is ‘blosclz’.</paragraph></block_quote> SphinxTranslator.dispatch_visit calling visit_paragraph for <paragraph>The name of the compressor used internally in Blosc. It can be any of the supported by Blosc (‘blosclz’, ‘lz4’, ‘lz4hc’, ‘snappy’, ‘zlib’, ‘zstd’ and maybe others too). The default is ‘blosclz’.</paragraph> SphinxTranslator.dispatch_visit calling visit_Text for The name of the compressor used internally in Blosc. It can be any of the supported by Blosc (‘blosclz’, ‘lz4’, ‘lz4hc’, ‘snappy’, ‘zlib’, ‘zstd’ and maybe others too). The default is ‘blosclz’. SphinxTranslator.dispatch_departure calling depart_Text for The name of the compressor used internally in Blosc. It can be any of the supported by Blosc (‘blosclz’, ‘lz4’, ‘lz4hc’, ‘snappy’, ‘zlib’, ‘zstd’ and maybe others too). The default is ‘blosclz’. SphinxTranslator.dispatch_departure calling depart_paragraph for <paragraph>The name of the compressor used internally in Blosc. It can be any of the supported by Blosc (‘blosclz’, ‘lz4’, ‘lz4hc’, ‘snappy’, ‘zlib’, ‘zstd’ and maybe others too). The default is ‘blosclz’.</paragraph> SphinxTranslator.dispatch_departure calling depart_block_quote for <block_quote><paragraph>The name of the compressor used internally in Blosc. It can be any of the supported by Blosc (‘blosclz’, ‘lz4’, ‘lz4hc’, ‘snappy’, ‘zlib’, ‘zstd’ and maybe others too). The default is ‘blosclz’.</paragraph></block_quote> SphinxTranslator.dispatch_departure calling depart_field_body for <field_body><paragraph><strong>address</strong> : int or long</paragraph><block_quote><paragraph>the pointer to the data to be compressed</paragraph></block_quote><paragraph><strong>items</strong> : int</paragraph><block_quote><paragraph>The number of items (of typesize) to be compressed.</paragraph></block_quote><paragraph><strong>typesize</strong> : int</paragraph><block_quote><paragraph>The data type size.</paragraph></block_quote><paragraph><strong>clevel</strong> : int (optional)</paragraph><block_quote><paragraph>The compression level from 0 (no compression) to 9 (maximum compression). The default is 9.</paragraph></block_quote><paragraph><strong>shuffle</strong> : int (optional)</paragraph><block_quote><paragraph>The shuffle filter to be activated. Allowed values are blosc.NOSHUFFLE, blosc.SHUFFLE and blosc.BITSHUFFLE. The default is blosc.SHUFFLE.</paragraph></block_quote><paragraph><strong>cname</strong> : string (optional)</paragraph><block_quote><paragraph>The name of the compressor used internally in Blosc. It can be any of the supported by Blosc (‘blosclz’, ‘lz4’, ‘lz4hc’, ‘snappy’, ‘zlib’, ‘zstd’ and maybe others too). The default is ‘blosclz’.</paragraph></block_quote></field_body> SphinxTranslator.dispatch_departure calling depart_field for <field classes="field-odd"><field_name>Parameters</field_name><field_body><paragraph><strong>address</strong> : int or long</paragraph><block_quote><paragraph>the pointer to the data to be compressed</paragraph></block_quote><paragraph><strong>items</strong> : int</paragraph><block_quote><paragraph>The number of items (of typesize) to be compressed.</paragraph></block_quote><paragraph><strong>typesize</strong> : int</paragraph><block_quote><paragraph>The data type size.</paragraph></block_quote><paragraph><strong>clevel</strong> : int (optional)</paragraph><block_quote><paragraph>The compression level from 0 (no compression) to 9 (maximum compression). The default is 9.</paragraph></block_quote><paragraph><strong>shuffle</strong> : int (optional)</paragraph><block_quote><paragraph>The shuffle filter to be activated. Allowed values are blosc.NOSHUFFLE, blosc.SHUFFLE and blosc.BITSHUFFLE. The default is blosc.SHUFFLE.</paragraph></block_quote><paragraph><strong>cname</strong> : string (optional)</paragraph><block_quote><paragraph>The name of the compressor used internally in Blosc. It can be any of the supported by Blosc (‘blosclz’, ‘lz4’, ‘lz4hc’, ‘snappy’, ‘zlib’, ‘zstd’ and maybe others too). The default is ‘blosclz’.</paragraph></block_quote></field_body></field> SphinxTranslator.dispatch_visit calling visit_field for <field><field_name>Returns</field_name><field_body><paragraph><strong>out</strong> : str / bytes</paragraph><block_quote><paragraph>The compressed data in form of a Python str / bytes object.</paragraph></block_quote></field_body></field> SphinxTranslator.dispatch_visit calling visit_field_name for <field_name>Returns</field_name> SphinxTranslator.dispatch_visit calling visit_Text for Returns SphinxTranslator.dispatch_departure calling depart_Text for Returns SphinxTranslator.dispatch_departure calling depart_field_name for <field_name>Returns</field_name> SphinxTranslator.dispatch_visit calling visit_field_body for <field_body><paragraph><strong>out</strong> : str / bytes</paragraph><block_quote><paragraph>The compressed data in form of a Python str / bytes object.</paragraph></block_quote></field_body> SphinxTranslator.dispatch_visit calling visit_paragraph for <paragraph><strong>out</strong> : str / bytes</paragraph> SphinxTranslator.dispatch_visit calling visit_strong for <strong>out</strong> SphinxTranslator.dispatch_visit calling visit_Text for out SphinxTranslator.dispatch_departure calling depart_Text for out SphinxTranslator.dispatch_departure calling depart_strong for <strong>out</strong> SphinxTranslator.dispatch_visit calling visit_Text for : str / bytes SphinxTranslator.dispatch_departure calling depart_Text for : str / bytes SphinxTranslator.dispatch_departure calling depart_paragraph for <paragraph><strong>out</strong> : str / bytes</paragraph> SphinxTranslator.dispatch_visit calling visit_block_quote for <block_quote><paragraph>The compressed data in form of a Python str / bytes object.</paragraph></block_quote> SphinxTranslator.dispatch_visit calling visit_paragraph for <paragraph>The compressed data in form of a Python str / bytes object.</paragraph> SphinxTranslator.dispatch_visit calling visit_Text for The compressed data in form of a Python str / bytes object. SphinxTranslator.dispatch_departure calling depart_Text for The compressed data in form of a Python str / bytes object. SphinxTranslator.dispatch_departure calling depart_paragraph for <paragraph>The compressed data in form of a Python str / bytes object.</paragraph> SphinxTranslator.dispatch_departure calling depart_block_quote for <block_quote><paragraph>The compressed data in form of a Python str / bytes object.</paragraph></block_quote> SphinxTranslator.dispatch_departure calling depart_field_body for <field_body><paragraph><strong>out</strong> : str / bytes</paragraph><block_quote><paragraph>The compressed data in form of a Python str / bytes object.</paragraph></block_quote></field_body> SphinxTranslator.dispatch_departure calling depart_field for <field classes="field-even"><field_name>Returns</field_name><field_body><paragraph><strong>out</strong> : str / bytes</paragraph><block_quote><paragraph>The compressed data in form of a Python str / bytes object.</paragraph></block_quote></field_body></field> SphinxTranslator.dispatch_visit calling visit_field for <field><field_name>Raises</field_name><field_body><paragraph><strong>TypeError</strong></paragraph><block_quote><paragraph>If address is not of type int or long.</paragraph></block_quote><paragraph><strong>ValueError</strong></paragraph><block_quote><paragraph>If items * typesize is larger than the maximum allowed buffer size. If typesize is not within the allowed range. If clevel is not within the allowed range. If cname is not within the supported compressors.</paragraph></block_quote></field_body></field> SphinxTranslator.dispatch_visit calling visit_field_name for <field_name>Raises</field_name> SphinxTranslator.dispatch_visit calling visit_Text for Raises SphinxTranslator.dispatch_departure calling depart_Text for Raises SphinxTranslator.dispatch_departure calling depart_field_name for <field_name>Raises</field_name> SphinxTranslator.dispatch_visit calling visit_field_body for <field_body><paragraph><strong>TypeError</strong></paragraph><block_quote><paragraph>If address is not of type int or long.</paragraph></block_quote><paragraph><strong>ValueError</strong></paragraph><block_quote><paragraph>If items * typesize is larger than the maximum allowed buffer size. If typesize is not within the allowed range. If clevel is not within the allowed range. If cname is not within the supported compressors.</paragraph></block_quote></field_body> SphinxTranslator.dispatch_visit calling visit_paragraph for <paragraph><strong>TypeError</strong></paragraph> SphinxTranslator.dispatch_visit calling visit_strong for <strong>TypeError</strong> SphinxTranslator.dispatch_visit calling visit_Text for TypeError SphinxTranslator.dispatch_departure calling depart_Text for TypeError SphinxTranslator.dispatch_departure calling depart_strong for <strong>TypeError</strong> SphinxTranslator.dispatch_departure calling depart_paragraph for <paragraph><strong>TypeError</strong></paragraph> SphinxTranslator.dispatch_visit calling visit_block_quote for <block_quote><paragraph>If address is not of type int or long.</paragraph></block_quote> SphinxTranslator.dispatch_visit calling visit_paragraph for <paragraph>If address is not of type int or long.</paragraph> SphinxTranslator.dispatch_visit calling visit_Text for If address is not of type int or long. SphinxTranslator.dispatch_departure calling depart_Text for If address is not of type int or long. SphinxTranslator.dispatch_departure calling depart_paragraph for <paragraph>If address is not of type int or long.</paragraph> SphinxTranslator.dispatch_departure calling depart_block_quote for <block_quote><paragraph>If address is not of type int or long.</paragraph></block_quote> SphinxTranslator.dispatch_visit calling visit_paragraph for <paragraph><strong>ValueError</strong></paragraph> SphinxTranslator.dispatch_visit calling visit_strong for <strong>ValueError</strong> SphinxTranslator.dispatch_visit calling visit_Text for ValueError SphinxTranslator.dispatch_departure calling depart_Text for ValueError SphinxTranslator.dispatch_departure calling depart_strong for <strong>ValueError</strong> SphinxTranslator.dispatch_departure calling depart_paragraph for <paragraph><strong>ValueError</strong></paragraph> SphinxTranslator.dispatch_visit calling visit_block_quote for <block_quote><paragraph>If items * typesize is larger than the maximum allowed buffer size. If typesize is not within the allowed range. If clevel is not within the allowed range. If cname is not within the supported compressors.</paragraph></block_quote> SphinxTranslator.dispatch_visit calling visit_paragraph for <paragraph>If items * typesize is larger than the maximum allowed buffer size. If typesize is not within the allowed range. If clevel is not within the allowed range. If cname is not within the supported compressors.</paragraph> SphinxTranslator.dispatch_visit calling visit_Text for If items * typesize is larger than the maximum allowed buffer size. If typesize is not within the allowed range. If clevel is not within the allowed range. If cname is not within the supported compressors. SphinxTranslator.dispatch_departure calling depart_Text for If items * typesize is larger than the maximum allowed buffer size. If typesize is not within the allowed range. If clevel is not within the allowed range. If cname is not within the supported compressors. SphinxTranslator.dispatch_departure calling depart_paragraph for <paragraph>If items * typesize is larger than the maximum allowed buffer size. If typesize is not within the allowed range. If clevel is not within the allowed range. If cname is not within the supported compressors.</paragraph> SphinxTranslator.dispatch_departure calling depart_block_quote for <block_quote><paragraph>If items * typesize is larger than the maximum allowed buffer size. If typesize is not within the allowed range. If clevel is not within the allowed range. If cname is not within the supported compressors.</paragraph></block_quote> SphinxTranslator.dispatch_departure calling depart_field_body for <field_body><paragraph><strong>TypeError</strong></paragraph><block_quote><paragraph>If address is not of type int or long.</paragraph></block_quote><paragraph><strong>ValueError</strong></paragraph><block_quote><paragraph>If items * typesize is larger than the maximum allowed buffer size. If typesize is not within the allowed range. If clevel is not within the allowed range. If cname is not within the supported compressors.</paragraph></block_quote></field_body> SphinxTranslator.dispatch_departure calling depart_field for <field classes="field-odd"><field_name>Raises</field_name><field_body><paragraph><strong>TypeError</strong></paragraph><block_quote><paragraph>If address is not of type int or long.</paragraph></block_quote><paragraph><strong>ValueError</strong></paragraph><block_quote><paragraph>If items * typesize is larger than the maximum allowed buffer size. If typesize is not within the allowed range. If clevel is not within the allowed range. If cname is not within the supported compressors.</paragraph></block_quote></field_body></field> SphinxTranslator.dispatch_departure calling depart_field_list for <field_list><field classes="field-odd"><field_name>Parameters</field_name><field_body><paragraph><strong>address</strong> : int or long</paragraph><block_quote><paragraph>the pointer to the data to be compressed</paragraph></block_quote><paragraph><strong>items</strong> : int</paragraph><block_quote><paragraph>The number of items (of typesize) to be compressed.</paragraph></block_quote><paragraph><strong>typesize</strong> : int</paragraph><block_quote><paragraph>The data type size.</paragraph></block_quote><paragraph><strong>clevel</strong> : int (optional)</paragraph><block_quote><paragraph>The compression level from 0 (no compression) to 9 (maximum compression). The default is 9.</paragraph></block_quote><paragraph><strong>shuffle</strong> : int (optional)</paragraph><block_quote><paragraph>The shuffle filter to be activated. Allowed values are blosc.NOSHUFFLE, blosc.SHUFFLE and blosc.BITSHUFFLE. The default is blosc.SHUFFLE.</paragraph></block_quote><paragraph><strong>cname</strong> : string (optional)</paragraph><block_quote><paragraph>The name of the compressor used internally in Blosc. It can be any of the supported by Blosc (‘blosclz’, ‘lz4’, ‘lz4hc’, ‘snappy’, ‘zlib’, ‘zstd’ and maybe others too). The default is ‘blosclz’.</paragraph></block_quote></field_body></field><field classes="field-even"><field_name>Returns</field_name><field_body><paragraph><strong>out</strong> : str / bytes</paragraph><block_quote><paragraph>The compressed data in form of a Python str / bytes object.</paragraph></block_quote></field_body></field><field classes="field-odd"><field_name>Raises</field_name><field_body><paragraph><strong>TypeError</strong></paragraph><block_quote><paragraph>If address is not of type int or long.</paragraph></block_quote><paragraph><strong>ValueError</strong></paragraph><block_quote><paragraph>If items * typesize is larger than the maximum allowed buffer size. If typesize is not within the allowed range. If clevel is not within the allowed range. If cname is not within the supported compressors.</paragraph></block_quote></field_body></field></field_list> SphinxTranslator.dispatch_visit calling visit_rubric for <rubric>Notes</rubric> SphinxTranslator.dispatch_visit calling visit_Text for Notes SphinxTranslator.dispatch_departure calling depart_Text for Notes SphinxTranslator.dispatch_departure calling depart_rubric for <rubric>Notes</rubric> SphinxTranslator.dispatch_visit calling visit_paragraph for <paragraph>This function can be used anywhere that a memory address is available in Python. For example the Numpy “__array_interface__[‘data’][0]†construct, or when using the ctypes modules.</paragraph> SphinxTranslator.dispatch_visit calling visit_Text for This function can be used anywhere that a memory address is available in Python. For example the Numpy “__array_interface__[‘data’][0]†construct, or when using the ctypes modules. SphinxTranslator.dispatch_departure calling depart_Text for This function can be used anywhere that a memory address is available in Python. For example the Numpy “__array_interface__[‘data’][0]†construct, or when using the ctypes modules. SphinxTranslator.dispatch_departure calling depart_paragraph for <paragraph>This function can be used anywhere that a memory address is available in Python. For example the Numpy “__array_interface__[‘data’][0]†construct, or when using the ctypes modules.</paragraph> SphinxTranslator.dispatch_visit calling visit_paragraph for <paragraph>Importantly, the user is responsible for making sure that the memory address is valid and that the memory pointed to is contiguous. Passing a non-valid address has a high likelihood of crashing the interpreter by segfault.</paragraph> SphinxTranslator.dispatch_visit calling visit_Text for Importantly, the user is responsible for making sure that the memory address is valid and that the memory pointed to is contiguous. Passing a non-valid address has a high likelihood of crashing the interpreter by segfault. SphinxTranslator.dispatch_departure calling depart_Text for Importantly, the user is responsible for making sure that the memory address is valid and that the memory pointed to is contiguous. Passing a non-valid address has a high likelihood of crashing the interpreter by segfault. SphinxTranslator.dispatch_departure calling depart_paragraph for <paragraph>Importantly, the user is responsible for making sure that the memory address is valid and that the memory pointed to is contiguous. Passing a non-valid address has a high likelihood of crashing the interpreter by segfault.</paragraph> SphinxTranslator.dispatch_visit calling visit_rubric for <rubric>Examples</rubric> SphinxTranslator.dispatch_visit calling visit_Text for Examples SphinxTranslator.dispatch_departure calling depart_Text for Examples SphinxTranslator.dispatch_departure calling depart_rubric for <rubric>Examples</rubric> SphinxTranslator.dispatch_visit calling visit_doctest_block for <doctest_block classes="doctest" xml:space="preserve">>>> import numpy >>> items = 7 >>> np_array = numpy.arange(items) >>> c = blosc.compress_ptr(np_array.__array_interface__['data'][0], items, np_array.dtype.itemsize) >>> d = blosc.decompress(c) >>> np_ans = numpy.fromstring(d, dtype=np_array.dtype) >>> (np_array == np_ans).all() True</doctest_block> SphinxTranslator.dispatch_visit calling visit_doctest_block for <doctest_block classes="doctest" xml:space="preserve">>>> import ctypes >>> typesize = 8 >>> data = [float(i) for i in range(items)] >>> Array = ctypes.c_double * items >>> a = Array(*data) >>> c = blosc.compress_ptr(ctypes.addressof(a), items, typesize) >>> d = blosc.decompress(c) >>> import struct >>> ans = [struct.unpack('d', d[i:i+typesize])[0] for i in range(0, items*typesize, typesize)] >>> data == ans True</doctest_block> SphinxTranslator.dispatch_departure calling depart_desc_content for <desc_content><paragraph>Compress the data at address with given items and typesize.</paragraph><field_list><field classes="field-odd"><field_name>Parameters</field_name><field_body><paragraph><strong>address</strong> : int or long</paragraph><block_quote><paragraph>the pointer to the data to be compressed</paragraph></block_quote><paragraph><strong>items</strong> : int</paragraph><block_quote><paragraph>The number of items (of typesize) to be compressed.</paragraph></block_quote><paragraph><strong>typesize</strong> : int</paragraph><block_quote><paragraph>The data type size.</paragraph></block_quote><paragraph><strong>clevel</strong> : int (optional)</paragraph><block_quote><paragraph>The compression level from 0 (no compression) to 9 (maximum compression). The default is 9.</paragraph></block_quote><paragraph><strong>shuffle</strong> : int (optional)</paragraph><block_quote><paragraph>The shuffle filter to be activated. Allowed values are blosc.NOSHUFFLE, blosc.SHUFFLE and blosc.BITSHUFFLE. The default is blosc.SHUFFLE.</paragraph></block_quote><paragraph><strong>cname</strong> : string (optional)</paragraph><block_quote><paragraph>The name of the compressor used internally in Blosc. It can be any of the supported by Blosc (‘blosclz’, ‘lz4’, ‘lz4hc’, ‘snappy’, ‘zlib’, ‘zstd’ and maybe others too). The default is ‘blosclz’.</paragraph></block_quote></field_body></field><field classes="field-even"><field_name>Returns</field_name><field_body><paragraph><strong>out</strong> : str / bytes</paragraph><block_quote><paragraph>The compressed data in form of a Python str / bytes object.</paragraph></block_quote></field_body></field><field classes="field-odd"><field_name>Raises</field_name><field_body><paragraph><strong>TypeError</strong></paragraph><block_quote><paragraph>If address is not of type int or long.</paragraph></block_quote><paragraph><strong>ValueError</strong></paragraph><block_quote><paragraph>If items * typesize is larger than the maximum allowed buffer size. If typesize is not within the allowed range. If clevel is not within the allowed range. If cname is not within the supported compressors.</paragraph></block_quote></field_body></field></field_list><rubric>Notes</rubric><paragraph>This function can be used anywhere that a memory address is available in Python. For example the Numpy “__array_interface__[‘data’][0]†construct, or when using the ctypes modules.</paragraph><paragraph>Importantly, the user is responsible for making sure that the memory address is valid and that the memory pointed to is contiguous. Passing a non-valid address has a high likelihood of crashing the interpreter by segfault.</paragraph><rubric>Examples</rubric><doctest_block classes="doctest" xml:space="preserve">>>> import numpy >>> items = 7 >>> np_array = numpy.arange(items) >>> c = blosc.compress_ptr(np_array.__array_interface__['data'][0], items, np_array.dtype.itemsize) >>> d = blosc.decompress(c) >>> np_ans = numpy.fromstring(d, dtype=np_array.dtype) >>> (np_array == np_ans).all() True</doctest_block><doctest_block classes="doctest" xml:space="preserve">>>> import ctypes >>> typesize = 8 >>> data = [float(i) for i in range(items)] >>> Array = ctypes.c_double * items >>> a = Array(*data) >>> c = blosc.compress_ptr(ctypes.addressof(a), items, typesize) >>> d = blosc.decompress(c) >>> import struct >>> ans = [struct.unpack('d', d[i:i+typesize])[0] for i in range(0, items*typesize, typesize)] >>> data == ans True</doctest_block></desc_content> SphinxTranslator.dispatch_departure calling depart_desc for <desc desctype="function" domain="py" noindex="False" objtype="function"><desc_signature class="" first="False" fullname="compress_ptr" ids="blosc.compress_ptr" module="blosc" names="blosc.compress_ptr"><desc_addname xml:space="preserve">blosc.</desc_addname><desc_name xml:space="preserve">compress_ptr</desc_name><desc_parameterlist xml:space="preserve"><desc_parameter xml:space="preserve">address, items[, typesize=8, clevel=9, shuffle=blosc.SHUFFLE, cname='blosclz']]</desc_parameter></desc_parameterlist></desc_signature><desc_content><paragraph>Compress the data at address with given items and typesize.</paragraph><field_list><field classes="field-odd"><field_name>Parameters</field_name><field_body><paragraph><strong>address</strong> : int or long</paragraph><block_quote><paragraph>the pointer to the data to be compressed</paragraph></block_quote><paragraph><strong>items</strong> : int</paragraph><block_quote><paragraph>The number of items (of typesize) to be compressed.</paragraph></block_quote><paragraph><strong>typesize</strong> : int</paragraph><block_quote><paragraph>The data type size.</paragraph></block_quote><paragraph><strong>clevel</strong> : int (optional)</paragraph><block_quote><paragraph>The compression level from 0 (no compression) to 9 (maximum compression). The default is 9.</paragraph></block_quote><paragraph><strong>shuffle</strong> : int (optional)</paragraph><block_quote><paragraph>The shuffle filter to be activated. Allowed values are blosc.NOSHUFFLE, blosc.SHUFFLE and blosc.BITSHUFFLE. The default is blosc.SHUFFLE.</paragraph></block_quote><paragraph><strong>cname</strong> : string (optional)</paragraph><block_quote><paragraph>The name of the compressor used internally in Blosc. It can be any of the supported by Blosc (‘blosclz’, ‘lz4’, ‘lz4hc’, ‘snappy’, ‘zlib’, ‘zstd’ and maybe others too). The default is ‘blosclz’.</paragraph></block_quote></field_body></field><field classes="field-even"><field_name>Returns</field_name><field_body><paragraph><strong>out</strong> : str / bytes</paragraph><block_quote><paragraph>The compressed data in form of a Python str / bytes object.</paragraph></block_quote></field_body></field><field classes="field-odd"><field_name>Raises</field_name><field_body><paragraph><strong>TypeError</strong></paragraph><block_quote><paragraph>If address is not of type int or long.</paragraph></block_quote><paragraph><strong>ValueError</strong></paragraph><block_quote><paragraph>If items * typesize is larger than the maximum allowed buffer size. If typesize is not within the allowed range. If clevel is not within the allowed range. If cname is not within the supported compressors.</paragraph></block_quote></field_body></field></field_list><rubric>Notes</rubric><paragraph>This function can be used anywhere that a memory address is available in Python. For example the Numpy “__array_interface__[‘data’][0]†construct, or when using the ctypes modules.</paragraph><paragraph>Importantly, the user is responsible for making sure that the memory address is valid and that the memory pointed to is contiguous. Passing a non-valid address has a high likelihood of crashing the interpreter by segfault.</paragraph><rubric>Examples</rubric><doctest_block classes="doctest" xml:space="preserve">>>> import numpy >>> items = 7 >>> np_array = numpy.arange(items) >>> c = blosc.compress_ptr(np_array.__array_interface__['data'][0], items, np_array.dtype.itemsize) >>> d = blosc.decompress(c) >>> np_ans = numpy.fromstring(d, dtype=np_array.dtype) >>> (np_array == np_ans).all() True</doctest_block><doctest_block classes="doctest" xml:space="preserve">>>> import ctypes >>> typesize = 8 >>> data = [float(i) for i in range(items)] >>> Array = ctypes.c_double * items >>> a = Array(*data) >>> c = blosc.compress_ptr(ctypes.addressof(a), items, typesize) >>> d = blosc.decompress(c) >>> import struct >>> ans = [struct.unpack('d', d[i:i+typesize])[0] for i in range(0, items*typesize, typesize)] >>> data == ans True</doctest_block></desc_content></desc> SphinxTranslator.dispatch_visit calling visit_index for <index entries="[('single', 'decompress() (in module blosc)', 'blosc.decompress', '', None)]"/> SphinxTranslator.dispatch_visit calling visit_desc for <desc desctype="function" domain="py" noindex="False" objtype="function"><desc_signature class="" first="False" fullname="decompress" ids="blosc.decompress" module="blosc" names="blosc.decompress"><desc_addname xml:space="preserve">blosc.</desc_addname><desc_name xml:space="preserve">decompress</desc_name><desc_parameterlist xml:space="preserve"><desc_parameter xml:space="preserve">bytesobj</desc_parameter></desc_parameterlist></desc_signature><desc_content><paragraph>Decompresses a bytesobj compressed object.</paragraph><field_list><field><field_name>Parameters</field_name><field_body><paragraph><strong>bytesobj</strong> : str / bytes</paragraph><block_quote><paragraph>The data to be decompressed.</paragraph></block_quote><paragraph><strong>as_bytearray</strong> : bool, optional</paragraph><block_quote><paragraph>If this flag is True then the return type will be a bytearray object instead of a bytesobject.</paragraph></block_quote></field_body></field><field><field_name>Returns</field_name><field_body><paragraph><strong>out</strong> : str / bytes or bytearray</paragraph><block_quote><paragraph>The decompressed data in form of a Python str / bytes object. If as_bytearray is True then this will be a bytearray object, otherwise this will be a str/ bytes object.</paragraph></block_quote></field_body></field><field><field_name>Raises</field_name><field_body><paragraph><strong>TypeError</strong></paragraph><block_quote><paragraph>If bytesobj is not of type bytes or string.</paragraph></block_quote></field_body></field></field_list><rubric>Examples</rubric><doctest_block classes="doctest" xml:space="preserve">>>> import array >>> a = array.array('i', range(1000*1000)) >>> a_bytesobj = a.tostring() >>> c_bytesobj = blosc.compress(a_bytesobj, typesize=4) >>> a_bytesobj2 = blosc.decompress(c_bytesobj) >>> a_bytesobj == a_bytesobj2 True >>> b"" == blosc.decompress(blosc.compress(b"", 1)) True >>> b"1"*7 == blosc.decompress(blosc.compress(b"1"*7, 8)) True >>> type(blosc.decompress(blosc.compress(b"1"*7, 8), ... as_bytearray=True)) is bytearray True</doctest_block></desc_content></desc> SphinxTranslator.dispatch_visit calling visit_desc_signature for <desc_signature class="" first="False" fullname="decompress" ids="blosc.decompress" module="blosc" names="blosc.decompress"><desc_addname xml:space="preserve">blosc.</desc_addname><desc_name xml:space="preserve">decompress</desc_name><desc_parameterlist xml:space="preserve"><desc_parameter xml:space="preserve">bytesobj</desc_parameter></desc_parameterlist></desc_signature> SphinxTranslator.dispatch_visit calling visit_desc_addname for <desc_addname xml:space="preserve">blosc.</desc_addname> SphinxTranslator.dispatch_visit calling visit_Text for blosc. SphinxTranslator.dispatch_departure calling depart_Text for blosc. SphinxTranslator.dispatch_departure calling depart_desc_addname for <desc_addname xml:space="preserve">blosc.</desc_addname> SphinxTranslator.dispatch_visit calling visit_desc_name for <desc_name xml:space="preserve">decompress</desc_name> SphinxTranslator.dispatch_visit calling visit_Text for decompress SphinxTranslator.dispatch_departure calling depart_Text for decompress SphinxTranslator.dispatch_departure calling depart_desc_name for <desc_name xml:space="preserve">decompress</desc_name> SphinxTranslator.dispatch_visit calling visit_desc_parameterlist for <desc_parameterlist xml:space="preserve"><desc_parameter xml:space="preserve">bytesobj</desc_parameter></desc_parameterlist> SphinxTranslator.dispatch_visit calling visit_desc_parameter for <desc_parameter xml:space="preserve">bytesobj</desc_parameter> SphinxTranslator.dispatch_visit calling visit_Text for bytesobj SphinxTranslator.dispatch_departure calling depart_Text for bytesobj SphinxTranslator.dispatch_departure calling depart_desc_parameter for <desc_parameter xml:space="preserve">bytesobj</desc_parameter> SphinxTranslator.dispatch_departure calling depart_desc_parameterlist for <desc_parameterlist xml:space="preserve"><desc_parameter xml:space="preserve">bytesobj</desc_parameter></desc_parameterlist> SphinxTranslator.dispatch_departure calling depart_desc_signature for <desc_signature class="" first="False" fullname="decompress" ids="blosc.decompress" module="blosc" names="blosc.decompress"><desc_addname xml:space="preserve">blosc.</desc_addname><desc_name xml:space="preserve">decompress</desc_name><desc_parameterlist xml:space="preserve"><desc_parameter xml:space="preserve">bytesobj</desc_parameter></desc_parameterlist></desc_signature> SphinxTranslator.dispatch_visit calling visit_desc_content for <desc_content><paragraph>Decompresses a bytesobj compressed object.</paragraph><field_list><field><field_name>Parameters</field_name><field_body><paragraph><strong>bytesobj</strong> : str / bytes</paragraph><block_quote><paragraph>The data to be decompressed.</paragraph></block_quote><paragraph><strong>as_bytearray</strong> : bool, optional</paragraph><block_quote><paragraph>If this flag is True then the return type will be a bytearray object instead of a bytesobject.</paragraph></block_quote></field_body></field><field><field_name>Returns</field_name><field_body><paragraph><strong>out</strong> : str / bytes or bytearray</paragraph><block_quote><paragraph>The decompressed data in form of a Python str / bytes object. If as_bytearray is True then this will be a bytearray object, otherwise this will be a str/ bytes object.</paragraph></block_quote></field_body></field><field><field_name>Raises</field_name><field_body><paragraph><strong>TypeError</strong></paragraph><block_quote><paragraph>If bytesobj is not of type bytes or string.</paragraph></block_quote></field_body></field></field_list><rubric>Examples</rubric><doctest_block classes="doctest" xml:space="preserve">>>> import array >>> a = array.array('i', range(1000*1000)) >>> a_bytesobj = a.tostring() >>> c_bytesobj = blosc.compress(a_bytesobj, typesize=4) >>> a_bytesobj2 = blosc.decompress(c_bytesobj) >>> a_bytesobj == a_bytesobj2 True >>> b"" == blosc.decompress(blosc.compress(b"", 1)) True >>> b"1"*7 == blosc.decompress(blosc.compress(b"1"*7, 8)) True >>> type(blosc.decompress(blosc.compress(b"1"*7, 8), ... as_bytearray=True)) is bytearray True</doctest_block></desc_content> SphinxTranslator.dispatch_visit calling visit_paragraph for <paragraph>Decompresses a bytesobj compressed object.</paragraph> SphinxTranslator.dispatch_visit calling visit_Text for Decompresses a bytesobj compressed object. SphinxTranslator.dispatch_departure calling depart_Text for Decompresses a bytesobj compressed object. SphinxTranslator.dispatch_departure calling depart_paragraph for <paragraph>Decompresses a bytesobj compressed object.</paragraph> SphinxTranslator.dispatch_visit calling visit_field_list for <field_list><field><field_name>Parameters</field_name><field_body><paragraph><strong>bytesobj</strong> : str / bytes</paragraph><block_quote><paragraph>The data to be decompressed.</paragraph></block_quote><paragraph><strong>as_bytearray</strong> : bool, optional</paragraph><block_quote><paragraph>If this flag is True then the return type will be a bytearray object instead of a bytesobject.</paragraph></block_quote></field_body></field><field><field_name>Returns</field_name><field_body><paragraph><strong>out</strong> : str / bytes or bytearray</paragraph><block_quote><paragraph>The decompressed data in form of a Python str / bytes object. If as_bytearray is True then this will be a bytearray object, otherwise this will be a str/ bytes object.</paragraph></block_quote></field_body></field><field><field_name>Raises</field_name><field_body><paragraph><strong>TypeError</strong></paragraph><block_quote><paragraph>If bytesobj is not of type bytes or string.</paragraph></block_quote></field_body></field></field_list> SphinxTranslator.dispatch_visit calling visit_field for <field><field_name>Parameters</field_name><field_body><paragraph><strong>bytesobj</strong> : str / bytes</paragraph><block_quote><paragraph>The data to be decompressed.</paragraph></block_quote><paragraph><strong>as_bytearray</strong> : bool, optional</paragraph><block_quote><paragraph>If this flag is True then the return type will be a bytearray object instead of a bytesobject.</paragraph></block_quote></field_body></field> SphinxTranslator.dispatch_visit calling visit_field_name for <field_name>Parameters</field_name> SphinxTranslator.dispatch_visit calling visit_Text for Parameters SphinxTranslator.dispatch_departure calling depart_Text for Parameters SphinxTranslator.dispatch_departure calling depart_field_name for <field_name>Parameters</field_name> SphinxTranslator.dispatch_visit calling visit_field_body for <field_body><paragraph><strong>bytesobj</strong> : str / bytes</paragraph><block_quote><paragraph>The data to be decompressed.</paragraph></block_quote><paragraph><strong>as_bytearray</strong> : bool, optional</paragraph><block_quote><paragraph>If this flag is True then the return type will be a bytearray object instead of a bytesobject.</paragraph></block_quote></field_body> SphinxTranslator.dispatch_visit calling visit_paragraph for <paragraph><strong>bytesobj</strong> : str / bytes</paragraph> SphinxTranslator.dispatch_visit calling visit_strong for <strong>bytesobj</strong> SphinxTranslator.dispatch_visit calling visit_Text for bytesobj SphinxTranslator.dispatch_departure calling depart_Text for bytesobj SphinxTranslator.dispatch_departure calling depart_strong for <strong>bytesobj</strong> SphinxTranslator.dispatch_visit calling visit_Text for : str / bytes SphinxTranslator.dispatch_departure calling depart_Text for : str / bytes SphinxTranslator.dispatch_departure calling depart_paragraph for <paragraph><strong>bytesobj</strong> : str / bytes</paragraph> SphinxTranslator.dispatch_visit calling visit_block_quote for <block_quote><paragraph>The data to be decompressed.</paragraph></block_quote> SphinxTranslator.dispatch_visit calling visit_paragraph for <paragraph>The data to be decompressed.</paragraph> SphinxTranslator.dispatch_visit calling visit_Text for The data to be decompressed. SphinxTranslator.dispatch_departure calling depart_Text for The data to be decompressed. SphinxTranslator.dispatch_departure calling depart_paragraph for <paragraph>The data to be decompressed.</paragraph> SphinxTranslator.dispatch_departure calling depart_block_quote for <block_quote><paragraph>The data to be decompressed.</paragraph></block_quote> SphinxTranslator.dispatch_visit calling visit_paragraph for <paragraph><strong>as_bytearray</strong> : bool, optional</paragraph> SphinxTranslator.dispatch_visit calling visit_strong for <strong>as_bytearray</strong> SphinxTranslator.dispatch_visit calling visit_Text for as_bytearray SphinxTranslator.dispatch_departure calling depart_Text for as_bytearray SphinxTranslator.dispatch_departure calling depart_strong for <strong>as_bytearray</strong> SphinxTranslator.dispatch_visit calling visit_Text for : bool, optional SphinxTranslator.dispatch_departure calling depart_Text for : bool, optional SphinxTranslator.dispatch_departure calling depart_paragraph for <paragraph><strong>as_bytearray</strong> : bool, optional</paragraph> SphinxTranslator.dispatch_visit calling visit_block_quote for <block_quote><paragraph>If this flag is True then the return type will be a bytearray object instead of a bytesobject.</paragraph></block_quote> SphinxTranslator.dispatch_visit calling visit_paragraph for <paragraph>If this flag is True then the return type will be a bytearray object instead of a bytesobject.</paragraph> SphinxTranslator.dispatch_visit calling visit_Text for If this flag is True then the return type will be a bytearray object instead of a bytesobject. SphinxTranslator.dispatch_departure calling depart_Text for If this flag is True then the return type will be a bytearray object instead of a bytesobject. SphinxTranslator.dispatch_departure calling depart_paragraph for <paragraph>If this flag is True then the return type will be a bytearray object instead of a bytesobject.</paragraph> SphinxTranslator.dispatch_departure calling depart_block_quote for <block_quote><paragraph>If this flag is True then the return type will be a bytearray object instead of a bytesobject.</paragraph></block_quote> SphinxTranslator.dispatch_departure calling depart_field_body for <field_body><paragraph><strong>bytesobj</strong> : str / bytes</paragraph><block_quote><paragraph>The data to be decompressed.</paragraph></block_quote><paragraph><strong>as_bytearray</strong> : bool, optional</paragraph><block_quote><paragraph>If this flag is True then the return type will be a bytearray object instead of a bytesobject.</paragraph></block_quote></field_body> SphinxTranslator.dispatch_departure calling depart_field for <field classes="field-odd"><field_name>Parameters</field_name><field_body><paragraph><strong>bytesobj</strong> : str / bytes</paragraph><block_quote><paragraph>The data to be decompressed.</paragraph></block_quote><paragraph><strong>as_bytearray</strong> : bool, optional</paragraph><block_quote><paragraph>If this flag is True then the return type will be a bytearray object instead of a bytesobject.</paragraph></block_quote></field_body></field> SphinxTranslator.dispatch_visit calling visit_field for <field><field_name>Returns</field_name><field_body><paragraph><strong>out</strong> : str / bytes or bytearray</paragraph><block_quote><paragraph>The decompressed data in form of a Python str / bytes object. If as_bytearray is True then this will be a bytearray object, otherwise this will be a str/ bytes object.</paragraph></block_quote></field_body></field> SphinxTranslator.dispatch_visit calling visit_field_name for <field_name>Returns</field_name> SphinxTranslator.dispatch_visit calling visit_Text for Returns SphinxTranslator.dispatch_departure calling depart_Text for Returns SphinxTranslator.dispatch_departure calling depart_field_name for <field_name>Returns</field_name> SphinxTranslator.dispatch_visit calling visit_field_body for <field_body><paragraph><strong>out</strong> : str / bytes or bytearray</paragraph><block_quote><paragraph>The decompressed data in form of a Python str / bytes object. If as_bytearray is True then this will be a bytearray object, otherwise this will be a str/ bytes object.</paragraph></block_quote></field_body> SphinxTranslator.dispatch_visit calling visit_paragraph for <paragraph><strong>out</strong> : str / bytes or bytearray</paragraph> SphinxTranslator.dispatch_visit calling visit_strong for <strong>out</strong> SphinxTranslator.dispatch_visit calling visit_Text for out SphinxTranslator.dispatch_departure calling depart_Text for out SphinxTranslator.dispatch_departure calling depart_strong for <strong>out</strong> SphinxTranslator.dispatch_visit calling visit_Text for : str / bytes or bytearray SphinxTranslator.dispatch_departure calling depart_Text for : str / bytes or bytearray SphinxTranslator.dispatch_departure calling depart_paragraph for <paragraph><strong>out</strong> : str / bytes or bytearray</paragraph> SphinxTranslator.dispatch_visit calling visit_block_quote for <block_quote><paragraph>The decompressed data in form of a Python str / bytes object. If as_bytearray is True then this will be a bytearray object, otherwise this will be a str/ bytes object.</paragraph></block_quote> SphinxTranslator.dispatch_visit calling visit_paragraph for <paragraph>The decompressed data in form of a Python str / bytes object. If as_bytearray is True then this will be a bytearray object, otherwise this will be a str/ bytes object.</paragraph> SphinxTranslator.dispatch_visit calling visit_Text for The decompressed data in form of a Python str / bytes object. If as_bytearray is True then this will be a bytearray object, otherwise this will be a str/ bytes object. SphinxTranslator.dispatch_departure calling depart_Text for The decompressed data in form of a Python str / bytes object. If as_bytearray is True then this will be a bytearray object, otherwise this will be a str/ bytes object. SphinxTranslator.dispatch_departure calling depart_paragraph for <paragraph>The decompressed data in form of a Python str / bytes object. If as_bytearray is True then this will be a bytearray object, otherwise this will be a str/ bytes object.</paragraph> SphinxTranslator.dispatch_departure calling depart_block_quote for <block_quote><paragraph>The decompressed data in form of a Python str / bytes object. If as_bytearray is True then this will be a bytearray object, otherwise this will be a str/ bytes object.</paragraph></block_quote> SphinxTranslator.dispatch_departure calling depart_field_body for <field_body><paragraph><strong>out</strong> : str / bytes or bytearray</paragraph><block_quote><paragraph>The decompressed data in form of a Python str / bytes object. If as_bytearray is True then this will be a bytearray object, otherwise this will be a str/ bytes object.</paragraph></block_quote></field_body> SphinxTranslator.dispatch_departure calling depart_field for <field classes="field-even"><field_name>Returns</field_name><field_body><paragraph><strong>out</strong> : str / bytes or bytearray</paragraph><block_quote><paragraph>The decompressed data in form of a Python str / bytes object. If as_bytearray is True then this will be a bytearray object, otherwise this will be a str/ bytes object.</paragraph></block_quote></field_body></field> SphinxTranslator.dispatch_visit calling visit_field for <field><field_name>Raises</field_name><field_body><paragraph><strong>TypeError</strong></paragraph><block_quote><paragraph>If bytesobj is not of type bytes or string.</paragraph></block_quote></field_body></field> SphinxTranslator.dispatch_visit calling visit_field_name for <field_name>Raises</field_name> SphinxTranslator.dispatch_visit calling visit_Text for Raises SphinxTranslator.dispatch_departure calling depart_Text for Raises SphinxTranslator.dispatch_departure calling depart_field_name for <field_name>Raises</field_name> SphinxTranslator.dispatch_visit calling visit_field_body for <field_body><paragraph><strong>TypeError</strong></paragraph><block_quote><paragraph>If bytesobj is not of type bytes or string.</paragraph></block_quote></field_body> SphinxTranslator.dispatch_visit calling visit_paragraph for <paragraph><strong>TypeError</strong></paragraph> SphinxTranslator.dispatch_visit calling visit_strong for <strong>TypeError</strong> SphinxTranslator.dispatch_visit calling visit_Text for TypeError SphinxTranslator.dispatch_departure calling depart_Text for TypeError SphinxTranslator.dispatch_departure calling depart_strong for <strong>TypeError</strong> SphinxTranslator.dispatch_departure calling depart_paragraph for <paragraph><strong>TypeError</strong></paragraph> SphinxTranslator.dispatch_visit calling visit_block_quote for <block_quote><paragraph>If bytesobj is not of type bytes or string.</paragraph></block_quote> SphinxTranslator.dispatch_visit calling visit_paragraph for <paragraph>If bytesobj is not of type bytes or string.</paragraph> SphinxTranslator.dispatch_visit calling visit_Text for If bytesobj is not of type bytes or string. SphinxTranslator.dispatch_departure calling depart_Text for If bytesobj is not of type bytes or string. SphinxTranslator.dispatch_departure calling depart_paragraph for <paragraph>If bytesobj is not of type bytes or string.</paragraph> SphinxTranslator.dispatch_departure calling depart_block_quote for <block_quote><paragraph>If bytesobj is not of type bytes or string.</paragraph></block_quote> SphinxTranslator.dispatch_departure calling depart_field_body for <field_body><paragraph><strong>TypeError</strong></paragraph><block_quote><paragraph>If bytesobj is not of type bytes or string.</paragraph></block_quote></field_body> SphinxTranslator.dispatch_departure calling depart_field for <field classes="field-odd"><field_name>Raises</field_name><field_body><paragraph><strong>TypeError</strong></paragraph><block_quote><paragraph>If bytesobj is not of type bytes or string.</paragraph></block_quote></field_body></field> SphinxTranslator.dispatch_departure calling depart_field_list for <field_list><field classes="field-odd"><field_name>Parameters</field_name><field_body><paragraph><strong>bytesobj</strong> : str / bytes</paragraph><block_quote><paragraph>The data to be decompressed.</paragraph></block_quote><paragraph><strong>as_bytearray</strong> : bool, optional</paragraph><block_quote><paragraph>If this flag is True then the return type will be a bytearray object instead of a bytesobject.</paragraph></block_quote></field_body></field><field classes="field-even"><field_name>Returns</field_name><field_body><paragraph><strong>out</strong> : str / bytes or bytearray</paragraph><block_quote><paragraph>The decompressed data in form of a Python str / bytes object. If as_bytearray is True then this will be a bytearray object, otherwise this will be a str/ bytes object.</paragraph></block_quote></field_body></field><field classes="field-odd"><field_name>Raises</field_name><field_body><paragraph><strong>TypeError</strong></paragraph><block_quote><paragraph>If bytesobj is not of type bytes or string.</paragraph></block_quote></field_body></field></field_list> SphinxTranslator.dispatch_visit calling visit_rubric for <rubric>Examples</rubric> SphinxTranslator.dispatch_visit calling visit_Text for Examples SphinxTranslator.dispatch_departure calling depart_Text for Examples SphinxTranslator.dispatch_departure calling depart_rubric for <rubric>Examples</rubric> SphinxTranslator.dispatch_visit calling visit_doctest_block for <doctest_block classes="doctest" xml:space="preserve">>>> import array >>> a = array.array('i', range(1000*1000)) >>> a_bytesobj = a.tostring() >>> c_bytesobj = blosc.compress(a_bytesobj, typesize=4) >>> a_bytesobj2 = blosc.decompress(c_bytesobj) >>> a_bytesobj == a_bytesobj2 True >>> b"" == blosc.decompress(blosc.compress(b"", 1)) True >>> b"1"*7 == blosc.decompress(blosc.compress(b"1"*7, 8)) True >>> type(blosc.decompress(blosc.compress(b"1"*7, 8), ... as_bytearray=True)) is bytearray True</doctest_block> SphinxTranslator.dispatch_departure calling depart_desc_content for <desc_content><paragraph>Decompresses a bytesobj compressed object.</paragraph><field_list><field classes="field-odd"><field_name>Parameters</field_name><field_body><paragraph><strong>bytesobj</strong> : str / bytes</paragraph><block_quote><paragraph>The data to be decompressed.</paragraph></block_quote><paragraph><strong>as_bytearray</strong> : bool, optional</paragraph><block_quote><paragraph>If this flag is True then the return type will be a bytearray object instead of a bytesobject.</paragraph></block_quote></field_body></field><field classes="field-even"><field_name>Returns</field_name><field_body><paragraph><strong>out</strong> : str / bytes or bytearray</paragraph><block_quote><paragraph>The decompressed data in form of a Python str / bytes object. If as_bytearray is True then this will be a bytearray object, otherwise this will be a str/ bytes object.</paragraph></block_quote></field_body></field><field classes="field-odd"><field_name>Raises</field_name><field_body><paragraph><strong>TypeError</strong></paragraph><block_quote><paragraph>If bytesobj is not of type bytes or string.</paragraph></block_quote></field_body></field></field_list><rubric>Examples</rubric><doctest_block classes="doctest" xml:space="preserve">>>> import array >>> a = array.array('i', range(1000*1000)) >>> a_bytesobj = a.tostring() >>> c_bytesobj = blosc.compress(a_bytesobj, typesize=4) >>> a_bytesobj2 = blosc.decompress(c_bytesobj) >>> a_bytesobj == a_bytesobj2 True >>> b"" == blosc.decompress(blosc.compress(b"", 1)) True >>> b"1"*7 == blosc.decompress(blosc.compress(b"1"*7, 8)) True >>> type(blosc.decompress(blosc.compress(b"1"*7, 8), ... as_bytearray=True)) is bytearray True</doctest_block></desc_content> SphinxTranslator.dispatch_departure calling depart_desc for <desc desctype="function" domain="py" noindex="False" objtype="function"><desc_signature class="" first="False" fullname="decompress" ids="blosc.decompress" module="blosc" names="blosc.decompress"><desc_addname xml:space="preserve">blosc.</desc_addname><desc_name xml:space="preserve">decompress</desc_name><desc_parameterlist xml:space="preserve"><desc_parameter xml:space="preserve">bytesobj</desc_parameter></desc_parameterlist></desc_signature><desc_content><paragraph>Decompresses a bytesobj compressed object.</paragraph><field_list><field classes="field-odd"><field_name>Parameters</field_name><field_body><paragraph><strong>bytesobj</strong> : str / bytes</paragraph><block_quote><paragraph>The data to be decompressed.</paragraph></block_quote><paragraph><strong>as_bytearray</strong> : bool, optional</paragraph><block_quote><paragraph>If this flag is True then the return type will be a bytearray object instead of a bytesobject.</paragraph></block_quote></field_body></field><field classes="field-even"><field_name>Returns</field_name><field_body><paragraph><strong>out</strong> : str / bytes or bytearray</paragraph><block_quote><paragraph>The decompressed data in form of a Python str / bytes object. If as_bytearray is True then this will be a bytearray object, otherwise this will be a str/ bytes object.</paragraph></block_quote></field_body></field><field classes="field-odd"><field_name>Raises</field_name><field_body><paragraph><strong>TypeError</strong></paragraph><block_quote><paragraph>If bytesobj is not of type bytes or string.</paragraph></block_quote></field_body></field></field_list><rubric>Examples</rubric><doctest_block classes="doctest" xml:space="preserve">>>> import array >>> a = array.array('i', range(1000*1000)) >>> a_bytesobj = a.tostring() >>> c_bytesobj = blosc.compress(a_bytesobj, typesize=4) >>> a_bytesobj2 = blosc.decompress(c_bytesobj) >>> a_bytesobj == a_bytesobj2 True >>> b"" == blosc.decompress(blosc.compress(b"", 1)) True >>> b"1"*7 == blosc.decompress(blosc.compress(b"1"*7, 8)) True >>> type(blosc.decompress(blosc.compress(b"1"*7, 8), ... as_bytearray=True)) is bytearray True</doctest_block></desc_content></desc> SphinxTranslator.dispatch_visit calling visit_index for <index entries="[('single', 'decompress_ptr() (in module blosc)', 'blosc.decompress_ptr', '', None)]"/> SphinxTranslator.dispatch_visit calling visit_desc for <desc desctype="function" domain="py" noindex="False" objtype="function"><desc_signature class="" first="False" fullname="decompress_ptr" ids="blosc.decompress_ptr" module="blosc" names="blosc.decompress_ptr"><desc_addname xml:space="preserve">blosc.</desc_addname><desc_name xml:space="preserve">decompress_ptr</desc_name><desc_parameterlist xml:space="preserve"><desc_parameter xml:space="preserve">bytesobj</desc_parameter><desc_parameter xml:space="preserve">address</desc_parameter></desc_parameterlist></desc_signature><desc_content><paragraph>Decompresses a bytesobj compressed object into the memory at address.</paragraph><field_list><field><field_name>Parameters</field_name><field_body><paragraph><strong>bytesobj</strong> : str / bytes</paragraph><block_quote><paragraph>The data to be decompressed.</paragraph></block_quote><paragraph><strong>address</strong> : int or long</paragraph><block_quote><paragraph>the pointer to the data to be compressed</paragraph></block_quote></field_body></field><field><field_name>Returns</field_name><field_body><paragraph><strong>nbytes</strong> : int</paragraph><block_quote><paragraph>the number of bytes written to the buffer</paragraph></block_quote></field_body></field><field><field_name>Raises</field_name><field_body><paragraph><strong>TypeError</strong></paragraph><block_quote><paragraph>If bytesobj is not of type bytes or string. If address is not of type int or long.</paragraph></block_quote></field_body></field></field_list><rubric>Notes</rubric><paragraph>This function can be used anywhere that a memory address is available in Python. For example the Numpy “__array_interface__[‘data’][0]†construct, or when using the ctypes modules.</paragraph><paragraph>Importantly, the user is responsible for making sure that the memory address is valid and that the memory pointed to is contiguous and can be written to. Passing a non-valid address has a high likelihood of crashing the interpreter by segfault.</paragraph><rubric>Examples</rubric><doctest_block classes="doctest" xml:space="preserve">>>> import numpy >>> items = 7 >>> np_array = numpy.arange(items) >>> c = blosc.compress_ptr(np_array.__array_interface__['data'][0], items, np_array.dtype.itemsize) >>> np_ans = numpy.empty(items, dtype=np_array.dtype) >>> nbytes = blosc.decompress_ptr(c, np_ans.__array_interface__['data'][0]) >>> (np_array == np_ans).all() True >>> nbytes == items * np_array.dtype.itemsize True</doctest_block><doctest_block classes="doctest" xml:space="preserve">>>> import ctypes >>> typesize = 8 >>> data = [float(i) for i in range(items)] >>> Array = ctypes.c_double * items >>> in_array = Array(*data) >>> c = blosc.compress_ptr(ctypes.addressof(in_array), items, typesize) >>> out_array = ctypes.create_string_buffer(items*typesize) >>> nbytes = blosc.decompress_ptr(c, ctypes.addressof(out_array)) >>> import struct >>> ans = [struct.unpack('d', out_array[i:i+typesize])[0] for i in range(0, items*typesize, typesize)] >>> data == ans True >>> nbytes == items * typesize True</doctest_block></desc_content></desc> SphinxTranslator.dispatch_visit calling visit_desc_signature for <desc_signature class="" first="False" fullname="decompress_ptr" ids="blosc.decompress_ptr" module="blosc" names="blosc.decompress_ptr"><desc_addname xml:space="preserve">blosc.</desc_addname><desc_name xml:space="preserve">decompress_ptr</desc_name><desc_parameterlist xml:space="preserve"><desc_parameter xml:space="preserve">bytesobj</desc_parameter><desc_parameter xml:space="preserve">address</desc_parameter></desc_parameterlist></desc_signature> SphinxTranslator.dispatch_visit calling visit_desc_addname for <desc_addname xml:space="preserve">blosc.</desc_addname> SphinxTranslator.dispatch_visit calling visit_Text for blosc. SphinxTranslator.dispatch_departure calling depart_Text for blosc. SphinxTranslator.dispatch_departure calling depart_desc_addname for <desc_addname xml:space="preserve">blosc.</desc_addname> SphinxTranslator.dispatch_visit calling visit_desc_name for <desc_name xml:space="preserve">decompress_ptr</desc_name> SphinxTranslator.dispatch_visit calling visit_Text for decompress_ptr SphinxTranslator.dispatch_departure calling depart_Text for decompress_ptr SphinxTranslator.dispatch_departure calling depart_desc_name for <desc_name xml:space="preserve">decompress_ptr</desc_name> SphinxTranslator.dispatch_visit calling visit_desc_parameterlist for <desc_parameterlist xml:space="preserve"><desc_parameter xml:space="preserve">bytesobj</desc_parameter><desc_parameter xml:space="preserve">address</desc_parameter></desc_parameterlist> SphinxTranslator.dispatch_visit calling visit_desc_parameter for <desc_parameter xml:space="preserve">bytesobj</desc_parameter> SphinxTranslator.dispatch_visit calling visit_Text for bytesobj SphinxTranslator.dispatch_departure calling depart_Text for bytesobj SphinxTranslator.dispatch_departure calling depart_desc_parameter for <desc_parameter xml:space="preserve">bytesobj</desc_parameter> SphinxTranslator.dispatch_visit calling visit_desc_parameter for <desc_parameter xml:space="preserve">address</desc_parameter> SphinxTranslator.dispatch_visit calling visit_Text for address SphinxTranslator.dispatch_departure calling depart_Text for address SphinxTranslator.dispatch_departure calling depart_desc_parameter for <desc_parameter xml:space="preserve">address</desc_parameter> SphinxTranslator.dispatch_departure calling depart_desc_parameterlist for <desc_parameterlist xml:space="preserve"><desc_parameter xml:space="preserve">bytesobj</desc_parameter><desc_parameter xml:space="preserve">address</desc_parameter></desc_parameterlist> SphinxTranslator.dispatch_departure calling depart_desc_signature for <desc_signature class="" first="False" fullname="decompress_ptr" ids="blosc.decompress_ptr" module="blosc" names="blosc.decompress_ptr"><desc_addname xml:space="preserve">blosc.</desc_addname><desc_name xml:space="preserve">decompress_ptr</desc_name><desc_parameterlist xml:space="preserve"><desc_parameter xml:space="preserve">bytesobj</desc_parameter><desc_parameter xml:space="preserve">address</desc_parameter></desc_parameterlist></desc_signature> SphinxTranslator.dispatch_visit calling visit_desc_content for <desc_content><paragraph>Decompresses a bytesobj compressed object into the memory at address.</paragraph><field_list><field><field_name>Parameters</field_name><field_body><paragraph><strong>bytesobj</strong> : str / bytes</paragraph><block_quote><paragraph>The data to be decompressed.</paragraph></block_quote><paragraph><strong>address</strong> : int or long</paragraph><block_quote><paragraph>the pointer to the data to be compressed</paragraph></block_quote></field_body></field><field><field_name>Returns</field_name><field_body><paragraph><strong>nbytes</strong> : int</paragraph><block_quote><paragraph>the number of bytes written to the buffer</paragraph></block_quote></field_body></field><field><field_name>Raises</field_name><field_body><paragraph><strong>TypeError</strong></paragraph><block_quote><paragraph>If bytesobj is not of type bytes or string. If address is not of type int or long.</paragraph></block_quote></field_body></field></field_list><rubric>Notes</rubric><paragraph>This function can be used anywhere that a memory address is available in Python. For example the Numpy “__array_interface__[‘data’][0]†construct, or when using the ctypes modules.</paragraph><paragraph>Importantly, the user is responsible for making sure that the memory address is valid and that the memory pointed to is contiguous and can be written to. Passing a non-valid address has a high likelihood of crashing the interpreter by segfault.</paragraph><rubric>Examples</rubric><doctest_block classes="doctest" xml:space="preserve">>>> import numpy >>> items = 7 >>> np_array = numpy.arange(items) >>> c = blosc.compress_ptr(np_array.__array_interface__['data'][0], items, np_array.dtype.itemsize) >>> np_ans = numpy.empty(items, dtype=np_array.dtype) >>> nbytes = blosc.decompress_ptr(c, np_ans.__array_interface__['data'][0]) >>> (np_array == np_ans).all() True >>> nbytes == items * np_array.dtype.itemsize True</doctest_block><doctest_block classes="doctest" xml:space="preserve">>>> import ctypes >>> typesize = 8 >>> data = [float(i) for i in range(items)] >>> Array = ctypes.c_double * items >>> in_array = Array(*data) >>> c = blosc.compress_ptr(ctypes.addressof(in_array), items, typesize) >>> out_array = ctypes.create_string_buffer(items*typesize) >>> nbytes = blosc.decompress_ptr(c, ctypes.addressof(out_array)) >>> import struct >>> ans = [struct.unpack('d', out_array[i:i+typesize])[0] for i in range(0, items*typesize, typesize)] >>> data == ans True >>> nbytes == items * typesize True</doctest_block></desc_content> SphinxTranslator.dispatch_visit calling visit_paragraph for <paragraph>Decompresses a bytesobj compressed object into the memory at address.</paragraph> SphinxTranslator.dispatch_visit calling visit_Text for Decompresses a bytesobj compressed object into the memory at address. SphinxTranslator.dispatch_departure calling depart_Text for Decompresses a bytesobj compressed object into the memory at address. SphinxTranslator.dispatch_departure calling depart_paragraph for <paragraph>Decompresses a bytesobj compressed object into the memory at address.</paragraph> SphinxTranslator.dispatch_visit calling visit_field_list for <field_list><field><field_name>Parameters</field_name><field_body><paragraph><strong>bytesobj</strong> : str / bytes</paragraph><block_quote><paragraph>The data to be decompressed.</paragraph></block_quote><paragraph><strong>address</strong> : int or long</paragraph><block_quote><paragraph>the pointer to the data to be compressed</paragraph></block_quote></field_body></field><field><field_name>Returns</field_name><field_body><paragraph><strong>nbytes</strong> : int</paragraph><block_quote><paragraph>the number of bytes written to the buffer</paragraph></block_quote></field_body></field><field><field_name>Raises</field_name><field_body><paragraph><strong>TypeError</strong></paragraph><block_quote><paragraph>If bytesobj is not of type bytes or string. If address is not of type int or long.</paragraph></block_quote></field_body></field></field_list> SphinxTranslator.dispatch_visit calling visit_field for <field><field_name>Parameters</field_name><field_body><paragraph><strong>bytesobj</strong> : str / bytes</paragraph><block_quote><paragraph>The data to be decompressed.</paragraph></block_quote><paragraph><strong>address</strong> : int or long</paragraph><block_quote><paragraph>the pointer to the data to be compressed</paragraph></block_quote></field_body></field> SphinxTranslator.dispatch_visit calling visit_field_name for <field_name>Parameters</field_name> SphinxTranslator.dispatch_visit calling visit_Text for Parameters SphinxTranslator.dispatch_departure calling depart_Text for Parameters SphinxTranslator.dispatch_departure calling depart_field_name for <field_name>Parameters</field_name> SphinxTranslator.dispatch_visit calling visit_field_body for <field_body><paragraph><strong>bytesobj</strong> : str / bytes</paragraph><block_quote><paragraph>The data to be decompressed.</paragraph></block_quote><paragraph><strong>address</strong> : int or long</paragraph><block_quote><paragraph>the pointer to the data to be compressed</paragraph></block_quote></field_body> SphinxTranslator.dispatch_visit calling visit_paragraph for <paragraph><strong>bytesobj</strong> : str / bytes</paragraph> SphinxTranslator.dispatch_visit calling visit_strong for <strong>bytesobj</strong> SphinxTranslator.dispatch_visit calling visit_Text for bytesobj SphinxTranslator.dispatch_departure calling depart_Text for bytesobj SphinxTranslator.dispatch_departure calling depart_strong for <strong>bytesobj</strong> SphinxTranslator.dispatch_visit calling visit_Text for : str / bytes SphinxTranslator.dispatch_departure calling depart_Text for : str / bytes SphinxTranslator.dispatch_departure calling depart_paragraph for <paragraph><strong>bytesobj</strong> : str / bytes</paragraph> SphinxTranslator.dispatch_visit calling visit_block_quote for <block_quote><paragraph>The data to be decompressed.</paragraph></block_quote> SphinxTranslator.dispatch_visit calling visit_paragraph for <paragraph>The data to be decompressed.</paragraph> SphinxTranslator.dispatch_visit calling visit_Text for The data to be decompressed. SphinxTranslator.dispatch_departure calling depart_Text for The data to be decompressed. SphinxTranslator.dispatch_departure calling depart_paragraph for <paragraph>The data to be decompressed.</paragraph> SphinxTranslator.dispatch_departure calling depart_block_quote for <block_quote><paragraph>The data to be decompressed.</paragraph></block_quote> SphinxTranslator.dispatch_visit calling visit_paragraph for <paragraph><strong>address</strong> : int or long</paragraph> SphinxTranslator.dispatch_visit calling visit_strong for <strong>address</strong> SphinxTranslator.dispatch_visit calling visit_Text for address SphinxTranslator.dispatch_departure calling depart_Text for address SphinxTranslator.dispatch_departure calling depart_strong for <strong>address</strong> SphinxTranslator.dispatch_visit calling visit_Text for : int or long SphinxTranslator.dispatch_departure calling depart_Text for : int or long SphinxTranslator.dispatch_departure calling depart_paragraph for <paragraph><strong>address</strong> : int or long</paragraph> SphinxTranslator.dispatch_visit calling visit_block_quote for <block_quote><paragraph>the pointer to the data to be compressed</paragraph></block_quote> SphinxTranslator.dispatch_visit calling visit_paragraph for <paragraph>the pointer to the data to be compressed</paragraph> SphinxTranslator.dispatch_visit calling visit_Text for the pointer to the data to be compressed SphinxTranslator.dispatch_departure calling depart_Text for the pointer to the data to be compressed SphinxTranslator.dispatch_departure calling depart_paragraph for <paragraph>the pointer to the data to be compressed</paragraph> SphinxTranslator.dispatch_departure calling depart_block_quote for <block_quote><paragraph>the pointer to the data to be compressed</paragraph></block_quote> SphinxTranslator.dispatch_departure calling depart_field_body for <field_body><paragraph><strong>bytesobj</strong> : str / bytes</paragraph><block_quote><paragraph>The data to be decompressed.</paragraph></block_quote><paragraph><strong>address</strong> : int or long</paragraph><block_quote><paragraph>the pointer to the data to be compressed</paragraph></block_quote></field_body> SphinxTranslator.dispatch_departure calling depart_field for <field classes="field-odd"><field_name>Parameters</field_name><field_body><paragraph><strong>bytesobj</strong> : str / bytes</paragraph><block_quote><paragraph>The data to be decompressed.</paragraph></block_quote><paragraph><strong>address</strong> : int or long</paragraph><block_quote><paragraph>the pointer to the data to be compressed</paragraph></block_quote></field_body></field> SphinxTranslator.dispatch_visit calling visit_field for <field><field_name>Returns</field_name><field_body><paragraph><strong>nbytes</strong> : int</paragraph><block_quote><paragraph>the number of bytes written to the buffer</paragraph></block_quote></field_body></field> SphinxTranslator.dispatch_visit calling visit_field_name for <field_name>Returns</field_name> SphinxTranslator.dispatch_visit calling visit_Text for Returns SphinxTranslator.dispatch_departure calling depart_Text for Returns SphinxTranslator.dispatch_departure calling depart_field_name for <field_name>Returns</field_name> SphinxTranslator.dispatch_visit calling visit_field_body for <field_body><paragraph><strong>nbytes</strong> : int</paragraph><block_quote><paragraph>the number of bytes written to the buffer</paragraph></block_quote></field_body> SphinxTranslator.dispatch_visit calling visit_paragraph for <paragraph><strong>nbytes</strong> : int</paragraph> SphinxTranslator.dispatch_visit calling visit_strong for <strong>nbytes</strong> SphinxTranslator.dispatch_visit calling visit_Text for nbytes SphinxTranslator.dispatch_departure calling depart_Text for nbytes SphinxTranslator.dispatch_departure calling depart_strong for <strong>nbytes</strong> SphinxTranslator.dispatch_visit calling visit_Text for : int SphinxTranslator.dispatch_departure calling depart_Text for : int SphinxTranslator.dispatch_departure calling depart_paragraph for <paragraph><strong>nbytes</strong> : int</paragraph> SphinxTranslator.dispatch_visit calling visit_block_quote for <block_quote><paragraph>the number of bytes written to the buffer</paragraph></block_quote> SphinxTranslator.dispatch_visit calling visit_paragraph for <paragraph>the number of bytes written to the buffer</paragraph> SphinxTranslator.dispatch_visit calling visit_Text for the number of bytes written to the buffer SphinxTranslator.dispatch_departure calling depart_Text for the number of bytes written to the buffer SphinxTranslator.dispatch_departure calling depart_paragraph for <paragraph>the number of bytes written to the buffer</paragraph> SphinxTranslator.dispatch_departure calling depart_block_quote for <block_quote><paragraph>the number of bytes written to the buffer</paragraph></block_quote> SphinxTranslator.dispatch_departure calling depart_field_body for <field_body><paragraph><strong>nbytes</strong> : int</paragraph><block_quote><paragraph>the number of bytes written to the buffer</paragraph></block_quote></field_body> SphinxTranslator.dispatch_departure calling depart_field for <field classes="field-even"><field_name>Returns</field_name><field_body><paragraph><strong>nbytes</strong> : int</paragraph><block_quote><paragraph>the number of bytes written to the buffer</paragraph></block_quote></field_body></field> SphinxTranslator.dispatch_visit calling visit_field for <field><field_name>Raises</field_name><field_body><paragraph><strong>TypeError</strong></paragraph><block_quote><paragraph>If bytesobj is not of type bytes or string. If address is not of type int or long.</paragraph></block_quote></field_body></field> SphinxTranslator.dispatch_visit calling visit_field_name for <field_name>Raises</field_name> SphinxTranslator.dispatch_visit calling visit_Text for Raises SphinxTranslator.dispatch_departure calling depart_Text for Raises SphinxTranslator.dispatch_departure calling depart_field_name for <field_name>Raises</field_name> SphinxTranslator.dispatch_visit calling visit_field_body for <field_body><paragraph><strong>TypeError</strong></paragraph><block_quote><paragraph>If bytesobj is not of type bytes or string. If address is not of type int or long.</paragraph></block_quote></field_body> SphinxTranslator.dispatch_visit calling visit_paragraph for <paragraph><strong>TypeError</strong></paragraph> SphinxTranslator.dispatch_visit calling visit_strong for <strong>TypeError</strong> SphinxTranslator.dispatch_visit calling visit_Text for TypeError SphinxTranslator.dispatch_departure calling depart_Text for TypeError SphinxTranslator.dispatch_departure calling depart_strong for <strong>TypeError</strong> SphinxTranslator.dispatch_departure calling depart_paragraph for <paragraph><strong>TypeError</strong></paragraph> SphinxTranslator.dispatch_visit calling visit_block_quote for <block_quote><paragraph>If bytesobj is not of type bytes or string. If address is not of type int or long.</paragraph></block_quote> SphinxTranslator.dispatch_visit calling visit_paragraph for <paragraph>If bytesobj is not of type bytes or string. If address is not of type int or long.</paragraph> SphinxTranslator.dispatch_visit calling visit_Text for If bytesobj is not of type bytes or string. If address is not of type int or long. SphinxTranslator.dispatch_departure calling depart_Text for If bytesobj is not of type bytes or string. If address is not of type int or long. SphinxTranslator.dispatch_departure calling depart_paragraph for <paragraph>If bytesobj is not of type bytes or string. If address is not of type int or long.</paragraph> SphinxTranslator.dispatch_departure calling depart_block_quote for <block_quote><paragraph>If bytesobj is not of type bytes or string. If address is not of type int or long.</paragraph></block_quote> SphinxTranslator.dispatch_departure calling depart_field_body for <field_body><paragraph><strong>TypeError</strong></paragraph><block_quote><paragraph>If bytesobj is not of type bytes or string. If address is not of type int or long.</paragraph></block_quote></field_body> SphinxTranslator.dispatch_departure calling depart_field for <field classes="field-odd"><field_name>Raises</field_name><field_body><paragraph><strong>TypeError</strong></paragraph><block_quote><paragraph>If bytesobj is not of type bytes or string. If address is not of type int or long.</paragraph></block_quote></field_body></field> SphinxTranslator.dispatch_departure calling depart_field_list for <field_list><field classes="field-odd"><field_name>Parameters</field_name><field_body><paragraph><strong>bytesobj</strong> : str / bytes</paragraph><block_quote><paragraph>The data to be decompressed.</paragraph></block_quote><paragraph><strong>address</strong> : int or long</paragraph><block_quote><paragraph>the pointer to the data to be compressed</paragraph></block_quote></field_body></field><field classes="field-even"><field_name>Returns</field_name><field_body><paragraph><strong>nbytes</strong> : int</paragraph><block_quote><paragraph>the number of bytes written to the buffer</paragraph></block_quote></field_body></field><field classes="field-odd"><field_name>Raises</field_name><field_body><paragraph><strong>TypeError</strong></paragraph><block_quote><paragraph>If bytesobj is not of type bytes or string. If address is not of type int or long.</paragraph></block_quote></field_body></field></field_list> SphinxTranslator.dispatch_visit calling visit_rubric for <rubric>Notes</rubric> SphinxTranslator.dispatch_visit calling visit_Text for Notes SphinxTranslator.dispatch_departure calling depart_Text for Notes SphinxTranslator.dispatch_departure calling depart_rubric for <rubric>Notes</rubric> SphinxTranslator.dispatch_visit calling visit_paragraph for <paragraph>This function can be used anywhere that a memory address is available in Python. For example the Numpy “__array_interface__[‘data’][0]†construct, or when using the ctypes modules.</paragraph> SphinxTranslator.dispatch_visit calling visit_Text for This function can be used anywhere that a memory address is available in Python. For example the Numpy “__array_interface__[‘data’][0]†construct, or when using the ctypes modules. SphinxTranslator.dispatch_departure calling depart_Text for This function can be used anywhere that a memory address is available in Python. For example the Numpy “__array_interface__[‘data’][0]†construct, or when using the ctypes modules. SphinxTranslator.dispatch_departure calling depart_paragraph for <paragraph>This function can be used anywhere that a memory address is available in Python. For example the Numpy “__array_interface__[‘data’][0]†construct, or when using the ctypes modules.</paragraph> SphinxTranslator.dispatch_visit calling visit_paragraph for <paragraph>Importantly, the user is responsible for making sure that the memory address is valid and that the memory pointed to is contiguous and can be written to. Passing a non-valid address has a high likelihood of crashing the interpreter by segfault.</paragraph> SphinxTranslator.dispatch_visit calling visit_Text for Importantly, the user is responsible for making sure that the memory address is valid and that the memory pointed to is contiguous and can be written to. Passing a non-valid address has a high likelihood of crashing the interpreter by segfault. SphinxTranslator.dispatch_departure calling depart_Text for Importantly, the user is responsible for making sure that the memory address is valid and that the memory pointed to is contiguous and can be written to. Passing a non-valid address has a high likelihood of crashing the interpreter by segfault. SphinxTranslator.dispatch_departure calling depart_paragraph for <paragraph>Importantly, the user is responsible for making sure that the memory address is valid and that the memory pointed to is contiguous and can be written to. Passing a non-valid address has a high likelihood of crashing the interpreter by segfault.</paragraph> SphinxTranslator.dispatch_visit calling visit_rubric for <rubric>Examples</rubric> SphinxTranslator.dispatch_visit calling visit_Text for Examples SphinxTranslator.dispatch_departure calling depart_Text for Examples SphinxTranslator.dispatch_departure calling depart_rubric for <rubric>Examples</rubric> SphinxTranslator.dispatch_visit calling visit_doctest_block for <doctest_block classes="doctest" xml:space="preserve">>>> import numpy >>> items = 7 >>> np_array = numpy.arange(items) >>> c = blosc.compress_ptr(np_array.__array_interface__['data'][0], items, np_array.dtype.itemsize) >>> np_ans = numpy.empty(items, dtype=np_array.dtype) >>> nbytes = blosc.decompress_ptr(c, np_ans.__array_interface__['data'][0]) >>> (np_array == np_ans).all() True >>> nbytes == items * np_array.dtype.itemsize True</doctest_block> SphinxTranslator.dispatch_visit calling visit_doctest_block for <doctest_block classes="doctest" xml:space="preserve">>>> import ctypes >>> typesize = 8 >>> data = [float(i) for i in range(items)] >>> Array = ctypes.c_double * items >>> in_array = Array(*data) >>> c = blosc.compress_ptr(ctypes.addressof(in_array), items, typesize) >>> out_array = ctypes.create_string_buffer(items*typesize) >>> nbytes = blosc.decompress_ptr(c, ctypes.addressof(out_array)) >>> import struct >>> ans = [struct.unpack('d', out_array[i:i+typesize])[0] for i in range(0, items*typesize, typesize)] >>> data == ans True >>> nbytes == items * typesize True</doctest_block> SphinxTranslator.dispatch_departure calling depart_desc_content for <desc_content><paragraph>Decompresses a bytesobj compressed object into the memory at address.</paragraph><field_list><field classes="field-odd"><field_name>Parameters</field_name><field_body><paragraph><strong>bytesobj</strong> : str / bytes</paragraph><block_quote><paragraph>The data to be decompressed.</paragraph></block_quote><paragraph><strong>address</strong> : int or long</paragraph><block_quote><paragraph>the pointer to the data to be compressed</paragraph></block_quote></field_body></field><field classes="field-even"><field_name>Returns</field_name><field_body><paragraph><strong>nbytes</strong> : int</paragraph><block_quote><paragraph>the number of bytes written to the buffer</paragraph></block_quote></field_body></field><field classes="field-odd"><field_name>Raises</field_name><field_body><paragraph><strong>TypeError</strong></paragraph><block_quote><paragraph>If bytesobj is not of type bytes or string. If address is not of type int or long.</paragraph></block_quote></field_body></field></field_list><rubric>Notes</rubric><paragraph>This function can be used anywhere that a memory address is available in Python. For example the Numpy “__array_interface__[‘data’][0]†construct, or when using the ctypes modules.</paragraph><paragraph>Importantly, the user is responsible for making sure that the memory address is valid and that the memory pointed to is contiguous and can be written to. Passing a non-valid address has a high likelihood of crashing the interpreter by segfault.</paragraph><rubric>Examples</rubric><doctest_block classes="doctest" xml:space="preserve">>>> import numpy >>> items = 7 >>> np_array = numpy.arange(items) >>> c = blosc.compress_ptr(np_array.__array_interface__['data'][0], items, np_array.dtype.itemsize) >>> np_ans = numpy.empty(items, dtype=np_array.dtype) >>> nbytes = blosc.decompress_ptr(c, np_ans.__array_interface__['data'][0]) >>> (np_array == np_ans).all() True >>> nbytes == items * np_array.dtype.itemsize True</doctest_block><doctest_block classes="doctest" xml:space="preserve">>>> import ctypes >>> typesize = 8 >>> data = [float(i) for i in range(items)] >>> Array = ctypes.c_double * items >>> in_array = Array(*data) >>> c = blosc.compress_ptr(ctypes.addressof(in_array), items, typesize) >>> out_array = ctypes.create_string_buffer(items*typesize) >>> nbytes = blosc.decompress_ptr(c, ctypes.addressof(out_array)) >>> import struct >>> ans = [struct.unpack('d', out_array[i:i+typesize])[0] for i in range(0, items*typesize, typesize)] >>> data == ans True >>> nbytes == items * typesize True</doctest_block></desc_content> SphinxTranslator.dispatch_departure calling depart_desc for <desc desctype="function" domain="py" noindex="False" objtype="function"><desc_signature class="" first="False" fullname="decompress_ptr" ids="blosc.decompress_ptr" module="blosc" names="blosc.decompress_ptr"><desc_addname xml:space="preserve">blosc.</desc_addname><desc_name xml:space="preserve">decompress_ptr</desc_name><desc_parameterlist xml:space="preserve"><desc_parameter xml:space="preserve">bytesobj</desc_parameter><desc_parameter xml:space="preserve">address</desc_parameter></desc_parameterlist></desc_signature><desc_content><paragraph>Decompresses a bytesobj compressed object into the memory at address.</paragraph><field_list><field classes="field-odd"><field_name>Parameters</field_name><field_body><paragraph><strong>bytesobj</strong> : str / bytes</paragraph><block_quote><paragraph>The data to be decompressed.</paragraph></block_quote><paragraph><strong>address</strong> : int or long</paragraph><block_quote><paragraph>the pointer to the data to be compressed</paragraph></block_quote></field_body></field><field classes="field-even"><field_name>Returns</field_name><field_body><paragraph><strong>nbytes</strong> : int</paragraph><block_quote><paragraph>the number of bytes written to the buffer</paragraph></block_quote></field_body></field><field classes="field-odd"><field_name>Raises</field_name><field_body><paragraph><strong>TypeError</strong></paragraph><block_quote><paragraph>If bytesobj is not of type bytes or string. If address is not of type int or long.</paragraph></block_quote></field_body></field></field_list><rubric>Notes</rubric><paragraph>This function can be used anywhere that a memory address is available in Python. For example the Numpy “__array_interface__[‘data’][0]†construct, or when using the ctypes modules.</paragraph><paragraph>Importantly, the user is responsible for making sure that the memory address is valid and that the memory pointed to is contiguous and can be written to. Passing a non-valid address has a high likelihood of crashing the interpreter by segfault.</paragraph><rubric>Examples</rubric><doctest_block classes="doctest" xml:space="preserve">>>> import numpy >>> items = 7 >>> np_array = numpy.arange(items) >>> c = blosc.compress_ptr(np_array.__array_interface__['data'][0], items, np_array.dtype.itemsize) >>> np_ans = numpy.empty(items, dtype=np_array.dtype) >>> nbytes = blosc.decompress_ptr(c, np_ans.__array_interface__['data'][0]) >>> (np_array == np_ans).all() True >>> nbytes == items * np_array.dtype.itemsize True</doctest_block><doctest_block classes="doctest" xml:space="preserve">>>> import ctypes >>> typesize = 8 >>> data = [float(i) for i in range(items)] >>> Array = ctypes.c_double * items >>> in_array = Array(*data) >>> c = blosc.compress_ptr(ctypes.addressof(in_array), items, typesize) >>> out_array = ctypes.create_string_buffer(items*typesize) >>> nbytes = blosc.decompress_ptr(c, ctypes.addressof(out_array)) >>> import struct >>> ans = [struct.unpack('d', out_array[i:i+typesize])[0] for i in range(0, items*typesize, typesize)] >>> data == ans True >>> nbytes == items * typesize True</doctest_block></desc_content></desc> SphinxTranslator.dispatch_visit calling visit_index for <index entries="[('single', 'pack_array() (in module blosc)', 'blosc.pack_array', '', None)]"/> SphinxTranslator.dispatch_visit calling visit_desc for <desc desctype="function" domain="py" noindex="False" objtype="function"><desc_signature class="" first="False" fullname="pack_array" ids="blosc.pack_array" module="blosc" names="blosc.pack_array"><desc_addname xml:space="preserve">blosc.</desc_addname><desc_name xml:space="preserve">pack_array</desc_name><desc_parameterlist xml:space="preserve"><desc_parameter xml:space="preserve">array[, clevel=9, shuffle=blosc.SHUFFLE, cname='blosclz']]</desc_parameter></desc_parameterlist></desc_signature><desc_content><paragraph>Pack (compress) a NumPy array.</paragraph><field_list><field><field_name>Parameters</field_name><field_body><paragraph><strong>array</strong> : ndarray</paragraph><block_quote><paragraph>The NumPy array to be packed.</paragraph></block_quote><paragraph><strong>clevel</strong> : int (optional)</paragraph><block_quote><paragraph>The compression level from 0 (no compression) to 9 (maximum compression). The default is 9.</paragraph></block_quote><paragraph><strong>shuffle</strong> : int (optional)</paragraph><block_quote><paragraph>The shuffle filter to be activated. Allowed values are blosc.NOSHUFFLE, blosc.SHUFFLE and blosc.BITSHUFFLE. The default is blosc.SHUFFLE.</paragraph></block_quote><paragraph><strong>cname</strong> : string (optional)</paragraph><block_quote><paragraph>The name of the compressor used internally in Blosc. It can be any of the supported by Blosc (‘blosclz’, ‘lz4’, ‘lz4hc’, ‘snappy’, ‘zlib’, ‘zstd’ and maybe others too). The default is ‘blosclz’.</paragraph></block_quote></field_body></field><field><field_name>Returns</field_name><field_body><paragraph><strong>out</strong> : str / bytes</paragraph><block_quote><paragraph>The packed array in form of a Python str / bytes object.</paragraph></block_quote></field_body></field><field><field_name>Raises</field_name><field_body><paragraph><strong>TypeError</strong></paragraph><block_quote><paragraph>If array does not quack like a numpy ndarray.</paragraph></block_quote><paragraph><strong>ValueError</strong></paragraph><block_quote><definition_list><definition_list_item><term>If array.itemsize * array.size is larger than the maximum allowed</term><definition><paragraph>buffer size.</paragraph></definition></definition_list_item></definition_list><paragraph>If typesize is not within the allowed range. If clevel is not within the allowed range. If cname is not within the supported compressors.</paragraph></block_quote></field_body></field></field_list><rubric>Examples</rubric><doctest_block classes="doctest" xml:space="preserve">>>> import numpy >>> a = numpy.arange(1e6) >>> parray = blosc.pack_array(a) >>> len(parray) < a.size*a.itemsize True</doctest_block></desc_content></desc> SphinxTranslator.dispatch_visit calling visit_desc_signature for <desc_signature class="" first="False" fullname="pack_array" ids="blosc.pack_array" module="blosc" names="blosc.pack_array"><desc_addname xml:space="preserve">blosc.</desc_addname><desc_name xml:space="preserve">pack_array</desc_name><desc_parameterlist xml:space="preserve"><desc_parameter xml:space="preserve">array[, clevel=9, shuffle=blosc.SHUFFLE, cname='blosclz']]</desc_parameter></desc_parameterlist></desc_signature> SphinxTranslator.dispatch_visit calling visit_desc_addname for <desc_addname xml:space="preserve">blosc.</desc_addname> SphinxTranslator.dispatch_visit calling visit_Text for blosc. SphinxTranslator.dispatch_departure calling depart_Text for blosc. SphinxTranslator.dispatch_departure calling depart_desc_addname for <desc_addname xml:space="preserve">blosc.</desc_addname> SphinxTranslator.dispatch_visit calling visit_desc_name for <desc_name xml:space="preserve">pack_array</desc_name> SphinxTranslator.dispatch_visit calling visit_Text for pack_array SphinxTranslator.dispatch_departure calling depart_Text for pack_array SphinxTranslator.dispatch_departure calling depart_desc_name for <desc_name xml:space="preserve">pack_array</desc_name> SphinxTranslator.dispatch_visit calling visit_desc_parameterlist for <desc_parameterlist xml:space="preserve"><desc_parameter xml:space="preserve">array[, clevel=9, shuffle=blosc.SHUFFLE, cname='blosclz']]</desc_parameter></desc_parameterlist> SphinxTranslator.dispatch_visit calling visit_desc_parameter for <desc_parameter xml:space="preserve">array[, clevel=9, shuffle=blosc.SHUFFLE, cname='blosclz']]</desc_parameter> SphinxTranslator.dispatch_visit calling visit_Text for array[, clevel=9, shuffle=blosc.SHUFFLE, cname='blosclz']] SphinxTranslator.dispatch_departure calling depart_Text for array[, clevel=9, shuffle=blosc.SHUFFLE, cname='blosclz']] SphinxTranslator.dispatch_departure calling depart_desc_parameter for <desc_parameter xml:space="preserve">array[, clevel=9, shuffle=blosc.SHUFFLE, cname='blosclz']]</desc_parameter> SphinxTranslator.dispatch_departure calling depart_desc_parameterlist for <desc_parameterlist xml:space="preserve"><desc_parameter xml:space="preserve">array[, clevel=9, shuffle=blosc.SHUFFLE, cname='blosclz']]</desc_parameter></desc_parameterlist> SphinxTranslator.dispatch_departure calling depart_desc_signature for <desc_signature class="" first="False" fullname="pack_array" ids="blosc.pack_array" module="blosc" names="blosc.pack_array"><desc_addname xml:space="preserve">blosc.</desc_addname><desc_name xml:space="preserve">pack_array</desc_name><desc_parameterlist xml:space="preserve"><desc_parameter xml:space="preserve">array[, clevel=9, shuffle=blosc.SHUFFLE, cname='blosclz']]</desc_parameter></desc_parameterlist></desc_signature> SphinxTranslator.dispatch_visit calling visit_desc_content for <desc_content><paragraph>Pack (compress) a NumPy array.</paragraph><field_list><field><field_name>Parameters</field_name><field_body><paragraph><strong>array</strong> : ndarray</paragraph><block_quote><paragraph>The NumPy array to be packed.</paragraph></block_quote><paragraph><strong>clevel</strong> : int (optional)</paragraph><block_quote><paragraph>The compression level from 0 (no compression) to 9 (maximum compression). The default is 9.</paragraph></block_quote><paragraph><strong>shuffle</strong> : int (optional)</paragraph><block_quote><paragraph>The shuffle filter to be activated. Allowed values are blosc.NOSHUFFLE, blosc.SHUFFLE and blosc.BITSHUFFLE. The default is blosc.SHUFFLE.</paragraph></block_quote><paragraph><strong>cname</strong> : string (optional)</paragraph><block_quote><paragraph>The name of the compressor used internally in Blosc. It can be any of the supported by Blosc (‘blosclz’, ‘lz4’, ‘lz4hc’, ‘snappy’, ‘zlib’, ‘zstd’ and maybe others too). The default is ‘blosclz’.</paragraph></block_quote></field_body></field><field><field_name>Returns</field_name><field_body><paragraph><strong>out</strong> : str / bytes</paragraph><block_quote><paragraph>The packed array in form of a Python str / bytes object.</paragraph></block_quote></field_body></field><field><field_name>Raises</field_name><field_body><paragraph><strong>TypeError</strong></paragraph><block_quote><paragraph>If array does not quack like a numpy ndarray.</paragraph></block_quote><paragraph><strong>ValueError</strong></paragraph><block_quote><definition_list><definition_list_item><term>If array.itemsize * array.size is larger than the maximum allowed</term><definition><paragraph>buffer size.</paragraph></definition></definition_list_item></definition_list><paragraph>If typesize is not within the allowed range. If clevel is not within the allowed range. If cname is not within the supported compressors.</paragraph></block_quote></field_body></field></field_list><rubric>Examples</rubric><doctest_block classes="doctest" xml:space="preserve">>>> import numpy >>> a = numpy.arange(1e6) >>> parray = blosc.pack_array(a) >>> len(parray) < a.size*a.itemsize True</doctest_block></desc_content> SphinxTranslator.dispatch_visit calling visit_paragraph for <paragraph>Pack (compress) a NumPy array.</paragraph> SphinxTranslator.dispatch_visit calling visit_Text for Pack (compress) a NumPy array. SphinxTranslator.dispatch_departure calling depart_Text for Pack (compress) a NumPy array. SphinxTranslator.dispatch_departure calling depart_paragraph for <paragraph>Pack (compress) a NumPy array.</paragraph> SphinxTranslator.dispatch_visit calling visit_field_list for <field_list><field><field_name>Parameters</field_name><field_body><paragraph><strong>array</strong> : ndarray</paragraph><block_quote><paragraph>The NumPy array to be packed.</paragraph></block_quote><paragraph><strong>clevel</strong> : int (optional)</paragraph><block_quote><paragraph>The compression level from 0 (no compression) to 9 (maximum compression). The default is 9.</paragraph></block_quote><paragraph><strong>shuffle</strong> : int (optional)</paragraph><block_quote><paragraph>The shuffle filter to be activated. Allowed values are blosc.NOSHUFFLE, blosc.SHUFFLE and blosc.BITSHUFFLE. The default is blosc.SHUFFLE.</paragraph></block_quote><paragraph><strong>cname</strong> : string (optional)</paragraph><block_quote><paragraph>The name of the compressor used internally in Blosc. It can be any of the supported by Blosc (‘blosclz’, ‘lz4’, ‘lz4hc’, ‘snappy’, ‘zlib’, ‘zstd’ and maybe others too). The default is ‘blosclz’.</paragraph></block_quote></field_body></field><field><field_name>Returns</field_name><field_body><paragraph><strong>out</strong> : str / bytes</paragraph><block_quote><paragraph>The packed array in form of a Python str / bytes object.</paragraph></block_quote></field_body></field><field><field_name>Raises</field_name><field_body><paragraph><strong>TypeError</strong></paragraph><block_quote><paragraph>If array does not quack like a numpy ndarray.</paragraph></block_quote><paragraph><strong>ValueError</strong></paragraph><block_quote><definition_list><definition_list_item><term>If array.itemsize * array.size is larger than the maximum allowed</term><definition><paragraph>buffer size.</paragraph></definition></definition_list_item></definition_list><paragraph>If typesize is not within the allowed range. If clevel is not within the allowed range. If cname is not within the supported compressors.</paragraph></block_quote></field_body></field></field_list> SphinxTranslator.dispatch_visit calling visit_field for <field><field_name>Parameters</field_name><field_body><paragraph><strong>array</strong> : ndarray</paragraph><block_quote><paragraph>The NumPy array to be packed.</paragraph></block_quote><paragraph><strong>clevel</strong> : int (optional)</paragraph><block_quote><paragraph>The compression level from 0 (no compression) to 9 (maximum compression). The default is 9.</paragraph></block_quote><paragraph><strong>shuffle</strong> : int (optional)</paragraph><block_quote><paragraph>The shuffle filter to be activated. Allowed values are blosc.NOSHUFFLE, blosc.SHUFFLE and blosc.BITSHUFFLE. The default is blosc.SHUFFLE.</paragraph></block_quote><paragraph><strong>cname</strong> : string (optional)</paragraph><block_quote><paragraph>The name of the compressor used internally in Blosc. It can be any of the supported by Blosc (‘blosclz’, ‘lz4’, ‘lz4hc’, ‘snappy’, ‘zlib’, ‘zstd’ and maybe others too). The default is ‘blosclz’.</paragraph></block_quote></field_body></field> SphinxTranslator.dispatch_visit calling visit_field_name for <field_name>Parameters</field_name> SphinxTranslator.dispatch_visit calling visit_Text for Parameters SphinxTranslator.dispatch_departure calling depart_Text for Parameters SphinxTranslator.dispatch_departure calling depart_field_name for <field_name>Parameters</field_name> SphinxTranslator.dispatch_visit calling visit_field_body for <field_body><paragraph><strong>array</strong> : ndarray</paragraph><block_quote><paragraph>The NumPy array to be packed.</paragraph></block_quote><paragraph><strong>clevel</strong> : int (optional)</paragraph><block_quote><paragraph>The compression level from 0 (no compression) to 9 (maximum compression). The default is 9.</paragraph></block_quote><paragraph><strong>shuffle</strong> : int (optional)</paragraph><block_quote><paragraph>The shuffle filter to be activated. Allowed values are blosc.NOSHUFFLE, blosc.SHUFFLE and blosc.BITSHUFFLE. The default is blosc.SHUFFLE.</paragraph></block_quote><paragraph><strong>cname</strong> : string (optional)</paragraph><block_quote><paragraph>The name of the compressor used internally in Blosc. It can be any of the supported by Blosc (‘blosclz’, ‘lz4’, ‘lz4hc’, ‘snappy’, ‘zlib’, ‘zstd’ and maybe others too). The default is ‘blosclz’.</paragraph></block_quote></field_body> SphinxTranslator.dispatch_visit calling visit_paragraph for <paragraph><strong>array</strong> : ndarray</paragraph> SphinxTranslator.dispatch_visit calling visit_strong for <strong>array</strong> SphinxTranslator.dispatch_visit calling visit_Text for array SphinxTranslator.dispatch_departure calling depart_Text for array SphinxTranslator.dispatch_departure calling depart_strong for <strong>array</strong> SphinxTranslator.dispatch_visit calling visit_Text for : ndarray SphinxTranslator.dispatch_departure calling depart_Text for : ndarray SphinxTranslator.dispatch_departure calling depart_paragraph for <paragraph><strong>array</strong> : ndarray</paragraph> SphinxTranslator.dispatch_visit calling visit_block_quote for <block_quote><paragraph>The NumPy array to be packed.</paragraph></block_quote> SphinxTranslator.dispatch_visit calling visit_paragraph for <paragraph>The NumPy array to be packed.</paragraph> SphinxTranslator.dispatch_visit calling visit_Text for The NumPy array to be packed. SphinxTranslator.dispatch_departure calling depart_Text for The NumPy array to be packed. SphinxTranslator.dispatch_departure calling depart_paragraph for <paragraph>The NumPy array to be packed.</paragraph> SphinxTranslator.dispatch_departure calling depart_block_quote for <block_quote><paragraph>The NumPy array to be packed.</paragraph></block_quote> SphinxTranslator.dispatch_visit calling visit_paragraph for <paragraph><strong>clevel</strong> : int (optional)</paragraph> SphinxTranslator.dispatch_visit calling visit_strong for <strong>clevel</strong> SphinxTranslator.dispatch_visit calling visit_Text for clevel SphinxTranslator.dispatch_departure calling depart_Text for clevel SphinxTranslator.dispatch_departure calling depart_strong for <strong>clevel</strong> SphinxTranslator.dispatch_visit calling visit_Text for : int (optional) SphinxTranslator.dispatch_departure calling depart_Text for : int (optional) SphinxTranslator.dispatch_departure calling depart_paragraph for <paragraph><strong>clevel</strong> : int (optional)</paragraph> SphinxTranslator.dispatch_visit calling visit_block_quote for <block_quote><paragraph>The compression level from 0 (no compression) to 9 (maximum compression). The default is 9.</paragraph></block_quote> SphinxTranslator.dispatch_visit calling visit_paragraph for <paragraph>The compression level from 0 (no compression) to 9 (maximum compression). The default is 9.</paragraph> SphinxTranslator.dispatch_visit calling visit_Text for The compression level from 0 (no compression) to 9 (maximum compression). The default is 9. SphinxTranslator.dispatch_departure calling depart_Text for The compression level from 0 (no compression) to 9 (maximum compression). The default is 9. SphinxTranslator.dispatch_departure calling depart_paragraph for <paragraph>The compression level from 0 (no compression) to 9 (maximum compression). The default is 9.</paragraph> SphinxTranslator.dispatch_departure calling depart_block_quote for <block_quote><paragraph>The compression level from 0 (no compression) to 9 (maximum compression). The default is 9.</paragraph></block_quote> SphinxTranslator.dispatch_visit calling visit_paragraph for <paragraph><strong>shuffle</strong> : int (optional)</paragraph> SphinxTranslator.dispatch_visit calling visit_strong for <strong>shuffle</strong> SphinxTranslator.dispatch_visit calling visit_Text for shuffle SphinxTranslator.dispatch_departure calling depart_Text for shuffle SphinxTranslator.dispatch_departure calling depart_strong for <strong>shuffle</strong> SphinxTranslator.dispatch_visit calling visit_Text for : int (optional) SphinxTranslator.dispatch_departure calling depart_Text for : int (optional) SphinxTranslator.dispatch_departure calling depart_paragraph for <paragraph><strong>shuffle</strong> : int (optional)</paragraph> SphinxTranslator.dispatch_visit calling visit_block_quote for <block_quote><paragraph>The shuffle filter to be activated. Allowed values are blosc.NOSHUFFLE, blosc.SHUFFLE and blosc.BITSHUFFLE. The default is blosc.SHUFFLE.</paragraph></block_quote> SphinxTranslator.dispatch_visit calling visit_paragraph for <paragraph>The shuffle filter to be activated. Allowed values are blosc.NOSHUFFLE, blosc.SHUFFLE and blosc.BITSHUFFLE. The default is blosc.SHUFFLE.</paragraph> SphinxTranslator.dispatch_visit calling visit_Text for The shuffle filter to be activated. Allowed values are blosc.NOSHUFFLE, blosc.SHUFFLE and blosc.BITSHUFFLE. The default is blosc.SHUFFLE. SphinxTranslator.dispatch_departure calling depart_Text for The shuffle filter to be activated. Allowed values are blosc.NOSHUFFLE, blosc.SHUFFLE and blosc.BITSHUFFLE. The default is blosc.SHUFFLE. SphinxTranslator.dispatch_departure calling depart_paragraph for <paragraph>The shuffle filter to be activated. Allowed values are blosc.NOSHUFFLE, blosc.SHUFFLE and blosc.BITSHUFFLE. The default is blosc.SHUFFLE.</paragraph> SphinxTranslator.dispatch_departure calling depart_block_quote for <block_quote><paragraph>The shuffle filter to be activated. Allowed values are blosc.NOSHUFFLE, blosc.SHUFFLE and blosc.BITSHUFFLE. The default is blosc.SHUFFLE.</paragraph></block_quote> SphinxTranslator.dispatch_visit calling visit_paragraph for <paragraph><strong>cname</strong> : string (optional)</paragraph> SphinxTranslator.dispatch_visit calling visit_strong for <strong>cname</strong> SphinxTranslator.dispatch_visit calling visit_Text for cname SphinxTranslator.dispatch_departure calling depart_Text for cname SphinxTranslator.dispatch_departure calling depart_strong for <strong>cname</strong> SphinxTranslator.dispatch_visit calling visit_Text for : string (optional) SphinxTranslator.dispatch_departure calling depart_Text for : string (optional) SphinxTranslator.dispatch_departure calling depart_paragraph for <paragraph><strong>cname</strong> : string (optional)</paragraph> SphinxTranslator.dispatch_visit calling visit_block_quote for <block_quote><paragraph>The name of the compressor used internally in Blosc. It can be any of the supported by Blosc (‘blosclz’, ‘lz4’, ‘lz4hc’, ‘snappy’, ‘zlib’, ‘zstd’ and maybe others too). The default is ‘blosclz’.</paragraph></block_quote> SphinxTranslator.dispatch_visit calling visit_paragraph for <paragraph>The name of the compressor used internally in Blosc. It can be any of the supported by Blosc (‘blosclz’, ‘lz4’, ‘lz4hc’, ‘snappy’, ‘zlib’, ‘zstd’ and maybe others too). The default is ‘blosclz’.</paragraph> SphinxTranslator.dispatch_visit calling visit_Text for The name of the compressor used internally in Blosc. It can be any of the supported by Blosc (‘blosclz’, ‘lz4’, ‘lz4hc’, ‘snappy’, ‘zlib’, ‘zstd’ and maybe others too). The default is ‘blosclz’. SphinxTranslator.dispatch_departure calling depart_Text for The name of the compressor used internally in Blosc. It can be any of the supported by Blosc (‘blosclz’, ‘lz4’, ‘lz4hc’, ‘snappy’, ‘zlib’, ‘zstd’ and maybe others too). The default is ‘blosclz’. SphinxTranslator.dispatch_departure calling depart_paragraph for <paragraph>The name of the compressor used internally in Blosc. It can be any of the supported by Blosc (‘blosclz’, ‘lz4’, ‘lz4hc’, ‘snappy’, ‘zlib’, ‘zstd’ and maybe others too). The default is ‘blosclz’.</paragraph> SphinxTranslator.dispatch_departure calling depart_block_quote for <block_quote><paragraph>The name of the compressor used internally in Blosc. It can be any of the supported by Blosc (‘blosclz’, ‘lz4’, ‘lz4hc’, ‘snappy’, ‘zlib’, ‘zstd’ and maybe others too). The default is ‘blosclz’.</paragraph></block_quote> SphinxTranslator.dispatch_departure calling depart_field_body for <field_body><paragraph><strong>array</strong> : ndarray</paragraph><block_quote><paragraph>The NumPy array to be packed.</paragraph></block_quote><paragraph><strong>clevel</strong> : int (optional)</paragraph><block_quote><paragraph>The compression level from 0 (no compression) to 9 (maximum compression). The default is 9.</paragraph></block_quote><paragraph><strong>shuffle</strong> : int (optional)</paragraph><block_quote><paragraph>The shuffle filter to be activated. Allowed values are blosc.NOSHUFFLE, blosc.SHUFFLE and blosc.BITSHUFFLE. The default is blosc.SHUFFLE.</paragraph></block_quote><paragraph><strong>cname</strong> : string (optional)</paragraph><block_quote><paragraph>The name of the compressor used internally in Blosc. It can be any of the supported by Blosc (‘blosclz’, ‘lz4’, ‘lz4hc’, ‘snappy’, ‘zlib’, ‘zstd’ and maybe others too). The default is ‘blosclz’.</paragraph></block_quote></field_body> SphinxTranslator.dispatch_departure calling depart_field for <field classes="field-odd"><field_name>Parameters</field_name><field_body><paragraph><strong>array</strong> : ndarray</paragraph><block_quote><paragraph>The NumPy array to be packed.</paragraph></block_quote><paragraph><strong>clevel</strong> : int (optional)</paragraph><block_quote><paragraph>The compression level from 0 (no compression) to 9 (maximum compression). The default is 9.</paragraph></block_quote><paragraph><strong>shuffle</strong> : int (optional)</paragraph><block_quote><paragraph>The shuffle filter to be activated. Allowed values are blosc.NOSHUFFLE, blosc.SHUFFLE and blosc.BITSHUFFLE. The default is blosc.SHUFFLE.</paragraph></block_quote><paragraph><strong>cname</strong> : string (optional)</paragraph><block_quote><paragraph>The name of the compressor used internally in Blosc. It can be any of the supported by Blosc (‘blosclz’, ‘lz4’, ‘lz4hc’, ‘snappy’, ‘zlib’, ‘zstd’ and maybe others too). The default is ‘blosclz’.</paragraph></block_quote></field_body></field> SphinxTranslator.dispatch_visit calling visit_field for <field><field_name>Returns</field_name><field_body><paragraph><strong>out</strong> : str / bytes</paragraph><block_quote><paragraph>The packed array in form of a Python str / bytes object.</paragraph></block_quote></field_body></field> SphinxTranslator.dispatch_visit calling visit_field_name for <field_name>Returns</field_name> SphinxTranslator.dispatch_visit calling visit_Text for Returns SphinxTranslator.dispatch_departure calling depart_Text for Returns SphinxTranslator.dispatch_departure calling depart_field_name for <field_name>Returns</field_name> SphinxTranslator.dispatch_visit calling visit_field_body for <field_body><paragraph><strong>out</strong> : str / bytes</paragraph><block_quote><paragraph>The packed array in form of a Python str / bytes object.</paragraph></block_quote></field_body> SphinxTranslator.dispatch_visit calling visit_paragraph for <paragraph><strong>out</strong> : str / bytes</paragraph> SphinxTranslator.dispatch_visit calling visit_strong for <strong>out</strong> SphinxTranslator.dispatch_visit calling visit_Text for out SphinxTranslator.dispatch_departure calling depart_Text for out SphinxTranslator.dispatch_departure calling depart_strong for <strong>out</strong> SphinxTranslator.dispatch_visit calling visit_Text for : str / bytes SphinxTranslator.dispatch_departure calling depart_Text for : str / bytes SphinxTranslator.dispatch_departure calling depart_paragraph for <paragraph><strong>out</strong> : str / bytes</paragraph> SphinxTranslator.dispatch_visit calling visit_block_quote for <block_quote><paragraph>The packed array in form of a Python str / bytes object.</paragraph></block_quote> SphinxTranslator.dispatch_visit calling visit_paragraph for <paragraph>The packed array in form of a Python str / bytes object.</paragraph> SphinxTranslator.dispatch_visit calling visit_Text for The packed array in form of a Python str / bytes object. SphinxTranslator.dispatch_departure calling depart_Text for The packed array in form of a Python str / bytes object. SphinxTranslator.dispatch_departure calling depart_paragraph for <paragraph>The packed array in form of a Python str / bytes object.</paragraph> SphinxTranslator.dispatch_departure calling depart_block_quote for <block_quote><paragraph>The packed array in form of a Python str / bytes object.</paragraph></block_quote> SphinxTranslator.dispatch_departure calling depart_field_body for <field_body><paragraph><strong>out</strong> : str / bytes</paragraph><block_quote><paragraph>The packed array in form of a Python str / bytes object.</paragraph></block_quote></field_body> SphinxTranslator.dispatch_departure calling depart_field for <field classes="field-even"><field_name>Returns</field_name><field_body><paragraph><strong>out</strong> : str / bytes</paragraph><block_quote><paragraph>The packed array in form of a Python str / bytes object.</paragraph></block_quote></field_body></field> SphinxTranslator.dispatch_visit calling visit_field for <field><field_name>Raises</field_name><field_body><paragraph><strong>TypeError</strong></paragraph><block_quote><paragraph>If array does not quack like a numpy ndarray.</paragraph></block_quote><paragraph><strong>ValueError</strong></paragraph><block_quote><definition_list><definition_list_item><term>If array.itemsize * array.size is larger than the maximum allowed</term><definition><paragraph>buffer size.</paragraph></definition></definition_list_item></definition_list><paragraph>If typesize is not within the allowed range. If clevel is not within the allowed range. If cname is not within the supported compressors.</paragraph></block_quote></field_body></field> SphinxTranslator.dispatch_visit calling visit_field_name for <field_name>Raises</field_name> SphinxTranslator.dispatch_visit calling visit_Text for Raises SphinxTranslator.dispatch_departure calling depart_Text for Raises SphinxTranslator.dispatch_departure calling depart_field_name for <field_name>Raises</field_name> SphinxTranslator.dispatch_visit calling visit_field_body for <field_body><paragraph><strong>TypeError</strong></paragraph><block_quote><paragraph>If array does not quack like a numpy ndarray.</paragraph></block_quote><paragraph><strong>ValueError</strong></paragraph><block_quote><definition_list><definition_list_item><term>If array.itemsize * array.size is larger than the maximum allowed</term><definition><paragraph>buffer size.</paragraph></definition></definition_list_item></definition_list><paragraph>If typesize is not within the allowed range. If clevel is not within the allowed range. If cname is not within the supported compressors.</paragraph></block_quote></field_body> SphinxTranslator.dispatch_visit calling visit_paragraph for <paragraph><strong>TypeError</strong></paragraph> SphinxTranslator.dispatch_visit calling visit_strong for <strong>TypeError</strong> SphinxTranslator.dispatch_visit calling visit_Text for TypeError SphinxTranslator.dispatch_departure calling depart_Text for TypeError SphinxTranslator.dispatch_departure calling depart_strong for <strong>TypeError</strong> SphinxTranslator.dispatch_departure calling depart_paragraph for <paragraph><strong>TypeError</strong></paragraph> SphinxTranslator.dispatch_visit calling visit_block_quote for <block_quote><paragraph>If array does not quack like a numpy ndarray.</paragraph></block_quote> SphinxTranslator.dispatch_visit calling visit_paragraph for <paragraph>If array does not quack like a numpy ndarray.</paragraph> SphinxTranslator.dispatch_visit calling visit_Text for If array does not quack like a numpy ndarray. SphinxTranslator.dispatch_departure calling depart_Text for If array does not quack like a numpy ndarray. SphinxTranslator.dispatch_departure calling depart_paragraph for <paragraph>If array does not quack like a numpy ndarray.</paragraph> SphinxTranslator.dispatch_departure calling depart_block_quote for <block_quote><paragraph>If array does not quack like a numpy ndarray.</paragraph></block_quote> SphinxTranslator.dispatch_visit calling visit_paragraph for <paragraph><strong>ValueError</strong></paragraph> SphinxTranslator.dispatch_visit calling visit_strong for <strong>ValueError</strong> SphinxTranslator.dispatch_visit calling visit_Text for ValueError SphinxTranslator.dispatch_departure calling depart_Text for ValueError SphinxTranslator.dispatch_departure calling depart_strong for <strong>ValueError</strong> SphinxTranslator.dispatch_departure calling depart_paragraph for <paragraph><strong>ValueError</strong></paragraph> SphinxTranslator.dispatch_visit calling visit_block_quote for <block_quote><definition_list><definition_list_item><term>If array.itemsize * array.size is larger than the maximum allowed</term><definition><paragraph>buffer size.</paragraph></definition></definition_list_item></definition_list><paragraph>If typesize is not within the allowed range. If clevel is not within the allowed range. If cname is not within the supported compressors.</paragraph></block_quote> SphinxTranslator.dispatch_visit calling visit_definition_list for <definition_list><definition_list_item><term>If array.itemsize * array.size is larger than the maximum allowed</term><definition><paragraph>buffer size.</paragraph></definition></definition_list_item></definition_list> SphinxTranslator.dispatch_visit calling visit_definition_list_item for <definition_list_item><term>If array.itemsize * array.size is larger than the maximum allowed</term><definition><paragraph>buffer size.</paragraph></definition></definition_list_item> SphinxTranslator.dispatch_visit calling visit_term for <term>If array.itemsize * array.size is larger than the maximum allowed</term> SphinxTranslator.dispatch_visit calling visit_Text for If array.itemsize * array.size is larger than the maximum allowed SphinxTranslator.dispatch_departure calling depart_Text for If array.itemsize * array.size is larger than the maximum allowed SphinxTranslator.dispatch_departure calling depart_term for <term>If array.itemsize * array.size is larger than the maximum allowed</term> SphinxTranslator.dispatch_visit calling visit_definition for <definition><paragraph>buffer size.</paragraph></definition> SphinxTranslator.dispatch_visit calling visit_paragraph for <paragraph>buffer size.</paragraph> SphinxTranslator.dispatch_visit calling visit_Text for buffer size. SphinxTranslator.dispatch_departure calling depart_Text for buffer size. SphinxTranslator.dispatch_departure calling depart_paragraph for <paragraph>buffer size.</paragraph> SphinxTranslator.dispatch_departure calling depart_definition for <definition><paragraph>buffer size.</paragraph></definition> SphinxTranslator.dispatch_departure calling depart_definition_list_item for <definition_list_item><term>If array.itemsize * array.size is larger than the maximum allowed</term><definition><paragraph>buffer size.</paragraph></definition></definition_list_item> SphinxTranslator.dispatch_departure calling depart_definition_list for <definition_list classes="simple"><definition_list_item><term>If array.itemsize * array.size is larger than the maximum allowed</term><definition><paragraph>buffer size.</paragraph></definition></definition_list_item></definition_list> SphinxTranslator.dispatch_visit calling visit_paragraph for <paragraph>If typesize is not within the allowed range. If clevel is not within the allowed range. If cname is not within the supported compressors.</paragraph> SphinxTranslator.dispatch_visit calling visit_Text for If typesize is not within the allowed range. If clevel is not within the allowed range. If cname is not within the supported compressors. SphinxTranslator.dispatch_departure calling depart_Text for If typesize is not within the allowed range. If clevel is not within the allowed range. If cname is not within the supported compressors. SphinxTranslator.dispatch_departure calling depart_paragraph for <paragraph>If typesize is not within the allowed range. If clevel is not within the allowed range. If cname is not within the supported compressors.</paragraph> SphinxTranslator.dispatch_departure calling depart_block_quote for <block_quote><definition_list classes="simple"><definition_list_item><term>If array.itemsize * array.size is larger than the maximum allowed</term><definition><paragraph>buffer size.</paragraph></definition></definition_list_item></definition_list><paragraph>If typesize is not within the allowed range. If clevel is not within the allowed range. If cname is not within the supported compressors.</paragraph></block_quote> SphinxTranslator.dispatch_departure calling depart_field_body for <field_body><paragraph><strong>TypeError</strong></paragraph><block_quote><paragraph>If array does not quack like a numpy ndarray.</paragraph></block_quote><paragraph><strong>ValueError</strong></paragraph><block_quote><definition_list classes="simple"><definition_list_item><term>If array.itemsize * array.size is larger than the maximum allowed</term><definition><paragraph>buffer size.</paragraph></definition></definition_list_item></definition_list><paragraph>If typesize is not within the allowed range. If clevel is not within the allowed range. If cname is not within the supported compressors.</paragraph></block_quote></field_body> SphinxTranslator.dispatch_departure calling depart_field for <field classes="field-odd"><field_name>Raises</field_name><field_body><paragraph><strong>TypeError</strong></paragraph><block_quote><paragraph>If array does not quack like a numpy ndarray.</paragraph></block_quote><paragraph><strong>ValueError</strong></paragraph><block_quote><definition_list classes="simple"><definition_list_item><term>If array.itemsize * array.size is larger than the maximum allowed</term><definition><paragraph>buffer size.</paragraph></definition></definition_list_item></definition_list><paragraph>If typesize is not within the allowed range. If clevel is not within the allowed range. If cname is not within the supported compressors.</paragraph></block_quote></field_body></field> SphinxTranslator.dispatch_departure calling depart_field_list for <field_list><field classes="field-odd"><field_name>Parameters</field_name><field_body><paragraph><strong>array</strong> : ndarray</paragraph><block_quote><paragraph>The NumPy array to be packed.</paragraph></block_quote><paragraph><strong>clevel</strong> : int (optional)</paragraph><block_quote><paragraph>The compression level from 0 (no compression) to 9 (maximum compression). The default is 9.</paragraph></block_quote><paragraph><strong>shuffle</strong> : int (optional)</paragraph><block_quote><paragraph>The shuffle filter to be activated. Allowed values are blosc.NOSHUFFLE, blosc.SHUFFLE and blosc.BITSHUFFLE. The default is blosc.SHUFFLE.</paragraph></block_quote><paragraph><strong>cname</strong> : string (optional)</paragraph><block_quote><paragraph>The name of the compressor used internally in Blosc. It can be any of the supported by Blosc (‘blosclz’, ‘lz4’, ‘lz4hc’, ‘snappy’, ‘zlib’, ‘zstd’ and maybe others too). The default is ‘blosclz’.</paragraph></block_quote></field_body></field><field classes="field-even"><field_name>Returns</field_name><field_body><paragraph><strong>out</strong> : str / bytes</paragraph><block_quote><paragraph>The packed array in form of a Python str / bytes object.</paragraph></block_quote></field_body></field><field classes="field-odd"><field_name>Raises</field_name><field_body><paragraph><strong>TypeError</strong></paragraph><block_quote><paragraph>If array does not quack like a numpy ndarray.</paragraph></block_quote><paragraph><strong>ValueError</strong></paragraph><block_quote><definition_list classes="simple"><definition_list_item><term>If array.itemsize * array.size is larger than the maximum allowed</term><definition><paragraph>buffer size.</paragraph></definition></definition_list_item></definition_list><paragraph>If typesize is not within the allowed range. If clevel is not within the allowed range. If cname is not within the supported compressors.</paragraph></block_quote></field_body></field></field_list> SphinxTranslator.dispatch_visit calling visit_rubric for <rubric>Examples</rubric> SphinxTranslator.dispatch_visit calling visit_Text for Examples SphinxTranslator.dispatch_departure calling depart_Text for Examples SphinxTranslator.dispatch_departure calling depart_rubric for <rubric>Examples</rubric> SphinxTranslator.dispatch_visit calling visit_doctest_block for <doctest_block classes="doctest" xml:space="preserve">>>> import numpy >>> a = numpy.arange(1e6) >>> parray = blosc.pack_array(a) >>> len(parray) < a.size*a.itemsize True</doctest_block> SphinxTranslator.dispatch_departure calling depart_desc_content for <desc_content><paragraph>Pack (compress) a NumPy array.</paragraph><field_list><field classes="field-odd"><field_name>Parameters</field_name><field_body><paragraph><strong>array</strong> : ndarray</paragraph><block_quote><paragraph>The NumPy array to be packed.</paragraph></block_quote><paragraph><strong>clevel</strong> : int (optional)</paragraph><block_quote><paragraph>The compression level from 0 (no compression) to 9 (maximum compression). The default is 9.</paragraph></block_quote><paragraph><strong>shuffle</strong> : int (optional)</paragraph><block_quote><paragraph>The shuffle filter to be activated. Allowed values are blosc.NOSHUFFLE, blosc.SHUFFLE and blosc.BITSHUFFLE. The default is blosc.SHUFFLE.</paragraph></block_quote><paragraph><strong>cname</strong> : string (optional)</paragraph><block_quote><paragraph>The name of the compressor used internally in Blosc. It can be any of the supported by Blosc (‘blosclz’, ‘lz4’, ‘lz4hc’, ‘snappy’, ‘zlib’, ‘zstd’ and maybe others too). The default is ‘blosclz’.</paragraph></block_quote></field_body></field><field classes="field-even"><field_name>Returns</field_name><field_body><paragraph><strong>out</strong> : str / bytes</paragraph><block_quote><paragraph>The packed array in form of a Python str / bytes object.</paragraph></block_quote></field_body></field><field classes="field-odd"><field_name>Raises</field_name><field_body><paragraph><strong>TypeError</strong></paragraph><block_quote><paragraph>If array does not quack like a numpy ndarray.</paragraph></block_quote><paragraph><strong>ValueError</strong></paragraph><block_quote><definition_list classes="simple"><definition_list_item><term>If array.itemsize * array.size is larger than the maximum allowed</term><definition><paragraph>buffer size.</paragraph></definition></definition_list_item></definition_list><paragraph>If typesize is not within the allowed range. If clevel is not within the allowed range. If cname is not within the supported compressors.</paragraph></block_quote></field_body></field></field_list><rubric>Examples</rubric><doctest_block classes="doctest" xml:space="preserve">>>> import numpy >>> a = numpy.arange(1e6) >>> parray = blosc.pack_array(a) >>> len(parray) < a.size*a.itemsize True</doctest_block></desc_content> SphinxTranslator.dispatch_departure calling depart_desc for <desc desctype="function" domain="py" noindex="False" objtype="function"><desc_signature class="" first="False" fullname="pack_array" ids="blosc.pack_array" module="blosc" names="blosc.pack_array"><desc_addname xml:space="preserve">blosc.</desc_addname><desc_name xml:space="preserve">pack_array</desc_name><desc_parameterlist xml:space="preserve"><desc_parameter xml:space="preserve">array[, clevel=9, shuffle=blosc.SHUFFLE, cname='blosclz']]</desc_parameter></desc_parameterlist></desc_signature><desc_content><paragraph>Pack (compress) a NumPy array.</paragraph><field_list><field classes="field-odd"><field_name>Parameters</field_name><field_body><paragraph><strong>array</strong> : ndarray</paragraph><block_quote><paragraph>The NumPy array to be packed.</paragraph></block_quote><paragraph><strong>clevel</strong> : int (optional)</paragraph><block_quote><paragraph>The compression level from 0 (no compression) to 9 (maximum compression). The default is 9.</paragraph></block_quote><paragraph><strong>shuffle</strong> : int (optional)</paragraph><block_quote><paragraph>The shuffle filter to be activated. Allowed values are blosc.NOSHUFFLE, blosc.SHUFFLE and blosc.BITSHUFFLE. The default is blosc.SHUFFLE.</paragraph></block_quote><paragraph><strong>cname</strong> : string (optional)</paragraph><block_quote><paragraph>The name of the compressor used internally in Blosc. It can be any of the supported by Blosc (‘blosclz’, ‘lz4’, ‘lz4hc’, ‘snappy’, ‘zlib’, ‘zstd’ and maybe others too). The default is ‘blosclz’.</paragraph></block_quote></field_body></field><field classes="field-even"><field_name>Returns</field_name><field_body><paragraph><strong>out</strong> : str / bytes</paragraph><block_quote><paragraph>The packed array in form of a Python str / bytes object.</paragraph></block_quote></field_body></field><field classes="field-odd"><field_name>Raises</field_name><field_body><paragraph><strong>TypeError</strong></paragraph><block_quote><paragraph>If array does not quack like a numpy ndarray.</paragraph></block_quote><paragraph><strong>ValueError</strong></paragraph><block_quote><definition_list classes="simple"><definition_list_item><term>If array.itemsize * array.size is larger than the maximum allowed</term><definition><paragraph>buffer size.</paragraph></definition></definition_list_item></definition_list><paragraph>If typesize is not within the allowed range. If clevel is not within the allowed range. If cname is not within the supported compressors.</paragraph></block_quote></field_body></field></field_list><rubric>Examples</rubric><doctest_block classes="doctest" xml:space="preserve">>>> import numpy >>> a = numpy.arange(1e6) >>> parray = blosc.pack_array(a) >>> len(parray) < a.size*a.itemsize True</doctest_block></desc_content></desc> SphinxTranslator.dispatch_visit calling visit_index for <index entries="[('single', 'unpack_array() (in module blosc)', 'blosc.unpack_array', '', None)]"/> SphinxTranslator.dispatch_visit calling visit_desc for <desc desctype="function" domain="py" noindex="False" objtype="function"><desc_signature class="" first="False" fullname="unpack_array" ids="blosc.unpack_array" module="blosc" names="blosc.unpack_array"><desc_addname xml:space="preserve">blosc.</desc_addname><desc_name xml:space="preserve">unpack_array</desc_name><desc_parameterlist xml:space="preserve"><desc_parameter xml:space="preserve">packed_array</desc_parameter></desc_parameterlist></desc_signature><desc_content><paragraph>Unpack (decompress) a packed NumPy array.</paragraph><field_list><field><field_name>Parameters</field_name><field_body><paragraph><strong>packed_array</strong> : str / bytes</paragraph><block_quote><paragraph>The packed array to be decompressed.</paragraph></block_quote></field_body></field><field><field_name>Returns</field_name><field_body><paragraph><strong>out</strong> : ndarray</paragraph><block_quote><paragraph>The decompressed data in form of a NumPy array.</paragraph></block_quote></field_body></field><field><field_name>Raises</field_name><field_body><paragraph><strong>TypeError</strong></paragraph><block_quote><paragraph>If packed_array is not of type bytes or string.</paragraph></block_quote></field_body></field></field_list><rubric>Examples</rubric><doctest_block classes="doctest" xml:space="preserve">>>> import numpy >>> a = numpy.arange(1e6) >>> parray = blosc.pack_array(a) >>> len(parray) < a.size*a.itemsize True >>> a2 = blosc.unpack_array(parray) >>> numpy.alltrue(a == a2) True</doctest_block></desc_content></desc> SphinxTranslator.dispatch_visit calling visit_desc_signature for <desc_signature class="" first="False" fullname="unpack_array" ids="blosc.unpack_array" module="blosc" names="blosc.unpack_array"><desc_addname xml:space="preserve">blosc.</desc_addname><desc_name xml:space="preserve">unpack_array</desc_name><desc_parameterlist xml:space="preserve"><desc_parameter xml:space="preserve">packed_array</desc_parameter></desc_parameterlist></desc_signature> SphinxTranslator.dispatch_visit calling visit_desc_addname for <desc_addname xml:space="preserve">blosc.</desc_addname> SphinxTranslator.dispatch_visit calling visit_Text for blosc. SphinxTranslator.dispatch_departure calling depart_Text for blosc. SphinxTranslator.dispatch_departure calling depart_desc_addname for <desc_addname xml:space="preserve">blosc.</desc_addname> SphinxTranslator.dispatch_visit calling visit_desc_name for <desc_name xml:space="preserve">unpack_array</desc_name> SphinxTranslator.dispatch_visit calling visit_Text for unpack_array SphinxTranslator.dispatch_departure calling depart_Text for unpack_array SphinxTranslator.dispatch_departure calling depart_desc_name for <desc_name xml:space="preserve">unpack_array</desc_name> SphinxTranslator.dispatch_visit calling visit_desc_parameterlist for <desc_parameterlist xml:space="preserve"><desc_parameter xml:space="preserve">packed_array</desc_parameter></desc_parameterlist> SphinxTranslator.dispatch_visit calling visit_desc_parameter for <desc_parameter xml:space="preserve">packed_array</desc_parameter> SphinxTranslator.dispatch_visit calling visit_Text for packed_array SphinxTranslator.dispatch_departure calling depart_Text for packed_array SphinxTranslator.dispatch_departure calling depart_desc_parameter for <desc_parameter xml:space="preserve">packed_array</desc_parameter> SphinxTranslator.dispatch_departure calling depart_desc_parameterlist for <desc_parameterlist xml:space="preserve"><desc_parameter xml:space="preserve">packed_array</desc_parameter></desc_parameterlist> SphinxTranslator.dispatch_departure calling depart_desc_signature for <desc_signature class="" first="False" fullname="unpack_array" ids="blosc.unpack_array" module="blosc" names="blosc.unpack_array"><desc_addname xml:space="preserve">blosc.</desc_addname><desc_name xml:space="preserve">unpack_array</desc_name><desc_parameterlist xml:space="preserve"><desc_parameter xml:space="preserve">packed_array</desc_parameter></desc_parameterlist></desc_signature> SphinxTranslator.dispatch_visit calling visit_desc_content for <desc_content><paragraph>Unpack (decompress) a packed NumPy array.</paragraph><field_list><field><field_name>Parameters</field_name><field_body><paragraph><strong>packed_array</strong> : str / bytes</paragraph><block_quote><paragraph>The packed array to be decompressed.</paragraph></block_quote></field_body></field><field><field_name>Returns</field_name><field_body><paragraph><strong>out</strong> : ndarray</paragraph><block_quote><paragraph>The decompressed data in form of a NumPy array.</paragraph></block_quote></field_body></field><field><field_name>Raises</field_name><field_body><paragraph><strong>TypeError</strong></paragraph><block_quote><paragraph>If packed_array is not of type bytes or string.</paragraph></block_quote></field_body></field></field_list><rubric>Examples</rubric><doctest_block classes="doctest" xml:space="preserve">>>> import numpy >>> a = numpy.arange(1e6) >>> parray = blosc.pack_array(a) >>> len(parray) < a.size*a.itemsize True >>> a2 = blosc.unpack_array(parray) >>> numpy.alltrue(a == a2) True</doctest_block></desc_content> SphinxTranslator.dispatch_visit calling visit_paragraph for <paragraph>Unpack (decompress) a packed NumPy array.</paragraph> SphinxTranslator.dispatch_visit calling visit_Text for Unpack (decompress) a packed NumPy array. SphinxTranslator.dispatch_departure calling depart_Text for Unpack (decompress) a packed NumPy array. SphinxTranslator.dispatch_departure calling depart_paragraph for <paragraph>Unpack (decompress) a packed NumPy array.</paragraph> SphinxTranslator.dispatch_visit calling visit_field_list for <field_list><field><field_name>Parameters</field_name><field_body><paragraph><strong>packed_array</strong> : str / bytes</paragraph><block_quote><paragraph>The packed array to be decompressed.</paragraph></block_quote></field_body></field><field><field_name>Returns</field_name><field_body><paragraph><strong>out</strong> : ndarray</paragraph><block_quote><paragraph>The decompressed data in form of a NumPy array.</paragraph></block_quote></field_body></field><field><field_name>Raises</field_name><field_body><paragraph><strong>TypeError</strong></paragraph><block_quote><paragraph>If packed_array is not of type bytes or string.</paragraph></block_quote></field_body></field></field_list> SphinxTranslator.dispatch_visit calling visit_field for <field><field_name>Parameters</field_name><field_body><paragraph><strong>packed_array</strong> : str / bytes</paragraph><block_quote><paragraph>The packed array to be decompressed.</paragraph></block_quote></field_body></field> SphinxTranslator.dispatch_visit calling visit_field_name for <field_name>Parameters</field_name> SphinxTranslator.dispatch_visit calling visit_Text for Parameters SphinxTranslator.dispatch_departure calling depart_Text for Parameters SphinxTranslator.dispatch_departure calling depart_field_name for <field_name>Parameters</field_name> SphinxTranslator.dispatch_visit calling visit_field_body for <field_body><paragraph><strong>packed_array</strong> : str / bytes</paragraph><block_quote><paragraph>The packed array to be decompressed.</paragraph></block_quote></field_body> SphinxTranslator.dispatch_visit calling visit_paragraph for <paragraph><strong>packed_array</strong> : str / bytes</paragraph> SphinxTranslator.dispatch_visit calling visit_strong for <strong>packed_array</strong> SphinxTranslator.dispatch_visit calling visit_Text for packed_array SphinxTranslator.dispatch_departure calling depart_Text for packed_array SphinxTranslator.dispatch_departure calling depart_strong for <strong>packed_array</strong> SphinxTranslator.dispatch_visit calling visit_Text for : str / bytes SphinxTranslator.dispatch_departure calling depart_Text for : str / bytes SphinxTranslator.dispatch_departure calling depart_paragraph for <paragraph><strong>packed_array</strong> : str / bytes</paragraph> SphinxTranslator.dispatch_visit calling visit_block_quote for <block_quote><paragraph>The packed array to be decompressed.</paragraph></block_quote> SphinxTranslator.dispatch_visit calling visit_paragraph for <paragraph>The packed array to be decompressed.</paragraph> SphinxTranslator.dispatch_visit calling visit_Text for The packed array to be decompressed. SphinxTranslator.dispatch_departure calling depart_Text for The packed array to be decompressed. SphinxTranslator.dispatch_departure calling depart_paragraph for <paragraph>The packed array to be decompressed.</paragraph> SphinxTranslator.dispatch_departure calling depart_block_quote for <block_quote><paragraph>The packed array to be decompressed.</paragraph></block_quote> SphinxTranslator.dispatch_departure calling depart_field_body for <field_body><paragraph><strong>packed_array</strong> : str / bytes</paragraph><block_quote><paragraph>The packed array to be decompressed.</paragraph></block_quote></field_body> SphinxTranslator.dispatch_departure calling depart_field for <field classes="field-odd"><field_name>Parameters</field_name><field_body><paragraph><strong>packed_array</strong> : str / bytes</paragraph><block_quote><paragraph>The packed array to be decompressed.</paragraph></block_quote></field_body></field> SphinxTranslator.dispatch_visit calling visit_field for <field><field_name>Returns</field_name><field_body><paragraph><strong>out</strong> : ndarray</paragraph><block_quote><paragraph>The decompressed data in form of a NumPy array.</paragraph></block_quote></field_body></field> SphinxTranslator.dispatch_visit calling visit_field_name for <field_name>Returns</field_name> SphinxTranslator.dispatch_visit calling visit_Text for Returns SphinxTranslator.dispatch_departure calling depart_Text for Returns SphinxTranslator.dispatch_departure calling depart_field_name for <field_name>Returns</field_name> SphinxTranslator.dispatch_visit calling visit_field_body for <field_body><paragraph><strong>out</strong> : ndarray</paragraph><block_quote><paragraph>The decompressed data in form of a NumPy array.</paragraph></block_quote></field_body> SphinxTranslator.dispatch_visit calling visit_paragraph for <paragraph><strong>out</strong> : ndarray</paragraph> SphinxTranslator.dispatch_visit calling visit_strong for <strong>out</strong> SphinxTranslator.dispatch_visit calling visit_Text for out SphinxTranslator.dispatch_departure calling depart_Text for out SphinxTranslator.dispatch_departure calling depart_strong for <strong>out</strong> SphinxTranslator.dispatch_visit calling visit_Text for : ndarray SphinxTranslator.dispatch_departure calling depart_Text for : ndarray SphinxTranslator.dispatch_departure calling depart_paragraph for <paragraph><strong>out</strong> : ndarray</paragraph> SphinxTranslator.dispatch_visit calling visit_block_quote for <block_quote><paragraph>The decompressed data in form of a NumPy array.</paragraph></block_quote> SphinxTranslator.dispatch_visit calling visit_paragraph for <paragraph>The decompressed data in form of a NumPy array.</paragraph> SphinxTranslator.dispatch_visit calling visit_Text for The decompressed data in form of a NumPy array. SphinxTranslator.dispatch_departure calling depart_Text for The decompressed data in form of a NumPy array. SphinxTranslator.dispatch_departure calling depart_paragraph for <paragraph>The decompressed data in form of a NumPy array.</paragraph> SphinxTranslator.dispatch_departure calling depart_block_quote for <block_quote><paragraph>The decompressed data in form of a NumPy array.</paragraph></block_quote> SphinxTranslator.dispatch_departure calling depart_field_body for <field_body><paragraph><strong>out</strong> : ndarray</paragraph><block_quote><paragraph>The decompressed data in form of a NumPy array.</paragraph></block_quote></field_body> SphinxTranslator.dispatch_departure calling depart_field for <field classes="field-even"><field_name>Returns</field_name><field_body><paragraph><strong>out</strong> : ndarray</paragraph><block_quote><paragraph>The decompressed data in form of a NumPy array.</paragraph></block_quote></field_body></field> SphinxTranslator.dispatch_visit calling visit_field for <field><field_name>Raises</field_name><field_body><paragraph><strong>TypeError</strong></paragraph><block_quote><paragraph>If packed_array is not of type bytes or string.</paragraph></block_quote></field_body></field> SphinxTranslator.dispatch_visit calling visit_field_name for <field_name>Raises</field_name> SphinxTranslator.dispatch_visit calling visit_Text for Raises SphinxTranslator.dispatch_departure calling depart_Text for Raises SphinxTranslator.dispatch_departure calling depart_field_name for <field_name>Raises</field_name> SphinxTranslator.dispatch_visit calling visit_field_body for <field_body><paragraph><strong>TypeError</strong></paragraph><block_quote><paragraph>If packed_array is not of type bytes or string.</paragraph></block_quote></field_body> SphinxTranslator.dispatch_visit calling visit_paragraph for <paragraph><strong>TypeError</strong></paragraph> SphinxTranslator.dispatch_visit calling visit_strong for <strong>TypeError</strong> SphinxTranslator.dispatch_visit calling visit_Text for TypeError SphinxTranslator.dispatch_departure calling depart_Text for TypeError SphinxTranslator.dispatch_departure calling depart_strong for <strong>TypeError</strong> SphinxTranslator.dispatch_departure calling depart_paragraph for <paragraph><strong>TypeError</strong></paragraph> SphinxTranslator.dispatch_visit calling visit_block_quote for <block_quote><paragraph>If packed_array is not of type bytes or string.</paragraph></block_quote> SphinxTranslator.dispatch_visit calling visit_paragraph for <paragraph>If packed_array is not of type bytes or string.</paragraph> SphinxTranslator.dispatch_visit calling visit_Text for If packed_array is not of type bytes or string. SphinxTranslator.dispatch_departure calling depart_Text for If packed_array is not of type bytes or string. SphinxTranslator.dispatch_departure calling depart_paragraph for <paragraph>If packed_array is not of type bytes or string.</paragraph> SphinxTranslator.dispatch_departure calling depart_block_quote for <block_quote><paragraph>If packed_array is not of type bytes or string.</paragraph></block_quote> SphinxTranslator.dispatch_departure calling depart_field_body for <field_body><paragraph><strong>TypeError</strong></paragraph><block_quote><paragraph>If packed_array is not of type bytes or string.</paragraph></block_quote></field_body> SphinxTranslator.dispatch_departure calling depart_field for <field classes="field-odd"><field_name>Raises</field_name><field_body><paragraph><strong>TypeError</strong></paragraph><block_quote><paragraph>If packed_array is not of type bytes or string.</paragraph></block_quote></field_body></field> SphinxTranslator.dispatch_departure calling depart_field_list for <field_list><field classes="field-odd"><field_name>Parameters</field_name><field_body><paragraph><strong>packed_array</strong> : str / bytes</paragraph><block_quote><paragraph>The packed array to be decompressed.</paragraph></block_quote></field_body></field><field classes="field-even"><field_name>Returns</field_name><field_body><paragraph><strong>out</strong> : ndarray</paragraph><block_quote><paragraph>The decompressed data in form of a NumPy array.</paragraph></block_quote></field_body></field><field classes="field-odd"><field_name>Raises</field_name><field_body><paragraph><strong>TypeError</strong></paragraph><block_quote><paragraph>If packed_array is not of type bytes or string.</paragraph></block_quote></field_body></field></field_list> SphinxTranslator.dispatch_visit calling visit_rubric for <rubric>Examples</rubric> SphinxTranslator.dispatch_visit calling visit_Text for Examples SphinxTranslator.dispatch_departure calling depart_Text for Examples SphinxTranslator.dispatch_departure calling depart_rubric for <rubric>Examples</rubric> SphinxTranslator.dispatch_visit calling visit_doctest_block for <doctest_block classes="doctest" xml:space="preserve">>>> import numpy >>> a = numpy.arange(1e6) >>> parray = blosc.pack_array(a) >>> len(parray) < a.size*a.itemsize True >>> a2 = blosc.unpack_array(parray) >>> numpy.alltrue(a == a2) True</doctest_block> SphinxTranslator.dispatch_departure calling depart_desc_content for <desc_content><paragraph>Unpack (decompress) a packed NumPy array.</paragraph><field_list><field classes="field-odd"><field_name>Parameters</field_name><field_body><paragraph><strong>packed_array</strong> : str / bytes</paragraph><block_quote><paragraph>The packed array to be decompressed.</paragraph></block_quote></field_body></field><field classes="field-even"><field_name>Returns</field_name><field_body><paragraph><strong>out</strong> : ndarray</paragraph><block_quote><paragraph>The decompressed data in form of a NumPy array.</paragraph></block_quote></field_body></field><field classes="field-odd"><field_name>Raises</field_name><field_body><paragraph><strong>TypeError</strong></paragraph><block_quote><paragraph>If packed_array is not of type bytes or string.</paragraph></block_quote></field_body></field></field_list><rubric>Examples</rubric><doctest_block classes="doctest" xml:space="preserve">>>> import numpy >>> a = numpy.arange(1e6) >>> parray = blosc.pack_array(a) >>> len(parray) < a.size*a.itemsize True >>> a2 = blosc.unpack_array(parray) >>> numpy.alltrue(a == a2) True</doctest_block></desc_content> SphinxTranslator.dispatch_departure calling depart_desc for <desc desctype="function" domain="py" noindex="False" objtype="function"><desc_signature class="" first="False" fullname="unpack_array" ids="blosc.unpack_array" module="blosc" names="blosc.unpack_array"><desc_addname xml:space="preserve">blosc.</desc_addname><desc_name xml:space="preserve">unpack_array</desc_name><desc_parameterlist xml:space="preserve"><desc_parameter xml:space="preserve">packed_array</desc_parameter></desc_parameterlist></desc_signature><desc_content><paragraph>Unpack (decompress) a packed NumPy array.</paragraph><field_list><field classes="field-odd"><field_name>Parameters</field_name><field_body><paragraph><strong>packed_array</strong> : str / bytes</paragraph><block_quote><paragraph>The packed array to be decompressed.</paragraph></block_quote></field_body></field><field classes="field-even"><field_name>Returns</field_name><field_body><paragraph><strong>out</strong> : ndarray</paragraph><block_quote><paragraph>The decompressed data in form of a NumPy array.</paragraph></block_quote></field_body></field><field classes="field-odd"><field_name>Raises</field_name><field_body><paragraph><strong>TypeError</strong></paragraph><block_quote><paragraph>If packed_array is not of type bytes or string.</paragraph></block_quote></field_body></field></field_list><rubric>Examples</rubric><doctest_block classes="doctest" xml:space="preserve">>>> import numpy >>> a = numpy.arange(1e6) >>> parray = blosc.pack_array(a) >>> len(parray) < a.size*a.itemsize True >>> a2 = blosc.unpack_array(parray) >>> numpy.alltrue(a == a2) True</doctest_block></desc_content></desc> SphinxTranslator.dispatch_departure calling depart_section for <section ids="module-blosc public-functions" names="public\ functions"><title>Public functions</title><index entries="[('single', 'blosc (module)', 'module-blosc', '', None)]"/><index entries="[('single', 'compress() (in module blosc)', 'blosc.compress', '', None)]"/><desc desctype="function" domain="py" noindex="False" objtype="function"><desc_signature class="" first="False" fullname="compress" ids="blosc.compress" module="blosc" names="blosc.compress"><desc_addname xml:space="preserve">blosc.</desc_addname><desc_name xml:space="preserve">compress</desc_name><desc_parameterlist xml:space="preserve"><desc_parameter xml:space="preserve">bytesobj[, typesize=8, clevel=9, shuffle=blosc.SHUFFLE, cname='blosclz']]</desc_parameter></desc_parameterlist></desc_signature><desc_content><paragraph>Compress bytesobj, with a given type size.</paragraph><field_list><field classes="field-odd"><field_name>Parameters</field_name><field_body><paragraph><strong>bytesobj</strong> : bytes-like object (supporting the buffer interface)</paragraph><block_quote><paragraph>The data to be compressed.</paragraph></block_quote><paragraph><strong>typesize</strong> : int</paragraph><block_quote><paragraph>The data type size.</paragraph></block_quote><paragraph><strong>clevel</strong> : int (optional)</paragraph><block_quote><paragraph>The compression level from 0 (no compression) to 9 (maximum compression). The default is 9.</paragraph></block_quote><paragraph><strong>shuffle</strong> : int (optional)</paragraph><block_quote><paragraph>The shuffle filter to be activated. Allowed values are blosc.NOSHUFFLE, blosc.SHUFFLE and blosc.BITSHUFFLE. The default is blosc.SHUFFLE.</paragraph></block_quote><paragraph><strong>cname</strong> : string (optional)</paragraph><block_quote><paragraph>The name of the compressor used internally in Blosc. It can be any of the supported by Blosc (‘blosclz’, ‘lz4’, ‘lz4hc’, ‘snappy’, ‘zlib’, ‘zstd’ and maybe others too). The default is ‘blosclz’.</paragraph></block_quote></field_body></field><field classes="field-even"><field_name>Returns</field_name><field_body><paragraph><strong>out</strong> : str / bytes</paragraph><block_quote><paragraph>The compressed data in form of a Python str / bytes object.</paragraph></block_quote></field_body></field><field classes="field-odd"><field_name>Raises</field_name><field_body><paragraph><strong>TypeError</strong></paragraph><block_quote><paragraph>If bytesobj doesn’t support the buffer interface.</paragraph></block_quote><paragraph><strong>ValueError</strong></paragraph><block_quote><paragraph>If bytesobj is too long. If typesize is not within the allowed range. If clevel is not within the allowed range. If cname is not a valid codec.</paragraph></block_quote></field_body></field></field_list><rubric>Examples</rubric><doctest_block classes="doctest" xml:space="preserve">>>> import array >>> a = array.array('i', range(1000*1000)) >>> a_bytesobj = a.tostring() >>> c_bytesobj = blosc.compress(a_bytesobj, typesize=4) >>> len(c_bytesobj) < len(a_bytesobj) True</doctest_block></desc_content></desc><index entries="[('single', 'compress_ptr() (in module blosc)', 'blosc.compress_ptr', '', None)]"/><desc desctype="function" domain="py" noindex="False" objtype="function"><desc_signature class="" first="False" fullname="compress_ptr" ids="blosc.compress_ptr" module="blosc" names="blosc.compress_ptr"><desc_addname xml:space="preserve">blosc.</desc_addname><desc_name xml:space="preserve">compress_ptr</desc_name><desc_parameterlist xml:space="preserve"><desc_parameter xml:space="preserve">address, items[, typesize=8, clevel=9, shuffle=blosc.SHUFFLE, cname='blosclz']]</desc_parameter></desc_parameterlist></desc_signature><desc_content><paragraph>Compress the data at address with given items and typesize.</paragraph><field_list><field classes="field-odd"><field_name>Parameters</field_name><field_body><paragraph><strong>address</strong> : int or long</paragraph><block_quote><paragraph>the pointer to the data to be compressed</paragraph></block_quote><paragraph><strong>items</strong> : int</paragraph><block_quote><paragraph>The number of items (of typesize) to be compressed.</paragraph></block_quote><paragraph><strong>typesize</strong> : int</paragraph><block_quote><paragraph>The data type size.</paragraph></block_quote><paragraph><strong>clevel</strong> : int (optional)</paragraph><block_quote><paragraph>The compression level from 0 (no compression) to 9 (maximum compression). The default is 9.</paragraph></block_quote><paragraph><strong>shuffle</strong> : int (optional)</paragraph><block_quote><paragraph>The shuffle filter to be activated. Allowed values are blosc.NOSHUFFLE, blosc.SHUFFLE and blosc.BITSHUFFLE. The default is blosc.SHUFFLE.</paragraph></block_quote><paragraph><strong>cname</strong> : string (optional)</paragraph><block_quote><paragraph>The name of the compressor used internally in Blosc. It can be any of the supported by Blosc (‘blosclz’, ‘lz4’, ‘lz4hc’, ‘snappy’, ‘zlib’, ‘zstd’ and maybe others too). The default is ‘blosclz’.</paragraph></block_quote></field_body></field><field classes="field-even"><field_name>Returns</field_name><field_body><paragraph><strong>out</strong> : str / bytes</paragraph><block_quote><paragraph>The compressed data in form of a Python str / bytes object.</paragraph></block_quote></field_body></field><field classes="field-odd"><field_name>Raises</field_name><field_body><paragraph><strong>TypeError</strong></paragraph><block_quote><paragraph>If address is not of type int or long.</paragraph></block_quote><paragraph><strong>ValueError</strong></paragraph><block_quote><paragraph>If items * typesize is larger than the maximum allowed buffer size. If typesize is not within the allowed range. If clevel is not within the allowed range. If cname is not within the supported compressors.</paragraph></block_quote></field_body></field></field_list><rubric>Notes</rubric><paragraph>This function can be used anywhere that a memory address is available in Python. For example the Numpy “__array_interface__[‘data’][0]†construct, or when using the ctypes modules.</paragraph><paragraph>Importantly, the user is responsible for making sure that the memory address is valid and that the memory pointed to is contiguous. Passing a non-valid address has a high likelihood of crashing the interpreter by segfault.</paragraph><rubric>Examples</rubric><doctest_block classes="doctest" xml:space="preserve">>>> import numpy >>> items = 7 >>> np_array = numpy.arange(items) >>> c = blosc.compress_ptr(np_array.__array_interface__['data'][0], items, np_array.dtype.itemsize) >>> d = blosc.decompress(c) >>> np_ans = numpy.fromstring(d, dtype=np_array.dtype) >>> (np_array == np_ans).all() True</doctest_block><doctest_block classes="doctest" xml:space="preserve">>>> import ctypes >>> typesize = 8 >>> data = [float(i) for i in range(items)] >>> Array = ctypes.c_double * items >>> a = Array(*data) >>> c = blosc.compress_ptr(ctypes.addressof(a), items, typesize) >>> d = blosc.decompress(c) >>> import struct >>> ans = [struct.unpack('d', d[i:i+typesize])[0] for i in range(0, items*typesize, typesize)] >>> data == ans True</doctest_block></desc_content></desc><index entries="[('single', 'decompress() (in module blosc)', 'blosc.decompress', '', None)]"/><desc desctype="function" domain="py" noindex="False" objtype="function"><desc_signature class="" first="False" fullname="decompress" ids="blosc.decompress" module="blosc" names="blosc.decompress"><desc_addname xml:space="preserve">blosc.</desc_addname><desc_name xml:space="preserve">decompress</desc_name><desc_parameterlist xml:space="preserve"><desc_parameter xml:space="preserve">bytesobj</desc_parameter></desc_parameterlist></desc_signature><desc_content><paragraph>Decompresses a bytesobj compressed object.</paragraph><field_list><field classes="field-odd"><field_name>Parameters</field_name><field_body><paragraph><strong>bytesobj</strong> : str / bytes</paragraph><block_quote><paragraph>The data to be decompressed.</paragraph></block_quote><paragraph><strong>as_bytearray</strong> : bool, optional</paragraph><block_quote><paragraph>If this flag is True then the return type will be a bytearray object instead of a bytesobject.</paragraph></block_quote></field_body></field><field classes="field-even"><field_name>Returns</field_name><field_body><paragraph><strong>out</strong> : str / bytes or bytearray</paragraph><block_quote><paragraph>The decompressed data in form of a Python str / bytes object. If as_bytearray is True then this will be a bytearray object, otherwise this will be a str/ bytes object.</paragraph></block_quote></field_body></field><field classes="field-odd"><field_name>Raises</field_name><field_body><paragraph><strong>TypeError</strong></paragraph><block_quote><paragraph>If bytesobj is not of type bytes or string.</paragraph></block_quote></field_body></field></field_list><rubric>Examples</rubric><doctest_block classes="doctest" xml:space="preserve">>>> import array >>> a = array.array('i', range(1000*1000)) >>> a_bytesobj = a.tostring() >>> c_bytesobj = blosc.compress(a_bytesobj, typesize=4) >>> a_bytesobj2 = blosc.decompress(c_bytesobj) >>> a_bytesobj == a_bytesobj2 True >>> b"" == blosc.decompress(blosc.compress(b"", 1)) True >>> b"1"*7 == blosc.decompress(blosc.compress(b"1"*7, 8)) True >>> type(blosc.decompress(blosc.compress(b"1"*7, 8), ... as_bytearray=True)) is bytearray True</doctest_block></desc_content></desc><index entries="[('single', 'decompress_ptr() (in module blosc)', 'blosc.decompress_ptr', '', None)]"/><desc desctype="function" domain="py" noindex="False" objtype="function"><desc_signature class="" first="False" fullname="decompress_ptr" ids="blosc.decompress_ptr" module="blosc" names="blosc.decompress_ptr"><desc_addname xml:space="preserve">blosc.</desc_addname><desc_name xml:space="preserve">decompress_ptr</desc_name><desc_parameterlist xml:space="preserve"><desc_parameter xml:space="preserve">bytesobj</desc_parameter><desc_parameter xml:space="preserve">address</desc_parameter></desc_parameterlist></desc_signature><desc_content><paragraph>Decompresses a bytesobj compressed object into the memory at address.</paragraph><field_list><field classes="field-odd"><field_name>Parameters</field_name><field_body><paragraph><strong>bytesobj</strong> : str / bytes</paragraph><block_quote><paragraph>The data to be decompressed.</paragraph></block_quote><paragraph><strong>address</strong> : int or long</paragraph><block_quote><paragraph>the pointer to the data to be compressed</paragraph></block_quote></field_body></field><field classes="field-even"><field_name>Returns</field_name><field_body><paragraph><strong>nbytes</strong> : int</paragraph><block_quote><paragraph>the number of bytes written to the buffer</paragraph></block_quote></field_body></field><field classes="field-odd"><field_name>Raises</field_name><field_body><paragraph><strong>TypeError</strong></paragraph><block_quote><paragraph>If bytesobj is not of type bytes or string. If address is not of type int or long.</paragraph></block_quote></field_body></field></field_list><rubric>Notes</rubric><paragraph>This function can be used anywhere that a memory address is available in Python. For example the Numpy “__array_interface__[‘data’][0]†construct, or when using the ctypes modules.</paragraph><paragraph>Importantly, the user is responsible for making sure that the memory address is valid and that the memory pointed to is contiguous and can be written to. Passing a non-valid address has a high likelihood of crashing the interpreter by segfault.</paragraph><rubric>Examples</rubric><doctest_block classes="doctest" xml:space="preserve">>>> import numpy >>> items = 7 >>> np_array = numpy.arange(items) >>> c = blosc.compress_ptr(np_array.__array_interface__['data'][0], items, np_array.dtype.itemsize) >>> np_ans = numpy.empty(items, dtype=np_array.dtype) >>> nbytes = blosc.decompress_ptr(c, np_ans.__array_interface__['data'][0]) >>> (np_array == np_ans).all() True >>> nbytes == items * np_array.dtype.itemsize True</doctest_block><doctest_block classes="doctest" xml:space="preserve">>>> import ctypes >>> typesize = 8 >>> data = [float(i) for i in range(items)] >>> Array = ctypes.c_double * items >>> in_array = Array(*data) >>> c = blosc.compress_ptr(ctypes.addressof(in_array), items, typesize) >>> out_array = ctypes.create_string_buffer(items*typesize) >>> nbytes = blosc.decompress_ptr(c, ctypes.addressof(out_array)) >>> import struct >>> ans = [struct.unpack('d', out_array[i:i+typesize])[0] for i in range(0, items*typesize, typesize)] >>> data == ans True >>> nbytes == items * typesize True</doctest_block></desc_content></desc><index entries="[('single', 'pack_array() (in module blosc)', 'blosc.pack_array', '', None)]"/><desc desctype="function" domain="py" noindex="False" objtype="function"><desc_signature class="" first="False" fullname="pack_array" ids="blosc.pack_array" module="blosc" names="blosc.pack_array"><desc_addname xml:space="preserve">blosc.</desc_addname><desc_name xml:space="preserve">pack_array</desc_name><desc_parameterlist xml:space="preserve"><desc_parameter xml:space="preserve">array[, clevel=9, shuffle=blosc.SHUFFLE, cname='blosclz']]</desc_parameter></desc_parameterlist></desc_signature><desc_content><paragraph>Pack (compress) a NumPy array.</paragraph><field_list><field classes="field-odd"><field_name>Parameters</field_name><field_body><paragraph><strong>array</strong> : ndarray</paragraph><block_quote><paragraph>The NumPy array to be packed.</paragraph></block_quote><paragraph><strong>clevel</strong> : int (optional)</paragraph><block_quote><paragraph>The compression level from 0 (no compression) to 9 (maximum compression). The default is 9.</paragraph></block_quote><paragraph><strong>shuffle</strong> : int (optional)</paragraph><block_quote><paragraph>The shuffle filter to be activated. Allowed values are blosc.NOSHUFFLE, blosc.SHUFFLE and blosc.BITSHUFFLE. The default is blosc.SHUFFLE.</paragraph></block_quote><paragraph><strong>cname</strong> : string (optional)</paragraph><block_quote><paragraph>The name of the compressor used internally in Blosc. It can be any of the supported by Blosc (‘blosclz’, ‘lz4’, ‘lz4hc’, ‘snappy’, ‘zlib’, ‘zstd’ and maybe others too). The default is ‘blosclz’.</paragraph></block_quote></field_body></field><field classes="field-even"><field_name>Returns</field_name><field_body><paragraph><strong>out</strong> : str / bytes</paragraph><block_quote><paragraph>The packed array in form of a Python str / bytes object.</paragraph></block_quote></field_body></field><field classes="field-odd"><field_name>Raises</field_name><field_body><paragraph><strong>TypeError</strong></paragraph><block_quote><paragraph>If array does not quack like a numpy ndarray.</paragraph></block_quote><paragraph><strong>ValueError</strong></paragraph><block_quote><definition_list classes="simple"><definition_list_item><term>If array.itemsize * array.size is larger than the maximum allowed</term><definition><paragraph>buffer size.</paragraph></definition></definition_list_item></definition_list><paragraph>If typesize is not within the allowed range. If clevel is not within the allowed range. If cname is not within the supported compressors.</paragraph></block_quote></field_body></field></field_list><rubric>Examples</rubric><doctest_block classes="doctest" xml:space="preserve">>>> import numpy >>> a = numpy.arange(1e6) >>> parray = blosc.pack_array(a) >>> len(parray) < a.size*a.itemsize True</doctest_block></desc_content></desc><index entries="[('single', 'unpack_array() (in module blosc)', 'blosc.unpack_array', '', None)]"/><desc desctype="function" domain="py" noindex="False" objtype="function"><desc_signature class="" first="False" fullname="unpack_array" ids="blosc.unpack_array" module="blosc" names="blosc.unpack_array"><desc_addname xml:space="preserve">blosc.</desc_addname><desc_name xml:space="preserve">unpack_array</desc_name><desc_parameterlist xml:space="preserve"><desc_parameter xml:space="preserve">packed_array</desc_parameter></desc_parameterlist></desc_signature><desc_content><paragraph>Unpack (decompress) a packed NumPy array.</paragraph><field_list><field classes="field-odd"><field_name>Parameters</field_name><field_body><paragraph><strong>packed_array</strong> : str / bytes</paragraph><block_quote><paragraph>The packed array to be decompressed.</paragraph></block_quote></field_body></field><field classes="field-even"><field_name>Returns</field_name><field_body><paragraph><strong>out</strong> : ndarray</paragraph><block_quote><paragraph>The decompressed data in form of a NumPy array.</paragraph></block_quote></field_body></field><field classes="field-odd"><field_name>Raises</field_name><field_body><paragraph><strong>TypeError</strong></paragraph><block_quote><paragraph>If packed_array is not of type bytes or string.</paragraph></block_quote></field_body></field></field_list><rubric>Examples</rubric><doctest_block classes="doctest" xml:space="preserve">>>> import numpy >>> a = numpy.arange(1e6) >>> parray = blosc.pack_array(a) >>> len(parray) < a.size*a.itemsize True >>> a2 = blosc.unpack_array(parray) >>> numpy.alltrue(a == a2) True</doctest_block></desc_content></desc></section> SphinxTranslator.dispatch_visit calling visit_section for <section ids="module-blosc utilities" names="utilities"><title>Utilities</title><index entries="[('single', 'blosc (module)', 'module-blosc', '', None)]"/><index entries="[('single', 'clib_info() (in module blosc)', 'blosc.clib_info', '', None)]"/><desc desctype="function" domain="py" noindex="False" objtype="function"><desc_signature class="" first="False" fullname="clib_info" ids="blosc.clib_info" module="blosc" names="blosc.clib_info"><desc_addname xml:space="preserve">blosc.</desc_addname><desc_name xml:space="preserve">clib_info</desc_name><desc_parameterlist xml:space="preserve"><desc_parameter xml:space="preserve">cname</desc_parameter></desc_parameterlist></desc_signature><desc_content><paragraph>Return info for compression libraries in C library.</paragraph><field_list><field><field_name>Parameters</field_name><field_body><paragraph><strong>cname</strong> : str</paragraph><block_quote><paragraph>The compressor name.</paragraph></block_quote></field_body></field><field><field_name>Returns</field_name><field_body><paragraph><strong>out</strong> : tuple</paragraph><block_quote><paragraph>The associated library name and version.</paragraph></block_quote></field_body></field></field_list></desc_content></desc><index entries="[('single', 'compressor_list() (in module blosc)', 'blosc.compressor_list', '', None)]"/><desc desctype="function" domain="py" noindex="False" objtype="function"><desc_signature class="" first="False" fullname="compressor_list" ids="blosc.compressor_list" module="blosc" names="blosc.compressor_list"><desc_addname xml:space="preserve">blosc.</desc_addname><desc_name xml:space="preserve">compressor_list</desc_name><desc_parameterlist xml:space="preserve"/></desc_signature><desc_content><paragraph>Returns a list of compressors available in C library.</paragraph><field_list><field><field_name>Parameters</field_name><field_body><paragraph><strong>None</strong></paragraph></field_body></field><field><field_name>Returns</field_name><field_body><paragraph><strong>out</strong> : list</paragraph><block_quote><paragraph>The list of names.</paragraph></block_quote></field_body></field></field_list></desc_content></desc><index entries="[('single', 'detect_number_of_cores() (in module blosc)', 'blosc.detect_number_of_cores', '', None)]"/><desc desctype="function" domain="py" noindex="False" objtype="function"><desc_signature class="" first="False" fullname="detect_number_of_cores" ids="blosc.detect_number_of_cores" module="blosc" names="blosc.detect_number_of_cores"><desc_addname xml:space="preserve">blosc.</desc_addname><desc_name xml:space="preserve">detect_number_of_cores</desc_name><desc_parameterlist xml:space="preserve"/></desc_signature><desc_content><paragraph>Detect the number of cores in this system.</paragraph><field_list><field><field_name>Returns</field_name><field_body><paragraph><strong>out</strong> : int</paragraph><block_quote><paragraph>The number of cores in this system.</paragraph></block_quote></field_body></field></field_list></desc_content></desc><index entries="[('single', 'free_resources() (in module blosc)', 'blosc.free_resources', '', None)]"/><desc desctype="function" domain="py" noindex="False" objtype="function"><desc_signature class="" first="False" fullname="free_resources" ids="blosc.free_resources" module="blosc" names="blosc.free_resources"><desc_addname xml:space="preserve">blosc.</desc_addname><desc_name xml:space="preserve">free_resources</desc_name><desc_parameterlist xml:space="preserve"/></desc_signature><desc_content><paragraph>Free possible memory temporaries and thread resources.</paragraph><field_list><field><field_name>Returns</field_name><field_body><paragraph><strong>out</strong> : None</paragraph></field_body></field></field_list><rubric>Notes</rubric><paragraph>Blosc maintain a pool of threads waiting for work as well as some temporary space. You can use this function to release these resources when you are not going to use Blosc for a long while.</paragraph><rubric>Examples</rubric><doctest_block classes="doctest" xml:space="preserve">>>> blosc.free_resources() >>></doctest_block></desc_content></desc><index entries="[('single', 'get_clib() (in module blosc)', 'blosc.get_clib', '', None)]"/><desc desctype="function" domain="py" noindex="False" objtype="function"><desc_signature class="" first="False" fullname="get_clib" ids="blosc.get_clib" module="blosc" names="blosc.get_clib"><desc_addname xml:space="preserve">blosc.</desc_addname><desc_name xml:space="preserve">get_clib</desc_name><desc_parameterlist xml:space="preserve"><desc_parameter xml:space="preserve">bytesobj</desc_parameter></desc_parameterlist></desc_signature><desc_content><paragraph>Return the name of the compression library for Blosc <literal>bytesobj</literal> buffer.</paragraph><field_list><field><field_name>Parameters</field_name><field_body><paragraph><strong>bytesobj</strong> : str / bytes</paragraph><block_quote><paragraph>The compressed buffer.</paragraph></block_quote></field_body></field><field><field_name>Returns</field_name><field_body><paragraph><strong>out</strong> : str</paragraph><block_quote><paragraph>The name of the compression library.</paragraph></block_quote></field_body></field></field_list></desc_content></desc><index entries="[('single', 'set_blocksize() (in module blosc)', 'blosc.set_blocksize', '', None)]"/><desc desctype="function" domain="py" noindex="False" objtype="function"><desc_signature class="" first="False" fullname="set_blocksize" ids="blosc.set_blocksize" module="blosc" names="blosc.set_blocksize"><desc_addname xml:space="preserve">blosc.</desc_addname><desc_name xml:space="preserve">set_blocksize</desc_name><desc_parameterlist xml:space="preserve"><desc_parameter xml:space="preserve">blocksize</desc_parameter></desc_parameterlist></desc_signature><desc_content><paragraph>Force the use of a specific blocksize. If 0, an automatic blocksize will be used (the default).</paragraph><rubric>Notes</rubric><paragraph>This is a low-level function and is recommened for expert users only.</paragraph><rubric>Examples</rubric><doctest_block classes="doctest" xml:space="preserve">>>> blosc.set_blocksize(512)</doctest_block></desc_content></desc><index entries="[('single', 'set_nthreads() (in module blosc)', 'blosc.set_nthreads', '', None)]"/><desc desctype="function" domain="py" noindex="False" objtype="function"><desc_signature class="" first="False" fullname="set_nthreads" ids="blosc.set_nthreads" module="blosc" names="blosc.set_nthreads"><desc_addname xml:space="preserve">blosc.</desc_addname><desc_name xml:space="preserve">set_nthreads</desc_name><desc_parameterlist xml:space="preserve"><desc_parameter xml:space="preserve">nthreads</desc_parameter></desc_parameterlist></desc_signature><desc_content><paragraph>Set the number of threads to be used during Blosc operation.</paragraph><field_list><field><field_name>Parameters</field_name><field_body><paragraph><strong>nthreads</strong> : int</paragraph><block_quote><paragraph>The number of threads to be used during Blosc operation.</paragraph></block_quote></field_body></field><field><field_name>Returns</field_name><field_body><paragraph><strong>out</strong> : int</paragraph><block_quote><paragraph>The previous number of used threads.</paragraph></block_quote></field_body></field><field><field_name>Raises</field_name><field_body><paragraph><strong>ValueError</strong></paragraph><block_quote><paragraph>If nthreads is larger that the maximum number of threads blosc can use.</paragraph></block_quote></field_body></field></field_list><rubric>Notes</rubric><paragraph>The number of threads for Blosc is the maximum number of cores detected on your machine (via <literal>detect_number_of_cores</literal>). In some cases Blosc gets better results if you set the number of threads to a value slightly below than your number of cores.</paragraph><rubric>Examples</rubric><paragraph>Set the number of threads to 2 and then to 1:</paragraph><doctest_block classes="doctest" xml:space="preserve">>>> oldn = blosc.set_nthreads(2) >>> blosc.set_nthreads(1) 2</doctest_block></desc_content></desc><index entries="[('single', 'set_releasegil() (in module blosc)', 'blosc.set_releasegil', '', None)]"/><desc desctype="function" domain="py" noindex="False" objtype="function"><desc_signature class="" first="False" fullname="set_releasegil" ids="blosc.set_releasegil" module="blosc" names="blosc.set_releasegil"><desc_addname xml:space="preserve">blosc.</desc_addname><desc_name xml:space="preserve">set_releasegil</desc_name><desc_parameterlist xml:space="preserve"><desc_parameter xml:space="preserve">gitstate</desc_parameter></desc_parameterlist></desc_signature><desc_content><paragraph>Sets a boolean on whether to release the Python global inter-lock (GIL) during c-blosc compress and decompress operations or not. This defaults to False.</paragraph><rubric>Notes</rubric><paragraph>Designed to be used with larger chunk sizes and a ThreadPool. There is a small performance penalty with releasing the GIL that will more harshly penalize small block sizes.</paragraph><rubric>Examples</rubric><doctest_block classes="doctest" xml:space="preserve">>>> oldReleaseState = blosc.set_releasegil(True)</doctest_block></desc_content></desc><index entries="[('single', 'print_versions() (in module blosc)', 'blosc.print_versions', '', None)]"/><desc desctype="function" domain="py" noindex="False" objtype="function"><desc_signature class="" first="False" fullname="print_versions" ids="blosc.print_versions" module="blosc" names="blosc.print_versions"><desc_addname xml:space="preserve">blosc.</desc_addname><desc_name xml:space="preserve">print_versions</desc_name><desc_parameterlist xml:space="preserve"/></desc_signature><desc_content><paragraph>Print all the versions of software that python-blosc relies on.</paragraph></desc_content></desc></section> SphinxTranslator.dispatch_visit calling visit_title for <title>Utilities</title> SphinxTranslator.dispatch_visit calling visit_Text for Utilities SphinxTranslator.dispatch_departure calling depart_Text for Utilities SphinxTranslator.dispatch_departure calling depart_title for <title>Utilities</title> SphinxTranslator.dispatch_visit calling visit_index for <index entries="[('single', 'blosc (module)', 'module-blosc', '', None)]"/> SphinxTranslator.dispatch_visit calling visit_index for <index entries="[('single', 'clib_info() (in module blosc)', 'blosc.clib_info', '', None)]"/> SphinxTranslator.dispatch_visit calling visit_desc for <desc desctype="function" domain="py" noindex="False" objtype="function"><desc_signature class="" first="False" fullname="clib_info" ids="blosc.clib_info" module="blosc" names="blosc.clib_info"><desc_addname xml:space="preserve">blosc.</desc_addname><desc_name xml:space="preserve">clib_info</desc_name><desc_parameterlist xml:space="preserve"><desc_parameter xml:space="preserve">cname</desc_parameter></desc_parameterlist></desc_signature><desc_content><paragraph>Return info for compression libraries in C library.</paragraph><field_list><field><field_name>Parameters</field_name><field_body><paragraph><strong>cname</strong> : str</paragraph><block_quote><paragraph>The compressor name.</paragraph></block_quote></field_body></field><field><field_name>Returns</field_name><field_body><paragraph><strong>out</strong> : tuple</paragraph><block_quote><paragraph>The associated library name and version.</paragraph></block_quote></field_body></field></field_list></desc_content></desc> SphinxTranslator.dispatch_visit calling visit_desc_signature for <desc_signature class="" first="False" fullname="clib_info" ids="blosc.clib_info" module="blosc" names="blosc.clib_info"><desc_addname xml:space="preserve">blosc.</desc_addname><desc_name xml:space="preserve">clib_info</desc_name><desc_parameterlist xml:space="preserve"><desc_parameter xml:space="preserve">cname</desc_parameter></desc_parameterlist></desc_signature> SphinxTranslator.dispatch_visit calling visit_desc_addname for <desc_addname xml:space="preserve">blosc.</desc_addname> SphinxTranslator.dispatch_visit calling visit_Text for blosc. SphinxTranslator.dispatch_departure calling depart_Text for blosc. SphinxTranslator.dispatch_departure calling depart_desc_addname for <desc_addname xml:space="preserve">blosc.</desc_addname> SphinxTranslator.dispatch_visit calling visit_desc_name for <desc_name xml:space="preserve">clib_info</desc_name> SphinxTranslator.dispatch_visit calling visit_Text for clib_info SphinxTranslator.dispatch_departure calling depart_Text for clib_info SphinxTranslator.dispatch_departure calling depart_desc_name for <desc_name xml:space="preserve">clib_info</desc_name> SphinxTranslator.dispatch_visit calling visit_desc_parameterlist for <desc_parameterlist xml:space="preserve"><desc_parameter xml:space="preserve">cname</desc_parameter></desc_parameterlist> SphinxTranslator.dispatch_visit calling visit_desc_parameter for <desc_parameter xml:space="preserve">cname</desc_parameter> SphinxTranslator.dispatch_visit calling visit_Text for cname SphinxTranslator.dispatch_departure calling depart_Text for cname SphinxTranslator.dispatch_departure calling depart_desc_parameter for <desc_parameter xml:space="preserve">cname</desc_parameter> SphinxTranslator.dispatch_departure calling depart_desc_parameterlist for <desc_parameterlist xml:space="preserve"><desc_parameter xml:space="preserve">cname</desc_parameter></desc_parameterlist> SphinxTranslator.dispatch_departure calling depart_desc_signature for <desc_signature class="" first="False" fullname="clib_info" ids="blosc.clib_info" module="blosc" names="blosc.clib_info"><desc_addname xml:space="preserve">blosc.</desc_addname><desc_name xml:space="preserve">clib_info</desc_name><desc_parameterlist xml:space="preserve"><desc_parameter xml:space="preserve">cname</desc_parameter></desc_parameterlist></desc_signature> SphinxTranslator.dispatch_visit calling visit_desc_content for <desc_content><paragraph>Return info for compression libraries in C library.</paragraph><field_list><field><field_name>Parameters</field_name><field_body><paragraph><strong>cname</strong> : str</paragraph><block_quote><paragraph>The compressor name.</paragraph></block_quote></field_body></field><field><field_name>Returns</field_name><field_body><paragraph><strong>out</strong> : tuple</paragraph><block_quote><paragraph>The associated library name and version.</paragraph></block_quote></field_body></field></field_list></desc_content> SphinxTranslator.dispatch_visit calling visit_paragraph for <paragraph>Return info for compression libraries in C library.</paragraph> SphinxTranslator.dispatch_visit calling visit_Text for Return info for compression libraries in C library. SphinxTranslator.dispatch_departure calling depart_Text for Return info for compression libraries in C library. SphinxTranslator.dispatch_departure calling depart_paragraph for <paragraph>Return info for compression libraries in C library.</paragraph> SphinxTranslator.dispatch_visit calling visit_field_list for <field_list><field><field_name>Parameters</field_name><field_body><paragraph><strong>cname</strong> : str</paragraph><block_quote><paragraph>The compressor name.</paragraph></block_quote></field_body></field><field><field_name>Returns</field_name><field_body><paragraph><strong>out</strong> : tuple</paragraph><block_quote><paragraph>The associated library name and version.</paragraph></block_quote></field_body></field></field_list> SphinxTranslator.dispatch_visit calling visit_field for <field><field_name>Parameters</field_name><field_body><paragraph><strong>cname</strong> : str</paragraph><block_quote><paragraph>The compressor name.</paragraph></block_quote></field_body></field> SphinxTranslator.dispatch_visit calling visit_field_name for <field_name>Parameters</field_name> SphinxTranslator.dispatch_visit calling visit_Text for Parameters SphinxTranslator.dispatch_departure calling depart_Text for Parameters SphinxTranslator.dispatch_departure calling depart_field_name for <field_name>Parameters</field_name> SphinxTranslator.dispatch_visit calling visit_field_body for <field_body><paragraph><strong>cname</strong> : str</paragraph><block_quote><paragraph>The compressor name.</paragraph></block_quote></field_body> SphinxTranslator.dispatch_visit calling visit_paragraph for <paragraph><strong>cname</strong> : str</paragraph> SphinxTranslator.dispatch_visit calling visit_strong for <strong>cname</strong> SphinxTranslator.dispatch_visit calling visit_Text for cname SphinxTranslator.dispatch_departure calling depart_Text for cname SphinxTranslator.dispatch_departure calling depart_strong for <strong>cname</strong> SphinxTranslator.dispatch_visit calling visit_Text for : str SphinxTranslator.dispatch_departure calling depart_Text for : str SphinxTranslator.dispatch_departure calling depart_paragraph for <paragraph><strong>cname</strong> : str</paragraph> SphinxTranslator.dispatch_visit calling visit_block_quote for <block_quote><paragraph>The compressor name.</paragraph></block_quote> SphinxTranslator.dispatch_visit calling visit_paragraph for <paragraph>The compressor name.</paragraph> SphinxTranslator.dispatch_visit calling visit_Text for The compressor name. SphinxTranslator.dispatch_departure calling depart_Text for The compressor name. SphinxTranslator.dispatch_departure calling depart_paragraph for <paragraph>The compressor name.</paragraph> SphinxTranslator.dispatch_departure calling depart_block_quote for <block_quote><paragraph>The compressor name.</paragraph></block_quote> SphinxTranslator.dispatch_departure calling depart_field_body for <field_body><paragraph><strong>cname</strong> : str</paragraph><block_quote><paragraph>The compressor name.</paragraph></block_quote></field_body> SphinxTranslator.dispatch_departure calling depart_field for <field classes="field-odd"><field_name>Parameters</field_name><field_body><paragraph><strong>cname</strong> : str</paragraph><block_quote><paragraph>The compressor name.</paragraph></block_quote></field_body></field> SphinxTranslator.dispatch_visit calling visit_field for <field><field_name>Returns</field_name><field_body><paragraph><strong>out</strong> : tuple</paragraph><block_quote><paragraph>The associated library name and version.</paragraph></block_quote></field_body></field> SphinxTranslator.dispatch_visit calling visit_field_name for <field_name>Returns</field_name> SphinxTranslator.dispatch_visit calling visit_Text for Returns SphinxTranslator.dispatch_departure calling depart_Text for Returns SphinxTranslator.dispatch_departure calling depart_field_name for <field_name>Returns</field_name> SphinxTranslator.dispatch_visit calling visit_field_body for <field_body><paragraph><strong>out</strong> : tuple</paragraph><block_quote><paragraph>The associated library name and version.</paragraph></block_quote></field_body> SphinxTranslator.dispatch_visit calling visit_paragraph for <paragraph><strong>out</strong> : tuple</paragraph> SphinxTranslator.dispatch_visit calling visit_strong for <strong>out</strong> SphinxTranslator.dispatch_visit calling visit_Text for out SphinxTranslator.dispatch_departure calling depart_Text for out SphinxTranslator.dispatch_departure calling depart_strong for <strong>out</strong> SphinxTranslator.dispatch_visit calling visit_Text for : tuple SphinxTranslator.dispatch_departure calling depart_Text for : tuple SphinxTranslator.dispatch_departure calling depart_paragraph for <paragraph><strong>out</strong> : tuple</paragraph> SphinxTranslator.dispatch_visit calling visit_block_quote for <block_quote><paragraph>The associated library name and version.</paragraph></block_quote> SphinxTranslator.dispatch_visit calling visit_paragraph for <paragraph>The associated library name and version.</paragraph> SphinxTranslator.dispatch_visit calling visit_Text for The associated library name and version. SphinxTranslator.dispatch_departure calling depart_Text for The associated library name and version. SphinxTranslator.dispatch_departure calling depart_paragraph for <paragraph>The associated library name and version.</paragraph> SphinxTranslator.dispatch_departure calling depart_block_quote for <block_quote><paragraph>The associated library name and version.</paragraph></block_quote> SphinxTranslator.dispatch_departure calling depart_field_body for <field_body><paragraph><strong>out</strong> : tuple</paragraph><block_quote><paragraph>The associated library name and version.</paragraph></block_quote></field_body> SphinxTranslator.dispatch_departure calling depart_field for <field classes="field-even"><field_name>Returns</field_name><field_body><paragraph><strong>out</strong> : tuple</paragraph><block_quote><paragraph>The associated library name and version.</paragraph></block_quote></field_body></field> SphinxTranslator.dispatch_departure calling depart_field_list for <field_list><field classes="field-odd"><field_name>Parameters</field_name><field_body><paragraph><strong>cname</strong> : str</paragraph><block_quote><paragraph>The compressor name.</paragraph></block_quote></field_body></field><field classes="field-even"><field_name>Returns</field_name><field_body><paragraph><strong>out</strong> : tuple</paragraph><block_quote><paragraph>The associated library name and version.</paragraph></block_quote></field_body></field></field_list> SphinxTranslator.dispatch_departure calling depart_desc_content for <desc_content><paragraph>Return info for compression libraries in C library.</paragraph><field_list><field classes="field-odd"><field_name>Parameters</field_name><field_body><paragraph><strong>cname</strong> : str</paragraph><block_quote><paragraph>The compressor name.</paragraph></block_quote></field_body></field><field classes="field-even"><field_name>Returns</field_name><field_body><paragraph><strong>out</strong> : tuple</paragraph><block_quote><paragraph>The associated library name and version.</paragraph></block_quote></field_body></field></field_list></desc_content> SphinxTranslator.dispatch_departure calling depart_desc for <desc desctype="function" domain="py" noindex="False" objtype="function"><desc_signature class="" first="False" fullname="clib_info" ids="blosc.clib_info" module="blosc" names="blosc.clib_info"><desc_addname xml:space="preserve">blosc.</desc_addname><desc_name xml:space="preserve">clib_info</desc_name><desc_parameterlist xml:space="preserve"><desc_parameter xml:space="preserve">cname</desc_parameter></desc_parameterlist></desc_signature><desc_content><paragraph>Return info for compression libraries in C library.</paragraph><field_list><field classes="field-odd"><field_name>Parameters</field_name><field_body><paragraph><strong>cname</strong> : str</paragraph><block_quote><paragraph>The compressor name.</paragraph></block_quote></field_body></field><field classes="field-even"><field_name>Returns</field_name><field_body><paragraph><strong>out</strong> : tuple</paragraph><block_quote><paragraph>The associated library name and version.</paragraph></block_quote></field_body></field></field_list></desc_content></desc> SphinxTranslator.dispatch_visit calling visit_index for <index entries="[('single', 'compressor_list() (in module blosc)', 'blosc.compressor_list', '', None)]"/> SphinxTranslator.dispatch_visit calling visit_desc for <desc desctype="function" domain="py" noindex="False" objtype="function"><desc_signature class="" first="False" fullname="compressor_list" ids="blosc.compressor_list" module="blosc" names="blosc.compressor_list"><desc_addname xml:space="preserve">blosc.</desc_addname><desc_name xml:space="preserve">compressor_list</desc_name><desc_parameterlist xml:space="preserve"/></desc_signature><desc_content><paragraph>Returns a list of compressors available in C library.</paragraph><field_list><field><field_name>Parameters</field_name><field_body><paragraph><strong>None</strong></paragraph></field_body></field><field><field_name>Returns</field_name><field_body><paragraph><strong>out</strong> : list</paragraph><block_quote><paragraph>The list of names.</paragraph></block_quote></field_body></field></field_list></desc_content></desc> SphinxTranslator.dispatch_visit calling visit_desc_signature for <desc_signature class="" first="False" fullname="compressor_list" ids="blosc.compressor_list" module="blosc" names="blosc.compressor_list"><desc_addname xml:space="preserve">blosc.</desc_addname><desc_name xml:space="preserve">compressor_list</desc_name><desc_parameterlist xml:space="preserve"/></desc_signature> SphinxTranslator.dispatch_visit calling visit_desc_addname for <desc_addname xml:space="preserve">blosc.</desc_addname> SphinxTranslator.dispatch_visit calling visit_Text for blosc. SphinxTranslator.dispatch_departure calling depart_Text for blosc. SphinxTranslator.dispatch_departure calling depart_desc_addname for <desc_addname xml:space="preserve">blosc.</desc_addname> SphinxTranslator.dispatch_visit calling visit_desc_name for <desc_name xml:space="preserve">compressor_list</desc_name> SphinxTranslator.dispatch_visit calling visit_Text for compressor_list SphinxTranslator.dispatch_departure calling depart_Text for compressor_list SphinxTranslator.dispatch_departure calling depart_desc_name for <desc_name xml:space="preserve">compressor_list</desc_name> SphinxTranslator.dispatch_visit calling visit_desc_parameterlist for <desc_parameterlist xml:space="preserve"/> SphinxTranslator.dispatch_departure calling depart_desc_parameterlist for <desc_parameterlist xml:space="preserve"/> SphinxTranslator.dispatch_departure calling depart_desc_signature for <desc_signature class="" first="False" fullname="compressor_list" ids="blosc.compressor_list" module="blosc" names="blosc.compressor_list"><desc_addname xml:space="preserve">blosc.</desc_addname><desc_name xml:space="preserve">compressor_list</desc_name><desc_parameterlist xml:space="preserve"/></desc_signature> SphinxTranslator.dispatch_visit calling visit_desc_content for <desc_content><paragraph>Returns a list of compressors available in C library.</paragraph><field_list><field><field_name>Parameters</field_name><field_body><paragraph><strong>None</strong></paragraph></field_body></field><field><field_name>Returns</field_name><field_body><paragraph><strong>out</strong> : list</paragraph><block_quote><paragraph>The list of names.</paragraph></block_quote></field_body></field></field_list></desc_content> SphinxTranslator.dispatch_visit calling visit_paragraph for <paragraph>Returns a list of compressors available in C library.</paragraph> SphinxTranslator.dispatch_visit calling visit_Text for Returns a list of compressors available in C library. SphinxTranslator.dispatch_departure calling depart_Text for Returns a list of compressors available in C library. SphinxTranslator.dispatch_departure calling depart_paragraph for <paragraph>Returns a list of compressors available in C library.</paragraph> SphinxTranslator.dispatch_visit calling visit_field_list for <field_list><field><field_name>Parameters</field_name><field_body><paragraph><strong>None</strong></paragraph></field_body></field><field><field_name>Returns</field_name><field_body><paragraph><strong>out</strong> : list</paragraph><block_quote><paragraph>The list of names.</paragraph></block_quote></field_body></field></field_list> SphinxTranslator.dispatch_visit calling visit_field for <field><field_name>Parameters</field_name><field_body><paragraph><strong>None</strong></paragraph></field_body></field> SphinxTranslator.dispatch_visit calling visit_field_name for <field_name>Parameters</field_name> SphinxTranslator.dispatch_visit calling visit_Text for Parameters SphinxTranslator.dispatch_departure calling depart_Text for Parameters SphinxTranslator.dispatch_departure calling depart_field_name for <field_name>Parameters</field_name> SphinxTranslator.dispatch_visit calling visit_field_body for <field_body><paragraph><strong>None</strong></paragraph></field_body> SphinxTranslator.dispatch_visit calling visit_paragraph for <paragraph><strong>None</strong></paragraph> SphinxTranslator.dispatch_visit calling visit_strong for <strong>None</strong> SphinxTranslator.dispatch_visit calling visit_Text for None SphinxTranslator.dispatch_departure calling depart_Text for None SphinxTranslator.dispatch_departure calling depart_strong for <strong>None</strong> SphinxTranslator.dispatch_departure calling depart_paragraph for <paragraph><strong>None</strong></paragraph> SphinxTranslator.dispatch_departure calling depart_field_body for <field_body><paragraph><strong>None</strong></paragraph></field_body> SphinxTranslator.dispatch_departure calling depart_field for <field classes="field-odd"><field_name>Parameters</field_name><field_body><paragraph><strong>None</strong></paragraph></field_body></field> SphinxTranslator.dispatch_visit calling visit_field for <field><field_name>Returns</field_name><field_body><paragraph><strong>out</strong> : list</paragraph><block_quote><paragraph>The list of names.</paragraph></block_quote></field_body></field> SphinxTranslator.dispatch_visit calling visit_field_name for <field_name>Returns</field_name> SphinxTranslator.dispatch_visit calling visit_Text for Returns SphinxTranslator.dispatch_departure calling depart_Text for Returns SphinxTranslator.dispatch_departure calling depart_field_name for <field_name>Returns</field_name> SphinxTranslator.dispatch_visit calling visit_field_body for <field_body><paragraph><strong>out</strong> : list</paragraph><block_quote><paragraph>The list of names.</paragraph></block_quote></field_body> SphinxTranslator.dispatch_visit calling visit_paragraph for <paragraph><strong>out</strong> : list</paragraph> SphinxTranslator.dispatch_visit calling visit_strong for <strong>out</strong> SphinxTranslator.dispatch_visit calling visit_Text for out SphinxTranslator.dispatch_departure calling depart_Text for out SphinxTranslator.dispatch_departure calling depart_strong for <strong>out</strong> SphinxTranslator.dispatch_visit calling visit_Text for : list SphinxTranslator.dispatch_departure calling depart_Text for : list SphinxTranslator.dispatch_departure calling depart_paragraph for <paragraph><strong>out</strong> : list</paragraph> SphinxTranslator.dispatch_visit calling visit_block_quote for <block_quote><paragraph>The list of names.</paragraph></block_quote> SphinxTranslator.dispatch_visit calling visit_paragraph for <paragraph>The list of names.</paragraph> SphinxTranslator.dispatch_visit calling visit_Text for The list of names. SphinxTranslator.dispatch_departure calling depart_Text for The list of names. SphinxTranslator.dispatch_departure calling depart_paragraph for <paragraph>The list of names.</paragraph> SphinxTranslator.dispatch_departure calling depart_block_quote for <block_quote><paragraph>The list of names.</paragraph></block_quote> SphinxTranslator.dispatch_departure calling depart_field_body for <field_body><paragraph><strong>out</strong> : list</paragraph><block_quote><paragraph>The list of names.</paragraph></block_quote></field_body> SphinxTranslator.dispatch_departure calling depart_field for <field classes="field-even"><field_name>Returns</field_name><field_body><paragraph><strong>out</strong> : list</paragraph><block_quote><paragraph>The list of names.</paragraph></block_quote></field_body></field> SphinxTranslator.dispatch_departure calling depart_field_list for <field_list><field classes="field-odd"><field_name>Parameters</field_name><field_body><paragraph><strong>None</strong></paragraph></field_body></field><field classes="field-even"><field_name>Returns</field_name><field_body><paragraph><strong>out</strong> : list</paragraph><block_quote><paragraph>The list of names.</paragraph></block_quote></field_body></field></field_list> SphinxTranslator.dispatch_departure calling depart_desc_content for <desc_content><paragraph>Returns a list of compressors available in C library.</paragraph><field_list><field classes="field-odd"><field_name>Parameters</field_name><field_body><paragraph><strong>None</strong></paragraph></field_body></field><field classes="field-even"><field_name>Returns</field_name><field_body><paragraph><strong>out</strong> : list</paragraph><block_quote><paragraph>The list of names.</paragraph></block_quote></field_body></field></field_list></desc_content> SphinxTranslator.dispatch_departure calling depart_desc for <desc desctype="function" domain="py" noindex="False" objtype="function"><desc_signature class="" first="False" fullname="compressor_list" ids="blosc.compressor_list" module="blosc" names="blosc.compressor_list"><desc_addname xml:space="preserve">blosc.</desc_addname><desc_name xml:space="preserve">compressor_list</desc_name><desc_parameterlist xml:space="preserve"/></desc_signature><desc_content><paragraph>Returns a list of compressors available in C library.</paragraph><field_list><field classes="field-odd"><field_name>Parameters</field_name><field_body><paragraph><strong>None</strong></paragraph></field_body></field><field classes="field-even"><field_name>Returns</field_name><field_body><paragraph><strong>out</strong> : list</paragraph><block_quote><paragraph>The list of names.</paragraph></block_quote></field_body></field></field_list></desc_content></desc> SphinxTranslator.dispatch_visit calling visit_index for <index entries="[('single', 'detect_number_of_cores() (in module blosc)', 'blosc.detect_number_of_cores', '', None)]"/> SphinxTranslator.dispatch_visit calling visit_desc for <desc desctype="function" domain="py" noindex="False" objtype="function"><desc_signature class="" first="False" fullname="detect_number_of_cores" ids="blosc.detect_number_of_cores" module="blosc" names="blosc.detect_number_of_cores"><desc_addname xml:space="preserve">blosc.</desc_addname><desc_name xml:space="preserve">detect_number_of_cores</desc_name><desc_parameterlist xml:space="preserve"/></desc_signature><desc_content><paragraph>Detect the number of cores in this system.</paragraph><field_list><field><field_name>Returns</field_name><field_body><paragraph><strong>out</strong> : int</paragraph><block_quote><paragraph>The number of cores in this system.</paragraph></block_quote></field_body></field></field_list></desc_content></desc> SphinxTranslator.dispatch_visit calling visit_desc_signature for <desc_signature class="" first="False" fullname="detect_number_of_cores" ids="blosc.detect_number_of_cores" module="blosc" names="blosc.detect_number_of_cores"><desc_addname xml:space="preserve">blosc.</desc_addname><desc_name xml:space="preserve">detect_number_of_cores</desc_name><desc_parameterlist xml:space="preserve"/></desc_signature> SphinxTranslator.dispatch_visit calling visit_desc_addname for <desc_addname xml:space="preserve">blosc.</desc_addname> SphinxTranslator.dispatch_visit calling visit_Text for blosc. SphinxTranslator.dispatch_departure calling depart_Text for blosc. SphinxTranslator.dispatch_departure calling depart_desc_addname for <desc_addname xml:space="preserve">blosc.</desc_addname> SphinxTranslator.dispatch_visit calling visit_desc_name for <desc_name xml:space="preserve">detect_number_of_cores</desc_name> SphinxTranslator.dispatch_visit calling visit_Text for detect_number_of_cores SphinxTranslator.dispatch_departure calling depart_Text for detect_number_of_cores SphinxTranslator.dispatch_departure calling depart_desc_name for <desc_name xml:space="preserve">detect_number_of_cores</desc_name> SphinxTranslator.dispatch_visit calling visit_desc_parameterlist for <desc_parameterlist xml:space="preserve"/> SphinxTranslator.dispatch_departure calling depart_desc_parameterlist for <desc_parameterlist xml:space="preserve"/> SphinxTranslator.dispatch_departure calling depart_desc_signature for <desc_signature class="" first="False" fullname="detect_number_of_cores" ids="blosc.detect_number_of_cores" module="blosc" names="blosc.detect_number_of_cores"><desc_addname xml:space="preserve">blosc.</desc_addname><desc_name xml:space="preserve">detect_number_of_cores</desc_name><desc_parameterlist xml:space="preserve"/></desc_signature> SphinxTranslator.dispatch_visit calling visit_desc_content for <desc_content><paragraph>Detect the number of cores in this system.</paragraph><field_list><field><field_name>Returns</field_name><field_body><paragraph><strong>out</strong> : int</paragraph><block_quote><paragraph>The number of cores in this system.</paragraph></block_quote></field_body></field></field_list></desc_content> SphinxTranslator.dispatch_visit calling visit_paragraph for <paragraph>Detect the number of cores in this system.</paragraph> SphinxTranslator.dispatch_visit calling visit_Text for Detect the number of cores in this system. SphinxTranslator.dispatch_departure calling depart_Text for Detect the number of cores in this system. SphinxTranslator.dispatch_departure calling depart_paragraph for <paragraph>Detect the number of cores in this system.</paragraph> SphinxTranslator.dispatch_visit calling visit_field_list for <field_list><field><field_name>Returns</field_name><field_body><paragraph><strong>out</strong> : int</paragraph><block_quote><paragraph>The number of cores in this system.</paragraph></block_quote></field_body></field></field_list> SphinxTranslator.dispatch_visit calling visit_field for <field><field_name>Returns</field_name><field_body><paragraph><strong>out</strong> : int</paragraph><block_quote><paragraph>The number of cores in this system.</paragraph></block_quote></field_body></field> SphinxTranslator.dispatch_visit calling visit_field_name for <field_name>Returns</field_name> SphinxTranslator.dispatch_visit calling visit_Text for Returns SphinxTranslator.dispatch_departure calling depart_Text for Returns SphinxTranslator.dispatch_departure calling depart_field_name for <field_name>Returns</field_name> SphinxTranslator.dispatch_visit calling visit_field_body for <field_body><paragraph><strong>out</strong> : int</paragraph><block_quote><paragraph>The number of cores in this system.</paragraph></block_quote></field_body> SphinxTranslator.dispatch_visit calling visit_paragraph for <paragraph><strong>out</strong> : int</paragraph> SphinxTranslator.dispatch_visit calling visit_strong for <strong>out</strong> SphinxTranslator.dispatch_visit calling visit_Text for out SphinxTranslator.dispatch_departure calling depart_Text for out SphinxTranslator.dispatch_departure calling depart_strong for <strong>out</strong> SphinxTranslator.dispatch_visit calling visit_Text for : int SphinxTranslator.dispatch_departure calling depart_Text for : int SphinxTranslator.dispatch_departure calling depart_paragraph for <paragraph><strong>out</strong> : int</paragraph> SphinxTranslator.dispatch_visit calling visit_block_quote for <block_quote><paragraph>The number of cores in this system.</paragraph></block_quote> SphinxTranslator.dispatch_visit calling visit_paragraph for <paragraph>The number of cores in this system.</paragraph> SphinxTranslator.dispatch_visit calling visit_Text for The number of cores in this system. SphinxTranslator.dispatch_departure calling depart_Text for The number of cores in this system. SphinxTranslator.dispatch_departure calling depart_paragraph for <paragraph>The number of cores in this system.</paragraph> SphinxTranslator.dispatch_departure calling depart_block_quote for <block_quote><paragraph>The number of cores in this system.</paragraph></block_quote> SphinxTranslator.dispatch_departure calling depart_field_body for <field_body><paragraph><strong>out</strong> : int</paragraph><block_quote><paragraph>The number of cores in this system.</paragraph></block_quote></field_body> SphinxTranslator.dispatch_departure calling depart_field for <field classes="field-odd"><field_name>Returns</field_name><field_body><paragraph><strong>out</strong> : int</paragraph><block_quote><paragraph>The number of cores in this system.</paragraph></block_quote></field_body></field> SphinxTranslator.dispatch_departure calling depart_field_list for <field_list><field classes="field-odd"><field_name>Returns</field_name><field_body><paragraph><strong>out</strong> : int</paragraph><block_quote><paragraph>The number of cores in this system.</paragraph></block_quote></field_body></field></field_list> SphinxTranslator.dispatch_departure calling depart_desc_content for <desc_content><paragraph>Detect the number of cores in this system.</paragraph><field_list><field classes="field-odd"><field_name>Returns</field_name><field_body><paragraph><strong>out</strong> : int</paragraph><block_quote><paragraph>The number of cores in this system.</paragraph></block_quote></field_body></field></field_list></desc_content> SphinxTranslator.dispatch_departure calling depart_desc for <desc desctype="function" domain="py" noindex="False" objtype="function"><desc_signature class="" first="False" fullname="detect_number_of_cores" ids="blosc.detect_number_of_cores" module="blosc" names="blosc.detect_number_of_cores"><desc_addname xml:space="preserve">blosc.</desc_addname><desc_name xml:space="preserve">detect_number_of_cores</desc_name><desc_parameterlist xml:space="preserve"/></desc_signature><desc_content><paragraph>Detect the number of cores in this system.</paragraph><field_list><field classes="field-odd"><field_name>Returns</field_name><field_body><paragraph><strong>out</strong> : int</paragraph><block_quote><paragraph>The number of cores in this system.</paragraph></block_quote></field_body></field></field_list></desc_content></desc> SphinxTranslator.dispatch_visit calling visit_index for <index entries="[('single', 'free_resources() (in module blosc)', 'blosc.free_resources', '', None)]"/> SphinxTranslator.dispatch_visit calling visit_desc for <desc desctype="function" domain="py" noindex="False" objtype="function"><desc_signature class="" first="False" fullname="free_resources" ids="blosc.free_resources" module="blosc" names="blosc.free_resources"><desc_addname xml:space="preserve">blosc.</desc_addname><desc_name xml:space="preserve">free_resources</desc_name><desc_parameterlist xml:space="preserve"/></desc_signature><desc_content><paragraph>Free possible memory temporaries and thread resources.</paragraph><field_list><field><field_name>Returns</field_name><field_body><paragraph><strong>out</strong> : None</paragraph></field_body></field></field_list><rubric>Notes</rubric><paragraph>Blosc maintain a pool of threads waiting for work as well as some temporary space. You can use this function to release these resources when you are not going to use Blosc for a long while.</paragraph><rubric>Examples</rubric><doctest_block classes="doctest" xml:space="preserve">>>> blosc.free_resources() >>></doctest_block></desc_content></desc> SphinxTranslator.dispatch_visit calling visit_desc_signature for <desc_signature class="" first="False" fullname="free_resources" ids="blosc.free_resources" module="blosc" names="blosc.free_resources"><desc_addname xml:space="preserve">blosc.</desc_addname><desc_name xml:space="preserve">free_resources</desc_name><desc_parameterlist xml:space="preserve"/></desc_signature> SphinxTranslator.dispatch_visit calling visit_desc_addname for <desc_addname xml:space="preserve">blosc.</desc_addname> SphinxTranslator.dispatch_visit calling visit_Text for blosc. SphinxTranslator.dispatch_departure calling depart_Text for blosc. SphinxTranslator.dispatch_departure calling depart_desc_addname for <desc_addname xml:space="preserve">blosc.</desc_addname> SphinxTranslator.dispatch_visit calling visit_desc_name for <desc_name xml:space="preserve">free_resources</desc_name> SphinxTranslator.dispatch_visit calling visit_Text for free_resources SphinxTranslator.dispatch_departure calling depart_Text for free_resources SphinxTranslator.dispatch_departure calling depart_desc_name for <desc_name xml:space="preserve">free_resources</desc_name> SphinxTranslator.dispatch_visit calling visit_desc_parameterlist for <desc_parameterlist xml:space="preserve"/> SphinxTranslator.dispatch_departure calling depart_desc_parameterlist for <desc_parameterlist xml:space="preserve"/> SphinxTranslator.dispatch_departure calling depart_desc_signature for <desc_signature class="" first="False" fullname="free_resources" ids="blosc.free_resources" module="blosc" names="blosc.free_resources"><desc_addname xml:space="preserve">blosc.</desc_addname><desc_name xml:space="preserve">free_resources</desc_name><desc_parameterlist xml:space="preserve"/></desc_signature> SphinxTranslator.dispatch_visit calling visit_desc_content for <desc_content><paragraph>Free possible memory temporaries and thread resources.</paragraph><field_list><field><field_name>Returns</field_name><field_body><paragraph><strong>out</strong> : None</paragraph></field_body></field></field_list><rubric>Notes</rubric><paragraph>Blosc maintain a pool of threads waiting for work as well as some temporary space. You can use this function to release these resources when you are not going to use Blosc for a long while.</paragraph><rubric>Examples</rubric><doctest_block classes="doctest" xml:space="preserve">>>> blosc.free_resources() >>></doctest_block></desc_content> SphinxTranslator.dispatch_visit calling visit_paragraph for <paragraph>Free possible memory temporaries and thread resources.</paragraph> SphinxTranslator.dispatch_visit calling visit_Text for Free possible memory temporaries and thread resources. SphinxTranslator.dispatch_departure calling depart_Text for Free possible memory temporaries and thread resources. SphinxTranslator.dispatch_departure calling depart_paragraph for <paragraph>Free possible memory temporaries and thread resources.</paragraph> SphinxTranslator.dispatch_visit calling visit_field_list for <field_list><field><field_name>Returns</field_name><field_body><paragraph><strong>out</strong> : None</paragraph></field_body></field></field_list> SphinxTranslator.dispatch_visit calling visit_field for <field><field_name>Returns</field_name><field_body><paragraph><strong>out</strong> : None</paragraph></field_body></field> SphinxTranslator.dispatch_visit calling visit_field_name for <field_name>Returns</field_name> SphinxTranslator.dispatch_visit calling visit_Text for Returns SphinxTranslator.dispatch_departure calling depart_Text for Returns SphinxTranslator.dispatch_departure calling depart_field_name for <field_name>Returns</field_name> SphinxTranslator.dispatch_visit calling visit_field_body for <field_body><paragraph><strong>out</strong> : None</paragraph></field_body> SphinxTranslator.dispatch_visit calling visit_paragraph for <paragraph><strong>out</strong> : None</paragraph> SphinxTranslator.dispatch_visit calling visit_strong for <strong>out</strong> SphinxTranslator.dispatch_visit calling visit_Text for out SphinxTranslator.dispatch_departure calling depart_Text for out SphinxTranslator.dispatch_departure calling depart_strong for <strong>out</strong> SphinxTranslator.dispatch_visit calling visit_Text for : None SphinxTranslator.dispatch_departure calling depart_Text for : None SphinxTranslator.dispatch_departure calling depart_paragraph for <paragraph><strong>out</strong> : None</paragraph> SphinxTranslator.dispatch_departure calling depart_field_body for <field_body><paragraph><strong>out</strong> : None</paragraph></field_body> SphinxTranslator.dispatch_departure calling depart_field for <field classes="field-odd"><field_name>Returns</field_name><field_body><paragraph><strong>out</strong> : None</paragraph></field_body></field> SphinxTranslator.dispatch_departure calling depart_field_list for <field_list><field classes="field-odd"><field_name>Returns</field_name><field_body><paragraph><strong>out</strong> : None</paragraph></field_body></field></field_list> SphinxTranslator.dispatch_visit calling visit_rubric for <rubric>Notes</rubric> SphinxTranslator.dispatch_visit calling visit_Text for Notes SphinxTranslator.dispatch_departure calling depart_Text for Notes SphinxTranslator.dispatch_departure calling depart_rubric for <rubric>Notes</rubric> SphinxTranslator.dispatch_visit calling visit_paragraph for <paragraph>Blosc maintain a pool of threads waiting for work as well as some temporary space. You can use this function to release these resources when you are not going to use Blosc for a long while.</paragraph> SphinxTranslator.dispatch_visit calling visit_Text for Blosc maintain a pool of threads waiting for work as well as some temporary space. You can use this function to release these resources when you are not going to use Blosc for a long while. SphinxTranslator.dispatch_departure calling depart_Text for Blosc maintain a pool of threads waiting for work as well as some temporary space. You can use this function to release these resources when you are not going to use Blosc for a long while. SphinxTranslator.dispatch_departure calling depart_paragraph for <paragraph>Blosc maintain a pool of threads waiting for work as well as some temporary space. You can use this function to release these resources when you are not going to use Blosc for a long while.</paragraph> SphinxTranslator.dispatch_visit calling visit_rubric for <rubric>Examples</rubric> SphinxTranslator.dispatch_visit calling visit_Text for Examples SphinxTranslator.dispatch_departure calling depart_Text for Examples SphinxTranslator.dispatch_departure calling depart_rubric for <rubric>Examples</rubric> SphinxTranslator.dispatch_visit calling visit_doctest_block for <doctest_block classes="doctest" xml:space="preserve">>>> blosc.free_resources() >>></doctest_block> SphinxTranslator.dispatch_departure calling depart_desc_content for <desc_content><paragraph>Free possible memory temporaries and thread resources.</paragraph><field_list><field classes="field-odd"><field_name>Returns</field_name><field_body><paragraph><strong>out</strong> : None</paragraph></field_body></field></field_list><rubric>Notes</rubric><paragraph>Blosc maintain a pool of threads waiting for work as well as some temporary space. You can use this function to release these resources when you are not going to use Blosc for a long while.</paragraph><rubric>Examples</rubric><doctest_block classes="doctest" xml:space="preserve">>>> blosc.free_resources() >>></doctest_block></desc_content> SphinxTranslator.dispatch_departure calling depart_desc for <desc desctype="function" domain="py" noindex="False" objtype="function"><desc_signature class="" first="False" fullname="free_resources" ids="blosc.free_resources" module="blosc" names="blosc.free_resources"><desc_addname xml:space="preserve">blosc.</desc_addname><desc_name xml:space="preserve">free_resources</desc_name><desc_parameterlist xml:space="preserve"/></desc_signature><desc_content><paragraph>Free possible memory temporaries and thread resources.</paragraph><field_list><field classes="field-odd"><field_name>Returns</field_name><field_body><paragraph><strong>out</strong> : None</paragraph></field_body></field></field_list><rubric>Notes</rubric><paragraph>Blosc maintain a pool of threads waiting for work as well as some temporary space. You can use this function to release these resources when you are not going to use Blosc for a long while.</paragraph><rubric>Examples</rubric><doctest_block classes="doctest" xml:space="preserve">>>> blosc.free_resources() >>></doctest_block></desc_content></desc> SphinxTranslator.dispatch_visit calling visit_index for <index entries="[('single', 'get_clib() (in module blosc)', 'blosc.get_clib', '', None)]"/> SphinxTranslator.dispatch_visit calling visit_desc for <desc desctype="function" domain="py" noindex="False" objtype="function"><desc_signature class="" first="False" fullname="get_clib" ids="blosc.get_clib" module="blosc" names="blosc.get_clib"><desc_addname xml:space="preserve">blosc.</desc_addname><desc_name xml:space="preserve">get_clib</desc_name><desc_parameterlist xml:space="preserve"><desc_parameter xml:space="preserve">bytesobj</desc_parameter></desc_parameterlist></desc_signature><desc_content><paragraph>Return the name of the compression library for Blosc <literal>bytesobj</literal> buffer.</paragraph><field_list><field><field_name>Parameters</field_name><field_body><paragraph><strong>bytesobj</strong> : str / bytes</paragraph><block_quote><paragraph>The compressed buffer.</paragraph></block_quote></field_body></field><field><field_name>Returns</field_name><field_body><paragraph><strong>out</strong> : str</paragraph><block_quote><paragraph>The name of the compression library.</paragraph></block_quote></field_body></field></field_list></desc_content></desc> SphinxTranslator.dispatch_visit calling visit_desc_signature for <desc_signature class="" first="False" fullname="get_clib" ids="blosc.get_clib" module="blosc" names="blosc.get_clib"><desc_addname xml:space="preserve">blosc.</desc_addname><desc_name xml:space="preserve">get_clib</desc_name><desc_parameterlist xml:space="preserve"><desc_parameter xml:space="preserve">bytesobj</desc_parameter></desc_parameterlist></desc_signature> SphinxTranslator.dispatch_visit calling visit_desc_addname for <desc_addname xml:space="preserve">blosc.</desc_addname> SphinxTranslator.dispatch_visit calling visit_Text for blosc. SphinxTranslator.dispatch_departure calling depart_Text for blosc. SphinxTranslator.dispatch_departure calling depart_desc_addname for <desc_addname xml:space="preserve">blosc.</desc_addname> SphinxTranslator.dispatch_visit calling visit_desc_name for <desc_name xml:space="preserve">get_clib</desc_name> SphinxTranslator.dispatch_visit calling visit_Text for get_clib SphinxTranslator.dispatch_departure calling depart_Text for get_clib SphinxTranslator.dispatch_departure calling depart_desc_name for <desc_name xml:space="preserve">get_clib</desc_name> SphinxTranslator.dispatch_visit calling visit_desc_parameterlist for <desc_parameterlist xml:space="preserve"><desc_parameter xml:space="preserve">bytesobj</desc_parameter></desc_parameterlist> SphinxTranslator.dispatch_visit calling visit_desc_parameter for <desc_parameter xml:space="preserve">bytesobj</desc_parameter> SphinxTranslator.dispatch_visit calling visit_Text for bytesobj SphinxTranslator.dispatch_departure calling depart_Text for bytesobj SphinxTranslator.dispatch_departure calling depart_desc_parameter for <desc_parameter xml:space="preserve">bytesobj</desc_parameter> SphinxTranslator.dispatch_departure calling depart_desc_parameterlist for <desc_parameterlist xml:space="preserve"><desc_parameter xml:space="preserve">bytesobj</desc_parameter></desc_parameterlist> SphinxTranslator.dispatch_departure calling depart_desc_signature for <desc_signature class="" first="False" fullname="get_clib" ids="blosc.get_clib" module="blosc" names="blosc.get_clib"><desc_addname xml:space="preserve">blosc.</desc_addname><desc_name xml:space="preserve">get_clib</desc_name><desc_parameterlist xml:space="preserve"><desc_parameter xml:space="preserve">bytesobj</desc_parameter></desc_parameterlist></desc_signature> SphinxTranslator.dispatch_visit calling visit_desc_content for <desc_content><paragraph>Return the name of the compression library for Blosc <literal>bytesobj</literal> buffer.</paragraph><field_list><field><field_name>Parameters</field_name><field_body><paragraph><strong>bytesobj</strong> : str / bytes</paragraph><block_quote><paragraph>The compressed buffer.</paragraph></block_quote></field_body></field><field><field_name>Returns</field_name><field_body><paragraph><strong>out</strong> : str</paragraph><block_quote><paragraph>The name of the compression library.</paragraph></block_quote></field_body></field></field_list></desc_content> SphinxTranslator.dispatch_visit calling visit_paragraph for <paragraph>Return the name of the compression library for Blosc <literal>bytesobj</literal> buffer.</paragraph> SphinxTranslator.dispatch_visit calling visit_Text for Return the name of the compression library for Blosc SphinxTranslator.dispatch_departure calling depart_Text for Return the name of the compression library for Blosc SphinxTranslator.dispatch_visit calling visit_literal for <literal>bytesobj</literal> SphinxTranslator.dispatch_visit calling visit_Text for bytesobj SphinxTranslator.dispatch_departure calling depart_Text for bytesobj SphinxTranslator.dispatch_departure calling depart_literal for <literal>bytesobj</literal> SphinxTranslator.dispatch_visit calling visit_Text for buffer. SphinxTranslator.dispatch_departure calling depart_Text for buffer. SphinxTranslator.dispatch_departure calling depart_paragraph for <paragraph>Return the name of the compression library for Blosc <literal>bytesobj</literal> buffer.</paragraph> SphinxTranslator.dispatch_visit calling visit_field_list for <field_list><field><field_name>Parameters</field_name><field_body><paragraph><strong>bytesobj</strong> : str / bytes</paragraph><block_quote><paragraph>The compressed buffer.</paragraph></block_quote></field_body></field><field><field_name>Returns</field_name><field_body><paragraph><strong>out</strong> : str</paragraph><block_quote><paragraph>The name of the compression library.</paragraph></block_quote></field_body></field></field_list> SphinxTranslator.dispatch_visit calling visit_field for <field><field_name>Parameters</field_name><field_body><paragraph><strong>bytesobj</strong> : str / bytes</paragraph><block_quote><paragraph>The compressed buffer.</paragraph></block_quote></field_body></field> SphinxTranslator.dispatch_visit calling visit_field_name for <field_name>Parameters</field_name> SphinxTranslator.dispatch_visit calling visit_Text for Parameters SphinxTranslator.dispatch_departure calling depart_Text for Parameters SphinxTranslator.dispatch_departure calling depart_field_name for <field_name>Parameters</field_name> SphinxTranslator.dispatch_visit calling visit_field_body for <field_body><paragraph><strong>bytesobj</strong> : str / bytes</paragraph><block_quote><paragraph>The compressed buffer.</paragraph></block_quote></field_body> SphinxTranslator.dispatch_visit calling visit_paragraph for <paragraph><strong>bytesobj</strong> : str / bytes</paragraph> SphinxTranslator.dispatch_visit calling visit_strong for <strong>bytesobj</strong> SphinxTranslator.dispatch_visit calling visit_Text for bytesobj SphinxTranslator.dispatch_departure calling depart_Text for bytesobj SphinxTranslator.dispatch_departure calling depart_strong for <strong>bytesobj</strong> SphinxTranslator.dispatch_visit calling visit_Text for : str / bytes SphinxTranslator.dispatch_departure calling depart_Text for : str / bytes SphinxTranslator.dispatch_departure calling depart_paragraph for <paragraph><strong>bytesobj</strong> : str / bytes</paragraph> SphinxTranslator.dispatch_visit calling visit_block_quote for <block_quote><paragraph>The compressed buffer.</paragraph></block_quote> SphinxTranslator.dispatch_visit calling visit_paragraph for <paragraph>The compressed buffer.</paragraph> SphinxTranslator.dispatch_visit calling visit_Text for The compressed buffer. SphinxTranslator.dispatch_departure calling depart_Text for The compressed buffer. SphinxTranslator.dispatch_departure calling depart_paragraph for <paragraph>The compressed buffer.</paragraph> SphinxTranslator.dispatch_departure calling depart_block_quote for <block_quote><paragraph>The compressed buffer.</paragraph></block_quote> SphinxTranslator.dispatch_departure calling depart_field_body for <field_body><paragraph><strong>bytesobj</strong> : str / bytes</paragraph><block_quote><paragraph>The compressed buffer.</paragraph></block_quote></field_body> SphinxTranslator.dispatch_departure calling depart_field for <field classes="field-odd"><field_name>Parameters</field_name><field_body><paragraph><strong>bytesobj</strong> : str / bytes</paragraph><block_quote><paragraph>The compressed buffer.</paragraph></block_quote></field_body></field> SphinxTranslator.dispatch_visit calling visit_field for <field><field_name>Returns</field_name><field_body><paragraph><strong>out</strong> : str</paragraph><block_quote><paragraph>The name of the compression library.</paragraph></block_quote></field_body></field> SphinxTranslator.dispatch_visit calling visit_field_name for <field_name>Returns</field_name> SphinxTranslator.dispatch_visit calling visit_Text for Returns SphinxTranslator.dispatch_departure calling depart_Text for Returns SphinxTranslator.dispatch_departure calling depart_field_name for <field_name>Returns</field_name> SphinxTranslator.dispatch_visit calling visit_field_body for <field_body><paragraph><strong>out</strong> : str</paragraph><block_quote><paragraph>The name of the compression library.</paragraph></block_quote></field_body> SphinxTranslator.dispatch_visit calling visit_paragraph for <paragraph><strong>out</strong> : str</paragraph> SphinxTranslator.dispatch_visit calling visit_strong for <strong>out</strong> SphinxTranslator.dispatch_visit calling visit_Text for out SphinxTranslator.dispatch_departure calling depart_Text for out SphinxTranslator.dispatch_departure calling depart_strong for <strong>out</strong> SphinxTranslator.dispatch_visit calling visit_Text for : str SphinxTranslator.dispatch_departure calling depart_Text for : str SphinxTranslator.dispatch_departure calling depart_paragraph for <paragraph><strong>out</strong> : str</paragraph> SphinxTranslator.dispatch_visit calling visit_block_quote for <block_quote><paragraph>The name of the compression library.</paragraph></block_quote> SphinxTranslator.dispatch_visit calling visit_paragraph for <paragraph>The name of the compression library.</paragraph> SphinxTranslator.dispatch_visit calling visit_Text for The name of the compression library. SphinxTranslator.dispatch_departure calling depart_Text for The name of the compression library. SphinxTranslator.dispatch_departure calling depart_paragraph for <paragraph>The name of the compression library.</paragraph> SphinxTranslator.dispatch_departure calling depart_block_quote for <block_quote><paragraph>The name of the compression library.</paragraph></block_quote> SphinxTranslator.dispatch_departure calling depart_field_body for <field_body><paragraph><strong>out</strong> : str</paragraph><block_quote><paragraph>The name of the compression library.</paragraph></block_quote></field_body> SphinxTranslator.dispatch_departure calling depart_field for <field classes="field-even"><field_name>Returns</field_name><field_body><paragraph><strong>out</strong> : str</paragraph><block_quote><paragraph>The name of the compression library.</paragraph></block_quote></field_body></field> SphinxTranslator.dispatch_departure calling depart_field_list for <field_list><field classes="field-odd"><field_name>Parameters</field_name><field_body><paragraph><strong>bytesobj</strong> : str / bytes</paragraph><block_quote><paragraph>The compressed buffer.</paragraph></block_quote></field_body></field><field classes="field-even"><field_name>Returns</field_name><field_body><paragraph><strong>out</strong> : str</paragraph><block_quote><paragraph>The name of the compression library.</paragraph></block_quote></field_body></field></field_list> SphinxTranslator.dispatch_departure calling depart_desc_content for <desc_content><paragraph>Return the name of the compression library for Blosc <literal>bytesobj</literal> buffer.</paragraph><field_list><field classes="field-odd"><field_name>Parameters</field_name><field_body><paragraph><strong>bytesobj</strong> : str / bytes</paragraph><block_quote><paragraph>The compressed buffer.</paragraph></block_quote></field_body></field><field classes="field-even"><field_name>Returns</field_name><field_body><paragraph><strong>out</strong> : str</paragraph><block_quote><paragraph>The name of the compression library.</paragraph></block_quote></field_body></field></field_list></desc_content> SphinxTranslator.dispatch_departure calling depart_desc for <desc desctype="function" domain="py" noindex="False" objtype="function"><desc_signature class="" first="False" fullname="get_clib" ids="blosc.get_clib" module="blosc" names="blosc.get_clib"><desc_addname xml:space="preserve">blosc.</desc_addname><desc_name xml:space="preserve">get_clib</desc_name><desc_parameterlist xml:space="preserve"><desc_parameter xml:space="preserve">bytesobj</desc_parameter></desc_parameterlist></desc_signature><desc_content><paragraph>Return the name of the compression library for Blosc <literal>bytesobj</literal> buffer.</paragraph><field_list><field classes="field-odd"><field_name>Parameters</field_name><field_body><paragraph><strong>bytesobj</strong> : str / bytes</paragraph><block_quote><paragraph>The compressed buffer.</paragraph></block_quote></field_body></field><field classes="field-even"><field_name>Returns</field_name><field_body><paragraph><strong>out</strong> : str</paragraph><block_quote><paragraph>The name of the compression library.</paragraph></block_quote></field_body></field></field_list></desc_content></desc> SphinxTranslator.dispatch_visit calling visit_index for <index entries="[('single', 'set_blocksize() (in module blosc)', 'blosc.set_blocksize', '', None)]"/> SphinxTranslator.dispatch_visit calling visit_desc for <desc desctype="function" domain="py" noindex="False" objtype="function"><desc_signature class="" first="False" fullname="set_blocksize" ids="blosc.set_blocksize" module="blosc" names="blosc.set_blocksize"><desc_addname xml:space="preserve">blosc.</desc_addname><desc_name xml:space="preserve">set_blocksize</desc_name><desc_parameterlist xml:space="preserve"><desc_parameter xml:space="preserve">blocksize</desc_parameter></desc_parameterlist></desc_signature><desc_content><paragraph>Force the use of a specific blocksize. If 0, an automatic blocksize will be used (the default).</paragraph><rubric>Notes</rubric><paragraph>This is a low-level function and is recommened for expert users only.</paragraph><rubric>Examples</rubric><doctest_block classes="doctest" xml:space="preserve">>>> blosc.set_blocksize(512)</doctest_block></desc_content></desc> SphinxTranslator.dispatch_visit calling visit_desc_signature for <desc_signature class="" first="False" fullname="set_blocksize" ids="blosc.set_blocksize" module="blosc" names="blosc.set_blocksize"><desc_addname xml:space="preserve">blosc.</desc_addname><desc_name xml:space="preserve">set_blocksize</desc_name><desc_parameterlist xml:space="preserve"><desc_parameter xml:space="preserve">blocksize</desc_parameter></desc_parameterlist></desc_signature> SphinxTranslator.dispatch_visit calling visit_desc_addname for <desc_addname xml:space="preserve">blosc.</desc_addname> SphinxTranslator.dispatch_visit calling visit_Text for blosc. SphinxTranslator.dispatch_departure calling depart_Text for blosc. SphinxTranslator.dispatch_departure calling depart_desc_addname for <desc_addname xml:space="preserve">blosc.</desc_addname> SphinxTranslator.dispatch_visit calling visit_desc_name for <desc_name xml:space="preserve">set_blocksize</desc_name> SphinxTranslator.dispatch_visit calling visit_Text for set_blocksize SphinxTranslator.dispatch_departure calling depart_Text for set_blocksize SphinxTranslator.dispatch_departure calling depart_desc_name for <desc_name xml:space="preserve">set_blocksize</desc_name> SphinxTranslator.dispatch_visit calling visit_desc_parameterlist for <desc_parameterlist xml:space="preserve"><desc_parameter xml:space="preserve">blocksize</desc_parameter></desc_parameterlist> SphinxTranslator.dispatch_visit calling visit_desc_parameter for <desc_parameter xml:space="preserve">blocksize</desc_parameter> SphinxTranslator.dispatch_visit calling visit_Text for blocksize SphinxTranslator.dispatch_departure calling depart_Text for blocksize SphinxTranslator.dispatch_departure calling depart_desc_parameter for <desc_parameter xml:space="preserve">blocksize</desc_parameter> SphinxTranslator.dispatch_departure calling depart_desc_parameterlist for <desc_parameterlist xml:space="preserve"><desc_parameter xml:space="preserve">blocksize</desc_parameter></desc_parameterlist> SphinxTranslator.dispatch_departure calling depart_desc_signature for <desc_signature class="" first="False" fullname="set_blocksize" ids="blosc.set_blocksize" module="blosc" names="blosc.set_blocksize"><desc_addname xml:space="preserve">blosc.</desc_addname><desc_name xml:space="preserve">set_blocksize</desc_name><desc_parameterlist xml:space="preserve"><desc_parameter xml:space="preserve">blocksize</desc_parameter></desc_parameterlist></desc_signature> SphinxTranslator.dispatch_visit calling visit_desc_content for <desc_content><paragraph>Force the use of a specific blocksize. If 0, an automatic blocksize will be used (the default).</paragraph><rubric>Notes</rubric><paragraph>This is a low-level function and is recommened for expert users only.</paragraph><rubric>Examples</rubric><doctest_block classes="doctest" xml:space="preserve">>>> blosc.set_blocksize(512)</doctest_block></desc_content> SphinxTranslator.dispatch_visit calling visit_paragraph for <paragraph>Force the use of a specific blocksize. If 0, an automatic blocksize will be used (the default).</paragraph> SphinxTranslator.dispatch_visit calling visit_Text for Force the use of a specific blocksize. If 0, an automatic blocksize will be used (the default). SphinxTranslator.dispatch_departure calling depart_Text for Force the use of a specific blocksize. If 0, an automatic blocksize will be used (the default). SphinxTranslator.dispatch_departure calling depart_paragraph for <paragraph>Force the use of a specific blocksize. If 0, an automatic blocksize will be used (the default).</paragraph> SphinxTranslator.dispatch_visit calling visit_rubric for <rubric>Notes</rubric> SphinxTranslator.dispatch_visit calling visit_Text for Notes SphinxTranslator.dispatch_departure calling depart_Text for Notes SphinxTranslator.dispatch_departure calling depart_rubric for <rubric>Notes</rubric> SphinxTranslator.dispatch_visit calling visit_paragraph for <paragraph>This is a low-level function and is recommened for expert users only.</paragraph> SphinxTranslator.dispatch_visit calling visit_Text for This is a low-level function and is recommened for expert users only. SphinxTranslator.dispatch_departure calling depart_Text for This is a low-level function and is recommened for expert users only. SphinxTranslator.dispatch_departure calling depart_paragraph for <paragraph>This is a low-level function and is recommened for expert users only.</paragraph> SphinxTranslator.dispatch_visit calling visit_rubric for <rubric>Examples</rubric> SphinxTranslator.dispatch_visit calling visit_Text for Examples SphinxTranslator.dispatch_departure calling depart_Text for Examples SphinxTranslator.dispatch_departure calling depart_rubric for <rubric>Examples</rubric> SphinxTranslator.dispatch_visit calling visit_doctest_block for <doctest_block classes="doctest" xml:space="preserve">>>> blosc.set_blocksize(512)</doctest_block> SphinxTranslator.dispatch_departure calling depart_desc_content for <desc_content><paragraph>Force the use of a specific blocksize. If 0, an automatic blocksize will be used (the default).</paragraph><rubric>Notes</rubric><paragraph>This is a low-level function and is recommened for expert users only.</paragraph><rubric>Examples</rubric><doctest_block classes="doctest" xml:space="preserve">>>> blosc.set_blocksize(512)</doctest_block></desc_content> SphinxTranslator.dispatch_departure calling depart_desc for <desc desctype="function" domain="py" noindex="False" objtype="function"><desc_signature class="" first="False" fullname="set_blocksize" ids="blosc.set_blocksize" module="blosc" names="blosc.set_blocksize"><desc_addname xml:space="preserve">blosc.</desc_addname><desc_name xml:space="preserve">set_blocksize</desc_name><desc_parameterlist xml:space="preserve"><desc_parameter xml:space="preserve">blocksize</desc_parameter></desc_parameterlist></desc_signature><desc_content><paragraph>Force the use of a specific blocksize. If 0, an automatic blocksize will be used (the default).</paragraph><rubric>Notes</rubric><paragraph>This is a low-level function and is recommened for expert users only.</paragraph><rubric>Examples</rubric><doctest_block classes="doctest" xml:space="preserve">>>> blosc.set_blocksize(512)</doctest_block></desc_content></desc> SphinxTranslator.dispatch_visit calling visit_index for <index entries="[('single', 'set_nthreads() (in module blosc)', 'blosc.set_nthreads', '', None)]"/> SphinxTranslator.dispatch_visit calling visit_desc for <desc desctype="function" domain="py" noindex="False" objtype="function"><desc_signature class="" first="False" fullname="set_nthreads" ids="blosc.set_nthreads" module="blosc" names="blosc.set_nthreads"><desc_addname xml:space="preserve">blosc.</desc_addname><desc_name xml:space="preserve">set_nthreads</desc_name><desc_parameterlist xml:space="preserve"><desc_parameter xml:space="preserve">nthreads</desc_parameter></desc_parameterlist></desc_signature><desc_content><paragraph>Set the number of threads to be used during Blosc operation.</paragraph><field_list><field><field_name>Parameters</field_name><field_body><paragraph><strong>nthreads</strong> : int</paragraph><block_quote><paragraph>The number of threads to be used during Blosc operation.</paragraph></block_quote></field_body></field><field><field_name>Returns</field_name><field_body><paragraph><strong>out</strong> : int</paragraph><block_quote><paragraph>The previous number of used threads.</paragraph></block_quote></field_body></field><field><field_name>Raises</field_name><field_body><paragraph><strong>ValueError</strong></paragraph><block_quote><paragraph>If nthreads is larger that the maximum number of threads blosc can use.</paragraph></block_quote></field_body></field></field_list><rubric>Notes</rubric><paragraph>The number of threads for Blosc is the maximum number of cores detected on your machine (via <literal>detect_number_of_cores</literal>). In some cases Blosc gets better results if you set the number of threads to a value slightly below than your number of cores.</paragraph><rubric>Examples</rubric><paragraph>Set the number of threads to 2 and then to 1:</paragraph><doctest_block classes="doctest" xml:space="preserve">>>> oldn = blosc.set_nthreads(2) >>> blosc.set_nthreads(1) 2</doctest_block></desc_content></desc> SphinxTranslator.dispatch_visit calling visit_desc_signature for <desc_signature class="" first="False" fullname="set_nthreads" ids="blosc.set_nthreads" module="blosc" names="blosc.set_nthreads"><desc_addname xml:space="preserve">blosc.</desc_addname><desc_name xml:space="preserve">set_nthreads</desc_name><desc_parameterlist xml:space="preserve"><desc_parameter xml:space="preserve">nthreads</desc_parameter></desc_parameterlist></desc_signature> SphinxTranslator.dispatch_visit calling visit_desc_addname for <desc_addname xml:space="preserve">blosc.</desc_addname> SphinxTranslator.dispatch_visit calling visit_Text for blosc. SphinxTranslator.dispatch_departure calling depart_Text for blosc. SphinxTranslator.dispatch_departure calling depart_desc_addname for <desc_addname xml:space="preserve">blosc.</desc_addname> SphinxTranslator.dispatch_visit calling visit_desc_name for <desc_name xml:space="preserve">set_nthreads</desc_name> SphinxTranslator.dispatch_visit calling visit_Text for set_nthreads SphinxTranslator.dispatch_departure calling depart_Text for set_nthreads SphinxTranslator.dispatch_departure calling depart_desc_name for <desc_name xml:space="preserve">set_nthreads</desc_name> SphinxTranslator.dispatch_visit calling visit_desc_parameterlist for <desc_parameterlist xml:space="preserve"><desc_parameter xml:space="preserve">nthreads</desc_parameter></desc_parameterlist> SphinxTranslator.dispatch_visit calling visit_desc_parameter for <desc_parameter xml:space="preserve">nthreads</desc_parameter> SphinxTranslator.dispatch_visit calling visit_Text for nthreads SphinxTranslator.dispatch_departure calling depart_Text for nthreads SphinxTranslator.dispatch_departure calling depart_desc_parameter for <desc_parameter xml:space="preserve">nthreads</desc_parameter> SphinxTranslator.dispatch_departure calling depart_desc_parameterlist for <desc_parameterlist xml:space="preserve"><desc_parameter xml:space="preserve">nthreads</desc_parameter></desc_parameterlist> SphinxTranslator.dispatch_departure calling depart_desc_signature for <desc_signature class="" first="False" fullname="set_nthreads" ids="blosc.set_nthreads" module="blosc" names="blosc.set_nthreads"><desc_addname xml:space="preserve">blosc.</desc_addname><desc_name xml:space="preserve">set_nthreads</desc_name><desc_parameterlist xml:space="preserve"><desc_parameter xml:space="preserve">nthreads</desc_parameter></desc_parameterlist></desc_signature> SphinxTranslator.dispatch_visit calling visit_desc_content for <desc_content><paragraph>Set the number of threads to be used during Blosc operation.</paragraph><field_list><field><field_name>Parameters</field_name><field_body><paragraph><strong>nthreads</strong> : int</paragraph><block_quote><paragraph>The number of threads to be used during Blosc operation.</paragraph></block_quote></field_body></field><field><field_name>Returns</field_name><field_body><paragraph><strong>out</strong> : int</paragraph><block_quote><paragraph>The previous number of used threads.</paragraph></block_quote></field_body></field><field><field_name>Raises</field_name><field_body><paragraph><strong>ValueError</strong></paragraph><block_quote><paragraph>If nthreads is larger that the maximum number of threads blosc can use.</paragraph></block_quote></field_body></field></field_list><rubric>Notes</rubric><paragraph>The number of threads for Blosc is the maximum number of cores detected on your machine (via <literal>detect_number_of_cores</literal>). In some cases Blosc gets better results if you set the number of threads to a value slightly below than your number of cores.</paragraph><rubric>Examples</rubric><paragraph>Set the number of threads to 2 and then to 1:</paragraph><doctest_block classes="doctest" xml:space="preserve">>>> oldn = blosc.set_nthreads(2) >>> blosc.set_nthreads(1) 2</doctest_block></desc_content> SphinxTranslator.dispatch_visit calling visit_paragraph for <paragraph>Set the number of threads to be used during Blosc operation.</paragraph> SphinxTranslator.dispatch_visit calling visit_Text for Set the number of threads to be used during Blosc operation. SphinxTranslator.dispatch_departure calling depart_Text for Set the number of threads to be used during Blosc operation. SphinxTranslator.dispatch_departure calling depart_paragraph for <paragraph>Set the number of threads to be used during Blosc operation.</paragraph> SphinxTranslator.dispatch_visit calling visit_field_list for <field_list><field><field_name>Parameters</field_name><field_body><paragraph><strong>nthreads</strong> : int</paragraph><block_quote><paragraph>The number of threads to be used during Blosc operation.</paragraph></block_quote></field_body></field><field><field_name>Returns</field_name><field_body><paragraph><strong>out</strong> : int</paragraph><block_quote><paragraph>The previous number of used threads.</paragraph></block_quote></field_body></field><field><field_name>Raises</field_name><field_body><paragraph><strong>ValueError</strong></paragraph><block_quote><paragraph>If nthreads is larger that the maximum number of threads blosc can use.</paragraph></block_quote></field_body></field></field_list> SphinxTranslator.dispatch_visit calling visit_field for <field><field_name>Parameters</field_name><field_body><paragraph><strong>nthreads</strong> : int</paragraph><block_quote><paragraph>The number of threads to be used during Blosc operation.</paragraph></block_quote></field_body></field> SphinxTranslator.dispatch_visit calling visit_field_name for <field_name>Parameters</field_name> SphinxTranslator.dispatch_visit calling visit_Text for Parameters SphinxTranslator.dispatch_departure calling depart_Text for Parameters SphinxTranslator.dispatch_departure calling depart_field_name for <field_name>Parameters</field_name> SphinxTranslator.dispatch_visit calling visit_field_body for <field_body><paragraph><strong>nthreads</strong> : int</paragraph><block_quote><paragraph>The number of threads to be used during Blosc operation.</paragraph></block_quote></field_body> SphinxTranslator.dispatch_visit calling visit_paragraph for <paragraph><strong>nthreads</strong> : int</paragraph> SphinxTranslator.dispatch_visit calling visit_strong for <strong>nthreads</strong> SphinxTranslator.dispatch_visit calling visit_Text for nthreads SphinxTranslator.dispatch_departure calling depart_Text for nthreads SphinxTranslator.dispatch_departure calling depart_strong for <strong>nthreads</strong> SphinxTranslator.dispatch_visit calling visit_Text for : int SphinxTranslator.dispatch_departure calling depart_Text for : int SphinxTranslator.dispatch_departure calling depart_paragraph for <paragraph><strong>nthreads</strong> : int</paragraph> SphinxTranslator.dispatch_visit calling visit_block_quote for <block_quote><paragraph>The number of threads to be used during Blosc operation.</paragraph></block_quote> SphinxTranslator.dispatch_visit calling visit_paragraph for <paragraph>The number of threads to be used during Blosc operation.</paragraph> SphinxTranslator.dispatch_visit calling visit_Text for The number of threads to be used during Blosc operation. SphinxTranslator.dispatch_departure calling depart_Text for The number of threads to be used during Blosc operation. SphinxTranslator.dispatch_departure calling depart_paragraph for <paragraph>The number of threads to be used during Blosc operation.</paragraph> SphinxTranslator.dispatch_departure calling depart_block_quote for <block_quote><paragraph>The number of threads to be used during Blosc operation.</paragraph></block_quote> SphinxTranslator.dispatch_departure calling depart_field_body for <field_body><paragraph><strong>nthreads</strong> : int</paragraph><block_quote><paragraph>The number of threads to be used during Blosc operation.</paragraph></block_quote></field_body> SphinxTranslator.dispatch_departure calling depart_field for <field classes="field-odd"><field_name>Parameters</field_name><field_body><paragraph><strong>nthreads</strong> : int</paragraph><block_quote><paragraph>The number of threads to be used during Blosc operation.</paragraph></block_quote></field_body></field> SphinxTranslator.dispatch_visit calling visit_field for <field><field_name>Returns</field_name><field_body><paragraph><strong>out</strong> : int</paragraph><block_quote><paragraph>The previous number of used threads.</paragraph></block_quote></field_body></field> SphinxTranslator.dispatch_visit calling visit_field_name for <field_name>Returns</field_name> SphinxTranslator.dispatch_visit calling visit_Text for Returns SphinxTranslator.dispatch_departure calling depart_Text for Returns SphinxTranslator.dispatch_departure calling depart_field_name for <field_name>Returns</field_name> SphinxTranslator.dispatch_visit calling visit_field_body for <field_body><paragraph><strong>out</strong> : int</paragraph><block_quote><paragraph>The previous number of used threads.</paragraph></block_quote></field_body> SphinxTranslator.dispatch_visit calling visit_paragraph for <paragraph><strong>out</strong> : int</paragraph> SphinxTranslator.dispatch_visit calling visit_strong for <strong>out</strong> SphinxTranslator.dispatch_visit calling visit_Text for out SphinxTranslator.dispatch_departure calling depart_Text for out SphinxTranslator.dispatch_departure calling depart_strong for <strong>out</strong> SphinxTranslator.dispatch_visit calling visit_Text for : int SphinxTranslator.dispatch_departure calling depart_Text for : int SphinxTranslator.dispatch_departure calling depart_paragraph for <paragraph><strong>out</strong> : int</paragraph> SphinxTranslator.dispatch_visit calling visit_block_quote for <block_quote><paragraph>The previous number of used threads.</paragraph></block_quote> SphinxTranslator.dispatch_visit calling visit_paragraph for <paragraph>The previous number of used threads.</paragraph> SphinxTranslator.dispatch_visit calling visit_Text for The previous number of used threads. SphinxTranslator.dispatch_departure calling depart_Text for The previous number of used threads. SphinxTranslator.dispatch_departure calling depart_paragraph for <paragraph>The previous number of used threads.</paragraph> SphinxTranslator.dispatch_departure calling depart_block_quote for <block_quote><paragraph>The previous number of used threads.</paragraph></block_quote> SphinxTranslator.dispatch_departure calling depart_field_body for <field_body><paragraph><strong>out</strong> : int</paragraph><block_quote><paragraph>The previous number of used threads.</paragraph></block_quote></field_body> SphinxTranslator.dispatch_departure calling depart_field for <field classes="field-even"><field_name>Returns</field_name><field_body><paragraph><strong>out</strong> : int</paragraph><block_quote><paragraph>The previous number of used threads.</paragraph></block_quote></field_body></field> SphinxTranslator.dispatch_visit calling visit_field for <field><field_name>Raises</field_name><field_body><paragraph><strong>ValueError</strong></paragraph><block_quote><paragraph>If nthreads is larger that the maximum number of threads blosc can use.</paragraph></block_quote></field_body></field> SphinxTranslator.dispatch_visit calling visit_field_name for <field_name>Raises</field_name> SphinxTranslator.dispatch_visit calling visit_Text for Raises SphinxTranslator.dispatch_departure calling depart_Text for Raises SphinxTranslator.dispatch_departure calling depart_field_name for <field_name>Raises</field_name> SphinxTranslator.dispatch_visit calling visit_field_body for <field_body><paragraph><strong>ValueError</strong></paragraph><block_quote><paragraph>If nthreads is larger that the maximum number of threads blosc can use.</paragraph></block_quote></field_body> SphinxTranslator.dispatch_visit calling visit_paragraph for <paragraph><strong>ValueError</strong></paragraph> SphinxTranslator.dispatch_visit calling visit_strong for <strong>ValueError</strong> SphinxTranslator.dispatch_visit calling visit_Text for ValueError SphinxTranslator.dispatch_departure calling depart_Text for ValueError SphinxTranslator.dispatch_departure calling depart_strong for <strong>ValueError</strong> SphinxTranslator.dispatch_departure calling depart_paragraph for <paragraph><strong>ValueError</strong></paragraph> SphinxTranslator.dispatch_visit calling visit_block_quote for <block_quote><paragraph>If nthreads is larger that the maximum number of threads blosc can use.</paragraph></block_quote> SphinxTranslator.dispatch_visit calling visit_paragraph for <paragraph>If nthreads is larger that the maximum number of threads blosc can use.</paragraph> SphinxTranslator.dispatch_visit calling visit_Text for If nthreads is larger that the maximum number of threads blosc can use. SphinxTranslator.dispatch_departure calling depart_Text for If nthreads is larger that the maximum number of threads blosc can use. SphinxTranslator.dispatch_departure calling depart_paragraph for <paragraph>If nthreads is larger that the maximum number of threads blosc can use.</paragraph> SphinxTranslator.dispatch_departure calling depart_block_quote for <block_quote><paragraph>If nthreads is larger that the maximum number of threads blosc can use.</paragraph></block_quote> SphinxTranslator.dispatch_departure calling depart_field_body for <field_body><paragraph><strong>ValueError</strong></paragraph><block_quote><paragraph>If nthreads is larger that the maximum number of threads blosc can use.</paragraph></block_quote></field_body> SphinxTranslator.dispatch_departure calling depart_field for <field classes="field-odd"><field_name>Raises</field_name><field_body><paragraph><strong>ValueError</strong></paragraph><block_quote><paragraph>If nthreads is larger that the maximum number of threads blosc can use.</paragraph></block_quote></field_body></field> SphinxTranslator.dispatch_departure calling depart_field_list for <field_list><field classes="field-odd"><field_name>Parameters</field_name><field_body><paragraph><strong>nthreads</strong> : int</paragraph><block_quote><paragraph>The number of threads to be used during Blosc operation.</paragraph></block_quote></field_body></field><field classes="field-even"><field_name>Returns</field_name><field_body><paragraph><strong>out</strong> : int</paragraph><block_quote><paragraph>The previous number of used threads.</paragraph></block_quote></field_body></field><field classes="field-odd"><field_name>Raises</field_name><field_body><paragraph><strong>ValueError</strong></paragraph><block_quote><paragraph>If nthreads is larger that the maximum number of threads blosc can use.</paragraph></block_quote></field_body></field></field_list> SphinxTranslator.dispatch_visit calling visit_rubric for <rubric>Notes</rubric> SphinxTranslator.dispatch_visit calling visit_Text for Notes SphinxTranslator.dispatch_departure calling depart_Text for Notes SphinxTranslator.dispatch_departure calling depart_rubric for <rubric>Notes</rubric> SphinxTranslator.dispatch_visit calling visit_paragraph for <paragraph>The number of threads for Blosc is the maximum number of cores detected on your machine (via <literal>detect_number_of_cores</literal>). In some cases Blosc gets better results if you set the number of threads to a value slightly below than your number of cores.</paragraph> SphinxTranslator.dispatch_visit calling visit_Text for The number of threads for Blosc is the maximum number of cores detected on your machine (via SphinxTranslator.dispatch_departure calling depart_Text for The number of threads for Blosc is the maximum number of cores detected on your machine (via SphinxTranslator.dispatch_visit calling visit_literal for <literal>detect_number_of_cores</literal> SphinxTranslator.dispatch_visit calling visit_Text for detect_number_of_cores SphinxTranslator.dispatch_departure calling depart_Text for detect_number_of_cores SphinxTranslator.dispatch_departure calling depart_literal for <literal>detect_number_of_cores</literal> SphinxTranslator.dispatch_visit calling visit_Text for ). In some cases Blosc gets better results if you set the number of threads to a value slightly below than your number of cores. SphinxTranslator.dispatch_departure calling depart_Text for ). In some cases Blosc gets better results if you set the number of threads to a value slightly below than your number of cores. SphinxTranslator.dispatch_departure calling depart_paragraph for <paragraph>The number of threads for Blosc is the maximum number of cores detected on your machine (via <literal>detect_number_of_cores</literal>). In some cases Blosc gets better results if you set the number of threads to a value slightly below than your number of cores.</paragraph> SphinxTranslator.dispatch_visit calling visit_rubric for <rubric>Examples</rubric> SphinxTranslator.dispatch_visit calling visit_Text for Examples SphinxTranslator.dispatch_departure calling depart_Text for Examples SphinxTranslator.dispatch_departure calling depart_rubric for <rubric>Examples</rubric> SphinxTranslator.dispatch_visit calling visit_paragraph for <paragraph>Set the number of threads to 2 and then to 1:</paragraph> SphinxTranslator.dispatch_visit calling visit_Text for Set the number of threads to 2 and then to 1: SphinxTranslator.dispatch_departure calling depart_Text for Set the number of threads to 2 and then to 1: SphinxTranslator.dispatch_departure calling depart_paragraph for <paragraph>Set the number of threads to 2 and then to 1:</paragraph> SphinxTranslator.dispatch_visit calling visit_doctest_block for <doctest_block classes="doctest" xml:space="preserve">>>> oldn = blosc.set_nthreads(2) >>> blosc.set_nthreads(1) 2</doctest_block> SphinxTranslator.dispatch_departure calling depart_desc_content for <desc_content><paragraph>Set the number of threads to be used during Blosc operation.</paragraph><field_list><field classes="field-odd"><field_name>Parameters</field_name><field_body><paragraph><strong>nthreads</strong> : int</paragraph><block_quote><paragraph>The number of threads to be used during Blosc operation.</paragraph></block_quote></field_body></field><field classes="field-even"><field_name>Returns</field_name><field_body><paragraph><strong>out</strong> : int</paragraph><block_quote><paragraph>The previous number of used threads.</paragraph></block_quote></field_body></field><field classes="field-odd"><field_name>Raises</field_name><field_body><paragraph><strong>ValueError</strong></paragraph><block_quote><paragraph>If nthreads is larger that the maximum number of threads blosc can use.</paragraph></block_quote></field_body></field></field_list><rubric>Notes</rubric><paragraph>The number of threads for Blosc is the maximum number of cores detected on your machine (via <literal>detect_number_of_cores</literal>). In some cases Blosc gets better results if you set the number of threads to a value slightly below than your number of cores.</paragraph><rubric>Examples</rubric><paragraph>Set the number of threads to 2 and then to 1:</paragraph><doctest_block classes="doctest" xml:space="preserve">>>> oldn = blosc.set_nthreads(2) >>> blosc.set_nthreads(1) 2</doctest_block></desc_content> SphinxTranslator.dispatch_departure calling depart_desc for <desc desctype="function" domain="py" noindex="False" objtype="function"><desc_signature class="" first="False" fullname="set_nthreads" ids="blosc.set_nthreads" module="blosc" names="blosc.set_nthreads"><desc_addname xml:space="preserve">blosc.</desc_addname><desc_name xml:space="preserve">set_nthreads</desc_name><desc_parameterlist xml:space="preserve"><desc_parameter xml:space="preserve">nthreads</desc_parameter></desc_parameterlist></desc_signature><desc_content><paragraph>Set the number of threads to be used during Blosc operation.</paragraph><field_list><field classes="field-odd"><field_name>Parameters</field_name><field_body><paragraph><strong>nthreads</strong> : int</paragraph><block_quote><paragraph>The number of threads to be used during Blosc operation.</paragraph></block_quote></field_body></field><field classes="field-even"><field_name>Returns</field_name><field_body><paragraph><strong>out</strong> : int</paragraph><block_quote><paragraph>The previous number of used threads.</paragraph></block_quote></field_body></field><field classes="field-odd"><field_name>Raises</field_name><field_body><paragraph><strong>ValueError</strong></paragraph><block_quote><paragraph>If nthreads is larger that the maximum number of threads blosc can use.</paragraph></block_quote></field_body></field></field_list><rubric>Notes</rubric><paragraph>The number of threads for Blosc is the maximum number of cores detected on your machine (via <literal>detect_number_of_cores</literal>). In some cases Blosc gets better results if you set the number of threads to a value slightly below than your number of cores.</paragraph><rubric>Examples</rubric><paragraph>Set the number of threads to 2 and then to 1:</paragraph><doctest_block classes="doctest" xml:space="preserve">>>> oldn = blosc.set_nthreads(2) >>> blosc.set_nthreads(1) 2</doctest_block></desc_content></desc> SphinxTranslator.dispatch_visit calling visit_index for <index entries="[('single', 'set_releasegil() (in module blosc)', 'blosc.set_releasegil', '', None)]"/> SphinxTranslator.dispatch_visit calling visit_desc for <desc desctype="function" domain="py" noindex="False" objtype="function"><desc_signature class="" first="False" fullname="set_releasegil" ids="blosc.set_releasegil" module="blosc" names="blosc.set_releasegil"><desc_addname xml:space="preserve">blosc.</desc_addname><desc_name xml:space="preserve">set_releasegil</desc_name><desc_parameterlist xml:space="preserve"><desc_parameter xml:space="preserve">gitstate</desc_parameter></desc_parameterlist></desc_signature><desc_content><paragraph>Sets a boolean on whether to release the Python global inter-lock (GIL) during c-blosc compress and decompress operations or not. This defaults to False.</paragraph><rubric>Notes</rubric><paragraph>Designed to be used with larger chunk sizes and a ThreadPool. There is a small performance penalty with releasing the GIL that will more harshly penalize small block sizes.</paragraph><rubric>Examples</rubric><doctest_block classes="doctest" xml:space="preserve">>>> oldReleaseState = blosc.set_releasegil(True)</doctest_block></desc_content></desc> SphinxTranslator.dispatch_visit calling visit_desc_signature for <desc_signature class="" first="False" fullname="set_releasegil" ids="blosc.set_releasegil" module="blosc" names="blosc.set_releasegil"><desc_addname xml:space="preserve">blosc.</desc_addname><desc_name xml:space="preserve">set_releasegil</desc_name><desc_parameterlist xml:space="preserve"><desc_parameter xml:space="preserve">gitstate</desc_parameter></desc_parameterlist></desc_signature> SphinxTranslator.dispatch_visit calling visit_desc_addname for <desc_addname xml:space="preserve">blosc.</desc_addname> SphinxTranslator.dispatch_visit calling visit_Text for blosc. SphinxTranslator.dispatch_departure calling depart_Text for blosc. SphinxTranslator.dispatch_departure calling depart_desc_addname for <desc_addname xml:space="preserve">blosc.</desc_addname> SphinxTranslator.dispatch_visit calling visit_desc_name for <desc_name xml:space="preserve">set_releasegil</desc_name> SphinxTranslator.dispatch_visit calling visit_Text for set_releasegil SphinxTranslator.dispatch_departure calling depart_Text for set_releasegil SphinxTranslator.dispatch_departure calling depart_desc_name for <desc_name xml:space="preserve">set_releasegil</desc_name> SphinxTranslator.dispatch_visit calling visit_desc_parameterlist for <desc_parameterlist xml:space="preserve"><desc_parameter xml:space="preserve">gitstate</desc_parameter></desc_parameterlist> SphinxTranslator.dispatch_visit calling visit_desc_parameter for <desc_parameter xml:space="preserve">gitstate</desc_parameter> SphinxTranslator.dispatch_visit calling visit_Text for gitstate SphinxTranslator.dispatch_departure calling depart_Text for gitstate SphinxTranslator.dispatch_departure calling depart_desc_parameter for <desc_parameter xml:space="preserve">gitstate</desc_parameter> SphinxTranslator.dispatch_departure calling depart_desc_parameterlist for <desc_parameterlist xml:space="preserve"><desc_parameter xml:space="preserve">gitstate</desc_parameter></desc_parameterlist> SphinxTranslator.dispatch_departure calling depart_desc_signature for <desc_signature class="" first="False" fullname="set_releasegil" ids="blosc.set_releasegil" module="blosc" names="blosc.set_releasegil"><desc_addname xml:space="preserve">blosc.</desc_addname><desc_name xml:space="preserve">set_releasegil</desc_name><desc_parameterlist xml:space="preserve"><desc_parameter xml:space="preserve">gitstate</desc_parameter></desc_parameterlist></desc_signature> SphinxTranslator.dispatch_visit calling visit_desc_content for <desc_content><paragraph>Sets a boolean on whether to release the Python global inter-lock (GIL) during c-blosc compress and decompress operations or not. This defaults to False.</paragraph><rubric>Notes</rubric><paragraph>Designed to be used with larger chunk sizes and a ThreadPool. There is a small performance penalty with releasing the GIL that will more harshly penalize small block sizes.</paragraph><rubric>Examples</rubric><doctest_block classes="doctest" xml:space="preserve">>>> oldReleaseState = blosc.set_releasegil(True)</doctest_block></desc_content> SphinxTranslator.dispatch_visit calling visit_paragraph for <paragraph>Sets a boolean on whether to release the Python global inter-lock (GIL) during c-blosc compress and decompress operations or not. This defaults to False.</paragraph> SphinxTranslator.dispatch_visit calling visit_Text for Sets a boolean on whether to release the Python global inter-lock (GIL) during c-blosc compress and decompress operations or not. This defaults to False. SphinxTranslator.dispatch_departure calling depart_Text for Sets a boolean on whether to release the Python global inter-lock (GIL) during c-blosc compress and decompress operations or not. This defaults to False. SphinxTranslator.dispatch_departure calling depart_paragraph for <paragraph>Sets a boolean on whether to release the Python global inter-lock (GIL) during c-blosc compress and decompress operations or not. This defaults to False.</paragraph> SphinxTranslator.dispatch_visit calling visit_rubric for <rubric>Notes</rubric> SphinxTranslator.dispatch_visit calling visit_Text for Notes SphinxTranslator.dispatch_departure calling depart_Text for Notes SphinxTranslator.dispatch_departure calling depart_rubric for <rubric>Notes</rubric> SphinxTranslator.dispatch_visit calling visit_paragraph for <paragraph>Designed to be used with larger chunk sizes and a ThreadPool. There is a small performance penalty with releasing the GIL that will more harshly penalize small block sizes.</paragraph> SphinxTranslator.dispatch_visit calling visit_Text for Designed to be used with larger chunk sizes and a ThreadPool. There is a small performance penalty with releasing the GIL that will more harshly penalize small block sizes. SphinxTranslator.dispatch_departure calling depart_Text for Designed to be used with larger chunk sizes and a ThreadPool. There is a small performance penalty with releasing the GIL that will more harshly penalize small block sizes. SphinxTranslator.dispatch_departure calling depart_paragraph for <paragraph>Designed to be used with larger chunk sizes and a ThreadPool. There is a small performance penalty with releasing the GIL that will more harshly penalize small block sizes.</paragraph> SphinxTranslator.dispatch_visit calling visit_rubric for <rubric>Examples</rubric> SphinxTranslator.dispatch_visit calling visit_Text for Examples SphinxTranslator.dispatch_departure calling depart_Text for Examples SphinxTranslator.dispatch_departure calling depart_rubric for <rubric>Examples</rubric> SphinxTranslator.dispatch_visit calling visit_doctest_block for <doctest_block classes="doctest" xml:space="preserve">>>> oldReleaseState = blosc.set_releasegil(True)</doctest_block> SphinxTranslator.dispatch_departure calling depart_desc_content for <desc_content><paragraph>Sets a boolean on whether to release the Python global inter-lock (GIL) during c-blosc compress and decompress operations or not. This defaults to False.</paragraph><rubric>Notes</rubric><paragraph>Designed to be used with larger chunk sizes and a ThreadPool. There is a small performance penalty with releasing the GIL that will more harshly penalize small block sizes.</paragraph><rubric>Examples</rubric><doctest_block classes="doctest" xml:space="preserve">>>> oldReleaseState = blosc.set_releasegil(True)</doctest_block></desc_content> SphinxTranslator.dispatch_departure calling depart_desc for <desc desctype="function" domain="py" noindex="False" objtype="function"><desc_signature class="" first="False" fullname="set_releasegil" ids="blosc.set_releasegil" module="blosc" names="blosc.set_releasegil"><desc_addname xml:space="preserve">blosc.</desc_addname><desc_name xml:space="preserve">set_releasegil</desc_name><desc_parameterlist xml:space="preserve"><desc_parameter xml:space="preserve">gitstate</desc_parameter></desc_parameterlist></desc_signature><desc_content><paragraph>Sets a boolean on whether to release the Python global inter-lock (GIL) during c-blosc compress and decompress operations or not. This defaults to False.</paragraph><rubric>Notes</rubric><paragraph>Designed to be used with larger chunk sizes and a ThreadPool. There is a small performance penalty with releasing the GIL that will more harshly penalize small block sizes.</paragraph><rubric>Examples</rubric><doctest_block classes="doctest" xml:space="preserve">>>> oldReleaseState = blosc.set_releasegil(True)</doctest_block></desc_content></desc> SphinxTranslator.dispatch_visit calling visit_index for <index entries="[('single', 'print_versions() (in module blosc)', 'blosc.print_versions', '', None)]"/> SphinxTranslator.dispatch_visit calling visit_desc for <desc desctype="function" domain="py" noindex="False" objtype="function"><desc_signature class="" first="False" fullname="print_versions" ids="blosc.print_versions" module="blosc" names="blosc.print_versions"><desc_addname xml:space="preserve">blosc.</desc_addname><desc_name xml:space="preserve">print_versions</desc_name><desc_parameterlist xml:space="preserve"/></desc_signature><desc_content><paragraph>Print all the versions of software that python-blosc relies on.</paragraph></desc_content></desc> SphinxTranslator.dispatch_visit calling visit_desc_signature for <desc_signature class="" first="False" fullname="print_versions" ids="blosc.print_versions" module="blosc" names="blosc.print_versions"><desc_addname xml:space="preserve">blosc.</desc_addname><desc_name xml:space="preserve">print_versions</desc_name><desc_parameterlist xml:space="preserve"/></desc_signature> SphinxTranslator.dispatch_visit calling visit_desc_addname for <desc_addname xml:space="preserve">blosc.</desc_addname> SphinxTranslator.dispatch_visit calling visit_Text for blosc. SphinxTranslator.dispatch_departure calling depart_Text for blosc. SphinxTranslator.dispatch_departure calling depart_desc_addname for <desc_addname xml:space="preserve">blosc.</desc_addname> SphinxTranslator.dispatch_visit calling visit_desc_name for <desc_name xml:space="preserve">print_versions</desc_name> SphinxTranslator.dispatch_visit calling visit_Text for print_versions SphinxTranslator.dispatch_departure calling depart_Text for print_versions SphinxTranslator.dispatch_departure calling depart_desc_name for <desc_name xml:space="preserve">print_versions</desc_name> SphinxTranslator.dispatch_visit calling visit_desc_parameterlist for <desc_parameterlist xml:space="preserve"/> SphinxTranslator.dispatch_departure calling depart_desc_parameterlist for <desc_parameterlist xml:space="preserve"/> SphinxTranslator.dispatch_departure calling depart_desc_signature for <desc_signature class="" first="False" fullname="print_versions" ids="blosc.print_versions" module="blosc" names="blosc.print_versions"><desc_addname xml:space="preserve">blosc.</desc_addname><desc_name xml:space="preserve">print_versions</desc_name><desc_parameterlist xml:space="preserve"/></desc_signature> SphinxTranslator.dispatch_visit calling visit_desc_content for <desc_content><paragraph>Print all the versions of software that python-blosc relies on.</paragraph></desc_content> SphinxTranslator.dispatch_visit calling visit_paragraph for <paragraph>Print all the versions of software that python-blosc relies on.</paragraph> SphinxTranslator.dispatch_visit calling visit_Text for Print all the versions of software that python-blosc relies on. SphinxTranslator.dispatch_departure calling depart_Text for Print all the versions of software that python-blosc relies on. SphinxTranslator.dispatch_departure calling depart_paragraph for <paragraph>Print all the versions of software that python-blosc relies on.</paragraph> SphinxTranslator.dispatch_departure calling depart_desc_content for <desc_content><paragraph>Print all the versions of software that python-blosc relies on.</paragraph></desc_content> SphinxTranslator.dispatch_departure calling depart_desc for <desc desctype="function" domain="py" noindex="False" objtype="function"><desc_signature class="" first="False" fullname="print_versions" ids="blosc.print_versions" module="blosc" names="blosc.print_versions"><desc_addname xml:space="preserve">blosc.</desc_addname><desc_name xml:space="preserve">print_versions</desc_name><desc_parameterlist xml:space="preserve"/></desc_signature><desc_content><paragraph>Print all the versions of software that python-blosc relies on.</paragraph></desc_content></desc> SphinxTranslator.dispatch_departure calling depart_section for <section ids="module-blosc utilities" names="utilities"><title>Utilities</title><index entries="[('single', 'blosc (module)', 'module-blosc', '', None)]"/><index entries="[('single', 'clib_info() (in module blosc)', 'blosc.clib_info', '', None)]"/><desc desctype="function" domain="py" noindex="False" objtype="function"><desc_signature class="" first="False" fullname="clib_info" ids="blosc.clib_info" module="blosc" names="blosc.clib_info"><desc_addname xml:space="preserve">blosc.</desc_addname><desc_name xml:space="preserve">clib_info</desc_name><desc_parameterlist xml:space="preserve"><desc_parameter xml:space="preserve">cname</desc_parameter></desc_parameterlist></desc_signature><desc_content><paragraph>Return info for compression libraries in C library.</paragraph><field_list><field classes="field-odd"><field_name>Parameters</field_name><field_body><paragraph><strong>cname</strong> : str</paragraph><block_quote><paragraph>The compressor name.</paragraph></block_quote></field_body></field><field classes="field-even"><field_name>Returns</field_name><field_body><paragraph><strong>out</strong> : tuple</paragraph><block_quote><paragraph>The associated library name and version.</paragraph></block_quote></field_body></field></field_list></desc_content></desc><index entries="[('single', 'compressor_list() (in module blosc)', 'blosc.compressor_list', '', None)]"/><desc desctype="function" domain="py" noindex="False" objtype="function"><desc_signature class="" first="False" fullname="compressor_list" ids="blosc.compressor_list" module="blosc" names="blosc.compressor_list"><desc_addname xml:space="preserve">blosc.</desc_addname><desc_name xml:space="preserve">compressor_list</desc_name><desc_parameterlist xml:space="preserve"/></desc_signature><desc_content><paragraph>Returns a list of compressors available in C library.</paragraph><field_list><field classes="field-odd"><field_name>Parameters</field_name><field_body><paragraph><strong>None</strong></paragraph></field_body></field><field classes="field-even"><field_name>Returns</field_name><field_body><paragraph><strong>out</strong> : list</paragraph><block_quote><paragraph>The list of names.</paragraph></block_quote></field_body></field></field_list></desc_content></desc><index entries="[('single', 'detect_number_of_cores() (in module blosc)', 'blosc.detect_number_of_cores', '', None)]"/><desc desctype="function" domain="py" noindex="False" objtype="function"><desc_signature class="" first="False" fullname="detect_number_of_cores" ids="blosc.detect_number_of_cores" module="blosc" names="blosc.detect_number_of_cores"><desc_addname xml:space="preserve">blosc.</desc_addname><desc_name xml:space="preserve">detect_number_of_cores</desc_name><desc_parameterlist xml:space="preserve"/></desc_signature><desc_content><paragraph>Detect the number of cores in this system.</paragraph><field_list><field classes="field-odd"><field_name>Returns</field_name><field_body><paragraph><strong>out</strong> : int</paragraph><block_quote><paragraph>The number of cores in this system.</paragraph></block_quote></field_body></field></field_list></desc_content></desc><index entries="[('single', 'free_resources() (in module blosc)', 'blosc.free_resources', '', None)]"/><desc desctype="function" domain="py" noindex="False" objtype="function"><desc_signature class="" first="False" fullname="free_resources" ids="blosc.free_resources" module="blosc" names="blosc.free_resources"><desc_addname xml:space="preserve">blosc.</desc_addname><desc_name xml:space="preserve">free_resources</desc_name><desc_parameterlist xml:space="preserve"/></desc_signature><desc_content><paragraph>Free possible memory temporaries and thread resources.</paragraph><field_list><field classes="field-odd"><field_name>Returns</field_name><field_body><paragraph><strong>out</strong> : None</paragraph></field_body></field></field_list><rubric>Notes</rubric><paragraph>Blosc maintain a pool of threads waiting for work as well as some temporary space. You can use this function to release these resources when you are not going to use Blosc for a long while.</paragraph><rubric>Examples</rubric><doctest_block classes="doctest" xml:space="preserve">>>> blosc.free_resources() >>></doctest_block></desc_content></desc><index entries="[('single', 'get_clib() (in module blosc)', 'blosc.get_clib', '', None)]"/><desc desctype="function" domain="py" noindex="False" objtype="function"><desc_signature class="" first="False" fullname="get_clib" ids="blosc.get_clib" module="blosc" names="blosc.get_clib"><desc_addname xml:space="preserve">blosc.</desc_addname><desc_name xml:space="preserve">get_clib</desc_name><desc_parameterlist xml:space="preserve"><desc_parameter xml:space="preserve">bytesobj</desc_parameter></desc_parameterlist></desc_signature><desc_content><paragraph>Return the name of the compression library for Blosc <literal>bytesobj</literal> buffer.</paragraph><field_list><field classes="field-odd"><field_name>Parameters</field_name><field_body><paragraph><strong>bytesobj</strong> : str / bytes</paragraph><block_quote><paragraph>The compressed buffer.</paragraph></block_quote></field_body></field><field classes="field-even"><field_name>Returns</field_name><field_body><paragraph><strong>out</strong> : str</paragraph><block_quote><paragraph>The name of the compression library.</paragraph></block_quote></field_body></field></field_list></desc_content></desc><index entries="[('single', 'set_blocksize() (in module blosc)', 'blosc.set_blocksize', '', None)]"/><desc desctype="function" domain="py" noindex="False" objtype="function"><desc_signature class="" first="False" fullname="set_blocksize" ids="blosc.set_blocksize" module="blosc" names="blosc.set_blocksize"><desc_addname xml:space="preserve">blosc.</desc_addname><desc_name xml:space="preserve">set_blocksize</desc_name><desc_parameterlist xml:space="preserve"><desc_parameter xml:space="preserve">blocksize</desc_parameter></desc_parameterlist></desc_signature><desc_content><paragraph>Force the use of a specific blocksize. If 0, an automatic blocksize will be used (the default).</paragraph><rubric>Notes</rubric><paragraph>This is a low-level function and is recommened for expert users only.</paragraph><rubric>Examples</rubric><doctest_block classes="doctest" xml:space="preserve">>>> blosc.set_blocksize(512)</doctest_block></desc_content></desc><index entries="[('single', 'set_nthreads() (in module blosc)', 'blosc.set_nthreads', '', None)]"/><desc desctype="function" domain="py" noindex="False" objtype="function"><desc_signature class="" first="False" fullname="set_nthreads" ids="blosc.set_nthreads" module="blosc" names="blosc.set_nthreads"><desc_addname xml:space="preserve">blosc.</desc_addname><desc_name xml:space="preserve">set_nthreads</desc_name><desc_parameterlist xml:space="preserve"><desc_parameter xml:space="preserve">nthreads</desc_parameter></desc_parameterlist></desc_signature><desc_content><paragraph>Set the number of threads to be used during Blosc operation.</paragraph><field_list><field classes="field-odd"><field_name>Parameters</field_name><field_body><paragraph><strong>nthreads</strong> : int</paragraph><block_quote><paragraph>The number of threads to be used during Blosc operation.</paragraph></block_quote></field_body></field><field classes="field-even"><field_name>Returns</field_name><field_body><paragraph><strong>out</strong> : int</paragraph><block_quote><paragraph>The previous number of used threads.</paragraph></block_quote></field_body></field><field classes="field-odd"><field_name>Raises</field_name><field_body><paragraph><strong>ValueError</strong></paragraph><block_quote><paragraph>If nthreads is larger that the maximum number of threads blosc can use.</paragraph></block_quote></field_body></field></field_list><rubric>Notes</rubric><paragraph>The number of threads for Blosc is the maximum number of cores detected on your machine (via <literal>detect_number_of_cores</literal>). In some cases Blosc gets better results if you set the number of threads to a value slightly below than your number of cores.</paragraph><rubric>Examples</rubric><paragraph>Set the number of threads to 2 and then to 1:</paragraph><doctest_block classes="doctest" xml:space="preserve">>>> oldn = blosc.set_nthreads(2) >>> blosc.set_nthreads(1) 2</doctest_block></desc_content></desc><index entries="[('single', 'set_releasegil() (in module blosc)', 'blosc.set_releasegil', '', None)]"/><desc desctype="function" domain="py" noindex="False" objtype="function"><desc_signature class="" first="False" fullname="set_releasegil" ids="blosc.set_releasegil" module="blosc" names="blosc.set_releasegil"><desc_addname xml:space="preserve">blosc.</desc_addname><desc_name xml:space="preserve">set_releasegil</desc_name><desc_parameterlist xml:space="preserve"><desc_parameter xml:space="preserve">gitstate</desc_parameter></desc_parameterlist></desc_signature><desc_content><paragraph>Sets a boolean on whether to release the Python global inter-lock (GIL) during c-blosc compress and decompress operations or not. This defaults to False.</paragraph><rubric>Notes</rubric><paragraph>Designed to be used with larger chunk sizes and a ThreadPool. There is a small performance penalty with releasing the GIL that will more harshly penalize small block sizes.</paragraph><rubric>Examples</rubric><doctest_block classes="doctest" xml:space="preserve">>>> oldReleaseState = blosc.set_releasegil(True)</doctest_block></desc_content></desc><index entries="[('single', 'print_versions() (in module blosc)', 'blosc.print_versions', '', None)]"/><desc desctype="function" domain="py" noindex="False" objtype="function"><desc_signature class="" first="False" fullname="print_versions" ids="blosc.print_versions" module="blosc" names="blosc.print_versions"><desc_addname xml:space="preserve">blosc.</desc_addname><desc_name xml:space="preserve">print_versions</desc_name><desc_parameterlist xml:space="preserve"/></desc_signature><desc_content><paragraph>Print all the versions of software that python-blosc relies on.</paragraph></desc_content></desc></section> SphinxTranslator.dispatch_departure calling depart_section for <section ids="library-reference" names="library\ reference"><title>Library Reference</title><section ids="first-level-variables" names="first\ level\ variables"><title>First level variables</title><index entries="[('single', '__version__', '__version__', '', None)]"/><desc desctype="attribute" domain="py" noindex="False" objtype="attribute"><desc_signature class="" first="False" fullname="__version__" ids="__version__" module="True" names="__version__"><desc_name xml:space="preserve">__version__</desc_name></desc_signature><desc_content><paragraph>The version of the blosc package.</paragraph></desc_content></desc><index entries="[('single', 'blosclib_version', 'blosclib_version', '', None)]"/><desc desctype="attribute" domain="py" noindex="False" objtype="attribute"><desc_signature class="" first="False" fullname="blosclib_version" ids="blosclib_version" module="True" names="blosclib_version"><desc_name xml:space="preserve">blosclib_version</desc_name></desc_signature><desc_content><paragraph>The version of the Blosc C library.</paragraph></desc_content></desc><index entries="[('single', 'clib_versions', 'clib_versions', '', None)]"/><desc desctype="attribute" domain="py" noindex="False" objtype="attribute"><desc_signature class="" first="False" fullname="clib_versions" ids="clib_versions" module="True" names="clib_versions"><desc_name xml:space="preserve">clib_versions</desc_name></desc_signature><desc_content><paragraph>A map for the versions of the compression libraries included in C library.</paragraph></desc_content></desc><index entries="[('single', 'cnames', 'cnames', '', None)]"/><desc desctype="attribute" domain="py" noindex="False" objtype="attribute"><desc_signature class="" first="False" fullname="cnames" ids="cnames" module="True" names="cnames"><desc_name xml:space="preserve">cnames</desc_name></desc_signature><desc_content><paragraph>The list of compressors included in C library.</paragraph></desc_content></desc><index entries="[('single', 'cname2clib', 'cname2clib', '', None)]"/><desc desctype="attribute" domain="py" noindex="False" objtype="attribute"><desc_signature class="" first="False" fullname="cname2clib" ids="cname2clib" module="True" names="cname2clib"><desc_name xml:space="preserve">cname2clib</desc_name></desc_signature><desc_content><paragraph>A map between compressor names and its libraries (or formats).</paragraph></desc_content></desc><index entries="[('single', 'ncores', 'ncores', '', None)]"/><desc desctype="attribute" domain="py" noindex="False" objtype="attribute"><desc_signature class="" first="False" fullname="ncores" ids="ncores" module="True" names="ncores"><desc_name xml:space="preserve">ncores</desc_name></desc_signature><desc_content><paragraph>The number of cores detected.</paragraph></desc_content></desc></section><section ids="module-blosc public-functions" names="public\ functions"><title>Public functions</title><index entries="[('single', 'blosc (module)', 'module-blosc', '', None)]"/><index entries="[('single', 'compress() (in module blosc)', 'blosc.compress', '', None)]"/><desc desctype="function" domain="py" noindex="False" objtype="function"><desc_signature class="" first="False" fullname="compress" ids="blosc.compress" module="blosc" names="blosc.compress"><desc_addname xml:space="preserve">blosc.</desc_addname><desc_name xml:space="preserve">compress</desc_name><desc_parameterlist xml:space="preserve"><desc_parameter xml:space="preserve">bytesobj[, typesize=8, clevel=9, shuffle=blosc.SHUFFLE, cname='blosclz']]</desc_parameter></desc_parameterlist></desc_signature><desc_content><paragraph>Compress bytesobj, with a given type size.</paragraph><field_list><field classes="field-odd"><field_name>Parameters</field_name><field_body><paragraph><strong>bytesobj</strong> : bytes-like object (supporting the buffer interface)</paragraph><block_quote><paragraph>The data to be compressed.</paragraph></block_quote><paragraph><strong>typesize</strong> : int</paragraph><block_quote><paragraph>The data type size.</paragraph></block_quote><paragraph><strong>clevel</strong> : int (optional)</paragraph><block_quote><paragraph>The compression level from 0 (no compression) to 9 (maximum compression). The default is 9.</paragraph></block_quote><paragraph><strong>shuffle</strong> : int (optional)</paragraph><block_quote><paragraph>The shuffle filter to be activated. Allowed values are blosc.NOSHUFFLE, blosc.SHUFFLE and blosc.BITSHUFFLE. The default is blosc.SHUFFLE.</paragraph></block_quote><paragraph><strong>cname</strong> : string (optional)</paragraph><block_quote><paragraph>The name of the compressor used internally in Blosc. It can be any of the supported by Blosc (‘blosclz’, ‘lz4’, ‘lz4hc’, ‘snappy’, ‘zlib’, ‘zstd’ and maybe others too). The default is ‘blosclz’.</paragraph></block_quote></field_body></field><field classes="field-even"><field_name>Returns</field_name><field_body><paragraph><strong>out</strong> : str / bytes</paragraph><block_quote><paragraph>The compressed data in form of a Python str / bytes object.</paragraph></block_quote></field_body></field><field classes="field-odd"><field_name>Raises</field_name><field_body><paragraph><strong>TypeError</strong></paragraph><block_quote><paragraph>If bytesobj doesn’t support the buffer interface.</paragraph></block_quote><paragraph><strong>ValueError</strong></paragraph><block_quote><paragraph>If bytesobj is too long. If typesize is not within the allowed range. If clevel is not within the allowed range. If cname is not a valid codec.</paragraph></block_quote></field_body></field></field_list><rubric>Examples</rubric><doctest_block classes="doctest" xml:space="preserve">>>> import array >>> a = array.array('i', range(1000*1000)) >>> a_bytesobj = a.tostring() >>> c_bytesobj = blosc.compress(a_bytesobj, typesize=4) >>> len(c_bytesobj) < len(a_bytesobj) True</doctest_block></desc_content></desc><index entries="[('single', 'compress_ptr() (in module blosc)', 'blosc.compress_ptr', '', None)]"/><desc desctype="function" domain="py" noindex="False" objtype="function"><desc_signature class="" first="False" fullname="compress_ptr" ids="blosc.compress_ptr" module="blosc" names="blosc.compress_ptr"><desc_addname xml:space="preserve">blosc.</desc_addname><desc_name xml:space="preserve">compress_ptr</desc_name><desc_parameterlist xml:space="preserve"><desc_parameter xml:space="preserve">address, items[, typesize=8, clevel=9, shuffle=blosc.SHUFFLE, cname='blosclz']]</desc_parameter></desc_parameterlist></desc_signature><desc_content><paragraph>Compress the data at address with given items and typesize.</paragraph><field_list><field classes="field-odd"><field_name>Parameters</field_name><field_body><paragraph><strong>address</strong> : int or long</paragraph><block_quote><paragraph>the pointer to the data to be compressed</paragraph></block_quote><paragraph><strong>items</strong> : int</paragraph><block_quote><paragraph>The number of items (of typesize) to be compressed.</paragraph></block_quote><paragraph><strong>typesize</strong> : int</paragraph><block_quote><paragraph>The data type size.</paragraph></block_quote><paragraph><strong>clevel</strong> : int (optional)</paragraph><block_quote><paragraph>The compression level from 0 (no compression) to 9 (maximum compression). The default is 9.</paragraph></block_quote><paragraph><strong>shuffle</strong> : int (optional)</paragraph><block_quote><paragraph>The shuffle filter to be activated. Allowed values are blosc.NOSHUFFLE, blosc.SHUFFLE and blosc.BITSHUFFLE. The default is blosc.SHUFFLE.</paragraph></block_quote><paragraph><strong>cname</strong> : string (optional)</paragraph><block_quote><paragraph>The name of the compressor used internally in Blosc. It can be any of the supported by Blosc (‘blosclz’, ‘lz4’, ‘lz4hc’, ‘snappy’, ‘zlib’, ‘zstd’ and maybe others too). The default is ‘blosclz’.</paragraph></block_quote></field_body></field><field classes="field-even"><field_name>Returns</field_name><field_body><paragraph><strong>out</strong> : str / bytes</paragraph><block_quote><paragraph>The compressed data in form of a Python str / bytes object.</paragraph></block_quote></field_body></field><field classes="field-odd"><field_name>Raises</field_name><field_body><paragraph><strong>TypeError</strong></paragraph><block_quote><paragraph>If address is not of type int or long.</paragraph></block_quote><paragraph><strong>ValueError</strong></paragraph><block_quote><paragraph>If items * typesize is larger than the maximum allowed buffer size. If typesize is not within the allowed range. If clevel is not within the allowed range. If cname is not within the supported compressors.</paragraph></block_quote></field_body></field></field_list><rubric>Notes</rubric><paragraph>This function can be used anywhere that a memory address is available in Python. For example the Numpy “__array_interface__[‘data’][0]†construct, or when using the ctypes modules.</paragraph><paragraph>Importantly, the user is responsible for making sure that the memory address is valid and that the memory pointed to is contiguous. Passing a non-valid address has a high likelihood of crashing the interpreter by segfault.</paragraph><rubric>Examples</rubric><doctest_block classes="doctest" xml:space="preserve">>>> import numpy >>> items = 7 >>> np_array = numpy.arange(items) >>> c = blosc.compress_ptr(np_array.__array_interface__['data'][0], items, np_array.dtype.itemsize) >>> d = blosc.decompress(c) >>> np_ans = numpy.fromstring(d, dtype=np_array.dtype) >>> (np_array == np_ans).all() True</doctest_block><doctest_block classes="doctest" xml:space="preserve">>>> import ctypes >>> typesize = 8 >>> data = [float(i) for i in range(items)] >>> Array = ctypes.c_double * items >>> a = Array(*data) >>> c = blosc.compress_ptr(ctypes.addressof(a), items, typesize) >>> d = blosc.decompress(c) >>> import struct >>> ans = [struct.unpack('d', d[i:i+typesize])[0] for i in range(0, items*typesize, typesize)] >>> data == ans True</doctest_block></desc_content></desc><index entries="[('single', 'decompress() (in module blosc)', 'blosc.decompress', '', None)]"/><desc desctype="function" domain="py" noindex="False" objtype="function"><desc_signature class="" first="False" fullname="decompress" ids="blosc.decompress" module="blosc" names="blosc.decompress"><desc_addname xml:space="preserve">blosc.</desc_addname><desc_name xml:space="preserve">decompress</desc_name><desc_parameterlist xml:space="preserve"><desc_parameter xml:space="preserve">bytesobj</desc_parameter></desc_parameterlist></desc_signature><desc_content><paragraph>Decompresses a bytesobj compressed object.</paragraph><field_list><field classes="field-odd"><field_name>Parameters</field_name><field_body><paragraph><strong>bytesobj</strong> : str / bytes</paragraph><block_quote><paragraph>The data to be decompressed.</paragraph></block_quote><paragraph><strong>as_bytearray</strong> : bool, optional</paragraph><block_quote><paragraph>If this flag is True then the return type will be a bytearray object instead of a bytesobject.</paragraph></block_quote></field_body></field><field classes="field-even"><field_name>Returns</field_name><field_body><paragraph><strong>out</strong> : str / bytes or bytearray</paragraph><block_quote><paragraph>The decompressed data in form of a Python str / bytes object. If as_bytearray is True then this will be a bytearray object, otherwise this will be a str/ bytes object.</paragraph></block_quote></field_body></field><field classes="field-odd"><field_name>Raises</field_name><field_body><paragraph><strong>TypeError</strong></paragraph><block_quote><paragraph>If bytesobj is not of type bytes or string.</paragraph></block_quote></field_body></field></field_list><rubric>Examples</rubric><doctest_block classes="doctest" xml:space="preserve">>>> import array >>> a = array.array('i', range(1000*1000)) >>> a_bytesobj = a.tostring() >>> c_bytesobj = blosc.compress(a_bytesobj, typesize=4) >>> a_bytesobj2 = blosc.decompress(c_bytesobj) >>> a_bytesobj == a_bytesobj2 True >>> b"" == blosc.decompress(blosc.compress(b"", 1)) True >>> b"1"*7 == blosc.decompress(blosc.compress(b"1"*7, 8)) True >>> type(blosc.decompress(blosc.compress(b"1"*7, 8), ... as_bytearray=True)) is bytearray True</doctest_block></desc_content></desc><index entries="[('single', 'decompress_ptr() (in module blosc)', 'blosc.decompress_ptr', '', None)]"/><desc desctype="function" domain="py" noindex="False" objtype="function"><desc_signature class="" first="False" fullname="decompress_ptr" ids="blosc.decompress_ptr" module="blosc" names="blosc.decompress_ptr"><desc_addname xml:space="preserve">blosc.</desc_addname><desc_name xml:space="preserve">decompress_ptr</desc_name><desc_parameterlist xml:space="preserve"><desc_parameter xml:space="preserve">bytesobj</desc_parameter><desc_parameter xml:space="preserve">address</desc_parameter></desc_parameterlist></desc_signature><desc_content><paragraph>Decompresses a bytesobj compressed object into the memory at address.</paragraph><field_list><field classes="field-odd"><field_name>Parameters</field_name><field_body><paragraph><strong>bytesobj</strong> : str / bytes</paragraph><block_quote><paragraph>The data to be decompressed.</paragraph></block_quote><paragraph><strong>address</strong> : int or long</paragraph><block_quote><paragraph>the pointer to the data to be compressed</paragraph></block_quote></field_body></field><field classes="field-even"><field_name>Returns</field_name><field_body><paragraph><strong>nbytes</strong> : int</paragraph><block_quote><paragraph>the number of bytes written to the buffer</paragraph></block_quote></field_body></field><field classes="field-odd"><field_name>Raises</field_name><field_body><paragraph><strong>TypeError</strong></paragraph><block_quote><paragraph>If bytesobj is not of type bytes or string. If address is not of type int or long.</paragraph></block_quote></field_body></field></field_list><rubric>Notes</rubric><paragraph>This function can be used anywhere that a memory address is available in Python. For example the Numpy “__array_interface__[‘data’][0]†construct, or when using the ctypes modules.</paragraph><paragraph>Importantly, the user is responsible for making sure that the memory address is valid and that the memory pointed to is contiguous and can be written to. Passing a non-valid address has a high likelihood of crashing the interpreter by segfault.</paragraph><rubric>Examples</rubric><doctest_block classes="doctest" xml:space="preserve">>>> import numpy >>> items = 7 >>> np_array = numpy.arange(items) >>> c = blosc.compress_ptr(np_array.__array_interface__['data'][0], items, np_array.dtype.itemsize) >>> np_ans = numpy.empty(items, dtype=np_array.dtype) >>> nbytes = blosc.decompress_ptr(c, np_ans.__array_interface__['data'][0]) >>> (np_array == np_ans).all() True >>> nbytes == items * np_array.dtype.itemsize True</doctest_block><doctest_block classes="doctest" xml:space="preserve">>>> import ctypes >>> typesize = 8 >>> data = [float(i) for i in range(items)] >>> Array = ctypes.c_double * items >>> in_array = Array(*data) >>> c = blosc.compress_ptr(ctypes.addressof(in_array), items, typesize) >>> out_array = ctypes.create_string_buffer(items*typesize) >>> nbytes = blosc.decompress_ptr(c, ctypes.addressof(out_array)) >>> import struct >>> ans = [struct.unpack('d', out_array[i:i+typesize])[0] for i in range(0, items*typesize, typesize)] >>> data == ans True >>> nbytes == items * typesize True</doctest_block></desc_content></desc><index entries="[('single', 'pack_array() (in module blosc)', 'blosc.pack_array', '', None)]"/><desc desctype="function" domain="py" noindex="False" objtype="function"><desc_signature class="" first="False" fullname="pack_array" ids="blosc.pack_array" module="blosc" names="blosc.pack_array"><desc_addname xml:space="preserve">blosc.</desc_addname><desc_name xml:space="preserve">pack_array</desc_name><desc_parameterlist xml:space="preserve"><desc_parameter xml:space="preserve">array[, clevel=9, shuffle=blosc.SHUFFLE, cname='blosclz']]</desc_parameter></desc_parameterlist></desc_signature><desc_content><paragraph>Pack (compress) a NumPy array.</paragraph><field_list><field classes="field-odd"><field_name>Parameters</field_name><field_body><paragraph><strong>array</strong> : ndarray</paragraph><block_quote><paragraph>The NumPy array to be packed.</paragraph></block_quote><paragraph><strong>clevel</strong> : int (optional)</paragraph><block_quote><paragraph>The compression level from 0 (no compression) to 9 (maximum compression). The default is 9.</paragraph></block_quote><paragraph><strong>shuffle</strong> : int (optional)</paragraph><block_quote><paragraph>The shuffle filter to be activated. Allowed values are blosc.NOSHUFFLE, blosc.SHUFFLE and blosc.BITSHUFFLE. The default is blosc.SHUFFLE.</paragraph></block_quote><paragraph><strong>cname</strong> : string (optional)</paragraph><block_quote><paragraph>The name of the compressor used internally in Blosc. It can be any of the supported by Blosc (‘blosclz’, ‘lz4’, ‘lz4hc’, ‘snappy’, ‘zlib’, ‘zstd’ and maybe others too). The default is ‘blosclz’.</paragraph></block_quote></field_body></field><field classes="field-even"><field_name>Returns</field_name><field_body><paragraph><strong>out</strong> : str / bytes</paragraph><block_quote><paragraph>The packed array in form of a Python str / bytes object.</paragraph></block_quote></field_body></field><field classes="field-odd"><field_name>Raises</field_name><field_body><paragraph><strong>TypeError</strong></paragraph><block_quote><paragraph>If array does not quack like a numpy ndarray.</paragraph></block_quote><paragraph><strong>ValueError</strong></paragraph><block_quote><definition_list classes="simple"><definition_list_item><term>If array.itemsize * array.size is larger than the maximum allowed</term><definition><paragraph>buffer size.</paragraph></definition></definition_list_item></definition_list><paragraph>If typesize is not within the allowed range. If clevel is not within the allowed range. If cname is not within the supported compressors.</paragraph></block_quote></field_body></field></field_list><rubric>Examples</rubric><doctest_block classes="doctest" xml:space="preserve">>>> import numpy >>> a = numpy.arange(1e6) >>> parray = blosc.pack_array(a) >>> len(parray) < a.size*a.itemsize True</doctest_block></desc_content></desc><index entries="[('single', 'unpack_array() (in module blosc)', 'blosc.unpack_array', '', None)]"/><desc desctype="function" domain="py" noindex="False" objtype="function"><desc_signature class="" first="False" fullname="unpack_array" ids="blosc.unpack_array" module="blosc" names="blosc.unpack_array"><desc_addname xml:space="preserve">blosc.</desc_addname><desc_name xml:space="preserve">unpack_array</desc_name><desc_parameterlist xml:space="preserve"><desc_parameter xml:space="preserve">packed_array</desc_parameter></desc_parameterlist></desc_signature><desc_content><paragraph>Unpack (decompress) a packed NumPy array.</paragraph><field_list><field classes="field-odd"><field_name>Parameters</field_name><field_body><paragraph><strong>packed_array</strong> : str / bytes</paragraph><block_quote><paragraph>The packed array to be decompressed.</paragraph></block_quote></field_body></field><field classes="field-even"><field_name>Returns</field_name><field_body><paragraph><strong>out</strong> : ndarray</paragraph><block_quote><paragraph>The decompressed data in form of a NumPy array.</paragraph></block_quote></field_body></field><field classes="field-odd"><field_name>Raises</field_name><field_body><paragraph><strong>TypeError</strong></paragraph><block_quote><paragraph>If packed_array is not of type bytes or string.</paragraph></block_quote></field_body></field></field_list><rubric>Examples</rubric><doctest_block classes="doctest" xml:space="preserve">>>> import numpy >>> a = numpy.arange(1e6) >>> parray = blosc.pack_array(a) >>> len(parray) < a.size*a.itemsize True >>> a2 = blosc.unpack_array(parray) >>> numpy.alltrue(a == a2) True</doctest_block></desc_content></desc></section><section ids="module-blosc utilities" names="utilities"><title>Utilities</title><index entries="[('single', 'blosc (module)', 'module-blosc', '', None)]"/><index entries="[('single', 'clib_info() (in module blosc)', 'blosc.clib_info', '', None)]"/><desc desctype="function" domain="py" noindex="False" objtype="function"><desc_signature class="" first="False" fullname="clib_info" ids="blosc.clib_info" module="blosc" names="blosc.clib_info"><desc_addname xml:space="preserve">blosc.</desc_addname><desc_name xml:space="preserve">clib_info</desc_name><desc_parameterlist xml:space="preserve"><desc_parameter xml:space="preserve">cname</desc_parameter></desc_parameterlist></desc_signature><desc_content><paragraph>Return info for compression libraries in C library.</paragraph><field_list><field classes="field-odd"><field_name>Parameters</field_name><field_body><paragraph><strong>cname</strong> : str</paragraph><block_quote><paragraph>The compressor name.</paragraph></block_quote></field_body></field><field classes="field-even"><field_name>Returns</field_name><field_body><paragraph><strong>out</strong> : tuple</paragraph><block_quote><paragraph>The associated library name and version.</paragraph></block_quote></field_body></field></field_list></desc_content></desc><index entries="[('single', 'compressor_list() (in module blosc)', 'blosc.compressor_list', '', None)]"/><desc desctype="function" domain="py" noindex="False" objtype="function"><desc_signature class="" first="False" fullname="compressor_list" ids="blosc.compressor_list" module="blosc" names="blosc.compressor_list"><desc_addname xml:space="preserve">blosc.</desc_addname><desc_name xml:space="preserve">compressor_list</desc_name><desc_parameterlist xml:space="preserve"/></desc_signature><desc_content><paragraph>Returns a list of compressors available in C library.</paragraph><field_list><field classes="field-odd"><field_name>Parameters</field_name><field_body><paragraph><strong>None</strong></paragraph></field_body></field><field classes="field-even"><field_name>Returns</field_name><field_body><paragraph><strong>out</strong> : list</paragraph><block_quote><paragraph>The list of names.</paragraph></block_quote></field_body></field></field_list></desc_content></desc><index entries="[('single', 'detect_number_of_cores() (in module blosc)', 'blosc.detect_number_of_cores', '', None)]"/><desc desctype="function" domain="py" noindex="False" objtype="function"><desc_signature class="" first="False" fullname="detect_number_of_cores" ids="blosc.detect_number_of_cores" module="blosc" names="blosc.detect_number_of_cores"><desc_addname xml:space="preserve">blosc.</desc_addname><desc_name xml:space="preserve">detect_number_of_cores</desc_name><desc_parameterlist xml:space="preserve"/></desc_signature><desc_content><paragraph>Detect the number of cores in this system.</paragraph><field_list><field classes="field-odd"><field_name>Returns</field_name><field_body><paragraph><strong>out</strong> : int</paragraph><block_quote><paragraph>The number of cores in this system.</paragraph></block_quote></field_body></field></field_list></desc_content></desc><index entries="[('single', 'free_resources() (in module blosc)', 'blosc.free_resources', '', None)]"/><desc desctype="function" domain="py" noindex="False" objtype="function"><desc_signature class="" first="False" fullname="free_resources" ids="blosc.free_resources" module="blosc" names="blosc.free_resources"><desc_addname xml:space="preserve">blosc.</desc_addname><desc_name xml:space="preserve">free_resources</desc_name><desc_parameterlist xml:space="preserve"/></desc_signature><desc_content><paragraph>Free possible memory temporaries and thread resources.</paragraph><field_list><field classes="field-odd"><field_name>Returns</field_name><field_body><paragraph><strong>out</strong> : None</paragraph></field_body></field></field_list><rubric>Notes</rubric><paragraph>Blosc maintain a pool of threads waiting for work as well as some temporary space. You can use this function to release these resources when you are not going to use Blosc for a long while.</paragraph><rubric>Examples</rubric><doctest_block classes="doctest" xml:space="preserve">>>> blosc.free_resources() >>></doctest_block></desc_content></desc><index entries="[('single', 'get_clib() (in module blosc)', 'blosc.get_clib', '', None)]"/><desc desctype="function" domain="py" noindex="False" objtype="function"><desc_signature class="" first="False" fullname="get_clib" ids="blosc.get_clib" module="blosc" names="blosc.get_clib"><desc_addname xml:space="preserve">blosc.</desc_addname><desc_name xml:space="preserve">get_clib</desc_name><desc_parameterlist xml:space="preserve"><desc_parameter xml:space="preserve">bytesobj</desc_parameter></desc_parameterlist></desc_signature><desc_content><paragraph>Return the name of the compression library for Blosc <literal>bytesobj</literal> buffer.</paragraph><field_list><field classes="field-odd"><field_name>Parameters</field_name><field_body><paragraph><strong>bytesobj</strong> : str / bytes</paragraph><block_quote><paragraph>The compressed buffer.</paragraph></block_quote></field_body></field><field classes="field-even"><field_name>Returns</field_name><field_body><paragraph><strong>out</strong> : str</paragraph><block_quote><paragraph>The name of the compression library.</paragraph></block_quote></field_body></field></field_list></desc_content></desc><index entries="[('single', 'set_blocksize() (in module blosc)', 'blosc.set_blocksize', '', None)]"/><desc desctype="function" domain="py" noindex="False" objtype="function"><desc_signature class="" first="False" fullname="set_blocksize" ids="blosc.set_blocksize" module="blosc" names="blosc.set_blocksize"><desc_addname xml:space="preserve">blosc.</desc_addname><desc_name xml:space="preserve">set_blocksize</desc_name><desc_parameterlist xml:space="preserve"><desc_parameter xml:space="preserve">blocksize</desc_parameter></desc_parameterlist></desc_signature><desc_content><paragraph>Force the use of a specific blocksize. If 0, an automatic blocksize will be used (the default).</paragraph><rubric>Notes</rubric><paragraph>This is a low-level function and is recommened for expert users only.</paragraph><rubric>Examples</rubric><doctest_block classes="doctest" xml:space="preserve">>>> blosc.set_blocksize(512)</doctest_block></desc_content></desc><index entries="[('single', 'set_nthreads() (in module blosc)', 'blosc.set_nthreads', '', None)]"/><desc desctype="function" domain="py" noindex="False" objtype="function"><desc_signature class="" first="False" fullname="set_nthreads" ids="blosc.set_nthreads" module="blosc" names="blosc.set_nthreads"><desc_addname xml:space="preserve">blosc.</desc_addname><desc_name xml:space="preserve">set_nthreads</desc_name><desc_parameterlist xml:space="preserve"><desc_parameter xml:space="preserve">nthreads</desc_parameter></desc_parameterlist></desc_signature><desc_content><paragraph>Set the number of threads to be used during Blosc operation.</paragraph><field_list><field classes="field-odd"><field_name>Parameters</field_name><field_body><paragraph><strong>nthreads</strong> : int</paragraph><block_quote><paragraph>The number of threads to be used during Blosc operation.</paragraph></block_quote></field_body></field><field classes="field-even"><field_name>Returns</field_name><field_body><paragraph><strong>out</strong> : int</paragraph><block_quote><paragraph>The previous number of used threads.</paragraph></block_quote></field_body></field><field classes="field-odd"><field_name>Raises</field_name><field_body><paragraph><strong>ValueError</strong></paragraph><block_quote><paragraph>If nthreads is larger that the maximum number of threads blosc can use.</paragraph></block_quote></field_body></field></field_list><rubric>Notes</rubric><paragraph>The number of threads for Blosc is the maximum number of cores detected on your machine (via <literal>detect_number_of_cores</literal>). In some cases Blosc gets better results if you set the number of threads to a value slightly below than your number of cores.</paragraph><rubric>Examples</rubric><paragraph>Set the number of threads to 2 and then to 1:</paragraph><doctest_block classes="doctest" xml:space="preserve">>>> oldn = blosc.set_nthreads(2) >>> blosc.set_nthreads(1) 2</doctest_block></desc_content></desc><index entries="[('single', 'set_releasegil() (in module blosc)', 'blosc.set_releasegil', '', None)]"/><desc desctype="function" domain="py" noindex="False" objtype="function"><desc_signature class="" first="False" fullname="set_releasegil" ids="blosc.set_releasegil" module="blosc" names="blosc.set_releasegil"><desc_addname xml:space="preserve">blosc.</desc_addname><desc_name xml:space="preserve">set_releasegil</desc_name><desc_parameterlist xml:space="preserve"><desc_parameter xml:space="preserve">gitstate</desc_parameter></desc_parameterlist></desc_signature><desc_content><paragraph>Sets a boolean on whether to release the Python global inter-lock (GIL) during c-blosc compress and decompress operations or not. This defaults to False.</paragraph><rubric>Notes</rubric><paragraph>Designed to be used with larger chunk sizes and a ThreadPool. There is a small performance penalty with releasing the GIL that will more harshly penalize small block sizes.</paragraph><rubric>Examples</rubric><doctest_block classes="doctest" xml:space="preserve">>>> oldReleaseState = blosc.set_releasegil(True)</doctest_block></desc_content></desc><index entries="[('single', 'print_versions() (in module blosc)', 'blosc.print_versions', '', None)]"/><desc desctype="function" domain="py" noindex="False" objtype="function"><desc_signature class="" first="False" fullname="print_versions" ids="blosc.print_versions" module="blosc" names="blosc.print_versions"><desc_addname xml:space="preserve">blosc.</desc_addname><desc_name xml:space="preserve">print_versions</desc_name><desc_parameterlist xml:space="preserve"/></desc_signature><desc_content><paragraph>Print all the versions of software that python-blosc relies on.</paragraph></desc_content></desc></section></section> SphinxTranslator.dispatch_departure calling depart_document for <document source="/usr/src/RPM/BUILD/python3-module-blosc-1.5.1/doc/reference.rst"><section ids="library-reference" names="library\ reference"><title>Library Reference</title><section ids="first-level-variables" names="first\ level\ variables"><title>First level variables</title><index entries="[('single', '__version__', '__version__', '', None)]"/><desc desctype="attribute" domain="py" noindex="False" objtype="attribute"><desc_signature class="" first="False" fullname="__version__" ids="__version__" module="True" names="__version__"><desc_name xml:space="preserve">__version__</desc_name></desc_signature><desc_content><paragraph>The version of the blosc package.</paragraph></desc_content></desc><index entries="[('single', 'blosclib_version', 'blosclib_version', '', None)]"/><desc desctype="attribute" domain="py" noindex="False" objtype="attribute"><desc_signature class="" first="False" fullname="blosclib_version" ids="blosclib_version" module="True" names="blosclib_version"><desc_name xml:space="preserve">blosclib_version</desc_name></desc_signature><desc_content><paragraph>The version of the Blosc C library.</paragraph></desc_content></desc><index entries="[('single', 'clib_versions', 'clib_versions', '', None)]"/><desc desctype="attribute" domain="py" noindex="False" objtype="attribute"><desc_signature class="" first="False" fullname="clib_versions" ids="clib_versions" module="True" names="clib_versions"><desc_name xml:space="preserve">clib_versions</desc_name></desc_signature><desc_content><paragraph>A map for the versions of the compression libraries included in C library.</paragraph></desc_content></desc><index entries="[('single', 'cnames', 'cnames', '', None)]"/><desc desctype="attribute" domain="py" noindex="False" objtype="attribute"><desc_signature class="" first="False" fullname="cnames" ids="cnames" module="True" names="cnames"><desc_name xml:space="preserve">cnames</desc_name></desc_signature><desc_content><paragraph>The list of compressors included in C library.</paragraph></desc_content></desc><index entries="[('single', 'cname2clib', 'cname2clib', '', None)]"/><desc desctype="attribute" domain="py" noindex="False" objtype="attribute"><desc_signature class="" first="False" fullname="cname2clib" ids="cname2clib" module="True" names="cname2clib"><desc_name xml:space="preserve">cname2clib</desc_name></desc_signature><desc_content><paragraph>A map between compressor names and its libraries (or formats).</paragraph></desc_content></desc><index entries="[('single', 'ncores', 'ncores', '', None)]"/><desc desctype="attribute" domain="py" noindex="False" objtype="attribute"><desc_signature class="" first="False" fullname="ncores" ids="ncores" module="True" names="ncores"><desc_name xml:space="preserve">ncores</desc_name></desc_signature><desc_content><paragraph>The number of cores detected.</paragraph></desc_content></desc></section><section ids="module-blosc public-functions" names="public\ functions"><title>Public functions</title><index entries="[('single', 'blosc (module)', 'module-blosc', '', None)]"/><index entries="[('single', 'compress() (in module blosc)', 'blosc.compress', '', None)]"/><desc desctype="function" domain="py" noindex="False" objtype="function"><desc_signature class="" first="False" fullname="compress" ids="blosc.compress" module="blosc" names="blosc.compress"><desc_addname xml:space="preserve">blosc.</desc_addname><desc_name xml:space="preserve">compress</desc_name><desc_parameterlist xml:space="preserve"><desc_parameter xml:space="preserve">bytesobj[, typesize=8, clevel=9, shuffle=blosc.SHUFFLE, cname='blosclz']]</desc_parameter></desc_parameterlist></desc_signature><desc_content><paragraph>Compress bytesobj, with a given type size.</paragraph><field_list><field classes="field-odd"><field_name>Parameters</field_name><field_body><paragraph><strong>bytesobj</strong> : bytes-like object (supporting the buffer interface)</paragraph><block_quote><paragraph>The data to be compressed.</paragraph></block_quote><paragraph><strong>typesize</strong> : int</paragraph><block_quote><paragraph>The data type size.</paragraph></block_quote><paragraph><strong>clevel</strong> : int (optional)</paragraph><block_quote><paragraph>The compression level from 0 (no compression) to 9 (maximum compression). The default is 9.</paragraph></block_quote><paragraph><strong>shuffle</strong> : int (optional)</paragraph><block_quote><paragraph>The shuffle filter to be activated. Allowed values are blosc.NOSHUFFLE, blosc.SHUFFLE and blosc.BITSHUFFLE. The default is blosc.SHUFFLE.</paragraph></block_quote><paragraph><strong>cname</strong> : string (optional)</paragraph><block_quote><paragraph>The name of the compressor used internally in Blosc. It can be any of the supported by Blosc (‘blosclz’, ‘lz4’, ‘lz4hc’, ‘snappy’, ‘zlib’, ‘zstd’ and maybe others too). The default is ‘blosclz’.</paragraph></block_quote></field_body></field><field classes="field-even"><field_name>Returns</field_name><field_body><paragraph><strong>out</strong> : str / bytes</paragraph><block_quote><paragraph>The compressed data in form of a Python str / bytes object.</paragraph></block_quote></field_body></field><field classes="field-odd"><field_name>Raises</field_name><field_body><paragraph><strong>TypeError</strong></paragraph><block_quote><paragraph>If bytesobj doesn’t support the buffer interface.</paragraph></block_quote><paragraph><strong>ValueError</strong></paragraph><block_quote><paragraph>If bytesobj is too long. If typesize is not within the allowed range. If clevel is not within the allowed range. If cname is not a valid codec.</paragraph></block_quote></field_body></field></field_list><rubric>Examples</rubric><doctest_block classes="doctest" xml:space="preserve">>>> import array >>> a = array.array('i', range(1000*1000)) >>> a_bytesobj = a.tostring() >>> c_bytesobj = blosc.compress(a_bytesobj, typesize=4) >>> len(c_bytesobj) < len(a_bytesobj) True</doctest_block></desc_content></desc><index entries="[('single', 'compress_ptr() (in module blosc)', 'blosc.compress_ptr', '', None)]"/><desc desctype="function" domain="py" noindex="False" objtype="function"><desc_signature class="" first="False" fullname="compress_ptr" ids="blosc.compress_ptr" module="blosc" names="blosc.compress_ptr"><desc_addname xml:space="preserve">blosc.</desc_addname><desc_name xml:space="preserve">compress_ptr</desc_name><desc_parameterlist xml:space="preserve"><desc_parameter xml:space="preserve">address, items[, typesize=8, clevel=9, shuffle=blosc.SHUFFLE, cname='blosclz']]</desc_parameter></desc_parameterlist></desc_signature><desc_content><paragraph>Compress the data at address with given items and typesize.</paragraph><field_list><field classes="field-odd"><field_name>Parameters</field_name><field_body><paragraph><strong>address</strong> : int or long</paragraph><block_quote><paragraph>the pointer to the data to be compressed</paragraph></block_quote><paragraph><strong>items</strong> : int</paragraph><block_quote><paragraph>The number of items (of typesize) to be compressed.</paragraph></block_quote><paragraph><strong>typesize</strong> : int</paragraph><block_quote><paragraph>The data type size.</paragraph></block_quote><paragraph><strong>clevel</strong> : int (optional)</paragraph><block_quote><paragraph>The compression level from 0 (no compression) to 9 (maximum compression). The default is 9.</paragraph></block_quote><paragraph><strong>shuffle</strong> : int (optional)</paragraph><block_quote><paragraph>The shuffle filter to be activated. Allowed values are blosc.NOSHUFFLE, blosc.SHUFFLE and blosc.BITSHUFFLE. The default is blosc.SHUFFLE.</paragraph></block_quote><paragraph><strong>cname</strong> : string (optional)</paragraph><block_quote><paragraph>The name of the compressor used internally in Blosc. It can be any of the supported by Blosc (‘blosclz’, ‘lz4’, ‘lz4hc’, ‘snappy’, ‘zlib’, ‘zstd’ and maybe others too). The default is ‘blosclz’.</paragraph></block_quote></field_body></field><field classes="field-even"><field_name>Returns</field_name><field_body><paragraph><strong>out</strong> : str / bytes</paragraph><block_quote><paragraph>The compressed data in form of a Python str / bytes object.</paragraph></block_quote></field_body></field><field classes="field-odd"><field_name>Raises</field_name><field_body><paragraph><strong>TypeError</strong></paragraph><block_quote><paragraph>If address is not of type int or long.</paragraph></block_quote><paragraph><strong>ValueError</strong></paragraph><block_quote><paragraph>If items * typesize is larger than the maximum allowed buffer size. If typesize is not within the allowed range. If clevel is not within the allowed range. If cname is not within the supported compressors.</paragraph></block_quote></field_body></field></field_list><rubric>Notes</rubric><paragraph>This function can be used anywhere that a memory address is available in Python. For example the Numpy “__array_interface__[‘data’][0]†construct, or when using the ctypes modules.</paragraph><paragraph>Importantly, the user is responsible for making sure that the memory address is valid and that the memory pointed to is contiguous. Passing a non-valid address has a high likelihood of crashing the interpreter by segfault.</paragraph><rubric>Examples</rubric><doctest_block classes="doctest" xml:space="preserve">>>> import numpy >>> items = 7 >>> np_array = numpy.arange(items) >>> c = blosc.compress_ptr(np_array.__array_interface__['data'][0], items, np_array.dtype.itemsize) >>> d = blosc.decompress(c) >>> np_ans = numpy.fromstring(d, dtype=np_array.dtype) >>> (np_array == np_ans).all() True</doctest_block><doctest_block classes="doctest" xml:space="preserve">>>> import ctypes >>> typesize = 8 >>> data = [float(i) for i in range(items)] >>> Array = ctypes.c_double * items >>> a = Array(*data) >>> c = blosc.compress_ptr(ctypes.addressof(a), items, typesize) >>> d = blosc.decompress(c) >>> import struct >>> ans = [struct.unpack('d', d[i:i+typesize])[0] for i in range(0, items*typesize, typesize)] >>> data == ans True</doctest_block></desc_content></desc><index entries="[('single', 'decompress() (in module blosc)', 'blosc.decompress', '', None)]"/><desc desctype="function" domain="py" noindex="False" objtype="function"><desc_signature class="" first="False" fullname="decompress" ids="blosc.decompress" module="blosc" names="blosc.decompress"><desc_addname xml:space="preserve">blosc.</desc_addname><desc_name xml:space="preserve">decompress</desc_name><desc_parameterlist xml:space="preserve"><desc_parameter xml:space="preserve">bytesobj</desc_parameter></desc_parameterlist></desc_signature><desc_content><paragraph>Decompresses a bytesobj compressed object.</paragraph><field_list><field classes="field-odd"><field_name>Parameters</field_name><field_body><paragraph><strong>bytesobj</strong> : str / bytes</paragraph><block_quote><paragraph>The data to be decompressed.</paragraph></block_quote><paragraph><strong>as_bytearray</strong> : bool, optional</paragraph><block_quote><paragraph>If this flag is True then the return type will be a bytearray object instead of a bytesobject.</paragraph></block_quote></field_body></field><field classes="field-even"><field_name>Returns</field_name><field_body><paragraph><strong>out</strong> : str / bytes or bytearray</paragraph><block_quote><paragraph>The decompressed data in form of a Python str / bytes object. If as_bytearray is True then this will be a bytearray object, otherwise this will be a str/ bytes object.</paragraph></block_quote></field_body></field><field classes="field-odd"><field_name>Raises</field_name><field_body><paragraph><strong>TypeError</strong></paragraph><block_quote><paragraph>If bytesobj is not of type bytes or string.</paragraph></block_quote></field_body></field></field_list><rubric>Examples</rubric><doctest_block classes="doctest" xml:space="preserve">>>> import array >>> a = array.array('i', range(1000*1000)) >>> a_bytesobj = a.tostring() >>> c_bytesobj = blosc.compress(a_bytesobj, typesize=4) >>> a_bytesobj2 = blosc.decompress(c_bytesobj) >>> a_bytesobj == a_bytesobj2 True >>> b"" == blosc.decompress(blosc.compress(b"", 1)) True >>> b"1"*7 == blosc.decompress(blosc.compress(b"1"*7, 8)) True >>> type(blosc.decompress(blosc.compress(b"1"*7, 8), ... as_bytearray=True)) is bytearray True</doctest_block></desc_content></desc><index entries="[('single', 'decompress_ptr() (in module blosc)', 'blosc.decompress_ptr', '', None)]"/><desc desctype="function" domain="py" noindex="False" objtype="function"><desc_signature class="" first="False" fullname="decompress_ptr" ids="blosc.decompress_ptr" module="blosc" names="blosc.decompress_ptr"><desc_addname xml:space="preserve">blosc.</desc_addname><desc_name xml:space="preserve">decompress_ptr</desc_name><desc_parameterlist xml:space="preserve"><desc_parameter xml:space="preserve">bytesobj</desc_parameter><desc_parameter xml:space="preserve">address</desc_parameter></desc_parameterlist></desc_signature><desc_content><paragraph>Decompresses a bytesobj compressed object into the memory at address.</paragraph><field_list><field classes="field-odd"><field_name>Parameters</field_name><field_body><paragraph><strong>bytesobj</strong> : str / bytes</paragraph><block_quote><paragraph>The data to be decompressed.</paragraph></block_quote><paragraph><strong>address</strong> : int or long</paragraph><block_quote><paragraph>the pointer to the data to be compressed</paragraph></block_quote></field_body></field><field classes="field-even"><field_name>Returns</field_name><field_body><paragraph><strong>nbytes</strong> : int</paragraph><block_quote><paragraph>the number of bytes written to the buffer</paragraph></block_quote></field_body></field><field classes="field-odd"><field_name>Raises</field_name><field_body><paragraph><strong>TypeError</strong></paragraph><block_quote><paragraph>If bytesobj is not of type bytes or string. If address is not of type int or long.</paragraph></block_quote></field_body></field></field_list><rubric>Notes</rubric><paragraph>This function can be used anywhere that a memory address is available in Python. For example the Numpy “__array_interface__[‘data’][0]†construct, or when using the ctypes modules.</paragraph><paragraph>Importantly, the user is responsible for making sure that the memory address is valid and that the memory pointed to is contiguous and can be written to. Passing a non-valid address has a high likelihood of crashing the interpreter by segfault.</paragraph><rubric>Examples</rubric><doctest_block classes="doctest" xml:space="preserve">>>> import numpy >>> items = 7 >>> np_array = numpy.arange(items) >>> c = blosc.compress_ptr(np_array.__array_interface__['data'][0], items, np_array.dtype.itemsize) >>> np_ans = numpy.empty(items, dtype=np_array.dtype) >>> nbytes = blosc.decompress_ptr(c, np_ans.__array_interface__['data'][0]) >>> (np_array == np_ans).all() True >>> nbytes == items * np_array.dtype.itemsize True</doctest_block><doctest_block classes="doctest" xml:space="preserve">>>> import ctypes >>> typesize = 8 >>> data = [float(i) for i in range(items)] >>> Array = ctypes.c_double * items >>> in_array = Array(*data) >>> c = blosc.compress_ptr(ctypes.addressof(in_array), items, typesize) >>> out_array = ctypes.create_string_buffer(items*typesize) >>> nbytes = blosc.decompress_ptr(c, ctypes.addressof(out_array)) >>> import struct >>> ans = [struct.unpack('d', out_array[i:i+typesize])[0] for i in range(0, items*typesize, typesize)] >>> data == ans True >>> nbytes == items * typesize True</doctest_block></desc_content></desc><index entries="[('single', 'pack_array() (in module blosc)', 'blosc.pack_array', '', None)]"/><desc desctype="function" domain="py" noindex="False" objtype="function"><desc_signature class="" first="False" fullname="pack_array" ids="blosc.pack_array" module="blosc" names="blosc.pack_array"><desc_addname xml:space="preserve">blosc.</desc_addname><desc_name xml:space="preserve">pack_array</desc_name><desc_parameterlist xml:space="preserve"><desc_parameter xml:space="preserve">array[, clevel=9, shuffle=blosc.SHUFFLE, cname='blosclz']]</desc_parameter></desc_parameterlist></desc_signature><desc_content><paragraph>Pack (compress) a NumPy array.</paragraph><field_list><field classes="field-odd"><field_name>Parameters</field_name><field_body><paragraph><strong>array</strong> : ndarray</paragraph><block_quote><paragraph>The NumPy array to be packed.</paragraph></block_quote><paragraph><strong>clevel</strong> : int (optional)</paragraph><block_quote><paragraph>The compression level from 0 (no compression) to 9 (maximum compression). The default is 9.</paragraph></block_quote><paragraph><strong>shuffle</strong> : int (optional)</paragraph><block_quote><paragraph>The shuffle filter to be activated. Allowed values are blosc.NOSHUFFLE, blosc.SHUFFLE and blosc.BITSHUFFLE. The default is blosc.SHUFFLE.</paragraph></block_quote><paragraph><strong>cname</strong> : string (optional)</paragraph><block_quote><paragraph>The name of the compressor used internally in Blosc. It can be any of the supported by Blosc (‘blosclz’, ‘lz4’, ‘lz4hc’, ‘snappy’, ‘zlib’, ‘zstd’ and maybe others too). The default is ‘blosclz’.</paragraph></block_quote></field_body></field><field classes="field-even"><field_name>Returns</field_name><field_body><paragraph><strong>out</strong> : str / bytes</paragraph><block_quote><paragraph>The packed array in form of a Python str / bytes object.</paragraph></block_quote></field_body></field><field classes="field-odd"><field_name>Raises</field_name><field_body><paragraph><strong>TypeError</strong></paragraph><block_quote><paragraph>If array does not quack like a numpy ndarray.</paragraph></block_quote><paragraph><strong>ValueError</strong></paragraph><block_quote><definition_list classes="simple"><definition_list_item><term>If array.itemsize * array.size is larger than the maximum allowed</term><definition><paragraph>buffer size.</paragraph></definition></definition_list_item></definition_list><paragraph>If typesize is not within the allowed range. If clevel is not within the allowed range. If cname is not within the supported compressors.</paragraph></block_quote></field_body></field></field_list><rubric>Examples</rubric><doctest_block classes="doctest" xml:space="preserve">>>> import numpy >>> a = numpy.arange(1e6) >>> parray = blosc.pack_array(a) >>> len(parray) < a.size*a.itemsize True</doctest_block></desc_content></desc><index entries="[('single', 'unpack_array() (in module blosc)', 'blosc.unpack_array', '', None)]"/><desc desctype="function" domain="py" noindex="False" objtype="function"><desc_signature class="" first="False" fullname="unpack_array" ids="blosc.unpack_array" module="blosc" names="blosc.unpack_array"><desc_addname xml:space="preserve">blosc.</desc_addname><desc_name xml:space="preserve">unpack_array</desc_name><desc_parameterlist xml:space="preserve"><desc_parameter xml:space="preserve">packed_array</desc_parameter></desc_parameterlist></desc_signature><desc_content><paragraph>Unpack (decompress) a packed NumPy array.</paragraph><field_list><field classes="field-odd"><field_name>Parameters</field_name><field_body><paragraph><strong>packed_array</strong> : str / bytes</paragraph><block_quote><paragraph>The packed array to be decompressed.</paragraph></block_quote></field_body></field><field classes="field-even"><field_name>Returns</field_name><field_body><paragraph><strong>out</strong> : ndarray</paragraph><block_quote><paragraph>The decompressed data in form of a NumPy array.</paragraph></block_quote></field_body></field><field classes="field-odd"><field_name>Raises</field_name><field_body><paragraph><strong>TypeError</strong></paragraph><block_quote><paragraph>If packed_array is not of type bytes or string.</paragraph></block_quote></field_body></field></field_list><rubric>Examples</rubric><doctest_block classes="doctest" xml:space="preserve">>>> import numpy >>> a = numpy.arange(1e6) >>> parray = blosc.pack_array(a) >>> len(parray) < a.size*a.itemsize True >>> a2 = blosc.unpack_array(parray) >>> numpy.alltrue(a == a2) True</doctest_block></desc_content></desc></section><section ids="module-blosc utilities" names="utilities"><title>Utilities</title><index entries="[('single', 'blosc (module)', 'module-blosc', '', None)]"/><index entries="[('single', 'clib_info() (in module blosc)', 'blosc.clib_info', '', None)]"/><desc desctype="function" domain="py" noindex="False" objtype="function"><desc_signature class="" first="False" fullname="clib_info" ids="blosc.clib_info" module="blosc" names="blosc.clib_info"><desc_addname xml:space="preserve">blosc.</desc_addname><desc_name xml:space="preserve">clib_info</desc_name><desc_parameterlist xml:space="preserve"><desc_parameter xml:space="preserve">cname</desc_parameter></desc_parameterlist></desc_signature><desc_content><paragraph>Return info for compression libraries in C library.</paragraph><field_list><field classes="field-odd"><field_name>Parameters</field_name><field_body><paragraph><strong>cname</strong> : str</paragraph><block_quote><paragraph>The compressor name.</paragraph></block_quote></field_body></field><field classes="field-even"><field_name>Returns</field_name><field_body><paragraph><strong>out</strong> : tuple</paragraph><block_quote><paragraph>The associated library name and version.</paragraph></block_quote></field_body></field></field_list></desc_content></desc><index entries="[('single', 'compressor_list() (in module blosc)', 'blosc.compressor_list', '', None)]"/><desc desctype="function" domain="py" noindex="False" objtype="function"><desc_signature class="" first="False" fullname="compressor_list" ids="blosc.compressor_list" module="blosc" names="blosc.compressor_list"><desc_addname xml:space="preserve">blosc.</desc_addname><desc_name xml:space="preserve">compressor_list</desc_name><desc_parameterlist xml:space="preserve"/></desc_signature><desc_content><paragraph>Returns a list of compressors available in C library.</paragraph><field_list><field classes="field-odd"><field_name>Parameters</field_name><field_body><paragraph><strong>None</strong></paragraph></field_body></field><field classes="field-even"><field_name>Returns</field_name><field_body><paragraph><strong>out</strong> : list</paragraph><block_quote><paragraph>The list of names.</paragraph></block_quote></field_body></field></field_list></desc_content></desc><index entries="[('single', 'detect_number_of_cores() (in module blosc)', 'blosc.detect_number_of_cores', '', None)]"/><desc desctype="function" domain="py" noindex="False" objtype="function"><desc_signature class="" first="False" fullname="detect_number_of_cores" ids="blosc.detect_number_of_cores" module="blosc" names="blosc.detect_number_of_cores"><desc_addname xml:space="preserve">blosc.</desc_addname><desc_name xml:space="preserve">detect_number_of_cores</desc_name><desc_parameterlist xml:space="preserve"/></desc_signature><desc_content><paragraph>Detect the number of cores in this system.</paragraph><field_list><field classes="field-odd"><field_name>Returns</field_name><field_body><paragraph><strong>out</strong> : int</paragraph><block_quote><paragraph>The number of cores in this system.</paragraph></block_quote></field_body></field></field_list></desc_content></desc><index entries="[('single', 'free_resources() (in module blosc)', 'blosc.free_resources', '', None)]"/><desc desctype="function" domain="py" noindex="False" objtype="function"><desc_signature class="" first="False" fullname="free_resources" ids="blosc.free_resources" module="blosc" names="blosc.free_resources"><desc_addname xml:space="preserve">blosc.</desc_addname><desc_name xml:space="preserve">free_resources</desc_name><desc_parameterlist xml:space="preserve"/></desc_signature><desc_content><paragraph>Free possible memory temporaries and thread resources.</paragraph><field_list><field classes="field-odd"><field_name>Returns</field_name><field_body><paragraph><strong>out</strong> : None</paragraph></field_body></field></field_list><rubric>Notes</rubric><paragraph>Blosc maintain a pool of threads waiting for work as well as some temporary space. You can use this function to release these resources when you are not going to use Blosc for a long while.</paragraph><rubric>Examples</rubric><doctest_block classes="doctest" xml:space="preserve">>>> blosc.free_resources() >>></doctest_block></desc_content></desc><index entries="[('single', 'get_clib() (in module blosc)', 'blosc.get_clib', '', None)]"/><desc desctype="function" domain="py" noindex="False" objtype="function"><desc_signature class="" first="False" fullname="get_clib" ids="blosc.get_clib" module="blosc" names="blosc.get_clib"><desc_addname xml:space="preserve">blosc.</desc_addname><desc_name xml:space="preserve">get_clib</desc_name><desc_parameterlist xml:space="preserve"><desc_parameter xml:space="preserve">bytesobj</desc_parameter></desc_parameterlist></desc_signature><desc_content><paragraph>Return the name of the compression library for Blosc <literal>bytesobj</literal> buffer.</paragraph><field_list><field classes="field-odd"><field_name>Parameters</field_name><field_body><paragraph><strong>bytesobj</strong> : str / bytes</paragraph><block_quote><paragraph>The compressed buffer.</paragraph></block_quote></field_body></field><field classes="field-even"><field_name>Returns</field_name><field_body><paragraph><strong>out</strong> : str</paragraph><block_quote><paragraph>The name of the compression library.</paragraph></block_quote></field_body></field></field_list></desc_content></desc><index entries="[('single', 'set_blocksize() (in module blosc)', 'blosc.set_blocksize', '', None)]"/><desc desctype="function" domain="py" noindex="False" objtype="function"><desc_signature class="" first="False" fullname="set_blocksize" ids="blosc.set_blocksize" module="blosc" names="blosc.set_blocksize"><desc_addname xml:space="preserve">blosc.</desc_addname><desc_name xml:space="preserve">set_blocksize</desc_name><desc_parameterlist xml:space="preserve"><desc_parameter xml:space="preserve">blocksize</desc_parameter></desc_parameterlist></desc_signature><desc_content><paragraph>Force the use of a specific blocksize. If 0, an automatic blocksize will be used (the default).</paragraph><rubric>Notes</rubric><paragraph>This is a low-level function and is recommened for expert users only.</paragraph><rubric>Examples</rubric><doctest_block classes="doctest" xml:space="preserve">>>> blosc.set_blocksize(512)</doctest_block></desc_content></desc><index entries="[('single', 'set_nthreads() (in module blosc)', 'blosc.set_nthreads', '', None)]"/><desc desctype="function" domain="py" noindex="False" objtype="function"><desc_signature class="" first="False" fullname="set_nthreads" ids="blosc.set_nthreads" module="blosc" names="blosc.set_nthreads"><desc_addname xml:space="preserve">blosc.</desc_addname><desc_name xml:space="preserve">set_nthreads</desc_name><desc_parameterlist xml:space="preserve"><desc_parameter xml:space="preserve">nthreads</desc_parameter></desc_parameterlist></desc_signature><desc_content><paragraph>Set the number of threads to be used during Blosc operation.</paragraph><field_list><field classes="field-odd"><field_name>Parameters</field_name><field_body><paragraph><strong>nthreads</strong> : int</paragraph><block_quote><paragraph>The number of threads to be used during Blosc operation.</paragraph></block_quote></field_body></field><field classes="field-even"><field_name>Returns</field_name><field_body><paragraph><strong>out</strong> : int</paragraph><block_quote><paragraph>The previous number of used threads.</paragraph></block_quote></field_body></field><field classes="field-odd"><field_name>Raises</field_name><field_body><paragraph><strong>ValueError</strong></paragraph><block_quote><paragraph>If nthreads is larger that the maximum number of threads blosc can use.</paragraph></block_quote></field_body></field></field_list><rubric>Notes</rubric><paragraph>The number of threads for Blosc is the maximum number of cores detected on your machine (via <literal>detect_number_of_cores</literal>). In some cases Blosc gets better results if you set the number of threads to a value slightly below than your number of cores.</paragraph><rubric>Examples</rubric><paragraph>Set the number of threads to 2 and then to 1:</paragraph><doctest_block classes="doctest" xml:space="preserve">>>> oldn = blosc.set_nthreads(2) >>> blosc.set_nthreads(1) 2</doctest_block></desc_content></desc><index entries="[('single', 'set_releasegil() (in module blosc)', 'blosc.set_releasegil', '', None)]"/><desc desctype="function" domain="py" noindex="False" objtype="function"><desc_signature class="" first="False" fullname="set_releasegil" ids="blosc.set_releasegil" module="blosc" names="blosc.set_releasegil"><desc_addname xml:space="preserve">blosc.</desc_addname><desc_name xml:space="preserve">set_releasegil</desc_name><desc_parameterlist xml:space="preserve"><desc_parameter xml:space="preserve">gitstate</desc_parameter></desc_parameterlist></desc_signature><desc_content><paragraph>Sets a boolean on whether to release the Python global inter-lock (GIL) during c-blosc compress and decompress operations or not. This defaults to False.</paragraph><rubric>Notes</rubric><paragraph>Designed to be used with larger chunk sizes and a ThreadPool. There is a small performance penalty with releasing the GIL that will more harshly penalize small block sizes.</paragraph><rubric>Examples</rubric><doctest_block classes="doctest" xml:space="preserve">>>> oldReleaseState = blosc.set_releasegil(True)</doctest_block></desc_content></desc><index entries="[('single', 'print_versions() (in module blosc)', 'blosc.print_versions', '', None)]"/><desc desctype="function" domain="py" noindex="False" objtype="function"><desc_signature class="" first="False" fullname="print_versions" ids="blosc.print_versions" module="blosc" names="blosc.print_versions"><desc_addname xml:space="preserve">blosc.</desc_addname><desc_name xml:space="preserve">print_versions</desc_name><desc_parameterlist xml:space="preserve"/></desc_signature><desc_content><paragraph>Print all the versions of software that python-blosc relies on.</paragraph></desc_content></desc></section></section></document> SphinxTranslator.dispatch_visit calling visit_document for <document source="<partial node>"><title>Tutorials</title></document> SphinxTranslator.dispatch_visit calling visit_title for <title>Tutorials</title> SphinxTranslator.dispatch_visit calling visit_Text for Tutorials SphinxTranslator.dispatch_departure calling depart_Text for Tutorials SphinxTranslator.dispatch_departure calling depart_title for <title>Tutorials</title> SphinxTranslator.dispatch_departure calling depart_document for <document source="<partial node>"><title>Tutorials</title></document> SphinxTranslator.dispatch_visit calling visit_document for <document source="<partial node>"><title>Welcome to python-blosc’s documentation!</title></document> SphinxTranslator.dispatch_visit calling visit_title for <title>Welcome to python-blosc’s documentation!</title> SphinxTranslator.dispatch_visit calling visit_Text for Welcome to python-blosc’s documentation! SphinxTranslator.dispatch_departure calling depart_Text for Welcome to python-blosc’s documentation! SphinxTranslator.dispatch_departure calling depart_title for <title>Welcome to python-blosc’s documentation!</title> SphinxTranslator.dispatch_departure calling depart_document for <document source="<partial node>"><title>Welcome to python-blosc’s documentation!</title></document> SphinxTranslator.dispatch_visit calling visit_document for <document source="<partial node>"><title>Library Reference</title></document> SphinxTranslator.dispatch_visit calling visit_title for <title>Library Reference</title> SphinxTranslator.dispatch_visit calling visit_Text for Library Reference SphinxTranslator.dispatch_departure calling depart_Text for Library Reference SphinxTranslator.dispatch_departure calling depart_title for <title>Library Reference</title> SphinxTranslator.dispatch_departure calling depart_document for <document source="<partial node>"><title>Library Reference</title></document> SphinxTranslator.dispatch_visit calling visit_document for <document source="<partial node>"><bullet_list><list_item><compact_paragraph><reference anchorname="" internal="True" refuri="#">Library Reference</reference></compact_paragraph><bullet_list><list_item><compact_paragraph><reference anchorname="#first-level-variables" internal="True" refuri="#first-level-variables">First level variables</reference></compact_paragraph></list_item><list_item><compact_paragraph><reference anchorname="#module-blosc" internal="True" refuri="#module-blosc">Public functions</reference></compact_paragraph></list_item><list_item><compact_paragraph><reference anchorname="#module-blosc" internal="True" refuri="#module-blosc">Utilities</reference></compact_paragraph></list_item></bullet_list></list_item></bullet_list></document> SphinxTranslator.dispatch_visit calling visit_bullet_list for <bullet_list><list_item><compact_paragraph><reference anchorname="" internal="True" refuri="#">Library Reference</reference></compact_paragraph><bullet_list><list_item><compact_paragraph><reference anchorname="#first-level-variables" internal="True" refuri="#first-level-variables">First level variables</reference></compact_paragraph></list_item><list_item><compact_paragraph><reference anchorname="#module-blosc" internal="True" refuri="#module-blosc">Public functions</reference></compact_paragraph></list_item><list_item><compact_paragraph><reference anchorname="#module-blosc" internal="True" refuri="#module-blosc">Utilities</reference></compact_paragraph></list_item></bullet_list></list_item></bullet_list> SphinxTranslator.dispatch_visit calling visit_list_item for <list_item><compact_paragraph><reference anchorname="" internal="True" refuri="#">Library Reference</reference></compact_paragraph><bullet_list><list_item><compact_paragraph><reference anchorname="#first-level-variables" internal="True" refuri="#first-level-variables">First level variables</reference></compact_paragraph></list_item><list_item><compact_paragraph><reference anchorname="#module-blosc" internal="True" refuri="#module-blosc">Public functions</reference></compact_paragraph></list_item><list_item><compact_paragraph><reference anchorname="#module-blosc" internal="True" refuri="#module-blosc">Utilities</reference></compact_paragraph></list_item></bullet_list></list_item> SphinxTranslator.dispatch_visit calling visit_compact_paragraph for <compact_paragraph><reference anchorname="" internal="True" refuri="#">Library Reference</reference></compact_paragraph> SphinxTranslator.dispatch_visit calling visit_reference for <reference anchorname="" internal="True" refuri="#">Library Reference</reference> SphinxTranslator.dispatch_visit calling visit_Text for Library Reference SphinxTranslator.dispatch_departure calling depart_Text for Library Reference SphinxTranslator.dispatch_departure calling depart_reference for <reference anchorname="" internal="True" refuri="#">Library Reference</reference> SphinxTranslator.dispatch_departure calling depart_compact_paragraph for <compact_paragraph><reference anchorname="" internal="True" refuri="#">Library Reference</reference></compact_paragraph> SphinxTranslator.dispatch_visit calling visit_bullet_list for <bullet_list><list_item><compact_paragraph><reference anchorname="#first-level-variables" internal="True" refuri="#first-level-variables">First level variables</reference></compact_paragraph></list_item><list_item><compact_paragraph><reference anchorname="#module-blosc" internal="True" refuri="#module-blosc">Public functions</reference></compact_paragraph></list_item><list_item><compact_paragraph><reference anchorname="#module-blosc" internal="True" refuri="#module-blosc">Utilities</reference></compact_paragraph></list_item></bullet_list> SphinxTranslator.dispatch_visit calling visit_list_item for <list_item><compact_paragraph><reference anchorname="#first-level-variables" internal="True" refuri="#first-level-variables">First level variables</reference></compact_paragraph></list_item> SphinxTranslator.dispatch_visit calling visit_compact_paragraph for <compact_paragraph><reference anchorname="#first-level-variables" internal="True" refuri="#first-level-variables">First level variables</reference></compact_paragraph> SphinxTranslator.dispatch_visit calling visit_reference for <reference anchorname="#first-level-variables" internal="True" refuri="#first-level-variables">First level variables</reference> SphinxTranslator.dispatch_visit calling visit_Text for First level variables SphinxTranslator.dispatch_departure calling depart_Text for First level variables SphinxTranslator.dispatch_departure calling depart_reference for <reference anchorname="#first-level-variables" internal="True" refuri="#first-level-variables">First level variables</reference> SphinxTranslator.dispatch_departure calling depart_compact_paragraph for <compact_paragraph><reference anchorname="#first-level-variables" internal="True" refuri="#first-level-variables">First level variables</reference></compact_paragraph> SphinxTranslator.dispatch_departure calling depart_list_item for <list_item><compact_paragraph><reference anchorname="#first-level-variables" internal="True" refuri="#first-level-variables">First level variables</reference></compact_paragraph></list_item> SphinxTranslator.dispatch_visit calling visit_list_item for <list_item><compact_paragraph><reference anchorname="#module-blosc" internal="True" refuri="#module-blosc">Public functions</reference></compact_paragraph></list_item> SphinxTranslator.dispatch_visit calling visit_compact_paragraph for <compact_paragraph><reference anchorname="#module-blosc" internal="True" refuri="#module-blosc">Public functions</reference></compact_paragraph> SphinxTranslator.dispatch_visit calling visit_reference for <reference anchorname="#module-blosc" internal="True" refuri="#module-blosc">Public functions</reference> SphinxTranslator.dispatch_visit calling visit_Text for Public functions SphinxTranslator.dispatch_departure calling depart_Text for Public functions SphinxTranslator.dispatch_departure calling depart_reference for <reference anchorname="#module-blosc" internal="True" refuri="#module-blosc">Public functions</reference> SphinxTranslator.dispatch_departure calling depart_compact_paragraph for <compact_paragraph><reference anchorname="#module-blosc" internal="True" refuri="#module-blosc">Public functions</reference></compact_paragraph> SphinxTranslator.dispatch_departure calling depart_list_item for <list_item><compact_paragraph><reference anchorname="#module-blosc" internal="True" refuri="#module-blosc">Public functions</reference></compact_paragraph></list_item> SphinxTranslator.dispatch_visit calling visit_list_item for <list_item><compact_paragraph><reference anchorname="#module-blosc" internal="True" refuri="#module-blosc">Utilities</reference></compact_paragraph></list_item> SphinxTranslator.dispatch_visit calling visit_compact_paragraph for <compact_paragraph><reference anchorname="#module-blosc" internal="True" refuri="#module-blosc">Utilities</reference></compact_paragraph> SphinxTranslator.dispatch_visit calling visit_reference for <reference anchorname="#module-blosc" internal="True" refuri="#module-blosc">Utilities</reference> SphinxTranslator.dispatch_visit calling visit_Text for Utilities SphinxTranslator.dispatch_departure calling depart_Text for Utilities SphinxTranslator.dispatch_departure calling depart_reference for <reference anchorname="#module-blosc" internal="True" refuri="#module-blosc">Utilities</reference> SphinxTranslator.dispatch_departure calling depart_compact_paragraph for <compact_paragraph><reference anchorname="#module-blosc" internal="True" refuri="#module-blosc">Utilities</reference></compact_paragraph> SphinxTranslator.dispatch_departure calling depart_list_item for <list_item><compact_paragraph><reference anchorname="#module-blosc" internal="True" refuri="#module-blosc">Utilities</reference></compact_paragraph></list_item> SphinxTranslator.dispatch_departure calling depart_bullet_list for <bullet_list><list_item><compact_paragraph><reference anchorname="#first-level-variables" internal="True" refuri="#first-level-variables">First level variables</reference></compact_paragraph></list_item><list_item><compact_paragraph><reference anchorname="#module-blosc" internal="True" refuri="#module-blosc">Public functions</reference></compact_paragraph></list_item><list_item><compact_paragraph><reference anchorname="#module-blosc" internal="True" refuri="#module-blosc">Utilities</reference></compact_paragraph></list_item></bullet_list> SphinxTranslator.dispatch_departure calling depart_list_item for <list_item><compact_paragraph><reference anchorname="" internal="True" refuri="#">Library Reference</reference></compact_paragraph><bullet_list><list_item><compact_paragraph><reference anchorname="#first-level-variables" internal="True" refuri="#first-level-variables">First level variables</reference></compact_paragraph></list_item><list_item><compact_paragraph><reference anchorname="#module-blosc" internal="True" refuri="#module-blosc">Public functions</reference></compact_paragraph></list_item><list_item><compact_paragraph><reference anchorname="#module-blosc" internal="True" refuri="#module-blosc">Utilities</reference></compact_paragraph></list_item></bullet_list></list_item> SphinxTranslator.dispatch_departure calling depart_bullet_list for <bullet_list><list_item><compact_paragraph><reference anchorname="" internal="True" refuri="#">Library Reference</reference></compact_paragraph><bullet_list><list_item><compact_paragraph><reference anchorname="#first-level-variables" internal="True" refuri="#first-level-variables">First level variables</reference></compact_paragraph></list_item><list_item><compact_paragraph><reference anchorname="#module-blosc" internal="True" refuri="#module-blosc">Public functions</reference></compact_paragraph></list_item><list_item><compact_paragraph><reference anchorname="#module-blosc" internal="True" refuri="#module-blosc">Utilities</reference></compact_paragraph></list_item></bullet_list></list_item></bullet_list> SphinxTranslator.dispatch_departure calling depart_document for <document source="<partial node>"><bullet_list><list_item><compact_paragraph><reference anchorname="" internal="True" refuri="#">Library Reference</reference></compact_paragraph><bullet_list><list_item><compact_paragraph><reference anchorname="#first-level-variables" internal="True" refuri="#first-level-variables">First level variables</reference></compact_paragraph></list_item><list_item><compact_paragraph><reference anchorname="#module-blosc" internal="True" refuri="#module-blosc">Public functions</reference></compact_paragraph></list_item><list_item><compact_paragraph><reference anchorname="#module-blosc" internal="True" refuri="#module-blosc">Utilities</reference></compact_paragraph></list_item></bullet_list></list_item></bullet_list></document> [app] emitting event: 'html-page-context'('reference', 'page.html', {'embedded': False, 'project': 'python-blosc', 'release': '1.5.0', 'versi writing output... [100%] tutorial [app] emitting event: 'doctree-resolved'(<document: <section "tutorials"...>>, 'tutorial') SphinxTranslator.dispatch_visit calling visit_document for <document source="<partial node>"><title>Tutorials</title></document> SphinxTranslator.dispatch_visit calling visit_title for <title>Tutorials</title> SphinxTranslator.dispatch_visit calling visit_Text for Tutorials SphinxTranslator.dispatch_departure calling depart_Text for Tutorials SphinxTranslator.dispatch_departure calling depart_title for <title>Tutorials</title> SphinxTranslator.dispatch_departure calling depart_document for <document source="<partial node>"><title>Tutorials</title></document> SphinxTranslator.dispatch_visit calling visit_document for <document source="/usr/src/RPM/BUILD/python3-module-blosc-1.5.1/doc/tutorial.rst"><section ids="tutorials" names="tutorials"><title>Tutorials</title><paragraph>Using <literal>python-blosc</literal> (or just <literal>blosc</literal>, because we are going to talk always on how to use it in a Python environment) is pretty easy. It basically mimics the API of the <literal>zlib</literal> module included in the standard Python library.</paragraph><paragraph>Here are some examples on how to use it. For the full documentation, please refer to the <reference name="Library Reference" refuri="http://python-blosc.blosc.org/reference.html">Library Reference</reference><target ids="['library-reference']" names="['library reference']" refuri="http://python-blosc.blosc.org/reference.html"/> section.</paragraph><paragraph>Most of the times in this tutorial have been obtained using a VM with 2 cores on top of a Intel(R) Core(TM) i5-3380M CPU @ 2.90GHz.</paragraph><section ids="compressing-and-decompressing-with-blosc" names="compressing\ and\ decompressing\ with\ blosc"><title>Compressing and decompressing with <literal>blosc</literal></title><paragraph>Let’s start creating a NumPy array with 80 MB full of data:</paragraph><literal_block force="False" language="default" linenos="False" xml:space="preserve">>>> import numpy as np >>> a = np.linspace(0, 100, 1e7) >>> bytes_array = a.tostring() # get an array of bytes</literal_block><paragraph>and let’s compare Blosc operation with <literal>zlib</literal> (please note that we are using IPython for leveraging its timing capabilities):</paragraph><literal_block force="False" language="default" linenos="False" xml:space="preserve">>>> import zlib >>> %timeit zlib.compress(bytes_array) 1 loops, best of 3: 4.65 s per loop # ~ 17 MB/s >>> import blosc >>> %timeit blosc.compress(bytes_array, typesize=8) 100 loops, best of 3: 17.7 ms per loop # ~ 4.5 GB/s and 260x faster than zlib</literal_block><paragraph>but Blosc can use different codecs under the hood. Let’s try the LZ4 codec (instead of the BloscLZ which is the default):</paragraph><literal_block force="False" language="default" linenos="False" xml:space="preserve">>>> %timeit blosc.compress(bytes_array, typesize=8, cname='lz4') 100 loops, best of 3: 8.77 ms per loop # ~ 9.1 GB/s and 530x faster than zlib</literal_block><paragraph>It is important to note that this is quite more than the speed of a memcpy() in this machine:</paragraph><literal_block force="False" language="default" linenos="False" xml:space="preserve">>>> %timeit a.copy() 10 loops, best of 3: 27.2 ms per loop # ~ 2.9 GB/s</literal_block><paragraph>which means that both BloscLZ and LZ4 codecs can be faster than memcpy(), just as the Blosc slogan promises.</paragraph><paragraph>Blosc also comes with the ZLib codec too, and it actually runs faster than the naked zlib:</paragraph><literal_block force="False" language="default" linenos="False" xml:space="preserve">>>> %timeit blosc.compress(bytes_array, typesize=8, cname='zlib') 10 loops, best of 3: 139 ms per loop # ~ 580 MB/s and 33x faster than zlib</literal_block><paragraph>The reason why the internal Zlib codec in Blosc is faster than the ‘naked’ one is 1) that Blosc can use multithreading (using 8 threads here) and 2) that Blosc splits the data to compress in smaller blocks that are more friendly to the caches in modern CPUs.</paragraph><paragraph>Now, let’s have a look at the compression ratios:</paragraph><literal_block force="False" language="default" linenos="False" xml:space="preserve">>>> zpacked = zlib.compress(bytes_array); len(zpacked) 52994692 >>> round(len(bytes_array) / float(len(zpacked)), 3) 1.51 # zlib achieves a 1.5x compression ratio >>> blzpacked = blosc.compress(bytes_array, typesize=8, cname='blosclz'); len(blzpacked) 6986533 >>> round(len(bytes_array) / float(len(blzpacked)), 3) 11.451 # BloscLZ codec reaches more than 11x compression ratio >>> lz4packed = blosc.compress(bytes_array, typesize=8, cname='lz4'); len(lz4packed) 3716015 >>> round(len(bytes_array) / float(len(lz4packed)), 3) 21.528 # LZ4 codec reaches more than 21x compression ratio</literal_block><paragraph>Here we can see how Blosc, with its different codecs, is very efficient compressing this kind of binary data. It is important to note that the codecs alone are not the only responsible for high compression ratios. See what a naked LZ4 codec can do on the same string:</paragraph><literal_block force="False" language="default" linenos="False" xml:space="preserve">>>> import lz4 >>> lz4_packed = lz4.compress(bytes_array); len(lz4_packed) 80309133 >>> round(len(bytes_array) / float(len(lz4_packed)), 3) 0.996</literal_block><paragraph>That is, the naked LZ4 codec cannot compress the array of bytes at all, whereas through Blosc LZ4 can compress quite a lot. In fact, this difference in compression also happens with ZLib:</paragraph><literal_block force="False" language="default" linenos="False" xml:space="preserve">>>> zlibpacked = blosc.compress(bytes_array, typesize=8, cname='zlib'); len(zlibpacked) 875274 >>> round(len(zpacked) / float(len(zlibpacked)), 3) 60.546 # ZLib codec reaches 60x more compression than naked ZLib</literal_block><paragraph>Here it is a plot with the different compression ratios achieved:</paragraph><reference internal="True" refuri="_images/cratio-blosc-codecs.png"><image candidates="{'*': 'cratio-blosc-codecs.png'}" scale="75" uri="cratio-blosc-codecs.png"/></reference><paragraph>The explanation for this apparently shocking result is that Blosc uses filters (<literal>SHUFFLE</literal> and <literal>BITSHUFFLE</literal> currently, but the list can increase more in the future) prior to the compression stage and these allow in general for better compression ratios when using binary data.</paragraph><paragraph>How about decompression?:</paragraph><literal_block force="False" language="default" linenos="False" xml:space="preserve">>>> %timeit zlib.decompress(zpacked) 1 loops, best of 3: 275 ms per loop # ~ 290 MB/s >>> %timeit blosc.decompress(blzpacked) 100 loops, best of 3: 17.3 ms per loop # ~ 4.3 GB/s and 16x faster than zlib >>> %timeit blosc.decompress(lz4packed) 10 loops, best of 3: 41.9 ms per loop # ~ 1.9 GB/s and 6.5x faster than zlib >>> %timeit blosc.decompress(zlibpacked) 10 loops, best of 3: 40.7 ms per loop # ~ 2.0 GB/S and 6.8x faster than zlib</literal_block><paragraph>Here we see a couple of things:</paragraph><bullet_list bullet="*"><list_item><paragraph>All the internal codecs in Blosc are way faster than naked ZLib</paragraph></list_item><list_item><paragraph>The fastest codec for decompressing here is BloscLZ (remember that LZ4 was the fastest for compression).</paragraph></list_item></bullet_list><paragraph>The next plot summarizes the speed benchmarks above:</paragraph><reference internal="True" refuri="_images/speed-blosc-codecs.png"><image candidates="{'*': 'speed-blosc-codecs.png'}" scale="75" uri="speed-blosc-codecs.png"/></reference><paragraph>These results should reinforce the idea that there is not a single codec that wins in all areas (compression ratio, compression speed and decompression speed) and each has its pro’s and con’s. It is up to the user to choose whatever fits better to him (hint: there is no replacement for experimentation).</paragraph><paragraph>Finally, here it is the way to discover all the internal codecs inside your Blosc package:</paragraph><literal_block force="False" language="default" linenos="False" xml:space="preserve">>>> blosc.cnames ['blosclz', 'lz4', 'lz4hc', 'snappy', 'zlib', 'zstd']</literal_block><paragraph><emphasis>Note</emphasis>: the actual list of codecs may change depening on how you have compiled the underlying C-Blosc library.</paragraph></section><section ids="using-different-filters" names="using\ different\ filters"><title>Using different filters</title><paragraph>In the same way that you can use different codecs inside Blosc, you can use different filters too (currently <literal>SHUFFLE</literal> and <literal>BITSHUFLE</literal>). These allow the integrated compressors to compress more efficiently or not, depending on your datasets.</paragraph><paragraph>Here it is an example using the <literal>SHUFFLE</literal> filter:</paragraph><literal_block force="False" language="default" linenos="False" xml:space="preserve">>>> %time bpacked = blosc.compress(bytes_array, shuffle=blosc.SHUFFLE) CPU times: user 112 ms, sys: 4 ms, total: 116 ms Wall time: 29.9 ms >>> len(bpacked) 6986533</literal_block><paragraph>Here there is another example using <literal>BITSHUFFLE</literal>:</paragraph><literal_block force="False" language="default" linenos="False" xml:space="preserve">>>> %time bpacked = blosc.compress(bytes_array, shuffle=blosc.BITSHUFFLE) CPU times: user 120 ms, sys: 8 ms, total: 128 ms Wall time: 32.9 ms >>> len(bpacked) 5942257 # ~ 1.2x smaller than blosclz/shuffle</literal_block><paragraph>You can also deactivate filters completely with <literal>NOSHUFFLE</literal>:</paragraph><literal_block force="False" language="default" linenos="False" xml:space="preserve">>>> %time bpacked = blosc.compress(bytes_array, shuffle=blosc.NOSHUFFLE) CPU times: user 416 ms, sys: 8 ms, total: 424 ms Wall time: 107 ms >>> len(bpacked) 74323591 # just a 7% of compression wrt the original buffer</literal_block><paragraph>So you have quite a bit of flexibility on choosing different codecs and filters inside Blosc. Again, depending on the dataset you have and the requeriments on performance, you may want to experiment a bit before sticking with your preferred one.</paragraph></section><section ids="supporting-the-buffer-interface" names="supporting\ the\ buffer\ interface"><title>Supporting the buffer interface</title><paragraph>python-blosc supports compressing and decompressing from any bytes-like object that supports the buffer-interface: this includes <literal>buffer</literal>, <literal>memoryview</literal> and <literal>bytearray</literal>:</paragraph><literal_block force="False" language="default" linenos="False" xml:space="preserve">>>> input_bytes = b"abcdefghijklmnopqrstuvwxyz" >>> blosc.compress(input_bytes, typesize=1) '\x02\x01\x03\x01\x1a\x00\x00\x00\x1a\x00\x00\x00*\x00\x00\x00abcdefghijklmnopqrstuvwxyz' >>> blosc.compress(memoryview(input_bytes), typesize=1) '\x02\x01\x03\x01\x1a\x00\x00\x00\x1a\x00\x00\x00*\x00\x00\x00abcdefghijklmnopqrstuvwxyz' >>> blosc.compress(bytearray(input_bytes), typesize=1) '\x02\x01\x03\x01\x1a\x00\x00\x00\x1a\x00\x00\x00*\x00\x00\x00abcdefghijklmnopqrstuvwxyz' >>> compressed = blosc.compress(input_bytes, typesize=1) >>> blosc.decompress(compressed) 'abcdefghijklmnopqrstuvwxyz' >>> blosc.decompress(memoryview(compressed)) 'abcdefghijklmnopqrstuvwxyz' >>> blosc.decompress(bytearray(compressed)) 'abcdefghijklmnopqrstuvwxyz'</literal_block><paragraph>Note however, that there are subtle differences between Python 2.x and 3.x. For example, in Python 2.x we can compress/decompress both <literal>str</literal> and <literal>unicode</literal> types, whereas in Python 3.x we can only compress ‘binary’ data which does <emphasis>not</emphasis> include <literal>unicode</literal>.</paragraph></section><section ids="packaging-numpy-arrays" names="packaging\ numpy\ arrays"><title>Packaging NumPy arrays</title><paragraph>Want to use <literal>blosc</literal> to compress and decompress NumPy objects without having to worry about passing the typesize for optimal compression, or having to create the final container for decompression? <literal>blosc</literal> comes with the <literal>pack_array</literal> and <literal>unpack_array</literal> to perform this in a handy way:</paragraph><literal_block force="False" language="default" linenos="False" xml:space="preserve">>>> a = np.linspace(0, 100, 1e7) >>> packed = blosc.pack_array(a) >>> %timeit blosc.pack_array(a) 10 loops, best of 3: 104 ms per loop # ~ 770 MB/s >>> %timeit blosc.unpack_array(packed) 10 loops, best of 3: 76.3 ms per loop # ~ 1 GB/s</literal_block><paragraph>Although this is a convenient way for compressing/decompressing NumPy arrays, this method uses pickle/unpickle behind the scenes. This step implies additional copies, which takes both memory and time.</paragraph></section><section ids="compressing-from-a-data-pointer" names="compressing\ from\ a\ data\ pointer"><title>Compressing from a data pointer</title><paragraph>For avoiding the data copy problem in the previous section, <literal>blosc</literal> comes with a couple of lower-level functions: <literal>compress_ptr</literal> and <literal>decompress_ptr</literal>. Here are they in action:</paragraph><literal_block force="False" language="default" linenos="False" xml:space="preserve">>>> c = blosc.compress_ptr(a.__array_interface__['data'][0], a.size, a.dtype.itemsize, 9, True) >>> %timeit blosc.compress_ptr(a.__array_interface__['data'][0], a.size, a.dtype.itemsize, 9, True) 10 loops, best of 3: 17.8 ms per loop # ~ 4.5 GB/s >>> a2 = np.empty(a.size, dtype=a.dtype) >>> %timeit blosc.decompress_ptr(c, a2.__array_interface__['data'][0]) 100 loops, best of 3: 11 ms per loop # ~ 7.3 GB/s >>> (a == a2).all() True</literal_block><paragraph>As you see, these are really low level functions because you should pass actual pointers where the data is, as well as the size and itemsize (for compression). Needless to say, it is very easy to cause a segfault by passing incorrect parameters to the functions (wrong pointer or wrong size).</paragraph><paragraph>On the other hand, and contrarily to the <literal>pack_array</literal> / <literal>unpack_array</literal> method, the <literal>compress_ptr</literal> / <literal>decompress_ptr</literal> functions do not need to make internal copies of the data buffers, so they are extremely fast (as much as the C-Blosc library can be), but you have to provide a container when doing the de-serialization.</paragraph><paragraph><literal>blosc</literal> has a maximum <literal>blocksize</literal> of 2**31 bytes = 2 GB. Larger <literal>numpy</literal> arrays must be chunked by slicing, for example as:</paragraph><literal_block force="False" language="default" linenos="False" xml:space="preserve">>>> c = b'' >>> for index in np.arange( a.shape[0] ): c += blosc.compress_ptr(a[index,...].__array_interface__['data'][0], a.size, a.dtype.itemsize, 9, True)</literal_block></section><section ids="fine-tuning-compression-parameters" names="fine-tuning\ compression\ parameters"><title>Fine-tuning compression parameters</title><paragraph>There are a number of parameters that affect the de/compression bandwidth achieved by <literal>blosc</literal>:</paragraph><bullet_list bullet="*"><list_item><paragraph>The information content of the underlying data, and <literal>chunksize</literal>: the size of the data in each call to <literal>compress</literal> and analogous functions. ‘blosc’ does not manage chunksize itself, but an example implementation can be seen in the <literal>bloscpack</literal> module.</paragraph></list_item><list_item><paragraph><literal>n_threads</literal>: The number of threads to spawn inside <literal>c-blosc</literal>. <literal>n_threads</literal> may be changed by calling <literal>blosc.set_nthreads(16)</literal> for example. <literal>blosc</literal> performance generally scales sub-linearly with the number of threads with a coefficient roughly around 0.5-0.67. I.e. the expected performance compared to a single thread is 1.0 / (0.6*n_threads). For systems with hyper-threading the optimum number of threads is usually a small over-subscription of the number of _physical_ (not virtual) cores.</paragraph></list_item><list_item><paragraph><literal>blocksize</literal>: is the size of each continuously memory-element that is compressed, in bytes. Normally <literal>blosc</literal> attempts to automatically guess the size of each compressed block of data, but the user can set it manually by calling <literal>blosc.set_blocksize( size_in_bytes )</literal> for hand optimized situations. Often the L2 cache size (e.g. 256kB for an Intel Haswell) is a good starting point for optimization.</paragraph></list_item><list_item><paragraph><literal>shuffle</literal>: as discussed above the <literal>shuffle</literal> mode can substantially improve compression ratios when the</paragraph></list_item><list_item><paragraph><literal>clevel</literal>: the compression level called for the algorithm. Called as an argument to <literal>compress</literal> and similar functions.</paragraph></list_item><list_item><paragraph><literal>cname</literal>: the compressor codec itself. Each codec has its own characteristics that also vary depending on the underlying data. For example, ‘lz4’ tends to prefer smaller <literal>blocksize</literal> and does not slow significantly with <literal>clevel</literal>. In comparison <literal>zlib</literal> and <literal>zstd</literal> both slow substantially with increasing <literal>clevel</literal>, with an inflection point around <literal>clevel`=4-5 for 'zlib' and `clevel`=2-4 for 'zstd'. Called as an argument to `compress</literal> and similar functions.</paragraph></list_item><list_item><paragraph><literal>releasegil</literal>: optionally the Python Global Interpreter Lock (GIL) can be turned off during <literal>c-blosc</literal> operations by calling <literal>blosc.set_releasegil(True)</literal>. The default is off as there is a small overhead in releasing the GIL which can be significant for a small <literal>blocksize</literal>. GIL release is intended to be used in situations where other bounds (such as file or network I/O) are the rate-limiting ones and a Python <literal>ThreadPool</literal> or similar object can be used for parallel processing either with or without <literal>blosc</literal> threads. Initial testing suggests that an equal mix of <literal>ThreadPool</literal> and <literal>blosc</literal> threads is near optimal. I.e. a computer with 16 cores would have 4 <literal>blosc</literal> threads and 4 <literal>ThreadPool</literal> threads. An example of combining <literal>blosc</literal> and <literal>ThreadPool</literal> may be found in <literal>bench/threadpool.py</literal>.</paragraph></list_item></bullet_list></section><section ids="links-to-external-discussions-on-blosc-optimization" names="links\ to\ external\ discussions\ on\ blosc\ optimization"><title>Links to external discussions on <literal>blosc</literal> optimization</title><bullet_list bullet="*"><list_item><paragraph><reference name="Synthetic Benchmarks" refuri="http://www.blosc.org/synthetic-benchmarks.html">Synthetic Benchmarks</reference><target ids="['synthetic-benchmarks']" names="['synthetic benchmarks']" refuri="http://www.blosc.org/synthetic-benchmarks.html"/> by Francesc Alted</paragraph></list_item><list_item><paragraph><reference name="Genotype compressor benchmark" refuri="http://alimanfoo.github.io/2016/09/21/genotype-compression-benchmark.html">Genotype compressor benchmark</reference><target ids="['genotype-compressor-benchmark']" names="['genotype compressor benchmark']" refuri="http://alimanfoo.github.io/2016/09/21/genotype-compression-benchmark.html"/> by Alistair Miles</paragraph></list_item></bullet_list></section></section></document> SphinxTranslator.dispatch_visit calling visit_section for <section ids="tutorials" names="tutorials"><title>Tutorials</title><paragraph>Using <literal>python-blosc</literal> (or just <literal>blosc</literal>, because we are going to talk always on how to use it in a Python environment) is pretty easy. It basically mimics the API of the <literal>zlib</literal> module included in the standard Python library.</paragraph><paragraph>Here are some examples on how to use it. For the full documentation, please refer to the <reference name="Library Reference" refuri="http://python-blosc.blosc.org/reference.html">Library Reference</reference><target ids="['library-reference']" names="['library reference']" refuri="http://python-blosc.blosc.org/reference.html"/> section.</paragraph><paragraph>Most of the times in this tutorial have been obtained using a VM with 2 cores on top of a Intel(R) Core(TM) i5-3380M CPU @ 2.90GHz.</paragraph><section ids="compressing-and-decompressing-with-blosc" names="compressing\ and\ decompressing\ with\ blosc"><title>Compressing and decompressing with <literal>blosc</literal></title><paragraph>Let’s start creating a NumPy array with 80 MB full of data:</paragraph><literal_block force="False" language="default" linenos="False" xml:space="preserve">>>> import numpy as np >>> a = np.linspace(0, 100, 1e7) >>> bytes_array = a.tostring() # get an array of bytes</literal_block><paragraph>and let’s compare Blosc operation with <literal>zlib</literal> (please note that we are using IPython for leveraging its timing capabilities):</paragraph><literal_block force="False" language="default" linenos="False" xml:space="preserve">>>> import zlib >>> %timeit zlib.compress(bytes_array) 1 loops, best of 3: 4.65 s per loop # ~ 17 MB/s >>> import blosc >>> %timeit blosc.compress(bytes_array, typesize=8) 100 loops, best of 3: 17.7 ms per loop # ~ 4.5 GB/s and 260x faster than zlib</literal_block><paragraph>but Blosc can use different codecs under the hood. Let’s try the LZ4 codec (instead of the BloscLZ which is the default):</paragraph><literal_block force="False" language="default" linenos="False" xml:space="preserve">>>> %timeit blosc.compress(bytes_array, typesize=8, cname='lz4') 100 loops, best of 3: 8.77 ms per loop # ~ 9.1 GB/s and 530x faster than zlib</literal_block><paragraph>It is important to note that this is quite more than the speed of a memcpy() in this machine:</paragraph><literal_block force="False" language="default" linenos="False" xml:space="preserve">>>> %timeit a.copy() 10 loops, best of 3: 27.2 ms per loop # ~ 2.9 GB/s</literal_block><paragraph>which means that both BloscLZ and LZ4 codecs can be faster than memcpy(), just as the Blosc slogan promises.</paragraph><paragraph>Blosc also comes with the ZLib codec too, and it actually runs faster than the naked zlib:</paragraph><literal_block force="False" language="default" linenos="False" xml:space="preserve">>>> %timeit blosc.compress(bytes_array, typesize=8, cname='zlib') 10 loops, best of 3: 139 ms per loop # ~ 580 MB/s and 33x faster than zlib</literal_block><paragraph>The reason why the internal Zlib codec in Blosc is faster than the ‘naked’ one is 1) that Blosc can use multithreading (using 8 threads here) and 2) that Blosc splits the data to compress in smaller blocks that are more friendly to the caches in modern CPUs.</paragraph><paragraph>Now, let’s have a look at the compression ratios:</paragraph><literal_block force="False" language="default" linenos="False" xml:space="preserve">>>> zpacked = zlib.compress(bytes_array); len(zpacked) 52994692 >>> round(len(bytes_array) / float(len(zpacked)), 3) 1.51 # zlib achieves a 1.5x compression ratio >>> blzpacked = blosc.compress(bytes_array, typesize=8, cname='blosclz'); len(blzpacked) 6986533 >>> round(len(bytes_array) / float(len(blzpacked)), 3) 11.451 # BloscLZ codec reaches more than 11x compression ratio >>> lz4packed = blosc.compress(bytes_array, typesize=8, cname='lz4'); len(lz4packed) 3716015 >>> round(len(bytes_array) / float(len(lz4packed)), 3) 21.528 # LZ4 codec reaches more than 21x compression ratio</literal_block><paragraph>Here we can see how Blosc, with its different codecs, is very efficient compressing this kind of binary data. It is important to note that the codecs alone are not the only responsible for high compression ratios. See what a naked LZ4 codec can do on the same string:</paragraph><literal_block force="False" language="default" linenos="False" xml:space="preserve">>>> import lz4 >>> lz4_packed = lz4.compress(bytes_array); len(lz4_packed) 80309133 >>> round(len(bytes_array) / float(len(lz4_packed)), 3) 0.996</literal_block><paragraph>That is, the naked LZ4 codec cannot compress the array of bytes at all, whereas through Blosc LZ4 can compress quite a lot. In fact, this difference in compression also happens with ZLib:</paragraph><literal_block force="False" language="default" linenos="False" xml:space="preserve">>>> zlibpacked = blosc.compress(bytes_array, typesize=8, cname='zlib'); len(zlibpacked) 875274 >>> round(len(zpacked) / float(len(zlibpacked)), 3) 60.546 # ZLib codec reaches 60x more compression than naked ZLib</literal_block><paragraph>Here it is a plot with the different compression ratios achieved:</paragraph><reference internal="True" refuri="_images/cratio-blosc-codecs.png"><image candidates="{'*': 'cratio-blosc-codecs.png'}" scale="75" uri="cratio-blosc-codecs.png"/></reference><paragraph>The explanation for this apparently shocking result is that Blosc uses filters (<literal>SHUFFLE</literal> and <literal>BITSHUFFLE</literal> currently, but the list can increase more in the future) prior to the compression stage and these allow in general for better compression ratios when using binary data.</paragraph><paragraph>How about decompression?:</paragraph><literal_block force="False" language="default" linenos="False" xml:space="preserve">>>> %timeit zlib.decompress(zpacked) 1 loops, best of 3: 275 ms per loop # ~ 290 MB/s >>> %timeit blosc.decompress(blzpacked) 100 loops, best of 3: 17.3 ms per loop # ~ 4.3 GB/s and 16x faster than zlib >>> %timeit blosc.decompress(lz4packed) 10 loops, best of 3: 41.9 ms per loop # ~ 1.9 GB/s and 6.5x faster than zlib >>> %timeit blosc.decompress(zlibpacked) 10 loops, best of 3: 40.7 ms per loop # ~ 2.0 GB/S and 6.8x faster than zlib</literal_block><paragraph>Here we see a couple of things:</paragraph><bullet_list bullet="*"><list_item><paragraph>All the internal codecs in Blosc are way faster than naked ZLib</paragraph></list_item><list_item><paragraph>The fastest codec for decompressing here is BloscLZ (remember that LZ4 was the fastest for compression).</paragraph></list_item></bullet_list><paragraph>The next plot summarizes the speed benchmarks above:</paragraph><reference internal="True" refuri="_images/speed-blosc-codecs.png"><image candidates="{'*': 'speed-blosc-codecs.png'}" scale="75" uri="speed-blosc-codecs.png"/></reference><paragraph>These results should reinforce the idea that there is not a single codec that wins in all areas (compression ratio, compression speed and decompression speed) and each has its pro’s and con’s. It is up to the user to choose whatever fits better to him (hint: there is no replacement for experimentation).</paragraph><paragraph>Finally, here it is the way to discover all the internal codecs inside your Blosc package:</paragraph><literal_block force="False" language="default" linenos="False" xml:space="preserve">>>> blosc.cnames ['blosclz', 'lz4', 'lz4hc', 'snappy', 'zlib', 'zstd']</literal_block><paragraph><emphasis>Note</emphasis>: the actual list of codecs may change depening on how you have compiled the underlying C-Blosc library.</paragraph></section><section ids="using-different-filters" names="using\ different\ filters"><title>Using different filters</title><paragraph>In the same way that you can use different codecs inside Blosc, you can use different filters too (currently <literal>SHUFFLE</literal> and <literal>BITSHUFLE</literal>). These allow the integrated compressors to compress more efficiently or not, depending on your datasets.</paragraph><paragraph>Here it is an example using the <literal>SHUFFLE</literal> filter:</paragraph><literal_block force="False" language="default" linenos="False" xml:space="preserve">>>> %time bpacked = blosc.compress(bytes_array, shuffle=blosc.SHUFFLE) CPU times: user 112 ms, sys: 4 ms, total: 116 ms Wall time: 29.9 ms >>> len(bpacked) 6986533</literal_block><paragraph>Here there is another example using <literal>BITSHUFFLE</literal>:</paragraph><literal_block force="False" language="default" linenos="False" xml:space="preserve">>>> %time bpacked = blosc.compress(bytes_array, shuffle=blosc.BITSHUFFLE) CPU times: user 120 ms, sys: 8 ms, total: 128 ms Wall time: 32.9 ms >>> len(bpacked) 5942257 # ~ 1.2x smaller than blosclz/shuffle</literal_block><paragraph>You can also deactivate filters completely with <literal>NOSHUFFLE</literal>:</paragraph><literal_block force="False" language="default" linenos="False" xml:space="preserve">>>> %time bpacked = blosc.compress(bytes_array, shuffle=blosc.NOSHUFFLE) CPU times: user 416 ms, sys: 8 ms, total: 424 ms Wall time: 107 ms >>> len(bpacked) 74323591 # just a 7% of compression wrt the original buffer</literal_block><paragraph>So you have quite a bit of flexibility on choosing different codecs and filters inside Blosc. Again, depending on the dataset you have and the requeriments on performance, you may want to experiment a bit before sticking with your preferred one.</paragraph></section><section ids="supporting-the-buffer-interface" names="supporting\ the\ buffer\ interface"><title>Supporting the buffer interface</title><paragraph>python-blosc supports compressing and decompressing from any bytes-like object that supports the buffer-interface: this includes <literal>buffer</literal>, <literal>memoryview</literal> and <literal>bytearray</literal>:</paragraph><literal_block force="False" language="default" linenos="False" xml:space="preserve">>>> input_bytes = b"abcdefghijklmnopqrstuvwxyz" >>> blosc.compress(input_bytes, typesize=1) '\x02\x01\x03\x01\x1a\x00\x00\x00\x1a\x00\x00\x00*\x00\x00\x00abcdefghijklmnopqrstuvwxyz' >>> blosc.compress(memoryview(input_bytes), typesize=1) '\x02\x01\x03\x01\x1a\x00\x00\x00\x1a\x00\x00\x00*\x00\x00\x00abcdefghijklmnopqrstuvwxyz' >>> blosc.compress(bytearray(input_bytes), typesize=1) '\x02\x01\x03\x01\x1a\x00\x00\x00\x1a\x00\x00\x00*\x00\x00\x00abcdefghijklmnopqrstuvwxyz' >>> compressed = blosc.compress(input_bytes, typesize=1) >>> blosc.decompress(compressed) 'abcdefghijklmnopqrstuvwxyz' >>> blosc.decompress(memoryview(compressed)) 'abcdefghijklmnopqrstuvwxyz' >>> blosc.decompress(bytearray(compressed)) 'abcdefghijklmnopqrstuvwxyz'</literal_block><paragraph>Note however, that there are subtle differences between Python 2.x and 3.x. For example, in Python 2.x we can compress/decompress both <literal>str</literal> and <literal>unicode</literal> types, whereas in Python 3.x we can only compress ‘binary’ data which does <emphasis>not</emphasis> include <literal>unicode</literal>.</paragraph></section><section ids="packaging-numpy-arrays" names="packaging\ numpy\ arrays"><title>Packaging NumPy arrays</title><paragraph>Want to use <literal>blosc</literal> to compress and decompress NumPy objects without having to worry about passing the typesize for optimal compression, or having to create the final container for decompression? <literal>blosc</literal> comes with the <literal>pack_array</literal> and <literal>unpack_array</literal> to perform this in a handy way:</paragraph><literal_block force="False" language="default" linenos="False" xml:space="preserve">>>> a = np.linspace(0, 100, 1e7) >>> packed = blosc.pack_array(a) >>> %timeit blosc.pack_array(a) 10 loops, best of 3: 104 ms per loop # ~ 770 MB/s >>> %timeit blosc.unpack_array(packed) 10 loops, best of 3: 76.3 ms per loop # ~ 1 GB/s</literal_block><paragraph>Although this is a convenient way for compressing/decompressing NumPy arrays, this method uses pickle/unpickle behind the scenes. This step implies additional copies, which takes both memory and time.</paragraph></section><section ids="compressing-from-a-data-pointer" names="compressing\ from\ a\ data\ pointer"><title>Compressing from a data pointer</title><paragraph>For avoiding the data copy problem in the previous section, <literal>blosc</literal> comes with a couple of lower-level functions: <literal>compress_ptr</literal> and <literal>decompress_ptr</literal>. Here are they in action:</paragraph><literal_block force="False" language="default" linenos="False" xml:space="preserve">>>> c = blosc.compress_ptr(a.__array_interface__['data'][0], a.size, a.dtype.itemsize, 9, True) >>> %timeit blosc.compress_ptr(a.__array_interface__['data'][0], a.size, a.dtype.itemsize, 9, True) 10 loops, best of 3: 17.8 ms per loop # ~ 4.5 GB/s >>> a2 = np.empty(a.size, dtype=a.dtype) >>> %timeit blosc.decompress_ptr(c, a2.__array_interface__['data'][0]) 100 loops, best of 3: 11 ms per loop # ~ 7.3 GB/s >>> (a == a2).all() True</literal_block><paragraph>As you see, these are really low level functions because you should pass actual pointers where the data is, as well as the size and itemsize (for compression). Needless to say, it is very easy to cause a segfault by passing incorrect parameters to the functions (wrong pointer or wrong size).</paragraph><paragraph>On the other hand, and contrarily to the <literal>pack_array</literal> / <literal>unpack_array</literal> method, the <literal>compress_ptr</literal> / <literal>decompress_ptr</literal> functions do not need to make internal copies of the data buffers, so they are extremely fast (as much as the C-Blosc library can be), but you have to provide a container when doing the de-serialization.</paragraph><paragraph><literal>blosc</literal> has a maximum <literal>blocksize</literal> of 2**31 bytes = 2 GB. Larger <literal>numpy</literal> arrays must be chunked by slicing, for example as:</paragraph><literal_block force="False" language="default" linenos="False" xml:space="preserve">>>> c = b'' >>> for index in np.arange( a.shape[0] ): c += blosc.compress_ptr(a[index,...].__array_interface__['data'][0], a.size, a.dtype.itemsize, 9, True)</literal_block></section><section ids="fine-tuning-compression-parameters" names="fine-tuning\ compression\ parameters"><title>Fine-tuning compression parameters</title><paragraph>There are a number of parameters that affect the de/compression bandwidth achieved by <literal>blosc</literal>:</paragraph><bullet_list bullet="*"><list_item><paragraph>The information content of the underlying data, and <literal>chunksize</literal>: the size of the data in each call to <literal>compress</literal> and analogous functions. ‘blosc’ does not manage chunksize itself, but an example implementation can be seen in the <literal>bloscpack</literal> module.</paragraph></list_item><list_item><paragraph><literal>n_threads</literal>: The number of threads to spawn inside <literal>c-blosc</literal>. <literal>n_threads</literal> may be changed by calling <literal>blosc.set_nthreads(16)</literal> for example. <literal>blosc</literal> performance generally scales sub-linearly with the number of threads with a coefficient roughly around 0.5-0.67. I.e. the expected performance compared to a single thread is 1.0 / (0.6*n_threads). For systems with hyper-threading the optimum number of threads is usually a small over-subscription of the number of _physical_ (not virtual) cores.</paragraph></list_item><list_item><paragraph><literal>blocksize</literal>: is the size of each continuously memory-element that is compressed, in bytes. Normally <literal>blosc</literal> attempts to automatically guess the size of each compressed block of data, but the user can set it manually by calling <literal>blosc.set_blocksize( size_in_bytes )</literal> for hand optimized situations. Often the L2 cache size (e.g. 256kB for an Intel Haswell) is a good starting point for optimization.</paragraph></list_item><list_item><paragraph><literal>shuffle</literal>: as discussed above the <literal>shuffle</literal> mode can substantially improve compression ratios when the</paragraph></list_item><list_item><paragraph><literal>clevel</literal>: the compression level called for the algorithm. Called as an argument to <literal>compress</literal> and similar functions.</paragraph></list_item><list_item><paragraph><literal>cname</literal>: the compressor codec itself. Each codec has its own characteristics that also vary depending on the underlying data. For example, ‘lz4’ tends to prefer smaller <literal>blocksize</literal> and does not slow significantly with <literal>clevel</literal>. In comparison <literal>zlib</literal> and <literal>zstd</literal> both slow substantially with increasing <literal>clevel</literal>, with an inflection point around <literal>clevel`=4-5 for 'zlib' and `clevel`=2-4 for 'zstd'. Called as an argument to `compress</literal> and similar functions.</paragraph></list_item><list_item><paragraph><literal>releasegil</literal>: optionally the Python Global Interpreter Lock (GIL) can be turned off during <literal>c-blosc</literal> operations by calling <literal>blosc.set_releasegil(True)</literal>. The default is off as there is a small overhead in releasing the GIL which can be significant for a small <literal>blocksize</literal>. GIL release is intended to be used in situations where other bounds (such as file or network I/O) are the rate-limiting ones and a Python <literal>ThreadPool</literal> or similar object can be used for parallel processing either with or without <literal>blosc</literal> threads. Initial testing suggests that an equal mix of <literal>ThreadPool</literal> and <literal>blosc</literal> threads is near optimal. I.e. a computer with 16 cores would have 4 <literal>blosc</literal> threads and 4 <literal>ThreadPool</literal> threads. An example of combining <literal>blosc</literal> and <literal>ThreadPool</literal> may be found in <literal>bench/threadpool.py</literal>.</paragraph></list_item></bullet_list></section><section ids="links-to-external-discussions-on-blosc-optimization" names="links\ to\ external\ discussions\ on\ blosc\ optimization"><title>Links to external discussions on <literal>blosc</literal> optimization</title><bullet_list bullet="*"><list_item><paragraph><reference name="Synthetic Benchmarks" refuri="http://www.blosc.org/synthetic-benchmarks.html">Synthetic Benchmarks</reference><target ids="['synthetic-benchmarks']" names="['synthetic benchmarks']" refuri="http://www.blosc.org/synthetic-benchmarks.html"/> by Francesc Alted</paragraph></list_item><list_item><paragraph><reference name="Genotype compressor benchmark" refuri="http://alimanfoo.github.io/2016/09/21/genotype-compression-benchmark.html">Genotype compressor benchmark</reference><target ids="['genotype-compressor-benchmark']" names="['genotype compressor benchmark']" refuri="http://alimanfoo.github.io/2016/09/21/genotype-compression-benchmark.html"/> by Alistair Miles</paragraph></list_item></bullet_list></section></section> SphinxTranslator.dispatch_visit calling visit_title for <title>Tutorials</title> SphinxTranslator.dispatch_visit calling visit_Text for Tutorials SphinxTranslator.dispatch_departure calling depart_Text for Tutorials SphinxTranslator.dispatch_departure calling depart_title for <title>Tutorials</title> SphinxTranslator.dispatch_visit calling visit_paragraph for <paragraph>Using <literal>python-blosc</literal> (or just <literal>blosc</literal>, because we are going to talk always on how to use it in a Python environment) is pretty easy. It basically mimics the API of the <literal>zlib</literal> module included in the standard Python library.</paragraph> SphinxTranslator.dispatch_visit calling visit_Text for Using SphinxTranslator.dispatch_departure calling depart_Text for Using SphinxTranslator.dispatch_visit calling visit_literal for <literal>python-blosc</literal> SphinxTranslator.dispatch_visit calling visit_Text for python-blosc SphinxTranslator.dispatch_departure calling depart_Text for python-blosc SphinxTranslator.dispatch_departure calling depart_literal for <literal>python-blosc</literal> SphinxTranslator.dispatch_visit calling visit_Text for (or just SphinxTranslator.dispatch_departure calling depart_Text for (or just SphinxTranslator.dispatch_visit calling visit_literal for <literal>blosc</literal> SphinxTranslator.dispatch_visit calling visit_Text for blosc SphinxTranslator.dispatch_departure calling depart_Text for blosc SphinxTranslator.dispatch_departure calling depart_literal for <literal>blosc</literal> SphinxTranslator.dispatch_visit calling visit_Text for , because we are going to talk always on how to use it in a Python environment) is pretty easy. It basically mimics the API of the SphinxTranslator.dispatch_departure calling depart_Text for , because we are going to talk always on how to use it in a Python environment) is pretty easy. It basically mimics the API of the SphinxTranslator.dispatch_visit calling visit_literal for <literal>zlib</literal> SphinxTranslator.dispatch_visit calling visit_Text for zlib SphinxTranslator.dispatch_departure calling depart_Text for zlib SphinxTranslator.dispatch_departure calling depart_literal for <literal>zlib</literal> SphinxTranslator.dispatch_visit calling visit_Text for module included in the standard Python library. SphinxTranslator.dispatch_departure calling depart_Text for module included in the standard Python library. SphinxTranslator.dispatch_departure calling depart_paragraph for <paragraph>Using <literal>python-blosc</literal> (or just <literal>blosc</literal>, because we are going to talk always on how to use it in a Python environment) is pretty easy. It basically mimics the API of the <literal>zlib</literal> module included in the standard Python library.</paragraph> SphinxTranslator.dispatch_visit calling visit_paragraph for <paragraph>Here are some examples on how to use it. For the full documentation, please refer to the <reference name="Library Reference" refuri="http://python-blosc.blosc.org/reference.html">Library Reference</reference><target ids="['library-reference']" names="['library reference']" refuri="http://python-blosc.blosc.org/reference.html"/> section.</paragraph> SphinxTranslator.dispatch_visit calling visit_Text for Here are some examples on how to use it. For the full documentation, please refer to the SphinxTranslator.dispatch_departure calling depart_Text for Here are some examples on how to use it. For the full documentation, please refer to the SphinxTranslator.dispatch_visit calling visit_reference for <reference name="Library Reference" refuri="http://python-blosc.blosc.org/reference.html">Library Reference</reference> SphinxTranslator.dispatch_visit calling visit_Text for Library Reference SphinxTranslator.dispatch_departure calling depart_Text for Library Reference SphinxTranslator.dispatch_departure calling depart_reference for <reference name="Library Reference" refuri="http://python-blosc.blosc.org/reference.html">Library Reference</reference> SphinxTranslator.dispatch_visit calling visit_target for <target ids="['library-reference']" names="['library reference']" refuri="http://python-blosc.blosc.org/reference.html"/> SphinxTranslator.dispatch_departure calling depart_target for <target ids="['library-reference']" names="['library reference']" refuri="http://python-blosc.blosc.org/reference.html"/> SphinxTranslator.dispatch_visit calling visit_Text for section. SphinxTranslator.dispatch_departure calling depart_Text for section. SphinxTranslator.dispatch_departure calling depart_paragraph for <paragraph>Here are some examples on how to use it. For the full documentation, please refer to the <reference name="Library Reference" refuri="http://python-blosc.blosc.org/reference.html">Library Reference</reference><target ids="['library-reference']" names="['library reference']" refuri="http://python-blosc.blosc.org/reference.html"/> section.</paragraph> SphinxTranslator.dispatch_visit calling visit_paragraph for <paragraph>Most of the times in this tutorial have been obtained using a VM with 2 cores on top of a Intel(R) Core(TM) i5-3380M CPU @ 2.90GHz.</paragraph> SphinxTranslator.dispatch_visit calling visit_Text for Most of the times in this tutorial have been obtained using a VM with 2 cores on top of a Intel(R) Core(TM) i5-3380M CPU @ 2.90GHz. SphinxTranslator.dispatch_departure calling depart_Text for Most of the times in this tutorial have been obtained using a VM with 2 cores on top of a Intel(R) Core(TM) i5-3380M CPU @ 2.90GHz. SphinxTranslator.dispatch_departure calling depart_paragraph for <paragraph>Most of the times in this tutorial have been obtained using a VM with 2 cores on top of a Intel(R) Core(TM) i5-3380M CPU @ 2.90GHz.</paragraph> SphinxTranslator.dispatch_visit calling visit_section for <section ids="compressing-and-decompressing-with-blosc" names="compressing\ and\ decompressing\ with\ blosc"><title>Compressing and decompressing with <literal>blosc</literal></title><paragraph>Let’s start creating a NumPy array with 80 MB full of data:</paragraph><literal_block force="False" language="default" linenos="False" xml:space="preserve">>>> import numpy as np >>> a = np.linspace(0, 100, 1e7) >>> bytes_array = a.tostring() # get an array of bytes</literal_block><paragraph>and let’s compare Blosc operation with <literal>zlib</literal> (please note that we are using IPython for leveraging its timing capabilities):</paragraph><literal_block force="False" language="default" linenos="False" xml:space="preserve">>>> import zlib >>> %timeit zlib.compress(bytes_array) 1 loops, best of 3: 4.65 s per loop # ~ 17 MB/s >>> import blosc >>> %timeit blosc.compress(bytes_array, typesize=8) 100 loops, best of 3: 17.7 ms per loop # ~ 4.5 GB/s and 260x faster than zlib</literal_block><paragraph>but Blosc can use different codecs under the hood. Let’s try the LZ4 codec (instead of the BloscLZ which is the default):</paragraph><literal_block force="False" language="default" linenos="False" xml:space="preserve">>>> %timeit blosc.compress(bytes_array, typesize=8, cname='lz4') 100 loops, best of 3: 8.77 ms per loop # ~ 9.1 GB/s and 530x faster than zlib</literal_block><paragraph>It is important to note that this is quite more than the speed of a memcpy() in this machine:</paragraph><literal_block force="False" language="default" linenos="False" xml:space="preserve">>>> %timeit a.copy() 10 loops, best of 3: 27.2 ms per loop # ~ 2.9 GB/s</literal_block><paragraph>which means that both BloscLZ and LZ4 codecs can be faster than memcpy(), just as the Blosc slogan promises.</paragraph><paragraph>Blosc also comes with the ZLib codec too, and it actually runs faster than the naked zlib:</paragraph><literal_block force="False" language="default" linenos="False" xml:space="preserve">>>> %timeit blosc.compress(bytes_array, typesize=8, cname='zlib') 10 loops, best of 3: 139 ms per loop # ~ 580 MB/s and 33x faster than zlib</literal_block><paragraph>The reason why the internal Zlib codec in Blosc is faster than the ‘naked’ one is 1) that Blosc can use multithreading (using 8 threads here) and 2) that Blosc splits the data to compress in smaller blocks that are more friendly to the caches in modern CPUs.</paragraph><paragraph>Now, let’s have a look at the compression ratios:</paragraph><literal_block force="False" language="default" linenos="False" xml:space="preserve">>>> zpacked = zlib.compress(bytes_array); len(zpacked) 52994692 >>> round(len(bytes_array) / float(len(zpacked)), 3) 1.51 # zlib achieves a 1.5x compression ratio >>> blzpacked = blosc.compress(bytes_array, typesize=8, cname='blosclz'); len(blzpacked) 6986533 >>> round(len(bytes_array) / float(len(blzpacked)), 3) 11.451 # BloscLZ codec reaches more than 11x compression ratio >>> lz4packed = blosc.compress(bytes_array, typesize=8, cname='lz4'); len(lz4packed) 3716015 >>> round(len(bytes_array) / float(len(lz4packed)), 3) 21.528 # LZ4 codec reaches more than 21x compression ratio</literal_block><paragraph>Here we can see how Blosc, with its different codecs, is very efficient compressing this kind of binary data. It is important to note that the codecs alone are not the only responsible for high compression ratios. See what a naked LZ4 codec can do on the same string:</paragraph><literal_block force="False" language="default" linenos="False" xml:space="preserve">>>> import lz4 >>> lz4_packed = lz4.compress(bytes_array); len(lz4_packed) 80309133 >>> round(len(bytes_array) / float(len(lz4_packed)), 3) 0.996</literal_block><paragraph>That is, the naked LZ4 codec cannot compress the array of bytes at all, whereas through Blosc LZ4 can compress quite a lot. In fact, this difference in compression also happens with ZLib:</paragraph><literal_block force="False" language="default" linenos="False" xml:space="preserve">>>> zlibpacked = blosc.compress(bytes_array, typesize=8, cname='zlib'); len(zlibpacked) 875274 >>> round(len(zpacked) / float(len(zlibpacked)), 3) 60.546 # ZLib codec reaches 60x more compression than naked ZLib</literal_block><paragraph>Here it is a plot with the different compression ratios achieved:</paragraph><reference internal="True" refuri="_images/cratio-blosc-codecs.png"><image candidates="{'*': 'cratio-blosc-codecs.png'}" scale="75" uri="cratio-blosc-codecs.png"/></reference><paragraph>The explanation for this apparently shocking result is that Blosc uses filters (<literal>SHUFFLE</literal> and <literal>BITSHUFFLE</literal> currently, but the list can increase more in the future) prior to the compression stage and these allow in general for better compression ratios when using binary data.</paragraph><paragraph>How about decompression?:</paragraph><literal_block force="False" language="default" linenos="False" xml:space="preserve">>>> %timeit zlib.decompress(zpacked) 1 loops, best of 3: 275 ms per loop # ~ 290 MB/s >>> %timeit blosc.decompress(blzpacked) 100 loops, best of 3: 17.3 ms per loop # ~ 4.3 GB/s and 16x faster than zlib >>> %timeit blosc.decompress(lz4packed) 10 loops, best of 3: 41.9 ms per loop # ~ 1.9 GB/s and 6.5x faster than zlib >>> %timeit blosc.decompress(zlibpacked) 10 loops, best of 3: 40.7 ms per loop # ~ 2.0 GB/S and 6.8x faster than zlib</literal_block><paragraph>Here we see a couple of things:</paragraph><bullet_list bullet="*"><list_item><paragraph>All the internal codecs in Blosc are way faster than naked ZLib</paragraph></list_item><list_item><paragraph>The fastest codec for decompressing here is BloscLZ (remember that LZ4 was the fastest for compression).</paragraph></list_item></bullet_list><paragraph>The next plot summarizes the speed benchmarks above:</paragraph><reference internal="True" refuri="_images/speed-blosc-codecs.png"><image candidates="{'*': 'speed-blosc-codecs.png'}" scale="75" uri="speed-blosc-codecs.png"/></reference><paragraph>These results should reinforce the idea that there is not a single codec that wins in all areas (compression ratio, compression speed and decompression speed) and each has its pro’s and con’s. It is up to the user to choose whatever fits better to him (hint: there is no replacement for experimentation).</paragraph><paragraph>Finally, here it is the way to discover all the internal codecs inside your Blosc package:</paragraph><literal_block force="False" language="default" linenos="False" xml:space="preserve">>>> blosc.cnames ['blosclz', 'lz4', 'lz4hc', 'snappy', 'zlib', 'zstd']</literal_block><paragraph><emphasis>Note</emphasis>: the actual list of codecs may change depening on how you have compiled the underlying C-Blosc library.</paragraph></section> SphinxTranslator.dispatch_visit calling visit_title for <title>Compressing and decompressing with <literal>blosc</literal></title> SphinxTranslator.dispatch_visit calling visit_Text for Compressing and decompressing with SphinxTranslator.dispatch_departure calling depart_Text for Compressing and decompressing with SphinxTranslator.dispatch_visit calling visit_literal for <literal>blosc</literal> SphinxTranslator.dispatch_visit calling visit_Text for blosc SphinxTranslator.dispatch_departure calling depart_Text for blosc SphinxTranslator.dispatch_departure calling depart_literal for <literal>blosc</literal> SphinxTranslator.dispatch_departure calling depart_title for <title>Compressing and decompressing with <literal>blosc</literal></title> SphinxTranslator.dispatch_visit calling visit_paragraph for <paragraph>Let’s start creating a NumPy array with 80 MB full of data:</paragraph> SphinxTranslator.dispatch_visit calling visit_Text for Let’s start creating a NumPy array with 80 MB full of data: SphinxTranslator.dispatch_departure calling depart_Text for Let’s start creating a NumPy array with 80 MB full of data: SphinxTranslator.dispatch_departure calling depart_paragraph for <paragraph>Let’s start creating a NumPy array with 80 MB full of data:</paragraph> SphinxTranslator.dispatch_visit calling visit_literal_block for <literal_block force="False" language="default" linenos="False" xml:space="preserve">>>> import numpy as np >>> a = np.linspace(0, 100, 1e7) >>> bytes_array = a.tostring() # get an array of bytes</literal_block> SphinxTranslator.dispatch_visit calling visit_paragraph for <paragraph>and let’s compare Blosc operation with <literal>zlib</literal> (please note that we are using IPython for leveraging its timing capabilities):</paragraph> SphinxTranslator.dispatch_visit calling visit_Text for and let’s compare Blosc operation with SphinxTranslator.dispatch_departure calling depart_Text for and let’s compare Blosc operation with SphinxTranslator.dispatch_visit calling visit_literal for <literal>zlib</literal> SphinxTranslator.dispatch_visit calling visit_Text for zlib SphinxTranslator.dispatch_departure calling depart_Text for zlib SphinxTranslator.dispatch_departure calling depart_literal for <literal>zlib</literal> SphinxTranslator.dispatch_visit calling visit_Text for (please note that we are using IPython for leveraging its timing capabilities): SphinxTranslator.dispatch_departure calling depart_Text for (please note that we are using IPython for leveraging its timing capabilities): SphinxTranslator.dispatch_departure calling depart_paragraph for <paragraph>and let’s compare Blosc operation with <literal>zlib</literal> (please note that we are using IPython for leveraging its timing capabilities):</paragraph> SphinxTranslator.dispatch_visit calling visit_literal_block for <literal_block force="False" language="default" linenos="False" xml:space="preserve">>>> import zlib >>> %timeit zlib.compress(bytes_array) 1 loops, best of 3: 4.65 s per loop # ~ 17 MB/s >>> import blosc >>> %timeit blosc.compress(bytes_array, typesize=8) 100 loops, best of 3: 17.7 ms per loop # ~ 4.5 GB/s and 260x faster than zlib</literal_block> SphinxTranslator.dispatch_visit calling visit_paragraph for <paragraph>but Blosc can use different codecs under the hood. Let’s try the LZ4 codec (instead of the BloscLZ which is the default):</paragraph> SphinxTranslator.dispatch_visit calling visit_Text for but Blosc can use different codecs under the hood. Let’s try the LZ4 codec (instead of the BloscLZ which is the default): SphinxTranslator.dispatch_departure calling depart_Text for but Blosc can use different codecs under the hood. Let’s try the LZ4 codec (instead of the BloscLZ which is the default): SphinxTranslator.dispatch_departure calling depart_paragraph for <paragraph>but Blosc can use different codecs under the hood. Let’s try the LZ4 codec (instead of the BloscLZ which is the default):</paragraph> SphinxTranslator.dispatch_visit calling visit_literal_block for <literal_block force="False" language="default" linenos="False" xml:space="preserve">>>> %timeit blosc.compress(bytes_array, typesize=8, cname='lz4') 100 loops, best of 3: 8.77 ms per loop # ~ 9.1 GB/s and 530x faster than zlib</literal_block> SphinxTranslator.dispatch_visit calling visit_paragraph for <paragraph>It is important to note that this is quite more than the speed of a memcpy() in this machine:</paragraph> SphinxTranslator.dispatch_visit calling visit_Text for It is important to note that this is quite more than the speed of a memcpy() in this machine: SphinxTranslator.dispatch_departure calling depart_Text for It is important to note that this is quite more than the speed of a memcpy() in this machine: SphinxTranslator.dispatch_departure calling depart_paragraph for <paragraph>It is important to note that this is quite more than the speed of a memcpy() in this machine:</paragraph> SphinxTranslator.dispatch_visit calling visit_literal_block for <literal_block force="False" language="default" linenos="False" xml:space="preserve">>>> %timeit a.copy() 10 loops, best of 3: 27.2 ms per loop # ~ 2.9 GB/s</literal_block> SphinxTranslator.dispatch_visit calling visit_paragraph for <paragraph>which means that both BloscLZ and LZ4 codecs can be faster than memcpy(), just as the Blosc slogan promises.</paragraph> SphinxTranslator.dispatch_visit calling visit_Text for which means that both BloscLZ and LZ4 codecs can be faster than memcpy(), just as the Blosc slogan promises. SphinxTranslator.dispatch_departure calling depart_Text for which means that both BloscLZ and LZ4 codecs can be faster than memcpy(), just as the Blosc slogan promises. SphinxTranslator.dispatch_departure calling depart_paragraph for <paragraph>which means that both BloscLZ and LZ4 codecs can be faster than memcpy(), just as the Blosc slogan promises.</paragraph> SphinxTranslator.dispatch_visit calling visit_paragraph for <paragraph>Blosc also comes with the ZLib codec too, and it actually runs faster than the naked zlib:</paragraph> SphinxTranslator.dispatch_visit calling visit_Text for Blosc also comes with the ZLib codec too, and it actually runs faster than the naked zlib: SphinxTranslator.dispatch_departure calling depart_Text for Blosc also comes with the ZLib codec too, and it actually runs faster than the naked zlib: SphinxTranslator.dispatch_departure calling depart_paragraph for <paragraph>Blosc also comes with the ZLib codec too, and it actually runs faster than the naked zlib:</paragraph> SphinxTranslator.dispatch_visit calling visit_literal_block for <literal_block force="False" language="default" linenos="False" xml:space="preserve">>>> %timeit blosc.compress(bytes_array, typesize=8, cname='zlib') 10 loops, best of 3: 139 ms per loop # ~ 580 MB/s and 33x faster than zlib</literal_block> SphinxTranslator.dispatch_visit calling visit_paragraph for <paragraph>The reason why the internal Zlib codec in Blosc is faster than the ‘naked’ one is 1) that Blosc can use multithreading (using 8 threads here) and 2) that Blosc splits the data to compress in smaller blocks that are more friendly to the caches in modern CPUs.</paragraph> SphinxTranslator.dispatch_visit calling visit_Text for The reason why the internal Zlib codec in Blosc is faster than the ‘naked’ one is 1) that Blosc can use multithreading (using 8 threads here) and 2) that Blosc splits the data to compress in smaller blocks that are more friendly to the caches in modern CPUs. SphinxTranslator.dispatch_departure calling depart_Text for The reason why the internal Zlib codec in Blosc is faster than the ‘naked’ one is 1) that Blosc can use multithreading (using 8 threads here) and 2) that Blosc splits the data to compress in smaller blocks that are more friendly to the caches in modern CPUs. SphinxTranslator.dispatch_departure calling depart_paragraph for <paragraph>The reason why the internal Zlib codec in Blosc is faster than the ‘naked’ one is 1) that Blosc can use multithreading (using 8 threads here) and 2) that Blosc splits the data to compress in smaller blocks that are more friendly to the caches in modern CPUs.</paragraph> SphinxTranslator.dispatch_visit calling visit_paragraph for <paragraph>Now, let’s have a look at the compression ratios:</paragraph> SphinxTranslator.dispatch_visit calling visit_Text for Now, let’s have a look at the compression ratios: SphinxTranslator.dispatch_departure calling depart_Text for Now, let’s have a look at the compression ratios: SphinxTranslator.dispatch_departure calling depart_paragraph for <paragraph>Now, let’s have a look at the compression ratios:</paragraph> SphinxTranslator.dispatch_visit calling visit_literal_block for <literal_block force="False" language="default" linenos="False" xml:space="preserve">>>> zpacked = zlib.compress(bytes_array); len(zpacked) 52994692 >>> round(len(bytes_array) / float(len(zpacked)), 3) 1.51 # zlib achieves a 1.5x compression ratio >>> blzpacked = blosc.compress(bytes_array, typesize=8, cname='blosclz'); len(blzpacked) 6986533 >>> round(len(bytes_array) / float(len(blzpacked)), 3) 11.451 # BloscLZ codec reaches more than 11x compression ratio >>> lz4packed = blosc.compress(bytes_array, typesize=8, cname='lz4'); len(lz4packed) 3716015 >>> round(len(bytes_array) / float(len(lz4packed)), 3) 21.528 # LZ4 codec reaches more than 21x compression ratio</literal_block> SphinxTranslator.dispatch_visit calling visit_paragraph for <paragraph>Here we can see how Blosc, with its different codecs, is very efficient compressing this kind of binary data. It is important to note that the codecs alone are not the only responsible for high compression ratios. See what a naked LZ4 codec can do on the same string:</paragraph> SphinxTranslator.dispatch_visit calling visit_Text for Here we can see how Blosc, with its different codecs, is very efficient compressing this kind of binary data. It is important to note that the codecs alone are not the only responsible for high compression ratios. See what a naked LZ4 codec can do on the same string: SphinxTranslator.dispatch_departure calling depart_Text for Here we can see how Blosc, with its different codecs, is very efficient compressing this kind of binary data. It is important to note that the codecs alone are not the only responsible for high compression ratios. See what a naked LZ4 codec can do on the same string: SphinxTranslator.dispatch_departure calling depart_paragraph for <paragraph>Here we can see how Blosc, with its different codecs, is very efficient compressing this kind of binary data. It is important to note that the codecs alone are not the only responsible for high compression ratios. See what a naked LZ4 codec can do on the same string:</paragraph> SphinxTranslator.dispatch_visit calling visit_literal_block for <literal_block force="False" language="default" linenos="False" xml:space="preserve">>>> import lz4 >>> lz4_packed = lz4.compress(bytes_array); len(lz4_packed) 80309133 >>> round(len(bytes_array) / float(len(lz4_packed)), 3) 0.996</literal_block> SphinxTranslator.dispatch_visit calling visit_paragraph for <paragraph>That is, the naked LZ4 codec cannot compress the array of bytes at all, whereas through Blosc LZ4 can compress quite a lot. In fact, this difference in compression also happens with ZLib:</paragraph> SphinxTranslator.dispatch_visit calling visit_Text for That is, the naked LZ4 codec cannot compress the array of bytes at all, whereas through Blosc LZ4 can compress quite a lot. In fact, this difference in compression also happens with ZLib: SphinxTranslator.dispatch_departure calling depart_Text for That is, the naked LZ4 codec cannot compress the array of bytes at all, whereas through Blosc LZ4 can compress quite a lot. In fact, this difference in compression also happens with ZLib: SphinxTranslator.dispatch_departure calling depart_paragraph for <paragraph>That is, the naked LZ4 codec cannot compress the array of bytes at all, whereas through Blosc LZ4 can compress quite a lot. In fact, this difference in compression also happens with ZLib:</paragraph> SphinxTranslator.dispatch_visit calling visit_literal_block for <literal_block force="False" language="default" linenos="False" xml:space="preserve">>>> zlibpacked = blosc.compress(bytes_array, typesize=8, cname='zlib'); len(zlibpacked) 875274 >>> round(len(zpacked) / float(len(zlibpacked)), 3) 60.546 # ZLib codec reaches 60x more compression than naked ZLib</literal_block> SphinxTranslator.dispatch_visit calling visit_paragraph for <paragraph>Here it is a plot with the different compression ratios achieved:</paragraph> SphinxTranslator.dispatch_visit calling visit_Text for Here it is a plot with the different compression ratios achieved: SphinxTranslator.dispatch_departure calling depart_Text for Here it is a plot with the different compression ratios achieved: SphinxTranslator.dispatch_departure calling depart_paragraph for <paragraph>Here it is a plot with the different compression ratios achieved:</paragraph> SphinxTranslator.dispatch_visit calling visit_reference for <reference internal="True" refuri="_images/cratio-blosc-codecs.png"><image candidates="{'*': 'cratio-blosc-codecs.png'}" scale="75" uri="cratio-blosc-codecs.png"/></reference> SphinxTranslator.dispatch_visit calling visit_image for <image candidates="{'*': 'cratio-blosc-codecs.png'}" scale="75" uri="cratio-blosc-codecs.png"/> SphinxTranslator.dispatch_departure calling depart_image for <image candidates="{'*': 'cratio-blosc-codecs.png'}" height="600" scale="75" uri="_images/cratio-blosc-codecs.png" width="800"/> SphinxTranslator.dispatch_departure calling depart_reference for <reference internal="True" refuri="_images/cratio-blosc-codecs.png"><image candidates="{'*': 'cratio-blosc-codecs.png'}" height="600" scale="75" uri="_images/cratio-blosc-codecs.png" width="800"/></reference> SphinxTranslator.dispatch_visit calling visit_paragraph for <paragraph>The explanation for this apparently shocking result is that Blosc uses filters (<literal>SHUFFLE</literal> and <literal>BITSHUFFLE</literal> currently, but the list can increase more in the future) prior to the compression stage and these allow in general for better compression ratios when using binary data.</paragraph> SphinxTranslator.dispatch_visit calling visit_Text for The explanation for this apparently shocking result is that Blosc uses filters ( SphinxTranslator.dispatch_departure calling depart_Text for The explanation for this apparently shocking result is that Blosc uses filters ( SphinxTranslator.dispatch_visit calling visit_literal for <literal>SHUFFLE</literal> SphinxTranslator.dispatch_visit calling visit_Text for SHUFFLE SphinxTranslator.dispatch_departure calling depart_Text for SHUFFLE SphinxTranslator.dispatch_departure calling depart_literal for <literal>SHUFFLE</literal> SphinxTranslator.dispatch_visit calling visit_Text for and SphinxTranslator.dispatch_departure calling depart_Text for and SphinxTranslator.dispatch_visit calling visit_literal for <literal>BITSHUFFLE</literal> SphinxTranslator.dispatch_visit calling visit_Text for BITSHUFFLE SphinxTranslator.dispatch_departure calling depart_Text for BITSHUFFLE SphinxTranslator.dispatch_departure calling depart_literal for <literal>BITSHUFFLE</literal> SphinxTranslator.dispatch_visit calling visit_Text for currently, but the list can increase more in the future) prior to the compression stage and these allow in general for better compression ratios when using binary data. SphinxTranslator.dispatch_departure calling depart_Text for currently, but the list can increase more in the future) prior to the compression stage and these allow in general for better compression ratios when using binary data. SphinxTranslator.dispatch_departure calling depart_paragraph for <paragraph>The explanation for this apparently shocking result is that Blosc uses filters (<literal>SHUFFLE</literal> and <literal>BITSHUFFLE</literal> currently, but the list can increase more in the future) prior to the compression stage and these allow in general for better compression ratios when using binary data.</paragraph> SphinxTranslator.dispatch_visit calling visit_paragraph for <paragraph>How about decompression?:</paragraph> SphinxTranslator.dispatch_visit calling visit_Text for How about decompression?: SphinxTranslator.dispatch_departure calling depart_Text for How about decompression?: SphinxTranslator.dispatch_departure calling depart_paragraph for <paragraph>How about decompression?:</paragraph> SphinxTranslator.dispatch_visit calling visit_literal_block for <literal_block force="False" language="default" linenos="False" xml:space="preserve">>>> %timeit zlib.decompress(zpacked) 1 loops, best of 3: 275 ms per loop # ~ 290 MB/s >>> %timeit blosc.decompress(blzpacked) 100 loops, best of 3: 17.3 ms per loop # ~ 4.3 GB/s and 16x faster than zlib >>> %timeit blosc.decompress(lz4packed) 10 loops, best of 3: 41.9 ms per loop # ~ 1.9 GB/s and 6.5x faster than zlib >>> %timeit blosc.decompress(zlibpacked) 10 loops, best of 3: 40.7 ms per loop # ~ 2.0 GB/S and 6.8x faster than zlib</literal_block> SphinxTranslator.dispatch_visit calling visit_paragraph for <paragraph>Here we see a couple of things:</paragraph> SphinxTranslator.dispatch_visit calling visit_Text for Here we see a couple of things: SphinxTranslator.dispatch_departure calling depart_Text for Here we see a couple of things: SphinxTranslator.dispatch_departure calling depart_paragraph for <paragraph>Here we see a couple of things:</paragraph> SphinxTranslator.dispatch_visit calling visit_bullet_list for <bullet_list bullet="*"><list_item><paragraph>All the internal codecs in Blosc are way faster than naked ZLib</paragraph></list_item><list_item><paragraph>The fastest codec for decompressing here is BloscLZ (remember that LZ4 was the fastest for compression).</paragraph></list_item></bullet_list> SphinxTranslator.dispatch_visit calling visit_list_item for <list_item><paragraph>All the internal codecs in Blosc are way faster than naked ZLib</paragraph></list_item> SphinxTranslator.dispatch_visit calling visit_paragraph for <paragraph>All the internal codecs in Blosc are way faster than naked ZLib</paragraph> SphinxTranslator.dispatch_visit calling visit_Text for All the internal codecs in Blosc are way faster than naked ZLib SphinxTranslator.dispatch_departure calling depart_Text for All the internal codecs in Blosc are way faster than naked ZLib SphinxTranslator.dispatch_departure calling depart_paragraph for <paragraph>All the internal codecs in Blosc are way faster than naked ZLib</paragraph> SphinxTranslator.dispatch_departure calling depart_list_item for <list_item><paragraph>All the internal codecs in Blosc are way faster than naked ZLib</paragraph></list_item> SphinxTranslator.dispatch_visit calling visit_list_item for <list_item><paragraph>The fastest codec for decompressing here is BloscLZ (remember that LZ4 was the fastest for compression).</paragraph></list_item> SphinxTranslator.dispatch_visit calling visit_paragraph for <paragraph>The fastest codec for decompressing here is BloscLZ (remember that LZ4 was the fastest for compression).</paragraph> SphinxTranslator.dispatch_visit calling visit_Text for The fastest codec for decompressing here is BloscLZ (remember that LZ4 was the fastest for compression). SphinxTranslator.dispatch_departure calling depart_Text for The fastest codec for decompressing here is BloscLZ (remember that LZ4 was the fastest for compression). SphinxTranslator.dispatch_departure calling depart_paragraph for <paragraph>The fastest codec for decompressing here is BloscLZ (remember that LZ4 was the fastest for compression).</paragraph> SphinxTranslator.dispatch_departure calling depart_list_item for <list_item><paragraph>The fastest codec for decompressing here is BloscLZ (remember that LZ4 was the fastest for compression).</paragraph></list_item> SphinxTranslator.dispatch_departure calling depart_bullet_list for <bullet_list bullet="*"><list_item><paragraph>All the internal codecs in Blosc are way faster than naked ZLib</paragraph></list_item><list_item><paragraph>The fastest codec for decompressing here is BloscLZ (remember that LZ4 was the fastest for compression).</paragraph></list_item></bullet_list> SphinxTranslator.dispatch_visit calling visit_paragraph for <paragraph>The next plot summarizes the speed benchmarks above:</paragraph> SphinxTranslator.dispatch_visit calling visit_Text for The next plot summarizes the speed benchmarks above: SphinxTranslator.dispatch_departure calling depart_Text for The next plot summarizes the speed benchmarks above: SphinxTranslator.dispatch_departure calling depart_paragraph for <paragraph>The next plot summarizes the speed benchmarks above:</paragraph> SphinxTranslator.dispatch_visit calling visit_reference for <reference internal="True" refuri="_images/speed-blosc-codecs.png"><image candidates="{'*': 'speed-blosc-codecs.png'}" scale="75" uri="speed-blosc-codecs.png"/></reference> SphinxTranslator.dispatch_visit calling visit_image for <image candidates="{'*': 'speed-blosc-codecs.png'}" scale="75" uri="speed-blosc-codecs.png"/> SphinxTranslator.dispatch_departure calling depart_image for <image candidates="{'*': 'speed-blosc-codecs.png'}" height="600" scale="75" uri="_images/speed-blosc-codecs.png" width="800"/> SphinxTranslator.dispatch_departure calling depart_reference for <reference internal="True" refuri="_images/speed-blosc-codecs.png"><image candidates="{'*': 'speed-blosc-codecs.png'}" height="600" scale="75" uri="_images/speed-blosc-codecs.png" width="800"/></reference> SphinxTranslator.dispatch_visit calling visit_paragraph for <paragraph>These results should reinforce the idea that there is not a single codec that wins in all areas (compression ratio, compression speed and decompression speed) and each has its pro’s and con’s. It is up to the user to choose whatever fits better to him (hint: there is no replacement for experimentation).</paragraph> SphinxTranslator.dispatch_visit calling visit_Text for These results should reinforce the idea that there is not a single codec that wins in all areas (compression ratio, compression speed and decompression speed) and each has its pro’s and con’s. It is up to the user to choose whatever fits better to him (hint: there is no replacement for experimentation). SphinxTranslator.dispatch_departure calling depart_Text for These results should reinforce the idea that there is not a single codec that wins in all areas (compression ratio, compression speed and decompression speed) and each has its pro’s and con’s. It is up to the user to choose whatever fits better to him (hint: there is no replacement for experimentation). SphinxTranslator.dispatch_departure calling depart_paragraph for <paragraph>These results should reinforce the idea that there is not a single codec that wins in all areas (compression ratio, compression speed and decompression speed) and each has its pro’s and con’s. It is up to the user to choose whatever fits better to him (hint: there is no replacement for experimentation).</paragraph> SphinxTranslator.dispatch_visit calling visit_paragraph for <paragraph>Finally, here it is the way to discover all the internal codecs inside your Blosc package:</paragraph> SphinxTranslator.dispatch_visit calling visit_Text for Finally, here it is the way to discover all the internal codecs inside your Blosc package: SphinxTranslator.dispatch_departure calling depart_Text for Finally, here it is the way to discover all the internal codecs inside your Blosc package: SphinxTranslator.dispatch_departure calling depart_paragraph for <paragraph>Finally, here it is the way to discover all the internal codecs inside your Blosc package:</paragraph> SphinxTranslator.dispatch_visit calling visit_literal_block for <literal_block force="False" language="default" linenos="False" xml:space="preserve">>>> blosc.cnames ['blosclz', 'lz4', 'lz4hc', 'snappy', 'zlib', 'zstd']</literal_block> SphinxTranslator.dispatch_visit calling visit_paragraph for <paragraph><emphasis>Note</emphasis>: the actual list of codecs may change depening on how you have compiled the underlying C-Blosc library.</paragraph> SphinxTranslator.dispatch_visit calling visit_emphasis for <emphasis>Note</emphasis> SphinxTranslator.dispatch_visit calling visit_Text for Note SphinxTranslator.dispatch_departure calling depart_Text for Note SphinxTranslator.dispatch_departure calling depart_emphasis for <emphasis>Note</emphasis> SphinxTranslator.dispatch_visit calling visit_Text for : the actual list of codecs may change depening on how you have compiled the underlying C-Blosc library. SphinxTranslator.dispatch_departure calling depart_Text for : the actual list of codecs may change depening on how you have compiled the underlying C-Blosc library. SphinxTranslator.dispatch_departure calling depart_paragraph for <paragraph><emphasis>Note</emphasis>: the actual list of codecs may change depening on how you have compiled the underlying C-Blosc library.</paragraph> SphinxTranslator.dispatch_departure calling depart_section for <section ids="compressing-and-decompressing-with-blosc" names="compressing\ and\ decompressing\ with\ blosc"><title>Compressing and decompressing with <literal>blosc</literal></title><paragraph>Let’s start creating a NumPy array with 80 MB full of data:</paragraph><literal_block force="False" language="default" linenos="False" xml:space="preserve">>>> import numpy as np >>> a = np.linspace(0, 100, 1e7) >>> bytes_array = a.tostring() # get an array of bytes</literal_block><paragraph>and let’s compare Blosc operation with <literal>zlib</literal> (please note that we are using IPython for leveraging its timing capabilities):</paragraph><literal_block force="False" language="default" linenos="False" xml:space="preserve">>>> import zlib >>> %timeit zlib.compress(bytes_array) 1 loops, best of 3: 4.65 s per loop # ~ 17 MB/s >>> import blosc >>> %timeit blosc.compress(bytes_array, typesize=8) 100 loops, best of 3: 17.7 ms per loop # ~ 4.5 GB/s and 260x faster than zlib</literal_block><paragraph>but Blosc can use different codecs under the hood. Let’s try the LZ4 codec (instead of the BloscLZ which is the default):</paragraph><literal_block force="False" language="default" linenos="False" xml:space="preserve">>>> %timeit blosc.compress(bytes_array, typesize=8, cname='lz4') 100 loops, best of 3: 8.77 ms per loop # ~ 9.1 GB/s and 530x faster than zlib</literal_block><paragraph>It is important to note that this is quite more than the speed of a memcpy() in this machine:</paragraph><literal_block force="False" language="default" linenos="False" xml:space="preserve">>>> %timeit a.copy() 10 loops, best of 3: 27.2 ms per loop # ~ 2.9 GB/s</literal_block><paragraph>which means that both BloscLZ and LZ4 codecs can be faster than memcpy(), just as the Blosc slogan promises.</paragraph><paragraph>Blosc also comes with the ZLib codec too, and it actually runs faster than the naked zlib:</paragraph><literal_block force="False" language="default" linenos="False" xml:space="preserve">>>> %timeit blosc.compress(bytes_array, typesize=8, cname='zlib') 10 loops, best of 3: 139 ms per loop # ~ 580 MB/s and 33x faster than zlib</literal_block><paragraph>The reason why the internal Zlib codec in Blosc is faster than the ‘naked’ one is 1) that Blosc can use multithreading (using 8 threads here) and 2) that Blosc splits the data to compress in smaller blocks that are more friendly to the caches in modern CPUs.</paragraph><paragraph>Now, let’s have a look at the compression ratios:</paragraph><literal_block force="False" language="default" linenos="False" xml:space="preserve">>>> zpacked = zlib.compress(bytes_array); len(zpacked) 52994692 >>> round(len(bytes_array) / float(len(zpacked)), 3) 1.51 # zlib achieves a 1.5x compression ratio >>> blzpacked = blosc.compress(bytes_array, typesize=8, cname='blosclz'); len(blzpacked) 6986533 >>> round(len(bytes_array) / float(len(blzpacked)), 3) 11.451 # BloscLZ codec reaches more than 11x compression ratio >>> lz4packed = blosc.compress(bytes_array, typesize=8, cname='lz4'); len(lz4packed) 3716015 >>> round(len(bytes_array) / float(len(lz4packed)), 3) 21.528 # LZ4 codec reaches more than 21x compression ratio</literal_block><paragraph>Here we can see how Blosc, with its different codecs, is very efficient compressing this kind of binary data. It is important to note that the codecs alone are not the only responsible for high compression ratios. See what a naked LZ4 codec can do on the same string:</paragraph><literal_block force="False" language="default" linenos="False" xml:space="preserve">>>> import lz4 >>> lz4_packed = lz4.compress(bytes_array); len(lz4_packed) 80309133 >>> round(len(bytes_array) / float(len(lz4_packed)), 3) 0.996</literal_block><paragraph>That is, the naked LZ4 codec cannot compress the array of bytes at all, whereas through Blosc LZ4 can compress quite a lot. In fact, this difference in compression also happens with ZLib:</paragraph><literal_block force="False" language="default" linenos="False" xml:space="preserve">>>> zlibpacked = blosc.compress(bytes_array, typesize=8, cname='zlib'); len(zlibpacked) 875274 >>> round(len(zpacked) / float(len(zlibpacked)), 3) 60.546 # ZLib codec reaches 60x more compression than naked ZLib</literal_block><paragraph>Here it is a plot with the different compression ratios achieved:</paragraph><reference internal="True" refuri="_images/cratio-blosc-codecs.png"><image candidates="{'*': 'cratio-blosc-codecs.png'}" height="600" scale="75" uri="_images/cratio-blosc-codecs.png" width="800"/></reference><paragraph>The explanation for this apparently shocking result is that Blosc uses filters (<literal>SHUFFLE</literal> and <literal>BITSHUFFLE</literal> currently, but the list can increase more in the future) prior to the compression stage and these allow in general for better compression ratios when using binary data.</paragraph><paragraph>How about decompression?:</paragraph><literal_block force="False" language="default" linenos="False" xml:space="preserve">>>> %timeit zlib.decompress(zpacked) 1 loops, best of 3: 275 ms per loop # ~ 290 MB/s >>> %timeit blosc.decompress(blzpacked) 100 loops, best of 3: 17.3 ms per loop # ~ 4.3 GB/s and 16x faster than zlib >>> %timeit blosc.decompress(lz4packed) 10 loops, best of 3: 41.9 ms per loop # ~ 1.9 GB/s and 6.5x faster than zlib >>> %timeit blosc.decompress(zlibpacked) 10 loops, best of 3: 40.7 ms per loop # ~ 2.0 GB/S and 6.8x faster than zlib</literal_block><paragraph>Here we see a couple of things:</paragraph><bullet_list bullet="*"><list_item><paragraph>All the internal codecs in Blosc are way faster than naked ZLib</paragraph></list_item><list_item><paragraph>The fastest codec for decompressing here is BloscLZ (remember that LZ4 was the fastest for compression).</paragraph></list_item></bullet_list><paragraph>The next plot summarizes the speed benchmarks above:</paragraph><reference internal="True" refuri="_images/speed-blosc-codecs.png"><image candidates="{'*': 'speed-blosc-codecs.png'}" height="600" scale="75" uri="_images/speed-blosc-codecs.png" width="800"/></reference><paragraph>These results should reinforce the idea that there is not a single codec that wins in all areas (compression ratio, compression speed and decompression speed) and each has its pro’s and con’s. It is up to the user to choose whatever fits better to him (hint: there is no replacement for experimentation).</paragraph><paragraph>Finally, here it is the way to discover all the internal codecs inside your Blosc package:</paragraph><literal_block force="False" language="default" linenos="False" xml:space="preserve">>>> blosc.cnames ['blosclz', 'lz4', 'lz4hc', 'snappy', 'zlib', 'zstd']</literal_block><paragraph><emphasis>Note</emphasis>: the actual list of codecs may change depening on how you have compiled the underlying C-Blosc library.</paragraph></section> SphinxTranslator.dispatch_visit calling visit_section for <section ids="using-different-filters" names="using\ different\ filters"><title>Using different filters</title><paragraph>In the same way that you can use different codecs inside Blosc, you can use different filters too (currently <literal>SHUFFLE</literal> and <literal>BITSHUFLE</literal>). These allow the integrated compressors to compress more efficiently or not, depending on your datasets.</paragraph><paragraph>Here it is an example using the <literal>SHUFFLE</literal> filter:</paragraph><literal_block force="False" language="default" linenos="False" xml:space="preserve">>>> %time bpacked = blosc.compress(bytes_array, shuffle=blosc.SHUFFLE) CPU times: user 112 ms, sys: 4 ms, total: 116 ms Wall time: 29.9 ms >>> len(bpacked) 6986533</literal_block><paragraph>Here there is another example using <literal>BITSHUFFLE</literal>:</paragraph><literal_block force="False" language="default" linenos="False" xml:space="preserve">>>> %time bpacked = blosc.compress(bytes_array, shuffle=blosc.BITSHUFFLE) CPU times: user 120 ms, sys: 8 ms, total: 128 ms Wall time: 32.9 ms >>> len(bpacked) 5942257 # ~ 1.2x smaller than blosclz/shuffle</literal_block><paragraph>You can also deactivate filters completely with <literal>NOSHUFFLE</literal>:</paragraph><literal_block force="False" language="default" linenos="False" xml:space="preserve">>>> %time bpacked = blosc.compress(bytes_array, shuffle=blosc.NOSHUFFLE) CPU times: user 416 ms, sys: 8 ms, total: 424 ms Wall time: 107 ms >>> len(bpacked) 74323591 # just a 7% of compression wrt the original buffer</literal_block><paragraph>So you have quite a bit of flexibility on choosing different codecs and filters inside Blosc. Again, depending on the dataset you have and the requeriments on performance, you may want to experiment a bit before sticking with your preferred one.</paragraph></section> SphinxTranslator.dispatch_visit calling visit_title for <title>Using different filters</title> SphinxTranslator.dispatch_visit calling visit_Text for Using different filters SphinxTranslator.dispatch_departure calling depart_Text for Using different filters SphinxTranslator.dispatch_departure calling depart_title for <title>Using different filters</title> SphinxTranslator.dispatch_visit calling visit_paragraph for <paragraph>In the same way that you can use different codecs inside Blosc, you can use different filters too (currently <literal>SHUFFLE</literal> and <literal>BITSHUFLE</literal>). These allow the integrated compressors to compress more efficiently or not, depending on your datasets.</paragraph> SphinxTranslator.dispatch_visit calling visit_Text for In the same way that you can use different codecs inside Blosc, you can use different filters too (currently SphinxTranslator.dispatch_departure calling depart_Text for In the same way that you can use different codecs inside Blosc, you can use different filters too (currently SphinxTranslator.dispatch_visit calling visit_literal for <literal>SHUFFLE</literal> SphinxTranslator.dispatch_visit calling visit_Text for SHUFFLE SphinxTranslator.dispatch_departure calling depart_Text for SHUFFLE SphinxTranslator.dispatch_departure calling depart_literal for <literal>SHUFFLE</literal> SphinxTranslator.dispatch_visit calling visit_Text for and SphinxTranslator.dispatch_departure calling depart_Text for and SphinxTranslator.dispatch_visit calling visit_literal for <literal>BITSHUFLE</literal> SphinxTranslator.dispatch_visit calling visit_Text for BITSHUFLE SphinxTranslator.dispatch_departure calling depart_Text for BITSHUFLE SphinxTranslator.dispatch_departure calling depart_literal for <literal>BITSHUFLE</literal> SphinxTranslator.dispatch_visit calling visit_Text for ). These allow the integrated compressors to compress more efficiently or not, depending on your datasets. SphinxTranslator.dispatch_departure calling depart_Text for ). These allow the integrated compressors to compress more efficiently or not, depending on your datasets. SphinxTranslator.dispatch_departure calling depart_paragraph for <paragraph>In the same way that you can use different codecs inside Blosc, you can use different filters too (currently <literal>SHUFFLE</literal> and <literal>BITSHUFLE</literal>). These allow the integrated compressors to compress more efficiently or not, depending on your datasets.</paragraph> SphinxTranslator.dispatch_visit calling visit_paragraph for <paragraph>Here it is an example using the <literal>SHUFFLE</literal> filter:</paragraph> SphinxTranslator.dispatch_visit calling visit_Text for Here it is an example using the SphinxTranslator.dispatch_departure calling depart_Text for Here it is an example using the SphinxTranslator.dispatch_visit calling visit_literal for <literal>SHUFFLE</literal> SphinxTranslator.dispatch_visit calling visit_Text for SHUFFLE SphinxTranslator.dispatch_departure calling depart_Text for SHUFFLE SphinxTranslator.dispatch_departure calling depart_literal for <literal>SHUFFLE</literal> SphinxTranslator.dispatch_visit calling visit_Text for filter: SphinxTranslator.dispatch_departure calling depart_Text for filter: SphinxTranslator.dispatch_departure calling depart_paragraph for <paragraph>Here it is an example using the <literal>SHUFFLE</literal> filter:</paragraph> SphinxTranslator.dispatch_visit calling visit_literal_block for <literal_block force="False" language="default" linenos="False" xml:space="preserve">>>> %time bpacked = blosc.compress(bytes_array, shuffle=blosc.SHUFFLE) CPU times: user 112 ms, sys: 4 ms, total: 116 ms Wall time: 29.9 ms >>> len(bpacked) 6986533</literal_block> SphinxTranslator.dispatch_visit calling visit_paragraph for <paragraph>Here there is another example using <literal>BITSHUFFLE</literal>:</paragraph> SphinxTranslator.dispatch_visit calling visit_Text for Here there is another example using SphinxTranslator.dispatch_departure calling depart_Text for Here there is another example using SphinxTranslator.dispatch_visit calling visit_literal for <literal>BITSHUFFLE</literal> SphinxTranslator.dispatch_visit calling visit_Text for BITSHUFFLE SphinxTranslator.dispatch_departure calling depart_Text for BITSHUFFLE SphinxTranslator.dispatch_departure calling depart_literal for <literal>BITSHUFFLE</literal> SphinxTranslator.dispatch_visit calling visit_Text for : SphinxTranslator.dispatch_departure calling depart_Text for : SphinxTranslator.dispatch_departure calling depart_paragraph for <paragraph>Here there is another example using <literal>BITSHUFFLE</literal>:</paragraph> SphinxTranslator.dispatch_visit calling visit_literal_block for <literal_block force="False" language="default" linenos="False" xml:space="preserve">>>> %time bpacked = blosc.compress(bytes_array, shuffle=blosc.BITSHUFFLE) CPU times: user 120 ms, sys: 8 ms, total: 128 ms Wall time: 32.9 ms >>> len(bpacked) 5942257 # ~ 1.2x smaller than blosclz/shuffle</literal_block> SphinxTranslator.dispatch_visit calling visit_paragraph for <paragraph>You can also deactivate filters completely with <literal>NOSHUFFLE</literal>:</paragraph> SphinxTranslator.dispatch_visit calling visit_Text for You can also deactivate filters completely with SphinxTranslator.dispatch_departure calling depart_Text for You can also deactivate filters completely with SphinxTranslator.dispatch_visit calling visit_literal for <literal>NOSHUFFLE</literal> SphinxTranslator.dispatch_visit calling visit_Text for NOSHUFFLE SphinxTranslator.dispatch_departure calling depart_Text for NOSHUFFLE SphinxTranslator.dispatch_departure calling depart_literal for <literal>NOSHUFFLE</literal> SphinxTranslator.dispatch_visit calling visit_Text for : SphinxTranslator.dispatch_departure calling depart_Text for : SphinxTranslator.dispatch_departure calling depart_paragraph for <paragraph>You can also deactivate filters completely with <literal>NOSHUFFLE</literal>:</paragraph> SphinxTranslator.dispatch_visit calling visit_literal_block for <literal_block force="False" language="default" linenos="False" xml:space="preserve">>>> %time bpacked = blosc.compress(bytes_array, shuffle=blosc.NOSHUFFLE) CPU times: user 416 ms, sys: 8 ms, total: 424 ms Wall time: 107 ms >>> len(bpacked) 74323591 # just a 7% of compression wrt the original buffer</literal_block> SphinxTranslator.dispatch_visit calling visit_paragraph for <paragraph>So you have quite a bit of flexibility on choosing different codecs and filters inside Blosc. Again, depending on the dataset you have and the requeriments on performance, you may want to experiment a bit before sticking with your preferred one.</paragraph> SphinxTranslator.dispatch_visit calling visit_Text for So you have quite a bit of flexibility on choosing different codecs and filters inside Blosc. Again, depending on the dataset you have and the requeriments on performance, you may want to experiment a bit before sticking with your preferred one. SphinxTranslator.dispatch_departure calling depart_Text for So you have quite a bit of flexibility on choosing different codecs and filters inside Blosc. Again, depending on the dataset you have and the requeriments on performance, you may want to experiment a bit before sticking with your preferred one. SphinxTranslator.dispatch_departure calling depart_paragraph for <paragraph>So you have quite a bit of flexibility on choosing different codecs and filters inside Blosc. Again, depending on the dataset you have and the requeriments on performance, you may want to experiment a bit before sticking with your preferred one.</paragraph> SphinxTranslator.dispatch_departure calling depart_section for <section ids="using-different-filters" names="using\ different\ filters"><title>Using different filters</title><paragraph>In the same way that you can use different codecs inside Blosc, you can use different filters too (currently <literal>SHUFFLE</literal> and <literal>BITSHUFLE</literal>). These allow the integrated compressors to compress more efficiently or not, depending on your datasets.</paragraph><paragraph>Here it is an example using the <literal>SHUFFLE</literal> filter:</paragraph><literal_block force="False" language="default" linenos="False" xml:space="preserve">>>> %time bpacked = blosc.compress(bytes_array, shuffle=blosc.SHUFFLE) CPU times: user 112 ms, sys: 4 ms, total: 116 ms Wall time: 29.9 ms >>> len(bpacked) 6986533</literal_block><paragraph>Here there is another example using <literal>BITSHUFFLE</literal>:</paragraph><literal_block force="False" language="default" linenos="False" xml:space="preserve">>>> %time bpacked = blosc.compress(bytes_array, shuffle=blosc.BITSHUFFLE) CPU times: user 120 ms, sys: 8 ms, total: 128 ms Wall time: 32.9 ms >>> len(bpacked) 5942257 # ~ 1.2x smaller than blosclz/shuffle</literal_block><paragraph>You can also deactivate filters completely with <literal>NOSHUFFLE</literal>:</paragraph><literal_block force="False" language="default" linenos="False" xml:space="preserve">>>> %time bpacked = blosc.compress(bytes_array, shuffle=blosc.NOSHUFFLE) CPU times: user 416 ms, sys: 8 ms, total: 424 ms Wall time: 107 ms >>> len(bpacked) 74323591 # just a 7% of compression wrt the original buffer</literal_block><paragraph>So you have quite a bit of flexibility on choosing different codecs and filters inside Blosc. Again, depending on the dataset you have and the requeriments on performance, you may want to experiment a bit before sticking with your preferred one.</paragraph></section> SphinxTranslator.dispatch_visit calling visit_section for <section ids="supporting-the-buffer-interface" names="supporting\ the\ buffer\ interface"><title>Supporting the buffer interface</title><paragraph>python-blosc supports compressing and decompressing from any bytes-like object that supports the buffer-interface: this includes <literal>buffer</literal>, <literal>memoryview</literal> and <literal>bytearray</literal>:</paragraph><literal_block force="False" language="default" linenos="False" xml:space="preserve">>>> input_bytes = b"abcdefghijklmnopqrstuvwxyz" >>> blosc.compress(input_bytes, typesize=1) '\x02\x01\x03\x01\x1a\x00\x00\x00\x1a\x00\x00\x00*\x00\x00\x00abcdefghijklmnopqrstuvwxyz' >>> blosc.compress(memoryview(input_bytes), typesize=1) '\x02\x01\x03\x01\x1a\x00\x00\x00\x1a\x00\x00\x00*\x00\x00\x00abcdefghijklmnopqrstuvwxyz' >>> blosc.compress(bytearray(input_bytes), typesize=1) '\x02\x01\x03\x01\x1a\x00\x00\x00\x1a\x00\x00\x00*\x00\x00\x00abcdefghijklmnopqrstuvwxyz' >>> compressed = blosc.compress(input_bytes, typesize=1) >>> blosc.decompress(compressed) 'abcdefghijklmnopqrstuvwxyz' >>> blosc.decompress(memoryview(compressed)) 'abcdefghijklmnopqrstuvwxyz' >>> blosc.decompress(bytearray(compressed)) 'abcdefghijklmnopqrstuvwxyz'</literal_block><paragraph>Note however, that there are subtle differences between Python 2.x and 3.x. For example, in Python 2.x we can compress/decompress both <literal>str</literal> and <literal>unicode</literal> types, whereas in Python 3.x we can only compress ‘binary’ data which does <emphasis>not</emphasis> include <literal>unicode</literal>.</paragraph></section> SphinxTranslator.dispatch_visit calling visit_title for <title>Supporting the buffer interface</title> SphinxTranslator.dispatch_visit calling visit_Text for Supporting the buffer interface SphinxTranslator.dispatch_departure calling depart_Text for Supporting the buffer interface SphinxTranslator.dispatch_departure calling depart_title for <title>Supporting the buffer interface</title> SphinxTranslator.dispatch_visit calling visit_paragraph for <paragraph>python-blosc supports compressing and decompressing from any bytes-like object that supports the buffer-interface: this includes <literal>buffer</literal>, <literal>memoryview</literal> and <literal>bytearray</literal>:</paragraph> SphinxTranslator.dispatch_visit calling visit_Text for python-blosc supports compressing and decompressing from any bytes-like object that supports the buffer-interface: this includes SphinxTranslator.dispatch_departure calling depart_Text for python-blosc supports compressing and decompressing from any bytes-like object that supports the buffer-interface: this includes SphinxTranslator.dispatch_visit calling visit_literal for <literal>buffer</literal> SphinxTranslator.dispatch_visit calling visit_Text for buffer SphinxTranslator.dispatch_departure calling depart_Text for buffer SphinxTranslator.dispatch_departure calling depart_literal for <literal>buffer</literal> SphinxTranslator.dispatch_visit calling visit_Text for , SphinxTranslator.dispatch_departure calling depart_Text for , SphinxTranslator.dispatch_visit calling visit_literal for <literal>memoryview</literal> SphinxTranslator.dispatch_visit calling visit_Text for memoryview SphinxTranslator.dispatch_departure calling depart_Text for memoryview SphinxTranslator.dispatch_departure calling depart_literal for <literal>memoryview</literal> SphinxTranslator.dispatch_visit calling visit_Text for and SphinxTranslator.dispatch_departure calling depart_Text for and SphinxTranslator.dispatch_visit calling visit_literal for <literal>bytearray</literal> SphinxTranslator.dispatch_visit calling visit_Text for bytearray SphinxTranslator.dispatch_departure calling depart_Text for bytearray SphinxTranslator.dispatch_departure calling depart_literal for <literal>bytearray</literal> SphinxTranslator.dispatch_visit calling visit_Text for : SphinxTranslator.dispatch_departure calling depart_Text for : SphinxTranslator.dispatch_departure calling depart_paragraph for <paragraph>python-blosc supports compressing and decompressing from any bytes-like object that supports the buffer-interface: this includes <literal>buffer</literal>, <literal>memoryview</literal> and <literal>bytearray</literal>:</paragraph> SphinxTranslator.dispatch_visit calling visit_literal_block for <literal_block force="False" language="default" linenos="False" xml:space="preserve">>>> input_bytes = b"abcdefghijklmnopqrstuvwxyz" >>> blosc.compress(input_bytes, typesize=1) '\x02\x01\x03\x01\x1a\x00\x00\x00\x1a\x00\x00\x00*\x00\x00\x00abcdefghijklmnopqrstuvwxyz' >>> blosc.compress(memoryview(input_bytes), typesize=1) '\x02\x01\x03\x01\x1a\x00\x00\x00\x1a\x00\x00\x00*\x00\x00\x00abcdefghijklmnopqrstuvwxyz' >>> blosc.compress(bytearray(input_bytes), typesize=1) '\x02\x01\x03\x01\x1a\x00\x00\x00\x1a\x00\x00\x00*\x00\x00\x00abcdefghijklmnopqrstuvwxyz' >>> compressed = blosc.compress(input_bytes, typesize=1) >>> blosc.decompress(compressed) 'abcdefghijklmnopqrstuvwxyz' >>> blosc.decompress(memoryview(compressed)) 'abcdefghijklmnopqrstuvwxyz' >>> blosc.decompress(bytearray(compressed)) 'abcdefghijklmnopqrstuvwxyz'</literal_block> SphinxTranslator.dispatch_visit calling visit_paragraph for <paragraph>Note however, that there are subtle differences between Python 2.x and 3.x. For example, in Python 2.x we can compress/decompress both <literal>str</literal> and <literal>unicode</literal> types, whereas in Python 3.x we can only compress ‘binary’ data which does <emphasis>not</emphasis> include <literal>unicode</literal>.</paragraph> SphinxTranslator.dispatch_visit calling visit_Text for Note however, that there are subtle differences between Python 2.x and 3.x. For example, in Python 2.x we can compress/decompress both SphinxTranslator.dispatch_departure calling depart_Text for Note however, that there are subtle differences between Python 2.x and 3.x. For example, in Python 2.x we can compress/decompress both SphinxTranslator.dispatch_visit calling visit_literal for <literal>str</literal> SphinxTranslator.dispatch_visit calling visit_Text for str SphinxTranslator.dispatch_departure calling depart_Text for str SphinxTranslator.dispatch_departure calling depart_literal for <literal>str</literal> SphinxTranslator.dispatch_visit calling visit_Text for and SphinxTranslator.dispatch_departure calling depart_Text for and SphinxTranslator.dispatch_visit calling visit_literal for <literal>unicode</literal> SphinxTranslator.dispatch_visit calling visit_Text for unicode SphinxTranslator.dispatch_departure calling depart_Text for unicode SphinxTranslator.dispatch_departure calling depart_literal for <literal>unicode</literal> SphinxTranslator.dispatch_visit calling visit_Text for types, whereas in Python 3.x we can only compress ‘binary’ data which does SphinxTranslator.dispatch_departure calling depart_Text for types, whereas in Python 3.x we can only compress ‘binary’ data which does SphinxTranslator.dispatch_visit calling visit_emphasis for <emphasis>not</emphasis> SphinxTranslator.dispatch_visit calling visit_Text for not SphinxTranslator.dispatch_departure calling depart_Text for not SphinxTranslator.dispatch_departure calling depart_emphasis for <emphasis>not</emphasis> SphinxTranslator.dispatch_visit calling visit_Text for include SphinxTranslator.dispatch_departure calling depart_Text for include SphinxTranslator.dispatch_visit calling visit_literal for <literal>unicode</literal> SphinxTranslator.dispatch_visit calling visit_Text for unicode SphinxTranslator.dispatch_departure calling depart_Text for unicode SphinxTranslator.dispatch_departure calling depart_literal for <literal>unicode</literal> SphinxTranslator.dispatch_visit calling visit_Text for . SphinxTranslator.dispatch_departure calling depart_Text for . SphinxTranslator.dispatch_departure calling depart_paragraph for <paragraph>Note however, that there are subtle differences between Python 2.x and 3.x. For example, in Python 2.x we can compress/decompress both <literal>str</literal> and <literal>unicode</literal> types, whereas in Python 3.x we can only compress ‘binary’ data which does <emphasis>not</emphasis> include <literal>unicode</literal>.</paragraph> SphinxTranslator.dispatch_departure calling depart_section for <section ids="supporting-the-buffer-interface" names="supporting\ the\ buffer\ interface"><title>Supporting the buffer interface</title><paragraph>python-blosc supports compressing and decompressing from any bytes-like object that supports the buffer-interface: this includes <literal>buffer</literal>, <literal>memoryview</literal> and <literal>bytearray</literal>:</paragraph><literal_block force="False" language="default" linenos="False" xml:space="preserve">>>> input_bytes = b"abcdefghijklmnopqrstuvwxyz" >>> blosc.compress(input_bytes, typesize=1) '\x02\x01\x03\x01\x1a\x00\x00\x00\x1a\x00\x00\x00*\x00\x00\x00abcdefghijklmnopqrstuvwxyz' >>> blosc.compress(memoryview(input_bytes), typesize=1) '\x02\x01\x03\x01\x1a\x00\x00\x00\x1a\x00\x00\x00*\x00\x00\x00abcdefghijklmnopqrstuvwxyz' >>> blosc.compress(bytearray(input_bytes), typesize=1) '\x02\x01\x03\x01\x1a\x00\x00\x00\x1a\x00\x00\x00*\x00\x00\x00abcdefghijklmnopqrstuvwxyz' >>> compressed = blosc.compress(input_bytes, typesize=1) >>> blosc.decompress(compressed) 'abcdefghijklmnopqrstuvwxyz' >>> blosc.decompress(memoryview(compressed)) 'abcdefghijklmnopqrstuvwxyz' >>> blosc.decompress(bytearray(compressed)) 'abcdefghijklmnopqrstuvwxyz'</literal_block><paragraph>Note however, that there are subtle differences between Python 2.x and 3.x. For example, in Python 2.x we can compress/decompress both <literal>str</literal> and <literal>unicode</literal> types, whereas in Python 3.x we can only compress ‘binary’ data which does <emphasis>not</emphasis> include <literal>unicode</literal>.</paragraph></section> SphinxTranslator.dispatch_visit calling visit_section for <section ids="packaging-numpy-arrays" names="packaging\ numpy\ arrays"><title>Packaging NumPy arrays</title><paragraph>Want to use <literal>blosc</literal> to compress and decompress NumPy objects without having to worry about passing the typesize for optimal compression, or having to create the final container for decompression? <literal>blosc</literal> comes with the <literal>pack_array</literal> and <literal>unpack_array</literal> to perform this in a handy way:</paragraph><literal_block force="False" language="default" linenos="False" xml:space="preserve">>>> a = np.linspace(0, 100, 1e7) >>> packed = blosc.pack_array(a) >>> %timeit blosc.pack_array(a) 10 loops, best of 3: 104 ms per loop # ~ 770 MB/s >>> %timeit blosc.unpack_array(packed) 10 loops, best of 3: 76.3 ms per loop # ~ 1 GB/s</literal_block><paragraph>Although this is a convenient way for compressing/decompressing NumPy arrays, this method uses pickle/unpickle behind the scenes. This step implies additional copies, which takes both memory and time.</paragraph></section> SphinxTranslator.dispatch_visit calling visit_title for <title>Packaging NumPy arrays</title> SphinxTranslator.dispatch_visit calling visit_Text for Packaging NumPy arrays SphinxTranslator.dispatch_departure calling depart_Text for Packaging NumPy arrays SphinxTranslator.dispatch_departure calling depart_title for <title>Packaging NumPy arrays</title> SphinxTranslator.dispatch_visit calling visit_paragraph for <paragraph>Want to use <literal>blosc</literal> to compress and decompress NumPy objects without having to worry about passing the typesize for optimal compression, or having to create the final container for decompression? <literal>blosc</literal> comes with the <literal>pack_array</literal> and <literal>unpack_array</literal> to perform this in a handy way:</paragraph> SphinxTranslator.dispatch_visit calling visit_Text for Want to use SphinxTranslator.dispatch_departure calling depart_Text for Want to use SphinxTranslator.dispatch_visit calling visit_literal for <literal>blosc</literal> SphinxTranslator.dispatch_visit calling visit_Text for blosc SphinxTranslator.dispatch_departure calling depart_Text for blosc SphinxTranslator.dispatch_departure calling depart_literal for <literal>blosc</literal> SphinxTranslator.dispatch_visit calling visit_Text for to compress and decompress NumPy objects without having to worry about passing the typesize for optimal compression, or having to create the final container for decompression? SphinxTranslator.dispatch_departure calling depart_Text for to compress and decompress NumPy objects without having to worry about passing the typesize for optimal compression, or having to create the final container for decompression? SphinxTranslator.dispatch_visit calling visit_literal for <literal>blosc</literal> SphinxTranslator.dispatch_visit calling visit_Text for blosc SphinxTranslator.dispatch_departure calling depart_Text for blosc SphinxTranslator.dispatch_departure calling depart_literal for <literal>blosc</literal> SphinxTranslator.dispatch_visit calling visit_Text for comes with the SphinxTranslator.dispatch_departure calling depart_Text for comes with the SphinxTranslator.dispatch_visit calling visit_literal for <literal>pack_array</literal> SphinxTranslator.dispatch_visit calling visit_Text for pack_array SphinxTranslator.dispatch_departure calling depart_Text for pack_array SphinxTranslator.dispatch_departure calling depart_literal for <literal>pack_array</literal> SphinxTranslator.dispatch_visit calling visit_Text for and SphinxTranslator.dispatch_departure calling depart_Text for and SphinxTranslator.dispatch_visit calling visit_literal for <literal>unpack_array</literal> SphinxTranslator.dispatch_visit calling visit_Text for unpack_array SphinxTranslator.dispatch_departure calling depart_Text for unpack_array SphinxTranslator.dispatch_departure calling depart_literal for <literal>unpack_array</literal> SphinxTranslator.dispatch_visit calling visit_Text for to perform this in a handy way: SphinxTranslator.dispatch_departure calling depart_Text for to perform this in a handy way: SphinxTranslator.dispatch_departure calling depart_paragraph for <paragraph>Want to use <literal>blosc</literal> to compress and decompress NumPy objects without having to worry about passing the typesize for optimal compression, or having to create the final container for decompression? <literal>blosc</literal> comes with the <literal>pack_array</literal> and <literal>unpack_array</literal> to perform this in a handy way:</paragraph> SphinxTranslator.dispatch_visit calling visit_literal_block for <literal_block force="False" language="default" linenos="False" xml:space="preserve">>>> a = np.linspace(0, 100, 1e7) >>> packed = blosc.pack_array(a) >>> %timeit blosc.pack_array(a) 10 loops, best of 3: 104 ms per loop # ~ 770 MB/s >>> %timeit blosc.unpack_array(packed) 10 loops, best of 3: 76.3 ms per loop # ~ 1 GB/s</literal_block> SphinxTranslator.dispatch_visit calling visit_paragraph for <paragraph>Although this is a convenient way for compressing/decompressing NumPy arrays, this method uses pickle/unpickle behind the scenes. This step implies additional copies, which takes both memory and time.</paragraph> SphinxTranslator.dispatch_visit calling visit_Text for Although this is a convenient way for compressing/decompressing NumPy arrays, this method uses pickle/unpickle behind the scenes. This step implies additional copies, which takes both memory and time. SphinxTranslator.dispatch_departure calling depart_Text for Although this is a convenient way for compressing/decompressing NumPy arrays, this method uses pickle/unpickle behind the scenes. This step implies additional copies, which takes both memory and time. SphinxTranslator.dispatch_departure calling depart_paragraph for <paragraph>Although this is a convenient way for compressing/decompressing NumPy arrays, this method uses pickle/unpickle behind the scenes. This step implies additional copies, which takes both memory and time.</paragraph> SphinxTranslator.dispatch_departure calling depart_section for <section ids="packaging-numpy-arrays" names="packaging\ numpy\ arrays"><title>Packaging NumPy arrays</title><paragraph>Want to use <literal>blosc</literal> to compress and decompress NumPy objects without having to worry about passing the typesize for optimal compression, or having to create the final container for decompression? <literal>blosc</literal> comes with the <literal>pack_array</literal> and <literal>unpack_array</literal> to perform this in a handy way:</paragraph><literal_block force="False" language="default" linenos="False" xml:space="preserve">>>> a = np.linspace(0, 100, 1e7) >>> packed = blosc.pack_array(a) >>> %timeit blosc.pack_array(a) 10 loops, best of 3: 104 ms per loop # ~ 770 MB/s >>> %timeit blosc.unpack_array(packed) 10 loops, best of 3: 76.3 ms per loop # ~ 1 GB/s</literal_block><paragraph>Although this is a convenient way for compressing/decompressing NumPy arrays, this method uses pickle/unpickle behind the scenes. This step implies additional copies, which takes both memory and time.</paragraph></section> SphinxTranslator.dispatch_visit calling visit_section for <section ids="compressing-from-a-data-pointer" names="compressing\ from\ a\ data\ pointer"><title>Compressing from a data pointer</title><paragraph>For avoiding the data copy problem in the previous section, <literal>blosc</literal> comes with a couple of lower-level functions: <literal>compress_ptr</literal> and <literal>decompress_ptr</literal>. Here are they in action:</paragraph><literal_block force="False" language="default" linenos="False" xml:space="preserve">>>> c = blosc.compress_ptr(a.__array_interface__['data'][0], a.size, a.dtype.itemsize, 9, True) >>> %timeit blosc.compress_ptr(a.__array_interface__['data'][0], a.size, a.dtype.itemsize, 9, True) 10 loops, best of 3: 17.8 ms per loop # ~ 4.5 GB/s >>> a2 = np.empty(a.size, dtype=a.dtype) >>> %timeit blosc.decompress_ptr(c, a2.__array_interface__['data'][0]) 100 loops, best of 3: 11 ms per loop # ~ 7.3 GB/s >>> (a == a2).all() True</literal_block><paragraph>As you see, these are really low level functions because you should pass actual pointers where the data is, as well as the size and itemsize (for compression). Needless to say, it is very easy to cause a segfault by passing incorrect parameters to the functions (wrong pointer or wrong size).</paragraph><paragraph>On the other hand, and contrarily to the <literal>pack_array</literal> / <literal>unpack_array</literal> method, the <literal>compress_ptr</literal> / <literal>decompress_ptr</literal> functions do not need to make internal copies of the data buffers, so they are extremely fast (as much as the C-Blosc library can be), but you have to provide a container when doing the de-serialization.</paragraph><paragraph><literal>blosc</literal> has a maximum <literal>blocksize</literal> of 2**31 bytes = 2 GB. Larger <literal>numpy</literal> arrays must be chunked by slicing, for example as:</paragraph><literal_block force="False" language="default" linenos="False" xml:space="preserve">>>> c = b'' >>> for index in np.arange( a.shape[0] ): c += blosc.compress_ptr(a[index,...].__array_interface__['data'][0], a.size, a.dtype.itemsize, 9, True)</literal_block></section> SphinxTranslator.dispatch_visit calling visit_title for <title>Compressing from a data pointer</title> SphinxTranslator.dispatch_visit calling visit_Text for Compressing from a data pointer SphinxTranslator.dispatch_departure calling depart_Text for Compressing from a data pointer SphinxTranslator.dispatch_departure calling depart_title for <title>Compressing from a data pointer</title> SphinxTranslator.dispatch_visit calling visit_paragraph for <paragraph>For avoiding the data copy problem in the previous section, <literal>blosc</literal> comes with a couple of lower-level functions: <literal>compress_ptr</literal> and <literal>decompress_ptr</literal>. Here are they in action:</paragraph> SphinxTranslator.dispatch_visit calling visit_Text for For avoiding the data copy problem in the previous section, SphinxTranslator.dispatch_departure calling depart_Text for For avoiding the data copy problem in the previous section, SphinxTranslator.dispatch_visit calling visit_literal for <literal>blosc</literal> SphinxTranslator.dispatch_visit calling visit_Text for blosc SphinxTranslator.dispatch_departure calling depart_Text for blosc SphinxTranslator.dispatch_departure calling depart_literal for <literal>blosc</literal> SphinxTranslator.dispatch_visit calling visit_Text for comes with a couple of lower-level functions: SphinxTranslator.dispatch_departure calling depart_Text for comes with a couple of lower-level functions: SphinxTranslator.dispatch_visit calling visit_literal for <literal>compress_ptr</literal> SphinxTranslator.dispatch_visit calling visit_Text for compress_ptr SphinxTranslator.dispatch_departure calling depart_Text for compress_ptr SphinxTranslator.dispatch_departure calling depart_literal for <literal>compress_ptr</literal> SphinxTranslator.dispatch_visit calling visit_Text for and SphinxTranslator.dispatch_departure calling depart_Text for and SphinxTranslator.dispatch_visit calling visit_literal for <literal>decompress_ptr</literal> SphinxTranslator.dispatch_visit calling visit_Text for decompress_ptr SphinxTranslator.dispatch_departure calling depart_Text for decompress_ptr SphinxTranslator.dispatch_departure calling depart_literal for <literal>decompress_ptr</literal> SphinxTranslator.dispatch_visit calling visit_Text for . Here are they in action: SphinxTranslator.dispatch_departure calling depart_Text for . Here are they in action: SphinxTranslator.dispatch_departure calling depart_paragraph for <paragraph>For avoiding the data copy problem in the previous section, <literal>blosc</literal> comes with a couple of lower-level functions: <literal>compress_ptr</literal> and <literal>decompress_ptr</literal>. Here are they in action:</paragraph> SphinxTranslator.dispatch_visit calling visit_literal_block for <literal_block force="False" language="default" linenos="False" xml:space="preserve">>>> c = blosc.compress_ptr(a.__array_interface__['data'][0], a.size, a.dtype.itemsize, 9, True) >>> %timeit blosc.compress_ptr(a.__array_interface__['data'][0], a.size, a.dtype.itemsize, 9, True) 10 loops, best of 3: 17.8 ms per loop # ~ 4.5 GB/s >>> a2 = np.empty(a.size, dtype=a.dtype) >>> %timeit blosc.decompress_ptr(c, a2.__array_interface__['data'][0]) 100 loops, best of 3: 11 ms per loop # ~ 7.3 GB/s >>> (a == a2).all() True</literal_block> SphinxTranslator.dispatch_visit calling visit_paragraph for <paragraph>As you see, these are really low level functions because you should pass actual pointers where the data is, as well as the size and itemsize (for compression). Needless to say, it is very easy to cause a segfault by passing incorrect parameters to the functions (wrong pointer or wrong size).</paragraph> SphinxTranslator.dispatch_visit calling visit_Text for As you see, these are really low level functions because you should pass actual pointers where the data is, as well as the size and itemsize (for compression). Needless to say, it is very easy to cause a segfault by passing incorrect parameters to the functions (wrong pointer or wrong size). SphinxTranslator.dispatch_departure calling depart_Text for As you see, these are really low level functions because you should pass actual pointers where the data is, as well as the size and itemsize (for compression). Needless to say, it is very easy to cause a segfault by passing incorrect parameters to the functions (wrong pointer or wrong size). SphinxTranslator.dispatch_departure calling depart_paragraph for <paragraph>As you see, these are really low level functions because you should pass actual pointers where the data is, as well as the size and itemsize (for compression). Needless to say, it is very easy to cause a segfault by passing incorrect parameters to the functions (wrong pointer or wrong size).</paragraph> SphinxTranslator.dispatch_visit calling visit_paragraph for <paragraph>On the other hand, and contrarily to the <literal>pack_array</literal> / <literal>unpack_array</literal> method, the <literal>compress_ptr</literal> / <literal>decompress_ptr</literal> functions do not need to make internal copies of the data buffers, so they are extremely fast (as much as the C-Blosc library can be), but you have to provide a container when doing the de-serialization.</paragraph> SphinxTranslator.dispatch_visit calling visit_Text for On the other hand, and contrarily to the SphinxTranslator.dispatch_departure calling depart_Text for On the other hand, and contrarily to the SphinxTranslator.dispatch_visit calling visit_literal for <literal>pack_array</literal> SphinxTranslator.dispatch_visit calling visit_Text for pack_array SphinxTranslator.dispatch_departure calling depart_Text for pack_array SphinxTranslator.dispatch_departure calling depart_literal for <literal>pack_array</literal> SphinxTranslator.dispatch_visit calling visit_Text for / SphinxTranslator.dispatch_departure calling depart_Text for / SphinxTranslator.dispatch_visit calling visit_literal for <literal>unpack_array</literal> SphinxTranslator.dispatch_visit calling visit_Text for unpack_array SphinxTranslator.dispatch_departure calling depart_Text for unpack_array SphinxTranslator.dispatch_departure calling depart_literal for <literal>unpack_array</literal> SphinxTranslator.dispatch_visit calling visit_Text for method, the SphinxTranslator.dispatch_departure calling depart_Text for method, the SphinxTranslator.dispatch_visit calling visit_literal for <literal>compress_ptr</literal> SphinxTranslator.dispatch_visit calling visit_Text for compress_ptr SphinxTranslator.dispatch_departure calling depart_Text for compress_ptr SphinxTranslator.dispatch_departure calling depart_literal for <literal>compress_ptr</literal> SphinxTranslator.dispatch_visit calling visit_Text for / SphinxTranslator.dispatch_departure calling depart_Text for / SphinxTranslator.dispatch_visit calling visit_literal for <literal>decompress_ptr</literal> SphinxTranslator.dispatch_visit calling visit_Text for decompress_ptr SphinxTranslator.dispatch_departure calling depart_Text for decompress_ptr SphinxTranslator.dispatch_departure calling depart_literal for <literal>decompress_ptr</literal> SphinxTranslator.dispatch_visit calling visit_Text for functions do not need to make internal copies of the data buffers, so they are extremely fast (as much as the C-Blosc library can be), but you have to provide a container when doing the de-serialization. SphinxTranslator.dispatch_departure calling depart_Text for functions do not need to make internal copies of the data buffers, so they are extremely fast (as much as the C-Blosc library can be), but you have to provide a container when doing the de-serialization. SphinxTranslator.dispatch_departure calling depart_paragraph for <paragraph>On the other hand, and contrarily to the <literal>pack_array</literal> / <literal>unpack_array</literal> method, the <literal>compress_ptr</literal> / <literal>decompress_ptr</literal> functions do not need to make internal copies of the data buffers, so they are extremely fast (as much as the C-Blosc library can be), but you have to provide a container when doing the de-serialization.</paragraph> SphinxTranslator.dispatch_visit calling visit_paragraph for <paragraph><literal>blosc</literal> has a maximum <literal>blocksize</literal> of 2**31 bytes = 2 GB. Larger <literal>numpy</literal> arrays must be chunked by slicing, for example as:</paragraph> SphinxTranslator.dispatch_visit calling visit_literal for <literal>blosc</literal> SphinxTranslator.dispatch_visit calling visit_Text for blosc SphinxTranslator.dispatch_departure calling depart_Text for blosc SphinxTranslator.dispatch_departure calling depart_literal for <literal>blosc</literal> SphinxTranslator.dispatch_visit calling visit_Text for has a maximum SphinxTranslator.dispatch_departure calling depart_Text for has a maximum SphinxTranslator.dispatch_visit calling visit_literal for <literal>blocksize</literal> SphinxTranslator.dispatch_visit calling visit_Text for blocksize SphinxTranslator.dispatch_departure calling depart_Text for blocksize SphinxTranslator.dispatch_departure calling depart_literal for <literal>blocksize</literal> SphinxTranslator.dispatch_visit calling visit_Text for of 2**31 bytes = 2 GB. Larger SphinxTranslator.dispatch_departure calling depart_Text for of 2**31 bytes = 2 GB. Larger SphinxTranslator.dispatch_visit calling visit_literal for <literal>numpy</literal> SphinxTranslator.dispatch_visit calling visit_Text for numpy SphinxTranslator.dispatch_departure calling depart_Text for numpy SphinxTranslator.dispatch_departure calling depart_literal for <literal>numpy</literal> SphinxTranslator.dispatch_visit calling visit_Text for arrays must be chunked by slicing, for example as: SphinxTranslator.dispatch_departure calling depart_Text for arrays must be chunked by slicing, for example as: SphinxTranslator.dispatch_departure calling depart_paragraph for <paragraph><literal>blosc</literal> has a maximum <literal>blocksize</literal> of 2**31 bytes = 2 GB. Larger <literal>numpy</literal> arrays must be chunked by slicing, for example as:</paragraph> SphinxTranslator.dispatch_visit calling visit_literal_block for <literal_block force="False" language="default" linenos="False" xml:space="preserve">>>> c = b'' >>> for index in np.arange( a.shape[0] ): c += blosc.compress_ptr(a[index,...].__array_interface__['data'][0], a.size, a.dtype.itemsize, 9, True)</literal_block> SphinxTranslator.dispatch_departure calling depart_section for <section ids="compressing-from-a-data-pointer" names="compressing\ from\ a\ data\ pointer"><title>Compressing from a data pointer</title><paragraph>For avoiding the data copy problem in the previous section, <literal>blosc</literal> comes with a couple of lower-level functions: <literal>compress_ptr</literal> and <literal>decompress_ptr</literal>. Here are they in action:</paragraph><literal_block force="False" language="default" linenos="False" xml:space="preserve">>>> c = blosc.compress_ptr(a.__array_interface__['data'][0], a.size, a.dtype.itemsize, 9, True) >>> %timeit blosc.compress_ptr(a.__array_interface__['data'][0], a.size, a.dtype.itemsize, 9, True) 10 loops, best of 3: 17.8 ms per loop # ~ 4.5 GB/s >>> a2 = np.empty(a.size, dtype=a.dtype) >>> %timeit blosc.decompress_ptr(c, a2.__array_interface__['data'][0]) 100 loops, best of 3: 11 ms per loop # ~ 7.3 GB/s >>> (a == a2).all() True</literal_block><paragraph>As you see, these are really low level functions because you should pass actual pointers where the data is, as well as the size and itemsize (for compression). Needless to say, it is very easy to cause a segfault by passing incorrect parameters to the functions (wrong pointer or wrong size).</paragraph><paragraph>On the other hand, and contrarily to the <literal>pack_array</literal> / <literal>unpack_array</literal> method, the <literal>compress_ptr</literal> / <literal>decompress_ptr</literal> functions do not need to make internal copies of the data buffers, so they are extremely fast (as much as the C-Blosc library can be), but you have to provide a container when doing the de-serialization.</paragraph><paragraph><literal>blosc</literal> has a maximum <literal>blocksize</literal> of 2**31 bytes = 2 GB. Larger <literal>numpy</literal> arrays must be chunked by slicing, for example as:</paragraph><literal_block force="False" language="default" linenos="False" xml:space="preserve">>>> c = b'' >>> for index in np.arange( a.shape[0] ): c += blosc.compress_ptr(a[index,...].__array_interface__['data'][0], a.size, a.dtype.itemsize, 9, True)</literal_block></section> SphinxTranslator.dispatch_visit calling visit_section for <section ids="fine-tuning-compression-parameters" names="fine-tuning\ compression\ parameters"><title>Fine-tuning compression parameters</title><paragraph>There are a number of parameters that affect the de/compression bandwidth achieved by <literal>blosc</literal>:</paragraph><bullet_list bullet="*"><list_item><paragraph>The information content of the underlying data, and <literal>chunksize</literal>: the size of the data in each call to <literal>compress</literal> and analogous functions. ‘blosc’ does not manage chunksize itself, but an example implementation can be seen in the <literal>bloscpack</literal> module.</paragraph></list_item><list_item><paragraph><literal>n_threads</literal>: The number of threads to spawn inside <literal>c-blosc</literal>. <literal>n_threads</literal> may be changed by calling <literal>blosc.set_nthreads(16)</literal> for example. <literal>blosc</literal> performance generally scales sub-linearly with the number of threads with a coefficient roughly around 0.5-0.67. I.e. the expected performance compared to a single thread is 1.0 / (0.6*n_threads). For systems with hyper-threading the optimum number of threads is usually a small over-subscription of the number of _physical_ (not virtual) cores.</paragraph></list_item><list_item><paragraph><literal>blocksize</literal>: is the size of each continuously memory-element that is compressed, in bytes. Normally <literal>blosc</literal> attempts to automatically guess the size of each compressed block of data, but the user can set it manually by calling <literal>blosc.set_blocksize( size_in_bytes )</literal> for hand optimized situations. Often the L2 cache size (e.g. 256kB for an Intel Haswell) is a good starting point for optimization.</paragraph></list_item><list_item><paragraph><literal>shuffle</literal>: as discussed above the <literal>shuffle</literal> mode can substantially improve compression ratios when the</paragraph></list_item><list_item><paragraph><literal>clevel</literal>: the compression level called for the algorithm. Called as an argument to <literal>compress</literal> and similar functions.</paragraph></list_item><list_item><paragraph><literal>cname</literal>: the compressor codec itself. Each codec has its own characteristics that also vary depending on the underlying data. For example, ‘lz4’ tends to prefer smaller <literal>blocksize</literal> and does not slow significantly with <literal>clevel</literal>. In comparison <literal>zlib</literal> and <literal>zstd</literal> both slow substantially with increasing <literal>clevel</literal>, with an inflection point around <literal>clevel`=4-5 for 'zlib' and `clevel`=2-4 for 'zstd'. Called as an argument to `compress</literal> and similar functions.</paragraph></list_item><list_item><paragraph><literal>releasegil</literal>: optionally the Python Global Interpreter Lock (GIL) can be turned off during <literal>c-blosc</literal> operations by calling <literal>blosc.set_releasegil(True)</literal>. The default is off as there is a small overhead in releasing the GIL which can be significant for a small <literal>blocksize</literal>. GIL release is intended to be used in situations where other bounds (such as file or network I/O) are the rate-limiting ones and a Python <literal>ThreadPool</literal> or similar object can be used for parallel processing either with or without <literal>blosc</literal> threads. Initial testing suggests that an equal mix of <literal>ThreadPool</literal> and <literal>blosc</literal> threads is near optimal. I.e. a computer with 16 cores would have 4 <literal>blosc</literal> threads and 4 <literal>ThreadPool</literal> threads. An example of combining <literal>blosc</literal> and <literal>ThreadPool</literal> may be found in <literal>bench/threadpool.py</literal>.</paragraph></list_item></bullet_list></section> SphinxTranslator.dispatch_visit calling visit_title for <title>Fine-tuning compression parameters</title> SphinxTranslator.dispatch_visit calling visit_Text for Fine-tuning compression parameters SphinxTranslator.dispatch_departure calling depart_Text for Fine-tuning compression parameters SphinxTranslator.dispatch_departure calling depart_title for <title>Fine-tuning compression parameters</title> SphinxTranslator.dispatch_visit calling visit_paragraph for <paragraph>There are a number of parameters that affect the de/compression bandwidth achieved by <literal>blosc</literal>:</paragraph> SphinxTranslator.dispatch_visit calling visit_Text for There are a number of parameters that affect the de/compression bandwidth achieved by SphinxTranslator.dispatch_departure calling depart_Text for There are a number of parameters that affect the de/compression bandwidth achieved by SphinxTranslator.dispatch_visit calling visit_literal for <literal>blosc</literal> SphinxTranslator.dispatch_visit calling visit_Text for blosc SphinxTranslator.dispatch_departure calling depart_Text for blosc SphinxTranslator.dispatch_departure calling depart_literal for <literal>blosc</literal> SphinxTranslator.dispatch_visit calling visit_Text for : SphinxTranslator.dispatch_departure calling depart_Text for : SphinxTranslator.dispatch_departure calling depart_paragraph for <paragraph>There are a number of parameters that affect the de/compression bandwidth achieved by <literal>blosc</literal>:</paragraph> SphinxTranslator.dispatch_visit calling visit_bullet_list for <bullet_list bullet="*"><list_item><paragraph>The information content of the underlying data, and <literal>chunksize</literal>: the size of the data in each call to <literal>compress</literal> and analogous functions. ‘blosc’ does not manage chunksize itself, but an example implementation can be seen in the <literal>bloscpack</literal> module.</paragraph></list_item><list_item><paragraph><literal>n_threads</literal>: The number of threads to spawn inside <literal>c-blosc</literal>. <literal>n_threads</literal> may be changed by calling <literal>blosc.set_nthreads(16)</literal> for example. <literal>blosc</literal> performance generally scales sub-linearly with the number of threads with a coefficient roughly around 0.5-0.67. I.e. the expected performance compared to a single thread is 1.0 / (0.6*n_threads). For systems with hyper-threading the optimum number of threads is usually a small over-subscription of the number of _physical_ (not virtual) cores.</paragraph></list_item><list_item><paragraph><literal>blocksize</literal>: is the size of each continuously memory-element that is compressed, in bytes. Normally <literal>blosc</literal> attempts to automatically guess the size of each compressed block of data, but the user can set it manually by calling <literal>blosc.set_blocksize( size_in_bytes )</literal> for hand optimized situations. Often the L2 cache size (e.g. 256kB for an Intel Haswell) is a good starting point for optimization.</paragraph></list_item><list_item><paragraph><literal>shuffle</literal>: as discussed above the <literal>shuffle</literal> mode can substantially improve compression ratios when the</paragraph></list_item><list_item><paragraph><literal>clevel</literal>: the compression level called for the algorithm. Called as an argument to <literal>compress</literal> and similar functions.</paragraph></list_item><list_item><paragraph><literal>cname</literal>: the compressor codec itself. Each codec has its own characteristics that also vary depending on the underlying data. For example, ‘lz4’ tends to prefer smaller <literal>blocksize</literal> and does not slow significantly with <literal>clevel</literal>. In comparison <literal>zlib</literal> and <literal>zstd</literal> both slow substantially with increasing <literal>clevel</literal>, with an inflection point around <literal>clevel`=4-5 for 'zlib' and `clevel`=2-4 for 'zstd'. Called as an argument to `compress</literal> and similar functions.</paragraph></list_item><list_item><paragraph><literal>releasegil</literal>: optionally the Python Global Interpreter Lock (GIL) can be turned off during <literal>c-blosc</literal> operations by calling <literal>blosc.set_releasegil(True)</literal>. The default is off as there is a small overhead in releasing the GIL which can be significant for a small <literal>blocksize</literal>. GIL release is intended to be used in situations where other bounds (such as file or network I/O) are the rate-limiting ones and a Python <literal>ThreadPool</literal> or similar object can be used for parallel processing either with or without <literal>blosc</literal> threads. Initial testing suggests that an equal mix of <literal>ThreadPool</literal> and <literal>blosc</literal> threads is near optimal. I.e. a computer with 16 cores would have 4 <literal>blosc</literal> threads and 4 <literal>ThreadPool</literal> threads. An example of combining <literal>blosc</literal> and <literal>ThreadPool</literal> may be found in <literal>bench/threadpool.py</literal>.</paragraph></list_item></bullet_list> SphinxTranslator.dispatch_visit calling visit_list_item for <list_item><paragraph>The information content of the underlying data, and <literal>chunksize</literal>: the size of the data in each call to <literal>compress</literal> and analogous functions. ‘blosc’ does not manage chunksize itself, but an example implementation can be seen in the <literal>bloscpack</literal> module.</paragraph></list_item> SphinxTranslator.dispatch_visit calling visit_paragraph for <paragraph>The information content of the underlying data, and <literal>chunksize</literal>: the size of the data in each call to <literal>compress</literal> and analogous functions. ‘blosc’ does not manage chunksize itself, but an example implementation can be seen in the <literal>bloscpack</literal> module.</paragraph> SphinxTranslator.dispatch_visit calling visit_Text for The information content of the underlying data, and SphinxTranslator.dispatch_departure calling depart_Text for The information content of the underlying data, and SphinxTranslator.dispatch_visit calling visit_literal for <literal>chunksize</literal> SphinxTranslator.dispatch_visit calling visit_Text for chunksize SphinxTranslator.dispatch_departure calling depart_Text for chunksize SphinxTranslator.dispatch_departure calling depart_literal for <literal>chunksize</literal> SphinxTranslator.dispatch_visit calling visit_Text for : the size of the data in each call to SphinxTranslator.dispatch_departure calling depart_Text for : the size of the data in each call to SphinxTranslator.dispatch_visit calling visit_literal for <literal>compress</literal> SphinxTranslator.dispatch_visit calling visit_Text for compress SphinxTranslator.dispatch_departure calling depart_Text for compress SphinxTranslator.dispatch_departure calling depart_literal for <literal>compress</literal> SphinxTranslator.dispatch_visit calling visit_Text for and analogous functions. ‘blosc’ does not manage chunksize itself, but an example implementation can be seen in the SphinxTranslator.dispatch_departure calling depart_Text for and analogous functions. ‘blosc’ does not manage chunksize itself, but an example implementation can be seen in the SphinxTranslator.dispatch_visit calling visit_literal for <literal>bloscpack</literal> SphinxTranslator.dispatch_visit calling visit_Text for bloscpack SphinxTranslator.dispatch_departure calling depart_Text for bloscpack SphinxTranslator.dispatch_departure calling depart_literal for <literal>bloscpack</literal> SphinxTranslator.dispatch_visit calling visit_Text for module. SphinxTranslator.dispatch_departure calling depart_Text for module. SphinxTranslator.dispatch_departure calling depart_paragraph for <paragraph>The information content of the underlying data, and <literal>chunksize</literal>: the size of the data in each call to <literal>compress</literal> and analogous functions. ‘blosc’ does not manage chunksize itself, but an example implementation can be seen in the <literal>bloscpack</literal> module.</paragraph> SphinxTranslator.dispatch_departure calling depart_list_item for <list_item><paragraph>The information content of the underlying data, and <literal>chunksize</literal>: the size of the data in each call to <literal>compress</literal> and analogous functions. ‘blosc’ does not manage chunksize itself, but an example implementation can be seen in the <literal>bloscpack</literal> module.</paragraph></list_item> SphinxTranslator.dispatch_visit calling visit_list_item for <list_item><paragraph><literal>n_threads</literal>: The number of threads to spawn inside <literal>c-blosc</literal>. <literal>n_threads</literal> may be changed by calling <literal>blosc.set_nthreads(16)</literal> for example. <literal>blosc</literal> performance generally scales sub-linearly with the number of threads with a coefficient roughly around 0.5-0.67. I.e. the expected performance compared to a single thread is 1.0 / (0.6*n_threads). For systems with hyper-threading the optimum number of threads is usually a small over-subscription of the number of _physical_ (not virtual) cores.</paragraph></list_item> SphinxTranslator.dispatch_visit calling visit_paragraph for <paragraph><literal>n_threads</literal>: The number of threads to spawn inside <literal>c-blosc</literal>. <literal>n_threads</literal> may be changed by calling <literal>blosc.set_nthreads(16)</literal> for example. <literal>blosc</literal> performance generally scales sub-linearly with the number of threads with a coefficient roughly around 0.5-0.67. I.e. the expected performance compared to a single thread is 1.0 / (0.6*n_threads). For systems with hyper-threading the optimum number of threads is usually a small over-subscription of the number of _physical_ (not virtual) cores.</paragraph> SphinxTranslator.dispatch_visit calling visit_literal for <literal>n_threads</literal> SphinxTranslator.dispatch_visit calling visit_Text for n_threads SphinxTranslator.dispatch_departure calling depart_Text for n_threads SphinxTranslator.dispatch_departure calling depart_literal for <literal>n_threads</literal> SphinxTranslator.dispatch_visit calling visit_Text for : The number of threads to spawn inside SphinxTranslator.dispatch_departure calling depart_Text for : The number of threads to spawn inside SphinxTranslator.dispatch_visit calling visit_literal for <literal>c-blosc</literal> SphinxTranslator.dispatch_visit calling visit_Text for c-blosc SphinxTranslator.dispatch_departure calling depart_Text for c-blosc SphinxTranslator.dispatch_departure calling depart_literal for <literal>c-blosc</literal> SphinxTranslator.dispatch_visit calling visit_Text for . SphinxTranslator.dispatch_departure calling depart_Text for . SphinxTranslator.dispatch_visit calling visit_literal for <literal>n_threads</literal> SphinxTranslator.dispatch_visit calling visit_Text for n_threads SphinxTranslator.dispatch_departure calling depart_Text for n_threads SphinxTranslator.dispatch_departure calling depart_literal for <literal>n_threads</literal> SphinxTranslator.dispatch_visit calling visit_Text for may be changed by calling SphinxTranslator.dispatch_departure calling depart_Text for may be changed by calling SphinxTranslator.dispatch_visit calling visit_literal for <literal>blosc.set_nthreads(16)</literal> SphinxTranslator.dispatch_visit calling visit_Text for blosc.set_nthreads(16) SphinxTranslator.dispatch_departure calling depart_Text for blosc.set_nthreads(16) SphinxTranslator.dispatch_departure calling depart_literal for <literal>blosc.set_nthreads(16)</literal> SphinxTranslator.dispatch_visit calling visit_Text for for example. SphinxTranslator.dispatch_departure calling depart_Text for for example. SphinxTranslator.dispatch_visit calling visit_literal for <literal>blosc</literal> SphinxTranslator.dispatch_visit calling visit_Text for blosc SphinxTranslator.dispatch_departure calling depart_Text for blosc SphinxTranslator.dispatch_departure calling depart_literal for <literal>blosc</literal> SphinxTranslator.dispatch_visit calling visit_Text for performance generally scales sub-linearly with the number of threads with a coefficient roughly around 0.5-0.67. I.e. the expected performance compared to a single thread is 1.0 / (0.6*n_threads). For systems with hyper-threading the optimum number of threads is usually a small over-subscription of the number of _physical_ (not virtual) cores. SphinxTranslator.dispatch_departure calling depart_Text for performance generally scales sub-linearly with the number of threads with a coefficient roughly around 0.5-0.67. I.e. the expected performance compared to a single thread is 1.0 / (0.6*n_threads). For systems with hyper-threading the optimum number of threads is usually a small over-subscription of the number of _physical_ (not virtual) cores. SphinxTranslator.dispatch_departure calling depart_paragraph for <paragraph><literal>n_threads</literal>: The number of threads to spawn inside <literal>c-blosc</literal>. <literal>n_threads</literal> may be changed by calling <literal>blosc.set_nthreads(16)</literal> for example. <literal>blosc</literal> performance generally scales sub-linearly with the number of threads with a coefficient roughly around 0.5-0.67. I.e. the expected performance compared to a single thread is 1.0 / (0.6*n_threads). For systems with hyper-threading the optimum number of threads is usually a small over-subscription of the number of _physical_ (not virtual) cores.</paragraph> SphinxTranslator.dispatch_departure calling depart_list_item for <list_item><paragraph><literal>n_threads</literal>: The number of threads to spawn inside <literal>c-blosc</literal>. <literal>n_threads</literal> may be changed by calling <literal>blosc.set_nthreads(16)</literal> for example. <literal>blosc</literal> performance generally scales sub-linearly with the number of threads with a coefficient roughly around 0.5-0.67. I.e. the expected performance compared to a single thread is 1.0 / (0.6*n_threads). For systems with hyper-threading the optimum number of threads is usually a small over-subscription of the number of _physical_ (not virtual) cores.</paragraph></list_item> SphinxTranslator.dispatch_visit calling visit_list_item for <list_item><paragraph><literal>blocksize</literal>: is the size of each continuously memory-element that is compressed, in bytes. Normally <literal>blosc</literal> attempts to automatically guess the size of each compressed block of data, but the user can set it manually by calling <literal>blosc.set_blocksize( size_in_bytes )</literal> for hand optimized situations. Often the L2 cache size (e.g. 256kB for an Intel Haswell) is a good starting point for optimization.</paragraph></list_item> SphinxTranslator.dispatch_visit calling visit_paragraph for <paragraph><literal>blocksize</literal>: is the size of each continuously memory-element that is compressed, in bytes. Normally <literal>blosc</literal> attempts to automatically guess the size of each compressed block of data, but the user can set it manually by calling <literal>blosc.set_blocksize( size_in_bytes )</literal> for hand optimized situations. Often the L2 cache size (e.g. 256kB for an Intel Haswell) is a good starting point for optimization.</paragraph> SphinxTranslator.dispatch_visit calling visit_literal for <literal>blocksize</literal> SphinxTranslator.dispatch_visit calling visit_Text for blocksize SphinxTranslator.dispatch_departure calling depart_Text for blocksize SphinxTranslator.dispatch_departure calling depart_literal for <literal>blocksize</literal> SphinxTranslator.dispatch_visit calling visit_Text for : is the size of each continuously memory-element that is compressed, in bytes. Normally SphinxTranslator.dispatch_departure calling depart_Text for : is the size of each continuously memory-element that is compressed, in bytes. Normally SphinxTranslator.dispatch_visit calling visit_literal for <literal>blosc</literal> SphinxTranslator.dispatch_visit calling visit_Text for blosc SphinxTranslator.dispatch_departure calling depart_Text for blosc SphinxTranslator.dispatch_departure calling depart_literal for <literal>blosc</literal> SphinxTranslator.dispatch_visit calling visit_Text for attempts to automatically guess the size of each compressed block of data, but the user can set it manually by calling SphinxTranslator.dispatch_departure calling depart_Text for attempts to automatically guess the size of each compressed block of data, but the user can set it manually by calling SphinxTranslator.dispatch_visit calling visit_literal for <literal>blosc.set_blocksize( size_in_bytes )</literal> SphinxTranslator.dispatch_visit calling visit_Text for blosc.set_blocksize( size_in_bytes ) SphinxTranslator.dispatch_departure calling depart_Text for blosc.set_blocksize( size_in_bytes ) SphinxTranslator.dispatch_departure calling depart_literal for <literal>blosc.set_blocksize( size_in_bytes )</literal> SphinxTranslator.dispatch_visit calling visit_Text for for hand optimized situations. Often the L2 cache size (e.g. 256kB for an Intel Haswell) is a good starting point for optimization. SphinxTranslator.dispatch_departure calling depart_Text for for hand optimized situations. Often the L2 cache size (e.g. 256kB for an Intel Haswell) is a good starting point for optimization. SphinxTranslator.dispatch_departure calling depart_paragraph for <paragraph><literal>blocksize</literal>: is the size of each continuously memory-element that is compressed, in bytes. Normally <literal>blosc</literal> attempts to automatically guess the size of each compressed block of data, but the user can set it manually by calling <literal>blosc.set_blocksize( size_in_bytes )</literal> for hand optimized situations. Often the L2 cache size (e.g. 256kB for an Intel Haswell) is a good starting point for optimization.</paragraph> SphinxTranslator.dispatch_departure calling depart_list_item for <list_item><paragraph><literal>blocksize</literal>: is the size of each continuously memory-element that is compressed, in bytes. Normally <literal>blosc</literal> attempts to automatically guess the size of each compressed block of data, but the user can set it manually by calling <literal>blosc.set_blocksize( size_in_bytes )</literal> for hand optimized situations. Often the L2 cache size (e.g. 256kB for an Intel Haswell) is a good starting point for optimization.</paragraph></list_item> SphinxTranslator.dispatch_visit calling visit_list_item for <list_item><paragraph><literal>shuffle</literal>: as discussed above the <literal>shuffle</literal> mode can substantially improve compression ratios when the</paragraph></list_item> SphinxTranslator.dispatch_visit calling visit_paragraph for <paragraph><literal>shuffle</literal>: as discussed above the <literal>shuffle</literal> mode can substantially improve compression ratios when the</paragraph> SphinxTranslator.dispatch_visit calling visit_literal for <literal>shuffle</literal> SphinxTranslator.dispatch_visit calling visit_Text for shuffle SphinxTranslator.dispatch_departure calling depart_Text for shuffle SphinxTranslator.dispatch_departure calling depart_literal for <literal>shuffle</literal> SphinxTranslator.dispatch_visit calling visit_Text for : as discussed above the SphinxTranslator.dispatch_departure calling depart_Text for : as discussed above the SphinxTranslator.dispatch_visit calling visit_literal for <literal>shuffle</literal> SphinxTranslator.dispatch_visit calling visit_Text for shuffle SphinxTranslator.dispatch_departure calling depart_Text for shuffle SphinxTranslator.dispatch_departure calling depart_literal for <literal>shuffle</literal> SphinxTranslator.dispatch_visit calling visit_Text for mode can substantially improve compression ratios when the SphinxTranslator.dispatch_departure calling depart_Text for mode can substantially improve compression ratios when the SphinxTranslator.dispatch_departure calling depart_paragraph for <paragraph><literal>shuffle</literal>: as discussed above the <literal>shuffle</literal> mode can substantially improve compression ratios when the</paragraph> SphinxTranslator.dispatch_departure calling depart_list_item for <list_item><paragraph><literal>shuffle</literal>: as discussed above the <literal>shuffle</literal> mode can substantially improve compression ratios when the</paragraph></list_item> SphinxTranslator.dispatch_visit calling visit_list_item for <list_item><paragraph><literal>clevel</literal>: the compression level called for the algorithm. Called as an argument to <literal>compress</literal> and similar functions.</paragraph></list_item> SphinxTranslator.dispatch_visit calling visit_paragraph for <paragraph><literal>clevel</literal>: the compression level called for the algorithm. Called as an argument to <literal>compress</literal> and similar functions.</paragraph> SphinxTranslator.dispatch_visit calling visit_literal for <literal>clevel</literal> SphinxTranslator.dispatch_visit calling visit_Text for clevel SphinxTranslator.dispatch_departure calling depart_Text for clevel SphinxTranslator.dispatch_departure calling depart_literal for <literal>clevel</literal> SphinxTranslator.dispatch_visit calling visit_Text for : the compression level called for the algorithm. Called as an argument to SphinxTranslator.dispatch_departure calling depart_Text for : the compression level called for the algorithm. Called as an argument to SphinxTranslator.dispatch_visit calling visit_literal for <literal>compress</literal> SphinxTranslator.dispatch_visit calling visit_Text for compress SphinxTranslator.dispatch_departure calling depart_Text for compress SphinxTranslator.dispatch_departure calling depart_literal for <literal>compress</literal> SphinxTranslator.dispatch_visit calling visit_Text for and similar functions. SphinxTranslator.dispatch_departure calling depart_Text for and similar functions. SphinxTranslator.dispatch_departure calling depart_paragraph for <paragraph><literal>clevel</literal>: the compression level called for the algorithm. Called as an argument to <literal>compress</literal> and similar functions.</paragraph> SphinxTranslator.dispatch_departure calling depart_list_item for <list_item><paragraph><literal>clevel</literal>: the compression level called for the algorithm. Called as an argument to <literal>compress</literal> and similar functions.</paragraph></list_item> SphinxTranslator.dispatch_visit calling visit_list_item for <list_item><paragraph><literal>cname</literal>: the compressor codec itself. Each codec has its own characteristics that also vary depending on the underlying data. For example, ‘lz4’ tends to prefer smaller <literal>blocksize</literal> and does not slow significantly with <literal>clevel</literal>. In comparison <literal>zlib</literal> and <literal>zstd</literal> both slow substantially with increasing <literal>clevel</literal>, with an inflection point around <literal>clevel`=4-5 for 'zlib' and `clevel`=2-4 for 'zstd'. Called as an argument to `compress</literal> and similar functions.</paragraph></list_item> SphinxTranslator.dispatch_visit calling visit_paragraph for <paragraph><literal>cname</literal>: the compressor codec itself. Each codec has its own characteristics that also vary depending on the underlying data. For example, ‘lz4’ tends to prefer smaller <literal>blocksize</literal> and does not slow significantly with <literal>clevel</literal>. In comparison <literal>zlib</literal> and <literal>zstd</literal> both slow substantially with increasing <literal>clevel</literal>, with an inflection point around <literal>clevel`=4-5 for 'zlib' and `clevel`=2-4 for 'zstd'. Called as an argument to `compress</literal> and similar functions.</paragraph> SphinxTranslator.dispatch_visit calling visit_literal for <literal>cname</literal> SphinxTranslator.dispatch_visit calling visit_Text for cname SphinxTranslator.dispatch_departure calling depart_Text for cname SphinxTranslator.dispatch_departure calling depart_literal for <literal>cname</literal> SphinxTranslator.dispatch_visit calling visit_Text for : the compressor codec itself. Each codec has its own characteristics that also vary depending on the underlying data. For example, ‘lz4’ tends to prefer smaller SphinxTranslator.dispatch_departure calling depart_Text for : the compressor codec itself. Each codec has its own characteristics that also vary depending on the underlying data. For example, ‘lz4’ tends to prefer smaller SphinxTranslator.dispatch_visit calling visit_literal for <literal>blocksize</literal> SphinxTranslator.dispatch_visit calling visit_Text for blocksize SphinxTranslator.dispatch_departure calling depart_Text for blocksize SphinxTranslator.dispatch_departure calling depart_literal for <literal>blocksize</literal> SphinxTranslator.dispatch_visit calling visit_Text for and does not slow significantly with SphinxTranslator.dispatch_departure calling depart_Text for and does not slow significantly with SphinxTranslator.dispatch_visit calling visit_literal for <literal>clevel</literal> SphinxTranslator.dispatch_visit calling visit_Text for clevel SphinxTranslator.dispatch_departure calling depart_Text for clevel SphinxTranslator.dispatch_departure calling depart_literal for <literal>clevel</literal> SphinxTranslator.dispatch_visit calling visit_Text for . In comparison SphinxTranslator.dispatch_departure calling depart_Text for . In comparison SphinxTranslator.dispatch_visit calling visit_literal for <literal>zlib</literal> SphinxTranslator.dispatch_visit calling visit_Text for zlib SphinxTranslator.dispatch_departure calling depart_Text for zlib SphinxTranslator.dispatch_departure calling depart_literal for <literal>zlib</literal> SphinxTranslator.dispatch_visit calling visit_Text for and SphinxTranslator.dispatch_departure calling depart_Text for and SphinxTranslator.dispatch_visit calling visit_literal for <literal>zstd</literal> SphinxTranslator.dispatch_visit calling visit_Text for zstd SphinxTranslator.dispatch_departure calling depart_Text for zstd SphinxTranslator.dispatch_departure calling depart_literal for <literal>zstd</literal> SphinxTranslator.dispatch_visit calling visit_Text for both slow substantially with increasing SphinxTranslator.dispatch_departure calling depart_Text for both slow substantially with increasing SphinxTranslator.dispatch_visit calling visit_literal for <literal>clevel</literal> SphinxTranslator.dispatch_visit calling visit_Text for clevel SphinxTranslator.dispatch_departure calling depart_Text for clevel SphinxTranslator.dispatch_departure calling depart_literal for <literal>clevel</literal> SphinxTranslator.dispatch_visit calling visit_Text for , with an inflection point around SphinxTranslator.dispatch_departure calling depart_Text for , with an inflection point around SphinxTranslator.dispatch_visit calling visit_literal for <literal>clevel`=4-5 for 'zlib' and `clevel`=2-4 for 'zstd'. Called as an argument to `compress</literal> SphinxTranslator.dispatch_visit calling visit_Text for clevel`=4-5 for 'zlib' and `clevel`=2-4 for 'zstd'. Called as an argument to `compress SphinxTranslator.dispatch_departure calling depart_Text for clevel`=4-5 for 'zlib' and `clevel`=2-4 for 'zstd'. Called as an argument to `compress SphinxTranslator.dispatch_departure calling depart_literal for <literal>clevel`=4-5 for 'zlib' and `clevel`=2-4 for 'zstd'. Called as an argument to `compress</literal> SphinxTranslator.dispatch_visit calling visit_Text for and similar functions. SphinxTranslator.dispatch_departure calling depart_Text for and similar functions. SphinxTranslator.dispatch_departure calling depart_paragraph for <paragraph><literal>cname</literal>: the compressor codec itself. Each codec has its own characteristics that also vary depending on the underlying data. For example, ‘lz4’ tends to prefer smaller <literal>blocksize</literal> and does not slow significantly with <literal>clevel</literal>. In comparison <literal>zlib</literal> and <literal>zstd</literal> both slow substantially with increasing <literal>clevel</literal>, with an inflection point around <literal>clevel`=4-5 for 'zlib' and `clevel`=2-4 for 'zstd'. Called as an argument to `compress</literal> and similar functions.</paragraph> SphinxTranslator.dispatch_departure calling depart_list_item for <list_item><paragraph><literal>cname</literal>: the compressor codec itself. Each codec has its own characteristics that also vary depending on the underlying data. For example, ‘lz4’ tends to prefer smaller <literal>blocksize</literal> and does not slow significantly with <literal>clevel</literal>. In comparison <literal>zlib</literal> and <literal>zstd</literal> both slow substantially with increasing <literal>clevel</literal>, with an inflection point around <literal>clevel`=4-5 for 'zlib' and `clevel`=2-4 for 'zstd'. Called as an argument to `compress</literal> and similar functions.</paragraph></list_item> SphinxTranslator.dispatch_visit calling visit_list_item for <list_item><paragraph><literal>releasegil</literal>: optionally the Python Global Interpreter Lock (GIL) can be turned off during <literal>c-blosc</literal> operations by calling <literal>blosc.set_releasegil(True)</literal>. The default is off as there is a small overhead in releasing the GIL which can be significant for a small <literal>blocksize</literal>. GIL release is intended to be used in situations where other bounds (such as file or network I/O) are the rate-limiting ones and a Python <literal>ThreadPool</literal> or similar object can be used for parallel processing either with or without <literal>blosc</literal> threads. Initial testing suggests that an equal mix of <literal>ThreadPool</literal> and <literal>blosc</literal> threads is near optimal. I.e. a computer with 16 cores would have 4 <literal>blosc</literal> threads and 4 <literal>ThreadPool</literal> threads. An example of combining <literal>blosc</literal> and <literal>ThreadPool</literal> may be found in <literal>bench/threadpool.py</literal>.</paragraph></list_item> SphinxTranslator.dispatch_visit calling visit_paragraph for <paragraph><literal>releasegil</literal>: optionally the Python Global Interpreter Lock (GIL) can be turned off during <literal>c-blosc</literal> operations by calling <literal>blosc.set_releasegil(True)</literal>. The default is off as there is a small overhead in releasing the GIL which can be significant for a small <literal>blocksize</literal>. GIL release is intended to be used in situations where other bounds (such as file or network I/O) are the rate-limiting ones and a Python <literal>ThreadPool</literal> or similar object can be used for parallel processing either with or without <literal>blosc</literal> threads. Initial testing suggests that an equal mix of <literal>ThreadPool</literal> and <literal>blosc</literal> threads is near optimal. I.e. a computer with 16 cores would have 4 <literal>blosc</literal> threads and 4 <literal>ThreadPool</literal> threads. An example of combining <literal>blosc</literal> and <literal>ThreadPool</literal> may be found in <literal>bench/threadpool.py</literal>.</paragraph> SphinxTranslator.dispatch_visit calling visit_literal for <literal>releasegil</literal> SphinxTranslator.dispatch_visit calling visit_Text for releasegil SphinxTranslator.dispatch_departure calling depart_Text for releasegil SphinxTranslator.dispatch_departure calling depart_literal for <literal>releasegil</literal> SphinxTranslator.dispatch_visit calling visit_Text for : optionally the Python Global Interpreter Lock (GIL) can be turned off during SphinxTranslator.dispatch_departure calling depart_Text for : optionally the Python Global Interpreter Lock (GIL) can be turned off during SphinxTranslator.dispatch_visit calling visit_literal for <literal>c-blosc</literal> SphinxTranslator.dispatch_visit calling visit_Text for c-blosc SphinxTranslator.dispatch_departure calling depart_Text for c-blosc SphinxTranslator.dispatch_departure calling depart_literal for <literal>c-blosc</literal> SphinxTranslator.dispatch_visit calling visit_Text for operations by calling SphinxTranslator.dispatch_departure calling depart_Text for operations by calling SphinxTranslator.dispatch_visit calling visit_literal for <literal>blosc.set_releasegil(True)</literal> SphinxTranslator.dispatch_visit calling visit_Text for blosc.set_releasegil(True) SphinxTranslator.dispatch_departure calling depart_Text for blosc.set_releasegil(True) SphinxTranslator.dispatch_departure calling depart_literal for <literal>blosc.set_releasegil(True)</literal> SphinxTranslator.dispatch_visit calling visit_Text for . The default is off as there is a small overhead in releasing the GIL which can be significant for a small SphinxTranslator.dispatch_departure calling depart_Text for . The default is off as there is a small overhead in releasing the GIL which can be significant for a small SphinxTranslator.dispatch_visit calling visit_literal for <literal>blocksize</literal> SphinxTranslator.dispatch_visit calling visit_Text for blocksize SphinxTranslator.dispatch_departure calling depart_Text for blocksize SphinxTranslator.dispatch_departure calling depart_literal for <literal>blocksize</literal> SphinxTranslator.dispatch_visit calling visit_Text for . GIL release is intended to be used in situations where other bounds (such as file or network I/O) are the rate-limiting ones and a Python SphinxTranslator.dispatch_departure calling depart_Text for . GIL release is intended to be used in situations where other bounds (such as file or network I/O) are the rate-limiting ones and a Python SphinxTranslator.dispatch_visit calling visit_literal for <literal>ThreadPool</literal> SphinxTranslator.dispatch_visit calling visit_Text for ThreadPool SphinxTranslator.dispatch_departure calling depart_Text for ThreadPool SphinxTranslator.dispatch_departure calling depart_literal for <literal>ThreadPool</literal> SphinxTranslator.dispatch_visit calling visit_Text for or similar object can be used for parallel processing either with or without SphinxTranslator.dispatch_departure calling depart_Text for or similar object can be used for parallel processing either with or without SphinxTranslator.dispatch_visit calling visit_literal for <literal>blosc</literal> SphinxTranslator.dispatch_visit calling visit_Text for blosc SphinxTranslator.dispatch_departure calling depart_Text for blosc SphinxTranslator.dispatch_departure calling depart_literal for <literal>blosc</literal> SphinxTranslator.dispatch_visit calling visit_Text for threads. Initial testing suggests that an equal mix of SphinxTranslator.dispatch_departure calling depart_Text for threads. Initial testing suggests that an equal mix of SphinxTranslator.dispatch_visit calling visit_literal for <literal>ThreadPool</literal> SphinxTranslator.dispatch_visit calling visit_Text for ThreadPool SphinxTranslator.dispatch_departure calling depart_Text for ThreadPool SphinxTranslator.dispatch_departure calling depart_literal for <literal>ThreadPool</literal> SphinxTranslator.dispatch_visit calling visit_Text for and SphinxTranslator.dispatch_departure calling depart_Text for and SphinxTranslator.dispatch_visit calling visit_literal for <literal>blosc</literal> SphinxTranslator.dispatch_visit calling visit_Text for blosc SphinxTranslator.dispatch_departure calling depart_Text for blosc SphinxTranslator.dispatch_departure calling depart_literal for <literal>blosc</literal> SphinxTranslator.dispatch_visit calling visit_Text for threads is near optimal. I.e. a computer with 16 cores would have 4 SphinxTranslator.dispatch_departure calling depart_Text for threads is near optimal. I.e. a computer with 16 cores would have 4 SphinxTranslator.dispatch_visit calling visit_literal for <literal>blosc</literal> SphinxTranslator.dispatch_visit calling visit_Text for blosc SphinxTranslator.dispatch_departure calling depart_Text for blosc SphinxTranslator.dispatch_departure calling depart_literal for <literal>blosc</literal> SphinxTranslator.dispatch_visit calling visit_Text for threads and 4 SphinxTranslator.dispatch_departure calling depart_Text for threads and 4 SphinxTranslator.dispatch_visit calling visit_literal for <literal>ThreadPool</literal> SphinxTranslator.dispatch_visit calling visit_Text for ThreadPool SphinxTranslator.dispatch_departure calling depart_Text for ThreadPool SphinxTranslator.dispatch_departure calling depart_literal for <literal>ThreadPool</literal> SphinxTranslator.dispatch_visit calling visit_Text for threads. An example of combining SphinxTranslator.dispatch_departure calling depart_Text for threads. An example of combining SphinxTranslator.dispatch_visit calling visit_literal for <literal>blosc</literal> SphinxTranslator.dispatch_visit calling visit_Text for blosc SphinxTranslator.dispatch_departure calling depart_Text for blosc SphinxTranslator.dispatch_departure calling depart_literal for <literal>blosc</literal> SphinxTranslator.dispatch_visit calling visit_Text for and SphinxTranslator.dispatch_departure calling depart_Text for and SphinxTranslator.dispatch_visit calling visit_literal for <literal>ThreadPool</literal> SphinxTranslator.dispatch_visit calling visit_Text for ThreadPool SphinxTranslator.dispatch_departure calling depart_Text for ThreadPool SphinxTranslator.dispatch_departure calling depart_literal for <literal>ThreadPool</literal> SphinxTranslator.dispatch_visit calling visit_Text for may be found in SphinxTranslator.dispatch_departure calling depart_Text for may be found in SphinxTranslator.dispatch_visit calling visit_literal for <literal>bench/threadpool.py</literal> SphinxTranslator.dispatch_visit calling visit_Text for bench/threadpool.py SphinxTranslator.dispatch_departure calling depart_Text for bench/threadpool.py SphinxTranslator.dispatch_departure calling depart_literal for <literal>bench/threadpool.py</literal> SphinxTranslator.dispatch_visit calling visit_Text for . SphinxTranslator.dispatch_departure calling depart_Text for . SphinxTranslator.dispatch_departure calling depart_paragraph for <paragraph><literal>releasegil</literal>: optionally the Python Global Interpreter Lock (GIL) can be turned off during <literal>c-blosc</literal> operations by calling <literal>blosc.set_releasegil(True)</literal>. The default is off as there is a small overhead in releasing the GIL which can be significant for a small <literal>blocksize</literal>. GIL release is intended to be used in situations where other bounds (such as file or network I/O) are the rate-limiting ones and a Python <literal>ThreadPool</literal> or similar object can be used for parallel processing either with or without <literal>blosc</literal> threads. Initial testing suggests that an equal mix of <literal>ThreadPool</literal> and <literal>blosc</literal> threads is near optimal. I.e. a computer with 16 cores would have 4 <literal>blosc</literal> threads and 4 <literal>ThreadPool</literal> threads. An example of combining <literal>blosc</literal> and <literal>ThreadPool</literal> may be found in <literal>bench/threadpool.py</literal>.</paragraph> SphinxTranslator.dispatch_departure calling depart_list_item for <list_item><paragraph><literal>releasegil</literal>: optionally the Python Global Interpreter Lock (GIL) can be turned off during <literal>c-blosc</literal> operations by calling <literal>blosc.set_releasegil(True)</literal>. The default is off as there is a small overhead in releasing the GIL which can be significant for a small <literal>blocksize</literal>. GIL release is intended to be used in situations where other bounds (such as file or network I/O) are the rate-limiting ones and a Python <literal>ThreadPool</literal> or similar object can be used for parallel processing either with or without <literal>blosc</literal> threads. Initial testing suggests that an equal mix of <literal>ThreadPool</literal> and <literal>blosc</literal> threads is near optimal. I.e. a computer with 16 cores would have 4 <literal>blosc</literal> threads and 4 <literal>ThreadPool</literal> threads. An example of combining <literal>blosc</literal> and <literal>ThreadPool</literal> may be found in <literal>bench/threadpool.py</literal>.</paragraph></list_item> SphinxTranslator.dispatch_departure calling depart_bullet_list for <bullet_list bullet="*"><list_item><paragraph>The information content of the underlying data, and <literal>chunksize</literal>: the size of the data in each call to <literal>compress</literal> and analogous functions. ‘blosc’ does not manage chunksize itself, but an example implementation can be seen in the <literal>bloscpack</literal> module.</paragraph></list_item><list_item><paragraph><literal>n_threads</literal>: The number of threads to spawn inside <literal>c-blosc</literal>. <literal>n_threads</literal> may be changed by calling <literal>blosc.set_nthreads(16)</literal> for example. <literal>blosc</literal> performance generally scales sub-linearly with the number of threads with a coefficient roughly around 0.5-0.67. I.e. the expected performance compared to a single thread is 1.0 / (0.6*n_threads). For systems with hyper-threading the optimum number of threads is usually a small over-subscription of the number of _physical_ (not virtual) cores.</paragraph></list_item><list_item><paragraph><literal>blocksize</literal>: is the size of each continuously memory-element that is compressed, in bytes. Normally <literal>blosc</literal> attempts to automatically guess the size of each compressed block of data, but the user can set it manually by calling <literal>blosc.set_blocksize( size_in_bytes )</literal> for hand optimized situations. Often the L2 cache size (e.g. 256kB for an Intel Haswell) is a good starting point for optimization.</paragraph></list_item><list_item><paragraph><literal>shuffle</literal>: as discussed above the <literal>shuffle</literal> mode can substantially improve compression ratios when the</paragraph></list_item><list_item><paragraph><literal>clevel</literal>: the compression level called for the algorithm. Called as an argument to <literal>compress</literal> and similar functions.</paragraph></list_item><list_item><paragraph><literal>cname</literal>: the compressor codec itself. Each codec has its own characteristics that also vary depending on the underlying data. For example, ‘lz4’ tends to prefer smaller <literal>blocksize</literal> and does not slow significantly with <literal>clevel</literal>. In comparison <literal>zlib</literal> and <literal>zstd</literal> both slow substantially with increasing <literal>clevel</literal>, with an inflection point around <literal>clevel`=4-5 for 'zlib' and `clevel`=2-4 for 'zstd'. Called as an argument to `compress</literal> and similar functions.</paragraph></list_item><list_item><paragraph><literal>releasegil</literal>: optionally the Python Global Interpreter Lock (GIL) can be turned off during <literal>c-blosc</literal> operations by calling <literal>blosc.set_releasegil(True)</literal>. The default is off as there is a small overhead in releasing the GIL which can be significant for a small <literal>blocksize</literal>. GIL release is intended to be used in situations where other bounds (such as file or network I/O) are the rate-limiting ones and a Python <literal>ThreadPool</literal> or similar object can be used for parallel processing either with or without <literal>blosc</literal> threads. Initial testing suggests that an equal mix of <literal>ThreadPool</literal> and <literal>blosc</literal> threads is near optimal. I.e. a computer with 16 cores would have 4 <literal>blosc</literal> threads and 4 <literal>ThreadPool</literal> threads. An example of combining <literal>blosc</literal> and <literal>ThreadPool</literal> may be found in <literal>bench/threadpool.py</literal>.</paragraph></list_item></bullet_list> SphinxTranslator.dispatch_departure calling depart_section for <section ids="fine-tuning-compression-parameters" names="fine-tuning\ compression\ parameters"><title>Fine-tuning compression parameters</title><paragraph>There are a number of parameters that affect the de/compression bandwidth achieved by <literal>blosc</literal>:</paragraph><bullet_list bullet="*"><list_item><paragraph>The information content of the underlying data, and <literal>chunksize</literal>: the size of the data in each call to <literal>compress</literal> and analogous functions. ‘blosc’ does not manage chunksize itself, but an example implementation can be seen in the <literal>bloscpack</literal> module.</paragraph></list_item><list_item><paragraph><literal>n_threads</literal>: The number of threads to spawn inside <literal>c-blosc</literal>. <literal>n_threads</literal> may be changed by calling <literal>blosc.set_nthreads(16)</literal> for example. <literal>blosc</literal> performance generally scales sub-linearly with the number of threads with a coefficient roughly around 0.5-0.67. I.e. the expected performance compared to a single thread is 1.0 / (0.6*n_threads). For systems with hyper-threading the optimum number of threads is usually a small over-subscription of the number of _physical_ (not virtual) cores.</paragraph></list_item><list_item><paragraph><literal>blocksize</literal>: is the size of each continuously memory-element that is compressed, in bytes. Normally <literal>blosc</literal> attempts to automatically guess the size of each compressed block of data, but the user can set it manually by calling <literal>blosc.set_blocksize( size_in_bytes )</literal> for hand optimized situations. Often the L2 cache size (e.g. 256kB for an Intel Haswell) is a good starting point for optimization.</paragraph></list_item><list_item><paragraph><literal>shuffle</literal>: as discussed above the <literal>shuffle</literal> mode can substantially improve compression ratios when the</paragraph></list_item><list_item><paragraph><literal>clevel</literal>: the compression level called for the algorithm. Called as an argument to <literal>compress</literal> and similar functions.</paragraph></list_item><list_item><paragraph><literal>cname</literal>: the compressor codec itself. Each codec has its own characteristics that also vary depending on the underlying data. For example, ‘lz4’ tends to prefer smaller <literal>blocksize</literal> and does not slow significantly with <literal>clevel</literal>. In comparison <literal>zlib</literal> and <literal>zstd</literal> both slow substantially with increasing <literal>clevel</literal>, with an inflection point around <literal>clevel`=4-5 for 'zlib' and `clevel`=2-4 for 'zstd'. Called as an argument to `compress</literal> and similar functions.</paragraph></list_item><list_item><paragraph><literal>releasegil</literal>: optionally the Python Global Interpreter Lock (GIL) can be turned off during <literal>c-blosc</literal> operations by calling <literal>blosc.set_releasegil(True)</literal>. The default is off as there is a small overhead in releasing the GIL which can be significant for a small <literal>blocksize</literal>. GIL release is intended to be used in situations where other bounds (such as file or network I/O) are the rate-limiting ones and a Python <literal>ThreadPool</literal> or similar object can be used for parallel processing either with or without <literal>blosc</literal> threads. Initial testing suggests that an equal mix of <literal>ThreadPool</literal> and <literal>blosc</literal> threads is near optimal. I.e. a computer with 16 cores would have 4 <literal>blosc</literal> threads and 4 <literal>ThreadPool</literal> threads. An example of combining <literal>blosc</literal> and <literal>ThreadPool</literal> may be found in <literal>bench/threadpool.py</literal>.</paragraph></list_item></bullet_list></section> SphinxTranslator.dispatch_visit calling visit_section for <section ids="links-to-external-discussions-on-blosc-optimization" names="links\ to\ external\ discussions\ on\ blosc\ optimization"><title>Links to external discussions on <literal>blosc</literal> optimization</title><bullet_list bullet="*"><list_item><paragraph><reference name="Synthetic Benchmarks" refuri="http://www.blosc.org/synthetic-benchmarks.html">Synthetic Benchmarks</reference><target ids="['synthetic-benchmarks']" names="['synthetic benchmarks']" refuri="http://www.blosc.org/synthetic-benchmarks.html"/> by Francesc Alted</paragraph></list_item><list_item><paragraph><reference name="Genotype compressor benchmark" refuri="http://alimanfoo.github.io/2016/09/21/genotype-compression-benchmark.html">Genotype compressor benchmark</reference><target ids="['genotype-compressor-benchmark']" names="['genotype compressor benchmark']" refuri="http://alimanfoo.github.io/2016/09/21/genotype-compression-benchmark.html"/> by Alistair Miles</paragraph></list_item></bullet_list></section> SphinxTranslator.dispatch_visit calling visit_title for <title>Links to external discussions on <literal>blosc</literal> optimization</title> SphinxTranslator.dispatch_visit calling visit_Text for Links to external discussions on SphinxTranslator.dispatch_departure calling depart_Text for Links to external discussions on SphinxTranslator.dispatch_visit calling visit_literal for <literal>blosc</literal> SphinxTranslator.dispatch_visit calling visit_Text for blosc SphinxTranslator.dispatch_departure calling depart_Text for blosc SphinxTranslator.dispatch_departure calling depart_literal for <literal>blosc</literal> SphinxTranslator.dispatch_visit calling visit_Text for optimization SphinxTranslator.dispatch_departure calling depart_Text for optimization SphinxTranslator.dispatch_departure calling depart_title for <title>Links to external discussions on <literal>blosc</literal> optimization</title> SphinxTranslator.dispatch_visit calling visit_bullet_list for <bullet_list bullet="*"><list_item><paragraph><reference name="Synthetic Benchmarks" refuri="http://www.blosc.org/synthetic-benchmarks.html">Synthetic Benchmarks</reference><target ids="['synthetic-benchmarks']" names="['synthetic benchmarks']" refuri="http://www.blosc.org/synthetic-benchmarks.html"/> by Francesc Alted</paragraph></list_item><list_item><paragraph><reference name="Genotype compressor benchmark" refuri="http://alimanfoo.github.io/2016/09/21/genotype-compression-benchmark.html">Genotype compressor benchmark</reference><target ids="['genotype-compressor-benchmark']" names="['genotype compressor benchmark']" refuri="http://alimanfoo.github.io/2016/09/21/genotype-compression-benchmark.html"/> by Alistair Miles</paragraph></list_item></bullet_list> SphinxTranslator.dispatch_visit calling visit_list_item for <list_item><paragraph><reference name="Synthetic Benchmarks" refuri="http://www.blosc.org/synthetic-benchmarks.html">Synthetic Benchmarks</reference><target ids="['synthetic-benchmarks']" names="['synthetic benchmarks']" refuri="http://www.blosc.org/synthetic-benchmarks.html"/> by Francesc Alted</paragraph></list_item> SphinxTranslator.dispatch_visit calling visit_paragraph for <paragraph><reference name="Synthetic Benchmarks" refuri="http://www.blosc.org/synthetic-benchmarks.html">Synthetic Benchmarks</reference><target ids="['synthetic-benchmarks']" names="['synthetic benchmarks']" refuri="http://www.blosc.org/synthetic-benchmarks.html"/> by Francesc Alted</paragraph> SphinxTranslator.dispatch_visit calling visit_reference for <reference name="Synthetic Benchmarks" refuri="http://www.blosc.org/synthetic-benchmarks.html">Synthetic Benchmarks</reference> SphinxTranslator.dispatch_visit calling visit_Text for Synthetic Benchmarks SphinxTranslator.dispatch_departure calling depart_Text for Synthetic Benchmarks SphinxTranslator.dispatch_departure calling depart_reference for <reference name="Synthetic Benchmarks" refuri="http://www.blosc.org/synthetic-benchmarks.html">Synthetic Benchmarks</reference> SphinxTranslator.dispatch_visit calling visit_target for <target ids="['synthetic-benchmarks']" names="['synthetic benchmarks']" refuri="http://www.blosc.org/synthetic-benchmarks.html"/> SphinxTranslator.dispatch_departure calling depart_target for <target ids="['synthetic-benchmarks']" names="['synthetic benchmarks']" refuri="http://www.blosc.org/synthetic-benchmarks.html"/> SphinxTranslator.dispatch_visit calling visit_Text for by Francesc Alted SphinxTranslator.dispatch_departure calling depart_Text for by Francesc Alted SphinxTranslator.dispatch_departure calling depart_paragraph for <paragraph><reference name="Synthetic Benchmarks" refuri="http://www.blosc.org/synthetic-benchmarks.html">Synthetic Benchmarks</reference><target ids="['synthetic-benchmarks']" names="['synthetic benchmarks']" refuri="http://www.blosc.org/synthetic-benchmarks.html"/> by Francesc Alted</paragraph> SphinxTranslator.dispatch_departure calling depart_list_item for <list_item><paragraph><reference name="Synthetic Benchmarks" refuri="http://www.blosc.org/synthetic-benchmarks.html">Synthetic Benchmarks</reference><target ids="['synthetic-benchmarks']" names="['synthetic benchmarks']" refuri="http://www.blosc.org/synthetic-benchmarks.html"/> by Francesc Alted</paragraph></list_item> SphinxTranslator.dispatch_visit calling visit_list_item for <list_item><paragraph><reference name="Genotype compressor benchmark" refuri="http://alimanfoo.github.io/2016/09/21/genotype-compression-benchmark.html">Genotype compressor benchmark</reference><target ids="['genotype-compressor-benchmark']" names="['genotype compressor benchmark']" refuri="http://alimanfoo.github.io/2016/09/21/genotype-compression-benchmark.html"/> by Alistair Miles</paragraph></list_item> SphinxTranslator.dispatch_visit calling visit_paragraph for <paragraph><reference name="Genotype compressor benchmark" refuri="http://alimanfoo.github.io/2016/09/21/genotype-compression-benchmark.html">Genotype compressor benchmark</reference><target ids="['genotype-compressor-benchmark']" names="['genotype compressor benchmark']" refuri="http://alimanfoo.github.io/2016/09/21/genotype-compression-benchmark.html"/> by Alistair Miles</paragraph> SphinxTranslator.dispatch_visit calling visit_reference for <reference name="Genotype compressor benchmark" refuri="http://alimanfoo.github.io/2016/09/21/genotype-compression-benchmark.html">Genotype compressor benchmark</reference> SphinxTranslator.dispatch_visit calling visit_Text for Genotype compressor benchmark SphinxTranslator.dispatch_departure calling depart_Text for Genotype compressor benchmark SphinxTranslator.dispatch_departure calling depart_reference for <reference name="Genotype compressor benchmark" refuri="http://alimanfoo.github.io/2016/09/21/genotype-compression-benchmark.html">Genotype compressor benchmark</reference> SphinxTranslator.dispatch_visit calling visit_target for <target ids="['genotype-compressor-benchmark']" names="['genotype compressor benchmark']" refuri="http://alimanfoo.github.io/2016/09/21/genotype-compression-benchmark.html"/> SphinxTranslator.dispatch_departure calling depart_target for <target ids="['genotype-compressor-benchmark']" names="['genotype compressor benchmark']" refuri="http://alimanfoo.github.io/2016/09/21/genotype-compression-benchmark.html"/> SphinxTranslator.dispatch_visit calling visit_Text for by Alistair Miles SphinxTranslator.dispatch_departure calling depart_Text for by Alistair Miles SphinxTranslator.dispatch_departure calling depart_paragraph for <paragraph><reference name="Genotype compressor benchmark" refuri="http://alimanfoo.github.io/2016/09/21/genotype-compression-benchmark.html">Genotype compressor benchmark</reference><target ids="['genotype-compressor-benchmark']" names="['genotype compressor benchmark']" refuri="http://alimanfoo.github.io/2016/09/21/genotype-compression-benchmark.html"/> by Alistair Miles</paragraph> SphinxTranslator.dispatch_departure calling depart_list_item for <list_item><paragraph><reference name="Genotype compressor benchmark" refuri="http://alimanfoo.github.io/2016/09/21/genotype-compression-benchmark.html">Genotype compressor benchmark</reference><target ids="['genotype-compressor-benchmark']" names="['genotype compressor benchmark']" refuri="http://alimanfoo.github.io/2016/09/21/genotype-compression-benchmark.html"/> by Alistair Miles</paragraph></list_item> SphinxTranslator.dispatch_departure calling depart_bullet_list for <bullet_list bullet="*"><list_item><paragraph><reference name="Synthetic Benchmarks" refuri="http://www.blosc.org/synthetic-benchmarks.html">Synthetic Benchmarks</reference><target ids="['synthetic-benchmarks']" names="['synthetic benchmarks']" refuri="http://www.blosc.org/synthetic-benchmarks.html"/> by Francesc Alted</paragraph></list_item><list_item><paragraph><reference name="Genotype compressor benchmark" refuri="http://alimanfoo.github.io/2016/09/21/genotype-compression-benchmark.html">Genotype compressor benchmark</reference><target ids="['genotype-compressor-benchmark']" names="['genotype compressor benchmark']" refuri="http://alimanfoo.github.io/2016/09/21/genotype-compression-benchmark.html"/> by Alistair Miles</paragraph></list_item></bullet_list> SphinxTranslator.dispatch_departure calling depart_section for <section ids="links-to-external-discussions-on-blosc-optimization" names="links\ to\ external\ discussions\ on\ blosc\ optimization"><title>Links to external discussions on <literal>blosc</literal> optimization</title><bullet_list bullet="*"><list_item><paragraph><reference name="Synthetic Benchmarks" refuri="http://www.blosc.org/synthetic-benchmarks.html">Synthetic Benchmarks</reference><target ids="['synthetic-benchmarks']" names="['synthetic benchmarks']" refuri="http://www.blosc.org/synthetic-benchmarks.html"/> by Francesc Alted</paragraph></list_item><list_item><paragraph><reference name="Genotype compressor benchmark" refuri="http://alimanfoo.github.io/2016/09/21/genotype-compression-benchmark.html">Genotype compressor benchmark</reference><target ids="['genotype-compressor-benchmark']" names="['genotype compressor benchmark']" refuri="http://alimanfoo.github.io/2016/09/21/genotype-compression-benchmark.html"/> by Alistair Miles</paragraph></list_item></bullet_list></section> SphinxTranslator.dispatch_departure calling depart_section for <section ids="tutorials" names="tutorials"><title>Tutorials</title><paragraph>Using <literal>python-blosc</literal> (or just <literal>blosc</literal>, because we are going to talk always on how to use it in a Python environment) is pretty easy. It basically mimics the API of the <literal>zlib</literal> module included in the standard Python library.</paragraph><paragraph>Here are some examples on how to use it. For the full documentation, please refer to the <reference name="Library Reference" refuri="http://python-blosc.blosc.org/reference.html">Library Reference</reference><target ids="['library-reference']" names="['library reference']" refuri="http://python-blosc.blosc.org/reference.html"/> section.</paragraph><paragraph>Most of the times in this tutorial have been obtained using a VM with 2 cores on top of a Intel(R) Core(TM) i5-3380M CPU @ 2.90GHz.</paragraph><section ids="compressing-and-decompressing-with-blosc" names="compressing\ and\ decompressing\ with\ blosc"><title>Compressing and decompressing with <literal>blosc</literal></title><paragraph>Let’s start creating a NumPy array with 80 MB full of data:</paragraph><literal_block force="False" language="default" linenos="False" xml:space="preserve">>>> import numpy as np >>> a = np.linspace(0, 100, 1e7) >>> bytes_array = a.tostring() # get an array of bytes</literal_block><paragraph>and let’s compare Blosc operation with <literal>zlib</literal> (please note that we are using IPython for leveraging its timing capabilities):</paragraph><literal_block force="False" language="default" linenos="False" xml:space="preserve">>>> import zlib >>> %timeit zlib.compress(bytes_array) 1 loops, best of 3: 4.65 s per loop # ~ 17 MB/s >>> import blosc >>> %timeit blosc.compress(bytes_array, typesize=8) 100 loops, best of 3: 17.7 ms per loop # ~ 4.5 GB/s and 260x faster than zlib</literal_block><paragraph>but Blosc can use different codecs under the hood. Let’s try the LZ4 codec (instead of the BloscLZ which is the default):</paragraph><literal_block force="False" language="default" linenos="False" xml:space="preserve">>>> %timeit blosc.compress(bytes_array, typesize=8, cname='lz4') 100 loops, best of 3: 8.77 ms per loop # ~ 9.1 GB/s and 530x faster than zlib</literal_block><paragraph>It is important to note that this is quite more than the speed of a memcpy() in this machine:</paragraph><literal_block force="False" language="default" linenos="False" xml:space="preserve">>>> %timeit a.copy() 10 loops, best of 3: 27.2 ms per loop # ~ 2.9 GB/s</literal_block><paragraph>which means that both BloscLZ and LZ4 codecs can be faster than memcpy(), just as the Blosc slogan promises.</paragraph><paragraph>Blosc also comes with the ZLib codec too, and it actually runs faster than the naked zlib:</paragraph><literal_block force="False" language="default" linenos="False" xml:space="preserve">>>> %timeit blosc.compress(bytes_array, typesize=8, cname='zlib') 10 loops, best of 3: 139 ms per loop # ~ 580 MB/s and 33x faster than zlib</literal_block><paragraph>The reason why the internal Zlib codec in Blosc is faster than the ‘naked’ one is 1) that Blosc can use multithreading (using 8 threads here) and 2) that Blosc splits the data to compress in smaller blocks that are more friendly to the caches in modern CPUs.</paragraph><paragraph>Now, let’s have a look at the compression ratios:</paragraph><literal_block force="False" language="default" linenos="False" xml:space="preserve">>>> zpacked = zlib.compress(bytes_array); len(zpacked) 52994692 >>> round(len(bytes_array) / float(len(zpacked)), 3) 1.51 # zlib achieves a 1.5x compression ratio >>> blzpacked = blosc.compress(bytes_array, typesize=8, cname='blosclz'); len(blzpacked) 6986533 >>> round(len(bytes_array) / float(len(blzpacked)), 3) 11.451 # BloscLZ codec reaches more than 11x compression ratio >>> lz4packed = blosc.compress(bytes_array, typesize=8, cname='lz4'); len(lz4packed) 3716015 >>> round(len(bytes_array) / float(len(lz4packed)), 3) 21.528 # LZ4 codec reaches more than 21x compression ratio</literal_block><paragraph>Here we can see how Blosc, with its different codecs, is very efficient compressing this kind of binary data. It is important to note that the codecs alone are not the only responsible for high compression ratios. See what a naked LZ4 codec can do on the same string:</paragraph><literal_block force="False" language="default" linenos="False" xml:space="preserve">>>> import lz4 >>> lz4_packed = lz4.compress(bytes_array); len(lz4_packed) 80309133 >>> round(len(bytes_array) / float(len(lz4_packed)), 3) 0.996</literal_block><paragraph>That is, the naked LZ4 codec cannot compress the array of bytes at all, whereas through Blosc LZ4 can compress quite a lot. In fact, this difference in compression also happens with ZLib:</paragraph><literal_block force="False" language="default" linenos="False" xml:space="preserve">>>> zlibpacked = blosc.compress(bytes_array, typesize=8, cname='zlib'); len(zlibpacked) 875274 >>> round(len(zpacked) / float(len(zlibpacked)), 3) 60.546 # ZLib codec reaches 60x more compression than naked ZLib</literal_block><paragraph>Here it is a plot with the different compression ratios achieved:</paragraph><reference internal="True" refuri="_images/cratio-blosc-codecs.png"><image candidates="{'*': 'cratio-blosc-codecs.png'}" height="600" scale="75" uri="_images/cratio-blosc-codecs.png" width="800"/></reference><paragraph>The explanation for this apparently shocking result is that Blosc uses filters (<literal>SHUFFLE</literal> and <literal>BITSHUFFLE</literal> currently, but the list can increase more in the future) prior to the compression stage and these allow in general for better compression ratios when using binary data.</paragraph><paragraph>How about decompression?:</paragraph><literal_block force="False" language="default" linenos="False" xml:space="preserve">>>> %timeit zlib.decompress(zpacked) 1 loops, best of 3: 275 ms per loop # ~ 290 MB/s >>> %timeit blosc.decompress(blzpacked) 100 loops, best of 3: 17.3 ms per loop # ~ 4.3 GB/s and 16x faster than zlib >>> %timeit blosc.decompress(lz4packed) 10 loops, best of 3: 41.9 ms per loop # ~ 1.9 GB/s and 6.5x faster than zlib >>> %timeit blosc.decompress(zlibpacked) 10 loops, best of 3: 40.7 ms per loop # ~ 2.0 GB/S and 6.8x faster than zlib</literal_block><paragraph>Here we see a couple of things:</paragraph><bullet_list bullet="*"><list_item><paragraph>All the internal codecs in Blosc are way faster than naked ZLib</paragraph></list_item><list_item><paragraph>The fastest codec for decompressing here is BloscLZ (remember that LZ4 was the fastest for compression).</paragraph></list_item></bullet_list><paragraph>The next plot summarizes the speed benchmarks above:</paragraph><reference internal="True" refuri="_images/speed-blosc-codecs.png"><image candidates="{'*': 'speed-blosc-codecs.png'}" height="600" scale="75" uri="_images/speed-blosc-codecs.png" width="800"/></reference><paragraph>These results should reinforce the idea that there is not a single codec that wins in all areas (compression ratio, compression speed and decompression speed) and each has its pro’s and con’s. It is up to the user to choose whatever fits better to him (hint: there is no replacement for experimentation).</paragraph><paragraph>Finally, here it is the way to discover all the internal codecs inside your Blosc package:</paragraph><literal_block force="False" language="default" linenos="False" xml:space="preserve">>>> blosc.cnames ['blosclz', 'lz4', 'lz4hc', 'snappy', 'zlib', 'zstd']</literal_block><paragraph><emphasis>Note</emphasis>: the actual list of codecs may change depening on how you have compiled the underlying C-Blosc library.</paragraph></section><section ids="using-different-filters" names="using\ different\ filters"><title>Using different filters</title><paragraph>In the same way that you can use different codecs inside Blosc, you can use different filters too (currently <literal>SHUFFLE</literal> and <literal>BITSHUFLE</literal>). These allow the integrated compressors to compress more efficiently or not, depending on your datasets.</paragraph><paragraph>Here it is an example using the <literal>SHUFFLE</literal> filter:</paragraph><literal_block force="False" language="default" linenos="False" xml:space="preserve">>>> %time bpacked = blosc.compress(bytes_array, shuffle=blosc.SHUFFLE) CPU times: user 112 ms, sys: 4 ms, total: 116 ms Wall time: 29.9 ms >>> len(bpacked) 6986533</literal_block><paragraph>Here there is another example using <literal>BITSHUFFLE</literal>:</paragraph><literal_block force="False" language="default" linenos="False" xml:space="preserve">>>> %time bpacked = blosc.compress(bytes_array, shuffle=blosc.BITSHUFFLE) CPU times: user 120 ms, sys: 8 ms, total: 128 ms Wall time: 32.9 ms >>> len(bpacked) 5942257 # ~ 1.2x smaller than blosclz/shuffle</literal_block><paragraph>You can also deactivate filters completely with <literal>NOSHUFFLE</literal>:</paragraph><literal_block force="False" language="default" linenos="False" xml:space="preserve">>>> %time bpacked = blosc.compress(bytes_array, shuffle=blosc.NOSHUFFLE) CPU times: user 416 ms, sys: 8 ms, total: 424 ms Wall time: 107 ms >>> len(bpacked) 74323591 # just a 7% of compression wrt the original buffer</literal_block><paragraph>So you have quite a bit of flexibility on choosing different codecs and filters inside Blosc. Again, depending on the dataset you have and the requeriments on performance, you may want to experiment a bit before sticking with your preferred one.</paragraph></section><section ids="supporting-the-buffer-interface" names="supporting\ the\ buffer\ interface"><title>Supporting the buffer interface</title><paragraph>python-blosc supports compressing and decompressing from any bytes-like object that supports the buffer-interface: this includes <literal>buffer</literal>, <literal>memoryview</literal> and <literal>bytearray</literal>:</paragraph><literal_block force="False" language="default" linenos="False" xml:space="preserve">>>> input_bytes = b"abcdefghijklmnopqrstuvwxyz" >>> blosc.compress(input_bytes, typesize=1) '\x02\x01\x03\x01\x1a\x00\x00\x00\x1a\x00\x00\x00*\x00\x00\x00abcdefghijklmnopqrstuvwxyz' >>> blosc.compress(memoryview(input_bytes), typesize=1) '\x02\x01\x03\x01\x1a\x00\x00\x00\x1a\x00\x00\x00*\x00\x00\x00abcdefghijklmnopqrstuvwxyz' >>> blosc.compress(bytearray(input_bytes), typesize=1) '\x02\x01\x03\x01\x1a\x00\x00\x00\x1a\x00\x00\x00*\x00\x00\x00abcdefghijklmnopqrstuvwxyz' >>> compressed = blosc.compress(input_bytes, typesize=1) >>> blosc.decompress(compressed) 'abcdefghijklmnopqrstuvwxyz' >>> blosc.decompress(memoryview(compressed)) 'abcdefghijklmnopqrstuvwxyz' >>> blosc.decompress(bytearray(compressed)) 'abcdefghijklmnopqrstuvwxyz'</literal_block><paragraph>Note however, that there are subtle differences between Python 2.x and 3.x. For example, in Python 2.x we can compress/decompress both <literal>str</literal> and <literal>unicode</literal> types, whereas in Python 3.x we can only compress ‘binary’ data which does <emphasis>not</emphasis> include <literal>unicode</literal>.</paragraph></section><section ids="packaging-numpy-arrays" names="packaging\ numpy\ arrays"><title>Packaging NumPy arrays</title><paragraph>Want to use <literal>blosc</literal> to compress and decompress NumPy objects without having to worry about passing the typesize for optimal compression, or having to create the final container for decompression? <literal>blosc</literal> comes with the <literal>pack_array</literal> and <literal>unpack_array</literal> to perform this in a handy way:</paragraph><literal_block force="False" language="default" linenos="False" xml:space="preserve">>>> a = np.linspace(0, 100, 1e7) >>> packed = blosc.pack_array(a) >>> %timeit blosc.pack_array(a) 10 loops, best of 3: 104 ms per loop # ~ 770 MB/s >>> %timeit blosc.unpack_array(packed) 10 loops, best of 3: 76.3 ms per loop # ~ 1 GB/s</literal_block><paragraph>Although this is a convenient way for compressing/decompressing NumPy arrays, this method uses pickle/unpickle behind the scenes. This step implies additional copies, which takes both memory and time.</paragraph></section><section ids="compressing-from-a-data-pointer" names="compressing\ from\ a\ data\ pointer"><title>Compressing from a data pointer</title><paragraph>For avoiding the data copy problem in the previous section, <literal>blosc</literal> comes with a couple of lower-level functions: <literal>compress_ptr</literal> and <literal>decompress_ptr</literal>. Here are they in action:</paragraph><literal_block force="False" language="default" linenos="False" xml:space="preserve">>>> c = blosc.compress_ptr(a.__array_interface__['data'][0], a.size, a.dtype.itemsize, 9, True) >>> %timeit blosc.compress_ptr(a.__array_interface__['data'][0], a.size, a.dtype.itemsize, 9, True) 10 loops, best of 3: 17.8 ms per loop # ~ 4.5 GB/s >>> a2 = np.empty(a.size, dtype=a.dtype) >>> %timeit blosc.decompress_ptr(c, a2.__array_interface__['data'][0]) 100 loops, best of 3: 11 ms per loop # ~ 7.3 GB/s >>> (a == a2).all() True</literal_block><paragraph>As you see, these are really low level functions because you should pass actual pointers where the data is, as well as the size and itemsize (for compression). Needless to say, it is very easy to cause a segfault by passing incorrect parameters to the functions (wrong pointer or wrong size).</paragraph><paragraph>On the other hand, and contrarily to the <literal>pack_array</literal> / <literal>unpack_array</literal> method, the <literal>compress_ptr</literal> / <literal>decompress_ptr</literal> functions do not need to make internal copies of the data buffers, so they are extremely fast (as much as the C-Blosc library can be), but you have to provide a container when doing the de-serialization.</paragraph><paragraph><literal>blosc</literal> has a maximum <literal>blocksize</literal> of 2**31 bytes = 2 GB. Larger <literal>numpy</literal> arrays must be chunked by slicing, for example as:</paragraph><literal_block force="False" language="default" linenos="False" xml:space="preserve">>>> c = b'' >>> for index in np.arange( a.shape[0] ): c += blosc.compress_ptr(a[index,...].__array_interface__['data'][0], a.size, a.dtype.itemsize, 9, True)</literal_block></section><section ids="fine-tuning-compression-parameters" names="fine-tuning\ compression\ parameters"><title>Fine-tuning compression parameters</title><paragraph>There are a number of parameters that affect the de/compression bandwidth achieved by <literal>blosc</literal>:</paragraph><bullet_list bullet="*"><list_item><paragraph>The information content of the underlying data, and <literal>chunksize</literal>: the size of the data in each call to <literal>compress</literal> and analogous functions. ‘blosc’ does not manage chunksize itself, but an example implementation can be seen in the <literal>bloscpack</literal> module.</paragraph></list_item><list_item><paragraph><literal>n_threads</literal>: The number of threads to spawn inside <literal>c-blosc</literal>. <literal>n_threads</literal> may be changed by calling <literal>blosc.set_nthreads(16)</literal> for example. <literal>blosc</literal> performance generally scales sub-linearly with the number of threads with a coefficient roughly around 0.5-0.67. I.e. the expected performance compared to a single thread is 1.0 / (0.6*n_threads). For systems with hyper-threading the optimum number of threads is usually a small over-subscription of the number of _physical_ (not virtual) cores.</paragraph></list_item><list_item><paragraph><literal>blocksize</literal>: is the size of each continuously memory-element that is compressed, in bytes. Normally <literal>blosc</literal> attempts to automatically guess the size of each compressed block of data, but the user can set it manually by calling <literal>blosc.set_blocksize( size_in_bytes )</literal> for hand optimized situations. Often the L2 cache size (e.g. 256kB for an Intel Haswell) is a good starting point for optimization.</paragraph></list_item><list_item><paragraph><literal>shuffle</literal>: as discussed above the <literal>shuffle</literal> mode can substantially improve compression ratios when the</paragraph></list_item><list_item><paragraph><literal>clevel</literal>: the compression level called for the algorithm. Called as an argument to <literal>compress</literal> and similar functions.</paragraph></list_item><list_item><paragraph><literal>cname</literal>: the compressor codec itself. Each codec has its own characteristics that also vary depending on the underlying data. For example, ‘lz4’ tends to prefer smaller <literal>blocksize</literal> and does not slow significantly with <literal>clevel</literal>. In comparison <literal>zlib</literal> and <literal>zstd</literal> both slow substantially with increasing <literal>clevel</literal>, with an inflection point around <literal>clevel`=4-5 for 'zlib' and `clevel`=2-4 for 'zstd'. Called as an argument to `compress</literal> and similar functions.</paragraph></list_item><list_item><paragraph><literal>releasegil</literal>: optionally the Python Global Interpreter Lock (GIL) can be turned off during <literal>c-blosc</literal> operations by calling <literal>blosc.set_releasegil(True)</literal>. The default is off as there is a small overhead in releasing the GIL which can be significant for a small <literal>blocksize</literal>. GIL release is intended to be used in situations where other bounds (such as file or network I/O) are the rate-limiting ones and a Python <literal>ThreadPool</literal> or similar object can be used for parallel processing either with or without <literal>blosc</literal> threads. Initial testing suggests that an equal mix of <literal>ThreadPool</literal> and <literal>blosc</literal> threads is near optimal. I.e. a computer with 16 cores would have 4 <literal>blosc</literal> threads and 4 <literal>ThreadPool</literal> threads. An example of combining <literal>blosc</literal> and <literal>ThreadPool</literal> may be found in <literal>bench/threadpool.py</literal>.</paragraph></list_item></bullet_list></section><section ids="links-to-external-discussions-on-blosc-optimization" names="links\ to\ external\ discussions\ on\ blosc\ optimization"><title>Links to external discussions on <literal>blosc</literal> optimization</title><bullet_list bullet="*"><list_item><paragraph><reference name="Synthetic Benchmarks" refuri="http://www.blosc.org/synthetic-benchmarks.html">Synthetic Benchmarks</reference><target ids="['synthetic-benchmarks']" names="['synthetic benchmarks']" refuri="http://www.blosc.org/synthetic-benchmarks.html"/> by Francesc Alted</paragraph></list_item><list_item><paragraph><reference name="Genotype compressor benchmark" refuri="http://alimanfoo.github.io/2016/09/21/genotype-compression-benchmark.html">Genotype compressor benchmark</reference><target ids="['genotype-compressor-benchmark']" names="['genotype compressor benchmark']" refuri="http://alimanfoo.github.io/2016/09/21/genotype-compression-benchmark.html"/> by Alistair Miles</paragraph></list_item></bullet_list></section></section> SphinxTranslator.dispatch_departure calling depart_document for <document source="/usr/src/RPM/BUILD/python3-module-blosc-1.5.1/doc/tutorial.rst"><section ids="tutorials" names="tutorials"><title>Tutorials</title><paragraph>Using <literal>python-blosc</literal> (or just <literal>blosc</literal>, because we are going to talk always on how to use it in a Python environment) is pretty easy. It basically mimics the API of the <literal>zlib</literal> module included in the standard Python library.</paragraph><paragraph>Here are some examples on how to use it. For the full documentation, please refer to the <reference name="Library Reference" refuri="http://python-blosc.blosc.org/reference.html">Library Reference</reference><target ids="['library-reference']" names="['library reference']" refuri="http://python-blosc.blosc.org/reference.html"/> section.</paragraph><paragraph>Most of the times in this tutorial have been obtained using a VM with 2 cores on top of a Intel(R) Core(TM) i5-3380M CPU @ 2.90GHz.</paragraph><section ids="compressing-and-decompressing-with-blosc" names="compressing\ and\ decompressing\ with\ blosc"><title>Compressing and decompressing with <literal>blosc</literal></title><paragraph>Let’s start creating a NumPy array with 80 MB full of data:</paragraph><literal_block force="False" language="default" linenos="False" xml:space="preserve">>>> import numpy as np >>> a = np.linspace(0, 100, 1e7) >>> bytes_array = a.tostring() # get an array of bytes</literal_block><paragraph>and let’s compare Blosc operation with <literal>zlib</literal> (please note that we are using IPython for leveraging its timing capabilities):</paragraph><literal_block force="False" language="default" linenos="False" xml:space="preserve">>>> import zlib >>> %timeit zlib.compress(bytes_array) 1 loops, best of 3: 4.65 s per loop # ~ 17 MB/s >>> import blosc >>> %timeit blosc.compress(bytes_array, typesize=8) 100 loops, best of 3: 17.7 ms per loop # ~ 4.5 GB/s and 260x faster than zlib</literal_block><paragraph>but Blosc can use different codecs under the hood. Let’s try the LZ4 codec (instead of the BloscLZ which is the default):</paragraph><literal_block force="False" language="default" linenos="False" xml:space="preserve">>>> %timeit blosc.compress(bytes_array, typesize=8, cname='lz4') 100 loops, best of 3: 8.77 ms per loop # ~ 9.1 GB/s and 530x faster than zlib</literal_block><paragraph>It is important to note that this is quite more than the speed of a memcpy() in this machine:</paragraph><literal_block force="False" language="default" linenos="False" xml:space="preserve">>>> %timeit a.copy() 10 loops, best of 3: 27.2 ms per loop # ~ 2.9 GB/s</literal_block><paragraph>which means that both BloscLZ and LZ4 codecs can be faster than memcpy(), just as the Blosc slogan promises.</paragraph><paragraph>Blosc also comes with the ZLib codec too, and it actually runs faster than the naked zlib:</paragraph><literal_block force="False" language="default" linenos="False" xml:space="preserve">>>> %timeit blosc.compress(bytes_array, typesize=8, cname='zlib') 10 loops, best of 3: 139 ms per loop # ~ 580 MB/s and 33x faster than zlib</literal_block><paragraph>The reason why the internal Zlib codec in Blosc is faster than the ‘naked’ one is 1) that Blosc can use multithreading (using 8 threads here) and 2) that Blosc splits the data to compress in smaller blocks that are more friendly to the caches in modern CPUs.</paragraph><paragraph>Now, let’s have a look at the compression ratios:</paragraph><literal_block force="False" language="default" linenos="False" xml:space="preserve">>>> zpacked = zlib.compress(bytes_array); len(zpacked) 52994692 >>> round(len(bytes_array) / float(len(zpacked)), 3) 1.51 # zlib achieves a 1.5x compression ratio >>> blzpacked = blosc.compress(bytes_array, typesize=8, cname='blosclz'); len(blzpacked) 6986533 >>> round(len(bytes_array) / float(len(blzpacked)), 3) 11.451 # BloscLZ codec reaches more than 11x compression ratio >>> lz4packed = blosc.compress(bytes_array, typesize=8, cname='lz4'); len(lz4packed) 3716015 >>> round(len(bytes_array) / float(len(lz4packed)), 3) 21.528 # LZ4 codec reaches more than 21x compression ratio</literal_block><paragraph>Here we can see how Blosc, with its different codecs, is very efficient compressing this kind of binary data. It is important to note that the codecs alone are not the only responsible for high compression ratios. See what a naked LZ4 codec can do on the same string:</paragraph><literal_block force="False" language="default" linenos="False" xml:space="preserve">>>> import lz4 >>> lz4_packed = lz4.compress(bytes_array); len(lz4_packed) 80309133 >>> round(len(bytes_array) / float(len(lz4_packed)), 3) 0.996</literal_block><paragraph>That is, the naked LZ4 codec cannot compress the array of bytes at all, whereas through Blosc LZ4 can compress quite a lot. In fact, this difference in compression also happens with ZLib:</paragraph><literal_block force="False" language="default" linenos="False" xml:space="preserve">>>> zlibpacked = blosc.compress(bytes_array, typesize=8, cname='zlib'); len(zlibpacked) 875274 >>> round(len(zpacked) / float(len(zlibpacked)), 3) 60.546 # ZLib codec reaches 60x more compression than naked ZLib</literal_block><paragraph>Here it is a plot with the different compression ratios achieved:</paragraph><reference internal="True" refuri="_images/cratio-blosc-codecs.png"><image candidates="{'*': 'cratio-blosc-codecs.png'}" height="600" scale="75" uri="_images/cratio-blosc-codecs.png" width="800"/></reference><paragraph>The explanation for this apparently shocking result is that Blosc uses filters (<literal>SHUFFLE</literal> and <literal>BITSHUFFLE</literal> currently, but the list can increase more in the future) prior to the compression stage and these allow in general for better compression ratios when using binary data.</paragraph><paragraph>How about decompression?:</paragraph><literal_block force="False" language="default" linenos="False" xml:space="preserve">>>> %timeit zlib.decompress(zpacked) 1 loops, best of 3: 275 ms per loop # ~ 290 MB/s >>> %timeit blosc.decompress(blzpacked) 100 loops, best of 3: 17.3 ms per loop # ~ 4.3 GB/s and 16x faster than zlib >>> %timeit blosc.decompress(lz4packed) 10 loops, best of 3: 41.9 ms per loop # ~ 1.9 GB/s and 6.5x faster than zlib >>> %timeit blosc.decompress(zlibpacked) 10 loops, best of 3: 40.7 ms per loop # ~ 2.0 GB/S and 6.8x faster than zlib</literal_block><paragraph>Here we see a couple of things:</paragraph><bullet_list bullet="*"><list_item><paragraph>All the internal codecs in Blosc are way faster than naked ZLib</paragraph></list_item><list_item><paragraph>The fastest codec for decompressing here is BloscLZ (remember that LZ4 was the fastest for compression).</paragraph></list_item></bullet_list><paragraph>The next plot summarizes the speed benchmarks above:</paragraph><reference internal="True" refuri="_images/speed-blosc-codecs.png"><image candidates="{'*': 'speed-blosc-codecs.png'}" height="600" scale="75" uri="_images/speed-blosc-codecs.png" width="800"/></reference><paragraph>These results should reinforce the idea that there is not a single codec that wins in all areas (compression ratio, compression speed and decompression speed) and each has its pro’s and con’s. It is up to the user to choose whatever fits better to him (hint: there is no replacement for experimentation).</paragraph><paragraph>Finally, here it is the way to discover all the internal codecs inside your Blosc package:</paragraph><literal_block force="False" language="default" linenos="False" xml:space="preserve">>>> blosc.cnames ['blosclz', 'lz4', 'lz4hc', 'snappy', 'zlib', 'zstd']</literal_block><paragraph><emphasis>Note</emphasis>: the actual list of codecs may change depening on how you have compiled the underlying C-Blosc library.</paragraph></section><section ids="using-different-filters" names="using\ different\ filters"><title>Using different filters</title><paragraph>In the same way that you can use different codecs inside Blosc, you can use different filters too (currently <literal>SHUFFLE</literal> and <literal>BITSHUFLE</literal>). These allow the integrated compressors to compress more efficiently or not, depending on your datasets.</paragraph><paragraph>Here it is an example using the <literal>SHUFFLE</literal> filter:</paragraph><literal_block force="False" language="default" linenos="False" xml:space="preserve">>>> %time bpacked = blosc.compress(bytes_array, shuffle=blosc.SHUFFLE) CPU times: user 112 ms, sys: 4 ms, total: 116 ms Wall time: 29.9 ms >>> len(bpacked) 6986533</literal_block><paragraph>Here there is another example using <literal>BITSHUFFLE</literal>:</paragraph><literal_block force="False" language="default" linenos="False" xml:space="preserve">>>> %time bpacked = blosc.compress(bytes_array, shuffle=blosc.BITSHUFFLE) CPU times: user 120 ms, sys: 8 ms, total: 128 ms Wall time: 32.9 ms >>> len(bpacked) 5942257 # ~ 1.2x smaller than blosclz/shuffle</literal_block><paragraph>You can also deactivate filters completely with <literal>NOSHUFFLE</literal>:</paragraph><literal_block force="False" language="default" linenos="False" xml:space="preserve">>>> %time bpacked = blosc.compress(bytes_array, shuffle=blosc.NOSHUFFLE) CPU times: user 416 ms, sys: 8 ms, total: 424 ms Wall time: 107 ms >>> len(bpacked) 74323591 # just a 7% of compression wrt the original buffer</literal_block><paragraph>So you have quite a bit of flexibility on choosing different codecs and filters inside Blosc. Again, depending on the dataset you have and the requeriments on performance, you may want to experiment a bit before sticking with your preferred one.</paragraph></section><section ids="supporting-the-buffer-interface" names="supporting\ the\ buffer\ interface"><title>Supporting the buffer interface</title><paragraph>python-blosc supports compressing and decompressing from any bytes-like object that supports the buffer-interface: this includes <literal>buffer</literal>, <literal>memoryview</literal> and <literal>bytearray</literal>:</paragraph><literal_block force="False" language="default" linenos="False" xml:space="preserve">>>> input_bytes = b"abcdefghijklmnopqrstuvwxyz" >>> blosc.compress(input_bytes, typesize=1) '\x02\x01\x03\x01\x1a\x00\x00\x00\x1a\x00\x00\x00*\x00\x00\x00abcdefghijklmnopqrstuvwxyz' >>> blosc.compress(memoryview(input_bytes), typesize=1) '\x02\x01\x03\x01\x1a\x00\x00\x00\x1a\x00\x00\x00*\x00\x00\x00abcdefghijklmnopqrstuvwxyz' >>> blosc.compress(bytearray(input_bytes), typesize=1) '\x02\x01\x03\x01\x1a\x00\x00\x00\x1a\x00\x00\x00*\x00\x00\x00abcdefghijklmnopqrstuvwxyz' >>> compressed = blosc.compress(input_bytes, typesize=1) >>> blosc.decompress(compressed) 'abcdefghijklmnopqrstuvwxyz' >>> blosc.decompress(memoryview(compressed)) 'abcdefghijklmnopqrstuvwxyz' >>> blosc.decompress(bytearray(compressed)) 'abcdefghijklmnopqrstuvwxyz'</literal_block><paragraph>Note however, that there are subtle differences between Python 2.x and 3.x. For example, in Python 2.x we can compress/decompress both <literal>str</literal> and <literal>unicode</literal> types, whereas in Python 3.x we can only compress ‘binary’ data which does <emphasis>not</emphasis> include <literal>unicode</literal>.</paragraph></section><section ids="packaging-numpy-arrays" names="packaging\ numpy\ arrays"><title>Packaging NumPy arrays</title><paragraph>Want to use <literal>blosc</literal> to compress and decompress NumPy objects without having to worry about passing the typesize for optimal compression, or having to create the final container for decompression? <literal>blosc</literal> comes with the <literal>pack_array</literal> and <literal>unpack_array</literal> to perform this in a handy way:</paragraph><literal_block force="False" language="default" linenos="False" xml:space="preserve">>>> a = np.linspace(0, 100, 1e7) >>> packed = blosc.pack_array(a) >>> %timeit blosc.pack_array(a) 10 loops, best of 3: 104 ms per loop # ~ 770 MB/s >>> %timeit blosc.unpack_array(packed) 10 loops, best of 3: 76.3 ms per loop # ~ 1 GB/s</literal_block><paragraph>Although this is a convenient way for compressing/decompressing NumPy arrays, this method uses pickle/unpickle behind the scenes. This step implies additional copies, which takes both memory and time.</paragraph></section><section ids="compressing-from-a-data-pointer" names="compressing\ from\ a\ data\ pointer"><title>Compressing from a data pointer</title><paragraph>For avoiding the data copy problem in the previous section, <literal>blosc</literal> comes with a couple of lower-level functions: <literal>compress_ptr</literal> and <literal>decompress_ptr</literal>. Here are they in action:</paragraph><literal_block force="False" language="default" linenos="False" xml:space="preserve">>>> c = blosc.compress_ptr(a.__array_interface__['data'][0], a.size, a.dtype.itemsize, 9, True) >>> %timeit blosc.compress_ptr(a.__array_interface__['data'][0], a.size, a.dtype.itemsize, 9, True) 10 loops, best of 3: 17.8 ms per loop # ~ 4.5 GB/s >>> a2 = np.empty(a.size, dtype=a.dtype) >>> %timeit blosc.decompress_ptr(c, a2.__array_interface__['data'][0]) 100 loops, best of 3: 11 ms per loop # ~ 7.3 GB/s >>> (a == a2).all() True</literal_block><paragraph>As you see, these are really low level functions because you should pass actual pointers where the data is, as well as the size and itemsize (for compression). Needless to say, it is very easy to cause a segfault by passing incorrect parameters to the functions (wrong pointer or wrong size).</paragraph><paragraph>On the other hand, and contrarily to the <literal>pack_array</literal> / <literal>unpack_array</literal> method, the <literal>compress_ptr</literal> / <literal>decompress_ptr</literal> functions do not need to make internal copies of the data buffers, so they are extremely fast (as much as the C-Blosc library can be), but you have to provide a container when doing the de-serialization.</paragraph><paragraph><literal>blosc</literal> has a maximum <literal>blocksize</literal> of 2**31 bytes = 2 GB. Larger <literal>numpy</literal> arrays must be chunked by slicing, for example as:</paragraph><literal_block force="False" language="default" linenos="False" xml:space="preserve">>>> c = b'' >>> for index in np.arange( a.shape[0] ): c += blosc.compress_ptr(a[index,...].__array_interface__['data'][0], a.size, a.dtype.itemsize, 9, True)</literal_block></section><section ids="fine-tuning-compression-parameters" names="fine-tuning\ compression\ parameters"><title>Fine-tuning compression parameters</title><paragraph>There are a number of parameters that affect the de/compression bandwidth achieved by <literal>blosc</literal>:</paragraph><bullet_list bullet="*"><list_item><paragraph>The information content of the underlying data, and <literal>chunksize</literal>: the size of the data in each call to <literal>compress</literal> and analogous functions. ‘blosc’ does not manage chunksize itself, but an example implementation can be seen in the <literal>bloscpack</literal> module.</paragraph></list_item><list_item><paragraph><literal>n_threads</literal>: The number of threads to spawn inside <literal>c-blosc</literal>. <literal>n_threads</literal> may be changed by calling <literal>blosc.set_nthreads(16)</literal> for example. <literal>blosc</literal> performance generally scales sub-linearly with the number of threads with a coefficient roughly around 0.5-0.67. I.e. the expected performance compared to a single thread is 1.0 / (0.6*n_threads). For systems with hyper-threading the optimum number of threads is usually a small over-subscription of the number of _physical_ (not virtual) cores.</paragraph></list_item><list_item><paragraph><literal>blocksize</literal>: is the size of each continuously memory-element that is compressed, in bytes. Normally <literal>blosc</literal> attempts to automatically guess the size of each compressed block of data, but the user can set it manually by calling <literal>blosc.set_blocksize( size_in_bytes )</literal> for hand optimized situations. Often the L2 cache size (e.g. 256kB for an Intel Haswell) is a good starting point for optimization.</paragraph></list_item><list_item><paragraph><literal>shuffle</literal>: as discussed above the <literal>shuffle</literal> mode can substantially improve compression ratios when the</paragraph></list_item><list_item><paragraph><literal>clevel</literal>: the compression level called for the algorithm. Called as an argument to <literal>compress</literal> and similar functions.</paragraph></list_item><list_item><paragraph><literal>cname</literal>: the compressor codec itself. Each codec has its own characteristics that also vary depending on the underlying data. For example, ‘lz4’ tends to prefer smaller <literal>blocksize</literal> and does not slow significantly with <literal>clevel</literal>. In comparison <literal>zlib</literal> and <literal>zstd</literal> both slow substantially with increasing <literal>clevel</literal>, with an inflection point around <literal>clevel`=4-5 for 'zlib' and `clevel`=2-4 for 'zstd'. Called as an argument to `compress</literal> and similar functions.</paragraph></list_item><list_item><paragraph><literal>releasegil</literal>: optionally the Python Global Interpreter Lock (GIL) can be turned off during <literal>c-blosc</literal> operations by calling <literal>blosc.set_releasegil(True)</literal>. The default is off as there is a small overhead in releasing the GIL which can be significant for a small <literal>blocksize</literal>. GIL release is intended to be used in situations where other bounds (such as file or network I/O) are the rate-limiting ones and a Python <literal>ThreadPool</literal> or similar object can be used for parallel processing either with or without <literal>blosc</literal> threads. Initial testing suggests that an equal mix of <literal>ThreadPool</literal> and <literal>blosc</literal> threads is near optimal. I.e. a computer with 16 cores would have 4 <literal>blosc</literal> threads and 4 <literal>ThreadPool</literal> threads. An example of combining <literal>blosc</literal> and <literal>ThreadPool</literal> may be found in <literal>bench/threadpool.py</literal>.</paragraph></list_item></bullet_list></section><section ids="links-to-external-discussions-on-blosc-optimization" names="links\ to\ external\ discussions\ on\ blosc\ optimization"><title>Links to external discussions on <literal>blosc</literal> optimization</title><bullet_list bullet="*"><list_item><paragraph><reference name="Synthetic Benchmarks" refuri="http://www.blosc.org/synthetic-benchmarks.html">Synthetic Benchmarks</reference><target ids="['synthetic-benchmarks']" names="['synthetic benchmarks']" refuri="http://www.blosc.org/synthetic-benchmarks.html"/> by Francesc Alted</paragraph></list_item><list_item><paragraph><reference name="Genotype compressor benchmark" refuri="http://alimanfoo.github.io/2016/09/21/genotype-compression-benchmark.html">Genotype compressor benchmark</reference><target ids="['genotype-compressor-benchmark']" names="['genotype compressor benchmark']" refuri="http://alimanfoo.github.io/2016/09/21/genotype-compression-benchmark.html"/> by Alistair Miles</paragraph></list_item></bullet_list></section></section></document> SphinxTranslator.dispatch_visit calling visit_document for <document source="<partial node>"><title>Library Reference</title></document> SphinxTranslator.dispatch_visit calling visit_title for <title>Library Reference</title> SphinxTranslator.dispatch_visit calling visit_Text for Library Reference SphinxTranslator.dispatch_departure calling depart_Text for Library Reference SphinxTranslator.dispatch_departure calling depart_title for <title>Library Reference</title> SphinxTranslator.dispatch_departure calling depart_document for <document source="<partial node>"><title>Library Reference</title></document> SphinxTranslator.dispatch_visit calling visit_document for <document source="<partial node>"><title>Installation</title></document> SphinxTranslator.dispatch_visit calling visit_title for <title>Installation</title> SphinxTranslator.dispatch_visit calling visit_Text for Installation SphinxTranslator.dispatch_departure calling depart_Text for Installation SphinxTranslator.dispatch_departure calling depart_title for <title>Installation</title> SphinxTranslator.dispatch_departure calling depart_document for <document source="<partial node>"><title>Installation</title></document> SphinxTranslator.dispatch_visit calling visit_document for <document source="<partial node>"><title>Welcome to python-blosc’s documentation!</title></document> SphinxTranslator.dispatch_visit calling visit_title for <title>Welcome to python-blosc’s documentation!</title> SphinxTranslator.dispatch_visit calling visit_Text for Welcome to python-blosc’s documentation! SphinxTranslator.dispatch_departure calling depart_Text for Welcome to python-blosc’s documentation! SphinxTranslator.dispatch_departure calling depart_title for <title>Welcome to python-blosc’s documentation!</title> SphinxTranslator.dispatch_departure calling depart_document for <document source="<partial node>"><title>Welcome to python-blosc’s documentation!</title></document> SphinxTranslator.dispatch_visit calling visit_document for <document source="<partial node>"><title>Tutorials</title></document> SphinxTranslator.dispatch_visit calling visit_title for <title>Tutorials</title> SphinxTranslator.dispatch_visit calling visit_Text for Tutorials SphinxTranslator.dispatch_departure calling depart_Text for Tutorials SphinxTranslator.dispatch_departure calling depart_title for <title>Tutorials</title> SphinxTranslator.dispatch_departure calling depart_document for <document source="<partial node>"><title>Tutorials</title></document> SphinxTranslator.dispatch_visit calling visit_document for <document source="<partial node>"><bullet_list><list_item><compact_paragraph><reference anchorname="" internal="True" refuri="#">Tutorials</reference></compact_paragraph><bullet_list><list_item><compact_paragraph><reference anchorname="#compressing-and-decompressing-with-blosc" internal="True" refuri="#compressing-and-decompressing-with-blosc">Compressing and decompressing with <literal>blosc</literal></reference></compact_paragraph></list_item><list_item><compact_paragraph><reference anchorname="#using-different-filters" internal="True" refuri="#using-different-filters">Using different filters</reference></compact_paragraph></list_item><list_item><compact_paragraph><reference anchorname="#supporting-the-buffer-interface" internal="True" refuri="#supporting-the-buffer-interface">Supporting the buffer interface</reference></compact_paragraph></list_item><list_item><compact_paragraph><reference anchorname="#packaging-numpy-arrays" internal="True" refuri="#packaging-numpy-arrays">Packaging NumPy arrays</reference></compact_paragraph></list_item><list_item><compact_paragraph><reference anchorname="#compressing-from-a-data-pointer" internal="True" refuri="#compressing-from-a-data-pointer">Compressing from a data pointer</reference></compact_paragraph></list_item><list_item><compact_paragraph><reference anchorname="#fine-tuning-compression-parameters" internal="True" refuri="#fine-tuning-compression-parameters">Fine-tuning compression parameters</reference></compact_paragraph></list_item><list_item><compact_paragraph><reference anchorname="#links-to-external-discussions-on-blosc-optimization" internal="True" refuri="#links-to-external-discussions-on-blosc-optimization">Links to external discussions on <literal>blosc</literal> optimization</reference></compact_paragraph></list_item></bullet_list></list_item></bullet_list></document> SphinxTranslator.dispatch_visit calling visit_bullet_list for <bullet_list><list_item><compact_paragraph><reference anchorname="" internal="True" refuri="#">Tutorials</reference></compact_paragraph><bullet_list><list_item><compact_paragraph><reference anchorname="#compressing-and-decompressing-with-blosc" internal="True" refuri="#compressing-and-decompressing-with-blosc">Compressing and decompressing with <literal>blosc</literal></reference></compact_paragraph></list_item><list_item><compact_paragraph><reference anchorname="#using-different-filters" internal="True" refuri="#using-different-filters">Using different filters</reference></compact_paragraph></list_item><list_item><compact_paragraph><reference anchorname="#supporting-the-buffer-interface" internal="True" refuri="#supporting-the-buffer-interface">Supporting the buffer interface</reference></compact_paragraph></list_item><list_item><compact_paragraph><reference anchorname="#packaging-numpy-arrays" internal="True" refuri="#packaging-numpy-arrays">Packaging NumPy arrays</reference></compact_paragraph></list_item><list_item><compact_paragraph><reference anchorname="#compressing-from-a-data-pointer" internal="True" refuri="#compressing-from-a-data-pointer">Compressing from a data pointer</reference></compact_paragraph></list_item><list_item><compact_paragraph><reference anchorname="#fine-tuning-compression-parameters" internal="True" refuri="#fine-tuning-compression-parameters">Fine-tuning compression parameters</reference></compact_paragraph></list_item><list_item><compact_paragraph><reference anchorname="#links-to-external-discussions-on-blosc-optimization" internal="True" refuri="#links-to-external-discussions-on-blosc-optimization">Links to external discussions on <literal>blosc</literal> optimization</reference></compact_paragraph></list_item></bullet_list></list_item></bullet_list> SphinxTranslator.dispatch_visit calling visit_list_item for <list_item><compact_paragraph><reference anchorname="" internal="True" refuri="#">Tutorials</reference></compact_paragraph><bullet_list><list_item><compact_paragraph><reference anchorname="#compressing-and-decompressing-with-blosc" internal="True" refuri="#compressing-and-decompressing-with-blosc">Compressing and decompressing with <literal>blosc</literal></reference></compact_paragraph></list_item><list_item><compact_paragraph><reference anchorname="#using-different-filters" internal="True" refuri="#using-different-filters">Using different filters</reference></compact_paragraph></list_item><list_item><compact_paragraph><reference anchorname="#supporting-the-buffer-interface" internal="True" refuri="#supporting-the-buffer-interface">Supporting the buffer interface</reference></compact_paragraph></list_item><list_item><compact_paragraph><reference anchorname="#packaging-numpy-arrays" internal="True" refuri="#packaging-numpy-arrays">Packaging NumPy arrays</reference></compact_paragraph></list_item><list_item><compact_paragraph><reference anchorname="#compressing-from-a-data-pointer" internal="True" refuri="#compressing-from-a-data-pointer">Compressing from a data pointer</reference></compact_paragraph></list_item><list_item><compact_paragraph><reference anchorname="#fine-tuning-compression-parameters" internal="True" refuri="#fine-tuning-compression-parameters">Fine-tuning compression parameters</reference></compact_paragraph></list_item><list_item><compact_paragraph><reference anchorname="#links-to-external-discussions-on-blosc-optimization" internal="True" refuri="#links-to-external-discussions-on-blosc-optimization">Links to external discussions on <literal>blosc</literal> optimization</reference></compact_paragraph></list_item></bullet_list></list_item> SphinxTranslator.dispatch_visit calling visit_compact_paragraph for <compact_paragraph><reference anchorname="" internal="True" refuri="#">Tutorials</reference></compact_paragraph> SphinxTranslator.dispatch_visit calling visit_reference for <reference anchorname="" internal="True" refuri="#">Tutorials</reference> SphinxTranslator.dispatch_visit calling visit_Text for Tutorials SphinxTranslator.dispatch_departure calling depart_Text for Tutorials SphinxTranslator.dispatch_departure calling depart_reference for <reference anchorname="" internal="True" refuri="#">Tutorials</reference> SphinxTranslator.dispatch_departure calling depart_compact_paragraph for <compact_paragraph><reference anchorname="" internal="True" refuri="#">Tutorials</reference></compact_paragraph> SphinxTranslator.dispatch_visit calling visit_bullet_list for <bullet_list><list_item><compact_paragraph><reference anchorname="#compressing-and-decompressing-with-blosc" internal="True" refuri="#compressing-and-decompressing-with-blosc">Compressing and decompressing with <literal>blosc</literal></reference></compact_paragraph></list_item><list_item><compact_paragraph><reference anchorname="#using-different-filters" internal="True" refuri="#using-different-filters">Using different filters</reference></compact_paragraph></list_item><list_item><compact_paragraph><reference anchorname="#supporting-the-buffer-interface" internal="True" refuri="#supporting-the-buffer-interface">Supporting the buffer interface</reference></compact_paragraph></list_item><list_item><compact_paragraph><reference anchorname="#packaging-numpy-arrays" internal="True" refuri="#packaging-numpy-arrays">Packaging NumPy arrays</reference></compact_paragraph></list_item><list_item><compact_paragraph><reference anchorname="#compressing-from-a-data-pointer" internal="True" refuri="#compressing-from-a-data-pointer">Compressing from a data pointer</reference></compact_paragraph></list_item><list_item><compact_paragraph><reference anchorname="#fine-tuning-compression-parameters" internal="True" refuri="#fine-tuning-compression-parameters">Fine-tuning compression parameters</reference></compact_paragraph></list_item><list_item><compact_paragraph><reference anchorname="#links-to-external-discussions-on-blosc-optimization" internal="True" refuri="#links-to-external-discussions-on-blosc-optimization">Links to external discussions on <literal>blosc</literal> optimization</reference></compact_paragraph></list_item></bullet_list> SphinxTranslator.dispatch_visit calling visit_list_item for <list_item><compact_paragraph><reference anchorname="#compressing-and-decompressing-with-blosc" internal="True" refuri="#compressing-and-decompressing-with-blosc">Compressing and decompressing with <literal>blosc</literal></reference></compact_paragraph></list_item> SphinxTranslator.dispatch_visit calling visit_compact_paragraph for <compact_paragraph><reference anchorname="#compressing-and-decompressing-with-blosc" internal="True" refuri="#compressing-and-decompressing-with-blosc">Compressing and decompressing with <literal>blosc</literal></reference></compact_paragraph> SphinxTranslator.dispatch_visit calling visit_reference for <reference anchorname="#compressing-and-decompressing-with-blosc" internal="True" refuri="#compressing-and-decompressing-with-blosc">Compressing and decompressing with <literal>blosc</literal></reference> SphinxTranslator.dispatch_visit calling visit_Text for Compressing and decompressing with SphinxTranslator.dispatch_departure calling depart_Text for Compressing and decompressing with SphinxTranslator.dispatch_visit calling visit_literal for <literal>blosc</literal> SphinxTranslator.dispatch_visit calling visit_Text for blosc SphinxTranslator.dispatch_departure calling depart_Text for blosc SphinxTranslator.dispatch_departure calling depart_literal for <literal>blosc</literal> SphinxTranslator.dispatch_departure calling depart_reference for <reference anchorname="#compressing-and-decompressing-with-blosc" internal="True" refuri="#compressing-and-decompressing-with-blosc">Compressing and decompressing with <literal>blosc</literal></reference> SphinxTranslator.dispatch_departure calling depart_compact_paragraph for <compact_paragraph><reference anchorname="#compressing-and-decompressing-with-blosc" internal="True" refuri="#compressing-and-decompressing-with-blosc">Compressing and decompressing with <literal>blosc</literal></reference></compact_paragraph> SphinxTranslator.dispatch_departure calling depart_list_item for <list_item><compact_paragraph><reference anchorname="#compressing-and-decompressing-with-blosc" internal="True" refuri="#compressing-and-decompressing-with-blosc">Compressing and decompressing with <literal>blosc</literal></reference></compact_paragraph></list_item> SphinxTranslator.dispatch_visit calling visit_list_item for <list_item><compact_paragraph><reference anchorname="#using-different-filters" internal="True" refuri="#using-different-filters">Using different filters</reference></compact_paragraph></list_item> SphinxTranslator.dispatch_visit calling visit_compact_paragraph for <compact_paragraph><reference anchorname="#using-different-filters" internal="True" refuri="#using-different-filters">Using different filters</reference></compact_paragraph> SphinxTranslator.dispatch_visit calling visit_reference for <reference anchorname="#using-different-filters" internal="True" refuri="#using-different-filters">Using different filters</reference> SphinxTranslator.dispatch_visit calling visit_Text for Using different filters SphinxTranslator.dispatch_departure calling depart_Text for Using different filters SphinxTranslator.dispatch_departure calling depart_reference for <reference anchorname="#using-different-filters" internal="True" refuri="#using-different-filters">Using different filters</reference> SphinxTranslator.dispatch_departure calling depart_compact_paragraph for <compact_paragraph><reference anchorname="#using-different-filters" internal="True" refuri="#using-different-filters">Using different filters</reference></compact_paragraph> SphinxTranslator.dispatch_departure calling depart_list_item for <list_item><compact_paragraph><reference anchorname="#using-different-filters" internal="True" refuri="#using-different-filters">Using different filters</reference></compact_paragraph></list_item> SphinxTranslator.dispatch_visit calling visit_list_item for <list_item><compact_paragraph><reference anchorname="#supporting-the-buffer-interface" internal="True" refuri="#supporting-the-buffer-interface">Supporting the buffer interface</reference></compact_paragraph></list_item> SphinxTranslator.dispatch_visit calling visit_compact_paragraph for <compact_paragraph><reference anchorname="#supporting-the-buffer-interface" internal="True" refuri="#supporting-the-buffer-interface">Supporting the buffer interface</reference></compact_paragraph> SphinxTranslator.dispatch_visit calling visit_reference for <reference anchorname="#supporting-the-buffer-interface" internal="True" refuri="#supporting-the-buffer-interface">Supporting the buffer interface</reference> SphinxTranslator.dispatch_visit calling visit_Text for Supporting the buffer interface SphinxTranslator.dispatch_departure calling depart_Text for Supporting the buffer interface SphinxTranslator.dispatch_departure calling depart_reference for <reference anchorname="#supporting-the-buffer-interface" internal="True" refuri="#supporting-the-buffer-interface">Supporting the buffer interface</reference> SphinxTranslator.dispatch_departure calling depart_compact_paragraph for <compact_paragraph><reference anchorname="#supporting-the-buffer-interface" internal="True" refuri="#supporting-the-buffer-interface">Supporting the buffer interface</reference></compact_paragraph> SphinxTranslator.dispatch_departure calling depart_list_item for <list_item><compact_paragraph><reference anchorname="#supporting-the-buffer-interface" internal="True" refuri="#supporting-the-buffer-interface">Supporting the buffer interface</reference></compact_paragraph></list_item> SphinxTranslator.dispatch_visit calling visit_list_item for <list_item><compact_paragraph><reference anchorname="#packaging-numpy-arrays" internal="True" refuri="#packaging-numpy-arrays">Packaging NumPy arrays</reference></compact_paragraph></list_item> SphinxTranslator.dispatch_visit calling visit_compact_paragraph for <compact_paragraph><reference anchorname="#packaging-numpy-arrays" internal="True" refuri="#packaging-numpy-arrays">Packaging NumPy arrays</reference></compact_paragraph> SphinxTranslator.dispatch_visit calling visit_reference for <reference anchorname="#packaging-numpy-arrays" internal="True" refuri="#packaging-numpy-arrays">Packaging NumPy arrays</reference> SphinxTranslator.dispatch_visit calling visit_Text for Packaging NumPy arrays SphinxTranslator.dispatch_departure calling depart_Text for Packaging NumPy arrays SphinxTranslator.dispatch_departure calling depart_reference for <reference anchorname="#packaging-numpy-arrays" internal="True" refuri="#packaging-numpy-arrays">Packaging NumPy arrays</reference> SphinxTranslator.dispatch_departure calling depart_compact_paragraph for <compact_paragraph><reference anchorname="#packaging-numpy-arrays" internal="True" refuri="#packaging-numpy-arrays">Packaging NumPy arrays</reference></compact_paragraph> SphinxTranslator.dispatch_departure calling depart_list_item for <list_item><compact_paragraph><reference anchorname="#packaging-numpy-arrays" internal="True" refuri="#packaging-numpy-arrays">Packaging NumPy arrays</reference></compact_paragraph></list_item> SphinxTranslator.dispatch_visit calling visit_list_item for <list_item><compact_paragraph><reference anchorname="#compressing-from-a-data-pointer" internal="True" refuri="#compressing-from-a-data-pointer">Compressing from a data pointer</reference></compact_paragraph></list_item> SphinxTranslator.dispatch_visit calling visit_compact_paragraph for <compact_paragraph><reference anchorname="#compressing-from-a-data-pointer" internal="True" refuri="#compressing-from-a-data-pointer">Compressing from a data pointer</reference></compact_paragraph> SphinxTranslator.dispatch_visit calling visit_reference for <reference anchorname="#compressing-from-a-data-pointer" internal="True" refuri="#compressing-from-a-data-pointer">Compressing from a data pointer</reference> SphinxTranslator.dispatch_visit calling visit_Text for Compressing from a data pointer SphinxTranslator.dispatch_departure calling depart_Text for Compressing from a data pointer SphinxTranslator.dispatch_departure calling depart_reference for <reference anchorname="#compressing-from-a-data-pointer" internal="True" refuri="#compressing-from-a-data-pointer">Compressing from a data pointer</reference> SphinxTranslator.dispatch_departure calling depart_compact_paragraph for <compact_paragraph><reference anchorname="#compressing-from-a-data-pointer" internal="True" refuri="#compressing-from-a-data-pointer">Compressing from a data pointer</reference></compact_paragraph> SphinxTranslator.dispatch_departure calling depart_list_item for <list_item><compact_paragraph><reference anchorname="#compressing-from-a-data-pointer" internal="True" refuri="#compressing-from-a-data-pointer">Compressing from a data pointer</reference></compact_paragraph></list_item> SphinxTranslator.dispatch_visit calling visit_list_item for <list_item><compact_paragraph><reference anchorname="#fine-tuning-compression-parameters" internal="True" refuri="#fine-tuning-compression-parameters">Fine-tuning compression parameters</reference></compact_paragraph></list_item> SphinxTranslator.dispatch_visit calling visit_compact_paragraph for <compact_paragraph><reference anchorname="#fine-tuning-compression-parameters" internal="True" refuri="#fine-tuning-compression-parameters">Fine-tuning compression parameters</reference></compact_paragraph> SphinxTranslator.dispatch_visit calling visit_reference for <reference anchorname="#fine-tuning-compression-parameters" internal="True" refuri="#fine-tuning-compression-parameters">Fine-tuning compression parameters</reference> SphinxTranslator.dispatch_visit calling visit_Text for Fine-tuning compression parameters SphinxTranslator.dispatch_departure calling depart_Text for Fine-tuning compression parameters SphinxTranslator.dispatch_departure calling depart_reference for <reference anchorname="#fine-tuning-compression-parameters" internal="True" refuri="#fine-tuning-compression-parameters">Fine-tuning compression parameters</reference> SphinxTranslator.dispatch_departure calling depart_compact_paragraph for <compact_paragraph><reference anchorname="#fine-tuning-compression-parameters" internal="True" refuri="#fine-tuning-compression-parameters">Fine-tuning compression parameters</reference></compact_paragraph> SphinxTranslator.dispatch_departure calling depart_list_item for <list_item><compact_paragraph><reference anchorname="#fine-tuning-compression-parameters" internal="True" refuri="#fine-tuning-compression-parameters">Fine-tuning compression parameters</reference></compact_paragraph></list_item> SphinxTranslator.dispatch_visit calling visit_list_item for <list_item><compact_paragraph><reference anchorname="#links-to-external-discussions-on-blosc-optimization" internal="True" refuri="#links-to-external-discussions-on-blosc-optimization">Links to external discussions on <literal>blosc</literal> optimization</reference></compact_paragraph></list_item> SphinxTranslator.dispatch_visit calling visit_compact_paragraph for <compact_paragraph><reference anchorname="#links-to-external-discussions-on-blosc-optimization" internal="True" refuri="#links-to-external-discussions-on-blosc-optimization">Links to external discussions on <literal>blosc</literal> optimization</reference></compact_paragraph> SphinxTranslator.dispatch_visit calling visit_reference for <reference anchorname="#links-to-external-discussions-on-blosc-optimization" internal="True" refuri="#links-to-external-discussions-on-blosc-optimization">Links to external discussions on <literal>blosc</literal> optimization</reference> SphinxTranslator.dispatch_visit calling visit_Text for Links to external discussions on SphinxTranslator.dispatch_departure calling depart_Text for Links to external discussions on SphinxTranslator.dispatch_visit calling visit_literal for <literal>blosc</literal> SphinxTranslator.dispatch_visit calling visit_Text for blosc SphinxTranslator.dispatch_departure calling depart_Text for blosc SphinxTranslator.dispatch_departure calling depart_literal for <literal>blosc</literal> SphinxTranslator.dispatch_visit calling visit_Text for optimization SphinxTranslator.dispatch_departure calling depart_Text for optimization SphinxTranslator.dispatch_departure calling depart_reference for <reference anchorname="#links-to-external-discussions-on-blosc-optimization" internal="True" refuri="#links-to-external-discussions-on-blosc-optimization">Links to external discussions on <literal>blosc</literal> optimization</reference> SphinxTranslator.dispatch_departure calling depart_compact_paragraph for <compact_paragraph><reference anchorname="#links-to-external-discussions-on-blosc-optimization" internal="True" refuri="#links-to-external-discussions-on-blosc-optimization">Links to external discussions on <literal>blosc</literal> optimization</reference></compact_paragraph> SphinxTranslator.dispatch_departure calling depart_list_item for <list_item><compact_paragraph><reference anchorname="#links-to-external-discussions-on-blosc-optimization" internal="True" refuri="#links-to-external-discussions-on-blosc-optimization">Links to external discussions on <literal>blosc</literal> optimization</reference></compact_paragraph></list_item> SphinxTranslator.dispatch_departure calling depart_bullet_list for <bullet_list><list_item><compact_paragraph><reference anchorname="#compressing-and-decompressing-with-blosc" internal="True" refuri="#compressing-and-decompressing-with-blosc">Compressing and decompressing with <literal>blosc</literal></reference></compact_paragraph></list_item><list_item><compact_paragraph><reference anchorname="#using-different-filters" internal="True" refuri="#using-different-filters">Using different filters</reference></compact_paragraph></list_item><list_item><compact_paragraph><reference anchorname="#supporting-the-buffer-interface" internal="True" refuri="#supporting-the-buffer-interface">Supporting the buffer interface</reference></compact_paragraph></list_item><list_item><compact_paragraph><reference anchorname="#packaging-numpy-arrays" internal="True" refuri="#packaging-numpy-arrays">Packaging NumPy arrays</reference></compact_paragraph></list_item><list_item><compact_paragraph><reference anchorname="#compressing-from-a-data-pointer" internal="True" refuri="#compressing-from-a-data-pointer">Compressing from a data pointer</reference></compact_paragraph></list_item><list_item><compact_paragraph><reference anchorname="#fine-tuning-compression-parameters" internal="True" refuri="#fine-tuning-compression-parameters">Fine-tuning compression parameters</reference></compact_paragraph></list_item><list_item><compact_paragraph><reference anchorname="#links-to-external-discussions-on-blosc-optimization" internal="True" refuri="#links-to-external-discussions-on-blosc-optimization">Links to external discussions on <literal>blosc</literal> optimization</reference></compact_paragraph></list_item></bullet_list> SphinxTranslator.dispatch_departure calling depart_list_item for <list_item><compact_paragraph><reference anchorname="" internal="True" refuri="#">Tutorials</reference></compact_paragraph><bullet_list><list_item><compact_paragraph><reference anchorname="#compressing-and-decompressing-with-blosc" internal="True" refuri="#compressing-and-decompressing-with-blosc">Compressing and decompressing with <literal>blosc</literal></reference></compact_paragraph></list_item><list_item><compact_paragraph><reference anchorname="#using-different-filters" internal="True" refuri="#using-different-filters">Using different filters</reference></compact_paragraph></list_item><list_item><compact_paragraph><reference anchorname="#supporting-the-buffer-interface" internal="True" refuri="#supporting-the-buffer-interface">Supporting the buffer interface</reference></compact_paragraph></list_item><list_item><compact_paragraph><reference anchorname="#packaging-numpy-arrays" internal="True" refuri="#packaging-numpy-arrays">Packaging NumPy arrays</reference></compact_paragraph></list_item><list_item><compact_paragraph><reference anchorname="#compressing-from-a-data-pointer" internal="True" refuri="#compressing-from-a-data-pointer">Compressing from a data pointer</reference></compact_paragraph></list_item><list_item><compact_paragraph><reference anchorname="#fine-tuning-compression-parameters" internal="True" refuri="#fine-tuning-compression-parameters">Fine-tuning compression parameters</reference></compact_paragraph></list_item><list_item><compact_paragraph><reference anchorname="#links-to-external-discussions-on-blosc-optimization" internal="True" refuri="#links-to-external-discussions-on-blosc-optimization">Links to external discussions on <literal>blosc</literal> optimization</reference></compact_paragraph></list_item></bullet_list></list_item> SphinxTranslator.dispatch_departure calling depart_bullet_list for <bullet_list><list_item><compact_paragraph><reference anchorname="" internal="True" refuri="#">Tutorials</reference></compact_paragraph><bullet_list><list_item><compact_paragraph><reference anchorname="#compressing-and-decompressing-with-blosc" internal="True" refuri="#compressing-and-decompressing-with-blosc">Compressing and decompressing with <literal>blosc</literal></reference></compact_paragraph></list_item><list_item><compact_paragraph><reference anchorname="#using-different-filters" internal="True" refuri="#using-different-filters">Using different filters</reference></compact_paragraph></list_item><list_item><compact_paragraph><reference anchorname="#supporting-the-buffer-interface" internal="True" refuri="#supporting-the-buffer-interface">Supporting the buffer interface</reference></compact_paragraph></list_item><list_item><compact_paragraph><reference anchorname="#packaging-numpy-arrays" internal="True" refuri="#packaging-numpy-arrays">Packaging NumPy arrays</reference></compact_paragraph></list_item><list_item><compact_paragraph><reference anchorname="#compressing-from-a-data-pointer" internal="True" refuri="#compressing-from-a-data-pointer">Compressing from a data pointer</reference></compact_paragraph></list_item><list_item><compact_paragraph><reference anchorname="#fine-tuning-compression-parameters" internal="True" refuri="#fine-tuning-compression-parameters">Fine-tuning compression parameters</reference></compact_paragraph></list_item><list_item><compact_paragraph><reference anchorname="#links-to-external-discussions-on-blosc-optimization" internal="True" refuri="#links-to-external-discussions-on-blosc-optimization">Links to external discussions on <literal>blosc</literal> optimization</reference></compact_paragraph></list_item></bullet_list></list_item></bullet_list> SphinxTranslator.dispatch_departure calling depart_document for <document source="<partial node>"><bullet_list><list_item><compact_paragraph><reference anchorname="" internal="True" refuri="#">Tutorials</reference></compact_paragraph><bullet_list><list_item><compact_paragraph><reference anchorname="#compressing-and-decompressing-with-blosc" internal="True" refuri="#compressing-and-decompressing-with-blosc">Compressing and decompressing with <literal>blosc</literal></reference></compact_paragraph></list_item><list_item><compact_paragraph><reference anchorname="#using-different-filters" internal="True" refuri="#using-different-filters">Using different filters</reference></compact_paragraph></list_item><list_item><compact_paragraph><reference anchorname="#supporting-the-buffer-interface" internal="True" refuri="#supporting-the-buffer-interface">Supporting the buffer interface</reference></compact_paragraph></list_item><list_item><compact_paragraph><reference anchorname="#packaging-numpy-arrays" internal="True" refuri="#packaging-numpy-arrays">Packaging NumPy arrays</reference></compact_paragraph></list_item><list_item><compact_paragraph><reference anchorname="#compressing-from-a-data-pointer" internal="True" refuri="#compressing-from-a-data-pointer">Compressing from a data pointer</reference></compact_paragraph></list_item><list_item><compact_paragraph><reference anchorname="#fine-tuning-compression-parameters" internal="True" refuri="#fine-tuning-compression-parameters">Fine-tuning compression parameters</reference></compact_paragraph></list_item><list_item><compact_paragraph><reference anchorname="#links-to-external-discussions-on-blosc-optimization" internal="True" refuri="#links-to-external-discussions-on-blosc-optimization">Links to external discussions on <literal>blosc</literal> optimization</reference></compact_paragraph></list_item></bullet_list></list_item></bullet_list></document> [app] emitting event: 'html-page-context'('tutorial', 'page.html', {'embedded': False, 'project': 'python-blosc', 'release': '1.5.0', 'versio generating indices... genindex[app] emitting event: 'html-page-context'('genindex', 'genindex.html', {'embedded': False, 'project': 'python-blosc', 'release': '1.5.0', 've py-modindex[app] emitting event: 'html-page-context'('py-modindex', 'domainindex.html', {'embedded': False, 'project': 'python-blosc', 'release': '1.5.0 done [app] emitting event: 'html-collect-pages'() writing additional pages... search[app] emitting event: 'html-page-context'('search', 'search.html', {'embedded': False, 'project': 'python-blosc', 'release': '1.5.0', 'versio done copying images... [ 50%] cratio-blosc-codecs.png copying images... [100%] speed-blosc-codecs.png copying static files... ... done copying extra files... done dumping search index in English (code: en)... done dumping object inventory... done build succeeded, 2 warnings. The HTML pages are in _build/html. [app] emitting event: 'build-finished'(None,) Build finished. The HTML pages are in _build/html. make: Leaving directory '/usr/src/RPM/BUILD/python3-module-blosc-1.5.1/doc' + cp -fR doc/_build/pickle /usr/src/tmp/python3-module-blosc-buildroot/usr/lib/python3/site-packages/blosc/ + /usr/lib/rpm/brp-alt Cleaning files in /usr/src/tmp/python3-module-blosc-buildroot (auto) mode of './usr/lib/python3/site-packages/blosc/blosc_extension.cpython-38.so' changed from 0755 (rwxr-xr-x) to 0644 (rw-r--r--) Verifying and fixing files in /usr/src/tmp/python3-module-blosc-buildroot (binconfig,pkgconfig,libtool,desktop) Checking contents of files in /usr/src/tmp/python3-module-blosc-buildroot/ (default) Compressing files in /usr/src/tmp/python3-module-blosc-buildroot (auto) Adjusting library links in /usr/src/tmp/python3-module-blosc-buildroot ./usr/lib: Verifying ELF objects in /usr/src/tmp/python3-module-blosc-buildroot (arch=normal,fhs=normal,lfs=relaxed,lint=relaxed,rpath=normal,stack=normal,textrel=normal,unresolved=normal) Bytecompiling python modules in /usr/src/tmp/python3-module-blosc-buildroot using /usr/bin/python2.7 Bytecompiling python modules with optimization in /usr/src/tmp/python3-module-blosc-buildroot using /usr/bin/python2.7 -O Bytecompiling python3 modules in /usr/src/tmp/python3-module-blosc-buildroot using /usr/bin/python3 unlink /usr/src/tmp/python3-module-blosc-buildroot/usr/lib/python3/site-packages/blosc/__pycache__/__init__.cpython-38.pyc unlink /usr/src/tmp/python3-module-blosc-buildroot/usr/lib/python3/site-packages/blosc/__pycache__/test.cpython-38.pyc unlink /usr/src/tmp/python3-module-blosc-buildroot/usr/lib/python3/site-packages/blosc/__pycache__/toplevel.cpython-38.pyc unlink /usr/src/tmp/python3-module-blosc-buildroot/usr/lib/python3/site-packages/blosc/__pycache__/version.cpython-38.pyc compile /usr/src/tmp/python3-module-blosc-buildroot/usr/lib/python3/site-packages/blosc/__init__.py compile /usr/src/tmp/python3-module-blosc-buildroot/usr/lib/python3/site-packages/blosc/test.py compile /usr/src/tmp/python3-module-blosc-buildroot/usr/lib/python3/site-packages/blosc/toplevel.py compile /usr/src/tmp/python3-module-blosc-buildroot/usr/lib/python3/site-packages/blosc/version.py Bytecompiling python3 modules with optimization in /usr/src/tmp/python3-module-blosc-buildroot using /usr/bin/python3 -O compile /usr/src/tmp/python3-module-blosc-buildroot/usr/lib/python3/site-packages/blosc/__init__.py compile /usr/src/tmp/python3-module-blosc-buildroot/usr/lib/python3/site-packages/blosc/test.py compile /usr/src/tmp/python3-module-blosc-buildroot/usr/lib/python3/site-packages/blosc/toplevel.py compile /usr/src/tmp/python3-module-blosc-buildroot/usr/lib/python3/site-packages/blosc/version.py Bytecompiling python3 modules with optimization-2 in /usr/src/tmp/python3-module-blosc-buildroot using /usr/bin/python3 -OO compile /usr/src/tmp/python3-module-blosc-buildroot/usr/lib/python3/site-packages/blosc/__init__.py compile /usr/src/tmp/python3-module-blosc-buildroot/usr/lib/python3/site-packages/blosc/test.py compile /usr/src/tmp/python3-module-blosc-buildroot/usr/lib/python3/site-packages/blosc/toplevel.py compile /usr/src/tmp/python3-module-blosc-buildroot/usr/lib/python3/site-packages/blosc/version.py Hardlinking identical .pyc and .opt-?.pyc files './usr/lib/python3/site-packages/blosc/__pycache__/version.cpython-38.opt-1.pyc' => './usr/lib/python3/site-packages/blosc/__pycache__/version.cpython-38.pyc' './usr/lib/python3/site-packages/blosc/__pycache__/version.cpython-38.opt-2.pyc' => './usr/lib/python3/site-packages/blosc/__pycache__/version.cpython-38.opt-1.pyc' './usr/lib/python3/site-packages/blosc/__pycache__/toplevel.cpython-38.opt-1.pyc' => './usr/lib/python3/site-packages/blosc/__pycache__/toplevel.cpython-38.pyc' './usr/lib/python3/site-packages/blosc/__pycache__/test.cpython-38.opt-2.pyc' => './usr/lib/python3/site-packages/blosc/__pycache__/test.cpython-38.opt-1.pyc' './usr/lib/python3/site-packages/blosc/__pycache__/__init__.cpython-38.opt-1.pyc' => './usr/lib/python3/site-packages/blosc/__pycache__/__init__.cpython-38.pyc' './usr/lib/python3/site-packages/blosc/__pycache__/__init__.cpython-38.opt-2.pyc' => './usr/lib/python3/site-packages/blosc/__pycache__/__init__.cpython-38.opt-1.pyc' Hardlinking identical .pyc and .pyo files Processing files: python3-module-blosc-1.5.1-alt3 Executing(%doc): /bin/sh -e /usr/src/tmp/rpm-tmp.24044 + umask 022 + /bin/mkdir -p /usr/src/RPM/BUILD + cd /usr/src/RPM/BUILD + cd python3-module-blosc-1.5.1 + DOCDIR=/usr/src/tmp/python3-module-blosc-buildroot/usr/share/doc/python3-module-blosc-1.5.1 + export DOCDIR + rm -rf /usr/src/tmp/python3-module-blosc-buildroot/usr/share/doc/python3-module-blosc-1.5.1 + /bin/mkdir -p /usr/src/tmp/python3-module-blosc-buildroot/usr/share/doc/python3-module-blosc-1.5.1 + cp -prL ANNOUNCE.rst README.rst RELEASE_NOTES.rst RELEASING.rst bench /usr/src/tmp/python3-module-blosc-buildroot/usr/share/doc/python3-module-blosc-1.5.1 + chmod -R go-w /usr/src/tmp/python3-module-blosc-buildroot/usr/share/doc/python3-module-blosc-1.5.1 + chmod -R a+rX /usr/src/tmp/python3-module-blosc-buildroot/usr/share/doc/python3-module-blosc-1.5.1 + cp -prL doc/_build/html /usr/src/tmp/python3-module-blosc-buildroot/usr/share/doc/python3-module-blosc-1.5.1 + chmod -R go-w /usr/src/tmp/python3-module-blosc-buildroot/usr/share/doc/python3-module-blosc-1.5.1 + chmod -R a+rX /usr/src/tmp/python3-module-blosc-buildroot/usr/share/doc/python3-module-blosc-1.5.1 + exit 0 Finding Provides (using /usr/lib/rpm/find-provides) Executing: /bin/sh -e /usr/src/tmp/rpm-tmp.EHgAbF find-provides: running scripts (alternatives,debuginfo,lib,pam,perl,pkgconfig,python,python3,shell) Finding Requires (using /usr/lib/rpm/find-requires) Executing: /bin/sh -e /usr/src/tmp/rpm-tmp.NxZzED find-requires: running scripts (cpp,debuginfo,files,lib,pam,perl,pkgconfig,pkgconfiglib,python,python3,rpmlib,shebang,shell,static,symlinks,systemd-services) python3.req: /usr/src/tmp/python3-module-blosc-buildroot/usr/lib/python3/site-packages/blosc/__init__.py: skipping atexit python3.req: /usr/src/tmp/python3-module-blosc-buildroot/usr/lib/python3/site-packages/blosc/toplevel.py: skipping sys /usr/lib/rpm/python3.req.py: /usr/src/tmp/python3-module-blosc-buildroot/usr/lib/python3/site-packages/blosc/toplevel.py: line=13 IGNORE (for REQ=slight and deep=8) module=cPickle /usr/lib/rpm/python3.req.py: /usr/src/tmp/python3-module-blosc-buildroot/usr/lib/python3/site-packages/blosc/toplevel.py: line=15 IGNORE (for REQ=slight and deep=8) module=pickle /usr/lib/rpm/python3.req.py: /usr/src/tmp/python3-module-blosc-buildroot/usr/lib/python3/site-packages/blosc/toplevel.py: line=699 IGNORE (for REQ=slight and deep=8) module=doctest /usr/lib/rpm/python3.req.py: /usr/src/tmp/python3-module-blosc-buildroot/usr/lib/python3/site-packages/blosc/toplevel.py: line=706 IGNORE (for REQ=slight and deep=8) module=platform /usr/lib/rpm/python3.req.py: /usr/src/tmp/python3-module-blosc-buildroot/usr/lib/python3/site-packages/blosc/toplevel.py: line=730 IGNORE (for REQ=slight and deep=8) module=doctest Provides: python3(blosc), python3(blosc.blosc_extension), python3(blosc.toplevel), python3(blosc.version) Requires: /usr/lib/python3/site-packages, libblosc.so.1 >= set:idARsJ17kGyK2d0ISkrKpT0wXT9TlZ3Q1znRrb72, libc.so.6(GLIBC_2.1.3), libc.so.6(GLIBC_2.4), python3(blosc.blosc_extension) < 0, python3(blosc.test) < 0, python3(distutils.version) < 0, python3(os) < 0, python3.8-ABI, rtld(GNU_HASH) Requires(rpmlib): rpmlib(SetVersions) Finding debuginfo files (using /usr/lib/rpm/find-debuginfo-files) Executing: /bin/sh -e /usr/src/tmp/rpm-tmp.RJSJKF Creating python3-module-blosc-debuginfo package Processing files: python3-module-blosc-tests-1.5.1-alt3 Finding Provides (using /usr/lib/rpm/find-provides) Executing: /bin/sh -e /usr/src/tmp/rpm-tmp.UWFz9F find-provides: running scripts (alternatives,debuginfo,lib,pam,perl,pkgconfig,python,python3,shell) Finding Requires (using /usr/lib/rpm/find-requires) Executing: /bin/sh -e /usr/src/tmp/rpm-tmp.JEFcdF find-requires: running scripts (cpp,debuginfo,files,lib,pam,perl,pkgconfig,pkgconfiglib,python,python3,rpmlib,shebang,shell,static,symlinks,systemd-services) python3.req: /usr/src/tmp/python3-module-blosc-buildroot/usr/lib/python3/site-packages/blosc/test.py: skipping sys python3.req: /usr/src/tmp/python3-module-blosc-buildroot/usr/lib/python3/site-packages/blosc/test.py: skipping gc /usr/lib/rpm/python3.req.py: /usr/src/tmp/python3-module-blosc-buildroot/usr/lib/python3/site-packages/blosc/test.py: line=16 IGNORE (for REQ=slight and deep=8) module=unittest2 /usr/lib/rpm/python3.req.py: /usr/src/tmp/python3-module-blosc-buildroot/usr/lib/python3/site-packages/blosc/test.py: line=18 IGNORE (for REQ=slight and deep=8) module=unittest /usr/lib/rpm/python3.req.py: /usr/src/tmp/python3-module-blosc-buildroot/usr/lib/python3/site-packages/blosc/test.py: line=21 IGNORE (for REQ=slight and deep=8) module=numpy /usr/lib/rpm/python3.req.py: /usr/src/tmp/python3-module-blosc-buildroot/usr/lib/python3/site-packages/blosc/test.py: line=28 IGNORE (for REQ=slight and deep=8) module=psutil /usr/lib/rpm/python3.req.py: /usr/src/tmp/python3-module-blosc-buildroot/usr/lib/python3/site-packages/blosc/test.py: line=71 IGNORE (for REQ=slight and deep=11) module=numpy /usr/lib/rpm/python3.req.py: /usr/src/tmp/python3-module-blosc-buildroot/usr/lib/python3/site-packages/blosc/test.py: line=99 IGNORE (for REQ=slight and deep=11) module=numpy /usr/lib/rpm/python3.req.py: /usr/src/tmp/python3-module-blosc-buildroot/usr/lib/python3/site-packages/blosc/test.py: line=117 IGNORE (for REQ=slight and deep=11) module=numpy /usr/lib/rpm/python3.req.py: /usr/src/tmp/python3-module-blosc-buildroot/usr/lib/python3/site-packages/blosc/test.py: line=137 IGNORE (for REQ=slight and deep=11) module=numpy /usr/lib/rpm/python3.req.py: /usr/src/tmp/python3-module-blosc-buildroot/usr/lib/python3/site-packages/blosc/test.py: line=299 IGNORE (for REQ=slight and deep=8) module=blosc /usr/lib/rpm/python3.req.py: /usr/src/tmp/python3-module-blosc-buildroot/usr/lib/python3/site-packages/blosc/test.py: line=300 IGNORE (for REQ=slight and deep=8) module=blosc.toplevel Provides: python3(blosc.test) Requires: python3-module-blosc = 1.5.1-alt3, /usr/lib/python3/site-packages, python3(__future__) < 0, python3(blosc) < 0, python3(ctypes) < 0, python3(distutils.version) < 0, python3(os) < 0 Finding debuginfo files (using /usr/lib/rpm/find-debuginfo-files) Executing: /bin/sh -e /usr/src/tmp/rpm-tmp.ravlVE Processing files: python3-module-blosc-pickles-1.5.1-alt3 Finding Provides (using /usr/lib/rpm/find-provides) Executing: /bin/sh -e /usr/src/tmp/rpm-tmp.EVlmSF find-provides: running scripts (alternatives,debuginfo,lib,pam,perl,pkgconfig,python,python3,shell) Finding Requires (using /usr/lib/rpm/find-requires) Executing: /bin/sh -e /usr/src/tmp/rpm-tmp.76GI4E find-requires: running scripts (cpp,debuginfo,files,lib,pam,perl,pkgconfig,pkgconfiglib,python,python3,rpmlib,shebang,shell,static,symlinks,systemd-services) Requires: /usr/lib/python3/site-packages Finding debuginfo files (using /usr/lib/rpm/find-debuginfo-files) Executing: /bin/sh -e /usr/src/tmp/rpm-tmp.tO3fYD Processing files: python3-module-blosc-debuginfo-1.5.1-alt3 Finding Provides (using /usr/lib/rpm/find-provides) Executing: /bin/sh -e /usr/src/tmp/rpm-tmp.54ZHUG find-provides: running scripts (debuginfo) Finding Requires (using /usr/lib/rpm/find-requires) Executing: /bin/sh -e /usr/src/tmp/rpm-tmp.uQwvdE find-requires: running scripts (debuginfo) Requires: python3-module-blosc = 1.5.1-alt3, debug(libblosc.so.1), debug(libc.so.6) Adding to python3-module-blosc-tests a strict dependency on python3-module-blosc Adding to python3-module-blosc-debuginfo a strict dependency on python3-module-blosc Adding to python3-module-blosc a strict dependency on python3-module-blosc-tests Removing 1 extra deps from python3-module-blosc due to dependency on python3-module-blosc-tests Removing 1 extra deps from python3-module-blosc-tests due to dependency on python3-module-blosc Removing 3 extra deps from python3-module-blosc due to repentancy on python3-module-blosc-tests Wrote: /usr/src/RPM/RPMS/i586/python3-module-blosc-1.5.1-alt3.i586.rpm Wrote: /usr/src/RPM/RPMS/i586/python3-module-blosc-tests-1.5.1-alt3.i586.rpm Wrote: /usr/src/RPM/RPMS/i586/python3-module-blosc-pickles-1.5.1-alt3.i586.rpm Wrote: /usr/src/RPM/RPMS/i586/python3-module-blosc-debuginfo-1.5.1-alt3.i586.rpm 13.15user 1.37system 0:25.31elapsed 57%CPU (0avgtext+0avgdata 39144maxresident)k 0inputs+0outputs (0major+375779minor)pagefaults 0swaps /.out/python3-module-blosc-1.5.1-alt3.i586.rpm: bad symbols in the license tag: / /.out/python3-module-blosc-tests-1.5.1-alt3.i586.rpm: bad symbols in the license tag: / /.out/python3-module-blosc-pickles-1.5.1-alt3.i586.rpm: bad symbols in the license tag: / /.out/python3-module-blosc-debuginfo-1.5.1-alt3.i586.rpm: bad symbols in the license tag: / 22.91user 5.76system 0:39.81elapsed 72%CPU (0avgtext+0avgdata 114240maxresident)k 184inputs+0outputs (0major+903498minor)pagefaults 0swaps