PEP8: conflit entre W292 et W391

autant que je sache dans unix c'est une bonne pratique d'avoir toujours une ligne blanche à la fin du fichier - ou de la mettre en d'autres termes: chaque ligne devrait se terminer par n.

en vérifiant mon code python avec PEP8 j'ai remarqué qu'il indique aussi qu'il devrait y avoir n à la fin du fichier:

W292 no newline at end of file
    JCR: The last line should have a newline.

Ce qui est étrange, il est en conflit avec W391:

W391 blank line at end of file
    JCR: Trailing blank lines are superfluous.

    Okay: spam(1)
    W391: spam(1)n

comment ça devrait être? Dois-je avoir une ligne vide à la fin du fichier ou pas?

25
demandé sur seler 2012-03-19 13:58:00

3 réponses

W391 est un vide ligne, c'est-à -deux fois de suite\ns. Il n'y a pas de conflit.

30
répondu Ignacio Vazquez-Abrams 2012-03-19 10:02:05

C'est ce dont W391 parle:

print 'last line'


C'est faux, selon W292:

print 'last line'

Ce qui est correct est:

print 'last line'

14
répondu Burhan Khalid 2012-03-19 11:12:13

dans Windows ' \n 'est le séparateur entre les lignes, mais dans linux' \n ' est le signe de fin sur n'importe quelle ligne. Vim n'a rien de mal à ajouter '\n' à la fin des lignes de la plate-forme linux, mais en suivant la définition du système d'exploitation.

2
répondu jeffzh 2016-03-04 05:05:14