如何配置Python Black工具以合理格式化Polars代码?
配置Black适配Polars代码格式化
要让Black正确格式化Polars的.select/.with_columns这类嵌套链式调用代码,可通过以下标准配置实现:
核心配置步骤
- 在项目根目录创建
pyproject.toml文件,添加Black专属配置:
[tool.black] # 匹配你期望的79字符换行长度 line-length = 79 # 指定项目使用的Python版本,确保Black适配对应语法特性 target-version = ["py310"]
- 确保使用Black 22.0及以上版本,旧版本对嵌套链式调用的缩进处理逻辑不完善,升级后可自动识别Polars风格的链式调用并生成符合预期的缩进格式。
配置后的效果
应用上述配置后,你提供的原代码会被格式化为目标样式:
df = df.select( user_ids=pl.col("log_entry").str.extract( r"User ID: \[([\d ,]+)\]" ), session_times=pl.col("log_entry").str.extract( r"Session Time: \[([\d :]+)\]" ), event_type=pl.col("log_entry") .str.extract(r"Event Type: ([\w ]+)") .cast(pl.Utf8), event_duration=pl.col("log_entry") .str.extract(r"Duration:(\d+)") .cast(pl.Int32), )
特殊场景处理
如果遇到个别复杂嵌套场景Black仍未正确格式化,可临时用# fmt: off和# fmt: on注释包裹代码段,强制保留自定义格式:
# fmt: off df = df.select( # 需保留格式的代码段 ) # fmt: on
内容的提问来源于stack exchange,提问作者HumpbackWhale194
相关产品推荐
相关产品推荐

