import codecs def encoder(s, errors="strict"): raise RuntimeError("dummy error") def decoder(s, errors="strict"): return unicode(s, 'ascii', errors), len(s) def dmy_search(encoding): if encoding == "dmyencoding": return (encoder, decoder, codecs.StreamWriter, codecs.StreamReader) def test(): codecs.register(dmy_search) src = """#! -*- coding: dmyencoding -*-\n print 'hello """ compile(src, "", "exec") test()