Tool zum Konvertieren von Python-Code zu PEP8-kompatibel
Ich weiß, es gibt tools, die überprüfen, ob Ihre Python-code ist kompatibel mit PEP8, zum Beispiel gibt es sowohl ein online-service und ein python-Modul.
Aber ich kann nicht finden, einen service oder ein Modul, das konvertieren mein Python-Datei, um eine in sich geschlossene, PEP8 gültige Python-Datei. Weiß jemand, ob es irgendwelche?
Ich nehme an, es ist machbar, da PEP8 ist alles über das Aussehen des Codes, richtig?
InformationsquelleAutor der Frage Chen Xie | 2013-01-14
Du musst angemeldet sein, um einen Kommentar abzugeben.
Leider "pep8 Sturm" (das gesamte Projekt) hat einige negative Nebenwirkungen:
Als alternative (und Dank @y-p für die Idee), schrieb ich ein kleines Paket autopep8s nur die Zeilen, die Sie gearbeitet haben seit dem letzten commit/Zweig:
Im Grunde verlassen Sie das Projekt ein wenig besser als Sie es gefunden:
Nehme an, du hast deine Arbeit erledigt aus der
master
und bereit sind zu Begehen:Oder reinigen Sie die neuen Zeilen, die Sie schon begangen, die seit dem letzten commit:
Im Grunde
pep8radius
ist die Anwendung autopep8 Zeilen in der Ausgabe von git/hg-diff (aus den letzten gemeinsamen commit).Dieses Skript arbeitet derzeit mit git und hg, wenn Ihr mit etwas anderes und funktionieren soll,bitte schreiben Sie einen Kommentar/Frage/PR!
InformationsquelleAutor der Antwort Andy Hayden
Können Sie autopep8! Während Sie machen Sie sich eine Tasse Kaffee dieses tool gerne entfernt alle diese lästigen PEP8 Verstößen, die sich nicht ändern, die Bedeutung der code.
Installation über pip:
Wenden Sie diese, um eine bestimmte Datei:
oder Projekt (rekursiv), die verbose-option gibt Ihnen ein feedback, wie es geht:
Hinweis: Manchmal wird der Standardwert von 100 Pässe nicht genug ist, habe ich es bis 2000, da es Recht hoch und fangen Sie alle, aber die meisten lästigen Dateien (Haltestellen vorbei, sobald es findet keine auflösbaren pep8 Verstöße)...
An dieser Stelle schlage ich vor, erneut zu testen und dabei ein commit!
Wenn Sie wollen "voll" PEP8 Konformität: eine Taktik, die ich verwendet habe, ist laufen autopep8 wie oben, dann führen Sie PEP8, die Drucke der übrigen Verstöße (Datei, Zeilennummer und was):
manuell zu ändern, diese einzeln (z.B. E712s - Vergleich mit booleschen).
Hinweis: autopep8 bietet eine
--aggressive
argument (zu rücksichtslos "fix" diese Bedeutung-verändern-Verletzungen), aber Vorsicht, wenn Sie mit einem aggressiven, die Sie haben können, um zu Debuggen... (z.B. numpy/pandasTrue == np.bool_(True)
aber nichtTrue is np.bool_(True)
!)Können Sie überprüfen, wie viele Verletzungen jeder Art (vor und nach):
Hinweis: ich halte E501s (Zeile zu lang) sind ein Sonderfall, da wird es wahrscheinlich eine Menge von diesen in Ihrem code und manchmal sind diese nicht korrigiert werden, autopep8.
Als Beispiel, ich angewendet diese Technik, um die pandas code-Basis.
InformationsquelleAutor der Antwort Andy Hayden
@Andy Hayden gab guten überblick über autopep8. Darüber hinaus gibt es eine weitere Paket namens pep8ify die auch nicht die gleiche Sache.
Jedoch beide Pakete entfernen können nur Fussel Fehler, aber Sie lässt sich nicht formatieren-code.
Obigen code bleibt gleich, nach pep8ifying auch. Aber der code sieht nicht gut noch. Sie können Formatierungen wie yapfdas wird formatieren Sie den code, auch wenn der code PEP8-konform.
Obigen code wird formatiert werden, um
Einige Male diese sogar zerstört Ihr die manuelle Formatierung. Zum Beispiel
umgewandelt werden
Aber Man kann sagen, es zu ignorieren einige Teile.
Übernommen von meinem alten blog post: Automatisch PEP8 & Formatieren Sie Ihre Python-Code!
InformationsquelleAutor der Antwort ChillarAnand
Wenn Sie mit eclipse + PyDev aktivieren Sie einfach autopep8 von PyDev Einstellungen:
Windows -> Einstellungen -> geben Sie 'autopep8' in die such-filter.
Aktivieren Sie das Kontrollkästchen " verwenden autopep8.py für die code-Formatierung?' -> OK
Nun eclipse STRG-SHIFT-F code-Formatierung sollte formatieren Sie den code mit autopep8 🙂
InformationsquelleAutor der Antwort mork
Gibt es viele.
IDEs haben in der Regel einige Formatierungen-Fähigkeit gebaut in. IntelliJ Idea /PyCharm hat, das gleiche gilt für Python plugin für Eclipse, und so weiter.
Gibt es formatter/linters, kannst mehrere Sprachen. https://coala.io ist ein gutes Beispiel für solche.
Dann gibt es die single-purpose-tools, von denen viele sind erwähnt in anderen Antworten.
InformationsquelleAutor der Antwort user7610