From ellisonbg at gmail.com Wed Jul 1 01:25:14 2015 From: ellisonbg at gmail.com (Brian Granger) Date: Tue, 30 Jun 2015 22:25:14 -0700 Subject: [IPython-dev] [jupyter] Experimenting with a modified dev meeting format? In-Reply-To: References: <077F4F6B-0E87-4326-BB38-F3757C91E546@gmail.com> Message-ID: I know with SciPy we probably won't have a dev meeting next week, but before the next one, we should test a bunch of different audio configurations. On Tue, Jun 30, 2015 at 10:09 AM, Brian Granger wrote: > We are using bluejeans from another room - seems to be working fine > > > On Tue, Jun 30, 2015 at 9:21 AM, Jason Grout wrote: >> We could set up an audio conference call if needed. Let us know if we need >> to. >> >> Jason >> >> >> On Tue, Jun 30, 2015, 12:07 Matthias Bussonnier >> wrote: >>> >>> Last minutes change of plan (Probably) new furniture beeing installed in >>> video-room. >>> So no BlueJeans setup. >>> We will have to fallback on something else most likely. >>> >>> -- >>> M >>> >>> > On Jun 29, 2015, at 23:16, Brian Granger wrote: >>> > >>> > Sounds good, I have also posted a summary of these changed at the top >>> > of the meeting hackpad. See you tomorrow! >>> > >>> > Cheers, >>> > >>> > Brian >>> > >>> > On Mon, Jun 29, 2015 at 6:25 PM, MinRK wrote: >>> >> >>> >> >>> >> On Mon, Jun 29, 2015 at 5:56 PM, Fernando Perez >>> >> wrote: >>> >>> >>> >>> On Sat, Jun 27, 2015 at 8:07 PM, MinRK wrote: >>> >>>> >>> >>>> I think turning Tuesdays into check-ins/reports is a good idea. >>> >>>> Having >>> >>>> just one or two topics for actual in-depth meetings with smaller >>> >>>> groups >>> >>>> should definitely be more effective. >>> >>> >>> >>> >>> >>> OK, here's a wrap-up and my suggested path forward, so we can call >>> >>> this >>> >>> thread done, unless someone objects strenuously to something. As >>> >>> usual, we >>> >>> will fine-tune over time as we learn from experience... >>> >>> >>> >>> - Let's go with a max of 5 minutes per person on reporting of >>> >>> activity. >>> >>> >>> >>> >>> >>> - When reporting, you should try make sure what you say answers the >>> >>> following questions for the others: >>> >>> >>> >>> * What have I been working on? >>> >>> * What do I plan on working on? >>> >>> * What things are preventing me from making progress? >>> >>> >>> >>> This will ensure that everyone leaves knowing what everyone is up to, >>> >>> and >>> >>> that we can effectively help each other, identify where resources are >>> >>> needed, bottlenecks, etc. >>> >>> >>> >>> >>> >>> - We try to take notes as usual collectively on Hackpad, BUT, we >>> >>> designate >>> >>> a person each week who has an explicit responsibility that week to >>> >>> spend a >>> >>> bit of time after the meeting making sure the notes make sense and >>> >>> posting >>> >>> them to the Jupyter list. Hopefully that won't take more than a few >>> >>> minutes, >>> >>> if the collective note-taking was sufficient. >>> >>> >>> >>> This will give us a static record on the list of each week's meeting, >>> >>> which is better than just having a doc on hackpad. >>> >>> >>> >>> I volunteer to be the note-poster for tomorrow. >>> >>> >>> >>> >>> >>> - Let's keep the total meeting time to 1h, hard limit. Tomorrow, >>> >>> we're >>> >>> going to use a trick to enforce that: our nice videoconferencing room >>> >>> at >>> >>> BIDS is booked at 11am every other Tuesday, so we'll get kicked out >>> >>> anyways. >>> >>> We could obviously use another one, but instead we'll use the room >>> >>> with the >>> >>> better audio equipment and be forced to stay on schedule :) >>> >>> >>> >>> >>> >>> Did I miss anything? >>> >> >>> >> >>> >> Sounds like a good plan. See you all tomorrow. >>> >> >>> >> -MinRK >>> >> >>> >>> >>> >>> >>> >>> Cheers, >>> >>> >>> >>> f >>> >>> >>> >>> -- >>> >>> 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/CAHAreOpdZ4tryfYk0PKktwJ2iTbhyMttYoGD9JU3c8A4CdM5mA%40mail.gmail.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 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/CAHNn8BV61o_M8ziSOQnfOJz0Am6Pux14Yk6TVumCBK28LsaMVw%40mail.gmail.com. >>> >> >>> >> For more options, visit https://groups.google.com/d/optout. >>> > >>> > >>> > >>> > -- >>> > Brian E. Granger >>> > Cal Poly State University, San Luis Obispo >>> > @ellisonbg on Twitter and GitHub >>> > bgranger at calpoly.edu and ellisonbg at gmail.com >>> > >>> > -- >>> > 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/CAH4pYpSLq5LqHgoX1ULsqw3EwB%3Dn%2BR0qiqYKE%2BrHb2R2JEQSLg%40mail.gmail.com. >>> > For more options, visit https://groups.google.com/d/optout. >>> >>> _______________________________________________ >>> IPython-dev mailing list >>> IPython-dev at scipy.org >>> http://mail.scipy.org/mailman/listinfo/ipython-dev >> >> >> _______________________________________________ >> IPython-dev mailing list >> IPython-dev at scipy.org >> http://mail.scipy.org/mailman/listinfo/ipython-dev >> > > > > -- > Brian E. Granger > Cal Poly State University, San Luis Obispo > @ellisonbg on Twitter and GitHub > bgranger at calpoly.edu and ellisonbg at gmail.com -- Brian E. Granger Cal Poly State University, San Luis Obispo @ellisonbg on Twitter and GitHub bgranger at calpoly.edu and ellisonbg at gmail.com From ellisonbg at gmail.com Wed Jul 1 03:33:29 2015 From: ellisonbg at gmail.com (Brian Granger) Date: Wed, 1 Jul 2015 00:33:29 -0700 Subject: [IPython-dev] Proposal: soft moratorium on re-architecting for 5.0 In-Reply-To: <963F3253-CE7E-41F6-BDAA-B0DFB9B87DB1@gmail.com> References: <963F3253-CE7E-41F6-BDAA-B0DFB9B87DB1@gmail.com> Message-ID: A few words on the documentation stuff: * If docs are important - let's block the 4.0 release. Isn't that the definition of "important" for software projects? Otherwise, everyone will find other, more interesting things to work on (including me :-). We don't have to block 4.0 on having *perfect* docs, but I think it would be good to have a simple docs rubrics that all released packages should pass before a release. As time goes on we can expand the rubric and continue to improve the quality of docs. I have silently been thinking this for a while... * Our experience has shown that writing good docs is *extremely* difficult - even more difficult than testing asynch JavaScript against all browsers ;-) Because of this, I think the central docs effort should be led by our most senior developers and writers. This doesn't preclude community contributions, but I don't think that should be our central docs strategy. Would there be support for developing a simple docs rubric and blocking 4.0 based on packages passing that rubric? SciPy could be a great place for creating that rubric... Cheers, Brian On Tue, Jun 30, 2015 at 7:55 AM, Matthias Bussonnier wrote: > > On Jun 29, 2015, at 05:44, Nicholas Bollweg wrote: > > For why, see the Mathematica documentation, which is really a better > yardstick than other open source projects. > > Yes we want to do that, though cross language and cross library is not easy. > Mathematica has the advantage that they do not really distinguish > the language from the sodlib. > > > On Jun 29, 2015, at 06:59, Kyle Kelley wrote: > > Gosh, I'd rather read foo(path:string, notebookName:string) any day, instead > of having to *also* reference aliases infer based on the name itself. > > > > Well you see what I mean, the types helps, of course naming arguments is > necessary. > But for a name like action_name_is_or_callback is not super nice. > The types in typescript docs are also link so it?s easy to read, and you can > get deeper > details without looking at the source. > > -- > M > > (gosh, I was only in a plane for 11h, and got 180+ mails opening my laptop, > so sorry if I skim through) > > > _______________________________________________ > IPython-dev mailing list > IPython-dev at scipy.org > http://mail.scipy.org/mailman/listinfo/ipython-dev > -- Brian E. Granger Cal Poly State University, San Luis Obispo @ellisonbg on Twitter and GitHub bgranger at calpoly.edu and ellisonbg at gmail.com From fperez.net at gmail.com Wed Jul 1 14:02:35 2015 From: fperez.net at gmail.com (Fernando Perez) Date: Wed, 1 Jul 2015 11:02:35 -0700 Subject: [IPython-dev] Proposal: soft moratorium on re-architecting for 5.0 In-Reply-To: References: <963F3253-CE7E-41F6-BDAA-B0DFB9B87DB1@gmail.com> Message-ID: On Wed, Jul 1, 2015 at 12:33 AM, Brian Granger wrote: > Would there be support for developing a simple docs rubric and > blocking 4.0 based on packages passing that rubric? SciPy could be a > great place for creating that rubric... > I'm not very keen on this idea. My impression is that we are very, very close to having 4.0 ready to go, and that at this point, putting a big block on the actual release would actually do much more harm than good, unless we can put a *very tight* time bound on it. My suggestion would be instead: - Let's open 5.x branches even now, for things where a few people are genuinely suffering from the blockage already (perhaps Matthias and Kester in certain areas, or Sylvain?). - Wrap up the 4.0 work as soon as possible, with the doc scaffolding we've been able to put in place. - As we start our 5.x cycle, we will make docs work a priority of our core team. Once some of our hiring work is done, I may be able to find some cycles for this, and it's an area I would be delighted to put some thinking and effort towards. Or did you have a very constrained (time-wise) idea in mind? 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 ellisonbg at gmail.com Wed Jul 1 14:16:56 2015 From: ellisonbg at gmail.com (Brian Granger) Date: Wed, 1 Jul 2015 11:16:56 -0700 Subject: [IPython-dev] Proposal: soft moratorium on re-architecting for 5.0 In-Reply-To: References: <963F3253-CE7E-41F6-BDAA-B0DFB9B87DB1@gmail.com> Message-ID: On Wed, Jul 1, 2015 at 11:02 AM, Fernando Perez wrote: > On Wed, Jul 1, 2015 at 12:33 AM, Brian Granger wrote: >> >> Would there be support for developing a simple docs rubric and >> blocking 4.0 based on packages passing that rubric? SciPy could be a >> great place for creating that rubric... > > > I'm not very keen on this idea. My impression is that we are very, very > close to having 4.0 ready to go, and that at this point, putting a big block > on the actual release would actually do much more harm than good, unless we > can put a *very tight* time bound on it. > > My suggestion would be instead: > > - Let's open 5.x branches even now, for things where a few people are > genuinely suffering from the blockage already (perhaps Matthias and Kester > in certain areas, or Sylvain?). > > - Wrap up the 4.0 work as soon as possible, with the doc scaffolding we've > been able to put in place. > > - As we start our 5.x cycle, we will make docs work a priority of our core > team. Once some of our hiring work is done, I may be able to find some > cycles for this, and it's an area I would be delighted to put some thinking > and effort towards. > > Or did you have a very constrained (time-wise) idea in mind? That is why I proposed a rubric (or even a checklist) - it would allow us to *begin* pushing on docs in a systematic way. We could constrain the amount of time required by creating a checklist with more or less detail and rigor. For example, here are some possibilities for such a checklist: * Every user focused package/repo should have a sphinx+RTD based documentation. * Those package/repo docs should all be listed on the main docs landing page at juypter.rtd.org. * All notebook based documentation should be integrated into the sphinx based documentation at a basic level - custom HTML in markdown should be removed, images should be displayed using output rather than in markdown and the notebooks should be listed in the appropriate places in the sphinx toc. Notebooks should be *integrated*, not ghetto dumped into sphinx. * There should be no duplicate content in our docs. * Content should be organized into logical, conceptual sections in a way that users can find the documentation they want from our main docs landing page in 2-4 clicks. Even if the checklist/rubric is a target we are already almost hitting, it would communicate a great message about the importance of docs if we became willing to block releases on that checklist and increase the rigor of the checklist/rubric over time. I don't think that major rewrites of content before 4.0 is a good idea, but I think there is a lot of simple docs organization changes we can make that would improve users experience significantly while not taking us too much time. Cheers, Brian > > 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 > http://mail.scipy.org/mailman/listinfo/ipython-dev > -- Brian E. Granger Cal Poly State University, San Luis Obispo @ellisonbg on Twitter and GitHub bgranger at calpoly.edu and ellisonbg at gmail.com From fperez.net at gmail.com Wed Jul 1 14:21:40 2015 From: fperez.net at gmail.com (Fernando Perez) Date: Wed, 1 Jul 2015 11:21:40 -0700 Subject: [IPython-dev] Proposal: soft moratorium on re-architecting for 5.0 In-Reply-To: References: <963F3253-CE7E-41F6-BDAA-B0DFB9B87DB1@gmail.com> Message-ID: On Wed, Jul 1, 2015 at 11:16 AM, Brian Granger wrote: > I don't think that major rewrites of content before 4.0 is a good > idea, but I think there is a lot of simple docs organization changes > we can make that would improve users experience significantly while > not taking us too much time. > I know Thomas and some others have already made a bunch of progress on the ReadTheDocs layout of this, and to be honest, they have a better grasp of the release schedule of 4.0 than I do. Which brings me to... :) It's obvious that we've been less-than-organized with our release schedule this time around. So I think we should: - nominate a release manager for each release from now on. - have that person draft and run a release calendar. They have full authority over it. For 4.0, who wants the job ? :) -- 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 steve at holdenweb.com Wed Jul 1 15:19:25 2015 From: steve at holdenweb.com (Steve Holden) Date: Wed, 1 Jul 2015 20:19:25 +0100 Subject: [IPython-dev] Odd notebook layout on Windows Message-ID: <1B15A290-E924-49C5-8A72-B3E233C1675E@holdenweb.com> Hi all, I'm teaching a class this week, and some class members have installed Jupyter on their Windows machines (from the Continuum distribution). One person has his notebooks appearing in the oddest way. Instead of the numbered prompt appearing to the left of the code area, it appears above it and right-justified! When he places the cursor into the editable code area it acts as though the prompt were in the correct location, so the cursor is actually about an inch to the right of the position where a character appears when he types. The code cell, instead of being offset from the left margin, is pushed over to the margin. We have re-installed to eliminate finger trouble as a cause of the problem, which alas remains at the end of Day 1. Any help or even suggestions welcome! S -- Steve Holden steve at holdenweb.com / +1 571 484 6266 / +44 208 289 6308 / @holdenweb -------------- next part -------------- An HTML attachment was scrubbed... URL: From takowl at gmail.com Wed Jul 1 15:20:29 2015 From: takowl at gmail.com (Thomas Kluyver) Date: Wed, 1 Jul 2015 12:20:29 -0700 Subject: [IPython-dev] Proposal: soft moratorium on re-architecting for 5.0 In-Reply-To: References: <963F3253-CE7E-41F6-BDAA-B0DFB9B87DB1@gmail.com> Message-ID: On 1 July 2015 at 11:21, Fernando Perez wrote: > For 4.0, who wants the job ? :) I'm doing a bit of the organisation already, so I can do that more formally if people are happy with that. We're hoping to put jupyter_core out this afternoon, and we think nbformat is nearly ready as well. Both have the docs we think they need. Thomas -------------- next part -------------- An HTML attachment was scrubbed... URL: From ellisonbg at gmail.com Wed Jul 1 15:22:41 2015 From: ellisonbg at gmail.com (Brian Granger) Date: Wed, 1 Jul 2015 12:22:41 -0700 Subject: [IPython-dev] Proposal: soft moratorium on re-architecting for 5.0 In-Reply-To: References: <963F3253-CE7E-41F6-BDAA-B0DFB9B87DB1@gmail.com> Message-ID: Great! On Wed, Jul 1, 2015 at 12:20 PM, Thomas Kluyver wrote: > On 1 July 2015 at 11:21, Fernando Perez wrote: >> >> For 4.0, who wants the job ? :) > > > I'm doing a bit of the organisation already, so I can do that more formally > if people are happy with that. > > We're hoping to put jupyter_core out this afternoon, and we think nbformat > is nearly ready as well. Both have the docs we think they need. > > Thomas > > _______________________________________________ > IPython-dev mailing list > IPython-dev at scipy.org > http://mail.scipy.org/mailman/listinfo/ipython-dev > -- Brian E. Granger Cal Poly State University, San Luis Obispo @ellisonbg on Twitter and GitHub bgranger at calpoly.edu and ellisonbg at gmail.com From ellisonbg at gmail.com Wed Jul 1 15:23:43 2015 From: ellisonbg at gmail.com (Brian Granger) Date: Wed, 1 Jul 2015 12:23:43 -0700 Subject: [IPython-dev] Odd notebook layout on Windows In-Reply-To: <1B15A290-E924-49C5-8A72-B3E233C1675E@holdenweb.com> References: <1B15A290-E924-49C5-8A72-B3E233C1675E@holdenweb.com> Message-ID: Could you post the notebook somewhere? In the meantime I would have the student restart the notebook server and clear the browser cache. It could be old CSS getting into the mix. On Wed, Jul 1, 2015 at 12:19 PM, Steve Holden wrote: > Hi all, > > I'm teaching a class this week, and some class members have installed > Jupyter on their Windows machines (from the Continuum distribution). > > One person has his notebooks appearing in the oddest way. Instead of the > numbered prompt appearing to the left of the code area, it appears above it > and right-justified! When he places the cursor into the editable code area > it acts as though the prompt were in the correct location, so the cursor is > actually about an inch to the right of the position where a character > appears when he types. > > The code cell, instead of being offset from the left margin, is pushed over > to the margin. > > We have re-installed to eliminate finger trouble as a cause of the problem, > which alas remains at the end of Day 1. > > Any help or even suggestions welcome! > > S > -- > Steve Holden steve at holdenweb.com / +1 571 484 6266 / +44 208 289 6308 / > @holdenweb > > > > > > > _______________________________________________ > IPython-dev mailing list > IPython-dev at scipy.org > http://mail.scipy.org/mailman/listinfo/ipython-dev > -- Brian E. Granger Cal Poly State University, San Luis Obispo @ellisonbg on Twitter and GitHub bgranger at calpoly.edu and ellisonbg at gmail.com From takowl at gmail.com Wed Jul 1 15:24:14 2015 From: takowl at gmail.com (Thomas Kluyver) Date: Wed, 1 Jul 2015 12:24:14 -0700 Subject: [IPython-dev] Odd notebook layout on Windows In-Reply-To: <1B15A290-E924-49C5-8A72-B3E233C1675E@holdenweb.com> References: <1B15A290-E924-49C5-8A72-B3E233C1675E@holdenweb.com> Message-ID: On 1 July 2015 at 12:19, Steve Holden wrote: > One person has his notebooks appearing in the oddest way. Instead of the > numbered prompt appearing to the left of the code area, it appears above it > and right-justified! When he places the cursor into the editable code area > it acts as though the prompt were in the correct location, so the cursor is > actually about an inch to the right of the position where a character > appears when he types. Internet Explorer? I have seen some people using recent versions of IE with the notebook and the layout was off. We don't support IE, so if it's not working, you should encourage them to install Firefox of Chrom(ium|e). -------------- next part -------------- An HTML attachment was scrubbed... URL: From benjaminrk at gmail.com Wed Jul 1 16:29:55 2015 From: benjaminrk at gmail.com (MinRK) Date: Wed, 1 Jul 2015 13:29:55 -0700 Subject: [IPython-dev] Proposal: soft moratorium on re-architecting for 5.0 In-Reply-To: References: <963F3253-CE7E-41F6-BDAA-B0DFB9B87DB1@gmail.com> Message-ID: Thomas has been informally leading the charge, so I'd be happy to follow him formally on 4.0. We are in good shape to have the majority of the smaller packages shipped by the end of SciPy (at least 2-3 before then). The bit that gets a little tricky is that we need to release IPython last (so that `ipython[all]` still works, but other projects depend on it, either directly (parallel, kernel) or artificially (notebook, qtconsole). I think we can still release those downstream projects before IPython, though. Until IPython is released, they won't be pip-installable without having done `pip install -e git:ipython` first, but it lets us progress without having to do one big day of releasing a half dozen packages. Re: release managers, I think it's also important to note that we will hopefully only need the more formal freeze/release process for the more active projects (likely ipython/ipython, notebook, widgets, possibly nbconvert on occasion). For the most part, the other projects should be able to operate at a much more informal, frequent bugfix release pattern, where major revisions are less common, and active work causes tension with release. -MinRK On Wed, Jul 1, 2015 at 12:22 PM, Brian Granger wrote: > Great! > > On Wed, Jul 1, 2015 at 12:20 PM, Thomas Kluyver wrote: > > On 1 July 2015 at 11:21, Fernando Perez wrote: > >> > >> For 4.0, who wants the job ? :) > > > > > > I'm doing a bit of the organisation already, so I can do that more > formally > > if people are happy with that. > > > > We're hoping to put jupyter_core out this afternoon, and we think > nbformat > > is nearly ready as well. Both have the docs we think they need. > > > > Thomas > > > > _______________________________________________ > > IPython-dev mailing list > > IPython-dev at scipy.org > > http://mail.scipy.org/mailman/listinfo/ipython-dev > > > > > > -- > Brian E. Granger > Cal Poly State University, San Luis Obispo > @ellisonbg on Twitter and GitHub > bgranger at calpoly.edu and ellisonbg at gmail.com > _______________________________________________ > IPython-dev mailing list > IPython-dev at scipy.org > http://mail.scipy.org/mailman/listinfo/ipython-dev > -------------- next part -------------- An HTML attachment was scrubbed... URL: From ellisonbg at gmail.com Wed Jul 1 16:33:18 2015 From: ellisonbg at gmail.com (Brian Granger) Date: Wed, 1 Jul 2015 13:33:18 -0700 Subject: [IPython-dev] Proposal: soft moratorium on re-architecting for 5.0 In-Reply-To: References: <963F3253-CE7E-41F6-BDAA-B0DFB9B87DB1@gmail.com> Message-ID: That sounds good to me. On Wed, Jul 1, 2015 at 1:29 PM, MinRK wrote: > Thomas has been informally leading the charge, so I'd be happy to follow him > formally on 4.0. We are in good shape to have the majority of the smaller > packages shipped by the end of SciPy (at least 2-3 before then). The bit > that gets a little tricky is that we need to release IPython last (so that > `ipython[all]` still works, but other projects depend on it, either directly > (parallel, kernel) or artificially (notebook, qtconsole). I think we can > still release those downstream projects before IPython, though. Until > IPython is released, they won't be pip-installable without having done `pip > install -e git:ipython` first, but it lets us progress without having to do > one big day of releasing a half dozen packages. > > Re: release managers, I think it's also important to note that we will > hopefully only need the more formal freeze/release process for the more > active projects (likely ipython/ipython, notebook, widgets, possibly > nbconvert on occasion). For the most part, the other projects should be able > to operate at a much more informal, frequent bugfix release pattern, where > major revisions are less common, and active work causes tension with > release. > > -MinRK > > On Wed, Jul 1, 2015 at 12:22 PM, Brian Granger wrote: >> >> Great! >> >> On Wed, Jul 1, 2015 at 12:20 PM, Thomas Kluyver wrote: >> > On 1 July 2015 at 11:21, Fernando Perez wrote: >> >> >> >> For 4.0, who wants the job ? :) >> > >> > >> > I'm doing a bit of the organisation already, so I can do that more >> > formally >> > if people are happy with that. >> > >> > We're hoping to put jupyter_core out this afternoon, and we think >> > nbformat >> > is nearly ready as well. Both have the docs we think they need. >> > >> > Thomas >> > >> > _______________________________________________ >> > IPython-dev mailing list >> > IPython-dev at scipy.org >> > http://mail.scipy.org/mailman/listinfo/ipython-dev >> > >> >> >> >> -- >> Brian E. Granger >> Cal Poly State University, San Luis Obispo >> @ellisonbg on Twitter and GitHub >> bgranger at calpoly.edu and ellisonbg at gmail.com >> _______________________________________________ >> IPython-dev mailing list >> IPython-dev at scipy.org >> http://mail.scipy.org/mailman/listinfo/ipython-dev > > > > _______________________________________________ > IPython-dev mailing list > IPython-dev at scipy.org > http://mail.scipy.org/mailman/listinfo/ipython-dev > -- Brian E. Granger Cal Poly State University, San Luis Obispo @ellisonbg on Twitter and GitHub bgranger at calpoly.edu and ellisonbg at gmail.com From sccolbert at gmail.com Wed Jul 1 16:35:01 2015 From: sccolbert at gmail.com (Chris Colbert) Date: Wed, 1 Jul 2015 16:35:01 -0400 Subject: [IPython-dev] comm_info_[request/reply] : addition to the messaging protocol In-Reply-To: References: Message-ID: I'm +1 on the idea, but -1 on the proposed format of the message. It's really difficult to specify a schema for the message when the keys of the message are dynamic. In this case, the key `comm_id` can be anything, which makes validating the message difficult, and defining a corresponding object type (other than a hash table) for the message impossible. If instead you list the active comms as an array of pairs, it becomes very easy to both define the schema for the message, as well as handle the message on the client-side. Something like: `{ type: 'comm_info_reply', comms: [ { id: 'foo', target: 'ipython.widget' }, ... ] }` On Sat, Jun 27, 2015 at 11:46 PM, Sylvain Corlay wrote: > Hi All, > > I wanted to come back to the discussion on the request/reply mechanism for > information on currently live comms that we proposed and was discussed at > the last dev meeting. I would be happy to open an IPEP in the wiki on this > subject. > > I am posting here because the mailing list is a less transient than gitter > or the hangouts and it helps reaching the broader community that might not > be closely following the GitHub repositories. > > Here is some context for those who are new to the subject: when a client > is connected to an already-running kernel (for example in the case of a > page reload in the notebook), it currently has no direct means of knowing > what comms are open in the back-end. If we want it to be able to > re-instantiate front-end counterpart to those comms, a way to retrieve this > information must be implemented. > > In the case of the notebook, the front-end can try sending messages to > some comm ids that the browser knows existed at some point because the > model ids of the widget displayed in the notebook are saved in the local > storage when the notebook is saved, but it clearly is insufficient and is > essentially a stab in the dark. This information may be completely outdated. > > Hence a natural solution to that issue was to create a new shell message > type, to request the currently open comms from the back-end. Because of the > multi-repository nature of Jupyter, this resulted a the following PRs > > *jupyter-client:* https://github.com/jupyter/jupyter_client/pull/34 > > *ipykernel:* https://github.com/ipython/ipykernel/pull/25 (requires > the previous PR) > > *notebook:* https://github.com/jupyter/notebook/pull/166 (requires the > two previous PRs) > > *ipywidgets:* https://github.com/ipython/ipywidgets/pull/62 (requires the > three previous PRs) > > My initial proposal was to return the list of valid ids because it is what > is required for the use case of widgets. After the discussion in the dev > meeting where Fernando was worried that the schema of the message might > note have been the right one, I changed things a bit and called the > messages *comm_info_[request/reply]*. The reply message a dictionary > containing one key, called `comms`, which itself contains a dictionary of > the form `*{comm_id : target_name}*` > > In the case of widgets, the target name is always ipython.widget but not > necessarily in the general case. With this new schema, the whole > information is available and other fields than `comms` could be added to > the *comm_info_reply* message in the future. > > There are some workarounds for the lack of such a message in the protocol, > one of which is implemented in the last commit in the PR for ipywidgets. > However, I don't think that such contortions are the way to go. Feedback on > the PRs is welcome. If other users of comms have ideas on this specific > issue, please respond on the mailing list! > > Thanks, > > Sylvain > > _______________________________________________ > IPython-dev mailing list > IPython-dev at scipy.org > http://mail.scipy.org/mailman/listinfo/ipython-dev > > -------------- next part -------------- An HTML attachment was scrubbed... URL: From rgbkrk at gmail.com Wed Jul 1 16:41:08 2015 From: rgbkrk at gmail.com (Kyle Kelley) Date: Wed, 1 Jul 2015 15:41:08 -0500 Subject: [IPython-dev] comm_info_[request/reply] : addition to the messaging protocol In-Reply-To: References: Message-ID: Since this is about the message spec specifically for comms (which are also working on to be used in IHaskell as part of a summer of code project), it would be nice to post this on the Jupyter mailing list as well. On Wed, Jul 1, 2015 at 3:35 PM, Chris Colbert wrote: > I'm +1 on the idea, but -1 on the proposed format of the message. It's > really difficult to specify a schema for the message when the keys of the > message are dynamic. In this case, the key `comm_id` can be anything, which > makes validating the message difficult, and defining a corresponding object > type (other than a hash table) for the message impossible. > > If instead you list the active comms as an array of pairs, it becomes very > easy to both define the schema for the message, as well as handle the > message on the client-side. Something like: > > `{ type: 'comm_info_reply', comms: [ { id: 'foo', target: 'ipython.widget' > }, ... ] }` > > > On Sat, Jun 27, 2015 at 11:46 PM, Sylvain Corlay > wrote: > >> Hi All, >> >> I wanted to come back to the discussion on the request/reply mechanism >> for information on currently live comms that we proposed and was discussed >> at the last dev meeting. I would be happy to open an IPEP in the wiki on >> this subject. >> >> I am posting here because the mailing list is a less transient than >> gitter or the hangouts and it helps reaching the broader community that >> might not be closely following the GitHub repositories. >> >> Here is some context for those who are new to the subject: when a client >> is connected to an already-running kernel (for example in the case of a >> page reload in the notebook), it currently has no direct means of knowing >> what comms are open in the back-end. If we want it to be able to >> re-instantiate front-end counterpart to those comms, a way to retrieve this >> information must be implemented. >> >> In the case of the notebook, the front-end can try sending messages to >> some comm ids that the browser knows existed at some point because the >> model ids of the widget displayed in the notebook are saved in the local >> storage when the notebook is saved, but it clearly is insufficient and is >> essentially a stab in the dark. This information may be completely outdated. >> >> Hence a natural solution to that issue was to create a new shell message >> type, to request the currently open comms from the back-end. Because of the >> multi-repository nature of Jupyter, this resulted a the following PRs >> >> *jupyter-client:* https://github.com/jupyter/jupyter_client/pull/34 >> >> *ipykernel:* https://github.com/ipython/ipykernel/pull/25 (requires >> the previous PR) >> >> *notebook:* https://github.com/jupyter/notebook/pull/166 (requires the >> two previous PRs) >> >> *ipywidgets:* https://github.com/ipython/ipywidgets/pull/62 (requires >> the three previous PRs) >> >> My initial proposal was to return the list of valid ids because it is >> what is required for the use case of widgets. After the discussion in the >> dev meeting where Fernando was worried that the schema of the message might >> note have been the right one, I changed things a bit and called the >> messages *comm_info_[request/reply]*. The reply message a dictionary >> containing one key, called `comms`, which itself contains a dictionary of >> the form `*{comm_id : target_name}*` >> >> In the case of widgets, the target name is always ipython.widget but not >> necessarily in the general case. With this new schema, the whole >> information is available and other fields than `comms` could be added to >> the *comm_info_reply* message in the future. >> >> There are some workarounds for the lack of such a message in the >> protocol, one of which is implemented in the last commit in the PR for >> ipywidgets. However, I don't think that such contortions are the way to go. >> Feedback on the PRs is welcome. If other users of comms have ideas on this >> specific issue, please respond on the mailing list! >> >> Thanks, >> >> Sylvain >> >> _______________________________________________ >> IPython-dev mailing list >> IPython-dev at scipy.org >> http://mail.scipy.org/mailman/listinfo/ipython-dev >> >> > > _______________________________________________ > IPython-dev mailing list > IPython-dev at scipy.org > http://mail.scipy.org/mailman/listinfo/ipython-dev > > -- Kyle Kelley (@rgbkrk ; lambdaops.com, developer.rackspace.com) -------------- next part -------------- An HTML attachment was scrubbed... URL: From benjaminrk at gmail.com Wed Jul 1 16:45:14 2015 From: benjaminrk at gmail.com (MinRK) Date: Wed, 1 Jul 2015 13:45:14 -0700 Subject: [IPython-dev] comm_info_[request/reply] : addition to the messaging protocol In-Reply-To: References: Message-ID: On Wed, Jul 1, 2015 at 1:35 PM, Chris Colbert wrote: > I'm +1 on the idea, but -1 on the proposed format of the message. It's > really difficult to specify a schema for the message when the keys of the > message are dynamic. In this case, the key `comm_id` can be anything, which > makes validating the message difficult, and defining a corresponding object > type (other than a hash table) for the message impossible. > > If instead you list the active comms as an array of pairs, it becomes very > easy to both define the schema for the message, as well as handle the > message on the client-side. Something like: > > `{ type: 'comm_info_reply', comms: [ { id: 'foo', target: 'ipython.widget' > }, ... ] }` > On the other hand, the hash table is much better for answering the question 'is this id present' than a list. So to some degree, it's a question of which sort of action is more likely based on the reply: 1. check if a particular entry present 2. iterate through all entries, and take some action (list, display, reconnect, etc.) Even if it remains a hash table, the values should probably be dicts, so that there is a place for info about each comm to grow, if we see a need for it. -MinRK > > > On Sat, Jun 27, 2015 at 11:46 PM, Sylvain Corlay > wrote: > >> Hi All, >> >> I wanted to come back to the discussion on the request/reply mechanism >> for information on currently live comms that we proposed and was discussed >> at the last dev meeting. I would be happy to open an IPEP in the wiki on >> this subject. >> >> I am posting here because the mailing list is a less transient than >> gitter or the hangouts and it helps reaching the broader community that >> might not be closely following the GitHub repositories. >> >> Here is some context for those who are new to the subject: when a client >> is connected to an already-running kernel (for example in the case of a >> page reload in the notebook), it currently has no direct means of knowing >> what comms are open in the back-end. If we want it to be able to >> re-instantiate front-end counterpart to those comms, a way to retrieve this >> information must be implemented. >> >> In the case of the notebook, the front-end can try sending messages to >> some comm ids that the browser knows existed at some point because the >> model ids of the widget displayed in the notebook are saved in the local >> storage when the notebook is saved, but it clearly is insufficient and is >> essentially a stab in the dark. This information may be completely outdated. >> >> Hence a natural solution to that issue was to create a new shell message >> type, to request the currently open comms from the back-end. Because of the >> multi-repository nature of Jupyter, this resulted a the following PRs >> >> *jupyter-client:* https://github.com/jupyter/jupyter_client/pull/34 >> >> *ipykernel:* https://github.com/ipython/ipykernel/pull/25 (requires >> the previous PR) >> >> *notebook:* https://github.com/jupyter/notebook/pull/166 (requires the >> two previous PRs) >> >> *ipywidgets:* https://github.com/ipython/ipywidgets/pull/62 (requires >> the three previous PRs) >> >> My initial proposal was to return the list of valid ids because it is >> what is required for the use case of widgets. After the discussion in the >> dev meeting where Fernando was worried that the schema of the message might >> note have been the right one, I changed things a bit and called the >> messages *comm_info_[request/reply]*. The reply message a dictionary >> containing one key, called `comms`, which itself contains a dictionary of >> the form `*{comm_id : target_name}*` >> >> In the case of widgets, the target name is always ipython.widget but not >> necessarily in the general case. With this new schema, the whole >> information is available and other fields than `comms` could be added to >> the *comm_info_reply* message in the future. >> >> There are some workarounds for the lack of such a message in the >> protocol, one of which is implemented in the last commit in the PR for >> ipywidgets. However, I don't think that such contortions are the way to go. >> Feedback on the PRs is welcome. If other users of comms have ideas on this >> specific issue, please respond on the mailing list! >> >> Thanks, >> >> Sylvain >> >> _______________________________________________ >> IPython-dev mailing list >> IPython-dev at scipy.org >> http://mail.scipy.org/mailman/listinfo/ipython-dev >> >> > > _______________________________________________ > IPython-dev mailing list > IPython-dev at scipy.org > http://mail.scipy.org/mailman/listinfo/ipython-dev > > -------------- next part -------------- An HTML attachment was scrubbed... URL: From sccolbert at gmail.com Wed Jul 1 17:01:03 2015 From: sccolbert at gmail.com (Chris Colbert) Date: Wed, 1 Jul 2015 17:01:03 -0400 Subject: [IPython-dev] comm_info_[request/reply] : addition to the messaging protocol In-Reply-To: References: Message-ID: On Wed, Jul 1, 2015 at 4:45 PM, MinRK wrote: > > > On Wed, Jul 1, 2015 at 1:35 PM, Chris Colbert wrote: > >> I'm +1 on the idea, but -1 on the proposed format of the message. It's >> really difficult to specify a schema for the message when the keys of the >> message are dynamic. In this case, the key `comm_id` can be anything, which >> makes validating the message difficult, and defining a corresponding object >> type (other than a hash table) for the message impossible. >> >> If instead you list the active comms as an array of pairs, it becomes >> very easy to both define the schema for the message, as well as handle the >> message on the client-side. Something like: >> >> `{ type: 'comm_info_reply', comms: [ { id: 'foo', target: >> 'ipython.widget' }, ... ] }` >> > > On the other hand, the hash table is much better for answering the > question 'is this id present' than a list. So to some degree, it's a > question of which sort of action is more likely based on the reply: > > IMO this concern is secondary to ensuring you receive the data you expected. You have to iterate the whole structure at least once to validate it anyway. During that validation, you may opt to convert it to a hash table or whatever else you need for the task you're about to perform. But I think it's crucial to be able to schematize the messages (both for validation and documentation) and dynamic keys make that very difficult. 1. check if a particular entry present > 2. iterate through all entries, and take some action (list, display, > reconnect, etc.) > > Even if it remains a hash table, the values should probably be dicts, so > that there is a place for info about each comm to grow, if we see a need > for it. > > -MinRK > > -------------- next part -------------- An HTML attachment was scrubbed... URL: From sylvain.corlay at gmail.com Wed Jul 1 17:31:00 2015 From: sylvain.corlay at gmail.com (Sylvain Corlay) Date: Wed, 1 Jul 2015 17:31:00 -0400 Subject: [IPython-dev] comm_info_[request/reply] : addition to the messaging protocol In-Reply-To: References: Message-ID: The use case that we face at the moment is to check if ids are valid comm ids, however, it is likely that in the future, we perform other operations on each comm. I will box the comm target in a dictionary for each comm id as suggested by @minrk. Regarding the proposition of Chris, it would require a bit more processing on the js side for my usecase, but that would work for me as well. S. On Wed, Jul 1, 2015 at 4:45 PM, MinRK wrote: > > > On Wed, Jul 1, 2015 at 1:35 PM, Chris Colbert wrote: > >> I'm +1 on the idea, but -1 on the proposed format of the message. It's >> really difficult to specify a schema for the message when the keys of the >> message are dynamic. In this case, the key `comm_id` can be anything, which >> makes validating the message difficult, and defining a corresponding object >> type (other than a hash table) for the message impossible. >> >> If instead you list the active comms as an array of pairs, it becomes >> very easy to both define the schema for the message, as well as handle the >> message on the client-side. Something like: >> >> `{ type: 'comm_info_reply', comms: [ { id: 'foo', target: >> 'ipython.widget' }, ... ] }` >> > > On the other hand, the hash table is much better for answering the > question 'is this id present' than a list. So to some degree, it's a > question of which sort of action is more likely based on the reply: > > 1. check if a particular entry present > 2. iterate through all entries, and take some action (list, display, > reconnect, etc.) > > Even if it remains a hash table, the values should probably be dicts, so > that there is a place for info about each comm to grow, if we see a need > for it. > > -MinRK > > >> >> >> On Sat, Jun 27, 2015 at 11:46 PM, Sylvain Corlay < >> sylvain.corlay at gmail.com> wrote: >> >>> Hi All, >>> >>> I wanted to come back to the discussion on the request/reply mechanism >>> for information on currently live comms that we proposed and was discussed >>> at the last dev meeting. I would be happy to open an IPEP in the wiki on >>> this subject. >>> >>> I am posting here because the mailing list is a less transient than >>> gitter or the hangouts and it helps reaching the broader community that >>> might not be closely following the GitHub repositories. >>> >>> Here is some context for those who are new to the subject: when a client >>> is connected to an already-running kernel (for example in the case of a >>> page reload in the notebook), it currently has no direct means of knowing >>> what comms are open in the back-end. If we want it to be able to >>> re-instantiate front-end counterpart to those comms, a way to retrieve this >>> information must be implemented. >>> >>> In the case of the notebook, the front-end can try sending messages to >>> some comm ids that the browser knows existed at some point because the >>> model ids of the widget displayed in the notebook are saved in the local >>> storage when the notebook is saved, but it clearly is insufficient and is >>> essentially a stab in the dark. This information may be completely outdated. >>> >>> Hence a natural solution to that issue was to create a new shell message >>> type, to request the currently open comms from the back-end. Because of the >>> multi-repository nature of Jupyter, this resulted a the following PRs >>> >>> *jupyter-client:* https://github.com/jupyter/jupyter_client/pull/34 >>> >>> *ipykernel:* https://github.com/ipython/ipykernel/pull/25 (requires >>> the previous PR) >>> >>> *notebook:* https://github.com/jupyter/notebook/pull/166 (requires >>> the two previous PRs) >>> >>> *ipywidgets:* https://github.com/ipython/ipywidgets/pull/62 (requires >>> the three previous PRs) >>> >>> My initial proposal was to return the list of valid ids because it is >>> what is required for the use case of widgets. After the discussion in the >>> dev meeting where Fernando was worried that the schema of the message might >>> note have been the right one, I changed things a bit and called the >>> messages *comm_info_[request/reply]*. The reply message a dictionary >>> containing one key, called `comms`, which itself contains a dictionary of >>> the form `*{comm_id : target_name}*` >>> >>> In the case of widgets, the target name is always ipython.widget but not >>> necessarily in the general case. With this new schema, the whole >>> information is available and other fields than `comms` could be added to >>> the *comm_info_reply* message in the future. >>> >>> There are some workarounds for the lack of such a message in the >>> protocol, one of which is implemented in the last commit in the PR for >>> ipywidgets. However, I don't think that such contortions are the way to go. >>> Feedback on the PRs is welcome. If other users of comms have ideas on this >>> specific issue, please respond on the mailing list! >>> >>> Thanks, >>> >>> Sylvain >>> >>> _______________________________________________ >>> IPython-dev mailing list >>> IPython-dev at scipy.org >>> http://mail.scipy.org/mailman/listinfo/ipython-dev >>> >>> >> >> _______________________________________________ >> IPython-dev mailing list >> IPython-dev at scipy.org >> http://mail.scipy.org/mailman/listinfo/ipython-dev >> >> > > _______________________________________________ > IPython-dev mailing list > IPython-dev at scipy.org > http://mail.scipy.org/mailman/listinfo/ipython-dev > > -------------- next part -------------- An HTML attachment was scrubbed... URL: From fperez.net at gmail.com Wed Jul 1 17:35:00 2015 From: fperez.net at gmail.com (Fernando Perez) Date: Wed, 1 Jul 2015 14:35:00 -0700 Subject: [IPython-dev] Proposal: soft moratorium on re-architecting for 5.0 In-Reply-To: References: <963F3253-CE7E-41F6-BDAA-B0DFB9B87DB1@gmail.com> Message-ID: On Wed, Jul 1, 2015 at 1:29 PM, MinRK wrote: > Thomas has been informally leading the charge, so I'd be happy to follow > him formally on 4.0. We are in > Great, thanks Thomas! You're in :) I would suggest you post, on a separate thread, a summary of the release plan/schedule when viable. > good shape to have the majority of the smaller packages shipped by the end > of SciPy (at least 2-3 before then). The bit that gets a little tricky is > that we need to release IPython last (so that `ipython[all]` still works, > but other projects depend on it, either directly (parallel, kernel) or > artificially (notebook, qtconsole). I think we can still release those > downstream projects before IPython, though. Until IPython is released, they > won't be pip-installable without having done `pip install -e git:ipython` > first, but it lets us progress without having to do one big day of > releasing a half dozen packages. > Makes sense. > > Re: release managers, I think it's also important to note that we will > hopefully only need the more formal freeze/release process for the more > active projects (likely ipython/ipython, notebook, widgets, possibly > nbconvert on occasion). For the most part, the other projects should be > able to operate at a much more informal, frequent bugfix release pattern, > where major revisions are less common, and active work causes tension with > release. > Yes, I think this is very reasonable. I just want us to be more explicit and communicate better our overall release strategy. Even if it's just saying this part out loud, so that people know what to expect... 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 ellisonbg at gmail.com Thu Jul 2 14:11:54 2015 From: ellisonbg at gmail.com (Brian Granger) Date: Thu, 2 Jul 2015 11:11:54 -0700 Subject: [IPython-dev] [jupyter] Experimenting with a modified dev meeting format? In-Reply-To: References: <077F4F6B-0E87-4326-BB38-F3757C91E546@gmail.com> Message-ID: Jason - I will be down a few minutes before noon. Cheers, Brian On Tue, Jun 30, 2015 at 10:25 PM, Brian Granger wrote: > I know with SciPy we probably won't have a dev meeting next week, but > before the next one, we should test a bunch of different audio > configurations. > > On Tue, Jun 30, 2015 at 10:09 AM, Brian Granger wrote: >> We are using bluejeans from another room - seems to be working fine >> >> >> On Tue, Jun 30, 2015 at 9:21 AM, Jason Grout wrote: >>> We could set up an audio conference call if needed. Let us know if we need >>> to. >>> >>> Jason >>> >>> >>> On Tue, Jun 30, 2015, 12:07 Matthias Bussonnier >>> wrote: >>>> >>>> Last minutes change of plan (Probably) new furniture beeing installed in >>>> video-room. >>>> So no BlueJeans setup. >>>> We will have to fallback on something else most likely. >>>> >>>> -- >>>> M >>>> >>>> > On Jun 29, 2015, at 23:16, Brian Granger wrote: >>>> > >>>> > Sounds good, I have also posted a summary of these changed at the top >>>> > of the meeting hackpad. See you tomorrow! >>>> > >>>> > Cheers, >>>> > >>>> > Brian >>>> > >>>> > On Mon, Jun 29, 2015 at 6:25 PM, MinRK wrote: >>>> >> >>>> >> >>>> >> On Mon, Jun 29, 2015 at 5:56 PM, Fernando Perez >>>> >> wrote: >>>> >>> >>>> >>> On Sat, Jun 27, 2015 at 8:07 PM, MinRK wrote: >>>> >>>> >>>> >>>> I think turning Tuesdays into check-ins/reports is a good idea. >>>> >>>> Having >>>> >>>> just one or two topics for actual in-depth meetings with smaller >>>> >>>> groups >>>> >>>> should definitely be more effective. >>>> >>> >>>> >>> >>>> >>> OK, here's a wrap-up and my suggested path forward, so we can call >>>> >>> this >>>> >>> thread done, unless someone objects strenuously to something. As >>>> >>> usual, we >>>> >>> will fine-tune over time as we learn from experience... >>>> >>> >>>> >>> - Let's go with a max of 5 minutes per person on reporting of >>>> >>> activity. >>>> >>> >>>> >>> >>>> >>> - When reporting, you should try make sure what you say answers the >>>> >>> following questions for the others: >>>> >>> >>>> >>> * What have I been working on? >>>> >>> * What do I plan on working on? >>>> >>> * What things are preventing me from making progress? >>>> >>> >>>> >>> This will ensure that everyone leaves knowing what everyone is up to, >>>> >>> and >>>> >>> that we can effectively help each other, identify where resources are >>>> >>> needed, bottlenecks, etc. >>>> >>> >>>> >>> >>>> >>> - We try to take notes as usual collectively on Hackpad, BUT, we >>>> >>> designate >>>> >>> a person each week who has an explicit responsibility that week to >>>> >>> spend a >>>> >>> bit of time after the meeting making sure the notes make sense and >>>> >>> posting >>>> >>> them to the Jupyter list. Hopefully that won't take more than a few >>>> >>> minutes, >>>> >>> if the collective note-taking was sufficient. >>>> >>> >>>> >>> This will give us a static record on the list of each week's meeting, >>>> >>> which is better than just having a doc on hackpad. >>>> >>> >>>> >>> I volunteer to be the note-poster for tomorrow. >>>> >>> >>>> >>> >>>> >>> - Let's keep the total meeting time to 1h, hard limit. Tomorrow, >>>> >>> we're >>>> >>> going to use a trick to enforce that: our nice videoconferencing room >>>> >>> at >>>> >>> BIDS is booked at 11am every other Tuesday, so we'll get kicked out >>>> >>> anyways. >>>> >>> We could obviously use another one, but instead we'll use the room >>>> >>> with the >>>> >>> better audio equipment and be forced to stay on schedule :) >>>> >>> >>>> >>> >>>> >>> Did I miss anything? >>>> >> >>>> >> >>>> >> Sounds like a good plan. See you all tomorrow. >>>> >> >>>> >> -MinRK >>>> >> >>>> >>> >>>> >>> >>>> >>> Cheers, >>>> >>> >>>> >>> f >>>> >>> >>>> >>> -- >>>> >>> 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/CAHAreOpdZ4tryfYk0PKktwJ2iTbhyMttYoGD9JU3c8A4CdM5mA%40mail.gmail.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 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/CAHNn8BV61o_M8ziSOQnfOJz0Am6Pux14Yk6TVumCBK28LsaMVw%40mail.gmail.com. >>>> >> >>>> >> For more options, visit https://groups.google.com/d/optout. >>>> > >>>> > >>>> > >>>> > -- >>>> > Brian E. Granger >>>> > Cal Poly State University, San Luis Obispo >>>> > @ellisonbg on Twitter and GitHub >>>> > bgranger at calpoly.edu and ellisonbg at gmail.com >>>> > >>>> > -- >>>> > 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/CAH4pYpSLq5LqHgoX1ULsqw3EwB%3Dn%2BR0qiqYKE%2BrHb2R2JEQSLg%40mail.gmail.com. >>>> > For more options, visit https://groups.google.com/d/optout. >>>> >>>> _______________________________________________ >>>> IPython-dev mailing list >>>> IPython-dev at scipy.org >>>> http://mail.scipy.org/mailman/listinfo/ipython-dev >>> >>> >>> _______________________________________________ >>> IPython-dev mailing list >>> IPython-dev at scipy.org >>> http://mail.scipy.org/mailman/listinfo/ipython-dev >>> >> >> >> >> -- >> Brian E. Granger >> Cal Poly State University, San Luis Obispo >> @ellisonbg on Twitter and GitHub >> bgranger at calpoly.edu and ellisonbg at gmail.com > > > > -- > Brian E. Granger > Cal Poly State University, San Luis Obispo > @ellisonbg on Twitter and GitHub > bgranger at calpoly.edu and ellisonbg at gmail.com -- Brian E. Granger Cal Poly State University, San Luis Obispo @ellisonbg on Twitter and GitHub bgranger at calpoly.edu and ellisonbg at gmail.com From sylvain.corlay at gmail.com Thu Jul 2 14:23:15 2015 From: sylvain.corlay at gmail.com (Sylvain Corlay) Date: Thu, 2 Jul 2015 14:23:15 -0400 Subject: [IPython-dev] comm_info_[request/reply] : addition to the messaging protocol In-Reply-To: References: Message-ID: I updated the PRs with the suggestions of Min regarding the schema for the reply messages: ``` Message type: ``comm_info_request``:: content = { } Message type: ``comm_info_reply``:: content = { # A dictionary of the comms, indexed by uuids. 'comms': { uuid: { 'target_name': str, }, }, } ``` Sylvain On Wed, Jul 1, 2015 at 5:31 PM, Sylvain Corlay wrote: > The use case that we face at the moment is to check if ids are valid comm > ids, however, it is likely that in the future, we perform other operations > on each comm. > > I will box the comm target in a dictionary for each comm id as suggested > by @minrk. Regarding the proposition of Chris, it would require a bit more > processing on the js side for my usecase, but that would work for me as > well. > > S. > > On Wed, Jul 1, 2015 at 4:45 PM, MinRK wrote: > >> >> >> On Wed, Jul 1, 2015 at 1:35 PM, Chris Colbert >> wrote: >> >>> I'm +1 on the idea, but -1 on the proposed format of the message. It's >>> really difficult to specify a schema for the message when the keys of the >>> message are dynamic. In this case, the key `comm_id` can be anything, which >>> makes validating the message difficult, and defining a corresponding object >>> type (other than a hash table) for the message impossible. >>> >>> If instead you list the active comms as an array of pairs, it becomes >>> very easy to both define the schema for the message, as well as handle the >>> message on the client-side. Something like: >>> >>> `{ type: 'comm_info_reply', comms: [ { id: 'foo', target: >>> 'ipython.widget' }, ... ] }` >>> >> >> On the other hand, the hash table is much better for answering the >> question 'is this id present' than a list. So to some degree, it's a >> question of which sort of action is more likely based on the reply: >> >> 1. check if a particular entry present >> 2. iterate through all entries, and take some action (list, display, >> reconnect, etc.) >> >> Even if it remains a hash table, the values should probably be dicts, so >> that there is a place for info about each comm to grow, if we see a need >> for it. >> >> -MinRK >> >> >>> >>> >>> On Sat, Jun 27, 2015 at 11:46 PM, Sylvain Corlay < >>> sylvain.corlay at gmail.com> wrote: >>> >>>> Hi All, >>>> >>>> I wanted to come back to the discussion on the request/reply mechanism >>>> for information on currently live comms that we proposed and was discussed >>>> at the last dev meeting. I would be happy to open an IPEP in the wiki on >>>> this subject. >>>> >>>> I am posting here because the mailing list is a less transient than >>>> gitter or the hangouts and it helps reaching the broader community that >>>> might not be closely following the GitHub repositories. >>>> >>>> Here is some context for those who are new to the subject: when a >>>> client is connected to an already-running kernel (for example in the case >>>> of a page reload in the notebook), it currently has no direct means of >>>> knowing what comms are open in the back-end. If we want it to be able to >>>> re-instantiate front-end counterpart to those comms, a way to retrieve this >>>> information must be implemented. >>>> >>>> In the case of the notebook, the front-end can try sending messages to >>>> some comm ids that the browser knows existed at some point because the >>>> model ids of the widget displayed in the notebook are saved in the local >>>> storage when the notebook is saved, but it clearly is insufficient and is >>>> essentially a stab in the dark. This information may be completely outdated. >>>> >>>> Hence a natural solution to that issue was to create a new shell >>>> message type, to request the currently open comms from the back-end. >>>> Because of the multi-repository nature of Jupyter, this resulted a the >>>> following PRs >>>> >>>> *jupyter-client:* https://github.com/jupyter/jupyter_client/pull/34 >>>> >>>> *ipykernel:* https://github.com/ipython/ipykernel/pull/25 (requires >>>> the previous PR) >>>> >>>> *notebook:* https://github.com/jupyter/notebook/pull/166 (requires >>>> the two previous PRs) >>>> >>>> *ipywidgets:* https://github.com/ipython/ipywidgets/pull/62 (requires >>>> the three previous PRs) >>>> >>>> My initial proposal was to return the list of valid ids because it is >>>> what is required for the use case of widgets. After the discussion in the >>>> dev meeting where Fernando was worried that the schema of the message might >>>> note have been the right one, I changed things a bit and called the >>>> messages *comm_info_[request/reply]*. The reply message a dictionary >>>> containing one key, called `comms`, which itself contains a dictionary of >>>> the form `*{comm_id : target_name}*` >>>> >>>> In the case of widgets, the target name is always ipython.widget but >>>> not necessarily in the general case. With this new schema, the whole >>>> information is available and other fields than `comms` could be added to >>>> the *comm_info_reply* message in the future. >>>> >>>> There are some workarounds for the lack of such a message in the >>>> protocol, one of which is implemented in the last commit in the PR for >>>> ipywidgets. However, I don't think that such contortions are the way to go. >>>> Feedback on the PRs is welcome. If other users of comms have ideas on this >>>> specific issue, please respond on the mailing list! >>>> >>>> Thanks, >>>> >>>> Sylvain >>>> >>>> _______________________________________________ >>>> IPython-dev mailing list >>>> IPython-dev at scipy.org >>>> http://mail.scipy.org/mailman/listinfo/ipython-dev >>>> >>>> >>> >>> _______________________________________________ >>> IPython-dev mailing list >>> IPython-dev at scipy.org >>> http://mail.scipy.org/mailman/listinfo/ipython-dev >>> >>> >> >> _______________________________________________ >> IPython-dev mailing list >> IPython-dev at scipy.org >> http://mail.scipy.org/mailman/listinfo/ipython-dev >> >> > -------------- next part -------------- An HTML attachment was scrubbed... URL: From 36rahu at gmail.com Thu Jul 2 16:03:48 2015 From: 36rahu at gmail.com (Rahul K P) Date: Fri, 3 Jul 2015 01:33:48 +0530 Subject: [IPython-dev] Can't uninstall Ipython. Message-ID: I tried to uninstall IPython but it's still working. And it's showing in software center too. # pip uninstall ipython # sudo apt-get remove --auto-remove ipython-notebook # sudo apt-get remove ipython All these commands are used but it's still working.My OS is Ubuntu 14.04 Please help me to solve this. -- Regards Rahul K P Research Engineer CastaliaLabs Pune +919895980223 -------------- next part -------------- An HTML attachment was scrubbed... URL: From bussonniermatthias at gmail.com Thu Jul 2 16:16:34 2015 From: bussonniermatthias at gmail.com (Matthias Bussonnier) Date: Thu, 2 Jul 2015 13:16:34 -0700 Subject: [IPython-dev] Can't uninstall Ipython. In-Reply-To: References: Message-ID: <89E23044-5E7A-4D55-AD92-1E397D19CD79@gmail.com> > On Jul 2, 2015, at 13:03, Rahul K P <36rahu at gmail.com> wrote: > > I tried to uninstall IPython but it's still working. And it's showing in software center too. > > # pip uninstall ipython > # sudo apt-get remove --auto-remove ipython-notebook > # sudo apt-get remove ipython > > All these commands are used but it's still working.My OS is Ubuntu 14.04 Please help me to solve this. How did you install ? Anaconda ? What does $ which ipython gives ? In[1]: import IPython In[2]: IPython?? and look at which file is IPython module defined ? Try to pip3 uninstall IPython if you have Python3 ? Do you have error messages ? -- M > > -- > Regards > Rahul K P > > Research Engineer > CastaliaLabs > Pune > > +919895980223 > _______________________________________________ > IPython-dev mailing list > IPython-dev at scipy.org > http://mail.scipy.org/mailman/listinfo/ipython-dev -------------- next part -------------- An HTML attachment was scrubbed... URL: From 36rahu at gmail.com Thu Jul 2 16:26:44 2015 From: 36rahu at gmail.com (Rahul K P) Date: Fri, 3 Jul 2015 01:56:44 +0530 Subject: [IPython-dev] Can't uninstall Ipython. In-Reply-To: <89E23044-5E7A-4D55-AD92-1E397D19CD79@gmail.com> References: <89E23044-5E7A-4D55-AD92-1E397D19CD79@gmail.com> Message-ID: On Fri, Jul 3, 2015 at 1:46 AM, Matthias Bussonnier < bussonniermatthias at gmail.com> wrote: > > On Jul 2, 2015, at 13:03, Rahul K P <36rahu at gmail.com> wrote: > > I tried to uninstall IPython but it's still working. And it's showing in > software center too. > > # pip uninstall ipython > # sudo apt-get remove --auto-remove ipython-notebook > # sudo apt-get remove ipython > > All these commands are used but it's still working.My OS is Ubuntu 14.04 > Please help me to solve this. > > > How did you install ? Anaconda ? > Downloaded Ipython package and install. $ python setup.py install > > What does $ which ipython gives ? > /usr/local/bin/ipython > > > In[1]: import IPython > In[2]: IPython?? > > and look at which file is IPython module defined ? > No idea how to check. > > Try to pip3 uninstall IPython if you have Python3 ? > I have Python 2.7 > > Do you have error messages ? > All uninstall command running successfully. And when i again type $ ipython on command prompt. I will get the Ipython Command promp. > > -- > M > > > > -- > Regards > Rahul K P > > Research Engineer > CastaliaLabs > Pune > > +919895980223 > _______________________________________________ > IPython-dev mailing list > IPython-dev at scipy.org > http://mail.scipy.org/mailman/listinfo/ipython-dev > > > > _______________________________________________ > IPython-dev mailing list > IPython-dev at scipy.org > http://mail.scipy.org/mailman/listinfo/ipython-dev > > -- Regards Rahul K P Research Engineer CastaliaLabs Pune +919895980223 -------------- next part -------------- An HTML attachment was scrubbed... URL: From bussonniermatthias at gmail.com Thu Jul 2 16:35:06 2015 From: bussonniermatthias at gmail.com (Matthias Bussonnier) Date: Thu, 2 Jul 2015 13:35:06 -0700 Subject: [IPython-dev] Can't uninstall Ipython. In-Reply-To: References: <89E23044-5E7A-4D55-AD92-1E397D19CD79@gmail.com> Message-ID: > Downloaded Ipython package and install. $ python setup.py install I think you might have to remove by hand. Pip is often not able to remove what he did not install. Why did you installed manually ? > > What does $ which ipython gives ? > > /usr/local/bin/ipython > > > > In[1]: import IPython > In[2]: IPython?? > > and look at which file is IPython module defined ? > > No idea how to check. $ ipython In [1]: import IPython In [2]: IPython?? Type: module String form: File: ~/dev/ipython/IPython/__init__.py ... Tell me where IPython files are. You can probably just nuke them with `rm -rf` as well as `/usr/local/bin/ipython` and other `/usr/local/bin/ipcluster` and ip something related files. -- M -------------- next part -------------- An HTML attachment was scrubbed... URL: From wstein at gmail.com Thu Jul 2 20:16:57 2015 From: wstein at gmail.com (William Stein) Date: Thu, 2 Jul 2015 17:16:57 -0700 Subject: [IPython-dev] rant: "%matplotlib inline" Message-ID: Hi, I just want to register my frustration that by far the most common support request I get about IPython use in SageMathCloud is the following: "To display the plot, I'm tried to pl.show(), and also pl.savefig('test.png') as suggested by some answers online, but neither did the job. What is the correct command?" The answer is "%matplotlib inline", and there is a stackoverflow question here about it: http://stackoverflow.com/questions/19410042/how-to-make-ipython-notebook-inline-matplotlib-graphics I'm aware that disallowing the `--pylab inline` option when starting ipython on the command line was a choice that you made on purpose. No response required -- I'm just being a humble tech support person watching out for users :-) From bussonniermatthias at gmail.com Thu Jul 2 20:30:38 2015 From: bussonniermatthias at gmail.com (Matthias Bussonnier) Date: Thu, 2 Jul 2015 17:30:38 -0700 Subject: [IPython-dev] rant: "%matplotlib inline" In-Reply-To: References: Message-ID: <30425CFA-6765-4CE5-92A2-2C842568722F@gmail.com> Hi William, Thanks for your feedback. > On Jul 2, 2015, at 17:16, William Stein wrote: > > > Hi, > > I just want to register my frustration that by far the most common > support request I get about IPython use in SageMathCloud is the > following: "To display the plot, I'm tried to pl.show(), and also > pl.savefig('test.png') as suggested by some answers online, but > neither did the job. What is the correct command?" > > The answer is "%matplotlib inline", and there is a stackoverflow > question here about it: > > http://stackoverflow.com/questions/19410042/how-to-make-ipython-notebook-inline-matplotlib-graphics > > I'm aware that disallowing the `--pylab inline` option when starting > ipython on the command line was a choice that you made on purpose. I just want to say that --pylab is deprecated, but --matplotlib still work. the only difference is that --matplotlib will just not do all the imports. The reason why $ipython notebook --pylab inline , or even $iptyhon notebook --matplotlib inline do not work [as expected] is that that these are kernel flags that are passed to the server. It didn?t make sens to pass them to the kernel as for that we needed to know what flag the kernel can receive. It special case before, but making ruby kernel crashing, or wondering why some flag would be passed, and some other not. So you **can** enable inline by default, you just need to set the default in a config file: IPKernelApp.matplotlib= Default: None Choices: ['auto', 'gtk', 'gtk3', 'inline', 'nbagg', 'notebook', 'osx', 'qt', 'qt4', 'qt5', 'tk', 'wx'] Configure matplotlib for interactive use with the default matplotlib backend. We did consider, and are still considering making inline the default, it just break some abstraction that the kernels need to know they are started from a notebook. Hope this will make you life (a bit) easier. You can also modify the kernel spec to add a --matplotlib inline to the argv it should work. > No response required -- I'm just being a humble tech support person > watching out for users :-) > > -- M From fperez.net at gmail.com Thu Jul 2 20:33:01 2015 From: fperez.net at gmail.com (Fernando Perez) Date: Thu, 2 Jul 2015 17:33:01 -0700 Subject: [IPython-dev] rant: "%matplotlib inline" In-Reply-To: References: Message-ID: Rant welcome! :) Since you actually control the deployment environment, you can make decisions for your users that are different from those we make in the default definition of IPython itself. For example, you can configure the system-wide installation to run `%matplotlib inline` on startup, always. That would obviously preload matplotlib for everyone, but in your case, that may be OK: you know that numpy/mpl *are* installed, and that they run OK, so it's fine to try and preload them for your users. Or, slightly cleaner: you could install a little import hook that detects the "import matplotlib" statement, and triggers the inline call at that point. That would be 100% transparent for your users. It's not something that we can do because it breaks when not imported from a notebook (aka the IPython terminal with local floating windows). But in your case, you know your users are only accessing it via notebooks, so you can make that decision for them. Hopefully this gives you some options... Cheers, f On Thu, Jul 2, 2015 at 5:16 PM, William Stein wrote: > > Hi, > > I just want to register my frustration that by far the most common > support request I get about IPython use in SageMathCloud is the > following: "To display the plot, I'm tried to pl.show(), and also > pl.savefig('test.png') as suggested by some answers online, but > neither did the job. What is the correct command?" > > The answer is "%matplotlib inline", and there is a stackoverflow > question here about it: > > > http://stackoverflow.com/questions/19410042/how-to-make-ipython-notebook-inline-matplotlib-graphics > > I'm aware that disallowing the `--pylab inline` option when starting > ipython on the command line was a choice that you made on purpose. > > No response required -- I'm just being a humble tech support person > watching out for users :-) > > > _______________________________________________ > IPython-dev mailing list > IPython-dev at scipy.org > http://mail.scipy.org/mailman/listinfo/ipython-dev > -- 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 benjaminrk at gmail.com Thu Jul 2 20:33:46 2015 From: benjaminrk at gmail.com (MinRK) Date: Thu, 2 Jul 2015 17:33:46 -0700 Subject: [IPython-dev] rant: "%matplotlib inline" In-Reply-To: References: Message-ID: We get this report plenty, too. The idea seems to be that we should use an importhook to make inline the default backend with IPython is running. There seems to be a question of whether such a hook should be in matplotlib or IPython, and each time we start the conversation, it wanders off to other topics before we resolve it well enough for a PR. Hopefully we can decide on an implementation next week at SciPy, and ship it. I have a sample import hook that does exactly this in my startup files. I?m not 100% certain it?s the right thing to do, but I would be happy to see something like this in either IPython or matplotlib. -MinRK ? On Thu, Jul 2, 2015 at 5:16 PM, William Stein wrote: > > Hi, > > I just want to register my frustration that by far the most common > support request I get about IPython use in SageMathCloud is the > following: "To display the plot, I'm tried to pl.show(), and also > pl.savefig('test.png') as suggested by some answers online, but > neither did the job. What is the correct command?" > > The answer is "%matplotlib inline", and there is a stackoverflow > question here about it: > > > http://stackoverflow.com/questions/19410042/how-to-make-ipython-notebook-inline-matplotlib-graphics > > I'm aware that disallowing the `--pylab inline` option when starting > ipython on the command line was a choice that you made on purpose. > > No response required -- I'm just being a humble tech support person > watching out for users :-) > > > _______________________________________________ > IPython-dev mailing list > IPython-dev at scipy.org > http://mail.scipy.org/mailman/listinfo/ipython-dev > -------------- next part -------------- An HTML attachment was scrubbed... URL: From benjaminrk at gmail.com Thu Jul 2 20:35:59 2015 From: benjaminrk at gmail.com (MinRK) Date: Thu, 2 Jul 2015 17:35:59 -0700 Subject: [IPython-dev] rant: "%matplotlib inline" In-Reply-To: References: Message-ID: I also enjoy that the three of us are all sitting next to each other, writing separate responses to the same email. I think it's Thomas' turn, now. -MinRK On Thu, Jul 2, 2015 at 5:33 PM, MinRK wrote: > We get this report plenty, too. The idea seems to be that we should use an > importhook to make inline the default backend with IPython is running. > There seems to be a question of whether such a hook should be in matplotlib > or IPython, and each time we start the conversation, it wanders off to > other topics before we resolve it well enough for a PR. Hopefully we can > decide on an implementation next week at SciPy, and ship it. > > I have a sample import hook > > that does exactly this in my startup files. I?m not 100% certain it?s the > right thing to do, but I would be happy to see something like this in > either IPython or matplotlib. > > -MinRK > ? > > On Thu, Jul 2, 2015 at 5:16 PM, William Stein wrote: > >> >> Hi, >> >> I just want to register my frustration that by far the most common >> support request I get about IPython use in SageMathCloud is the >> following: "To display the plot, I'm tried to pl.show(), and also >> pl.savefig('test.png') as suggested by some answers online, but >> neither did the job. What is the correct command?" >> >> The answer is "%matplotlib inline", and there is a stackoverflow >> question here about it: >> >> >> http://stackoverflow.com/questions/19410042/how-to-make-ipython-notebook-inline-matplotlib-graphics >> >> I'm aware that disallowing the `--pylab inline` option when starting >> ipython on the command line was a choice that you made on purpose. >> >> No response required -- I'm just being a humble tech support person >> watching out for users :-) >> >> >> _______________________________________________ >> IPython-dev mailing list >> IPython-dev at scipy.org >> http://mail.scipy.org/mailman/listinfo/ipython-dev >> > > -------------- next part -------------- An HTML attachment was scrubbed... URL: From rgbkrk at gmail.com Thu Jul 2 20:40:03 2015 From: rgbkrk at gmail.com (Kyle Kelley) Date: Thu, 2 Jul 2015 19:40:03 -0500 Subject: [IPython-dev] rant: "%matplotlib inline" In-Reply-To: References: Message-ID: >From afar, I'll also respond by just quoting Min: > "There seems to be a question of whether such a hook should be in matplotlib or IPython, and each time we start the conversation, it wanders off to other topics before we resolve it well enough for a PR." Just about every time. Related issue for it: https://github.com/ipython/ipython/issues/6424 On Thu, Jul 2, 2015 at 7:35 PM, MinRK wrote: > I also enjoy that the three of us are all sitting next to each other, > writing separate responses to the same email. I think it's Thomas' turn, > now. > > -MinRK > > On Thu, Jul 2, 2015 at 5:33 PM, MinRK wrote: > >> We get this report plenty, too. The idea seems to be that we should use >> an importhook to make inline the default backend with IPython is running. >> There seems to be a question of whether such a hook should be in matplotlib >> or IPython, and each time we start the conversation, it wanders off to >> other topics before we resolve it well enough for a PR. Hopefully we can >> decide on an implementation next week at SciPy, and ship it. >> >> I have a sample import hook >> >> that does exactly this in my startup files. I?m not 100% certain it?s the >> right thing to do, but I would be happy to see something like this in >> either IPython or matplotlib. >> >> -MinRK >> ? >> >> On Thu, Jul 2, 2015 at 5:16 PM, William Stein wrote: >> >>> >>> Hi, >>> >>> I just want to register my frustration that by far the most common >>> support request I get about IPython use in SageMathCloud is the >>> following: "To display the plot, I'm tried to pl.show(), and also >>> pl.savefig('test.png') as suggested by some answers online, but >>> neither did the job. What is the correct command?" >>> >>> The answer is "%matplotlib inline", and there is a stackoverflow >>> question here about it: >>> >>> >>> http://stackoverflow.com/questions/19410042/how-to-make-ipython-notebook-inline-matplotlib-graphics >>> >>> I'm aware that disallowing the `--pylab inline` option when starting >>> ipython on the command line was a choice that you made on purpose. >>> >>> No response required -- I'm just being a humble tech support person >>> watching out for users :-) >>> >>> >>> _______________________________________________ >>> IPython-dev mailing list >>> IPython-dev at scipy.org >>> http://mail.scipy.org/mailman/listinfo/ipython-dev >>> >> >> > > _______________________________________________ > IPython-dev mailing list > IPython-dev at scipy.org > http://mail.scipy.org/mailman/listinfo/ipython-dev > > -- Kyle Kelley (@rgbkrk ; lambdaops.com, developer.rackspace.com) -------------- next part -------------- An HTML attachment was scrubbed... URL: From wstein at gmail.com Thu Jul 2 21:08:05 2015 From: wstein at gmail.com (William Stein) Date: Thu, 2 Jul 2015 18:08:05 -0700 Subject: [IPython-dev] rant: "%matplotlib inline" In-Reply-To: References: Message-ID: Thanks! (I've recorded this here for the record https://github.com/sagemathinc/smc/issues/37 On Thu, Jul 2, 2015 at 5:40 PM, Kyle Kelley wrote: > From afar, I'll also respond by just quoting Min: > >> "There seems to be a question of whether such a hook should be in >> matplotlib or IPython, and each time we start the conversation, it wanders >> off to other topics before we resolve it well enough for a PR." > > Just about every time. > > Related issue for it: https://github.com/ipython/ipython/issues/6424 > > > > On Thu, Jul 2, 2015 at 7:35 PM, MinRK wrote: >> >> I also enjoy that the three of us are all sitting next to each other, >> writing separate responses to the same email. I think it's Thomas' turn, >> now. >> >> -MinRK >> >> On Thu, Jul 2, 2015 at 5:33 PM, MinRK wrote: >>> >>> We get this report plenty, too. The idea seems to be that we should use >>> an importhook to make inline the default backend with IPython is running. >>> There seems to be a question of whether such a hook should be in matplotlib >>> or IPython, and each time we start the conversation, it wanders off to other >>> topics before we resolve it well enough for a PR. Hopefully we can decide on >>> an implementation next week at SciPy, and ship it. >>> >>> I have a sample import hook that does exactly this in my startup files. >>> I?m not 100% certain it?s the right thing to do, but I would be happy to see >>> something like this in either IPython or matplotlib. >>> >>> -MinRK >>> >>> >>> On Thu, Jul 2, 2015 at 5:16 PM, William Stein wrote: >>>> >>>> >>>> Hi, >>>> >>>> I just want to register my frustration that by far the most common >>>> support request I get about IPython use in SageMathCloud is the >>>> following: "To display the plot, I'm tried to pl.show(), and also >>>> pl.savefig('test.png') as suggested by some answers online, but >>>> neither did the job. What is the correct command?" >>>> >>>> The answer is "%matplotlib inline", and there is a stackoverflow >>>> question here about it: >>>> >>>> >>>> http://stackoverflow.com/questions/19410042/how-to-make-ipython-notebook-inline-matplotlib-graphics >>>> >>>> I'm aware that disallowing the `--pylab inline` option when starting >>>> ipython on the command line was a choice that you made on purpose. >>>> >>>> No response required -- I'm just being a humble tech support person >>>> watching out for users :-) >>>> >>>> >>>> _______________________________________________ >>>> IPython-dev mailing list >>>> IPython-dev at scipy.org >>>> http://mail.scipy.org/mailman/listinfo/ipython-dev >>> >>> >> >> >> _______________________________________________ >> IPython-dev mailing list >> IPython-dev at scipy.org >> http://mail.scipy.org/mailman/listinfo/ipython-dev >> > > > > -- > Kyle Kelley (@rgbkrk; lambdaops.com, developer.rackspace.com) > > _______________________________________________ > IPython-dev mailing list > IPython-dev at scipy.org > http://mail.scipy.org/mailman/listinfo/ipython-dev > -- William (http://wstein.org) From wes.turner at gmail.com Thu Jul 2 21:14:46 2015 From: wes.turner at gmail.com (Wes Turner) Date: Thu, 2 Jul 2015 20:14:46 -0500 Subject: [IPython-dev] rant: "%matplotlib inline" In-Reply-To: References: Message-ID: It's probably the wrong place to parametrize, but would it be possible to just sbclass the CPython 2/3 kernels? e.g. CPython 2 (matplotlib), CPython3 Or would that encourage more incompatible notebooks (without kernelspecs)? On Thu, Jul 2, 2015 at 8:08 PM, William Stein wrote: > Thanks! > > (I've recorded this here for the record > > https://github.com/sagemathinc/smc/issues/37 > > On Thu, Jul 2, 2015 at 5:40 PM, Kyle Kelley wrote: > > From afar, I'll also respond by just quoting Min: > > > >> "There seems to be a question of whether such a hook should be in > >> matplotlib or IPython, and each time we start the conversation, it > wanders > >> off to other topics before we resolve it well enough for a PR." > > > > Just about every time. > > > > Related issue for it: https://github.com/ipython/ipython/issues/6424 > > > > > > > > On Thu, Jul 2, 2015 at 7:35 PM, MinRK wrote: > >> > >> I also enjoy that the three of us are all sitting next to each other, > >> writing separate responses to the same email. I think it's Thomas' turn, > >> now. > >> > >> -MinRK > >> > >> On Thu, Jul 2, 2015 at 5:33 PM, MinRK wrote: > >>> > >>> We get this report plenty, too. The idea seems to be that we should use > >>> an importhook to make inline the default backend with IPython is > running. > >>> There seems to be a question of whether such a hook should be in > matplotlib > >>> or IPython, and each time we start the conversation, it wanders off to > other > >>> topics before we resolve it well enough for a PR. Hopefully we can > decide on > >>> an implementation next week at SciPy, and ship it. > >>> > >>> I have a sample import hook that does exactly this in my startup files. > >>> I?m not 100% certain it?s the right thing to do, but I would be happy > to see > >>> something like this in either IPython or matplotlib. > >>> > >>> -MinRK > >>> > >>> > >>> On Thu, Jul 2, 2015 at 5:16 PM, William Stein > wrote: > >>>> > >>>> > >>>> Hi, > >>>> > >>>> I just want to register my frustration that by far the most common > >>>> support request I get about IPython use in SageMathCloud is the > >>>> following: "To display the plot, I'm tried to pl.show(), and also > >>>> pl.savefig('test.png') as suggested by some answers online, but > >>>> neither did the job. What is the correct command?" > >>>> > >>>> The answer is "%matplotlib inline", and there is a stackoverflow > >>>> question here about it: > >>>> > >>>> > >>>> > http://stackoverflow.com/questions/19410042/how-to-make-ipython-notebook-inline-matplotlib-graphics > >>>> > >>>> I'm aware that disallowing the `--pylab inline` option when starting > >>>> ipython on the command line was a choice that you made on purpose. > >>>> > >>>> No response required -- I'm just being a humble tech support person > >>>> watching out for users :-) > >>>> > >>>> > >>>> _______________________________________________ > >>>> IPython-dev mailing list > >>>> IPython-dev at scipy.org > >>>> http://mail.scipy.org/mailman/listinfo/ipython-dev > >>> > >>> > >> > >> > >> _______________________________________________ > >> IPython-dev mailing list > >> IPython-dev at scipy.org > >> http://mail.scipy.org/mailman/listinfo/ipython-dev > >> > > > > > > > > -- > > Kyle Kelley (@rgbkrk; lambdaops.com, developer.rackspace.com) > > > > _______________________________________________ > > IPython-dev mailing list > > IPython-dev at scipy.org > > http://mail.scipy.org/mailman/listinfo/ipython-dev > > > > > > -- > William (http://wstein.org) > _______________________________________________ > IPython-dev mailing list > IPython-dev at scipy.org > http://mail.scipy.org/mailman/listinfo/ipython-dev > -------------- next part -------------- An HTML attachment was scrubbed... URL: From wes.turner at gmail.com Thu Jul 2 21:16:03 2015 From: wes.turner at gmail.com (Wes Turner) Date: Thu, 2 Jul 2015 20:16:03 -0500 Subject: [IPython-dev] rant: "%matplotlib inline" In-Reply-To: References: Message-ID: On Thu, Jul 2, 2015 at 8:14 PM, Wes Turner wrote: > It's probably the wrong place to parametrize, > but would it be possible to just sbclass the > CPython 2/3 kernels? > > e.g. CPython 2 (matplotlib), CPython3 > > Or would that encourage more incompatible notebooks > (without kernelspecs)? > ... docs: * https://github.com/ipython/ipython/wiki/IPython%20kernels%20for%20other%20languages#creating-new-ipython-kernels * http://ipython.org/ipython-doc/dev/development/kernels.html > > On Thu, Jul 2, 2015 at 8:08 PM, William Stein wrote: > >> Thanks! >> >> (I've recorded this here for the record >> >> https://github.com/sagemathinc/smc/issues/37 >> >> On Thu, Jul 2, 2015 at 5:40 PM, Kyle Kelley wrote: >> > From afar, I'll also respond by just quoting Min: >> > >> >> "There seems to be a question of whether such a hook should be in >> >> matplotlib or IPython, and each time we start the conversation, it >> wanders >> >> off to other topics before we resolve it well enough for a PR." >> > >> > Just about every time. >> > >> > Related issue for it: https://github.com/ipython/ipython/issues/6424 >> > >> > >> > >> > On Thu, Jul 2, 2015 at 7:35 PM, MinRK wrote: >> >> >> >> I also enjoy that the three of us are all sitting next to each other, >> >> writing separate responses to the same email. I think it's Thomas' >> turn, >> >> now. >> >> >> >> -MinRK >> >> >> >> On Thu, Jul 2, 2015 at 5:33 PM, MinRK wrote: >> >>> >> >>> We get this report plenty, too. The idea seems to be that we should >> use >> >>> an importhook to make inline the default backend with IPython is >> running. >> >>> There seems to be a question of whether such a hook should be in >> matplotlib >> >>> or IPython, and each time we start the conversation, it wanders off >> to other >> >>> topics before we resolve it well enough for a PR. Hopefully we can >> decide on >> >>> an implementation next week at SciPy, and ship it. >> >>> >> >>> I have a sample import hook that does exactly this in my startup >> files. >> >>> I?m not 100% certain it?s the right thing to do, but I would be happy >> to see >> >>> something like this in either IPython or matplotlib. >> >>> >> >>> -MinRK >> >>> >> >>> >> >>> On Thu, Jul 2, 2015 at 5:16 PM, William Stein >> wrote: >> >>>> >> >>>> >> >>>> Hi, >> >>>> >> >>>> I just want to register my frustration that by far the most common >> >>>> support request I get about IPython use in SageMathCloud is the >> >>>> following: "To display the plot, I'm tried to pl.show(), and also >> >>>> pl.savefig('test.png') as suggested by some answers online, but >> >>>> neither did the job. What is the correct command?" >> >>>> >> >>>> The answer is "%matplotlib inline", and there is a stackoverflow >> >>>> question here about it: >> >>>> >> >>>> >> >>>> >> http://stackoverflow.com/questions/19410042/how-to-make-ipython-notebook-inline-matplotlib-graphics >> >>>> >> >>>> I'm aware that disallowing the `--pylab inline` option when starting >> >>>> ipython on the command line was a choice that you made on purpose. >> >>>> >> >>>> No response required -- I'm just being a humble tech support person >> >>>> watching out for users :-) >> >>>> >> >>>> >> >>>> _______________________________________________ >> >>>> IPython-dev mailing list >> >>>> IPython-dev at scipy.org >> >>>> http://mail.scipy.org/mailman/listinfo/ipython-dev >> >>> >> >>> >> >> >> >> >> >> _______________________________________________ >> >> IPython-dev mailing list >> >> IPython-dev at scipy.org >> >> http://mail.scipy.org/mailman/listinfo/ipython-dev >> >> >> > >> > >> > >> > -- >> > Kyle Kelley (@rgbkrk; lambdaops.com, developer.rackspace.com) >> > >> > _______________________________________________ >> > IPython-dev mailing list >> > IPython-dev at scipy.org >> > http://mail.scipy.org/mailman/listinfo/ipython-dev >> > >> >> >> >> -- >> William (http://wstein.org) >> _______________________________________________ >> IPython-dev mailing list >> IPython-dev at scipy.org >> http://mail.scipy.org/mailman/listinfo/ipython-dev >> > > -------------- next part -------------- An HTML attachment was scrubbed... URL: From 36rahu at gmail.com Fri Jul 3 01:34:52 2015 From: 36rahu at gmail.com (Rahul K P) Date: Fri, 3 Jul 2015 11:04:52 +0530 Subject: [IPython-dev] Can't uninstall Ipython. In-Reply-To: References: <89E23044-5E7A-4D55-AD92-1E397D19CD79@gmail.com> Message-ID: When it's removed it's worked. Thank you Matthias Bussonnier. On Fri, Jul 3, 2015 at 2:05 AM, Matthias Bussonnier < bussonniermatthias at gmail.com> wrote: > > Downloaded Ipython package and install. $ python setup.py install > > > I think you might have to remove by hand. Pip is often not able to remove > what he did not install. > Why did you installed manually ? > > > >> What does $ which ipython gives ? >> > > /usr/local/bin/ipython > > >> >> >> In[1]: import IPython >> In[2]: IPython?? >> >> and look at which file is IPython module defined ? >> > > No idea how to check. > > > $ ipython > In [1]: import IPython > > In [2]: IPython?? > > Type: module > String form: '/Users/bussonniermatthias/dev/ipython/IPython/__init__.py'> > File: ~/dev/ipython/IPython/__init__.py > ... > > Tell me where IPython files are. > You can probably just nuke them with `rm -rf` as well as > `/usr/local/bin/ipython` and other `/usr/local/bin/ipcluster` and ip > something related files. > > -- > M > > > > > _______________________________________________ > IPython-dev mailing list > IPython-dev at scipy.org > http://mail.scipy.org/mailman/listinfo/ipython-dev > > -- Regards Rahul K P Research Engineer CastaliaLabs Pune +919895980223 -------------- next part -------------- An HTML attachment was scrubbed... URL: From bussonniermatthias at gmail.com Fri Jul 3 09:42:58 2015 From: bussonniermatthias at gmail.com (Matthias Bussonnier) Date: Fri, 3 Jul 2015 06:42:58 -0700 Subject: [IPython-dev] rant: "%matplotlib inline" In-Reply-To: References: Message-ID: <90ECA059-7E85-4E4E-99E2-78A3ACB7181E@gmail.com> > On Jul 2, 2015, at 18:16, Wes Turner wrote: > > > It's probably the wrong place to parametrize, > but would it be possible to just sbclass the > CPython 2/3 kernels? > > e.g. CPython 2 (matplotlib), CPython3 > > Or would that encourage more incompatible notebooks > (without kernelspecs)? > > ... docs: > > * https://github.com/ipython/ipython/wiki/IPython%20kernels%20for%20other%20languages#creating-new-ipython-kernels > * http://ipython.org/ipython-doc/dev/development/kernels.html Seems like unrelated proposal that don?t make sens, misunderstanding of architecture, as well as not relevant docs. -- M -------------- next part -------------- An HTML attachment was scrubbed... URL: From bblais at gmail.com Fri Jul 3 13:32:25 2015 From: bblais at gmail.com (Brian Blais) Date: Fri, 3 Jul 2015 13:32:25 -0400 Subject: [IPython-dev] rant: "%matplotlib inline" In-Reply-To: <30425CFA-6765-4CE5-92A2-2C842568722F@gmail.com> References: <30425CFA-6765-4CE5-92A2-2C842568722F@gmail.com> Message-ID: I'll continue the rant, and perhaps add a bit of a suggestion. I come at this from an instructor of scientific methods, usually with students with no programming or command line experience - typically windows. The arcane syntax (from a beginner's perspective) of %matplotlib inline seems to just add confusion - even while I understand the motivation. In the past, it was easy enough to slap the command line option in the shortcut once and be done with it. asking the students to manually edit the IPython config files is a bit much for them, and in windows who knows where it is. One possible solution, which may work to solve this is to have a (double-clickable) app to set some of the standard defaults, modifying the config files programmatically. that way, there is one easy set up step after install and the problem is solved without resorting to command-line arguments, manually editing the config files, or manually importing the library in each and every notebook. thanks, Brian Blais On Thu, Jul 2, 2015 at 8:30 PM, Matthias Bussonnier wrote: > Hi William, > > Thanks for your feedback. > >> On Jul 2, 2015, at 17:16, William Stein wrote: >> >> >> Hi, >> >> I just want to register my frustration that by far the most common >> support request I get about IPython use in SageMathCloud is the >> following: "To display the plot, I'm tried to pl.show(), and also >> pl.savefig('test.png') as suggested by some answers online, but >> neither did the job. What is the correct command?" >> >> The answer is "%matplotlib inline", and there is a stackoverflow >> question here about it: >> >> http://stackoverflow.com/questions/19410042/how-to-make-ipython-notebook-inline-matplotlib-graphics >> >> I'm aware that disallowing the `--pylab inline` option when starting >> ipython on the command line was a choice that you made on purpose. > > I just want to say that --pylab is deprecated, but --matplotlib still work. > the only difference is that --matplotlib will just not do all the imports. > > The reason why $ipython notebook --pylab inline , or even $iptyhon notebook --matplotlib inline > do not work [as expected] is that that these are kernel flags that are passed to the server. It didn?t make sens > to pass them to the kernel as for that we needed to know what flag the kernel can receive. It special case > before, but making ruby kernel crashing, or wondering why some flag would be passed, and some other not. > > So you **can** enable inline by default, you just need to set the default in a config file: > > IPKernelApp.matplotlib= > Default: None > Choices: ['auto', 'gtk', 'gtk3', 'inline', 'nbagg', 'notebook', 'osx', 'qt', 'qt4', 'qt5', 'tk', 'wx'] > Configure matplotlib for interactive use with the default matplotlib > backend. > > We did consider, and are still considering making inline the default, it just break some abstraction > that the kernels need to know they are started from a notebook. > > Hope this will make you life (a bit) easier. You can also modify the kernel spec to add a --matplotlib inline to the argv > it should work. > >> No response required -- I'm just being a humble tech support person >> watching out for users :-) >> >> > > -- > M > > _______________________________________________ > IPython-dev mailing list > IPython-dev at scipy.org > http://mail.scipy.org/mailman/listinfo/ipython-dev -- ----------------- bblais at gmail.com http://web.bryant.edu/~bblais From hughesadam87 at gmail.com Fri Jul 3 13:38:23 2015 From: hughesadam87 at gmail.com (Adam Hughes) Date: Fri, 3 Jul 2015 13:38:23 -0400 Subject: [IPython-dev] rant: "%matplotlib inline" In-Reply-To: References: <30425CFA-6765-4CE5-92A2-2C842568722F@gmail.com> Message-ID: To bike shed, when I teach classes with notebooks, I typically distribute a template notebook that already has a few cells pre-filled. This includes the %matpotlib inline and other matplotlib configurations, as well as some javascript to change the style of the notebooks. Having students use these templated notebooks instead of a blank notebook usually is easier than trying to configure matplotlib and ipython on their machines. On Fri, Jul 3, 2015 at 1:32 PM, Brian Blais wrote: > I'll continue the rant, and perhaps add a bit of a suggestion. I come > at this from an instructor of scientific methods, usually with > students with no programming or command line experience - typically > windows. The arcane syntax (from a beginner's perspective) of > %matplotlib inline seems to just add confusion - even while I > understand the motivation. In the past, it was easy enough to slap > the command line option in the shortcut once and be done with it. > asking the students to manually edit the IPython config files is a bit > much for them, and in windows who knows where it is. > > One possible solution, which may work to solve this is to have a > (double-clickable) app to set some of the standard defaults, modifying > the config files programmatically. that way, there is one easy set up > step after install and the problem is solved without resorting to > command-line arguments, manually editing the config files, or manually > importing the library in each and every notebook. > > thanks, > > Brian Blais > > > On Thu, Jul 2, 2015 at 8:30 PM, Matthias Bussonnier > wrote: > > Hi William, > > > > Thanks for your feedback. > > > >> On Jul 2, 2015, at 17:16, William Stein wrote: > >> > >> > >> Hi, > >> > >> I just want to register my frustration that by far the most common > >> support request I get about IPython use in SageMathCloud is the > >> following: "To display the plot, I'm tried to pl.show(), and also > >> pl.savefig('test.png') as suggested by some answers online, but > >> neither did the job. What is the correct command?" > >> > >> The answer is "%matplotlib inline", and there is a stackoverflow > >> question here about it: > >> > >> > http://stackoverflow.com/questions/19410042/how-to-make-ipython-notebook-inline-matplotlib-graphics > >> > >> I'm aware that disallowing the `--pylab inline` option when starting > >> ipython on the command line was a choice that you made on purpose. > > > > I just want to say that --pylab is deprecated, but --matplotlib still > work. > > the only difference is that --matplotlib will just not do all the > imports. > > > > The reason why $ipython notebook --pylab inline , or even $iptyhon > notebook --matplotlib inline > > do not work [as expected] is that that these are kernel flags that are > passed to the server. It didn?t make sens > > to pass them to the kernel as for that we needed to know what flag the > kernel can receive. It special case > > before, but making ruby kernel crashing, or wondering why some flag > would be passed, and some other not. > > > > So you **can** enable inline by default, you just need to set the > default in a config file: > > > > IPKernelApp.matplotlib= > > Default: None > > Choices: ['auto', 'gtk', 'gtk3', 'inline', 'nbagg', 'notebook', > 'osx', 'qt', 'qt4', 'qt5', 'tk', 'wx'] > > Configure matplotlib for interactive use with the default matplotlib > > backend. > > > > We did consider, and are still considering making inline the default, it > just break some abstraction > > that the kernels need to know they are started from a notebook. > > > > Hope this will make you life (a bit) easier. You can also modify the > kernel spec to add a --matplotlib inline to the argv > > it should work. > > > >> No response required -- I'm just being a humble tech support person > >> watching out for users :-) > >> > >> > > > > -- > > M > > > > _______________________________________________ > > IPython-dev mailing list > > IPython-dev at scipy.org > > http://mail.scipy.org/mailman/listinfo/ipython-dev > > > > -- > ----------------- > > bblais at gmail.com > http://web.bryant.edu/~bblais > _______________________________________________ > IPython-dev mailing list > IPython-dev at scipy.org > http://mail.scipy.org/mailman/listinfo/ipython-dev > -------------- next part -------------- An HTML attachment was scrubbed... URL: From bussonniermatthias at gmail.com Fri Jul 3 14:25:59 2015 From: bussonniermatthias at gmail.com (Matthias Bussonnier) Date: Fri, 3 Jul 2015 11:25:59 -0700 Subject: [IPython-dev] rant: "%matplotlib inline" In-Reply-To: References: <30425CFA-6765-4CE5-92A2-2C842568722F@gmail.com> Message-ID: Hi Brian, > On Jul 3, 2015, at 10:32, Brian Blais wrote: > > I'll continue the rant, and perhaps add a bit of a suggestion. I come > at this from an instructor of scientific methods, usually with > students with no programming or command line experience - typically > windows. The arcane syntax (from a beginner's perspective) of > %matplotlib inline seems to just add confusion - even while I > understand the motivation. In the past, it was easy enough to slap > the command line option in the shortcut once and be done with it. > asking the students to manually edit the IPython config files is a bit > much for them, and in windows who knows where it is. > > One possible solution, which may work to solve this is to have a > (double-clickable) app to set some of the standard defaults, modifying > the config files programmatically. that way, there is one easy set up > step after install and the problem is solved without resorting to > command-line arguments, manually editing the config files, or manually > importing the library in each and every notebook. Thanks for you feedback. But consider the following fact, you setup this for student, then they share notebook, with someone that use the different config, or even get home, and try on their installation. Then the notebook don?t work, the student get confused, it was working fine at the school. They start asking questions and don?t get clear answer. So basically doing so just push the frustration and incomprehention to the next person that will teach theses student. We did deprecate pylab and the remove the flag because of the high number of incomprehension of people that were taught with a hidden --pylab inline flag somewhere. Also I?m really sure why a %matplotlib inline would be more arcane than python syntax, if they are beginner programmer. -- M > > thanks, > > Brian Blais > > > On Thu, Jul 2, 2015 at 8:30 PM, Matthias Bussonnier > wrote: >> Hi William, >> >> Thanks for your feedback. >> >>> On Jul 2, 2015, at 17:16, William Stein wrote: >>> >>> >>> Hi, >>> >>> I just want to register my frustration that by far the most common >>> support request I get about IPython use in SageMathCloud is the >>> following: "To display the plot, I'm tried to pl.show(), and also >>> pl.savefig('test.png') as suggested by some answers online, but >>> neither did the job. What is the correct command?" >>> >>> The answer is "%matplotlib inline", and there is a stackoverflow >>> question here about it: >>> >>> http://stackoverflow.com/questions/19410042/how-to-make-ipython-notebook-inline-matplotlib-graphics >>> >>> I'm aware that disallowing the `--pylab inline` option when starting >>> ipython on the command line was a choice that you made on purpose. >> >> I just want to say that --pylab is deprecated, but --matplotlib still work. >> the only difference is that --matplotlib will just not do all the imports. >> >> The reason why $ipython notebook --pylab inline , or even $iptyhon notebook --matplotlib inline >> do not work [as expected] is that that these are kernel flags that are passed to the server. It didn?t make sens >> to pass them to the kernel as for that we needed to know what flag the kernel can receive. It special case >> before, but making ruby kernel crashing, or wondering why some flag would be passed, and some other not. >> >> So you **can** enable inline by default, you just need to set the default in a config file: >> >> IPKernelApp.matplotlib= >> Default: None >> Choices: ['auto', 'gtk', 'gtk3', 'inline', 'nbagg', 'notebook', 'osx', 'qt', 'qt4', 'qt5', 'tk', 'wx'] >> Configure matplotlib for interactive use with the default matplotlib >> backend. >> >> We did consider, and are still considering making inline the default, it just break some abstraction >> that the kernels need to know they are started from a notebook. >> >> Hope this will make you life (a bit) easier. You can also modify the kernel spec to add a --matplotlib inline to the argv >> it should work. >> >>> No response required -- I'm just being a humble tech support person >>> watching out for users :-) >>> >>> >> >> -- >> M >> >> _______________________________________________ >> IPython-dev mailing list >> IPython-dev at scipy.org >> http://mail.scipy.org/mailman/listinfo/ipython-dev > > > > -- > ----------------- > > bblais at gmail.com > http://web.bryant.edu/~bblais > _______________________________________________ > IPython-dev mailing list > IPython-dev at scipy.org > http://mail.scipy.org/mailman/listinfo/ipython-dev From ellisonbg at gmail.com Fri Jul 3 21:05:48 2015 From: ellisonbg at gmail.com (Brian Granger) Date: Fri, 3 Jul 2015 18:05:48 -0700 Subject: [IPython-dev] rant: "%matplotlib inline" In-Reply-To: References: <30425CFA-6765-4CE5-92A2-2C842568722F@gmail.com> Message-ID: After teaching lots with the notebook, I fully agree with this. I will try to talk to the mpl devs at SciPy to see what the path forward is. Cheers, Brian On Fri, Jul 3, 2015 at 11:25 AM, Matthias Bussonnier wrote: > Hi Brian, > >> On Jul 3, 2015, at 10:32, Brian Blais wrote: >> >> I'll continue the rant, and perhaps add a bit of a suggestion. I come >> at this from an instructor of scientific methods, usually with >> students with no programming or command line experience - typically >> windows. The arcane syntax (from a beginner's perspective) of >> %matplotlib inline seems to just add confusion - even while I >> understand the motivation. In the past, it was easy enough to slap >> the command line option in the shortcut once and be done with it. >> asking the students to manually edit the IPython config files is a bit >> much for them, and in windows who knows where it is. >> >> One possible solution, which may work to solve this is to have a >> (double-clickable) app to set some of the standard defaults, modifying >> the config files programmatically. that way, there is one easy set up >> step after install and the problem is solved without resorting to >> command-line arguments, manually editing the config files, or manually >> importing the library in each and every notebook. > > > Thanks for you feedback. > > But consider the following fact, you setup this for student, then they share notebook, with > someone that use the different config, or even get home, and try on their installation. > > Then the notebook don?t work, the student get confused, it was working fine at the school. > They start asking questions and don?t get clear answer. > > So basically doing so just push the frustration and incomprehention to the next person that > will teach theses student. > > We did deprecate pylab and the remove the flag because of the high number > of incomprehension of people that were taught with a hidden --pylab inline > flag somewhere. > > Also I?m really sure why a %matplotlib inline would be more arcane than > python syntax, if they are beginner programmer. > > -- > M > >> >> thanks, >> >> Brian Blais >> >> >> On Thu, Jul 2, 2015 at 8:30 PM, Matthias Bussonnier >> wrote: >>> Hi William, >>> >>> Thanks for your feedback. >>> >>>> On Jul 2, 2015, at 17:16, William Stein wrote: >>>> >>>> >>>> Hi, >>>> >>>> I just want to register my frustration that by far the most common >>>> support request I get about IPython use in SageMathCloud is the >>>> following: "To display the plot, I'm tried to pl.show(), and also >>>> pl.savefig('test.png') as suggested by some answers online, but >>>> neither did the job. What is the correct command?" >>>> >>>> The answer is "%matplotlib inline", and there is a stackoverflow >>>> question here about it: >>>> >>>> http://stackoverflow.com/questions/19410042/how-to-make-ipython-notebook-inline-matplotlib-graphics >>>> >>>> I'm aware that disallowing the `--pylab inline` option when starting >>>> ipython on the command line was a choice that you made on purpose. >>> >>> I just want to say that --pylab is deprecated, but --matplotlib still work. >>> the only difference is that --matplotlib will just not do all the imports. >>> >>> The reason why $ipython notebook --pylab inline , or even $iptyhon notebook --matplotlib inline >>> do not work [as expected] is that that these are kernel flags that are passed to the server. It didn?t make sens >>> to pass them to the kernel as for that we needed to know what flag the kernel can receive. It special case >>> before, but making ruby kernel crashing, or wondering why some flag would be passed, and some other not. >>> >>> So you **can** enable inline by default, you just need to set the default in a config file: >>> >>> IPKernelApp.matplotlib= >>> Default: None >>> Choices: ['auto', 'gtk', 'gtk3', 'inline', 'nbagg', 'notebook', 'osx', 'qt', 'qt4', 'qt5', 'tk', 'wx'] >>> Configure matplotlib for interactive use with the default matplotlib >>> backend. >>> >>> We did consider, and are still considering making inline the default, it just break some abstraction >>> that the kernels need to know they are started from a notebook. >>> >>> Hope this will make you life (a bit) easier. You can also modify the kernel spec to add a --matplotlib inline to the argv >>> it should work. >>> >>>> No response required -- I'm just being a humble tech support person >>>> watching out for users :-) >>>> >>>> >>> >>> -- >>> M >>> >>> _______________________________________________ >>> IPython-dev mailing list >>> IPython-dev at scipy.org >>> http://mail.scipy.org/mailman/listinfo/ipython-dev >> >> >> >> -- >> ----------------- >> >> bblais at gmail.com >> http://web.bryant.edu/~bblais >> _______________________________________________ >> IPython-dev mailing list >> IPython-dev at scipy.org >> http://mail.scipy.org/mailman/listinfo/ipython-dev > > _______________________________________________ > IPython-dev mailing list > IPython-dev at scipy.org > http://mail.scipy.org/mailman/listinfo/ipython-dev -- Brian E. Granger Cal Poly State University, San Luis Obispo @ellisonbg on Twitter and GitHub bgranger at calpoly.edu and ellisonbg at gmail.com From alan.isaac at gmail.com Fri Jul 3 21:37:42 2015 From: alan.isaac at gmail.com (Alan G Isaac) Date: Fri, 3 Jul 2015 21:37:42 -0400 Subject: [IPython-dev] rant: "%matplotlib inline" In-Reply-To: References: Message-ID: <559738E6.1060104@gmail.com> I just want to make sure that I understand this. Is the claim that having to remember to enter %matplotlib inline is too confusing for students who need to show matplotlib figures inline in their notebook. Is that the claim? I ask because I teach some economics courses with IPython notebooks, and my students typically have had little or no previous Python exposure. I have never had a complaint about this. (Additionally, I find they syntax nice and explicit.) I do sometimes email students the contents of a notebook configuration cell, which they can then copy and paste to get started. But not always. In the end, I find myself doubting this really presents a serious issue for teaching. fwiw, Alan Isaac From bblais at gmail.com Fri Jul 3 22:21:33 2015 From: bblais at gmail.com (Brian Blais) Date: Fri, 3 Jul 2015 22:21:33 -0400 Subject: [IPython-dev] rant: "%matplotlib inline" In-Reply-To: <559738E6.1060104@gmail.com> References: <559738E6.1060104@gmail.com> Message-ID: If you compare it to other scientific packages they might get exposed to, say: * Matlab (or octave) * Mathematica * Stata then there is this sense that something like plotting is "just included". I have found, especially for those students who have never written a script for anything before, or had any experience with programming, and have only worked in Excel that every bit of extra syntax is a barrier. Python is a great language precisely because there isn't a lot of extra syntactical clutter. as a programmer, I don't have any issue with %matplotlib inline (except when I forget it, and lose a few seconds wondering what I missed). From a newbie point of view, it is distracting, I find. I'd prefer to have a way to globally (i.e. through the config, perhaps) say "I'm working in science mode here, so make all of the plots inline". I understand the concerns of the development team, and agree with them for the most part. I think much of this is probably a philosophical difference (leading to a practical difference). Is there a way, for example, to programmatically edit the config file easily? That way a simple script could be written to go through some of the more common defaults, to personalize it for a particular case. bb On Fri, Jul 3, 2015 at 9:37 PM, Alan G Isaac wrote: > I just want to make sure that I understand this. > Is the claim that having to remember to enter > %matplotlib inline > is too confusing for students who need to show > matplotlib figures inline in their notebook. > Is that the claim? > > I ask because I teach some economics courses > with IPython notebooks, and my students typically > have had little or no previous Python exposure. > I have never had a complaint about this. > (Additionally, I find they syntax nice and explicit.) > > I do sometimes email students the contents of a > notebook configuration cell, which they can then > copy and paste to get started. But not always. > In the end, I find myself doubting this really > presents a serious issue for teaching. > > fwiw, > Alan Isaac > > _______________________________________________ > IPython-dev mailing list > IPython-dev at scipy.org > http://mail.scipy.org/mailman/listinfo/ipython-dev -- ----------------- bblais at gmail.com http://web.bryant.edu/~bblais From wstein at gmail.com Fri Jul 3 22:54:07 2015 From: wstein at gmail.com (William Stein) Date: Fri, 3 Jul 2015 19:54:07 -0700 Subject: [IPython-dev] rant: "%matplotlib inline" In-Reply-To: References: <559738E6.1060104@gmail.com> Message-ID: Hi, What do you think the "principle of least surprise" would dictate should happen if you install matplotlib, then copy an example from [1] (say) into a new IPython notebook in Python mode? [ ] 1. It works [ ] 2. It silently fails (the current behavior in IPython notebook). I'm guessing: pretty much everybody wants 1, but since the kernel doesn't know if individual commands are coming from a terminal, native UI, web browser, or what, then we have 2. Is the longterm plan to enhance the kernel spec to handle the above situation? Other systems don't have this problem because one can only interact with the kernel from either a terminal or a UI, but not both at once. [1] http://matplotlib.org/examples/pylab_examples/scatter_symbol.html From wes.turner at gmail.com Fri Jul 3 22:57:49 2015 From: wes.turner at gmail.com (Wes Turner) Date: Fri, 3 Jul 2015 21:57:49 -0500 Subject: [IPython-dev] rant: "%matplotlib inline" In-Reply-To: References: <559738E6.1060104@gmail.com> Message-ID: Is there a general best practices guideline for writing compatible Python code (with e.g. explicit or * imports)? On Jul 3, 2015 9:54 PM, "William Stein" wrote: > Hi, > > What do you think the "principle of least surprise" would dictate > should happen if you install matplotlib, then copy an example from [1] > (say) into a new IPython notebook in Python mode? > > [ ] 1. It works > > [ ] 2. It silently fails (the current behavior in IPython notebook). > > I'm guessing: pretty much everybody wants 1, but since the kernel > doesn't know if individual commands are coming from a terminal, native > UI, web browser, or what, then we have 2. Is the longterm plan to > enhance the kernel spec to handle the above situation? > > Other systems don't have this problem because one can only interact > with the kernel from either a terminal or a UI, but not both at once. > > [1] http://matplotlib.org/examples/pylab_examples/scatter_symbol.html > _______________________________________________ > IPython-dev mailing list > IPython-dev at scipy.org > http://mail.scipy.org/mailman/listinfo/ipython-dev > -------------- next part -------------- An HTML attachment was scrubbed... URL: From fperez.net at gmail.com Fri Jul 3 23:30:22 2015 From: fperez.net at gmail.com (Fernando Perez) Date: Fri, 3 Jul 2015 20:30:22 -0700 Subject: [IPython-dev] rant: "%matplotlib inline" In-Reply-To: References: <559738E6.1060104@gmail.com> Message-ID: On Fri, Jul 3, 2015 at 7:54 PM, William Stein wrote: > What do you think the "principle of least surprise" would dictate > should happen if you install matplotlib, then copy an example from [1] > (say) into a new IPython notebook in Python mode? > > [ ] 1. It works > > [ ] 2. It silently fails (the current behavior in IPython notebook). > > I'm guessing: pretty much everybody wants 1, but since the kernel > doesn't know if individual commands are coming from a terminal, native > UI, web browser, or what, then we have 2. Is the longterm plan to > enhance the kernel spec to handle the above situation? > > Other systems don't have this problem because one can only interact > with the kernel from either a terminal or a UI, but not both at once. > This summarizes both the expectation and the reason why we have the problem very well, thanks! Here's a possible path forward: when we start a kernel, we record what client started it (honestly I'm not up to speed with the details of the protocol, it's possible we already do this). While this doesn't change the fact that a kernel might have multiple connections later on, at least we can assume that the initiating client is the most likely one making the key decisions, and in the vast majority of real-world cases will be the only one in control. Using this information, we can then put in an import hook for matplotlib, that would effectively trigger a default call to %matplotlib notebook in the notebook %matplotlib inline in the Qt console and %matplotlib in the terminal when "import matplotlib" was called. Now, users would still need to explicitly call %matplotlib to switch backends at runtime or make non-default selections, but it would lower the amount of extra knowledge needed. Code copied from examples like the one you point above would "just work", thus improving our marks re. the principle of least surprise... Thoughts on this proposal? Would be good if people hash this out next week at Scipy with the MPL team... 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 bussonniermatthias at gmail.com Fri Jul 3 23:46:35 2015 From: bussonniermatthias at gmail.com (Matthias Bussonnier) Date: Fri, 3 Jul 2015 20:46:35 -0700 Subject: [IPython-dev] rant: "%matplotlib inline" In-Reply-To: References: <30425CFA-6765-4CE5-92A2-2C842568722F@gmail.com> Message-ID: <51A1D88F-09E4-4045-800E-EC9FAD6DA9A4@gmail.com> > On Jul 3, 2015, at 18:05, Brian Granger wrote: > > After teaching lots with the notebook, I fully agree with this. I will > try to talk to the mpl devs at SciPy to see what the path forward is. Just out of clarification, which point ? Mine ? Or Brian Blais one. Because both are valid from experience and have pro and cons, and are valid position to defend. -- M From bussonniermatthias at gmail.com Fri Jul 3 23:57:06 2015 From: bussonniermatthias at gmail.com (Matthias Bussonnier) Date: Fri, 3 Jul 2015 20:57:06 -0700 Subject: [IPython-dev] rant: "%matplotlib inline" In-Reply-To: References: <559738E6.1060104@gmail.com> Message-ID: > On Jul 3, 2015, at 19:21, Brian Blais wrote: > > ... > > Is there a way, for example, to programmatically edit the config file > easily? That way a simple script could be written to go through some > of the more common defaults, to personalize it for a particular case. Yes, the config support son file, so instead of c.FooBar.res = value in ipython_kernel.py you can { ?FooBar?:{?res?:value} } in `ipython_kernel.json` > On Jul 3, 2015, at 20:30, Fernando Perez wrote: > > > This summarizes both the expectation and the reason why we have the problem very well, thanks! > > Here's a possible path forward: when we start a kernel, we record what client started it (honestly I'm not up to speed with the details of the protocol, it's possible we already do this). > > .... > Thoughts on this proposal? Would be good if people hash this out next week at Scipy with the MPL team... The things that start the kernel is a kernel manager, it is not especially aware of wether the notebook started it, or nbconvert, or hydrogen, or qtconsole ... It is not either especially aware of wether the kernel is python or julia, or R. The path forward is ti have fig object define a _repr_png_, the we don?t have to deal with %matpltlib inline the only problem is when the last statement/extression of a cell do not return a fig object, the things that is expected is not really shown. Thought, that would make things consistent with the rest of the display machinery. -- M From fperez.net at gmail.com Sat Jul 4 00:08:15 2015 From: fperez.net at gmail.com (Fernando Perez) Date: Fri, 3 Jul 2015 21:08:15 -0700 Subject: [IPython-dev] rant: "%matplotlib inline" In-Reply-To: References: <559738E6.1060104@gmail.com> Message-ID: On Fri, Jul 3, 2015 at 8:57 PM, Matthias Bussonnier < bussonniermatthias at gmail.com> wrote: > The things that start the kernel is a kernel manager, it is not especially > aware of wether the notebook started it, or nbconvert, > or hydrogen, or qtconsole ... > It is not either especially aware of wether the kernel is python or julia, > or R. > Well, that's why I figured this was a proposal, it might require adding a message at kernel startup to record who was starting the kernel... I haven't looked at that code in literally years, so I'm completely behind the times on the details, sorry. > The path forward is ti have fig object define a _repr_png_, the we don?t > have to deal with %matpltlib inline > No, that wouldn't cover at all a case like the 'notebook' backend, that is the preferred one for matplotlib, that allows panning/zooming (and hopefully one day all MPL events in the notebook): [image: Inline image 1] 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: -------------- next part -------------- A non-text attachment was scrubbed... Name: image.png Type: image/png Size: 60506 bytes Desc: not available URL: From bussonniermatthias at gmail.com Sat Jul 4 00:15:38 2015 From: bussonniermatthias at gmail.com (Matthias Bussonnier) Date: Fri, 3 Jul 2015 21:15:38 -0700 Subject: [IPython-dev] rant: "%matplotlib inline" In-Reply-To: References: <559738E6.1060104@gmail.com> Message-ID: <42E24948-9174-49EE-B691-64549FE00169@gmail.com> > On Jul 3, 2015, at 21:08, Fernando Perez wrote: > > On Fri, Jul 3, 2015 at 8:57 PM, Matthias Bussonnier > wrote: > The things that start the kernel is a kernel manager, it is not especially aware of wether the notebook started it, or nbconvert, > or hydrogen, or qtconsole ... > It is not either especially aware of wether the kernel is python or julia, or R. > > Well, that's why I figured this was a proposal, it might require adding a message at kernel startup to record who was starting the kernel... I haven't looked at that code in literally years, so I'm completely behind the times on the details, sorry. Well, that would be a step-back from what we have been doing for the last 2 release to remove knowlege of IPython in Jupyter. Or, actually break one abstraction that kernel do not know what have started them. If we do one I would prefer the more general one. > > The path forward is ti have fig object define a _repr_png_, the we don?t have to deal with %matpltlib inline > > No, that wouldn't cover at all a case like the 'notebook' backend, that is the preferred one for matplotlib, that allows panning/zooming (and hopefully one day all MPL events in the notebook): Well, also define _repr_html_ or _repr_js_ for notebook then. The general message is to use our display_protocol the way it is design for matplotlib too. Julia and R don?t need special activation and don?t have these issues, I don?t see why we can?t figure out how to do theses things. -- M > PS: Booooo Pylab :-) -------------- next part -------------- An HTML attachment was scrubbed... URL: From fperez.net at gmail.com Sat Jul 4 00:53:10 2015 From: fperez.net at gmail.com (Fernando Perez) Date: Fri, 3 Jul 2015 21:53:10 -0700 Subject: [IPython-dev] rant: "%matplotlib inline" In-Reply-To: <42E24948-9174-49EE-B691-64549FE00169@gmail.com> References: <559738E6.1060104@gmail.com> <42E24948-9174-49EE-B691-64549FE00169@gmail.com> Message-ID: On Fri, Jul 3, 2015 at 9:15 PM, Matthias Bussonnier < bussonniermatthias at gmail.com> wrote: > > > Well, that would be a step-back from what we have been doing for the last > 2 release to remove knowlege of IPython in Jupyter. > Or, actually break one abstraction that kernel do not know what have > started them. > If we do one I would prefer the more general one. > No, it's not IPython-specific, it would simply be recording in any kernel how they were started. That information could be useful in a variety of contexts... > > >> The path forward is ti have fig object define a _repr_png_, the we don?t >> have to deal with %matpltlib inline >> > > No, that wouldn't cover at all a case like the 'notebook' backend, that is > the preferred one for matplotlib, that allows panning/zooming (and > hopefully one day all MPL events in the notebook): > > > Well, also define _repr_html_ or _repr_js_ for notebook then. > The general message is to use our display_protocol the way it is design > for matplotlib too. > > Julia and R don?t need special activation and don?t have these issues, I > don?t see why we can?t figure > out how to do theses things. > If we can find a cleaner solution with our display protocol, great! Those ideas are certainly a lot more mature now than when we first hacked up the backend support in the early days of the qt console, and we also have a lot of real-world experience using it, teaching with it, etc. It's a good time to take stock of that knowledge and update the toolchain... I see one or more PRs coming next week from Scipy :) PS: Booooo Pylab :-) > Actually, I use it a lot, and I think it's a mistake to berate it: %pylab is exactly the right thing to do when you need to quickly have something that puts at your fingertips a bunch of numerical tools. When I'm writing code that I *know* is purely numerical, with no chance whatsoever of a namespace conflict, what exactly do I gain by having to write import numpy as np x = np.sin(np.pi*np.e)+np.log(z) instead of the vastly more readable, debuggable, comprehensible x = sin(pi*e) + log(z) ??? (and yes, I could do a lot of explicit single-function imports, but that gets old in a hurry when writing a lot of numerical code). For essentially one-off, matlab-style notebooks, I think that we need to be pragmatic and remember that ease of use, readability, ease of remembering what to write, are important. These are cases where people are not building large software engineering projects, and where getting something done *now* is what matters, so let's not get too dogmatic in berating them for using tools that actually help them accomplish something. So yes, I still use, and will continue to use %pylab quite a bit... Remember, readability counts and practicality beats purity... Don't forget to import this every now and then, it's always a good antidote against dogmatism. 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 wes.turner at gmail.com Sat Jul 4 14:42:41 2015 From: wes.turner at gmail.com (Wes Turner) Date: Sat, 4 Jul 2015 13:42:41 -0500 Subject: [IPython-dev] rant: "%matplotlib inline" In-Reply-To: References: <559738E6.1060104@gmail.com> <42E24948-9174-49EE-B691-64549FE00169@gmail.com> Message-ID: Because Python is a programming language with defined import semantics and __builtins__. Things that break this assumption are not Python, and so IMHO require custom kernels or extra runtime configuration (a different *kernelspec*): * CPython 2 (pylab) * CPython 2 (matplotlib.inline = true) * CPython 2 (sage) So, to summarize: if the notebook expects a different locals() or globals() or __builtins__, then it's a variant of CPython with *more convenient* import configuration. On Jul 3, 2015 11:53 PM, "Fernando Perez" wrote: > On Fri, Jul 3, 2015 at 9:15 PM, Matthias Bussonnier < > bussonniermatthias at gmail.com> wrote: > >> >> >> Well, that would be a step-back from what we have been doing for the last >> 2 release to remove knowlege of IPython in Jupyter. >> Or, actually break one abstraction that kernel do not know what have >> started them. >> If we do one I would prefer the more general one. >> > > No, it's not IPython-specific, it would simply be recording in any kernel > how they were started. That information could be useful in a variety of > contexts... > > >> >> >>> The path forward is ti have fig object define a _repr_png_, the we don?t >>> have to deal with %matpltlib inline >>> >> >> No, that wouldn't cover at all a case like the 'notebook' backend, that >> is the preferred one for matplotlib, that allows panning/zooming (and >> hopefully one day all MPL events in the notebook): >> >> >> Well, also define _repr_html_ or _repr_js_ for notebook then. >> The general message is to use our display_protocol the way it is design >> for matplotlib too. >> >> Julia and R don?t need special activation and don?t have these issues, I >> don?t see why we can?t figure >> out how to do theses things. >> > > If we can find a cleaner solution with our display protocol, great! Those > ideas are certainly a lot more mature now than when we first hacked up the > backend support in the early days of the qt console, and we also have a lot > of real-world experience using it, teaching with it, etc. It's a good time > to take stock of that knowledge and update the toolchain... > > I see one or more PRs coming next week from Scipy :) > > PS: Booooo Pylab :-) >> > > Actually, I use it a lot, and I think it's a mistake to berate it: %pylab > is exactly the right thing to do when you need to quickly have something > that puts at your fingertips a bunch of numerical tools. > > When I'm writing code that I *know* is purely numerical, with no chance > whatsoever of a namespace conflict, what exactly do I gain by having to > write > > import numpy as np > x = np.sin(np.pi*np.e)+np.log(z) > > instead of the vastly more readable, debuggable, comprehensible > > x = sin(pi*e) + log(z) > > ??? (and yes, I could do a lot of explicit single-function imports, but > that gets old in a hurry when writing a lot of numerical code). > > For essentially one-off, matlab-style notebooks, I think that we need to > be pragmatic and remember that ease of use, readability, ease of > remembering what to write, are important. These are cases where people are > not building large software engineering projects, and where getting > something done *now* is what matters, so let's not get too dogmatic in > berating them for using tools that actually help them accomplish something. > > So yes, I still use, and will continue to use %pylab quite a bit... > > Remember, readability counts and practicality beats purity... Don't forget > to import this every now and then, it's always a good antidote against > dogmatism. > > 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 > http://mail.scipy.org/mailman/listinfo/ipython-dev > > -------------- next part -------------- An HTML attachment was scrubbed... URL: From bussonniermatthias at gmail.com Sat Jul 4 15:57:48 2015 From: bussonniermatthias at gmail.com (Matthias Bussonnier) Date: Sat, 4 Jul 2015 12:57:48 -0700 Subject: [IPython-dev] rant: "%matplotlib inline" In-Reply-To: References: <559738E6.1060104@gmail.com> <42E24948-9174-49EE-B691-64549FE00169@gmail.com> Message-ID: <1E682F64-4F1E-4027-ABC9-FFC211188FFB@gmail.com> > On Jul 3, 2015, at 21:53, Fernando Perez wrote: > > On Fri, Jul 3, 2015 at 9:15 PM, Matthias Bussonnier > wrote: > > > Well, that would be a step-back from what we have been doing for the last 2 release to remove knowlege of IPython in Jupyter. > Or, actually break one abstraction that kernel do not know what have started them. > If we do one I would prefer the more general one. > > No, it's not IPython-specific, it would simply be recording in any kernel how they were started. That information could be useful in a variety of contexts... I would technically prefer that the request/response also carry a field of what kind of frontend make a request. That might allow finer grain behavior of kernel. Anyway, we agree on that, we just don?t use the same terms. > Well, also define _repr_html_ or _repr_js_ for notebook then. > The general message is to use our display_protocol the way it is design for matplotlib too. > > Julia and R don?t need special activation and don?t have these issues, I don?t see why we can?t figure > out how to do theses things. > > If we can find a cleaner solution with our display protocol, great! Those ideas are certainly a lot more mature now than when we first hacked up the backend support in the early days of the qt console, and we also have a lot of real-world experience using it, teaching with it, etc. It's a good time to take stock of that knowledge and update the toolchain... > > I see one or more PRs coming next week from Scipy :) Does that mean you are coming ? > PS: Booooo Pylab :-) > > Actually, I use it a lot, and I think it's a mistake to berate it: %pylab is exactly the right thing to do when you need to quickly have something that puts at your fingertips a bunch of numerical tools. Well, that was just teasing as the thread started with why not use pylab. > > So yes, I still use, and will continue to use %pylab quite a bit... I do too, but I think it should only be use by people the **know** what it does. We **still** get confused bug report of people telling us that `nbconvert to --python` should include all the import that IPython does at startup by default[1]. While it does not, people just use %pylab inline assuming it just set the matplotlib backend for the notebook. From the issue in [1] [...] I just took existing tutorials and such which almost always begin with *%pylab inline*. I'll have to figure out which of the other imports I'll have to do explicitly in the notebook. IMHO all of the points you discussed are worth mentioning in some highly visible place on the project website and/or documentation, to save people the trouble of figuring these things out the hard way. So you you want to be accurate, if you have a response that tell user %pylab inline just make figures inline. you can either correct by : - no, %matplotlib inline does it, or - no, %pylab inline does not only set up the inline backend, but it will also import a bunch of stuff from many packages, and be careful it shadows some builtins (in particular sum and any) with the numpy one, and will make it more work to convert your notebook to .py files. Most of the time, the first answer is just the adapted one. > Remember, readability counts and practicality beats purity... > Don't forget to import this every now and then, it's always a good antidote against dogmatism. I do, I agree that %pylab is practical, however IMHO it is against the "Explicit is better than implicit". I also disagree that it helps with readability, for me it?s neutral for the subpart of %pylab I use. It also make me think that in the notebook, the text editing is flexible enough, the we could actually expand it to what it does. import numpy import matplotlib from matplotlib import pylab, mlab, pyplot np = numpy plt = pyplot from IPython.core.pylabtools import figsize, getfigs from pylab import * from numpy import * That would make it still ?practical?, but explicit; and make it easier to export %pylab?ed notebook to python scripts. (and could also be used for %load). -- M > Cheers, > > f [1]: https://github.com/jupyter/nbconvert/issues/54 -------------- next part -------------- An HTML attachment was scrubbed... URL: From ellisonbg at gmail.com Sun Jul 5 16:32:43 2015 From: ellisonbg at gmail.com (Brian Granger) Date: Sun, 5 Jul 2015 13:32:43 -0700 Subject: [IPython-dev] rant: "%matplotlib inline" In-Reply-To: <1E682F64-4F1E-4027-ABC9-FFC211188FFB@gmail.com> References: <559738E6.1060104@gmail.com> <42E24948-9174-49EE-B691-64549FE00169@gmail.com> <1E682F64-4F1E-4027-ABC9-FFC211188FFB@gmail.com> Message-ID: To clarify my thinking. I think that users should not have to run "%matplotlib inline" to get the inline backend to work in the notebook. I think we should make it "just work" and think we should favor practicality on this one rather than purity. On Sat, Jul 4, 2015 at 12:57 PM, Matthias Bussonnier wrote: > > On Jul 3, 2015, at 21:53, Fernando Perez wrote: > > On Fri, Jul 3, 2015 at 9:15 PM, Matthias Bussonnier > wrote: >> >> >> >> Well, that would be a step-back from what we have been doing for the last >> 2 release to remove knowlege of IPython in Jupyter. >> Or, actually break one abstraction that kernel do not know what have >> started them. >> If we do one I would prefer the more general one. > > > No, it's not IPython-specific, it would simply be recording in any kernel > how they were started. That information could be useful in a variety of > contexts... > > > I would technically prefer that the request/response also carry a field of > what kind of frontend make a request. > That might allow finer grain behavior of kernel. Anyway, we agree on that, > we just don?t use the same terms. > >> Well, also define _repr_html_ or _repr_js_ for notebook then. >> The general message is to use our display_protocol the way it is design >> for matplotlib too. >> >> Julia and R don?t need special activation and don?t have these issues, I >> don?t see why we can?t figure >> out how to do theses things. > > > If we can find a cleaner solution with our display protocol, great! Those > ideas are certainly a lot more mature now than when we first hacked up the > backend support in the early days of the qt console, and we also have a lot > of real-world experience using it, teaching with it, etc. It's a good time > to take stock of that knowledge and update the toolchain... > > I see one or more PRs coming next week from Scipy :) > > > Does that mean you are coming ? > >> PS: Booooo Pylab :-) > > > Actually, I use it a lot, and I think it's a mistake to berate it: %pylab is > exactly the right thing to do when you need to quickly have something that > puts at your fingertips a bunch of numerical tools. > > > Well, that was just teasing as the thread started with why not use pylab. > > > So yes, I still use, and will continue to use %pylab quite a bit... > > > I do too, but I think it should only be use by people the **know** what it > does. > > We **still** get confused bug report of people telling us that `nbconvert to > --python` should include > all the import that IPython does at startup by default[1]. While it does > not, people just use %pylab inline > assuming it just set the matplotlib backend for the notebook. > > From the issue in [1] > > [...] I just took existing tutorials and > such which almost always begin with *%pylab inline*. I'll have to > figure out which of the other imports I'll have to do explicitly in > the notebook. > > IMHO all of the points you discussed are worth mentioning in some > highly visible place on the project website and/or documentation, to > save people the trouble of figuring these things out the hard way. > > > So you you want to be accurate, if you have a response that tell user %pylab > inline just make figures inline. > you can either correct by : > - no, %matplotlib inline does it, > or > - no, %pylab inline does not only set up the inline backend, but it will > also import a bunch of stuff from > many packages, and be careful it shadows some builtins (in particular sum > and any) with the numpy one, > and will make it more work to convert your notebook to .py files. > > Most of the time, the first answer is just the adapted one. > > > Remember, readability counts and practicality beats purity... > > Don't forget to import this every now and then, it's always a good antidote > against dogmatism. > > > I do, I agree that %pylab is practical, however IMHO it is against the > "Explicit is better than implicit". > > I also disagree that it helps with readability, for me it?s neutral for the > subpart of %pylab I use. > > It also make me think that in the notebook, the text editing is flexible > enough, the we could actually expand it to > what it does. > > import numpy > import matplotlib > from matplotlib import pylab, mlab, pyplot > np = numpy > plt = pyplot > from IPython.core.pylabtools import figsize, getfigs > from pylab import * > from numpy import * > > That would make it still ?practical?, but explicit; and make it easier to > export %pylab?ed notebook to python scripts. > (and could also be used for %load). > > -- > M > > > > > Cheers, > > f > > > > [1]: https://github.com/jupyter/nbconvert/issues/54 > > > _______________________________________________ > IPython-dev mailing list > IPython-dev at scipy.org > http://mail.scipy.org/mailman/listinfo/ipython-dev > -- Brian E. Granger Cal Poly State University, San Luis Obispo @ellisonbg on Twitter and GitHub bgranger at calpoly.edu and ellisonbg at gmail.com From P.Rudiger at ed.ac.uk Sun Jul 5 17:23:55 2015 From: P.Rudiger at ed.ac.uk (Philipp Rudiger) Date: Sun, 05 Jul 2015 22:23:55 +0100 Subject: [IPython-dev] rant: "%matplotlib inline" In-Reply-To: References: <559738E6.1060104@gmail.com> <42E24948-9174-49EE-B691-64549FE00169@gmail.com> <1E682F64-4F1E-4027-ABC9-FFC211188FFB@gmail.com> Message-ID: <5599A06B.3040500@ed.ac.uk> For a different perspective there are third-party projects that offer alternative functionality to "%matplotlib inline" and "%pylab inline". In HoloViews (holoviews.org) we supply an IPython extension that relies on matplotlib inline not being enabled by default. We use matplotlib internally to generate display output, handling the display part ourselves (via display formatters). When %matplotlib inline is enabled these two systems can interact in bad ways. I suspect we are not the only project that might want to use matplotlib internally to generate custom display output. We also feel that being explicit is usually less confusing and allows more flexibility. However if you decide to make it the default there should be a safe and reliable way to unload matplotlib inline dynamically (maybe there is already?). From an outside perspective it seems like the repr_x methods already provide a general system for automatically generating appropriate display output and that this could be supported at the matplotlib level. On 05/07/15 21:32, Brian Granger wrote: > To clarify my thinking. > > I think that users should not have to run "%matplotlib inline" to get > the inline backend to work in the notebook. I think we should make it > "just work" and think we should favor practicality on this one rather > than purity. > > On Sat, Jul 4, 2015 at 12:57 PM, Matthias Bussonnier > wrote: >> On Jul 3, 2015, at 21:53, Fernando Perez wrote: >> >> On Fri, Jul 3, 2015 at 9:15 PM, Matthias Bussonnier >> wrote: >>> >>> >>> Well, that would be a step-back from what we have been doing for the last >>> 2 release to remove knowlege of IPython in Jupyter. >>> Or, actually break one abstraction that kernel do not know what have >>> started them. >>> If we do one I would prefer the more general one. >> >> No, it's not IPython-specific, it would simply be recording in any kernel >> how they were started. That information could be useful in a variety of >> contexts... >> >> >> I would technically prefer that the request/response also carry a field of >> what kind of frontend make a request. >> That might allow finer grain behavior of kernel. Anyway, we agree on that, >> we just don?t use the same terms. >> >>> Well, also define _repr_html_ or _repr_js_ for notebook then. >>> The general message is to use our display_protocol the way it is design >>> for matplotlib too. >>> >>> Julia and R don?t need special activation and don?t have these issues, I >>> don?t see why we can?t figure >>> out how to do theses things. >> >> If we can find a cleaner solution with our display protocol, great! Those >> ideas are certainly a lot more mature now than when we first hacked up the >> backend support in the early days of the qt console, and we also have a lot >> of real-world experience using it, teaching with it, etc. It's a good time >> to take stock of that knowledge and update the toolchain... >> >> I see one or more PRs coming next week from Scipy :) >> >> >> Does that mean you are coming ? >> >>> PS: Booooo Pylab :-) >> >> Actually, I use it a lot, and I think it's a mistake to berate it: %pylab is >> exactly the right thing to do when you need to quickly have something that >> puts at your fingertips a bunch of numerical tools. >> >> >> Well, that was just teasing as the thread started with why not use pylab. >> >> >> So yes, I still use, and will continue to use %pylab quite a bit... >> >> >> I do too, but I think it should only be use by people the **know** what it >> does. >> >> We **still** get confused bug report of people telling us that `nbconvert to >> --python` should include >> all the import that IPython does at startup by default[1]. While it does >> not, people just use %pylab inline >> assuming it just set the matplotlib backend for the notebook. >> >> From the issue in [1] >> >> [...] I just took existing tutorials and >> such which almost always begin with *%pylab inline*. I'll have to >> figure out which of the other imports I'll have to do explicitly in >> the notebook. >> >> IMHO all of the points you discussed are worth mentioning in some >> highly visible place on the project website and/or documentation, to >> save people the trouble of figuring these things out the hard way. >> >> >> So you you want to be accurate, if you have a response that tell user %pylab >> inline just make figures inline. >> you can either correct by : >> - no, %matplotlib inline does it, >> or >> - no, %pylab inline does not only set up the inline backend, but it will >> also import a bunch of stuff from >> many packages, and be careful it shadows some builtins (in particular sum >> and any) with the numpy one, >> and will make it more work to convert your notebook to .py files. >> >> Most of the time, the first answer is just the adapted one. >> >> >> Remember, readability counts and practicality beats purity... >> >> Don't forget to import this every now and then, it's always a good antidote >> against dogmatism. >> >> >> I do, I agree that %pylab is practical, however IMHO it is against the >> "Explicit is better than implicit". >> >> I also disagree that it helps with readability, for me it?s neutral for the >> subpart of %pylab I use. >> >> It also make me think that in the notebook, the text editing is flexible >> enough, the we could actually expand it to >> what it does. >> >> import numpy >> import matplotlib >> from matplotlib import pylab, mlab, pyplot >> np = numpy >> plt = pyplot >> from IPython.core.pylabtools import figsize, getfigs >> from pylab import * >> from numpy import * >> >> That would make it still ?practical?, but explicit; and make it easier to >> export %pylab?ed notebook to python scripts. >> (and could also be used for %load). >> >> -- >> M >> >> >> >> >> Cheers, >> >> f >> >> >> >> [1]: https://github.com/jupyter/nbconvert/issues/54 >> >> >> _______________________________________________ >> IPython-dev mailing list >> IPython-dev at scipy.org >> http://mail.scipy.org/mailman/listinfo/ipython-dev >> > > -- The University of Edinburgh is a charitable body, registered in Scotland, with registration number SC005336. From ondrej.certik at gmail.com Sun Jul 5 22:34:24 2015 From: ondrej.certik at gmail.com (=?UTF-8?B?T25kxZllaiDEjGVydMOtaw==?=) Date: Sun, 5 Jul 2015 21:34:24 -0500 Subject: [IPython-dev] rant: "%matplotlib inline" In-Reply-To: References: <559738E6.1060104@gmail.com> <42E24948-9174-49EE-B691-64549FE00169@gmail.com> Message-ID: On Fri, Jul 3, 2015 at 11:53 PM, Fernando Perez wrote: > On Fri, Jul 3, 2015 at 9:15 PM, Matthias Bussonnier > wrote: >> >> >> >> Well, that would be a step-back from what we have been doing for the last >> 2 release to remove knowlege of IPython in Jupyter. >> Or, actually break one abstraction that kernel do not know what have >> started them. >> If we do one I would prefer the more general one. > > > No, it's not IPython-specific, it would simply be recording in any kernel > how they were started. That information could be useful in a variety of > contexts... > >> >> >>> >>> The path forward is ti have fig object define a _repr_png_, the we don?t >>> have to deal with %matpltlib inline >> >> >> No, that wouldn't cover at all a case like the 'notebook' backend, that is >> the preferred one for matplotlib, that allows panning/zooming (and hopefully >> one day all MPL events in the notebook): >> >> >> Well, also define _repr_html_ or _repr_js_ for notebook then. >> The general message is to use our display_protocol the way it is design >> for matplotlib too. >> >> Julia and R don?t need special activation and don?t have these issues, I >> don?t see why we can?t figure >> out how to do theses things. > > > If we can find a cleaner solution with our display protocol, great! Those > ideas are certainly a lot more mature now than when we first hacked up the > backend support in the early days of the qt console, and we also have a lot > of real-world experience using it, teaching with it, etc. It's a good time > to take stock of that knowledge and update the toolchain... > > I see one or more PRs coming next week from Scipy :) > >> PS: Booooo Pylab :-) > > > Actually, I use it a lot, and I think it's a mistake to berate it: %pylab is > exactly the right thing to do when you need to quickly have something that > puts at your fingertips a bunch of numerical tools. > > When I'm writing code that I *know* is purely numerical, with no chance > whatsoever of a namespace conflict, what exactly do I gain by having to > write > > import numpy as np > x = np.sin(np.pi*np.e)+np.log(z) > > instead of the vastly more readable, debuggable, comprehensible > > x = sin(pi*e) + log(z) > > ??? (and yes, I could do a lot of explicit single-function imports, but > that gets old in a hurry when writing a lot of numerical code). > > For essentially one-off, matlab-style notebooks, I think that we need to be > pragmatic and remember that ease of use, readability, ease of remembering > what to write, are important. These are cases where people are not building > large software engineering projects, and where getting something done *now* > is what matters, so let's not get too dogmatic in berating them for using > tools that actually help them accomplish something. > > So yes, I still use, and will continue to use %pylab quite a bit... > > Remember, readability counts and practicality beats purity... Don't forget > to import this every now and then, it's always a good antidote against > dogmatism. I just want to second William's request, I would love to just be able to import matplotlib, and perhaps if I do show(), it would actually show the plot, instead of silently fail, which is the worst possible outcome. As to pylab, I use it as well, as the only thing in fact. I start with an empty notebook, do "%pylab inline" and quickly load some data and plot it. Then I improve the plots and then when things work, I actually keep it like that, as it seems the time needed to change the imports and code completely to explicit imports is not justified. Ondrej From damianavila at gmail.com Sun Jul 5 23:00:35 2015 From: damianavila at gmail.com (=?UTF-8?Q?Dami=C3=A1n_Avila?=) Date: Mon, 06 Jul 2015 03:00:35 +0000 Subject: [IPython-dev] [jupyter] Experimenting with a modified dev meeting format? In-Reply-To: References: <077F4F6B-0E87-4326-BB38-F3757C91E546@gmail.com> Message-ID: I could not attend because I was going to the airport, but looking into the notes and the video, I think this was a successful experience. I agree there is still audio issues, more remarkably when the microphone is shared in the room. Otherwise, it is a *substantial* improvement over the gh experience. Eager to join the next one. Cheers. On Thu, Jul 2, 2015 at 1:12 PM Brian Granger wrote: > Jason - I will be down a few minutes before noon. > > Cheers, > > Brian > > On Tue, Jun 30, 2015 at 10:25 PM, Brian Granger > wrote: > > I know with SciPy we probably won't have a dev meeting next week, but > > before the next one, we should test a bunch of different audio > > configurations. > > > > On Tue, Jun 30, 2015 at 10:09 AM, Brian Granger > wrote: > >> We are using bluejeans from another room - seems to be working fine > >> > >> > >> On Tue, Jun 30, 2015 at 9:21 AM, Jason Grout > wrote: > >>> We could set up an audio conference call if needed. Let us know if we > need > >>> to. > >>> > >>> Jason > >>> > >>> > >>> On Tue, Jun 30, 2015, 12:07 Matthias Bussonnier > >>> wrote: > >>>> > >>>> Last minutes change of plan (Probably) new furniture beeing installed > in > >>>> video-room. > >>>> So no BlueJeans setup. > >>>> We will have to fallback on something else most likely. > >>>> > >>>> -- > >>>> M > >>>> > >>>> > On Jun 29, 2015, at 23:16, Brian Granger > wrote: > >>>> > > >>>> > Sounds good, I have also posted a summary of these changed at the > top > >>>> > of the meeting hackpad. See you tomorrow! > >>>> > > >>>> > Cheers, > >>>> > > >>>> > Brian > >>>> > > >>>> > On Mon, Jun 29, 2015 at 6:25 PM, MinRK > wrote: > >>>> >> > >>>> >> > >>>> >> On Mon, Jun 29, 2015 at 5:56 PM, Fernando Perez < > fperez.net at gmail.com> > >>>> >> wrote: > >>>> >>> > >>>> >>> On Sat, Jun 27, 2015 at 8:07 PM, MinRK > wrote: > >>>> >>>> > >>>> >>>> I think turning Tuesdays into check-ins/reports is a good idea. > >>>> >>>> Having > >>>> >>>> just one or two topics for actual in-depth meetings with smaller > >>>> >>>> groups > >>>> >>>> should definitely be more effective. > >>>> >>> > >>>> >>> > >>>> >>> OK, here's a wrap-up and my suggested path forward, so we can call > >>>> >>> this > >>>> >>> thread done, unless someone objects strenuously to something. As > >>>> >>> usual, we > >>>> >>> will fine-tune over time as we learn from experience... > >>>> >>> > >>>> >>> - Let's go with a max of 5 minutes per person on reporting of > >>>> >>> activity. > >>>> >>> > >>>> >>> > >>>> >>> - When reporting, you should try make sure what you say answers > the > >>>> >>> following questions for the others: > >>>> >>> > >>>> >>> * What have I been working on? > >>>> >>> * What do I plan on working on? > >>>> >>> * What things are preventing me from making progress? > >>>> >>> > >>>> >>> This will ensure that everyone leaves knowing what everyone is up > to, > >>>> >>> and > >>>> >>> that we can effectively help each other, identify where resources > are > >>>> >>> needed, bottlenecks, etc. > >>>> >>> > >>>> >>> > >>>> >>> - We try to take notes as usual collectively on Hackpad, BUT, we > >>>> >>> designate > >>>> >>> a person each week who has an explicit responsibility that week to > >>>> >>> spend a > >>>> >>> bit of time after the meeting making sure the notes make sense and > >>>> >>> posting > >>>> >>> them to the Jupyter list. Hopefully that won't take more than a > few > >>>> >>> minutes, > >>>> >>> if the collective note-taking was sufficient. > >>>> >>> > >>>> >>> This will give us a static record on the list of each week's > meeting, > >>>> >>> which is better than just having a doc on hackpad. > >>>> >>> > >>>> >>> I volunteer to be the note-poster for tomorrow. > >>>> >>> > >>>> >>> > >>>> >>> - Let's keep the total meeting time to 1h, hard limit. Tomorrow, > >>>> >>> we're > >>>> >>> going to use a trick to enforce that: our nice videoconferencing > room > >>>> >>> at > >>>> >>> BIDS is booked at 11am every other Tuesday, so we'll get kicked > out > >>>> >>> anyways. > >>>> >>> We could obviously use another one, but instead we'll use the room > >>>> >>> with the > >>>> >>> better audio equipment and be forced to stay on schedule :) > >>>> >>> > >>>> >>> > >>>> >>> Did I miss anything? > >>>> >> > >>>> >> > >>>> >> Sounds like a good plan. See you all tomorrow. > >>>> >> > >>>> >> -MinRK > >>>> >> > >>>> >>> > >>>> >>> > >>>> >>> Cheers, > >>>> >>> > >>>> >>> f > >>>> >>> > >>>> >>> -- > >>>> >>> 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/CAHAreOpdZ4tryfYk0PKktwJ2iTbhyMttYoGD9JU3c8A4CdM5mA%40mail.gmail.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 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/CAHNn8BV61o_M8ziSOQnfOJz0Am6Pux14Yk6TVumCBK28LsaMVw%40mail.gmail.com > . > >>>> >> > >>>> >> For more options, visit https://groups.google.com/d/optout. > >>>> > > >>>> > > >>>> > > >>>> > -- > >>>> > Brian E. Granger > >>>> > Cal Poly State University, San Luis Obispo > >>>> > @ellisonbg on Twitter and GitHub > >>>> > bgranger at calpoly.edu and ellisonbg at gmail.com > >>>> > > >>>> > -- > >>>> > 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/CAH4pYpSLq5LqHgoX1ULsqw3EwB%3Dn%2BR0qiqYKE%2BrHb2R2JEQSLg%40mail.gmail.com > . > >>>> > For more options, visit https://groups.google.com/d/optout. > >>>> > >>>> _______________________________________________ > >>>> IPython-dev mailing list > >>>> IPython-dev at scipy.org > >>>> http://mail.scipy.org/mailman/listinfo/ipython-dev > >>> > >>> > >>> _______________________________________________ > >>> IPython-dev mailing list > >>> IPython-dev at scipy.org > >>> http://mail.scipy.org/mailman/listinfo/ipython-dev > >>> > >> > >> > >> > >> -- > >> Brian E. Granger > >> Cal Poly State University, San Luis Obispo > >> @ellisonbg on Twitter and GitHub > >> bgranger at calpoly.edu and ellisonbg at gmail.com > > > > > > > > -- > > Brian E. Granger > > Cal Poly State University, San Luis Obispo > > @ellisonbg on Twitter and GitHub > > bgranger at calpoly.edu and ellisonbg at gmail.com > > > > -- > Brian E. Granger > Cal Poly State University, San Luis Obispo > @ellisonbg on Twitter and GitHub > bgranger at calpoly.edu and ellisonbg at gmail.com > > -- > 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/CAH4pYpQM8u1a9dcddLUESjbRAiR8E5FMTbnZj139hWsGr8tT6A%40mail.gmail.com > . > For more options, visit https://groups.google.com/d/optout. > -- Dami?n Avila -------------- next part -------------- An HTML attachment was scrubbed... URL: From damianavila at gmail.com Sun Jul 5 23:39:17 2015 From: damianavila at gmail.com (=?UTF-8?Q?Dami=C3=A1n_Avila?=) Date: Mon, 06 Jul 2015 03:39:17 +0000 Subject: [IPython-dev] Proposal: soft moratorium on re-architecting for 5.0 In-Reply-To: References: <963F3253-CE7E-41F6-BDAA-B0DFB9B87DB1@gmail.com> Message-ID: A lot of things to digest and reply, but I don't want to bring back very old discussions. I just wanted to note that: 1. I felt exactly the same that Thomas raised at the top, but I also understand the pressure on the refactoring side. 2. I think that having separate branches is the proper answer to deal/manage this conservative/non-conservative tension. 3. There were several items/ideas exposed here, we should start other thread to continue the discussion, in particular the docs one is important. 4. Seeing all these discussions happening on the list is really great improvement in the way the project communicates to its users and we should be very happy about this! On Wed, Jul 1, 2015 at 4:36 PM Fernando Perez wrote: > On Wed, Jul 1, 2015 at 1:29 PM, MinRK wrote: > >> Thomas has been informally leading the charge, so I'd be happy to follow >> him formally on 4.0. We are in >> > > Great, thanks Thomas! You're in :) > > I would suggest you post, on a separate thread, a summary of the release > plan/schedule when viable. > > >> good shape to have the majority of the smaller packages shipped by the >> end of SciPy (at least 2-3 before then). The bit that gets a little tricky >> is that we need to release IPython last (so that `ipython[all]` still >> works, but other projects depend on it, either directly (parallel, kernel) >> or artificially (notebook, qtconsole). I think we can still release those >> downstream projects before IPython, though. Until IPython is released, they >> won't be pip-installable without having done `pip install -e git:ipython` >> first, but it lets us progress without having to do one big day of >> releasing a half dozen packages. >> > > Makes sense. > > >> >> Re: release managers, I think it's also important to note that we will >> hopefully only need the more formal freeze/release process for the more >> active projects (likely ipython/ipython, notebook, widgets, possibly >> nbconvert on occasion). For the most part, the other projects should be >> able to operate at a much more informal, frequent bugfix release pattern, >> where major revisions are less common, and active work causes tension with >> release. >> > > Yes, I think this is very reasonable. > > I just want us to be more explicit and communicate better our overall > release strategy. Even if it's just saying this part out loud, so that > people know what to expect... > > 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 > http://mail.scipy.org/mailman/listinfo/ipython-dev > -- Dami?n Avila -------------- next part -------------- An HTML attachment was scrubbed... URL: From tshead at sandia.gov Mon Jul 6 11:28:54 2015 From: tshead at sandia.gov (Shead, Timothy) Date: Mon, 6 Jul 2015 15:28:54 +0000 Subject: [IPython-dev] rant: "%matplotlib inline" In-Reply-To: References: <559738E6.1060104@gmail.com> <42E24948-9174-49EE-B691-64549FE00169@gmail.com> Message-ID: At the risk of being self-serving, Toyplot (http://toyplot.readthedocs.org) is a plotting library for Python that Just Works when imported into a notebook. The code to detect the notebook environment was trivial to write, and could easily be adapted to (ahem) legacy libraries. Cheers, Tim From bussonniermatthias at gmail.com Mon Jul 6 11:35:11 2015 From: bussonniermatthias at gmail.com (Matthias Bussonnier) Date: Mon, 6 Jul 2015 10:35:11 -0500 Subject: [IPython-dev] rant: "%matplotlib inline" In-Reply-To: References: <559738E6.1060104@gmail.com> <42E24948-9174-49EE-B691-64549FE00169@gmail.com> Message-ID: <80914944-6464-486C-A3D0-B6BDF72E8B74@gmail.com> > On Jul 6, 2015, at 10:28, Shead, Timothy wrote: > > At the risk of being self-serving, Toyplot (http://toyplot.readthedocs.org) is a plotting library for Python that Just Works when imported into a notebook. The code to detect the notebook environment was trivial to write, and could easily be adapted to (ahem) legacy libraries. I?m curious to know how you detect you are in a notebook in a reliable manner. -- M From nathan12343 at gmail.com Mon Jul 6 11:58:02 2015 From: nathan12343 at gmail.com (Nathan Goldbaum) Date: Mon, 6 Jul 2015 08:58:02 -0700 Subject: [IPython-dev] rant: "%matplotlib inline" In-Reply-To: <5599A06B.3040500@ed.ac.uk> References: <559738E6.1060104@gmail.com> <42E24948-9174-49EE-B691-64549FE00169@gmail.com> <1E682F64-4F1E-4027-ABC9-FFC211188FFB@gmail.com> <5599A06B.3040500@ed.ac.uk> Message-ID: On Sun, Jul 5, 2015 at 2:23 PM, Philipp Rudiger wrote: > For a different perspective there are third-party projects that offer > alternative functionality to "%matplotlib inline" and "%pylab inline". > In HoloViews (holoviews.org) we supply an IPython extension that relies > on matplotlib inline not being enabled by default. > > We use matplotlib internally to generate display output, handling the > display part ourselves (via display formatters). When %matplotlib inline > is enabled these two systems can interact in bad ways. I suspect we are > not the only project that might want to use matplotlib internally to > generate custom display output. > > We also feel that being explicit is usually less confusing and allows > more flexibility. However if you decide to make it the default there > should be a safe and reliable way to unload matplotlib inline > dynamically (maybe there is already?). > > From an outside perspective it seems like the repr_x methods already > provide a general system for automatically generating appropriate > display output and that this could be supported at the matplotlib level. > I agree with this -- we do the same thing in yt. yt plots "just work" in the notebook without %matplotlib inline since the plot objects have _repr_png_ and _repr_html_ defined. > > On 05/07/15 21:32, Brian Granger wrote: > > To clarify my thinking. > > > > I think that users should not have to run "%matplotlib inline" to get > > the inline backend to work in the notebook. I think we should make it > > "just work" and think we should favor practicality on this one rather > > than purity. > > > > On Sat, Jul 4, 2015 at 12:57 PM, Matthias Bussonnier > > wrote: > >> On Jul 3, 2015, at 21:53, Fernando Perez wrote: > >> > >> On Fri, Jul 3, 2015 at 9:15 PM, Matthias Bussonnier > >> wrote: > >>> > >>> > >>> Well, that would be a step-back from what we have been doing for the > last > >>> 2 release to remove knowlege of IPython in Jupyter. > >>> Or, actually break one abstraction that kernel do not know what have > >>> started them. > >>> If we do one I would prefer the more general one. > >> > >> No, it's not IPython-specific, it would simply be recording in any > kernel > >> how they were started. That information could be useful in a variety of > >> contexts... > >> > >> > >> I would technically prefer that the request/response also carry a field > of > >> what kind of frontend make a request. > >> That might allow finer grain behavior of kernel. Anyway, we agree on > that, > >> we just don?t use the same terms. > >> > >>> Well, also define _repr_html_ or _repr_js_ for notebook then. > >>> The general message is to use our display_protocol the way it is design > >>> for matplotlib too. > >>> > >>> Julia and R don?t need special activation and don?t have these issues, > I > >>> don?t see why we can?t figure > >>> out how to do theses things. > >> > >> If we can find a cleaner solution with our display protocol, great! > Those > >> ideas are certainly a lot more mature now than when we first hacked up > the > >> backend support in the early days of the qt console, and we also have a > lot > >> of real-world experience using it, teaching with it, etc. It's a good > time > >> to take stock of that knowledge and update the toolchain... > >> > >> I see one or more PRs coming next week from Scipy :) > >> > >> > >> Does that mean you are coming ? > >> > >>> PS: Booooo Pylab :-) > >> > >> Actually, I use it a lot, and I think it's a mistake to berate it: > %pylab is > >> exactly the right thing to do when you need to quickly have something > that > >> puts at your fingertips a bunch of numerical tools. > >> > >> > >> Well, that was just teasing as the thread started with why not use > pylab. > >> > >> > >> So yes, I still use, and will continue to use %pylab quite a bit... > >> > >> > >> I do too, but I think it should only be use by people the **know** what > it > >> does. > >> > >> We **still** get confused bug report of people telling us that > `nbconvert to > >> --python` should include > >> all the import that IPython does at startup by default[1]. While it does > >> not, people just use %pylab inline > >> assuming it just set the matplotlib backend for the notebook. > >> > >> From the issue in [1] > >> > >> [...] I just took existing tutorials and > >> such which almost always begin with *%pylab inline*. I'll have to > >> figure out which of the other imports I'll have to do explicitly in > >> the notebook. > >> > >> IMHO all of the points you discussed are worth mentioning in some > >> highly visible place on the project website and/or documentation, > to > >> save people the trouble of figuring these things out the hard way. > >> > >> > >> So you you want to be accurate, if you have a response that tell user > %pylab > >> inline just make figures inline. > >> you can either correct by : > >> - no, %matplotlib inline does it, > >> or > >> - no, %pylab inline does not only set up the inline backend, but it will > >> also import a bunch of stuff from > >> many packages, and be careful it shadows some builtins (in > particular sum > >> and any) with the numpy one, > >> and will make it more work to convert your notebook to .py files. > >> > >> Most of the time, the first answer is just the adapted one. > >> > >> > >> Remember, readability counts and practicality beats purity... > >> > >> Don't forget to import this every now and then, it's always a good > antidote > >> against dogmatism. > >> > >> > >> I do, I agree that %pylab is practical, however IMHO it is against the > >> "Explicit is better than implicit". > >> > >> I also disagree that it helps with readability, for me it?s neutral for > the > >> subpart of %pylab I use. > >> > >> It also make me think that in the notebook, the text editing is flexible > >> enough, the we could actually expand it to > >> what it does. > >> > >> import numpy > >> import matplotlib > >> from matplotlib import pylab, mlab, pyplot > >> np = numpy > >> plt = pyplot > >> from IPython.core.pylabtools import figsize, getfigs > >> from pylab import * > >> from numpy import * > >> > >> That would make it still ?practical?, but explicit; and make it easier > to > >> export %pylab?ed notebook to python scripts. > >> (and could also be used for %load). > >> > >> -- > >> M > >> > >> > >> > >> > >> Cheers, > >> > >> f > >> > >> > >> > >> [1]: https://github.com/jupyter/nbconvert/issues/54 > >> > >> > >> _______________________________________________ > >> IPython-dev mailing list > >> IPython-dev at scipy.org > >> http://mail.scipy.org/mailman/listinfo/ipython-dev > >> > > > > > > > -- > The University of Edinburgh is a charitable body, registered in > Scotland, with registration number SC005336. > > _______________________________________________ > IPython-dev mailing list > IPython-dev at scipy.org > http://mail.scipy.org/mailman/listinfo/ipython-dev > -------------- next part -------------- An HTML attachment was scrubbed... URL: From tshead at sandia.gov Mon Jul 6 12:18:57 2015 From: tshead at sandia.gov (Shead, Timothy) Date: Mon, 6 Jul 2015 16:18:57 +0000 Subject: [IPython-dev] [EXTERNAL] rant: "%matplotlib inline" In-Reply-To: <80914944-6464-486C-A3D0-B6BDF72E8B74@gmail.com> References: <559738E6.1060104@gmail.com> <42E24948-9174-49EE-B691-64549FE00169@gmail.com> <80914944-6464-486C-A3D0-B6BDF72E8B74@gmail.com> Message-ID: <268457DD-EF4D-4FDC-A498-2F98D9D70DA9@sandia.gov> > On Jul 6, 2015, at 9:35 AM, Matthias Bussonnier wrote: > > >> On Jul 6, 2015, at 10:28, Shead, Timothy wrote: >> >> At the risk of being self-serving, Toyplot (http://toyplot.readthedocs.org) is a plotting library for Python that Just Works when imported into a notebook. The code to detect the notebook environment was trivial to write, and could easily be adapted to (ahem) legacy libraries. > > I?m curious to know how you detect you are in a notebook in a reliable manner. Matthias: The following code gets executed once when Toyplot is imported: def _ipython_register(): try: import IPython if IPython.get_ipython(): IPython.get_ipython().events.register("post_execute", _ipython_post_execute) except: pass Thus, a callback gets executed every time a cell is run: def _ipython_post_execute(): try: import IPython.display for canvas in [Canvas._autorender_list]: IPython.display.display(canvas) except: pass ? where the ?Canvas? class has a _repr_html_(self) that returns the HTML representation of a figure, and Canvas._autorender_list is a list of Canvas objects to be rendered inline. You could imagine adapting the _ipython_post_execute() callback to work with arbitrary objects, including libraries that are completely ?IPython-unaware?. Cheers, Tim From bussonniermatthias at gmail.com Mon Jul 6 12:24:59 2015 From: bussonniermatthias at gmail.com (Matthias Bussonnier) Date: Mon, 6 Jul 2015 11:24:59 -0500 Subject: [IPython-dev] [EXTERNAL] rant: "%matplotlib inline" In-Reply-To: <268457DD-EF4D-4FDC-A498-2F98D9D70DA9@sandia.gov> References: <559738E6.1060104@gmail.com> <42E24948-9174-49EE-B691-64549FE00169@gmail.com> <80914944-6464-486C-A3D0-B6BDF72E8B74@gmail.com> <268457DD-EF4D-4FDC-A498-2F98D9D70DA9@sandia.gov> Message-ID: > On Jul 6, 2015, at 11:18, Shead, Timothy wrote: > >> On Jul 6, 2015, at 9:35 AM, Matthias Bussonnier wrote: >> >> I?m curious to know how you detect you are in a notebook in a reliable manner. > > Matthias: > > The following code gets executed once when Toyplot is imported: > > [... snip] > > ? where the ?Canvas? class has a _repr_html_(self) that returns the HTML representation of a figure, and Canvas._autorender_list is a list of Canvas objects to be rendered inline. You could imagine adapting the _ipython_post_execute() callback to work with arbitrary objects, including libraries that are completely ?IPython-unaware?. Oh, ok, sure. This does not ?detect? that you are in a notebook. It use the REPR machinery to display things in any fronted that would support HTML, like nbconvert, or Hydrogen. I read your previous mail as actually something like getting a boolean `is_notebook`. -- M From benjaminrk at gmail.com Mon Jul 6 12:37:15 2015 From: benjaminrk at gmail.com (MinRK) Date: Mon, 6 Jul 2015 09:37:15 -0700 Subject: [IPython-dev] [EXTERNAL] rant: "%matplotlib inline" In-Reply-To: References: <559738E6.1060104@gmail.com> <42E24948-9174-49EE-B691-64549FE00169@gmail.com> <80914944-6464-486C-A3D0-B6BDF72E8B74@gmail.com> <268457DD-EF4D-4FDC-A498-2F98D9D70DA9@sandia.gov> Message-ID: What makes it trickier is that matplotlib's default behavior for 'just works' is different whether it's in an IPython kernel or terminal IPython. Further, the inline matplotlib backend is actually provided by IPython, it is not in matplotlib. For this reason, I think it should be IPython's responsibility to detect matplotlib's import and register the inline backend. -MinRK On Mon, Jul 6, 2015 at 9:24 AM, Matthias Bussonnier < bussonniermatthias at gmail.com> wrote: > > > On Jul 6, 2015, at 11:18, Shead, Timothy wrote: > > > >> On Jul 6, 2015, at 9:35 AM, Matthias Bussonnier < > bussonniermatthias at gmail.com> wrote: > >> > >> I?m curious to know how you detect you are in a notebook in a reliable > manner. > > > > Matthias: > > > > The following code gets executed once when Toyplot is imported: > > > > [... snip] > > > > ? where the ?Canvas? class has a _repr_html_(self) that returns the HTML > representation of a figure, and Canvas._autorender_list is a list of Canvas > objects to be rendered inline. You could imagine adapting the > _ipython_post_execute() callback to work with arbitrary objects, including > libraries that are completely ?IPython-unaware?. > > Oh, ok, sure. This does not ?detect? that you are in a notebook. It use > the REPR machinery to display things in any > fronted that would support HTML, like nbconvert, or Hydrogen. > > I read your previous mail as actually something like getting a boolean > `is_notebook`. > -- > M > _______________________________________________ > IPython-dev mailing list > IPython-dev at scipy.org > http://mail.scipy.org/mailman/listinfo/ipython-dev > -------------- next part -------------- An HTML attachment was scrubbed... URL: From takowl at gmail.com Mon Jul 6 13:03:10 2015 From: takowl at gmail.com (Thomas Kluyver) Date: Mon, 6 Jul 2015 10:03:10 -0700 Subject: [IPython-dev] [EXTERNAL] rant: "%matplotlib inline" In-Reply-To: References: <559738E6.1060104@gmail.com> <42E24948-9174-49EE-B691-64549FE00169@gmail.com> <80914944-6464-486C-A3D0-B6BDF72E8B74@gmail.com> <268457DD-EF4D-4FDC-A498-2F98D9D70DA9@sandia.gov> Message-ID: On 6 July 2015 at 09:37, MinRK wrote: > I think it should be IPython's responsibility to detect matplotlib's > import and register the inline backend. This seems reasonable, but looking at the docs, I realise I'm not actually sure how to register a hook to fire after an import. There's plenty of machinery for intercepting imports to provide a module in some other way, but nothing obvious for detecting that an import has happened. PEP 369, post import hooks, was withdrawn years ago. I guess we'd need to override __import__(), but that feels rather wrong. Thomas -------------- next part -------------- An HTML attachment was scrubbed... URL: From doug.blank at gmail.com Mon Jul 6 13:13:15 2015 From: doug.blank at gmail.com (Doug Blank) Date: Mon, 6 Jul 2015 13:13:15 -0400 Subject: [IPython-dev] [EXTERNAL] rant: "%matplotlib inline" In-Reply-To: References: <559738E6.1060104@gmail.com> <42E24948-9174-49EE-B691-64549FE00169@gmail.com> <80914944-6464-486C-A3D0-B6BDF72E8B74@gmail.com> <268457DD-EF4D-4FDC-A498-2F98D9D70DA9@sandia.gov> Message-ID: On Mon, Jul 6, 2015 at 1:03 PM, Thomas Kluyver wrote: > On 6 July 2015 at 09:37, MinRK wrote: > >> I think it should be IPython's responsibility to detect matplotlib's >> import and register the inline backend. > > > This seems reasonable, but looking at the docs, I realise I'm not actually > sure how to register a hook to fire after an import. There's plenty of > machinery for intercepting imports to provide a module in some other way, > but nothing obvious for detecting that an import has happened. PEP 369, > post import hooks, was withdrawn years ago. > > I guess we'd need to override __import__(), but that feels rather wrong. > Can this be solved in a manner that could also work for other kernels? Not the exact same code, but a general principle. Perhaps thinking of it as a general "handshaking" issue... the kernel and the initiating front need to have a conversation about a variety of settings, and the result is the understanding of what format certain things will take. Maybe a general %setup or %config concept could be used. -Doug > > > Thomas > > _______________________________________________ > IPython-dev mailing list > IPython-dev at scipy.org > http://mail.scipy.org/mailman/listinfo/ipython-dev > > -------------- next part -------------- An HTML attachment was scrubbed... URL: From fperez.net at gmail.com Mon Jul 6 14:52:27 2015 From: fperez.net at gmail.com (Fernando Perez) Date: Mon, 6 Jul 2015 11:52:27 -0700 Subject: [IPython-dev] rant: "%matplotlib inline" In-Reply-To: References: <559738E6.1060104@gmail.com> <42E24948-9174-49EE-B691-64549FE00169@gmail.com> Message-ID: On Mon, Jul 6, 2015 at 8:28 AM, Shead, Timothy wrote: > At the risk of being self-serving, Toyplot (http://toyplot.readthedocs.org) > is a plotting library for Python that Just Works when imported into a > notebook. > Not at all! Please, authors of projects like Toyplot and HoloViews, do let us know what your use cases are, and if you have a different perspective on this! We can't make informed decisions without input from you all, so it's extremely important that you pitch in. And in this case, it seems obvious that any PR that we create, should be one of those that before merging, we give it a chance to get "socialized" in the mailing list as well, by pinging folks here, since not everyone follows the repos closely... 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 fperez.net at gmail.com Mon Jul 6 14:54:50 2015 From: fperez.net at gmail.com (Fernando Perez) Date: Mon, 6 Jul 2015 11:54:50 -0700 Subject: [IPython-dev] Proposal: soft moratorium on re-architecting for 5.0 In-Reply-To: References: <963F3253-CE7E-41F6-BDAA-B0DFB9B87DB1@gmail.com> Message-ID: Good summary, Damian :) On Sun, Jul 5, 2015 at 8:39 PM, Dami?n Avila wrote: > A lot of things to digest and reply, but I don't want to bring back very > old discussions. I just wanted to note that: > > 1. I felt exactly the same that Thomas raised at the top, but I also > understand the pressure on the refactoring side. > 2. I think that having separate branches is the proper answer to > deal/manage this conservative/non-conservative tension. > 3. There were several items/ideas exposed here, we should start other > thread to continue the discussion, in particular the docs one is important. > 4. Seeing all these discussions happening on the list is really great > improvement in the way the project communicates to its users and we should > be very happy about this! > > > On Wed, Jul 1, 2015 at 4:36 PM Fernando Perez > wrote: > >> On Wed, Jul 1, 2015 at 1:29 PM, MinRK wrote: >> >>> Thomas has been informally leading the charge, so I'd be happy to follow >>> him formally on 4.0. We are in >>> >> >> Great, thanks Thomas! You're in :) >> >> I would suggest you post, on a separate thread, a summary of the release >> plan/schedule when viable. >> >> >>> good shape to have the majority of the smaller packages shipped by the >>> end of SciPy (at least 2-3 before then). The bit that gets a little tricky >>> is that we need to release IPython last (so that `ipython[all]` still >>> works, but other projects depend on it, either directly (parallel, kernel) >>> or artificially (notebook, qtconsole). I think we can still release those >>> downstream projects before IPython, though. Until IPython is released, they >>> won't be pip-installable without having done `pip install -e git:ipython` >>> first, but it lets us progress without having to do one big day of >>> releasing a half dozen packages. >>> >> >> Makes sense. >> >> >>> >>> Re: release managers, I think it's also important to note that we will >>> hopefully only need the more formal freeze/release process for the more >>> active projects (likely ipython/ipython, notebook, widgets, possibly >>> nbconvert on occasion). For the most part, the other projects should be >>> able to operate at a much more informal, frequent bugfix release pattern, >>> where major revisions are less common, and active work causes tension with >>> release. >>> >> >> Yes, I think this is very reasonable. >> >> I just want us to be more explicit and communicate better our overall >> release strategy. Even if it's just saying this part out loud, so that >> people know what to expect... >> >> 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 >> http://mail.scipy.org/mailman/listinfo/ipython-dev >> > -- > Dami?n Avila > > _______________________________________________ > IPython-dev mailing list > IPython-dev at scipy.org > http://mail.scipy.org/mailman/listinfo/ipython-dev > > -- 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 fperez.net at gmail.com Mon Jul 6 14:57:36 2015 From: fperez.net at gmail.com (Fernando Perez) Date: Mon, 6 Jul 2015 11:57:36 -0700 Subject: [IPython-dev] [jupyter] Experimenting with a modified dev meeting format? In-Reply-To: References: <077F4F6B-0E87-4326-BB38-F3757C91E546@gmail.com> Message-ID: On Sun, Jul 5, 2015 at 8:00 PM, Dami?n Avila wrote: > I could not attend because I was going to the airport, but looking into > the notes and the video, I think this was a successful experience. > I agree there is still audio issues, more remarkably when the microphone > is shared in the room. Otherwise, it is a *substantial* improvement over > the gh experience. Eager to join the next one. > We want to note that the shared room microphone was an rare, pure Murphy's law incident: I had booked the room and when we tried to go in, there was construction going on. We will normally have a room for shared microphone use that has an excellent speakerphone with zero echo (we've used it successfully in many other meetings at BIDS). Otherwise, individuals can use single-person headsets that are fine. But more importantly, the new meeting format seems to have been a very nice and successful change. Reminder: no meeting tomorrow, most of the team is in-person at SciPy'15. Cheers, f -------------- next part -------------- An HTML attachment was scrubbed... URL: From benjaminrk at gmail.com Mon Jul 6 15:13:58 2015 From: benjaminrk at gmail.com (MinRK) Date: Mon, 6 Jul 2015 12:13:58 -0700 Subject: [IPython-dev] [EXTERNAL] rant: "%matplotlib inline" In-Reply-To: References: <559738E6.1060104@gmail.com> <42E24948-9174-49EE-B691-64549FE00169@gmail.com> <80914944-6464-486C-A3D0-B6BDF72E8B74@gmail.com> <268457DD-EF4D-4FDC-A498-2F98D9D70DA9@sandia.gov> Message-ID: On Mon, Jul 6, 2015 at 10:13 AM, Doug Blank wrote: On Mon, Jul 6, 2015 at 1:03 PM, Thomas Kluyver wrote: > >> On 6 July 2015 at 09:37, MinRK wrote: >> >>> I think it should be IPython's responsibility to detect matplotlib's >>> import and register the inline backend. >> >> >> This seems reasonable, but looking at the docs, I realise I'm not >> actually sure how to register a hook to fire after an import. There's >> plenty of machinery for intercepting imports to provide a module in some >> other way, but nothing obvious for detecting that an import has happened. >> PEP 369, post import hooks, was withdrawn years ago. >> >> I guess we'd need to override __import__(), but that feels rather wrong. >> > > Can this be solved in a manner that could also work for other kernels? Not > the exact same code, but a general principle. > > Perhaps thinking of it as a general "handshaking" issue... the kernel and > the initiating front need to have a conversation about a variety of > settings, and the result is the understanding of what format certain things > will take. > I don?t think so, or at least not the behavior I am proposing. I am *not* proposing an alternative to --matplotlib inline, which imports and enables inline matplotlib at startup for all kernels. I think we should not do this because it slows kernel startup, and gets in the way if people want to to different things with matplotlib (it may be appropriate for certain hosted environments, especially while the default behavior is so problematic). Instead, I am proposing a way for import matplotlib.pyplot to ?just work? in the notebook, just as it does in the terminal, by making inline matplotlib the default in that case if %matplotlib has not already been called beforehand. This is a 100% IPython + matplotlib behavior, and not generic to other kernels. Having something generic, like ?arguments passed to the kernel? (to be generic, I do not think it should go beyond extra CLI arguments and/or environment variables) is perhaps appropriate, but not how we should fix the issue at hand. -MinRK > Maybe a general %setup or %config concept could be used. > > -Doug > > >> >> >> Thomas >> >> _______________________________________________ >> IPython-dev mailing list >> IPython-dev at scipy.org >> http://mail.scipy.org/mailman/listinfo/ipython-dev >> >> > > _______________________________________________ > IPython-dev mailing list > IPython-dev at scipy.org > http://mail.scipy.org/mailman/listinfo/ipython-dev > > ? -------------- next part -------------- An HTML attachment was scrubbed... URL: From benjaminrk at gmail.com Mon Jul 6 15:17:02 2015 From: benjaminrk at gmail.com (MinRK) Date: Mon, 6 Jul 2015 12:17:02 -0700 Subject: [IPython-dev] [EXTERNAL] rant: "%matplotlib inline" In-Reply-To: References: <559738E6.1060104@gmail.com> <42E24948-9174-49EE-B691-64549FE00169@gmail.com> <80914944-6464-486C-A3D0-B6BDF72E8B74@gmail.com> <268457DD-EF4D-4FDC-A498-2F98D9D70DA9@sandia.gov> Message-ID: On Mon, Jul 6, 2015 at 10:03 AM, Thomas Kluyver wrote: > On 6 July 2015 at 09:37, MinRK wrote: > >> I think it should be IPython's responsibility to detect matplotlib's >> import and register the inline backend. > > > This seems reasonable, but looking at the docs, I realise I'm not actually > sure how to register a hook to fire after an import. There's plenty of > machinery for intercepting imports to provide a module in some other way, > but nothing obvious for detecting that an import has happened. PEP 369, > post import hooks, was withdrawn years ago. > > I guess we'd need to override __import__(), but that feels rather wrong. > I think we can still accomplish this with a regular import hook (I already have , I just doubt the module checking is appropriately rigorous for inclusion in IPython). -MinRK > > > Thomas > > _______________________________________________ > IPython-dev mailing list > IPython-dev at scipy.org > http://mail.scipy.org/mailman/listinfo/ipython-dev > > -------------- next part -------------- An HTML attachment was scrubbed... URL: From tshead at sandia.gov Mon Jul 6 15:41:38 2015 From: tshead at sandia.gov (Shead, Timothy) Date: Mon, 6 Jul 2015 19:41:38 +0000 Subject: [IPython-dev] [EXTERNAL] rant: "%matplotlib inline" In-Reply-To: References: <559738E6.1060104@gmail.com> <42E24948-9174-49EE-B691-64549FE00169@gmail.com> Message-ID: > On Jul 6, 2015, at 12:52 PM, Fernando Perez wrote: > > > On Mon, Jul 6, 2015 at 8:28 AM, Shead, Timothy wrote: > At the risk of being self-serving, Toyplot (http://toyplot.readthedocs.org) is a plotting library for Python that Just Works when imported into a notebook. > > Not at all! Please, authors of projects like Toyplot and HoloViews, do let us know what your use cases are, and if you have a different perspective on this! We can't make informed decisions without input from you all, so it's extremely important that you pitch in. I appreciate it ? so far, I?m completely happy with current API, which has provided everything needed to integrate cleanly. > And in this case, it seems obvious that any PR that we create, should be one of those that before merging, we give it a chance to get "socialized" in the mailing list as well, by pinging folks here, since not everyone follows the repos closely... Please do! My only apprehension has been around what API changes to expect during the IPython -> Jupyter transition. To date, I've been to skimming the ?Current Development Version? documentation on the ipython.org website periodically. Cheers, Tim From takowl at gmail.com Mon Jul 6 23:35:58 2015 From: takowl at gmail.com (Thomas Kluyver) Date: Mon, 6 Jul 2015 20:35:58 -0700 Subject: [IPython-dev] [EXTERNAL] rant: "%matplotlib inline" In-Reply-To: References: <559738E6.1060104@gmail.com> <42E24948-9174-49EE-B691-64549FE00169@gmail.com> <80914944-6464-486C-A3D0-B6BDF72E8B74@gmail.com> <268457DD-EF4D-4FDC-A498-2F98D9D70DA9@sandia.gov> Message-ID: On 6 July 2015 at 12:17, MinRK wrote: > I already have > > , > I see - when you try to import matplotlib.pyplot, it disables itself, does the import inside the finder, and then claims it knows nothing about it. I could see that leading to odd, implementation dependent behaviour if it ends up loading the module twice. Thomas -------------- next part -------------- An HTML attachment was scrubbed... URL: From robert.dodier at gmail.com Tue Jul 7 00:04:39 2015 From: robert.dodier at gmail.com (Robert Dodier) Date: Mon, 6 Jul 2015 21:04:39 -0700 Subject: [IPython-dev] ZeroMQ version for IPython 3.x? Message-ID: Hi everybody, I'm interested in developing a kernel for the Maxima computer algebra system for IPython 3.x. Towards this end I'm planning to use a Lisp implementation of ZeroMQ, as Maxima is written in Lisp. First question is, what version of ZeroMQ does IPython 3.x want? I don't see this mentioned on the various pages that I've found relating to writing kernels for IPython and I didn't find in the the archive for this mailing list. Perhaps I've overlooked something. Thanks in advance for any information, & best wishes. Robert Dodier From bussonniermatthias at gmail.com Tue Jul 7 00:40:22 2015 From: bussonniermatthias at gmail.com (Matthias Bussonnier) Date: Mon, 6 Jul 2015 23:40:22 -0500 Subject: [IPython-dev] ZeroMQ version for IPython 3.x? In-Reply-To: References: Message-ID: <1773BE6F-4C50-4594-8421-B057D47BA7D2@gmail.com> Hi Robert. > On Jul 6, 2015, at 23:04, Robert Dodier wrote: > > Hi everybody, > > I'm interested in developing a kernel for the Maxima computer algebra > system for IPython 3.x. Towards this end I'm planning to use a Lisp > implementation of ZeroMQ, as Maxima is written in Lisp. > First question is, what version of ZeroMQ does IPython 3.x want? If I remember correctly, the 4.0.x and 4.1.y branch of ZMQ should be ok, exception of 4.0.6 and 4.1.1. (cf [1]). don?t see any reason why it should not work with 3.x, but we don?t have hard requirement as long as it works, and as we don?t use too advances feature of ZMQ you should mostly be safe. > I > don't see this mentioned on the various pages that I've found relating > to writing kernels for IPython and I didn't find in the the archive > for this mailing list. Perhaps I've overlooked something. Also I might have seen someone else speaking of writing a Maxima kernel not so long ago, can?t remember at what occasion (seem to me it was on gitter). Maybe some else remember. Tell us if something else is note clear, and feel free to edit the wiki. -- M [1]: http://mail.scipy.org/pipermail/ipython-dev/2015-June/016461.html -------------- next part -------------- An HTML attachment was scrubbed... URL: From benjaminrk at gmail.com Tue Jul 7 01:12:34 2015 From: benjaminrk at gmail.com (Min RK) Date: Tue, 7 Jul 2015 00:12:34 -0500 Subject: [IPython-dev] [EXTERNAL] rant: "%matplotlib inline" In-Reply-To: References: <559738E6.1060104@gmail.com> <42E24948-9174-49EE-B691-64549FE00169@gmail.com> <80914944-6464-486C-A3D0-B6BDF72E8B74@gmail.com> <268457DD-EF4D-4FDC-A498-2F98D9D70DA9@sandia.gov> Message-ID: > On Jul 6, 2015, at 22:35, Thomas Kluyver wrote: > >> On 6 July 2015 at 12:17, MinRK wrote: >> I already have, > > I see - when you try to import matplotlib.pyplot, it disables itself, does the import inside the finder, and then claims it knows nothing about it. I could see that leading to odd, implementation dependent behaviour if it ends up loading the module twice. Yup, the way I do it is probably not the best. We can probably do a better job properly integrated into IPython (e.g. don't retrigger the import, just set the mpl backend, etc.). Alternatively, we can delay the IPython call with a callback. -MinRK > > Thomas > _______________________________________________ > IPython-dev mailing list > IPython-dev at scipy.org > http://mail.scipy.org/mailman/listinfo/ipython-dev -------------- next part -------------- An HTML attachment was scrubbed... URL: From robert.dodier at gmail.com Tue Jul 7 02:27:21 2015 From: robert.dodier at gmail.com (Robert Dodier) Date: Mon, 6 Jul 2015 23:27:21 -0700 Subject: [IPython-dev] ZeroMQ version for IPython 3.x? In-Reply-To: <1773BE6F-4C50-4594-8421-B057D47BA7D2@gmail.com> References: <1773BE6F-4C50-4594-8421-B057D47BA7D2@gmail.com> Message-ID: On Mon, Jul 6, 2015 at 9:40 PM, Matthias Bussonnier wrote: > If I remember correctly, the 4.0.x and 4.1.y branch of ZMQ should be ok, > exception of 4.0.6 and 4.1.1. (cf [1]). don?t see any reason why it should > not work with 3.x, but we don?t have hard requirement as long as it > works, and as we don?t use too advances feature of ZMQ you should > mostly be safe. Thanks for the info. I have available ZeroMQ 4.0.4 via lisp-zmq so I guess that should be workable. I'll keep you posted. > Also I might have seen someone else speaking of writing a Maxima kernel > not so long ago, can?t remember at what occasion (seem to me it was on > gitter). Well, I think that was me -- I asked on the Jupyter mailing list and someone, I think it was you, advised me to stick to IPython 3.x ... best, Robert Dodier From bussonniermatthias at gmail.com Tue Jul 7 09:13:40 2015 From: bussonniermatthias at gmail.com (Matthias Bussonnier) Date: Tue, 7 Jul 2015 08:13:40 -0500 Subject: [IPython-dev] ZeroMQ version for IPython 3.x? In-Reply-To: References: <1773BE6F-4C50-4594-8421-B057D47BA7D2@gmail.com> Message-ID: > On Jul 7, 2015, at 01:27, Robert Dodier wrote: > > On Mon, Jul 6, 2015 at 9:40 PM, Matthias Bussonnier > wrote: > >> If I remember correctly, the 4.0.x and 4.1.y branch of ZMQ should be ok, >> exception of 4.0.6 and 4.1.1. (cf [1]). don?t see any reason why it should >> not work with 3.x, but we don?t have hard requirement as long as it >> works, and as we don?t use too advances feature of ZMQ you should >> mostly be safe. > > Thanks for the info. I have available ZeroMQ 4.0.4 via lisp-zmq > so I guess that should be workable. I'll keep you posted. Great ! > >> Also I might have seen someone else speaking of writing a Maxima kernel >> not so long ago, can?t remember at what occasion (seem to me it was on >> gitter). > > Well, I think that was me -- I asked on the Jupyter mailing list > and someone, I think it was you, advised me to stick to IPython 3.x ... Hum, yes probably that was something like that. -- M From fperez.net at gmail.com Tue Jul 7 21:24:12 2015 From: fperez.net at gmail.com (Fernando Perez) Date: Tue, 7 Jul 2015 18:24:12 -0700 Subject: [IPython-dev] Announcing $6M in new funding for the project over the next 3 years Message-ID: Hi all, we're delighted to finally be able to publicly announce that the project has received a new round of funding! Thanks to the generous support of the Helmsley Trust, the Gordon and Betty Moore Foundation, and the Alfred P. Sloan Foundation, Brian and I have a 3 year, $6M grant that will allow us to continue supporting the entire team in a number of interesting directions. You can read the full details of the project, including the releases from the foundations supporting us and our original grant proposal, here: http://blog.jupyter.org/2015/07/07/jupyter-funding-2015 Stay tuned, over the next few weeks, as we move forward with more job announcements. But it's a good time to remind everyone of the ones we already have: https://www.calpolycorporationjobs.org/postings/736 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 steve at holdenweb.com Wed Jul 8 02:45:49 2015 From: steve at holdenweb.com (Steve Holden) Date: Wed, 8 Jul 2015 07:45:49 +0100 Subject: [IPython-dev] Fwd: [PSF-Board-Public] Raspberry Pi Foundation & Project Jupyter? References: Message-ID: <6E1E7C6B-39F0-415D-8986-080FBC0F5300@holdenweb.com> Forwarded to the IPython-dev list, where those likely to know the answer may see it. S Begin forwarded message: > From: Nick Coghlan > Subject: [PSF-Board-Public] Raspberry Pi Foundation & Project Jupyter? > Date: July 8, 2015 6:34:33 AM GMT+01:00 > To: "psf-board-public at python.org" > > Carrie Anne mentioned to me recently that the Raspberry Pi Foundation > are currently exploring their options for coming up with a > "recommended teaching environment" (my words, not hers) for teaching > Python to school students. > > The team behind Project Jupyter (the language independent framework > that was born out of the IPython Notebook) just announced they have > received $6m in grant funding to make further enhancements to the > platform, including making it more modular so components can be > re-used as parts of other applications: > http://blog.jupyter.org/2015/07/07/jupyter-funding-2015/ > > Are there any existing collaborations between the Raspberry Pi > Foundation and the Project Jupyter team at an institutional level > rather than at the individual level? If not, that strikes me as a > conversation we should be helping to start :) > > Cheers, > Nick. > > -- > Nick Coghlan | ncoghlan at gmail.com | Brisbane, Australia > _______________________________________________ > PSF-Board-Public mailing list > PSF-Board-Public at python.org > https://mail.python.org/mailman/listinfo/psf-board-public -- Steve Holden steve at holdenweb.com / +1 571 484 6266 / +44 208 289 6308 / @holdenweb -------------- next part -------------- An HTML attachment was scrubbed... URL: From sarbanes at hotmail.com Wed Jul 8 10:09:56 2015 From: sarbanes at hotmail.com (T. Sarbanes) Date: Wed, 8 Jul 2015 14:09:56 +0000 Subject: [IPython-dev] Announcing $6M in new funding for the project over the next 3 years In-Reply-To: References: Message-ID: Congrats!!! A very well-deserved award for the whole team. Keep up the great work. Thank you for the continued breakthrough and endless evolutionary innovations. Cheers, Tassos Sarbanes From: fperez.net at gmail.com Date: Tue, 7 Jul 2015 18:24:12 -0700 To: jupyter at googlegroups.com; ipython-dev at scipy.org Subject: [IPython-dev] Announcing $6M in new funding for the project over the next 3 years Hi all, we're delighted to finally be able to publicly announce that the project has received a new round of funding! Thanks to the generous support of the Helmsley Trust, the Gordon and Betty Moore Foundation, and the Alfred P. Sloan Foundation, Brian and I have a 3 year, $6M grant that will allow us to continue supporting the entire team in a number of interesting directions. You can read the full details of the project, including the releases from the foundations supporting us and our original grant proposal, here: http://blog.jupyter.org/2015/07/07/jupyter-funding-2015 Stay tuned, over the next few weeks, as we move forward with more job announcements. But it's a good time to remind everyone of the ones we already have: https://www.calpolycorporationjobs.org/postings/736 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 http://mail.scipy.org/mailman/listinfo/ipython-dev -------------- next part -------------- An HTML attachment was scrubbed... URL: From pmhobson at gmail.com Wed Jul 8 10:39:25 2015 From: pmhobson at gmail.com (Paul Hobson) Date: Wed, 8 Jul 2015 07:39:25 -0700 Subject: [IPython-dev] Announcing $6M in new funding for the project over the next 3 years In-Reply-To: References: Message-ID: Wow! Congrats to everyone involved. This is incredibly exciting! -p On Wed, Jul 8, 2015 at 7:09 AM, T. Sarbanes wrote: > Congrats!!! > A very well-deserved award for the whole team. > > Keep up the great work. > > Thank you for the continued breakthrough and endless evolutionary > innovations. > > Cheers, > Tassos Sarbanes > > ------------------------------ > From: fperez.net at gmail.com > Date: Tue, 7 Jul 2015 18:24:12 -0700 > To: jupyter at googlegroups.com; ipython-dev at scipy.org > Subject: [IPython-dev] Announcing $6M in new funding for the project over > the next 3 years > > > Hi all, > > we're delighted to finally be able to publicly announce that the project > has received a new round of funding! > > Thanks to the generous support of the Helmsley Trust, the Gordon and Betty > Moore Foundation, and the Alfred P. Sloan Foundation, Brian and I have a 3 > year, $6M grant that will allow us to continue supporting the entire team > in a number of interesting directions. > > You can read the full details of the project, including the releases from > the foundations supporting us and our original grant proposal, here: > > http://blog.jupyter.org/2015/07/07/jupyter-funding-2015 > > Stay tuned, over the next few weeks, as we move forward with more job > announcements. But it's a good time to remind everyone of the ones we > already have: https://www.calpolycorporationjobs.org/postings/736 > > 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 http://mail.scipy.org/mailman/listinfo/ipython-dev > > _______________________________________________ > IPython-dev mailing list > IPython-dev at scipy.org > http://mail.scipy.org/mailman/listinfo/ipython-dev > > -------------- next part -------------- An HTML attachment was scrubbed... URL: From takowl at gmail.com Wed Jul 8 10:58:56 2015 From: takowl at gmail.com (Thomas Kluyver) Date: Wed, 8 Jul 2015 07:58:56 -0700 Subject: [IPython-dev] Fwd: [PSF-Board-Public] Raspberry Pi Foundation & Project Jupyter? In-Reply-To: <6E1E7C6B-39F0-415D-8986-080FBC0F5300@holdenweb.com> References: <6E1E7C6B-39F0-415D-8986-080FBC0F5300@holdenweb.com> Message-ID: On 7 July 2015 at 23:45, Steve Holden wrote: > Are there any existing collaborations between the Raspberry Pi > Foundation and the Project Jupyter team at an institutional level > rather than at the individual level? If not, that strikes me as a > conversation we should be helping to start :) > As far as I know there are no such collaborations, but we'd be very happy to talk more with the Raspberry Pi people. I'll be moving back to the UK in a couple more months, which may make some communications easier. Thanks, Thomas -------------- next part -------------- An HTML attachment was scrubbed... URL: From fperez.net at gmail.com Wed Jul 8 15:14:38 2015 From: fperez.net at gmail.com (Fernando Perez) Date: Wed, 8 Jul 2015 12:14:38 -0700 Subject: [IPython-dev] Fwd: [PSF-Board-Public] Raspberry Pi Foundation & Project Jupyter? In-Reply-To: References: <6E1E7C6B-39F0-415D-8986-080FBC0F5300@holdenweb.com> Message-ID: On Wed, Jul 8, 2015 at 7:58 AM, Thomas Kluyver wrote: > On 7 July 2015 at 23:45, Steve Holden wrote: > >> Are there any existing collaborations between the Raspberry Pi >> Foundation and the Project Jupyter team at an institutional level >> rather than at the individual level? If not, that strikes me as a >> conversation we should be helping to start :) >> > > As far as I know there are no such collaborations, but we'd be very happy > to talk more with the Raspberry Pi people. > > I'll be moving back to the UK in a couple more months, which may make some > communications easier. > In addition to this, it's also worth mentioning the OpenDreamKit project: http://opendreamkit.org/ it's an EU-funded effort, where Jupyter will also play a role (Thomas and Min will be part of the effort), and given the RPi foundation is based in Europe, that may be another channel for easier communications. A number of the same players are involved. Cheers, f -------------- next part -------------- An HTML attachment was scrubbed... URL: From bussonniermatthias at gmail.com Thu Jul 9 12:04:46 2015 From: bussonniermatthias at gmail.com (Matthias Bussonnier) Date: Thu, 9 Jul 2015 11:04:46 -0500 Subject: [IPython-dev] Poll on Deprecating %load_ext Message-ID: Hello list, TL;DR: We are considering deprecating the %install_ext magic[1] do you have usages that are not covered by doing actual packages? Longer version: As we are refactoring and cleaning IPython for a 4.0 release we come across lots of small pieces of code that have been around for a long time, and for which the presence into IPython might only be historical reason. I recently came across new magics projects recommending to be install using the %install_ext magic. As we all know, Python packaging system, have been improving the last few years, and it is now relatively simple[2] to put a python package on PyPI. As you all know, or might learn, you do not need to install a magic with %install_ext, you can just make it a python module. There is then no apparent reasons to keep %install_ext around, as we do not want to reinvent the wheel, and %install_ext does not cover many areas that pip/conda/apt does. For example, security, update, uninstall, venv ... So the question is: Do you use %install_ext for usage that cannot be covered by pip or other package manager tools ? Do you have any opposition of us deprecating %install-ext ? Do you approve of us getting rid of %install_ext ? You can reply to this thread or on the PR to give us your input. Thanks, -- M [1]: https://github.com/ipython/ipython/pull/8601 [2]: shameless plug for thomas project: https://github.com/takluyver/flit -------------- next part -------------- An HTML attachment was scrubbed... URL: From ellisonbg at gmail.com Thu Jul 9 12:06:56 2015 From: ellisonbg at gmail.com (Brian Granger) Date: Thu, 9 Jul 2015 11:06:56 -0500 Subject: [IPython-dev] Poll on Deprecating %load_ext In-Reply-To: References: Message-ID: I am +1 on deprecating it. On Thu, Jul 9, 2015 at 11:04 AM, Matthias Bussonnier wrote: > Hello list, > > > TL;DR: We are considering deprecating the %install_ext magic[1] do you have > usages that are not covered by doing actual packages? > > Longer version: > > As we are refactoring and cleaning IPython for a 4.0 release we come across > lots of > small pieces of code that have been around for a long time, and for which > the presence > into IPython might only be historical reason. > > I recently came across new magics projects recommending to be install using > the %install_ext magic. > As we all know, Python packaging system, have been improving the last few > years, and it is now relatively simple[2] > to put a python package on PyPI. As you all know, or might learn, you do not > need to install a magic with %install_ext, > you can just make it a python module. > > There is then no apparent reasons to keep %install_ext around, as we do not > want to reinvent the wheel, and %install_ext > does not cover many areas that pip/conda/apt does. For example, security, > update, uninstall, venv ... > > So the question is: Do you use %install_ext for usage that cannot be covered > by pip or other package manager tools ? > Do you have any opposition of us deprecating %install-ext ? Do you approve > of us getting rid of %install_ext ? > > You can reply to this thread or on the PR to give us your input. > > Thanks, > -- > M > [1]: https://github.com/ipython/ipython/pull/8601 > [2]: shameless plug for thomas project: https://github.com/takluyver/flit > > _______________________________________________ > IPython-dev mailing list > IPython-dev at scipy.org > http://mail.scipy.org/mailman/listinfo/ipython-dev > -- Brian E. Granger Cal Poly State University, San Luis Obispo @ellisonbg on Twitter and GitHub bgranger at calpoly.edu and ellisonbg at gmail.com From damianavila at gmail.com Thu Jul 9 12:34:53 2015 From: damianavila at gmail.com (=?UTF-8?Q?Dami=C3=A1n_Avila?=) Date: Thu, 09 Jul 2015 16:34:53 +0000 Subject: [IPython-dev] Poll on Deprecating %load_ext In-Reply-To: References: Message-ID: +1 on deprecation as well... On Thu, Jul 9, 2015 at 11:07 AM Brian Granger wrote: > I am +1 on deprecating it. > > On Thu, Jul 9, 2015 at 11:04 AM, Matthias Bussonnier > wrote: > > Hello list, > > > > > > TL;DR: We are considering deprecating the %install_ext magic[1] do you > have > > usages that are not covered by doing actual packages? > > > > Longer version: > > > > As we are refactoring and cleaning IPython for a 4.0 release we come > across > > lots of > > small pieces of code that have been around for a long time, and for which > > the presence > > into IPython might only be historical reason. > > > > I recently came across new magics projects recommending to be install > using > > the %install_ext magic. > > As we all know, Python packaging system, have been improving the last few > > years, and it is now relatively simple[2] > > to put a python package on PyPI. As you all know, or might learn, you do > not > > need to install a magic with %install_ext, > > you can just make it a python module. > > > > There is then no apparent reasons to keep %install_ext around, as we do > not > > want to reinvent the wheel, and %install_ext > > does not cover many areas that pip/conda/apt does. For example, security, > > update, uninstall, venv ... > > > > So the question is: Do you use %install_ext for usage that cannot be > covered > > by pip or other package manager tools ? > > Do you have any opposition of us deprecating %install-ext ? Do you > approve > > of us getting rid of %install_ext ? > > > > You can reply to this thread or on the PR to give us your input. > > > > Thanks, > > -- > > M > > [1]: https://github.com/ipython/ipython/pull/8601 > > [2]: shameless plug for thomas project: > https://github.com/takluyver/flit > > > > _______________________________________________ > > IPython-dev mailing list > > IPython-dev at scipy.org > > http://mail.scipy.org/mailman/listinfo/ipython-dev > > > > > > -- > Brian E. Granger > Cal Poly State University, San Luis Obispo > @ellisonbg on Twitter and GitHub > bgranger at calpoly.edu and ellisonbg at gmail.com > _______________________________________________ > IPython-dev mailing list > IPython-dev at scipy.org > http://mail.scipy.org/mailman/listinfo/ipython-dev > -- Dami?n Avila -------------- next part -------------- An HTML attachment was scrubbed... URL: From kikocorreoso at gmail.com Thu Jul 9 12:45:36 2015 From: kikocorreoso at gmail.com (Kiko) Date: Thu, 9 Jul 2015 18:45:36 +0200 Subject: [IPython-dev] Poll on Deprecating %load_ext In-Reply-To: References: Message-ID: I'm +1 to show a deprecation warning. Also it would be great if there are some docs explaining how to create extensions (js/python) for newbies (also some links/recipes to how to create conda, pypi packages for dummies for easy/general cases). I have created some extensions but I had to look for info on github, blog posts, official docs, notebooks, code,... For instance, I have created an extension to publish from the notebook to a wordpress blog [1] just with a button but it doesn't work on windows ??. I asked for help here with no luck [2] [3]. This repo [4] doesn't it could be confusing for a newbie and there isn't info to create a pypi/conda package and several ways to install an extension (mainly only js). Thanks for the hard work and congratulasions for the new funding!!!! Very inspiring work. P.D.: If you provide me some info/hints/guidelines/ideas/... I can try to be in charge to create this documentation. [1] https://github.com/Pybonacci/ipy2wp [2] http://mail.scipy.org/pipermail/ipython-dev/2015-February/015859.html [3] https://github.com/Pybonacci/ipy2wp/issues [4] https://github.com/ipython-contrib/IPython-notebook-extensions/wiki#general-installation-instruction 2015-07-09 18:06 GMT+02:00 Brian Granger : > I am +1 on deprecating it. > > On Thu, Jul 9, 2015 at 11:04 AM, Matthias Bussonnier > wrote: > > Hello list, > > > > > > TL;DR: We are considering deprecating the %install_ext magic[1] do you > have > > usages that are not covered by doing actual packages? > > > > Longer version: > > > > As we are refactoring and cleaning IPython for a 4.0 release we come > across > > lots of > > small pieces of code that have been around for a long time, and for which > > the presence > > into IPython might only be historical reason. > > > > I recently came across new magics projects recommending to be install > using > > the %install_ext magic. > > As we all know, Python packaging system, have been improving the last few > > years, and it is now relatively simple[2] > > to put a python package on PyPI. As you all know, or might learn, you do > not > > need to install a magic with %install_ext, > > you can just make it a python module. > > > > There is then no apparent reasons to keep %install_ext around, as we do > not > > want to reinvent the wheel, and %install_ext > > does not cover many areas that pip/conda/apt does. For example, security, > > update, uninstall, venv ... > > > > So the question is: Do you use %install_ext for usage that cannot be > covered > > by pip or other package manager tools ? > > Do you have any opposition of us deprecating %install-ext ? Do you > approve > > of us getting rid of %install_ext ? > > > > You can reply to this thread or on the PR to give us your input. > > > > Thanks, > > -- > > M > > [1]: https://github.com/ipython/ipython/pull/8601 > > [2]: shameless plug for thomas project: > https://github.com/takluyver/flit > > > > _______________________________________________ > > IPython-dev mailing list > > IPython-dev at scipy.org > > http://mail.scipy.org/mailman/listinfo/ipython-dev > > > > > > -- > Brian E. Granger > Cal Poly State University, San Luis Obispo > @ellisonbg on Twitter and GitHub > bgranger at calpoly.edu and ellisonbg at gmail.com > _______________________________________________ > IPython-dev mailing list > IPython-dev at scipy.org > http://mail.scipy.org/mailman/listinfo/ipython-dev > -------------- next part -------------- An HTML attachment was scrubbed... URL: From wes.turner at gmail.com Thu Jul 9 14:25:11 2015 From: wes.turner at gmail.com (Wes Turner) Date: Thu, 9 Jul 2015 13:25:11 -0500 Subject: [IPython-dev] Poll on Deprecating %load_ext In-Reply-To: References: Message-ID: * http://mail.scipy.org/pipermail/ipython-dev/2014-April/013880.html (SEC: "%install_ext security and reproducibility") * [ ] setuptools entry_points for extensions * [ ] https://wrdrd.com/docs/consulting/education-technology#jupyter-and-reproducibility On Jul 9, 2015 11:07 AM, "Brian Granger" wrote: > I am +1 on deprecating it. > > On Thu, Jul 9, 2015 at 11:04 AM, Matthias Bussonnier > wrote: > > Hello list, > > > > > > TL;DR: We are considering deprecating the %install_ext magic[1] do you > have > > usages that are not covered by doing actual packages? > > > > Longer version: > > > > As we are refactoring and cleaning IPython for a 4.0 release we come > across > > lots of > > small pieces of code that have been around for a long time, and for which > > the presence > > into IPython might only be historical reason. > > > > I recently came across new magics projects recommending to be install > using > > the %install_ext magic. > > As we all know, Python packaging system, have been improving the last few > > years, and it is now relatively simple[2] > > to put a python package on PyPI. As you all know, or might learn, you do > not > > need to install a magic with %install_ext, > > you can just make it a python module. > > > > There is then no apparent reasons to keep %install_ext around, as we do > not > > want to reinvent the wheel, and %install_ext > > does not cover many areas that pip/conda/apt does. For example, security, > > update, uninstall, venv ... > > > > So the question is: Do you use %install_ext for usage that cannot be > covered > > by pip or other package manager tools ? > > Do you have any opposition of us deprecating %install-ext ? Do you > approve > > of us getting rid of %install_ext ? > > > > You can reply to this thread or on the PR to give us your input. > > > > Thanks, > > -- > > M > > [1]: https://github.com/ipython/ipython/pull/8601 > > [2]: shameless plug for thomas project: > https://github.com/takluyver/flit > > > > _______________________________________________ > > IPython-dev mailing list > > IPython-dev at scipy.org > > http://mail.scipy.org/mailman/listinfo/ipython-dev > > > > > > -- > Brian E. Granger > Cal Poly State University, San Luis Obispo > @ellisonbg on Twitter and GitHub > bgranger at calpoly.edu and ellisonbg at gmail.com > _______________________________________________ > IPython-dev mailing list > IPython-dev at scipy.org > http://mail.scipy.org/mailman/listinfo/ipython-dev > -------------- next part -------------- An HTML attachment was scrubbed... URL: From nick.bollweg at gmail.com Thu Jul 9 14:50:14 2015 From: nick.bollweg at gmail.com (Nicholas Bollweg) Date: Thu, 09 Jul 2015 18:50:14 +0000 Subject: [IPython-dev] Poll on Deprecating %load_ext In-Reply-To: References: Message-ID: I've never used install_ext, so I am all for killing it! Since someone else raised the entry_point thing as a drive-by: I do support using this mechanism, vs. a homerolled solution, but see the limitations it imposes. Namely, it would be unreasonable to load all installed entry_points at runtime, so you would still need some mechanism to do so selectively, and a magic probably still makes the most sense. It wouldn't be crazy though, if after failing to find a magic, it went ahead and tried to load that magic as an entry point :) Bundled assets are another place where entry_points would make things better... for python people. Can't speak to other kernels. For example, jupyter-pip is the easiest way to do this today, but presently doesn't (won't ever) work with wheels: https://github.com/jdfreder/jupyter-pip/issues/15 so it probably wouldn't work with flit, which looks nice... though YAML please :) On Thu, Jul 9, 2015 at 2:25 PM Wes Turner wrote: > * http://mail.scipy.org/pipermail/ipython-dev/2014-April/013880.html > (SEC: "%install_ext security and reproducibility") > > * [ ] setuptools entry_points for extensions > * [ ] > https://wrdrd.com/docs/consulting/education-technology#jupyter-and-reproducibility > On Jul 9, 2015 11:07 AM, "Brian Granger" wrote: > >> I am +1 on deprecating it. >> >> On Thu, Jul 9, 2015 at 11:04 AM, Matthias Bussonnier >> wrote: >> > Hello list, >> > >> > >> > TL;DR: We are considering deprecating the %install_ext magic[1] do you >> have >> > usages that are not covered by doing actual packages? >> > >> > Longer version: >> > >> > As we are refactoring and cleaning IPython for a 4.0 release we come >> across >> > lots of >> > small pieces of code that have been around for a long time, and for >> which >> > the presence >> > into IPython might only be historical reason. >> > >> > I recently came across new magics projects recommending to be install >> using >> > the %install_ext magic. >> > As we all know, Python packaging system, have been improving the last >> few >> > years, and it is now relatively simple[2] >> > to put a python package on PyPI. As you all know, or might learn, you >> do not >> > need to install a magic with %install_ext, >> > you can just make it a python module. >> > >> > There is then no apparent reasons to keep %install_ext around, as we do >> not >> > want to reinvent the wheel, and %install_ext >> > does not cover many areas that pip/conda/apt does. For example, >> security, >> > update, uninstall, venv ... >> > >> > So the question is: Do you use %install_ext for usage that cannot be >> covered >> > by pip or other package manager tools ? >> > Do you have any opposition of us deprecating %install-ext ? Do you >> approve >> > of us getting rid of %install_ext ? >> > >> > You can reply to this thread or on the PR to give us your input. >> > >> > Thanks, >> > -- >> > M >> > [1]: https://github.com/ipython/ipython/pull/8601 >> > [2]: shameless plug for thomas project: >> https://github.com/takluyver/flit >> > >> > _______________________________________________ >> > IPython-dev mailing list >> > IPython-dev at scipy.org >> > http://mail.scipy.org/mailman/listinfo/ipython-dev >> > >> >> >> >> -- >> Brian E. Granger >> Cal Poly State University, San Luis Obispo >> @ellisonbg on Twitter and GitHub >> bgranger at calpoly.edu and ellisonbg at gmail.com >> _______________________________________________ >> IPython-dev mailing list >> IPython-dev at scipy.org >> http://mail.scipy.org/mailman/listinfo/ipython-dev >> > _______________________________________________ > IPython-dev mailing list > IPython-dev at scipy.org > http://mail.scipy.org/mailman/listinfo/ipython-dev > -------------- next part -------------- An HTML attachment was scrubbed... URL: From robert.kern at gmail.com Thu Jul 9 15:30:10 2015 From: robert.kern at gmail.com (Robert Kern) Date: Thu, 09 Jul 2015 20:30:10 +0100 Subject: [IPython-dev] Poll on Deprecating %load_ext In-Reply-To: References: Message-ID: On 2015-07-09 17:04, Matthias Bussonnier wrote: > Hello list, > > > TL;DR: We are considering deprecating the %install_ext magic[1] do you have > usages that are not covered by doing actual packages? Just to clarify, the Subject line is in error, and you are only deprecating %install_ext and not %load_ext? -- Robert Kern "I have come to believe that the whole world is an enigma, a harmless enigma that is made terrible by our own mad attempt to interpret it as though it had an underlying truth." -- Umberto Eco From bussonniermatthias at gmail.com Thu Jul 9 16:06:14 2015 From: bussonniermatthias at gmail.com (Matthias Bussonnier) Date: Thu, 9 Jul 2015 15:06:14 -0500 Subject: [IPython-dev] Poll on Deprecating %load_ext In-Reply-To: References: Message-ID: <9653B538-73BD-423B-8B79-3714DC333043@gmail.com> > On Jul 9, 2015, at 14:30, Robert Kern wrote: > > On 2015-07-09 17:04, Matthias Bussonnier wrote: >> Hello list, >> >> >> TL;DR: We are considering deprecating the %install_ext magic[1] do you have >> usages that are not covered by doing actual packages? > > Just to clarify, the Subject line is in error, and you are only deprecating > %install_ext and not %load_ext? Yeah, completely sorry, habit of typing %load_ext, Yes, it is about deprecating **%install_ext** . Thanks. -- M From bussonniermatthias at gmail.com Thu Jul 9 16:06:14 2015 From: bussonniermatthias at gmail.com (Matthias Bussonnier) Date: Thu, 9 Jul 2015 15:06:14 -0500 Subject: [IPython-dev] Poll on Deprecating %load_ext In-Reply-To: References: Message-ID: <9653B538-73BD-423B-8B79-3714DC333043@gmail.com> > On Jul 9, 2015, at 14:30, Robert Kern wrote: > > On 2015-07-09 17:04, Matthias Bussonnier wrote: >> Hello list, >> >> >> TL;DR: We are considering deprecating the %install_ext magic[1] do you have >> usages that are not covered by doing actual packages? > > Just to clarify, the Subject line is in error, and you are only deprecating > %install_ext and not %load_ext? Yeah, completely sorry, habit of typing %load_ext, Yes, it is about deprecating **%install_ext** . Thanks. -- M From benjaminrk at gmail.com Thu Jul 9 16:54:32 2015 From: benjaminrk at gmail.com (MinRK) Date: Thu, 9 Jul 2015 15:54:32 -0500 Subject: [IPython-dev] Poll on Deprecating %load_ext In-Reply-To: <9653B538-73BD-423B-8B79-3714DC333043@gmail.com> References: <9653B538-73BD-423B-8B79-3714DC333043@gmail.com> Message-ID: Entrypoints don't solve any problems relevant here. +1 to deprecating `%install_ext`. -MinRK On Thu, Jul 9, 2015 at 3:06 PM, Matthias Bussonnier < bussonniermatthias at gmail.com> wrote: > > > On Jul 9, 2015, at 14:30, Robert Kern wrote: > > > > On 2015-07-09 17:04, Matthias Bussonnier wrote: > >> Hello list, > >> > >> > >> TL;DR: We are considering deprecating the %install_ext magic[1] do you > have > >> usages that are not covered by doing actual packages? > > > > Just to clarify, the Subject line is in error, and you are only > deprecating > > %install_ext and not %load_ext? > > Yeah, completely sorry, habit of typing %load_ext, > > Yes, it is about deprecating **%install_ext** . > > Thanks. > -- > M > > > _______________________________________________ > IPython-dev mailing list > IPython-dev at scipy.org > http://mail.scipy.org/mailman/listinfo/ipython-dev > -------------- next part -------------- An HTML attachment was scrubbed... URL: From benjaminrk at gmail.com Thu Jul 9 16:54:32 2015 From: benjaminrk at gmail.com (MinRK) Date: Thu, 9 Jul 2015 15:54:32 -0500 Subject: [IPython-dev] Poll on Deprecating %load_ext In-Reply-To: <9653B538-73BD-423B-8B79-3714DC333043@gmail.com> References: <9653B538-73BD-423B-8B79-3714DC333043@gmail.com> Message-ID: Entrypoints don't solve any problems relevant here. +1 to deprecating `%install_ext`. -MinRK On Thu, Jul 9, 2015 at 3:06 PM, Matthias Bussonnier < bussonniermatthias at gmail.com> wrote: > > > On Jul 9, 2015, at 14:30, Robert Kern wrote: > > > > On 2015-07-09 17:04, Matthias Bussonnier wrote: > >> Hello list, > >> > >> > >> TL;DR: We are considering deprecating the %install_ext magic[1] do you > have > >> usages that are not covered by doing actual packages? > > > > Just to clarify, the Subject line is in error, and you are only > deprecating > > %install_ext and not %load_ext? > > Yeah, completely sorry, habit of typing %load_ext, > > Yes, it is about deprecating **%install_ext** . > > Thanks. > -- > M > > > _______________________________________________ > IPython-dev mailing list > IPython-dev at scipy.org > http://mail.scipy.org/mailman/listinfo/ipython-dev > -------------- next part -------------- An HTML attachment was scrubbed... URL: From takowl at gmail.com Thu Jul 9 23:31:43 2015 From: takowl at gmail.com (Thomas Kluyver) Date: Thu, 9 Jul 2015 22:31:43 -0500 Subject: [IPython-dev] IPython and Jupyter 4.0 release plans Message-ID: Hi all, I've volunteered to co-ordinate the release of our various packages for 4.0. This will hopefully be the only time that we need to do a co-ordinated release of all the projects: once 4.0 is out, they should mostly be able to evolve independently. So here's a summary of the current state and where we're going. We have already released: traitlets, jupyter_core, nbformat, ipython_genutils I hope that in the sprints here at Scipy 2015, we can get jupyter_client and nbconvert released. After this, the packages will need some extra co-ordination: ipykernel, ipyparallel, ipywidgets, notebook, jupyter_console and jupyter_qtconsole all depend on a new release of the ipython package, but that new release will remove all the features that are moving into those packages, and we don't want to leave people unable to install the notebook. I hope that we can dodge this by releasing ipython 4.0.beta1 first, then releasing packages with a dependency on that, and releasing ipython 4.0 final as the last thing. I want to talk this over with Min to check that it will work. If not, we can either release the other packages first, so you'll only be able to install them once ipython 4 is out, or do a 'big bang' release of those seven packages more or less simultaneously. I hope we can get all of these pieces out by the end of the month. Thanks, Thomas -------------- next part -------------- An HTML attachment was scrubbed... URL: From benjaminrk at gmail.com Fri Jul 10 00:22:32 2015 From: benjaminrk at gmail.com (MinRK) Date: Thu, 9 Jul 2015 23:22:32 -0500 Subject: [IPython-dev] IPython and Jupyter 4.0 release plans In-Reply-To: References: Message-ID: On Thu, Jul 9, 2015 at 10:31 PM, Thomas Kluyver wrote: > Hi all, > > I've volunteered to co-ordinate the release of our various packages for > 4.0. This will hopefully be the only time that we need to do a co-ordinated > release of all the projects: once 4.0 is out, they should mostly be able to > evolve independently. So here's a summary of the current state and where > we're going. > > We have already released: traitlets, jupyter_core, nbformat, > ipython_genutils > > I hope that in the sprints here at Scipy 2015, we can get jupyter_client > and nbconvert released. > > After this, the packages will need some extra co-ordination: ipykernel, > ipyparallel, ipywidgets, notebook, jupyter_console and jupyter_qtconsole > all depend on a new release of the ipython package, but that new release > will remove all the features that are moving into those packages, and we > don't want to leave people unable to install the notebook. > > I hope that we can dodge this by releasing ipython 4.0.beta1 first, then > releasing packages with a dependency on that, and releasing ipython 4.0 > final as the last thing. I want to talk this over with Min to check that it > will work. If not, we can either release the other packages first, so > you'll only be able to install them once ipython 4 is out, or do a 'big > bang' release of those seven packages more or less simultaneously. > I had been thinking that we could just release the downstream packages (qtconsole, console, ipykernel, etc.) first. They wouldn't be installable in a clean env until ipython 4 ships, but they would still work fine if IPython had been installed first (or in the same command) from master. However, doing a beta release would allow us to skip the `-e` step, and just require a `--pre` tag in the meantime before IPython stable ships, which is probably better. We'll talk more at SciPy tomorrow and during the sprints, but I'm optimistic that we can get this stuff shipped promptly. Thanks for taking the lead on this. -MinRK > > I hope we can get all of these pieces out by the end of the month. > > Thanks, > Thomas > > _______________________________________________ > IPython-dev mailing list > IPython-dev at scipy.org > http://mail.scipy.org/mailman/listinfo/ipython-dev > > -------------- next part -------------- An HTML attachment was scrubbed... URL: From fperez.net at gmail.com Fri Jul 10 00:40:12 2015 From: fperez.net at gmail.com (Fernando Perez) Date: Thu, 9 Jul 2015 21:40:12 -0700 Subject: [IPython-dev] Poll on Deprecating %load_ext In-Reply-To: References: <9653B538-73BD-423B-8B79-3714DC333043@gmail.com> Message-ID: We seem to have some reasonable consensus on moving forward here, so I suggest that if anyone is particularly interested on the issue, they jump on the actual PR ?from here on: https://github.com/ipython/ipython/pull/8601 My vote is to move forward with merging. Cheers f -------------- next part -------------- An HTML attachment was scrubbed... URL: From fperez.net at gmail.com Fri Jul 10 00:40:12 2015 From: fperez.net at gmail.com (Fernando Perez) Date: Thu, 9 Jul 2015 21:40:12 -0700 Subject: [IPython-dev] Poll on Deprecating %load_ext In-Reply-To: References: <9653B538-73BD-423B-8B79-3714DC333043@gmail.com> Message-ID: We seem to have some reasonable consensus on moving forward here, so I suggest that if anyone is particularly interested on the issue, they jump on the actual PR ?from here on: https://github.com/ipython/ipython/pull/8601 My vote is to move forward with merging. Cheers f -------------- next part -------------- An HTML attachment was scrubbed... URL: From maximilian.albert at gmail.com Fri Jul 10 04:06:50 2015 From: maximilian.albert at gmail.com (Maximilian Albert) Date: Fri, 10 Jul 2015 09:06:50 +0100 Subject: [IPython-dev] Poll on Deprecating %load_ext In-Reply-To: References: <9653B538-73BD-423B-8B79-3714DC333043@gmail.com> Message-ID: 2015-07-10 5:40 GMT+01:00 Fernando Perez : > We seem to have some reasonable consensus on moving forward here, [...] > > My vote is to move forward with merging. > This is not a comment on the original question but rather a minor word of caution regarding the process of discussion. I think it's absolutely great that there is a concerted effort from the core team to involve the wider community and seek feedback on these kinds of questions. As numerous examples have shown in the past, users often extend (or even bend) the existing infrastructure in interesting/unexpected ways, and it's essential to understand these before making changes like this. However, I'd like to point out that it's barely been 16 hours since Matthias' first email in this thread, so I'm almost certain that not everybody who has an opinion on this has even read all the emails yet). As we saw in the discussion about deleting gitter chatrooms, proceeding too quickly can lead to frustration even for core developers who continuously monitor this mailing list if they feel they didn't have a chance to respond in time. I was wondering whether it's worth having some sort of 'protocol' which prescribes certain minimum timeframe for these kinds of discussion and ensures that everyone interested has had a chance to state there opinion on it? It would be a shame to alienate users just because they miss a discussion that only lasted for a few hours. We might not even find out about it because they may just silently turn away from the community without speaking up. I have no feeling for what a reasonable timeframe would be, though (maybe 2-3 days? - might be worth asking the community about it :-P). I can also see how keeping discussions open for longer may lead to an additional burden for the developers who need to keep track of open issues. What does everyone think? If it's worth discussing then I'm happy to re-send this email in a separate thread so that it's not buried where people are likely to miss it. Cheers, Max -------------- next part -------------- An HTML attachment was scrubbed... URL: From maximilian.albert at gmail.com Fri Jul 10 04:06:50 2015 From: maximilian.albert at gmail.com (Maximilian Albert) Date: Fri, 10 Jul 2015 09:06:50 +0100 Subject: [IPython-dev] Poll on Deprecating %load_ext In-Reply-To: References: <9653B538-73BD-423B-8B79-3714DC333043@gmail.com> Message-ID: 2015-07-10 5:40 GMT+01:00 Fernando Perez : > We seem to have some reasonable consensus on moving forward here, [...] > > My vote is to move forward with merging. > This is not a comment on the original question but rather a minor word of caution regarding the process of discussion. I think it's absolutely great that there is a concerted effort from the core team to involve the wider community and seek feedback on these kinds of questions. As numerous examples have shown in the past, users often extend (or even bend) the existing infrastructure in interesting/unexpected ways, and it's essential to understand these before making changes like this. However, I'd like to point out that it's barely been 16 hours since Matthias' first email in this thread, so I'm almost certain that not everybody who has an opinion on this has even read all the emails yet). As we saw in the discussion about deleting gitter chatrooms, proceeding too quickly can lead to frustration even for core developers who continuously monitor this mailing list if they feel they didn't have a chance to respond in time. I was wondering whether it's worth having some sort of 'protocol' which prescribes certain minimum timeframe for these kinds of discussion and ensures that everyone interested has had a chance to state there opinion on it? It would be a shame to alienate users just because they miss a discussion that only lasted for a few hours. We might not even find out about it because they may just silently turn away from the community without speaking up. I have no feeling for what a reasonable timeframe would be, though (maybe 2-3 days? - might be worth asking the community about it :-P). I can also see how keeping discussions open for longer may lead to an additional burden for the developers who need to keep track of open issues. What does everyone think? If it's worth discussing then I'm happy to re-send this email in a separate thread so that it's not buried where people are likely to miss it. Cheers, Max -------------- next part -------------- An HTML attachment was scrubbed... URL: From wes.turner at gmail.com Fri Jul 10 04:32:47 2015 From: wes.turner at gmail.com (Wes Turner) Date: Fri, 10 Jul 2015 03:32:47 -0500 Subject: [IPython-dev] Poll on Deprecating %load_ext In-Reply-To: References: <9653B538-73BD-423B-8B79-3714DC333043@gmail.com> Message-ID: On Jul 10, 2015 3:07 AM, "Maximilian Albert" wrote: > > 2015-07-10 5:40 GMT+01:00 Fernando Perez : >> >> We seem to have some reasonable consensus on moving forward here, [...] >> >> My vote is to move forward with merging. > > > This is not a comment on the original question but rather a minor word of caution regarding the process of discussion. > > I think it's absolutely great that there is a concerted effort from the core team to involve the wider community and seek feedback on these kinds of questions. As numerous examples have shown in the past, users often extend (or even bend) the existing infrastructure in interesting/unexpected ways, and it's essential to understand these before making changes like this. > > However, I'd like to point out that it's barely been 16 hours since Matthias' first email in this thread, so I'm almost certain that not everybody who has an opinion on this has even read all the emails yet). As we saw in the discussion about deleting gitter chatrooms, proceeding too quickly can lead to frustration even for core developers who continuously monitor this mailing list if they feel they didn't have a chance to respond in time. > > I was wondering whether it's worth having some sort of 'protocol' which prescribes certain minimum timeframe for these kinds of discussion and ensures that everyone interested has had a chance to state there opinion on it? It would be a shame to alienate users just because they miss a discussion that only lasted for a few hours. We might not even find out about it because they may just silently turn away from the community without speaking up. * https://github.com/ipython/ipython/wiki/IPEPs:-IPython-Enhancement-Proposals > > I have no feeling for what a reasonable timeframe would be, though (maybe 2-3 days? - might be worth asking the community about it :-P). I can also see how keeping discussions open for longer may lead to an additional burden for the developers who need to keep track of open issues. What does everyone think? If it's worth discussing then I'm happy to re-send this email in a separate thread so that it's not buried where people are likely to miss it. * %install_ext is a security issue (don't justify reproducible packaging with versions and checksums) * it would probably be easy to generate a setup.py to package existing extensions > > Cheers, > Max > > > _______________________________________________ > IPython-dev mailing list > IPython-dev at scipy.org > http://mail.scipy.org/mailman/listinfo/ipython-dev > -------------- next part -------------- An HTML attachment was scrubbed... URL: From bussonniermatthias at gmail.com Fri Jul 10 10:16:38 2015 From: bussonniermatthias at gmail.com (Matthias Bussonnier) Date: Fri, 10 Jul 2015 09:16:38 -0500 Subject: [IPython-dev] Poll on Deprecating %load_ext In-Reply-To: References: <9653B538-73BD-423B-8B79-3714DC333043@gmail.com> Message-ID: <522480A6-5D20-46B7-9D1A-62F9EFC840C2@gmail.com> Hi Max ! > On Jul 10, 2015, at 03:06, Maximilian Albert wrote: > > I think it's absolutely great that there is a concerted effort from the core team to involve the wider community and seek feedback on these kinds of questions. As numerous examples have shown in the past, users often extend (or even bend) the existing infrastructure in interesting/unexpected ways, and it's essential to understand these before making changes like this. Thanks for your input. > > However, I'd like to point out that it's barely been 16 hours since Matthias' first email in this thread, so I'm almost certain that not everybody who has an opinion on this has even read all the emails yet). As we saw in the discussion about deleting gitter chatrooms, proceeding too quickly can lead to frustration even for core developers who continuously monitor this mailing list if they feel they didn't have a chance to respond in time. Sure, we?ll wait a bit. Here it?s ?Just? a deprecation warning, so no need to be worry about breakage, but for sure we should be more careful with breaking changes (though for PR that can be reverted if needed) > I was wondering whether it's worth having some sort of 'protocol' which prescribes certain minimum timeframe for these kinds of discussion and ensures that everyone interested has had a chance to state there opinion on it? It would be a shame to alienate users just because they miss a discussion that only lasted for a few hours. We might not even find out about it because they may just silently turn away from the community without speaking up. Yes, please Say something even if it?s after and you are not happy. This is one of our way to get feedback. Even if something has already been said, even if you just agree, or disagree, say it. This give us rough stat of what **you** are thinking ! > > I have no feeling for what a reasonable timeframe would be, though (maybe 2-3 days? - might be worth asking the community about it :-P). I can also see how keeping discussions open for longer may lead to an additional burden for the developers who need to keep track of open issues. What does everyone think? If it's worth discussing then I'm happy to re-send this email in a separate thread so that it's not buried where people are likely to miss it. I think a day, two at max is enough, as for some decision we can rollback, and most people will only complain once it has landed into master. So let?s keep these short enough still. I?ll probably merge this later. Thanks !! -- M > > Cheers, > Max > > _______________________________________________ > IPython-dev mailing list > IPython-dev at scipy.org > http://mail.scipy.org/mailman/listinfo/ipython-dev From bussonniermatthias at gmail.com Fri Jul 10 10:16:38 2015 From: bussonniermatthias at gmail.com (Matthias Bussonnier) Date: Fri, 10 Jul 2015 09:16:38 -0500 Subject: [IPython-dev] Poll on Deprecating %load_ext In-Reply-To: References: <9653B538-73BD-423B-8B79-3714DC333043@gmail.com> Message-ID: <522480A6-5D20-46B7-9D1A-62F9EFC840C2@gmail.com> Hi Max ! > On Jul 10, 2015, at 03:06, Maximilian Albert wrote: > > I think it's absolutely great that there is a concerted effort from the core team to involve the wider community and seek feedback on these kinds of questions. As numerous examples have shown in the past, users often extend (or even bend) the existing infrastructure in interesting/unexpected ways, and it's essential to understand these before making changes like this. Thanks for your input. > > However, I'd like to point out that it's barely been 16 hours since Matthias' first email in this thread, so I'm almost certain that not everybody who has an opinion on this has even read all the emails yet). As we saw in the discussion about deleting gitter chatrooms, proceeding too quickly can lead to frustration even for core developers who continuously monitor this mailing list if they feel they didn't have a chance to respond in time. Sure, we?ll wait a bit. Here it?s ?Just? a deprecation warning, so no need to be worry about breakage, but for sure we should be more careful with breaking changes (though for PR that can be reverted if needed) > I was wondering whether it's worth having some sort of 'protocol' which prescribes certain minimum timeframe for these kinds of discussion and ensures that everyone interested has had a chance to state there opinion on it? It would be a shame to alienate users just because they miss a discussion that only lasted for a few hours. We might not even find out about it because they may just silently turn away from the community without speaking up. Yes, please Say something even if it?s after and you are not happy. This is one of our way to get feedback. Even if something has already been said, even if you just agree, or disagree, say it. This give us rough stat of what **you** are thinking ! > > I have no feeling for what a reasonable timeframe would be, though (maybe 2-3 days? - might be worth asking the community about it :-P). I can also see how keeping discussions open for longer may lead to an additional burden for the developers who need to keep track of open issues. What does everyone think? If it's worth discussing then I'm happy to re-send this email in a separate thread so that it's not buried where people are likely to miss it. I think a day, two at max is enough, as for some decision we can rollback, and most people will only complain once it has landed into master. So let?s keep these short enough still. I?ll probably merge this later. Thanks !! -- M > > Cheers, > Max > > _______________________________________________ > IPython-dev mailing list > IPython-dev at scipy.org > http://mail.scipy.org/mailman/listinfo/ipython-dev From maximilian.albert at gmail.com Fri Jul 10 11:17:54 2015 From: maximilian.albert at gmail.com (Maximilian Albert) Date: Fri, 10 Jul 2015 16:17:54 +0100 Subject: [IPython-dev] Poll on Deprecating %load_ext In-Reply-To: References: <9653B538-73BD-423B-8B79-3714DC333043@gmail.com> Message-ID: 2015-07-10 9:32 GMT+01:00 Wes Turner : > * > https://github.com/ipython/ipython/wiki/IPEPs:-IPython-Enhancement-Proposals > Good point about IPEPs, but these are typically used for technically more involved (or contentious) issues where dicussions can extend over a long period of time. My comment was more targeted at discussions such as the present one where the a-priori expectation is that most people will agree (and which feel far too "light" to warrant a full-blown IPEP), but where it would be good to hear about unexpected use cases. My choice of the word 'protocol' probably wasn't ideal as I was more thinking of a guideline along the lines of: "wait for X amount of time before putting the proposal into action", where X is documented somewhere so that people know how reactive they need to be if they don't want to miss a discussion. Anyway, no big deal, just wanted to point it out. * %install_ext is a security issue (don't justify reproducible packaging > with versions and checksums) > > * it would probably be easy to generate a setup.py to package existing > extensions > Yep, I completely agree with your and others' comments that it'll be good to deprecate %install_ext. But as I said, my question was not about this particular issue but rather about the general procedure of discussing and implementing something like this. Best wishes, Max -------------- next part -------------- An HTML attachment was scrubbed... URL: From pierre.villeneuve at gmail.com Fri Jul 10 21:16:15 2015 From: pierre.villeneuve at gmail.com (Pierre Villeneuve) Date: Fri, 10 Jul 2015 18:16:15 -0700 Subject: [IPython-dev] Image Widget Persisted with Export to HTML? Message-ID: Hello all, First, here is the context of my question to the group: I'm currently developing an image widget based on the HTML Canvas element, versus the IPython built-in widget based on the Image element. For simple cases the differences seen by a user may not be noticeable, but in my case I specifically wish to propagate the canvas' JavaScript mouse events to Python callback functions. Another difference is my widget can be initialized directly from a Numpy array. My question applies to my canvas image widget as well as the built-in image widget. When I export my notebook to HTML the widget's displayed image is not present. This is the opposite behaviour from an image displayed using IPython.display.Image(). I know that widgets are displayed to the frontend in an area separate from the cell's standard output area, and that persisting widget's is in itself a huge topic. I simply want a pretty picture to survive the export to HTML. I'm curious to know if a near-term solution is possible whereby I might temporarily replace each of my displayed widget's images with an instance of IPython.display.Image(). I can mentally visualize a path to a solution if only there was a place where I could define a callback function to be called just prior to HTML export. Does sch a thing exist? Pierre *Pierre Villeneuve* pierre.villeneuve at gmail.com -------------- next part -------------- An HTML attachment was scrubbed... URL: From benjaminrk at gmail.com Sun Jul 12 14:54:02 2015 From: benjaminrk at gmail.com (MinRK) Date: Sun, 12 Jul 2015 13:54:02 -0500 Subject: [IPython-dev] IPython 3.2.1 Message-ID: We have released IPython 3.2.1, a small bugfix release on top of IPython 3.2, which addresses a cross-site request forgery vulnerability in the notebook server. We encourage users to update as soon as possible. A CVE have been requested, and will be posted here when they are assigned. Thanks to Ahmad Khan for reporting the vulnerability and helping with the fix. http://ipython.org/ipython-doc/3/whatsnew/version3.html#ipython-3-2-1 -MinRK -------------- next part -------------- An HTML attachment was scrubbed... URL: From takowl at gmail.com Mon Jul 13 16:05:10 2015 From: takowl at gmail.com (Thomas Kluyver) Date: Mon, 13 Jul 2015 15:05:10 -0500 Subject: [IPython-dev] 'Stateless' interact: a widget experiment Message-ID: I've been building a skunkworks prototype for the last couple of days, and I've shown it to a few people this morning. It's a different model for the high level 'interact' widget interface, to explore how that might be built on top of raw comms without the synced-model widget architecture. The key difference is that there's no widget state stored on the kernel side. Instead, it uses a request/reply pattern, so the frontend sends the state of the whole collection of widgets on each update. If you open multiple clients (i.e. the same notebook in two browsers), they interact with the widgets independently: dragging the sliders on one updates the result displayed in that one without affecting the other browser. This works best with pure functions, i.e. not affecting global state. Before I go further, here's the code: https://github.com/takluyver/altwidgets-prototype/blob/master/Demo.ipynb Clone, run the Demo notebook, and fiddle with the widgets. It doesn't use traitlets, backbone or the widget area in the notebook. It's pure Python and JS (+jQuery), and the visible widgets sit in an output area in the notebook. This has some key benefits: as regular Javascript output, the widgets are persisted as part of the notebook. Their state is not saved for now (more on that below), but when you reopen it, the widgets will be in their starting position, with the initial output shown. If they can connect to the kernel-side part, they will be enabled and usable; if not, they'll show up disabled. It should even be possible to show them (disabled) on nbviewer, but that's not working yet. Things it doesn't do yet but could fairly easily: - Widgets other than sliders - Display of output other than plain text - Widgets visible on nbviewer - A nicer Python API (decorators, widget abbreviations, etc.) Things I'd like that may require some changes in Jupyter: - Persistence of widget state: I think the key here is a way for JS output areas to get a handle on the output object that will be stored in the notebook document. Then they could store this kind of info in the output metadata. - Better handling of kernel disconnection/reconnection: e.g. at present, it disables the widgets on the kernel restarting event, but if I have the notebook open in two browsers, the event only fires in the one where I asked for a restart. I'm not sure exactly what happens with comms - it doesn't look like they're closed when the kernel disconnects or restarts. - Not dumping duplicate JS in the notebook: we've discussed this before. There's a chunk of JS that I send each time an interact() displays, and it's only going to get longer as this project expands. It would be good to store just one copy of this. I would like it to be saved as part of the notebook, though, so the widgets can be shown without involving the kernel. - Showing widgets in untrusted notebooks: this would require the JS to construct them to be installed as an extension (or part of the notebook) so we can run that without security issues. I'd probably then use display_json to put widgets on the page. Currently, there's no way to update widget state from code in the kernel. I'm not sure that this really makes sense, since there can be multiple clients with independent states, but it would probably be possible to broadcast an update message to the connected clients if we did want that. I want to emphasise this is very much a *prototype*, not something you want to use today. I think it's worth exploring because it feels like a much simpler system than synced-model widgets, and it has the potential to give us an easier story around persistence. It will never do all the things you can do with synced-model widgets, and that's quite deliberate. Thanks, Thomas -------------- next part -------------- An HTML attachment was scrubbed... URL: From sccolbert at gmail.com Mon Jul 13 16:21:19 2015 From: sccolbert at gmail.com (Chris Colbert) Date: Mon, 13 Jul 2015 16:21:19 -0400 Subject: [IPython-dev] 'Stateless' interact: a widget experiment In-Reply-To: References: Message-ID: On Mon, Jul 13, 2015 at 4:05 PM, Thomas Kluyver wrote: > > Currently, there's no way to update widget state from code in the kernel. > I'm not sure that this really makes sense, since there can be multiple > clients with independent states, but it would probably be possible to > broadcast an update message to the connected clients if we did want that. > > As a simple straw man case, how would this handle updating a label whose text is generated based on a computed model parameter when that model parameter changes? -------------- next part -------------- An HTML attachment was scrubbed... URL: From takowl at gmail.com Tue Jul 14 12:57:32 2015 From: takowl at gmail.com (Thomas Kluyver) Date: Tue, 14 Jul 2015 09:57:32 -0700 Subject: [IPython-dev] Prototyping on a plane: Splitting-recombining contents manager Message-ID: On the flight back from Austin yesterday, I got some time to work on an idea I've had for a while: a contents manager that splits inputs/outputs and recombines them on load. In some contexts, you want to version control the code + markdown of a notebook and not the outputs, which may change more frequently, and may include big blobs of binary data which VCSs don't handle well. There are tools available to strip outputs out before committing, but then you lose the outputs locally as well. And if any collaborator doesn't set up that tool, they might accidentally commit the outputs. With this contents manager, when you save a notebook, you get an extra Whatever.ipynb.clean file, with no outputs or execution_count prompt numbers. Whatever.ipynb is also saved as normal, with the outputs left intact. The idea is that you would commit the .ipynb.clean files, and tell the VCS to ignore .ipynb files, keeping them as a local cache of the outputs from running the notebook. If someone else changes the 'clean' copy in version control, it may no longer match your local cache. When you open the notebook, the clean copy is considered authoritative, but it still tries to use information from the cached 'dirty' copy. It uses difflib to match up code cells that haven't changed, and reinstates the output from the cache. The code, and an example notebook with only the clean part in version control, are here: https://github.com/takluyver/recombinecm N.B. Both files will show up the file list, but you need to click the .ipynb to open the notebook. I'm still thinking about how to make this neater. Thomas -------------- next part -------------- An HTML attachment was scrubbed... URL: From ellisonbg at gmail.com Tue Jul 14 19:13:31 2015 From: ellisonbg at gmail.com (Brian Granger) Date: Tue, 14 Jul 2015 16:13:31 -0700 Subject: [IPython-dev] Prototyping on a plane: Splitting-recombining contents manager In-Reply-To: References: Message-ID: Can we post this to the Jupyter list - there are starting to be people there that dont watch this list Sent from my iPhone > On Jul 14, 2015, at 9:57 AM, Thomas Kluyver wrote: > > On the flight back from Austin yesterday, I got some time to work on an idea I've had for a while: a contents manager that splits inputs/outputs and recombines them on load. > > In some contexts, you want to version control the code + markdown of a notebook and not the outputs, which may change more frequently, and may include big blobs of binary data which VCSs don't handle well. There are tools available to strip outputs out before committing, but then you lose the outputs locally as well. And if any collaborator doesn't set up that tool, they might accidentally commit the outputs. > > With this contents manager, when you save a notebook, you get an extra Whatever.ipynb.clean file, with no outputs or execution_count prompt numbers. Whatever.ipynb is also saved as normal, with the outputs left intact. > > The idea is that you would commit the .ipynb.clean files, and tell the VCS to ignore .ipynb files, keeping them as a local cache of the outputs from running the notebook. > > If someone else changes the 'clean' copy in version control, it may no longer match your local cache. When you open the notebook, the clean copy is considered authoritative, but it still tries to use information from the cached 'dirty' copy. It uses difflib to match up code cells that haven't changed, and reinstates the output from the cache. > > The code, and an example notebook with only the clean part in version control, are here: > https://github.com/takluyver/recombinecm > > N.B. Both files will show up the file list, but you need to click the .ipynb to open the notebook. I'm still thinking about how to make this neater. > > Thomas > _______________________________________________ > IPython-dev mailing list > IPython-dev at scipy.org > http://mail.scipy.org/mailman/listinfo/ipython-dev -------------- next part -------------- An HTML attachment was scrubbed... URL: From fperez.net at gmail.com Tue Jul 14 23:11:05 2015 From: fperez.net at gmail.com (Fernando Perez) Date: Tue, 14 Jul 2015 20:11:05 -0700 Subject: [IPython-dev] Poll on Deprecating %load_ext In-Reply-To: References: <9653B538-73BD-423B-8B79-3714DC333043@gmail.com> Message-ID: Hi Max, On Fri, Jul 10, 2015 at 1:06 AM, Maximilian Albert < maximilian.albert at gmail.com> wrote: > However, I'd like to point out that it's barely been 16 hours since > Matthias' first email in this thread, so I'm almost certain that not > everybody who has an opinion on this has even read all the emails yet). As > we saw in the discussion about deleting gitter chatrooms, proceeding too > quickly can lead to frustration even for core developers who continuously > monitor this mailing list if they feel they didn't have a chance to respond > in time. > > I was wondering whether it's worth having some sort of 'protocol' which > prescribes certain minimum timeframe for these kinds of discussion and > ensures that everyone interested has had a chance to state there opinion on > it? It would be a shame to alienate users just because they miss a > discussion that only lasted for a few hours. We might not even find out > about it because they may just silently turn away from the community > without speaking up. > you are, of course, absolutely correct! I'm sorry that, in my enthusiasm due to having recently gotten back a bit into the swing of more regular ML activity, I completely forgot to check the actual lifetime of this PR/discussion. Given there was absolutely nothing particularly time-sensitive about this, yes, the normal, sane thing to do is to give it a couple of days to sit, so folks have a chance to catch up... What I did here is exactly what drives my wife crazy when I pick up the plates before she's done eating and start washing... Sorry, my OCD at work :) 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 fperez.net at gmail.com Tue Jul 14 23:11:05 2015 From: fperez.net at gmail.com (Fernando Perez) Date: Tue, 14 Jul 2015 20:11:05 -0700 Subject: [IPython-dev] Poll on Deprecating %load_ext In-Reply-To: References: <9653B538-73BD-423B-8B79-3714DC333043@gmail.com> Message-ID: Hi Max, On Fri, Jul 10, 2015 at 1:06 AM, Maximilian Albert < maximilian.albert at gmail.com> wrote: > However, I'd like to point out that it's barely been 16 hours since > Matthias' first email in this thread, so I'm almost certain that not > everybody who has an opinion on this has even read all the emails yet). As > we saw in the discussion about deleting gitter chatrooms, proceeding too > quickly can lead to frustration even for core developers who continuously > monitor this mailing list if they feel they didn't have a chance to respond > in time. > > I was wondering whether it's worth having some sort of 'protocol' which > prescribes certain minimum timeframe for these kinds of discussion and > ensures that everyone interested has had a chance to state there opinion on > it? It would be a shame to alienate users just because they miss a > discussion that only lasted for a few hours. We might not even find out > about it because they may just silently turn away from the community > without speaking up. > you are, of course, absolutely correct! I'm sorry that, in my enthusiasm due to having recently gotten back a bit into the swing of more regular ML activity, I completely forgot to check the actual lifetime of this PR/discussion. Given there was absolutely nothing particularly time-sensitive about this, yes, the normal, sane thing to do is to give it a couple of days to sit, so folks have a chance to catch up... What I did here is exactly what drives my wife crazy when I pick up the plates before she's done eating and start washing... Sorry, my OCD at work :) 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 mmckerns at caltech.edu Wed Jul 15 10:03:34 2015 From: mmckerns at caltech.edu (Michael McKerns) Date: Wed, 15 Jul 2015 10:03:34 -0400 Subject: [IPython-dev] Announcing $6M in new funding for the project over the next 3 years In-Reply-To: References: Message-ID: Fernando, Brian, et al, I know this is a little late, but congrats from all of us at the UQ Foundation. You guys are doing great stuff and it's nice to see you guys get continued (and increased) funding. > Hi all, > > we're delighted to finally be able to publicly announce that the project > has received a new round of funding! > > Thanks to the generous support of the Helmsley Trust, the Gordon and Betty > Moore Foundation, and the Alfred P. Sloan Foundation, Brian and I have a > 3 > year, $6M grant that will allow us to continue supporting the entire team > in a number of interesting directions. > > You can read the full details of the project, including the releases from > the foundations supporting us and our original grant proposal, here: > > http://blog.jupyter.org/2015/07/07/jupyter-funding-2015 > > Stay tuned, over the next few weeks, as we move forward with more job > announcements. But it's a good time to remind everyone of the ones we > already have: https://www.calpolycorporationjobs.org/postings/736 > > 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 > http://mail.scipy.org/mailman/listinfo/ipython-dev > --- Mike McKerns California Institute of Technology http://www.its.caltech.edu/~mmckerns From bussonniermatthias at gmail.com Wed Jul 15 16:22:33 2015 From: bussonniermatthias at gmail.com (Matthias Bussonnier) Date: Wed, 15 Jul 2015 13:22:33 -0700 Subject: [IPython-dev] Improvement to completion spec. Message-ID: <90833BBC-DC91-40F6-91F8-B1DEED13D21B@gmail.com> Hello Jovyans, and IPython-dev users. I just want to point to the following discussion about improving the completion mechanism across kernels : https://github.com/jupyter/jupyter_client/issues/51 If you are developer, or extensive user of a specific kernel, and in particular if your language differs from most of the others, we would like to have your input and thoughts on this discussion. Thanks, -- M -------------- next part -------------- An HTML attachment was scrubbed... URL: From ssanderson at quantopian.com Thu Jul 16 12:21:41 2015 From: ssanderson at quantopian.com (ssanderson) Date: Thu, 16 Jul 2015 09:21:41 -0700 (PDT) Subject: [IPython-dev] Why are stdout and stderr sent to /dev/null by default in kernels? Message-ID: <1437063701313-5166925.post@n6.nabble.com> This is a pain for developing extensions, and I can't think of any reason I would want to ignore kernel stdout/stderr, so I'm curious what the perceived benefits of this are. -Scott -- View this message in context: http://python.6.x6.nabble.com/Why-are-stdout-and-stderr-sent-to-dev-null-by-default-in-kernels-tp5166925.html Sent from the IPython - Development mailing list archive at Nabble.com. From benjaminrk at gmail.com Thu Jul 16 12:48:21 2015 From: benjaminrk at gmail.com (MinRK) Date: Thu, 16 Jul 2015 09:48:21 -0700 Subject: [IPython-dev] Why are stdout and stderr sent to /dev/null by default in kernels? In-Reply-To: <1437063701313-5166925.post@n6.nabble.com> References: <1437063701313-5166925.post@n6.nabble.com> Message-ID: I think we only do that when sys.executable is pythonw.exe, because the pipes fill up and cause the subprocess to hang after 1k of output is produced. We don?t redirect output to devnull in most cases. In the IPython kernel, sys.stdout and sys.stderr are redirected over zmq, which initially doesn?t get received by anyone, so rarely shows up in UI (depending on frontend). If you want to see it in the terminal, you have to use sys.__stdout__ and sys.__stderr__. -MinRK ? On Thu, Jul 16, 2015 at 9:21 AM, ssanderson wrote: > This is a pain for developing extensions, and I can't think of any reason I > would want to ignore kernel stdout/stderr, so I'm curious what the > perceived > benefits of this are. > > -Scott > > > > -- > View this message in context: > http://python.6.x6.nabble.com/Why-are-stdout-and-stderr-sent-to-dev-null-by-default-in-kernels-tp5166925.html > Sent from the IPython - Development mailing list archive at Nabble.com. > _______________________________________________ > IPython-dev mailing list > IPython-dev at scipy.org > http://mail.scipy.org/mailman/listinfo/ipython-dev > -------------- next part -------------- An HTML attachment was scrubbed... URL: From takowl at gmail.com Thu Jul 16 12:48:34 2015 From: takowl at gmail.com (Thomas Kluyver) Date: Thu, 16 Jul 2015 09:48:34 -0700 Subject: [IPython-dev] Why are stdout and stderr sent to /dev/null by default in kernels? In-Reply-To: <1437063701313-5166925.post@n6.nabble.com> References: <1437063701313-5166925.post@n6.nabble.com> Message-ID: Are they? When I write to sys.__stderr__ in kernel code, it shows up in the terminal where I started the notebook. On 16 July 2015 at 09:21, ssanderson wrote: > This is a pain for developing extensions, and I can't think of any reason I > would want to ignore kernel stdout/stderr, so I'm curious what the > perceived > benefits of this are. > > -Scott > > > > -- > View this message in context: > http://python.6.x6.nabble.com/Why-are-stdout-and-stderr-sent-to-dev-null-by-default-in-kernels-tp5166925.html > Sent from the IPython - Development mailing list archive at Nabble.com. > _______________________________________________ > IPython-dev mailing list > IPython-dev at scipy.org > http://mail.scipy.org/mailman/listinfo/ipython-dev > -------------- next part -------------- An HTML attachment was scrubbed... URL: From ssanderson at quantopian.com Thu Jul 16 13:01:21 2015 From: ssanderson at quantopian.com (ssanderson) Date: Thu, 16 Jul 2015 10:01:21 -0700 (PDT) Subject: [IPython-dev] Why are stdout and stderr sent to /dev/null by default in kernels? In-Reply-To: References: <1437063701313-5166925.post@n6.nabble.com> Message-ID: <1437066081835-5166937.post@n6.nabble.com> Ah. I think I misread the following in ipkernelapp.py: I interpreted that as setting no_stdout and no_stderr to True by default, but I realize now that it's just creating 'no-stdout' and 'no-stderr' flags that turn on those settings. Apologies for the noise. I'll go find what's actually swallowing my stdout then... -Scott -- View this message in context: http://python.6.x6.nabble.com/Why-are-stdout-and-stderr-sent-to-dev-null-by-default-in-kernels-tp5166925p5166937.html Sent from the IPython - Development mailing list archive at Nabble.com. From benjaminrk at gmail.com Thu Jul 16 13:27:09 2015 From: benjaminrk at gmail.com (MinRK) Date: Thu, 16 Jul 2015 10:27:09 -0700 Subject: [IPython-dev] Why are stdout and stderr sent to /dev/null by default in kernels? In-Reply-To: <1437066081835-5166937.post@n6.nabble.com> References: <1437063701313-5166925.post@n6.nabble.com> <1437066081835-5166937.post@n6.nabble.com> Message-ID: If you are writing to sys.stdout at startup, it likely is going over zmq with no receivers and disappearing. You can use sys.__stdout__ to always refer to the process stdout, though. On Thu, Jul 16, 2015 at 10:01 AM, ssanderson wrote: > Ah. I think I misread the following in ipkernelapp.py: > > > > I interpreted that as setting no_stdout and no_stderr to True by default, > but I realize now that it's just creating 'no-stdout' and 'no-stderr' flags > that turn on those settings. > > Apologies for the noise. I'll go find what's actually swallowing my stdout > then... > > -Scott > > > > > -- > View this message in context: > http://python.6.x6.nabble.com/Why-are-stdout-and-stderr-sent-to-dev-null-by-default-in-kernels-tp5166925p5166937.html > Sent from the IPython - Development mailing list archive at Nabble.com. > _______________________________________________ > IPython-dev mailing list > IPython-dev at scipy.org > http://mail.scipy.org/mailman/listinfo/ipython-dev > -------------- next part -------------- An HTML attachment was scrubbed... URL: From benjaminrk at gmail.com Thu Jul 16 14:29:21 2015 From: benjaminrk at gmail.com (MinRK) Date: Thu, 16 Jul 2015 11:29:21 -0700 Subject: [IPython-dev] [IPython-User] Way to retrieve the value of %time? In-Reply-To: References: Message-ID: %time doesn't return a useful struct, but %timeit does, now. We should probably do the same thing for %time. -MinRK On Thu, Jul 16, 2015 at 11:22 AM, Francesc Alted wrote: > Hi, > > I am trying to come up with a way of accessing the time measured by the > magic %time. That is, in: > > In [149]: %time sum(i for i in xrange(1000000)) > CPU times: user 118 ms, sys: 27.4 ms, total: 145 ms > Wall time: 121 ms > Out[149]: 499999500000 > > is there a way to get the 121 ms value of the 'Wall time' above and put > that in a variable? I know I can use something like: > > In [150]: from time import time > > In [151]: t0 = time(); sum(i for i in xrange(1000000)); mytime = time() - > t0 > > In [152]: mytime > Out[152]: 0.10076594352722168 > > but %time is so much convenient, specially for tutorials, that I would > rather prefer using it. > > Thanks! > > -- > Francesc Alted > > _______________________________________________ > IPython-User mailing list > IPython-User at scipy.org > http://mail.scipy.org/mailman/listinfo/ipython-user > > -------------- next part -------------- An HTML attachment was scrubbed... URL: From ellisonbg at gmail.com Thu Jul 16 22:36:31 2015 From: ellisonbg at gmail.com (Brian Granger) Date: Thu, 16 Jul 2015 19:36:31 -0700 Subject: [IPython-dev] [jupyter-education] Version 0.1.0 of nbgrader released! In-Reply-To: References: Message-ID: Many congrats on this release - great work! On Thu, Jul 16, 2015 at 5:37 PM, Jess Hamrick wrote: > Hi all, > > I?m happy to announce that the first version of nbgrader has (finally) been > released! nbgrader is a tool that I?ve been working on for a little over a > year now which provides a suite of tools for creating, releasing, and > grading assignments in the Jupyter notebook. So far, nbgrader has been used > to grade assignments for the class I ran in the spring, as well as two > classes that Brian Granger has taught. > > Instructions on installing it can be found here, as well as a link to the > documentation: > > https://github.com/jupyter/nbgrader/tree/0.1.x > > If you have any questions, comments, suggestions, etc., please do open an > issue on the bugtracker. This is still a very new tool, so I am sure there > is a lot that can be improved upon! > > Thanks so much to all of the people who have contributed to this release by > reporting issues and/or submitting PRs: > > alope107 > Carreau > ellachao > ellisonbg > ivanslapnicar > jdfreder > jhamrick > jonathanmorgan > lphk92 > redSlug > smeylan > suchow > svurens > tasilb > willingc > > Cheers, > Jess > > -- > You received this message because you are subscribed to the Google Groups > "Teaching with Jupyter Notebooks" group. > To unsubscribe from this group and stop receiving emails from it, send an > email to jupyter-education+unsubscribe at googlegroups.com. > To post to this group, send email to jupyter-education at googlegroups.com. > Visit this group at http://groups.google.com/group/jupyter-education. > To view this discussion on the web visit > https://groups.google.com/d/msgid/jupyter-education/B9FF40BD-B086-42DD-A092-AF53DA11518E%40gmail.com. > For more options, visit https://groups.google.com/d/optout. -- Brian E. Granger Cal Poly State University, San Luis Obispo @ellisonbg on Twitter and GitHub bgranger at calpoly.edu and ellisonbg at gmail.com From fperez.net at gmail.com Thu Jul 16 23:43:14 2015 From: fperez.net at gmail.com (Fernando Perez) Date: Thu, 16 Jul 2015 20:43:14 -0700 Subject: [IPython-dev] [jupyter] Re: [jupyter-education] Version 0.1.0 of nbgrader released! In-Reply-To: References: Message-ID: +1, absolutely thrilled to see this out, and congratulations on this fantastic work to everyone involved! On Thu, Jul 16, 2015 at 7:36 PM, Brian Granger wrote: > Many congrats on this release - great work! > > On Thu, Jul 16, 2015 at 5:37 PM, Jess Hamrick > wrote: > > Hi all, > > > > I?m happy to announce that the first version of nbgrader has (finally) > been > > released! nbgrader is a tool that I?ve been working on for a little over > a > > year now which provides a suite of tools for creating, releasing, and > > grading assignments in the Jupyter notebook. So far, nbgrader has been > used > > to grade assignments for the class I ran in the spring, as well as two > > classes that Brian Granger has taught. > > > > Instructions on installing it can be found here, as well as a link to the > > documentation: > > > > https://github.com/jupyter/nbgrader/tree/0.1.x > > > > If you have any questions, comments, suggestions, etc., please do open an > > issue on the bugtracker. This is still a very new tool, so I am sure > there > > is a lot that can be improved upon! > > > > Thanks so much to all of the people who have contributed to this release > by > > reporting issues and/or submitting PRs: > > > > alope107 > > Carreau > > ellachao > > ellisonbg > > ivanslapnicar > > jdfreder > > jhamrick > > jonathanmorgan > > lphk92 > > redSlug > > smeylan > > suchow > > svurens > > tasilb > > willingc > > > > Cheers, > > Jess > > > > -- > > You received this message because you are subscribed to the Google Groups > > "Teaching with Jupyter Notebooks" group. > > To unsubscribe from this group and stop receiving emails from it, send an > > email to jupyter-education+unsubscribe at googlegroups.com. > > To post to this group, send email to jupyter-education at googlegroups.com. > > Visit this group at http://groups.google.com/group/jupyter-education. > > To view this discussion on the web visit > > > https://groups.google.com/d/msgid/jupyter-education/B9FF40BD-B086-42DD-A092-AF53DA11518E%40gmail.com > . > > For more options, visit https://groups.google.com/d/optout. > > > > -- > Brian E. Granger > Cal Poly State University, San Luis Obispo > @ellisonbg on Twitter and GitHub > bgranger at calpoly.edu and ellisonbg at gmail.com > > -- > 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/CAH4pYpSan10PgOefjx3bYFL0zWabPH6O6OpOM7QcbjT2uYV-kg%40mail.gmail.com > . > For more options, visit https://groups.google.com/d/optout. > -- 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 ellisonbg at gmail.com Thu Jul 16 23:59:44 2015 From: ellisonbg at gmail.com (Brian Granger) Date: Thu, 16 Jul 2015 20:59:44 -0700 Subject: [IPython-dev] Announcing $6M in new funding for the project over the next 3 years In-Reply-To: References: Message-ID: Thanks everyone, we couldn't do this without all of you! On Wed, Jul 15, 2015 at 7:03 AM, Michael McKerns wrote: > Fernando, Brian, et al, > > I know this is a little late, but congrats from all of us at the > UQ Foundation. You guys are doing great stuff and it's nice > to see you guys get continued (and increased) funding. > > > >> Hi all, >> >> we're delighted to finally be able to publicly announce that the project >> has received a new round of funding! >> >> Thanks to the generous support of the Helmsley Trust, the Gordon and Betty >> Moore Foundation, and the Alfred P. Sloan Foundation, Brian and I have a >> 3 >> year, $6M grant that will allow us to continue supporting the entire team >> in a number of interesting directions. >> >> You can read the full details of the project, including the releases from >> the foundations supporting us and our original grant proposal, here: >> >> http://blog.jupyter.org/2015/07/07/jupyter-funding-2015 >> >> Stay tuned, over the next few weeks, as we move forward with more job >> announcements. But it's a good time to remind everyone of the ones we >> already have: https://www.calpolycorporationjobs.org/postings/736 >> >> 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 >> http://mail.scipy.org/mailman/listinfo/ipython-dev >> > > > --- > > Mike McKerns > California Institute of Technology > http://www.its.caltech.edu/~mmckerns > > _______________________________________________ > IPython-dev mailing list > IPython-dev at scipy.org > http://mail.scipy.org/mailman/listinfo/ipython-dev -- Brian E. Granger Cal Poly State University, San Luis Obispo @ellisonbg on Twitter and GitHub bgranger at calpoly.edu and ellisonbg at gmail.com From jason at jasongrout.org Fri Jul 17 12:00:24 2015 From: jason at jasongrout.org (Jason Grout) Date: Fri, 17 Jul 2015 12:00:24 -0400 Subject: [IPython-dev] Traitlets changes Message-ID: Just FYI, we're carrying on some discussion about an overhaul of the traitlets API on Github. The main issue is at: https://github.com/ipython/traitlets/issues/48 A discussion of the metadata syntax is here: https://github.com/ipython/traitlets/issues/52 Come join the discussion if you'd like (or post here and we can report on Github results of this thread.) Thanks, Jason -------------- next part -------------- An HTML attachment was scrubbed... URL: From takowl at gmail.com Mon Jul 20 13:42:29 2015 From: takowl at gmail.com (Thomas Kluyver) Date: Mon, 20 Jul 2015 10:42:29 -0700 Subject: [IPython-dev] 4.0 release status Message-ID: In the sprints at Scipy, we managed to release jupyter_client, nbconvert and jupyter_kernel_test, as well as a beta of the cut-down IPython package, so that other packages depending on IPython can be installed with pip using the --pre flag as we release them. Thank-you to everyone who sprinted with us, and especially to the group who worked with Jess on nbgrader, which had its own release a few days later. Since then, we (Min, mostly) have also released ipykernel and jupyter_console. The remaining pieces we need to release are: - jupyter_core (needs a new release before we announce 4.0, because of changes to config migration) - qtconsole (nearly ready) - notebook - ipywidgets - ipyparallel - jupyter (the metapackage which will depend on all the other pieces) - ipython 4.0 final Let me know if I've missed anything. Thanks, Thomas -------------- next part -------------- An HTML attachment was scrubbed... URL: From cappy2112 at gmail.com Wed Jul 22 12:26:03 2015 From: cappy2112 at gmail.com (Tony Cappellini) Date: Wed, 22 Jul 2015 09:26:03 -0700 Subject: [IPython-dev] Checkpoints & empty directories Message-ID: While running the Jupyter notebook, I periodically see messages that the notebook is autosaved. Today, I opened Windows Explorer in the directory where all of my notebooks are stored. I was surprised to see 30+ directories named with the last notebook I had created, along with a unique sequence number appended to "ipnb" I was under the impression that each of these directories contained snapshots of my notebook at various stages of its evolution, however all of the directories are empty. What is the purpose of creating all of the empty directories? Is there a configuration setting to change this? While this isn't a problem, it's just a nuisance, the code and notes I had entered into that notebook is nowhere to be found. Thanks Tony -------------- next part -------------- An HTML attachment was scrubbed... URL: From cappy2112 at gmail.com Wed Jul 22 12:36:59 2015 From: cappy2112 at gmail.com (Tony Cappellini) Date: Wed, 22 Jul 2015 09:36:59 -0700 Subject: [IPython-dev] Autosave failed message seen in notebook Message-ID: I'm running on Windows 7 64-Bit with Administrator privileges. Python version is 2.7.9. Anaconda 2.2.0 (64-Bit), iPython 3.2.0 Shortly after launching a notebook, I saw "Autosave Failed" displayed at the top of the notebook. What are typical causes of this? Is this a known issue? Thanks Tony -------------- next part -------------- An HTML attachment was scrubbed... URL: From jon.freder at gmail.com Wed Jul 22 16:27:25 2015 From: jon.freder at gmail.com (Jonathan Frederic) Date: Wed, 22 Jul 2015 13:27:25 -0700 Subject: [IPython-dev] Image Widget Persisted with Export to HTML? In-Reply-To: References: Message-ID: Hi Pierre, Unfortunately such a thing doesn't exist right now. I'm taking note of your use case, for the output area work that Kyle and I will be doing, and the static widget work I plan on doing later. Sorry, Jon On Fri, Jul 10, 2015 at 6:16 PM, Pierre Villeneuve < pierre.villeneuve at gmail.com> wrote: > Hello all, > > First, here is the context of my question to the group: I'm currently > developing an image widget based on the HTML Canvas element, versus the > IPython built-in widget based on the Image element. For simple cases the > differences seen by a user may not be noticeable, but in my case I > specifically wish to propagate the canvas' JavaScript mouse events to > Python callback functions. Another difference is my widget can be > initialized directly from a Numpy array. > > My question applies to my canvas image widget as well as the built-in > image widget. When I export my notebook to HTML the widget's displayed > image is not present. This is the opposite behaviour from an image > displayed using IPython.display.Image(). I know that widgets are > displayed to the frontend in an area separate from the cell's standard > output area, and that persisting widget's is in itself a huge topic. I > simply want a pretty picture to survive the export to HTML. > > I'm curious to know if a near-term solution is possible whereby I might > temporarily replace each of my displayed widget's images with an instance > of IPython.display.Image(). I can mentally visualize a path to a > solution if only there was a place where I could define a callback function > to be called just prior to HTML export. Does sch a thing exist? > > Pierre > > *Pierre Villeneuve* > pierre.villeneuve at gmail.com > > > _______________________________________________ > IPython-dev mailing list > IPython-dev at scipy.org > http://mail.scipy.org/mailman/listinfo/ipython-dev > > -------------- next part -------------- An HTML attachment was scrubbed... URL: From maplabs at light42.com Thu Jul 23 20:15:55 2015 From: maplabs at light42.com (=?utf-8?b?QnJpYW4gTSBIYW1saW4=?=) Date: Thu, 23 Jul 2015 17:15:55 -0700 Subject: [IPython-dev] 4.0 release status In-Reply-To: References: Message-ID: <20150723171555.qaobtvlm04ck4cgo@webmail.light42.com> Hi All - ? ? Is it possible that a 3.2x .deb could be a safer "bet" than the cliff-hanger 4.0 release ? ? Background:? We are in full dev mode with the Open Source Geospatial Foundation Linux "distro"? OSGeo Live [1][2][3][4] with a feature freeze "soon" and aiming for a testable, master candidate around 16 Aug 2015. ? ? Of course Notebooks are important to the effort, as well as a number of other geo-technologies.. ? We consider ourselves a "stable" project, not cutting edge.. so its no problemfor us, missing? 4.0 until January.. As I discussed a bit with Thomas, we have two debian packagers pretty-much full time on the project now, but we are looking to you for the official releases. ? ?? thanks for any guidance ???? -Brian ? [1]? http://live.osgeo.org [2]? https://github.com/OSGeo/OSGeoLive [3]? http://wiki.osgeo.org/wiki/Live_GIS_Disc [4]? http://wiki.osgeo.org/wiki/Live_GIS_History ? ? Date: Mon, 20 Jul 2015 10:42:29 -0700 From: Thomas Kluyver Subject: [IPython-dev] 4.0 release status In the sprints at Scipy, we managed to release jupyter_client, nbconvert and jupyter_kernel_test, as well as a beta of the cut-down IPython package, so that other packages depending on IPython can be installed with pip using the --pre flag as we release them. Thank-you to everyone who sprinted with us, and especially to the group who worked with Jess on nbgrader, which had its own release a few days later. Since then, we (Min, mostly) have also released ipykernel and jupyter_console. The remaining pieces we need to release are: - jupyter_core (needs a new release before we announce 4.0, because of changes to config migration) - qtconsole (nearly ready) - notebook - ipywidgets - ipyparallel - jupyter (the metapackage which will depend on all the other pieces) - ipython 4.0 final -------------- next part -------------- An HTML attachment was scrubbed... URL: From takowl at gmail.com Thu Jul 23 20:41:22 2015 From: takowl at gmail.com (Thomas Kluyver) Date: Thu, 23 Jul 2015 17:41:22 -0700 Subject: [IPython-dev] 4.0 release status In-Reply-To: <20150723171555.qaobtvlm04ck4cgo@webmail.light42.com> References: <20150723171555.qaobtvlm04ck4cgo@webmail.light42.com> Message-ID: On 23 July 2015 at 17:15, Brian M Hamlin wrote: > Is it possible that a 3.2x .deb could be a safer "bet" than the > cliff-hanger 4.0 release ? It's certainly possible, but we're not going to be backporting many fixes to 3.x once we've got 4.0 out. And as we found the other day, it doesn't look like anyone's even made Debian packages of IPython 3.x yet. Thomas -------------- next part -------------- An HTML attachment was scrubbed... URL: From takowl at gmail.com Thu Jul 23 20:45:36 2015 From: takowl at gmail.com (Thomas Kluyver) Date: Thu, 23 Jul 2015 17:45:36 -0700 Subject: [IPython-dev] Checkpoints & empty directories In-Reply-To: References: Message-ID: Hi Tony, What version of the notebook are you running, and is there anything special about the folder where you're saving (e.g. is it a network drive, or synced with something like Dropbox)? That sounds like an issue with the atomic saving. Thomas On 22 July 2015 at 09:26, Tony Cappellini wrote: > > While running the Jupyter notebook, I periodically see messages that the > notebook is autosaved. > > Today, I opened Windows Explorer in the directory where all of my > notebooks are stored. I was surprised to see 30+ directories named with the > last notebook I had created, along with a unique > sequence number appended to "ipnb" > > I was under the impression that each of these directories contained > snapshots of my notebook at various stages of its evolution, however all of > the directories are empty. > > What is the purpose of creating all of the empty directories? > Is there a configuration setting to change this? > > While this isn't a problem, it's just a nuisance, the code and notes I had > entered into that notebook > is nowhere to be found. > > Thanks > > Tony > > _______________________________________________ > IPython-dev mailing list > IPython-dev at scipy.org > http://mail.scipy.org/mailman/listinfo/ipython-dev > > -------------- next part -------------- An HTML attachment was scrubbed... URL: From pierre.villeneuve at gmail.com Thu Jul 23 22:42:39 2015 From: pierre.villeneuve at gmail.com (Pierre Villeneuve) Date: Thu, 23 Jul 2015 19:42:39 -0700 Subject: [IPython-dev] Image Widget Persisted with Export to HTML? In-Reply-To: References: Message-ID: Jon, Thanks for replying! At least now that I know there isn't an easy hack solution, I can stop looking for it. Pierre V. Villeneuve On Jul 23, 2015 5:47 PM, "Jonathan Frederic" wrote: > Hi Pierre, > > Unfortunately such a thing doesn't exist right now. I'm taking note of > your use case, for the output area work that Kyle and I will be doing, and > the static widget work I plan on doing later. > > Sorry, > Jon > > On Fri, Jul 10, 2015 at 6:16 PM, Pierre Villeneuve < > pierre.villeneuve at gmail.com> wrote: > >> Hello all, >> >> First, here is the context of my question to the group: I'm currently >> developing an image widget based on the HTML Canvas element, versus the >> IPython built-in widget based on the Image element. For simple cases the >> differences seen by a user may not be noticeable, but in my case I >> specifically wish to propagate the canvas' JavaScript mouse events to >> Python callback functions. Another difference is my widget can be >> initialized directly from a Numpy array. >> >> My question applies to my canvas image widget as well as the built-in >> image widget. When I export my notebook to HTML the widget's displayed >> image is not present. This is the opposite behaviour from an image >> displayed using IPython.display.Image(). I know that widgets are >> displayed to the frontend in an area separate from the cell's standard >> output area, and that persisting widget's is in itself a huge topic. I >> simply want a pretty picture to survive the export to HTML. >> >> I'm curious to know if a near-term solution is possible whereby I might >> temporarily replace each of my displayed widget's images with an instance >> of IPython.display.Image(). I can mentally visualize a path to a >> solution if only there was a place where I could define a callback function >> to be called just prior to HTML export. Does sch a thing exist? >> >> Pierre >> >> *Pierre Villeneuve* >> pierre.villeneuve at gmail.com >> >> >> _______________________________________________ >> IPython-dev mailing list >> IPython-dev at scipy.org >> http://mail.scipy.org/mailman/listinfo/ipython-dev >> >> > > _______________________________________________ > IPython-dev mailing list > IPython-dev at scipy.org > http://mail.scipy.org/mailman/listinfo/ipython-dev > > -------------- next part -------------- An HTML attachment was scrubbed... URL: From ellisonbg at gmail.com Thu Jul 23 23:38:53 2015 From: ellisonbg at gmail.com (Brian Granger) Date: Thu, 23 Jul 2015 20:38:53 -0700 Subject: [IPython-dev] Checkpoints & empty directories In-Reply-To: References: Message-ID: <34010D95-693D-42F1-95CC-C042579AF83E@gmail.com> I forget what we decided about atomic saving - will 4.0 have a way to disable it? I am still running into these issues on nfs file systems Sent from my iPhone > On Jul 23, 2015, at 5:45 PM, Thomas Kluyver wrote: > > Hi Tony, > > What version of the notebook are you running, and is there anything special about the folder where you're saving (e.g. is it a network drive, or synced with something like Dropbox)? That sounds like an issue with the atomic saving. > > Thomas > >> On 22 July 2015 at 09:26, Tony Cappellini wrote: >> >> While running the Jupyter notebook, I periodically see messages that the notebook is autosaved. >> >> Today, I opened Windows Explorer in the directory where all of my notebooks are stored. I was surprised to see 30+ directories named with the last notebook I had created, along with a unique >> sequence number appended to "ipnb" >> >> I was under the impression that each of these directories contained snapshots of my notebook at various stages of its evolution, however all of the directories are empty. >> >> What is the purpose of creating all of the empty directories? >> Is there a configuration setting to change this? >> >> While this isn't a problem, it's just a nuisance, the code and notes I had entered into that notebook >> is nowhere to be found. >> >> Thanks >> >> Tony >> >> _______________________________________________ >> IPython-dev mailing list >> IPython-dev at scipy.org >> http://mail.scipy.org/mailman/listinfo/ipython-dev > > _______________________________________________ > IPython-dev mailing list > IPython-dev at scipy.org > http://mail.scipy.org/mailman/listinfo/ipython-dev -------------- next part -------------- An HTML attachment was scrubbed... URL: From cappy2112 at gmail.com Fri Jul 24 02:03:52 2015 From: cappy2112 at gmail.com (Tony Cappellini) Date: Thu, 23 Jul 2015 23:03:52 -0700 Subject: [IPython-dev] Checkpoints & empty directories Message-ID: Message: 3 Date: Thu, 23 Jul 2015 17:45:36 -0700 From: Thomas Kluyver Subject: Re: [IPython-dev] Checkpoints & empty directories To: IPython developers list Message-ID: Content-Type: text/plain; charset="utf-8" Hi Tony, >>What version of the notebook are you running, and is there anything special >>about the folder where you're saving (e.g. is it a network drive, or >>synced with something like Dropbox)? That sounds like an issue with the >>atomic saving. I'm running on Windows 7 64-Bit with Administrator privileges. Python version is 2.7.9. Anaconda 2.2.0 (64-Bit), iPython 3.2.0 Nothing special along the lines you asked about, the directory is local. However, the filename I used was extremely long and with many spaces. I forgot what the limit for Windows filenames is. Later, after I posted the two messages, I looked in the iPython console and there was some information there, which I forgot to save. I terminated that console session and the notebook which was running, and started a new console & notebook. I also used a much shorter notebook title/filename. It's odd that the stuff I saved was lost though. It wasn't critical work, just some notes I took. It's more of a puzzle than an annoyance. I don't even know what to do to duplicate that issue. The subsequent notebook I launched did not have this issue, Thanks Tony -------------- next part -------------- An HTML attachment was scrubbed... URL: From takowl at gmail.com Fri Jul 24 13:11:32 2015 From: takowl at gmail.com (Thomas Kluyver) Date: Fri, 24 Jul 2015 10:11:32 -0700 Subject: [IPython-dev] Checkpoints & empty directories In-Reply-To: <34010D95-693D-42F1-95CC-C042579AF83E@gmail.com> References: <34010D95-693D-42F1-95CC-C042579AF83E@gmail.com> Message-ID: On 23 July 2015 at 20:38, Brian Granger wrote: > I forget what we decided about atomic saving - will 4.0 have a way to > disable it? I am still running into these issues on nfs file systems 4.0 will achieve atomic saving in a different way, which will hopefully cause fewer problems. > It's odd that the stuff I saved was lost though. It wasn't critical work, just some notes I took. It's more of a puzzle than an annoyance. It's pretty concerning to us if the notebook can lose work. But I can't immediately think what else might be causing it. If it happens again, please let us know. Thomas -------------- next part -------------- An HTML attachment was scrubbed... URL: From ellisonbg at gmail.com Fri Jul 24 13:33:41 2015 From: ellisonbg at gmail.com (Brian Granger) Date: Fri, 24 Jul 2015 10:33:41 -0700 Subject: [IPython-dev] Checkpoints & empty directories In-Reply-To: References: <34010D95-693D-42F1-95CC-C042579AF83E@gmail.com> Message-ID: Is it too late to add a flag to disable atomic saving in 4.0 (I think leaving it on by default is fine)? I think any multistep save process is likely to be more problematic than a one-step save on certain types of network/shared file systems. On Fri, Jul 24, 2015 at 10:11 AM, Thomas Kluyver wrote: > On 23 July 2015 at 20:38, Brian Granger wrote: >> >> I forget what we decided about atomic saving - will 4.0 have a way to >> disable it? I am still running into these issues on nfs file systems > > > 4.0 will achieve atomic saving in a different way, which will hopefully > cause fewer problems. > >> It's odd that the stuff I saved was lost though. It wasn't critical work, >> just some notes I took. It's more of a puzzle than an annoyance. > > It's pretty concerning to us if the notebook can lose work. But I can't > immediately think what else might be causing it. If it happens again, please > let us know. > > Thomas > > _______________________________________________ > IPython-dev mailing list > IPython-dev at scipy.org > http://mail.scipy.org/mailman/listinfo/ipython-dev > -- Brian E. Granger Cal Poly State University, San Luis Obispo @ellisonbg on Twitter and GitHub bgranger at calpoly.edu and ellisonbg at gmail.com From ellisonbg at gmail.com Fri Jul 24 13:56:37 2015 From: ellisonbg at gmail.com (Brian Granger) Date: Fri, 24 Jul 2015 10:56:37 -0700 Subject: [IPython-dev] 4.0 release status In-Reply-To: References: <20150723171555.qaobtvlm04ck4cgo@webmail.light42.com> Message-ID: Thomas, I will keep working on the landing docs in the jupyter/jupyter repo, but one part that still isn't clear is what the master install page of those should have. It will become a jupyter/ipython wide replacement for ipython.org/install.html. Part of the challenge is that we may need to have instructions that handle folks upgrading from ipython <=3.x as well. * Do we know what those instructions will be yet? * Should we create issues on the jupyter/jupyter repo for the metapackage and install docs? Thanks for managing this stuff! Cheers, Brian On Thu, Jul 23, 2015 at 5:41 PM, Thomas Kluyver wrote: > On 23 July 2015 at 17:15, Brian M Hamlin wrote: >> >> Is it possible that a 3.2x .deb could be a safer "bet" than the >> cliff-hanger 4.0 release ? > > > It's certainly possible, but we're not going to be backporting many fixes to > 3.x once we've got 4.0 out. And as we found the other day, it doesn't look > like anyone's even made Debian packages of IPython 3.x yet. > > Thomas > > _______________________________________________ > IPython-dev mailing list > IPython-dev at scipy.org > http://mail.scipy.org/mailman/listinfo/ipython-dev > -- Brian E. Granger Cal Poly State University, San Luis Obispo @ellisonbg on Twitter and GitHub bgranger at calpoly.edu and ellisonbg at gmail.com From cappy2112 at gmail.com Fri Jul 24 15:16:25 2015 From: cappy2112 at gmail.com (Tony Cappellini) Date: Fri, 24 Jul 2015 12:16:25 -0700 Subject: [IPython-dev] problems with pip install "ipython[notebook]" on Windows 7 Message-ID: I'm trying to install iPython on a laptop I've just received. Windows 7, 64-Bit, Python 2.7.10 I want to use virtualenv. I don't want the conda installer because conda rare;y finds packages that pip has no problems installing. Additionally, I don't see an easy way for virtualenv to work with conda environments, so I'm avoiding it completely. >From an administrator's cmd prompt window... pip install "ipython[notebook]" resulted in an error, because pexpect was expected to be installed. The OS platform iswindows, so pexpect will not be there. Why is the installer doing this on Windows?? I then installed the packages listed on the iPython quickstart page- manually. Everything went well, however the notebook, and qt are not installed. iptest core fails only 1 test, ipkernel.pylab is not installed At this point, I'm not sure how to continue in order to get a fully working notebook environment installed. Thanks Tony -------------- next part -------------- An HTML attachment was scrubbed... URL: From benjaminrk at gmail.com Fri Jul 24 16:33:53 2015 From: benjaminrk at gmail.com (MinRK) Date: Fri, 24 Jul 2015 13:33:53 -0700 Subject: [IPython-dev] Autosave failed message seen in notebook In-Reply-To: References: Message-ID: This can be caused by a number of things: - unicode problems - the server having shutdown - filesystem permission problems There should be a message in the terminal output of the notebook server with a bit more information about what exactly failed. -MinRK On Wed, Jul 22, 2015 at 9:36 AM, Tony Cappellini wrote: > > I'm running on Windows 7 64-Bit with Administrator privileges. > Python version is 2.7.9. Anaconda 2.2.0 (64-Bit), iPython 3.2.0 > > Shortly after launching a notebook, I saw "Autosave Failed" displayed at > the top of the notebook. > > What are typical causes of this? > Is this a known issue? > > Thanks > > Tony > > _______________________________________________ > IPython-dev mailing list > IPython-dev at scipy.org > http://mail.scipy.org/mailman/listinfo/ipython-dev > > -------------- next part -------------- An HTML attachment was scrubbed... URL: From jklymak at gmail.com Fri Jul 24 17:38:10 2015 From: jklymak at gmail.com (Jody Klymak) Date: Fri, 24 Jul 2015 14:38:10 -0700 Subject: [IPython-dev] problems with pip install "ipython[notebook]" on Windows 7 In-Reply-To: References: Message-ID: <4FCC574D-59B7-4DC7-BD7D-D3456EB812B6@gmail.com> > On Jul 24, 2015, at 12:16 PM, Tony Cappellini wrote: > > > I'm trying to install iPython on a laptop I've just received. > Windows 7, 64-Bit, Python 2.7.10 > > I want to use virtualenv. I don't want the conda installer because conda rare;y finds packages that pip has no problems installing. Additionally, I don't see an easy way for virtualenv to work with conda environments, so I'm avoiding it completely. - conda has its own concept of environments that are simpler (in my opinion) than virtualenvs and very powerful: http://www.continuum.io/blog/conda - conda has pip, and ?pip install? will install in your active conda environment. Can?t help you with the below, but your comments above make it seem you have missed some major features of conda! Maybe you will reconsider, because it is really an easy way to install ipython. However, maybe you need some features of virtualenvs I don?t know about. Cheers, Jody > > From an administrator's cmd prompt window... > pip install "ipython[notebook]" > resulted in an error, because pexpect was expected to be installed. The OS platform iswindows, so pexpect will not be there. Why is the installer doing this on Windows?? > I then installed the packages listed on the iPython quickstart page- manually. Everything went well, however the notebook, and qt are not installed. > iptest core > fails only 1 test, ipkernel.pylab > is not installed > At this point, I'm not sure how to continue in order to get a fully working > notebook environment installed. > > Thanks > > Tony > _______________________________________________ > IPython-dev mailing list > IPython-dev at scipy.org > http://mail.scipy.org/mailman/listinfo/ipython-dev -------------- next part -------------- An HTML attachment was scrubbed... URL: From takowl at gmail.com Fri Jul 24 18:06:29 2015 From: takowl at gmail.com (Thomas Kluyver) Date: Fri, 24 Jul 2015 15:06:29 -0700 Subject: [IPython-dev] 4.0 release status In-Reply-To: References: <20150723171555.qaobtvlm04ck4cgo@webmail.light42.com> Message-ID: On 24 July 2015 at 10:56, Brian Granger wrote: > Part of the challenge is that we may > need to have instructions that handle folks upgrading from ipython > <=3.x as well. > > * Do we know what those instructions will be yet? > That's a good point. I think it will be simply to install the Jupyter package using pip or conda, according to what IPython was installed with. I'll ping Aaron Meurer to work out what the conda packaging situation will be. > * Should we create issues on the jupyter/jupyter repo for the > metapackage and install docs? > Min's already got a PR open for the metapackage. I'll make an issue for the upgrade situation. Thanks, Thomas -------------- next part -------------- An HTML attachment was scrubbed... URL: From damianavila at gmail.com Mon Jul 27 09:42:57 2015 From: damianavila at gmail.com (=?UTF-8?Q?Dami=C3=A1n_Avila?=) Date: Mon, 27 Jul 2015 13:42:57 +0000 Subject: [IPython-dev] 'Stateless' interact: a widget experiment In-Reply-To: References: Message-ID: Thanks Thomas! Some comments below... >This has some key benefits: as regular Javascript output, the widgets are persisted as part of the notebook. Their state is not saved for now (more on that below), but when you reopen it, the widgets will be in their starting position, with the initial output shown. If they can connect to the kernel-side part, they will be enabled and usable; if not, they'll show up disabled. It should even be possible to show them (disabled) on nbviewer, but that's not working yet. Super! >Things it doesn't do yet but could fairly easily: >- Widgets other than sliders >- Display of output other than plain text >- Widgets visible on nbviewer >- A nicer Python API (decorators, widget abbreviations, etc.) +1 >Things I'd like that may require some changes in Jupyter: >- Persistence of widget state: I think the key here is a way for JS output areas to get a handle on the output object that will be stored in the notebook document. Then they could store this kind of info in the output metadata. I like the idea to store the info in the output metadata, feels like the "natural" space for this implementation... >- Better handling of kernel disconnection/reconnection: e.g. at present, it disables the widgets on the kernel restarting event, but if I have the notebook open in two browsers, the event only fires in the one where I asked for a restart. I'm not sure exactly what happens with comms - it doesn't look like they're closed when the kernel disconnects or restarts. >- Not dumping duplicate JS in the notebook: we've discussed this before. There's a chunk of JS that I send each time an interact() displays, and it's only going to get longer as this project expands. It would be good to store just one copy of this. I would like it to be saved as part of the notebook, though, so the widgets can be shown without involving the kernel. +10 as well, I also saw this problem about dumping duplicate JS in other contexts. Would be nice to finally solve it. >- Showing widgets in untrusted notebooks: this would require the JS to construct them to be installed as an extension (or part of the notebook) so we can run that without security issues. I'd probably then use display_json to put widgets on the page. Yep, it could be an option installing it as an extension... >Currently, there's no way to update widget state from code in the kernel. I'm not sure that this really makes sense, since there can be multiple clients with independent states, but it would probably be possible to broadcast an update message to the connected clients if we did want that. I don't like the idea to break multiple client independent states, but it would be probably nice to have it from broadcasting purposes, which is probably an important use case. >I want to emphasise this is very much a *prototype*, not something you want to use today. I think it's worth exploring because it feels like a much simpler system than synced-model widgets, and it has the potential to give us an easier story around persistence. It will never do all the things you can do with synced-model widgets, and that's quite deliberate. I agree with you that this is something to continue exploring. Thanks for sharing it! On Mon, Jul 13, 2015 at 5:21 PM Chris Colbert wrote: > On Mon, Jul 13, 2015 at 4:05 PM, Thomas Kluyver wrote: > >> >> Currently, there's no way to update widget state from code in the kernel. >> I'm not sure that this really makes sense, since there can be multiple >> clients with independent states, but it would probably be possible to >> broadcast an update message to the connected clients if we did want that. >> >> > As a simple straw man case, how would this handle updating a label whose > text is generated based on a computed model parameter when that model > parameter changes? > > > _______________________________________________ > IPython-dev mailing list > IPython-dev at scipy.org > http://mail.scipy.org/mailman/listinfo/ipython-dev > -- Dami?n Avila -------------- next part -------------- An HTML attachment was scrubbed... URL: From jon.freder at gmail.com Mon Jul 27 11:01:16 2015 From: jon.freder at gmail.com (Jonathan Frederic) Date: Mon, 27 Jul 2015 08:01:16 -0700 Subject: [IPython-dev] Prototyping on a plane: Splitting-recombining contents manager In-Reply-To: References: Message-ID: Hmm makes me think we could, in the future, have inputs+(outputs&runtime state). Or inputs+outputs+runtime state, all zipped into a single file. If users want they could choose only to store inputs, which would be a diff file extensions, and not use zipping. (Like M$ office's save with macros or without, which now uses two separate file exts) P.s. when I say runtime state, I'm thinking widgets. On Jul 14, 2015 10:01 AM, "Thomas Kluyver" wrote: > On the flight back from Austin yesterday, I got some time to work on an > idea I've had for a while: a contents manager that splits inputs/outputs > and recombines them on load. > > In some contexts, you want to version control the code + markdown of a > notebook and not the outputs, which may change more frequently, and may > include big blobs of binary data which VCSs don't handle well. There are > tools available to strip outputs out before committing, but then you lose > the outputs locally as well. And if any collaborator doesn't set up that > tool, they might accidentally commit the outputs. > > With this contents manager, when you save a notebook, you get an extra > Whatever.ipynb.clean file, with no outputs or execution_count prompt > numbers. Whatever.ipynb is also saved as normal, with the outputs left > intact. > > The idea is that you would commit the .ipynb.clean files, and tell the VCS > to ignore .ipynb files, keeping them as a local cache of the outputs from > running the notebook. > > If someone else changes the 'clean' copy in version control, it may no > longer match your local cache. When you open the notebook, the clean copy > is considered authoritative, but it still tries to use information from the > cached 'dirty' copy. It uses difflib to match up code cells that haven't > changed, and reinstates the output from the cache. > > The code, and an example notebook with only the clean part in version > control, are here: > https://github.com/takluyver/recombinecm > > N.B. Both files will show up the file list, but you need to click the > .ipynb to open the notebook. I'm still thinking about how to make this > neater. > > Thomas > > _______________________________________________ > IPython-dev mailing list > IPython-dev at scipy.org > http://mail.scipy.org/mailman/listinfo/ipython-dev > > -------------- next part -------------- An HTML attachment was scrubbed... URL: From jon.freder at gmail.com Mon Jul 27 11:04:31 2015 From: jon.freder at gmail.com (Jonathan Frederic) Date: Mon, 27 Jul 2015 08:04:31 -0700 Subject: [IPython-dev] Prototyping on a plane: Splitting-recombining contents manager In-Reply-To: References: Message-ID: (Sorry I'm responding by phone, I just saw the typos on my previous e-mail. Curse my clumsy fingers!) I meant: which would be a different file extension. On Jul 27, 2015 8:01 AM, "Jonathan Frederic" wrote: > Hmm makes me think we could, in the future, have inputs+(outputs&runtime > state). Or inputs+outputs+runtime state, all zipped into a single file. > If users want they could choose only to store inputs, which would be a diff > file extensions, and not use zipping. (Like M$ office's save with macros > or without, which now uses two separate file exts) > > P.s. when I say runtime state, I'm thinking widgets. > On Jul 14, 2015 10:01 AM, "Thomas Kluyver" wrote: > >> On the flight back from Austin yesterday, I got some time to work on an >> idea I've had for a while: a contents manager that splits inputs/outputs >> and recombines them on load. >> >> In some contexts, you want to version control the code + markdown of a >> notebook and not the outputs, which may change more frequently, and may >> include big blobs of binary data which VCSs don't handle well. There are >> tools available to strip outputs out before committing, but then you lose >> the outputs locally as well. And if any collaborator doesn't set up that >> tool, they might accidentally commit the outputs. >> >> With this contents manager, when you save a notebook, you get an extra >> Whatever.ipynb.clean file, with no outputs or execution_count prompt >> numbers. Whatever.ipynb is also saved as normal, with the outputs left >> intact. >> >> The idea is that you would commit the .ipynb.clean files, and tell the >> VCS to ignore .ipynb files, keeping them as a local cache of the outputs >> from running the notebook. >> >> If someone else changes the 'clean' copy in version control, it may no >> longer match your local cache. When you open the notebook, the clean copy >> is considered authoritative, but it still tries to use information from the >> cached 'dirty' copy. It uses difflib to match up code cells that haven't >> changed, and reinstates the output from the cache. >> >> The code, and an example notebook with only the clean part in version >> control, are here: >> https://github.com/takluyver/recombinecm >> >> N.B. Both files will show up the file list, but you need to click the >> .ipynb to open the notebook. I'm still thinking about how to make this >> neater. >> >> Thomas >> >> _______________________________________________ >> IPython-dev mailing list >> IPython-dev at scipy.org >> http://mail.scipy.org/mailman/listinfo/ipython-dev >> >> -------------- next part -------------- An HTML attachment was scrubbed... URL: From nick.bollweg at gmail.com Mon Jul 27 11:15:00 2015 From: nick.bollweg at gmail.com (Nicholas Bollweg) Date: Mon, 27 Jul 2015 15:15:00 +0000 Subject: [IPython-dev] Prototyping on a plane: Splitting-recombining contents manager In-Reply-To: References: Message-ID: As I work more with contentsmanagers (ipymd) I wonder if there won't be a place for a contentsmiddleware concept that could slap transforms like this on top of other managers. On ipymd, to store image outputs, we have several bad options: inline ![](data:) tags, which would be awful to diff, reference-style ![][#impyd-img-1234567] which would at least make the diff a little better. Having a consistent way to dump these to. How does all of this work without cell ids? On Mon, Jul 27, 2015 at 11:04 AM Jonathan Frederic wrote: > (Sorry I'm responding by phone, I just saw the typos on my previous > e-mail. Curse my clumsy fingers!) I meant: which would be a different > file extension. > On Jul 27, 2015 8:01 AM, "Jonathan Frederic" wrote: > >> Hmm makes me think we could, in the future, have inputs+(outputs&runtime >> state). Or inputs+outputs+runtime state, all zipped into a single file. >> If users want they could choose only to store inputs, which would be a diff >> file extensions, and not use zipping. (Like M$ office's save with macros >> or without, which now uses two separate file exts) >> >> P.s. when I say runtime state, I'm thinking widgets. >> On Jul 14, 2015 10:01 AM, "Thomas Kluyver" wrote: >> >>> On the flight back from Austin yesterday, I got some time to work on an >>> idea I've had for a while: a contents manager that splits inputs/outputs >>> and recombines them on load. >>> >>> In some contexts, you want to version control the code + markdown of a >>> notebook and not the outputs, which may change more frequently, and may >>> include big blobs of binary data which VCSs don't handle well. There are >>> tools available to strip outputs out before committing, but then you lose >>> the outputs locally as well. And if any collaborator doesn't set up that >>> tool, they might accidentally commit the outputs. >>> >>> With this contents manager, when you save a notebook, you get an extra >>> Whatever.ipynb.clean file, with no outputs or execution_count prompt >>> numbers. Whatever.ipynb is also saved as normal, with the outputs left >>> intact. >>> >>> The idea is that you would commit the .ipynb.clean files, and tell the >>> VCS to ignore .ipynb files, keeping them as a local cache of the outputs >>> from running the notebook. >>> >>> If someone else changes the 'clean' copy in version control, it may no >>> longer match your local cache. When you open the notebook, the clean copy >>> is considered authoritative, but it still tries to use information from the >>> cached 'dirty' copy. It uses difflib to match up code cells that haven't >>> changed, and reinstates the output from the cache. >>> >>> The code, and an example notebook with only the clean part in version >>> control, are here: >>> https://github.com/takluyver/recombinecm >>> >>> N.B. Both files will show up the file list, but you need to click the >>> .ipynb to open the notebook. I'm still thinking about how to make this >>> neater. >>> >>> Thomas >>> >>> _______________________________________________ >>> IPython-dev mailing list >>> IPython-dev at scipy.org >>> http://mail.scipy.org/mailman/listinfo/ipython-dev >>> >>> _______________________________________________ > IPython-dev mailing list > IPython-dev at scipy.org > http://mail.scipy.org/mailman/listinfo/ipython-dev > -------------- next part -------------- An HTML attachment was scrubbed... URL: From takowl at gmail.com Mon Jul 27 14:24:40 2015 From: takowl at gmail.com (Thomas Kluyver) Date: Mon, 27 Jul 2015 11:24:40 -0700 Subject: [IPython-dev] 'Stateless' interact: a widget experiment In-Reply-To: References: Message-ID: On 27 July 2015 at 06:42, Dami?n Avila wrote: > >- Not dumping duplicate JS in the notebook: we've discussed this before. > There's a chunk of JS that I send each time an interact() displays, and > it's only going to get longer as this project expands. It would be good to > store just one copy of this. I would like it to be saved as part of the > notebook, though, so the widgets can be shown without involving the kernel. > > +10 as well, I also saw this problem about dumping duplicate JS in other > contexts. Would be nice to finally solve it. > I've got another skunkworks project on the go to address this. More on that soon. Thomas -------------- next part -------------- An HTML attachment was scrubbed... URL: From wes.turner at gmail.com Mon Jul 27 15:48:08 2015 From: wes.turner at gmail.com (Wes Turner) Date: Mon, 27 Jul 2015 14:48:08 -0500 Subject: [IPython-dev] Prototyping on a plane: Splitting-recombining contents manager In-Reply-To: References: Message-ID: On Jul 27, 2015 10:01 AM, "Jonathan Frederic" wrote: > > Hmm makes me think we could, in the future, have inputs+(outputs&runtime state). Or inputs+outputs+runtime state, all zipped into a single file. If users want they could choose only to store inputs, which would be a diff file extensions, and not use zipping. (Like M$ office's save with macros or without, which now uses two separate file exts) > > P.s. when I say runtime state, I'm thinking widgets. For reproducibility, * runtime state * versions * actual source code * installed binary packages (e.g. archived docker image) ... This looks really useful. It would be great to be able to go from a notebook.py3.ipynb.clean file to an installed docker container (with minimal knowledge of packaging), runipy, and save the HTML e.g. as notebook.py3.ipynb.html. > > On Jul 14, 2015 10:01 AM, "Thomas Kluyver" wrote: >> >> On the flight back from Austin yesterday, I got some time to work on an idea I've had for a while: a contents manager that splits inputs/outputs and recombines them on load. >> >> In some contexts, you want to version control the code + markdown of a notebook and not the outputs, which may change more frequently, and may include big blobs of binary data which VCSs don't handle well. There are tools available to strip outputs out before committing, but then you lose the outputs locally as well. And if any collaborator doesn't set up that tool, they might accidentally commit the outputs. >> >> With this contents manager, when you save a notebook, you get an extra Whatever.ipynb.clean file, with no outputs or execution_count prompt numbers. Whatever.ipynb is also saved as normal, with the outputs left intact. >> >> The idea is that you would commit the .ipynb.clean files, and tell the VCS to ignore .ipynb files, keeping them as a local cache of the outputs from running the notebook. >> >> If someone else changes the 'clean' copy in version control, it may no longer match your local cache. When you open the notebook, the clean copy is considered authoritative, but it still tries to use information from the cached 'dirty' copy. It uses difflib to match up code cells that haven't changed, and reinstates the output from the cache. >> >> The code, and an example notebook with only the clean part in version control, are here: >> https://github.com/takluyver/recombinecm >> >> N.B. Both files will show up the file list, but you need to click the .ipynb to open the notebook. I'm still thinking about how to make this neater. >> >> Thomas >> >> _______________________________________________ >> IPython-dev mailing list >> IPython-dev at scipy.org >> http://mail.scipy.org/mailman/listinfo/ipython-dev >> > > _______________________________________________ > IPython-dev mailing list > IPython-dev at scipy.org > http://mail.scipy.org/mailman/listinfo/ipython-dev > -------------- next part -------------- An HTML attachment was scrubbed... URL: From wes.turner at gmail.com Mon Jul 27 15:49:43 2015 From: wes.turner at gmail.com (Wes Turner) Date: Mon, 27 Jul 2015 14:49:43 -0500 Subject: [IPython-dev] Prototyping on a plane: Splitting-recombining contents manager In-Reply-To: References: Message-ID: On Jul 27, 2015 2:48 PM, "Wes Turner" wrote: > > > On Jul 27, 2015 10:01 AM, "Jonathan Frederic" wrote: > > > > Hmm makes me think we could, in the future, have inputs+(outputs&runtime state). Or inputs+outputs+runtime state, all zipped into a single file. If users want they could choose only to store inputs, which would be a diff file extensions, and not use zipping. (Like M$ office's save with macros or without, which now uses two separate file exts) > > > > P.s. when I say runtime state, I'm thinking widgets. > > For reproducibility, > > * runtime state > * versions > * actual source code > * installed binary packages (e.g. archived docker image) * data URIs * actual data > > ... This looks really useful. > > It would be great to be able to go from a notebook.py3.ipynb.clean file to an installed docker container (with minimal knowledge of packaging), runipy, and save the HTML e.g. as notebook.py3.ipynb.html. > > > > > On Jul 14, 2015 10:01 AM, "Thomas Kluyver" wrote: > >> > >> On the flight back from Austin yesterday, I got some time to work on an idea I've had for a while: a contents manager that splits inputs/outputs and recombines them on load. > >> > >> In some contexts, you want to version control the code + markdown of a notebook and not the outputs, which may change more frequently, and may include big blobs of binary data which VCSs don't handle well. There are tools available to strip outputs out before committing, but then you lose the outputs locally as well. And if any collaborator doesn't set up that tool, they might accidentally commit the outputs. > >> > >> With this contents manager, when you save a notebook, you get an extra Whatever.ipynb.clean file, with no outputs or execution_count prompt numbers. Whatever.ipynb is also saved as normal, with the outputs left intact. > >> > >> The idea is that you would commit the .ipynb.clean files, and tell the VCS to ignore .ipynb files, keeping them as a local cache of the outputs from running the notebook. > >> > >> If someone else changes the 'clean' copy in version control, it may no longer match your local cache. When you open the notebook, the clean copy is considered authoritative, but it still tries to use information from the cached 'dirty' copy. It uses difflib to match up code cells that haven't changed, and reinstates the output from the cache. > >> > >> The code, and an example notebook with only the clean part in version control, are here: > >> https://github.com/takluyver/recombinecm > >> > >> N.B. Both files will show up the file list, but you need to click the .ipynb to open the notebook. I'm still thinking about how to make this neater. > >> > >> Thomas > >> > >> _______________________________________________ > >> IPython-dev mailing list > >> IPython-dev at scipy.org > >> http://mail.scipy.org/mailman/listinfo/ipython-dev > >> > > > > _______________________________________________ > > IPython-dev mailing list > > IPython-dev at scipy.org > > http://mail.scipy.org/mailman/listinfo/ipython-dev > > -------------- next part -------------- An HTML attachment was scrubbed... URL: From damianavila at gmail.com Mon Jul 27 20:56:03 2015 From: damianavila at gmail.com (=?UTF-8?Q?Dami=C3=A1n_Avila?=) Date: Tue, 28 Jul 2015 00:56:03 +0000 Subject: [IPython-dev] Prototyping on a plane: Splitting-recombining contents manager In-Reply-To: References: Message-ID: > Nope - everything you need to recreate the Markdown cells is stored in the 'clean' document, so there's no need to match them up. It's actually redundant to even store them in the local cache file, but that was the easiest way to do it. Yep, you are right, re-reading the original paragraph is now clear to me, thanks! On Mon, Jul 27, 2015 at 5:04 PM Wes Turner wrote: > > On Jul 27, 2015 2:48 PM, "Wes Turner" wrote: > > > > > > On Jul 27, 2015 10:01 AM, "Jonathan Frederic" > wrote: > > > > > > Hmm makes me think we could, in the future, have > inputs+(outputs&runtime state). Or inputs+outputs+runtime state, all > zipped into a single file. If users want they could choose only to store > inputs, which would be a diff file extensions, and not use zipping. (Like > M$ office's save with macros or without, which now uses two separate file > exts) > > > > > > P.s. when I say runtime state, I'm thinking widgets. > > > > For reproducibility, > > > > * runtime state > > * versions > > * actual source code > > * installed binary packages (e.g. archived docker image) > > * data URIs > * actual data > > > > > ... This looks really useful. > > > > It would be great to be able to go from a notebook.py3.ipynb.clean file > to an installed docker container (with minimal knowledge of packaging), > runipy, and save the HTML e.g. as notebook.py3.ipynb.html. > > > > > > > > On Jul 14, 2015 10:01 AM, "Thomas Kluyver" wrote: > > >> > > >> On the flight back from Austin yesterday, I got some time to work on > an idea I've had for a while: a contents manager that splits inputs/outputs > and recombines them on load. > > >> > > >> In some contexts, you want to version control the code + markdown of > a notebook and not the outputs, which may change more frequently, and may > include big blobs of binary data which VCSs don't handle well. There are > tools available to strip outputs out before committing, but then you lose > the outputs locally as well. And if any collaborator doesn't set up that > tool, they might accidentally commit the outputs. > > >> > > >> With this contents manager, when you save a notebook, you get an > extra Whatever.ipynb.clean file, with no outputs or execution_count prompt > numbers. Whatever.ipynb is also saved as normal, with the outputs left > intact. > > >> > > >> The idea is that you would commit the .ipynb.clean files, and tell > the VCS to ignore .ipynb files, keeping them as a local cache of the > outputs from running the notebook. > > >> > > >> If someone else changes the 'clean' copy in version control, it may > no longer match your local cache. When you open the notebook, the clean > copy is considered authoritative, but it still tries to use information > from the cached 'dirty' copy. It uses difflib to match up code cells that > haven't changed, and reinstates the output from the cache. > > >> > > >> The code, and an example notebook with only the clean part in version > control, are here: > > >> https://github.com/takluyver/recombinecm > > >> > > >> N.B. Both files will show up the file list, but you need to click the > .ipynb to open the notebook. I'm still thinking about how to make this > neater. > > >> > > >> Thomas > > >> > > >> _______________________________________________ > > >> IPython-dev mailing list > > >> IPython-dev at scipy.org > > >> http://mail.scipy.org/mailman/listinfo/ipython-dev > > >> > > > > > > _______________________________________________ > > > IPython-dev mailing list > > > IPython-dev at scipy.org > > > http://mail.scipy.org/mailman/listinfo/ipython-dev > > > > _______________________________________________ > IPython-dev mailing list > IPython-dev at scipy.org > http://mail.scipy.org/mailman/listinfo/ipython-dev > -- Dami?n Avila -------------- next part -------------- An HTML attachment was scrubbed... URL: From robert.dodier at gmail.com Wed Jul 29 13:54:07 2015 From: robert.dodier at gmail.com (Robert Dodier) Date: Wed, 29 Jul 2015 10:54:07 -0700 Subject: [IPython-dev] How to tell IPython to render %%latex or other magical stuff Message-ID: Hi, I guess this must be an obvious question, but I haven't been able to find the answer. I am creating a kernel for Maxima (computer algebra system) and I've been able to get Maxima to talk to the IPython front end via Fishbowl (kernel for Common Lisp). O happy day! Many thanks to Frederic Peschanski for Fishbowl. Anyway now I'm trying to figure out how to have formulas and plots displayed by the IPython notebook. What does the kernel return to tell the front end to render stuff as LaTeX? or as a plot? If I get Maxima to return "%%latex $x^2$" it is still displayed as a string, so I must be missing something. Thanks in advance for any information. Robert Dodier From takowl at gmail.com Wed Jul 29 14:03:03 2015 From: takowl at gmail.com (Thomas Kluyver) Date: Wed, 29 Jul 2015 11:03:03 -0700 Subject: [IPython-dev] How to tell IPython to render %%latex or other magical stuff In-Reply-To: References: Message-ID: On 29 July 2015 at 10:54, Robert Dodier wrote: > What does the kernel return to tell > the front end to render stuff as LaTeX? or as a plot? > The kernel needs to send a display_data message (or execute_request, which has basically the same semantics plus a prompt number). Here's the messaging docs: http://jupyter-client.readthedocs.org/en/latest/messaging.html#display-data What the user needs to do in a notebook to make the kernel send that message depends on the kernel. In IPython, we expose a set of classes and functions in the IPython.display module to display different kinds of output. Fishbowl may have something similar, or that may be a feature yet to be added. Thomas -------------- next part -------------- An HTML attachment was scrubbed... URL: From benjaminrk at gmail.com Wed Jul 29 14:14:27 2015 From: benjaminrk at gmail.com (MinRK) Date: Wed, 29 Jul 2015 11:14:27 -0700 Subject: [IPython-dev] How to tell IPython to render %%latex or other magical stuff In-Reply-To: References: Message-ID: The IPython kernel provides cell magics like %%latex as shorthand for IPython display calls, so %%latex $a = 5$ is equivalent to: from IPython.display import Latex, display display(Latex(""" $a = 5$ """)) As Thomas mentioned, you want to make sure a display_data message is sent. -MinRK ? On Wed, Jul 29, 2015 at 10:54 AM, Robert Dodier wrote: > Hi, > > I guess this must be an obvious question, but I haven't been able to > find the answer. I am creating a kernel for Maxima (computer algebra > system) and I've been able to get Maxima to talk to the IPython front > end via Fishbowl (kernel for Common Lisp). O happy day! Many thanks to > Frederic Peschanski for Fishbowl. > > Anyway now I'm trying to figure out how to have formulas and plots > displayed by the IPython notebook. What does the kernel return to tell > the front end to render stuff as LaTeX? or as a plot? If I get Maxima > to return "%%latex $x^2$" it is still displayed as a string, so I must > be missing something. > > Thanks in advance for any information. > > Robert Dodier > _______________________________________________ > IPython-dev mailing list > IPython-dev at scipy.org > http://mail.scipy.org/mailman/listinfo/ipython-dev > -------------- next part -------------- An HTML attachment was scrubbed... URL: From zvoros at gmail.com Wed Jul 29 16:28:03 2015 From: zvoros at gmail.com (=?UTF-8?B?Wm9sdMOhbiBWw7Zyw7Zz?=) Date: Wed, 29 Jul 2015 22:28:03 +0200 Subject: [IPython-dev] inline plot is not shown in notebook Message-ID: Hi all, I have taken the latest matplotlib code from github, and installed it. Now, inline plots are not shown in the notebook anymore, I only get the plot signature like this: [image: Inline image 1] Is there something that I should set? If so, what would that be? I have found a couple of postings here and there, but those didn't solve my problem. I can use the notebook backend like so: [image: Inline image 2] but this requires the extra "fig, (ax) = subplots(1)" line before every plot command, otherwise, the figure is drawn only once, no matter how many times I issue the plot command. Is there a setting that blocks subsequent plots? I am running ipython version 4.0 with python 3.3 kernel. Thanks, Zolt?n -------------- next part -------------- An HTML attachment was scrubbed... URL: -------------- next part -------------- A non-text attachment was scrubbed... Name: image.png Type: image/png Size: 30085 bytes Desc: not available URL: -------------- next part -------------- A non-text attachment was scrubbed... Name: image.png Type: image/png Size: 49139 bytes Desc: not available URL: From pmhobson at gmail.com Wed Jul 29 16:37:08 2015 From: pmhobson at gmail.com (Paul Hobson) Date: Wed, 29 Jul 2015 13:37:08 -0700 Subject: [IPython-dev] inline plot is not shown in notebook In-Reply-To: References: Message-ID: Does this happen with %matplotlib inline as well? On Wed, Jul 29, 2015 at 1:28 PM, Zolt?n V?r?s wrote: > Hi all, > > I have taken the latest matplotlib code from github, and installed it. > Now, inline plots are not shown in the notebook anymore, I only get the > plot signature like this: > [image: Inline image 1] > > Is there something that I should set? If so, what would that be? I have > found a couple of postings here and there, but those didn't solve my > problem. > > I can use the notebook backend like so: > [image: Inline image 2] > > but this requires the extra "fig, (ax) = subplots(1)" line before every > plot command, otherwise, the figure is drawn only once, no matter how many > times I issue the plot command. Is there a setting that blocks subsequent > plots? > > I am running ipython version 4.0 with python 3.3 kernel. > > Thanks, > > Zolt?n > > _______________________________________________ > IPython-dev mailing list > IPython-dev at scipy.org > http://mail.scipy.org/mailman/listinfo/ipython-dev > > -------------- next part -------------- An HTML attachment was scrubbed... URL: -------------- next part -------------- A non-text attachment was scrubbed... Name: image.png Type: image/png Size: 49139 bytes Desc: not available URL: -------------- next part -------------- A non-text attachment was scrubbed... Name: image.png Type: image/png Size: 30085 bytes Desc: not available URL: From zvoros at gmail.com Wed Jul 29 17:00:56 2015 From: zvoros at gmail.com (=?UTF-8?B?Wm9sdMOhbiBWw7Zyw7Zz?=) Date: Wed, 29 Jul 2015 23:00:56 +0200 Subject: [IPython-dev] inline plot is not shown in notebook In-Reply-To: References: Message-ID: Do you mean like this: [image: Inline image 1] Yes, it is the same thing:( On Wed, Jul 29, 2015 at 10:37 PM, Paul Hobson wrote: > Does this happen with %matplotlib inline as well? > > On Wed, Jul 29, 2015 at 1:28 PM, Zolt?n V?r?s wrote: > >> Hi all, >> >> I have taken the latest matplotlib code from github, and installed it. >> Now, inline plots are not shown in the notebook anymore, I only get the >> plot signature like this: >> [image: Inline image 1] >> >> Is there something that I should set? If so, what would that be? I have >> found a couple of postings here and there, but those didn't solve my >> problem. >> >> I can use the notebook backend like so: >> [image: Inline image 2] >> >> but this requires the extra "fig, (ax) = subplots(1)" line before every >> plot command, otherwise, the figure is drawn only once, no matter how many >> times I issue the plot command. Is there a setting that blocks subsequent >> plots? >> >> I am running ipython version 4.0 with python 3.3 kernel. >> >> Thanks, >> >> Zolt?n >> >> _______________________________________________ >> IPython-dev mailing list >> IPython-dev at scipy.org >> http://mail.scipy.org/mailman/listinfo/ipython-dev >> >> > > _______________________________________________ > IPython-dev mailing list > IPython-dev at scipy.org > http://mail.scipy.org/mailman/listinfo/ipython-dev > > -------------- next part -------------- An HTML attachment was scrubbed... URL: -------------- next part -------------- A non-text attachment was scrubbed... Name: image.png Type: image/png Size: 49139 bytes Desc: not available URL: -------------- next part -------------- A non-text attachment was scrubbed... Name: image.png Type: image/png Size: 30085 bytes Desc: not available URL: -------------- next part -------------- A non-text attachment was scrubbed... Name: image.png Type: image/png Size: 30806 bytes Desc: not available URL: From jenshnielsen at gmail.com Wed Jul 29 18:01:28 2015 From: jenshnielsen at gmail.com (Jens Nielsen) Date: Wed, 29 Jul 2015 22:01:28 +0000 Subject: [IPython-dev] inline plot is not shown in notebook In-Reply-To: References: Message-ID: Hi Zolt?n This is due to recent changes in Matplotlib and how the automatic draw works see https://github.com/matplotlib/matplotlib/issues/4774 Until it is fixed you should be able to solve it by adding a plt.show() to the end of the cell ons. 29. jul. 2015 kl. 22.01 skrev Zolt?n V?r?s : > Do you mean like this: > > > [image: Inline image 1] > > Yes, it is the same thing:( > > On Wed, Jul 29, 2015 at 10:37 PM, Paul Hobson wrote: > >> Does this happen with %matplotlib inline as well? >> >> On Wed, Jul 29, 2015 at 1:28 PM, Zolt?n V?r?s wrote: >> >>> Hi all, >>> >>> I have taken the latest matplotlib code from github, and installed it. >>> Now, inline plots are not shown in the notebook anymore, I only get the >>> plot signature like this: >>> [image: Inline image 1] >>> >>> Is there something that I should set? If so, what would that be? I have >>> found a couple of postings here and there, but those didn't solve my >>> problem. >>> >>> I can use the notebook backend like so: >>> [image: Inline image 2] >>> >>> but this requires the extra "fig, (ax) = subplots(1)" line before every >>> plot command, otherwise, the figure is drawn only once, no matter how many >>> times I issue the plot command. Is there a setting that blocks subsequent >>> plots? >>> >>> I am running ipython version 4.0 with python 3.3 kernel. >>> >>> Thanks, >>> >>> Zolt?n >>> >>> _______________________________________________ >>> IPython-dev mailing list >>> IPython-dev at scipy.org >>> http://mail.scipy.org/mailman/listinfo/ipython-dev >>> >>> >> >> _______________________________________________ >> IPython-dev mailing list >> IPython-dev at scipy.org >> http://mail.scipy.org/mailman/listinfo/ipython-dev >> >> > _______________________________________________ > IPython-dev mailing list > IPython-dev at scipy.org > http://mail.scipy.org/mailman/listinfo/ipython-dev > -------------- next part -------------- An HTML attachment was scrubbed... URL: -------------- next part -------------- A non-text attachment was scrubbed... Name: image.png Type: image/png Size: 49139 bytes Desc: not available URL: -------------- next part -------------- A non-text attachment was scrubbed... Name: image.png Type: image/png Size: 30085 bytes Desc: not available URL: -------------- next part -------------- A non-text attachment was scrubbed... Name: image.png Type: image/png Size: 30806 bytes Desc: not available URL: From cappy2112 at gmail.com Wed Jul 29 19:22:39 2015 From: cappy2112 at gmail.com (Tony Cappellini) Date: Wed, 29 Jul 2015 16:22:39 -0700 Subject: [IPython-dev] inline plot is not shown in notebook Message-ID: Message: 4 Date: Wed, 29 Jul 2015 22:28:03 +0200 From: Zolt?n V?r?s Subject: [IPython-dev] inline plot is not shown in notebook To: IPython Development list Message-ID: Content-Type: text/plain; charset="utf-8" Run this in your first cell- above any cells with plots. You need to do this in every notebook, or add it to one of your config files, so that it is done automatically. %matplotlib inline (alternatively %pylab inline) From robert.dodier at gmail.com Wed Jul 29 20:37:02 2015 From: robert.dodier at gmail.com (Robert Dodier) Date: Wed, 29 Jul 2015 17:37:02 -0700 Subject: [IPython-dev] How to toggle between LaTeX and plain text in notebook viewer Message-ID: Hi, thanks for your help, I've managed to set up my Maxima kernel so that it returns both plain text and LaTeX and the LaTeX is nicely rendered in the notebook. Hurray! I wonder, is there a way for the user to toggle the display of a cell so that they can see the plain text representation instead of the LaTeX-formatted representation? best, Robert Dodier From takowl at gmail.com Wed Jul 29 20:43:30 2015 From: takowl at gmail.com (Thomas Kluyver) Date: Wed, 29 Jul 2015 17:43:30 -0700 Subject: [IPython-dev] How to toggle between LaTeX and plain text in notebook viewer In-Reply-To: References: Message-ID: On 29 July 2015 at 17:37, Robert Dodier wrote: > I wonder, is there a way for the user to toggle the display of > a cell so that they can see the plain text representation > instead of the LaTeX-formatted representation? > By default, only one preferred representation is displayed. You could write a custom template that would render both and let you toggle between them, though it might be a bit fiddly to do. -------------- next part -------------- An HTML attachment was scrubbed... URL: From jsw at fnal.gov Wed Jul 29 20:49:01 2015 From: jsw at fnal.gov (Jon Wilson) Date: Wed, 29 Jul 2015 19:49:01 -0500 Subject: [IPython-dev] How to toggle between LaTeX and plain text in notebook viewer In-Reply-To: References: Message-ID: <55B9747D.4020404@fnal.gov> On 07/29/2015 07:43 PM, Thomas Kluyver wrote: > On 29 July 2015 at 17:37, Robert Dodier > wrote: > > I wonder, is there a way for the user to toggle the display of > a cell so that they can see the plain text representation > instead of the LaTeX-formatted representation? > > > By default, only one preferred representation is displayed. You could > write a custom template that would render both and let you toggle > between them, though it might be a bit fiddly to do. A more general way to provide multiple representations of things (and let the user select among them) might be quite nice. I've often wished for my matplotlib inline plots to send both a PNG and a PDF to the notebook, and make the PNG a link to the PDF, for example. Regards, Jon -------------- next part -------------- An HTML attachment was scrubbed... URL: From zvoros at gmail.com Thu Jul 30 02:32:43 2015 From: zvoros at gmail.com (=?UTF-8?B?Wm9sdMOhbiBWw7Zyw7Zz?=) Date: Thu, 30 Jul 2015 08:32:43 +0200 Subject: [IPython-dev] inline plot is not shown in notebook In-Reply-To: References: Message-ID: <55B9C50B.5050406@gmail.com> I have already tried that, but that doesn't solve the issue. On 07/30/2015 01:22 AM, Tony Cappellini wrote: > Message: 4 > Date: Wed, 29 Jul 2015 22:28:03 +0200 > From: Zolt?n V?r?s > Subject: [IPython-dev] inline plot is not shown in notebook > To: IPython Development list > Message-ID: > > Content-Type: text/plain; charset="utf-8" > > > Run this in your first cell- above any cells with plots. > You need to do this in every notebook, or add it to one of your config > files, so that > it is done automatically. > > > %matplotlib inline > > (alternatively %pylab inline) From zvoros at gmail.com Thu Jul 30 02:34:11 2015 From: zvoros at gmail.com (=?UTF-8?B?Wm9sdMOhbiBWw7Zyw7Zz?=) Date: Thu, 30 Jul 2015 08:34:11 +0200 Subject: [IPython-dev] inline plot is not shown in notebook In-Reply-To: References: Message-ID: <55B9C563.9050300@gmail.com> Jens, Many thanks, that was it! It seems that I was so used to the fact that ipython automatically appends the show() that it didn't occur to me that I should do that. Cheers, Zolt?n On 07/30/2015 12:01 AM, Jens Nielsen wrote: > Hi Zolt?n > > This is due to recent changes in Matplotlib and how the automatic draw > works see https://github.com/matplotlib/matplotlib/issues/4774 > > Until it is fixed you should be able to solve it by adding a > plt.show() to the end of the cell > > > ons. 29. jul. 2015 kl. 22.01 skrev Zolt?n V?r?s >: > > Do you mean like this: > > > Inline image 1 > > Yes, it is the same thing:( > > On Wed, Jul 29, 2015 at 10:37 PM, Paul Hobson > wrote: > > Does this happen with %matplotlib inline as well? > > On Wed, Jul 29, 2015 at 1:28 PM, Zolt?n V?r?s > > wrote: > > Hi all, > > I have taken the latest matplotlib code from github, and > installed it. Now, inline plots are not shown in the > notebook anymore, I only get the plot signature like this: > Inline image 1 > > Is there something that I should set? If so, what would > that be? I have found a couple of postings here and there, > but those didn't solve my problem. > > I can use the notebook backend like so: > Inline image 2 > > but this requires the extra "fig, (ax) = subplots(1)" line > before every plot command, otherwise, the figure is drawn > only once, no matter how many times I issue the plot > command. Is there a setting that blocks subsequent plots? > > I am running ipython version 4.0 with python 3.3 kernel. > > Thanks, > > Zolt?n > > _______________________________________________ > IPython-dev mailing list > IPython-dev at scipy.org > http://mail.scipy.org/mailman/listinfo/ipython-dev > > > > _______________________________________________ > IPython-dev mailing list > IPython-dev at scipy.org > http://mail.scipy.org/mailman/listinfo/ipython-dev > > > _______________________________________________ > IPython-dev mailing list > IPython-dev at scipy.org > http://mail.scipy.org/mailman/listinfo/ipython-dev > > > > _______________________________________________ > IPython-dev mailing list > IPython-dev at scipy.org > http://mail.scipy.org/mailman/listinfo/ipython-dev From francois.dion at gmail.com Fri Jul 31 15:46:07 2015 From: francois.dion at gmail.com (Francois Dion) Date: Fri, 31 Jul 2015 15:46:07 -0400 Subject: [IPython-dev] Issue with JupyterHub 0.2.0, ipython 3.2.1 and SSL Message-ID: Everything works great without SSL. I get a login, enter user and password, then I can start a terminal, or open an existing notebook, or create a new one, no problems. Works with R, Python 2, Python 3 etc. I can even use port 443 without ssl so it's not a binding to the port issue. But once I add a certificate and key and use https://fqdn, I get the login, I can login, but if I try to open a terminal, the new page stays empty, with just the jupyter logo. If I open a notebook, the notebook opens, but kernel communication doesn't happen... log shows kernel started. Thoughts, ideas? Francois -------------- next part -------------- An HTML attachment was scrubbed... URL: From denis.pinsard at dichotomies.fr Fri Jul 31 16:17:01 2015 From: denis.pinsard at dichotomies.fr (Denis Pinsard) Date: Fri, 31 Jul 2015 22:17:01 +0200 Subject: [IPython-dev] New cells are not highlighted In-Reply-To: References: Message-ID: <55BBD7BD.1080600@dichotomies.fr> I use the IOCaml Kernel with Jupyter. When I load a Notebook the code is correctly highlighted but when I create a new cell, the code of this cell is not highlighted. I have found that the issue comes from the cell.cm_config.mode parameter. When the notebook is loaded, the mode is 'text/x-ocaml' and it works, but when a cell is created the parameter received the value 'ocaml' which is not correctly interpreted by Codemirror. I work around the issue by adding cell.cm_config.mode = 'text/x-ocaml' on create.Cell event in my custom.js. It works but this way to modify the parameter seems to be deprecated. What is the good manner ? -------------- next part -------------- A non-text attachment was scrubbed... Name: signature.asc Type: application/pgp-signature Size: 473 bytes Desc: OpenPGP digital signature URL: From takowl at gmail.com Fri Jul 31 16:41:06 2015 From: takowl at gmail.com (Thomas Kluyver) Date: Fri, 31 Jul 2015 13:41:06 -0700 Subject: [IPython-dev] Issue with JupyterHub 0.2.0, ipython 3.2.1 and SSL In-Reply-To: References: Message-ID: On 31 July 2015 at 12:46, Francois Dion wrote: > But once I add a certificate and key and use https://fqdn, I get the > login, I can login, but if I try to open a terminal, the new page stays > empty, with just the jupyter logo. If I open a notebook, the notebook > opens, but kernel communication doesn't happen... log shows kernel started. > Are you testing in Safari? IIRC, Safari has trouble with websockets over HTTPS, so if so, try it in Firefox or Chrome. -------------- next part -------------- An HTML attachment was scrubbed... URL: From francois.dion at gmail.com Fri Jul 31 17:27:59 2015 From: francois.dion at gmail.com (Francois Dion) Date: Fri, 31 Jul 2015 17:27:59 -0400 Subject: [IPython-dev] Issue with JupyterHub 0.2.0, ipython 3.2.1 and SSL In-Reply-To: References: Message-ID: Didn't even think of that. Yes, I was using Safari. Just tried now and I'm glad to see it works in Chrome. Excellent way to finish the week. Thanks! On Fri, Jul 31, 2015 at 4:41 PM, Thomas Kluyver wrote: > On 31 July 2015 at 12:46, Francois Dion wrote: > >> But once I add a certificate and key and use https://fqdn, I get the >> login, I can login, but if I try to open a terminal, the new page stays >> empty, with just the jupyter logo. If I open a notebook, the notebook >> opens, but kernel communication doesn't happen... log shows kernel started. >> > > Are you testing in Safari? IIRC, Safari has trouble with websockets over > HTTPS, so if so, try it in Firefox or Chrome. > > _______________________________________________ > IPython-dev mailing list > IPython-dev at scipy.org > http://mail.scipy.org/mailman/listinfo/ipython-dev > > -- raspberry-python.blogspot.com - www.pyptug.org - www.3DFutureTech.info - @f_dion -------------- next part -------------- An HTML attachment was scrubbed... URL: