跳转到主要内容

在Jupyter Notebook上运行任何标准的Python代码质量工具

项目描述

nbQA

在Jupyter Notebooks上运行ruff, isort, pyupgrade, mypy, pylint, flake8, black, blacken-docs等工具

tox codecov pre-commit

versions chat docs

downloads

demo

  • ✅ 优雅地处理IPython魔法
  • ✅ 尊重您的配置文件
  • ✅ 保留“安静模式”中的分号
  • ✅ 检查代码和Markdown单元格

目录

🎉 安装

在你的虚拟环境中运行(注意:$不是命令的一部分)

$ python -m pip install -U nbqa

同时安装所有支持的代码检查器和格式化工具

$ python -m pip install -U "nbqa[toolchain]"

🚀 示例

命令行

使用black重新格式化你的笔记本

$ nbqa black my_notebook.ipynb
reformatted my_notebook.ipynb
All done! ✨ 🍰 ✨
1 files reformatted.

使用isort整理你的导入语句

$ nbqa isort my_notebook.ipynb --float-to-top
Fixing my_notebook.ipynb

使用pyupgrade升级你的语法

$ nbqa pyupgrade my_notebook.ipynb --py37-plus
Rewriting my_notebook.ipynb

使用blacken-docs格式化你的Markdown单元格

$ nbqa blacken-docs my_notebook.ipynb --nbqa-md --nbqa-diff
Cell 2
------
--- my_notebook.ipynb
+++ my_notebook.ipynb
@@ -1,2 +1 @@
-First level heading
-===
+# First level heading

To apply these changes, remove the `--nbqa-diff` flag

格式化通过Jupytext保存的.md文件(需要已安装jupytext

$ nbqa black my_notebook.md
reformatted my_notebook.md
All done! ✨ 🍰 ✨
1 files reformatted.

查看涉及doctestflake8mypypylintautopep8pydocstyleyapfruff的命令行示例

预提交

以下是如何设置一些pre-commit钩子的示例:将以下内容放入你的.pre-commit-config.yaml文件中(查看作为pre-commit钩子的用法

- repo: https://github.com/nbQA-dev/nbQA
  rev: 1.9.0
  hooks:
    - id: nbqa-black
      additional_dependencies: [jupytext]  # optional, only if you're using Jupytext
    - id: nbqa-pyupgrade
      args: ["--py37-plus"]
    - id: nbqa-isort
      args: ["--float-to-top"]

如果你需要选择这些代码检查器和格式化工具的特定版本,请将它们添加到additional_dependencies中。

🥳 使用者

点击这里查看(非详尽)的仓库列表

如果你的项目缺失,请告诉我们,或发起一个pull request!

💬 留言

迈克尔·肯尼迪 & 布莱恩·奥肯《Python Bytes播客》的主播

这真是太酷了。我认为它将大量的代码格式化、代码分析和清理带到了笔记本中,而这在我看来一直是非常欠缺的

尼基塔·索博列夫wemake.services的CTO

太神奇了!

亚历克斯·安多拉数据科学家、ArviZ & PyMC开发者、“学习贝叶斯统计”播客主播

nbqa上做得很好 @MarcoGorelli!在CI中将会非常实用。

马修·菲克尔特伊利诺伊大学博士后,研究LHC物理学

将nbqa添加到您的pre-commit hooks中,与@codewithanthony的pre-commit CI服务一起使用真是太棒了!每个使用Jupyter笔记本的人都应该这样做。

吉里什·帕苏帕蒂软件工程师,现在是核心贡献者

非常感谢您为创建如此有用的工具所做的努力。

西蒙·布鲁格曼数据科学家 & pandas-profiling开发者

nbQA帮助我们使笔记本与代码的其他部分保持相同的标准。如果你对代码标准认真负责,你应该在笔记本和Python脚本之间保持一致性。这是生态系统中的一项伟大补充,谢谢!

布拉德利·迪斯物理学与科学计算博士研究生

nbqa是一个干净、易于使用且有效的笔记本代码风格工具。在项目文档中渲染笔记本时,格式化和可读性产生了巨大的差异!

詹姆斯·兰姆@saturn_cloud工程师、LightGBM维护者

今天我了解到nbqa,这是一个在@ProjectJupyter笔记本中的Python代码上运行linters(如flake8)的命令行工具。感谢@jayyqi让我知道了它。到目前为止,我非常喜欢它。

拉斯·耶肯@Our World In Data技术负责人

非常有用!我只希望它被集成到Jupyterlab中。

文森特·D·沃默达尔@calmcode.io维护者

不错。nbQA看起来是预防Untitled12.ipynb现象的好方法。我喜欢!

马尼·萨卡尔Kaggle 3x专家,贡献者

nbQA是一个鼓舞人心的项目,该项目背后的团队知识渊博,并能跳出框外想出创意和解决方案。

👥 贡献

我将向任何提交有用pull request的人提供写权限——有关如何做到这一点的详细信息,请参阅贡献指南

感谢这些可爱的人们(emoji键

Marco Gorelli
马可·戈雷利

💻 🚧 👀 ⚠️ 🤔
Sebastian Weigand
塞巴斯蒂安·维甘德

🔧 👀 📖 🤔
Girish Pasupathy
吉里什·帕苏帕蒂

💻 🚇 🐛 👀 🤔
fcatus
fcatus

🚇
HD23me
HD23me

🐛
mani
mani

🤔 🚇
Daniel Mietchen
Daniel Mietchen

🤔
Michał Gacka
Michał Gacka

🐛
Happy
快乐

📖
Nat Taylor
Nat Taylor

🤔 💻 🔧 🐛
Caio Ariede
Caio Ariede

📖
Nikita Sobolev
Nikita Sobolev

🤔 🐛 📖
Amichay Oren
Amichay Oren

🤔
pylang
pylang

🤔
Henry Schreiner
Henry Schreiner

🐛
Kaiqi Dong
Kaiqi Dong

📖
Simon Brugman
Simon Brugman

🐛
John Sandall
John Sandall

🐛
Nathan Cooper
Nathan Cooper

🐛
agruenberger
agruenberger

🐛
Rafal Wojdyla
Rafal Wojdyla

🐛
Bradley Dice
Bradley Dice

🤔 💻
Ivan Cheung
Ivan Cheung

🐛
Tony Hirst
Tony Hirst

🐛
Taneli Hukkinen
Taneli Hukkinen

🚧
Tom Begley
Tom Begley

🤔 💻 📖
Steven DeMartini
Steven DeMartini

📖
vincent d warmerdam
vincent d warmerdam

Daniel Sparing
Daniel Sparing

🐛
asdfCYBER
asdfCYBER

📖
Chris Knight
Chris Knight

🐛
Laura Richter
Laura Richter

🤔
Francesco Ballarin
Francesco Ballarin

🐛
Janosh Riebesell
Janosh Riebesell

🐛 📖
Nicolas Oliver
Nicolas Oliver

🐛
Bas Nijholt
Bas Nijholt

🤔
Ralf Gommers
Ralf Gommers

🤔
Toon Verstraelen
Toon Verstraelen

📖
Trinh Quoc Anh
Trinh Quoc Anh

🐛
Martin K. Scherer
Martin K. Scherer

💻
Felix Williams
Felix Williams

🐛 🚇 🐛
Florian Bär
Florian Bär

📖
Michael Kennedy
Michael Kennedy

🔊
Brian Okken
Brian Okken

🔊
Sydney
Sydney

🐛
fvonbergen
fvonbergen

🐛
Gaétan Lepage
Gaétan Lepage

⚠️
Anurag Nayak
Anurag Nayak

🐛 🚇

本项目遵循all-contributors规范。欢迎任何形式的贡献!

项目详情


发布历史 发布通知 | RSS订阅

下载文件

下载适合您平台的应用程序文件。如果您不确定选择哪个,请了解更多关于安装包的信息。

源代码分发

nbqa-1.9.0.tar.gz (38.3 kB 查看哈希值)

上传时间 源代码

构建分发

nbqa-1.9.0-py3-none-any.whl (35.2 kB 查看哈希值)

上传时间 Python 3

支持

AWS AWS 云计算和安全赞助商 Datadog Datadog 监控 Fastly Fastly CDN Google Google 下载分析 Microsoft Microsoft PSF 赞助商 Pingdom Pingdom 监控 Sentry Sentry 错误记录 StatusPage StatusPage 状态页面