出色的`np-lims-tk`是一个使用https://github.com/TezRomacH/python-package-template创建的Python命令行工具/包
项目描述
np-lims-tk
开发
本节包含额外的设置信息。
作为github仓库初始化
初始化您的代码
- 在您的仓库中初始化
git
cd np-lims-tk && git init
- 如果您尚未安装
Poetry,请运行
make poetry-download
- 初始化poetry并安装
pre-commit钩子
make install
make pre-commit-install
- 运行代码风格
make codestyle
- 将初始代码上传到GitHub
git add .
git commit -m ":tada: Initial commit"
git branch -M main
git remote add origin https://github.com/np_lims_tk/np-lims-tk.git
git push -u origin main
设置机器人
- 设置Dependabot以确保您有最新的依赖项。
- 设置Stale bot以自动关闭问题。
Poetry
想了解更多关于Poetry的信息?查看其文档。
Poetry的详细信息
Poetry的命令非常直观且易于学习,例如
poetry add numpy@latestpoetry run pytestpoetry publish --build
等等
构建和发布您的包
构建应用程序的新版本包含以下步骤
- 提高您包的版本
poetry version <版本>。您可以显式地传递新版本,或者使用如major、minor或patch这样的规则。更多详情,请参阅 语义版本 标准。 - 在
GitHub上提交一个变更。 - 创建一个
GitHub 发布版。 - 然后...发布吧!
poetry publish --build
🎯 接下来是什么
这取决于你 💪🏻。我只能推荐那些帮助到我的包和文章。
Typer是创建 CLI 应用的好工具。Rich让你在终端中添加美观的格式变得容易。Pydantic- 使用 Python 类型提示进行数据验证和设置管理。Loguru使日志记录变得(愚蠢地)简单。tqdm- Python 和 CLI 的快速、可扩展的进度条。IceCream是一个用于美味调试的小库。orjson- 极快的 JSON 解析库。Returns让你的函数输出变得有意义、类型化和安全!Hydra是一个用于优雅配置复杂应用的框架。FastAPI是一个类型驱动的异步 Web 框架。
文章
- 开源指南.
- 一份关于开源财务支持的实用指南
- GitHub Actions 文档.
- 你可能想将 gitmoji 添加到提交名称中。这真的很搞笑。 😄
🚀 功能
开发功能
- 支持 Python 3.7 及更高版本。
Poetry作为依赖关系管理器。请参阅pyproject.toml和setup.cfg中的配置。- 使用
black、isort和pyupgrade自动进行代码格式化。 - 带有代码格式化的
pre-commit钩子可立即使用。 - 使用
mypy进行类型检查;使用darglint进行文档字符串检查;使用safety和bandit进行安全检查。 - 使用
pytest进行测试。 - 立即可用的
.editorconfig、.dockerignore和.gitignore。你不必担心这些事情。
部署功能
GitHub集成:问题和 pr 模板。- 使用预定义的 构建工作流程 作为默认的 CI/CD:
Github Actions。 - 通过
Makefile,一切已经设置好,用于安全检查、代码风格检查、代码格式化、测试、代码检查、Docker 构建等。更多详情请参阅 makefile-usage。 - 为你的包创建 Dockerfile。
- 使用
@dependabot保持依赖项始终是最新的。你只需要 启用它。 - 使用
Release Drafter自动创建新版本的草稿。您可以在release-drafter.yml中查看标签列表。与 语义版本 规范完美兼容。
开源社区功能
- 可直接使用的 Pull Requests 模板 和几个 Issue 模板。
- 自动生成文件,如:
LICENSE、CONTRIBUTING.md、CODE_OF_CONDUCT.md和SECURITY.md。 Stale bot在一段时间的不活跃后关闭已弃用的 issue。(您只需 设置免费计划)。配置在此处:链接。- 使用
Release Drafter和 语义版本 规范。
安装
pip install -U np-lims-tk
或使用 Poetry 安装
poetry add np-lims-tk
文档
https://alleninstitute.github.io/np-lims-tk/
Makefile 使用方法
Makefile 包含许多用于快速开发的函数。
1. 下载并移除 Poetry
要下载和安装 Poetry,请运行
make poetry-download
卸载
make poetry-remove
2. 安装所有依赖项和 pre-commit 钩子
安装要求
make install
在 git init 之后,可以通过以下方式安装 pre-commit 钩子:
make pre-commit-install
3. 代码风格
自动格式化使用 pyupgrade、isort 和 black。
make codestyle
# or use synonym
make formatting
仅进行代码风格检查,不重写文件
make check-codestyle
注意:
check-codestyle使用isort、black和darglint库
使用一个命令更新所有开发库到最新版本
make update-dev-deps
4. 代码安全性
make check-safety
该命令将启动 Poetry 完整性检查,并使用 Safety 和 Bandit 识别安全漏洞。
make check-safety
5. 类型检查
运行 mypy 静态类型检查器
make mypy
6. 带覆盖率徽章的测试
运行 pytest
make test
7. 所有代码检查器
当然,有一个命令可以 统一 运行所有代码检查器
make lint
等同于
make test && make check-codestyle && make mypy && make check-safety
8. Docker
make docker-build
这相当于
make docker-build VERSION=latest
使用以下命令删除 Docker 镜像
make docker-remove
有关 Docker 的更多信息,请参阅 链接。
9. 清理
删除 pycache 文件
make pycache-remove
移除包构建
make build-remove
删除 .DS_STORE 文件
make dsstore-remove
删除 .mypycache
make mypycache-remove
或运行以下命令来删除所有上述文件
make cleanup
贡献
非常欢迎代码贡献。要贡献,请对代码进行修改,并可能向 /tests 下的测试套件添加测试,以确保您的更改现在和将来都能正常工作。然后以拉取请求的形式提交您的更改。
📈 发布
您可以在 GitHub 发布页面 上查看可用的发布列表。
我们遵循 语义版本 规范。
我们使用 Release Drafter。随着拉取请求的合并,草稿发布将保持最新状态,列出更改,准备好发布。使用分类选项,您可以使用标签将拉取请求分类到发布说明中。
标签列表及其对应的标题
| 标签 | 发布中的标题 |
|---|---|
enhancement、feature |
🚀 功能 |
bug、refactoring、bugfix、fix |
🔧 修复和重构 |
build、ci、testing |
📦 构建系统和 CI/CD |
breaking |
💥 破坏性变更 |
documentation |
📝 文档 |
dependencies |
⬆️ 依赖项更新 |
您可以在 release-drafter.yml 中更新它。
GitHub 为您创建了 bug、enhancement 和 documentation 标签。Dependabot 创建 dependencies 标签。当您需要时,请在 GitHub 仓库的 Issues 标签页上创建剩余的标签。
🛡 许可证
本项目受 MIT 许可证的约束。有关详细信息,请参阅 LICENSE。
项目详情
下载文件
下载适合您平台的文件。如果您不确定选择哪个,请了解有关 安装包 的更多信息。