[IPython-dev] what goes wrong with %%file

Nat Wilson njwilson23 at gmail.com
Tue May 14 16:35:25 EDT 2013


>
> The name "%%file" is conceptually close to what the magic does = it
> writes/saves/creates a *file*.  What you call the action
> (write/save/create) is ambiguous, the end result (file) is not.
>

%%file could just as well mean read/load a file though, couldn't it? Having
never used the %%file magic, I wasn't immediately sure what it did.

Nat


On Tue, May 14, 2013 at 12:35 PM, Brian Granger <ellisonbg at gmail.com> wrote:

> On Tue, May 14, 2013 at 11:27 AM, MinRK <benjaminrk at gmail.com> wrote:
> >
> >
> >
> > On Tue, May 14, 2013 at 12:23 AM, Fernando Perez <fperez.net at gmail.com>
> > wrote:
> >>
> >> On Mon, May 13, 2013 at 8:30 AM, Brian Granger <ellisonbg at gmail.com>
> >> wrote:
> >> > I still favor %%file and adding the prompt to overwrite.
> >>
> >> We have clear evidence of repeated user confusion with this, and it's
> >> an ambiguous name for something that's an action (and a potentially
> >> destructive one, at that).  This is a case where user feedback (in
> >> this case collected by Greg) is showing us there's a real usability
> >> problem, we just need to fix it.
> >
> >
> > Excluding every destructive consequence mentioned so far, since the empty
> > cell issue is long-since addressed in master.
> >
> >>
> >>
> >> Furthermore, making it by default interactive is going to cause all
> >> kinds of unexpected problems in automatically managed notebooks and
> >> scripts that will now block a process when they try to open a prompt.
> >
> >
> > That is true of all notebooks with interactive elements, what makes
> %%file
> > special?
>
> I agree - if a user wants to get rid of the interactive element for
> these purposes, they can simply add the --overwrite flag.
>
> >>
> >> A rename to a verb term, along with the option of an interactive flag
> >> for those who clearly want that mode (and hence aren't worried about
> >> auto-execution) addresses cleanly both issues.
> >
> >
> > so if it were called `fwrite` or `writefile`, it would be okay to
> clobber by
> > default? Renaming it doesn't make it any less destructive, and the
> > destructive behavior is still implicit.
>
> My original intention with %%file is that people would never touch
> these files through any other means, so the overwrite wouldn't be a
> problem.  But upon further thinking, I agree with Min that
> overwrite-by-default is just a bad idea.
>
> > I don't think there's any value in a non-default interactive behavior -
> > either clobbering by default is fine, or it is unsafe and should be
> > confirmed - safety being non-default won't ever be used.
>
> I agree.
>
> > I'm fine renaming to `fwrite` without changing any behavior, if that
> makes
> > more sense than prompting for overwrite, I'm just surprised that it seems
> > to.
>
> The name "%%file" is conceptually close to what the magic does = it
> writes/saves/creates a *file*.  What you call the action
> (write/save/create) is ambiguous, the end result (file) is not.  I
> don't want to pick a name that emphasizes the ambiguous part of the
> magic while underplaying the perfectly clear part (file).
>
> The name "%%fwrite" requires users to make the non-obvious conceptual
> jump that "f" = "file".  That is a step back.
>
> If we do change the name (I am open to it but not thrilled about it) I
> would prefer something that makes its purpose more obvious:
>
> %%writefile
> %%savefile
>
> I also prefer names that order words in a grammatically sensible
> manner (%%writefile rather than %%filewrite)
>
> Cheers,
>
> Brian
>
> >>
> >>
> >> Cheers,
> >>
> >> f
> >> _______________________________________________
> >> 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
> 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: <http://mail.python.org/pipermail/ipython-dev/attachments/20130514/c5f70660/attachment.html>


More information about the IPython-dev mailing list