Michael> if sys.version_info[:2] >= (2, 5): Michael> from string import Template Michael> else: Michael> from our.compat.string import Template
This is "look before you leap" (LBYL). Michael> try: Michael> from string import Template Michael> except ImportError: Michael> from our.compat.string import Template This is "easier to ask forgiveness than permission" (EAFP). This tends to be more Pythonic (and thus, preferred). You don't *really* care what the version just, but whether or not the string module has a Template object. Besides, what if some bright admin at some customer decides to backport the Template implementation to their 2.4 installation? The first form would load your compatibility version, probably not what they were hoping when they put in the effort to backport. This might be more obvious if the example was ctypes, a module which is available recently as part of Python proper, but can also be built for older versions of Python (for some vague definition of "older"). Some of your customers might have installed the external version to work with their Python installation. Your simple version test would miss that. -- Skip Montanaro - [EMAIL PROTECTED] - http://smontanaro.dyndns.org/ -- http://mail.python.org/mailman/listinfo/python-list