python 格式的 flake8 (E902) TokenError

flake8 (E902) TokenError in python format

我不明白为什么会出现 E902 flake8 错误。 代码如下:

def mi_func(x):

    # Asignar los valores a una lista
    lista_massn = x['MASSN'].values.tolist()
    lista_flag = x['UFLAG'].values.tolist()

    # Obtener los valores unicos
    unique_list_massn = unique_values(lista_massn)
    unique_list_flag = unique_values(lista_flag

    # Reglas de negocio para indicar desviaciones
    if (
            (len(unique_list_massn) == 1)
            & (unique_list_massn[0] == 'XE')
            & (max(unique_list_flag) == 0)):
        result = True
    else:
        result = False

    return result

我认为问题出在“if/else”语句中。 我将条件放在几行中以满足字符数 <80 (flake8 E501)。 有没有办法让这个“if/else”语句满足两个 flake8 规则(flake8 E501 和 E902)? 提前致谢!

E902 是 SyntaxError 的总称(在本例中是 TokenError

python 或 pypy 在这种情况下给你一个更有用的 SyntaxError

$ python3 t.py 
  File "t.py", line 14
    & (max(unique_list_flag) == 0)))
                                   ^
SyntaxError: invalid syntax
$ pypy3 t.py 
  File "t.py", line 8
    unique_list_flag = unique_values(lista_flag
                                    ^
SyntaxError: parenthesis is never closed

修复代码通过 flake8 后:

$ flake8 t.py
$

免责声明:我是 flake8 的维护者