将结构化信息添加到Python文档字符串的末尾。
项目描述
Docdata
将结构化信息添加到Python文档字符串的末尾。
💪 入门
使用此包将结构化数据添加到您的YAML文档字符串中。只需在底部添加一个 ---
分隔符,其余的将按YAML解析。
from docdata import parse_docdata, get_docdata
@parse_docdata
class MyClass:
"""This is my class.
---
author: Charlie
motto:
- docs
- are
- cool
"""
assert get_docdata(MyClass) == {
"author": "Charlie",
"motto": ["docs", "are", "cool"],
}
如果您想直接获取数据,请使用 MyClass.__docdata__
。如果您想更改docdata的解析方式,例如更改分隔符,可以使用关键字参数,如下所示
from docdata import parse_docdata, get_docdata
@parse_docdata(delimiter="****")
class MyClass:
"""This is my class.
****
author: Charlie
motto:
- docs
- are
- cool
"""
assert get_docdata(MyClass) == {
"author": "Charlie",
"motto": ["docs", "are", "cool"],
}
🚀 安装
最新版本可以从 PyPI 安装
pip install docdata
最新代码和数据可以直接从GitHub安装
pip install git+https://github.com/cthoyt/docdata.git
👐 贡献
贡献,无论是提交问题、提交拉取请求还是分支,都受到欢迎。有关参与更多信息,请参阅 CONTRIBUTING.md。
👋 归因
⚖️ 许可证
本包中的代码遵循MIT许可证。
🍪 Cookiecutter
本包是使用@audreyfeldroy的cookiecutter包以及@cthoyt的cookiecutter-snekpack模板创建的。
🛠️ 对于开发者
请参阅开发者指南
README文件的最后一部分是关于如果您想通过代码贡献来参与其中。
开发安装
要在开发模式下安装,请使用以下命令
git clone git+https://github.com/cthoyt/docdata.git
cd docdata
pip install -e .
更新包模板
本项目使用cruft
来保持模板(即配置、贡献指南、文档配置)与上游cookiecutter包同步。使用以下命令更新
pip install cruft
cruft update
关于Cruft更新命令的更多信息请参阅此处。
🥼 测试
在克隆存储库并使用pip install tox tox-uv
安装tox后,可以使用以下命令有选择地运行tests/
文件夹中的单元测试
tox -e py
此外,这些测试会自动在每次提交时通过GitHub Action重新运行。
📖 构建文档
可以使用以下命令在本地构建文档
git clone git+https://github.com/cthoyt/docdata.git
cd docdata
tox -e docs
open docs/build/html/index.html
文档会自动安装包以及pyproject.toml
中指定的docs
额外部分。可以添加texext
等sphinx插件。此外,还需要将它们添加到docs/source/conf.py
中的extensions
列表中。
可以使用ReadTheDocs使用以下指南部署文档。该.readthedocs.yml
YAML文件包含您需要的所有配置。您还可以在GitHub上设置持续集成,以检查Sphinx是否可以在隔离环境中构建文档(即使用tox -e docs-test
),并且ReadTheDocs也可以构建它。
配置ReadTheDocs
- 使用您的GitHub账户登录ReadTheDocs,在https://readthedocs.org/accounts/login/?next=/dashboard/安装集成
- 通过转到https://readthedocs.org/dashboard/import然后点击您的存储库旁边的加号图标导入您的项目
- 在下一屏上,您可以使用更风格化的名称(例如,带有空格和大写字母)重命名存储库
- 点击“下一步”,您就可以开始了!
📦 发布版本
配置Zenodo
Zenodo是一个长期存档系统,为每个包的每个版本分配DOI。
- 使用此链接通过GitHub登录Zenodo:https://zenodo.org/oauth/login/github/?next=%2F。这将带您到一个列出所有组织并要求您批准在GitHub上安装Zenodo应用程序的页面。点击任何您想要启用集成的组织旁边的“授予”按钮,然后点击大绿色的“批准”按钮。此步骤只需执行一次。
- 导航到https://zenodo.org/account/settings/github/,其中列出了您的所有GitHub存储库(包括您的用户名和您启用的任何组织)。点击任何相关存储库的开/关切换按钮。在创建新的存储库时,您需要回到这里
完成这些步骤后,您就可以开始了!在GitHub上进行“发布”操作后(下面提供了这些步骤),您可以导航到https://zenodo.org/account/settings/github/repository/cthoyt/docdata以查看发布版本的DOI并链接到Zenodo记录。
在Python包索引(PyPI)中注册
您只需要执行以下步骤一次。
- 在 Python 包索引(PyPI) 上注册账户
- 导航到 https://pypi.ac.cn/manage/account 并确保您已验证了您的电子邮件地址。默认情况下,可能不会发送验证邮件,因此您可能需要单击地址旁边的“选项”下拉菜单,然后才能到达“重新发送验证邮件”按钮
- 自2023年底以来,PyPI要求进行两步验证(请参阅此PyPI博客文章)。这意味着您必须首先生成账户恢复代码,然后设置两步验证
- 从 https://pypi.ac.cn/manage/account/token 生成API令牌
配置您的机器连接到PyPI
您必须为每台机器执行以下步骤。在您的家目录中创建一个名为 .pypirc
的文件,并包括以下内容
[distutils]
index-servers =
pypi
testpypi
[pypi]
username = __token__
password = <the API token you just got>
# This block is optional in case you want to be able to make test releases to the Test PyPI server
[testpypi]
repository = https://test.pypi.org/legacy/
username = __token__
password = <an API token from test PyPI>
请注意,由于PyPI要求基于令牌的验证,我们使用 __token__
作为用户名,无需更改。如果您已经有包含 [distutils]
节的 .pypirc
文件,请确保存在 index-servers
键,并且 pypi
在其关联列表中。有关配置 .pypirc
文件的更多信息,请参阅此处。
上传到PyPI
在开发模式下安装包并使用 pip install tox tox-uv
安装 tox
后,从shell中运行以下命令
tox -e finish
此脚本执行以下操作
- 使用 Bump2Version 将
pyproject.toml
、CITATION.cff
、src/docdata/version.py
和docs/source/conf.py
中的版本号切换为不带-dev
后缀 - 使用
build
将代码打包成tar存档和wheel格式 - 使用
twine
上传到PyPI。 - 推送到GitHub。您需要创建一个与版本提升的提交对应的发行版
- 将版本提升到下一个补丁。如果您进行了重大更改并希望通过次要版本提升版本,您可以在之后使用
tox -e bumpversion -- minor
在GitHub上发布
- 导航到 https://github.com/cthoyt/docdata/releases/new 以草拟一个新的发行版
- 单击“选择标签”下拉菜单并选择您刚刚制作的发行版对应的标签
- 单击“生成发行说明”按钮以获取最近更改的快速概述。根据需要修改标题和描述
- 单击大绿色的“发布发行版”按钮
这将触发Zenodo为您的发行版分配DOI。
项目详情
下载文件
下载适用于您的平台的文件。如果您不确定选择哪个,请了解有关安装包的更多信息。
源分布
构建分布
docdata-0.0.4.tar.gz 的哈希值
算法 | 哈希摘要 | |
---|---|---|
SHA256 | 270ace9349e2a71c2bd38c83fd9437cd4cbd1c4fb765016138976f0898c4f457 |
|
MD5 | f0c3f2e19bd90cca1ac07d1456b9a323 |
|
BLAKE2b-256 | 81dc2f1fc80d7541e3f033c65220cb556a11be2d76a8f5843c79b3ff94d526c2 |
docdata-0.0.4-py3-none-any.whl 的哈希值
算法 | 哈希摘要 | |
---|---|---|
SHA256 | 0ea775720cf1487fe83ea554af46183f61fd713175cb8c53ae6000a2e9ea049f |
|
MD5 | 27f933d4ce0e47a3a3305f86de7856c2 |
|
BLAKE2b-256 | 21cff801261e6e99e88c454fb9a392b2ae53f093ab00f6821bd3ba19dadcf895 |