Repository navigation
Conversation
* port ifs-forecast loader * updated ifs forecast loader to also handle ensemble data (#19) --------- Co-authored-by: nielscarlier <136123206+nielscarlier@users.noreply.github.com> Co-authored-by: Stagiair user Niels Carlier <nicarlier@kili.oma.be>
Accept lead times as strings like "6h" (single, list or array) and raise on unknown options, bare numbers and lead times missing from the forecast instead of silently returning all-NaN output. Fixes the ambiguous truth-value error for array input. Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
Traits are read from attrs on every predicate call, so they no longer go stale on the cached accessor and datasets without traits only fail when a trait is needed. add_xy and unstack no longer reassign self._ds. Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
A one-item dict raised KeyError and a one-item list was unwrapped; both functions now return the container type they were given. Also removes the local `transform` shadowing the function. Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
Point outputs of both interpolators inherited the source's cartopy `crs` and `grid_mapping` dict, which made to_netcdf fail. Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
Weights are cached at module level, keyed by a hash of the full source and target coordinates, so interpolator instances share them and grids with the same shape and corner coordinates no longer reuse each other's weights. When grid_index is merged into one chunk, leading dims are re-chunked with "auto" so blocks stay near dask's array.chunk-size. Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
mpvginde
marked this pull request as ready for review
October 26, 2026 20:06
Contributor
Author
|
Hi @leifdenby , I fixed some open questions and lose threads |
This was referenced Oct 27, 2026
accessors/time.py and accessors/space.py held alignment operations rather than accessor code. Move them into align/time.py and align/space.py next to the multi-dataset align_time/align_space, and have the mx accessor import them from there. No behaviour change. Co-authored-by: Claude Opus 5.5 <noreply@anthropic.com>
…r alignment (#40) Top-level layout becomes `accessor` (the ds.mx accessor) and `alignment` (time/space/nans alignment plus the interpolators it uses); the pipeline package follows separately. Public re-exports from mxalign/__init__.py are unchanged. Co-authored-by: Claude Opus 5.5 <noreply@anthropic.com>
* Move cli, runner, verification and their helpers into pipeline/ The YAML-driven pipeline (cli, runner, verification, transformations and the config/dates/save helpers it alone uses) now lives in mxalign.pipeline. The console script points at mxalign.pipeline.cli:main. Public re-exports from mxalign/__init__.py are unchanged. Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com> * Update Runner import in advanced example notebook Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com> --------- Co-authored-by: Claude Opus 5.5 <noreply@anthropic.com>
* Move cli, runner, verification and their helpers into pipeline/ The YAML-driven pipeline (cli, runner, verification, transformations and the config/dates/save helpers it alone uses) now lives in mxalign.pipeline. The console script points at mxalign.pipeline.cli:main. Public re-exports from mxalign/__init__.py are unchanged. Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com> * Update Runner import in advanced example notebook Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com> * Validate pipeline config against an explicit pydantic schema Replace the untyped Config dict wrapper with pydantic models (PipelineConfig and one model per section) loaded via load_config(). Unknown or missing keys now fail when the Runner is created instead of deep inside a run, and the Runner reads typed attributes rather than popping keys (which also stops align() mutating the config). Keys that are forwarded to loaders, transformations, metrics and save methods are kept as pass-through kwargs. Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com> * Use a non-typo unknown key in config test to satisfy codespell Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com> --------- Co-authored-by: Claude Opus 5.5 <noreply@anthropic.com> Co-authored-by: Michiel Van Ginderachter <81358394+mpvginde@users.noreply.github.com>
…lint; add AGENTS.md (#44) * Move cli, runner, verification and their helpers into pipeline/ The YAML-driven pipeline (cli, runner, verification, transformations and the config/dates/save helpers it alone uses) now lives in mxalign.pipeline. The console script points at mxalign.pipeline.cli:main. Public re-exports from mxalign/__init__.py are unchanged. Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com> * Update Runner import in advanced example notebook Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com> * Validate pipeline config against an explicit pydantic schema Replace the untyped Config dict wrapper with pydantic models (PipelineConfig and one model per section) loaded via load_config(). Unknown or missing keys now fail when the Runner is created instead of deep inside a run, and the Runner reads typed attributes rather than popping keys (which also stops align() mutating the config). Keys that are forwarded to loaders, transformations, metrics and save methods are kept as pass-through kwargs. Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com> * Use a non-typo unknown key in config test to satisfy codespell Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com> * Annotate and document all functions; enforce with ruff and numpydoc; add AGENTS.md Every module, class, function and method in src/, tests/ and the example loader now has type annotations on all arguments and return values and a numpy-style docstring (Parameters/Returns/Raises). This is enforced in pre-commit (and therefore CI) by ruff's ANN and D rules (numpy convention) and the numpydoc-validation hook. AGENTS.md describes the package layout, development tools and coding conventions. No behaviour changes: apart from docstrings, annotations and import sorting, the only code edits are sorting mxalign.__all__ and dict literals in tests. Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com> --------- Co-authored-by: Claude Opus 5.5 <noreply@anthropic.com> Co-authored-by: Michiel Van Ginderachter <81358394+mpvginde@users.noreply.github.com>
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment
Add this suggestion to a batch that can be applied as a single commit.This suggestion is invalid because no changes were made to the code.Suggestions cannot be applied while the pull request is closed.Suggestions cannot be applied while viewing a subset of changes.Only one suggestion per line can be applied in a batch.Add this suggestion to a batch that can be applied as a single commit.Applying suggestions on deleted lines is not supported.You must change the existing code in this line in order to create a valid suggestion.Outdated suggestions cannot be applied.This suggestion has been applied or marked resolved.Suggestions cannot be applied from pending reviews.Suggestions cannot be applied on multi-line comments.Suggestions cannot be applied while the pull request is queued to merge.Suggestion cannot be applied right now. Please check back later.
Reasonable refactor that does the following:
mxaccessor forxr.DatasetsShould come in after #27