🇺🇸: This project automates the integration of descriptive metadata for the management of a digital archive for Liverani's drawings on WordPress via the Tainacan plugin.
🇮🇹: Questo progetto automatizza l'integrazione di metadati descrittivi per la gestione di un archivio digitale di disegni di Liverani su WordPress tramite il plugin Tainacan.
This system processes a collection of drawings. It combines descriptive metadata (downloaded dynamically from Pater's API) with descriptive metadata collected in a separate CSV file.
- Pater's API interaction: Downloads JSON data related to a list of drawings from Pater and converts it into a CSV table.
- Custom merging: Merges the CSV obtained via the API calls with another CSV generated manually and containing additional data that are not present in Pater (e.g., latitude and longitude).
- Tainacan ready: Automatically formats column headers using a specific syntax (e.g.,
Title|text|status_public) for the WordPress Tainacan CSV importer.
main.py: Pipeline orchestrator.config.py: Centralised configuration file.src/extract.py: Extraction engine that uses JSONPath.src/merge.py: Script for merging one full CSV file with a selection of columns extracted from another CSV file.src/prep.py: Formatting logic for Tainacan integration.
This project relies on uv for fast and reliable dependency management.
- Installing uv: If you haven't installed it yet, run:
curl -LsSf https://astral-sh.uv/install.sh | sh- Project synchronization: Create the virtual environment and install dependencies with a single command:
uv sync-
Configuration: Verify directory paths and the metadata CSV file in
config.py. -
Execution: Run the processing pipeline using
uv:
uv run main.py- Output: The script will generate a CSV dataset containing the data downloaded from Pater, another CSV dataset containing complete integrated data, and a third CSV dataset formatted for Tainacan import.
Questo sistema elabora una collezione di disegni. Combina i metadati descrittivi (scaricati dinamicamente dall'API di Pater) con i metadati descrittivi raccolti in un file CSV separato.
- Interazione con le API di Pater: Scarica i dati in formato JSON relativi a un elenco di disegni da Pater e li converte in una tabell***a CSV.
- Merge personalizzato: Unisce il CSV ottenuto tramite le chiamate API con un altro CSV generato manualmente contenente dati aggiuntivi non presenti su Pater (ad esempio, latitudine e longitudine).
- Preparazione per Tainacan: Formatta automaticamente le intestazioni delle colonne con una sintassi specifica (es.
Identificativo|text|status_private) per l'importatore CSV di Tainacan.
main.py: Orchestratore della pipeline.config.py: File di configurazione centralizzato.src/extract.py: Motore di estrazione che utilizza JSONPath.src/merge.py: Script per l'unione di un file CSV completo con una selezione di colonne estratte da un altro file CSV.src/prep.py: Logica di formattazione per l'integrazione con Tainacan.
Questo progetto utilizza uv per una gestione rapida e affidabile delle dipendenze.
- Installazione di uv: Se non lo hai già, installalo con:
curl -LsSf https://astral-sh.uv/install.sh | sh- Sincronizzazione progetto: Crea l'ambiente virtuale e installa le dipendenze con:
uv sync-
Configurazione: Verifica i percorsi delle directory e del file CSV in
config.py. -
Esecuzione: Avvia la pipeline di elaborazione tramite
uv:
uv run main.py- Risultato: Il comando genererà un dataset CSV contenente i dati estratti dall'API, un altro dataset CSV contenente i dati completi e un terzo dataset CSV formattato per l'importazione automatica in Tainacan.