Fix issue #880 - more useful message to user when %paste fails #999

Merged
merged 2 commits into from Nov 21, 2011

Projects

None yet

2 participants

@mattrco

When tkinter is not installed and '%paste' is run, the user is now prompted to install it.

Initializes TryNext exception in CommandChainDispatcher with args/kwargs to present a message to the user with the traceback.

@mattrco mattrco Fix issue #880 - initialize TryNext with args and kwargs.
Presents a message to the user along with the traceback prompting them to install tkinter.
14d011c
@takluyver
IPython member

Thanks, Matt. I think it would be good to also catch this exception in magic_paste (see here), and just print an error message instead of showing an unhelpful traceback.

@mattrco

Sounds good - and I'll also clean up the message. Still getting to grips with the codebase somewhat.

@takluyver
IPython member

No worries - part of the idea behind quickfix bugs is to get new people into the code.

@takluyver
IPython member

@MattCottingham: Have you had a chance to have another look at this? Don't worry if not.

@mattrco

@takluyver, afraid I haven't had a chance this week - but I will have more time this coming week. Though if somebody else would like to fix it don't let this block them :)

@takluyver
IPython member
@mattrco

@takluyver, I've made a quick update to catch the exception in magic_paste. If an error message is provided, that is printed. Otherwise, if no other details are provided, a more generic message is printed.

In some ways I'd like to re-raise in magic_paste and handle the exception in the caller, but I realise that's not quite how TryNext is used across the project.

Any suggestions for improvement welcome!

@takluyver takluyver merged commit 205731a into ipython:master Nov 21, 2011
@takluyver
IPython member

That's great. Don't worry, we don't generally raise exceptions from magic_* functions.

I've made one tiny change, so the error is a little bit tidier (213b5ed), and merged it.

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment