Files
pydantic/tests/pyright/pyright_example.py
T
Samuel Colvin 74403c2f15 test pyright with pydantic (#3972)
* test pyright with pydantic

* rename file to avoid pytest running it

* try another name 😴

* add docs about BaseSettings and Field

* add change
2022-05-11 19:00:37 +01:00

39 lines
790 B
Python

"""
This file is used to test pyright's ability to check pydantic code.
In particular pydantic provides the `@__dataclass_transform__` for `BaseModel`
and all subclasses (including `BaseSettings`), see #2721.
"""
from typing import List
from pydantic import BaseModel, BaseSettings, Field
class MyModel(BaseModel):
x: str
y: List[int]
m1 = MyModel(x='hello', y=[1, 2, 3])
m2 = MyModel(x='hello') # pyright: ignore
class Knight(BaseModel):
title: str = Field(default='Sir Lancelot') # this is okay
age: int = Field(23) # this works fine at runtime but will case an error for pyright
k = Knight() # pyright: ignore
class Settings(BaseSettings):
x: str
y: int
s1 = Settings.parse_obj({})
s2 = Settings() # pyright: ignore[reportGeneralTypeIssues]