Coverage for src / piccione / upload / on_internet_archive.py: 95%
20 statements
« prev ^ index » next coverage.py v7.13.0, created at 2026-05-27 20:21 +0000
« prev ^ index » next coverage.py v7.13.0, created at 2026-05-27 20:21 +0000
1# SPDX-FileCopyrightText: 2025 Arcangelo Massari <arcangelo.massari@unibo.it>
2#
3# SPDX-License-Identifier: ISC
5import argparse
6from pathlib import Path
8import requests
9import yaml
10from internetarchive import upload
11from rich.console import Console
13console = Console()
16def upload_files(config_path: str | Path) -> None:
17 with Path(config_path).open() as file:
18 config = yaml.safe_load(file)
20 identifier = config["identifier"]
21 file_paths = config["file_paths"]
22 metadata = config["metadata"]
23 access_key = config["access_key"]
24 secret_key = config["secret_key"]
26 result = upload(
27 identifier=identifier,
28 files=file_paths,
29 metadata=metadata,
30 access_key=access_key,
31 secret_key=secret_key,
32 verbose=True,
33 verify=True,
34 retries=3,
35 retries_sleep=10,
36 validate_identifier=True,
37 )
39 first_result = result[0]
40 if isinstance(first_result, requests.Response) and first_result.ok:
41 console.print("Upload completed successfully!")
42 else:
43 console.print("Upload failed.")
46def main() -> None: # pragma: no cover
47 parser = argparse.ArgumentParser(description="Upload files to the Internet Archive.")
48 parser.add_argument("config_path", type=str, help="Path to the YAML configuration file.")
49 args = parser.parse_args()
51 upload_files(args.config_path)
54if __name__ == "__main__": # pragma: no cover
55 main()