I am writing a basic Python module which contains a function that plots some data from a Pandas DataFrame. The problem is that I expect users to call this function from both the interactive shell and IPython notebooks. Unfortunately, our interactive shell environment does not have any valid DISPLAY options for matplotlib to use, so I want my function (or the full module) to behave slightly different depending on which environment it is loaded into. (E.g., the default is show the plot without saving in IPython, and save the plot without showing in the shell).
This question gives me a partial answer, in that I can explicitly tell users to write matplotlib.use('Agg')
before they ever import my module, but surely there is a more automated backend way to handle this?