Skip to content

Commit

Permalink
Use chain.from_iterable in class_validators.py (#1642)
Browse files Browse the repository at this point in the history
* Use chain.from_iterable in class_validators.py

* fix change

Co-authored-by: Samuel Colvin <s@muelcolvin.com>
  • Loading branch information
cool-RR and samuelcolvin committed Jun 27, 2020
1 parent 5a2d787 commit ecb54c5
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 ecb54c5

Please sign in to comment.