[IPython-dev] storing variables *in* the notebook

Nathan Goldbaum nathan12343 at gmail.com
Thu Jan 26 16:35:57 EST 2017


On Thu, Jan 26, 2017 at 3:32 PM, Zoltán Vörös <zvoros at gmail.com> wrote:

> Hi Matthias,
>
>
> On 01/26/2017 10:03 PM, Matthias Bussonnier wrote:
>
>> If I were you I would go the route of a custom ContentManager which
>> expose actual folders as notebooks (something akin ipymd/notedown but
>> with folders) and start kernels in these folders.
>> Then you "just" zip and share the folder. That would also solve the
>> fact that notebooks are text-based fileformats, which are inherently
>> bad for binary data, andd o not support incremental updates.
>>
>
> If the data are pickled, then one wouldn't have to save anything in binary
> format. All I want to do is write a single ascii line in the metadata if
> the notebook. That in itself is actually recommended (From the help: " We
> recommend putting custom metadata attributes in an appropriately named
> sub-structure, so they don't conflict with those of others."), and supports
> incremental updates. This magic command or whatever would simply save the
> step of having to open the metadata editor manually, and inserting the line
> by hand.
>
> One of the problem is that what you are trying to do will not work on
>> many system and it is relatively hard to make it part of Jupyter if it
>> only work on some limited use case as we'd like to have a clear
>> message of what is vetted by the core.
>>
>
> I am not sure I see the difficulty: this would be pure python, pure
> javascript. You take the variable, pickle it, attach the resulting string
> to the notebook metadata under "user_variables", and you are done. Of
> course, it is a different question, what happens, if your kernel is not
> python. Well, then it's a problem, I admit. But there are other magic
> commands that are python specific, e.g., prun, or the debugger, so this in
> itself can't be an obstacle.
>

But pickles aren't portable. You wouldn't only be able to share this data
unless others use the same OS/arch/python version. Seems less flexible than
a sidecar file with the data stored in a portable format (e.g. hdf5, csv,
etc...).


>
> I have looked at the documentation, but it seems to me that no functions
> could expose the notebook metadata, or the cell metadata for that matter,
> is that correct? (I don't want to divert the discussion, but this latter
> functionality could be used for creating plots/tables etc. with caption in
> the notebook. The caption would be displayed in the notebook as an extra
> div, and the content of the caption could be written in the cell metadata.
> Nbconvert could then strip the div from the output, and take the raw
> content of the metadata, and insert it in the LaTeX document. Captions for
> figures are a long-standing problem in the notebook.)
>
>
>
> Cheers,
> Zoltán
>
>
>
> _______________________________________________
> IPython-dev mailing list
> IPython-dev at scipy.org
> https://mail.scipy.org/mailman/listinfo/ipython-dev
>
-------------- next part --------------
An HTML attachment was scrubbed...
URL: <http://mail.python.org/pipermail/ipython-dev/attachments/20170126/86a796b5/attachment.html>


More information about the IPython-dev mailing list