Suche einen source code formatter für Python

Du suchst ein Programm für einen bestimmten Zweck?
Antworten
inne
Beiträge: 3281
Registriert: 29.06.2013 17:32:10
Lizenz eigener Beiträge: GNU General Public License
Kontaktdaten:

Suche einen source code formatter für Python

Beitrag von inne » 17.02.2020 12:32:27

Hallo,

hat Debien einen source code formatter für Python, bitte? Der dann wenigstens unnötige Einrückung/Blocktiefen entfernen kann?

JTH
Moderator
Beiträge: 3023
Registriert: 13.08.2008 17:01:41
Wohnort: Berlin

Re: Suche einen source code formatter für Python

Beitrag von JTH » 17.02.2020 12:44:45

Es gibt da z.B. Debianblack, Debianyapf3 oder Debianpython3-autopep.

Da die Einrückung eleganterweise aber ja die Logik/den Ablauf des Codes verändern kann, musst du sicher immer nochmal gegenprüfen, ob sich deine Logik nicht verändert hat.
Manchmal bekannt als Just (another) Terminal Hacker.

inne
Beiträge: 3281
Registriert: 29.06.2013 17:32:10
Lizenz eigener Beiträge: GNU General Public License
Kontaktdaten:

Re: Suche einen source code formatter für Python

Beitrag von inne » 17.02.2020 22:23:47

JTH hat geschrieben: ↑ zum Beitrag ↑
17.02.2020 12:44:45
Da die Einrückung eleganterweise aber ja die Logik/den Ablauf des Codes verändern kann, musst du sicher immer nochmal gegenprüfen, ob sich deine Logik nicht verändert hat.
Würdest du sagen, dass ist bei Python weniger korrekt, als z.B. perltidy bei Perl? Mit letztem hatte noch keine Probleme.

Noch habe ich keins ausprobiert. Aber morgen!

JTH
Moderator
Beiträge: 3023
Registriert: 13.08.2008 17:01:41
Wohnort: Berlin

Re: Suche einen source code formatter für Python

Beitrag von JTH » 18.02.2020 09:15:25

Habe auch noch keins der Werkzeuge benutzt.

Habe nur gedacht, dass so etwas

Code: Alles auswählen

    if x == 42:
        print('foo')

        print('bar')
evtl. zu folgendem „korrigiert“ wird – was etwas anderes tut, als der Code oben

Code: Alles auswählen

    if x == 42:
        print('foo')

    print('bar')

Aber das ist bestimmt Unsinn, die Werkzeuge werden wohl nur bei Code tätig, der einen IndentationError werfen würde.
Zuletzt geändert von JTH am 18.02.2020 09:49:05, insgesamt 1-mal geändert.
Manchmal bekannt als Just (another) Terminal Hacker.

cronoik
Beiträge: 2049
Registriert: 18.03.2012 21:13:42
Lizenz eigener Beiträge: GNU Free Documentation License

Re: Suche einen source code formatter für Python

Beitrag von cronoik » 18.02.2020 09:44:54

Ich hatte mit Debianblack bis jetzt keine Probleme. Blind vertrauen kann man aber keinem Programm, deshalb braucht man Testsfaelle.
Hilf mit unser Wiki zu verbessern!

inne
Beiträge: 3281
Registriert: 29.06.2013 17:32:10
Lizenz eigener Beiträge: GNU General Public License
Kontaktdaten:

Re: Suche einen source code formatter für Python

Beitrag von inne » 18.02.2020 16:37:05

JTH hat geschrieben: ↑ zum Beitrag ↑
18.02.2020 09:15:25
Habe nur gedacht [...]
Ich möchte so etwas entfernen (das sind 2 "Blöcke" tief):

Code: Alles auswählen

from sys import stdout
if True:
	#pass
		stdout.write('\r%s'%("s"))
		stdout.flush()
(Python gefällt mir da eh nicht)
cronoik hat geschrieben: ↑ zum Beitrag ↑
18.02.2020 09:44:54
Ich hatte mit Debianblack bis jetzt keine Probleme. Blind vertrauen kann man aber keinem Programm, deshalb braucht man Testsfaelle.
Dann nehme ich jetzt den mal, danke!

Benutzeravatar
shoening
Beiträge: 898
Registriert: 28.01.2005 21:05:59
Lizenz eigener Beiträge: MIT Lizenz

Re: Suche einen source code formatter für Python

Beitrag von shoening » 18.02.2020 17:31:36

Hi,

Du könntest auch Debianpython-pygments probieren.

VG
Stefan
Bürokratie kann man nur durch ihre Anwendung bekämpfen.

JTH
Moderator
Beiträge: 3023
Registriert: 13.08.2008 17:01:41
Wohnort: Berlin

Re: Suche einen source code formatter für Python

Beitrag von JTH » 18.02.2020 18:15:04

inne hat geschrieben: ↑ zum Beitrag ↑
18.02.2020 16:37:05
Ich möchte so etwas entfernen (das sind 2 "Blöcke" tief):
Das scheint zu klappen :THX:

Code: Alles auswählen

$ black --diff py.py 
--- py.py	2020-02-18 17:09:24.160874 +0000
+++ py.py	2020-02-18 17:10:12.843994 +0000
@@ -1,8 +1,9 @@
 #!/usr/bin/python3
 
 from sys import stdout
+
 if True:
-	#pass
-		stdout.write('\r%s'%("s"))
-		stdout.flush()
+    # pass
+    stdout.write("\r%s" % ("s"))
+    stdout.flush()
 
reformatted py.py
All done! ✨ 🍰 ✨
1 file reformatted.

Hehe, Tools mit Emojis sind immer mal ne nette Abwechslung :mrgreen:
Manchmal bekannt als Just (another) Terminal Hacker.

Antworten