Skip to content

chore(deps): update dev dependencies (ruff, nox, nox-uv)#601

Merged
gjtorikian merged 1 commit intonext-majorfrom
update-deps
Mar 27, 2026
Merged

chore(deps): update dev dependencies (ruff, nox, nox-uv)#601
gjtorikian merged 1 commit intonext-majorfrom
update-deps

Conversation

@gjtorikian
Copy link
Copy Markdown
Contributor

@gjtorikian gjtorikian commented Mar 27, 2026

Description

Several of our dev dependencies are wildly out of date. This PR updates them; some of them are major breaking changes, so I'll be targeting the next major version. Similarly, our pyproject toml used a quite restrictive == check (meaning, "exact version only"). I loosened them to ~= (meaning, minor and patch version updates are okay).

Notable changes includes:

  • dropping six. This is a compatibility layer between Python 2 and 3; with our new support for newer Python versions, it's no longer needed
  • replacing mypy with pyright. The mypy typechecker is quite slow, and modern Python tends to use pyright.

Note: Linting CI still fails on pyright because the types need to be corrected, but that will be sorted out in the autogenerated SDK PR. Tests all pass, though.

@gjtorikian gjtorikian requested review from a team as code owners March 27, 2026 18:52
@gjtorikian gjtorikian requested review from mthadley and removed request for a team March 27, 2026 18:52
@gjtorikian gjtorikian merged commit 8c258d2 into next-major Mar 27, 2026
10 of 11 checks passed
@gjtorikian gjtorikian deleted the update-deps branch March 27, 2026 18:53
@greptile-apps
Copy link
Copy Markdown
Contributor

greptile-apps bot commented Mar 27, 2026

Greptile Summary

This PR modernises the Python SDK's dev toolchain by updating several out-of-date dev dependencies and relaxing version constraints from exact pins (==) to compatible-release specifiers (~=). The two headline changes are replacing mypy with pyright for type-checking and dropping the six Python 2/3 compatibility shim.\n\nKey changes:\n- noxfile.py: mypy invocations in the typecheck and ci sessions replaced with pyright.\n- pyproject.toml: six removed from test group; mypy replaced with pyright~=1.1 in type_check; pytest-asyncio bumped from 0.23.81.3.0, pytest-cov from 5.0.07.1.0, nox from ~2025.11~2026.2, nox-uv from 0.7.00.7.1.\n- tests/test_sso.py & tests/test_user_management.py: from six.moves.urllib.parse import … replaced with the standard-library from urllib.parse import ….\n- tests/test_session.py: Parenthesised with statement syntax (Python 3.10+) used to improve readability of multi-context-manager blocks.\n- uv.lock: Regenerated to reflect all dependency changes; six, mypy, and mypy-extensions removed; pyright, nodeenv, and backports-asyncio-runner added.\n- Note: The [tool.mypy] section in pyproject.toml was not removed and no [tool.pyright] configuration was added as a replacement, leaving the old mypy settings as dead configuration.

Confidence Score: 5/5

Safe to merge; all remaining findings are minor style/cleanup suggestions with no impact on runtime behaviour.

All code changes are straightforward: a direct import substitution (six → stdlib), a cosmetic with-statement reformat, and tooling invocation updates (mypy → pyright). The only actionable finding is the leftover [tool.mypy] section, which is dead configuration and does not affect correctness or CI behaviour.

pyproject.toml — the stale [tool.mypy] section should be cleaned up and a [tool.pyright] config block added.

Important Files Changed

Filename Overview
pyproject.toml Dev dependency versions updated (pytest, pytest-asyncio, pytest-cov, nox, nox-uv); mypy replaced with pyright; six removed. Stale [tool.mypy] section remains without a [tool.pyright] replacement.
noxfile.py Cleanly replaces mypy invocations with pyright in both the typecheck session and the ci session.
tests/test_sso.py Replaces six.moves.urllib.parse import with the standard library urllib.parse — correct and necessary after dropping the six dependency.
tests/test_user_management.py Same six→stdlib urllib.parse migration as test_sso.py; clean and correct.
tests/test_session.py Reformats nested with context managers to the parenthesized form (PEP 617, Python 3.10+) — stylistic improvement, no behavioural change.
uv.lock Lockfile regenerated to reflect dependency changes: six and mypy/mypy-extensions removed, pyright/nodeenv added, nox/nox-uv/pytest-asyncio/pytest-cov bumped.

Flowchart

%%{init: {'theme': 'neutral'}}%%
flowchart TD
    A[nox ci / nox typecheck] --> B{Type checker}
    B -->|Before| C[mypy\nmypy-extensions]
    B -->|After| D[pyright\nnodeenv]

    E[test suite] --> F{URL parsing}
    F -->|Before| G[six.moves.urllib.parse]
    F -->|After| H[urllib.parse stdlib]

    I[pyproject.toml version pins] --> J{Specifier}
    J -->|Before| K[== exact pin]
    J -->|After| L[~= compatible release]
Loading

Comments Outside Diff (1)

  1. pyproject.toml, line 35-45 (link)

    P2 Stale [tool.mypy] section

    Now that mypy has been removed as a dependency in favor of pyright, the [tool.mypy] configuration block is dead code. It won't be used by anything in the project. Consider removing it (or replacing it with a [tool.pyright] block) to keep the config clean.

Reviews (1): Last reviewed commit: "chore(deps): update dev dependencies (ru..." | Re-trigger Greptile

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

Labels

None yet

Development

Successfully merging this pull request may close these issues.

1 participant