Changelog#
v0.7.0 (2026-06-08)#
Contributors: Pascal Bourgault (@aulemahal), Juliette Lavoie (@juliettelavoie), Trevor James Smith (@Zeitsperre).
Changes#
- Removal of
create_cmap, useget_ipcc_cmap_nameinstead to get string name of matplotlib-registered cmap to use (PR/368). IPCC cmaps are created upon import of
figanos.matplotliband registered to matplotlib.
- Removal of
Fix for
frame=Falseto work withaxforfg.matplotlib.gridmap(PR/389).Pinned PROJ <9.8 to avoid a change that causes issues with cartopy (PR/398, GH/386).
Examples has been collapsed into the gallery; Gallery in documentation has been redesigned to have more descriptive entries (PR/400).
Addressed a small DeprecationWarning emitted by importlib.resources when loading matplotlib colourmaps (PR/404).
Breaking changes#
The minimum version of sphinx is now v8.2+ (PR/404).
Internal changes#
- Updated the cookiecutter-pypackage template to the latest version using cruft (PR/397):
Development dependencies have migrated from optional-dependencies to dependency-groups.
Set privileged token-based GitHub workflows to run within an automation environment.
Updated and synchronized several dependencies.
pre-commit has been replaced by prek.
Makefile now handles some dependency installation logic.
tox.toml has been adjusted to use Makefile.
The make servedocs top-level command now uses sphinx-autobuild to allow for live html editing when modifying documentation source files (PR/400).
Acknowledgements to Ouranos have been added to the README.rst and the documentation landing page (PR/400).
figanos now has guidance documents on acceptable usages of AI and the expected methods of AI usage disclosure. See the documentation for more details (PR/404).
- Updated the cookiecutter template to use the latest commit (PR/404):
Adjusted the permissions for some workflows to address security issues.
Added the new “standard” AI disclosure guidance for code contributions.
Updated the ReadTheDocs configuration to use newer OS and conda images.
Added guidance for maintainers on git commit signing and immutable releases.
Adjusted the source distribution inclusion/exclusion list.
Set bump-my-version to sign tags by default.
v0.6.0 (2026-01-30)#
Contributors: Sarah-Claude Bourdeau-Goulet (@Sarahclaude), Juliette Lavoie (@juliettelavoie), Trevor James Smith (@Zeitsperre).
Changes#
Add possibility to trace the boundary of
gdfmap(PR/332).- Updated cookiecutter template to latest version (PR/362, PR/367):
ruff has been configured to provide more linting checks and black-like formatting.
Removed dependencies and pre-commit hooks for black, isort and blackdocs.
Added CITATION.cff file for better citation metadata.
pyproject.toml is now PEP 639 compliant.
Contributor Covenant agreement is now version 3.0.
Migrate from tox.ini to tox.toml.
Drop python-coveralss for coverallsapp/github-action.
Make
get_var_groupusable externally (PR/365).figanos now supports Python 3.14 (PR/383).
Fixes#
v0.5.0 (2025-05-06)#
Contributors: Juliette Lavoie (@juliettelavoie), Trevor James Smith (@Zeitsperre).
Changes#
figanos now supports Python 3.13 and has dropped support for Python 3.9 (PR/322).
Several base dependencies have been updated to more modern versions (PR/322): * numpy has been updated to >=1.25.0 (no longer pinned below 2.0.0). * pint has been updated to >=0.18.0. * scikit-image has been updated to >=0.21.0. * xarray has been updated to >=2023.11.0.
Fixes#
The fg.utils.get_rotpole function now accepts more general inputs (PR/308).
v0.4.0 (2025-03-10)#
Contributors to this version: Trevor James Smith (@Zeitsperre), Marco Braun (@vindelico), Pascal Bourgault (@aulemahal), Sarah-Claude Bourdeau-Goulet (@Sarahclaude), Éric Dupuis (@coxipi), Juliette Lavoie (@juliettelavoie).
New features and enhancements#
figanos now supports Python 3.12. (PR/210).
Use list or ndarray as levels for colorbar in gridmap and small bug fixes (PR/176).
Fix
NaNissues, extreme values in sizes legend and addededgecolorsinfg.matplotlib.scattermap(PR/184).New function
fg.datafor fetching package data and defined matplotlib style definitions. (PR/211).New argument
enumerate_subplotsfor gridmap, timeseries, hatchmap and scattermap`(:pull:`220).fg.taylordiagramcan now accept datasets with many dimensions (not only taylor_params), provided that they all share the same ref_std (e.g. normalized taylor diagrams) (PR/214).A new optional way to organize points in a
fg.taylordiagramwith colors_key, markers_key : DataArrays with a common dimension value or a common attribute are grouped with the same color/marker (PR/214).Heatmap (
fg.matplotlib.heatmap) now supports row,col arguments in plot_kw, allowing to plot a grid of heatmaps. (GH/208, PR/219).New function
fg.matplotlib.triheatmap(PR/199).Reorganized the documentation and add gallery (GH/278, GH/274, GH/202, PR/279).
Added a new pooch-based mechanism for fetching and caching testing data used in the notebooks (
fg.pitou().fetch()). (PR/279).No-legend option in
hatchmap; useedgecolorandedgecolorsas aliases (PR/195)
Breaking changes#
figanos no longer supports Python 3.8. (PR/210).
figanos now uses a ‘src’ layout for the package. (PR/210).
cartopy has been pinned above v0.23.0 due to a licensing issue. (PR/210).
twine and wheel have been removed from the
devrequirements. (PR/210).fg.taylordiagramreturns a tuple of (fig, floating_ax, legend) instead of only floating_ax. (PR/214).
Internal changes#
- Updated the cookiecutter template to the latest version. (PR/168):
Addresses a handful of misconfigurations in the GitHub Workflows.
Updated ruff to v0.2.0 and black to v24.2.0.
Removed several unnecessary noqa comments from the codebase. (PR/168).
- Updated the cookiecutter template to the latest version. (PR/210):
GitHub Workflows have been updated to point to commits rather than tags.
The dependabot configuration has been updated to run updates on a monthly schedule.
Updated ruff to v0.3.0 and black to v24.4.2.
CHANGES.rst has been renamed to CHANGELOG.rst.
Maintainer-specific documentation has been added to new documentation page releasing.rst.
figanos now has a CODE_OF_CONDUCT.rst file adapting the Contributor Covenant v2.1 conventions. (PR/210).
- Updated the cookiecutter template to the latest version. (PR/246):
Styling conventions now use ruff and numpydoc-validation to ensure code and docstrings are valid.
tox now uses tox-gh to help automate build configurations on GitHub Workflows.
CI configurations have been updated to use hashed commits for PyPI-sourced dependencies.
flake8-alphabetize has been replaced with ruff for some linting checks.
Updated the notebook coding conventions to adapt to changes in xclim-testdata. (PR/246).
Workflows now make better use of caching to speed up the CI testing process. (PR/262).
- Updated the cookiecutter template to the latest version. (PR/273):
Several development dependencies have been updated to their latest versions.
Updated the GitHub Actions in Workflows to their latest versions.
The documentation has been adapted to use the latest testing data fetching mechanism from xclim. (PR/273).
Updated the cookiecutter template to the latest version. Dependencies and GitHub Actions have been updated. (PR/282).
The bump-version.yml GitHub Workflow has been updated to use the Ouranos Helper Bot instead of personal access tokens. (PR/287).
- Updated the cookiecutter template to the latest version. (PR/295):
Added a CodeQL Advanced configuration.
Updated versions of many GitHub Actions and Python dependencies.
Removed coveralls from the CI dependencies.
Added pre-commit hooks for vulture (dead code) and codespell (typos).
Bug fixes#
v0.3.0 (2024-02-16)#
Contributors to this version: Sarah-Claude Bourdeau-Goulet (@Sarahclaude), Pascal Bourgault (@aulemahal), Trevor James Smith (@Zeitsperre), Juliette Lavoie (@juliettelavoie), Gabriel Rondeau-Genesse (@RondeauG).
New features and enhancements#
New function
fg.matplotlib.hatchmap(PR/107).Support for translating figures. Activating a locale through xclim’s
metadata_localesoption will try to use metadata saved by xclim or xscen in this locale and to translate common terms appearing in the figures. figanos currently ships with French translations of those terms. (PR/109, GH/64).New
figanos.Logosclass added to manage and install logos stored in user’s Home configuration directory. Thefiganos.utils.plot_logofunction call signature has changed to support the new system. (GH/115, PR/119).Logo sizing and placement now depends on scikit-image for resizing, and uses
"width"and"height"instead of"zoom". (GH/123, PR/119).Logo plotting now supports both PNG and SVG file types (via cairosvg). (PR/119).
Use small geojson in the notebook. (PR/124).
Figanos now adheres to PEPs 517/518/621 using the flit backend for building and packaging. (PR/135).
New function
fg.partition(PR/134).Add wrapper around
xarray.plot.facetgridfor map functions (fg.gridmap,fg.scattermap,fg.hatchmap). (GH/51, PR/136).figanos now uses Semantic Versioning v2.0. (PR/143).
Add wrapper around
xarray.plot.facetgridfor multiple functions (fg.gridmap,fg.scattermap,fg.hatchmap,fg.timeseries). (GH/51, PR/136).
Bug fixes#
Fixed packaging issue with the Manifest.in not bundling a YAML file loaded on import. (PR/118).
Internal changes#
Clean up of the dependencies to remove the notebooks deps from the core deps.
figanos now uses Trusted Publishing to publish the package on PyPI and TestPyPI. (PR/113).
The official Ouranos logos have been removed from the repository. They can now be installed if required via the
figanos.Logos.install_ouranos_logosclass method. (GH/115, PR/119).- Documentation adjustments. (PR/121):
Added a few pre-commit hooks for cleaning up notebooks and ensuring that docstrings are properly formatted.
Cleaned up the docstrings of a few functions, added some module-level strings, minor typo fixes.
Set nbsphinx in the documentation to always run (with th exception of one complex cell).
The environment-dev.yml Python version is set to 3.11 to reduce the dependency solver complexity.
- The cookiecutter template has been updated to the latest commits via cruft. (PR/138, PR/143):
Manifest.in, requirements_dev.txt, requirements_docs.txt and setup.py have been removed.
pyproject.toml has been added, with most package configurations migrated into it.
HISTORY.rst has been renamed to CHANGES.rst.
dependabot has been added to the GitHub workflows to manage workflow and package dependency pins.
bump-version.yml has been added to automate patch versioning of the package.
pre-commit hooks have been updated to the latest versions; check-toml and toml-sort have been added to cleanup the pyproject.toml file.
ruff has been added to the linting tools to replace most flake8 and pydocstyle verifications.
GitHub workflows now run proper pytest suites for conda-based testing.
figanos now uses the actions/labeler action to automatically label pull requests based on their content.
GitHub workflows are now using the step-security/harden-runner action to harden the runner environment.
The OpenSSF scorecard.yml workflow has been added to the GitHub workflows to evaluate package security.
Bug fixes#
v0.2.0 (2023-06-19)#
Contributors to this version: Sarah-Claude Bourdeau-Goulet (@Sarahclaude), Trevor James Smith (@Zeitsperre), Juliette Lavoie (@juliettelavoie).
New features and enhancements#
Bug fixes#
Fixed issue in environment.yml that was installing two versions of cartopy. (PR/97).
Internal changes#
- Updated autogenerated boilerplate (Ouranosinc/cookiecutter-pypackage) via cruft. (PR/100):
General updates to pre-commit hooks, development dependencies, documentation.
Added configurations for Pull Request and Issues templates, Zenodo.
Documentation now makes use of sphinx directives for usernames, issues, and pull request hyperlinks (via sphinx.ext.extlinks).
GitHub Workflows have been added for automated testing, and publishing.
Some sphinx extensions have been added/enabled (sphinx-codeautolink, sphinx-copybutton).
Automated testing with tox now updated to use v4.0+ conventions.
Removed all references to travis.ci.
v0.1.0 (2023-06-08)#
Contributors to this version: Sarah-Claude Bourdeau-Goulet (@Sarahclaude), Alexis Beaupré-Laperrière (@Beauprel), Trevor James Smith (@Zeitsperre), Juliette Lavoie (@juliettelavoie).
First release on PyPI.