Skip to content

Update to GT4Py v1.1.8: adapt type hints (and ignores)#1096

Merged
havogt merged 26 commits intoC2SM:mainfrom
DropD:ricoh-typing-upgrade
Mar 25, 2026
Merged

Update to GT4Py v1.1.8: adapt type hints (and ignores)#1096
havogt merged 26 commits intoC2SM:mainfrom
DropD:ricoh-typing-upgrade

Conversation

@DropD
Copy link
Copy Markdown
Contributor

@DropD DropD commented Mar 9, 2026

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

@DropD
Copy link
Copy Markdown
Contributor Author

DropD commented Mar 9, 2026

cscs-ci run default

@DropD
Copy link
Copy Markdown
Contributor Author

DropD commented Mar 9, 2026

cscs-ci run distributed

@DropD
Copy link
Copy Markdown
Contributor Author

DropD commented Mar 12, 2026

cscs-ci run default

@DropD
Copy link
Copy Markdown
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>
@havogt havogt changed the title Adapt type hints (and ignores) to gt4py#2484 Update to GT4Py v1.1.8: adapt type hints (and ignores) Mar 25, 2026
@havogt
Copy link
Copy Markdown
Contributor

havogt commented Mar 25, 2026

cscs-ci run default

@havogt
Copy link
Copy Markdown
Contributor

havogt commented Mar 25, 2026

cscs-ci run distributed

@havogt havogt marked this pull request as ready for review March 25, 2026 11:08
@havogt
Copy link
Copy Markdown
Contributor

havogt commented Mar 25, 2026

cscs-ci run dace

@havogt
Copy link
Copy Markdown
Contributor

havogt commented Mar 25, 2026

cscs-ci run default

@havogt
Copy link
Copy Markdown
Contributor

havogt commented Mar 25, 2026

cscs-ci run default

Comment on lines +777 to +778
def get_float(self, name: str) -> float:
return float(self.get(name, type_=factory.RetrievalType.SCALAR))
Copy link
Copy Markdown
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

wondering if this should return wpfloat?

Copy link
Copy Markdown
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

I changed it...

@havogt
Copy link
Copy Markdown
Contributor

havogt commented Mar 25, 2026

cscs-ci run default

@havogt
Copy link
Copy Markdown
Contributor

havogt commented Mar 25, 2026

cscs-ci run default

@havogt
Copy link
Copy Markdown
Contributor

havogt commented Mar 25, 2026

cscs-ci run default

@github-actions
Copy link
Copy Markdown

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.

Copy link
Copy Markdown
Contributor

@msimberg msimberg left a comment

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Approving @havogt's new changes.

Copy link
Copy Markdown
Contributor

@havogt havogt left a comment

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

The new functions get_int32 and get_wpfloat should probably be removed again and the typing around factory.get improved by making the type part of the object that is used to retrieve the information.

@havogt havogt merged commit ef5717a into C2SM:main Mar 25, 2026
53 checks passed
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.

3 participants