En Sat, 24 Mar 2007 20:46:15 -0300, Mark <[EMAIL PROTECTED]> escribió:
> The above doesn't actually work for my test script. I have an atexit > call in the script which is deleting some temp files and I get the > following traceback on termination when run with the above: > > Error in atexit._run_exitfuncs: > Traceback (most recent call last): > File "atexit.py", line 24, in _run_exitfuncs > func(*targs, **kargs) > File "/home/mark/bin/myscript.py", line 523, in delete > if files.tempdir: > AttributeError: 'NoneType' object has no attribute 'tempdir' I don't know exactly what happened so it doesn't work anymore (and it worked before) but script finalization is always a bit fragile. All values in all modules dictionaries (holding globals) are set to None (presumably to help garbage collection by breaking cycles). When your delete function is called, globals like shutil or files are already gone. A way to avoid this problem is to hold a reference to all required globals, so your delete function would become: @staticmethod def delete(files=files,rmtree=shutil.rmtree): '''Called to delete all temp files''' if files.tempdir: rmtree(files.tempdir) But I'm not sure if this is enough because rmtree relies on the os module to do its work. -- Gabriel Genellina -- http://mail.python.org/mailman/listinfo/python-list