Conversation
|
Hi there, this is jenkins continuous integration... |
1 similar comment
|
Hi there, this is jenkins continuous integration... |
Agent-Logs-Url: https://github.com/C2SM/icon4py/sessions/67a16ff8-8720-433f-920e-854496654e2c Co-authored-by: msimberg <42977+msimberg@users.noreply.github.com>
f524288 to
3056b8f
Compare
Agent-Logs-Url: https://github.com/C2SM/icon4py/sessions/603e50df-ddcc-4efa-a6a0-241b9d492e8b Co-authored-by: msimberg <42977+msimberg@users.noreply.github.com>
Agent-Logs-Url: https://github.com/C2SM/icon4py/sessions/1404233a-0a05-4f64-b64b-2f77e3871544 Co-authored-by: msimberg <42977+msimberg@users.noreply.github.com>
|
cscs-ci run default |
|
cscs-ci run distributed |
|
Exactly which versions to test and where is still an open question, but I think this might be ready for at least an initial review. @egparedes I requested one from you if you have time since I'm guessing you might be more familiar with different python versions. The biggest change comes from trying to use the new |
|
I got a bit overly excited with this PR. I'll make this PR focus on adding python 3.14 support and move the bump to 3.12 as minimum to a follow-up PR. |
Co-authored-by: Mikael Simberg <mikael.simberg@iki.fi>
|
cscs-ci run default |
|
cscs-ci run default |
|
cscs-ci run distributed |
|
Mandatory Tests Please make sure you run these tests via comment before you merge!
Optional Tests To run benchmarks you can use:
To run tests and benchmarks with the DaCe backend you can use:
To run test levels ignored by the default test suite (mostly simple datatest for static fields computations) you can use:
For more detailed information please look at CI in the EXCLAIM universe. |
|
cscs-ci run default |
|
cscs-ci run distributed |
egparedes
left a comment
There was a problem hiding this comment.
Mostly nitpcking. LGTM
| """ | ||
|
|
||
| import pymetis # type: ignore [import-untyped] | ||
| import pymetis # noqa: PLC0415 |
There was a problem hiding this comment.
Due to our coding conventions: https://github.com/C2SM/icon4py/blob/main/CODING_GUIDELINES.md#ignoring-qa-errors
| import pymetis # noqa: PLC0415 | |
| import pymetis # noqa: PLC0415 [import-outside-top-level] |
|
|
||
| def init_mpi() -> None: | ||
| from mpi4py import MPI | ||
| from mpi4py import MPI # noqa: PLC0415 |
There was a problem hiding this comment.
| from mpi4py import MPI # noqa: PLC0415 | |
| from mpi4py import MPI # noqa: PLC0415 [import-outside-top-level] |
|
|
||
| def finalize_mpi() -> None: | ||
| from mpi4py import MPI | ||
| from mpi4py import MPI # noqa: PLC0415 |
There was a problem hiding this comment.
| from mpi4py import MPI # noqa: PLC0415 | |
| from mpi4py import MPI # noqa: PLC0415 [import-outside-top-level] |
| attrs = {} | ||
| dims = tuple(dimension_mapping(d, is_on_interface) for d in field.domain.dims) | ||
| horizontal_dim = next(filter(lambda d: _is_horizontal(d), field.domain.dims)) | ||
| horizontal_dim = next(filter(_is_horizontal, field.domain.dims)) |
There was a problem hiding this comment.
Nitpicking, but list comprehensions are more idiomatic in python than map and filter
| horizontal_dim = next(filter(_is_horizontal, field.domain.dims)) | |
| horizontal_dim = next(d for d in field.domain.dims if _is_horizontal(d)) |
| obj = self._func | ||
| while hasattr(obj, "__wrapped__") or isinstance(obj, functools.partial): | ||
| obj = getattr(obj, "__wrapped__", None) or obj.func |
There was a problem hiding this comment.
Optional nitpicking, feel free to ignore
| obj = self._func | |
| while hasattr(obj, "__wrapped__") or isinstance(obj, functools.partial): | |
| obj = getattr(obj, "__wrapped__", None) or obj.func | |
| obj = inspect.unwrap(self._func) | |
| while isinstance(obj, functools.partial): | |
| obj = inspect.unwrap(obj.func) |
| ) | ||
|
|
||
| from icon4py.model.common.decomposition.mpi_decomposition import init_mpi | ||
| from icon4py.model.common.decomposition.mpi_decomposition import init_mpi # noqa: PLC0415 |
There was a problem hiding this comment.
| from icon4py.model.common.decomposition.mpi_decomposition import init_mpi # noqa: PLC0415 | |
| from icon4py.model.common.decomposition.mpi_decomposition import init_mpi # noqa: PLC0415 [import-outside-top-level] |
|
|
||
| def load_gt4py_timers(filename: pathlib.Path, metric: str) -> tuple[dict, dict]: | ||
| import numpy as np | ||
| import numpy as np # noqa: PLC0415 |
There was a problem hiding this comment.
Missing error codes in noqas
| # if needed in the future. | ||
|
|
||
| from icon4py.model.testing import ( | ||
| from icon4py.model.testing import ( # noqa: PLC0415 |
There was a problem hiding this comment.
| from icon4py.model.testing import ( # noqa: PLC0415 | |
| from icon4py.model.testing import ( # noqa: PLC0415 [import-outside-top-level] |
| def get_validation_grids() -> list[definitions.GridDescription]: | ||
| from icon4py.model.testing import definitions # Import here to reduce startup time of the CLI | ||
| # Import here to reduce startup time of the CLI | ||
| from icon4py.model.testing import definitions # noqa: PLC0415 |
There was a problem hiding this comment.
Missing error codes in noqas
| @pytest.fixture | ||
| def ffi(): | ||
| import cffi | ||
| import cffi # noqa: PLC0415 |
There was a problem hiding this comment.
Missing error codes in noqas
Add compatibility for python 3.14. GitHub workflows test 3.10 and 3.13. The CSCS CI workflows test with 3.13.
Also updates the uv lock file, which updates a lot of packages. Among others, the new ruff version has more checks and changes formatting in a few places.