On 7 October 2011 20:53, Diego Mascialino <dmascialino@gmail.com> wrote:
Hello,  I opened this issue a long time ago, and Éric Araujo said that
it should be discussed on this list.

This is my feature request message:


Example:

---------------- mod.py ----------------
def f():
   a,b,c = 1,2
   print b
----------------------------------------

If i do:

>>> import mod
>>> mod.f()

I get:

Traceback (most recent call last):
 File "<stdin>", line 1, in <module>
 File "mod.py", line 2, in f
   a,b,c = 1,2
ValueError: need more than 2 values to unpack


If i fix the source:

---------------- mod.py ----------------
def f():
   a,b,c = 1,2,3
   print b
----------------------------------------

And do:

>>> mod.f()

I get:

Traceback (most recent call last):
 File "<stdin>", line 1, in <module>
 File "mod.py", line 2, in f
   a,b,c = 1,2,3
ValueError: need more than 2 values to unpack


The problem is that the source shown is updated, but the executed code
is old, because it wasn't reloaded.

Feature request:

If the source code shown was modified after import time and it wasn't
reloaded, a warning message should be shown.

Example:

Traceback (most recent call last):
 File "<stdin>", line 1, in <module>
 File "mod.py", line 2, in f      WARNING: Modified after import!
   a,b,c = 1,2,3
ValueError: need more than 2 values to unpack

or something like that.

That would mean every function call would need to check the age of the source file and bytecode file on disk and compare!

Michael
 


Thanks,
Diego Mascialino
_______________________________________________
Python-ideas mailing list
Python-ideas@python.org
http://mail.python.org/mailman/listinfo/python-ideas



--
http://www.voidspace.org.uk/

May you do good and not evil
May you find forgiveness for yourself and forgive others
May you share freely, never taking more than you give.
-- the sqlite blessing http://www.sqlite.org/different.html