跳转到主要内容

"Invenio REST API客户端."

项目描述

inveniordm-py

https://github.com/inveniosoftware/inveniordm-py/workflows/CI/badge.svg https://img.shields.io/github/tag/inveniosoftware/inveniordm-py.svg https://img.shields.io/pypi/dm/inveniordm-py.svg https://img.shields.io/github/license/inveniosoftware/inveniordm-py.svg

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 (22.9 kB 查看哈希值)

上传时间:

构建分发

inveniordm_py-0.1.1-py2.py3-none-any.whl (20.0 kB 查看哈希值)

上传时间: Python 2 Python 3

由以下组织支持