Hacker News new | ask | show | jobs
by okso 750 days ago
You may be interested in the type matching provided by Pydantic. It is a handy way to avoid writing `match-case` expressions.

``` >>> from pydantic import BaseModel >>> from typing import Literal, List

>>> class Chicken(BaseModel): ... n_legs: Literal[2]

>>> class Cat(BaseModel): ... n_legs: Literal[4]

>>> class Farm(BaseModel): ... animals: List[Chicken | Cat]

>>> Farm.model_validate(dict(animals=[{'n_legs': 2}, {'n_legs': 4}])) Farm(animals=[Chicken(n_legs=2), Cat(n_legs=4)]) ```