Required
Remove Optional from all fields
Make all fields required by removing | None.
Quick Example
import typemap_extensions as tm
from typemap import eval_typing
class User:
name: str | None
age: int | None
email: str | None
RequiredUser = eval_typing(tm.Required[User])
# Results in: name: str, age: int, email: strSignature
class Required[T]:
"""Remove Optional from all fields."""What It Does
Required is the inverse of Partial. It removes | None from all fields.
Usage
Basic Required
class Config:
host: str | None
port: int | None
debug: bool | None
FullConfig = eval_typing(tm.Required[Config])
# Results in: host: str, port: int, debug: boolWith TypedDict
# TypedDict with optional fields
class UserDict(TypedDict, total=False):
name: str
age: int
# Make all required
StrictUser = eval_typing(tm.Required[UserDict])Use Cases
- Validation - Ensure all fields are present
- Transformation - Convert optional configs to required
- Type narrowing - Remove ambiguity
Partial vs Required
| Operation | str becomes | str | None becomes |
|---|---|---|
Partial | str | None | str | None |
Required | str | str |
TypeScript Comparison
// TypeScript
type RequiredUser = Required<Partial<User>>;
// typemap
RequiredUser = eval_typing(tm.Required[tm.Partial[User]])See Also
- Partial - Make fields optional
- DeepPartial - Recursively make optional