If I'm understanding correctly, that is what is currently implemented.

*  The default value is specified line 692.
*  No mention in `conf.py` gets the default value.
*  If you don't want anything imported, use `[]`.

But it handles one other case:

* If user sets `ipython_execlines = None` in `conf.py`, use the default value.

This seems like an important use case to keep in mind, especially given that `None` is frequently used to mean "give me the default".  Because I wanted to handle this case, setting the default value in setup() at line 806 seemed out of place.  That is, had I made it:

    app.add_config_value('ipython_execlines', ['import numpy as np', 'from pylab import *'], 'env')

then an explicit setting to `None` would pass through unhandled.  Then, I'd have to post-process *later* within `IPythonDirective` changing a value of `None` to the default.  It's a bit convoluted, but it covers the use case without spreading default values in two places.  Does that make sense? Any further comments?  If we keep what I have, I'll definitely put more comments in there, explaining the rationale.