Rocksolid Light

News from da outaworlds

mail  files  register  groups  login

Message-ID:  

English literature's performing flea. -- Sean O'Casey on P. G. Wodehouse


comp / comp.lang.python / Re: Tools to help with text mode (i.e. non-GUI) input

SubjectAuthor
* Re: Tools to help with text mode (i.e. non-GUI) inputAlan Gauld
`* Re: Tools to help with text mode (i.e. non-GUI) inputChris Green
 +- Re: Tools to help with text mode (i.e. non-GUI) inputStefan Ram
 +- Re: Tools to help with text mode (i.e. non-GUI) inputGrant Edwards
 `- Re: Tools to help with text mode (i.e. non-GUI) inputAlan Gauld

1
Subject: Re: Tools to help with text mode (i.e. non-GUI) input
From: Alan Gauld
Newsgroups: comp.lang.python
Date: Tue, 14 Jan 2025 08:56 UTC
References: 1 2 3 4
Path: news.eternal-september.org!eternal-september.org!feeder3.eternal-september.org!fu-berlin.de!uni-berlin.de!not-for-mail
From: learn2program@gmail.com (Alan Gauld)
Newsgroups: comp.lang.python
Subject: Re: Tools to help with text mode (i.e. non-GUI) input
Date: Tue, 14 Jan 2025 08:56:14 +0000
Lines: 24
Message-ID: <mailman.70.1736844978.2912.python-list@python.org>
References: <2113dab2-59ba-408e-b34a-78722d525f8c@yahoo.co.uk>
<3ab7002b-689d-4609-96d7-bb388513f227@yahoo.co.uk>
<4YX8tK2xv4znb1c@mail.python.org>
<0c3821d3-78c1-45c0-81da-81f9fb4c4f02@yahoo.co.uk>
Mime-Version: 1.0
Content-Type: text/plain; charset=UTF-8
Content-Transfer-Encoding: 7bit
X-Trace: news.uni-berlin.de ICn+4dB1OdQ6dwcwTuG97gDr7oOw4PS/eqsIX0NZE8jQ==
Cancel-Lock: sha1:QkC4TwTJNj73OBYXuqgepNK++J4= sha256:MlcL3gL/4MRx70x9K6mNa2+S7PlS7waVGo62Y6foaF8=
Return-Path: <learn2program@gmail.com>
X-Original-To: python-list@python.org
Delivered-To: python-list@mail.python.org
Authentication-Results: mail.python.org; dkim=pass
reason="2048-bit key; unprotected key"
header.d=gmail.com header.i=@gmail.com header.b=YSOh+Js8;
dkim-adsp=pass; dkim-atps=neutral
X-Spam-Status: OK 0.007
X-Spam-Evidence: '*H*': 0.99; '*S*': 0.00; 'included.': 0.07; 'api,':
0.09; 'etc).': 0.09; 'options,': 0.09; 'received:mail-
ed1-x52c.google.com': 0.09; 'subject:GUI': 0.09; 'import': 0.15;
'flickr': 0.16; 'from:name:alan gauld': 0.16; 'gauld': 0.16;
'message-id:@yahoo.co.uk': 0.16; 'photo-blog': 0.16; 'url-
ip:79.170.44.132/32': 0.16; 'url-ip:79.170.44/24': 0.16; 'url-
ip:79.170/16': 0.16; 'url-ip:79/8': 0.16; 'url:alan-g': 0.16;
'url:alan_gauld': 0.16; 'url:alangauldphotos': 0.16; 'wrote:':
0.16; 'python': 0.16; 'grant': 0.17; "aren't": 0.19; 'url:amazon':
0.19; 'to:addr:python-list': 0.20; 'code': 0.23; 'to:name:python-
list@python.org': 0.24; 'url-ip:18.239.70.223/32': 0.26; 'url-
ip:18.239.70/24': 0.26; 'creating': 0.27; "isn't": 0.27; 'header
:User-Agent:1': 0.30; 'program': 0.32; 'python-list': 0.32;
'window': 0.32; 'but': 0.32; 'received:192.168.1': 0.32; 'header
:In-Reply-To:1': 0.34; 'received:google.com': 0.34;
'from:addr:gmail.com': 0.34; "it's": 0.37; 'author': 0.37;
'received:192.168': 0.37; 'list': 0.39; 'alan': 0.40; 'difficult':
0.40; 'learn': 0.40; 'try': 0.40; 'included': 0.61; 'url-
ip:18.239/16': 0.61; 'follow': 0.62; 'your': 0.64; 'site': 0.68;
'url:author': 0.69; 'url-ip:18/8': 0.72; 'subject:. ': 0.73;
'easy': 0.74; 'panel': 0.76; 'subject:Tools': 0.84;
'subject:input': 0.84; 'subject:text': 0.84
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed;
d=gmail.com; s=20230601; t=1736844976; x=1737449776; darn=python.org;
h=content-transfer-encoding:in-reply-to:references:to
:content-language:subject:user-agent:mime-version:date:message-id
:from:from:to:cc:subject:date:message-id:reply-to;
bh=8MTuCILKZIVufcSChbeOJV32cBt58VfEDsaWJn8VBVo=;
b=YSOh+Js89Y0lTNmZ8t1pOatO0rFHOEqeKX6K1eVhEMTtrUj8bjLD8ioks2O3RLN7q3
kvS182f1RzoJai3Ud+BSvuvFn+tX+uHJtK+4Pnt1Njbvq7ujTL57Ll5D7+/EmX4e7XBv
54xzBOJJLsPntov/6JWlB1UGIz/NFNOCOmM9mtD7D6eQu+XtOpj1x21n091nRIqO8PPG
hO5yorP4kEGq6MduHcmwEu7NzZsIiVKGNNc2/14L+GQH+rL4yKqQLszCSSUQWzPiyH15
pEVOH0+HEBG+rx87fSCVpO0ZvcV1Z+vy0SUyf8CrUN3tCKMAL1pgelgosEdBXZA+tIfM
/gvQ==
X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed;
d=1e100.net; s=20230601; t=1736844976; x=1737449776;
h=content-transfer-encoding:in-reply-to:references:to
:content-language:subject:user-agent:mime-version:date:message-id
:from:x-gm-message-state:from:to:cc:subject:date:message-id:reply-to;
bh=8MTuCILKZIVufcSChbeOJV32cBt58VfEDsaWJn8VBVo=;
b=O6qy6jrxuW31nrESaGtRL2xLV4QoGZifmW/Mkp6UUqGsbimkdwd2FAu29kDzQEjf1r
5Yr/WJUUspG67/eSAhaQoX15mb7rvE4jF1sKpkf1+4YRlGo6Q6wBNVYMn3zWYazQ0EPd
D4fSQ3lFzgyah75nwWebMLRODdF020p6E5HjsKKOwHurNTWYDNAftbeINQB2hm4OZFcO
UACtaPOX/MI6CtSlP6w1qYcLZ0AyRmsO6JixfIn4Fo/ZUG/vi7UAf93AUOe9vgBWUP5Y
crJ3g7RZUjrwc7mzo1IGKUVPf3oz7LJ1pLhxxNbMNQAMK7fhYTJHI2wFfMX8bB704rVO
YGTw==
X-Forwarded-Encrypted: i=1;
AJvYcCVk82x1zdzpdbkXfCApYfE46trmFU46CHjBUGlsNmCBy4DkaVW54aWjf+MUDsmBmM8tubl+bmAS1oYXkA==@python.org
X-Gm-Message-State: AOJu0YyK62SdN/cgk16x6fhH37+PCPHWhHeSre56KePldNKnu5/mLPT/
QnEYEe+m3JtUB7a7drUvEcppwRaFfAuw3zJ7yEUT+aky5Xq6GDJS
X-Gm-Gg: ASbGncvgIUr4JPmBEqnq/zw85OjBMuyVyqbdaXiq0BcnX3wlMvOQqu4lxL3RbsTmWdQ
fOYM6xl4L55MT5MsB7i6sQD+VonFfDWenb7+5CqDCDG8OBay2DWvZkjpYYsWkpNK0czwuFoClTk
QOKooCE4nF3gNUZZ7aSBbCfZu/jkoVnpCOazlXlG5YlrzWuHTGlf4GpNNwm2rlHA/7Zr75LWFD5
jwx6l5hIsh4PPFNuofoOWZPGidJEaDSHfl8CMPTP/7jrIELuzc3F9vmsXM37zOoQCI3AT00Ew==
X-Google-Smtp-Source: AGHT+IFAEfeYAiy4Zx9ZgVsFy6mWU3/PYWspMElg79AhK3vgu6Wrm1Zr1urkezRJ5Rp5EtPhOZ2F/w==
X-Received: by 2002:a17:907:7b8d:b0:aab:7461:fbe5 with SMTP id
a640c23a62f3a-ab2abdc0a98mr2442197966b.45.1736844975466;
Tue, 14 Jan 2025 00:56:15 -0800 (PST)
X-Google-Original-From: Alan Gauld <alan.gauld@yahoo.co.uk>
User-Agent: Mozilla Thunderbird
Content-Language: en-GB
In-Reply-To: <4YX8tK2xv4znb1c@mail.python.org>
X-BeenThere: python-list@python.org
X-Mailman-Version: 2.1.39
Precedence: list
List-Id: General discussion list for the Python programming language
<python-list.python.org>
List-Unsubscribe: <https://mail.python.org/mailman/options/python-list>,
<mailto:python-list-request@python.org?subject=unsubscribe>
List-Archive: <https://mail.python.org/pipermail/python-list/>
List-Post: <mailto:python-list@python.org>
List-Help: <mailto:python-list-request@python.org?subject=help>
List-Subscribe: <https://mail.python.org/mailman/listinfo/python-list>,
<mailto:python-list-request@python.org?subject=subscribe>
X-Mailman-Original-Message-ID: <0c3821d3-78c1-45c0-81da-81f9fb4c4f02@yahoo.co.uk>
X-Mailman-Original-References: <2113dab2-59ba-408e-b34a-78722d525f8c@yahoo.co.uk>
<3ab7002b-689d-4609-96d7-bb388513f227@yahoo.co.uk>
<4YX8tK2xv4znb1c@mail.python.org>
View all headers

On 14/01/2025 00:20, Grant Edwards via Python-list wrote:
> On 2025-01-13, Alan Gauld via Python-list <python-list@python.org> wrote:
>
>> All of that is possible in curses, you just have to code it.
>
> All of that is easy with curses in C. Unfortunately, the high level
> "panel" and "menu" curses subystems that make it easy aren't included
> in the Python curses API,

panel is included. Just import curses.panel.

menu unfortunately isn't but it's not difficult to roll
your own by creating a window with a list of options, provided
you don't try to get too fancy(submenus etc).

--
Alan G
Author of the Learn to Program web site
http://www.alan-g.me.uk/
http://www.amazon.com/author/alan_gauld
Follow my photo-blog on Flickr at:
http://www.flickr.com/photos/alangauldphotos

Subject: Re: Tools to help with text mode (i.e. non-GUI) input
From: Chris Green
Newsgroups: comp.lang.python
Date: Tue, 14 Jan 2025 09:15 UTC
References: 1 2 3 4 5
Path: news.eternal-september.org!eternal-september.org!feeder3.eternal-september.org!fu-berlin.de!uni-berlin.de!individual.net!not-for-mail
From: cl@isbd.net (Chris Green)
Newsgroups: comp.lang.python
Subject: Re: Tools to help with text mode (i.e. non-GUI) input
Date: Tue, 14 Jan 2025 09:15:01 +0000
Lines: 25
Message-ID: <lhmh5l-rhnv.ln1@q957.zbmc.eu>
References: <2113dab2-59ba-408e-b34a-78722d525f8c@yahoo.co.uk> <3ab7002b-689d-4609-96d7-bb388513f227@yahoo.co.uk> <4YX8tK2xv4znb1c@mail.python.org> <0c3821d3-78c1-45c0-81da-81f9fb4c4f02@yahoo.co.uk> <mailman.70.1736844978.2912.python-list@python.org>
Mime-Version: 1.0
Content-Type: text/plain; charset=UTF-8
Content-Transfer-Encoding: 8bit
X-Trace: individual.net N2hdJbPma0YMJjusNMmjvw1gqhymujOsqxXUBcZHpjiV6QWvo=
X-Orig-Path: not-for-mail
Cancel-Lock: sha1:O/vdI5obz7WLs8Ca80Oogh/i5Eo= sha256:Cn7x39zPLw+t8yVtyJrm1tBUVFyGT7ZaWDGlKArJTHk=
User-Agent: tin/2.6.2-20221225 ("Pittyvaich") (Linux/6.1.0-28-amd64 (x86_64))
View all headers

Alan Gauld <learn2program@gmail.com> wrote:
> On 14/01/2025 00:20, Grant Edwards via Python-list wrote:
> > On 2025-01-13, Alan Gauld via Python-list <python-list@python.org> wrote:
> >
> >> All of that is possible in curses, you just have to code it.
> >
> > All of that is easy with curses in C. Unfortunately, the high level
> > "panel" and "menu" curses subystems that make it easy aren't included
> > in the Python curses API,
>
> panel is included. Just import curses.panel.
>
> menu unfortunately isn't but it's not difficult to roll
> your own by creating a window with a list of options, provided
> you don't try to get too fancy(submenus etc).
>
Yes, thanks all, maybe just straightforward curses is the way to go.
Looking at some of the 'cleverer' ones they end up looking remarkably
like GUI code, in which case I might as well use a GUI. I have written
a (fairly simple) Gtk based python program, I was just trying to avoid
all the GUI overheads for a little new project.

--
Chris Green
ยท

Subject: Re: Tools to help with text mode (i.e. non-GUI) input
From: Stefan Ram
Newsgroups: comp.lang.python
Organization: Stefan Ram
Date: Tue, 14 Jan 2025 11:22 UTC
References: 1 2 3 4 5 6
Path: news.eternal-september.org!eternal-september.org!feeder3.eternal-september.org!fu-berlin.de!uni-berlin.de!not-for-mail
From: ram@zedat.fu-berlin.de (Stefan Ram)
Newsgroups: comp.lang.python
Subject: Re: Tools to help with text mode (i.e. non-GUI) input
Date: 14 Jan 2025 11:22:15 GMT
Organization: Stefan Ram
Lines: 45
Expires: 1 Jan 2026 11:59:58 GMT
Message-ID: <Cmd-20250114122123@ram.dialup.fu-berlin.de>
References: <2113dab2-59ba-408e-b34a-78722d525f8c@yahoo.co.uk> <3ab7002b-689d-4609-96d7-bb388513f227@yahoo.co.uk> <4YX8tK2xv4znb1c@mail.python.org> <0c3821d3-78c1-45c0-81da-81f9fb4c4f02@yahoo.co.uk> <mailman.70.1736844978.2912.python-list@python.org> <lhmh5l-rhnv.ln1@q957.zbmc.eu>
Mime-Version: 1.0
Content-Type: text/plain; charset=UTF-8
Content-Transfer-Encoding: 8bit
X-Trace: news.uni-berlin.de fykjXZm7L4Gz+uPfVAE1KwmnUzXVJ2MHCe2ugXZbxOt53N
Cancel-Lock: sha1:5ZN9lwECe5KQ2/emaW06JXtebUs= sha256:6anzGkBVhkf2oUQdUZqUE6QMvEQNXnLog/sFEuV2x90=
X-Copyright: (C) Copyright 2025 Stefan Ram. All rights reserved.
Distribution through any means other than regular usenet
channels is forbidden. It is forbidden to publish this
article in the Web, to change URIs of this article into links,
and to transfer the body without this notice, but quotations
of parts in other Usenet posts are allowed.
X-No-Archive: Yes
Archive: no
X-No-Archive-Readme: "X-No-Archive" is set, because this prevents some
services to mirror the article in the web. But the article may
be kept on a Usenet archive server with only NNTP access.
X-No-Html: yes
Content-Language: en-US
View all headers

Chris Green <cl@isbd.net> wrote or quoted:
>Yes, thanks all, maybe just straightforward curses is the way to go.
>Looking at some of the 'cleverer' ones they end up looking remarkably
>like GUI code, in which case I might as well use a GUI. I have written
>a (fairly simple) Gtk based python program, I was just trying to avoid
>all the GUI overheads for a little new project.

The Cmd class is your go-to for whipping up those bare-bones
command line interfaces. It's hella useful for cobbling
together test rigs, admin tools, and rough drafts that'll
eventually get a facelift with some fancy UI.

Check out this sample of what Cmd code might look like:

class TurtleShell( cmd.Cmd ):
intro = 'Welcome to the turtle shell. Type help or ?.\n'
prompt = '(turtle) '
file = None

def do_forward(self, arg):
'Move the turtle forward by the specified distance: FORWARD 10'
forward(*parse(arg))
. . .
. . .
.. . .

And here's a taste of what a Cmd UI could shape up to be:

Welcome to the turtle shell. Type help or ? to list commands.

(turtle) ?

Documented commands (type help <topic>):
========================================
bye color goto home playback record right
circle forward heading left position reset undo

(turtle) help forward
Move the turtle forward by the specified distance: FORWARD 10
(turtle) record spiral.cmd
(turtle) position
Current position is 0 0
.. . .

Subject: Re: Tools to help with text mode (i.e. non-GUI) input
From: Grant Edwards
Newsgroups: comp.lang.python
Date: Wed, 15 Jan 2025 00:54 UTC
References: 1 2 3 4 5 6 7
Path: news.eternal-september.org!eternal-september.org!feeder3.eternal-september.org!fu-berlin.de!uni-berlin.de!not-for-mail
From: grant.b.edwards@gmail.com (Grant Edwards)
Newsgroups: comp.lang.python
Subject: Re: Tools to help with text mode (i.e. non-GUI) input
Date: Tue, 14 Jan 2025 19:54:09 -0500 (EST)
Lines: 30
Message-ID: <mailman.79.1736902451.2912.python-list@python.org>
References: <2113dab2-59ba-408e-b34a-78722d525f8c@yahoo.co.uk>
<3ab7002b-689d-4609-96d7-bb388513f227@yahoo.co.uk>
<4YX8tK2xv4znb1c@mail.python.org>
<0c3821d3-78c1-45c0-81da-81f9fb4c4f02@yahoo.co.uk>
<mailman.70.1736844978.2912.python-list@python.org>
<lhmh5l-rhnv.ln1@q957.zbmc.eu> <4YXnZ9475vznWGk@mail.python.org>
X-Trace: news.uni-berlin.de RtEQDVEotz+j6spmASLIOABc1UPUC1nDc5GtT6Slb7IQ==
Cancel-Lock: sha1:LQzCLBbHRZm3n7/K8D8IkRqmNKQ= sha256:E0SsqJnRyLM5fyfnsC1oeAzbEKMtSmVrAZz/DGFb5bc=
Return-Path: <grant.b.edwards@gmail.com>
X-Original-To: python-list@python.org
Delivered-To: python-list@mail.python.org
Authentication-Results: mail.python.org; dkim=none reason="no signature";
dkim-adsp=none (unprotected policy); dkim-atps=neutral
X-Spam-Status: OK 0.016
X-Spam-Evidence: '*H*': 0.97; '*S*': 0.00; 'gui': 0.05; 'processor':
0.09; 'rendering': 0.09; 'subject:GUI': 0.09; 'terminal': 0.09;
'widgets': 0.09; 'window.': 0.09; 'from:addr:grant.b.edwards':
0.16; 'from:name:grant edwards': 0.16; 'gtk': 0.16; 'gui.': 0.16;
'low-level': 0.16; 'step.': 0.16; 'widgets.': 0.16; 'wrote:':
0.16; 'python': 0.16; 'grant': 0.17; 'instead': 0.17; 'gnu': 0.19;
'to:addr:python-list': 0.20; 'all,': 0.20; 'input': 0.21;
'written': 0.22; 'maybe': 0.22; 'command': 0.23; 'run': 0.23;
'code': 0.23; 'stuff': 0.25; 'configure': 0.26; 'library': 0.26;
'project.': 0.27; 'chris': 0.28; 'output': 0.28; 'header:User-
Agent:1': 0.30; 'code,': 0.31; 'program,': 0.31; '(as': 0.32;
'python-list': 0.32; 'window': 0.32; 'same': 0.34;
'from:addr:gmail.com': 0.34; 'trying': 0.35; 'yes,': 0.35;
'source': 0.36; 'way': 0.38; 'thanks': 0.39; 'use': 0.39;
"that's": 0.39; 'enough': 0.39; 'handle': 0.39; 'want': 0.40;
'lower': 0.62; 'involved': 0.63; 'everything': 0.63; 'your': 0.64;
'top': 0.65; 'well': 0.65; 'choose': 0.68; 'message-id:invalid':
0.69; 'little': 0.73; 'subject:. ': 0.73; 'remarkably': 0.84;
'subject:Tools': 0.84; 'subject:input': 0.84; 'subject:text':
0.84; 'screen,': 0.93; 'green': 0.96
User-Agent: slrn/1.0.3 (Linux)
X-BeenThere: python-list@python.org
X-Mailman-Version: 2.1.39
Precedence: list
List-Id: General discussion list for the Python programming language
<python-list.python.org>
List-Unsubscribe: <https://mail.python.org/mailman/options/python-list>,
<mailto:python-list-request@python.org?subject=unsubscribe>
List-Archive: <https://mail.python.org/pipermail/python-list/>
List-Post: <mailto:python-list@python.org>
List-Help: <mailto:python-list-request@python.org?subject=help>
List-Subscribe: <https://mail.python.org/mailman/listinfo/python-list>,
<mailto:python-list-request@python.org?subject=subscribe>
X-Mailman-Original-Message-ID: <4YXnZ9475vznWGk@mail.python.org>
X-Mailman-Original-References: <2113dab2-59ba-408e-b34a-78722d525f8c@yahoo.co.uk>
<3ab7002b-689d-4609-96d7-bb388513f227@yahoo.co.uk>
<4YX8tK2xv4znb1c@mail.python.org>
<0c3821d3-78c1-45c0-81da-81f9fb4c4f02@yahoo.co.uk>
<mailman.70.1736844978.2912.python-list@python.org>
<lhmh5l-rhnv.ln1@q957.zbmc.eu>
View all headers

On 2025-01-14, Chris Green via Python-list <python-list@python.org> wrote:

> Yes, thanks all, maybe just straightforward curses is the way to go.
> Looking at some of the 'cleverer' ones they end up looking remarkably
> like GUI code, in which case I might as well use a GUI.

The source code to configure and handle a UI with a certain set of
input widgets is going to be pretty much the same regardless of the
low-level screen bashing details involved in rendering the widgets.

You choose a TUI toolkit like curses panel/menu/forms instead of a GUI
toolkit like gtk because you need your app to run on a terminal
instead of on a X11/wayland screen, not because you want your app to
be simpler than the code for a GUI app (as you've seen, it isn't).

> I have written a (fairly simple) Gtk based python program, I was
> just trying to avoid all the GUI overheads for a little new project.

If you want to avoid the [TG]UI overhead, then command line options
are your friend. If that's not sophisticated enough the gnu "readline"
library with a simple command processor is a common next step.

Or you can use curses to print some help stuff at the top of the
terminal window and then do everything based on single-stroke "command
keys" that print output in the lower part of the terminal window.

--
Grant

Subject: Re: Tools to help with text mode (i.e. non-GUI) input
From: Alan Gauld
Newsgroups: comp.lang.python
Date: Thu, 16 Jan 2025 01:06 UTC
References: 1 2 3 4 5 6 7 8
Path: news.eternal-september.org!eternal-september.org!feeder3.eternal-september.org!fu-berlin.de!uni-berlin.de!not-for-mail
From: learn2program@gmail.com (Alan Gauld)
Newsgroups: comp.lang.python
Subject: Re: Tools to help with text mode (i.e. non-GUI) input
Date: Thu, 16 Jan 2025 01:06:07 +0000
Lines: 20
Message-ID: <mailman.81.1736989570.2912.python-list@python.org>
References: <2113dab2-59ba-408e-b34a-78722d525f8c@yahoo.co.uk>
<3ab7002b-689d-4609-96d7-bb388513f227@yahoo.co.uk>
<4YX8tK2xv4znb1c@mail.python.org>
<0c3821d3-78c1-45c0-81da-81f9fb4c4f02@yahoo.co.uk>
<mailman.70.1736844978.2912.python-list@python.org>
<lhmh5l-rhnv.ln1@q957.zbmc.eu> <4YXnZ9475vznWGk@mail.python.org>
<18c5dc35-ea6a-4611-b331-be97e924b322@yahoo.co.uk>
Mime-Version: 1.0
Content-Type: text/plain; charset=UTF-8
Content-Transfer-Encoding: 7bit
X-Trace: news.uni-berlin.de KsMe7g5A5PxjUarxKTiwZQi2R+bk/p6dZEbpoPdsEkhQ==
Cancel-Lock: sha1:hPPZ1mBwC8XqNgUImLcvGgl9h5s= sha256:qNnBDsGFExu//U5YU3hs5EyCYsD27TPjIzeBmb46c4c=
Return-Path: <learn2program@gmail.com>
X-Original-To: python-list@python.org
Delivered-To: python-list@mail.python.org
Authentication-Results: mail.python.org; dkim=pass
reason="2048-bit key; unprotected key"
header.d=gmail.com header.i=@gmail.com header.b=Ogt7Wccb;
dkim-adsp=pass; dkim-atps=neutral
X-Spam-Status: OK 0.018
X-Spam-Evidence: '*H*': 0.96; '*S*': 0.00; 'processor': 0.09;
'subject:GUI': 0.09; 'colours': 0.16; 'flickr': 0.16;
'from:name:alan gauld': 0.16; 'message-id:@yahoo.co.uk': 0.16;
'overlooked': 0.16; 'photo-blog': 0.16; 'step.': 0.16; 'url-
ip:79.170.44.132/32': 0.16; 'url-ip:79.170.44/24': 0.16; 'url-
ip:79.170/16': 0.16; 'url-ip:79/8': 0.16; 'url:alan-g': 0.16;
'url:alan_gauld': 0.16; 'url:alangauldphotos': 0.16; 'wrote:':
0.16; 'python': 0.16; 'grant': 0.17; 'gnu': 0.19; 'url:amazon':
0.19; 'to:addr:python-list': 0.20; 'command': 0.23; 'to:name
:python-list@python.org': 0.24; 'interface': 0.26; 'library':
0.26; 'url-ip:18.239.70.223/32': 0.26; 'url-ip:18.239.70/24':
0.26; 'header:User-Agent:1': 0.30; 'module': 0.31; 'program':
0.32; "doesn't": 0.32; 'python-list': 0.32; 'but': 0.32;
'received:192.168.1': 0.32; 'header:In-Reply-To:1': 0.34;
'received:google.com': 0.34; 'from:addr:gmail.com': 0.34;
'author': 0.37; 'received:192.168': 0.37; "that's": 0.39; 'text':
0.39; 'enough': 0.39; 'alan': 0.40; 'learn': 0.40; 'url-
ip:18.239/16': 0.61; 'follow': 0.62; 'your': 0.64; 'site': 0.68;
'url:author': 0.69; 'front': 0.70; 'url-ip:18/8': 0.72; 'subject:.
': 0.73; 'mouse': 0.84; 'subject:Tools': 0.84; 'subject:input':
0.84; 'subject:text': 0.84
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed;
d=gmail.com; s=20230601; t=1736989568; x=1737594368; darn=python.org;
h=content-transfer-encoding:in-reply-to:references:to
:content-language:subject:user-agent:mime-version:date:message-id
:from:from:to:cc:subject:date:message-id:reply-to;
bh=Be3oWm8lqoAAmRzL+gEPQIyXl5VM9s7sUFitO1rBpuc=;
b=Ogt7WccbgHae9T3SYnUbHBidWlCxdteNTP4QYVg50rLqCz86tB37/VQvr9c0VkY2pi
i3loSzuQKOd5m1tUmjTym6HcGDT6vhH/kl8dcn+76eoAaokz9lPZoTzAbMwryNyBJi0f
XWiq/8XUs1cR6NhomBPc5G6aHyGRhS1xmq7UjwZAJkb2D8Eqn/KouvEyzEimtEPSYd7O
WpU9gJaCu8maZz5mfQ8MtF9PoYa8BvNp7KpHVk5tt22wi+RuaQnC8nxcLv9gFo90B5dn
nFm6v1XvJC39cNex8oteDc1AUh1KUZgCUOGstbhwReBPauiLUzn1SyNqR+zZJ/kZv3a9
JykQ==
X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed;
d=1e100.net; s=20230601; t=1736989568; x=1737594368;
h=content-transfer-encoding:in-reply-to:references:to
:content-language:subject:user-agent:mime-version:date:message-id
:from:x-gm-message-state:from:to:cc:subject:date:message-id:reply-to;
bh=Be3oWm8lqoAAmRzL+gEPQIyXl5VM9s7sUFitO1rBpuc=;
b=go8EmolX9sbabv8dFRXWSpDXI7fsYFaZ1618JbPb3iGmXD0y09hqUxxV2RnXYR7KXE
mY4g4P9n7lHVTATYLRNpaIkYuFjobN6UnsDHehAF3ytn15DN2ZnKpiVGfEtFWeazlCch
qpzVoZvhlYfU+j3estBBy0XT01dtDgVsFqQeKJ7dY/O/GzD0RaripWgxzTBkH+CqWDbo
bqX/m2T8en4WLdko4mr6YnvgcIAQJTPkYcupA4ZTM31RXhYrWLpE0KkKOuqtWnEtw/HI
vshbhdsKnUSRfdYholJ0Xwtpi46rm6+80y9P12O/xlCYxsFfCTaYSB7QGDLcEdVoeDIa
DKMw==
X-Gm-Message-State: AOJu0YzvQF7CufBBuxLGKcZGjESzcRt4MV1zaRlRwf2LROMxULTT72dG
ihELsK8/FrYUp4xJ7TWVM52C04Y2j6AKP3VlJVx+SZ5xDyOOaYWVW1ihvQ==
X-Gm-Gg: ASbGncuHS61SveYceKzKceMP+v3UUW1L7JKc3rMCYw9HMvzs6Fm6FflNlqKeHYaNOyM
phjDSAOfOyaAwUn7qoHPg19fBrGMFuaEQwaHTk4IwLSj3miHFhBhFV8EGe2Pfnv1yfca+jtOqJj
nM+zQwxDmlh/oB/LxmItn9moyv/OA7TDyWkHp+uqUOJS18xqwu2LAznDqaqu8WkNHR1QcbVGEVv
HHoJLCMRWxoo3sTZtMJKGsr7387hTZ8WlZTfnuJkyYHQg8bchs9ewpPREfguvMlZGBM+GByKw==
X-Google-Smtp-Source: AGHT+IH//bxOUrqqO1IB16ZsRYvlPdD2USuRR/5JtvPNKaCY0ZK1G2lMXY458rZGqsyqZyxDZrfmjA==
X-Received: by 2002:a05:6000:186e:b0:385:dc45:ea22 with SMTP id
ffacd0b85a97d-38a87338d84mr36316187f8f.39.1736989567931;
Wed, 15 Jan 2025 17:06:07 -0800 (PST)
X-Google-Original-From: Alan Gauld <alan.gauld@yahoo.co.uk>
User-Agent: Mozilla Thunderbird
Content-Language: en-GB
In-Reply-To: <4YXnZ9475vznWGk@mail.python.org>
X-BeenThere: python-list@python.org
X-Mailman-Version: 2.1.39
Precedence: list
List-Id: General discussion list for the Python programming language
<python-list.python.org>
List-Unsubscribe: <https://mail.python.org/mailman/options/python-list>,
<mailto:python-list-request@python.org?subject=unsubscribe>
List-Archive: <https://mail.python.org/pipermail/python-list/>
List-Post: <mailto:python-list@python.org>
List-Help: <mailto:python-list-request@python.org?subject=help>
List-Subscribe: <https://mail.python.org/mailman/listinfo/python-list>,
<mailto:python-list-request@python.org?subject=subscribe>
X-Mailman-Original-Message-ID: <18c5dc35-ea6a-4611-b331-be97e924b322@yahoo.co.uk>
X-Mailman-Original-References: <2113dab2-59ba-408e-b34a-78722d525f8c@yahoo.co.uk>
<3ab7002b-689d-4609-96d7-bb388513f227@yahoo.co.uk>
<4YX8tK2xv4znb1c@mail.python.org>
<0c3821d3-78c1-45c0-81da-81f9fb4c4f02@yahoo.co.uk>
<mailman.70.1736844978.2912.python-list@python.org>
<lhmh5l-rhnv.ln1@q957.zbmc.eu> <4YXnZ9475vznWGk@mail.python.org>
View all headers

On 15/01/2025 00:54, Grant Edwards via Python-list wrote:

> are your friend. If that's not sophisticated enough the gnu "readline"
> library with a simple command processor is a common next step.

On that front the cmd module in Python is often overlooked
but is useful for structuring a non-GUI-like text UI.

It doesn't support mouse or screen mapping or colours etc.
But if all you want/need is a pdb type interface it works well.

--
Alan G
Author of the Learn to Program web site
http://www.alan-g.me.uk/
http://www.amazon.com/author/alan_gauld
Follow my photo-blog on Flickr at:
http://www.flickr.com/photos/alangauldphotos

1

rocksolid light 0.9.8
clearnet tor