Skip to content

chore(handwritten): centralize mypy configuration and update handwritten package noxfiles#17409

Draft
chalmerlowe wants to merge 5 commits into
mainfrom
feat/centralize-mypy-handwritten
Draft

chore(handwritten): centralize mypy configuration and update handwritten package noxfiles#17409
chalmerlowe wants to merge 5 commits into
mainfrom
feat/centralize-mypy-handwritten

Conversation

@chalmerlowe

@chalmerlowe chalmerlowe commented Jun 9, 2026

Copy link
Copy Markdown
Contributor
  • Relies on a centralized mypy.ini file at the root of the repository to consolidate all shared and package-specific mypy exceptions.
  • Deletes the individual mypy.ini files from the 15 strictly handwritten libraries, establishing the root configuration as the source of truth.
  • Refactored their noxfile.py files to define MYPY_CONFIG_FILE dynamically and standardized their session.run("mypy", ...) invocations.

Note

Work on generated and hybrid libraries is outside the scope of this PR and can be found here: #17408

@gemini-code-assist gemini-code-assist Bot left a comment

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.

Code Review

This pull request consolidates multiple package-specific mypy.ini configuration files into a single, centralized mypy.ini at the root directory, and updates the noxfile.py files across various packages to reference this central configuration. The reviewer pointed out that setting a global python_version = 3.14 in the centralized configuration and overriding it in individual packages can lead to inconsistent configurations, suggesting that shared configurations should be applied consistently.

Comment thread mypy.ini Outdated
@chalmerlowe chalmerlowe force-pushed the feat/centralize-mypy-handwritten branch from 3a99b94 to 1afd309 Compare June 9, 2026 19:19
chalmerlowe added a commit that referenced this pull request Jun 16, 2026
…-cloud-datastore POC (#17408)

> [!note]
> This is step one of a multi-step process. The work done here is
outlined below.
Additional steps (to be completed in other PRs) include:
> * generate the remaining **generated packages**
> * generate and/or post process **hybrid packages**

This work:
* Adds a centralized `mypy.ini` file at the root of the repository.
* Updates GAPIC generator templates to omit local `mypy.ini` and
dynamically resolve the root config via a `MYPY_CONFIG_FILE` constant.
* Removes `mypy.ini` replacements from `datastore-integration.yaml`
post-processing.
* Regenerates `google-cloud-datastore` using the updated generator
configurations to serve as a proof of concept.

> [!note]
> Work on strictly handwritten libraries is outside the scope of this PR
and can be found here:
#17409
@chalmerlowe chalmerlowe force-pushed the feat/centralize-mypy-handwritten branch from 3a08f78 to 4854f7e Compare June 17, 2026 13:55
@chalmerlowe chalmerlowe added the kokoro:force-run Add this label to force Kokoro to re-run the tests. label Jun 17, 2026
@yoshi-kokoro yoshi-kokoro removed the kokoro:force-run Add this label to force Kokoro to re-run the tests. label Jun 17, 2026
Comment thread packages/bigquery-magics/mypy.ini Outdated

@chalmerlowe chalmerlowe Jun 23, 2026

Copy link
Copy Markdown
Contributor Author

Choose a reason for hiding this comment

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

The bigquery-magics package does not support type-hinting, so there is no change to the noxfile at this time.

Comment thread mypy.ini Outdated
chalmerlowe added a commit that referenced this pull request Jun 23, 2026
> [!note]
> This is step one of a multi-step process. The work done here is
outlined below.
Additional steps (to be completed in other PRs) include:
> * generate the **generated packages**
> * generate and/or post process **hybrid packages**

This work:
* Adds a centralized `mypy.ini` file at the root of the repository.
* Updates GAPIC generator templates to omit local `mypy.ini` and
dynamically resolve the root config via a `MYPY_CONFIG_FILE` constant.

> [!note]
> Work on strictly handwritten libraries is outside the scope of this PR
and can be found here:
#17409

Partially resolves: #17322 🦕
@chalmerlowe chalmerlowe reopened this Jun 25, 2026
@chalmerlowe chalmerlowe force-pushed the feat/centralize-mypy-handwritten branch from 4b18dbc to 8e35192 Compare June 25, 2026 18:49
chalmerlowe added a commit that referenced this pull request Jun 25, 2026
…-cloud-datastore POC (#17408)

> [!note]
> This is step one of a multi-step process. The work done here is
outlined below.
Additional steps (to be completed in other PRs) include:
> * generate the remaining **generated packages**
> * generate and/or post process **hybrid packages**

This work:
* Adds a centralized `mypy.ini` file at the root of the repository.
* Updates GAPIC generator templates to omit local `mypy.ini` and
dynamically resolve the root config via a `MYPY_CONFIG_FILE` constant.
* Removes `mypy.ini` replacements from `datastore-integration.yaml`
post-processing.
* Regenerates `google-cloud-datastore` using the updated generator
configurations to serve as a proof of concept.

> [!note]
> Work on strictly handwritten libraries is outside the scope of this PR
and can be found here:
#17409
chalmerlowe added a commit that referenced this pull request Jun 25, 2026
> [!note]
> This is step one of a multi-step process. The work done here is
outlined below.
Additional steps (to be completed in other PRs) include:
> * generate the **generated packages**
> * generate and/or post process **hybrid packages**

This work:
* Adds a centralized `mypy.ini` file at the root of the repository.
* Updates GAPIC generator templates to omit local `mypy.ini` and
dynamically resolve the root config via a `MYPY_CONFIG_FILE` constant.

> [!note]
> Work on strictly handwritten libraries is outside the scope of this PR
and can be found here:
#17409

Partially resolves: #17322 🦕
@chalmerlowe chalmerlowe force-pushed the feat/centralize-mypy-handwritten branch from 8e35192 to 1598b24 Compare June 25, 2026 21:53
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.

2 participants