跳转到主要内容

格式化学术文本和期刊投稿中的作者列表。

项目描述

🚢 Authorship 🚢

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

格式化学术文本和期刊投稿中的作者列表。

🕵️ 为什么会有这个存在?

维护协作学术工作中的作者列表有点麻烦。我们中很多人开始使用Google Sheets来收集作者信息,因为它允许人们输入自己的信息,如ORCID和所属机构。我想自动化将那些表格转换为可以复制粘贴到我的论文(例如,在Google Docs或LaTeX中)的某些有用表格以及投稿表格(例如,bioRxiv上的批量作者TSV文件导入)。

💪 开始使用

此示例显示从Google Sheets加载一个标准电子表格,随后以美观的文本格式打印出来,在bioRxiv批量导入格式中,以及用于提交给《自然科学数据》的LaTeX格式。

from authorship.readers import GoogleSheetReader
from authorship.writers import BiorxivWriter, ScientificDataWriter, TextWriter

# Standard google sheet
reader = GoogleSheetReader("1Fo1YH3ZzOVrQ4wzKnBm6sPha5hZG66-u-uSMDGUvguI")
TextWriter().print(reader)
BiorxivWriter().print(reader)
ScientificDataWriter().print(reader)

可以使用 class-resolver 包作为快捷方式,根据名称访问编写者。它很智能,可以识别大小写、间距和标点符号,因此您无需担心那么多导入。以下示例与上一个示例执行相同的操作。

from authorship.readers import GoogleSheetReader

reader = GoogleSheetReader("1Fo1YH3ZzOVrQ4wzKnBm6sPha5hZG66-u-uSMDGUvguI")
reader.print("text")
reader.print("biorxiv", file="~/Desktop/bioregistry_authors_biorxiv.tsv")
reader.print("scientific data")
reader.print("citation cff")

下一个示例显示了从 Google Sheets 加载 OBO 社区风格的电子表格。这已被用于 SSSOM、ODK、细胞本体和几篇其他论文。

from authorship.readers import OboGoogleSheetReader

# OBO community-flavored google sheet
reader = OboGoogleSheetReader(
   "1NfhibWHOKgV2glmgRdKMzHEzTCw2_dUq_t0Zq64cgeQ",
   skiprows=1,
)
reader.print("text")
reader.print("biorxiv", file="~/Desktop/sssom_authors_biorxiv.tsv")
reader.print("scientific data")

🐇 扩展

您可以通过继承 authorship.readers.Reader 类并实现 get_authorship() 函数来自定义自己的读取器子类。

同样,您可以通过继承 authorship.writers.Writer 类并实现 iter_lines() 函数来自定义自己的写入器。

我们很高兴接受新的插件,特别是有助于自动生成各种期刊特定 LaTeX 模板的 LaTeX。

🚀 安装

可以从 PyPI 使用以下命令安装最新版本:

$ pip install authorship

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

$ pip install git+https://github.com/cthoyt/authorship.git

👐 贡献

无论您是提交问题、提交拉取请求还是进行分叉,我们都感谢您的贡献。有关参与的更多信息,请参阅 CONTRIBUTING.md

👋 致谢

⚖️ 许可证

本包中的代码受 MIT 许可证的许可。

🍪 Cookiecutter

此包使用 @audreyfeldroy 的 cookiecutter 包以及 @cthoyt 的 cookiecutter-snekpack 模板创建。

🛠️ 对于开发者

请参阅开发者说明

README 的最后一部分是如果您想通过代码贡献来参与。

开发安装

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

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

🥼 测试

在克隆存储库并使用 pip install tox 安装 tox 后,可以通过以下方式有可重复性地运行 tests/ 文件夹中的单元测试:

$ tox

此外,这些测试会随着每个提交在 GitHub Action 中自动重新运行。

📖 构建文档

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

$ git clone git+https://github.com/cthoyt/authorship.git
$ cd authorship
$ tox -e docs
$ open docs/build/html/index.html

文档会自动安装包以及 setup.cfg 中指定的 docs 额外部分。可以在其中添加像 texext 这样的 sphinx 插件。此外,它们还需要添加到 docs/source/conf.py 中的 extensions 列表中。

📦 制作发布版

在开发模式下安装包并使用 pip install tox 安装 tox 后,制作新发布的命令包含在 tox.inifinish 环境中。请在 shell 中运行以下命令:

$ tox -e finish

此脚本执行以下操作:

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

项目详情


下载文件

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

源分布

authorship-0.1.0.tar.gz (20.4 kB 查看哈希值)

上传时间

构建分布

authorship-0.1.0-py3-none-any.whl (25.3 kB 查看哈希值)

上传时间 Python 3

支持者