Steven D'Aprano wrote:
On Wed, Jun 13, 2012 at 03:13:54PM -0400, R. David Murray wrote:

Again, a program that depends on asserts is buggy.

As Ethan pointed out we are asking about the case where someone is
*deliberately* setting the .pyo file up to be run as the "normal"
case.

You can't be sure that the .pyo file is there due to *deliberate* choice. It may be accidental. Perhaps the end user has ignorantly deleted the .pyc file, but failed to delete the .pyo file. Perhaps the developer has merely made a mistake.

You can't just delete the .pyc file to get the .pyo file to run; remember in 3.x compiled files are kept in a __pycache__ folder, and if there is no .py file the compiled files are ignored (correct me if I'm wrong), so to get the either the .pyc file /or/ the .pyo file to run /without/ a .py file, you have to physically move the compiled file to where the source file should be. It could still be accidental, but it's far less likely to be.


Under current behaviour, deleting the .pyc file shouldn't matter:

- if the source file is available, that will be used
- if not, a clear error is raised

Under the proposed change:

- if the source file is *newer* than the .pyo file, it will be used
- but if it is missing or older, the .pyo file is used

Again, not in 3.x.

~Ethan~
_______________________________________________
Python-Dev mailing list
Python-Dev@python.org
http://mail.python.org/mailman/listinfo/python-dev
Unsubscribe: 
http://mail.python.org/mailman/options/python-dev/archive%40mail-archive.com

Reply via email to