Versionsabhängiger __future__-Import

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
cofi
Moderator
Beiträge: 4432
Registriert: Sonntag 30. März 2008, 04:16
Wohnort: RGFybXN0YWR0

Freitag 7. November 2008, 15:29

Da das with-Statement eine praktische Sache ist, will ich das natürlich auch nutzen.
__future__-Imports müssen am Beginn des Moduls sein -> Versionsprüfung geht nicht.
Ein try - except - Konstrukt geht deshalb auch nicht.
Wie sollte man das nun Versionsübergreifend benutzen?

Code: Alles auswählen

from __future__ import with_statement
Und hoffen, dass es einem nicht um die Ohren fliegt? Oder bleiben neue Features zusätzlich im __future__-Modul?

Bitte um Aufklärung :)
Benutzeravatar
Trundle
User
Beiträge: 591
Registriert: Dienstag 3. Juli 2007, 16:45

Freitag 7. November 2008, 15:33

In der Dokumentation von [mod]__future__[/mod] steht:
No feature description will ever be deleted from __future__.
Das kann dir dann also höchstens bei älteren Versionen "um die Ohren fliegen", nicht aber bei neueren.
"Der Dumme erwartet viel. Der Denkende sagt wenig." ("Herr Keuner" -- Bertolt Brecht)
Benutzeravatar
cofi
Moderator
Beiträge: 4432
Registriert: Sonntag 30. März 2008, 04:16
Wohnort: RGFybXN0YWR0

Samstag 8. November 2008, 13:06

Danke. In der Doku hätte ich natürlich selbst nachschauen können :/

Ist natürlich gut zu wissen, allerdings würde ich am liebsten noch eine - für nicht-Python-Programmierer - verständliche Fehlermeldung ausgeben.

Code: Alles auswählen

try:
    from __future__ import with_statement
except:
    print "Use a newer Python-Version!" 
    raise SystemExit
Was aber natürlich auch nicht geht ... Jemand eine Idee? Oder sollte man von __future__ in Releases Abstand halten?
Leonidas
Administrator
Beiträge: 16024
Registriert: Freitag 20. Juni 2003, 16:30
Kontaktdaten:

Samstag 8. November 2008, 13:13

cofi hat geschrieben:Oder sollte man von __future__ in Releases Abstand halten?
Nein, es sind ja keine Beta-Versionen sondern ausgereifte Features die aber ggf. kleinere Problem mit der Kompatibilität zu älterem Code haben können.
My god, it's full of CARs! | Leonidasvoice vs Modvoice
Antworten