Skip to content

Commit

Permalink
Use chain.from_iterable in class_validators.py
Browse files Browse the repository at this point in the history
  • Loading branch information
cool-RR committed Jun 17, 2020
1 parent 0cee311 commit f45ad83
Show file tree
Hide file tree
Showing 2 changed files with 6 additions and 5 deletions.
3 changes: 3 additions & 0 deletions changes/1642-cool-RR.txt
@@ -0,0 +1,3 @@
Use chain.from_iterable in class_validators.py.

This is a faster and more idiomatic way of using `itertools.chain`. Instead of computing all the items in the iterable and storing them in memory, they are computed one-by-one and never stored as a huge list. This can save on both runtime and memory space.
8 changes: 3 additions & 5 deletions pydantic/class_validators.py
Expand Up @@ -164,11 +164,9 @@ def get_validators(self, name: str) -> Optional[Dict[str, Validator]]:

def check_for_unused(self) -> None:
unused_validators = set(
chain(
*[
(v.func.__name__ for v in self.validators[f] if v.check_fields)
for f in (self.validators.keys() - self.used_validators)
]
chain.from_iterable(
(v.func.__name__ for v in self.validators[f] if v.check_fields)
for f in (self.validators.keys() - self.used_validators)
)
)
if unused_validators:
Expand Down

0 comments on commit f45ad83

Please sign in to comment.