Added so much stuff I cant keep up. I think some sorting capability and a way to add metadata to each folder (WIP)

This commit is contained in:
Kylian Schmidt
2025-07-29 09:38:28 +02:00
parent 3e2aaa4be8
commit f3adbe49fa
30 changed files with 1134 additions and 697 deletions
+45
View File
@@ -0,0 +1,45 @@
from typing import Dict, Any
import json
from pathlib import Path
def open_metadata(path: str, filename: str = "metadata.json") -> Dict[str, Any]:
"""
Open metadata file and return its contents as a dictionary.
Args:
path: The directory path where the metadata file is located.
filename: The name of the metadata file (default: "metadata.json").
Returns:
A dictionary containing the metadata.
"""
with open(Path(path) / filename, 'r', encoding='utf-8') as f:
try:
return json.load(f)
except json.JSONDecodeError as e:
raise ValueError(f"Error decoding JSON from {filename}: {e}")
except FileNotFoundError:
raise FileNotFoundError(f"Metadata file {filename} not found in {path}")
except Exception as e:
raise RuntimeError(f"Unexpected error reading metadata: {e}")
def merge_metadata(
base_metadata: Dict[str, Any],
additional_metadata: Dict[str, Any]
) -> Dict[str, Any]:
"""
Merge two metadata dictionaries.
Args:
base_metadata: The base metadata dictionary.
additional_metadata: The additional metadata dictionary to merge.
Returns:
A new dictionary containing the merged metadata.
"""
merged = base_metadata.copy()
for key, value in additional_metadata.items():
merged[key] = value
return merged