]> jfr.im git - yt-dlp.git/commit
[utils] Improve `traverse_obj`
authorpukkandan <redacted>
Thu, 15 Jul 2021 14:52:49 +0000 (20:22 +0530)
committerpukkandan <redacted>
Mon, 19 Jul 2021 21:12:11 +0000 (02:42 +0530)
commit8f3343809ea9055006898d1a6d82c19082eb2379
tree81a34b1af5f59ed284a0437ba23a0e54439da83f
parent0ba692acc8feffd46b6e1085fb4a2849b685945c
[utils] Improve `traverse_obj`

* Allow skipping a level: `traverse_obj([{k:v1}, {k:v2}], (None, k))` => `[v1, v2]`
* Make keys variadic: `traverse_obj(obj, k1: str, k2: str)` => `traverse_obj(obj, (k1,), (k2,))`
* Fetch from multiple keys: `traverse_obj([{k1:[1], k2:[2], k3:[3]}], (0, (k1, k2), 0))` => `[1, 2]`

TODO: Add tests
yt_dlp/utils.py