Skip to content

Commit

Permalink
Merge remote-tracking branch 'upstream/main'
Browse files Browse the repository at this point in the history
  • Loading branch information
kif committed Sep 20, 2023
2 parents 1c5b930 + 1fd17de commit 1210964
Show file tree
Hide file tree
Showing 136 changed files with 5,794 additions and 8,812 deletions.
7 changes: 7 additions & 0 deletions applications/diff_map.desktop
Original file line number Diff line number Diff line change
@@ -0,0 +1,7 @@
[Desktop Entry]
Version=1.0
Terminal=true
Exec=pyFAI-calib2
Name=pyFAI-calib2
Type=Application
Icon=doc/source/img/pyFAI-calib2.png
7 changes: 7 additions & 0 deletions applications/pyFAI-calib2.desktop
Original file line number Diff line number Diff line change
@@ -0,0 +1,7 @@
[Desktop Entry]
Version=1.0
Terminal=true
Exec=pyFAI-calib2
Name=pyFAI-calib2
Type=Application
Icon=doc/source/img/pyFAI-calibrate.png
7 changes: 7 additions & 0 deletions applications/pyFAI-integrate.desktop
Original file line number Diff line number Diff line change
@@ -0,0 +1,7 @@
[Desktop Entry]
Version=1.0
Terminal=true
Exec=diff_map
Name=diff_map
Type=Application
Icon=doc/source/img/pyFAI-diffmap.png
7 changes: 6 additions & 1 deletion bootstrap.py
Original file line number Diff line number Diff line change
Expand Up @@ -184,7 +184,12 @@ def find_executable(target):
# search the executable in pyproject.toml
with open(os.path.join(PROJECT_DIR, "pyproject.toml")) as f:
pyproject = tomli.loads(f.read())
for script, entry_point in list(pyproject.get("console_scripts", {}).items()) + list(pyproject.get("gui_scripts", {}).items()):

scripts = {}
scripts.update(pyproject.get("project", {}).get("scripts", {}))
scripts.update(pyproject.get("project", {}).get("gui-scripts", {}))

for script, entry_point in scripts.items():
if script == target:
print(script, entry_point)
return ("entry_point", target, entry_point)
Expand Down
2 changes: 1 addition & 1 deletion build-deb.sh
Original file line number Diff line number Diff line change
Expand Up @@ -184,7 +184,7 @@ build_deb() {
python3 setup.py debian_src
directory=${project}-${strictversion}
else
python -m build -s
python3 -m build -s
ln -s ${source_project}-${strictversion}.tar.gz dist/${tarname}
directory=${source_project}-${strictversion}
fi
Expand Down
3 changes: 2 additions & 1 deletion ci/requirements_appveyor.txt
Original file line number Diff line number Diff line change
Expand Up @@ -10,5 +10,6 @@ h5py
fabio
scipy
matplotlib
numexpr
numexpr != 2.8.6
silx
psutil
3 changes: 2 additions & 1 deletion ci/requirements_gh.txt
Original file line number Diff line number Diff line change
Expand Up @@ -19,5 +19,6 @@ matplotlib
#mako
#pybind11
#pyopencl
numexpr
numexpr != 2.8.6
silx
psutil
2 changes: 1 addition & 1 deletion ci/requirements_travis.txt
Original file line number Diff line number Diff line change
Expand Up @@ -16,5 +16,5 @@ matplotlib
#mako
#pybind11
#pyopencl
numexpr
numexpr != 2.8.6
silx
28 changes: 26 additions & 2 deletions doc/source/changelog.rst
Original file line number Diff line number Diff line change
@@ -1,11 +1,35 @@
:Author: Jérôme Kieffer
:Date: 16/05/2023
:Date: 06/09/2023
:Keywords: changelog

Change-log of versions
======================

2023.05 dd/mm/2023
2023.09 08/09/2023
------------------
- Bug fix release over 2023.08
- Fix calibrant selection in calib2 (Thanks Valentin)
- Centralized control of Random Number Generator for tests, to make non-regression test more consistent for CI.
- Correct behaviour of dynamic mask (was causing systematic crashes)
- Correct spelling of several messages.
- Compatibility with matplotlib 3.7
- New application icon and launcher under linux
- Updated notebook (addresses API changes)

2023.08 30/08/2023 BUGGY, DO NOT USE !!!
------------------
- Minor release, mostly bug-fixes. 87 commits.
- fix mal-formed headers in 1D ASCII export
- Debian packaging without setup.py (at all)
- Fix cache invalidation issue for polarization in geometry
- More compact (+scrollable) calibrant widget in `Calib2` (Contribution from Valentin Valls)
- Compatibility with PyQt6 and PySide6 bacckends (Contribution from malte-storm)
- Comatibility with elder Matplotlib (<3.2)
- Fix reproducibility issue with no-split sparse matrix multiplication (all 3)
- Lower memory consumption of hexagonal detector instanciation.
- Enforce the usage of the `detector_factory`. `Detector(**config)` stops working.

2023.05 16/05/2023
------------------
- New detector: Jungfrau 8M used at SwissFEL
- new method in `Geometry` to guess the number of bin (and avoid oversampling)
Expand Down
104 changes: 60 additions & 44 deletions doc/source/coverage.rst
Original file line number Diff line number Diff line change
@@ -1,18 +1,18 @@
Test coverage report for pyFAI
==============================

Measured on *pyFAI* version 2023.5.0, 16/05/2023
Measured on *pyFAI* version 2023.9.0, 08/09/2023

.. csv-table:: Test suite coverage
:header: "Name", "Stmts", "Exec", "Cover"
:widths: 35, 8, 8, 8

"__init__.py", "43", "26", "60.5 %"
"__init__.py", "44", "27", "61.4 %"
"_version.py", "63", "47", "74.6 %"
"average.py", "495", "356", "71.9 %"
"azimuthalIntegrator.py", "1756", "1151", "65.5 %"
"azimuthalIntegrator.py", "1737", "1156", "66.6 %"
"blob_detection.py", "506", "191", "37.7 %"
"calibrant.py", "434", "355", "81.8 %"
"calibrant.py", "462", "369", "79.9 %"
"containers.py", "444", "404", "91.0 %"
"control_points.py", "360", "136", "37.8 %"
"diffmap.py", "420", "57", "13.6 %"
Expand All @@ -21,18 +21,18 @@ Measured on *pyFAI* version 2023.5.0, 16/05/2023
"geometryRefinement.py", "572", "291", "50.9 %"
"goniometer.py", "566", "340", "60.1 %"
"grid.py", "36", "15", "41.7 %"
"load_integrators.py", "161", "116", "72.0 %"
"massif.py", "237", "194", "81.9 %"
"load_integrators.py", "162", "117", "72.2 %"
"massif.py", "239", "196", "82.0 %"
"method_registry.py", "247", "213", "86.2 %"
"multi_geometry.py", "162", "133", "82.1 %"
"parallax.py", "249", "211", "84.7 %"
"spline.py", "427", "252", "59.0 %"
"units.py", "109", "102", "93.6 %"
"units.py", "111", "104", "93.7 %"
"worker.py", "484", "289", "59.7 %"
"app/__init__.py", "7", "7", "100.0 %"
"app/average.py", "176", "35", "19.9 %"
"app/benchmark.py", "58", "21", "36.2 %"
"app/calib2.py", "342", "37", "10.8 %"
"app/calib2.py", "366", "37", "10.1 %"
"app/calib.py", "31", "21", "67.7 %"
"app/check_calib.py", "32", "21", "65.6 %"
"app/detector2nexus.py", "88", "20", "22.7 %"
Expand All @@ -50,11 +50,11 @@ Measured on *pyFAI* version 2023.5.0, 16/05/2023
"benchmark/__init__.py", "572", "82", "14.3 %"
"detectors/__init__.py", "24", "24", "100.0 %"
"detectors/_adsc.py", "77", "77", "100.0 %"
"detectors/_common.py", "766", "541", "70.6 %"
"detectors/_common.py", "775", "552", "71.2 %"
"detectors/_dectris.py", "353", "242", "68.6 %"
"detectors/_esrf.py", "96", "80", "83.3 %"
"detectors/_hexagonal.py", "70", "67", "95.7 %"
"detectors/_imxpad.py", "392", "252", "64.3 %"
"detectors/_hexagonal.py", "72", "69", "95.8 %"
"detectors/_imxpad.py", "388", "252", "64.9 %"
"detectors/_non_flat.py", "155", "128", "82.6 %"
"detectors/_others.py", "133", "120", "90.2 %"
"detectors/_psi.py", "187", "110", "58.8 %"
Expand All @@ -67,18 +67,18 @@ Measured on *pyFAI* version 2023.5.0, 16/05/2023
"engines/preproc.py", "109", "78", "71.6 %"
"ext/__init__.py", "3", "3", "100.0 %"
"geometry/__init__.py", "9", "9", "100.0 %"
"geometry/core.py", "1240", "1010", "81.5 %"
"geometry/core.py", "1240", "1018", "82.1 %"
"geometry/cxi.py", "1", "1", "100.0 %"
"geometry/fit2d.py", "114", "103", "90.4 %"
"gui/ApplicationContext.py", "107", "52", "48.6 %"
"gui/CalibrationContext.py", "217", "128", "59.0 %"
"gui/CalibrationContext.py", "224", "132", "58.9 %"
"gui/CalibrationWindow.py", "192", "169", "88.0 %"
"gui/IntegrationDialog.py", "205", "54", "26.3 %"
"gui/__init__.py", "4", "4", "100.0 %"
"gui/cli_calibration.py", "1578", "104", "6.6 %"
"gui/diffmap_widget.py", "370", "63", "17.0 %"
"gui/cli_calibration.py", "1579", "104", "6.6 %"
"gui/diffmap_widget.py", "371", "63", "17.0 %"
"gui/matplotlib.py", "33", "26", "78.8 %"
"gui/mpl_calib.py", "225", "40", "17.8 %"
"gui/mpl_calib.py", "241", "40", "16.6 %"
"gui/mpl_calib_qt.py", "49", "21", "42.9 %"
"gui/peak_picker.py", "300", "108", "36.0 %"
"gui/dialog/Detector3dDialog.py", "173", "36", "20.8 %"
Expand All @@ -93,15 +93,15 @@ Measured on *pyFAI* version 2023.5.0, 16/05/2023
"gui/helper/RingCalibration.py", "306", "47", "15.4 %"
"gui/helper/RingExtractor.py", "238", "35", "14.7 %"
"gui/helper/SynchronizeMaskToolColor.py", "27", "27", "100.0 %"
"gui/helper/SynchronizePlotBackground.py", "27", "27", "100.0 %"
"gui/helper/SynchronizePlotBackground.py", "27", "26", "96.3 %"
"gui/helper/SynchronizeRawView.py", "56", "46", "82.1 %"
"gui/helper/__init__.py", "4", "4", "100.0 %"
"gui/helper/model_transform.py", "113", "16", "14.2 %"
"gui/jupyter/__init__.py", "1", "1", "100.0 %"
"gui/jupyter/_plot.py", "88", "15", "17.0 %"
"gui/jupyter/_plot.py", "91", "15", "16.5 %"
"gui/jupyter/calib.py", "92", "24", "26.1 %"
"gui/model/AbstractModel.py", "35", "30", "85.7 %"
"gui/model/CalibrantModel.py", "15", "14", "93.3 %"
"gui/model/CalibrantModel.py", "19", "17", "89.5 %"
"gui/model/CalibrationModel.py", "44", "42", "95.5 %"
"gui/model/ConstraintModel.py", "60", "21", "35.0 %"
"gui/model/DataModel.py", "15", "14", "93.3 %"
Expand All @@ -115,87 +115,103 @@ Measured on *pyFAI* version 2023.5.0, 16/05/2023
"gui/model/GeometryModel.py", "89", "41", "46.1 %"
"gui/model/ImageModel.py", "80", "43", "53.8 %"
"gui/model/IntegrationSettingsModel.py", "26", "23", "88.5 %"
"gui/model/ListModel.py", "122", "88", "72.1 %"
"gui/model/ListModel.py", "127", "92", "72.4 %"
"gui/model/MarkerModel.py", "42", "33", "78.6 %"
"gui/model/MaskedImageModel.py", "31", "26", "83.9 %"
"gui/model/PeakModel.py", "88", "58", "65.9 %"
"gui/model/PeakSelectionModel.py", "83", "32", "38.6 %"
"gui/model/PeakSelectionModel.py", "85", "34", "40.0 %"
"gui/model/PlotViewModel.py", "64", "62", "96.9 %"
"gui/model/__init__.py", "4", "4", "100.0 %"
"gui/tasks/AbstractCalibrationTask.py", "79", "68", "86.1 %"
"gui/tasks/ExperimentTask.py", "317", "230", "72.6 %"
"gui/tasks/ExperimentTask.py", "322", "232", "72.0 %"
"gui/tasks/GeometryTask.py", "797", "372", "46.7 %"
"gui/tasks/IntegrationTask.py", "772", "300", "38.9 %"
"gui/tasks/MaskTask.py", "220", "142", "64.5 %"
"gui/tasks/PeakPickingTask.py", "1353", "583", "43.1 %"
"gui/tasks/MaskTask.py", "221", "143", "64.7 %"
"gui/tasks/PeakPickingTask.py", "1356", "586", "43.2 %"
"gui/tasks/__init__.py", "4", "4", "100.0 %"
"gui/utils/FilterBuilder.py", "43", "13", "30.2 %"
"gui/test/__init__.py", "53", "36", "67.9 %"
"gui/utils/FilterBuilder.py", "44", "14", "31.8 %"
"gui/utils/ProxyAction.py", "66", "21", "31.8 %"
"gui/utils/__init__.py", "34", "14", "41.2 %"
"gui/utils/colorutils.py", "46", "6", "13.0 %"
"gui/utils/colorutils.py", "47", "6", "12.8 %"
"gui/utils/eventutils.py", "71", "39", "54.9 %"
"gui/utils/imageutils.py", "26", "14", "53.8 %"
"gui/utils/projecturl.py", "20", "19", "95.0 %"
"gui/utils/projecturl.py", "21", "20", "95.2 %"
"gui/utils/timeutils.py", "12", "10", "83.3 %"
"gui/utils/tree.py", "118", "25", "21.2 %"
"gui/utils/units.py", "76", "66", "86.8 %"
"gui/utils/unitutils.py", "56", "8", "14.3 %"
"gui/utils/validators.py", "89", "83", "93.3 %"
"gui/utils/test/__init__.py", "9", "9", "100.0 %"
"gui/widgets/AdvancedComboBox.py", "66", "56", "84.8 %"
"gui/widgets/AdvancedSpinBox.py", "20", "11", "55.0 %"
"gui/widgets/CalibrantPreview.py", "108", "100", "92.6 %"
"gui/widgets/CalibrantSelector.py", "91", "67", "73.6 %"
"gui/widgets/CalibrantPreview.py", "108", "99", "91.7 %"
"gui/widgets/CalibrantSelector2.py", "211", "112", "53.1 %"
"gui/widgets/CalibrantSelector.py", "100", "25", "25.0 %"
"gui/widgets/ChoiceToolButton.py", "71", "43", "60.6 %"
"gui/widgets/ColoredCheckBox.py", "28", "11", "39.3 %"
"gui/widgets/DetectorLabel.py", "118", "70", "59.3 %"
"gui/widgets/DetectorModel.py", "86", "82", "95.3 %"
"gui/widgets/DetectorLabel.py", "122", "74", "60.7 %"
"gui/widgets/DetectorModel.py", "15", "13", "86.7 %"
"gui/widgets/DetectorSelector.py", "55", "15", "27.3 %"
"gui/widgets/FileEdit.py", "155", "58", "37.4 %"
"gui/widgets/FitParamView.py", "309", "127", "41.1 %"
"gui/widgets/FileEdit.py", "157", "60", "38.2 %"
"gui/widgets/FitParamView.py", "310", "128", "41.3 %"
"gui/widgets/GeometryHistoryComboBox.py", "113", "60", "53.1 %"
"gui/widgets/GeometryLabel.py", "37", "30", "81.1 %"
"gui/widgets/GeometryLabel.py", "38", "31", "81.6 %"
"gui/widgets/GeometryTabs.py", "205", "90", "43.9 %"
"gui/widgets/LoadImageToolButton.py", "117", "50", "42.7 %"
"gui/widgets/MethodLabel.py", "93", "49", "52.7 %"
"gui/widgets/MonitorNameEdit.py", "20", "10", "50.0 %"
"gui/widgets/OpenClDeviceLabel.py", "52", "22", "42.3 %"
"gui/widgets/QuantityEdit.py", "150", "96", "64.0 %"
"gui/widgets/QuantityEdit.py", "151", "97", "64.2 %"
"gui/widgets/QuantityLabel.py", "132", "80", "60.6 %"
"gui/widgets/UnitLabel.py", "69", "35", "50.7 %"
"gui/widgets/UnitSelector.py", "84", "81", "96.4 %"
"gui/widgets/WorkerConfigurator.py", "464", "308", "66.4 %"
"gui/widgets/__init__.py", "4", "4", "100.0 %"
"io/__init__.py", "559", "364", "65.1 %"
"gui/widgets/model/AllDetectorItemModel.py", "65", "62", "95.4 %"
"gui/widgets/model/CalibrantFilterProxyModel.py", "34", "23", "67.6 %"
"gui/widgets/model/CalibrantItemModel.py", "41", "35", "85.4 %"
"gui/widgets/model/DetectorFilterProxyModel.py", "26", "25", "96.2 %"
"gui/widgets/model/__init__.py", "4", "4", "100.0 %"
"gui/widgets/test/TestQuantityEdit.py", "71", "69", "97.2 %"
"gui/widgets/test/__init__.py", "16", "14", "87.5 %"
"io/__init__.py", "562", "364", "64.8 %"
"io/_json.py", "15", "12", "80.0 %"
"io/image.py", "24", "20", "83.3 %"
"io/integration_config.py", "138", "124", "89.9 %"
"io/nexus.py", "435", "371", "85.3 %"
"io/ponifile.py", "156", "150", "96.2 %"
"io/ponifile.py", "166", "153", "92.2 %"
"io/sparse_frame.py", "153", "24", "15.7 %"
"io/spots.py", "210", "139", "66.2 %"
"opencl/OCLFullSplit.py", "199", "24", "12.1 %"
"opencl/__init__.py", "32", "25", "78.1 %"
"opencl/azim_csr.py", "531", "390", "73.4 %"
"opencl/azim_hist.py", "471", "326", "69.2 %"
"opencl/azim_lut.py", "330", "243", "73.6 %"
"opencl/azim_csr.py", "531", "395", "74.4 %"
"opencl/azim_hist.py", "471", "331", "70.3 %"
"opencl/azim_lut.py", "330", "244", "73.9 %"
"opencl/ocl_hist_pixelsplit.py", "223", "27", "12.1 %"
"opencl/peak_finder.py", "472", "366", "77.5 %"
"opencl/preproc.py", "208", "148", "71.2 %"
"opencl/sort.py", "282", "223", "79.1 %"
"opencl/test/__init__.py", "23", "23", "100.0 %"
"resources/__init__.py", "31", "20", "64.5 %"
"test/__init__.py", "33", "4", "12.1 %"
"third_party/__init__.py", "1", "1", "100.0 %"
"third_party/transformations.py", "7", "5", "71.4 %"
"third_party/_local/__init__.py", "4", "4", "100.0 %"
"third_party/_local/transformations.py", "713", "77", "10.8 %"
"utils/__init__.py", "129", "78", "60.5 %"
"utils/bayes.py", "100", "67", "67.0 %"
"utils/callback.py", "14", "11", "78.6 %"
"utils/decorators.py", "72", "70", "97.2 %"
"utils/ellipse.py", "74", "71", "95.9 %"
"utils/ellipse.py", "82", "79", "96.3 %"
"utils/grid.py", "87", "64", "73.6 %"
"utils/header_utils.py", "74", "59", "79.7 %"
"utils/logging_utils.py", "43", "41", "95.3 %"
"utils/mask_utils.py", "73", "41", "56.2 %"
"utils/mathutil.py", "451", "314", "69.6 %"
"utils/mathutil.py", "452", "314", "69.5 %"
"utils/multiprocessing.py", "18", "13", "72.2 %"
"utils/orderedset.py", "54", "13", "24.1 %"
"utils/shell.py", "55", "46", "83.6 %"
"utils/stringutil.py", "73", "66", "90.4 %"
"utils/stringutil.py", "74", "67", "90.5 %"

"pyFAI total", "35157", "19527", "55.5 %"
"pyFAI total", "36535", "20016", "54.8 %"
Binary file added doc/source/img/pyFAI-calib2.png
Loading
Sorry, something went wrong. Reload?
Sorry, we cannot display this file.
Sorry, this file is invalid so it cannot be displayed.
Binary file added doc/source/img/pyFAI-calibrate.png
Loading
Sorry, something went wrong. Reload?
Sorry, we cannot display this file.
Sorry, this file is invalid so it cannot be displayed.
Binary file added doc/source/img/pyFAI-diffmap.png
Loading
Sorry, something went wrong. Reload?
Sorry, we cannot display this file.
Sorry, this file is invalid so it cannot be displayed.
Binary file added doc/source/img/pyFAI-integrate.png
Loading
Sorry, something went wrong. Reload?
Sorry, we cannot display this file.
Sorry, this file is invalid so it cannot be displayed.
Loading

0 comments on commit 1210964

Please sign in to comment.