在一段时间内,我有机会使用 Python 社区提供的大量工具、库和资源。想分享我的想法并从其他人那里获得关于他们日常使用的酷工具、库和资源与 Python 相关项目的意见。
- 依赖管理和包装的Poetry。
- Pytest用于单元测试。
- Hypothesis 生成用于测试的虚拟数据。
- mutmut用于突变测试。
- flake8用于linting和以下插件(可以在这里找到很棒的插件列表,但我和我的队友选择了下面的一个。有 linting 但不要太难。)
- flake8-black使用黑色进行代码格式检查。
- flake8-isort它使用isort来分隔部分中的导入并按字母顺序格式化它们。
- flake8-bandit使用bandit进行安全检查。
- flake8-bugbear用于查找程序中可能存在的错误和设计问题。flake8-bugbear - 在您的程序中查找可能的错误和设计问题。
- pep8-naming用于检查 PEP-8 命名约定。
- mccabe为 Ned 的脚本检查 McCabe 复杂性
- flake8-comprehensions用于编写更好的列表/集合/字典理解。
- 解析器:
- XML – xsData
- JSON – 带有数据模型代码生成器的[url=https://pydantic-docs.helpmanual.io/]Pydantic[/url]
- CSV – csv 阅读器或dataclass-csv
- 标准输出: Lark 或 pyparsing
- 点击这里创建命令行界面
- Sphinx与MyST-parser一起在 markdown 中编写文档。我最近发现,它似乎是一个不错的选择,因为它默认支持模块、类、方法和函数中的通用文档和文档字符串的降价。
- 我维护cookiecutter 模板(不能共享。它在公司私有存储库中),其中包含所有这些工具以及一些 CI/CD 管道。如果模板发生变化,我们使用cruft来更新使用该模板的现有项目。这些模板还包括用于拉取请求的 CI/CD 管道(运行 linting 和单元测试)和发布管道(我们使用 Jenkins 作为管道,但计划迁移到 GitHub Actions Workflow)。
- 还有两个我们之前启用但后来禁用的值得注意的库:pre-commit和tox。我已经使用 VSCode 中的Format on Save功能启用了 autoflake、isort 和 black 。PyCharm也有类似的功能。
- 我在我们构建的几乎所有 Python 库中都使用了上述库。除此之外,我还使用其他 Python 框架和库用于非常特定的目的,例如用于 Web 框架的FastAPI 、用于基于 AI/ML/DL 的项目的[url=https://github.com/tensorflow/tensorflow]tensorflow[/url]、pandas、numpy等。TBH 我更喜欢在我必须在一些新领域工作的任何时候查看awesome-python GitHub 存储库。