I can not break the original code in 2.4, if I try this: import os, sys class NoMimeError(Exception): pass
def detectMimeType( filename ): extension = filename[-3:] basename = os.path.basename(filename) if extension == "php": return "application/x-php" elif extension == "cpp" or extension.endswith("cc"): return "text/x-c++-src" elif extension == "1": return 'BlahBlah' elif extension == "2": return 'BlahBlah' elif extension == "3": return 'BlahBlah' elif extension == "4": return 'BlahBlah' elif extension == "5": return 'BlahBlah' elif extension == "6": return 'BlahBlah' elif extension == "7": return 'BlahBlah' elif extension == "8": return 'BlahBlah' elif extension == "9": return 'BlahBlah' elif extension == "10": return 'BlahBlah' elif extension == "11": return 'BlahBlah' elif extension == "12": return 'BlahBlah' elif extension == "13": return 'BlahBlah' elif extension == "14": return 'BlahBlah' elif extension == "15": return 'BlahBlah' elif extension == "16": return 'BlahBlah' elif extension == "17": return 'BlahBlah' elif extension == "18": return 'BlahBlah' elif extension == "19": return 'BlahBlah' elif extension == "20": return 'BlahBlah' elif extension == "xsl": return "text/xsl" elif basename.find( "Makefile" ) != -1: return "text/x-makefile" else: raise NoMimeError try: print detectMimeType(r'c:\test.php') print detectMimeType('c:\test.xsl') print detectMimeType('c:\test.xxx') except Exception, e: print >> sys.stderr, '%s: %s' %(e.__class__.__name__, e) I get >>> application/x-php text/xsl NoMimeError: >>> So although the dictionary solution is much nicer nothing seems wrong with your code as it is - or am I missing something? -- http://mail.python.org/mailman/listinfo/python-list