PyDataverse — це потужна Python-бібліотека для взаємодії з платформою Dataverse через API. Вона дозволяє:
• створювати набори даних,
• завантажувати файли,
• змінювати або зчитувати метадані,
• публікувати та версіонувати дані автоматично.
Цей інструмент особливо корисний для дата-стюардів, лабораторій і проєктів, які потребують автоматизованого управління науковими даними.
--------------------------------------------------------------------------------------
Код: Виділити все
pip install pydataverse
-------------------------------------------------------------------------------------
Крок 1: Імпортуємо бібліотеки й авторизуємось
Код: Виділити все
from pyDataverse.api import Api
from pyDataverse.models import Dataset
import json
api = Api("https://dataverse.example.org", "ВАШ_ТОКЕН")
Код: Виділити все
dataset = Dataset()
dataset.set({
"title": "Дослідження кліматичних умов 2025 року",
"author": [{"authorName": "Іваненко Ірина"}],
"datasetContact": [{"datasetContactEmail": "iryna@institute.ua"}],
"dsDescription": [{"dsDescriptionValue": "Результати польових вимірювань температури і вологості"}],
"subject": ["Earth and Environmental Sciences"],
"publisher": "Інститут клімату НАН України"
})
Код: Виділити все
response = api.create_dataset(':root', dataset.json())
print(response.json())
Код: Виділити все
dataset_pid = response.json()["data"]["persistentId"]
with open("climate_data.csv", "rb") as file:
upload = api.upload_file(file, dataset_pid)
print(upload.json())
Код: Виділити все
api.publish_dataset(dataset_pid, release_type="major")
PyDataverse дозволяє:
• зчитувати існуючі метадані (`api.get_dataset(pid)`)
• зберігати метадані у файли `.json`
• імпортувати схеми з шаблонів Dataverse або JSON-файлів
Код: Виділити все
meta = api.get_dataset(dataset_pid).json()
with open("metadata_backup.json", "w") as f:
json.dump(meta, f, indent=2)
PyDataverse добре інтегрується у GitHub Actions або cron-сценарії, наприклад:
• дані оновлено у `data.csv` → запускається скрипт
• нова версія з DOI створюється автоматично
• changelog додається до README
Приклад командного сценарію:
Код: Виділити все
python update_dataset.py --input new_data.csv --title "Нові дані липня 2025"
• Офіційна документація PyDataverse
• GitHub репозиторій PyDataverse
• Dataverse API Docs
• Альтернативна клієнтська бібліотека
---------------------------------------------------------------------------------------------------
PyDataverse — це зручний інструмент для автоматизації повного життєвого циклу даних у Dataverse:
• дозволяє працювати з метаданими без браузера,
• легко вбудовується в CI/CD-процеси,
• підтримує відтворюваність, машиночитність і versioning.