<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