1
0
mirror of https://github.com/mikf/gallery-dl.git synced 2024-11-21 18:22:30 +01:00

[config] support accumulating non-list values

fixes 1264fc518b
This commit is contained in:
Mike Fährmann 2024-11-16 21:13:57 +01:00
parent bced143750
commit 80454460ce
No known key found for this signature in database
GPG Key ID: 5680CA389D365A88
3 changed files with 26 additions and 4 deletions

View File

@ -261,13 +261,19 @@ def accumulate(path, key, conf=_config):
if key in conf:
value = conf[key]
if value:
result.extend(value)
if isinstance(value, list):
result.extend(value)
else:
result.append(value)
for p in path:
conf = conf[p]
if key in conf:
value = conf[key]
if value:
result[:0] = value
if isinstance(value, list):
result[:0] = value
else:
result.insert(0, value)
except Exception:
pass
return result

View File

@ -619,8 +619,6 @@ class DownloadJob(Job):
pp_opts = cfg("postprocessor-options")
pp_list = []
if isinstance(postprocessors, (dict, str)):
postprocessors = (postprocessors,)
for pp_dict in postprocessors:
if isinstance(pp_dict, str):
pp_dict = pp_conf.get(pp_dict) or {"name": pp_dict}

View File

@ -117,6 +117,24 @@ class TestConfig(unittest.TestCase):
self.assertEqual(
config.accumulate(("c", "c"), "l"), [5, 6])
config.set(() , "l", 4)
config.set(("c",) , "l", [2, 3])
config.set(("c", "c"), "l", 1)
self.assertEqual(
config.accumulate((), "l") , [4])
self.assertEqual(
config.accumulate(("c",), "l") , [2, 3, 4])
self.assertEqual(
config.accumulate(("c", "c"), "l"), [1, 2, 3, 4])
config.set(("c",), "l", None)
self.assertEqual(
config.accumulate((), "l") , [4])
self.assertEqual(
config.accumulate(("c",), "l") , [4])
self.assertEqual(
config.accumulate(("c", "c"), "l"), [1, 4])
def test_set(self):
config.set(() , "c", [1, 2, 3])
config.set(("b",) , "c", [1, 2, 3])