# Changelog

[Full Changelog](https://github.com/intake/intake-esm/compare/v2025.2.3...v2025.7.9)

## v2025.7.9

### New features added

- Support Python313, add setuptools to requirements by @Zeitsperre in https://github.com/intake/intake-esm/pull/707
- Load with polars by @charles-turner-1 in https://github.com/intake/intake-esm/pull/709
- Add interactive view of catalog by @charles-turner-1 in https://github.com/intake/intake-esm/pull/723

### Bugs fixed

- Fixed bug where pyarrow conversions were causing string accessor to fail in search by @charles-turner-1 in https://github.com/intake/intake-esm/pull/718

### Maintenance and upkeep improvements

- Update default argument for decode_timedelta by @charles-turner-1 in https://github.com/intake/intake-esm/pull/706
- 697- Fix segfault by @charles-turner-1 in https://github.com/intake/intake-esm/pull/712
- Fix broken `require_all_on` example in docs by @charles-turner-1 in https://github.com/intake/intake-esm/pull/720
- Improve test performance by @charles-turner-1 in https://github.com/intake/intake-esm/pull/719

### Other merged PRs

- Bump codecov/codecov-action from 5.3.1 to 5.4.0 in the actions group by @dependabot in https://github.com/intake/intake-esm/pull/703
- [pre-commit.ci] pre-commit autoupdate by @pre-commit-ci in https://github.com/intake/intake-esm/pull/704
- Remove setuptools runtime requirements by @Zeitsperre in https://github.com/intake/intake-esm/pull/708
- [pre-commit.ci] pre-commit autoupdate by @pre-commit-ci in https://github.com/intake/intake-esm/pull/713
- [pre-commit.ci] pre-commit autoupdate by @pre-commit-ci in https://github.com/intake/intake-esm/pull/716
- Bump codecov/codecov-action from 5.4.0 to 5.4.2 in the actions group by @dependabot in https://github.com/intake/intake-esm/pull/714
- Bump codecov/codecov-action from 5.4.2 to 5.4.3 in the actions group by @dependabot in https://github.com/intake/intake-esm/pull/721
- [pre-commit.ci] pre-commit autoupdate by @pre-commit-ci in https://github.com/intake/intake-esm/pull/722
- [pre-commit.ci] pre-commit autoupdate by @pre-commit-ci in https://github.com/intake/intake-esm/pull/726

### New Contributors

- @Zeitsperre made their first contribution in https://github.com/intake/intake-esm/pull/707

## v2025.2.3

[Full Changelog](https://github.com/intake/intake-esm/compare/v2024.2.6...v2025.2.3)

### New features added

- Changed behaviour of `source._open_dataset` to include coordinate variables by @charles-turner-1 in https://github.com/intake/intake-esm/pull/681
- feat: Support being able to use in-memory ESMCatalogModel instances by @lewisjared in https://github.com/intake/intake-esm/pull/690

### Bugs fixed

- Fix #684 Merge results from main and derived catalogs by @rbeucher in https://github.com/intake/intake-esm/pull/685
- Fix how storage_options is passed to get_mapper by @garciampred in https://github.com/intake/intake-esm/pull/678

### Maintenance and upkeep improvements

- Upgrade to intake Take2 by @charles-turner-1 in https://github.com/intake/intake-esm/pull/683
- Update dependencies and improve import handling for xarray version compatibility by @andersy005 in https://github.com/intake/intake-esm/pull/696
- Update pyproject.toml and readthedocs.yml by @andersy005 in https://github.com/intake/intake-esm/pull/695
- Add flaky decorator for tests with remote resources to reduce cold start failure rate by @charles-turner-1 in https://github.com/intake/intake-esm/pull/700
- Update CONTRIBUTING guidelines to e.g. refer to new default branch by @sadielbartholomew in https://github.com/intake/intake-esm/pull/674

### Other merged PRs

- Bump the actions group with 16 updates by @dependabot in https://github.com/intake/intake-esm/pull/658, https://github.com/intake/intake-esm/pull/654, https://github.com/intake/intake-esm/pull/661, https://github.com/intake/intake-esm/pull/671, https://github.com/intake/intake-esm/pull/686, https://github.com/intake/intake-esm/pull/691, https://github.com/intake/intake-esm/pull/693, https://github.com/intake/intake-esm/pull/698
- Update PyPI workflow to build and upload intake-esm artifacts by @andersy005 in https://github.com/intake/intake-esm/pull/659
- [pre-commit.ci] pre-commit autoupdate by @pre-commit-ci in https://github.com/intake/intake-esm/pull/662, https://github.com/intake/intake-esm/pull/664, https://github.com/intake/intake-esm/pull/669, https://github.com/intake/intake-esm/pull/672, https://github.com/intake/intake-esm/pull/675, https://github.com/intake/intake-esm/pull/677, https://github.com/intake/intake-esm/pull/682, https://github.com/intake/intake-esm/pull/687, https://github.com/intake/intake-esm/pull/692, https://github.com/intake/intake-esm/pull/694
- Bump codecov/codecov-action from 4.1.1 to 4.4.1 in the actions group by @dependabot in https://github.com/intake/intake-esm/pull/663,https://github.com/intake/intake-esm/pull/668
- Bump pypa/gh-action-pypi-publish from 1.9.0 to 1.10.2 in the actions group by @dependabot in https://github.com/intake/intake-esm/pull/676, https://github.com/intake/intake-esm/pull/680

### New Contributors

- @sadielbartholomew made their first contribution in https://github.com/intake/intake-esm/pull/674
- @garciampred made their first contribution in https://github.com/intake/intake-esm/pull/678
- @charles-turner-1 made their first contribution in https://github.com/intake/intake-esm/pull/681
- @rbeucher made their first contribution in https://github.com/intake/intake-esm/pull/685
- @lewisjared made their first contribution in https://github.com/intake/intake-esm/pull/690

## v2024.2.6

([full changelog](https://github.com/intake/intake-esm/compare/v2023.10.27...d96efea14b348e346d5c2a1490e91c9ae1e2c709))

### Bugs fixed

- FIX: Pin older versions of sphinx to fix docs [#646](https://github.com/intake/intake-esm/pull/646) ([@mgrover1](https://github.com/mgrover1))

### Other merged PRs

- Update Dependabot configuration [#653](https://github.com/intake/intake-esm/pull/653) ([@andersy005](https://github.com/andersy005))
- Drop python 3.9 [#652](https://github.com/intake/intake-esm/pull/652) ([@andersy005](https://github.com/andersy005))
- Pin intake to `<v2` [#651](https://github.com/intake/intake-esm/pull/651) ([@andersy005](https://github.com/andersy005))
- Bump codecov/codecov-action from 3.1.4 to 4.0.0 [#648](https://github.com/intake/intake-esm/pull/648) ([@dependabot](https://github.com/dependabot))
- [pre-commit.ci] pre-commit autoupdate [#645](https://github.com/intake/intake-esm/pull/645) ([@pre-commit-ci](https://github.com/pre-commit-ci))
- Bump actions/setup-python from 4 to 5 [#644](https://github.com/intake/intake-esm/pull/644) ([@dependabot](https://github.com/dependabot))
- replace black/flake/isort with ruff-format [#643](https://github.com/intake/intake-esm/pull/643) ([@andersy005](https://github.com/andersy005))
- [pre-commit.ci] pre-commit autoupdate [#642](https://github.com/intake/intake-esm/pull/642) ([@pre-commit-ci](https://github.com/pre-commit-ci))
- Bump pypa/gh-action-pypi-publish from 1.8.10 to 1.8.11 [#641](https://github.com/intake/intake-esm/pull/641) ([@dependabot](https://github.com/dependabot))
- [pre-commit.ci] pre-commit autoupdate [#640](https://github.com/intake/intake-esm/pull/640) ([@pre-commit-ci](https://github.com/pre-commit-ci))
- Replace applymap with map [#639](https://github.com/intake/intake-esm/pull/639) ([@dougiesquire](https://github.com/dougiesquire))
- Update-changelog [#638](https://github.com/intake/intake-esm/pull/638) ([@andersy005](https://github.com/andersy005))
- ADD: Add ci support for python 3.12 [#634](https://github.com/intake/intake-esm/pull/634) ([@mgrover1](https://github.com/mgrover1))

### Contributors to this release

([GitHub contributors page for this release](https://github.com/intake/intake-esm/graphs/contributors?from=2023-10-27&to=2024-02-06&type=c))

[@andersy005](https://github.com/search?q=repo%3Aintake%2Fintake-esm+involves%3Aandersy005+updated%3A2023-10-27..2024-02-06&type=Issues) | [@dependabot](https://github.com/search?q=repo%3Aintake%2Fintake-esm+involves%3Adependabot+updated%3A2023-10-27..2024-02-06&type=Issues) | [@dougiesquire](https://github.com/search?q=repo%3Aintake%2Fintake-esm+involves%3Adougiesquire+updated%3A2023-10-27..2024-02-06&type=Issues) | [@mgrover1](https://github.com/search?q=repo%3Aintake%2Fintake-esm+involves%3Amgrover1+updated%3A2023-10-27..2024-02-06&type=Issues) | [@pre-commit-ci](https://github.com/search?q=repo%3Aintake%2Fintake-esm+involves%3Apre-commit-ci+updated%3A2023-10-27..2024-02-06&type=Issues)

## v2023.10.27

([full changelog](https://github.com/intake/intake-esm/compare/v2023.07.07...487e3149679ff1c67a4af75d9e9a6ff72f64f028))

### New features added

- ADD: Add levels option to to_datatree() [#624](https://github.com/intake/intake-esm/pull/624) ([@mgrover1](https://github.com/mgrover1))

### Enhancements made

- ADD: Add levels option to to_datatree() [#624](https://github.com/intake/intake-esm/pull/624) ([@mgrover1](https://github.com/mgrover1))

### Other merged PRs

- Fix catalog serialization with fsspec 2023.10.0 [#636](https://github.com/intake/intake-esm/pull/636) ([@aulemahal](https://github.com/aulemahal))
- [pre-commit.ci] pre-commit autoupdate [#631](https://github.com/intake/intake-esm/pull/631) ([@pre-commit-ci](https://github.com/pre-commit-ci))
- Bump actions/checkout from 3 to 4 [#630](https://github.com/intake/intake-esm/pull/630) ([@dependabot](https://github.com/dependabot))
- [pre-commit.ci] pre-commit autoupdate [#628](https://github.com/intake/intake-esm/pull/628) ([@pre-commit-ci](https://github.com/pre-commit-ci))
- Bump pypa/gh-action-pypi-publish from 1.8.8 to 1.8.10 [#627](https://github.com/intake/intake-esm/pull/627) ([@dependabot](https://github.com/dependabot))
- [pre-commit.ci] pre-commit autoupdate [#626](https://github.com/intake/intake-esm/pull/626) ([@pre-commit-ci](https://github.com/pre-commit-ci))
- Bump pypa/gh-action-pypi-publish from 1.8.7 to 1.8.8 [#625](https://github.com/intake/intake-esm/pull/625) ([@dependabot](https://github.com/dependabot))
- Updates for pydantic v2 [#619](https://github.com/intake/intake-esm/pull/619) ([@dougiesquire](https://github.com/dougiesquire))
- [pre-commit.ci] pre-commit autoupdate [#618](https://github.com/intake/intake-esm/pull/618) ([@pre-commit-ci](https://github.com/pre-commit-ci))

### Contributors to this release

([GitHub contributors page for this release](https://github.com/intake/intake-esm/graphs/contributors?from=2023-07-07&to=2023-10-27&type=c))

[@andersy005](https://github.com/search?q=repo%3Aintake%2Fintake-esm+involves%3Aandersy005+updated%3A2023-07-07..2023-10-27&type=Issues) | [@aulemahal](https://github.com/search?q=repo%3Aintake%2Fintake-esm+involves%3Aaulemahal+updated%3A2023-07-07..2023-10-27&type=Issues) | [@dcherian](https://github.com/search?q=repo%3Aintake%2Fintake-esm+involves%3Adcherian+updated%3A2023-07-07..2023-10-27&type=Issues) | [@dependabot](https://github.com/search?q=repo%3Aintake%2Fintake-esm+involves%3Adependabot+updated%3A2023-07-07..2023-10-27&type=Issues) | [@dougiesquire](https://github.com/search?q=repo%3Aintake%2Fintake-esm+involves%3Adougiesquire+updated%3A2023-07-07..2023-10-27&type=Issues) | [@jbusecke](https://github.com/search?q=repo%3Aintake%2Fintake-esm+involves%3Ajbusecke+updated%3A2023-07-07..2023-10-27&type=Issues) | [@mgrover1](https://github.com/search?q=repo%3Aintake%2Fintake-esm+involves%3Amgrover1+updated%3A2023-07-07..2023-10-27&type=Issues) | [@pre-commit-ci](https://github.com/search?q=repo%3Aintake%2Fintake-esm+involves%3Apre-commit-ci+updated%3A2023-07-07..2023-10-27&type=Issues)

## v2023.07.07

### New features added

- Fix the link to documentation build status [#591](https://github.com/intake/intake-esm/pull/591) ([@mgrover1](https://github.com/mgrover1))
- Add optional `columns_with_iterables` argument to `esm_datastore` [#589](https://github.com/intake/intake-esm/pull/589) ([@dougiesquire](https://github.com/dougiesquire))
- Add `opendap` as a possible data format [#570](https://github.com/intake/intake-esm/pull/570) ([@aulemahal](https://github.com/aulemahal))
- Fix for catalogs without `aggregation_control`, as allowed by the ESM catalog specification [#569](https://github.com/intake/intake-esm/pull/569) ([@aulemahal](https://github.com/aulemahal))

## v2022.9.18

([full changelog](https://github.com/intake/intake-esm/compare/v2021.8.17...3e959d126663f9b8415528bfcee575967c3ef0c1))

### New features added

- Add `to_dask()` method to `esm_datastore` [#403](https://github.com/intake/intake-esm/pull/403) ([@d70-t](https://github.com/d70-t))
- Add `keys_info()` method [#515](https://github.com/intake/intake-esm/pull/515) ([@andersy005](https://github.com/andersy005))

- Discard `catalog_file` attribute after a search [#514](https://github.com/intake/intake-esm/pull/514) ([@andersy005](https://github.com/andersy005))
- ENH: Add .to_datatree() method and remove to collection [#512](https://github.com/intake/intake-esm/pull/512) ([@mgrover1](https://github.com/mgrover1))
- FIX: Add fixes to allow reading kerchunk catalog [#485](https://github.com/intake/intake-esm/pull/485) ([@mgrover1](https://github.com/mgrover1))
- ENH: Support Kerchunk Files [#480](https://github.com/intake/intake-esm/pull/480) ([@mgrover1](https://github.com/mgrover1))
- Allow saving catalog via fsspec protocols [#469](https://github.com/intake/intake-esm/pull/469) ([@andersy005](https://github.com/andersy005))
- Change import to have configurable prefixes via `set_options` [#460](https://github.com/intake/intake-esm/pull/460) ([@aulemahal](https://github.com/aulemahal))
- Add `get_available_cats()` method to `tutorial.py` [#458](https://github.com/intake/intake-esm/pull/458) ([@jukent](https://github.com/jukent))
- Add tutorial module [#454](https://github.com/intake/intake-esm/pull/454) ([@jukent](https://github.com/jukent))
- Support for the grid mapping attribute and variable [#449](https://github.com/intake/intake-esm/pull/449) ([@RondeauG](https://github.com/RondeauG))
- Subset derived variable registry only with used derived variables [#446](https://github.com/intake/intake-esm/pull/446) ([@aulemahal](https://github.com/aulemahal))
- Add `last_updated` to the `ESMCatalogModel` [#442](https://github.com/intake/intake-esm/pull/442) ([@andersy005](https://github.com/andersy005))
- Derived Catalog: test for all needed variables and skip if existing [#441](https://github.com/intake/intake-esm/pull/441) ([@aulemahal](https://github.com/aulemahal))
- Support iterable columns with `require_all_on` [#435](https://github.com/intake/intake-esm/pull/435) ([@aulemahal](https://github.com/aulemahal))
- Improve search with derived variables [#428](https://github.com/intake/intake-esm/pull/428) ([@aulemahal](https://github.com/aulemahal))
- Expose `pd.DataFrame.to_csv` and `json.dump` keyword arguments [#421](https://github.com/intake/intake-esm/pull/421) ([@andersy005](https://github.com/andersy005))
- Search returns same class as self - allowing subclassing [#417](https://github.com/intake/intake-esm/pull/417) ([@aulemahal](https://github.com/aulemahal))
- Added detection of "\*" to enable opening of multi-file datasets. [#395](https://github.com/intake/intake-esm/pull/395) ([@andersy005](https://github.com/andersy005))
- Add `skip_on_error` option when loading datasets [#390](https://github.com/intake/intake-esm/pull/390) ([@andersy005](https://github.com/andersy005))
- Add query to derived variables [#389](https://github.com/intake/intake-esm/pull/389) ([@andersy005](https://github.com/andersy005))
- Add method for loading registry from a Python module [#386](https://github.com/intake/intake-esm/pull/386) ([@andersy005](https://github.com/andersy005))
- Add functionality for derived variables [#379](https://github.com/intake/intake-esm/pull/379) ([@andersy005](https://github.com/andersy005))
- Use pydantic.validate_arguments decorator to validate individual functions [#377](https://github.com/intake/intake-esm/pull/377) ([@andersy005](https://github.com/andersy005))
- Ensure multi variable catalogs are parsed properly [#375](https://github.com/intake/intake-esm/pull/375) ([@andersy005](https://github.com/andersy005))
- Fix `__repr__` and `__repr_html__` [#374](https://github.com/intake/intake-esm/pull/374) ([@andersy005](https://github.com/andersy005))
- Fix catalog serialization [#373](https://github.com/intake/intake-esm/pull/373) ([@andersy005](https://github.com/andersy005))
- Add ESMDataSource [#372](https://github.com/intake/intake-esm/pull/372) ([@andersy005](https://github.com/andersy005))
- Add Query Model [#370](https://github.com/intake/intake-esm/pull/370) ([@andersy005](https://github.com/andersy005))
- Use ESMCatModel Pydantic model [#368](https://github.com/intake/intake-esm/pull/368) ([@andersy005](https://github.com/andersy005))
- Update pydantic models [#367](https://github.com/intake/intake-esm/pull/367) ([@andersy005](https://github.com/andersy005))

### Bugs fixed

- FIX: Update default catalog location and tests [#525](https://github.com/intake/intake-esm/pull/525) ([@mgrover1](https://github.com/mgrover1))
- FIX: Add fixes to allow reading kerchunk catalog [#485](https://github.com/intake/intake-esm/pull/485) ([@mgrover1](https://github.com/mgrover1))

### Maintenance and upkeep improvements

- Update isort configuration to use `profile=black` [#528](https://github.com/intake/intake-esm/pull/528) ([@andersy005](https://github.com/andersy005))
- upgrade dependencies [#517](https://github.com/intake/intake-esm/pull/517) ([@andersy005](https://github.com/andersy005))
- use micromamba in CI [#500](https://github.com/intake/intake-esm/pull/500) ([@andersy005](https://github.com/andersy005))
- Drop support for Python 3.7 [#499](https://github.com/intake/intake-esm/pull/499) ([@andersy005](https://github.com/andersy005))
- Bump styfle/cancel-workflow-action from 0.9.1 to 0.10.0 [#486](https://github.com/intake/intake-esm/pull/486) ([@dependabot](https://github.com/dependabot))
- Bump codecov/codecov-action from 2.1.0 to 3.0.0 [#472](https://github.com/intake/intake-esm/pull/472) ([@dependabot](https://github.com/dependabot))
- [pre-commit.ci] pre-commit autoupdate [#467](https://github.com/intake/intake-esm/pull/467) ([@pre-commit-ci](https://github.com/pre-commit-ci))
- [pre-commit.ci] pre-commit autoupdate [#466](https://github.com/intake/intake-esm/pull/466) ([@pre-commit-ci](https://github.com/pre-commit-ci))
- [pre-commit.ci] pre-commit autoupdate [#463](https://github.com/intake/intake-esm/pull/463) ([@pre-commit-ci](https://github.com/pre-commit-ci))
- [pre-commit.ci] pre-commit autoupdate [#459](https://github.com/intake/intake-esm/pull/459) ([@pre-commit-ci](https://github.com/pre-commit-ci))
- Bump actions/setup-python from 2 to 3 [#451](https://github.com/intake/intake-esm/pull/451) ([@dependabot](https://github.com/dependabot))
- Bump actions/checkout from 2 to 3 [#450](https://github.com/intake/intake-esm/pull/450) ([@dependabot](https://github.com/dependabot))
- [pre-commit.ci] pre-commit autoupdate [#438](https://github.com/intake/intake-esm/pull/438) ([@pre-commit-ci](https://github.com/pre-commit-ci))
- Add pyupgrade to pre-commit hooks [#433](https://github.com/intake/intake-esm/pull/433) ([@andersy005](https://github.com/andersy005))
- Pin importlib-metadata to 2.0 [#422](https://github.com/intake/intake-esm/pull/422) ([@andersy005](https://github.com/andersy005))
- [pre-commit.ci] pre-commit autoupdate [#410](https://github.com/intake/intake-esm/pull/410) ([@pre-commit-ci](https://github.com/pre-commit-ci))
- [pre-commit.ci] pre-commit autoupdate [#402](https://github.com/intake/intake-esm/pull/402) ([@pre-commit-ci](https://github.com/pre-commit-ci))
- [pre-commit.ci] pre-commit autoupdate [#396](https://github.com/intake/intake-esm/pull/396) ([@pre-commit-ci](https://github.com/pre-commit-ci))
- [pre-commit.ci] pre-commit autoupdate [#392](https://github.com/intake/intake-esm/pull/392) ([@pre-commit-ci](https://github.com/pre-commit-ci))
- Upgrade setup/build requirements [#383](https://github.com/intake/intake-esm/pull/383) ([@andersy005](https://github.com/andersy005))
- Update Pull Request Template [#376](https://github.com/intake/intake-esm/pull/376) ([@andersy005](https://github.com/andersy005))
- [pre-commit.ci] pre-commit autoupdate [#371](https://github.com/intake/intake-esm/pull/371) ([@pre-commit-ci](https://github.com/pre-commit-ci))
- Update pre-commit hooks [#369](https://github.com/intake/intake-esm/pull/369) ([@andersy005](https://github.com/andersy005))
- [pre-commit.ci] pre-commit autoupdate [#366](https://github.com/intake/intake-esm/pull/366) ([@pre-commit-ci](https://github.com/pre-commit-ci))
- Bump codecov/codecov-action from 2.0.3 to 2.1.0 [#365](https://github.com/intake/intake-esm/pull/365) ([@dependabot](https://github.com/dependabot))

### Documentation improvements

- Update how to guides [#523](https://github.com/intake/intake-esm/pull/523) ([@andersy005](https://github.com/andersy005))
- DOC: Add section on intake-esm keys [#522](https://github.com/intake/intake-esm/pull/522) ([@mgrover1](https://github.com/mgrover1))
- Reorganize the documentation [#521](https://github.com/intake/intake-esm/pull/521) ([@andersy005](https://github.com/andersy005))
- add `sphinx-design` to list of extensions [#505](https://github.com/intake/intake-esm/pull/505) ([@andersy005](https://github.com/andersy005))
- Docs improvement: use sphinx-design tabs [#504](https://github.com/intake/intake-esm/pull/504) ([@andersy005](https://github.com/andersy005))
- updating google-cmip6 cat to have more datasets [#464](https://github.com/intake/intake-esm/pull/464) ([@jukent](https://github.com/jukent))
- replace references to collection with catalog [#457](https://github.com/intake/intake-esm/pull/457) ([@jukent](https://github.com/jukent))
- Add tutorial module [#454](https://github.com/intake/intake-esm/pull/454) ([@jukent](https://github.com/jukent))
- Reorganize docs [#413](https://github.com/intake/intake-esm/pull/413) ([@andersy005](https://github.com/andersy005))
- Switch over to the furo theme [#412](https://github.com/intake/intake-esm/pull/412) ([@andersy005](https://github.com/andersy005))
- Add Docs Based on ESDS Blog Posts [#409](https://github.com/intake/intake-esm/pull/409) ([@mgrover1](https://github.com/mgrover1))
- Use mamba when building docs on Readthedocs [#408](https://github.com/intake/intake-esm/pull/408) ([@andersy005](https://github.com/andersy005))

### Other merged PRs

- Check if all values in a groupby column are NaN or not NaN [#526](https://github.com/intake/intake-esm/pull/526) ([@andersy005](https://github.com/andersy005))
- [pre-commit.ci] pre-commit autoupdate [#519](https://github.com/intake/intake-esm/pull/519) ([@pre-commit-ci](https://github.com/pre-commit-ci))
- [pre-commit.ci] pre-commit autoupdate [#516](https://github.com/intake/intake-esm/pull/516) ([@pre-commit-ci](https://github.com/pre-commit-ci))
- Ensure global attributes added by intake-esm are compatible with netCDF and Zarr [#509](https://github.com/intake/intake-esm/pull/509) ([@andersy005](https://github.com/andersy005))
- ensure `storage_options` are passed to data loader [#508](https://github.com/intake/intake-esm/pull/508) ([@andersy005](https://github.com/andersy005))
- [pre-commit.ci] pre-commit autoupdate [#507](https://github.com/intake/intake-esm/pull/507) ([@pre-commit-ci](https://github.com/pre-commit-ci))
- [pre-commit.ci] pre-commit autoupdate [#497](https://github.com/intake/intake-esm/pull/497) ([@pre-commit-ci](https://github.com/pre-commit-ci))
- [pre-commit.ci] pre-commit autoupdate [#494](https://github.com/intake/intake-esm/pull/494) ([@pre-commit-ci](https://github.com/pre-commit-ci))
- Bump pypa/gh-action-pypi-publish from 1.5.0 to 1.5.1 [#493](https://github.com/intake/intake-esm/pull/493) ([@dependabot](https://github.com/dependabot))
- [pre-commit.ci] pre-commit autoupdate [#492](https://github.com/intake/intake-esm/pull/492) ([@pre-commit-ci](https://github.com/pre-commit-ci))
- [pre-commit.ci] pre-commit autoupdate [#489](https://github.com/intake/intake-esm/pull/489) ([@pre-commit-ci](https://github.com/pre-commit-ci))
- [pre-commit.ci] pre-commit autoupdate [#488](https://github.com/intake/intake-esm/pull/488) ([@pre-commit-ci](https://github.com/pre-commit-ci))
- [pre-commit.ci] pre-commit autoupdate [#484](https://github.com/intake/intake-esm/pull/484) ([@pre-commit-ci](https://github.com/pre-commit-ci))
- [pre-commit.ci] pre-commit autoupdate [#483](https://github.com/intake/intake-esm/pull/483) ([@pre-commit-ci](https://github.com/pre-commit-ci))
- Bump actions/setup-python from 3 to 4 [#482](https://github.com/intake/intake-esm/pull/482) ([@dependabot](https://github.com/dependabot))
- [pre-commit.ci] pre-commit autoupdate [#476](https://github.com/intake/intake-esm/pull/476) ([@pre-commit-ci](https://github.com/pre-commit-ci))
- Bump codecov/codecov-action from 3.0.0 to 3.1.0 [#475](https://github.com/intake/intake-esm/pull/475) ([@dependabot](https://github.com/dependabot))
- [pre-commit.ci] pre-commit autoupdate [#473](https://github.com/intake/intake-esm/pull/473) ([@pre-commit-ci](https://github.com/pre-commit-ci))
- Ensure `storage_options` are passed to `esmcat.save()` [#471](https://github.com/intake/intake-esm/pull/471) ([@andersy005](https://github.com/andersy005))
- Tutorial url [#455](https://github.com/intake/intake-esm/pull/455) ([@jukent](https://github.com/jukent))
- Ensure fsspec storage options are propagated to `xr.open_dataset` [#453](https://github.com/intake/intake-esm/pull/453) ([@jukent](https://github.com/jukent))
- Remove unused `@df.setter` [#440](https://github.com/intake/intake-esm/pull/440) ([@andersy005](https://github.com/andersy005))
- Fix dependency version conflict [#432](https://github.com/intake/intake-esm/pull/432) ([@andersy005](https://github.com/andersy005))
- Bump pypa/gh-action-pypi-publish from 1.4.2 to 1.5.0 [#431](https://github.com/intake/intake-esm/pull/431) ([@dependabot](https://github.com/dependabot))
- [pre-commit.ci] pre-commit autoupdate [#430](https://github.com/intake/intake-esm/pull/430) ([@pre-commit-ci](https://github.com/pre-commit-ci))
- Fix CI failures: don't turn warnings into errors [#429](https://github.com/intake/intake-esm/pull/429) ([@andersy005](https://github.com/andersy005))
- Support mixed data formats [#416](https://github.com/intake/intake-esm/pull/416) ([@aulemahal](https://github.com/aulemahal))
- [pre-commit.ci] pre-commit autoupdate [#411](https://github.com/intake/intake-esm/pull/411) ([@pre-commit-ci](https://github.com/pre-commit-ci))
- Exclude buggy xarray versions [#406](https://github.com/intake/intake-esm/pull/406) ([@andersy005](https://github.com/andersy005))
- Add Python 3.10 to CI [#400](https://github.com/intake/intake-esm/pull/400) ([@andersy005](https://github.com/andersy005))
- Remove linting workflow: use pre-commit.ci [#399](https://github.com/intake/intake-esm/pull/399) ([@andersy005](https://github.com/andersy005))
- ESMCat pydantic Model: make id optional [#398](https://github.com/intake/intake-esm/pull/398) ([@andersy005](https://github.com/andersy005))
- Properly check whether dataframe is empty [#394](https://github.com/intake/intake-esm/pull/394) ([@andersy005](https://github.com/andersy005))
- Fix `.nunique()` and `.unique()` methods [#391](https://github.com/intake/intake-esm/pull/391) ([@andersy005](https://github.com/andersy005))
- Rename `_types` module to `cat` [#381](https://github.com/intake/intake-esm/pull/381) ([@andersy005](https://github.com/andersy005))
- [pre-commit.ci] pre-commit autoupdate [#364](https://github.com/intake/intake-esm/pull/364) ([@pre-commit-ci](https://github.com/pre-commit-ci))
- [pre-commit.ci] pre-commit autoupdate [#363](https://github.com/intake/intake-esm/pull/363) ([@pre-commit-ci](https://github.com/pre-commit-ci))
- Bump codecov/codecov-action from 2.0.2 to 2.0.3 [#362](https://github.com/intake/intake-esm/pull/362) ([@dependabot](https://github.com/dependabot))
- Update changelog in prep for new release [#358](https://github.com/intake/intake-esm/pull/358) ([@andersy005](https://github.com/andersy005))

### Contributors to this release

([GitHub contributors page for this release](https://github.com/intake/intake-esm/graphs/contributors?from=2021-08-17&to=2022-09-18&type=c))

[@andersy005](https://github.com/search?q=repo%3Aintake%2Fintake-esm+involves%3Aandersy005+updated%3A2021-08-17..2022-09-18&type=Issues) | [@aulemahal](https://github.com/search?q=repo%3Aintake%2Fintake-esm+involves%3Aaulemahal+updated%3A2021-08-17..2022-09-18&type=Issues) | [@d70-t](https://github.com/search?q=repo%3Aintake%2Fintake-esm+involves%3Ad70-t+updated%3A2021-08-17..2022-09-18&type=Issues) | [@dependabot](https://github.com/search?q=repo%3Aintake%2Fintake-esm+involves%3Adependabot+updated%3A2021-08-17..2022-09-18&type=Issues) | [@jukent](https://github.com/search?q=repo%3Aintake%2Fintake-esm+involves%3Ajukent+updated%3A2021-08-17..2022-09-18&type=Issues) | [@MackenzieBlanusa](https://github.com/search?q=repo%3Aintake%2Fintake-esm+involves%3AMackenzieBlanusa+updated%3A2021-08-17..2022-09-18&type=Issues) | [@mgrover1](https://github.com/search?q=repo%3Aintake%2Fintake-esm+involves%3Amgrover1+updated%3A2021-08-17..2022-09-18&type=Issues) | [@pre-commit-ci](https://github.com/search?q=repo%3Aintake%2Fintake-esm+involves%3Apre-commit-ci+updated%3A2021-08-17..2022-09-18&type=Issues) | [@RondeauG](https://github.com/search?q=repo%3Aintake%2Fintake-esm+involves%3ARondeauG+updated%3A2021-08-17..2022-09-18&type=Issues) | [@wachsylon](https://github.com/search?q=repo%3Aintake%2Fintake-esm+involves%3Awachsylon+updated%3A2021-08-17..2022-09-18&type=Issues)

## v2021.8.17

([full changelog](https://github.com/intake/intake-esm/compare/1563b7092415114f1fcda9d2a077413ebaf17fad...a7962e47ac812d938c013e2951c635ac676be80f))

### Enhancements made

- Add pydantic models to facilitate data validation [#347](https://github.com/intake/intake-esm/pull/347) ([@andersy005](https://github.com/andersy005))

### Maintenance and upkeep improvements

- [pre-commit.ci] pre-commit autoupdate [#355](https://github.com/intake/intake-esm/pull/355) ([@pre-commit-ci](https://github.com/pre-commit-ci))
- skip cmip6_preprocessing tests for the time being [#354](https://github.com/intake/intake-esm/pull/354) ([@andersy005](https://github.com/andersy005))
- Bump styfle/cancel-workflow-action from 0.9.0 to 0.9.1 [#348](https://github.com/intake/intake-esm/pull/348) ([@dependabot](https://github.com/dependabot))
- Update pre-commit hooks [#346](https://github.com/intake/intake-esm/pull/346) ([@andersy005](https://github.com/andersy005))
- Bump codecov/codecov-action from 1 to 2.0.2 [#345](https://github.com/intake/intake-esm/pull/345) ([@dependabot](https://github.com/dependabot))
- Disable workflows on Forks [#342](https://github.com/intake/intake-esm/pull/342) ([@andersy005](https://github.com/andersy005))
- 💚 Add missing test dependency [#340](https://github.com/intake/intake-esm/pull/340) ([@andersy005](https://github.com/andersy005))
- Code refactoring [#338](https://github.com/intake/intake-esm/pull/338) ([@andersy005](https://github.com/andersy005))
- Bump pre-commit/action from v2.0.2 to v2.0.3 [#337](https://github.com/intake/intake-esm/pull/337) ([@dependabot](https://github.com/dependabot))
- Bump styfle/cancel-workflow-action from 0.8.0 to 0.9.0 [#334](https://github.com/intake/intake-esm/pull/334) ([@dependabot](https://github.com/dependabot))
- Bump pre-commit/action from v2.0.0 to v2.0.2 [#333](https://github.com/intake/intake-esm/pull/333) ([@dependabot](https://github.com/dependabot))
- Bump styfle/cancel-workflow-action from 0.7.0 to 0.8.0 [#322](https://github.com/intake/intake-esm/pull/322) ([@dependabot](https://github.com/dependabot))
- 💚 Fix CI [#321](https://github.com/intake/intake-esm/pull/321) ([@andersy005](https://github.com/andersy005))
- Fix Tests: Use a publicly available s3 object [#318](https://github.com/intake/intake-esm/pull/318) ([@andersy005](https://github.com/andersy005))
- Bump styfle/cancel-workflow-action from 0.6.0 to 0.7.0 [#316](https://github.com/intake/intake-esm/pull/316) ([@dependabot](https://github.com/dependabot))

### Documentation improvements

- Add cesm2-le catalog [#349](https://github.com/intake/intake-esm/pull/349) ([@mgrover1](https://github.com/mgrover1))
- Docs: Execute all notebooks [#341](https://github.com/intake/intake-esm/pull/341) ([@andersy005](https://github.com/andersy005))
- 📚 Enable comments in docs via sphinx-comments [#326](https://github.com/intake/intake-esm/pull/326) ([@andersy005](https://github.com/andersy005))

### Other merged PRs

- pin pandas version [#356](https://github.com/intake/intake-esm/pull/356) ([@mgrover1](https://github.com/mgrover1))

### Contributors to this release

([GitHub contributors page for this release](https://github.com/intake/intake-esm/graphs/contributors?from=2021-01-16&to=2021-08-17&type=c))

[@andersy005](https://github.com/search?q=repo%3Aintake%2Fintake-esm+involves%3Aandersy005+updated%3A2021-01-16..2021-08-17&type=Issues) | [@dependabot](https://github.com/search?q=repo%3Aintake%2Fintake-esm+involves%3Adependabot+updated%3A2021-01-16..2021-08-17&type=Issues) | [@mgrover1](https://github.com/search?q=repo%3Aintake%2Fintake-esm+involves%3Amgrover1+updated%3A2021-01-16..2021-08-17&type=Issues) | [@pre-commit-ci](https://github.com/search?q=repo%3Aintake%2Fintake-esm+involves%3Apre-commit-ci+updated%3A2021-01-16..2021-08-17&type=Issues)

## v2021.1.15

([full changelog](https://github.com/intake/intake-esm/compare/2c89c1f15f2d66b93247e83494117b3e90340d01...66ecb069cd1961d2ecde29f696627d7a3f611a59))

### Bug Fixes

- Fix memory error when computing unique values [#313](https://github.com/intake/intake-esm/pull/313) ([@andersy005](https://github.com/andersy005))

### Breaking Changes

- 📦 Drop support for Python 3.6 [#311](https://github.com/intake/intake-esm/pull/311) ([@andersy005](https://github.com/andersy005))

### Internal Changes

- ⬆️ Upgrade dependencies & pin versions in CI environment [#314](https://github.com/intake/intake-esm/pull/314) ([@andersy005](https://github.com/andersy005))
- 💚 Fix failing upstream-dev CI [#310](https://github.com/intake/intake-esm/pull/310) ([@andersy005](https://github.com/andersy005))

### Documentation

- Update MPI catalogs for MISTRAL [#308](https://github.com/intake/intake-esm/pull/308) ([@aaronspring](https://github.com/aaronspring))

### Contributors to this release

([GitHub contributors page for this release](https://github.com/intake/intake-esm/graphs/contributors?from=2020-12-19&to=2021-01-16&type=c))

[@aaronspring](https://github.com/search?q=repo%3Aintake%2Fintake-esm+involves%3Aaaronspring+updated%3A2020-12-19..2021-01-16&type=Issues) | [@andersy005](https://github.com/search?q=repo%3Aintake%2Fintake-esm+involves%3Aandersy005+updated%3A2020-12-19..2021-01-16&type=Issues) | [@jbusecke](https://github.com/search?q=repo%3Aintake%2Fintake-esm+involves%3Ajbusecke+updated%3A2020-12-19..2021-01-16&type=Issues)

## v2020.12.18

([full changelog](https://github.com/intake/intake-esm/compare/4f63319294fc7d8394a7c89680ca3525ca1b0d54...dd3e7fdbd752a9e26030ccc7c03e571adb3d3be1))

### Bug Fixes

- 🐛 Disable `_requested_variables` for single variable assets [#306](https://github.com/intake/intake-esm/pull/306) ([@andersy005](https://github.com/andersy005))

### Internal Changes

- Update changelog in preparation for new release [#307](https://github.com/intake/intake-esm/pull/307) ([@andersy005](https://github.com/andersy005))
- Use `github-activity` to update list of contributors [#302](https://github.com/intake/intake-esm/pull/302) ([@andersy005](https://github.com/andersy005))
- Add nbqa & Update prettier commit hooks [#300](https://github.com/intake/intake-esm/pull/300) ([@andersy005](https://github.com/andersy005))
- Update pre-commit and GH actions [#299](https://github.com/intake/intake-esm/pull/299) ([@andersy005](https://github.com/andersy005))

### Contributors to this release

([GitHub contributors page for this release](https://github.com/intake/intake-esm/graphs/contributors?from=2020-11-05&to=2020-12-19&type=c))

[@andersy005](https://github.com/search?q=repo%3Aintake%2Fintake-esm+involves%3Aandersy005+updated%3A2020-11-05..2020-12-19&type=Issues) | [@dcherian](https://github.com/search?q=repo%3Aintake%2Fintake-esm+involves%3Adcherian+updated%3A2020-11-05..2020-12-19&type=Issues) | [@jbusecke](https://github.com/search?q=repo%3Aintake%2Fintake-esm+involves%3Ajbusecke+updated%3A2020-11-05..2020-12-19&type=Issues) | [@naomi-henderson](https://github.com/search?q=repo%3Aintake%2Fintake-esm+involves%3Anaomi-henderson+updated%3A2020-11-05..2020-12-19&type=Issues) | [@Recalculate](https://github.com/search?q=repo%3Aintake%2Fintake-esm+involves%3ARecalculate+updated%3A2020-11-05..2020-12-19&type=Issues)

## v2020.11.4

### Features

- ✨ Support multiple variable assets/files. ({pr}`287`) [@andersy005](https://github.com/andersy005)
- ✨ Add utility function for printing version information. ({pr}`284`) [@andersy005](https://github.com/andersy005)

### Breaking Changes

- 💥 Remove unnecessary logging bits. ({pr}`297`) [@andersy005](https://github.com/andersy005)

### Bug Fixes

- ✔️ Fix test failures. ({pr}`280`) [@andersy005](https://github.com/andersy005)
- Fix TypeError bug in `.search()` method when using wildcard and regular expressions. ({pr}`285`) [@andersy005](https://github.com/andersy005)
- Use file like object when dealing with netcdf in the cloud. ({pr}`292`) [@andersy005](https://github.com/andersy005)

### Documentation

- 📚 Fix ReadtheDocs documentation builds. ({pr}`286`) [@andersy005](https://github.com/andersy005)
- 📚 Migrate docs from restructured text to markdown via `myst-parsers`. ({pr}`296`) [@andersy005](https://github.com/andersy005)
- 🔨 Refactor documentation contents & add new notebooks. ({pr}`298`) [@andersy005](https://github.com/andersy005)

### Internal Changes

- Fix import errors due to [intake/intake#526](https://github.com/intake/intake/pull/526). ({pr}`282`) [@andersy005](https://github.com/andersy005)
- Migrate CI from CircleCI to GitHub Actions. ({pr}`283`) [@andersy005](https://github.com/andersy005)
- Use mamba to speed up CI testing. ({pr}`293`) [@andersy005](https://github.com/andersy005)
- Enable dependabot updates. ({pr}`294`) [@andersy005](https://github.com/andersy005)
- Test against Python 3.9. ({pr}`295`) [@andersy005](https://github.com/andersy005)

### Contributors to this release

([GitHub contributors page for this release](https://github.com/intake/intake-esm/graphs/contributors?from=2020-08-15&to=2020-11-04&type=c))

[@andersy005](https://github.com/search?q=repo%3Aintake%2Fintake-esm+involves%3Aandersy005+updated%3A2020-08-15..2020-11-04&type=Issues) | [@dcherian](https://github.com/search?q=repo%3Aintake%2Fintake-esm+involves%3Adcherian+updated%3A2020-08-15..2020-11-04&type=Issues) | [@jbusecke](https://github.com/search?q=repo%3Aintake%2Fintake-esm+involves%3Ajbusecke+updated%3A2020-08-15..2020-11-04&type=Issues) | [@jukent](https://github.com/search?q=repo%3Aintake%2Fintake-esm+involves%3Ajukent+updated%3A2020-08-15..2020-11-04&type=Issues) | [@sherimickelson](https://github.com/search?q=repo%3Aintake%2Fintake-esm+involves%3Asherimickelson+updated%3A2020-08-15..2020-11-04&type=Issues)

## v2020.8.15

### Features

- Support regular expression objects in {py:meth}`~intake_esm.core.esm_datastore.search`
  ({pr}`236`) [@andersy005](https://github.com/andersy005)
- Support wildcard expresssions in {py:meth}`~intake_esm.core.esm_datastore.search`
  ({pr}`259`) [@andersy005](https://github.com/andersy005)
- Expose attributes used when aggregating/combining datasets ({pr}`268`) [@andersy005](https://github.com/andersy005)
- Support turning aggregations off ({pr}`269`) [@andersy005](https://github.com/andersy005)
- Improve error messages ({pr}`270`) [@andersy005](https://github.com/andersy005)
- Expose aggregations options passed to xarray during datasets aggregation
  ({pr}`272`) [@andersy005](https://github.com/andersy005)
- Reset `_entries` dict after updating aggregations ({pr}`274`) [@andersy005](https://github.com/andersy005)

### Documentation

- Update {py:meth}`~intake_esm.core.esm_datastore.to_dataset_dict` docstring
  to inform users on how `cdf_kwargs` argument is used in regards to chunking
  ({pr}`278`) [@bonnland](https://github.com/bonnland)

### Internal Changes

- Update pre-commit hooks & GitHub actions ({pr}`260`) [@andersy005](https://github.com/andersy005)
- Update badges ({pr}`258`) [@andersy005](https://github.com/andersy005)
- Update upstream environment ({pr}`263`) [@andersy005](https://github.com/andersy005)
- Refactor search functionality into a standalone module ({pr}`267`) [@andersy005](https://github.com/andersy005)
- Fix dask/concurrent.futures parallelism ({pr}`271`) [@andersy005](https://github.com/andersy005)
- Increase test coverage to ~100% ({pr}`273`) [@andersy005](https://github.com/andersy005)
- Bump minimum required versions ({pr}`275`) [@andersy005](https://github.com/andersy005)

### Contributors to this release

([GitHub contributors page for this release](https://github.com/intake/intake-esm/graphs/contributors?from=2020-06-11&to=2020-08-15&type=c))

[@andersy005](https://github.com/search?q=repo%3Aintake%2Fintake-esm+involves%3Aandersy005+updated%3A2020-06-11..2020-08-15&type=Issues) | [@bonnland](https://github.com/search?q=repo%3Aintake%2Fintake-esm+involves%3Abonnland+updated%3A2020-06-11..2020-08-15&type=Issues) | [@dcherian](https://github.com/search?q=repo%3Aintake%2Fintake-esm+involves%3Adcherian+updated%3A2020-06-11..2020-08-15&type=Issues) | [@jeffdlb](https://github.com/search?q=repo%3Aintake%2Fintake-esm+involves%3Ajeffdlb+updated%3A2020-06-11..2020-08-15&type=Issues) | [@jukent](https://github.com/search?q=repo%3Aintake%2Fintake-esm+involves%3Ajukent+updated%3A2020-06-11..2020-08-15&type=Issues) | [@kmpaul](https://github.com/search?q=repo%3Aintake%2Fintake-esm+involves%3Akmpaul+updated%3A2020-06-11..2020-08-15&type=Issues) | [@markusritschel](https://github.com/search?q=repo%3Aintake%2Fintake-esm+involves%3Amarkusritschel+updated%3A2020-06-11..2020-08-15&type=Issues) | [@martindurant](https://github.com/search?q=repo%3Aintake%2Fintake-esm+involves%3Amartindurant+updated%3A2020-06-11..2020-08-15&type=Issues) | [@matt-long](https://github.com/search?q=repo%3Aintake%2Fintake-esm+involves%3Amatt-long+updated%3A2020-06-11..2020-08-15&type=Issues)

## v2020.6.11

### Features

- Add `df` property setter ({pr}`247`) [@andersy005](https://github.com/andersy005)

### Documentation

- Use Pandas sphinx theme ({pr}`244`) [@andersy005](https://github.com/andersy005)
- Update documentation tutorial ({pr}`252`) [@andersy005](https://github.com/andersy005) & [@charlesbluca](https://github.com/charlesbluca)

### Internal Changes

- Fix anti-patterns and other bug risks ({pr}`251`) [@andersy005](https://github.com/andersy005)
- Sync with intake's Entry unification ({pr}`249`) [@andersy005](https://github.com/andersy005)

### Contributors to this release

([GitHub contributors page for this release](https://github.com/intake/intake-esm/graphs/contributors?from=2020-05-21&to=2020-06-11&type=c))

[@andersy005](https://github.com/search?q=repo%3Aintake%2Fintake-esm+involves%3Aandersy005+updated%3A2020-05-21..2020-06-11&type=Issues) | [@jhamman](https://github.com/search?q=repo%3Aintake%2Fintake-esm+involves%3Ajhamman+updated%3A2020-05-21..2020-06-11&type=Issues) | [@martindurant](https://github.com/search?q=repo%3Aintake%2Fintake-esm+involves%3Amartindurant+updated%3A2020-05-21..2020-06-11&type=Issues)

## v2020.5.21

### Features

- Provide informative message/warnings from empty queries. ({pr}`235`) [@andersy005](https://github.com/andersy005)
- Replace tqdm progressbar with fastprogress. ({pr}`238`) [@andersy005](https://github.com/andersy005)
- Add `catalog_file` attribute to `esm_datastore` class. ({pr}`240`) [@andersy005](https://github.com/andersy005)

### Contributors to this release

([GitHub contributors page for this release](https://github.com/intake/intake-esm/graphs/contributors?from=2020-05-01&to=2020-05-21&type=c))

[@andersy005](https://github.com/search?q=repo%3Aintake%2Fintake-esm+involves%3Aandersy005+updated%3A2020-05-01..2020-05-21&type=Issues) | [@bonnland](https://github.com/search?q=repo%3Aintake%2Fintake-esm+involves%3Abonnland+updated%3A2020-05-01..2020-05-21&type=Issues) | [@dcherian](https://github.com/search?q=repo%3Aintake%2Fintake-esm+involves%3Adcherian+updated%3A2020-05-01..2020-05-21&type=Issues) | [@jbusecke](https://github.com/search?q=repo%3Aintake%2Fintake-esm+involves%3Ajbusecke+updated%3A2020-05-01..2020-05-21&type=Issues) | [@jeffdlb](https://github.com/search?q=repo%3Aintake%2Fintake-esm+involves%3Ajeffdlb+updated%3A2020-05-01..2020-05-21&type=Issues) | [@kmpaul](https://github.com/search?q=repo%3Aintake%2Fintake-esm+involves%3Akmpaul+updated%3A2020-05-01..2020-05-21&type=Issues) | [@markusritschel](https://github.com/search?q=repo%3Aintake%2Fintake-esm+involves%3Amarkusritschel+updated%3A2020-05-01..2020-05-21&type=Issues)

## v2020.5.01

### Features

- Add html representation for the catalog object. ({pr}`229`) [@andersy005](https://github.com/andersy005)

- Move logic for assets aggregation into {py:meth}`~intake_esm.source.ESMGroupDataSource`
  and add few basic dict-like methods (`keys()`, `len()`, `getitem()`, `contains()`)
  to the catalog object. ({pr}`194`) [@andersy005](https://github.com/andersy005) & [@jhamman](https://github.com/jhamman) & [@kmpaul](https://github.com/kmpaul)

- Support columns with iterables in {py:meth}`~intake_esm.core.esm_datastore.unique` and
  {py:meth}`~intake_esm.core.esm_datastore.nunique`. ({pr}`223`) [@andersy005](https://github.com/andersy005)

### Bug Fixes

- Revert back to using `concurrent.futures` to address failures due
  to dask's distributed scheduler. ({issue}`225`) & ({issue}`226`)

### Internal Changes

- Increase test coverage. ({pr}`222`) [@andersy005](https://github.com/andersy005)

### Contributors to this release

([GitHub contributors page for this release](https://github.com/intake/intake-esm/graphs/contributors?from=2020-03-16&to=2020-05-01&type=c))

[@andersy005](https://github.com/search?q=repo%3Aintake%2Fintake-esm+involves%3Aandersy005+updated%3A2020-03-16..2020-05-01&type=Issues) | [@bonnland](https://github.com/search?q=repo%3Aintake%2Fintake-esm+involves%3Abonnland+updated%3A2020-03-16..2020-05-01&type=Issues) | [@dcherian](https://github.com/search?q=repo%3Aintake%2Fintake-esm+involves%3Adcherian+updated%3A2020-03-16..2020-05-01&type=Issues) | [@jbusecke](https://github.com/search?q=repo%3Aintake%2Fintake-esm+involves%3Ajbusecke+updated%3A2020-03-16..2020-05-01&type=Issues) | [@jhamman](https://github.com/search?q=repo%3Aintake%2Fintake-esm+involves%3Ajhamman+updated%3A2020-03-16..2020-05-01&type=Issues) | [@kmpaul](https://github.com/search?q=repo%3Aintake%2Fintake-esm+involves%3Akmpaul+updated%3A2020-03-16..2020-05-01&type=Issues) | [@sherimickelson](https://github.com/search?q=repo%3Aintake%2Fintake-esm+involves%3Asherimickelson+updated%3A2020-03-16..2020-05-01&type=Issues)

## v2020.3.16

### Features

- Support single file catalogs. ({pr}`195`) [@bonnland](https://github.com/bonnland)

- Add `progressbar` argument to {py:meth}`~intake_esm.core.esm_datastore.to_dataset_dict`.
  This allows the user to override the default `progressbar` value used
  during the class instantiation. ({pr}`204`) [@andersy005](https://github.com/andersy005)

- Enhanced search: enforce query criteria via `require_all_on` argument via
  {py:meth}`~intake_esm.core.esm_datastore.search` method.
  ({issue}`202`) & ({pr}`207`) & ({pr}`209`) [@andersy005](https://github.com/andersy005) & [@jbusecke](https://github.com/jbusecke)

- Support relative paths for catalog files. ({pr}`208`) [@andersy005](https://github.com/andersy005)

### Bug Fixes

- Use raw path if protocol is `None`. ({pr}`210`) [@andersy005](https://github.com/andersy005)

### Internal Changes

- Github Action to publish package to PyPI on release.
  ({pr}`190`) [@andersy005](https://github.com/andersy005)

- Remove unnecessary inheritance. ({pr}`193`) [@andersy005](https://github.com/andersy005)

- Update linting GitHub action to run on all pull requests.
  ({pr}`196`) [@andersy005](https://github.com/andersy005)

### Contributors to this release

([GitHub contributors page for this release](https://github.com/intake/intake-esm/graphs/contributors?from=2019-12-13&to=2020-03-16&type=c))

[@andersy005](https://github.com/search?q=repo%3Aintake%2Fintake-esm+involves%3Aandersy005+updated%3A2019-12-13..2020-03-16&type=Issues) | [@bonnland](https://github.com/search?q=repo%3Aintake%2Fintake-esm+involves%3Abonnland+updated%3A2019-12-13..2020-03-16&type=Issues) | [@dcherian](https://github.com/search?q=repo%3Aintake%2Fintake-esm+involves%3Adcherian+updated%3A2019-12-13..2020-03-16&type=Issues) | [@jbusecke](https://github.com/search?q=repo%3Aintake%2Fintake-esm+involves%3Ajbusecke+updated%3A2019-12-13..2020-03-16&type=Issues) | [@jhamman](https://github.com/search?q=repo%3Aintake%2Fintake-esm+involves%3Ajhamman+updated%3A2019-12-13..2020-03-16&type=Issues) | [@kmpaul](https://github.com/search?q=repo%3Aintake%2Fintake-esm+involves%3Akmpaul+updated%3A2019-12-13..2020-03-16&type=Issues)

## v2019.12.13

### Features

- Add optional `preprocess` argument to {py:meth}`~intake_esm.core.esm_datastore.to_dataset_dict`
  ({pr}`155`) [@matt-long](https://github.com/matt-long)
- Allow users to disable dataset aggregations by passing `aggregate=False`
  to {py:meth}`~intake_esm.core.esm_datastore.to_dataset_dict` ({pr}`164`) [@matt-long](https://github.com/matt-long)
- Avoid manipulating dataset coordinates by using `data_vars=varname`
  when concatenating datasets via xarray {py:func}:`~xarray.concat()`
  ({pr}`174`) [@andersy005](https://github.com/andersy005)
- Support loading netCDF assets from openDAP endpoints
  ({pr}`176`) [@andersy005](https://github.com/andersy005)
- Add {py:meth}`~intake_esm.core.esm_datastore.serialize` method to serialize collection/catalog
  ({pr}`179`) [@andersy005](https://github.com/andersy005)
- Allow passing extra storage options to the backend file system via
  {py:meth}`~intake_esm.core.esm_datastore.to_dataset_dict` ({pr}`180`) [@bonnland](https://github.com/bonnland)
- Provide informational messages to the user via Logging module
  ({pr}`186`) [@andersy005](https://github.com/andersy005)

### Bug Fixes

- Remove the caching option ({pr}`158`) [@matt-long](https://github.com/matt-long)
- Preserve encoding when aggregating datasets ({pr}`161`) [@matt-long](https://github.com/matt-long)
- Sort aggregations to make sure {py:func}:`~intake_esm.merge_util.join_existing`
  is always done before {py:func}:`~intake_esm.merge_util.join_new`
  ({pr}`171`) [@andersy005](https://github.com/andersy005)

### Documentation

- Add example for preprocessing function ({pr}`168`) [@jbusecke](https://github.com/jbusecke)
- Add FAQ style document to documentation ({pr}`182`) & ({issue}`177`)
  [@andersy005](https://github.com/andersy005) & [@jhamman](https://github.com/jhamman)

### Internal Changes

- Simplify group loading by using `concurrent.futures` ({pr}`185`) [@andersy005](https://github.com/andersy005)

### Contributors to this release

([GitHub contributors page for this release](https://github.com/intake/intake-esm/graphs/contributors?from=2019-10-15&to=2019-12-13&type=c))

[@andersy005](https://github.com/search?q=repo%3Aintake%2Fintake-esm+involves%3Aandersy005+updated%3A2019-10-15..2019-12-13&type=Issues) | [@bonnland](https://github.com/search?q=repo%3Aintake%2Fintake-esm+involves%3Abonnland+updated%3A2019-10-15..2019-12-13&type=Issues) | [@dcherian](https://github.com/search?q=repo%3Aintake%2Fintake-esm+involves%3Adcherian+updated%3A2019-10-15..2019-12-13&type=Issues) | [@jbusecke](https://github.com/search?q=repo%3Aintake%2Fintake-esm+involves%3Ajbusecke+updated%3A2019-10-15..2019-12-13&type=Issues) | [@jhamman](https://github.com/search?q=repo%3Aintake%2Fintake-esm+involves%3Ajhamman+updated%3A2019-10-15..2019-12-13&type=Issues) | [@matt-long](https://github.com/search?q=repo%3Aintake%2Fintake-esm+involves%3Amatt-long+updated%3A2019-10-15..2019-12-13&type=Issues) | [@naomi-henderson](https://github.com/search?q=repo%3Aintake%2Fintake-esm+involves%3Anaomi-henderson+updated%3A2019-10-15..2019-12-13&type=Issues) | [@Recalculate](https://github.com/search?q=repo%3Aintake%2Fintake-esm+involves%3ARecalculate+updated%3A2019-10-15..2019-12-13&type=Issues) | [@sebasblancogonz](https://github.com/search?q=repo%3Aintake%2Fintake-esm+involves%3Asebasblancogonz+updated%3A2019-10-15..2019-12-13&type=Issues)

## v2019.10.15

### Features

- Rewrite `intake-esm`'s core based on `(esm-collection-spec)`\_ Earth System Model Collection specification
  ({pr}`135`) [@andersy005](https://github.com/andersy005), [@matt-long](https://github.com/matt-long), [@rabernat](https://github.com/rabernat)

### Breaking changes

- Replaced {py:class}:`~intake_esm.core.esm_metadatastore` with {py:class}:`~intake_esm.core.esm_datastore`, see the API reference for more details.
- `intake-esm` won't build collection catalogs anymore. `intake-esm` now expects an ESM collection JSON file as input. This JSON should conform to the [Earth System Model Collection](https://github.com/NCAR/esm-collection-spec) specification.

### Contributors to this release

([GitHub contributors page for this release](https://github.com/intake/intake-esm/graphs/contributors?from=2019-08-23&to=2019-10-15&type=c))

[@aaronspring](https://github.com/search?q=repo%3Aintake%2Fintake-esm+involves%3Aaaronspring+updated%3A2019-08-23..2019-10-15&type=Issues) | [@andersy005](https://github.com/search?q=repo%3Aintake%2Fintake-esm+involves%3Aandersy005+updated%3A2019-08-23..2019-10-15&type=Issues) | [@bonnland](https://github.com/search?q=repo%3Aintake%2Fintake-esm+involves%3Abonnland+updated%3A2019-08-23..2019-10-15&type=Issues) | [@dcherian](https://github.com/search?q=repo%3Aintake%2Fintake-esm+involves%3Adcherian+updated%3A2019-08-23..2019-10-15&type=Issues) | [@n-henderson](https://github.com/search?q=repo%3Aintake%2Fintake-esm+involves%3An-henderson+updated%3A2019-08-23..2019-10-15&type=Issues) | [@naomi-henderson](https://github.com/search?q=repo%3Aintake%2Fintake-esm+involves%3Anaomi-henderson+updated%3A2019-08-23..2019-10-15&type=Issues) | [@rabernat](https://github.com/search?q=repo%3Aintake%2Fintake-esm+involves%3Arabernat+updated%3A2019-08-23..2019-10-15&type=Issues)

## v2019.8.23

### Features

- Add `mistral` data holdings to `intake-esm-datastore` ({pr}`133`) [@aaronspring](https://github.com/aaronspring)

- Add support for `NA-CORDEX` data holdings. ({pr}`115`) [@jukent](https://github.com/jukent)

- Replace `.csv` with `netCDF` as serialization format when saving the built collection to disk. With `netCDF`, we can record very useful information into the global attributes of the netCDF dataset. ({pr}`119`) [@andersy005](https://github.com/andersy005)

- Add string representation of `ESMMetadataStoreCatalog`` object ({pr}`122`) [@andersy005](https://github.com/andersy005)

- Automatically build missing collections by calling `esm_metadatastore(collection_name="GLADE-CMIP5")`. When the specified collection is part of the curated collections in `intake-esm-datastore`. ({pr}`124`) [@andersy005](https://github.com/andersy005)

  ```python

  In [1]: import intake

  In [2]: col = intake.open_esm_metadatastore(collection_name="GLADE-CMIP5")

  In [3]: # if "GLADE-CMIP5" collection isn't built already, the above is equivalent to:

  In [4]: col = intake.open_esm_metadatastore(collection_input_definition="GLADE-CMIP5")
  ```

- Revert back to using official DRS attributes when building CMIP5 and CMIP6 collections.
  ({pr}`126`) [@andersy005](https://github.com/andersy005)

- Add `.df` property for interfacing with the built collection via dataframe
  To maintain backwards compatiblity. ({pr}`127`) [@andersy005](https://github.com/andersy005)

- Add `unique()` and `nunique()` methods for summarizing count and unique values in a collection.
  ({pr}`128`) [@andersy005](https://github.com/andersy005)

  ```python

  In [1]: import intake

  In [2]: col = intake.open_esm_metadatastore(collection_name="GLADE-CMIP5")

  In [3]: col
  Out[3]: GLADE-CMIP5 collection catalogue with 615853 entries: > 3 resource(s)

            > 1 resource_type(s)

            > 1 direct_access(s)

            > 1 activity(s)

            > 218 ensemble_member(s)

            > 51 experiment(s)

            > 312093 file_basename(s)

            > 615853 file_fullpath(s)

            > 6 frequency(s)

            > 25 institute(s)

            > 15 mip_table(s)

            > 53 model(s)

            > 7 modeling_realm(s)

            > 3 product(s)

            > 9121 temporal_subset(s)

            > 454 variable(s)

            > 489 version(s)

  In[4]: col.nunique()

  resource 3
  resource_type 1
  direct_access 1
  activity 1
  ensemble_member 218
  experiment 51
  file_basename 312093
  file_fullpath 615853
  frequency 6
  institute 25
  mip_table 15
  model 53
  modeling_realm 7
  product 3
  temporal_subset 9121
  variable 454
  version 489
  dtype: int64

  In[4]: col.unique(columns=['frequency', 'modeling_realm'])

  {'frequency': {'count': 6, 'values': ['mon', 'day', '6hr', 'yr', '3hr', 'fx']},
  'modeling_realm': {'count': 7, 'values': ['atmos', 'land', 'ocean', 'seaIce', 'ocnBgchem',
  'landIce', 'aerosol']}}

  ```

### Bug Fixes

- For CMIP6, extract `grid_label` from directory path instead of file name. ({pr}`127`) [@andersy005](https://github.com/andersy005)

### Contributors to this release

([GitHub contributors page for this release](https://github.com/intake/intake-esm/graphs/contributors?from=2019-10-15&to=2019-12-13&type=c))

## v2019.8.5

### Features

- Support building collections using inputs from intake-esm-datastore repository.
  ({pr}`79`) [@andersy005](https://github.com/andersy005)

- Ensure that requested files are available locally before loading data into xarray datasets.
  ({pr}`82`) [@andersy005](https://github.com/andersy005) and [@matt-long](https://github.com/matt-long)

- Split collection definitions out of config. ({pr}`83`) [@matt-long](https://github.com/matt-long)

- Add `intake-esm-builder`, a CLI tool for building collection from the command line. ({pr}`89`) [@andersy005](https://github.com/andersy005)

- Add support for CESM-LENS data holdings residing in AWS S3. ({pr}`98`) [@andersy005](https://github.com/andersy005)

- Sort collection upon creation according to order-by-columns, pass urlpath through stack for use in parsing collection filenames ({pr}`100`) [@pbranson](https://github.com/pbranson)

### Bug Fixes

- Fix bug in `_list_files_hsi()` to return list instead of filter object.
  ({pr}`81`) [@matt-long](https://github.com/matt-long) and [@andersy005](https://github.com/andersy005)

- `cesm._get_file_attrs` fixed to break loop when longest `stream` is matched. ({pr}`80`) [@matt-long](https://github.com/matt-long)

- Restore `non_dim_coords` to data variables all the time. ({pr}`90`) [@andersy005](https://github.com/andersy005)

- Fix bug in `intake_esm/cesm.py` that caused `intake-esm` to exclude hourly (1hr, 6hr, etc..) CESM-LE data.
  ({pr}`110`) [@andersy005](https://github.com/andersy005)

- Fix bugs in `intake_esm/cmip.py` that caused improper regular expression matching for `table_id` and `grid_label`.
  ({pr}`113`) & ({issue}`111`) [@naomi-henderson](https://github.com/naomi-henderson) and [@andersy005](https://github.com/andersy005)

### Internal Changes

- Refactor existing functionality to make intake-esm robust and extensible. ({pr}`77`) [@andersy005](https://github.com/andersy005)

- Add `aggregate._override_coords` function to override dim coordinates except time
  in case there's floating point precision difference. ({pr}`108`) [@andersy005](https://github.com/andersy005)

- Fix CESM-LE ice component peculiarities that caused intake-esm to load data improperly.
  The fix separates variables for `ice` component into two separate components:

  - `ice_sh`: for southern hemisphere
  - `ice_nh`: for northern hemisphere

  ({pr}`114`) [@andersy005](https://github.com/andersy005)

### Contributors to this release

([GitHub contributors page for this release](https://github.com/intake/intake-esm/graphs/contributors?from=2019-05-11&to=2019-08-05&type=c))

## v2019.5.11

### Features

- Add implementation for The Gridded Meteorological Ensemble Tool (GMET) data holdings ({pr}`61`) [@andersy005](https://github.com/andersy005)
- Allow users to specify exclude\*dirs for CMIP collections ({pr}`63`) & ({issue}`62`) [@andersy005](https://github.com/andersy005)
- Keep CMIP6 `tracking_id` in `merge_keys` ({pr}`67`) [@andersy005](https://github.com/andersy005)
- Add implementation for ERA5 datasets ({pr}`68`) [@andersy005](https://github.com/andersy005)

### Contributors to this release

([GitHub contributors page for this release](https://github.com/intake/intake-esm/graphs/contributors?from=2019-04-26&to=2019-05-11&type=c))

## v2019.4.26

### Features

- Add implementations for `CMIPCollection` and `CMIPSource` ({pr}`38`) [@andersy005](https://github.com/andersy005)
- Add support for CMIP6 data ({pr}`46`) [@andersy005](https://github.com/andersy005)
- Add implementation for The Max Planck Institute Grand Ensemble (MPI-GE) data holdings ({pr}`52`) & ({issue}`51`) [@aaronspring](https://github.com/aaronspring) and [@andersy005](https://github.com/andersy005)
- Return dictionary of datasets all the time for consistency ({pr}`56`) [@andersy005](https://github.com/andersy005)

### Bug Fixes

- Include multiple netcdf files in same subdirectory ({pr}`55`) & ({issue}`54`) [@naomi-henderson](https://github.com/naomi-henderson) and [@andersy005](https://github.com/andersy005)

### Contributors to this release

([GitHub contributors page for this release](https://github.com/intake/intake-esm/graphs/contributors?from=2019-02-28&to=2019-04-26&type=c))

## v2019.2.28

### Features

- Allow CMIP integration ({pr}`35`) [@andersy005](https://github.com/andersy005)

### Bug Fixes

- Fix bug on build catalog and move `exclude_dirs` to `locations` ({pr}`33`) [@matt-long](https://github.com/matt-long)

### Internal Changes

- Change Logger, update dev-environment dependencies, and formatting fix in input.yml ({pr}`31`) [@matt-long](https://github.com/matt-long)
- Update CircleCI workflow ({pr}`32`) [@andersy005](https://github.com/andersy005)
- Rename package from `intake-cesm` to `intake-esm` ({pr}`34`) [@andersy005](https://github.com/andersy005)
