v0.8.0
Changelog
v0.8.0 (2024-01-16)
Contributors to this version: Gabriel Rondeau-Genesse (@RondeauG), Pascal Bourgault (@aulemahal), Juliette Lavoie (@juliettelavoie), Sarah-Claude Bourdeau-Goulet (@sarahclaude), Trevor James Smith (@Zeitsperre), Marco Braun (@vindelico).
Announcements
xscen
now adheres to PEPs 517/518/621 using thesetuptools
andsetuptools-scm
backend for building and packaging. (PR/292).
New features and enhancements
- New function
xscen.indicators.select_inds_for_avail_vars
to filter the indicators that can be calculated with the variables available in axarray.Dataset
. (PR/291). - Replaced aggregation function
climatological_mean()
withclimatological_op()
offering more types of operations to aggregate over climatological periods. (PR/290) - Added the ability to search for simulations that reach a given warming level. (PR/251).
xs.spatial_mean
now accepts theregion="global"
keyword to perform a global average (GH/94, PR/260).xs.spatial_mean
withmethod='xESMF'
will also automatically segmentize polygons (down to a 1° resolution) to ensure a correct average (PR/260).- Added documentation for
require_all_on
insearch_data_catalogs
. (PR/263). xs.save_to_table
andxs.io.to_table
to transform datasets and arrays to DataFrames, but with support for multi-columns, multi-sheets and localized table of content generation.- Better
xs.extract.resample
: support for weighted resampling operations when starting with frequencies coarser than daily and missing timesteps/values handling. (GH/80, GH/93, PR/265). - New argument
attribute_weights
togenerate_weights
to allow for custom weights. (PR/252). xs.io.round_bits
to round floating point variable up to a number of bits, allowing for a better compression. This can be combined with the saving step through argument"bitround"
ofsave_to_netcdf
andsave_to_zarr
. (PR/266).- Added annual global tas timeseries for CMIP6's models CMCC-ESM2 (ssp245, ssp370, ssp585), EC-Earth3-CC (ssp245, ssp585), KACE-1-0-G (ssp245, ssp370, ssp585) and TaiESM1 (ssp245, ssp370). Moved global tas database to a netCDF file. (GH/268, PR/270).
- Implemented support for multiple levels and models in
xs.subset_warming_level
. Better support forDataArray
andDataFrame
inxs.get_warming_level
. (PR/270). - Added the ability to directly provide an ensemble dataset to
xs.ensemble_stats
. (PR/299). - Added support in
xs.ensemble_stats
for the new robustness-related functions available inxclim
. (PR/299). - New function
xs.ensembles.get_partition_input
(PR/289).
Breaking changes
climatological_mean()
has been replaced withclimatological_op()
and will be abandoned in a future version. (PR/290)experiment_weights
argument ingenerate_weights
was renamed tobalance_experiments
. (PR/252).- New argument
attribute_weights
togenerate_weights
to allow for custom weights. (PR/252). - For a sequence of models, the output of
xs.get_warming_level
is now a list. Revert to a dictionary withoutput='selected'
(PR/270). - The global average temperature database is now a netCDF, custom databases must follow the same format (PR/270).
Bug fixes
- Fixed a bug in
xs.search_data_catalogs
when searching for fixed fields and specific experiments/members. (PR/251). - Fixed a bug in the documentation build configuration that prevented stable/latest and tagged documentation builds from resolving on ReadTheDocs. (PR/256).
- Fixed
get_warming_level
to avoid incomplete matches. (PR/269). search_data_catalogs
now eliminates anything that matches any entry inexclusions
. (GH/275, PR/280).- Fixed a bug in
xs.scripting.save_and_update
wherebuild_path_kwargs
was ignored when trying to guess the file format. (PR/282). - Add a warning to
xs.extract._dispatch_historical_to_future
. (GH/286, PR/287). - Modify use_cftime for the calendar conversion in
to_dataset
. (GH/303, PR/289).
Internal changes
- Continued work on adding tests. (PR/251).
- Fixed
pre-commit
'spretty-format-json
hook so that it ignores notebooks. (PR/254). - Fixed the labeler so docs/CI isn't automatically added for contributions by new collaborators. (PR/254).
- Made it so that
tests
are no longer treated as an installable package. (PR/248). - Renamed the pytest marker from
requires_docs
torequires_netcdf
. (PR/248). - Included the documentation in the source distribution, while excluding the NetCDF files. (PR/248).
- Reduced the size of the files in
/docs/notebooks/samples
and changed the notebooks and tests accordingly. (GH/247, PR/248). - Added a new
xscen.testing
module with thedatablock_3d
function previously located in/tests/conftest.py
. (PR/248). - New function
xscen.testing.fake_data
to generate fake data for testing. (PR/248). - xESMF 0.8 Regridder and SpatialAverager argument
out_chunks
is now accepted byxs.regrid_dataset
andxs.spatial_mean
. (PR/260). - Testing, Packaging, and CI adjustments. (PR/274):
xscen
builds now install in atox
environment withconda
-providedESMF
in GitHub Workflows.tox
now offers a method for installing esmpy from a tag/branch (via ESMF_VERSION environment variable).$ make translate
is now called on ReadTheDocs and withintox
.- Linters are now called by order of most common failures first, to speed up the CI.
Manifest.in
is much more specific about what is installed.- Re-adds a dev recipe to the
setup.py
.
- Multiple improvements to the docstrings and type annotations. (PR/282).
pip check
in conda builds in GitHub workflows have been temporarily set to always pass. (PR/288).- The
cookiecutter
template has been updated to the latest commit viacruft
. (PR/292):setup.py
has been mostly hollowed-out, save for thebabel
-related translation function.pyproject.toml
has been added, with most package configurations migrated into it.HISTORY.rst
has been renamed toCHANGES.rst
.actions-version-updater.yml
has been added to automate the versioning of the package.pre-commit
hooks have been updated to the latest versions;check-toml
andtoml-sort
have been added to cleanup thepyproject.toml
file, andcheck-json-schema
has been added to ensure GitHub and ReadTheDocs workflow files are valid.ruff
has been added to the linting tools to replace mostflake8
andpydocstyle
verifications.tox
builds are more pure Python environment/PyPI-friendly.xscen
now usesTrusted Publishing
for TestPyPI and PyPI uploads.
- Linting checks now examine the testing folder, function complexity, and alphabetical order of
__all__
lists. (PR/292). publish_release_notes
now uses better logic for finding and reformatting theCHANGES.rst
file. (PR/292).bump2version
version-bumping utility was replaced bybump-my-version
. (PR/292).- Documentation build checks no longer fail due to broken external links; Notebooks are now nested and numbered. (PR/304).