<br><br><div class="gmail_quote">On Sat, Jun 2, 2012 at 11:45 AM, Arnaud Gardelein <span dir="ltr"><<a href="mailto:arnaud@oscopy.org" target="_blank">arnaud@oscopy.org</a>></span> wrote:<br><blockquote class="gmail_quote" style="margin:0 0 0 .8ex;border-left:1px #ccc solid;padding-left:1ex">

Hi all,<br>
<br>
The new ipython configuration system allows to customize for particular<br>
application three classes, InteractiveShell, PrefilterManager and<br>
AliasManager all subclasses of Configurable as described in the<br>
documentation. Each option from those classes are settable from argument<br>
of ipython command.<br>
Assuming a new configurable object described in a ipython 'foo' profile:<br>
<br>
from IPython.config.configurable import Configurable<br>
from IPython.utils.traitlets import Int, Float, Unicode, Bool<br>
class Foo(Configurable):<br>
    name = Unicode(u'Foo')<br>
    bar = Bool(False, config=True)<br>
<br>
How to make the boolean 'bar' also an argument settable from ipython<br>
command with a '--bar' or '--no-bar' when invoking ipython<br>
--profile=foo?<br></blockquote><div><br></div><div>You can't do precisely this, because the command-line args are fully parsed by the time the profile is known (they are used to determine the profile!).</div><div><br>

</div><div>What is your *actual* goal here, because I doubt that it is to configure a transient object in your config file that will be deleted immediately and not importable, which would be the case if defined in a config file.</div>

<div><br></div><div>Note that there is a difference between "all configurables" being accessible and the short '--foo' flags.  Those are manually defined, and only for a short list of common options.  But *all* configurables are available in the form:</div>

<div><br></div><div>    --Class.trait=foo</div><div><br></div><div>If your goal is to make a particular class of yours configurable, you can set its options in this way, and then the only thing you need to do is pass the IPython instance's config object to your constructor:</div>

<div><br></div><div><br></div><div><font face="courier new, monospace">ipython --Foo.bar=True</font></div><div><font face="courier new, monospace"><br></font></div><div><font face="courier new, monospace">In [1]: from IPython.config.configurable import Configurable</font></div>

<div><div><font face="courier new, monospace">In [2]: from IPython.utils.traitlets import Bool</font></div></div><div><font face="courier new, monospace"><br></font></div><div><font face="courier new, monospace">In [3]: class Foo(Configurable):</font></div>

<div><font face="courier new, monospace">   ...:     bar = Bool(False, config=True)</font></div><div><font face="courier new, monospace"><br></font></div><div><font face="courier new, monospace">In [4]: foo = Foo(config=get_ipython().config)</font></div>

<div><font face="courier new, monospace"><br></font></div><div><font face="courier new, monospace">In [5]: foo.bar</font></div><div><font face="courier new, monospace">Out[5]: True</font></div><div><br></div><div>-MinRK</div>

<div> </div><blockquote class="gmail_quote" style="margin:0 0 0 .8ex;border-left:1px #ccc solid;padding-left:1ex">
<br>
Thanks,<br>
<br>
Arnaud.<br>
<br>
_______________________________________________<br>
IPython-dev mailing list<br>
<a href="mailto:IPython-dev@scipy.org">IPython-dev@scipy.org</a><br>
<a href="http://mail.scipy.org/mailman/listinfo/ipython-dev" target="_blank">http://mail.scipy.org/mailman/listinfo/ipython-dev</a><br>
</blockquote></div><br>