Ich bastle gerade an der neuen PyLucid v0.7, dabei benutzte ich colubrid und jinja. Ich möchte gern Python v2.2.x unterstützen. Also brauche ich ein paar Backports einiger neuen Python Features... Es gibt ja die utils von http://aima.cs.berkeley.edu/python/utils.html Das blöde ist nur, das man in jeder Datei ein from utils import * machen muß. Dumm ist, wenn man eh die neuste Version von Python hat und die ganze Reihe von Tests in in jedem Modul überflüssig sind. Eine andere Möglichkeit ist __builtin__ zu erweitern. Dann ist nur ein einmaliger import der Backports nötig und alle Neuerungen sind überall aktiv. Hier zwei Beispiele: import __builtin__ try: basestring ## Introduced in 2.3 except NameError: import types basestring = (types.StringType, types.UnicodeType) __builtin__.basestring = basestring try: enumerate ## Introduced in 2.3 except NameError: def enumerate(collection): """Return an iterator that enumerates pairs of (i, c[i]). PEP 279. >>> list(enumerate('abc')) [(0, 'a'), (1, 'b'), (2, 'c')] """ ## Copied from PEP 279 i = 0 it = iter(collection) while 1: yield (i, it.next()) i += 1 __builtin__.enumerate = enumerate Bevor ich jetzt all die Dinge, die ich selber brauche aus den utils mit __builtin__ anpasse, wollte ich mal nachfragen, ob es nicht schon sowas gibt??? Gefunden hab ich nix... Das Problem sind aber noch die Generatoren... Die gibt es zwar schon in Python 2.2, aber nur mit einem from __future__ import generators und das IMHO nur für das aktuelle Modul und nicht global. z.B. erhalte ich einen SyntaxError bei der Verwendung von yield... yield ist wohl einer der wenigen Key-Wörter. Somit klappt der Trick mit den __builtin__.yield = yield nicht... Wie kann man yield global "aktivieren" ??? Da der import von "from __future__ import *" keine großen Preformanceeinbussen mit sich bringt, könnte ich das zur not auch in jeder Datei machen... Mfg. Jens _______________________________________________ python-de maillist - python-de@python.net http://python.net/mailman/listinfo/python-de