[Python-Dev] Catch SIGINT at Python startup
Guido van Rossum
guido at python.org
Mon Mar 8 23:14:51 CET 2010
On Mon, Mar 8, 2010 at 2:01 PM, Victor Stinner
<victor.stinner at haypocalc.com> wrote:
> Le lundi 08 mars 2010 22:06:36, vous avez écrit :
>> OTOH I think the try/except in site.py around the execution of
>> sitecustomize.py might be changed so that it prints a full traceback
>> whenever it raises an exception other than ImportError or, again,
>> exceptions inheriting from BaseException but not from Exception. IOW I
>> think that exceptions coming out of sitecustomize.py should continued
>> to be treated non-fatally, apart from ^C and friends, but I think that
>> exceptions coming out of site.py *might* be considered more fatally
>> once the change to exceptions coming out of sitecustomize.py is made.
>
> Do you mean something like the following code?
> ----------------------
> def execsitecustomize():
> """Run custom site specific code, if available."""
> try:
> import sitecustomize
> except ImportError:
> pass
> except Exception:
> if sys.flags.verbose:
> sys.excepthook(*sys.exc_info())
> else:
> print >>sys.stderr, "'import sitecustomize' failed; use -v for
> traceback"
>
> def execusercustomize():
> """Run custom user specific code, if available."""
> try:
> import usercustomize
> except ImportError:
> pass
> except Exception:
> if sys.flags.verbose:
> sys.excepthook(*sys.exc_info())
> else:
> print >>sys.stderr, "'import usercustomize' failed; use -v for
> traceback"
> ----------------------
Yes, roughly.
> Using these functions, even if sitecustomize fails, usercustomize is imported.
Until 5 minutes ago I didn't even know we had usercustomize. :-)
> Can it be a problem? Does usercustomize requires that sitecustomize has been
> initialized correctly?
I don't know, but if it is, execsitecustomize() could return a flag to
be checked by the code that calls execusercustomize().
> (The code can be changed to only import usercustomize if sitecutomize succeed
> or failed with an ImportError, but not if it fails with a different error)
Right. It doesn't strike me as a big deal either way.
--
--Guido van Rossum (python.org/~guido)
More information about the Python-Dev
mailing list