python / python/mypy

Type checking `struct.unpack`

Open
#20,869 1 comment 3 reactions 0 assignees View on GitHub

Nobody has claimed this yet.

feature topic-plugins
Dominant language
Python
Stars
20.6k
Forks
3.3k
PR merge metrics
PR metrics pending

Description

Feature

Recently I made a PR for ty to allow the type checker to inspect calls to struct.unpack and return static typing instead of having to cast() or ignoring the type. I believe mypy should add this too.

https://github.com/astral-sh/ty/issues/2437
https://github.com/astral-sh/ruff/pull/22562

Examples:
https://github.com/astral-sh/ruff/blob/main/crates/ty_python_semantic/resources/mdtest/struct_unpack.md

Contributor guide

Open the contributing guide

First steps

  1. Read the whole issue, then the project's contributing guide.
  2. Comment on the issue to say you are picking it up — it saves two people doing the same work.
  3. Fork the repository and make your change on a branch.
  4. Open a pull request that references the issue number.

Research direction

Start by reading the linked ty issue and Ruff PR, then review the struct_unpack.md example at crates/ty_python_semantic/resources/mdtest/struct_unpack.md. Trace how mypy handles calls to struct.unpack and determine the intended inferred types from those examples. Done means mypy provides static typing for supported struct.unpack calls without requiring casts or ignores.

Written by the indexing model from the issue text.

Assessment

Tech stack
python
Domain
devtools
Issue type
Feature
Difficulty
4/5
Estimated time
3-5 days
Activity status
Stale
Clarity
Mostly clear
Newbie friendliness
42/100

Get new issues in your inbox

A short digest of beginner-friendly GitHub issues.