ipython/ipython — Issue #849: Command line options to not override profile options
Author: asmeurer
Created: 2011-10-09 22:22:52+00:00
State: open

See http://mail.scipy.org/pipermail/ipython-user/2011-October/008549.html. I don't have a full understanding of the issue, so I hope that nothing I say here is wrong. If I run `ipython --colors=NoColor`, it doesn't work, because I have `c.TerminalInteractiveShell.colors ='Linux'` set in my profile (see https://github.com/asmeurer/dotfiles/blob/master/.ipython/profile_default/ipython_config.py). To quote Min from the IPython mailing list

```
Yes - this is a silly thing that we need to figure out. The 'colors' cl_arg sets InteractiveShell.colors. You have set TerminalInteractiveShell.colors, which is a subclass, and thus takes precedence. So when you have colors set in your config, and *also* at the command-line, you will be starting up IPython with config:

c.InteractiveShell.colors = 'NoColor'
c.TerminalInteractiveShell.colors = 'Linux'

Now, if you change your config file to specify InteractiveShell.colors instead of TerminalInteractiveShell.colors, the cl-arg will properly override.

What we should really do is adjust the cl-arg system, such that it maps somehow to all subclasses, or possibly just the lowest active subclass, so it always gets highest priority.
```