Python 黑元';t尊重长导入语句的行长度限制

Python 黑元';t尊重长导入语句的行长度限制,python,import,Python,Import,考虑以下导入语句: from modeling.estimation.performance_analysis.monte_carlo.least_squares.error_grids import BaseGrid 黑色(限制为80个字符/行)格式如下: from modeling.estimation.performance_analysis.monte_carlo.least_squares.error_grids import ( BaseGrid, ) 超过80个字符。

考虑以下导入语句:

from modeling.estimation.performance_analysis.monte_carlo.least_squares.error_grids import BaseGrid

黑色(限制为80个字符/行)格式如下:

from modeling.estimation.performance_analysis.monte_carlo.least_squares.error_grids import (
    BaseGrid,
)
超过80个字符。使用
\
拆分导入语句的任何尝试都将被black撤消


我怎样才能让黑人遵守80个字符的限制?

请尝试以下操作:

如果
BaseGrid
是一个函数:

package = "modeling.estimation.performance_analysis.monte_carlo.least_squares"
name = "error_grids"
BaseGrid = getattr(__import__(package, fromlist=[name]), name).BaseGrid

BaseGrid()
如果
BaseGrid
是python文件(拆分字符串以遵守行长度限制):

这使用
\uuuu import\uuuu
函数来导入变量,而不是使用
import
语句,并且应该等效于:

from modeling.estimation.performance_analysis.monte_carlo.least_squares.error_grids import BaseGrid as BaseGrid

不幸的是,我想你不能。黑色表示它将始终为相同的输入生成相同的输出(与空白无关)。它计算python文件的上下文无关语法(CFG),删除所有空白并将文件分解为语句。之后,它会根据预定义的样式重新安排最佳格式。但不太可能干扰格式设置。black的创建者在这里解释了它是如何工作的:如果有这么长的导入语句,我想您只需要接受行长度超过了PEP8行长度,而您不想重新排列文件结构以平展层次结构。如果你的林特抱怨,你可以选择沉默这一行的具体违反。
from modeling.estimation.performance_analysis.monte_carlo.least_squares.error_grids import BaseGrid as BaseGrid