===================
This is a minor release. Follow the following links for details on all
the `bugs fixed
<https://github.com/hyperspy/hyperspy/issues?q=label%3A"type%3A+bug"+is%3Aclosed+milestone%3Av1.3>`__,
`feature
<https://github.com/hyperspy/hyperspy/issues?q=is%3Aclosed+milestone%3Av1.3+label%3A"type%3A+enhancement">`__
and `documentation
<https://github.com/hyperspy/hyperspy/issues?utf8=%E2%9C%93&q=is%3Aclosed%20milestone%3Av1.3%20label%3A%22affects%3A%20documentation%22%20>`__ enhancements,
and `new features
<https://github.com/hyperspy/hyperspy/issues?q=is%3Aclosed+milestone%3Av1.3+label%3A"type%3A+New+feature">`__.
NEW
---
* :py:meth:`~.api.signals.BaseSignal.rebin` supports upscaling and rebinning to
arbitrary sizes through linear interpolation. See :ref:`rebin-label`. It also runs faster if `numba <http://numba.pydata.org/>`__ is installed.
* :py:attr:`~.axes.AxesManager.signal_extent` and :py:attr:`~.axes.AxesManager.navigation_extent` properties to easily get the extent of each space.
* New IPywidgets Graphical User Interface (GUI) elements for the `Jupyter Notebook <http://jupyter.org>`__.
See the new `hyperspy_gui_ipywidgets <https://github.com/hyperspy/hyperspy_gui_ipywidgets>`__ package.
It is not installed by default, see :ref:`install-label` for details.
* All the :ref:`roi-label` now have a ``gui`` method to display a GUI if
at least one of HyperSpy's GUI packgages are installed.
Enhancements
------------
* Creating many markers is now much faster.
* New "Stage" metadata node. See :ref:`metadata_structure` for details.
* The Brucker file reader now supports the new version of the format. See :external+rsciio:ref:`bruker-format`.
* HyperSpy is now compatible with all matplotlib backends, including the nbagg which is
particularly convenient for interactive data analysis in the
`Jupyter Notebook <http://jupyter.org>`__ in combination with the new
`hyperspy_gui_ipywidgets <https://github.com/hyperspy/hyperspy_gui_ipywidgets>`__ package.
See :ref:`importing_hyperspy-label`.
* The ``vmin`` and ``vmax`` arguments of the
:py:func:`~.api.plot.plot_images` function now accept lists to enable
setting these parameters for each plot individually.
* The :py:meth:`~.api.signals.BaseSignal.plot_decomposition_results` and
:py:meth:`~.api.signals.BaseSignal.plot_bss_results` methods now makes a better
guess of the number of navigators (if any) required to visualise the
components. (Previously they were always plotting four figures by default.)
* All functions that take a signal range can now take a :py:class:`~.roi.SpanROI`.
* The following ROIs can now be used for indexing or slicing (see :ref:`here <roi-slice-label>` for details):
* :py:class:`~.api.roi.Point1DROI`
* :py:class:`~.api.roi.Point2DROI`
* :py:class:`~.api.roi.SpanROI`
* :py:class:`~.api.roi.RectangularROI`
API changes
-----------
* Permanent markers (if any) are now displayed when plotting by default.
* HyperSpy no longer depends on traitsui (fixing many installation issues) and
ipywidgets as the GUI elements based on these packages have now been splitted
into separate packages and are not installed by default.
* The following methods now raise a ``ValueError`` when not providing the
number of components if ``output_dimension`` was not specified when
performing a decomposition. (Previously they would plot as many figures
as available components, usually resulting in memory saturation):
* :py:meth:`~.api.signals.BaseSignal.plot_decomposition_results`.
* :py:meth:`~.api.signals.BaseSignal.plot_decomposition_factors`.
* The default extension when saving to HDF5 following HyperSpy's specification
is now ``hspy`` instead of ``hdf5``. See :external+rsciio:ref:`hspy-format`.
* The following methods are deprecated and will be removed in HyperSpy 2.0
* ``.axes.AxesManager.show``. Use :py:meth:`~.axes.AxesManager.gui`
instead.
* All ``notebook_interaction`` method. Use the equivalent ``gui`` method
instead.
* ``hyperspy.api.signals.Signal1D.integrate_in_range``.
Use :py:meth:`~.api.signals.BaseSignal.integrate1D` instead.
* The following items have been removed from
:ref:`preferences <configuring-hyperspy-label>`:
* ``General.default_export_format``
* ``General.lazy``
* ``Model.default_fitter``
* ``Machine_learning.multiple_files``
* ``Machine_learning.same_window``
* ``Plot.default_style_to_compare_spectra``
* ``Plot.plot_on_load``
* ``Plot.pylab_inline``
* ``EELS.fine_structure_width``
* ``EELS.fine_structure_active``
* ``EELS.fine_structure_smoothing``
* ``EELS.synchronize_cl_with_ll``
* ``EELS.preedge_safe_window_width``
* ``EELS.min_distance_between_edges_for_fine_structure``
* New ``Preferences.GUIs`` section to enable/disable the installed GUI toolkits.
For developers
--------------
* In addition to adding ipywidgets GUI elements, the traitsui GUI elements have
been splitted into a separate package. See the new
`hyperspy_gui_traitsui <https://github.com/hyperspy/hyperspy_gui_traitsui>`__
package.
* The new ``hyperspy.ui_registry`` enables easy connection of external
GUI elements to HyperSpy. This is the mechanism used to split the traitsui
and ipywidgets GUI elements.
.. _changes_1.2: