SSEC-JHU\
    
基于https://github.com/nicknochnack/BuildMCPServer
所有其他人使用的基础回购模板。
使用此模板时要做的事情:
- 跑
python project_setup.py - 在README.md中取消对DOI的注释并更正 ``.
- 更正.zenodo.json中的“description”字段,以反映子仓库的描述。
- 更正
CI Status在URL中使用正确标记的徽章。 - 将包裹导入https://readthedocs.org/.
- 更新 zenodo.json。有关更多详细信息,请参阅 zenodo.json文档 和 zenodo关于贡献者与创作者的文档.
- 更新下面的快速入门指南。
此模板中包含的内容:
- 许可证文件
- 行为准则
- 股份有限公司建造与安装。
pip依赖性要求。 - Dependabot GitHub行动
- GitHub操作的CI:lint、pytest、构建docker镜像并将其发布到GitHub Packages。
- Dockerfile。
- Pytest示例。
- Githooks。
快速入门指南
在此处添加如何使代码尽快运行的简化说明,并提供使用示例。 这不应该试图涵盖所有操作系统和/或构建变体,而只是规范版本。因为用户最有可能 从GitHub.com查看此README,假设回购上下文可能是最好的,其中说明如下。 或者,如果这个包是在PyPi上分发的,也许只是 pip install ,然后快速 用户指令就足够了。
git clone https://github.com/ssec-jhu/base-templateconda create -n package_name python pipconda activate package_namepip pinstall -e .- 添加用户说明。
安装、构建和运行说明
县 :
有关其他cmd,请参阅 Conda备忘单.
- 下载并安装 迷你康达 或 蟒蛇.
- 创建新环境(env)并安装
conda create -n - 激活/切换到新环境
conda activate cd进入repo目录。- 安装
python和pipconda install python=3.11 pip - 安装所有必需的依赖项(假设本地开发工作),有两种方法可以做到这一点
- 如果使用tox(推荐) pip install -r requirements/dev.txt. - 如果您想设置一个在tox之外运行的所有要求的环境 pip install -r requirements/all.txt.
构建:
使用Docker:
- 下载并安装Docker-请参阅 .
cd进入repo目录。- 构建图像:
docker build -t .
Python生态系统:
cd进入repo目录。conda activate- 在\conda环境中构建并安装软件包:
pip install . - 在dev/可编辑模式下执行相同的操作(对repo的更改将在python内核重新启动时反映在env安装中)
_注意:这是开发工作的首选安装方法。_ pip install -e .. _注意:如果您没有从安装依赖项 requirements/dev.txt,您可以安装 一组约束更宽松的deps,使用: pip install -e .[dev]._
跑
使用Docker:
- 遵循上述步骤 .
- 从映像运行容器:
docker run -d -p 8000:8000. _注:-p 8000:8000特定于使用端口8000的示例应用程序。_ - 或者,可以从以下位置提取图像
ghcr.io/ssec-jhu/例如。,docker pull ghcr.io/ssec-jhu/base-template:pr-1.
Python生态系统:
- 遵循上述步骤 使用Python生态系统指令构建.
- 跑
uvicorn package_name.app.main:app --host 0.0.0.0 --port", "8000. _注意:这只是一个示例,显然取决于应用程序。_
用途:
由子仓库完成。
测试
_注意:以下步骤需要 pip install -r requirements/dev.txt._
使用tox
- 运行tox
tox。这将在tox虚拟环境中运行所有linting、安全、测试、文档和包构建。 - 要运行单个步骤,请使用
tox -e {step}例如,tox -e test,tox -e build-docs等等。
通常,在github操作中运行的CI测试将使用tox如上所述运行。另见 ci.yml.
毒素之外:
下面假设您正在运行没有tox的步骤,并且所有要求都安装在conda环境中,例如 pip install -r requirements/all.txt.
_注意:Tox将为您运行这些程序,特别是在需要设置环境并在Tox权限之外运行这些程序的情况下。_
Linting:
有助于测试拼写错误、语法、样式和其他简单的代码分析测试。
cd进入repo目录。- 切换/激活正确的环境:
conda activate - 跑
ruff . - 每次您执行以下操作时,都可以自动运行(推荐给开发人员)
git push通过安装提供的
pre-push git挂钩可用 ./githooks. 说明就在那个文件里——只是 cp ./githooks/pre-push .git/hooks/;chmod +x .git/hooks/pre-push.
安全检查:
使用以下工具便于检查安全问题 匪徒.
cd进入repo目录。bandit --severity-level=medium -r package_name
单元测试:
有助于在模块化级别测试核心包功能。
cd进入repo目录。- 运行所有可用测试:
pytest . - 运行特定测试:
pytest tests/test_util.py::test_base_dummy.
回归测试:
有助于测试核心数据结果在开发过程中是否不同。
- 在制品
烟雾测试:
有助于在应用程序和基础架构级别进行测试。
- 在制品
构建文档:
便于构建、测试和查看文档。
cd进入repo目录。pip install -r requirements/docs.txtcd docsmake cleanmake html- 要在默认浏览器中查看文档,请运行
open docs/_build/html/index.html.
