跳转到主要内容

Zenodo API的包装器。

项目描述

Zenodo客户端

Tests PyPI PyPI - Python Version PyPI - License Documentation Status Codecov status Cookiecutter template from @cthoyt Code style: black Contributor Covenant DOI

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

此包使用@audreyfeldroycookiecutter包以及@cthoytcookiecutter-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

此脚本执行以下操作

  1. 使用Bump2Versionsetup.cfgsrc/zenodo_client/version.pydocs/source/conf.py中的版本号切换为不带-dev后缀
  2. 使用build将代码打包成tar存档和wheel
  3. 使用twine上传到PyPI。请确保已配置.pypirc文件以避免在此步骤中需要手动输入
  4. 推送到GitHub。您需要创建一个带有版本号提升提交的发布
  5. 将版本提升到下一个修补程序。如果您进行了重大更改并希望通过次要版本提升版本,则可以在之后使用tox -e bumpversion -- minor

项目详情


下载文件

下载适用于您平台的文件。如果您不确定选择哪个,请了解更多关于安装包的信息。

源代码发行版

zenodo_client-0.3.4.tar.gz (22.7 kB 查看哈希值)

上传时间 源代码

构建发行版

zenodo_client-0.3.4-py3-none-any.whl (14.7 kB 查看哈希值)

上传时间 Python 3

由以下支持