Release notes#
2.0.0 (2026-06-19)#
Important#
The project has been moved to the CNES Github repository.
A new method filter_values is available for all NetcdfFilesDatabase
implementations. This method helps extracting the possible values of a query’s
filter. It is fast when scanning the folders (layouts must be enabled), but
slower when scanning the files is necessary (a PerformanceWarning is issued
in that case).
>> from fcollections.implementations import NetcdfFilesDatabaseGriddedSLA
>> fc = NetcdfFilesDatabaseGriddedSLA(...)
>> fc.filter_values('version')
{'0_3', '1_0', '2_0_1', '3_0'}
- The following dependencies have new constraints:
Pandas:
>=3Pyinterp:
>=2026.4.0
Folder-specific filters can now be given to filter a query. This new behavior breaks the assumption that all layouts share the same filters, which has the following consequences:
Setting a folder-specific filter that is present in one layout, with an underconstrained query will raise a
LayoutMismatchError. Adding more filters to constrain the scan to the part of the file system matching the layout will fix the query.from fcollections.implementations import NetcdfFilesDatabaseSwotLRL3 fc = NetcdfFilesDatabaseSwotLRL3(...) # Will raise an error, the scan will explore v1 and v2 which have no concept # of 'temporality' fc.query(temporality='REPROC') # Add constraint to fix the query fc.query(temporality='REPROC', version='3.0')
Folder-specific filters with the layouts disabled will be ignored, and a
UserWarningwill be emitted
Breaking Changes#
The IPredicate interface has been refactored into the more explicit
IFilterBuilder interface. This interface handles both complex predicates and
filters’ converter through the build_predicate and build_filter methods.
Previously, if a file did not match the file name convention, it was ignored. It
now raises a LayoutMismatchError.
PeriodMixin now expects to work on a single homogeneous subset of data. In
case the filters given to the methods are not sufficient to extract an
homogeneous dataset, an error will be raised.
Details#
perf: switch to HTTP request for GSHHG SAD PR#12
fix: filter_values for version field of L2_LR_SSH PR#10
feat: allow folder-specific filters PR#9
chore: migration to pyinterp 2026.4.0 PR#8
Half orbit mixin PR#7
perf: subset unmixing prior to listing PR#6
feat!: Add phase filter argument PR#5
feat!: filter values from Layout folders PR#4
refactor: adapt code to work with pandas PR#1
Contributors#
Robin Chevrier
Anne-Sophie Tonneau
1.0.0 (2026-02-04)#
A bit of refactoring has been done in this version to improve the maintainability and versatility of the code. The following interfaces are impacted:
fcollections.core.FileDiscovererandfcollections.core.FileSystemIterablehave been merged intofcollections.core.FileSystemMetadataCollectorfcollections.core.FilesDatabaseis configured using multiple layouts. Layouts must now declare both folder and filename conventions. This effectively makesfcollections.core.CompositeLayoutobsolete (it has been removed)A new parameter
enable_layoutshas been introduced infcollections.core.FilesDatabaseto simplify layout feature disabling in cast of a mismatchA new parameter
follow_symlinkshas been introduced infcollections.core.FilesDatabaseto enable symlinks. (The feature is disabled by default)
Details#
fix: keep dataset sorted for bbox selection on unsmoothed dataset #20
refactor!: Use one or multiple Layouts instead of FileNameConvention in FilesDatabase #14
feat!: refactor and add layouts for CMEMS implementations #19
feat!: allow listing with/without layouts #17
feat!: use INode for FileSystemMetadataCollector #21
feat: follow symbolic links for posix-compliant local file systems #18
chore!: remove obsolete code from core API #16
chore: switch license file name to US spelling #22
doc: create README and documentation landing page #15
Contributors#
Robin Chevrier
Anne-Sophie Tonneau
0.1.3 (2025-12-15)#
Important#
KaRIn geometries URL are now up. Geographical selection should work as intended for SWOT implementations
Details#
fix: relax area selector longitudes convention #8
fix: use AVISO Karin Geometries #4
refactor: redispatch implementations code per product #6
test: process warnings and enforce full coverage #11
doc: getting started section conversion to myst_nb #10
doc: switch implementations documentation to myst_nb #9
doc: fix signatures and docstrings for sphinx documentation #7
doc: switch Parameters section to Attributes docstrings in dataclasses #5
doc: installation procedure and release note #3
0.1.2 (2025-12-09)#
First release. The KaRIn geometries URL are not set up and are expected to break
the geographical selection: avoid using the bbox argument in the
query() method.