pydata / pydata/xarray

Typing with Variadic Generics in python 3.11 (PEP 646)

Open
#7,227 5 comments 0 reactions 0 assignees View on GitHub

Nobody has claimed this yet.

topic-typing
Dominant language
Python
Stars
4.2k
Forks
1.4k
Avg merge
2d 15h
Merged PRs (30d)
14

Description

What is your issue?

I just saw this new typing feature in python 3.11, and I'm wondering whether / where we could usefully use this? The feature is parametrizing Generics with arbitrary numbers of TypeVars, which allows you to have Array types whose static typing behaviour is a function of their shape. (But we could possibly use it for a tuple of dims too...) We might use it to do things like:

  • Specify that a function expects an array of a certain dimensionality
  • Overload methods based on the array dimensionality (e.g. .plot for 1D vs 2D arrays)
  • (If they implement Shape Arithmetic) Type hint how certain methods will change the output shape?

@headtr1ck @max-sixty any thoughts?

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

The issue names PEP 646 and possible uses for xarray array shapes, but no files, tests, or entry points. Start by reading PEP 646 and reviewing the proposed use cases; the work is complete only after the project agrees on a concrete typing scope and implementation target.

Written by the indexing model from the issue text.

Assessment

Tech stack
python
Domain
data
Issue type
Feature
Difficulty
5/5
Estimated time
Over a week
Activity status
Stale
Clarity
Needs clarification
Newbie friendliness
25/100

Get new issues in your inbox

A short digest of beginner-friendly GitHub issues.