From jiri.machala at xura.com Tue Jan 3 05:17:19 2017 From: jiri.machala at xura.com (Jiri Machala) Date: Tue, 3 Jan 2017 10:17:19 +0000 Subject: [IPython-dev] wrong documentation? embedding IPython example doesn't work (for me) Message-ID: Hello, I'm looking to integrate interactive shell to extended unittests framework I work on and I wanted to use IPython for that. But when I tried the example from http://ipython.readthedocs.io/en/stable/interactive/reference.html#embedding-ipython - embed_class_long.py it doesn't seem to work properly - after exiting instance of InteractiveShellEmbed for the first time, next time it should open it just displays both banner and exit messages and no actual shell opens. Calling IPython.embed() works ok, but I need to set custom banner and new commands (magics in IPython lingo?) which I think isn't possible that way I'll be grateful for any guesses why the manual example doesn't work or what should I change/test/etc (I'm using python 2.7 , IPython version 5.0.0 on Linux; tried also python 3.4.3 with same result) Jiri Machala ________________________________ "This e-mail message may contain confidential, commercial or privileged information that constitutes proprietary information of Xura, Inc. or its subsidiaries. If you are not the intended recipient of this message, you are hereby notified that any review, use or distribution of this information is absolutely prohibited and we request that you delete all copies and contact us by e-mailing to: security at xura.com. Thank You." -------------- next part -------------- An HTML attachment was scrubbed... URL: From takowl at gmail.com Fri Jan 6 11:40:03 2017 From: takowl at gmail.com (Thomas Kluyver) Date: Fri, 6 Jan 2017 16:40:03 +0000 Subject: [IPython-dev] wrong documentation? embedding IPython example doesn't work (for me) In-Reply-To: References: Message-ID: On 3 January 2017 at 10:17, Jiri Machala wrote: > embed_class_long.py it doesn't seem to work properly - after exiting > instance of InteractiveShellEmbed for the first time, next time it should > open it just displays both banner and exit messages and no actual shell > opens. How are you exiting it? It works for me (I get dropped into the embedded shell multiple times). -------------- next part -------------- An HTML attachment was scrubbed... URL: From jiri.machala at xura.com Wed Jan 11 05:15:16 2017 From: jiri.machala at xura.com (Jiri Machala) Date: Wed, 11 Jan 2017 10:15:16 +0000 Subject: [IPython-dev] wrong documentation? embedding IPython Message-ID: From: Thomas Kluyver >On 3 January 2017 at 10:17, Jiri Machala wrote: > >> embed_class_long.py it doesn't seem to work properly - after exiting >> instance of InteractiveShellEmbed for the first time, next time it >> should open it just displays both banner and exit messages and no >> actual shell opens. > > >How are you exiting it? It works for me (I get dropped into the embedded shell multiple times). It happened both when using ^D or typing exit, but I found out, that it was because of using IPython 5.0.0 - when I updated to 5.1.0 , everything started to work ok. Thank you for your effort. Jiri Machala ________________________________ ?This e-mail message may contain confidential, commercial or privileged information that constitutes proprietary information of Xura, Inc. or its subsidiaries. If you are not the intended recipient of this message, you are hereby notified that any review, use or distribution of this information is absolutely prohibited and we request that you delete all copies and contact us by e-mailing to: security at xura.com. Thank You.? From max.linke88 at gmail.com Mon Jan 16 10:23:05 2017 From: max.linke88 at gmail.com (Max Linke) Date: Mon, 16 Jan 2017 16:23:05 +0100 Subject: [IPython-dev] GSOC 2017: NumFOCUS will be an umbrella organization Message-ID: <40f85dfb-0635-a042-79b7-039d3dd347a9@gmail.com> Hi Organizations can start submitting applications for Google Summer of Code 2017 on January 19 (and the deadline is February 9) https://developers.google.com/open-source/gsoc/timeline?hl=en NumFOCUS will be applying again this year. If you want to work with us please let me know and if you apply as an organization yourself or under a different umbrella organization please tell me as well. If you participate with us it would be great if you start to add possible projects to the ideas page on github soon. We some general information for mentors on github. https://github.com/numfocus/gsoc/blob/master/CONTRIBUTING-mentors.md We also have a template for ideas that might help. It lists the things Google likes to see. https://github.com/numfocus/gsoc/blob/master/2017/ideas-list-skeleton.md In case you participated in earlier years with NumFOCUS there are some small changes this year. Raniere won't be the admin this year. Instead I'm going to be the admin. We are also planning to include two explicit rules when a student should be failed, they have to communicate regularly and commit code into your development branch at the end of the summer. best, Max From carl.input at gmail.com Wed Jan 18 09:09:33 2017 From: carl.input at gmail.com (Carl Smith) Date: Wed, 18 Jan 2017 14:09:33 +0000 Subject: [IPython-dev] Getting the Input History Message-ID: Hi there, Is there a nice way to get the input history as a list? Currently, it seems that the only way is to write the history to a file, then read it back in from there. I'd like to create a magic, named something like *squash*, that basically combines the previous *n* inputs into a single string that can then be edited as one input. For example, entering these three lines... *In[1]:* *a = b* *In[2]:* *c = d* *In[3]:* *squash 2* ...would automatically create something like this: *In[4]:* *a = b* *.....:* *c = d* I'm not too bothered if writing to a file is the only way to do it, but just thought I'd ask here first, just in case I missed something. Cheers, -- Carl Smith carl.input at gmail.com -------------- next part -------------- An HTML attachment was scrubbed... URL: From takowl at gmail.com Wed Jan 18 10:23:54 2017 From: takowl at gmail.com (Thomas Kluyver) Date: Wed, 18 Jan 2017 15:23:54 +0000 Subject: [IPython-dev] Getting the Input History In-Reply-To: References: Message-ID: On 18 January 2017 at 14:09, Carl Smith wrote: > Is there a nice way to get the input history as a list? > Yep, it's accessible as _ih inside IPython. For a magic command or something, you can get it as: shell.history_manager.input_hist_raw > I'd like to create a magic, named something like *squash*, that basically > combines the previous *n* inputs into a single string that can then be > edited as one input. For example, entering these three lines... > The %recall magic can already do something similar with a range of input numbers, e.g. %recall 1-3 5 7 should give you a new prompt with inputs 1-3, 5 and 7. Thomas -------------- next part -------------- An HTML attachment was scrubbed... URL: From carl.input at gmail.com Wed Jan 18 13:49:40 2017 From: carl.input at gmail.com (Carl Smith) Date: Wed, 18 Jan 2017 18:49:40 +0000 Subject: [IPython-dev] Getting the Input History In-Reply-To: References: Message-ID: Thank you Thomas. It seemed like I'd missed something. Cheers, -- Carl Smith carl.input at gmail.com On 18 January 2017 at 15:23, Thomas Kluyver wrote: > On 18 January 2017 at 14:09, Carl Smith wrote: > >> Is there a nice way to get the input history as a list? >> > > Yep, it's accessible as _ih inside IPython. For a magic command or > something, you can get it as: shell.history_manager.input_hist_raw > > >> I'd like to create a magic, named something like *squash*, that >> basically combines the previous *n* inputs into a single string that can >> then be edited as one input. For example, entering these three lines... >> > > The %recall magic can already do something similar with a range of input > numbers, e.g. %recall 1-3 5 7 should give you a new prompt with inputs 1-3, > 5 and 7. > > Thomas > > > > _______________________________________________ > 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: From glenn.caltech at gmail.com Wed Jan 25 11:04:42 2017 From: glenn.caltech at gmail.com (G Jones) Date: Wed, 25 Jan 2017 11:04:42 -0500 Subject: [IPython-dev] Using traitlets.config outside of IPython Message-ID: Hi, I am really intrigued by the design and features of the traitlets.config system that IPython uses for configuration. I am considering using it for a project of my own, but I am not sure if it is a good fit. To help decide, I wanted to look to see how other projects are using it, but so far I haven't really found any outside of the IPython/Jupyter ecosystem. This in itself is a bit worrying; maybe it's too specialized to the needs of IPython? Are there any other projects using traitlets.config that people know of? Any advice about using it for another project as opposed to more traditional yaml or ConfigParser style configuration? Thanks, Glenn -------------- next part -------------- An HTML attachment was scrubbed... URL: From takowl at gmail.com Wed Jan 25 11:24:24 2017 From: takowl at gmail.com (Thomas Kluyver) Date: Wed, 25 Jan 2017 16:24:24 +0000 Subject: [IPython-dev] Using traitlets.config outside of IPython In-Reply-To: References: Message-ID: On 25 January 2017 at 16:04, G Jones wrote: > I am really intrigued by the design and features of the traitlets.config > system that IPython uses for configuration. I am considering using it for a > project of my own, but I am not sure if it is a good fit. To help decide, I > wanted to look to see how other projects are using it, but so far I haven't > really found any outside of the IPython/Jupyter ecosystem. This in itself > is a bit worrying; maybe it's too specialized to the needs of IPython? Are > there any other projects using traitlets.config that people know of? Traitlets is a lightweight clone of Enthought's traits package; you might be able to find more projects using that. I think matplotlib was thinking of using traitlets, but I don't think they were going to use the config part. > Any advice about using it for another project as opposed to more > traditional yaml or ConfigParser style configuration? The big downside of traitlets for config is that it exposes your class names as the keys for config options, so changing the structure of classes in later versions of your code can break people's config unless you write compatibility shims for them. The way we use it in Jupyter is mostly with executable .py config files. That's convenient for users editing them by hand, but doesn't really allow programmatic modification (e.g. if you want a GUI settings dialog). We use JSON files for saving config from the application, but then there's a potential source of confusion with different config files setting the same things. Thomas -------------- next part -------------- An HTML attachment was scrubbed... URL: From benjaminrk at gmail.com Wed Jan 25 15:08:31 2017 From: benjaminrk at gmail.com (MinRK) Date: Wed, 25 Jan 2017 21:08:31 +0100 Subject: [IPython-dev] Using traitlets.config outside of IPython In-Reply-To: References: Message-ID: On Wed, Jan 25, 2017 at 5:24 PM, Thomas Kluyver wrote: > On 25 January 2017 at 16:04, G Jones wrote: > >> I am really intrigued by the design and features of the traitlets.config >> system that IPython uses for configuration. I am considering using it for a >> project of my own, but I am not sure if it is a good fit. To help decide, I >> wanted to look to see how other projects are using it, but so far I haven't >> really found any outside of the IPython/Jupyter ecosystem. This in itself >> is a bit worrying; maybe it's too specialized to the needs of IPython? Are >> there any other projects using traitlets.config that people know of? > > > Traitlets is a lightweight clone of Enthought's traits package; you might > be able to find more projects using that. I think matplotlib was thinking > of using traitlets, but I don't think they were going to use the config > part. > > >> Any advice about using it for another project as opposed to more >> traditional yaml or ConfigParser style configuration? > > > The big downside of traitlets for config is that it exposes your class > names as the keys for config options, so changing the structure of classes > in later versions of your code can break people's config unless you write > compatibility shims for them. > > The way we use it in Jupyter is mostly with executable .py config files. > That's convenient for users editing them by hand, but doesn't really allow > programmatic modification (e.g. if you want a GUI settings dialog). We use > JSON files for saving config from the application, but then there's a > potential source of confusion with different config files setting the same > things. > My favorite part of the Python config files is the ability to put logic in the config file - e.g. use SSL if a cert is present, listen on the IP address for eth1, load my notebook password from my keychain, etc. From a maintainer perspective, the nicest part of traitlets config is probably the ability to automatically expose a configurable trait with `.tag(config=True)`. This allows extensions to fairly easily integrate with the existing config system when you have extensions like we do, and allows us to do our current "Everything is configurable!", which has complications as well. But Thomas is right about downsides, especially exposing your class names and hierarchy as a public configuration API. Another downside is tying configuration to instances, making access to config difficult in things like class and staticmethods. I'd certainly be happy for more help on traitlets, but honestly I think it's unlikely to be a good fit for most projects, especially small ones that aren't full of extension points. A simple yaml/ini config file would probably be easier to manage. You could even build a config system where you have a simple yaml file, but your objects still load their default values from config using traitlets (i.e. using traitlets for config doesn't mean you have to use traitlets.config). -Min > > > Thomas > > _______________________________________________ > 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: From zvoros at gmail.com Wed Jan 25 16:33:47 2017 From: zvoros at gmail.com (=?UTF-8?B?Wm9sdMOhbiBWw7Zyw7Zz?=) Date: Wed, 25 Jan 2017 22:33:47 +0100 Subject: [IPython-dev] storing variables *in* the notebook Message-ID: Hi all, This question has been raised a couple of times at various places, but I haven't yet found the answer I was looking for. In short, I would like to store the value of some variables in the notebook itself. The typical, and almost exclusively mentioned, use-case is something like this: In [320]: x = some_long_calculation(33) and then the user would like to be able to re-use x in a new session, without having to call some_long_calculation() again. Even worse is, perhaps, the case In [321]: x = some_long_measurement() when the value of x cannot, even in principle, be recovered by simply re-running the notebook, because some_long_measurement() collects experimental data through a measurement device. Now, the standard answer to this problem is the %store magic, but that has at least two problems (one is actually more like a feature). First, as far as I understand, it saves the variable into a separate file, therefore, the notebook itself is not "portable" anymore: if I want to give it to someone, or use it on another computer, then I need the extra file, but then I could just save the variable in a file in the first place. Second, if two sessions store the same variable, then, well, then it will be over-written, which is probably not ideal (but can qualify as a feature). So, I would like to ask, whether it is possible to attach the value of simple variables to the metadata of the notebook, and recover it from there. If there is no infrastructure for this, is this advisable at all, and what would it take to implement it? Basically, what I am after is very similar to store, but the target would be the notebook itself. Cheers, Zolt?n From takowl at gmail.com Wed Jan 25 17:20:36 2017 From: takowl at gmail.com (Thomas Kluyver) Date: Wed, 25 Jan 2017 22:20:36 +0000 Subject: [IPython-dev] storing variables *in* the notebook In-Reply-To: References: Message-ID: On 25 January 2017 at 21:33, Zolt?n V?r?s wrote: > Now, the standard answer to this problem is the %store magic, but that has > at least two problems (one is actually more like a feature). First, as far > as I understand, it saves the variable into a separate file, therefore, the > notebook itself is not "portable" anymore: if I want to give it to someone, > or use it on another computer, then I need the extra file, but then I could > just save the variable in a file in the first place. In many cases, we think that the unit of sharing should be a directory containing notebooks and associated data files, rather than a notebook itself. Storing and retrieving data in a notebook would require breaking the abstraction that the code inside a notebook doesn't know about the document it's part of. ActivePapers is a different take on connecting code and data which does package them in a single file; I believe it has some support for using a Jupyter notebook as part of an ActivePaper: https://github.com/khinsen/activepapers-python Thomas -------------- next part -------------- An HTML attachment was scrubbed... URL: From zvoros at gmail.com Thu Jan 26 02:45:01 2017 From: zvoros at gmail.com (=?UTF-8?B?Wm9sdMOhbiBWw7Zyw7Zz?=) Date: Thu, 26 Jan 2017 08:45:01 +0100 Subject: [IPython-dev] storing variables *in* the notebook In-Reply-To: References: Message-ID: <2f68de1b-c951-55d1-9b2d-3fed103cd8e0@gmail.com> Hi Thomas, Thanks for the comments! Here are mine. On 01/25/2017 11:20 PM, Thomas Kluyver wrote: > On 25 January 2017 at 21:33, Zolt?n V?r?s > wrote: > > Now, the standard answer to this problem is the %store magic, but > that has at least two problems (one is actually more like a > feature). First, as far as I understand, it saves the variable > into a separate file, therefore, the notebook itself is not > "portable" anymore: if I want to give it to someone, or use it on > another computer, then I need the extra file, but then I could > just save the variable in a file in the first place. > > > In many cases, we think that the unit of sharing should be a directory > containing notebooks and associated data files, rather than a notebook > itself. Storing and retrieving data in a notebook would require > breaking the abstraction that the code inside a notebook doesn't know > about the document it's part of. But by the same token, by resorting to the %store magic, the code inside the notebook is linked to something on the file system, in fact, surreptitiously in a way. I am afraid, I don't quite see, why and how %store is different in this respect. To me, one of the main appeals of the notebook is that one can write a report/log (by this I mean create figures, do data analysis/simulation and add context, explanation etc.) in a single document, portably, and without clobbering the file system. I believe, the use case I mentioned earlier is a logical extension of this concept. The over-arching theme of the whole ipython project is that data, analysis, presentation and narrative should not be separated. Metadata are routinely attached to markdown cells, so why could not be done the same for the notebook as well? I understand that you do not want people to store GBs of data in the notebook, but that was not the intent of the original question. > > ActivePapers is a different take on connecting code and data which > does package them in a single file; I believe it has some support for > using a Jupyter notebook as part of an ActivePaper: > https://github.com/khinsen/activepapers-python Thanks for the pointer, I will check it out! Zolt?n From fperez.net at gmail.com Thu Jan 26 12:14:39 2017 From: fperez.net at gmail.com (Fernando Perez) Date: Thu, 26 Jan 2017 09:14:39 -0800 Subject: [IPython-dev] Announcing JupyterCon 2017, August 23-25 in NYC! Message-ID: Dear Jupyter Community, it is my pleasure to announce that this year, we'll be having our first Jupyter community conference, JupyterCon. It will take place in August in NYC: http://jupytercon.com To accompany the conference launch, Brian and I drafted a little "State of Jupyter" post that we hope you'll find useful: https://www.oreilly.com/ideas/the-state-of-jupyter. For JupyterCon, we have partnered with O'Reilly Media, long-time supporters of the project and active publishers in the Python/Data Science space who have extensive experience running conferences. Andrew Odewahn, CTO of O'Reilly and I will be co-chairing the conference, and we hope many of you will be interested in participating with talk proposals, tutorials or attending to engage with your fellow Jupyter users and developers. We have a great program committee composed of a broad and diverse sample of our community, who will work with you to ensure you have a positive and productive experience submitting and preparing your talks, tutorials and activities. This is a big milestone for our project, and for me personally: I never imagined a tiny bit of Python config more than fifteen years ago would take us here, and I want to extend my most sincere gratitude to every single one of you who makes this possible. I also want to thank the entire team at O'Reilly for taking a risk with a project that has never held an event like this, as well as to our funders, the Alfred P. Sloan Foundation, the Gordon and Betty Moore Foundation and the Helmsley Trust, without whose support we would not be where we are (this conference was in fact part of our current grant deliverables). Please spread the word, submit a proposal, and join us in NYC so we can have both a great event and a project that continues to grow and contribute to research, education, industry and more! Very best, Fernando -- Fernando Perez (@fperez_org; http://fperez.org) fperez.net-at-gmail: mailing lists only (I ignore this when swamped!) fernando.perez-at-berkeley: contact me here for any direct mail -------------- next part -------------- An HTML attachment was scrubbed... URL: From tritemio at gmail.com Thu Jan 26 12:20:12 2017 From: tritemio at gmail.com (Antonino Ingargiola) Date: Thu, 26 Jan 2017 09:20:12 -0800 Subject: [IPython-dev] storing variables *in* the notebook In-Reply-To: <2f68de1b-c951-55d1-9b2d-3fed103cd8e0@gmail.com> References: <2f68de1b-c951-55d1-9b2d-3fed103cd8e0@gmail.com> Message-ID: Hi Zoltan, just a simple comment. If the data is not big, why not copying it verbatim in a code cell? Even in a very long single line if you do not wish to clobber the visual aspect. That way the notebook would be self-contained. My 2-cents. Antonio On Wed, Jan 25, 2017 at 11:45 PM, Zolt?n V?r?s wrote: > Hi Thomas, > > > Thanks for the comments! Here are mine. > > > On 01/25/2017 11:20 PM, Thomas Kluyver wrote: > >> On 25 January 2017 at 21:33, Zolt?n V?r?s > zvoros at gmail.com>> wrote: >> >> Now, the standard answer to this problem is the %store magic, but >> that has at least two problems (one is actually more like a >> feature). First, as far as I understand, it saves the variable >> into a separate file, therefore, the notebook itself is not >> "portable" anymore: if I want to give it to someone, or use it on >> another computer, then I need the extra file, but then I could >> just save the variable in a file in the first place. >> >> >> In many cases, we think that the unit of sharing should be a directory >> containing notebooks and associated data files, rather than a notebook >> itself. Storing and retrieving data in a notebook would require breaking >> the abstraction that the code inside a notebook doesn't know about the >> document it's part of. >> > > But by the same token, by resorting to the %store magic, the code inside > the notebook is linked to something on the file system, in fact, > surreptitiously in a way. I am afraid, I don't quite see, why and how > %store is different in this respect. > > To me, one of the main appeals of the notebook is that one can write a > report/log (by this I mean create figures, do data analysis/simulation and > add context, explanation etc.) in a single document, portably, and without > clobbering the file system. I believe, the use case I mentioned earlier is > a logical extension of this concept. > > The over-arching theme of the whole ipython project is that data, > analysis, presentation and narrative should not be separated. Metadata are > routinely attached to markdown cells, so why could not be done the same for > the notebook as well? > > I understand that you do not want people to store GBs of data in the > notebook, but that was not the intent of the original question. > > > >> ActivePapers is a different take on connecting code and data which does >> package them in a single file; I believe it has some support for using a >> Jupyter notebook as part of an ActivePaper: >> https://github.com/khinsen/activepapers-python >> > > Thanks for the pointer, I will check it out! > > > 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: From steve at holdenweb.com Thu Jan 26 12:21:41 2017 From: steve at holdenweb.com (Steve Holden) Date: Thu, 26 Jan 2017 17:21:41 +0000 Subject: [IPython-dev] Announcing JupyterCon 2017, August 23-25 in NYC! In-Reply-To: References: Message-ID: On Thu, Jan 26, 2017 at 5:14 PM, Fernando Perez wrote: > > This is a big milestone for our project, and for me personally: I never > imagined a tiny bit of Python config more than fifteen years ago would take > us here, and I want to extend my most sincere gratitude to every single one > of you who makes this possible. > I feel the same way about PyCon (in which I have played a far less active role than you have with Jupyter). Awesome to see what teams largely composed of volunteers can achieve when they work together! Many congratulations on this milestone. May there be many more! S Steve Holden -------------- next part -------------- An HTML attachment was scrubbed... URL: From denis.akhiyarov at gmail.com Thu Jan 26 12:33:46 2017 From: denis.akhiyarov at gmail.com (Denis Akhiyarov) Date: Thu, 26 Jan 2017 17:33:46 +0000 Subject: [IPython-dev] Announcing JupyterCon 2017, August 23-25 in NYC! In-Reply-To: References: Message-ID: I noticed one typo: At JuypterCon you?ll learn how to weave computation and data into rich, interactive narratives On Thu, Jan 26, 2017, 11:21 AM Steve Holden wrote: > On Thu, Jan 26, 2017 at 5:14 PM, Fernando Perez > wrote: > > > This is a big milestone for our project, and for me personally: I never > imagined a tiny bit of Python config more than fifteen years ago would take > us here, and I want to extend my most sincere gratitude to every single one > of you who makes this possible. > > > I feel the same way about PyCon (in which I have played a far less active > role than you have with Jupyter). Awesome to see what teams largely > composed of volunteers can achieve when they work together! > > Many congratulations on this milestone. May there be many more! > > S > > > Steve Holden > _______________________________________________ > 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: From zvoros at gmail.com Thu Jan 26 14:10:45 2017 From: zvoros at gmail.com (=?UTF-8?B?Wm9sdMOhbiBWw7Zyw7Zz?=) Date: Thu, 26 Jan 2017 20:10:45 +0100 Subject: [IPython-dev] storing variables *in* the notebook In-Reply-To: References: <2f68de1b-c951-55d1-9b2d-3fed103cd8e0@gmail.com> Message-ID: <15fd0d85-2dd1-d3dc-351b-61aa4a31f2d0@gmail.com> Hi Antonio, Thanks! Actually, this is how I do it at the moment, and it is certainly better than nothing. With small variables, it is quite OK, the medium-sized items (an array with 1000 elements, say) are a bit more problematic, though. Cheers, Zolt?n On 01/26/2017 06:20 PM, Antonino Ingargiola wrote: > Hi Zoltan, > > just a simple comment. > > If the data is not big, why not copying it verbatim in a code cell? > Even in a very long single line if you do not wish to clobber the > visual aspect. That way the notebook would be self-contained. > > My 2-cents. > Antonio > > On Wed, Jan 25, 2017 at 11:45 PM, Zolt?n V?r?s > wrote: > > Hi Thomas, > > > Thanks for the comments! Here are mine. > > > On 01/25/2017 11:20 PM, Thomas Kluyver wrote: > > On 25 January 2017 at 21:33, Zolt?n V?r?s >> wrote: > > Now, the standard answer to this problem is the %store > magic, but > that has at least two problems (one is actually more like a > feature). First, as far as I understand, it saves the variable > into a separate file, therefore, the notebook itself is not > "portable" anymore: if I want to give it to someone, or > use it on > another computer, then I need the extra file, but then I could > just save the variable in a file in the first place. > > > In many cases, we think that the unit of sharing should be a > directory containing notebooks and associated data files, > rather than a notebook itself. Storing and retrieving data in > a notebook would require breaking the abstraction that the > code inside a notebook doesn't know about the document it's > part of. > > > But by the same token, by resorting to the %store magic, the code > inside the notebook is linked to something on the file system, in > fact, surreptitiously in a way. I am afraid, I don't quite see, > why and how %store is different in this respect. > > To me, one of the main appeals of the notebook is that one can > write a report/log (by this I mean create figures, do data > analysis/simulation and add context, explanation etc.) in a single > document, portably, and without clobbering the file system. I > believe, the use case I mentioned earlier is a logical extension > of this concept. > > The over-arching theme of the whole ipython project is that data, > analysis, presentation and narrative should not be separated. > Metadata are routinely attached to markdown cells, so why could > not be done the same for the notebook as well? > > I understand that you do not want people to store GBs of data in > the notebook, but that was not the intent of the original question. > > > > ActivePapers is a different take on connecting code and data > which does package them in a single file; I believe it has > some support for using a Jupyter notebook as part of an > ActivePaper: > https://github.com/khinsen/activepapers-python > > > > Thanks for the pointer, I will check it out! > > > Zolt?n > _______________________________________________ > IPython-dev mailing list > IPython-dev at scipy.org > https://mail.scipy.org/mailman/listinfo/ipython-dev > > > > > > _______________________________________________ > IPython-dev mailing list > IPython-dev at scipy.org > https://mail.scipy.org/mailman/listinfo/ipython-dev From fperez.net at gmail.com Thu Jan 26 14:26:36 2017 From: fperez.net at gmail.com (Fernando Perez) Date: Thu, 26 Jan 2017 11:26:36 -0800 Subject: [IPython-dev] Announcing JupyterCon 2017, August 23-25 in NYC! In-Reply-To: References: Message-ID: On Thu, Jan 26, 2017 at 9:33 AM, Denis Akhiyarov wrote: > I noticed one typo: > > At JuypterCon you?ll learn how to weave computation and data into rich, > interactive narratives > Thanks Denis! We'll fix it :) Cheers f -- Fernando Perez (@fperez_org; http://fperez.org) fperez.net-at-gmail: mailing lists only (I ignore this when swamped!) fernando.perez-at-berkeley: contact me here for any direct mail -------------- next part -------------- An HTML attachment was scrubbed... URL: From jackson_loper at brown.edu Thu Jan 26 14:57:34 2017 From: jackson_loper at brown.edu (Loper, Jackson) Date: Thu, 26 Jan 2017 14:57:34 -0500 Subject: [IPython-dev] storing variables *in* the notebook In-Reply-To: References: Message-ID: Zolt?n -- I am very curious to know why you want the data embedded in the ipynb file, instead of storing a file in the same directory. Is it so you can share files with colleagues? If so, why not just share the whole directory? Is it just too bulky? Just curious as to what your motivation is. Anywho, if you really want to do it, and you're in the mood, I think it would be fairly straightforward to make a combined python/javascript plugin that allowed one to conveniently store code cells of the form # This is a datacell. If you do not have the datacell javascript extension, # this code cell may look really really long. Sorry about that. x = pickle.loads(b"\x80\x03}q\x00(X\x07\x00\x00\x00Purposeq\x01X$\x00\x00\x00Very important data just for Kluyverq\x02X\x07\x00\x00\x00Contentq\x03X\r\x00\x00\x00You're great!q\x04u.") and make them appear in the notebook as a "data cell" that looks like x = pickle.loads(<<>>) Such a data cell would be uneditable, but could be executed. I think the simplest way to do this would be to design an ipython widget that, when it comes online, adds such a "data cell" directly after the current one. Creating a cell should then be as simple as datacells.make_data_cell(varname='x',data="Hello world.") I could be missing something that makes this utterly impossible though. Cheers! Jackson Loper Division of Applied Math Brown University -------------- next part -------------- An HTML attachment was scrubbed... URL: From wstein at gmail.com Thu Jan 26 15:26:48 2017 From: wstein at gmail.com (William Stein) Date: Thu, 26 Jan 2017 12:26:48 -0800 Subject: [IPython-dev] storing variables *in* the notebook In-Reply-To: References: Message-ID: Hi Zolt?n, This is an interesting problem and idea. Not that it would matter to you, but we'll very likely implement this for SageMathCloud [1] using our global blob store, which is also how we deal with graphics in a way that keeps files small and makes copy paste between worksheets possible. I've made this issue: https://github.com/sagemathinc/smc/issues/1594 William [1] https://cloud.sagemath.com On Thu, Jan 26, 2017 at 11:57 AM, Loper, Jackson wrote: > Zolt?n -- > > I am very curious to know why you want the data embedded in the ipynb file, > instead of storing a file in the same directory. Is it so you can share > files with colleagues? If so, why not just share the whole directory? Is > it just too bulky? Just curious as to what your motivation is. > > Anywho, if you really want to do it, and you're in the mood, I think it > would be fairly straightforward to make a combined python/javascript plugin > that allowed one to conveniently store code cells of the form > > # This is a datacell. If you do not have the datacell javascript > extension, > # this code cell may look really really long. Sorry about that. > x = > pickle.loads(b"\x80\x03}q\x00(X\x07\x00\x00\x00Purposeq\x01X$\x00\x00\x00Very > important data just for > Kluyverq\x02X\x07\x00\x00\x00Contentq\x03X\r\x00\x00\x00You're > great!q\x04u.") > > and make them appear in the notebook as a "data cell" that looks like > > x = pickle.loads(<<>>) > > Such a data cell would be uneditable, but could be executed. > > I think the simplest way to do this would be to design an ipython widget > that, when it comes online, adds such a "data cell" directly after the > current one. Creating a cell should then be as simple as > > datacells.make_data_cell(varname='x',data="Hello world.") > > I could be missing something that makes this utterly impossible though. > > Cheers! > > Jackson Loper > Division of Applied Math > Brown University > > > > _______________________________________________ > IPython-dev mailing list > IPython-dev at scipy.org > https://mail.scipy.org/mailman/listinfo/ipython-dev > -- William (http://wstein.org) From zvoros at gmail.com Thu Jan 26 15:35:49 2017 From: zvoros at gmail.com (=?UTF-8?B?Wm9sdMOhbiBWw7Zyw7Zz?=) Date: Thu, 26 Jan 2017 21:35:49 +0100 Subject: [IPython-dev] storing variables *in* the notebook In-Reply-To: References: Message-ID: <4596690d-a5b8-2678-f064-75a2d7334c96@gmail.com> Hi Jackson, On 01/26/2017 08:57 PM, Loper, Jackson wrote: > Zolt?n -- > > I am very curious to know why you want the data embedded in the ipynb > file, instead of storing a file in the same directory. Is it so you > can share files with colleagues? If so, why not just share the whole > directory? Is it just too bulky? Just curious as to what your > motivation is. I guess, it always comes down to taste, but I will try to give some rational argument, all the same. 1. In many cases, I have multiple notebooks in a single directory, simply because most of the time, I really don't need a separate folder for just a single file.So, I have all notebooks that belong to a particular subject in a single folder, and I don't necessarily want to share all of them with others. 2. In such cases, it would become messy quite soon, if I started to save variables to separate data files. Suppose you want to save 10 variables, all differing in shape and type. You can either save them separately, which looks somewhat stupid, because you'll have then 10 very small files, plus you have to load them one by one in the new session, or you pack them by hand into a single file, and unpack them somehow (probably by pickling and unpickling), when you want to load them. What I would like to point out is that this notion already exist in the notebook, because %store does exactly what I want. The only snag is that it ties the data to the user, and not the notebook that generated the data. (This is actually quite bad in my opinion, because notebooks running on different computers will produce different results, simply because the %store -r magic can assign different values to the same variable names.) I understand the arguments and development decisions brought up by Thomas yesterday, but I feel that those arguments are not valid, or, at least, make it very hard to "unjustify" a %store_in_notebook magic, or something similar. > > Anywho, if you really want to do it, and you're in the mood, I think > it would be fairly straightforward to make a combined > python/javascript plugin that allowed one to conveniently store code > cells of the form > > # This is a datacell. If you do not have the datacell javascript > extension, > # this code cell may look really really long. Sorry about that. > x = > pickle.loads(b"\x80\x03}q\x00(X\x07\x00\x00\x00Purposeq\x01X$\x00\x00\x00Very > important data just for > Kluyverq\x02X\x07\x00\x00\x00Contentq\x03X\r\x00\x00\x00You're > great!q\x04u.") > > and make them appear in the notebook as a "data cell" that looks like > > x = pickle.loads(<<>>) > > Such a data cell would be uneditable, but could be executed. > > I think the simplest way to do this would be to design an ipython > widget that, when it comes online, adds such a "data cell" directly > after the current one. Creating a cell should then be as simple as > > datacells.make_data_cell(varname='x',data="Hello world.") > > I could be missing something that makes this utterly impossible though. > I think this goes far beyond what I had in mind. I think this function or whatever would just be In [221]: x = long_calculation() # x is 42 %store_in_notebook x and in the new session In [1]: %store_in_notebook -restore_variables In [2]: x Out [2]: 42 I don't think it would have to be a cell that cannot be edited, or anything like that. Perhaps, the purpose of my first e-mail was to inquire about how one can write into the notebook metadata from a code cell. I know that I can load up the metadata editor, but that's not any better then just putting the data in a markdown cell. Cheers, Zolt?n From zvoros at gmail.com Thu Jan 26 15:47:50 2017 From: zvoros at gmail.com (=?UTF-8?B?Wm9sdMOhbiBWw7Zyw7Zz?=) Date: Thu, 26 Jan 2017 21:47:50 +0100 Subject: [IPython-dev] storing variables *in* the notebook In-Reply-To: References: Message-ID: <68006a5f-2d05-0672-7ac2-52ba36384f4f@gmail.com> William, Thanks for the comment, I will keep a tab on this issue. Cheers, Zolt?n On 01/26/2017 09:26 PM, William Stein wrote: > Hi Zolt?n, > > This is an interesting problem and idea. Not that it would matter to > you, but we'll very likely implement this for SageMathCloud [1] using > our global blob store, which is also how we deal with graphics in a > way that keeps files small and makes copy paste between worksheets > possible. I've made this issue: > > https://github.com/sagemathinc/smc/issues/1594 > > William > > [1] https://cloud.sagemath.com > > On Thu, Jan 26, 2017 at 11:57 AM, Loper, Jackson > wrote: >> Zolt?n -- >> >> I am very curious to know why you want the data embedded in the ipynb file, >> instead of storing a file in the same directory. Is it so you can share >> files with colleagues? If so, why not just share the whole directory? Is >> it just too bulky? Just curious as to what your motivation is. >> >> Anywho, if you really want to do it, and you're in the mood, I think it >> would be fairly straightforward to make a combined python/javascript plugin >> that allowed one to conveniently store code cells of the form >> >> # This is a datacell. If you do not have the datacell javascript >> extension, >> # this code cell may look really really long. Sorry about that. >> x = >> pickle.loads(b"\x80\x03}q\x00(X\x07\x00\x00\x00Purposeq\x01X$\x00\x00\x00Very >> important data just for >> Kluyverq\x02X\x07\x00\x00\x00Contentq\x03X\r\x00\x00\x00You're >> great!q\x04u.") >> >> and make them appear in the notebook as a "data cell" that looks like >> >> x = pickle.loads(<<>>) >> >> Such a data cell would be uneditable, but could be executed. >> >> I think the simplest way to do this would be to design an ipython widget >> that, when it comes online, adds such a "data cell" directly after the >> current one. Creating a cell should then be as simple as >> >> datacells.make_data_cell(varname='x',data="Hello world.") >> >> I could be missing something that makes this utterly impossible though. >> >> Cheers! >> >> Jackson Loper >> Division of Applied Math >> Brown University >> >> >> >> _______________________________________________ >> IPython-dev mailing list >> IPython-dev at scipy.org >> https://mail.scipy.org/mailman/listinfo/ipython-dev >> > > From bussonniermatthias at gmail.com Thu Jan 26 16:03:50 2017 From: bussonniermatthias at gmail.com (Matthias Bussonnier) Date: Thu, 26 Jan 2017 13:03:50 -0800 Subject: [IPython-dev] storing variables *in* the notebook In-Reply-To: <68006a5f-2d05-0672-7ac2-52ba36384f4f@gmail.com> References: <68006a5f-2d05-0672-7ac2-52ba36384f4f@gmail.com> Message-ID: Thanks Zoltan, You can try to implement a %store_in_notebook magic, but the current abstractions layers make a lot of assumptions about how things are running. If you want to develop something along these lines we can try to give you pointers. 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. 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. We'll be happy to be proven wrong. Thanks, -- Matthias On Thu, Jan 26, 2017 at 12:47 PM, Zolt?n V?r?s wrote: > William, > > > Thanks for the comment, I will keep a tab on this issue. > > > Cheers, > > Zolt?n > > > > On 01/26/2017 09:26 PM, William Stein wrote: >> >> Hi Zolt?n, >> >> This is an interesting problem and idea. Not that it would matter to >> you, but we'll very likely implement this for SageMathCloud [1] using >> our global blob store, which is also how we deal with graphics in a >> way that keeps files small and makes copy paste between worksheets >> possible. I've made this issue: >> >> https://github.com/sagemathinc/smc/issues/1594 >> >> William >> >> [1] https://cloud.sagemath.com >> >> On Thu, Jan 26, 2017 at 11:57 AM, Loper, Jackson >> wrote: >>> >>> Zolt?n -- >>> >>> I am very curious to know why you want the data embedded in the ipynb >>> file, >>> instead of storing a file in the same directory. Is it so you can share >>> files with colleagues? If so, why not just share the whole directory? >>> Is >>> it just too bulky? Just curious as to what your motivation is. >>> >>> Anywho, if you really want to do it, and you're in the mood, I think it >>> would be fairly straightforward to make a combined python/javascript >>> plugin >>> that allowed one to conveniently store code cells of the form >>> >>> # This is a datacell. If you do not have the datacell javascript >>> extension, >>> # this code cell may look really really long. Sorry about that. >>> x = >>> >>> pickle.loads(b"\x80\x03}q\x00(X\x07\x00\x00\x00Purposeq\x01X$\x00\x00\x00Very >>> important data just for >>> Kluyverq\x02X\x07\x00\x00\x00Contentq\x03X\r\x00\x00\x00You're >>> great!q\x04u.") >>> >>> and make them appear in the notebook as a "data cell" that looks like >>> >>> x = pickle.loads(<<>>) >>> >>> Such a data cell would be uneditable, but could be executed. >>> >>> I think the simplest way to do this would be to design an ipython widget >>> that, when it comes online, adds such a "data cell" directly after the >>> current one. Creating a cell should then be as simple as >>> >>> datacells.make_data_cell(varname='x',data="Hello world.") >>> >>> I could be missing something that makes this utterly impossible though. >>> >>> Cheers! >>> >>> Jackson Loper >>> Division of Applied Math >>> Brown University >>> >>> >>> >>> _______________________________________________ >>> IPython-dev mailing list >>> IPython-dev at scipy.org >>> https://mail.scipy.org/mailman/listinfo/ipython-dev >>> >> >> > > _______________________________________________ > IPython-dev mailing list > IPython-dev at scipy.org > https://mail.scipy.org/mailman/listinfo/ipython-dev From jklymak at gmail.com Thu Jan 26 16:06:12 2017 From: jklymak at gmail.com (Klymak Jody) Date: Thu, 26 Jan 2017 13:06:12 -0800 Subject: [IPython-dev] storing variables *in* the notebook In-Reply-To: <4596690d-a5b8-2678-f064-75a2d7334c96@gmail.com> References: <4596690d-a5b8-2678-f064-75a2d7334c96@gmail.com> Message-ID: > I think this goes far beyond what I had in mind. I think this function or whatever would just be > > In [221]: x = long_calculation() # x is 42 > %store_in_notebook x > > and in the new session > > In [1]: %store_in_notebook -restore_variables > In [2]: x > Out [2]: 42 For my taste, I?d just save that result in a file (`pickle` or `shelf`, or netcdf if I wanted to be formal). Its a lot more transparent what is going on. Imagine this case: I `%store_in_notebook` the results of a long calculation, and then remove that code from the notebook for some reason. I might very well wonder a year from now why my notebook is 50 Gb, and have no documentation of how it got that way. However, if you do have a whole slew of variables you suddenly want to save, did you try `dill`? import dill import numpy as np filename= 'globalsave.pkl' if 1: x = np.arange(20) dill.dump_session(filename) else: dill.load_session(filename) Cheers, Jody -------------- next part -------------- An HTML attachment was scrubbed... URL: From zvoros at gmail.com Thu Jan 26 16:32:38 2017 From: zvoros at gmail.com (=?UTF-8?B?Wm9sdMOhbiBWw7Zyw7Zz?=) Date: Thu, 26 Jan 2017 22:32:38 +0100 Subject: [IPython-dev] storing variables *in* the notebook In-Reply-To: References: <68006a5f-2d05-0672-7ac2-52ba36384f4f@gmail.com> Message-ID: <98aad886-f33c-1889-6ae1-002e8317548b@gmail.com> 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. 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 From nathan12343 at gmail.com Thu Jan 26 16:35:57 2017 From: nathan12343 at gmail.com (Nathan Goldbaum) Date: Thu, 26 Jan 2017 15:35:57 -0600 Subject: [IPython-dev] storing variables *in* the notebook In-Reply-To: <98aad886-f33c-1889-6ae1-002e8317548b@gmail.com> References: <68006a5f-2d05-0672-7ac2-52ba36384f4f@gmail.com> <98aad886-f33c-1889-6ae1-002e8317548b@gmail.com> Message-ID: On Thu, Jan 26, 2017 at 3:32 PM, Zolt?n V?r?s 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: From zvoros at gmail.com Thu Jan 26 16:39:31 2017 From: zvoros at gmail.com (=?UTF-8?B?Wm9sdMOhbiBWw7Zyw7Zz?=) Date: Thu, 26 Jan 2017 22:39:31 +0100 Subject: [IPython-dev] storing variables *in* the notebook In-Reply-To: References: <4596690d-a5b8-2678-f064-75a2d7334c96@gmail.com> Message-ID: <96d2af19-1338-31f3-9487-9e78331f47b5@gmail.com> On 01/26/2017 10:06 PM, Klymak Jody wrote: > >> I think this goes far beyond what I had in mind. I think this >> function or whatever would just be >> >> In [221]: x = long_calculation() # x is 42 >> %store_in_notebook x >> >> and in the new session >> >> In [1]: %store_in_notebook -restore_variables >> In [2]: x >> Out [2]: 42 > > For my taste, I?d just save that result in a file (`pickle` or > `shelf`, or netcdf if I wanted to be formal). Its a lot more > transparent what is going on. But why is it more transparent? By the same token, you could say that the %%writefile magic command is more obscure than saving the file explicitly with with open('file.txt') as fout: fout.write('text') Magic commands are abbreviations for common tasks, therefore, obscure:) > > Imagine this case: I `%store_in_notebook` the results of a long > calculation, and then remove that code from the notebook for some > reason. I might very well wonder a year from now why my notebook is > 50 Gb, and have no documentation of how it got that way. Or imagine this case: I save the results of a long calculation in a file, and then remove that code from the notebook for some reason. I might very well wonder a year from now why there is a 50 Gb in my folder, and have no documentation of how it got that way;) As William Stein pointed out, when pickling the variables, one would have to impose some sensible upper bound on the size. > > However, if you do have a whole slew of variables you suddenly want to > save, did you try `dill`? > > import dill > import numpy as np > > filename= 'globalsave.pkl' > > if 1: > x = np.arange(20) > dill.dump_session(filename) > else: > dill.load_session(filename) > The question is not how one can save variables in a file, the question is, how one can avoid having to save variables in a file. Cheers, Zolt?n From steve at holdenweb.com Thu Jan 26 16:43:01 2017 From: steve at holdenweb.com (Steve Holden) Date: Thu, 26 Jan 2017 21:43:01 +0000 Subject: [IPython-dev] storing variables *in* the notebook In-Reply-To: References: <4596690d-a5b8-2678-f064-75a2d7334c96@gmail.com> Message-ID: Just a quick note about one comment re: distribution of data and notebooks as separate files. At one point, when asked why this would not be convenient, Zoltan said: 1. In many cases, I have multiple notebooks in a single directory, simply > because most of the time, I really don't need a separate folder for just a > single file.So, I have all notebooks that belong to a particular subject in > a single folder, and I don't necessarily want to share all of them with > others. Mindless tasks like "pick these files out of this directory and put them in a tar/zip file" are easily prone to automation, which would be far less troublesome that modifying a complex architecture to accommodate something not considered in its (in fact, rather careful) design. Two ways come to mind: the first involves mostly shell interactions (I include the Windows shells available, though at present I am ignorant of them); the second would be a good exercise for a first-year undergraduate, and therefore the kind of thing a working (i.e. there to use programs to advance their research) might like to treat as competence practise (if they have time, that isn't mandatory ;-). In the first case, for each separate distribution you want to make you can create a directory parallel to the one holding the notebooks and data, and in it create symbolic links to point to the required files. These directories can then be bundled with the standard *tar* utility, commanded to copy the real files after following the links. In the second case, each distribution would be represented as a data file containing the paths to the files required, and they would be processed by a Python program that essentially duplicates the same process as above. I would personally prefer the latter process because, being data driven, the configuration data can be made subject to change control, which with proper configuration metadata included enhances repeatability and allows you to reproduce and distribution on demand. As a jobbing computational scientist who has spent long years discovering wrong ways to do things, I will just point out that trying to push a design beyond its intended limits is likely to impede the development towards the main goal (though many improvements are also the result of user suggestions and requests). Often there are much lower-complexity solutions available that will satisfy your specific needs without imposing their cost on others. This note is offered in a spirit of scientific sharing.I know that people often struggle to use computers, because the activity of doing so is peripheral to research. I learned to do things this way through long years of experience. Ignorance is not a crime, and fortunately (unlike stupidity) it can be cured in rational people by the application of information. Anyway, back to work ... regards Steve Steve Holden On Thu, Jan 26, 2017 at 9:06 PM, Klymak Jody wrote: > > I think this goes far beyond what I had in mind. I think this function or > whatever would just be > > In [221]: x = long_calculation() # x is 42 > %store_in_notebook x > > and in the new session > > In [1]: %store_in_notebook -restore_variables > In [2]: x > Out [2]: 42 > > > For my taste, I?d just save that result in a file (`pickle` or `shelf`, or > netcdf if I wanted to be formal). Its a lot more transparent what is going > on. > > Imagine this case: I `%store_in_notebook` the results of a long > calculation, and then remove that code from the notebook for some reason. > I might very well wonder a year from now why my notebook is 50 Gb, and have > no documentation of how it got that way. > > However, if you do have a whole slew of variables you suddenly want to > save, did you try `dill`? > > import dill > import numpy as np > > filename= 'globalsave.pkl' > > if 1: > x = np.arange(20) > dill.dump_session(filename) > else: > dill.load_session(filename) > > Cheers, Jody > > > > > > _______________________________________________ > 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: From kikocorreoso at gmail.com Fri Jan 27 04:01:36 2017 From: kikocorreoso at gmail.com (Kiko) Date: Fri, 27 Jan 2017 10:01:36 +0100 Subject: [IPython-dev] storing variables *in* the notebook In-Reply-To: References: <4596690d-a5b8-2678-f064-75a2d7334c96@gmail.com> Message-ID: Hi all, My 2 cents... Why not store that in the notebook metadata? something like: x = [1,2,3] %store_in_notebook x # Would add the info to the notebook metadata that is added to: { kernelspec: {...} stored:{ x: [1,2,3] } } This way data can be checked before restoring it in the notebook and you could restore just one var o all of them %store_in_notebook -restore x # would read the notebook metadata or %store_in_notebook -restore_all # would read the notebook metadata Of course, this only would be useful for very basic types: strings, integers, floats, dicst, lists,... -------------- next part -------------- An HTML attachment was scrubbed... URL: From jon.freder at gmail.com Fri Jan 27 09:51:35 2017 From: jon.freder at gmail.com (Jonathan Frederic) Date: Fri, 27 Jan 2017 14:51:35 +0000 Subject: [IPython-dev] Announcing JupyterCon 2017, August 23-25 in NYC! In-Reply-To: References: Message-ID: Woohoo! Congratulations! I'm glad to see Jupyter con has become a reality. The marketing for it looks really slick. On Thu, Jan 26, 2017, 11:27 AM Fernando Perez wrote: > > On Thu, Jan 26, 2017 at 9:33 AM, Denis Akhiyarov < > denis.akhiyarov at gmail.com> wrote: > > I noticed one typo: > > At JuypterCon you?ll learn how to weave computation and data into rich, > interactive narratives > > > Thanks Denis! We'll fix it :) > > Cheers > > f > > > > -- > Fernando Perez (@fperez_org; http://fperez.org) > fperez.net-at-gmail: mailing lists only (I ignore this when swamped!) > fernando.perez-at-berkeley: contact me here for any direct mail > _______________________________________________ > 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: From zvoros at gmail.com Fri Jan 27 09:59:31 2017 From: zvoros at gmail.com (=?UTF-8?B?Wm9sdMOhbiBWw7Zyw7Zz?=) Date: Fri, 27 Jan 2017 15:59:31 +0100 Subject: [IPython-dev] storing variables *in* the notebook In-Reply-To: References: <4596690d-a5b8-2678-f064-75a2d7334c96@gmail.com> Message-ID: On 01/27/2017 10:01 AM, Kiko wrote: > Hi all, > > My 2 cents... > > Why not store that in the notebook metadata? something like: > > x = [1,2,3] > %store_in_notebook x # Would add the info to the notebook metadata > > that is added to: > > { > kernelspec: {...} > stored:{ > x: [1,2,3] > } > } > I can't tell why, but somehow this idea seems a bit familiar to me... From kikocorreoso at gmail.com Fri Jan 27 10:16:50 2017 From: kikocorreoso at gmail.com (Kiko) Date: Fri, 27 Jan 2017 16:16:50 +0100 Subject: [IPython-dev] storing variables *in* the notebook In-Reply-To: References: <4596690d-a5b8-2678-f064-75a2d7334c96@gmail.com> Message-ID: > >> > I can't tell why, but somehow this idea seems a bit familiar to me... > > Aha. Ok, I read the thread diagonally and my2cents ideas are already there... Sorry for the noise :-P -------------- next part -------------- An HTML attachment was scrubbed... URL: From spencer at spencerogden.com Fri Jan 27 11:06:45 2017 From: spencer at spencerogden.com (Spencer Ogden) Date: Fri, 27 Jan 2017 11:06:45 -0500 Subject: [IPython-dev] ipywidgets javascript error Message-ID: <81e7dac6-ff22-bad3-e24b-b21cc5a91e19@spencerogden.com> Hi all, I get the following error on an inconsistent basis when using widgets. I have run the suggested command. The error only comes up sometimes. I'm not sure what the trigger is that causes it. Things work fine whether I get the error or not. Widget Javascript not detected. It may not be installed properly. Did you enable the widgetsnbextension? If not, then run "jupyter nbextension enable --py --sys-prefix widgetsnbextension" Thanks, Spencer Ogden -------------- next part -------------- An HTML attachment was scrubbed... URL: From kikocorreoso at gmail.com Fri Jan 27 11:53:10 2017 From: kikocorreoso at gmail.com (Kiko) Date: Fri, 27 Jan 2017 17:53:10 +0100 Subject: [IPython-dev] storing variables *in* the notebook In-Reply-To: References: <4596690d-a5b8-2678-f064-75a2d7334c96@gmail.com> Message-ID: 2017-01-27 16:16 GMT+01:00 Kiko : > > >>> >> I can't tell why, but somehow this idea seems a bit familiar to me... >> >> Aha. > > Ok, I read the thread diagonally and my2cents ideas are already there... > > Sorry for the noise :-P > An example about how to write to your metadata. This should provide some hints to create a line magic to do so: from IPython.display import Javascript x = [1,2,3] def add_metadata(var_name, var): js = """ if (Jupyter.notebook.metadata['stored'] === undefined){{Jupyter.notebook.metadata['stored'] = {{}}}} Jupyter.notebook.metadata['stored']['{var_name}']={var_content_serialised} """ return Javascript(js.format(var_name=var_name, var_content_serialised=var.__repr__())) add_metadata('x', x) -------------- next part -------------- An HTML attachment was scrubbed... URL: From zvoros at gmail.com Fri Jan 27 12:39:23 2017 From: zvoros at gmail.com (=?UTF-8?B?Wm9sdMOhbiBWw7Zyw7Zz?=) Date: Fri, 27 Jan 2017 18:39:23 +0100 Subject: [IPython-dev] storing variables *in* the notebook In-Reply-To: References: <4596690d-a5b8-2678-f064-75a2d7334c96@gmail.com> Message-ID: <0cb36ddf-37e8-1916-ff82-f7215312773d@gmail.com> On 01/27/2017 05:53 PM, Kiko wrote: > > An example about how to write to your metadata. This should provide > some hints to create a line magic to do so: > > from IPython.display import Javascript > > x = [1,2,3] > > def add_metadata(var_name, var): > js = """ > if (Jupyter.notebook.metadata['stored'] === > undefined){{Jupyter.notebook.metadata['stored'] = {{}}}} > Jupyter.notebook.metadata['stored']['{var_name}']={var_content_serialised} > """ > return Javascript(js.format(var_name=var_name, > var_content_serialised=var.__repr__())) > > add_metadata('x', x) Thanks for the pointer! I have already figured that I could re-use the code in the notebook extension 'toc2', and that of %store magic, but here you present a more or less complete solution. Thanks! Zolt?n From bussonniermatthias at gmail.com Sun Jan 29 21:00:17 2017 From: bussonniermatthias at gmail.com (Matthias Bussonnier) Date: Sun, 29 Jan 2017 18:00:17 -0800 Subject: [IPython-dev] Release of IPython 5.2.0 Message-ID: Hi all, I've just released IPython 5.2 about 6 month after IPython 5.1, it is now available on PyPI: https://pypi.python.org/pypi/ipython This is the second bugfix after IPython 5.0 and is the current stable branch. It is has about 3 time more patches compare to 5.1 (434 commits 5.1 -> 5.2 vs 129 commits 5.0 ->5.1). You can install it now by using : $ pip install ipython --upgrade As usual we recommend to all users to upgrade. It will take a few days/weeks to propagate to conda/conda-forge/your favorite distribution (contribution on this front is welcomed) You can see notable changes here[1], as well as more statistics there[2]. You'll see mostly bugfixes, with only a couple of change in behavior (removed Pdb smart mode introduced in 5.1) and addition of F2 shortcut to edit current text in $EDITOR. Plus a couple of convenience functions here and there, better docs and warning about deprecations. One change that may impact further redistribution is the lack of `.zip` source distribution (only a .tar.gz) as per change in PyPI policy. You might also see that PR backport are now automatic thanks to our bot. As a reminder the 5.x series is our long term support branch, and will live until 2020, the current development branch is 6.x, and only critical bugfix/documentation get backported and actively worked on. At some point after the 6.0 release we will lower our involvement on the 5.x branch and will only accept patches (not actively working on fixes) and backport only on request. There are already issue and PR targeting 5.3 on which we would welcome help. Let us know if you have any issue with this new version. Thanks to everyone involved! Enjoy, -- Matthias 1: http://ipython.readthedocs.io/en/stable/whatsnew/version5.html#ipython-5-2 2: http://ipython.readthedocs.io/en/stable/whatsnew/github-stats-5.html From salmimanal at yahoo.fr Mon Jan 30 06:23:25 2017 From: salmimanal at yahoo.fr (salmi manal) Date: Mon, 30 Jan 2017 11:23:25 +0000 (UTC) Subject: [IPython-dev] (no subject) References: <311842237.26582308.1485775405431.ref@mail.yahoo.com> Message-ID: <311842237.26582308.1485775405431@mail.yahoo.com> hi I have just installed Python 3.5.2 via anaconda 4.2.0. My trouble is that I'm not connected via kernel and I don't how I can do message gived by kernel is the following ?"A connection to the notebook server could not be established. The notebook will continue trying to reconnect. Check your network connection or notebook server configuration." Thanks for you help to resolve this problem -------------- next part -------------- An HTML attachment was scrubbed... URL: From takowl at gmail.com Mon Jan 30 06:42:10 2017 From: takowl at gmail.com (Thomas Kluyver) Date: Mon, 30 Jan 2017 11:42:10 +0000 Subject: [IPython-dev] Release of IPython 5.2.0 In-Reply-To: References: Message-ID: Thanks Matthias! On 30 January 2017 at 02:00, Matthias Bussonnier < bussonniermatthias at gmail.com> wrote: > Hi all, > > I've just released IPython 5.2 about 6 month after IPython 5.1, it is > now available on PyPI: > https://pypi.python.org/pypi/ipython > > This is the second bugfix after IPython 5.0 and is the current stable > branch. > It is has about 3 time more patches compare to 5.1 (434 commits 5.1 -> > 5.2 vs 129 commits 5.0 ->5.1). > > You can install it now by using : > > $ pip install ipython --upgrade > > As usual we recommend to all users to upgrade. > > It will take a few days/weeks to propagate to conda/conda-forge/your > favorite distribution (contribution on this front is welcomed) > > You can see notable changes here[1], as well as more statistics > there[2]. You'll see mostly bugfixes, with only a couple of change in > behavior (removed Pdb smart mode introduced in 5.1) and addition of F2 > shortcut to edit current text in $EDITOR. Plus a couple of convenience > functions here and there, better docs and warning about deprecations. > > One change that may impact further redistribution is the lack of > `.zip` source distribution (only a .tar.gz) as per change in PyPI > policy. > > You might also see that PR backport are now automatic thanks to our bot. > > As a reminder the 5.x series is our long term support branch, and will > live until 2020, the current development branch is 6.x, and only > critical bugfix/documentation get backported and actively worked on. > At some point after the 6.0 release we will lower our involvement on > the 5.x branch and will only accept patches (not actively working on > fixes) and backport only on request. > > There are already issue and PR targeting 5.3 on which we would welcome > help. > > Let us know if you have any issue with this new version. > > Thanks to everyone involved! > > Enjoy, > -- > Matthias > > 1: http://ipython.readthedocs.io/en/stable/whatsnew/version5. > html#ipython-5-2 > 2: http://ipython.readthedocs.io/en/stable/whatsnew/github-stats-5.html > _______________________________________________ > 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: From pmhobson at gmail.com Mon Jan 30 12:05:19 2017 From: pmhobson at gmail.com (Paul Hobson) Date: Mon, 30 Jan 2017 09:05:19 -0800 Subject: [IPython-dev] Release of IPython 5.2.0 In-Reply-To: References: Message-ID: Thanks to the whole team! On Mon, Jan 30, 2017 at 3:42 AM, Thomas Kluyver wrote: > Thanks Matthias! > > On 30 January 2017 at 02:00, Matthias Bussonnier < > bussonniermatthias at gmail.com> wrote: > >> Hi all, >> >> I've just released IPython 5.2 about 6 month after IPython 5.1, it is >> now available on PyPI: >> https://pypi.python.org/pypi/ipython >> >> This is the second bugfix after IPython 5.0 and is the current stable >> branch. >> It is has about 3 time more patches compare to 5.1 (434 commits 5.1 -> >> 5.2 vs 129 commits 5.0 ->5.1). >> >> You can install it now by using : >> >> $ pip install ipython --upgrade >> >> As usual we recommend to all users to upgrade. >> >> It will take a few days/weeks to propagate to conda/conda-forge/your >> favorite distribution (contribution on this front is welcomed) >> >> You can see notable changes here[1], as well as more statistics >> there[2]. You'll see mostly bugfixes, with only a couple of change in >> behavior (removed Pdb smart mode introduced in 5.1) and addition of F2 >> shortcut to edit current text in $EDITOR. Plus a couple of convenience >> functions here and there, better docs and warning about deprecations. >> >> One change that may impact further redistribution is the lack of >> `.zip` source distribution (only a .tar.gz) as per change in PyPI >> policy. >> >> You might also see that PR backport are now automatic thanks to our bot. >> >> As a reminder the 5.x series is our long term support branch, and will >> live until 2020, the current development branch is 6.x, and only >> critical bugfix/documentation get backported and actively worked on. >> At some point after the 6.0 release we will lower our involvement on >> the 5.x branch and will only accept patches (not actively working on >> fixes) and backport only on request. >> >> There are already issue and PR targeting 5.3 on which we would welcome >> help. >> >> Let us know if you have any issue with this new version. >> >> Thanks to everyone involved! >> >> Enjoy, >> -- >> Matthias >> >> 1: http://ipython.readthedocs.io/en/stable/whatsnew/version5.ht >> ml#ipython-5-2 >> 2: http://ipython.readthedocs.io/en/stable/whatsnew/github-stats-5.html >> _______________________________________________ >> IPython-dev mailing list >> IPython-dev at scipy.org >> https://mail.scipy.org/mailman/listinfo/ipython-dev >> > > > _______________________________________________ > 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: From fperez.net at gmail.com Tue Jan 31 02:41:51 2017 From: fperez.net at gmail.com (Fernando Perez) Date: Mon, 30 Jan 2017 23:41:51 -0800 Subject: [IPython-dev] A statement from Project Jupyter regarding the January 27 United States Executive Order on immigration Message-ID: Dear Jupyter Community, The recent developments in US immigration policy are a direct attack on the principles of Openness, Diversity and Dignity that we hold dear and that bind together our collaborative community. We are directly impacted by these actions in multiple, serious ways. The Steering Council decided that this topic was important enough that we wanted to make a public statement, with the intent of reaching across political affiliations and party lines to convey a defense of our core values. The full text of the statement is here: http://blog.jupyter.org/2017/01/31/openness-diversity-and-dignity/ While it was prepared by the SC, we welcome and encourage anyone who would like to endorse this statement by adding your signature via this form: https://goo.gl/forms/6kgqVXiDvpRrez1Q2 On behalf of the project SC, yours, Fernando -- Fernando Perez (@fperez_org; http://fperez.org) fperez.net-at-gmail: mailing lists only (I ignore this when swamped!) fernando.perez-at-berkeley: contact me here for any direct mail -------------- next part -------------- An HTML attachment was scrubbed... URL: From kikocorreoso at gmail.com Tue Jan 31 02:53:09 2017 From: kikocorreoso at gmail.com (Kiko) Date: Tue, 31 Jan 2017 08:53:09 +0100 Subject: [IPython-dev] [jupyter] A statement from Project Jupyter regarding the January 27 United States Executive Order on immigration In-Reply-To: References: Message-ID: Thanks!! 2017-01-31 8:41 GMT+01:00 Fernando Perez : > Dear Jupyter Community, > > The recent developments in US immigration policy are a direct attack on > the principles of Openness, Diversity and Dignity that we hold dear and > that bind together our collaborative community. We are directly impacted > by these actions in multiple, serious ways. The Steering Council decided > that this topic was important enough that we wanted to make a public > statement, with the intent of reaching across political affiliations and > party lines to convey a defense of our core values. The full text of the > statement is here: > > http://blog.jupyter.org/2017/01/31/openness-diversity-and-dignity/ > > While it was prepared by the SC, we welcome and encourage anyone who would > like to endorse this statement by adding your signature via this form: > > https://goo.gl/forms/6kgqVXiDvpRrez1Q2 > > On behalf of the project SC, yours, > > Fernando > > -- > Fernando Perez (@fperez_org; http://fperez.org) > fperez.net-at-gmail: mailing lists only (I ignore this when swamped!) > fernando.perez-at-berkeley: contact me here for any direct mail > > -- > 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 jupyter+unsubscribe at googlegroups.com. > To post to this group, send email to jupyter at googlegroups.com. > To view this discussion on the web visit https://groups.google.com/d/ > msgid/jupyter/CAHAreOoWYHZ-W1FqWmyvNOjTXQwNuScUfaSPJubfeT > xL_qgd7w%40mail.gmail.com > > . > For more options, visit https://groups.google.com/d/optout. > -------------- next part -------------- An HTML attachment was scrubbed... URL: From damianavila at gmail.com Tue Jan 31 13:09:24 2017 From: damianavila at gmail.com (=?UTF-8?Q?Dami=C3=A1n_Avila?=) Date: Tue, 31 Jan 2017 15:09:24 -0300 Subject: [IPython-dev] Release of IPython 5.2.0 In-Reply-To: References: Message-ID: Just an update, Thomas released 5.2.1 a few hours ago. Thank you both Matthias and Thomas!! 2017-01-30 14:05 GMT-03:00 Paul Hobson : > Thanks to the whole team! > > On Mon, Jan 30, 2017 at 3:42 AM, Thomas Kluyver wrote: > >> Thanks Matthias! >> >> On 30 January 2017 at 02:00, Matthias Bussonnier < >> bussonniermatthias at gmail.com> wrote: >> >>> Hi all, >>> >>> I've just released IPython 5.2 about 6 month after IPython 5.1, it is >>> now available on PyPI: >>> https://pypi.python.org/pypi/ipython >>> >>> This is the second bugfix after IPython 5.0 and is the current stable >>> branch. >>> It is has about 3 time more patches compare to 5.1 (434 commits 5.1 -> >>> 5.2 vs 129 commits 5.0 ->5.1). >>> >>> You can install it now by using : >>> >>> $ pip install ipython --upgrade >>> >>> As usual we recommend to all users to upgrade. >>> >>> It will take a few days/weeks to propagate to conda/conda-forge/your >>> favorite distribution (contribution on this front is welcomed) >>> >>> You can see notable changes here[1], as well as more statistics >>> there[2]. You'll see mostly bugfixes, with only a couple of change in >>> behavior (removed Pdb smart mode introduced in 5.1) and addition of F2 >>> shortcut to edit current text in $EDITOR. Plus a couple of convenience >>> functions here and there, better docs and warning about deprecations. >>> >>> One change that may impact further redistribution is the lack of >>> `.zip` source distribution (only a .tar.gz) as per change in PyPI >>> policy. >>> >>> You might also see that PR backport are now automatic thanks to our bot. >>> >>> As a reminder the 5.x series is our long term support branch, and will >>> live until 2020, the current development branch is 6.x, and only >>> critical bugfix/documentation get backported and actively worked on. >>> At some point after the 6.0 release we will lower our involvement on >>> the 5.x branch and will only accept patches (not actively working on >>> fixes) and backport only on request. >>> >>> There are already issue and PR targeting 5.3 on which we would welcome >>> help. >>> >>> Let us know if you have any issue with this new version. >>> >>> Thanks to everyone involved! >>> >>> Enjoy, >>> -- >>> Matthias >>> >>> 1: http://ipython.readthedocs.io/en/stable/whatsnew/version5.ht >>> ml#ipython-5-2 >>> 2: http://ipython.readthedocs.io/en/stable/whatsnew/github-stats-5.html >>> _______________________________________________ >>> IPython-dev mailing list >>> IPython-dev at scipy.org >>> https://mail.scipy.org/mailman/listinfo/ipython-dev >>> >> >> >> _______________________________________________ >> IPython-dev mailing list >> IPython-dev at scipy.org >> https://mail.scipy.org/mailman/listinfo/ipython-dev >> >> > > _______________________________________________ > IPython-dev mailing list > IPython-dev at scipy.org > https://mail.scipy.org/mailman/listinfo/ipython-dev > > -- *Dami?n Avila* -------------- next part -------------- An HTML attachment was scrubbed... URL: From fperez.net at gmail.com Tue Jan 31 14:48:18 2017 From: fperez.net at gmail.com (Fernando Perez) Date: Tue, 31 Jan 2017 11:48:18 -0800 Subject: [IPython-dev] Release of IPython 5.2.0 In-Reply-To: References: Message-ID: +1, thanks folks for charging on this front!? -------------- next part -------------- An HTML attachment was scrubbed... URL: