Skip to content

Align the Python version floor in security-tracker-stats-dashboard #948

Description

@justinmclean

Summary

tools/security-tracker-stats-dashboard/pyproject.toml declares three different
Python version floors across its own settings.

Background

requires-python and ruff say 3.9, mypy says 3.10. mypy therefore type-checks
against a version the package claims to support running below, so a 3.10-only
construct type-checks clean and fails at import on 3.9. The >=3.9 floor also
means PEP 604 X | Y unions must stay in annotations guarded by
from __future__ import annotations, never in runtime positions.

Where to look

  • pyproject.toml line 27 (requires-python = ">=3.9"), line 36 (ruff
    target-version = "py39"), line 44 ([tool.mypy] python_version = "3.10").
  • Sibling tools/*/pyproject.toml show what floor the rest of the repo settles on.

Acceptance criteria

  • All three settings agree on one floor.
  • If the floor lands on 3.9, no runtime-position PEP 604 union remains.
  • uv run --directory tools/security-tracker-stats-dashboard --group dev pytest passes.

Estimated effort

~1 hour for someone new to the codebase, plus a look for runtime unions.

Metadata

Metadata

Assignees

No one assigned

    Labels

    Type

    No type

    Projects

    No projects

    Milestone

    No milestone

    Relationships

    None yet

    Development

    No branches or pull requests

    Issue actions