[issue45934] python curses newterm implementation

2021-12-06 Thread Julius Hamilton

Julius Hamilton  added the comment:

I’m currently planning on studying the C code for initscr and newterm so I can 
really understand how they work.

I’ll post any updates about this soon.

Thanks.

--

___
Python tracker 

___
___
Python-bugs-list mailing list
Unsubscribe: 
https://mail.python.org/mailman/options/python-bugs-list/archive%40mail-archive.com



[issue45934] python curses newterm implementation

2021-12-06 Thread Serhiy Storchaka


Change by Serhiy Storchaka :


--
assignee:  -> serhiy.storchaka

___
Python tracker 

___
___
Python-bugs-list mailing list
Unsubscribe: 
https://mail.python.org/mailman/options/python-bugs-list/archive%40mail-archive.com



[issue45934] python curses newterm implementation

2021-12-06 Thread Serhiy Storchaka


Serhiy Storchaka  added the comment:

Thank you Guido for clarification. I have found that post:

https://mail.python.org/archives/list/core-mentors...@python.org/thread/YGSMPKP7G3HO73ISEQZFAWPPGCOA3JYZ/

I agree that it is worth to implement newterm. In particular it would be useful 
in tests.

--

___
Python tracker 

___
___
Python-bugs-list mailing list
Unsubscribe: 
https://mail.python.org/mailman/options/python-bugs-list/archive%40mail-archive.com



[issue45934] python curses newterm implementation

2021-12-05 Thread Guido van Rossum


Guido van Rossum  added the comment:

Serhiy, this started with a post by Julius to the core-mentorship list. He 
wants to add newterm(), and found that an issue about that was just created by 
a different user (draganic1) -- apparently without a comment body, so it 
appears the first comment is mine (I didn't know that was possible in bpo).

Windows experts are welcome to take themselves off the nosy list.

--
nosy: +gvanrossum

___
Python tracker 

___
___
Python-bugs-list mailing list
Unsubscribe: 
https://mail.python.org/mailman/options/python-bugs-list/archive%40mail-archive.com



[issue45934] python curses newterm implementation

2021-12-05 Thread Serhiy Storchaka


Serhiy Storchaka  added the comment:

What is it about? The first message is by Guido, but not this message nor the 
title does not give me any idea what is it about.

--
nosy: +serhiy.storchaka

___
Python tracker 

___
___
Python-bugs-list mailing list
Unsubscribe: 
https://mail.python.org/mailman/options/python-bugs-list/archive%40mail-archive.com



[issue45934] python curses newterm implementation

2021-12-05 Thread Julius Hamilton

Julius Hamilton  added the comment:

I’m trying to patch this bug.

Here are my current working questions:

1. What is the relationship between an fd (file descriptor) and a terminal?
What software / hardware component goes to “fd 0” to receive input from it?
Is there a GNU Screen command to receive stdin from “fd n”, fd 3 for
example?

2. Looking at the source code:

def initscr():
import _curses, curses
# we call setupterm() here because it raises an error
# instead of calling exit() in error cases.
setupterm(term=_os.environ.get("TERM", "unknown"),
fd=_sys.__stdout__.fileno())
stdscr = _curses.initscr()
for key, value in _curses.__dict__.items():
if key[0:4] == 'ACS_' or key in ('LINES', 'COLS'):
setattr(curses, key, value)
return stdscr

- why does initscr() begin by importing _curses and curses? Precompiled C
curses and non-compiled C or is the second importing Python? How can a
module be importing itself?

- they call “setupterm”, a C curses function, because it raises an error if
there’s a problem in case of just quitting. But how so, specifically? Do
the errors get detected at stderr and then the terminal raises another
error or something? I’m not clear on the details. Plus, why can they call
this function without referring to the enclosing package, curses.setupterm?
Is that a C thing that all functions are automatically added to the
namespace?

- Someone wrote that “initscr” actually calls “newterm”, in the code. So I
guess I should look at the C newterm code, see how it works and see if a
direct implementation is possible.

(I said in an email I would double post an email I sent but instead I’m
posting more specific questions here related to that email. Also, I’m still
studying an email Guido sent, so apologies for any redundant questions
here.)

Thanks,
Julius

On Sun 5. Dec 2021 at 00:01, Éric Araujo  wrote:

>
> Change by Éric Araujo :
>
>
> --
> stage:  -> needs patch
> versions:  -Python 3.10, Python 3.6, Python 3.7, Python 3.8, Python 3.9
>
> ___
> Python tracker 
> 
> ___
>

--

___
Python tracker 

___
___
Python-bugs-list mailing list
Unsubscribe: 
https://mail.python.org/mailman/options/python-bugs-list/archive%40mail-archive.com



[issue45934] python curses newterm implementation

2021-12-05 Thread Julius Hamilton

Julius Hamilton  added the comment:

I’m trying to patch this bug.

Here are my current working questions:

1. What is the relationship between an fd (file descriptor) and a terminal? 
What software / hardware component goes to “fd 0” to receive input from it? Is 
there a GNU Screen command to receive stdin from “fd n”, fd 3 for example?

2. Looking at the source code:

def initscr():
import _curses, curses
# we call setupterm() here because it raises an error
# instead of calling exit() in error cases.
setupterm(term=_os.environ.get("TERM", "unknown"),
  fd=_sys.__stdout__.fileno())
stdscr = _curses.initscr()
for key, value in _curses.__dict__.items():
if key[0:4] == 'ACS_' or key in ('LINES', 'COLS'):
setattr(curses, key, value)

return stdscr

- why does initscr() begin by importing _curses and curses? Precompiled C 
curses and non-compiled C or is the second importing Python? How can a module 
be importing itself?

- they call “setupterm”, a C curses function, because it raises an error if 
there’s a problem in case of just quitting. But how so, specifically? Do the 
errors get detected at stderr and then the terminal raises another error or 
something? I’m not clear on the details. Plus, why can they call this function 
without referring to the enclosing package, curses.setupterm? Is that a C thing 
that all functions are automatically added to the namespace?

- Someone wrote that “initscr” actually calls “newterm”, in the code. So I 
guess I should look at the C newterm code, see how it works and see if a direct 
implementation is possible.


(I said in an email I would double post an email I sent but instead I’m posting 
more specific questions here related to that email. Also, I’m still studying an 
email Guido sent, so apologies for any redundant questions here.)

Thanks,
Julius

--

___
Python tracker 

___
___
Python-bugs-list mailing list
Unsubscribe: 
https://mail.python.org/mailman/options/python-bugs-list/archive%40mail-archive.com



[issue45934] python curses newterm implementation

2021-12-04 Thread Éric Araujo

Change by Éric Araujo :


--
stage:  -> needs patch
versions:  -Python 3.10, Python 3.6, Python 3.7, Python 3.8, Python 3.9

___
Python tracker 

___
___
Python-bugs-list mailing list
Unsubscribe: 
https://mail.python.org/mailman/options/python-bugs-list/archive%40mail-archive.com



[issue45934] python curses newterm implementation

2021-12-04 Thread Guido van Rossum

Guido van Rossum  added the comment:

This does not apply to Windows (we don’t support curses there).

--
components: +Library (Lib) -C API, Windows

___
Python tracker 

___
___
Python-bugs-list mailing list
Unsubscribe: 
https://mail.python.org/mailman/options/python-bugs-list/archive%40mail-archive.com



[issue45934] python curses newterm implementation

2021-12-04 Thread Guido van Rossum


New submission from Guido van Rossum :

Since this is an enhancement, it should only target 3.11.--
--Guido (mobile)

--

___
Python tracker 

___
___
Python-bugs-list mailing list
Unsubscribe: 
https://mail.python.org/mailman/options/python-bugs-list/archive%40mail-archive.com



[issue45934] python curses newterm implementation

2021-12-04 Thread Julius Hamilton


Change by Julius Hamilton :


--
nosy: +Guido.van.Rossum, juliushamilton100

___
Python tracker 

___
___
Python-bugs-list mailing list
Unsubscribe: 
https://mail.python.org/mailman/options/python-bugs-list/archive%40mail-archive.com



[issue45934] python curses newterm implementation

2021-11-29 Thread NIKOLA DRAGANIC


Change by NIKOLA DRAGANIC :


--
components: C API, Windows
nosy: draganic1, paul.moore, steve.dower, tim.golden, zach.ware
priority: normal
severity: normal
status: open
title: python curses newterm implementation
type: enhancement
versions: Python 3.10, Python 3.11, Python 3.6, Python 3.7, Python 3.8, Python 
3.9

___
Python tracker 

___
___
Python-bugs-list mailing list
Unsubscribe: 
https://mail.python.org/mailman/options/python-bugs-list/archive%40mail-archive.com