您好,欢迎来到12图资源库!分享精神,快乐你我!我们只是素材的搬运工!!
  • 首 页
  • 当前位置:首页 > 开发 > WEB开发 >
    如何树立一个完美的 Python 项目(3)
    时间:2021-03-05 12:01 来源:网络整理 作者:网络 浏览:收藏 挑错 推荐 打印

    在这里,我们将上述一切工具配置为在提交 Python 代码改动时执行(git commit),然后仅在推送时运转 pytest coverage(由于测试要在最后一步)。创立一个新文件 .pre-commit-config.yaml ,配置如下:

    repos: 

      - repo: local 

        hooks: 

          - id: isort 

            name: isort 

            stages: [commit] 

            language: system 

            entry: pipenv run isort 

            types: [python] 

     

          - id: black 

            name: black 

            stages: [commit] 

            language: system 

            entry: pipenv run black 

            types: [python] 

     

          - id: flake8 

            name: flake8 

            stages: [commit] 

            language: system 

            entry: pipenv run flake8 

            types: [python] 

            exclude: setup.py 

     

          - id: mypy 

            name: mypy 

            stages: [commit] 

            language: system 

            entry: pipenv run mypy 

            types: [python] 

            pass_filenames: false 

     

          - id: pytest 

            name: pytest 

            stages: [commit] 

            language: system 

            entry: pipenv run pytest 

            types: [python] 

     

          - id: pytest-cov 

            name: pytest 

            stages: [push] 

            language: system 

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

            types: [python] 

            pass_filenames: false 

    假设需求跳过这些 hooks,可以运转 git commit --no-verify 或 git push --no-verify

    运用 cookiecutter 生成项目

    如今,我们曾经知道了理想项目中包含了什么,我们可以将其转换为 模板 [10] 从而可以运用单个命令生成一个包含这些库和配置的新项目:

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

    填写项目称号和仓库称号,将为您生成新的项目。

    要完成设置,请执行下列步骤:

    # Enter project directory 

    cd <repo_name> 

     

    # 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 

    模板项目包含一个十分复杂的 Python 文件和测试,可以试用下面这些工具。在编写完代码觉得没成绩后,就可以执行第一次 git commit ,一切的 hooks 都将运转。

    集成到编辑器

    虽然在提交时知道项目的代码一直保持最高水准是件令人兴奋的事情。但假设在代码已全部修正完成之后(提交时),再发现有成绩还是会让人很不爽。所以,实时暴显露成绩要好得多。

    在保存文件时,花一些时间确保代码编辑器运转这些命令。有及时的反应,这意味着你可以在代码还有印象的时分能迅速处置引入的任何小成绩。

    我团体运用一些出色的 Vim 插件来完成此义务:

    ale [11] 实时运转 flake8 并在保存文件时运转 black、isort 和 mypy

    与 projectionist 集成的 [12] vim-test [13] 在文件保存上运转 pytest

    【编辑引荐】

    Python网络自动化--新时代网工进阶技艺

    Windows WDF驱动顺序开发视频课程(**框架)

    基于Qt的LibVLC专业开发技术

    Python自动化运维视频课程(系统管理进阶篇)

    谷歌气球的人工智能为何令开发者本人感到惊奇

    (责任编辑:admin)