Hi Steve,

Quickly handwaved:

```
from traitlets import Configurable, Unicode


class MyCustomContentManager(Configurable):



    # the class attribute will be AutoMagically be made a instance one
and accessible via self.parameter.
    parameter = Unicode('default', config=True, help='Frobulate
parameter as Unicode from the command line or config files.')

    def __init__(self, ..., parent=None, config=None):
        super().__init__(...,parent=parent, config=config) # important
        ...
```


You can set the value of parameter with
`c.MyCustomContentManager.parameter = 'Whatever'` in any config file.

This pattern is in many places of our codebase[1] and uses metaclasses.

If your content manager inherit from ours , then
`c.ContentManager.parameter = 'Whatever'` should work as well.

Does that make some sens ? There is a bit more magic involved if you
want advanced features, but I guess that might be already a lot to
digest.

Cheers,
-- 
M


[1]: 
https://github.com/jupyter/notebook/blob/master/notebook/services/contents/manager.py#L65-L95

On Mon, Sep 26, 2016 at 9:47 AM, Steven Anton <[email protected]> wrote:
> Hi everyone,
>
> I have a custom ContentsManager class that I'd like to configure using the
> standard Jupyter tools. In particular, I'm looking for something along the
> lines of adding a line like "c.MyContentsManager.parameter = 'value'" to the
> jupyter_notebook_config.py and reading that parameter in the custom
> ContentsManager. I'm hoping this is an easy task, but I can't seem to find
> the relevant functions in the jupyter source code. Maybe something like:
>
> # source code for the custom ContentsManager
>
> from notebook.services.config import ConfigManager
>
> cm = ConfigManager()
>
> cm.get("MyContentsManager").get("parameter", "default")
>
> Does anyone have ideas on how to accomplish this?
>
> Thanks so much!
> Steve
>
> --
> You received this message because you are subscribed to the Google Groups
> "Project Jupyter" group.
> To unsubscribe from this group and stop receiving emails from it, send an
> email to [email protected].
> To post to this group, send email to [email protected].
> To view this discussion on the web visit
> https://groups.google.com/d/msgid/jupyter/193be8d9-3321-4dca-b058-6c9ce266355b%40googlegroups.com.
> For more options, visit https://groups.google.com/d/optout.

-- 
You received this message because you are subscribed to the Google Groups 
"Project Jupyter" group.
To unsubscribe from this group and stop receiving emails from it, send an email 
to [email protected].
To post to this group, send email to [email protected].
To view this discussion on the web visit 
https://groups.google.com/d/msgid/jupyter/CANJQusVpB4Y_kESeGGTRQvBAe80FAs1aiJai_4KO_3S9zzij1A%40mail.gmail.com.
For more options, visit https://groups.google.com/d/optout.

Reply via email to