On Sat, Dec 26, 2020 at 05:58:16PM -0800, Christopher Barker wrote:
> >
> > On 2020-12-22 14:01, Steven D'Aprano wrote:
> > > It seems to me that the primary use for this will be in the interactive
> > > interpreter. People are used to something like "cls" or "clear" from
> > > various shells. Using it in scripting is, I think, a secondary use-case.
> >
> '
> I disagree. yes, I want to clear the screen a lot during interactive use,
> but I'd rather do that with a keystroke (cmd+K on the Mac) -- and indeed,
> do that with iPython all the time, even though iPython has the command
> built in.
And nobody is going to take that away from you, unless you choose to go
to Windows, where ctrl-L doesn't work.
But the ctrl-L trick has no discoverability. It took me close to twenty
years of using Linux before I discovered it, and I still don't remember
to use it when I need it.
Beginners and casual users aren't going to know ctrl-L, or stumble
across it through experimentation. People like me aren't going to
remember to use it. For interactive use, os.clear is barely any better.
(Me, I'll be looking in shutils, not os, because this is a shell
feature, not an os feature.)
> So I think the reason to have it in the std lib is for scripting, and I
> think putting it in os or sys is just fine.
Putting it in sys requires it to be built into the interpreter, which
means it has to be written in C (for CPython). Putting it in os is fine,
that can easily delegate to platform specific code in posix.py, nt.py
etc, with a pure-Python lowest common denominator fallback for weird
platforms that don't support anything sensible.
I just want site.py to import it at startup for the sake of beginners.
Is that so bad? It adds one line to site.py, four if you want to make it
conditional:
try:
from os import clear
except:
pass
I can easily add it to my own personal PYTHONSTARTUP file, but the
average beginner can't. Let's throw newbies a bone and pre-import it for
them, they're the ones who seem to expect it the most.
So that's the easy part: just agree with me and import it in site.py,
wherever it happens to come from. *wink*
The hard part is deciding exactly what it should do, e.g. clear the
scrollback or not. I think Chris makes a good point that real beginners
will misuse this to hide the evidence whenever they get an error, so I
think the default should be to *not* clear the scrollback, for the sake
of educators, teachers and trainers. People who know what the scrollback
is and definitely want to clear it can just provide an extra argument to
the function.
So let's just all agree I'm right *wink* and move on to the *really*
hard part, which is ensuring it works on Windows and weird terminals.
--
Steve
_______________________________________________
Python-ideas mailing list -- [email protected]
To unsubscribe send an email to [email protected]
https://mail.python.org/mailman3/lists/python-ideas.python.org/
Message archived at
https://mail.python.org/archives/list/[email protected]/message/RAU2WORPY2E7IVPYBWM76YXSG43KACAE/
Code of Conduct: http://python.org/psf/codeofconduct/