<html><head></head><body style="word-wrap: break-word; -webkit-nbsp-mode: space; -webkit-line-break: after-white-space; "><br><div><div>On 8 Dec 2009, at 13:44, Ben Finney wrote:</div><blockquote type="cite"><div><font class="Apple-style-span" color="#000000"><br></font>* A new attribute ‘sys.import_orphaned_bytecode’. If set ‘True’, the<br>  interpreter follows the current behaviour. If ‘False’, any bytecode<br>  file satisfies an import only if it has a corresponding source file<br>  (where “corresponding” means “this source file would, if compiled,<br>  result in a bytecode file replacing this one”).<br></div></blockquote></div><br><div>One problem with a sys flag is that it's a global setting. Suppose a package is distributed with only pyc/pyo files, then the top-level __init__.py might flip the switch such that its sub-files can get imported from the pyc/pyo files. But you wouldnt want that flag to persist beyond that.</div><div><br></div><div>Another idea is to use a new file extension, which isnt the best solution, but allows the creator to explicitly set what behavior they intended for their files:</div><div>  * if a foo.py file exists, then use the existing foo.pyc/pyo as is done today</div><div>  * if a foo.py file does not exist, but a foo.pyxxx exists, use it (but file.pyc/pyo is never used, unlike today)</div><div>(pyxxx is a placeholder for whatever would be a reasonable name)</div><div><br></div><div>Jared</div></body></html>