Skip to content

Commit ae489ed

Browse files
author
edgar1993a
committed
Merge remote-tracking branch 'origin/main' into grazingincidence_exitangles
2 parents 51e0307 + eaf5e67 commit ae489ed

Some content is hidden

Large Commits have some content hidden by default. Use the searchbox below for content that may be hidden.

59 files changed

+4025
-2742
lines changed

.github/workflows/python-package.yml

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -15,7 +15,7 @@ jobs:
1515
runs-on: ubuntu-latest
1616
strategy:
1717
matrix:
18-
python-version: ['3.8', '3.9', '3.10', '3.11', '3.12']
18+
python-version: ['3.9', '3.10', '3.11', '3.12', '3.13']
1919

2020
steps:
2121
- uses: actions/checkout@v4

ci/appveyor.yml

Lines changed: 6 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -32,9 +32,9 @@ environment:
3232

3333
matrix:
3434

35-
# Python 3.7
36-
- PYTHON_DIR: "C:\\Python37-x64"
37-
PYTHON_ARCH: "64"
35+
# # Python 3.7
36+
# - PYTHON_DIR: "C:\\Python37-x64"
37+
# PYTHON_ARCH: "64"
3838

3939
# Python 3.9
4040
- PYTHON_DIR: "C:\\Python39-x64"
@@ -44,6 +44,9 @@ environment:
4444
- PYTHON_DIR: "C:\\Python311-x64"
4545
PYTHON_ARCH: "64"
4646

47+
# Python 3.13
48+
- PYTHON_DIR: "C:\\Python313-x64"
49+
PYTHON_ARCH: "64"
4750

4851
init:
4952
- ps: iex ((new-object net.webclient).DownloadString('https://raw.githubusercontent.com/appveyor/ci/master/scripts/enable-rdp.ps1'))

doc/source/operations/index.rst

Lines changed: 10 additions & 9 deletions
Original file line numberDiff line numberDiff line change
@@ -1,5 +1,5 @@
11
:Author: Jérôme Kieffer
2-
:Date: 12/09/2024
2+
:Date: 28/01/2025
33
:Keywords: Installation procedure
44
:Target: System administrators
55

@@ -22,21 +22,21 @@ Dependencies
2222

2323
PyFAI is a Python library which relies on the scientific stack (numpy, scipy, matplotlib)
2424

25-
* Python: version 3.8 or newer
25+
* Python: version 3.9 or newer
2626
* NumPy: version 1.12 or newer
2727
* SciPy: version 0.18 or newer
2828
* Matplotlib: verson 2.0 or newer
2929
* FabIO: version 0.5 or newer
3030
* h5py: version 2.10 or newer
31-
* silx: version 1.1 or newer (silx 2 for python 3.12)
31+
* silx: version 2 or newer
3232

3333
There are plenty of optional dependencies which will not prevent pyFAI from working
3434
by may impair performances or prevent tools from properly working:
3535

3636

3737
* pyopencl (for GPU computing)
3838
* fftw (for image analysis)
39-
* PyQt5 or PySide2 (for the graphical user interface)
39+
* PyQt5, PyQt6, PySide2 or PySide6 (for the graphical user interface)
4040

4141
Build dependencies:
4242
-------------------
@@ -55,7 +55,7 @@ The following compiler have been successfully tested:
5555

5656
* Linux: `gcc` and `clang` (both support OpenMP)
5757
* Windows: msvc++ (supports OpenMP)
58-
* Apple: clang modified version for mac computer without support for OpenMP, please use OpenCL for parallelization.
58+
* Apple: clang modified version for Apple computers without support for OpenMP, please use OpenCL for parallelization.
5959

6060
.. _cython: http://cython.org
6161

@@ -104,11 +104,12 @@ PyFAI comes with a test suite to ensure all core functionalities are working as
104104
105105
There are few specific options to run_tests.py:
106106

107-
* ``-x``: Disable the needing the GUI (faster)
108-
* ``-c``: Estimates the test-coverage for the project
107+
* ``-x``: Disable all tests relative to the GUI (faster)
108+
* ``-o``: Disable all tests relative to OpenCL (faster)
109+
* ``-c``: Estimates the test-coverage for the project, requires the ``coverage`` package.
109110

110111

111-
**Nota:** to run the test, an internet connection is needed as 20MB of test images need to be download.
112+
**Nota:** to run the test, an internet connection is needed as 160 MB of test images need to be download.
112113
You may have to set the environment variable *http_proxy* and *https_proxy*
113114
according to the networking environment you are in.
114115

@@ -117,7 +118,7 @@ Environment variables
117118

118119
PyFAI can use a certain number of environment variable to modify its default behavior:
119120

120-
* PYFAI_OPENCL: set to "0" to disable the use of OpenCL
121+
* PYFAI_OPENCL: set to "0" to disable the use of OpenCL, like the ``-o`` option
121122
* PYFAI_DATA: path with gui, calibrant, ...
122123
* PYFAI_TESTIMAGES: path wit test images (if absent, they get downloaded from the internet)
123124
* PYFAI_NO_LOGGING: Disable the configuration of any python logger in interactive mode

doc/source/operations/linux.rst

Lines changed: 4 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -1,5 +1,5 @@
11
:Author: Jérôme Kieffer
2-
:Date: 18/01/2024
2+
:Date: 28/01/2025
33
:Keywords: Installation procedure on Linux
44
:Target: System administrators
55

@@ -12,9 +12,9 @@ version is given.
1212
Installation procedure on Debian/Ubuntu
1313
---------------------------------------
1414

15-
PyFAI has been designed and originally developed on Ubuntu 10.04 and debian6.
16-
Now, the pyFAI library is included into debian7, or newer or any recent Ubuntu and
17-
Mint distribution.
15+
PyFAI has been designed and originally developed on Ubuntu and debian-linux.
16+
Now, the pyFAI library is included into debian, Ubuntu and
17+
Mint distribution for example.
1818
To install the package provided by the distribution, use:
1919

2020
.. code-block:: shell

doc/source/operations/macosx.rst

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -1,5 +1,5 @@
11
:Author: Jérôme Kieffer
2-
:Date: 10/10/2023
2+
:Date: 28/01/2025
33
:Keywords: Installation procedure on MacOSX
44
:Target: System administrators
55

@@ -11,7 +11,7 @@ Install Python3:
1111

1212
To install pyFAI on an *Apple* computer you will need a scientific Python3 stack.
1313
MacOSX provides by default Python2.7, you will need to install a recent version
14-
of Python3 (3.8 at least).
14+
of Python3 (3.9 at least).
1515
Those distribution are available as *dmg* images from:
1616
`Python.org <https://www.python.org/downloads/mac-osx/>`_
1717

doc/source/operations/windows.rst

Lines changed: 4 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -1,5 +1,5 @@
11
:Author: Jérôme Kieffer
2-
:Date: 10/10/2023
2+
:Date: 28/01/2025
33
:Keywords: Installation procedure
44
:Target: System administrators under windows
55

@@ -8,7 +8,7 @@ Installation procedure on Windows
88
=================================
99

1010
PyFAI is a Python library. Even if you are only interested in some tool like
11-
pyFAI-calib or pyFAI-integrate, you need to install the complete library (for now).
11+
pyFAI-calib3 or pyFAI-integrate, you need to install the complete library (for now).
1212
This is usually performed in 3 steps:
1313

1414
#. install Python,
@@ -50,7 +50,7 @@ This will install:
5050
* h5py
5151
* silx
5252
* h5py
53-
* PyQt5
53+
* PyQt6
5454

5555

5656
Install pyFAI from sources
@@ -87,6 +87,7 @@ Solutions exist but they all represent a substential amount of work !
8787

8888
Side-by-side error
8989
..................
90+
9091
When starting pyFAI you get a side-by-side error like::
9192

9293
ImportError: DLL load failed: The application has failed to start because its

doc/source/project.rst

Lines changed: 25 additions & 38 deletions
Original file line numberDiff line numberDiff line change
@@ -1,5 +1,5 @@
11
:Author: Jérôme Kieffer
2-
:Date: 16/05/2023
2+
:Date: 28/01/2025
33
:Keywords: Project management description
44
:Target: developers
55

@@ -9,30 +9,30 @@ Project
99
PyFAI is a library to deal with diffraction images for data reduction.
1010
This chapter describes the project from the computer engineering point of view.
1111

12-
PyFAI is an open source project licensed under the MIT license (previously
13-
under GPL) mainly written in Python (3.6 or newer).
12+
PyFAI is an open source project licensed under the MIT license mainly written
13+
in Python (3.9 or newer).
1414
It is managed by the Silx team and is heavily relying on the
15-
Python scientific ecosystem: numpy, scipy and matplotlib.
15+
Python scientific ecosystem: numpy, scipy, h5py and matplotlib.
1616
It provides high performances image treatment thanks to Cython and
17-
OpenCL... but only a C-compiler is needed to build it.
17+
OpenCL... but only a C/C++-compiler is needed to build it.
1818

1919
Programming language
2020
--------------------
2121

2222
PyFAI is a Python project but uses many programming languages:
2323

24-
* 50000 lines of Python (of which 8000 are for the test)
24+
* 130000 lines of Python (of which 12000 are for the test)
2525
* 16000 lines of Cython which are converted into ... C or C++
26-
* 8000 lines of OpenCL kernels
26+
* 12000 lines of OpenCL kernels
2727

2828
The OpenCL code has been tested using:
2929

30-
* Nvidia OpenCL v1.1 and v1.2 on Linux, Windows (GPU device)
31-
* Intel OpenCL v1.2 on Linux and Windows (CPU and ACC (Phi) devices)
32-
* AMD OpenCL v1.2 on Linux and Windows (CPU and GPU device)
30+
* Nvidia OpenCL v1.1+ on Linux, Windows (GPU device)
31+
* Intel OpenCL v1.2+ on Linux and Windows (CPU and ACC (Phi) devices)
32+
* AMD OpenCL v1.2+ on Linux and Windows (CPU and GPU device)
3333
* Apple OpenCL v1.2 on MacOSX (CPU and GPU)
3434
* Beignet OpenCL v1.2 on Linux (GPU device)
35-
* Pocl OpenCL v1.2 on Linux (CPU device)
35+
* Pocl OpenCL v1.2+ on Linux (CPU device)
3636

3737
Repository
3838
----------
@@ -70,6 +70,8 @@ too much spammed. As the mailing list is archived, and can be consulted at:
7070
`http://www.edna-site.org/lurker <http://www.edna-site.org/lurker/list/pyfai.en.html>`_,
7171
you can also check the volume of the list.
7272

73+
You can also ask your question publicly on the ``Discussion`` page of `Github <https://github.com/silx-kit/pyFAI/discussions>`_ (you will need a GitHub account for that).
74+
7375
If you think you are facing a bug, the best is to
7476
`create a new issue on the GitHub page <https://github.com/silx-kit/pyFAI/issues>`_
7577
(you will need a GitHub account for that).
@@ -88,35 +90,20 @@ continue funding development.
8890
Run dependencies
8991
----------------
9092

91-
* Python version 3.6, 3.7, 3.8 or 3.9
93+
* Python version 3.9 to 3.13
9294
* NumPy
9395
* SciPy
9496
* Matplotlib
9597
* FabIO
9698
* h5py
9799
* pyopencl (optional)
98-
* PyQt5 or PySide2 (for the graphical user interface)
100+
* PyQt5/6 or PySide2/6 (for the graphical user interface)
99101
* Silx
100102

101103
Build dependencies
102104
------------------
103105

104-
In addition to the run dependencies, pyFAI needs a C compiler.
105-
106-
There is an issue with MacOS (v10.8 onwards) where the default compiler
107-
(Xcode5 or newer) dropped the support for OpenMP.
108-
On this platform pyFAI will enforce the generation of C-files from Cython sources
109-
(making Cython a build-dependency on MacOS) without support of OpenMP
110-
(options: --no-openmp --force-cython).
111-
On OSX, an alternative is to install a recent version of GCC (>=4.2) and to use
112-
it for compiling pyFAI.
113-
The options to be used then are * --force-cython --openmp*.
114-
115-
Otherwise, C files which are provided with pyFAI sources are directly useable
116-
and Cython is only needed for developing new binary modules.
117-
If you want to generate your own C files, make sure your local Cython version
118-
is recent enough (v0.21 and newer),
119-
otherwise your Cython files will not be translated to C, nor used.
106+
In addition to the run dependencies, pyFAI needs a C compiler & Cython.
120107

121108
Building procedure
122109
------------------
@@ -187,8 +174,9 @@ This software engineering practice consists in merging all developer working cop
187174
to a shared mainline several times a day and build the whole project for multiple
188175
targets.
189176

190-
On Debian 11
191-
............
177+
On Debian
178+
.........
179+
192180
Continuous integration is made by a home-made scripts which checks out the latest release and builds and runs the test every night.
193181
`Nightly builds <http://www.silx.org/pub/debian/binary/>`_ are available for debian8-64 bits. To install them:
194182

@@ -202,22 +190,19 @@ You have to accept non-signed packages because they are automatically built.
202190
In addition some "cloud-based" tools are used to ensure a larger coverage of operating systems/environment.
203191
They rely on a `"local wheelhouse" <http://www.silx.org/pub/wheelhouse/>`_.
204192

205-
Those wheels are optimized for Travis-CI, AppVeyor and ReadTheDocs, using them is not recommended as your Python configuration may differ
193+
Those wheels are optimized for github-actions, AppVeyor and ReadTheDocs, using them is not recommended as your Python configuration may differ
206194
(and those libraries could even crash your system).
207195

208196
Linux
209197
.....
210198

211-
212199
`Github workflows provides continuous integration on Linux <https://github.com/silx-kit/pyFAI/actions>`_,
213-
64 bits computer with Python 3.7 to 3.11. Travis.org is now dead since the service was discontinued.
214-
215-
`Gitlab runners <https://gitlab.esrf.fr/silx/bob/pyfai/-/pipelines>`_ are periodically triggered to build the project and provide *wheels* for all kind of systems.
200+
64 bits computer with Python 3.9 to 3.13 and is also used to build the wheels for the release.
216201

217202
AppVeyor
218203
........
219204

220-
`AppVeyor provides continuous integration on Windows <https://ci.appveyor.com/project/ESRF/pyfai>`_, 64 bits computer with Python 3.8 to 3.10.
205+
`AppVeyor provides continuous integration on Windows <https://ci.appveyor.com/project/ESRF/pyfai>`_, 64 bits computer with Python 3.9 to 3.13.
221206
Successful builds provide installers for pyFAI as *wheels* and *msi*, they are anonymously available as *artifacts*.
222207
Due to the limitation of AppVeyor's build system, those installers have openMP disabled.
223208

@@ -228,13 +213,15 @@ List of contributors in code
228213
229214
git log --pretty='%aN##%s' | grep -v 'Merge pull' | grep -Po '^[^#]+' | sort | uniq -c | sort -rn
230215
231-
As of 01/2021:
216+
As of 01/2025:
232217
* Jérôme Kieffer (ESRF)
233218
* Valentin Valls (ESRF)
219+
* Edgar GUTIERREZ FERNANDEZ (ESRF)
234220
* Frédéric-Emmanuel Picca (Soleil)
235221
* Aurore Deschildre (ESRF)
236222
* Giannis Ashiotis (ESRF)
237223
* Thomas Vincent (ESRF)
224+
* Emily Massahud (ANSTO)
238225
* Dimitrios Karkoulis (ESRF)
239226
* Alexandre Marie (Soleil)
240227
* Jon Wright (ESRF)

doc/source/usage/cookbook/calibration_with_jupyter.ipynb

Lines changed: 66 additions & 68 deletions
Large diffs are not rendered by default.

doc/source/usage/tutorial/AzimuthalFilter.ipynb

Lines changed: 141 additions & 133 deletions
Large diffs are not rendered by default.

doc/source/usage/tutorial/Calibrant/Calibrant.ipynb

Lines changed: 8 additions & 8 deletions
Large diffs are not rendered by default.

0 commit comments

Comments
 (0)