From f419d864bfd0f271bb0c3c2f5485f81fda869906 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Picca=20Fr=C3=A9d=C3=A9ric-Emmanuel?= Date: Sat, 25 Nov 2017 17:02:19 +0100 Subject: Import silx_0.6.1+dfsg-1.debian.tar.xz [dgit import tarball silx 0.6.1+dfsg-1 silx_0.6.1+dfsg-1.debian.tar.xz] --- changelog | 29 +++ compat | 1 + control | 267 +++++++++++++++++++++ copyright | 118 +++++++++ gbp.conf | 2 + ...002-use-the-system-mathjax-privacy-breach.patch | 25 ++ patches/0003-fix-unit-test.patch | 29 +++ patches/0006-prefer-pyqt5-over-pyside.patch | 52 ++++ .../0007-add-install_requires-dependencies.patch | 38 +++ patches/series | 4 + py3dist-overrides | 1 + pydist-overrides | 2 + python-silx-doc.doc-base | 9 + rules | 77 ++++++ source/format | 1 + source/options | 1 + watch | 5 + 17 files changed, 661 insertions(+) create mode 100644 changelog create mode 100644 compat create mode 100644 control create mode 100644 copyright create mode 100644 gbp.conf create mode 100644 patches/0002-use-the-system-mathjax-privacy-breach.patch create mode 100644 patches/0003-fix-unit-test.patch create mode 100644 patches/0006-prefer-pyqt5-over-pyside.patch create mode 100644 patches/0007-add-install_requires-dependencies.patch create mode 100644 patches/series create mode 100644 py3dist-overrides create mode 100644 pydist-overrides create mode 100644 python-silx-doc.doc-base create mode 100755 rules create mode 100644 source/format create mode 100644 source/options create mode 100644 watch diff --git a/changelog b/changelog new file mode 100644 index 0000000..4c09f67 --- /dev/null +++ b/changelog @@ -0,0 +1,29 @@ +silx (0.6.1+dfsg-1) unstable; urgency=medium + + * New upstream version 0.6.1+dfsg + * update watch file + + -- Picca Frédéric-Emmanuel Sat, 25 Nov 2017 17:02:19 +0100 + +silx (0.6.0+dfsg-1) unstable; urgency=medium + + * New upstream version 0.6.0+dfsg + * d/patches + - 0001-fix-the-build_man-target.patch (deleted) + - 0004-test-unactive-ressource-for-now.patch (deleted) + - 0005-fix-the-sift-removal.patch (deleted) + + -- Picca Frédéric-Emmanuel Sat, 07 Oct 2017 08:08:56 +0200 + +silx (0.5.0+dfsg-2) unstable; urgency=medium + + * d/control + - Added all the -dbg dependencies for the -dbg packages. + + -- Picca Frédéric-Emmanuel Fri, 01 Sep 2017 15:10:44 +0200 + +silx (0.5.0+dfsg-1) unstable; urgency=medium + + * Initial release (Closes: #871637) + + -- Picca Frédéric-Emmanuel Wed, 02 Aug 2017 11:00:20 +0100 diff --git a/compat b/compat new file mode 100644 index 0000000..f599e28 --- /dev/null +++ b/compat @@ -0,0 +1 @@ +10 diff --git a/control b/control new file mode 100644 index 0000000..2adc2a8 --- /dev/null +++ b/control @@ -0,0 +1,267 @@ +Source: silx +Maintainer: Debian Science Maintainers +Uploaders: Jerome Kieffer , + Picca Frédéric-Emmanuel +Section: science +Priority: optional +Build-Depends: cython (>= 0.23.2), + cython-dbg (>= 0.23.2), + cython3 (>= 0.23.2), + cython3-dbg (>= 0.23.2), + debhelper (>= 10), + dh-python, + help2man, + ipython, + ipython-qtconsole, + ipython3, + ipython3-qtconsole, + python-all-dbg, + python-all-dev, + python-enum34, + python-fabio, + python-fabio-dbg, + python-h5py, + python-h5py-dbg, + python-lxml, + python-lxml-dbg, + python-mako, + python-matplotlib, + python-matplotlib-dbg, + python-numpy, + python-numpy-dbg, + python-opengl, + python-pil, + python-pil-dbg, + python-pyopencl, + python-pyopencl-dbg, + python-pyqt5, + python-pyqt5-dbg, + python-pyqt5.qtopengl, + python-pyqt5.qtopengl-dbg, + python-pyqt5.qtsvg, + python-pyqt5.qtsvg-dbg, + python-scipy, + python-scipy-dbg, + python-setuptools, + python-sphinx, + python-sphinxcontrib.programoutput, + python3-all-dbg, + python3-all-dev, + python3-fabio, + python3-fabio-dbg, + python3-h5py, + python3-h5py-dbg, + python3-mako, + python3-matplotlib, + python3-matplotlib-dbg, + python3-numpy, + python3-numpy-dbg, + python3-opengl, + python3-pil, + python3-pil-dbg, + python3-pyopencl, + python3-pyopencl-dbg, + python3-pyqt5-dbg, + python3-pyqt5.qtopengl, + python3-pyqt5.qtopengl-dbg, + python3-pyqt5.qtsvg, + python3-pyqt5.qtsvg-dbg, + python3-scipy, + python3-scipy-dbg, + python3-setuptools, + python3-sphinx, + python3-sphinxcontrib.programoutput, + xauth, + xvfb +Standards-Version: 4.0.1 +Vcs-Browser: https://anonscm.debian.org/cgit/debian-science/packages/silx.git +Vcs-Git: https://anonscm.debian.org/git/debian-science/packages/silx.git +Homepage: https://github.com/silx-kit/silx +X-Python-Version: >= 2.6 +X-Python3-Version: >= 3.4 + +Package: silx +Architecture: all +Depends: python3-silx (>= ${source:Version}), + ${misc:Depends}, + ${python3:Depends}, + ${shlibs:Depends} +Description: Toolbox for X-Ray data analysis - Executables + The silx project aims at providing a collection of Python packages to + support the development of data assessment, reduction and analysis + applications at synchrotron radiation facilities. It aims at + providing reading/writing different file formats, data reduction + routines and a set of Qt widgets to browse and visualize data. + . + The current version provides : + . + * reading HDF5 file format (with support of SPEC file format) + * histogramming + * fitting + * 1D and 2D visualization using multiple backends (matplotlib or OpenGL) + * image plot widget with a set of associated tools (See changelog file). + * Unified browser for HDF5, SPEC and image file formats supporting inspection + and visualization of n-dimensional datasets. + * Unified viewer (silx view filename) for HDF5, SPEC and image file formats + * OpenGL-based widget to display 3D scalar field with + isosurface and cutting plane. + . + This uses the Python 3 version of the package. + +Package: python-silx +Architecture: any +Section: python +Depends: ${misc:Depends}, ${python:Depends}, ${shlibs:Depends} +Description: Toolbox for X-Ray data analysis - Python2 library + The silx project aims at providing a collection of Python packages to + support the development of data assessment, reduction and analysis + applications at synchrotron radiation facilities. It aims at + providing reading/writing different file formats, data reduction + routines and a set of Qt widgets to browse and visualize data. + . + The current version provides : + . + * reading HDF5 file format (with support of SPEC file format) + * histogramming + * fitting + * 1D and 2D visualization using multiple backends (matplotlib or OpenGL) + * image plot widget with a set of associated tools (See changelog file). + * Unified browser for HDF5, SPEC and image file formats supporting inspection + and visualization of n-dimensional datasets. + * Unified viewer (silx view filename) for HDF5, SPEC and image file formats + * OpenGL-based widget to display 3D scalar field with + isosurface and cutting plane. + . + This is the Python 2 version of the package. + +Package: python-silx-dbg +Architecture: any +Section: debug +Depends: python-fabio-dbg, + python-h5py-dbg, + python-lxml-dbg, + python-matplotlib-dbg, + python-numpy-dbg, + python-pil-dbg, + python-pyopencl-dbg, + python-pyqt5-dbg, + python-pyqt5.qtopengl-dbg, + python-pyqt5.qtsvg-dbg, + python-scipy-dbg, + python-silx (= ${binary:Version}), + ${misc:Depends}, + ${python:Depends}, + ${shlibs:Depends} +Description: Toolbox for X-Ray data analysis - Python2 debug + The silx project aims at providing a collection of Python packages to + support the development of data assessment, reduction and analysis + applications at synchrotron radiation facilities. It aims at + providing reading/writing different file formats, data reduction + routines and a set of Qt widgets to browse and visualize data. + . + The current version provides : + . + * reading HDF5 file format (with support of SPEC file format) + * histogramming + * fitting + * 1D and 2D visualization using multiple backends (matplotlib or OpenGL) + * image plot widget with a set of associated tools (See changelog file). + * Unified browser for HDF5, SPEC and image file formats supporting inspection + and visualization of n-dimensional datasets. + * Unified viewer (silx view filename) for HDF5, SPEC and image file formats + * OpenGL-based widget to display 3D scalar field with + isosurface and cutting plane. + . + This is the Python 2 debug version of the package. + +Package: python3-silx +Architecture: any +Section: python +Depends: ${misc:Depends}, ${python3:Depends}, ${shlibs:Depends} +Description: Toolbox for X-Ray data analysis - Python3 + The silx project aims at providing a collection of Python packages to + support the development of data assessment, reduction and analysis + applications at synchrotron radiation facilities. It aims at + providing reading/writing different file formats, data reduction + routines and a set of Qt widgets to browse and visualize data. + . + The current version provides : + . + * reading HDF5 file format (with support of SPEC file format) + * histogramming + * fitting + * 1D and 2D visualization using multiple backends (matplotlib or OpenGL) + * image plot widget with a set of associated tools (See changelog file). + * Unified browser for HDF5, SPEC and image file formats supporting inspection + and visualization of n-dimensional datasets. + * Unified viewer (silx view filename) for HDF5, SPEC and image file formats + * OpenGL-based widget to display 3D scalar field with + isosurface and cutting plane. + . + This is the Python 3 version of the package. + +Package: python3-silx-dbg +Architecture: any +Section: debug +Depends: python3-fabio-dbg, + python3-h5py-dbg, + python3-lxml-dbg, + python3-matplotlib-dbg, + python3-numpy-dbg, + python3-pil-dbg, + python3-pyopencl-dbg, + python3-pyqt5-dbg, + python3-pyqt5.qtopengl-dbg, + python3-pyqt5.qtsvg-dbg, + python3-scipy-dbg, + python3-silx (= ${binary:Version}), + ${misc:Depends}, + ${python3:Depends}, + ${shlibs:Depends} +Description: Toolbox for X-Ray data analysis - Python3 debug + The silx project aims at providing a collection of Python packages to + support the development of data assessment, reduction and analysis + applications at synchrotron radiation facilities. It aims at + providing reading/writing different file formats, data reduction + routines and a set of Qt widgets to browse and visualize data. + . + The current version provides : + . + * reading HDF5 file format (with support of SPEC file format) + * histogramming + * fitting + * 1D and 2D visualization using multiple backends (matplotlib or OpenGL) + * image plot widget with a set of associated tools (See changelog file). + * Unified browser for HDF5, SPEC and image file formats supporting inspection + and visualization of n-dimensional datasets. + * Unified viewer (silx view filename) for HDF5, SPEC and image file formats + * OpenGL-based widget to display 3D scalar field with + isosurface and cutting plane. + . + This is the Python 3 debug version of the package. + +Package: python-silx-doc +Architecture: all +Section: doc +Depends: libjs-mathjax, ${misc:Depends}, ${sphinxdoc:Depends} +Description: Toolbox for X-Ray data analysis - Documentation + The silx project aims at providing a collection of Python packages to + support the development of data assessment, reduction and analysis + applications at synchrotron radiation facilities. It aims at + providing reading/writing different file formats, data reduction + routines and a set of Qt widgets to browse and visualize data. + . + The current version provides : + . + * reading HDF5 file format (with support of SPEC file format) + * histogramming + * fitting + * 1D and 2D visualization using multiple backends (matplotlib or OpenGL) + * image plot widget with a set of associated tools (See changelog file). + * Unified browser for HDF5, SPEC and image file formats supporting inspection + and visualization of n-dimensional datasets. + * Unified viewer (silx view filename) for HDF5, SPEC and image file formats + * OpenGL-based widget to display 3D scalar field with + isosurface and cutting plane. + . + This is the common documentation package. diff --git a/copyright b/copyright new file mode 100644 index 0000000..e71dedd --- /dev/null +++ b/copyright @@ -0,0 +1,118 @@ +Format: https://www.debian.org/doc/packaging-manuals/copyright-format/1.0/ +Upstream-Name: silx +Source: https://github.com/silx-kit/silx +Files-Excluded: silx/opencl/sift + silx/resources/opencl/sift + +Files: * +Copyright: 2004-2017 European Synchrotron Radiation Facility + Data analysis unit (silx@esrf.fr) +License: Expat + +Files: silx/io/specfile/src/* silx/io/specfile/include/Lists.h silx/io/specfile/include/locale_management.h silx/io/specfile/include/SpecFile.h silx/io/specfile/include/SpecFileP.h +Copyright: 2004-2016 European Synchrotron Radiation Facility +License: LGPL-2.1+ + +Files: silx/math/histogramnd/include/msvc/stdint.h +Copyright: 2006-2008 Alexander Chemeris +License: BSD-3-clause + +Files: silx/gui/plot/MPLColormap.py +Copyright: Nathaniel J. Smith, Stefan van der Walt, Eric Firing +License: CC0 + +Files: silx/gui/qt/_pyside_dynamic.py +Copyright: 2011 Sebastian Wiesner + Modifications by Charl Botha +License: Expat + +License: BSD-3-clause + Redistribution and use in source and binary forms, with or without + modification, are permitted provided that the following conditions + are met: + * Redistributions of source code must retain the above copyright + notice, this list of conditions and the following disclaimer. + * Redistributions in binary form must reproduce the above + copyright notice, this list of conditions and the following + disclaimer in the documentation and/or other materials provided + with the distribution. + * Neither the name of the nor the names of its + contributors may be used to endorse or promote products derived + from this software without specific prior written permission. + . + THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS + "AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT + LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR + A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, + EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, + PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR + PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY + OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT + (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE + OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. + +License: CC0 + Statement of Purpose + . + The laws of most jurisdictions throughout the world automatically confer exclusive Copyright and Related Rights (defined below) upon the creator and subsequent owner(s) (each and all, an "owner") of an original work of authorship and/or a database (each, a "Work"). + . + Certain owners wish to permanently relinquish those rights to a Work for the purpose of contributing to a commons of creative, cultural and scientific works ("Commons") that the public can reliably and without fear of later claims of infringement build upon, modify, incorporate in other works, reuse and redistribute as freely as possible in any form whatsoever and for any purposes, including without limitation commercial purposes. These owners may contribute to the Commons to promote the ideal of a free culture and the further production of creative, cultural and scientific works, or to gain reputation or greater distribution for their Work in part through the use and efforts of others. + . + For these and/or other purposes and motivations, and without any expectation of additional consideration or compensation, the person associating CC0 with a Work (the "Affirmer"), to the extent that he or she is an owner of Copyright and Related Rights in the Work, voluntarily elects to apply CC0 to the Work and publicly distribute the Work under its terms, with knowledge of his or her Copyright and Related Rights in the Work and the meaning and intended legal effect of CC0 on those rights. + . + 1. Copyright and Related Rights. A Work made available under CC0 may be protected by copyright and related or neighboring rights ("Copyright and Related Rights"). Copyright and Related Rights include, but are not limited to, the following: + . + i. the right to reproduce, adapt, distribute, perform, display, communicate, and translate a Work; + ii. moral rights retained by the original author(s) and/or performer(s); + iii. publicity and privacy rights pertaining to a person's image or likeness depicted in a Work; + iv. rights protecting against unfair competition in regards to a Work, subject to the limitations in paragraph 4(a), below; + v. rights protecting the extraction, dissemination, use and reuse of data in a Work; + vi. database rights (such as those arising under Directive 96/9/EC of the European Parliament and of the Council of 11 March 1996 on the legal protection of databases, and under any national implementation thereof, including any amended or successor version of such directive); and + vii. other similar, equivalent or corresponding rights throughout the world based on applicable law or treaty, and any national implementations thereof. + . + 2. Waiver. To the greatest extent permitted by, but not in contravention of, applicable law, Affirmer hereby overtly, fully, permanently, irrevocably and unconditionally waives, abandons, and surrenders all of Affirmer's Copyright and Related Rights and associated claims and causes of action, whether now known or unknown (including existing as well as future claims and causes of action), in the Work (i) in all territories worldwide, (ii) for the maximum duration provided by applicable law or treaty (including future time extensions), (iii) in any current or future medium and for any number of copies, and (iv) for any purpose whatsoever, including without limitation commercial, advertising or promotional purposes (the "Waiver"). Affirmer makes the Waiver for the benefit of each member of the public at large and to the detriment of Affirmer's heirs and successors, fully intending that such Waiver shall not be subject to revocation, rescission, cancellation, termination, or any other legal or equitable action to disrupt the quiet enjoyment of the Work by the public as contemplated by Affirmer's express Statement of Purpose. + . + 3. Public License Fallback. Should any part of the Waiver for any reason be judged legally invalid or ineffective under applicable law, then the Waiver shall be preserved to the maximum extent permitted taking into account Affirmer's express Statement of Purpose. In addition, to the extent the Waiver is so judged Affirmer hereby grants to each affected person a royalty-free, non transferable, non sublicensable, non exclusive, irrevocable and unconditional license to exercise Affirmer's Copyright and Related Rights in the Work (i) in all territories worldwide, (ii) for the maximum duration provided by applicable law or treaty (including future time extensions), (iii) in any current or future medium and for any number of copies, and (iv) for any purpose whatsoever, including without limitation commercial, advertising or promotional purposes (the "License"). The License shall be deemed effective as of the date CC0 was applied by Affirmer to the Work. Should any part of the License for any reason be judged legally invalid or ineffective under applicable law, such partial invalidity or ineffectiveness shall not invalidate the remainder of the License, and in such case Affirmer hereby affirms that he or she will not (i) exercise any of his or her remaining Copyright and Related Rights in the Work or (ii) assert any associated claims and causes of action with respect to the Work, in either case contrary to Affirmer's express Statement of Purpose. + . + 4. Limitations and Disclaimers. + . + a. No trademark or patent rights held by Affirmer are waived, abandoned, surrendered, licensed or otherwise affected by this document. + b. Affirmer offers the Work as-is and makes no representations or warranties of any kind concerning the Work, express, implied, statutory or otherwise, including without limitation warranties of title, merchantability, fitness for a particular purpose, non infringement, or the absence of latent or other defects, accuracy, or the present or absence of errors, whether or not discoverable, all to the greatest extent permissible under applicable law. + c. Affirmer disclaims responsibility for clearing rights of other persons that may apply to the Work or any use thereof, including without limitation any person's Copyright and Related Rights in the Work. Further, Affirmer disclaims responsibility for obtaining any necessary consents, permissions or other rights required for any use of the Work. + d. Affirmer understands and acknowledges that Creative Commons is not a party to this document and has no duty or obligation with respect to this CC0 or use of the Work. + +License: Expat + copy of this software and associated documentation files (the "Software"), + to deal in the Software without restriction, including without limitation + the rights to use, copy, modify, merge, publish, distribute, sublicense, + and/or sell copies of the Software, and to permit persons to whom the + Software is furnished to do so, subject to the following conditions: + The above copyright notice and this permission notice shall be included in + all copies or substantial portions of the Software. + . + THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR + IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, + FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL + THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER + LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING + FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER + DEALINGS IN THE SOFTWARE. + +License: LGPL-2.1+ + This library is free software; you can redistribute it and/or + modify it under the terms of the GNU Lesser General Public + License as published by the Free Software Foundation; either + version 2.1 of the License, or (at your option) any later version. + . + This library is distributed in the hope that it will be useful, + but WITHOUT ANY WARRANTY; without even the implied warranty of + MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU + Lesser General Public License for more details. + . + You should have received a copy of the GNU Lesser General Public + License along with this library; if not, write to the Free Software + Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA + . + On Debian systems, the complete text of the GNU Lesser General Public + License can be found in "/usr/share/common-licenses/LGPL-2.1". diff --git a/gbp.conf b/gbp.conf new file mode 100644 index 0000000..f68d262 --- /dev/null +++ b/gbp.conf @@ -0,0 +1,2 @@ +[DEFAULT] +debian-branch = master \ No newline at end of file diff --git a/patches/0002-use-the-system-mathjax-privacy-breach.patch b/patches/0002-use-the-system-mathjax-privacy-breach.patch new file mode 100644 index 0000000..cb6fb00 --- /dev/null +++ b/patches/0002-use-the-system-mathjax-privacy-breach.patch @@ -0,0 +1,25 @@ +From: =?utf-8?q?Picca_Fr=C3=A9d=C3=A9ric-Emmanuel?= + +Date: Thu, 10 Aug 2017 10:19:39 +0200 +Subject: use the system mathjax (privacy breach) + +--- + doc/source/conf.py | 5 +++++ + 1 file changed, 5 insertions(+) + +diff --git a/doc/source/conf.py b/doc/source/conf.py +index e724d3c..d01cd39 100644 +--- a/doc/source/conf.py ++++ b/doc/source/conf.py +@@ -133,6 +133,11 @@ pygments_style = 'sphinx' + # A list of ignored prefixes for module index sorting. + # modindex_common_prefix = [] + ++# -- Option for MathJax extension ---------------------------------------------- ++ ++# Override required in order to use Debian's system mathjax ++mathjax_path = 'file:///usr/share/javascript/mathjax/MathJax.js?config=TeX-AMS-MML_HTMLorMML' ++ + + # -- Options for HTML output --------------------------------------------------- + diff --git a/patches/0003-fix-unit-test.patch b/patches/0003-fix-unit-test.patch new file mode 100644 index 0000000..e441748 --- /dev/null +++ b/patches/0003-fix-unit-test.patch @@ -0,0 +1,29 @@ +From: =?utf-8?q?Picca_Fr=C3=A9d=C3=A9ric-Emmanuel?= + +Date: Fri, 11 Aug 2017 10:15:26 +0200 +Subject: fix unit test + +--- + silx/opencl/common.py | 9 ++++++++- + 1 file changed, 8 insertions(+), 1 deletion(-) + +diff --git a/silx/opencl/common.py b/silx/opencl/common.py +index ebf50c7..5661530 100644 +--- a/silx/opencl/common.py ++++ b/silx/opencl/common.py +@@ -61,7 +61,14 @@ else: + pyopencl = None + else: + import pyopencl.array as array +- mf = pyopencl.mem_flags ++ ++if pyopencl is None: ++ class mf(object): ++ WRITE_ONLY = 1 ++ READ_ONLY = 1 ++ READ_WRITE = 1 ++else: ++ mf = pyopencl.mem_flags + + if pyopencl is None: + # Define default mem flags diff --git a/patches/0006-prefer-pyqt5-over-pyside.patch b/patches/0006-prefer-pyqt5-over-pyside.patch new file mode 100644 index 0000000..253751b --- /dev/null +++ b/patches/0006-prefer-pyqt5-over-pyside.patch @@ -0,0 +1,52 @@ +From: =?utf-8?q?Picca_Fr=C3=A9d=C3=A9ric-Emmanuel?= + +Date: Mon, 14 Aug 2017 14:58:02 +0200 +Subject: prefer pyqt5 over pyside + +--- + silx/gui/qt/_qt.py | 16 ++++++++-------- + 1 file changed, 8 insertions(+), 8 deletions(-) + +diff --git a/silx/gui/qt/_qt.py b/silx/gui/qt/_qt.py +index 0962c21..67f3e46 100644 +--- a/silx/gui/qt/_qt.py ++++ b/silx/gui/qt/_qt.py +@@ -64,12 +64,12 @@ HAS_OPENGL = False + """True if Qt provides support for OpenGL (QtOpenGL).""" + + # First check for an already loaded wrapper +-if 'PySide.QtCore' in sys.modules: +- BINDING = 'PySide' +- +-elif 'PyQt5.QtCore' in sys.modules: ++if 'PyQt5.QtCore' in sys.modules: + BINDING = 'PyQt5' + ++elif 'PySide.QtCore' in sys.modules: ++ BINDING = 'PySide' ++ + elif 'PyQt4.QtCore' in sys.modules: + BINDING = 'PyQt4' + +@@ -78,17 +78,17 @@ else: # Then try Qt bindings + import PyQt4 # noqa + except ImportError: + try: +- import PySide # noqa ++ import PyQt5 # noqa + except ImportError: + try: +- import PyQt5 # noqa ++ import PySide # noqa + except ImportError: + raise ImportError( + 'No Qt wrapper found. Install PyQt4, PyQt5 or PySide.') + else: +- BINDING = 'PyQt5' ++ BINDING = 'PySide' + else: +- BINDING = 'PySide' ++ BINDING = 'PyQt5' + else: + BINDING = 'PyQt4' + diff --git a/patches/0007-add-install_requires-dependencies.patch b/patches/0007-add-install_requires-dependencies.patch new file mode 100644 index 0000000..8d5759b --- /dev/null +++ b/patches/0007-add-install_requires-dependencies.patch @@ -0,0 +1,38 @@ +From: =?utf-8?q?Picca_Fr=C3=A9d=C3=A9ric-Emmanuel?= + +Date: Thu, 17 Aug 2017 09:30:39 +0200 +Subject: add install_requires dependencies + +--- + setup.py | 18 +++++++++++++++++- + 1 file changed, 17 insertions(+), 1 deletion(-) + +diff --git a/setup.py b/setup.py +index bede4df..c41df00 100644 +--- a/setup.py ++++ b/setup.py +@@ -701,7 +701,23 @@ def get_project_configuration(dry_run): + # for most of the computation + "numpy", + # for the script launcher +- "setuptools"] ++ "setuptools", ++ # Debian added ++ "ipython", ++ "qtconsole", ++ 'enum34;python_version<"3.4"', ++ "fabio", ++ "h5py", ++ "lxml", ++ "mako", ++ "matplotlib", ++ "PyOpenGL", ++ "pil", ++ "pyopencl", ++ "PyQt5", ++ "scipy", ++ "six" ++ ] + + setup_requires = ["setuptools", "numpy"] + diff --git a/patches/series b/patches/series new file mode 100644 index 0000000..b1878a6 --- /dev/null +++ b/patches/series @@ -0,0 +1,4 @@ +0002-use-the-system-mathjax-privacy-breach.patch +0003-fix-unit-test.patch +0006-prefer-pyqt5-over-pyside.patch +0007-add-install_requires-dependencies.patch diff --git a/py3dist-overrides b/py3dist-overrides new file mode 100644 index 0000000..2c4ce13 --- /dev/null +++ b/py3dist-overrides @@ -0,0 +1 @@ +pyqt5 python3-pyqt5,python3-pyqt5.qtopengl,python3-pyqt5.qtsvg \ No newline at end of file diff --git a/pydist-overrides b/pydist-overrides new file mode 100644 index 0000000..a9fde6e --- /dev/null +++ b/pydist-overrides @@ -0,0 +1,2 @@ +pyqt5 python-pyqt5,python-pyqt5.qtopengl,python-pyqt5.qtsvg +enum34_python_version python-enum34 diff --git a/python-silx-doc.doc-base b/python-silx-doc.doc-base new file mode 100644 index 0000000..b290d8a --- /dev/null +++ b/python-silx-doc.doc-base @@ -0,0 +1,9 @@ +Document: silx-manual +Title: silx documentation manual +Author: Jérôme Kieffer +Abstract: Toolbox for X-Ray data analysis +Section: Science/Data Analysis + +Format: HTML +Index: /usr/share/doc/python-silx-doc/html/index.html +Files: /usr/share/doc/python-silx-doc/html/* diff --git a/rules b/rules new file mode 100755 index 0000000..b04892d --- /dev/null +++ b/rules @@ -0,0 +1,77 @@ +#!/usr/bin/make -f + +# when activated do not forget to remove the +# python[3]-hdf5-dbg Build-Depends +JESSIE_BACKPORTS ?= 0 + +ifeq ($(JESSIE_BACKPORTS), 0) +export DEB_BUILD_MAINT_OPTIONS = hardening=+all +else +export PYBUILD_DISABLE_python2-dbg=test +export PYBUILD_DISABLE_python3-dbg=test +endif + +export POCL_CACHE_DIR=$(CURDIR)/.cache/ +export PYBUILD_AFTER_INSTALL=rm -rf {destdir}/usr/bin/ +export PYBUILD_NAME=silx +export SPECFILE_USE_GNU_SOURCE=1 + +# Make does not offer a recursive wildcard function, so here's one: +rwildcard=$(wildcard $1$2) $(foreach d,$(wildcard $1*),$(call rwildcard,$d/,$2)) + +# How to recursively find all files with the same name in a given folder +ALL_PYX := $(call rwildcard,silx/,*.pyx) +#NOTA: No space before * + +%: + dh $@ --with python2,python3,sphinxdoc --buildsystem=pybuild + +override_dh_clean: + dh_clean + # remove the cython generated file to force rebuild + rm -f $(patsubst %.pyx,%.cpp,${ALL_PYX}) + rm -f $(patsubst %.pyx,%.c,${ALL_PYX}) + rm -f $(patsubst %.pyx,%.html,${ALL_PYX}) + rm -rf build/html build/man + rm -rf *.egg-info + rm -rf $(POCL_CACHE_DIR) + +override_dh_auto_build: + python setup.py build build_man + dh_auto_build + +override_dh_install: + dh_numpy + dh_numpy3 + + # install scripts into silx + python3 setup.py install_scripts -d debian/silx/usr/bin + + # install the qtdesigner files only for the python3 package + dh_install -p python3-silx qtdesigner_plugins/*.py /usr/lib/qt4/plugins/designer/python + + dh_install + +# WITH_QT_TEST=False to disable graphical tests +# SILX_OPENCL=False to disable OpenCL tests +# SILX_TEST_LOW_MEM=True to disable tests taking large amount of memory +# GPU=False to disable the use of a GPU with OpenCL test +# WITH_GL_TEST=False to disable tests using OpenGL +# UNACTIVATED UNTIL dh_python from UNSTABLE IS FIXED +# https://lists.debian.org/debian-python/2017/08/msg00095.html +override_dh_auto_test: +ifeq ($(JESSIE_BACKPORTS), 0) + mkdir -p $(POCL_CACHE_DIR) # create POCL cachedir in order to avoid an FTBFS in sbuild + dh_auto_test -- -s custom --test-args="env PYTHONPATH={build_dir} GPU=False SILX_OPENCL=False SILX_TEST_LAW_MEM=True xvfb-run -a --server-args=\"-screen 0 1024x768x24\" {interpreter} run_tests.py -v" +endif + +override_dh_installman: + dh_installman -p silx build/man/*.1 + +override_dh_sphinxdoc: +ifeq (,$(findstring nodocs, $(DEB_BUILD_OPTIONS))) + mkdir -p $(POCL_CACHE_DIR) # create POCL cachedir in order to avoid an FTBFS in sbuild + python setup.py build build_doc + dh_installdocs "build/sphinx/html" -p python-silx-doc + dh_sphinxdoc -O--buildsystem=pybuild +endif diff --git a/source/format b/source/format new file mode 100644 index 0000000..163aaf8 --- /dev/null +++ b/source/format @@ -0,0 +1 @@ +3.0 (quilt) diff --git a/source/options b/source/options new file mode 100644 index 0000000..6e88e49 --- /dev/null +++ b/source/options @@ -0,0 +1 @@ +extend-diff-ignore="^[^/]+\.egg-info/" \ No newline at end of file diff --git a/watch b/watch new file mode 100644 index 0000000..0bd5480 --- /dev/null +++ b/watch @@ -0,0 +1,5 @@ +version=4 +opts=repacksuffix=+dfsg,\ +dversionmangle=s/\+dfsg// \ +https://pypi.python.org/packages/source/s/@PACKAGE@/ \ + @PACKAGE@-@ANY_VERSION@@ARCHIVE_EXT@ debian uupdate -- cgit v1.2.1 From a0cf9271227c91fb887789aff5212c4bd8d710b5 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Picca=20Fr=C3=A9d=C3=A9ric-Emmanuel?= Date: Sat, 25 Nov 2017 17:02:19 +0100 Subject: Import silx_0.6.1+dfsg.orig.tar.gz [dgit import orig silx_0.6.1+dfsg.orig.tar.gz] --- CHANGELOG.rst | 173 + LICENSE | 29 + MANIFEST.in | 18 + PKG-INFO | 180 + README.rst | 150 + build-deb.sh | 273 + copyright | 99 + doc/source/Tutorials/Sift/sift.rst | 315 + doc/source/Tutorials/array_widget.rst | 246 + doc/source/Tutorials/fit.rst | 635 + doc/source/Tutorials/fitconfig.rst | 207 + doc/source/Tutorials/img/arraywidget3D_0.png | Bin 0 -> 35724 bytes doc/source/Tutorials/img/arraywidget3D_1.png | Bin 0 -> 23956 bytes doc/source/Tutorials/img/arraywidget5D_0.png | Bin 0 -> 34473 bytes doc/source/Tutorials/img/arraywidget5D_1.png | Bin 0 -> 24553 bytes .../Tutorials/img/custom_config_scale0.5.png | Bin 0 -> 186529 bytes .../Tutorials/img/custom_config_scale1.0.png | Bin 0 -> 181099 bytes .../Tutorials/img/custom_config_scale2.1.png | Bin 0 -> 183066 bytes doc/source/Tutorials/img/fitwidget1.png | Bin 0 -> 31627 bytes doc/source/Tutorials/img/fitwidget2.png | Bin 0 -> 106983 bytes doc/source/Tutorials/img/fitwidget3.png | Bin 0 -> 26141 bytes doc/source/Tutorials/img/fitwidget4.png | Bin 0 -> 121846 bytes doc/source/Tutorials/img/fitwidget5.png | Bin 0 -> 29784 bytes doc/source/Tutorials/img/silx_view_edf.png | Bin 0 -> 42917 bytes doc/source/Tutorials/img/stripbg_plot1.png | Bin 0 -> 41420 bytes doc/source/Tutorials/img/stripbg_plot2.png | Bin 0 -> 45619 bytes doc/source/Tutorials/io.rst | 289 + doc/source/Tutorials/specfile_to_hdf5.rst | 356 + doc/source/changelog.rst | 1 + doc/source/conf.py | 284 + doc/source/description/img/sift_bench_cpu0.png | Bin 0 -> 43625 bytes doc/source/description/img/sift_bench_cpu_kp.png | Bin 0 -> 29356 bytes doc/source/description/img/sift_bench_cpu_res.png | Bin 0 -> 27730 bytes doc/source/description/img/sift_bench_gpu0.png | Bin 0 -> 44086 bytes doc/source/description/img/sift_bench_gpu_kp.png | Bin 0 -> 28994 bytes doc/source/description/img/sift_bench_gpu_res.png | Bin 0 -> 30067 bytes doc/source/description/img/sift_dog1.png | Bin 0 -> 53704 bytes doc/source/description/img/sift_frame_ROI.png | Bin 0 -> 57727 bytes doc/source/description/img/sift_match1.png | Bin 0 -> 210886 bytes doc/source/description/img/sift_match2.png | Bin 0 -> 496462 bytes doc/source/description/img/sift_orientation.png | Bin 0 -> 34425 bytes doc/source/description/index.rst | 9 + doc/source/description/sift.rst | 399 + doc/source/ext/sphinxext-archive.py | 184 + doc/source/img/silx.ico | Bin 0 -> 4286 bytes doc/source/img/silx_large.png | Bin 0 -> 293645 bytes doc/source/img/silx_small.png | Bin 0 -> 9002 bytes doc/source/index.rst | 57 + doc/source/install.rst | 315 + doc/source/license.rst | 12 + doc/source/modules/gui/console.rst | 9 + doc/source/modules/gui/data/arraytable.rst | 23 + doc/source/modules/gui/data/dataviewer.rst | 7 + doc/source/modules/gui/data/dataviewerframe.rst | 7 + .../modules/gui/data/img/ArrayTableWidget.png | Bin 0 -> 29088 bytes doc/source/modules/gui/data/img/DataViewer.png | Bin 0 -> 37627 bytes .../modules/gui/data/img/DataViewerFrame.png | Bin 0 -> 41699 bytes .../modules/gui/data/img/NumpyAxesSelector.png | Bin 0 -> 9537 bytes doc/source/modules/gui/data/index.rst | 19 + doc/source/modules/gui/data/numpyaxesselector.rst | 7 + doc/source/modules/gui/data/textformatter.rst | 7 + doc/source/modules/gui/designer.rst | 1 + doc/source/modules/gui/fit/backgroundwidget.rst | 20 + doc/source/modules/gui/fit/fitwidget.rst | 18 + .../modules/gui/fit/img/BackgroundDialog.png | Bin 0 -> 52076 bytes doc/source/modules/gui/fit/img/FitWidget.png | Bin 0 -> 43479 bytes doc/source/modules/gui/fit/index.rst | 32 + doc/source/modules/gui/gallery.rst | 273 + .../modules/gui/hdf5/examples_hdf5widget.rst | 6 + doc/source/modules/gui/hdf5/getting_started.rst | 226 + doc/source/modules/gui/hdf5/h5node.rst | 9 + .../modules/gui/hdf5/hdf5contextmenuevent.rst | 9 + doc/source/modules/gui/hdf5/hdf5treemodel.rst | 9 + doc/source/modules/gui/hdf5/hdf5treeview.rst | 9 + doc/source/modules/gui/hdf5/img/Hdf5Example.png | Bin 0 -> 98584 bytes doc/source/modules/gui/hdf5/img/Hdf5TreeView.png | Bin 0 -> 38565 bytes doc/source/modules/gui/hdf5/index.rst | 46 + .../modules/gui/hdf5/nexussortfilterproxymodel.rst | 9 + doc/source/modules/gui/icons.rst | 397 + doc/source/modules/gui/img/IPythonDockWidget.png | Bin 0 -> 27683 bytes doc/source/modules/gui/img/IPythonWidget.png | Bin 0 -> 28980 bytes doc/source/modules/gui/index.rst | 29 + doc/source/modules/gui/plot/actions/control.rst | 5 + doc/source/modules/gui/plot/actions/examples.rst | 93 + doc/source/modules/gui/plot/actions/fit.rst | 5 + doc/source/modules/gui/plot/actions/histogram.rst | 5 + .../modules/gui/plot/actions/img/fftAction0.png | Bin 0 -> 91165 bytes .../modules/gui/plot/actions/img/fftAction1.png | Bin 0 -> 38847 bytes .../modules/gui/plot/actions/img/shiftAction0.png | Bin 0 -> 29092 bytes .../modules/gui/plot/actions/img/shiftAction3.png | Bin 0 -> 25949 bytes doc/source/modules/gui/plot/actions/index.rst | 30 + doc/source/modules/gui/plot/actions/io.rst | 6 + doc/source/modules/gui/plot/actions/medfilt.rst | 5 + doc/source/modules/gui/plot/colormap.rst | 16 + doc/source/modules/gui/plot/compleximageview.rst | 19 + doc/source/modules/gui/plot/dev.rst | 186 + doc/source/modules/gui/plot/getting_started.rst | 495 + doc/source/modules/gui/plot/imageview.rst | 17 + .../modules/gui/plot/img/ComplexImageView.png | Bin 0 -> 72268 bytes doc/source/modules/gui/plot/img/ImageView.png | Bin 0 -> 174050 bytes doc/source/modules/gui/plot/img/LimitsToolBar.png | Bin 0 -> 2331 bytes doc/source/modules/gui/plot/img/Plot1D.png | Bin 0 -> 26947 bytes doc/source/modules/gui/plot/img/Plot2D.png | Bin 0 -> 59679 bytes doc/source/modules/gui/plot/img/PlotWidget.png | Bin 0 -> 32084 bytes doc/source/modules/gui/plot/img/PlotWindow.png | Bin 0 -> 47112 bytes doc/source/modules/gui/plot/img/PositionInfo.png | Bin 0 -> 3401 bytes doc/source/modules/gui/plot/img/StackView.png | Bin 0 -> 126723 bytes .../modules/gui/plot/img/StackViewMainWindow.png | Bin 0 -> 126821 bytes doc/source/modules/gui/plot/img/colorScale.png | Bin 0 -> 1653 bytes doc/source/modules/gui/plot/img/colorScaleBar.png | Bin 0 -> 4667 bytes doc/source/modules/gui/plot/img/linearColorbar.png | Bin 0 -> 6585 bytes doc/source/modules/gui/plot/img/logColorbar.png | Bin 0 -> 8575 bytes doc/source/modules/gui/plot/img/netCounts.png | Bin 0 -> 18711 bytes .../modules/gui/plot/img/plot_and_backend.png | Bin 0 -> 39491 bytes .../modules/gui/plot/img/printPreviewMultiPlot.png | Bin 0 -> 25948 bytes doc/source/modules/gui/plot/img/rawCounts.png | Bin 0 -> 18437 bytes doc/source/modules/gui/plot/img/roiwidget.png | Bin 0 -> 38771 bytes doc/source/modules/gui/plot/img/tickbar.png | Bin 0 -> 2080 bytes doc/source/modules/gui/plot/index.rst | 50 + doc/source/modules/gui/plot/items.rst | 110 + doc/source/modules/gui/plot/plottools.rst | 36 + doc/source/modules/gui/plot/plotwidget.rst | 195 + doc/source/modules/gui/plot/plotwindow.rst | 30 + .../modules/gui/plot/printpreviewtoolbutton.rst | 8 + doc/source/modules/gui/plot/profile.rst | 20 + doc/source/modules/gui/plot/roi.rst | 17 + doc/source/modules/gui/plot/stackview.rst | 26 + doc/source/modules/gui/plot3d/actions.rst | 15 + doc/source/modules/gui/plot3d/dev.rst | 38 + doc/source/modules/gui/plot3d/glutils.rst | 67 + doc/source/modules/gui/plot3d/img/Plot3DWidget.png | Bin 0 -> 11811 bytes doc/source/modules/gui/plot3d/img/Plot3DWindow.png | Bin 0 -> 20571 bytes .../modules/gui/plot3d/img/SFViewParamTree.png | Bin 0 -> 19705 bytes .../modules/gui/plot3d/img/ScalarFieldView.png | Bin 0 -> 42407 bytes doc/source/modules/gui/plot3d/index.rst | 48 + doc/source/modules/gui/plot3d/plot3dwidget.rst | 15 + doc/source/modules/gui/plot3d/plot3dwindow.rst | 15 + doc/source/modules/gui/plot3d/scalarfieldview.rst | 43 + doc/source/modules/gui/plot3d/scene.rst | 84 + doc/source/modules/gui/plot3d/sfviewparamtree.rst | 13 + doc/source/modules/gui/plot3d/tools.rst | 40 + doc/source/modules/gui/plot3d/utils.rst | 12 + .../modules/gui/plot3d/viewer3dvolume_example.rst | 7 + doc/source/modules/gui/qt.rst | 8 + doc/source/modules/gui/update_icons_rst.py | 90 + doc/source/modules/gui/widgets/framebrowser.rst | 19 + .../modules/gui/widgets/img/FrameBrowser.png | Bin 0 -> 3731 bytes .../widgets/img/HorizontalSliderWithBrowser.png | Bin 0 -> 4215 bytes .../modules/gui/widgets/img/PeriodicCombo.png | Bin 0 -> 3464 bytes .../modules/gui/widgets/img/PeriodicList.png | Bin 0 -> 12035 bytes .../modules/gui/widgets/img/PeriodicTable.png | Bin 0 -> 35124 bytes doc/source/modules/gui/widgets/img/TableWidget.png | Bin 0 -> 4058 bytes .../gui/widgets/img/ThreadPoolPushButton.png | Bin 0 -> 2729 bytes .../modules/gui/widgets/img/WaitingPushButton.png | Bin 0 -> 1962 bytes doc/source/modules/gui/widgets/index.rst | 20 + doc/source/modules/gui/widgets/periodictable.rst | 37 + doc/source/modules/gui/widgets/printpreview.rst | 60 + doc/source/modules/gui/widgets/tablewidget.rst | 42 + .../modules/gui/widgets/threadpoolpushbutton.rst | 14 + .../modules/gui/widgets/waitingpushbutton.rst | 13 + doc/source/modules/image/backprojection.rst | 8 + doc/source/modules/image/bilinear.rst | 9 + doc/source/modules/image/index.rst | 14 + doc/source/modules/image/medianfilter.rst | 7 + doc/source/modules/image/projection.rst | 15 + doc/source/modules/image/reconstruction.rst | 14 + doc/source/modules/image/shapes.rst | 8 + doc/source/modules/image/sift.rst | 8 + doc/source/modules/index.rst | 14 + doc/source/modules/io/configdict.rst | 8 + doc/source/modules/io/convert.rst | 8 + doc/source/modules/io/dictdump.rst | 8 + doc/source/modules/io/index.rst | 30 + doc/source/modules/io/nxdata.rst | 8 + doc/source/modules/io/octaveh5.rst | 10 + doc/source/modules/io/specfile.rst | 83 + doc/source/modules/io/specfilewrapper.rst | 12 + doc/source/modules/io/spech5.rst | 45 + doc/source/modules/io/utils.rst | 8 + doc/source/modules/math/combo.rst | 8 + doc/source/modules/math/fit/bgtheories.rst | 10 + doc/source/modules/math/fit/filters.rst | 18 + doc/source/modules/math/fit/fitmanager.rst | 18 + doc/source/modules/math/fit/fittheories.rst | 8 + doc/source/modules/math/fit/fittheory.rst | 8 + doc/source/modules/math/fit/functions.rst | 26 + doc/source/modules/math/fit/index.rst | 25 + doc/source/modules/math/fit/leastsq.rst | 16 + doc/source/modules/math/fit/peaksearch.rst | 10 + doc/source/modules/math/histogram.rst | 21 + doc/source/modules/math/index.rst | 13 + doc/source/modules/math/medianfilter.rst | 11 + doc/source/modules/resources.rst | 7 + doc/source/modules/test/index.rst | 20 + doc/source/modules/utils/array_like.rst | 7 + doc/source/modules/utils/decorators.rst | 7 + doc/source/modules/utils/html.rst | 7 + doc/source/modules/utils/index.rst | 11 + doc/source/modules/utils/weakref.rst | 7 + doc/source/overview.rst | 38 + doc/source/sample_code/img/animatedicons.png | Bin 0 -> 7594 bytes doc/source/sample_code/img/customHdf5TreeModel.png | Bin 0 -> 51980 bytes doc/source/sample_code/img/fftPlotAction.png | Bin 0 -> 105383 bytes doc/source/sample_code/img/hdf5widget.png | Bin 0 -> 58367 bytes doc/source/sample_code/img/icons.png | Bin 0 -> 103832 bytes doc/source/sample_code/img/imageview.png | Bin 0 -> 49273 bytes doc/source/sample_code/img/periodicTable.png | Bin 0 -> 33409 bytes doc/source/sample_code/img/plot3dContextMenu.png | Bin 0 -> 52128 bytes doc/source/sample_code/img/plotContextMenu.png | Bin 0 -> 32690 bytes doc/source/sample_code/img/plotItemsSelector.png | Bin 0 -> 26989 bytes doc/source/sample_code/img/plotLimits.png | Bin 0 -> 151285 bytes .../sample_code/img/plotUpdateFromThread.png | Bin 0 -> 62761 bytes doc/source/sample_code/img/plotWidget.png | Bin 0 -> 78293 bytes doc/source/sample_code/img/printPreview.png | Bin 0 -> 37076 bytes doc/source/sample_code/img/scatterMask.png | Bin 0 -> 44803 bytes doc/source/sample_code/img/shiftPlotAction.png | Bin 0 -> 38559 bytes doc/source/sample_code/img/simplewidget.png | Bin 0 -> 9276 bytes doc/source/sample_code/img/stackView.png | Bin 0 -> 56329 bytes doc/source/sample_code/img/syncaxis.png | Bin 0 -> 133659 bytes doc/source/sample_code/img/viewer3DVolume.png | Bin 0 -> 58235 bytes doc/source/sample_code/index.rst | 256 + doc/source/tutorials.rst | 23 + doc/source/virtualenv.rst | 203 + examples/animatedicons.py | 155 + examples/customHdf5TreeModel.py | 290 + examples/fft.png | Bin 0 -> 1432 bytes examples/fftPlotAction.py | 194 + examples/hdf5widget.py | 753 + examples/icons.py | 110 + examples/imageview.py | 153 + examples/periodicTable.py | 81 + examples/plot3dContextMenu.py | 112 + examples/plotContextMenu.py | 100 + examples/plotItemsSelector.py | 56 + examples/plotLimits.py | 93 + examples/plotUpdateFromThread.py | 128 + examples/plotWidget.py | 121 + examples/printPreview.py | 82 + examples/scatterMask.py | 153 + examples/shiftPlotAction.py | 113 + examples/simplewidget.py | 108 + examples/stackView.py | 58 + examples/syncaxis.py | 101 + examples/viewer3DVolume.py | 212 + examples/writetoh5.py | 88 + package/debian8/changelog | 22 + package/debian8/clean | 1 + package/debian8/compat | 1 + package/debian8/control | 199 + package/debian8/gbp.conf | 2 + package/debian8/python-silx-doc.doc-base | 9 + package/debian8/rules | 55 + package/debian8/source/format | 1 + package/debian8/source/options | 1 + package/debian8/watch | 5 + package/debian9/changelog | 22 + package/debian9/clean | 1 + package/debian9/compat | 1 + package/debian9/control | 126 + package/debian9/gbp.conf | 2 + package/debian9/python-silx-doc.doc-base | 9 + package/debian9/rules | 51 + package/debian9/source/format | 1 + package/debian9/source/options | 1 + package/debian9/watch | 5 + package/desktop/org.silx.SilxView.desktop | 9 + package/desktop/silx.png | Bin 0 -> 3172 bytes package/desktop/silx.svg | 118 + qtdesigner_plugins/README.rst | 40 + qtdesigner_plugins/plot1dplugin.py | 84 + qtdesigner_plugins/plot2dplugin.py | 84 + qtdesigner_plugins/plotwidgetplugin.py | 84 + qtdesigner_plugins/plotwindowplugin.py | 84 + requirements-dev.txt | 7 + requirements.txt | 29 + run_tests.py | 443 + setup.cfg | 5 + setup.py | 800 + silx.egg-info/PKG-INFO | 180 + silx.egg-info/SOURCES.txt | 1034 + silx.egg-info/dependency_links.txt | 1 + silx.egg-info/entry_points.txt | 3 + silx.egg-info/not-zip-safe | 1 + silx.egg-info/requires.txt | 2 + silx.egg-info/top_level.txt | 1 + silx/__init__.py | 46 + silx/__main__.py | 72 + silx/app/__init__.py | 29 + silx/app/convert.py | 283 + silx/app/qtutils.py | 243 + silx/app/setup.py | 40 + silx/app/test/__init__.py | 39 + silx/app/test/test_convert.py | 182 + silx/app/test/test_view.py | 152 + silx/app/test_.py | 175 + silx/app/view.py | 296 + silx/gui/__init__.py | 29 + silx/gui/_glutils/Context.py | 63 + silx/gui/_glutils/FramebufferTexture.py | 164 + silx/gui/_glutils/OpenGLWidget.py | 409 + silx/gui/_glutils/Program.py | 202 + silx/gui/_glutils/Texture.py | 308 + silx/gui/_glutils/VertexBuffer.py | 266 + silx/gui/_glutils/__init__.py | 42 + silx/gui/_glutils/font.py | 164 + silx/gui/_glutils/gl.py | 165 + silx/gui/_glutils/utils.py | 70 + silx/gui/_utils.py | 102 + silx/gui/console.py | 218 + silx/gui/data/ArrayTableModel.py | 613 + silx/gui/data/ArrayTableWidget.py | 492 + silx/gui/data/DataViewer.py | 464 + silx/gui/data/DataViewerFrame.py | 194 + silx/gui/data/DataViewerSelector.py | 153 + silx/gui/data/DataViews.py | 1133 + silx/gui/data/Hdf5TableView.py | 462 + silx/gui/data/HexaTableView.py | 278 + silx/gui/data/NXdataWidgets.py | 523 + silx/gui/data/NumpyAxesSelector.py | 468 + silx/gui/data/RecordTableView.py | 405 + silx/gui/data/TextFormatter.py | 356 + silx/gui/data/__init__.py | 35 + silx/gui/data/setup.py | 41 + silx/gui/data/test/__init__.py | 45 + silx/gui/data/test/test_arraywidget.py | 320 + silx/gui/data/test/test_dataviewer.py | 297 + silx/gui/data/test/test_numpyaxesselector.py | 152 + silx/gui/data/test/test_textformatter.py | 201 + silx/gui/fit/BackgroundWidget.py | 534 + silx/gui/fit/FitConfig.py | 540 + silx/gui/fit/FitWidget.py | 729 + silx/gui/fit/FitWidgets.py | 559 + silx/gui/fit/Parameters.py | 882 + silx/gui/fit/__init__.py | 28 + silx/gui/fit/setup.py | 43 + silx/gui/fit/test/__init__.py | 43 + silx/gui/fit/test/testBackgroundWidget.py | 83 + silx/gui/fit/test/testFitConfig.py | 95 + silx/gui/fit/test/testFitWidget.py | 135 + silx/gui/hdf5/Hdf5Formatter.py | 229 + silx/gui/hdf5/Hdf5HeaderView.py | 195 + silx/gui/hdf5/Hdf5Item.py | 443 + silx/gui/hdf5/Hdf5LoadingItem.py | 68 + silx/gui/hdf5/Hdf5Node.py | 231 + silx/gui/hdf5/Hdf5TreeModel.py | 623 + silx/gui/hdf5/Hdf5TreeView.py | 287 + silx/gui/hdf5/NexusSortFilterProxyModel.py | 153 + silx/gui/hdf5/__init__.py | 44 + silx/gui/hdf5/_utils.py | 389 + silx/gui/hdf5/setup.py | 41 + silx/gui/hdf5/test/__init__.py | 39 + silx/gui/hdf5/test/test_hdf5.py | 844 + silx/gui/icons.py | 398 + silx/gui/plot/AlphaSlider.py | 300 + silx/gui/plot/ColorBar.py | 864 + silx/gui/plot/Colormap.py | 410 + silx/gui/plot/ColormapDialog.py | 490 + silx/gui/plot/Colors.py | 188 + silx/gui/plot/ComplexImageView.py | 670 + silx/gui/plot/CurvesROIWidget.py | 977 + silx/gui/plot/ImageView.py | 866 + silx/gui/plot/Interaction.py | 300 + silx/gui/plot/ItemsSelectionDialog.py | 282 + silx/gui/plot/LegendSelector.py | 1101 + silx/gui/plot/LimitsHistory.py | 83 + silx/gui/plot/MaskToolsWidget.py | 648 + silx/gui/plot/PlotActions.py | 67 + silx/gui/plot/PlotEvents.py | 166 + silx/gui/plot/PlotInteraction.py | 1456 + silx/gui/plot/PlotToolButtons.py | 281 + silx/gui/plot/PlotTools.py | 312 + silx/gui/plot/PlotWidget.py | 3219 ++ silx/gui/plot/PlotWindow.py | 825 + silx/gui/plot/PrintPreviewToolButton.py | 350 + silx/gui/plot/Profile.py | 755 + silx/gui/plot/ProfileMainWindow.py | 99 + silx/gui/plot/ScatterMaskToolsWidget.py | 524 + silx/gui/plot/StackView.py | 1162 + silx/gui/plot/_BaseMaskToolsWidget.py | 1142 + silx/gui/plot/__init__.py | 68 + silx/gui/plot/_utils/__init__.py | 93 + silx/gui/plot/_utils/panzoom.py | 292 + silx/gui/plot/_utils/setup.py | 42 + silx/gui/plot/_utils/test/__init__.py | 41 + silx/gui/plot/_utils/test/test_ticklayout.py | 78 + silx/gui/plot/_utils/ticklayout.py | 224 + silx/gui/plot/actions/PlotAction.py | 79 + silx/gui/plot/actions/__init__.py | 38 + silx/gui/plot/actions/control.py | 549 + silx/gui/plot/actions/fit.py | 189 + silx/gui/plot/actions/histogram.py | 170 + silx/gui/plot/actions/io.py | 538 + silx/gui/plot/actions/medfilt.py | 145 + silx/gui/plot/actions/mode.py | 100 + silx/gui/plot/backends/BackendBase.py | 507 + silx/gui/plot/backends/BackendMatplotlib.py | 925 + silx/gui/plot/backends/BackendOpenGL.py | 1661 + silx/gui/plot/backends/__init__.py | 29 + silx/gui/plot/backends/glutils/GLPlotCurve.py | 1317 + silx/gui/plot/backends/glutils/GLPlotFrame.py | 1061 + silx/gui/plot/backends/glutils/GLPlotImage.py | 665 + silx/gui/plot/backends/glutils/GLSupport.py | 192 + silx/gui/plot/backends/glutils/GLText.py | 229 + silx/gui/plot/backends/glutils/GLTexture.py | 239 + silx/gui/plot/backends/glutils/PlotImageFile.py | 153 + silx/gui/plot/backends/glutils/__init__.py | 44 + silx/gui/plot/items/__init__.py | 44 + silx/gui/plot/items/axis.py | 477 + silx/gui/plot/items/core.py | 938 + silx/gui/plot/items/curve.py | 191 + silx/gui/plot/items/histogram.py | 294 + silx/gui/plot/items/image.py | 422 + silx/gui/plot/items/marker.py | 242 + silx/gui/plot/items/scatter.py | 163 + silx/gui/plot/items/shape.py | 121 + silx/gui/plot/matplotlib/Colormap.py | 282 + silx/gui/plot/matplotlib/ModestImage.py | 174 + silx/gui/plot/matplotlib/__init__.py | 70 + silx/gui/plot/setup.py | 50 + silx/gui/plot/test/__init__.py | 83 + silx/gui/plot/test/testAlphaSlider.py | 221 + silx/gui/plot/test/testColorBar.py | 351 + silx/gui/plot/test/testColormap.py | 291 + silx/gui/plot/test/testColormapDialog.py | 68 + silx/gui/plot/test/testColors.py | 94 + silx/gui/plot/test/testComplexImageView.py | 95 + silx/gui/plot/test/testCurvesROIWidget.py | 152 + silx/gui/plot/test/testImageView.py | 136 + silx/gui/plot/test/testInteraction.py | 89 + silx/gui/plot/test/testItem.py | 231 + silx/gui/plot/test/testLegendSelector.py | 142 + silx/gui/plot/test/testLimitConstraints.py | 125 + silx/gui/plot/test/testMaskToolsWidget.py | 289 + silx/gui/plot/test/testPlotInteraction.py | 168 + silx/gui/plot/test/testPlotTools.py | 200 + silx/gui/plot/test/testPlotWidget.py | 1377 + silx/gui/plot/test/testPlotWidgetNoBackend.py | 633 + silx/gui/plot/test/testPlotWindow.py | 138 + silx/gui/plot/test/testProfile.py | 183 + silx/gui/plot/test/testScatterMaskToolsWidget.py | 308 + silx/gui/plot/test/testStackView.py | 240 + silx/gui/plot/test/testUtilsAxis.py | 148 + silx/gui/plot/test/utils.py | 194 + silx/gui/plot/utils/__init__.py | 30 + silx/gui/plot/utils/axis.py | 164 + silx/gui/plot3d/Plot3DWidget.py | 370 + silx/gui/plot3d/Plot3DWindow.py | 104 + silx/gui/plot3d/SFViewParamTree.py | 1521 + silx/gui/plot3d/ScalarFieldView.py | 1375 + silx/gui/plot3d/__init__.py | 40 + silx/gui/plot3d/actions/Plot3DAction.py | 69 + silx/gui/plot3d/actions/__init__.py | 34 + silx/gui/plot3d/actions/io.py | 336 + silx/gui/plot3d/actions/mode.py | 126 + silx/gui/plot3d/actions/viewpoint.py | 98 + silx/gui/plot3d/scene/__init__.py | 34 + silx/gui/plot3d/scene/axes.py | 241 + silx/gui/plot3d/scene/camera.py | 350 + silx/gui/plot3d/scene/core.py | 334 + silx/gui/plot3d/scene/cutplane.py | 374 + silx/gui/plot3d/scene/event.py | 225 + silx/gui/plot3d/scene/function.py | 467 + silx/gui/plot3d/scene/interaction.py | 681 + silx/gui/plot3d/scene/primitives.py | 1767 + silx/gui/plot3d/scene/setup.py | 41 + silx/gui/plot3d/scene/test/__init__.py | 43 + silx/gui/plot3d/scene/test/test_transform.py | 91 + silx/gui/plot3d/scene/test/test_utils.py | 275 + silx/gui/plot3d/scene/text.py | 534 + silx/gui/plot3d/scene/transform.py | 968 + silx/gui/plot3d/scene/utils.py | 516 + silx/gui/plot3d/scene/viewport.py | 505 + silx/gui/plot3d/scene/window.py | 421 + silx/gui/plot3d/setup.py | 46 + silx/gui/plot3d/test/__init__.py | 66 + silx/gui/plot3d/test/testGL.py | 84 + silx/gui/plot3d/test/testScalarFieldView.py | 114 + silx/gui/plot3d/tools/ViewpointTools.py | 135 + silx/gui/plot3d/tools/__init__.py | 32 + silx/gui/plot3d/tools/toolbars.py | 176 + silx/gui/plot3d/utils/__init__.py | 28 + silx/gui/plot3d/utils/mng.py | 121 + silx/gui/qt/__init__.py | 61 + silx/gui/qt/_macosx.py | 68 + silx/gui/qt/_pyside_dynamic.py | 158 + silx/gui/qt/_pyside_missing.py | 274 + silx/gui/qt/_qt.py | 229 + silx/gui/qt/_utils.py | 44 + silx/gui/setup.py | 51 + silx/gui/test/__init__.py | 108 + silx/gui/test/test_console.py | 91 + silx/gui/test/test_icons.py | 158 + silx/gui/test/test_qt.py | 144 + silx/gui/test/test_utils.py | 77 + silx/gui/test/utils.py | 456 + silx/gui/widgets/FloatEdit.py | 65 + silx/gui/widgets/FrameBrowser.py | 311 + silx/gui/widgets/HierarchicalTableView.py | 172 + silx/gui/widgets/MedianFilterDialog.py | 74 + silx/gui/widgets/PeriodicTable.py | 831 + silx/gui/widgets/PrintGeometryDialog.py | 222 + silx/gui/widgets/PrintPreview.py | 704 + silx/gui/widgets/TableWidget.py | 626 + silx/gui/widgets/ThreadPoolPushButton.py | 235 + silx/gui/widgets/WaitingPushButton.py | 245 + silx/gui/widgets/__init__.py | 27 + silx/gui/widgets/setup.py | 41 + silx/gui/widgets/test/__init__.py | 47 + .../gui/widgets/test/test_hierarchicaltableview.py | 117 + silx/gui/widgets/test/test_periodictable.py | 163 + silx/gui/widgets/test/test_printpreview.py | 74 + silx/gui/widgets/test/test_tablewidget.py | 61 + silx/gui/widgets/test/test_threadpoolpushbutton.py | 129 + silx/image/__init__.py | 27 + silx/image/backprojection.py | 25 + silx/image/bilinear.c | 22519 ++++++++ silx/image/bilinear.pyx | 335 + silx/image/medianfilter.py | 111 + silx/image/phantomgenerator.py | 160 + silx/image/projection.py | 25 + silx/image/reconstruction.py | 25 + silx/image/setup.py | 46 + silx/image/shapes.c | 22003 ++++++++ silx/image/shapes.pyx | 295 + silx/image/sift.py | 25 + silx/image/test/__init__.py | 44 + silx/image/test/test_bilinear.py | 142 + silx/image/test/test_medianfilter.py | 76 + silx/image/test/test_shapes.py | 332 + silx/image/test/test_tomography.py | 66 + silx/image/tomography.py | 159 + silx/io/__init__.py | 41 + silx/io/commonh5.py | 1006 + silx/io/configdict.py | 540 + silx/io/convert.py | 302 + silx/io/dictdump.py | 420 + silx/io/fabioh5.py | 763 + silx/io/nxdata.py | 543 + silx/io/octaveh5.py | 176 + silx/io/rawh5.py | 71 + silx/io/setup.py | 88 + silx/io/specfile.c | 25113 +++++++++ silx/io/specfile.pyx | 1268 + silx/io/specfile/include/Lists.h | 56 + silx/io/specfile/include/SpecFile.h | 297 + silx/io/specfile/include/SpecFileCython.h | 28 + silx/io/specfile/include/SpecFileP.h | 79 + silx/io/specfile/include/locale_management.h | 28 + silx/io/specfile/src/locale_management.c | 69 + silx/io/specfile/src/sfdata.c | 780 + silx/io/specfile/src/sfheader.c | 792 + silx/io/specfile/src/sfindex.c | 556 + silx/io/specfile/src/sfinit.c | 832 + silx/io/specfile/src/sflabel.c | 654 + silx/io/specfile/src/sflists.c | 189 + silx/io/specfile/src/sfmca.c | 341 + silx/io/specfile/src/sftools.c | 555 + silx/io/specfile/src/sfwrite.c | 592 + silx/io/specfile_wrapper.pxd | 77 + silx/io/specfilewrapper.py | 371 + silx/io/spech5.py | 827 + silx/io/spectoh5.py | 81 + silx/io/test/__init__.py | 57 + silx/io/test/test_commonh5.py | 306 + silx/io/test/test_dictdump.py | 249 + silx/io/test/test_fabioh5.py | 418 + silx/io/test/test_nxdata.py | 312 + silx/io/test/test_octaveh5.py | 165 + silx/io/test/test_rawh5.py | 96 + silx/io/test/test_specfile.py | 434 + silx/io/test/test_specfilewrapper.py | 219 + silx/io/test/test_spech5.py | 901 + silx/io/test/test_spectoh5.py | 206 + silx/io/test/test_utils.py | 512 + silx/io/utils.py | 613 + silx/math/__init__.py | 31 + silx/math/calibration.py | 178 + silx/math/chistogramnd.c | 32408 +++++++++++ silx/math/chistogramnd.pyx | 1251 + silx/math/chistogramnd_lut.c | 54112 +++++++++++++++++++ silx/math/chistogramnd_lut.pyx | 435 + silx/math/combo.c | 36018 ++++++++++++ silx/math/combo.pyx | 331 + silx/math/fit/__init__.py | 39 + silx/math/fit/bgtheories.py | 440 + silx/math/fit/filters.c | 23087 ++++++++ silx/math/fit/filters.pyx | 411 + silx/math/fit/filters/include/filters.h | 45 + silx/math/fit/filters/src/smoothnd.c | 317 + silx/math/fit/filters/src/snip1d.c | 149 + silx/math/fit/filters/src/snip2d.c | 96 + silx/math/fit/filters/src/snip3d.c | 186 + silx/math/fit/filters/src/strip.c | 118 + silx/math/fit/filters_wrapper.pxd | 71 + silx/math/fit/fitmanager.py | 1071 + silx/math/fit/fittheories.py | 1373 + silx/math/fit/fittheory.py | 161 + silx/math/fit/functions.c | 30776 +++++++++++ silx/math/fit/functions.pyx | 985 + silx/math/fit/functions/include/functions.h | 68 + silx/math/fit/functions/src/funs.c | 1265 + silx/math/fit/functions_wrapper.pxd | 170 + silx/math/fit/leastsq.py | 901 + silx/math/fit/peaks.c | 20080 +++++++ silx/math/fit/peaks.pyx | 175 + silx/math/fit/peaks/include/peaks.h | 32 + silx/math/fit/peaks/src/peaks.c | 255 + silx/math/fit/peaks_wrapper.pxd | 41 + silx/math/fit/setup.py | 84 + silx/math/fit/test/__init__.py | 46 + silx/math/fit/test/test_bgtheories.py | 169 + silx/math/fit/test/test_filters.py | 137 + silx/math/fit/test/test_fit.py | 387 + silx/math/fit/test/test_fitmanager.py | 498 + silx/math/fit/test/test_functions.py | 272 + silx/math/fit/test/test_peaks.py | 146 + silx/math/histogram.py | 593 + silx/math/histogramnd/include/histogramnd_c.h | 313 + silx/math/histogramnd/include/msvc/stdint.h | 247 + silx/math/histogramnd/include/templates.h | 30 + silx/math/histogramnd/src/histogramnd_c.c | 301 + silx/math/histogramnd/src/histogramnd_template.c | 260 + silx/math/histogramnd_c.pxd | 299 + silx/math/include/isnan.h | 41 + silx/math/marchingcubes.cpp | 24608 +++++++++ silx/math/marchingcubes.pyx | 239 + silx/math/marchingcubes/mc.hpp | 724 + silx/math/marchingcubes/mc_lut.cpp | 316 + silx/math/mc.pxd | 51 + silx/math/medianfilter/__init__.py | 30 + silx/math/medianfilter/include/median_filter.hpp | 229 + silx/math/medianfilter/median_filter.pxd | 41 + silx/math/medianfilter/medianfilter.cpp | 26980 +++++++++ silx/math/medianfilter/medianfilter.pyx | 434 + silx/math/medianfilter/setup.py | 59 + silx/math/medianfilter/test/__init__.py | 36 + silx/math/medianfilter/test/benchmark.py | 122 + silx/math/medianfilter/test/test_medianfilter.py | 486 + silx/math/setup.py | 84 + silx/math/test/__init__.py | 51 + silx/math/test/benchmark_combo.py | 202 + silx/math/test/histo_benchmarks.py | 269 + silx/math/test/test_HistogramndLut_nominal.py | 586 + silx/math/test/test_combo.py | 217 + silx/math/test/test_histogramnd_error.py | 535 + silx/math/test/test_histogramnd_nominal.py | 948 + silx/math/test/test_histogramnd_vs_np.py | 848 + silx/math/test/test_marchingcubes.py | 188 + silx/opencl/__init__.py | 46 + silx/opencl/backprojection.py | 488 + silx/opencl/common.py | 572 + silx/opencl/linalg.py | 218 + silx/opencl/medfilt.py | 269 + silx/opencl/processing.py | 316 + silx/opencl/projection.py | 419 + silx/opencl/reconstruction.py | 381 + silx/opencl/setup.py | 47 + silx/opencl/test/__init__.py | 54 + silx/opencl/test/test_addition.py | 135 + silx/opencl/test/test_array_utils.py | 161 + silx/opencl/test/test_backprojection.py | 165 + silx/opencl/test/test_linalg.py | 215 + silx/opencl/test/test_medfilt.py | 175 + silx/opencl/test/test_projection.py | 139 + silx/opencl/utils.py | 121 + silx/resources/__init__.py | 471 + silx/resources/gui/colormaps/inferno.npy | Bin 0 -> 3152 bytes silx/resources/gui/colormaps/magma.npy | Bin 0 -> 3152 bytes silx/resources/gui/colormaps/plasma.npy | Bin 0 -> 3152 bytes silx/resources/gui/colormaps/viridis.npy | Bin 0 -> 3152 bytes silx/resources/gui/icons/3d-plane-normal-x.png | Bin 0 -> 743 bytes silx/resources/gui/icons/3d-plane-normal-x.svg | 9 + silx/resources/gui/icons/3d-plane-normal-y.png | Bin 0 -> 791 bytes silx/resources/gui/icons/3d-plane-normal-y.svg | 9 + silx/resources/gui/icons/3d-plane-normal-z.png | Bin 0 -> 681 bytes silx/resources/gui/icons/3d-plane-normal-z.svg | 11 + silx/resources/gui/icons/3d-plane-pan.png | Bin 0 -> 1428 bytes silx/resources/gui/icons/3d-plane-pan.svg | 14 + silx/resources/gui/icons/3d-plane.png | Bin 0 -> 1134 bytes silx/resources/gui/icons/3d-plane.svg | 7 + silx/resources/gui/icons/arrow-keys.png | Bin 0 -> 669 bytes silx/resources/gui/icons/arrow-keys.svg | 3 + silx/resources/gui/icons/axis.png | Bin 0 -> 1740 bytes silx/resources/gui/icons/axis.svg | 2 + silx/resources/gui/icons/camera.png | Bin 0 -> 348 bytes silx/resources/gui/icons/camera.svg | 9 + silx/resources/gui/icons/clipboard.png | Bin 0 -> 736 bytes silx/resources/gui/icons/clipboard.svg | 14 + silx/resources/gui/icons/close.png | Bin 0 -> 2243 bytes silx/resources/gui/icons/close.svg | 2 + silx/resources/gui/icons/colorbar.png | Bin 0 -> 657 bytes silx/resources/gui/icons/colorbar.svg | 3 + silx/resources/gui/icons/colormap.png | Bin 0 -> 1583 bytes silx/resources/gui/icons/colormap.svg | 13 + silx/resources/gui/icons/crop.png | Bin 0 -> 642 bytes silx/resources/gui/icons/crop.svg | 6 + silx/resources/gui/icons/crosshair.png | Bin 0 -> 1196 bytes silx/resources/gui/icons/crosshair.svg | 2 + silx/resources/gui/icons/cube-back.png | Bin 0 -> 737 bytes silx/resources/gui/icons/cube-back.svg | 9 + silx/resources/gui/icons/cube-bottom.png | Bin 0 -> 833 bytes silx/resources/gui/icons/cube-bottom.svg | 9 + silx/resources/gui/icons/cube-front.png | Bin 0 -> 708 bytes silx/resources/gui/icons/cube-front.svg | 9 + silx/resources/gui/icons/cube-left.png | Bin 0 -> 712 bytes silx/resources/gui/icons/cube-left.svg | 9 + silx/resources/gui/icons/cube-right.png | Bin 0 -> 701 bytes silx/resources/gui/icons/cube-right.svg | 9 + silx/resources/gui/icons/cube-rotate.png | Bin 0 -> 955 bytes silx/resources/gui/icons/cube-rotate.svg | 12 + silx/resources/gui/icons/cube-top.png | Bin 0 -> 767 bytes silx/resources/gui/icons/cube-top.svg | 9 + silx/resources/gui/icons/cube.png | Bin 0 -> 953 bytes silx/resources/gui/icons/cube.svg | 10 + silx/resources/gui/icons/document-open.png | Bin 0 -> 2676 bytes silx/resources/gui/icons/document-open.svg | 2 + silx/resources/gui/icons/document-print.png | Bin 0 -> 1427 bytes silx/resources/gui/icons/document-print.svg | 54 + silx/resources/gui/icons/document-save.png | Bin 0 -> 535 bytes silx/resources/gui/icons/document-save.svg | 2 + silx/resources/gui/icons/draw-brush.png | Bin 0 -> 1466 bytes silx/resources/gui/icons/draw-brush.svg | 30 + silx/resources/gui/icons/draw-pencil.png | Bin 0 -> 1055 bytes silx/resources/gui/icons/draw-pencil.svg | 2 + silx/resources/gui/icons/draw-rubber.png | Bin 0 -> 1154 bytes silx/resources/gui/icons/draw-rubber.svg | 2 + silx/resources/gui/icons/edit-copy.png | Bin 0 -> 2191 bytes silx/resources/gui/icons/edit-copy.svg | 2 + silx/resources/gui/icons/first.png | Bin 0 -> 1177 bytes silx/resources/gui/icons/first.svg | 15 + silx/resources/gui/icons/folder.png | Bin 0 -> 2583 bytes silx/resources/gui/icons/folder.svg | 2 + silx/resources/gui/icons/image-mask.png | Bin 0 -> 852 bytes silx/resources/gui/icons/image-mask.svg | 11 + silx/resources/gui/icons/image-select-add.png | Bin 0 -> 2531 bytes silx/resources/gui/icons/image-select-add.svg | 10 + silx/resources/gui/icons/image-select-box.png | Bin 0 -> 3036 bytes silx/resources/gui/icons/image-select-box.svg | 2 + silx/resources/gui/icons/image-select-brush.png | Bin 0 -> 3300 bytes silx/resources/gui/icons/image-select-brush.svg | 2 + .../gui/icons/image-select-erase-rubber.png | Bin 0 -> 1638 bytes .../gui/icons/image-select-erase-rubber.svg | 18 + silx/resources/gui/icons/image-select-erase.png | Bin 0 -> 2286 bytes silx/resources/gui/icons/image-select-erase.svg | 21 + silx/resources/gui/icons/image.png | Bin 0 -> 2572 bytes silx/resources/gui/icons/image.svg | 7 + silx/resources/gui/icons/item-0dim.png | Bin 0 -> 305 bytes silx/resources/gui/icons/item-0dim.svg | 4 + silx/resources/gui/icons/item-1dim.png | Bin 0 -> 674 bytes silx/resources/gui/icons/item-1dim.svg | 4 + silx/resources/gui/icons/item-2dim.png | Bin 0 -> 233 bytes silx/resources/gui/icons/item-2dim.svg | 4 + silx/resources/gui/icons/item-3dim.png | Bin 0 -> 582 bytes silx/resources/gui/icons/item-3dim.svg | 8 + silx/resources/gui/icons/item-ndim.png | Bin 0 -> 947 bytes silx/resources/gui/icons/item-ndim.svg | 26 + silx/resources/gui/icons/item-none.png | Bin 0 -> 637 bytes silx/resources/gui/icons/item-none.svg | 5 + silx/resources/gui/icons/item-object.png | Bin 0 -> 836 bytes silx/resources/gui/icons/item-object.svg | 14 + silx/resources/gui/icons/last.png | Bin 0 -> 1111 bytes silx/resources/gui/icons/last.svg | 15 + silx/resources/gui/icons/math-amplitude.png | Bin 0 -> 526 bytes silx/resources/gui/icons/math-amplitude.svg | 3 + silx/resources/gui/icons/math-average.png | Bin 0 -> 571 bytes silx/resources/gui/icons/math-average.svg | 9 + silx/resources/gui/icons/math-derive.png | Bin 0 -> 593 bytes silx/resources/gui/icons/math-derive.svg | 10 + silx/resources/gui/icons/math-energy.png | Bin 0 -> 645 bytes silx/resources/gui/icons/math-energy.svg | 22 + silx/resources/gui/icons/math-fit.png | Bin 0 -> 768 bytes silx/resources/gui/icons/math-fit.svg | 2 + silx/resources/gui/icons/math-imaginary.png | Bin 0 -> 630 bytes silx/resources/gui/icons/math-imaginary.svg | 3 + silx/resources/gui/icons/math-normalize.png | Bin 0 -> 653 bytes silx/resources/gui/icons/math-normalize.svg | 2 + silx/resources/gui/icons/math-peak-reset.png | Bin 0 -> 1420 bytes silx/resources/gui/icons/math-peak-reset.svg | 2 + silx/resources/gui/icons/math-peak-search.png | Bin 0 -> 2163 bytes silx/resources/gui/icons/math-peak-search.svg | 2 + silx/resources/gui/icons/math-peak.png | Bin 0 -> 829 bytes silx/resources/gui/icons/math-peak.svg | 2 + silx/resources/gui/icons/math-phase-color-log.png | Bin 0 -> 2256 bytes silx/resources/gui/icons/math-phase-color-log.svg | 3 + silx/resources/gui/icons/math-phase-color.png | Bin 0 -> 2127 bytes silx/resources/gui/icons/math-phase-color.svg | 3 + silx/resources/gui/icons/math-phase.png | Bin 0 -> 515 bytes silx/resources/gui/icons/math-phase.svg | 3 + silx/resources/gui/icons/math-real.png | Bin 0 -> 749 bytes silx/resources/gui/icons/math-real.svg | 3 + silx/resources/gui/icons/math-sigma.png | Bin 0 -> 744 bytes silx/resources/gui/icons/math-sigma.svg | 2 + silx/resources/gui/icons/math-smooth.png | Bin 0 -> 1243 bytes silx/resources/gui/icons/math-smooth.svg | 2 + silx/resources/gui/icons/math-substract.png | Bin 0 -> 845 bytes silx/resources/gui/icons/math-substract.svg | 2 + silx/resources/gui/icons/math-swap-sign.png | Bin 0 -> 1007 bytes silx/resources/gui/icons/math-swap-sign.svg | 2 + silx/resources/gui/icons/math-ymin-to-zero.png | Bin 0 -> 666 bytes silx/resources/gui/icons/math-ymin-to-zero.svg | 2 + silx/resources/gui/icons/median-filter.png | Bin 0 -> 694 bytes silx/resources/gui/icons/median-filter.svg | 8 + silx/resources/gui/icons/next.png | Bin 0 -> 1092 bytes silx/resources/gui/icons/next.svg | 14 + silx/resources/gui/icons/normal.png | Bin 0 -> 1264 bytes silx/resources/gui/icons/normal.svg | 2 + silx/resources/gui/icons/pan.png | Bin 0 -> 526 bytes silx/resources/gui/icons/pan.svg | 9 + silx/resources/gui/icons/pixel-intensities.png | Bin 0 -> 1145 bytes silx/resources/gui/icons/pixel-intensities.svg | 17 + silx/resources/gui/icons/plot-grid.png | Bin 0 -> 446 bytes silx/resources/gui/icons/plot-grid.svg | 13 + silx/resources/gui/icons/plot-roi-above.png | Bin 0 -> 999 bytes silx/resources/gui/icons/plot-roi-above.svg | 4 + silx/resources/gui/icons/plot-roi-below.png | Bin 0 -> 988 bytes silx/resources/gui/icons/plot-roi-below.svg | 4 + silx/resources/gui/icons/plot-roi-between.png | Bin 0 -> 1021 bytes silx/resources/gui/icons/plot-roi-between.svg | 4 + silx/resources/gui/icons/plot-roi-reset.png | Bin 0 -> 2063 bytes silx/resources/gui/icons/plot-roi-reset.svg | 2 + silx/resources/gui/icons/plot-roi.png | Bin 0 -> 903 bytes silx/resources/gui/icons/plot-roi.svg | 2 + silx/resources/gui/icons/plot-toggle-points.png | Bin 0 -> 484 bytes silx/resources/gui/icons/plot-toggle-points.svg | 2 + silx/resources/gui/icons/plot-widget.png | Bin 0 -> 1093 bytes silx/resources/gui/icons/plot-widget.svg | 18 + silx/resources/gui/icons/plot-window-image.png | Bin 0 -> 1188 bytes silx/resources/gui/icons/plot-window-image.svg | 4 + silx/resources/gui/icons/plot-window.png | Bin 0 -> 955 bytes silx/resources/gui/icons/plot-window.svg | 11 + silx/resources/gui/icons/plot-xauto.png | Bin 0 -> 626 bytes silx/resources/gui/icons/plot-xauto.svg | 2 + silx/resources/gui/icons/plot-xlog.png | Bin 0 -> 679 bytes silx/resources/gui/icons/plot-xlog.svg | 2 + silx/resources/gui/icons/plot-yauto.png | Bin 0 -> 676 bytes silx/resources/gui/icons/plot-yauto.svg | 2 + silx/resources/gui/icons/plot-ydown.png | Bin 0 -> 701 bytes silx/resources/gui/icons/plot-ydown.svg | 2 + silx/resources/gui/icons/plot-ylog.png | Bin 0 -> 772 bytes silx/resources/gui/icons/plot-ylog.svg | 2 + silx/resources/gui/icons/plot-yup.png | Bin 0 -> 667 bytes silx/resources/gui/icons/plot-yup.svg | 2 + silx/resources/gui/icons/previous.png | Bin 0 -> 1151 bytes silx/resources/gui/icons/previous.svg | 14 + silx/resources/gui/icons/process-working.mng | Bin 0 -> 15966 bytes silx/resources/gui/icons/process-working/00.png | Bin 0 -> 778 bytes silx/resources/gui/icons/process-working/01.png | Bin 0 -> 789 bytes silx/resources/gui/icons/process-working/02.png | Bin 0 -> 785 bytes silx/resources/gui/icons/process-working/03.png | Bin 0 -> 785 bytes silx/resources/gui/icons/process-working/04.png | Bin 0 -> 766 bytes silx/resources/gui/icons/process-working/05.png | Bin 0 -> 777 bytes silx/resources/gui/icons/process-working/06.png | Bin 0 -> 784 bytes silx/resources/gui/icons/process-working/07.png | Bin 0 -> 783 bytes silx/resources/gui/icons/process-working/08.png | Bin 0 -> 762 bytes silx/resources/gui/icons/process-working/09.png | Bin 0 -> 781 bytes silx/resources/gui/icons/process-working/10.png | Bin 0 -> 771 bytes silx/resources/gui/icons/process-working/11.png | Bin 0 -> 768 bytes silx/resources/gui/icons/process-working/12.png | Bin 0 -> 759 bytes silx/resources/gui/icons/process-working/13.png | Bin 0 -> 767 bytes silx/resources/gui/icons/process-working/14.png | Bin 0 -> 778 bytes silx/resources/gui/icons/process-working/15.png | Bin 0 -> 760 bytes silx/resources/gui/icons/process-working/16.png | Bin 0 -> 754 bytes silx/resources/gui/icons/process-working/17.png | Bin 0 -> 782 bytes silx/resources/gui/icons/process-working/18.png | Bin 0 -> 775 bytes silx/resources/gui/icons/process-working/19.png | Bin 0 -> 764 bytes silx/resources/gui/icons/process-working/20.png | Bin 0 -> 764 bytes silx/resources/gui/icons/process-working/21.png | Bin 0 -> 772 bytes silx/resources/gui/icons/process-working/22.png | Bin 0 -> 769 bytes silx/resources/gui/icons/process-working/23.png | Bin 0 -> 773 bytes silx/resources/gui/icons/process-working/24.png | Bin 0 -> 757 bytes silx/resources/gui/icons/process-working/25.png | Bin 0 -> 759 bytes silx/resources/gui/icons/process-working/26.png | Bin 0 -> 774 bytes silx/resources/gui/icons/process-working/27.png | Bin 0 -> 766 bytes silx/resources/gui/icons/process-working/28.png | Bin 0 -> 760 bytes silx/resources/gui/icons/process-working/29.png | Bin 0 -> 777 bytes silx/resources/gui/icons/process-working/30.png | Bin 0 -> 775 bytes silx/resources/gui/icons/profile-clear.png | Bin 0 -> 917 bytes silx/resources/gui/icons/profile-clear.svg | 2 + silx/resources/gui/icons/profile1D.png | Bin 0 -> 347 bytes silx/resources/gui/icons/profile1D.svg | 9 + silx/resources/gui/icons/profile2D.png | Bin 0 -> 1403 bytes silx/resources/gui/icons/profile2D.svg | 12 + silx/resources/gui/icons/remove.png | Bin 0 -> 680 bytes silx/resources/gui/icons/remove.svg | 2 + silx/resources/gui/icons/rotate-3d.png | Bin 0 -> 760 bytes silx/resources/gui/icons/rotate-3d.svg | 7 + silx/resources/gui/icons/rudder.png | Bin 0 -> 877 bytes silx/resources/gui/icons/rudder.svg | 2 + silx/resources/gui/icons/selected.png | Bin 0 -> 1411 bytes silx/resources/gui/icons/selected.svg | 2 + silx/resources/gui/icons/shape-circle-solid.png | Bin 0 -> 562 bytes silx/resources/gui/icons/shape-circle-solid.svg | 5 + silx/resources/gui/icons/shape-circle.png | Bin 0 -> 722 bytes silx/resources/gui/icons/shape-circle.svg | 5 + silx/resources/gui/icons/shape-diagonal.png | Bin 0 -> 461 bytes silx/resources/gui/icons/shape-diagonal.svg | 5 + silx/resources/gui/icons/shape-ellipse-solid.png | Bin 0 -> 541 bytes silx/resources/gui/icons/shape-ellipse-solid.svg | 5 + silx/resources/gui/icons/shape-ellipse.png | Bin 0 -> 743 bytes silx/resources/gui/icons/shape-ellipse.svg | 5 + silx/resources/gui/icons/shape-horizontal.png | Bin 0 -> 301 bytes silx/resources/gui/icons/shape-horizontal.svg | 5 + silx/resources/gui/icons/shape-polygon.png | Bin 0 -> 819 bytes silx/resources/gui/icons/shape-polygon.svg | 2 + silx/resources/gui/icons/shape-rectangle.png | Bin 0 -> 337 bytes silx/resources/gui/icons/shape-rectangle.svg | 2 + silx/resources/gui/icons/shape-square.png | Bin 0 -> 417 bytes silx/resources/gui/icons/shape-square.svg | 2 + silx/resources/gui/icons/shape-vertical.png | Bin 0 -> 294 bytes silx/resources/gui/icons/shape-vertical.svg | 2 + silx/resources/gui/icons/silx.png | Bin 0 -> 2048 bytes silx/resources/gui/icons/silx.svg | 37 + silx/resources/gui/icons/sliders-off.png | Bin 0 -> 1111 bytes silx/resources/gui/icons/sliders-off.svg | 2 + silx/resources/gui/icons/sliders-on.png | Bin 0 -> 691 bytes silx/resources/gui/icons/sliders-on.svg | 2 + silx/resources/gui/icons/spec.png | Bin 0 -> 1044 bytes silx/resources/gui/icons/spec.svg | 2 + silx/resources/gui/icons/view-1d.png | Bin 0 -> 881 bytes silx/resources/gui/icons/view-1d.svg | 8 + silx/resources/gui/icons/view-2d-stack.png | Bin 0 -> 710 bytes silx/resources/gui/icons/view-2d-stack.svg | 6 + silx/resources/gui/icons/view-2d.png | Bin 0 -> 304 bytes silx/resources/gui/icons/view-2d.svg | 4 + silx/resources/gui/icons/view-3d.png | Bin 0 -> 1073 bytes silx/resources/gui/icons/view-3d.svg | 8 + silx/resources/gui/icons/view-fullscreen.png | Bin 0 -> 1829 bytes silx/resources/gui/icons/view-fullscreen.svg | 2 + silx/resources/gui/icons/view-hdf5.png | Bin 0 -> 1347 bytes silx/resources/gui/icons/view-hdf5.svg | 5 + silx/resources/gui/icons/view-nexus.png | Bin 0 -> 1332 bytes silx/resources/gui/icons/view-nexus.svg | 5 + silx/resources/gui/icons/view-nofullscreen.png | Bin 0 -> 1799 bytes silx/resources/gui/icons/view-nofullscreen.svg | 2 + silx/resources/gui/icons/view-raw.png | Bin 0 -> 641 bytes silx/resources/gui/icons/view-raw.svg | 12 + silx/resources/gui/icons/view-refresh.png | Bin 0 -> 1184 bytes silx/resources/gui/icons/view-refresh.svg | 2 + silx/resources/gui/icons/view-text.png | Bin 0 -> 872 bytes silx/resources/gui/icons/view-text.svg | 10 + silx/resources/gui/icons/window-new.png | Bin 0 -> 698 bytes silx/resources/gui/icons/window-new.svg | 2 + silx/resources/gui/icons/zoom-back.png | Bin 0 -> 1432 bytes silx/resources/gui/icons/zoom-back.svg | 2 + silx/resources/gui/icons/zoom-in.png | Bin 0 -> 1612 bytes silx/resources/gui/icons/zoom-in.svg | 2 + silx/resources/gui/icons/zoom-original.png | Bin 0 -> 1518 bytes silx/resources/gui/icons/zoom-original.svg | 2 + silx/resources/gui/icons/zoom-out.png | Bin 0 -> 1567 bytes silx/resources/gui/icons/zoom-out.svg | 2 + silx/resources/gui/icons/zoom.png | Bin 0 -> 1448 bytes silx/resources/gui/icons/zoom.svg | 2 + silx/resources/gui/logo/silx.png | Bin 0 -> 21257 bytes silx/resources/gui/logo/silx.svg | 118 + silx/resources/opencl/addition.cl | 42 + silx/resources/opencl/array_utils.cl | 33 + silx/resources/opencl/backproj.cl | 485 + silx/resources/opencl/backproj_helper.cl | 68 + silx/resources/opencl/bitonic.cl | 557 + silx/resources/opencl/linalg.cl | 89 + silx/resources/opencl/medfilt.cl | 141 + silx/resources/opencl/preprocess.cl | 567 + silx/resources/opencl/proj.cl | 345 + silx/setup.py | 53 + silx/sx/__init__.py | 103 + silx/sx/_plot.py | 271 + silx/test/__init__.py | 82 + silx/test/test_resources.py | 267 + silx/test/test_sx.py | 174 + silx/test/test_version.py | 49 + silx/test/utils.py | 288 + silx/third_party/EdfFile.py | 1223 + silx/third_party/TiffIO.py | 1268 + silx/third_party/__init__.py | 28 + silx/third_party/_local/__init__.py | 36 + silx/third_party/_local/enum.py | 877 + silx/third_party/_local/six.py | 868 + silx/third_party/enum.py | 51 + silx/third_party/setup.py | 48 + silx/third_party/six.py | 49 + silx/utils/__init__.py | 0 silx/utils/array_like.py | 593 + silx/utils/deprecation.py | 117 + silx/utils/html.py | 60 + silx/utils/launcher.py | 303 + silx/utils/proxy.py | 204 + silx/utils/setup.py | 43 + silx/utils/test/__init__.py | 47 + silx/utils/test/test_array_like.py | 453 + silx/utils/test/test_deprecation.py | 107 + silx/utils/test/test_html.py | 61 + silx/utils/test/test_launcher.py | 204 + silx/utils/test/test_launcher_command.py | 47 + silx/utils/test/test_proxy.py | 295 + silx/utils/test/test_weakref.py | 330 + silx/utils/weakref.py | 361 + stdeb.cfg | 4 + version.py | 120 + 998 files changed, 463426 insertions(+) create mode 100644 CHANGELOG.rst create mode 100644 LICENSE create mode 100644 MANIFEST.in create mode 100644 PKG-INFO create mode 100644 README.rst create mode 100755 build-deb.sh create mode 100644 copyright create mode 100644 doc/source/Tutorials/Sift/sift.rst create mode 100644 doc/source/Tutorials/array_widget.rst create mode 100644 doc/source/Tutorials/fit.rst create mode 100644 doc/source/Tutorials/fitconfig.rst create mode 100644 doc/source/Tutorials/img/arraywidget3D_0.png create mode 100644 doc/source/Tutorials/img/arraywidget3D_1.png create mode 100644 doc/source/Tutorials/img/arraywidget5D_0.png create mode 100644 doc/source/Tutorials/img/arraywidget5D_1.png create mode 100644 doc/source/Tutorials/img/custom_config_scale0.5.png create mode 100644 doc/source/Tutorials/img/custom_config_scale1.0.png create mode 100644 doc/source/Tutorials/img/custom_config_scale2.1.png create mode 100644 doc/source/Tutorials/img/fitwidget1.png create mode 100644 doc/source/Tutorials/img/fitwidget2.png create mode 100644 doc/source/Tutorials/img/fitwidget3.png create mode 100644 doc/source/Tutorials/img/fitwidget4.png create mode 100644 doc/source/Tutorials/img/fitwidget5.png create mode 100644 doc/source/Tutorials/img/silx_view_edf.png create mode 100644 doc/source/Tutorials/img/stripbg_plot1.png create mode 100644 doc/source/Tutorials/img/stripbg_plot2.png create mode 100644 doc/source/Tutorials/io.rst create mode 100644 doc/source/Tutorials/specfile_to_hdf5.rst create mode 100644 doc/source/changelog.rst create mode 100644 doc/source/conf.py create mode 100644 doc/source/description/img/sift_bench_cpu0.png create mode 100644 doc/source/description/img/sift_bench_cpu_kp.png create mode 100644 doc/source/description/img/sift_bench_cpu_res.png create mode 100644 doc/source/description/img/sift_bench_gpu0.png create mode 100644 doc/source/description/img/sift_bench_gpu_kp.png create mode 100644 doc/source/description/img/sift_bench_gpu_res.png create mode 100644 doc/source/description/img/sift_dog1.png create mode 100644 doc/source/description/img/sift_frame_ROI.png create mode 100644 doc/source/description/img/sift_match1.png create mode 100644 doc/source/description/img/sift_match2.png create mode 100644 doc/source/description/img/sift_orientation.png create mode 100644 doc/source/description/index.rst create mode 100644 doc/source/description/sift.rst create mode 100644 doc/source/ext/sphinxext-archive.py create mode 100644 doc/source/img/silx.ico create mode 100644 doc/source/img/silx_large.png create mode 100755 doc/source/img/silx_small.png create mode 100644 doc/source/index.rst create mode 100644 doc/source/install.rst create mode 100644 doc/source/license.rst create mode 100644 doc/source/modules/gui/console.rst create mode 100644 doc/source/modules/gui/data/arraytable.rst create mode 100644 doc/source/modules/gui/data/dataviewer.rst create mode 100644 doc/source/modules/gui/data/dataviewerframe.rst create mode 100644 doc/source/modules/gui/data/img/ArrayTableWidget.png create mode 100644 doc/source/modules/gui/data/img/DataViewer.png create mode 100644 doc/source/modules/gui/data/img/DataViewerFrame.png create mode 100644 doc/source/modules/gui/data/img/NumpyAxesSelector.png create mode 100644 doc/source/modules/gui/data/index.rst create mode 100644 doc/source/modules/gui/data/numpyaxesselector.rst create mode 100644 doc/source/modules/gui/data/textformatter.rst create mode 100644 doc/source/modules/gui/designer.rst create mode 100644 doc/source/modules/gui/fit/backgroundwidget.rst create mode 100644 doc/source/modules/gui/fit/fitwidget.rst create mode 100644 doc/source/modules/gui/fit/img/BackgroundDialog.png create mode 100644 doc/source/modules/gui/fit/img/FitWidget.png create mode 100644 doc/source/modules/gui/fit/index.rst create mode 100644 doc/source/modules/gui/gallery.rst create mode 100644 doc/source/modules/gui/hdf5/examples_hdf5widget.rst create mode 100644 doc/source/modules/gui/hdf5/getting_started.rst create mode 100644 doc/source/modules/gui/hdf5/h5node.rst create mode 100644 doc/source/modules/gui/hdf5/hdf5contextmenuevent.rst create mode 100644 doc/source/modules/gui/hdf5/hdf5treemodel.rst create mode 100644 doc/source/modules/gui/hdf5/hdf5treeview.rst create mode 100644 doc/source/modules/gui/hdf5/img/Hdf5Example.png create mode 100644 doc/source/modules/gui/hdf5/img/Hdf5TreeView.png create mode 100644 doc/source/modules/gui/hdf5/index.rst create mode 100644 doc/source/modules/gui/hdf5/nexussortfilterproxymodel.rst create mode 100644 doc/source/modules/gui/icons.rst create mode 100644 doc/source/modules/gui/img/IPythonDockWidget.png create mode 100644 doc/source/modules/gui/img/IPythonWidget.png create mode 100644 doc/source/modules/gui/index.rst create mode 100644 doc/source/modules/gui/plot/actions/control.rst create mode 100644 doc/source/modules/gui/plot/actions/examples.rst create mode 100644 doc/source/modules/gui/plot/actions/fit.rst create mode 100644 doc/source/modules/gui/plot/actions/histogram.rst create mode 100644 doc/source/modules/gui/plot/actions/img/fftAction0.png create mode 100644 doc/source/modules/gui/plot/actions/img/fftAction1.png create mode 100644 doc/source/modules/gui/plot/actions/img/shiftAction0.png create mode 100644 doc/source/modules/gui/plot/actions/img/shiftAction3.png create mode 100644 doc/source/modules/gui/plot/actions/index.rst create mode 100644 doc/source/modules/gui/plot/actions/io.rst create mode 100644 doc/source/modules/gui/plot/actions/medfilt.rst create mode 100644 doc/source/modules/gui/plot/colormap.rst create mode 100644 doc/source/modules/gui/plot/compleximageview.rst create mode 100644 doc/source/modules/gui/plot/dev.rst create mode 100644 doc/source/modules/gui/plot/getting_started.rst create mode 100644 doc/source/modules/gui/plot/imageview.rst create mode 100644 doc/source/modules/gui/plot/img/ComplexImageView.png create mode 100644 doc/source/modules/gui/plot/img/ImageView.png create mode 100644 doc/source/modules/gui/plot/img/LimitsToolBar.png create mode 100644 doc/source/modules/gui/plot/img/Plot1D.png create mode 100644 doc/source/modules/gui/plot/img/Plot2D.png create mode 100644 doc/source/modules/gui/plot/img/PlotWidget.png create mode 100644 doc/source/modules/gui/plot/img/PlotWindow.png create mode 100644 doc/source/modules/gui/plot/img/PositionInfo.png create mode 100644 doc/source/modules/gui/plot/img/StackView.png create mode 100644 doc/source/modules/gui/plot/img/StackViewMainWindow.png create mode 100644 doc/source/modules/gui/plot/img/colorScale.png create mode 100644 doc/source/modules/gui/plot/img/colorScaleBar.png create mode 100644 doc/source/modules/gui/plot/img/linearColorbar.png create mode 100644 doc/source/modules/gui/plot/img/logColorbar.png create mode 100644 doc/source/modules/gui/plot/img/netCounts.png create mode 100644 doc/source/modules/gui/plot/img/plot_and_backend.png create mode 100644 doc/source/modules/gui/plot/img/printPreviewMultiPlot.png create mode 100644 doc/source/modules/gui/plot/img/rawCounts.png create mode 100644 doc/source/modules/gui/plot/img/roiwidget.png create mode 100644 doc/source/modules/gui/plot/img/tickbar.png create mode 100644 doc/source/modules/gui/plot/index.rst create mode 100644 doc/source/modules/gui/plot/items.rst create mode 100644 doc/source/modules/gui/plot/plottools.rst create mode 100644 doc/source/modules/gui/plot/plotwidget.rst create mode 100644 doc/source/modules/gui/plot/plotwindow.rst create mode 100644 doc/source/modules/gui/plot/printpreviewtoolbutton.rst create mode 100644 doc/source/modules/gui/plot/profile.rst create mode 100644 doc/source/modules/gui/plot/roi.rst create mode 100644 doc/source/modules/gui/plot/stackview.rst create mode 100644 doc/source/modules/gui/plot3d/actions.rst create mode 100644 doc/source/modules/gui/plot3d/dev.rst create mode 100644 doc/source/modules/gui/plot3d/glutils.rst create mode 100644 doc/source/modules/gui/plot3d/img/Plot3DWidget.png create mode 100644 doc/source/modules/gui/plot3d/img/Plot3DWindow.png create mode 100644 doc/source/modules/gui/plot3d/img/SFViewParamTree.png create mode 100644 doc/source/modules/gui/plot3d/img/ScalarFieldView.png create mode 100644 doc/source/modules/gui/plot3d/index.rst create mode 100644 doc/source/modules/gui/plot3d/plot3dwidget.rst create mode 100644 doc/source/modules/gui/plot3d/plot3dwindow.rst create mode 100644 doc/source/modules/gui/plot3d/scalarfieldview.rst create mode 100644 doc/source/modules/gui/plot3d/scene.rst create mode 100644 doc/source/modules/gui/plot3d/sfviewparamtree.rst create mode 100644 doc/source/modules/gui/plot3d/tools.rst create mode 100644 doc/source/modules/gui/plot3d/utils.rst create mode 100644 doc/source/modules/gui/plot3d/viewer3dvolume_example.rst create mode 100644 doc/source/modules/gui/qt.rst create mode 100644 doc/source/modules/gui/update_icons_rst.py create mode 100644 doc/source/modules/gui/widgets/framebrowser.rst create mode 100644 doc/source/modules/gui/widgets/img/FrameBrowser.png create mode 100644 doc/source/modules/gui/widgets/img/HorizontalSliderWithBrowser.png create mode 100644 doc/source/modules/gui/widgets/img/PeriodicCombo.png create mode 100644 doc/source/modules/gui/widgets/img/PeriodicList.png create mode 100644 doc/source/modules/gui/widgets/img/PeriodicTable.png create mode 100644 doc/source/modules/gui/widgets/img/TableWidget.png create mode 100644 doc/source/modules/gui/widgets/img/ThreadPoolPushButton.png create mode 100644 doc/source/modules/gui/widgets/img/WaitingPushButton.png create mode 100644 doc/source/modules/gui/widgets/index.rst create mode 100644 doc/source/modules/gui/widgets/periodictable.rst create mode 100644 doc/source/modules/gui/widgets/printpreview.rst create mode 100644 doc/source/modules/gui/widgets/tablewidget.rst create mode 100644 doc/source/modules/gui/widgets/threadpoolpushbutton.rst create mode 100644 doc/source/modules/gui/widgets/waitingpushbutton.rst create mode 100644 doc/source/modules/image/backprojection.rst create mode 100644 doc/source/modules/image/bilinear.rst create mode 100644 doc/source/modules/image/index.rst create mode 100644 doc/source/modules/image/medianfilter.rst create mode 100644 doc/source/modules/image/projection.rst create mode 100644 doc/source/modules/image/reconstruction.rst create mode 100644 doc/source/modules/image/shapes.rst create mode 100644 doc/source/modules/image/sift.rst create mode 100644 doc/source/modules/index.rst create mode 100644 doc/source/modules/io/configdict.rst create mode 100644 doc/source/modules/io/convert.rst create mode 100644 doc/source/modules/io/dictdump.rst create mode 100644 doc/source/modules/io/index.rst create mode 100644 doc/source/modules/io/nxdata.rst create mode 100644 doc/source/modules/io/octaveh5.rst create mode 100644 doc/source/modules/io/specfile.rst create mode 100644 doc/source/modules/io/specfilewrapper.rst create mode 100644 doc/source/modules/io/spech5.rst create mode 100644 doc/source/modules/io/utils.rst create mode 100644 doc/source/modules/math/combo.rst create mode 100644 doc/source/modules/math/fit/bgtheories.rst create mode 100644 doc/source/modules/math/fit/filters.rst create mode 100644 doc/source/modules/math/fit/fitmanager.rst create mode 100644 doc/source/modules/math/fit/fittheories.rst create mode 100644 doc/source/modules/math/fit/fittheory.rst create mode 100644 doc/source/modules/math/fit/functions.rst create mode 100644 doc/source/modules/math/fit/index.rst create mode 100644 doc/source/modules/math/fit/leastsq.rst create mode 100644 doc/source/modules/math/fit/peaksearch.rst create mode 100644 doc/source/modules/math/histogram.rst create mode 100644 doc/source/modules/math/index.rst create mode 100644 doc/source/modules/math/medianfilter.rst create mode 100644 doc/source/modules/resources.rst create mode 100644 doc/source/modules/test/index.rst create mode 100644 doc/source/modules/utils/array_like.rst create mode 100644 doc/source/modules/utils/decorators.rst create mode 100644 doc/source/modules/utils/html.rst create mode 100644 doc/source/modules/utils/index.rst create mode 100644 doc/source/modules/utils/weakref.rst create mode 100644 doc/source/overview.rst create mode 100644 doc/source/sample_code/img/animatedicons.png create mode 100644 doc/source/sample_code/img/customHdf5TreeModel.png create mode 100644 doc/source/sample_code/img/fftPlotAction.png create mode 100644 doc/source/sample_code/img/hdf5widget.png create mode 100644 doc/source/sample_code/img/icons.png create mode 100644 doc/source/sample_code/img/imageview.png create mode 100644 doc/source/sample_code/img/periodicTable.png create mode 100644 doc/source/sample_code/img/plot3dContextMenu.png create mode 100644 doc/source/sample_code/img/plotContextMenu.png create mode 100644 doc/source/sample_code/img/plotItemsSelector.png create mode 100644 doc/source/sample_code/img/plotLimits.png create mode 100644 doc/source/sample_code/img/plotUpdateFromThread.png create mode 100644 doc/source/sample_code/img/plotWidget.png create mode 100644 doc/source/sample_code/img/printPreview.png create mode 100644 doc/source/sample_code/img/scatterMask.png create mode 100644 doc/source/sample_code/img/shiftPlotAction.png create mode 100644 doc/source/sample_code/img/simplewidget.png create mode 100644 doc/source/sample_code/img/stackView.png create mode 100644 doc/source/sample_code/img/syncaxis.png create mode 100644 doc/source/sample_code/img/viewer3DVolume.png create mode 100644 doc/source/sample_code/index.rst create mode 100644 doc/source/tutorials.rst create mode 100644 doc/source/virtualenv.rst create mode 100644 examples/animatedicons.py create mode 100644 examples/customHdf5TreeModel.py create mode 100644 examples/fft.png create mode 100755 examples/fftPlotAction.py create mode 100755 examples/hdf5widget.py create mode 100644 examples/icons.py create mode 100755 examples/imageview.py create mode 100644 examples/periodicTable.py create mode 100644 examples/plot3dContextMenu.py create mode 100644 examples/plotContextMenu.py create mode 100755 examples/plotItemsSelector.py create mode 100644 examples/plotLimits.py create mode 100644 examples/plotUpdateFromThread.py create mode 100644 examples/plotWidget.py create mode 100755 examples/printPreview.py create mode 100644 examples/scatterMask.py create mode 100755 examples/shiftPlotAction.py create mode 100755 examples/simplewidget.py create mode 100644 examples/stackView.py create mode 100644 examples/syncaxis.py create mode 100644 examples/viewer3DVolume.py create mode 100644 examples/writetoh5.py create mode 100644 package/debian8/changelog create mode 100644 package/debian8/clean create mode 100644 package/debian8/compat create mode 100644 package/debian8/control create mode 100644 package/debian8/gbp.conf create mode 100644 package/debian8/python-silx-doc.doc-base create mode 100755 package/debian8/rules create mode 100644 package/debian8/source/format create mode 100644 package/debian8/source/options create mode 100644 package/debian8/watch create mode 100644 package/debian9/changelog create mode 100644 package/debian9/clean create mode 100644 package/debian9/compat create mode 100644 package/debian9/control create mode 100644 package/debian9/gbp.conf create mode 100644 package/debian9/python-silx-doc.doc-base create mode 100755 package/debian9/rules create mode 100644 package/debian9/source/format create mode 100644 package/debian9/source/options create mode 100644 package/debian9/watch create mode 100644 package/desktop/org.silx.SilxView.desktop create mode 100644 package/desktop/silx.png create mode 100644 package/desktop/silx.svg create mode 100644 qtdesigner_plugins/README.rst create mode 100644 qtdesigner_plugins/plot1dplugin.py create mode 100644 qtdesigner_plugins/plot2dplugin.py create mode 100644 qtdesigner_plugins/plotwidgetplugin.py create mode 100644 qtdesigner_plugins/plotwindowplugin.py create mode 100644 requirements-dev.txt create mode 100644 requirements.txt create mode 100755 run_tests.py create mode 100644 setup.cfg create mode 100644 setup.py create mode 100644 silx.egg-info/PKG-INFO create mode 100644 silx.egg-info/SOURCES.txt create mode 100644 silx.egg-info/dependency_links.txt create mode 100644 silx.egg-info/entry_points.txt create mode 100644 silx.egg-info/not-zip-safe create mode 100644 silx.egg-info/requires.txt create mode 100644 silx.egg-info/top_level.txt create mode 100644 silx/__init__.py create mode 100644 silx/__main__.py create mode 100644 silx/app/__init__.py create mode 100644 silx/app/convert.py create mode 100644 silx/app/qtutils.py create mode 100644 silx/app/setup.py create mode 100644 silx/app/test/__init__.py create mode 100644 silx/app/test/test_convert.py create mode 100644 silx/app/test/test_view.py create mode 100644 silx/app/test_.py create mode 100644 silx/app/view.py create mode 100644 silx/gui/__init__.py create mode 100644 silx/gui/_glutils/Context.py create mode 100644 silx/gui/_glutils/FramebufferTexture.py create mode 100644 silx/gui/_glutils/OpenGLWidget.py create mode 100644 silx/gui/_glutils/Program.py create mode 100644 silx/gui/_glutils/Texture.py create mode 100644 silx/gui/_glutils/VertexBuffer.py create mode 100644 silx/gui/_glutils/__init__.py create mode 100644 silx/gui/_glutils/font.py create mode 100644 silx/gui/_glutils/gl.py create mode 100644 silx/gui/_glutils/utils.py create mode 100644 silx/gui/_utils.py create mode 100644 silx/gui/console.py create mode 100644 silx/gui/data/ArrayTableModel.py create mode 100644 silx/gui/data/ArrayTableWidget.py create mode 100644 silx/gui/data/DataViewer.py create mode 100644 silx/gui/data/DataViewerFrame.py create mode 100644 silx/gui/data/DataViewerSelector.py create mode 100644 silx/gui/data/DataViews.py create mode 100644 silx/gui/data/Hdf5TableView.py create mode 100644 silx/gui/data/HexaTableView.py create mode 100644 silx/gui/data/NXdataWidgets.py create mode 100644 silx/gui/data/NumpyAxesSelector.py create mode 100644 silx/gui/data/RecordTableView.py create mode 100644 silx/gui/data/TextFormatter.py create mode 100644 silx/gui/data/__init__.py create mode 100644 silx/gui/data/setup.py create mode 100644 silx/gui/data/test/__init__.py create mode 100644 silx/gui/data/test/test_arraywidget.py create mode 100644 silx/gui/data/test/test_dataviewer.py create mode 100644 silx/gui/data/test/test_numpyaxesselector.py create mode 100644 silx/gui/data/test/test_textformatter.py create mode 100644 silx/gui/fit/BackgroundWidget.py create mode 100644 silx/gui/fit/FitConfig.py create mode 100644 silx/gui/fit/FitWidget.py create mode 100644 silx/gui/fit/FitWidgets.py create mode 100644 silx/gui/fit/Parameters.py create mode 100644 silx/gui/fit/__init__.py create mode 100644 silx/gui/fit/setup.py create mode 100644 silx/gui/fit/test/__init__.py create mode 100644 silx/gui/fit/test/testBackgroundWidget.py create mode 100644 silx/gui/fit/test/testFitConfig.py create mode 100644 silx/gui/fit/test/testFitWidget.py create mode 100644 silx/gui/hdf5/Hdf5Formatter.py create mode 100644 silx/gui/hdf5/Hdf5HeaderView.py create mode 100644 silx/gui/hdf5/Hdf5Item.py create mode 100644 silx/gui/hdf5/Hdf5LoadingItem.py create mode 100644 silx/gui/hdf5/Hdf5Node.py create mode 100644 silx/gui/hdf5/Hdf5TreeModel.py create mode 100644 silx/gui/hdf5/Hdf5TreeView.py create mode 100644 silx/gui/hdf5/NexusSortFilterProxyModel.py create mode 100644 silx/gui/hdf5/__init__.py create mode 100644 silx/gui/hdf5/_utils.py create mode 100644 silx/gui/hdf5/setup.py create mode 100644 silx/gui/hdf5/test/__init__.py create mode 100644 silx/gui/hdf5/test/test_hdf5.py create mode 100644 silx/gui/icons.py create mode 100644 silx/gui/plot/AlphaSlider.py create mode 100644 silx/gui/plot/ColorBar.py create mode 100644 silx/gui/plot/Colormap.py create mode 100644 silx/gui/plot/ColormapDialog.py create mode 100644 silx/gui/plot/Colors.py create mode 100644 silx/gui/plot/ComplexImageView.py create mode 100644 silx/gui/plot/CurvesROIWidget.py create mode 100644 silx/gui/plot/ImageView.py create mode 100644 silx/gui/plot/Interaction.py create mode 100644 silx/gui/plot/ItemsSelectionDialog.py create mode 100644 silx/gui/plot/LegendSelector.py create mode 100644 silx/gui/plot/LimitsHistory.py create mode 100644 silx/gui/plot/MaskToolsWidget.py create mode 100644 silx/gui/plot/PlotActions.py create mode 100644 silx/gui/plot/PlotEvents.py create mode 100644 silx/gui/plot/PlotInteraction.py create mode 100644 silx/gui/plot/PlotToolButtons.py create mode 100644 silx/gui/plot/PlotTools.py create mode 100644 silx/gui/plot/PlotWidget.py create mode 100644 silx/gui/plot/PlotWindow.py create mode 100644 silx/gui/plot/PrintPreviewToolButton.py create mode 100644 silx/gui/plot/Profile.py create mode 100644 silx/gui/plot/ProfileMainWindow.py create mode 100644 silx/gui/plot/ScatterMaskToolsWidget.py create mode 100644 silx/gui/plot/StackView.py create mode 100644 silx/gui/plot/_BaseMaskToolsWidget.py create mode 100644 silx/gui/plot/__init__.py create mode 100644 silx/gui/plot/_utils/__init__.py create mode 100644 silx/gui/plot/_utils/panzoom.py create mode 100644 silx/gui/plot/_utils/setup.py create mode 100644 silx/gui/plot/_utils/test/__init__.py create mode 100644 silx/gui/plot/_utils/test/test_ticklayout.py create mode 100644 silx/gui/plot/_utils/ticklayout.py create mode 100644 silx/gui/plot/actions/PlotAction.py create mode 100644 silx/gui/plot/actions/__init__.py create mode 100644 silx/gui/plot/actions/control.py create mode 100644 silx/gui/plot/actions/fit.py create mode 100644 silx/gui/plot/actions/histogram.py create mode 100644 silx/gui/plot/actions/io.py create mode 100644 silx/gui/plot/actions/medfilt.py create mode 100644 silx/gui/plot/actions/mode.py create mode 100644 silx/gui/plot/backends/BackendBase.py create mode 100644 silx/gui/plot/backends/BackendMatplotlib.py create mode 100644 silx/gui/plot/backends/BackendOpenGL.py create mode 100644 silx/gui/plot/backends/__init__.py create mode 100644 silx/gui/plot/backends/glutils/GLPlotCurve.py create mode 100644 silx/gui/plot/backends/glutils/GLPlotFrame.py create mode 100644 silx/gui/plot/backends/glutils/GLPlotImage.py create mode 100644 silx/gui/plot/backends/glutils/GLSupport.py create mode 100644 silx/gui/plot/backends/glutils/GLText.py create mode 100644 silx/gui/plot/backends/glutils/GLTexture.py create mode 100644 silx/gui/plot/backends/glutils/PlotImageFile.py create mode 100644 silx/gui/plot/backends/glutils/__init__.py create mode 100644 silx/gui/plot/items/__init__.py create mode 100644 silx/gui/plot/items/axis.py create mode 100644 silx/gui/plot/items/core.py create mode 100644 silx/gui/plot/items/curve.py create mode 100644 silx/gui/plot/items/histogram.py create mode 100644 silx/gui/plot/items/image.py create mode 100644 silx/gui/plot/items/marker.py create mode 100644 silx/gui/plot/items/scatter.py create mode 100644 silx/gui/plot/items/shape.py create mode 100644 silx/gui/plot/matplotlib/Colormap.py create mode 100644 silx/gui/plot/matplotlib/ModestImage.py create mode 100644 silx/gui/plot/matplotlib/__init__.py create mode 100644 silx/gui/plot/setup.py create mode 100644 silx/gui/plot/test/__init__.py create mode 100644 silx/gui/plot/test/testAlphaSlider.py create mode 100644 silx/gui/plot/test/testColorBar.py create mode 100644 silx/gui/plot/test/testColormap.py create mode 100644 silx/gui/plot/test/testColormapDialog.py create mode 100644 silx/gui/plot/test/testColors.py create mode 100644 silx/gui/plot/test/testComplexImageView.py create mode 100644 silx/gui/plot/test/testCurvesROIWidget.py create mode 100644 silx/gui/plot/test/testImageView.py create mode 100644 silx/gui/plot/test/testInteraction.py create mode 100644 silx/gui/plot/test/testItem.py create mode 100644 silx/gui/plot/test/testLegendSelector.py create mode 100644 silx/gui/plot/test/testLimitConstraints.py create mode 100644 silx/gui/plot/test/testMaskToolsWidget.py create mode 100644 silx/gui/plot/test/testPlotInteraction.py create mode 100644 silx/gui/plot/test/testPlotTools.py create mode 100644 silx/gui/plot/test/testPlotWidget.py create mode 100644 silx/gui/plot/test/testPlotWidgetNoBackend.py create mode 100644 silx/gui/plot/test/testPlotWindow.py create mode 100644 silx/gui/plot/test/testProfile.py create mode 100644 silx/gui/plot/test/testScatterMaskToolsWidget.py create mode 100644 silx/gui/plot/test/testStackView.py create mode 100644 silx/gui/plot/test/testUtilsAxis.py create mode 100644 silx/gui/plot/test/utils.py create mode 100644 silx/gui/plot/utils/__init__.py create mode 100644 silx/gui/plot/utils/axis.py create mode 100644 silx/gui/plot3d/Plot3DWidget.py create mode 100644 silx/gui/plot3d/Plot3DWindow.py create mode 100644 silx/gui/plot3d/SFViewParamTree.py create mode 100644 silx/gui/plot3d/ScalarFieldView.py create mode 100644 silx/gui/plot3d/__init__.py create mode 100644 silx/gui/plot3d/actions/Plot3DAction.py create mode 100644 silx/gui/plot3d/actions/__init__.py create mode 100644 silx/gui/plot3d/actions/io.py create mode 100644 silx/gui/plot3d/actions/mode.py create mode 100644 silx/gui/plot3d/actions/viewpoint.py create mode 100644 silx/gui/plot3d/scene/__init__.py create mode 100644 silx/gui/plot3d/scene/axes.py create mode 100644 silx/gui/plot3d/scene/camera.py create mode 100644 silx/gui/plot3d/scene/core.py create mode 100644 silx/gui/plot3d/scene/cutplane.py create mode 100644 silx/gui/plot3d/scene/event.py create mode 100644 silx/gui/plot3d/scene/function.py create mode 100644 silx/gui/plot3d/scene/interaction.py create mode 100644 silx/gui/plot3d/scene/primitives.py create mode 100644 silx/gui/plot3d/scene/setup.py create mode 100644 silx/gui/plot3d/scene/test/__init__.py create mode 100644 silx/gui/plot3d/scene/test/test_transform.py create mode 100644 silx/gui/plot3d/scene/test/test_utils.py create mode 100644 silx/gui/plot3d/scene/text.py create mode 100644 silx/gui/plot3d/scene/transform.py create mode 100644 silx/gui/plot3d/scene/utils.py create mode 100644 silx/gui/plot3d/scene/viewport.py create mode 100644 silx/gui/plot3d/scene/window.py create mode 100644 silx/gui/plot3d/setup.py create mode 100644 silx/gui/plot3d/test/__init__.py create mode 100644 silx/gui/plot3d/test/testGL.py create mode 100644 silx/gui/plot3d/test/testScalarFieldView.py create mode 100644 silx/gui/plot3d/tools/ViewpointTools.py create mode 100644 silx/gui/plot3d/tools/__init__.py create mode 100644 silx/gui/plot3d/tools/toolbars.py create mode 100644 silx/gui/plot3d/utils/__init__.py create mode 100644 silx/gui/plot3d/utils/mng.py create mode 100644 silx/gui/qt/__init__.py create mode 100644 silx/gui/qt/_macosx.py create mode 100644 silx/gui/qt/_pyside_dynamic.py create mode 100644 silx/gui/qt/_pyside_missing.py create mode 100644 silx/gui/qt/_qt.py create mode 100644 silx/gui/qt/_utils.py create mode 100644 silx/gui/setup.py create mode 100644 silx/gui/test/__init__.py create mode 100644 silx/gui/test/test_console.py create mode 100644 silx/gui/test/test_icons.py create mode 100644 silx/gui/test/test_qt.py create mode 100644 silx/gui/test/test_utils.py create mode 100644 silx/gui/test/utils.py create mode 100644 silx/gui/widgets/FloatEdit.py create mode 100644 silx/gui/widgets/FrameBrowser.py create mode 100644 silx/gui/widgets/HierarchicalTableView.py create mode 100644 silx/gui/widgets/MedianFilterDialog.py create mode 100644 silx/gui/widgets/PeriodicTable.py create mode 100644 silx/gui/widgets/PrintGeometryDialog.py create mode 100644 silx/gui/widgets/PrintPreview.py create mode 100644 silx/gui/widgets/TableWidget.py create mode 100644 silx/gui/widgets/ThreadPoolPushButton.py create mode 100644 silx/gui/widgets/WaitingPushButton.py create mode 100644 silx/gui/widgets/__init__.py create mode 100644 silx/gui/widgets/setup.py create mode 100644 silx/gui/widgets/test/__init__.py create mode 100644 silx/gui/widgets/test/test_hierarchicaltableview.py create mode 100644 silx/gui/widgets/test/test_periodictable.py create mode 100644 silx/gui/widgets/test/test_printpreview.py create mode 100644 silx/gui/widgets/test/test_tablewidget.py create mode 100644 silx/gui/widgets/test/test_threadpoolpushbutton.py create mode 100644 silx/image/__init__.py create mode 100644 silx/image/backprojection.py create mode 100644 silx/image/bilinear.c create mode 100644 silx/image/bilinear.pyx create mode 100644 silx/image/medianfilter.py create mode 100644 silx/image/phantomgenerator.py create mode 100644 silx/image/projection.py create mode 100644 silx/image/reconstruction.py create mode 100644 silx/image/setup.py create mode 100644 silx/image/shapes.c create mode 100644 silx/image/shapes.pyx create mode 100644 silx/image/sift.py create mode 100644 silx/image/test/__init__.py create mode 100644 silx/image/test/test_bilinear.py create mode 100644 silx/image/test/test_medianfilter.py create mode 100644 silx/image/test/test_shapes.py create mode 100644 silx/image/test/test_tomography.py create mode 100644 silx/image/tomography.py create mode 100644 silx/io/__init__.py create mode 100644 silx/io/commonh5.py create mode 100644 silx/io/configdict.py create mode 100644 silx/io/convert.py create mode 100644 silx/io/dictdump.py create mode 100644 silx/io/fabioh5.py create mode 100644 silx/io/nxdata.py create mode 100644 silx/io/octaveh5.py create mode 100644 silx/io/rawh5.py create mode 100644 silx/io/setup.py create mode 100644 silx/io/specfile.c create mode 100644 silx/io/specfile.pyx create mode 100644 silx/io/specfile/include/Lists.h create mode 100644 silx/io/specfile/include/SpecFile.h create mode 100644 silx/io/specfile/include/SpecFileCython.h create mode 100644 silx/io/specfile/include/SpecFileP.h create mode 100644 silx/io/specfile/include/locale_management.h create mode 100644 silx/io/specfile/src/locale_management.c create mode 100644 silx/io/specfile/src/sfdata.c create mode 100644 silx/io/specfile/src/sfheader.c create mode 100644 silx/io/specfile/src/sfindex.c create mode 100644 silx/io/specfile/src/sfinit.c create mode 100644 silx/io/specfile/src/sflabel.c create mode 100644 silx/io/specfile/src/sflists.c create mode 100644 silx/io/specfile/src/sfmca.c create mode 100644 silx/io/specfile/src/sftools.c create mode 100644 silx/io/specfile/src/sfwrite.c create mode 100644 silx/io/specfile_wrapper.pxd create mode 100644 silx/io/specfilewrapper.py create mode 100644 silx/io/spech5.py create mode 100644 silx/io/spectoh5.py create mode 100644 silx/io/test/__init__.py create mode 100644 silx/io/test/test_commonh5.py create mode 100644 silx/io/test/test_dictdump.py create mode 100644 silx/io/test/test_fabioh5.py create mode 100644 silx/io/test/test_nxdata.py create mode 100644 silx/io/test/test_octaveh5.py create mode 100644 silx/io/test/test_rawh5.py create mode 100644 silx/io/test/test_specfile.py create mode 100644 silx/io/test/test_specfilewrapper.py create mode 100644 silx/io/test/test_spech5.py create mode 100644 silx/io/test/test_spectoh5.py create mode 100644 silx/io/test/test_utils.py create mode 100644 silx/io/utils.py create mode 100644 silx/math/__init__.py create mode 100644 silx/math/calibration.py create mode 100644 silx/math/chistogramnd.c create mode 100644 silx/math/chistogramnd.pyx create mode 100644 silx/math/chistogramnd_lut.c create mode 100644 silx/math/chistogramnd_lut.pyx create mode 100644 silx/math/combo.c create mode 100644 silx/math/combo.pyx create mode 100644 silx/math/fit/__init__.py create mode 100644 silx/math/fit/bgtheories.py create mode 100644 silx/math/fit/filters.c create mode 100644 silx/math/fit/filters.pyx create mode 100644 silx/math/fit/filters/include/filters.h create mode 100644 silx/math/fit/filters/src/smoothnd.c create mode 100644 silx/math/fit/filters/src/snip1d.c create mode 100644 silx/math/fit/filters/src/snip2d.c create mode 100644 silx/math/fit/filters/src/snip3d.c create mode 100644 silx/math/fit/filters/src/strip.c create mode 100644 silx/math/fit/filters_wrapper.pxd create mode 100644 silx/math/fit/fitmanager.py create mode 100644 silx/math/fit/fittheories.py create mode 100644 silx/math/fit/fittheory.py create mode 100644 silx/math/fit/functions.c create mode 100644 silx/math/fit/functions.pyx create mode 100644 silx/math/fit/functions/include/functions.h create mode 100644 silx/math/fit/functions/src/funs.c create mode 100644 silx/math/fit/functions_wrapper.pxd create mode 100644 silx/math/fit/leastsq.py create mode 100644 silx/math/fit/peaks.c create mode 100644 silx/math/fit/peaks.pyx create mode 100644 silx/math/fit/peaks/include/peaks.h create mode 100644 silx/math/fit/peaks/src/peaks.c create mode 100644 silx/math/fit/peaks_wrapper.pxd create mode 100644 silx/math/fit/setup.py create mode 100644 silx/math/fit/test/__init__.py create mode 100644 silx/math/fit/test/test_bgtheories.py create mode 100644 silx/math/fit/test/test_filters.py create mode 100644 silx/math/fit/test/test_fit.py create mode 100644 silx/math/fit/test/test_fitmanager.py create mode 100644 silx/math/fit/test/test_functions.py create mode 100644 silx/math/fit/test/test_peaks.py create mode 100644 silx/math/histogram.py create mode 100644 silx/math/histogramnd/include/histogramnd_c.h create mode 100644 silx/math/histogramnd/include/msvc/stdint.h create mode 100644 silx/math/histogramnd/include/templates.h create mode 100644 silx/math/histogramnd/src/histogramnd_c.c create mode 100644 silx/math/histogramnd/src/histogramnd_template.c create mode 100644 silx/math/histogramnd_c.pxd create mode 100644 silx/math/include/isnan.h create mode 100644 silx/math/marchingcubes.cpp create mode 100644 silx/math/marchingcubes.pyx create mode 100644 silx/math/marchingcubes/mc.hpp create mode 100644 silx/math/marchingcubes/mc_lut.cpp create mode 100644 silx/math/mc.pxd create mode 100644 silx/math/medianfilter/__init__.py create mode 100644 silx/math/medianfilter/include/median_filter.hpp create mode 100644 silx/math/medianfilter/median_filter.pxd create mode 100644 silx/math/medianfilter/medianfilter.cpp create mode 100644 silx/math/medianfilter/medianfilter.pyx create mode 100644 silx/math/medianfilter/setup.py create mode 100644 silx/math/medianfilter/test/__init__.py create mode 100644 silx/math/medianfilter/test/benchmark.py create mode 100644 silx/math/medianfilter/test/test_medianfilter.py create mode 100644 silx/math/setup.py create mode 100644 silx/math/test/__init__.py create mode 100644 silx/math/test/benchmark_combo.py create mode 100644 silx/math/test/histo_benchmarks.py create mode 100644 silx/math/test/test_HistogramndLut_nominal.py create mode 100644 silx/math/test/test_combo.py create mode 100644 silx/math/test/test_histogramnd_error.py create mode 100644 silx/math/test/test_histogramnd_nominal.py create mode 100644 silx/math/test/test_histogramnd_vs_np.py create mode 100644 silx/math/test/test_marchingcubes.py create mode 100644 silx/opencl/__init__.py create mode 100644 silx/opencl/backprojection.py create mode 100644 silx/opencl/common.py create mode 100644 silx/opencl/linalg.py create mode 100644 silx/opencl/medfilt.py create mode 100644 silx/opencl/processing.py create mode 100644 silx/opencl/projection.py create mode 100644 silx/opencl/reconstruction.py create mode 100644 silx/opencl/setup.py create mode 100644 silx/opencl/test/__init__.py create mode 100644 silx/opencl/test/test_addition.py create mode 100644 silx/opencl/test/test_array_utils.py create mode 100644 silx/opencl/test/test_backprojection.py create mode 100644 silx/opencl/test/test_linalg.py create mode 100644 silx/opencl/test/test_medfilt.py create mode 100644 silx/opencl/test/test_projection.py create mode 100644 silx/opencl/utils.py create mode 100644 silx/resources/__init__.py create mode 100644 silx/resources/gui/colormaps/inferno.npy create mode 100644 silx/resources/gui/colormaps/magma.npy create mode 100644 silx/resources/gui/colormaps/plasma.npy create mode 100644 silx/resources/gui/colormaps/viridis.npy create mode 100644 silx/resources/gui/icons/3d-plane-normal-x.png create mode 100644 silx/resources/gui/icons/3d-plane-normal-x.svg create mode 100644 silx/resources/gui/icons/3d-plane-normal-y.png create mode 100644 silx/resources/gui/icons/3d-plane-normal-y.svg create mode 100644 silx/resources/gui/icons/3d-plane-normal-z.png create mode 100644 silx/resources/gui/icons/3d-plane-normal-z.svg create mode 100644 silx/resources/gui/icons/3d-plane-pan.png create mode 100644 silx/resources/gui/icons/3d-plane-pan.svg create mode 100644 silx/resources/gui/icons/3d-plane.png create mode 100644 silx/resources/gui/icons/3d-plane.svg create mode 100644 silx/resources/gui/icons/arrow-keys.png create mode 100644 silx/resources/gui/icons/arrow-keys.svg create mode 100644 silx/resources/gui/icons/axis.png create mode 100644 silx/resources/gui/icons/axis.svg create mode 100644 silx/resources/gui/icons/camera.png create mode 100644 silx/resources/gui/icons/camera.svg create mode 100644 silx/resources/gui/icons/clipboard.png create mode 100644 silx/resources/gui/icons/clipboard.svg create mode 100755 silx/resources/gui/icons/close.png create mode 100644 silx/resources/gui/icons/close.svg create mode 100644 silx/resources/gui/icons/colorbar.png create mode 100644 silx/resources/gui/icons/colorbar.svg create mode 100755 silx/resources/gui/icons/colormap.png create mode 100644 silx/resources/gui/icons/colormap.svg create mode 100755 silx/resources/gui/icons/crop.png create mode 100644 silx/resources/gui/icons/crop.svg create mode 100644 silx/resources/gui/icons/crosshair.png create mode 100644 silx/resources/gui/icons/crosshair.svg create mode 100644 silx/resources/gui/icons/cube-back.png create mode 100644 silx/resources/gui/icons/cube-back.svg create mode 100644 silx/resources/gui/icons/cube-bottom.png create mode 100644 silx/resources/gui/icons/cube-bottom.svg create mode 100644 silx/resources/gui/icons/cube-front.png create mode 100644 silx/resources/gui/icons/cube-front.svg create mode 100644 silx/resources/gui/icons/cube-left.png create mode 100644 silx/resources/gui/icons/cube-left.svg create mode 100644 silx/resources/gui/icons/cube-right.png create mode 100644 silx/resources/gui/icons/cube-right.svg create mode 100644 silx/resources/gui/icons/cube-rotate.png create mode 100644 silx/resources/gui/icons/cube-rotate.svg create mode 100644 silx/resources/gui/icons/cube-top.png create mode 100644 silx/resources/gui/icons/cube-top.svg create mode 100644 silx/resources/gui/icons/cube.png create mode 100644 silx/resources/gui/icons/cube.svg create mode 100755 silx/resources/gui/icons/document-open.png create mode 100644 silx/resources/gui/icons/document-open.svg create mode 100755 silx/resources/gui/icons/document-print.png create mode 100644 silx/resources/gui/icons/document-print.svg create mode 100755 silx/resources/gui/icons/document-save.png create mode 100644 silx/resources/gui/icons/document-save.svg create mode 100755 silx/resources/gui/icons/draw-brush.png create mode 100644 silx/resources/gui/icons/draw-brush.svg create mode 100755 silx/resources/gui/icons/draw-pencil.png create mode 100644 silx/resources/gui/icons/draw-pencil.svg create mode 100755 silx/resources/gui/icons/draw-rubber.png create mode 100644 silx/resources/gui/icons/draw-rubber.svg create mode 100644 silx/resources/gui/icons/edit-copy.png create mode 100644 silx/resources/gui/icons/edit-copy.svg create mode 100644 silx/resources/gui/icons/first.png create mode 100644 silx/resources/gui/icons/first.svg create mode 100755 silx/resources/gui/icons/folder.png create mode 100644 silx/resources/gui/icons/folder.svg create mode 100644 silx/resources/gui/icons/image-mask.png create mode 100644 silx/resources/gui/icons/image-mask.svg create mode 100755 silx/resources/gui/icons/image-select-add.png create mode 100644 silx/resources/gui/icons/image-select-add.svg create mode 100755 silx/resources/gui/icons/image-select-box.png create mode 100644 silx/resources/gui/icons/image-select-box.svg create mode 100755 silx/resources/gui/icons/image-select-brush.png create mode 100644 silx/resources/gui/icons/image-select-brush.svg create mode 100755 silx/resources/gui/icons/image-select-erase-rubber.png create mode 100644 silx/resources/gui/icons/image-select-erase-rubber.svg create mode 100755 silx/resources/gui/icons/image-select-erase.png create mode 100644 silx/resources/gui/icons/image-select-erase.svg create mode 100755 silx/resources/gui/icons/image.png create mode 100644 silx/resources/gui/icons/image.svg create mode 100644 silx/resources/gui/icons/item-0dim.png create mode 100644 silx/resources/gui/icons/item-0dim.svg create mode 100644 silx/resources/gui/icons/item-1dim.png create mode 100644 silx/resources/gui/icons/item-1dim.svg create mode 100644 silx/resources/gui/icons/item-2dim.png create mode 100644 silx/resources/gui/icons/item-2dim.svg create mode 100644 silx/resources/gui/icons/item-3dim.png create mode 100644 silx/resources/gui/icons/item-3dim.svg create mode 100644 silx/resources/gui/icons/item-ndim.png create mode 100644 silx/resources/gui/icons/item-ndim.svg create mode 100644 silx/resources/gui/icons/item-none.png create mode 100644 silx/resources/gui/icons/item-none.svg create mode 100644 silx/resources/gui/icons/item-object.png create mode 100644 silx/resources/gui/icons/item-object.svg create mode 100644 silx/resources/gui/icons/last.png create mode 100644 silx/resources/gui/icons/last.svg create mode 100644 silx/resources/gui/icons/math-amplitude.png create mode 100644 silx/resources/gui/icons/math-amplitude.svg create mode 100755 silx/resources/gui/icons/math-average.png create mode 100644 silx/resources/gui/icons/math-average.svg create mode 100755 silx/resources/gui/icons/math-derive.png create mode 100644 silx/resources/gui/icons/math-derive.svg create mode 100755 silx/resources/gui/icons/math-energy.png create mode 100644 silx/resources/gui/icons/math-energy.svg create mode 100755 silx/resources/gui/icons/math-fit.png create mode 100644 silx/resources/gui/icons/math-fit.svg create mode 100644 silx/resources/gui/icons/math-imaginary.png create mode 100644 silx/resources/gui/icons/math-imaginary.svg create mode 100755 silx/resources/gui/icons/math-normalize.png create mode 100644 silx/resources/gui/icons/math-normalize.svg create mode 100755 silx/resources/gui/icons/math-peak-reset.png create mode 100644 silx/resources/gui/icons/math-peak-reset.svg create mode 100755 silx/resources/gui/icons/math-peak-search.png create mode 100644 silx/resources/gui/icons/math-peak-search.svg create mode 100755 silx/resources/gui/icons/math-peak.png create mode 100644 silx/resources/gui/icons/math-peak.svg create mode 100644 silx/resources/gui/icons/math-phase-color-log.png create mode 100644 silx/resources/gui/icons/math-phase-color-log.svg create mode 100644 silx/resources/gui/icons/math-phase-color.png create mode 100644 silx/resources/gui/icons/math-phase-color.svg create mode 100644 silx/resources/gui/icons/math-phase.png create mode 100644 silx/resources/gui/icons/math-phase.svg create mode 100644 silx/resources/gui/icons/math-real.png create mode 100644 silx/resources/gui/icons/math-real.svg create mode 100755 silx/resources/gui/icons/math-sigma.png create mode 100644 silx/resources/gui/icons/math-sigma.svg create mode 100755 silx/resources/gui/icons/math-smooth.png create mode 100644 silx/resources/gui/icons/math-smooth.svg create mode 100755 silx/resources/gui/icons/math-substract.png create mode 100644 silx/resources/gui/icons/math-substract.svg create mode 100755 silx/resources/gui/icons/math-swap-sign.png create mode 100644 silx/resources/gui/icons/math-swap-sign.svg create mode 100755 silx/resources/gui/icons/math-ymin-to-zero.png create mode 100644 silx/resources/gui/icons/math-ymin-to-zero.svg create mode 100644 silx/resources/gui/icons/median-filter.png create mode 100644 silx/resources/gui/icons/median-filter.svg create mode 100644 silx/resources/gui/icons/next.png create mode 100644 silx/resources/gui/icons/next.svg create mode 100755 silx/resources/gui/icons/normal.png create mode 100644 silx/resources/gui/icons/normal.svg create mode 100644 silx/resources/gui/icons/pan.png create mode 100644 silx/resources/gui/icons/pan.svg create mode 100644 silx/resources/gui/icons/pixel-intensities.png create mode 100644 silx/resources/gui/icons/pixel-intensities.svg create mode 100755 silx/resources/gui/icons/plot-grid.png create mode 100644 silx/resources/gui/icons/plot-grid.svg create mode 100644 silx/resources/gui/icons/plot-roi-above.png create mode 100644 silx/resources/gui/icons/plot-roi-above.svg create mode 100644 silx/resources/gui/icons/plot-roi-below.png create mode 100644 silx/resources/gui/icons/plot-roi-below.svg create mode 100644 silx/resources/gui/icons/plot-roi-between.png create mode 100644 silx/resources/gui/icons/plot-roi-between.svg create mode 100755 silx/resources/gui/icons/plot-roi-reset.png create mode 100644 silx/resources/gui/icons/plot-roi-reset.svg create mode 100755 silx/resources/gui/icons/plot-roi.png create mode 100644 silx/resources/gui/icons/plot-roi.svg create mode 100755 silx/resources/gui/icons/plot-toggle-points.png create mode 100644 silx/resources/gui/icons/plot-toggle-points.svg create mode 100755 silx/resources/gui/icons/plot-widget.png create mode 100644 silx/resources/gui/icons/plot-widget.svg create mode 100755 silx/resources/gui/icons/plot-window-image.png create mode 100644 silx/resources/gui/icons/plot-window-image.svg create mode 100755 silx/resources/gui/icons/plot-window.png create mode 100644 silx/resources/gui/icons/plot-window.svg create mode 100755 silx/resources/gui/icons/plot-xauto.png create mode 100644 silx/resources/gui/icons/plot-xauto.svg create mode 100755 silx/resources/gui/icons/plot-xlog.png create mode 100644 silx/resources/gui/icons/plot-xlog.svg create mode 100755 silx/resources/gui/icons/plot-yauto.png create mode 100644 silx/resources/gui/icons/plot-yauto.svg create mode 100755 silx/resources/gui/icons/plot-ydown.png create mode 100644 silx/resources/gui/icons/plot-ydown.svg create mode 100755 silx/resources/gui/icons/plot-ylog.png create mode 100644 silx/resources/gui/icons/plot-ylog.svg create mode 100755 silx/resources/gui/icons/plot-yup.png create mode 100644 silx/resources/gui/icons/plot-yup.svg create mode 100644 silx/resources/gui/icons/previous.png create mode 100644 silx/resources/gui/icons/previous.svg create mode 100644 silx/resources/gui/icons/process-working.mng create mode 100644 silx/resources/gui/icons/process-working/00.png create mode 100644 silx/resources/gui/icons/process-working/01.png create mode 100644 silx/resources/gui/icons/process-working/02.png create mode 100644 silx/resources/gui/icons/process-working/03.png create mode 100644 silx/resources/gui/icons/process-working/04.png create mode 100644 silx/resources/gui/icons/process-working/05.png create mode 100644 silx/resources/gui/icons/process-working/06.png create mode 100644 silx/resources/gui/icons/process-working/07.png create mode 100644 silx/resources/gui/icons/process-working/08.png create mode 100644 silx/resources/gui/icons/process-working/09.png create mode 100644 silx/resources/gui/icons/process-working/10.png create mode 100644 silx/resources/gui/icons/process-working/11.png create mode 100644 silx/resources/gui/icons/process-working/12.png create mode 100644 silx/resources/gui/icons/process-working/13.png create mode 100644 silx/resources/gui/icons/process-working/14.png create mode 100644 silx/resources/gui/icons/process-working/15.png create mode 100644 silx/resources/gui/icons/process-working/16.png create mode 100644 silx/resources/gui/icons/process-working/17.png create mode 100644 silx/resources/gui/icons/process-working/18.png create mode 100644 silx/resources/gui/icons/process-working/19.png create mode 100644 silx/resources/gui/icons/process-working/20.png create mode 100644 silx/resources/gui/icons/process-working/21.png create mode 100644 silx/resources/gui/icons/process-working/22.png create mode 100644 silx/resources/gui/icons/process-working/23.png create mode 100644 silx/resources/gui/icons/process-working/24.png create mode 100644 silx/resources/gui/icons/process-working/25.png create mode 100644 silx/resources/gui/icons/process-working/26.png create mode 100644 silx/resources/gui/icons/process-working/27.png create mode 100644 silx/resources/gui/icons/process-working/28.png create mode 100644 silx/resources/gui/icons/process-working/29.png create mode 100644 silx/resources/gui/icons/process-working/30.png create mode 100644 silx/resources/gui/icons/profile-clear.png create mode 100644 silx/resources/gui/icons/profile-clear.svg create mode 100644 silx/resources/gui/icons/profile1D.png create mode 100644 silx/resources/gui/icons/profile1D.svg create mode 100644 silx/resources/gui/icons/profile2D.png create mode 100644 silx/resources/gui/icons/profile2D.svg create mode 100755 silx/resources/gui/icons/remove.png create mode 100644 silx/resources/gui/icons/remove.svg create mode 100644 silx/resources/gui/icons/rotate-3d.png create mode 100644 silx/resources/gui/icons/rotate-3d.svg create mode 100755 silx/resources/gui/icons/rudder.png create mode 100644 silx/resources/gui/icons/rudder.svg create mode 100755 silx/resources/gui/icons/selected.png create mode 100644 silx/resources/gui/icons/selected.svg create mode 100755 silx/resources/gui/icons/shape-circle-solid.png create mode 100644 silx/resources/gui/icons/shape-circle-solid.svg create mode 100755 silx/resources/gui/icons/shape-circle.png create mode 100644 silx/resources/gui/icons/shape-circle.svg create mode 100755 silx/resources/gui/icons/shape-diagonal.png create mode 100644 silx/resources/gui/icons/shape-diagonal.svg create mode 100755 silx/resources/gui/icons/shape-ellipse-solid.png create mode 100644 silx/resources/gui/icons/shape-ellipse-solid.svg create mode 100755 silx/resources/gui/icons/shape-ellipse.png create mode 100644 silx/resources/gui/icons/shape-ellipse.svg create mode 100755 silx/resources/gui/icons/shape-horizontal.png create mode 100644 silx/resources/gui/icons/shape-horizontal.svg create mode 100755 silx/resources/gui/icons/shape-polygon.png create mode 100644 silx/resources/gui/icons/shape-polygon.svg create mode 100755 silx/resources/gui/icons/shape-rectangle.png create mode 100644 silx/resources/gui/icons/shape-rectangle.svg create mode 100755 silx/resources/gui/icons/shape-square.png create mode 100644 silx/resources/gui/icons/shape-square.svg create mode 100755 silx/resources/gui/icons/shape-vertical.png create mode 100644 silx/resources/gui/icons/shape-vertical.svg create mode 100755 silx/resources/gui/icons/silx.png create mode 100644 silx/resources/gui/icons/silx.svg create mode 100755 silx/resources/gui/icons/sliders-off.png create mode 100644 silx/resources/gui/icons/sliders-off.svg create mode 100755 silx/resources/gui/icons/sliders-on.png create mode 100644 silx/resources/gui/icons/sliders-on.svg create mode 100755 silx/resources/gui/icons/spec.png create mode 100644 silx/resources/gui/icons/spec.svg create mode 100644 silx/resources/gui/icons/view-1d.png create mode 100644 silx/resources/gui/icons/view-1d.svg create mode 100644 silx/resources/gui/icons/view-2d-stack.png create mode 100644 silx/resources/gui/icons/view-2d-stack.svg create mode 100644 silx/resources/gui/icons/view-2d.png create mode 100644 silx/resources/gui/icons/view-2d.svg create mode 100644 silx/resources/gui/icons/view-3d.png create mode 100644 silx/resources/gui/icons/view-3d.svg create mode 100755 silx/resources/gui/icons/view-fullscreen.png create mode 100644 silx/resources/gui/icons/view-fullscreen.svg create mode 100644 silx/resources/gui/icons/view-hdf5.png create mode 100644 silx/resources/gui/icons/view-hdf5.svg create mode 100644 silx/resources/gui/icons/view-nexus.png create mode 100644 silx/resources/gui/icons/view-nexus.svg create mode 100755 silx/resources/gui/icons/view-nofullscreen.png create mode 100644 silx/resources/gui/icons/view-nofullscreen.svg create mode 100644 silx/resources/gui/icons/view-raw.png create mode 100644 silx/resources/gui/icons/view-raw.svg create mode 100755 silx/resources/gui/icons/view-refresh.png create mode 100644 silx/resources/gui/icons/view-refresh.svg create mode 100644 silx/resources/gui/icons/view-text.png create mode 100644 silx/resources/gui/icons/view-text.svg create mode 100755 silx/resources/gui/icons/window-new.png create mode 100644 silx/resources/gui/icons/window-new.svg create mode 100644 silx/resources/gui/icons/zoom-back.png create mode 100644 silx/resources/gui/icons/zoom-back.svg create mode 100755 silx/resources/gui/icons/zoom-in.png create mode 100644 silx/resources/gui/icons/zoom-in.svg create mode 100755 silx/resources/gui/icons/zoom-original.png create mode 100644 silx/resources/gui/icons/zoom-original.svg create mode 100755 silx/resources/gui/icons/zoom-out.png create mode 100644 silx/resources/gui/icons/zoom-out.svg create mode 100755 silx/resources/gui/icons/zoom.png create mode 100644 silx/resources/gui/icons/zoom.svg create mode 100644 silx/resources/gui/logo/silx.png create mode 100644 silx/resources/gui/logo/silx.svg create mode 100644 silx/resources/opencl/addition.cl create mode 100644 silx/resources/opencl/array_utils.cl create mode 100644 silx/resources/opencl/backproj.cl create mode 100644 silx/resources/opencl/backproj_helper.cl create mode 100644 silx/resources/opencl/bitonic.cl create mode 100644 silx/resources/opencl/linalg.cl create mode 100644 silx/resources/opencl/medfilt.cl create mode 100644 silx/resources/opencl/preprocess.cl create mode 100644 silx/resources/opencl/proj.cl create mode 100644 silx/setup.py create mode 100644 silx/sx/__init__.py create mode 100644 silx/sx/_plot.py create mode 100644 silx/test/__init__.py create mode 100644 silx/test/test_resources.py create mode 100644 silx/test/test_sx.py create mode 100644 silx/test/test_version.py create mode 100644 silx/test/utils.py create mode 100644 silx/third_party/EdfFile.py create mode 100644 silx/third_party/TiffIO.py create mode 100644 silx/third_party/__init__.py create mode 100644 silx/third_party/_local/__init__.py create mode 100644 silx/third_party/_local/enum.py create mode 100644 silx/third_party/_local/six.py create mode 100644 silx/third_party/enum.py create mode 100644 silx/third_party/setup.py create mode 100644 silx/third_party/six.py create mode 100644 silx/utils/__init__.py create mode 100644 silx/utils/array_like.py create mode 100644 silx/utils/deprecation.py create mode 100644 silx/utils/html.py create mode 100644 silx/utils/launcher.py create mode 100644 silx/utils/proxy.py create mode 100644 silx/utils/setup.py create mode 100644 silx/utils/test/__init__.py create mode 100644 silx/utils/test/test_array_like.py create mode 100644 silx/utils/test/test_deprecation.py create mode 100644 silx/utils/test/test_html.py create mode 100644 silx/utils/test/test_launcher.py create mode 100644 silx/utils/test/test_launcher_command.py create mode 100644 silx/utils/test/test_proxy.py create mode 100644 silx/utils/test/test_weakref.py create mode 100644 silx/utils/weakref.py create mode 100644 stdeb.cfg create mode 100644 version.py diff --git a/CHANGELOG.rst b/CHANGELOG.rst new file mode 100644 index 0000000..041dc7a --- /dev/null +++ b/CHANGELOG.rst @@ -0,0 +1,173 @@ +Change Log +========== + +0.6.1: 2017/11/10 +----------------- + + * Plot: + + * Fix logarithmic axes, broken by new matplotlib version 2.1.0. + * Fix axis limits changed signal, not emitted with matplotlib 1.5.x and 2.0.x + when the widget is resized. + * Support displaying float128 data with matplotlib < 2.1.0. + * Fix minor bugs with the crosshair cursor and the legends widget. + + * Update documentation on Zenodo DOI and Debian packages installation. + * Fix the Debian packaging script for Ubuntu distributions. + + +0.6.0: 2017/10/02 +----------------- + + * OpenCl. Tomography. Implement a filtered back projection. + * Add a *PrintPreview* widget and a *PrintPreviewToolButton* for *PlotWidget*. + * Plot: + + * Add a context menu on right click. + * Add a *ComplexImageView* widget. + * Merged abstract *Plot* class with *PlotWidget* class. + * Make colormap an object with signals (*sigChanged*) + * Add a colorbar widget *silx.gui.plot.ColorBar*. + * Make axis an object, allow axis synchronization between plots, + allow adding constraints on axes limits. + * Refactor plot actions, new sub-package *silx.gui.plot.actions*. + * Add signals on *PlotWidget* items notifying updates. + * Mask. Support loading of TIFF images. + + * Plot3d: + + * Rework toolbar and interaction to use only the left mouse button. + * Support any colormap. + + * Hdf5TreeView: + + * Add an API to select a single tree node item (*setSelectedH5Node*) + * Better support and display of types. + * New column for displaying the kind of links. + * Broken nodes are now selectable. + + * StackView. Add a *setTitleCallback* method. + * Median filter. Add new modes (*reflect, mirror, shrink*) in addition to *nearest*. + + * IO: + + * Rename module *spectoh5* to *convert*. Add support for conversion of *fabio* formats. + * Support NPZ format. + * Support opening an URI (*silx.io.open(filename::path)*). + * *Group* methods *.keys*, *.value* and *.items* now return lists in Python 2 + and iterators in Python 3. + + * Image. Add tomography utils: *phantomgenerator* to produce Shepp-Logan phantom, function to compute center of rotation (*calc_center_corr*, *calc_center_centroid*) and rescale the intensity of an image (*rescale_intensity*). + + * Commands: + + * *silx view*: + + * Add command line option *--use-opengl-plot*. + * Add command line option *--debug*, to print dataset reading errors. + * Support opening URI (*silx view filename::path*). + + * *silx convert*. New command line application to convert supported data files to HDF5. + + * Enable usage of *silx.resources* for other projects. + * The *silx* license is now fully MIT. + + +0.5.0: 2017/05/12 +----------------- + + * Adds OpenGL backend to 1D and 2D graphics + * Adds Object Oriented plot API with Curve, Histogram, Image, ImageRgba and Scatter items. + * Implements generic launcher (``silx view``) + * NXdataViewer. Module providing NeXus NXdata support + * Math/OpenCL. Implementation of median filter. + * Plot. Implementation of ColorBar widget. + * Plot. Visualization of complex data type. + * Plot. Implementation of Scatter Plot Item supporting colormaps and masks. + * Plot. StackView now supports axes calibration. + * I/O. Supports SPEC files not having #F or #S as first line character. + * I/O. Correctly exposes UB matrix when found in file. + * ROIs. Simplification of API: setRois, getRois, calculateRois. + * ROIs. Correction of calculation bug when the X-axis values were not ordered. + * Sift. Moves package from ``silx.image`` to ``silx.opencl``. + + +0.4.0: 2017/02/01 +----------------- + + * Adds plot3D package (include visualization of 3-dimensional scalar fields) + * Adds data viewer (it can handle n-dimensional data) + * Adds StackView (ex. Visualization of stack of images) + * Adds depth profile calculation (ex. extract profile of a stack of images) + * Adds periodic table widget + * Adds ArrayTableWidget + * Adds pixel intensity histogram action + * Adds histogram parameter to addCurve + * Refactoring. Create silx.gui.data (include widgets for data) + * Refactoring. Rename utils.load as silx.io.open + * Changes active curve behavior in Plot. No default active curve is set by default + * Fit Action. Add polynomial functions and background customization + * PlotWindow. Provide API to access toolbar actions + * Handle SPEC, HDF5 and image formats through an unified API + * hdf5widget example. Inspect and visualize any datasets + * Improves mask tool + * Deprecates PlotWindow dock widgets attributes in favor of getter methods + + +0.3.0: 2016/10/12 +----------------- + + * Adds OpenCL management + * Adds isosurface marching cubes + * Adds sift algorithm for image alignement + * Adds octaveh5 module to insure communication between octave and python using HDF5 file + * Adds silx.utils module containing weakref and html-escape + * Adds silx.sx for flat import (helper for interactive shell) + * Adds HDF5 load API (supporting Spec files) to silx.io.utils module + * Adds SpecFile support for multiple MCA headers + * Adds HDF5 TreeView + * Adds FitManager to silx.math.fit and FitWidget to silx.gui.fit + * Adds ThreadPoolPushButton to silx.gui.widgets + * Adds getDataRange function to plot widget + * Adds loadUi, Slot and Property to qt.py + * Adds SVG icons and support + * Adds examples for plot actions, HDF5 widget, helper widgets, converter from Spec to HDF5 + * Adds tutorials for plot actions, spech5, spectoh5, sift and fitmanager + * Improves right axis support for plot widget + * Improves mask tool + * Refactors widgets constructor: first argument is now the parent widget + * Changes plot documentation and add missing module to the documentation + + +0.2.0: 2016/07/12 +----------------- + + * Adds bilinear interpolator and line-profile for images to silx.image + * Adds Levenberg-Marquardt least-square fitting algorithm to silx.math.fit + * Histogramnd changed to become a class rather than a function, API and return values changed + * Adds HistogramndLut, using a lookup table to bin data onto a regular grid for several sets of + data sharing the same coordinates + * Adds legend widget and bottom toolbar to PlotWindow + * Adds a line-profile toolbar to PlotWindow + * Adds ImageView widget with side histograms and profile toolbar + * Adds IPython console widget, to be started from PlotWindow toolbar + * Adds Plot1D widget for curves and Plot2D widget for images + * Adds ROI widget for curves in PlotWindow + * Adds a mask widget and toolbar to plot (2D) + * Renames silx.io.dicttoh5 to silx.io.dictdump + * Adds configuration dictionary dumping/loading to/from JSON and INI files in silx.io.configdict + * Adds specfile wrapper API compatible with legacy wrapper: silx.io.specfilewrapper + * Transposes scan data in specfile module to have detector as first index + * Set up nigthly build for sources package, debian packages (http://www.silx.org/pub/debian/) + and documentation (http://www.silx.org/doc/) + + +0.1.0: 2016/04/14 +----------------- + + * Adds project build, documentation and test structure + * Adds continuous integration set-up for Travis-CI and Appveyor + * Adds Debian packaging support + * Adds SPEC file reader, SPEC file conversion to HDF5 in silx.io + * Adds histogramnd function in silx.math + * Adds 1D, 2D plot widget with a toolbar, refactored from PyMca PlotWindow in silx.gui.plot diff --git a/LICENSE b/LICENSE new file mode 100644 index 0000000..acebc8d --- /dev/null +++ b/LICENSE @@ -0,0 +1,29 @@ +The silx toolkit is a software library and one of its goals is not to impose any license to the end user. + +Silx follows the permissive MIT license although it may include contributions following other licenses not interfering with the previous goal. Detailed information can be found in the copyright file. + +Silx uses the Qt library for its graphical user interfaces. +A word of caution is to be provided. +If users develop and distribute software using modules accessing Qt by means of Riverbank Computing Qt bindings PyQt4 or PyQt5, those users will be conditioned by the license of their PyQt4/5 software (GPL or commercial). +If the end user does not own a commercial license of PyQt4 or PyQt5 and wishes to be free of any distribution condition, (s)he should be able to use PySide because it uses the LGPL license. + +The MIT license follows: + +Copyright (c) European Synchrotron Radiation Facility (ESRF) + +Permission is hereby granted, free of charge, to any person obtaining a copy of +this software and associated documentation files (the "Software"), to deal in +the Software without restriction, including without limitation the rights to +use, copy, modify, merge, publish, distribute, sublicense, and/or sell copies of +the Software, and to permit persons to whom the Software is furnished to do so, +subject to the following conditions: + +The above copyright notice and this permission notice shall be included in all +copies or substantial portions of the Software. + +THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR +IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, FITNESS +FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS OR +COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER +IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN +CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE. diff --git a/MANIFEST.in b/MANIFEST.in new file mode 100644 index 0000000..0a8a964 --- /dev/null +++ b/MANIFEST.in @@ -0,0 +1,18 @@ +include README.rst +include CHANGELOG.rst +include copyright +include LICENSE +include MANIFEST.in +include run_tests.py +include version.py +include stdeb.cfg +include build-deb.sh +include requirements.txt +include requirements-dev.txt +recursive-include silx *.pyx *.pxd *.pxi +recursive-include silx *.h *.c *.hpp *.cpp +recursive-include doc/source *.py *.rst *.png *.ico +recursive-include qtdesigner_plugins *.py *.rst +recursive-include silx/resources * +recursive-include examples * +recursive-include package * diff --git a/PKG-INFO b/PKG-INFO new file mode 100644 index 0000000..ed985dc --- /dev/null +++ b/PKG-INFO @@ -0,0 +1,180 @@ +Metadata-Version: 1.1 +Name: silx +Version: 0.6.1 +Summary: Software library for X-Ray data analysis +Home-page: http://www.silx.org/ +Author: data analysis unit +Author-email: silx@esrf.fr +License: UNKNOWN +Description: + silx toolkit + ============ + + The silx project aims at providing a collection of Python packages to support the + development of data assessment, reduction and analysis applications at synchrotron + radiation facilities. + It aims at providing reading/writing different file formats, data reduction routines + and a set of Qt widgets to browse and visualize data. + + The current version provides: + + * reading `HDF5 `_ file format (with support of + `SPEC `_ file format and + `FabIO `_ + images) + * histogramming + * fitting + * 1D and 2D visualization widgets using multiple backends (matplotlib or OpenGL) + * an OpenGL-based widget to display 3D scalar field with isosurface and cutting plane + * an image plot widget with a set of associated tools + * a unified browser for HDF5, SPEC and image file formats supporting inspection and + visualization of n-dimensional datasets. + * a unified viewer (*silx view filename*) for HDF5, SPEC and image file formats + * a unified converter to HDF5 format (*silx convert filename*) + * median filters on images (C and OpenCL implementations) + * image alignement (sift - OpenCL implementation) + * filtered backprojection and forward projection for tomography + + Installation + ------------ + + To install silx, run:: + + pip install silx + + Or with Anaconda on Linux and MacOS:: + + conda install silx -c conda-forge + + To install silx locally, run:: + + pip install silx --user + + Unofficial packages for different distributions are available : + + - Unofficial Debian8 packages are available at http://www.silx.org/pub/debian/ + - CentOS 7 rpm packages are provided by Max IV at the following url: http://pubrepo.maxiv.lu.se/rpm/el7/x86_64/ + - Fedora 23 rpm packages are provided by Max IV at http://pubrepo.maxiv.lu.se/rpm/fc23/x86_64/ + - Arch Linux (AUR) packages are also available: https://aur.archlinux.org/packages/python-silx + + Beside this, we provide a certain number of wheels (pre-compiled binary packages) to be installed + onto a pre-existing Python installation: + + - On Windows, binary wheels are available for Python 2.7, 3.5 and 3.6. + - On MacOS, binary wheels are available for Python 2.7, 3.5 and 3.6. + - On Linux, manylinux1 binary wheels are available for Python 2.7, 3.4, 3.5 and 3.6. + + Those builds are made from "up-date" systems at the time of the release, i.e. they use + the latest stable version of numpy (and cython). + Hence your system should use a fairly recent version of numpy to be compatible with silx. + This can be achieved simply by:: + + pip install numpy --upgrade + + + The latest development version can be obtained from the git repository:: + + git clone https://github.com/silx-kit/silx.git + cd silx + pip install . [--user] + + Dependencies + ------------ + + * `Python `_ 2.7, 3.4 or above. + * `numpy `_ + + The GUI widgets of the silx package depend on the following extra packages: + + * A Qt binding: `PyQt5, PyQt4 `_ (using API version 2) or `PySide `_ + * `matplotlib `_ for the silx.gui.plot package + * `PyOpenGL `_ for the silx.gui.plot3d package + + Most modules and functions dealing with `HDF5 `_ input/output depend on: + + * `h5py `_ + + Parallel algorithms depend on: + + * `PyOpenCL `_ + + The console widgets depend on: + + * `ipython `_ + * `qtconsole `_ + + + Supported platforms: Linux, Windows, Mac OS X. + + Documentation + ------------- + + Documentation of latest release is available at http://www.silx.org/doc/silx/latest/ + + Documentation of previous releases and nightly build is available at http://www.silx.org/doc/silx/ + + To build the documentation from the source (requires `Sphinx `_), run:: + + python setup.py build build_doc + + Testing + ------- + + - Travis CI status: |Travis Status| + - Appveyor CI status: |Appveyor Status| + + To run the tests from the python interpreter, run: + + >>> import silx.test + >>> silx.test.run_tests() + + To run the tests, from the source directory, run:: + + python run_tests.py + + Examples + -------- + + Some examples of sample code using silx are provided with the + `silx documentation `_. + + + License + ------- + + The source code of silx is licensed under the MIT license. + See the `LICENSE `_ and `copyright `_ files for details. + + Citation + -------- + + silx releases can be cited by their DOI on Zenodo: |zenodo DOI| + + .. |Travis Status| image:: https://travis-ci.org/silx-kit/silx.svg?branch=master + :target: https://travis-ci.org/silx-kit/silx + .. |Appveyor Status| image:: https://ci.appveyor.com/api/projects/status/qgox9ei0wxwfagrb/branch/master?svg=true + :target: https://ci.appveyor.com/project/ESRF/silx + .. |zenodo DOI| image:: https://zenodo.org/badge/DOI/10.5281/zenodo.591709.svg + :target: https://doi.org/10.5281/zenodo.591709 + +Platform: UNKNOWN +Classifier: Development Status :: 4 - Beta +Classifier: Environment :: Console +Classifier: Environment :: MacOS X +Classifier: Environment :: Win32 (MS Windows) +Classifier: Environment :: X11 Applications :: Qt +Classifier: Intended Audience :: Education +Classifier: Intended Audience :: Science/Research +Classifier: License :: OSI Approved :: MIT License +Classifier: Natural Language :: English +Classifier: Operating System :: MacOS +Classifier: Operating System :: Microsoft :: Windows +Classifier: Operating System :: POSIX +Classifier: Programming Language :: Cython +Classifier: Programming Language :: Python :: 2.7 +Classifier: Programming Language :: Python :: 3.4 +Classifier: Programming Language :: Python :: 3.5 +Classifier: Programming Language :: Python :: 3.6 +Classifier: Programming Language :: Python :: Implementation :: CPython +Classifier: Topic :: Scientific/Engineering :: Physics +Classifier: Topic :: Software Development :: Libraries :: Python Modules diff --git a/README.rst b/README.rst new file mode 100644 index 0000000..a7ccdf5 --- /dev/null +++ b/README.rst @@ -0,0 +1,150 @@ + +silx toolkit +============ + +The silx project aims at providing a collection of Python packages to support the +development of data assessment, reduction and analysis applications at synchrotron +radiation facilities. +It aims at providing reading/writing different file formats, data reduction routines +and a set of Qt widgets to browse and visualize data. + +The current version provides: + +* reading `HDF5 `_ file format (with support of + `SPEC `_ file format and + `FabIO `_ + images) +* histogramming +* fitting +* 1D and 2D visualization widgets using multiple backends (matplotlib or OpenGL) +* an OpenGL-based widget to display 3D scalar field with isosurface and cutting plane +* an image plot widget with a set of associated tools +* a unified browser for HDF5, SPEC and image file formats supporting inspection and + visualization of n-dimensional datasets. +* a unified viewer (*silx view filename*) for HDF5, SPEC and image file formats +* a unified converter to HDF5 format (*silx convert filename*) +* median filters on images (C and OpenCL implementations) +* image alignement (sift - OpenCL implementation) +* filtered backprojection and forward projection for tomography + +Installation +------------ + +To install silx, run:: + + pip install silx + +Or with Anaconda on Linux and MacOS:: + + conda install silx -c conda-forge + +To install silx locally, run:: + + pip install silx --user + +Unofficial packages for different distributions are available : + +- Unofficial Debian8 packages are available at http://www.silx.org/pub/debian/ +- CentOS 7 rpm packages are provided by Max IV at the following url: http://pubrepo.maxiv.lu.se/rpm/el7/x86_64/ +- Fedora 23 rpm packages are provided by Max IV at http://pubrepo.maxiv.lu.se/rpm/fc23/x86_64/ +- Arch Linux (AUR) packages are also available: https://aur.archlinux.org/packages/python-silx + +Beside this, we provide a certain number of wheels (pre-compiled binary packages) to be installed +onto a pre-existing Python installation: + +- On Windows, binary wheels are available for Python 2.7, 3.5 and 3.6. +- On MacOS, binary wheels are available for Python 2.7, 3.5 and 3.6. +- On Linux, manylinux1 binary wheels are available for Python 2.7, 3.4, 3.5 and 3.6. + +Those builds are made from "up-date" systems at the time of the release, i.e. they use +the latest stable version of numpy (and cython). +Hence your system should use a fairly recent version of numpy to be compatible with silx. +This can be achieved simply by:: + + pip install numpy --upgrade + + +The latest development version can be obtained from the git repository:: + + git clone https://github.com/silx-kit/silx.git + cd silx + pip install . [--user] + +Dependencies +------------ + +* `Python `_ 2.7, 3.4 or above. +* `numpy `_ + +The GUI widgets of the silx package depend on the following extra packages: + +* A Qt binding: `PyQt5, PyQt4 `_ (using API version 2) or `PySide `_ +* `matplotlib `_ for the silx.gui.plot package +* `PyOpenGL `_ for the silx.gui.plot3d package + +Most modules and functions dealing with `HDF5 `_ input/output depend on: + +* `h5py `_ + +Parallel algorithms depend on: + +* `PyOpenCL `_ + +The console widgets depend on: + +* `ipython `_ +* `qtconsole `_ + + +Supported platforms: Linux, Windows, Mac OS X. + +Documentation +------------- + +Documentation of latest release is available at http://www.silx.org/doc/silx/latest/ + +Documentation of previous releases and nightly build is available at http://www.silx.org/doc/silx/ + +To build the documentation from the source (requires `Sphinx `_), run:: + + python setup.py build build_doc + +Testing +------- + +- Travis CI status: |Travis Status| +- Appveyor CI status: |Appveyor Status| + +To run the tests from the python interpreter, run: + +>>> import silx.test +>>> silx.test.run_tests() + +To run the tests, from the source directory, run:: + + python run_tests.py + +Examples +-------- + +Some examples of sample code using silx are provided with the +`silx documentation `_. + + +License +------- + +The source code of silx is licensed under the MIT license. +See the `LICENSE `_ and `copyright `_ files for details. + +Citation +-------- + +silx releases can be cited by their DOI on Zenodo: |zenodo DOI| + +.. |Travis Status| image:: https://travis-ci.org/silx-kit/silx.svg?branch=master + :target: https://travis-ci.org/silx-kit/silx +.. |Appveyor Status| image:: https://ci.appveyor.com/api/projects/status/qgox9ei0wxwfagrb/branch/master?svg=true + :target: https://ci.appveyor.com/project/ESRF/silx +.. |zenodo DOI| image:: https://zenodo.org/badge/DOI/10.5281/zenodo.591709.svg + :target: https://doi.org/10.5281/zenodo.591709 diff --git a/build-deb.sh b/build-deb.sh new file mode 100755 index 0000000..208b706 --- /dev/null +++ b/build-deb.sh @@ -0,0 +1,273 @@ +#!/bin/sh +# +# Project: Silx +# https://github.com/silx-kit/silx +# +# Copyright (C) 2015-2017 European Synchrotron Radiation Facility, Grenoble, France +# +# Principal author: Jérôme Kieffer (Jerome.Kieffer@ESRF.eu) +# +# Permission is hereby granted, free of charge, to any person obtaining a copy +# of this software and associated documentation files (the "Software"), to deal +# in the Software without restriction, including without limitation the rights +# to use, copy, modify, merge, publish, distribute, sublicense, and/or sell +# copies of the Software, and to permit persons to whom the Software is +# furnished to do so, subject to the following conditions: +# +# The above copyright notice and this permission notice shall be included in +# all copies or substantial portions of the Software. +# +# THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR +# IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, +# FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE +# AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER +# LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, +# OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN +# THE SOFTWARE + +# Script that builds a debian package from this library + +project=silx +source_project=silx +version=$(python -c"import version; print(version.version)") +strictversion=$(python -c"import version; print(version.strictversion)") +debianversion=$(python -c"import version; print(version.debianversion)") + +deb_name=$(echo "$source_project" | tr '[:upper:]' '[:lower:]') + +# target system +if [ -f /etc/debian_version ] +then + debian_version=$(cat /etc/debian_version | cut -d. -f1 | grep -o '[0-9]*') + if [ -z $debian_version ] + then + #we are probably on a ubuntu platform + debian_version=$(cat /etc/debian_version | cut -d/ -f1) + case $debian_version in + squeeze) + debian_version=6 + ;; + wheezy) + debian_version=7 + ;; + jessie) + debian_version=8 + ;; + stretch) + debian_version=9 + ;; + esac + fi + +else + debian_version=0 +fi +target_system=debian${debian_version} + +project_directory="`dirname \"$0\"`" +project_directory="`( cd \"$project_directory\" && pwd )`" # absolutized +dist_directory=${project_directory}/dist/${target_system} +build_directory=${project_directory}/build/${target_system} + +if [ -d /usr/lib/ccache ]; +then + export PATH=/usr/lib/ccache:$PATH +fi + +usage="usage: $(basename "$0") [options] + +Build the Debian ${debian_version} package of the ${project} library. + +If the build succeed the directory dist/debian${debian_version} will +contains the packages. + +optional arguments: + --help show this help text + --install install the packages generated at the end of + the process using 'sudo dpkg' + --debian7 Simulate a debian7 system (fail-safe) + --debian8 Simulate a debian 8 Jessie system + --debian9 Simulate a debian 9 Stretch system +" + +install=0 +use_python3=0 #used only for stdeb + +while : +do + case "$1" in + -h | --help) + echo "$usage" + exit 0 + ;; + --install) + install=1 + shift + ;; + --python3) + use_python3=1 + shift + ;; + --debian7) + debian_version=7 + target_system=debian${debian_version} + dist_directory=${project_directory}/dist/${target_system} + build_directory=${project_directory}/build/${target_system} + shift + ;; + --debian8) + debian_version=8 + target_system=debian${debian_version} + dist_directory=${project_directory}/dist/${target_system} + build_directory=${project_directory}/build/${target_system} + shift + ;; + --debian9) + debian_version=9 + target_system=debian${debian_version} + dist_directory=${project_directory}/dist/${target_system} + build_directory=${project_directory}/build/${target_system} + shift + ;; + -*) + echo "Error: Unknown option: $1" >&2 + echo "$usage" + exit 1 + ;; + *) # No more options + break + ;; + esac +done + +clean_up() +{ + echo "Clean working dir:" + # clean up previous build + rm -rf ${build_directory} + # create the build context + mkdir -p ${build_directory} +} + +build_deb_8_plus () { + echo "Build for debian 8 or newer using actual packaging" + tarname=${project}_${debianversion}.orig.tar.gz + clean_up + python setup.py debian_src + cp -f dist/${tarname} ${build_directory} + if [ -f dist/${project}-testimages.tar.gz ] + then + cp -f dist/${project}-testimages.tar.gz ${build_directory} + fi + + cd ${build_directory} + tar -xzf ${tarname} + + directory=${project}-${strictversion} + newname=${deb_name}_${debianversion}.orig.tar.gz + + #echo tarname $tarname newname $newname + if [ $tarname != $newname ] + then + if [ -h $newname ] + then + rm ${newname} + fi + ln -s ${tarname} ${newname} + fi + + if [ -f ${project}-testimages.tar.gz ] + then + if [ ! -h ${deb_name}_${debianversion}.orig-testimages.tar.gz ] + then + ln -s ${project}-testimages.tar.gz ${deb_name}_${debianversion}.orig-testimages.tar.gz + fi + fi + + cd ${directory} + cp -r ${project_directory}/package/${target_system} debian + cp ${project_directory}/copyright debian + + #handle test images + if [ -f ../${deb_name}_${debianversion}.orig-testimages.tar.gz ] + then + if [ ! -d testimages ] + then + mkdir testimages + fi + cd testimages + tar -xzf ../${deb_name}_${debianversion}.orig-testimages.tar.gz + cd .. + else + # Disable to skip tests during build + echo No test data + #export PYBUILD_DISABLE_python2=test + #export PYBUILD_DISABLE_python3=test + #export DEB_BUILD_OPTIONS=nocheck + fi + + dch -v ${debianversion}-1 "upstream development build of ${project} ${version}" + dch --bpo "${project} snapshot ${version} built for ${target_system}" + dpkg-buildpackage -r + rc=$? + + if [ $rc -eq 0 ]; then + # move packages to dist directory + echo Build succeeded... + rm -rf ${dist_directory} + mkdir -p ${dist_directory} + mv ${build_directory}/*.deb ${dist_directory} + mv ${build_directory}/*.x* ${dist_directory} + mv ${build_directory}/*.dsc ${dist_directory} + mv ${build_directory}/*.changes ${dist_directory} + cd ../../.. + else + echo Build failed, please investigate ... + exit "$rc" + fi +} + +build_deb_7_minus () { + echo "Build for debian 7 or older using stdeb" + tarname=${project}-${strictversion}.tar.gz + clean_up + + python setup.py sdist + cp -f dist/${tarname} ${build_directory} + cd ${build_directory} + tar -xzf ${tarname} + cd ${project}-${strictversion} + + if [ $use_python3 = 1 ] + then + echo Using Python 2+3 + python3 setup.py --command-packages=stdeb.command sdist_dsc --with-python2=True --with-python3=True --no-python3-scripts=True build --no-cython bdist_deb + rc=$? + else + echo Using Python 2 + # bdist_deb feed /usr/bin using setup.py entry-points + python setup.py --command-packages=stdeb.command build --no-cython bdist_deb + rc=$? + fi + + # move packages to dist directory + rm -rf ${dist_directory} + mkdir -p ${dist_directory} + mv -f deb_dist/*.deb ${dist_directory} + + # back to the root + cd ../../.. +} + +if [ $debian_version -ge 8 ] +then + build_deb_8_plus +else + build_deb_7_minus +fi + +if [ $install -eq 1 ]; then + sudo -v su -c "dpkg -i ${dist_directory}/*.deb" +fi + +exit "$rc" diff --git a/copyright b/copyright new file mode 100644 index 0000000..4229c58 --- /dev/null +++ b/copyright @@ -0,0 +1,99 @@ +Format: http://www.debian.org/doc/packaging-manuals/copyright-format/1.0/ +Upstream-Name: silx +Source: https://github.com/silx-kit/silx + +Files: * +Copyright: 2004-2017 European Synchrotron Radiation Facility + Data analysis unit (silx@esrf.fr) +License: MIT + +Files: silx/math/histogramnd/include/msvc/stdint.h +Copyright: 2006-2008 Alexander Chemeris +License: BSD-3 + +Files: silx/resources/gui/colormaps/inferno.npy silx/resources/gui/colormaps/magma.npy silx/resources/gui/colormaps/plasma.npy silx/resources/gui/colormaps/viridis.npy +Copyright: Nathaniel J. Smith, Stefan van der Walt, Eric Firing +License: CC0 + +Files: silx/gui/_pyside_dynamic.py +Copyright: 2011 Sebastian Wiesner + Modifications by Charl Botha +License: MIT + +License: MIT + Permission is hereby granted, free of charge, to any person obtaining a + copy of this software and associated documentation files (the "Software"), + to deal in the Software without restriction, including without limitation + the rights to use, copy, modify, merge, publish, distribute, sublicense, + and/or sell copies of the Software, and to permit persons to whom the + Software is furnished to do so, subject to the following conditions: + The above copyright notice and this permission notice shall be included in + all copies or substantial portions of the Software. + . + THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR + IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, + FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL + THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER + LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING + FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER + DEALINGS IN THE SOFTWARE. + +License: BSD-3 + Redistribution and use in source and binary forms, with or without + modification, are permitted provided that the following conditions + are met: + * Redistributions of source code must retain the above copyright + notice, this list of conditions and the following disclaimer. + * Redistributions in binary form must reproduce the above + copyright notice, this list of conditions and the following + disclaimer in the documentation and/or other materials provided + with the distribution. + * Neither the name of the nor the names of its + contributors may be used to endorse or promote products derived + from this software without specific prior written permission. + . + THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS + "AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT + LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR + A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, + EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, + PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR + PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY + OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT + (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE + OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. + +License: public-domain + You can use this free for any purpose. It's in the public domain. It + has no warranty + +License: CC0 + Statement of Purpose + . + The laws of most jurisdictions throughout the world automatically confer exclusive Copyright and Related Rights (defined below) upon the creator and subsequent owner(s) (each and all, an "owner") of an original work of authorship and/or a database (each, a "Work"). + . + Certain owners wish to permanently relinquish those rights to a Work for the purpose of contributing to a commons of creative, cultural and scientific works ("Commons") that the public can reliably and without fear of later claims of infringement build upon, modify, incorporate in other works, reuse and redistribute as freely as possible in any form whatsoever and for any purposes, including without limitation commercial purposes. These owners may contribute to the Commons to promote the ideal of a free culture and the further production of creative, cultural and scientific works, or to gain reputation or greater distribution for their Work in part through the use and efforts of others. + . + For these and/or other purposes and motivations, and without any expectation of additional consideration or compensation, the person associating CC0 with a Work (the "Affirmer"), to the extent that he or she is an owner of Copyright and Related Rights in the Work, voluntarily elects to apply CC0 to the Work and publicly distribute the Work under its terms, with knowledge of his or her Copyright and Related Rights in the Work and the meaning and intended legal effect of CC0 on those rights. + . + 1. Copyright and Related Rights. A Work made available under CC0 may be protected by copyright and related or neighboring rights ("Copyright and Related Rights"). Copyright and Related Rights include, but are not limited to, the following: + . + i. the right to reproduce, adapt, distribute, perform, display, communicate, and translate a Work; + ii. moral rights retained by the original author(s) and/or performer(s); + iii. publicity and privacy rights pertaining to a person's image or likeness depicted in a Work; + iv. rights protecting against unfair competition in regards to a Work, subject to the limitations in paragraph 4(a), below; + v. rights protecting the extraction, dissemination, use and reuse of data in a Work; + vi. database rights (such as those arising under Directive 96/9/EC of the European Parliament and of the Council of 11 March 1996 on the legal protection of databases, and under any national implementation thereof, including any amended or successor version of such directive); and + vii. other similar, equivalent or corresponding rights throughout the world based on applicable law or treaty, and any national implementations thereof. + . + 2. Waiver. To the greatest extent permitted by, but not in contravention of, applicable law, Affirmer hereby overtly, fully, permanently, irrevocably and unconditionally waives, abandons, and surrenders all of Affirmer's Copyright and Related Rights and associated claims and causes of action, whether now known or unknown (including existing as well as future claims and causes of action), in the Work (i) in all territories worldwide, (ii) for the maximum duration provided by applicable law or treaty (including future time extensions), (iii) in any current or future medium and for any number of copies, and (iv) for any purpose whatsoever, including without limitation commercial, advertising or promotional purposes (the "Waiver"). Affirmer makes the Waiver for the benefit of each member of the public at large and to the detriment of Affirmer's heirs and successors, fully intending that such Waiver shall not be subject to revocation, rescission, cancellation, termination, or any other legal or equitable action to disrupt the quiet enjoyment of the Work by the public as contemplated by Affirmer's express Statement of Purpose. + . + 3. Public License Fallback. Should any part of the Waiver for any reason be judged legally invalid or ineffective under applicable law, then the Waiver shall be preserved to the maximum extent permitted taking into account Affirmer's express Statement of Purpose. In addition, to the extent the Waiver is so judged Affirmer hereby grants to each affected person a royalty-free, non transferable, non sublicensable, non exclusive, irrevocable and unconditional license to exercise Affirmer's Copyright and Related Rights in the Work (i) in all territories worldwide, (ii) for the maximum duration provided by applicable law or treaty (including future time extensions), (iii) in any current or future medium and for any number of copies, and (iv) for any purpose whatsoever, including without limitation commercial, advertising or promotional purposes (the "License"). The License shall be deemed effective as of the date CC0 was applied by Affirmer to the Work. Should any part of the License for any reason be judged legally invalid or ineffective under applicable law, such partial invalidity or ineffectiveness shall not invalidate the remainder of the License, and in such case Affirmer hereby affirms that he or she will not (i) exercise any of his or her remaining Copyright and Related Rights in the Work or (ii) assert any associated claims and causes of action with respect to the Work, in either case contrary to Affirmer's express Statement of Purpose. + . + 4. Limitations and Disclaimers. + . + a. No trademark or patent rights held by Affirmer are waived, abandoned, surrendered, licensed or otherwise affected by this document. + b. Affirmer offers the Work as-is and makes no representations or warranties of any kind concerning the Work, express, implied, statutory or otherwise, including without limitation warranties of title, merchantability, fitness for a particular purpose, non infringement, or the absence of latent or other defects, accuracy, or the present or absence of errors, whether or not discoverable, all to the greatest extent permissible under applicable law. + c. Affirmer disclaims responsibility for clearing rights of other persons that may apply to the Work or any use thereof, including without limitation any person's Copyright and Related Rights in the Work. Further, Affirmer disclaims responsibility for obtaining any necessary consents, permissions or other rights required for any use of the Work. + d. Affirmer understands and acknowledges that Creative Commons is not a party to this document and has no duty or obligation with respect to this CC0 or use of the Work. diff --git a/doc/source/Tutorials/Sift/sift.rst b/doc/source/Tutorials/Sift/sift.rst new file mode 100644 index 0000000..7168cf3 --- /dev/null +++ b/doc/source/Tutorials/Sift/sift.rst @@ -0,0 +1,315 @@ + +SIFT image alignment tutorial +============================= + +SIFT (Scale-Invariant Feature Transform) is an algorithm developped by +David Lowe in 1999. It is a worldwide reference for image alignment and +object recognition. The robustness of this method enables to detect +features at different scales, angles and illumination of a scene. + +Silx provides an implementation of SIFT in OpenCL, meaning that it can +run on Graphics Processing Units and Central Processing Units as well. +Interest points are detected in the image, then data structures called +*descriptors* are built to be characteristic of the scene, so that two +different images of the same scene have similar descriptors. They are +robust to transformations like translation, rotation, rescaling and +illumination change, which make SIFT interesting for image stitching. + +In the fist stage, descriptors are computed from the input images. Then, +they are compared to determine the geometric transformation to apply in +order to align the images. This implementation can run on most graphic +cards and CPU, making it usable on many setups. OpenCL processes are +handled from Python with PyOpenCL, a module to access OpenCL parallel +computation API. + +This tutuorial explains the three subsequent steps: + +- keypoint extraction +- Keypoint matching +- image alignment + +All the tutorial has been made using the Jupyter notebook. + +.. code:: python + + import time + start_time = time.time() + %pylab nbagg + + +.. parsed-literal:: + + Populating the interactive namespace from numpy and matplotlib + + +.. code:: python + + # display test image + import silx + print("Silx version %s"%silx.version) + + from PIL import Image + from silx.test.utils import utilstest + path = utilstest.getfile("lena.png") + image = numpy.asarray(Image.open(path)) + fig, ax = subplots() + ax.imshow(image, cmap="gray") + + +.. parsed-literal:: + + Silx version 0.5.0-dev0 + + + +.. parsed-literal:: + + + + + +.. raw:: html + + + + + + +.. parsed-literal:: + + + + + +.. code:: python + + #Initialization of the sift object is time consuming: it compiles all the code. + import os + #set to 1 to see the compilation going on + os.environ["PYOPENCL_COMPILER_OUTPUT"] = "0" + from silx.image import sift + #switch to "GPU" to "CPU" to enable fail-save version. + %time sift_ocl = sift.SiftPlan(template=image, devicetype="GPU") + + +.. parsed-literal:: + + CPU times: user 112 ms, sys: 112 ms, total: 224 ms + Wall time: 240 ms + + +.. code:: python + + print("Time for calculating the keypoints on one image of size %sx%s"%image.shape[:2]) + %time keypoints = sift_ocl(image) + print("Number of keypoints: %s"%len(keypoints)) + print("Keypoint content:") + print(keypoints.dtype) + print("x: %.3f \t y: %.3f \t sigma: %.3f \t angle: %.3f" % + (keypoints[-1].x,keypoints[-1].y,keypoints[-1].scale,keypoints[-1].angle)) + print("descriptor:") + print(keypoints[-1].desc) + + +.. parsed-literal:: + + Time for calculating the keypoints on one image of size 512x512 + CPU times: user 652 ms, sys: 0 ns, total: 652 ms + Wall time: 649 ms + Number of keypoints: 411 + Keypoint content: + (numpy.record, [('x', ' + + + +.. raw:: html + +