Skip to content

DISCUSS: Agree a type-hint policy #897

Description

@mmcky

The decision needed

Type annotations cover 9 of 481 functions (1.9%), all in three recently added game_theory modules (game_converters.py, howson_lcp.py, polymatrix_game.py). New code annotates; old code does not; nothing records which is intended.

The decision has been pending in concrete form for a long time: PR #576 ("Annotate normal_form_game.py") has been open more than five years. Resolving the policy resolves the PR, one way or the other.

Questions for the team

  1. Are annotations expected on new code, welcome but optional, or out of scope?
  2. If expected, is the target the public API surface only, or everything?
  3. Numba-jitted functions have real constraints — annotations on @njit functions are informational and can mislead about what numba actually accepts. Does the policy carve them out?
  4. Is a py.typed marker and a checked mypy job on the roadmap, or would annotations be documentation-only?
  5. Does PR Annotate normal_form_game.py #576 merge, get rebased, or get closed?

Whatever is decided, write it in the contributing guide. The current state is not a wrong decision; it is an unmade one, and the cost falls on contributors who cannot tell whether adding hints will be welcomed or reverted. Close this thread with a summarised decision and spawn concrete follow-ups.


From the July 2026 technical-debt audit (AI-assisted; claims verified against 28d4b3b on 2026-07-25).

Metadata

Metadata

Assignees

No one assigned

    Labels

    Type

    No type

    Projects

    No projects

    Relationships

    None yet

    Development

    No branches or pull requests

    Issue actions