[utils] traverse_obj: Allow unbranching using all and any (#9571)
Authored by: Grub4K
This commit is contained in:
parent
979ce2e786
commit
3699eeb67c
2 changed files with 41 additions and 0 deletions
|
|
@ -228,6 +228,15 @@ def traverse_obj(
|
|||
if not casesense and isinstance(key, str):
|
||||
key = key.casefold()
|
||||
|
||||
if key in (any, all):
|
||||
has_branched = False
|
||||
filtered_objs = (obj for obj in objs if obj not in (None, {}))
|
||||
if key is any:
|
||||
objs = (next(filtered_objs, None),)
|
||||
else:
|
||||
objs = (list(filtered_objs),)
|
||||
continue
|
||||
|
||||
if __debug__ and callable(key):
|
||||
# Verify function signature
|
||||
inspect.signature(key).bind(None, None)
|
||||
|
|
|
|||
Loading…
Add table
Add a link
Reference in a new issue