Compare commits

...

8 Commits

Author SHA1 Message Date
msramalho
81be65c828 Bump version to v0.5.18 for release 2023-05-24 11:19:02 +01:00
msramalho
0a91863212 typing fixes 2023-05-24 11:18:39 +01:00
msramalho
3ad8349e3f Bump version to v0.5.17 for release 2023-05-23 19:05:53 +01:00
msramalho
2768225cd1 fix: generator not called 2023-05-23 19:05:47 +01:00
msramalho
3e44b9b577 Bump version to v0.5.16 for release 2023-05-23 18:12:56 +01:00
msramalho
1a5797d0f8 feat: orchestrator fed returns archive result 2023-05-23 18:12:04 +01:00
msramalho
768b8fce9f Bump version to v0.5.15 for release 2023-05-19 12:35:26 +01:00
msramalho
613b1f1e50 properly overwrite configs 2023-05-19 12:35:19 +01:00
7 changed files with 19 additions and 13 deletions

View File

@@ -5,7 +5,7 @@ def main():
config = Config() config = Config()
config.parse() config.parse()
orchestrator = ArchivingOrchestrator(config) orchestrator = ArchivingOrchestrator(config)
orchestrator.feed() for r in orchestrator.feed(): pass
if __name__ == "__main__": if __name__ == "__main__":

View File

@@ -13,6 +13,7 @@ from ..formatters import Formatter
from ..storages import Storage from ..storages import Storage
from ..enrichers import Enricher from ..enrichers import Enricher
from . import Step from . import Step
from ..utils import update_nested_dict
@dataclass @dataclass
@@ -38,7 +39,7 @@ class Config:
self.cli_ops = {} self.cli_ops = {}
self.config = {} self.config = {}
def parse(self, use_cli=True, yaml_config_filename: str = None, overwrite_configs:str={}): def parse(self, use_cli=True, yaml_config_filename: str = None, overwrite_configs: str = {}):
""" """
if yaml_config_filename is provided, the --config argument is ignored, if yaml_config_filename is provided, the --config argument is ignored,
useful for library usage when the config values are preloaded useful for library usage when the config values are preloaded
@@ -81,7 +82,7 @@ class Config:
# 2. read YAML config file (or use provided value) # 2. read YAML config file (or use provided value)
self.yaml_config = self.read_yaml(yaml_config_filename) self.yaml_config = self.read_yaml(yaml_config_filename)
self.yaml_config.update(overwrite_configs) # optional override programmatically update_nested_dict(self.yaml_config, overwrite_configs)
# 3. CONFIGS: decide value with priority: CLI >> config.yaml >> default # 3. CONFIGS: decide value with priority: CLI >> config.yaml >> default
self.config = defaultdict(dict) self.config = defaultdict(dict)

View File

@@ -1,7 +1,6 @@
from __future__ import annotations from __future__ import annotations
from ast import List from typing import Any, List
from typing import Any
from dataclasses import dataclass, field from dataclasses import dataclass, field
from dataclasses_json import dataclass_json, config from dataclasses_json import dataclass_json, config
import mimetypes import mimetypes

View File

@@ -1,7 +1,6 @@
from __future__ import annotations from __future__ import annotations
from ast import List, Set from typing import Any, List, Union, Dict
from typing import Any, Union, Dict
from dataclasses import dataclass, field from dataclasses import dataclass, field
from dataclasses_json import dataclass_json, config from dataclasses_json import dataclass_json, config
import datetime import datetime

View File

@@ -1,6 +1,5 @@
from __future__ import annotations from __future__ import annotations
from ast import List from typing import Generator, Union, List
from typing import Union
from .context import ArchivingContext from .context import ArchivingContext
@@ -10,7 +9,6 @@ from ..formatters import Formatter
from ..storages import Storage from ..storages import Storage
from ..enrichers import Enricher from ..enrichers import Enricher
from ..databases import Database from ..databases import Database
from .media import Media
from .metadata import Metadata from .metadata import Metadata
import tempfile, traceback import tempfile, traceback
@@ -29,9 +27,9 @@ class ArchivingOrchestrator:
for a in self.archivers: a.setup() for a in self.archivers: a.setup()
def feed(self) -> None: def feed(self) -> Generator[Metadata]:
for item in self.feeder: for item in self.feeder:
self.feed_item(item) yield self.feed_item(item)
def feed_item(self, item: Metadata) -> Metadata: def feed_item(self, item: Metadata) -> Metadata:
try: try:

View File

@@ -40,3 +40,12 @@ class DateTimeEncoder(json.JSONEncoder):
def dump_payload(p): def dump_payload(p):
return json.dumps(p, ensure_ascii=False, indent=4, cls=DateTimeEncoder) return json.dumps(p, ensure_ascii=False, indent=4, cls=DateTimeEncoder)
def update_nested_dict(dictionary, update_dict):
# takes 2 dicts and overwrites the first with the second only on the changed balues
for key, value in update_dict.items():
if key in dictionary and isinstance(value, dict) and isinstance(dictionary[key], dict):
update_nested_dict(dictionary[key], value)
else:
dictionary[key] = value

View File

@@ -3,7 +3,7 @@ _MAJOR = "0"
_MINOR = "5" _MINOR = "5"
# On main and in a nightly release the patch should be one ahead of the last # On main and in a nightly release the patch should be one ahead of the last
# released build. # released build.
_PATCH = "14" _PATCH = "18"
# This is mainly for nightly builds which have the suffix ".dev$DATE". See # This is mainly for nightly builds which have the suffix ".dev$DATE". See
# https://semver.org/#is-v123-a-semantic-version for the semantics. # https://semver.org/#is-v123-a-semantic-version for the semantics.
_SUFFIX = "" _SUFFIX = ""