忽略flake8以反斜杠检查代码

时间:2018-08-06 02:18:59

标签: python pep8 flake8

是否有一种方法可以忽略\的flake8检查代码的一部分?我不能在#noqa之后添加\

例如,这是我的代码。 .config('spark.driver.maxResultSize', os.getenv('spark_driver_max_result_size')) \超过79个字符

session = SparkSession \
    .builder \
    .appName(os.getenv('app_name')) \
    .config('spark.yarn.queue', os.getenv('spark_yarn_queue')) \
    .config('spark.driver.memory', os.getenv('spark_driver_memory')) \
    .config('spark.executor.memory', os.getenv('spark_executor_memory')) \
    .config('spark.driver.maxResultSize', os.getenv('spark_driver_max_result_size')) \
    .enableHiveSupport() \
    .getOrCreate()

这行不通。

session = SparkSession \
    .builder \
    .appName(os.getenv('app_name')) \
    .config('spark.yarn.queue', os.getenv('spark_yarn_queue')) \
    .config('spark.driver.memory', os.getenv('spark_driver_memory')) \
    .config('spark.executor.memory', os.getenv('spark_executor_memory')) \
    .config('spark.driver.maxResultSize', os.getenv('spark_driver_max_result_size')) \  # noqa: E501
    .enableHiveSupport() \
    .getOrCreate()

2 个答案:

答案 0 :(得分:3)

您可以将表达式用括号括起来,然后通常在这些括号中使用换行符

session = (SparkSession 
    .builder 
    .appName(os.getenv('app_name')) 
    .config('spark.yarn.queue', os.getenv('spark_yarn_queue')) 
    .config('spark.driver.memory', os.getenv('spark_driver_memory')) 
    .config('spark.executor.memory', os.getenv('spark_executor_memory')) 
    .config('spark.driver.maxResultSize', os.getenv('spark_driver_max_result_size')) # noqa: E501
    .enableHiveSupport()
    .getOrCreate())

答案 1 :(得分:2)

我建议不要用以下方式打破常规:

session = (SparkSession
    .builder
    .appName(os.getenv('app_name'))
    .config('spark.yarn.queue', os.getenv('spark_yarn_queue'))
    .config('spark.driver.memory', os.getenv('spark_driver_memory'))
    .config('spark.executor.memory', os.getenv('spark_executor_memory'))
    .config('spark.driver.maxResultSize', 
            os.getenv('spark_driver_max_result_size'))
    .enableHiveSupport()
    .getOrCreate()
)

PEP8 says

  

包裹长行的首选方法是在括号,方括号和花括号内使用Python的隐含行连续性。通过将表达式包装在括号中,可以将长行分成多行。应该优先使用这些字符,而不是使用反斜杠来继续行。

     

反斜杠有时仍然合适。例如,长的多个with语句不能使用隐式连续,因此可以使用反斜杠: