Python项目规范模板

快速开始

方法一:

git clone https://github.com/petterobam/python_tpl.git

cd python_tpl/bin

# 运行 init-env.bat

.\init-env.bat

cd ..

rm -rf .git

# 修改文件夹名称为【你的项目名】,全局查找 python_tpl 替换为【你的项目名】

git init

# Install dependencies

pipenv install --dev

# Setup pre-commit and pre-push hooks

pipenv run pre-commit install -t pre-commit

pipenv run pre-commit install -t pre-push

方法二(目前推荐,失效请用方法一):

cd bin

# 运行 init-env.bat

.\init-env.bat

# 离开该项目目录

cd .. && cd ..

# 使用 cookiecutter 生成项目 (若环境初始化失效,请重新打开控制台)

pipx run cookiecutter gh:sourcery-ai/python-best-practices-cookiecutter

# Enter project directory

cd 【你的项目名】

# Initialise git repo

git init

# Install dependencies

pipenv install --dev

# Setup pre-commit and pre-push hooks

pipenv run pre-commit install -t pre-commit

pipenv run pre-commit install -t pre-push

组件细节

isort 为您导入的 Python 包部分(imports)进行排序,因此你不必再对 imports 进行手动排序。它可以按字母顺序对导入进行排序,并自动将其拆分成多个部分。

pipenv run black

pipenv run isort

Flake8 确保代码遵循 PEP8 中定义的标准 Python 代码规范。

pipenv run flake8

Mypy 是 Python 的非强制的静态类型检查器,旨在结合动态(或 “鸭子”)类型和静态类型的优点,这是一个有用的备忘单。

Mypy 将 Python 的表达能力和便利性与功能强大的类型系统的编译时类型检查结合在一起,使用任何 Python VM 运行它们,基本上没有运行时开销。

pipenv run mypy

使用 pytest 编写测试非常容易,消除编写测试的阻力意味着可以快速的编写更多的测试!

pipenv run pytest

调整好 .coveragerc 文件后,我们就可以运行测试并查看覆盖率了。

# --cov-fail-under=100 是设定项目的测试覆盖率如果小于 100% 那将认定为失败。

pipenv run pytest --cov --cov-fail-under=100

Git hooks 可让您在想要提交或推送时随时运行脚本。

如果需要跳过这些 hooks,可以运行

git commit --no-verify 或 git push --no-verify

python项目方案书模板格式_GitHub - petterobam/python_tpl: Python项目规范模板相关推荐

  1. python自学什么书比较好-19年学习Python有什么好的书籍推荐吗?

    云栖君来推荐几本2019年的Python方面的书籍,希望可以帮到你: <Python机器学习手册:从数据预处理到深度学习> /> 本书采用基于任务的方式来介绍如何在机器学习中使用Py ...

  2. python零基础书推荐_零基础学习Python(Python初学者、Python入门)常见问题:资料、社区、书籍推荐...

    Python web开发 QQ学习群:338985564 ,欢迎各位加入,一起学习. 本文针对零基础的,想学习Python者.本文会不定时更新. 一.学会使用搜索引擎,尤其是Google. 推荐阅读文 ...

  3. 自学python买什么书比较好-这些都是Python官方推荐的最好的书籍(推荐)

    转行学Python有前途吗?这个答案是肯定的,AI课程都已经进入小学教材了,未来Python趋势无疑是光明的,但是如何学习Python,很多Python小白都来问小编有什么适合的Python入门书籍推 ...

  4. 计算机二级python用什么书-如何准备全国计算机二级Python?

    如果你也和我一样是零基础学习,希望你过! 以下是我的回答提纲 /> 一.参考过的知乎回答这是我找到的最全面的备考攻略,第一推荐!!考完发现他还有更新!!曹操:计算机二级 Python 怎么考?考 ...

  5. python批量音频转格式_GitHub - shede333/SWConvertVideoToAudio: Python批量转换 视频 为 音频MP3(即提取音频文件)...

    Python批量转换 视频 为 音频MP3(即提取音频文件) 输入文件格式:ffmpeg支持的视频文件 输出格式格式:mp3文件 使用方法: 注意:使用前需要先安装 ffmpeg 才行(Python最 ...

  6. mysql报文格式_GitHub - YMBo/sflow_traffic: python解析报文(支持格式sflow、gre等)并存储到mysql...

    sflow_traffic python解析sflow或TCP报文(多种格式)并存储到mysql,可多个机器部署 说明 sflowtool version: 5.02 Python version 2 ...

  7. 湖南张家界旅游景区项目方案书

              时间过得真快啊,转眼间快1年没写博文了,不是因为懒,实在太忙了,偶尔闲下来,就想好好睡大觉.做项目说白了就一个字,累!但是累也有累的好处,那就是可以收获很多,不仅收获了好多行业外的 ...

  8. 一网通办区级政务服务应用平台项目方案书(附下载)

    点击文后阅读原文,可获得下载资料的方法. 资料已经上传至「智能交通技术」知识星球,加入星球后可下载. 欢迎加入智能交通技术群! 联系方式:微信号18515441838

  9. python语言程序设计书-清华大学出版社-图书详情-《Python语言程序设计》

    前言 Foreword Python是一种既支持面向过程又支持面向对象编程的解释型高级语言,已经被广泛应用于Web开发.网络编程.科学运算.GUI图形开发.运维自动化.机器人编程等众多领域.与其他语言 ...

最新文章

  1. python 2x xlrd使用merged_cells 读取的合并单元格为空
  2. 开始使用asp.net ajax的控件工具包AJAX Control Toolkit
  3. 【源资讯 第24期】有人总想搞大新闻:“Windows 11”爆猛料;微信放出“小程序码”...
  4. 解决mysql报错Can’t connect to local MySQL server through socket ‘/var/lib/mysql/mysql.sock
  5. 线程同步--事件内核对象
  6. cisco交换机命令大全(10)
  7. SpaceX上天容易,Tesla自动驾驶难 | 凌云时刻
  8. 转自《我的2017,熠熠生辉》的沙发评论
  9. 源码解析-为什么引入了jackson-dataformat-xml 包我的接口全变成了xml格式?
  10. 媒体查询简单应用——网页字体自适应窗口大小
  11. 【设计模式】-常见面试题汇总
  12. 鼓励与信任让人变得强大
  13. 开源的工作流都有哪些特征?
  14. 四旋翼定高篇之惯导加速度+速度+位置三阶互补融合方案
  15. 密码学系列之七:数字签名
  16. 扫地机器人朋友圈文案_装修建材行业如何写一条牛逼的朋友圈文案?
  17. java的字典序排序_java实现字典序排序
  18. 如何将本地仓库代码推到远程仓库
  19. 开课吧T31项目第13天
  20. 数学中字母的读法发音

热门文章

  1. 智能指纹挂锁方案—模组—西城微科
  2. java 扫描文件测试_适用于Java开发人员的微服务:安全测试和扫描
  3. 迷航的大数据风控谁来拯救?
  4. ansible笔记(7):常用模块之系统类模块
  5. Selenium 3.x如何启动3种浏览器(Chrome/Firefox/IE)
  6. uniapp将input输入框中的内容自动小写转大写
  7. CAD转PDF软件怎么选择
  8. ARP地址解析协议与RARP逆地址解析协议
  9. Pandas-03-文件读和存储
  10. 超轻量AI推理引擎MindSpore Lite新版本发布,支撑HMS Core AI领域全面升级