fix(deps): update dependency mypy to v2 - autoclosed#495
Closed
renovate[bot] wants to merge 1 commit into
Closed
Conversation
a0f9e64 to
2e5ac80
Compare
shcheklein
added a commit
that referenced
this pull request
Jul 8, 2026
#497) Consolidates all open Renovate deps/chore PRs into one change, fixes the CI breakage on `main`, and moves the supported Python range to 3.10β3.14. ## Why main was red The weekly runs on `main` have been failing on Python 3.10+ since early June. Root cause: **typer β₯0.26 vendors click** and no longer depends on it, so fresh installs stopped pulling click in β while gto imports `click` directly (`gto/cli.py`, `gto/utils.py`, `tests/conftest.py`) without declaring it. pylint failed with `E0401: Unable to import 'click'`. It's worse than lint: gto's CLI machinery subclasses real-click classes (`GtoCliMixin(click.Command)`, `@click.pass_context`) and mixes them into typer's (now vendored-click) `TyperCommand`/`TyperGroup` MROs. With typer 0.26.x even `gto --help` crashes on startup (`TypeError: Command.__init__() got an unexpected keyword argument 'rich_markup_mode'`) β i.e. a fresh `pip install gto` on Python 3.10+ currently yields a broken CLI. Python 3.9 was unaffected only because it resolves typer 0.23.2 (0.24+ requires Python β₯3.10; all pre-0.26 versions depend on real click). **Fix:** declare `click>=8,<9` explicitly and pin `typer>=0.4.1,<0.26`. Migrating to vendored-click typer (β₯0.26) requires reworking the CLI help/exception machinery against `typer._click` and should be tracked as a separate effort. ## Python support - Drop Python 3.9 (EOL October 2025): removed from test matrix, classifiers; `requires-python = ">=3.10"` - Add Python 3.14 to the test matrix and classifiers - Remove the `CliRunner` `mix_stderr` shim in `tests/conftest.py` (only needed for the old click that py3.9 resolved) - `zip(..., strict=False)` fixes auto-applied by ruff `B905`, which activates with the 3.10+ target ## Consolidated Renovate updates | PR | Update | Resolution | |---|---|---| | #496 | `actions/checkout` v5 β v7 | taken as-is | | #493 | `codecov/codecov-action` v4 β v7 | taken as-is | | #484 | deploy job Python 3.13 β 3.14 | taken, plus 3.14 in test matrix | | #487 | pylint 3.3.8 β 4.0.6 | taken (pylint 4 requires β₯3.10 β unblocked by the 3.9 drop) | | #482 | pylint β 3.3.9 | superseded by #487 | | #495 | mypy β v2 | delivered as `mypy==2.2.0` (the py3.9-only `<1.11.0` pin is gone with 3.9) | | #494 | mypy β `<1.20.3` | superseded by #495 | ## Verification Ran locally on macOS for Python **3.10**, **3.13**, and **3.14**, each with a fresh venv: - `pip install -e .[dev]` resolves cleanly (click 8.4.2, typer 0.23.2, mypy 2.2.0, pylint 4.0.6, pygit2 1.19.3) - `pre-commit run --all-files` β all hooks pass (ruff, ruff-format, mypy 2.2.0, pylint 4.0.6) - `pytest` β 165 passed on each - `gto --help` / `gto show` / `gto --version` work (broken before on 3.10+ with unpinned typer) - `python -m build && twine check --strict dist/*` passes on 3.14 (deploy job path) π€ Generated with [Claude Code](https://claude.com/claude-code) --------- Co-authored-by: Claude Fable 5 <noreply@anthropic.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.
This PR contains the following updates:
<1.11.0β<2.2.1Release Notes
python/mypy (mypy)
v2.2.0Compare Source
v2.1.0Compare Source
v2.0.0Compare Source
v1.20.2Compare Source
v1.20.1Compare Source
dict.__or__typeshed change (Ivan Levkivskyi, PR 21186)type[T]in type calls (Shantanu, PR 21174)Anytyped variables (Shantanu, PR 21142)--warn-unused-configshould not be a strict flag (Ivan Levkivskyi, PR 21139)v1.20.0Compare Source
v1.19.1types.NoneTypein match cases (A5rocks, PR 20383)v1.19.0v1.18.2object.__init__(Stephen Morton, PR 19733)v1.18.1v1.17.1Compare Source
Noneas constraints bottom if no bottoms were provided (Stanislav Terliakov, PR 19485)hasattr" in dmypy (Stanislav Terliakov, PR 19428)v1.17.0Compare Source
v1.16.1Compare Source
v1.16.0Compare Source
v1.15.0Compare Source
v1.14.1Compare Source
v1.14.0Compare Source
v1.13.0Compare Source
v1.12.1Compare Source
os.pathstubs affecting use ofos.PathLike[Any](Shantanu, PR 17995)v1.12.0Compare Source
v1.11.2Compare Source
TypedDictitem types before storing (Ivan Levkivskyi, PR 17640)v1.11.1Compare Source
RawExpressionType.acceptcrash with--cache-fine-grained(Anders Kaseorg, PR 17588)typing.TypeAliasTypebeing undefined on python < 3.12 (Nikita Sobolev, PR 17558)types.GenericAliaslookup crash (Shantanu, PR 17543)v1.11.0Compare Source
Configuration
π Schedule: (UTC)
π¦ Automerge: Disabled by config. Please merge this manually once you are satisfied.
β» Rebasing: Whenever PR is behind base branch, or you tick the rebase/retry checkbox.
π Ignore: Close this PR and you won't be reminded about this update again.
This PR was generated by Mend Renovate. View the repository job log.