PEP8 info:
models.py:10:80: E501 line too long (83 > 79 characters)
Models.py:
field = TreeForeignKey('self', null=True, blank=True, related_name='abcdefgh')
Comment écrire correctement cette ligne?
C'est "correct", PEP8 marque juste des lignes de plus de 79 caractères. Mais si cela vous préoccupe, vous pouvez l'écrire comme ceci:
field = TreeForeignKey('self',
null=True,
blank=True,
related_name='abcdefgh')
Ou ca:
field = TreeForeignKey(
'self',
null=True,
blank=True,
related_name='abcdefgh',
)
Ou, vraiment, tout autre style qui séparerait la ligne unique en plusieurs lignes plus courtes.
Je viens de trouver ce programme appelé autopep8! https://github.com/hhatto/autopep8
pip install autopep8
autopep8 -i models.py
Vous pouvez aussi faire (récursivement):
autopep8 -ri package/
Auto PEP8 n'apporte que des modifications sécurisées aux fichiers, uniquement la disposition, pas la logique de code.
C'est très subjectif. J'écrirais, si je suivais strictement E501:
field = TreeForeignKey('self',
null=True,
blank=True,
related_name='abcdefgh')
Je considère habituellement 100 trop long, pas 80.
Si vous avez une longue chaîne ridicule qu'il n'est pas très commode de décomposer (en pensant à des choses comme Sentry DSN, le module occasionnel dans MIDDLEWARE ou INSTALLED_APPS), vous pouvez simplement mettre # noqa
à la fin de la ligne et les linters ignoreront la ligne. Utilisez-le avec parcimonie et certainement pas pour le cas que vous avez demandé.
Je divise généralement cela pour aligner les paramètres d'un niveau d'indentation plus profond que la ligne d'origine, comme:
field = TreeForeignKey('self', null=True,
blank=True, related_name='abcdefgh')
Surtout si TreeForeignKey
est quelque chose comme TreeForeignKeyWithReferencesToSomethingElse
, auquel cas tous les paramètres commenceraient à l'extrême droite de la fenêtre si vous les aligniez tous avec la parenthèse qui s'ouvre. Si l'un des paramètres porte un nom long comme defaultvalueforcertaincircumstances
, vous ne pourrez peut-être pas l'intégralité du texte dans moins de 80 colonnes:
field = TreeForeignKeyWithReferencesToSomethingElse('self',
defaultvalueforcertaincircumstances='foo')
Je préfère également mettre plusieurs paramètres de fonction sur la même ligne (sauf quand cela ne semble pas juste; je ne suis pas puriste!) Afin que l'espace vertical ne soit pas trop étendu, ce qui me fait passer plus de temps à faire défiler mon éditeur que par ailleurs nécessaire.