在 Quarto (`.qmd`)/R Markdown (`Rmd`) 文件中检查和格式化 Python 代码的工具

问题描述 投票:0回答:2

我搜索 Quarto .qmd 和 R Markdown (

.Rmd
) 文件的
Python
linters/formatters。是否有任何工具可以开箱即用

a) 在 Quarto

.qmd
或 R Markdown (
.Rmd
) 文件的 Python 代码单元中对 Python 代码进行 lint 和/或格式化(类似于 R 的
styler
仅适用于 Python)?

b) 或将其他代码格式化程序或 linter(例如

black
)应用于
.qmd
/
.Rmd
文件中的 Python 代码单元(即,像
nbQA
这样的工具,它将
black
或其他工具应用于Jupyter Notebook 中的 Python 单元,仅适用于
qmd
/
Rmd
文件)?

  1. 我尝试在 Google 搜索上搜索此类工具(使用关键字
    python
    format
    lint
    Quarto
    qmd
    等),但没有出现任何感兴趣的内容。
  2. 我在 Posit Community 上提出了问题,但尚未得到有关现有工具的建议。 Quarto 团队还没有这样的工具。

我更喜欢命令行工具,但欢迎所有建议。


.qmd
文件的示例,我想在其中格式化 Python 代码:

---
title: "Python code needs formatting"
format: html
---

Load packages/modules.

```{r}
library(reticulate)
```

```{python}
import pandas as pd
```

Load data.

```{r}
data(women)
```

Analyze data.

```{python}
women = r.women
women.head()
```

```{python}
women2 = (
  women
  .assign(
    bmi   =    lambda x: x.weight / \
    x.height**2 
)
  
  )
  
women2  .sum()
```
python r-markdown lint code-formatting quarto
2个回答
2
投票

我制作了一个小型 quato 过滤器

black-formatter
使用它可以在 python 代码块中格式化 python 代码。此扩展需要提前安装
black
,您可以使用
pip install black
来完成。

---
title: "Python code needs formatting"
format: html
filters:
  - black-formatter
---

Load packages/modules.

```{r}
library(reticulate)
```

```{python}
import pandas as pd
```

Load data.

```{r}
data(women)
```

Analyze data.

```{python}
women = r.women
women.head()
```

```{python}
women2 = (
  women
  .assign(
    bmi   =    lambda x: x.weight / \
    x.height**2 
)
  
  )
  
women2  .sum()
```



0
投票

有一个漂亮的 RStudio 插件,可以格式化/lint/样式 python 代码块和/或整个 python 脚本:

https://github.com/erictleung/pyblack

它的工作方式类似于 R 的 styler,但使用黑色作为后端。

© www.soinside.com 2019 - 2024. All rights reserved.