Skip to content

Adapt type hints (and ignores) to gt4py#2484#1096

Draft
DropD wants to merge 17 commits intoC2SM:mainfrom
DropD:ricoh-typing-upgrade
Draft

Adapt type hints (and ignores) to gt4py#2484#1096
DropD wants to merge 17 commits intoC2SM:mainfrom
DropD:ricoh-typing-upgrade

Conversation

@DropD
Copy link
Contributor

@DropD DropD commented Mar 9, 2026

Reduce blanket type ignores at the price of adding a handful specific ones.

@DropD
Copy link
Contributor Author

DropD commented Mar 9, 2026

cscs-ci run default

@DropD
Copy link
Contributor Author

DropD commented Mar 9, 2026

cscs-ci run distributed

@DropD
Copy link
Contributor Author

DropD commented Mar 12, 2026

cscs-ci run default

@DropD
Copy link
Contributor Author

DropD commented Mar 12, 2026

cscs-ci run distributed

DropD added a commit to GridTools/gt4py that referenced this pull request Mar 17, 2026
## Description

Partner-PR in icon4py: C2SM/icon4py#1096 (make
sure this passes tests first)

Radically reduce the amount of required type ignores in client code
which uses the `from gt4py import next as gtx` pattern.

Add a mypy plugin, which (when used) can also remove false positives for `Field[Dims[SomeDim], ...]`, where 'SomeDim' is an **instance** of `Dimension` (as mandated by gt4py), as well as false positives for missing binary ops between `float64` and `float` fields / scalars.

- fixes #2496 
- fixes #2503 

Experimenting with this in icon4py reveals more ways in which gt4py
blocks client code type checking, which have not been addressed in this
PR so far:

- [x] #2507 
- [x] subtly different versions of #2507 where mypy reports a mismatch
in dtypes, which have not been looked into further so far

## Requirements

- [X] All fixes and/or new features come with corresponding tests.
- [X] Important design decisions have been documented in the appropriate
ADR inside the [docs/development/ADRs/](docs/development/ADRs/README.md)
folder.

---------

Co-authored-by: Enrique González Paredes <enriqueg@cscs.ch>
@github-actions
Copy link

Mandatory Tests

Please make sure you run these tests via comment before you merge!

  • cscs-ci run default
  • cscs-ci run distributed

Optional Tests

To run benchmarks you can use:

  • cscs-ci run benchmark-bencher

To run tests and benchmarks with the DaCe backend you can use:

  • cscs-ci run dace

To run test levels ignored by the default test suite (mostly simple datatest for static fields computations) you can use:

  • cscs-ci run extra

For more detailed information please look at CI in the EXCLAIM universe.

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

1 participant