diff options
Diffstat (limited to 'youtube_dlc/utils.py')
-rw-r--r-- | youtube_dlc/utils.py | 11 |
1 files changed, 11 insertions, 0 deletions
diff --git a/youtube_dlc/utils.py b/youtube_dlc/utils.py index 34a14424a..4aaee0b5f 100644 --- a/youtube_dlc/utils.py +++ b/youtube_dlc/utils.py @@ -5934,3 +5934,14 @@ def load_plugins(name, type, namespace): if plugin_info[0] is not None: plugin_info[0].close() return classes + + +def traverse_dict(dictn, keys, casesense=True): + if not isinstance(dictn, dict): + return None + first_key = keys[0] + if not casesense: + dictn = {key.lower(): val for key, val in dictn.items()} + first_key = first_key.lower() + value = dictn.get(first_key, None) + return value if len(keys) < 2 else traverse_dict(value, keys[1:], casesense) |