Python Kompatibilitäts-Erkennungs-Tool?!?

Wenn du dir nicht sicher bist, in welchem der anderen Foren du die Frage stellen sollst, dann bist du hier im Forum für allgemeine Fragen sicher richtig.
Antworten
Benutzeravatar
jens
Python-Forum Veteran
Beiträge: 8502
Registriert: Dienstag 10. August 2004, 09:40
Wohnort: duisburg
Kontaktdaten:

Gibts eigentlich ein toll, welches den Source-Code eines Modul untersucht, mit welches Python Version das wohl laufen wird?!?

So 100% kann man das wohl nicht feststellen, denke ich mir. Aber zumindest ein Anhaltspunkt liefern...

GitHub | Open HUB | Xing | Linked in
Bitcoins to: 1JEgSQepxGjdprNedC9tXQWLpS424AL8cd
DasIch
User
Beiträge: 2718
Registriert: Montag 19. Mai 2008, 04:21
Wohnort: Berlin

Wesentlich besser als ``python -c "import module"`` oder schauen ob es von der Syntax her passt kann man eigentlich nicht werden.
Benutzeravatar
jens
Python-Forum Veteran
Beiträge: 8502
Registriert: Dienstag 10. August 2004, 09:40
Wohnort: duisburg
Kontaktdaten:

Dann müßte ich allerdings alle möglichen Python Versionen installiert haben :P

GitHub | Open HUB | Xing | Linked in
Bitcoins to: 1JEgSQepxGjdprNedC9tXQWLpS424AL8cd
BlackJack

@jens: Oder einen Compiler der alle Versionen versteht.
DasIch
User
Beiträge: 2718
Registriert: Montag 19. Mai 2008, 04:21
Wohnort: Berlin

jens hat geschrieben:Dann müßte ich allerdings alle möglichen Python Versionen installiert haben :P
Als Python Entwickler hat man aber doch sicherlich 2.7 und 3.3+, vielleicht auch noch PyPy. Die lassen sich ja auch z.B. mit pyenv sehr leicht installieren.
Benutzeravatar
jens
Python-Forum Veteran
Beiträge: 8502
Registriert: Dienstag 10. August 2004, 09:40
Wohnort: duisburg
Kontaktdaten:

Die Unterscheidung ist allerdings zu grob...

Also geht (natürlich :P ) um PyHardLinkBackup... Das läuft eh nur mit Python 3, weil os.link erst ab 3.2 unter Windows funktioniert: https://docs.python.org/3/library/os.html#os.link

Ich hatte os.scandir genutzt. Ist neu bei 3.5, aber dafür gibt es ja das "scandir" Paket zur nach Installation. (Zu den Problem damit: viewtopic.php?f=2&t=37802 )

Ich meine ich hatte irgendwas genutzt, was es erst mit 3.4 gibt. Weiß aber nicht mehr was...

Gut, könnte die unittests ausbauen und dann https://travis-ci.org/jedie/PyHardLinkBackup bzw. https://ci.appveyor.com/project/jedie/pyhardlinkbackup dann erweitern mit älteren Versionen und schauen ob es läuft...

Aber ich dachte, evtl. gibt es ein "Validator" oder so... Wobei sowas wäre mit viel Fleißarbeit verbunden und ergibt keine 100% Sicherheit...

GitHub | Open HUB | Xing | Linked in
Bitcoins to: 1JEgSQepxGjdprNedC9tXQWLpS424AL8cd
DasIch
User
Beiträge: 2718
Registriert: Montag 19. Mai 2008, 04:21
Wohnort: Berlin

Wenn du durch das ausführen der Unittests auf unterschiedlichen Python Versionen nicht sehen kannst auf welchen Python Versionen dein Program funktioniert, funktioniert es auf keiner einzigen Version. Das ist auch ein spannender Entwicklungsprozess für eine Backuplösung.
Benutzeravatar
jens
Python-Forum Veteran
Beiträge: 8502
Registriert: Dienstag 10. August 2004, 09:40
Wohnort: duisburg
Kontaktdaten:

Ich werde es so schon sehen... Doch noch gibt es keine Umfassenden Tests. Aber die Anfänge dafür.

Ich will es auch erst Produktiv einsetzten, wenn die Tests genug abdecken:

Bild

https://coveralls.io/github/jedie/PyHardLinkBackup

GitHub | Open HUB | Xing | Linked in
Bitcoins to: 1JEgSQepxGjdprNedC9tXQWLpS424AL8cd
Sirius3
User
Beiträge: 17737
Registriert: Sonntag 21. Oktober 2012, 17:20

@jens: ohne ausführliche Tests kann man aber auch nicht sagen, dass das Programm mit Python x.y läuft, nur weil es keinen Syntaxfehler gibt. Wenn Du also mit läuft unter Python 3.2 "werben" willst, solltest Du es mit 3.2 getestet haben.
Benutzeravatar
jens
Python-Forum Veteran
Beiträge: 8502
Registriert: Dienstag 10. August 2004, 09:40
Wohnort: duisburg
Kontaktdaten:

Jup, diese Erkenntnis hatte ich ja schon eingangs Ausgedrückt:
jens hat geschrieben:So 100% kann man das wohl nicht feststellen, denke ich mir. Aber zumindest ein Anhaltspunkt liefern...
Man könnte halt nur nachsehen, ob APIs genutzt werden, die es generell erst ab Version XY gibt.
Naja, egal... Wird doch wohl keine die Arbeit gemacht haben, was?

GitHub | Open HUB | Xing | Linked in
Bitcoins to: 1JEgSQepxGjdprNedC9tXQWLpS424AL8cd
DasIch
User
Beiträge: 2718
Registriert: Montag 19. Mai 2008, 04:21
Wohnort: Berlin

Das ist nicht eine Frage davon ob jemand die Arbeit gemacht hat oder nicht. Bei einer dynamischen Sprache wie Python kann man sowas einfach nicht brauchbar ermitteln.
Benutzeravatar
jens
Python-Forum Veteran
Beiträge: 8502
Registriert: Dienstag 10. August 2004, 09:40
Wohnort: duisburg
Kontaktdaten:

Das stimmt. War mich auch eh klar...

Nun brauche ich es eh nicht mehr: Es läuft mit 3.4 und 3.5, an 3.3 muß ich noch arbeiten...

GitHub | Open HUB | Xing | Linked in
Bitcoins to: 1JEgSQepxGjdprNedC9tXQWLpS424AL8cd
Antworten