From 6163c477088fb76753ace288e7fb516836f75c41 Mon Sep 17 00:00:00 2001 From: Jesse Bannon Date: Mon, 24 Jul 2023 17:29:23 -0700 Subject: [PATCH] [FEATURE] Simplify ``video_tags`` --- src/ytdl_sub/plugins/video_tags.py | 11 +++++++++-- 1 file changed, 9 insertions(+), 2 deletions(-) diff --git a/src/ytdl_sub/plugins/video_tags.py b/src/ytdl_sub/plugins/video_tags.py index fc5366f6..07b57e07 100644 --- a/src/ytdl_sub/plugins/video_tags.py +++ b/src/ytdl_sub/plugins/video_tags.py @@ -1,3 +1,4 @@ +import copy from typing import Any from typing import Dict @@ -26,7 +27,8 @@ class VideoTagsOptions(OptionsDictValidator): description: "{description}" """ - _required_keys = {"tags"} + _optional_keys = {"tags"} + _allow_extra_keys = True @classmethod def partial_validate(cls, name: str, value: Any) -> None: @@ -39,7 +41,12 @@ class VideoTagsOptions(OptionsDictValidator): def __init__(self, name, value): super().__init__(name, value) - self._tags = self._validate_key(key="tags", validator=DictFormatterValidator) + old_tags = self._validate_key(key="tags", validator=DictFormatterValidator, default={}) + + new_tags_dict: Dict[str, Any] = copy.deepcopy(value) + new_tags_dict.pop("tags", None) + + self._tags = DictFormatterValidator(name=name, value=dict(old_tags._dict, **new_tags_dict)) @property def tags(self) -> DictFormatterValidator: