"Invenio REST API client."
Project description
inveniordm-py
inveniordm-py is a Python client designed to interact with the InvenioRDM API.
Usage
Here’s a basic example of how to use inveniordm-py:
from inveniordm_py.client import InvenioAPI
# Initialize client
client = InvenioAPI('https://your-invenio-instance.com', 'your-token')
# Get a list of all records
records = client.records.search()
The client supports creating and updating drafts:
from inveniordm_py.records.metadata import DraftMetadata
# Create a draft with metadata
data = {
"metadata": {
"title": "Test",
"resource_type": {
"id": "publication-article",
},
"publication_date": "2024",
"creators": [
{
"person_or_org": {
"family_name": "Brown",
"given_name": "Troy",
"type": "personal",
}
},
],
"publisher": "Zenodo"
}
}
draft = client.records.create(data=DraftMetadata(data))
# Update metadata and draft
data.update({
"metadata": {
"title": "Test 2",
}
})
draft.update(data=DraftMetadata(data))
Files can be added to the draft:
from inveniordm_py.files.metadata import FileMetadata, OutgoingStream, FileMetadata
# Define files metadata
fname = "test.txt"
fpath = "/path/to/test.txt"
file_data = FileMetadata({"key": fname})
# Create the file and add it to the draft using a stream
draft.files.create(file_data)
stream = open(fpath, "rb")
f.set_contents(OutgoingStream(data=stream))
f.commit()
# It also supports the addition of multiple files from disk
_dir = "/path/to/dir"
file_data = FilesListMetadata([{"key": fname} for fname in os.listdir(_dir)])
draft.files.create(file_data)
for f in draft.files:
file_path = os.path.join(_dir, f.data['key'])
stream = open(file_path, "rb")
f.set_contents(OutgoingStream(data=stream))
f.commit()
Finally, the draft can be published:
# Publish the draft and check the status
record = draft.publish()
print(record.data["status"])
Changes
Version 0.1.1 (released 2024-07-14)
installation: remove invenio-i18n dependency
Version 0.1.0 (released 2024-05-13)
Initial public alpha release.
Project details
Release history Release notifications | RSS feed
Download files
Download the file for your platform. If you're not sure which to choose, learn more about installing packages.
Source Distribution
Built Distribution
Filter files by name, interpreter, ABI, and platform.
If you're not sure about the file name format, learn more about wheel file names.
Copy a direct link to the current filters
File details
Details for the file inveniordm-py-0.1.1.tar.gz.
File metadata
- Download URL: inveniordm-py-0.1.1.tar.gz
- Upload date:
- Size: 22.9 kB
- Tags: Source
- Uploaded using Trusted Publishing? No
- Uploaded via: twine/5.1.1 CPython/3.8.19
File hashes
| Algorithm | Hash digest | |
|---|---|---|
| SHA256 |
f1b61834c6a2236a6079bbc17926645b924ba493279d901ceb8bcf6d53091c95
|
|
| MD5 |
cb2aede03c7a1dd9e7a8bfbb21b9c978
|
|
| BLAKE2b-256 |
3601bf0787c40c62d64d32d3b484572d42f218c06417109629a00f930325e351
|
File details
Details for the file inveniordm_py-0.1.1-py2.py3-none-any.whl.
File metadata
- Download URL: inveniordm_py-0.1.1-py2.py3-none-any.whl
- Upload date:
- Size: 20.0 kB
- Tags: Python 2, Python 3
- Uploaded using Trusted Publishing? No
- Uploaded via: twine/5.1.1 CPython/3.8.19
File hashes
| Algorithm | Hash digest | |
|---|---|---|
| SHA256 |
c9c0ebc6dc65953ca326e2162ed452abd1c4def57ef45d93b47205a45b2f0e91
|
|
| MD5 |
7972c061d09c06f75c5d074a1e28030f
|
|
| BLAKE2b-256 |
38774fd894baeaf59795f8a79723098b9199d5007a35eeb6099953ebf22c51f7
|