On 2021-01-15, Grant Edwards <grant.b.edwa...@gmail.com> wrote: > On 2021-01-15, Grant Edwards <grant.b.edwa...@gmail.com> wrote: > >> Entities that are parameterized (e.g. goto location) would need to be >> passed through curses.tiparm() before they're decoded and printed. I'm >> goign to try that next. > > The curses module doesn't expose tiparm, but you can use tparm > instead
NB: The example code below may fail to work properly if all of the below are true. * You're using a real, physical terminal * Connected to a real, physical serial port (not a pty) * Without flow control * And the terminal requires "pauses" to allow time for the terminal to execute the some commands before it can accept further data. The functionality that is added by tputs() is to insert "padding" (typically extra NUL bytes) before/after certain certain terminal operations. What I _don't_ know at this point is what happens if you're using a terminfo description that specifies padding, but you're not connected to a physical terminal via a real serial port. > #!/usr/bin/python > import curses,sys > > curses.setupterm() > > write = sys.stdout.write > > bold = curses.tigetstr('bold').decode('ascii') > norm = curses.tigetstr('sgr0').decode('ascii') > cls = curses.tigetstr('clear').decode('ascii') > cup = curses.tigetstr('cup') > > def goto(row,column): > write(curses.tparm(cup,row,column).decode('ascii')) > > def clear(): > write(cls) > > clear() > name = input("enter name: ") > > for row in [3,5,10,20]: > goto(row, row+5) > write(f'{bold}Hi there {name}{norm}') > goto(row+1, row+6) > write(f'Hi there {name}') > > goto(24,0) > input("press enter to exit: ") > clear() > -- https://mail.python.org/mailman/listinfo/python-list