<p>On Aug 12, 2012 12:56 PM, "PJ Eby" <<a href="mailto:pje@telecommunity.com">pje@telecommunity.com</a>> wrote:<br>
> I'm not sure if this is directly related or not, but making this<br>
> mechanism support custom compilation for new filename suffixes would<br>
> be nice, especially for various e.g. HTML/XML templating systems that<br>
> compile to Python or bytecode.<br>
><br>
> Specifically, having a way to add a new source suffix (e.g. ".kid",<br>
> ".zpt", etc.) and a matching compilation function, such that it's<br>
> automatically picked up for compilation by both the filesystem and zip<br>
> importers would be awesome. It'd also allow for DSLs and syntax<br>
> experiments using alternative filename extensions.</p>
<p>+1</p>
<p>I'm hacking around this right now for a project I'm working on. I definitely do this through the import system. Inserting a look-alike path hook and monkeypatching the cached path entry finders is not difficult, but certainly fragile and less than ideal.</p>
<p>Consequently I've been looking into simple and not-so-simple solutions to making it easier to add new suffixes to be handled. The source/pyc-to-code-to-module path during imports is so prevalent and critical that it may benefit from its own model. This is similar to how the path-based import subsystem has its own special-case model. Or source-based imports just need better special-casing in the path-based import subsystem. Perhaps just adding and using sys.source_suffixes as a mapping of suffixes to loader classes.</p>
<p>-eric</p>