From 71729f0bdcacdd475abf2d5b385bf8d3902eb44d Mon Sep 17 00:00:00 2001 From: Jerome Kieffer Date: Fri, 26 Oct 2018 11:46:57 +0200 Subject: [PATCH] Update doc for release --- README.rst | 2 +- doc/source/changelog.rst | 23 ++++++- doc/source/coverage.rst | 145 ++++++++++++++++++++++++++++----------- 3 files changed, 127 insertions(+), 43 deletions(-) diff --git a/README.rst b/README.rst index 3672e27c0..23bb2849c 100644 --- a/README.rst +++ b/README.rst @@ -118,7 +118,7 @@ Documentation can be build using this command and Sphinx (installed on your comp Dependencies ------------ -Python 2.7, 3.4, 3.5 and 3.6 are well tested. +Python 2.7, 3.4, 3.5, 3.6 and 3.7 are well tested. Python 2.6, 3.2 and 3.3 are no more supported since pyFAI 0.12 For full functionality of pyFAI the following modules need to be installed. diff --git a/doc/source/changelog.rst b/doc/source/changelog.rst index 41cc7cb11..a551bbef1 100644 --- a/doc/source/changelog.rst +++ b/doc/source/changelog.rst @@ -1,14 +1,33 @@ :Author: Jérôme Kieffer -:Date: 01/02/2018 +:Date: 26/10/2018 :Keywords: changelog ChangeLog of Versions ===================== +0.16.0: 26/10/2018 +------------------ +* Almost 800 commits since 0.15 ! +* Huge improvements on the graphical application for calibration +* New detector definition (with manufacturers) +* Improved tests: the GUI is now tested +* Preparation for changing all rebinning engines (see variance tutorials) +* Azimuthal integrators (and most other objects) are now serializable with Pickle +* New distortion correction using the SparseBuilder C++ code +* New PONI-file format (detector definition changed) +* Isocontour is now provided by *silx* +* Peak-picker clean up (better peak selection near gaps) +* new Goniometer refinement with enhanced rotation using Euler angles +* Updated documentation: new cookbooks and tutorials about: + - The use of the calibration application (cookbook) + - log-scale integration of SAXS data (notebook) + - Variance propagation (notebook) + + 0.15.0: 01/02/2018 ------------------ * 150 commits since last revision -* New tutorials on image inpainting, sensor thickness correction, ... +* New tutorials on image inpainting, sensor thickness correction, ... * Improve scripts * Improve the new calibration GUI (pyFAI-calib2) * Use scipy physical constants instead of hard-coded values diff --git a/doc/source/coverage.rst b/doc/source/coverage.rst index b0441e8be..f94a0c4c9 100644 --- a/doc/source/coverage.rst +++ b/doc/source/coverage.rst @@ -1,73 +1,138 @@ Test coverage report for pyFAI ============================== -Measured on *pyFAI* version 0.15.0, 30/01/2018 +Measured on *pyFAI* version 0.16.0, 26/10/2018 .. csv-table:: Test suite coverage :header: "Name", "Stmts", "Exec", "Cover" :widths: 35, 8, 8, 8 - "__init__.py", "37", "21", "56.8 %" + "__init__.py", "43", "24", "55.8 %" "_version.py", "42", "35", "83.3 %" "average.py", "531", "392", "73.8 %" - "azimuthalIntegrator.py", "1408", "1080", "76.7 %" - "blob_detection.py", "504", "194", "38.5 %" - "calibrant.py", "367", "288", "78.5 %" - "calibration.py", "1528", "107", "7.0 %" - "containers.py", "109", "105", "96.3 %" - "control_points.py", "346", "57", "16.5 %" - "detectors.py", "1595", "1146", "71.8 %" + "azimuthalIntegrator.py", "1460", "1077", "73.8 %" + "blob_detection.py", "507", "192", "37.9 %" + "calibrant.py", "407", "326", "80.1 %" + "containers.py", "124", "114", "91.9 %" + "control_points.py", "346", "120", "34.7 %" "diffmap.py", "321", "44", "13.7 %" "directories.py", "34", "21", "61.8 %" - "distortion.py", "512", "164", "32.0 %" - "geometry.py", "1043", "837", "80.2 %" - "geometryRefinement.py", "520", "210", "40.4 %" - "goniometer.py", "395", "155", "39.2 %" - "integrate_widget.py", "467", "268", "57.4 %" - "io.py", "554", "309", "55.8 %" - "massif.py", "199", "131", "65.8 %" + "distortion.py", "534", "164", "30.7 %" + "geometry.py", "1099", "888", "80.8 %" + "geometryRefinement.py", "521", "210", "40.3 %" + "goniometer.py", "442", "168", "38.0 %" + "grid.py", "36", "15", "41.7 %" + "io.py", "565", "321", "56.8 %" + "massif.py", "217", "176", "81.1 %" "multi_geometry.py", "139", "100", "71.9 %" - "peak_picker.py", "768", "201", "26.2 %" "preproc.py", "96", "75", "78.1 %" - "spline.py", "407", "188", "46.2 %" + "spline.py", "426", "251", "58.9 %" "units.py", "83", "81", "97.6 %" - "worker.py", "363", "197", "54.3 %" + "worker.py", "392", "256", "65.3 %" "app/__init__.py", "0", "0", "0.0 %" "app/average.py", "175", "36", "20.6 %" - "app/benchmark.py", "48", "15", "31.2 %" + "app/benchmark.py", "51", "18", "35.3 %" "app/calib.py", "27", "18", "66.7 %" - "app/check_calib.py", "27", "18", "66.7 %" + "app/calib2.py", "311", "32", "10.3 %" + "app/check_calib.py", "28", "19", "67.9 %" "app/detector2nexus.py", "84", "18", "21.4 %" "app/diff_map.py", "30", "15", "50.0 %" "app/diff_tomo.py", "106", "24", "22.6 %" "app/drawmask.py", "107", "31", "29.0 %" - "app/eiger_mask.py", "53", "21", "39.6 %" - "app/integrate.py", "139", "75", "54.0 %" - "app/mx_calibrate.py", "25", "15", "60.0 %" + "app/eiger_mask.py", "54", "21", "38.9 %" + "app/integrate.py", "138", "77", "55.8 %" + "app/mx_calibrate.py", "28", "18", "64.3 %" "app/recalib.py", "29", "18", "62.1 %" "app/saxs.py", "82", "21", "25.6 %" "app/waxs.py", "91", "21", "23.1 %" - "benchmark/__init__.py", "542", "81", "14.9 %" + "benchmark/__init__.py", "539", "79", "14.7 %" + "detectors/__init__.py", "20", "20", "100.0 %" + "detectors/_adsc.py", "78", "78", "100.0 %" + "detectors/_common.py", "649", "433", "66.7 %" + "detectors/_dectris.py", "302", "187", "61.9 %" + "detectors/_esrf.py", "97", "80", "82.5 %" + "detectors/_imxpad.py", "370", "236", "63.8 %" + "detectors/_others.py", "253", "220", "87.0 %" + "detectors/_rayonix.py", "261", "226", "86.6 %" "ext/__init__.py", "0", "0", "0.0 %" "gui/__init__.py", "4", "4", "100.0 %" - "gui/matplotlib.py", "24", "17", "70.8 %" - "gui/qt.py", "100", "36", "36.0 %" - "gui/utils.py", "34", "14", "41.2 %" - "opencl/__init__.py", "13", "13", "100.0 %" - "opencl/azim_csr.py", "202", "159", "78.7 %" + "gui/cli_calibration.py", "1529", "101", "6.6 %" + "gui/diffmap_widget.py", "351", "61", "17.4 %" + "gui/integrate_widget.py", "477", "274", "57.4 %" + "gui/jupyter.py", "85", "14", "16.5 %" + "gui/matplotlib.py", "33", "26", "78.8 %" + "gui/peak_picker.py", "439", "95", "21.6 %" + "gui/calibration/AbstractCalibrationTask.py", "67", "58", "86.6 %" + "gui/calibration/CalibrationContext.py", "211", "106", "50.2 %" + "gui/calibration/CalibrationWindow.py", "184", "168", "91.3 %" + "gui/calibration/DetectorSelectorDrop.py", "375", "43", "11.5 %" + "gui/calibration/ExperimentTask.py", "328", "207", "63.1 %" + "gui/calibration/GeometryTask.py", "591", "291", "49.2 %" + "gui/calibration/IntegrationTask.py", "607", "252", "41.5 %" + "gui/calibration/MaskTask.py", "187", "133", "71.1 %" + "gui/calibration/PeakPickingTask.py", "767", "359", "46.8 %" + "gui/calibration/RingCalibration.py", "189", "33", "17.5 %" + "gui/calibration/RingExtractor.py", "121", "17", "14.0 %" + "gui/calibration/__init__.py", "4", "4", "100.0 %" + "gui/calibration/utils.py", "127", "57", "44.9 %" + "gui/calibration/helper/MarkerManager.py", "209", "66", "31.6 %" + "gui/calibration/helper/SynchronizeRawView.py", "39", "37", "94.9 %" + "gui/calibration/helper/__init__.py", "4", "4", "100.0 %" + "gui/calibration/model/AbstractModel.py", "25", "17", "68.0 %" + "gui/calibration/model/CalibrantModel.py", "16", "15", "93.8 %" + "gui/calibration/model/CalibrationModel.py", "41", "39", "95.1 %" + "gui/calibration/model/ConstraintModel.py", "28", "17", "60.7 %" + "gui/calibration/model/DataModel.py", "16", "15", "93.8 %" + "gui/calibration/model/DataModelAdaptor.py", "28", "13", "46.4 %" + "gui/calibration/model/DetectorModel.py", "16", "15", "93.8 %" + "gui/calibration/model/ExperimentSettingsModel.py", "61", "59", "96.7 %" + "gui/calibration/model/GeometryConstraintsModel.py", "52", "38", "73.1 %" + "gui/calibration/model/GeometryModel.py", "63", "39", "61.9 %" + "gui/calibration/model/IntegrationSettingsModel.py", "27", "24", "88.9 %" + "gui/calibration/model/MarkerModel.py", "43", "34", "79.1 %" + "gui/calibration/model/PeakModel.py", "43", "18", "41.9 %" + "gui/calibration/model/PeakSelectionModel.py", "41", "23", "56.1 %" + "gui/calibration/model/PlotViewModel.py", "16", "16", "100.0 %" + "gui/calibration/model/__init__.py", "4", "4", "100.0 %" + "gui/utils/FilterBuilder.py", "44", "14", "31.8 %" + "gui/utils/ProxyAction.py", "67", "22", "32.8 %" + "gui/utils/__init__.py", "34", "14", "41.2 %" + "gui/utils/eventutils.py", "56", "33", "58.9 %" + "gui/utils/imageutils.py", "16", "13", "81.2 %" + "gui/utils/projecturl.py", "20", "19", "95.0 %" + "gui/utils/timeutils.py", "13", "11", "84.6 %" + "gui/utils/tree.py", "116", "25", "21.6 %" + "gui/utils/units.py", "61", "52", "85.2 %" + "gui/utils/validators.py", "61", "39", "63.9 %" + "gui/widgets/CalibrantPreview.py", "115", "101", "87.8 %" + "gui/widgets/CalibrantSelector.py", "92", "68", "73.9 %" + "gui/widgets/DetectorLabel.py", "62", "48", "77.4 %" + "gui/widgets/DetectorManufacturer.py", "58", "14", "24.1 %" + "gui/widgets/DetectorModel.py", "76", "17", "22.4 %" + "gui/widgets/DetectorSelector.py", "56", "16", "28.6 %" + "gui/widgets/ElidedLabel.py", "55", "40", "72.7 %" + "gui/widgets/FileEdit.py", "63", "38", "60.3 %" + "gui/widgets/QuantityEdit.py", "122", "80", "65.6 %" + "gui/widgets/QuantityLabel.py", "132", "80", "60.6 %" + "gui/widgets/UnitLabel.py", "69", "35", "50.7 %" + "gui/widgets/UnitSelector.py", "75", "69", "92.0 %" + "gui/widgets/__init__.py", "4", "4", "100.0 %" + "opencl/OCLFullSplit.py", "199", "24", "12.1 %" + "opencl/__init__.py", "21", "18", "85.7 %" + "opencl/azim_csr.py", "213", "167", "78.4 %" "opencl/azim_hist.py", "270", "192", "71.1 %" - "opencl/azim_lut.py", "174", "141", "81.0 %" - "opencl/common.py", "283", "200", "70.7 %" - "opencl/preproc.py", "192", "137", "71.4 %" - "opencl/processing.py", "131", "107", "81.7 %" - "opencl/sort.py", "259", "207", "79.9 %" - "opencl/utils.py", "32", "21", "65.6 %" - "utils/__init__.py", "124", "84", "67.7 %" + "opencl/azim_lut.py", "184", "147", "79.9 %" + "opencl/ocl_hist_pixelsplit.py", "223", "26", "11.7 %" + "opencl/preproc.py", "194", "139", "71.6 %" + "opencl/sort.py", "286", "222", "77.6 %" + "resources/__init__.py", "31", "20", "64.5 %" + "utils/__init__.py", "130", "80", "61.5 %" "utils/bayes.py", "93", "60", "64.5 %" "utils/decorators.py", "59", "44", "74.6 %" "utils/ellipse.py", "40", "37", "92.5 %" - "utils/mathutil.py", "365", "263", "72.1 %" - "utils/shell.py", "43", "37", "86.0 %" + "utils/mathutil.py", "367", "259", "70.6 %" + "utils/orderedset.py", "54", "13", "24.1 %" + "utils/shell.py", "43", "38", "88.4 %" "utils/stringutil.py", "24", "23", "95.8 %" - "pyFAI total", "16399", "8629", "52.6 %" + "pyFAI total", "23621", "12153", "51.4 %"