# Diagnostics compatible with Python 2.4 - (pre)3.2. import sys try: import ConfigParser as configparser except ImportError: import configparser try: from StringIO import StringIO except ImportError: from io import StringIO factories = ( configparser.RawConfigParser, configparser.SafeConfigParser, configparser.ConfigParser, ) version = sys.version.split()[0] print for factory in factories: cp = factory() cp.add_section('section') sio = StringIO() try: cp.set('section', 'option', None) except TypeError: print("%s %s: raised TypeError on set" % (version, factory.__name__)) else: cp.write(sio) output = sio.getvalue() if output == "[section]\noption = None\n\n": print("%s %s: old-style output" % (version, factory.__name__)) elif output == "[section]\noption\n\n": print("%s %s: new-style output" % (version, factory.__name__)) else: print("%s %s: argh! %r" % (version, factory.__name__, output))