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

Versionsabhängiger __future__-Import

Beitragvon cofi » 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

Beitragvon Trundle » 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

Beitragvon cofi » 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?
Benutzeravatar
Leonidas
Administrator
Beiträge: 16023
Registriert: Freitag 20. Juni 2003, 16:30
Kontaktdaten:

Beitragvon Leonidas » 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

Wer ist online?

Mitglieder in diesem Forum: Bing [Bot]