How do I use "with" as a key in a TypedDict?

Question:

I want to use with as a key in a TypedDict in python 3.10.

I have:

from typing import TypedDict, Optional

class Operation(TypedDict, total=False):
    uses: str
    with: Optional[ActionCheckout]

But my IDE says I cannot do this?

idecomplain

Asked By: Joey Stout

||

Answers:

with is a keyword in Python for Context Managers. Have a look here: https://realpython.com/python-with-statement/

Answered By: Sam

You won’t be able to use the declarative syntax, as with (being a hard keyword defined by the grammar) is not a valid identifier; use the functional syntax instead.

Operation = TypedDict('Operation', {'uses': str, 'with': Optional[ActionCheckout]})

This is specifically addressed in the documentation:

The functional syntax should also be used when any of the keys are not valid identifiers, for example because they are keywords

Answered By: chepner
Categories: questions Tags: , ,
Answers are sorted by their score. The answer accepted by the question owner as the best is marked with
at the top-right corner.