"Invenio REST API客户端."
项目描述
inveniordm-py
inveniordm-py是一个Python客户端,用于与InvenioRDM API交互。
用法
以下是一个使用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()
客户端支持创建和更新草稿
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))
可以将文件添加到草稿中
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()
最后,可以将草稿发布
# Publish the draft and check the status
record = draft.publish()
print(record.data["status"])
更改
版本 0.1.1(发布于2024-07-14)
安装:移除 invenio-i18n 依赖项
版本 0.1.0(发布于2024-05-13)
初始公开alpha版本。
项目详情
关闭
inveniordm-py-0.1.1.tar.gz的哈希值
算法 | 哈希摘要 | |
---|---|---|
SHA256 | f1b61834c6a2236a6079bbc17926645b924ba493279d901ceb8bcf6d53091c95 |
|
MD5 | cb2aede03c7a1dd9e7a8bfbb21b9c978 |
|
BLAKE2b-256 | 3601bf0787c40c62d64d32d3b484572d42f218c06417109629a00f930325e351 |
关闭
inveniordm_py-0.1.1-py2.py3-none-any.whl 的哈希值
算法 | 哈希摘要 | |
---|---|---|
SHA256 | c9c0ebc6dc65953ca326e2162ed452abd1c4def57ef45d93b47205a45b2f0e91 |
|
MD5 | 7972c061d09c06f75c5d074a1e28030f |
|
BLAKE2b-256 | 38774fd894baeaf59795f8a79723098b9199d5007a35eeb6099953ebf22c51f7 |