Changelog
---------

v6.0 (Mar 2025)
   * Set delay for tooltips from 1 s to 0.5 s.
   * Use exclusively `add_*` for widget creation.
   * Remove delay in `ncvmap`.
   * Add `analyse_netcdf_xarray`.
   * New utility functions `xzip_dim_name_length`, `get_standard_name`,
     and `get_units` used in `ncvmethods`.
   * Add xarray support for reading files.
   * Use f-strings for most string operations.
   * New widgets `add_button` and `add_label`.
   * Increased number of digits in coordinate formatters.

v5.1 (Dec 2024)
   * Use ncvue-specific theme with customtkinter.
   * Update images for new matplotlib cmaps.
   * Bugfix: file not updated in all tabs when opened with file dialog
     in one tab with CustomTkinter.
   * Bugfix: dimensions not shown when file opened with file dialog.
   * Updated documentation.

v5.0 (Dec 2024)
   * Use CustomTkinter if installed.
   * Add Quit button.
   * Correct datetime formatting in coordinate printing.
   * Move from token to trusted publisher on PyPI.

v4.4.3 (Jul 2024)
    * Use `draw_idle` instead of `draw` in map update method for
      faster animation.
    * Change formatting of file string for multiple files.

v4.4.2 (Jul 2024)
    * Use `matplotlib.colormaps[name]` instead of
      `matplotlib.colormaps.get_cmap(name)` to work with
      matplotlib >= v3.9.0.

v4.4.1 (Feb 2024)
    * Move themes and images back to src/ncvue.

v4.4 (Feb 2024)
    * Added borders, rivers, and lakes checkbuttons in map.
    * Bugfix: formatted string used wrong data type in `analyse_netcdf`.
    * Move themes and images directories from src/ncvue to src directory.

v4.3 (Jan 2024)
    * Added conda and continuous integration badges.
    * Allow multiple netcdf files.
    * Squeeze output in `get_slice_miss` only if more than 1 dimension.

v4.2 (Jan 2024)
    * Updated versions of github actions.
    * Changed to sphinx_book_theme for documentation.
    * Use local copy of `tooltip.py` from idle.
    * Allow groups in netcdf files.
    * Made ``ncvue`` work with newer matplotlib versions, updating
      colormaps and using matplotlib.pyplot.style 'seaborn-v0_8-dark'.
    * Made ``ncvue`` work with newer Tcl/Tk versions (ttk.Style.theme_use).

v4.1.2 (Jun 2022)
    * Made ``ncvue`` a gui_script entry_point, so it can be called by
      `python -m ncvue`.
    * Bumped minimum Python version to 3.7 because of proj4.

v4.1.1 (Nov 2021)
    * Added package_data to `setup.cfg`.

v4.1 (Nov 2021)
    * Add final routines `add_cyclic` and `has_cyclic` committed to cartopy
      v0.20.1.
    * Added `ncvue` to conda-forge.
    * Added `scripts` in [options] section in `setup.cfg`.

v4.0 (Oct 2021)
    * Move to new pip structure using `pyproject.toml`.
    * Versioning with `setuptools_scm`.
    * Move to src directory structure.
    * Move to Github actions.

v3.8 (Oct 2021)
    * Work with files without an unlimited (time) dimension.
    * Removed bug in detection of lon/lat.
    * Identify lon/lat also by axis attributes x/y or X/Y.
    * Do not default the unlimited dimension to 'all' if no lon/lat were found.

v3.7 (Sep 2021)
    * Use Azure theme v2.0 on Linux and Sun Valley theme v1.0 on Windows from
      rdbende (https://github.com/rdbende).
    * Does not provide standalone package (no installer) on macOS with Apple
      Silicon (M1) chip anymore (no paid Apple Developer ID).

v3.6 (Jun 2021)
    * Separate variables and dimensions by space again but deal with space in
      variable names.
    * Use cx_Freeze to make standalone apps.
    * Font size 13 on Windows in plot panel.

v3.5.1 (Jun 2021)
    * Set labelling of second y-axis to the right explicitly, which needs to be
      done with newer Matplotlib versions.

v3.5 (Jun 2021)
    * Uses different themes on different operating systems.
    * New add_cyclic function used as submitted to Cartopy.

v3.4 (May 2021)
    * Works in ipython and jupyter notebooks. Adapted documentation accordingly.
    * Added license to documentation.
    * Change separator character to unit separator (ASCII 31).
    * Print correct coordinates and values on plotting window.
    * Set time axis to numpy's datetime64 format.
    * Moved from Matplotlib style `seaborn-darkgrid` to `seaborn-dark`.
    * Grid is drawn by hand in contour plot. Set automatic grid to False:
      `self.axes.grid(False)`.

v3.3.1 (Feb 2021)
    * Better installation instructions for all platforms.
    * Dropped claim of Python 2 support, which was not given.

v3.3 (Feb 2021)
    * Main window disappears if closed even if called from within Python.
    * Added Windows Installer for ncvue standalone program.
    * Added standalone app for macOS.

v3.2 (Jan 2021)
    * Added 'Open File' button to switch between files.
    * Separated Tk() and Toplevel() to communicate via Tk() between windows.
    * Externalise analysis of netcdf file for open file button.
    * Allow finding images path in standalone applications using pyinstaller.

v3.1 (Jan 2021)
    * Include `ncvue/images/*.png` in PyPI wheel.

v3.0 (Jan 2021)
    * Moved from ReadTheDocs to Github Pages for documentation.
    * Added tooltips to all selectors, entries, menus.
    * Variable names are now separated by SEPCHAR=chr(6) because netcdf variable
      names can have spaces, parentheses, brackets, etc.
    * Map panel is only chosen first if either lon or lat have more than one
      grid cell.
    * Central longitude is now calculated in 0-360 range but set in -180 to 180
      range. Seems to be more stable for grids that are missing for example the
      southern hemisphere.
    * Catch a few errors if variable is for example a simple string (e.g.
      vegetation type, basin name or similar).

v2.0 (Jan 2021)
    * Added Map panel.
    * Assure 2-digit month and day and 4 digit year in time unit.
    * Added return on numeric keyboard to key bindings.
    * Changed layout so that dimensions are below variable selection spinboxes.
    * Transpose array by default in Contour panel so that first dimension (time)
      is on x-axis (col) because contourf/pcolormesh use (row,col).
    * Common arithmetic operations on axes: mean, std, min, max, ptp, sum,
      median, var.
    * General get_slice function for x, y, y2, and z.
    * Only activate valid dimensions for chosen variable, disable others.
    * Axis labels are now the long_name attribute then the standard_name
      attribute and only if both are missing the variable name.

v1.4 (Dec 2020)
    * Colorbar menu with images of colorbars.
    * Use unlimited dimension instead of first dimension in Scatter and Contour
      panels as default for 'all'.
    * Use slice function rather than numpy.take to extract slices of arrays,
      i.e. reads only the current slice from disk.
    * Enhanced documentation with automatic API generation.

v1.3 (Dec 2020)
    * Use zmin/zmax to fix colorbar for different dimensions in Contour panel.
    * Optional grid lines in Contour panel.
    * Possibility to invert x-axis in Scatter/Line panel.
    * Rename Scatter to Scatter/Line.
    * Use build instead of cibuildwheel to make pure Python wheels.

v1.2 (Dec 2020)
    * Put common methods in ncvmethods (first arg is self).
    * Make lists of labels, spinboxes and values of dimensions rather than
      exhaustive lists of if/elif statements.

v1.1 (Dec 2020)
    * Modularised ncvue to have utilities and different panels in individual
      files.
    * Open new window without helper class ncvWin to avoid circular import when
      modularised.

v1.0 (Nov 2020)
    * Initial release on Github.
    * Scatter and Contour plot panels.
