Add support for mapping types as custom root (#958)

* Add support for mapping types as custom root

* Incorporate feedback

* Add changes

* Incorporate feedback

* Add docs and tests

* Fix linting issue

* Incorporate more feedback

* Add more specific match
This commit is contained in:
dmontagu
2019-11-25 04:19:41 -08:00
committed by Samuel Colvin
parent 643266944c
commit 62bc930f57
5 changed files with 77 additions and 18 deletions
@@ -0,0 +1,17 @@
from typing import List, Dict
from pydantic import BaseModel, ValidationError
class Pets(BaseModel):
__root__: List[str]
print(Pets.parse_obj(['dog', 'cat']))
print(Pets.parse_obj({'__root__': ['dog', 'cat']})) # not recommended
class PetsByName(BaseModel):
__root__: Dict[str, str]
print(PetsByName.parse_obj({'Otis': 'dog', 'Milo': 'cat'}))
try:
PetsByName.parse_obj({'__root__': {'Otis': 'dog', 'Milo': 'cat'}})
except ValidationError as e:
print(e)