跳转到主要内容

用于Wikidata QuickStatements的数据模型和客户端

项目描述

QuickStatements客户端

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

QuickStatements的QuickStatements数据模型和客户端。

💪 快速入门

以下是如何快速构建一些QuickStatements的方法

import datetime
from quickstatements_client import DateQualifier, EntityQualifier, TextQualifier, EntityLine

subject_qid = "Q47475003"  # Charles Tapley Hoyt
subject_orcid = "0000-0003-4423-4370"
reference_url_qualifier = TextQualifier(
   predicate="S854", target=f"https://orcid.org/0000-0003-4423-4370"
)
start_date = datetime.datetime(year=2021, day=15, month=2)
start_date_qualifier = DateQualifier.start_time(start_date)
position_held_qualifier = EntityQualifier(predicate="P39", target="Q1706722")
employment_line = EntityLine(
   subject=subject_qid,
   predicate="P108",  # employer
   target="Q49121",  # Harvard medical school
   qualifiers=[reference_url_qualifier, start_date_qualifier, position_held_qualifier],
)

>>> employment_line.get_line()
'Q47475003|P108|Q49121|S854|"https://orcid.org/0000-0003-4423-4370"|P580|+2021-02-15T00:00:00Z/11|P39|Q1706722',

如何将一些QuickStatements发送到API

from quickstatements_client import QuickStatementsClient

lines = [
   employment_line,
   ...
]

client = QuickStatementsClient(token=..., username=...)
res = client.post(lines, batch_name="Test Batch")
# see also res.batch_id

import webbrowser
webbrowser.open_new_tab(res.batch_url)

注意:如果未提供,则使用pystow自动查找tokenusername。具体来说,使用pystow.get_config("quickstatements", "token")pystow.get_config("quickstatements", "username")

🚀 安装

最新版本可以通过PyPI安装

$ pip install quickstatements_client

最新代码和数据可以直接从GitHub安装

$ pip install git+https://github.com/cthoyt/quickstatements-client.git

👐 贡献

无论是通过提交问题、提交拉取请求还是进行分叉,贡献都是受欢迎的。有关参与的信息,请参阅CONTRIBUTING.md

👋 稿件归属

此代码最初是作为对 PyORCIDator 的贡献而编写的。特别感谢 Tiago Lubiana [@lubianat] 和 João Vitor [@jvfe] 在讨论和测试中的帮助。

⚖️ 许可证

本包中的代码采用 MIT 许可证授权。

🍪 Cookiecutter

本包是用 @audreyfeldroycookiecutter 包以及 @cthoytcookiecutter-snekpack 模板创建的。

🛠️ 开发者

查看开发者说明

README 的最后一节是为了如果你想通过代码贡献来参与其中。

开发安装

要在开发模式下安装,请使用以下命令

$ git clone git+https://github.com/cthoyt/quickstatements-client.git
$ cd quickstatements-client
$ pip install -e .

🥼 测试

在克隆存储库并使用 pip install tox 安装 tox 之后,可以使用以下命令重复运行 tests/ 文件夹中的单元测试

$ tox

此外,这些测试会在每次提交时自动通过 GitHub Action 重新运行。

📖 构建文档

可以使用以下命令在本地构建文档

$ git clone git+https://github.com/cthoyt/quickstatements-client.git
$ cd quickstatements-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/quickstatements_client/version.pydocs/source/conf.py 中的版本号切换,不再带有 -dev 后缀
  2. 使用 build 将代码打包成 tar 归档和 wheel 格式
  3. 使用 twine 上传到 PyPI。请确保有一个配置好的 .pypirc 文件,以避免在此步骤中需要手动输入
  4. 推送到 GitHub。您需要创建一个与版本号升级的提交一起发布的版本。
  5. 将版本升级到下一个补丁。如果您进行了重大更改并希望通过次要版本号升级,可以在之后使用 tox -e bumpversion -- minor 命令。

项目详情


下载文件

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

源代码发行版

quickstatements_client-0.0.7.tar.gz (40.0 kB 查看哈希值)

上传时间 源代码

构建发行版

quickstatements_client-0.0.7-py3-none-any.whl (25.5 kB 查看哈希值)

上传时间 Python 3

支持者