Zenodo API的包装器。
项目描述
Zenodo客户端
Zenodo API的包装器。
💪 入门指南
第一个示例展示了如何设置一些配置,然后不用担心它是否已经上传 - 所有这些都通过 pystow
完成。当此脚本首次运行时,将创建、发布新的存储库,并将标识符存储在您的 ~/.config/zenodo.ini
中指定的键下。下次运行时,将查找存储库,并上传数据。版本由日期自动提供,如果同一天上传多个版本,则附加一个破折号和修订号。
from zenodo_client import Creator, Metadata, ensure_zenodo
# Define the metadata that will be used on initial upload
data = Metadata(
title='Test Upload 3',
upload_type='dataset',
description='test description',
creators=[
Creator(
name='Hoyt, Charles Tapley',
affiliation='Harvard Medical School',
orcid='0000-0003-4423-4370',
),
],
)
res = ensure_zenodo(
key='test3', # this is a unique key you pick that will be used to store
# the numeric deposition ID on your local system's cache
data=data,
paths=[
'/Users/cthoyt/Desktop/test1.png',
],
sandbox=True, # remove this when you're ready to upload to real Zenodo
)
from pprint import pprint
pprint(res.json())
实际示例可以在此处找到: https://github.com/cthoyt/nsockg。
以下示例展示了如果已知存储库标识符,如何使用Zenodo上传器。
from zenodo_client import update_zenodo
# The ID from your deposition
SANDBOX_DEP_ID = '724868'
# Paths to local files. Good to use in combination with resources that are always
# dumped to the same place by a given script
paths = [
# os.path.join(DATABASE_DIRECTORY, 'alts_sample.tsv')
'/Users/cthoyt/Desktop/alts_sample.tsv',
]
# Don't forget to set the ZENODO_API_TOKEN environment variable or
# any valid way to get zenodo/api_token from PyStow.
update_zenodo(SANDBOX_DEP_ID, paths)
以下示例展示了如何查找记录的最新版本。
from zenodo_client import Zenodo
zenodo = Zenodo()
OOH_NA_NA_RECORD = '4020486'
new_record = zenodo.get_latest_record(OOH_NA_NA_RECORD)
此外,最新版本的names.tsv.gz
可以通过pystow
自动下载到~/.data/zenodo/<conceptrecid>/<version>/<path>
。
from zenodo_client import Zenodo
zenodo = Zenodo()
OOH_NA_NA_RECORD = '4020486'
new_record = zenodo.download_latest(OOH_NA_NA_RECORD, 'names.tsv.gz')
一个现实世界的例子可以在这里找到,其中最新的Ooh Na Na命名数据库从Zenodo自动下载,尽管PyOBO包只硬编码了第一个存档ID。
命令行界面
zenodo_client命令行工具会自动安装。您可以通过shell使用--help
标志来显示所有子命令。
$ zenodo_client --help
它可以运行为zenodo_client <deposition ID> <path 1> ... <path N>
。
🚀 安装
可以从PyPI安装最新版本。
$ pip install zenodo_client
最新的代码和数据可以直接从GitHub安装。
$ pip install git+https://github.com/cthoyt/zenodo-client.git
👐 贡献
欢迎提交问题、提交拉取请求或进行分支操作。有关参与的信息,请参阅CONTRIBUTING.md。
👋 赋值
⚖️ 许可证
本包中的代码遵循MIT许可证。
🍪 Cookiecutter
此包使用@audreyfeldroy的cookiecutter包以及@cthoyt的cookiecutter-snekpack模板创建。
🛠️ 对于开发者
请参阅开发说明
README的最后一部分是如果您想通过代码贡献来参与其中。
开发安装
要开发模式安装,请使用以下命令
$ git clone git+https://github.com/cthoyt/zenodo-client.git
$ cd zenodo-client
$ pip install -e .
🥼 测试
在克隆存储库并使用pip install tox
安装tox
后,可以通过以下方式有用地运行tests/
文件夹中的单元测试
$ tox
此外,这些测试会自动在每个提交中通过GitHub Action重新运行。
📖 构建文档
可以使用以下方法在本地构建文档
$ git clone git+https://github.com/cthoyt/zenodo-client.git
$ cd zenodo-client
$ tox -e docs
$ open docs/build/html/index.html
文档会自动安装包以及setup.cfg
中指定的docs
额外部分。可以在那里添加如texext
之类的sphinx
插件。此外,它们还需要添加到docs/source/conf.py
中的extensions
列表。
📦 发布版本
在开发模式下安装包并使用pip install tox
安装tox
后,在tox.ini
中的finish
环境中包含创建新版本的命令。请在shell中运行以下命令
$ tox -e finish
此脚本执行以下操作
- 使用Bump2Version将
setup.cfg
、src/zenodo_client/version.py
和docs/source/conf.py
中的版本号切换为不带-dev
后缀 - 使用
build
将代码打包成tar存档和wheel - 使用
twine
上传到PyPI。请确保已配置.pypirc
文件以避免在此步骤中需要手动输入 - 推送到GitHub。您需要创建一个带有版本号提升提交的发布
- 将版本提升到下一个修补程序。如果您进行了重大更改并希望通过次要版本提升版本,则可以在之后使用
tox -e bumpversion -- minor
。
项目详情
下载文件
下载适用于您平台的文件。如果您不确定选择哪个,请了解更多关于安装包的信息。