<div dir="ltr"><div dir="ltr"><div>Non so perché ma il tuo problemami mi ha ricordato questo</div><div><br></div><div><a href="https://youtu.be/hJhZhLg3obk">https://youtu.be/hJhZhLg3obk</a></div><div><br></div><div>l'autore parla di come ha costruito pgcli, una cli per fare query su postgres</div><div><br></div><div> <br> </div></div></div><br><div class="gmail_quote"><div dir="ltr" class="gmail_attr">Il giorno mer 27 feb 2019 alle ore 13:13 Manlio Perillo <<a href="mailto:manlio.perillo@gmail.com">manlio.perillo@gmail.com</a>> ha scritto:<br></div><blockquote class="gmail_quote" style="margin:0px 0px 0px 0.8ex;border-left:1px solid rgb(204,204,204);padding-left:1ex">On Wed, Feb 27, 2019 at 11:08 AM Gabriele Battaglia <<a href="mailto:iz4apu@libero.it" target="_blank">iz4apu@libero.it</a>> wrote:<br>
><br>
> Gente, so che sono uno stress infinito con sta storia, me ne rendo conto<br>
> e mi scuso.<br>
> Le mie enormi lacune in programmazione unitamente alle mie esigenze<br>
> particolari di utente disabile, mi rendono un po una spina nel fianco di<br>
> questo gruppo: grazie per la vostra pazienza e per tutto il vostro aiuto<br>
> e supporto. Per fortuna che il traffico qui non è tanto elevato.<br>
><br>
> Ribadisco, ed è importante, che chiunque si deve sentire libero di<br>
> rispondere solo quando e se ha tempo e voglia, non ho fretta alcuna.<br>
><br>
<br>
Io trovo le tue domande interessanti, proprio perchè sei novizio e disabile.<br>
<br>
> Riepilogando.<br>
> Io scrivo piccoli programmini privi di GUI, utili principalmente a me<br>
> che usano testo in out e tastiera in input. Ho bisogno di un modulo che<br>
> possa importare in tutti i miei scripts che agevoli l'input da tastiera<br>
> facendo sostanzialmente 2 cose:<br>
> 1. che non blocchi tutto mentre l'utente scrive e, 2. che non debba<br>
> attendere la pressione di invio.<br>
> Tutto deve funzionare sotto Windows e sotto Unix BSD e tutto deve andare<br>
> in modalità terminale, quindi niente grafica, niente pygame o altre<br>
> librerie che cambiano la modalità di visualizzazione della console.<br>
><br>
> La miglior approssimazione di ciò che mi serve è questa:<br>
><br>
> <a href="https://www.dropbox.com/s/rzd3wwrsmyx587p/key14.py?dl=0" rel="noreferrer" target="_blank">https://www.dropbox.com/s/rzd3wwrsmyx587p/key14.py?dl=0</a><br>
><br>
<br>
Non hai problemi con il software di assistenza quando imposti la<br>
modalità non canonica su Unix?<br>
Inoltre un consiglio: per entrare ed uscire dalla modalità non<br>
canonica, usa un context:<br>
<a href="https://docs.python.org/3/reference/datamodel.html#with-statement-context-managers" rel="noreferrer" target="_blank">https://docs.python.org/3/reference/datamodel.html#with-statement-context-managers</a><br>
<br>
Ti basta definire il metodo __enter__ che semplicemente restituisce<br>
self, ed il metodo exit che resetta il terminale.<br>
In questo modo puoi fare:<br>
<br>
with KBHit() as kb:<br>
    ...<br>
<br>
> Funziona bene sotto Unix, perciò guardate solo la parte che riguarda<br>
> Windows che ha dei problemi:<br>
<br>
Ironicamente, su Windows è molto più facile fare quello che vuoi,<br>
perchè non ha i problemi che ci sono su Unix.<br>
I terminali su Unix sono un incubo, per non parlare dei problemi sei<br>
vuoi impostare la modalità non bloccante su un file:<br>
<a href="https://cr.yp.to/unix/nonblock.html" rel="noreferrer" target="_blank">https://cr.yp.to/unix/nonblock.html</a>.<br>
<br>
Per impostare la modalità non canonica:<br>
<a href="https://docs.microsoft.com/en-us/windows/console/setconsolemode" rel="noreferrer" target="_blank">https://docs.microsoft.com/en-us/windows/console/setconsolemode</a><br>
<br>
Per vedere se c'è input disponibile (ma non credo ti serva):<br>
<a href="https://docs.microsoft.com/en-us/windows/console/peekconsoleinput" rel="noreferrer" target="_blank">https://docs.microsoft.com/en-us/windows/console/peekconsoleinput</a><br>
<br>
Per leggere in Unicode:<br>
<a href="https://docs.microsoft.com/en-us/windows/console/readconsole" rel="noreferrer" target="_blank">https://docs.microsoft.com/en-us/windows/console/readconsole</a><br>
<br>
Per attendere la pressione di un tasto, con timeout (simile a select):<br>
<a href="https://docs.microsoft.com/en-us/windows/desktop/api/synchapi/nf-synchapi-waitforsingleobject" rel="noreferrer" target="_blank">https://docs.microsoft.com/en-us/windows/desktop/api/synchapi/nf-synchapi-waitforsingleobject</a><br>
<br>
> innanzitutto va a capo ogni volta che<br>
> stampa un carattere, se imposto end="" in print(), non stampa più nulla<br>
> finchè non premo invio e da ultimo crasha quando premo un carattere non<br>
> alfanumerico, magari questo si sistema facilmente, non ho approfondito.<br>
><br>
<br>
Non sono sicuro di capire il primo problema.  Perchè devi premere<br>
[INVIO] per forzare print a scrivere sul terminale?<br>
Riguardo il crash (tecnicamente non è un trash, ma una eccezione non<br>
gestita), dovresti allegare il traceback completo.<br>
<br>
> [...]<br>
<br>
Ciao<br>
Manlio Perillo<br>
_______________________________________________<br>
Python mailing list<br>
<a href="mailto:Python@lists.python.it" target="_blank">Python@lists.python.it</a><br>
<a href="https://lists.python.it/mailman/listinfo/python" rel="noreferrer" target="_blank">https://lists.python.it/mailman/listinfo/python</a><br>
</blockquote></div><br clear="all"><br>-- <br><div dir="ltr" class="gmail_signature">There is a crack, a crack in everything. That’s how the light gets in<br>L. Cohen</div>