mirror of
https://github.com/astral-sh/ruff.git
synced 2025-10-11 02:42:15 +00:00

Some checks are pending
CI / Determine changes (push) Waiting to run
CI / cargo fmt (push) Waiting to run
CI / cargo clippy (push) Blocked by required conditions
CI / cargo test (linux) (push) Blocked by required conditions
CI / cargo test (linux, release) (push) Blocked by required conditions
CI / cargo test (windows) (push) Blocked by required conditions
CI / cargo test (wasm) (push) Blocked by required conditions
CI / cargo build (release) (push) Waiting to run
CI / cargo build (msrv) (push) Blocked by required conditions
CI / cargo fuzz build (push) Blocked by required conditions
CI / fuzz parser (push) Blocked by required conditions
CI / test scripts (push) Blocked by required conditions
CI / ecosystem (push) Blocked by required conditions
CI / cargo shear (push) Blocked by required conditions
CI / python package (push) Waiting to run
CI / pre-commit (push) Waiting to run
CI / mkdocs (push) Waiting to run
CI / formatter instabilities and black similarity (push) Blocked by required conditions
CI / test ruff-lsp (push) Blocked by required conditions
CI / benchmarks (push) Blocked by required conditions
48 lines
1.1 KiB
Python
48 lines
1.1 KiB
Python
from typing import TypedDict, NotRequired, Literal
|
|
import typing
|
|
|
|
# dict literal
|
|
MyType = TypedDict("MyType", {"a": int, "b": str})
|
|
|
|
# dict call
|
|
MyType = TypedDict("MyType", dict(a=int, b=str))
|
|
|
|
# kwargs
|
|
MyType = TypedDict("MyType", a=int, b=str)
|
|
|
|
# Empty TypedDict
|
|
MyType = TypedDict("MyType")
|
|
|
|
# Literal values
|
|
MyType = TypedDict("MyType", {"a": "hello"})
|
|
MyType = TypedDict("MyType", a="hello")
|
|
|
|
# NotRequired
|
|
MyType = TypedDict("MyType", {"a": NotRequired[dict]})
|
|
|
|
# total
|
|
MyType = TypedDict("MyType", {"x": int, "y": int}, total=False)
|
|
|
|
# using Literal type
|
|
MyType = TypedDict("MyType", {"key": Literal["value"]})
|
|
|
|
# using namespace TypedDict
|
|
MyType = typing.TypedDict("MyType", {"key": int})
|
|
|
|
# invalid identifiers (OK)
|
|
MyType = TypedDict("MyType", {"in": int, "x-y": int})
|
|
|
|
# unpacking (OK)
|
|
c = {"c": float}
|
|
MyType = TypedDict("MyType", {"a": int, "b": str, **c})
|
|
|
|
# Empty dict literal
|
|
MyType = TypedDict("MyType", {})
|
|
|
|
# Empty dict call
|
|
MyType = TypedDict("MyType", dict())
|
|
|
|
# Unsafe fix if comments are present
|
|
X = TypedDict("X", {
|
|
"some_config": int, # important
|
|
})
|