[Python] IA, Match e case.

2024-06-14 Per discussione Gabriele Battaglia
Sera. Voglio condividere con voi una cosa che ho scoperto su Python ed 
il mio entusiasmo per alcune cose che questa IA fa davvero bene.



Chiacchierando con ChatGPT 4o, questa sera ho imparato qualcosa che non 
conoscevo sul mio linguaggio di programmazione preferito.


Ammetto che non leggo quasi mai i what's new di Python e so di sbagliare.


Ad ogni modo, non so cosa ne pensiate voi ma io trovo entusiasmante 
ChatGPT 4o, mi ha spalancato un mondo; probabilmente non sarà così per 
la maggior parte di quelli bravi, alle cui competenze è molto più 
difficile arrivare ma per me è una manna dal cielo.


Non è il primo che provo, seguo la IA da quando i non addetti ai lavori, 
come il sottoscritto, hanno iniziato a sentirne parlare, cos'era? 
Gennaio 2023? Ho provato ovviamente Gemini, GPT3.5 e compagnia, tuttavia 
mi pare che la 4o abbia fatto un bel salto.


Mi piacerebbe leggere qualche vostra riflessione, se ne avete voglia: 
intendo tenendosi stretti al rapporto fra IA e programmazione perchè con 
altre tematiche IA, finiremmo per non uscirne più.



Beh, intanto ditemi, vi piace questa spiegazione?


ChatGPT4o:

L'istruzione `match` e `case` è una nuova funzionalità introdotta in 
Python 3.10, che implementa il concetto di "pattern matching". È simile 
all'istruzione `switch`/`case` presente in altri linguaggi di 
programmazione come C, C++ e Java, ma è più potente e flessibile.

Pattern Matching con `match` e `case`
Il pattern matching consente di confrontare una variabile con una serie 
di modelli (patterns) e di eseguire il codice corrispondente al primo 
modello che corrisponde. Ecco come funziona:

Sintassi di Base
python
def example(value):
    match value:
    case 1:
        print("Value is 1")
    case 2:
        print("Value is 2")
    case 3:
        print("Value is 3")
    case _:
        print("Value is something else")
Spiegazione del Codice
1.
Dichiarazione `match`:
• La variabile `value` viene confrontata con una serie di modelli 
all'interno del blocco `match`.

2.
Dichiarazioni `case`:
• Ogni `case` rappresenta un modello a cui `value` potrebbe corrispondere.
• Se `value` corrisponde al modello specificato, viene eseguito il 
codice all'interno del blocco `case`.

3.
Modello `_`:
• Il modello `_` è un jolly che corrisponde a qualsiasi valore non 
gestito dagli altri `case`.

• È simile all'istruzione `default` in altri linguaggi di programmazione.
Esempi Avanzati
Il pattern matching in Python non si limita ai semplici confronti di 
valori. Può anche essere utilizzato per confrontare strutture dati 
complesse come tuple, liste e dizionari.

Confronto di Tuple
python
def example(value):
    match value:
    case (1, x):
        print(f"Tuple starts with 1, second element is {x}")
    case (2, y):
        print(f"Tuple starts with 2, second element is {y}")
    case _:
        print("Tuple does not match any pattern")
Confronto di Liste
python
def example(value):
    match value:
    case [1, x]:
        print(f"List starts with 1, second element is {x}")
    case [2, y]:
        print(f"List starts with 2, second element is {y}")
    case _:
        print("List does not match any pattern")
Confronto di Dizionari
python
def example(value):
    match value:
    case {"key1": x}:
        print(f"Dictionary contains key 'key1' with value {x}")
    case {"key2": y}:
        print(f"Dictionary contains key 'key2' with value {y}")
    case _:
        print("Dictionary does not match any pattern")
Esempio Applicato alla Tua Richiesta
Nel contesto del tuo progetto, puoi utilizzare `match` e `case` per 
filtrare le partite in base a diversi criteri:

python
def filter_games(games, criterion):
    filtered_games = []
    for game in games:
    match criterion["criterion"]:
        case "white_player":
            if game.headers['White'] == criterion['value']:
                filtered_games.append(game)
        case "black_player":
            if game.headers['Black'] == criterion['value']:
                filtered_games.append(game)
        case "result":
            if game.headers['Result'] == criterion['value']:
                filtered_games.append(game)
        case _:
            raise ValueError("Unsupported criterion")
    return filtered_games
In questo esempio, il pattern matching viene utilizzato per determinare 
quale criterio utilizzare per filtrare le partite.

Conclusione
Il pattern matching con `match` e `case` in Python 3.10 è una 
funzionalità potente e flessibile che consente di scrivere codice più 
leggibile e conciso per confrontare valori e strutture dati complessi. 
Se stai utilizzando una versione di Python pr

Re: [Python] Toglietemi un dubbio sugli scope delle variabili.

2024-06-13 Per discussione Gabriele Battaglia


Il 28/05/2024 15:24, Daniele Zambelli ha scritto:

Il giorno gio 23 mag 2024 alle ore 15:26 Gabriele Battaglia
 ha scritto:

Ciao a tutti.

Per favore, leggete questa affermazione e, per non rubarvi tempo
prezioso, rispondetemi solo se è falsa e perchè.
[...]


Forse il problema nasce dalla considerazione data all'indentazione:
non importa quanto è annidato un'istruzione, se non è all'interno dei
una funzione fa parte dello scope globale.

Forse questo script può chiarire:


def assegna_pippo(valore):
 """Funzione che assegna un valore a pippo."""
 pippo = valore
 # qui siamo nello scope della funzione assegna_pippo.
 print(f"nella funzione: {pippo=}")


pippo = True

print(f"prima del ciclo: {pippo=}")

for i in range(3):
 if i == 1:
 pippo = False
 # non importa quanto è indentato,
 # ci troviamo sempre nello scope principale.
 print(f"nel ciclo: {i=}; {pippo=}")

print(f"dopo il ciclo e prima della funzione: {pippo}")

assegna_pippo(999)

print(f"dopo la funzione: {pippo}")




Ciao Daniele, perdona il ritardo con cui ti ringrazio.


Penso di esserci finalmente arrivato, grazie a contributi come il tuo.


Ti auguro una serena giornata ed un'estate splendida.

A presto.


Gabriele.

___
Python mailing list
Python@lists.python.it
https://lists.python.it/mailman/listinfo/python


Re: [Python] Toglietemi un dubbio sugli scope delle variabili.

2024-05-28 Per discussione Daniele Zambelli
Il giorno gio 23 mag 2024 alle ore 15:26 Gabriele Battaglia
 ha scritto:
>
> Ciao a tutti.
>
> Per favore, leggete questa affermazione e, per non rubarvi tempo
> prezioso, rispondetemi solo se è falsa e perchè.
> [...]
>

Forse il problema nasce dalla considerazione data all'indentazione:
non importa quanto è annidato un'istruzione, se non è all'interno dei
una funzione fa parte dello scope globale.

Forse questo script può chiarire:


def assegna_pippo(valore):
"""Funzione che assegna un valore a pippo."""
pippo = valore
# qui siamo nello scope della funzione assegna_pippo.
print(f"nella funzione: {pippo=}")


pippo = True

print(f"prima del ciclo: {pippo=}")

for i in range(3):
if i == 1:
pippo = False
# non importa quanto è indentato,
# ci troviamo sempre nello scope principale.
print(f"nel ciclo: {i=}; {pippo=}")

print(f"dopo il ciclo e prima della funzione: {pippo}")

assegna_pippo(999)

print(f"dopo la funzione: {pippo}")


Ciao.

-- 

Daniele

www.matematicadolce.eu

Perché la scuola,
invece di essere un luogo dove ci si allena a imparare,
è un luogo dove si fa finta di sapere?
_______
Python mailing list
Python@lists.python.it
https://lists.python.it/mailman/listinfo/python


Re: [Python] Toglietemi un dubbio sugli scope delle variabili.

2024-05-23 Per discussione Yuri


Il 23/05/24 12:04, Gabriele Battaglia ha scritto:

Ciao a tutti.

Per favore, leggete questa affermazione e, per non rubarvi tempo 
prezioso, rispondetemi solo se è falsa e perchè.



Delle variabili e della loro visibilità all'interno di uno script 
python, io ho capito questo.



All'inizio dello script, a indentazione 0 diciamo, dopo aver importato 
i moduli e dichiarato le costanti, io scrivo



pippo=True


Bene. Dovrei aver detto che pippo è vero e l'ho detto a livello più 
basso del codice. Ora, se io non dichiaro altri pippo all'interno di 
funzioni o moduli, l'unico pippo della vita mia, dovrebbe essere e 
rimanere, quello assegnato a True, all'inizio.


Tipo, se 2000 righe dopo, e annidato all'interno di una selva di 
indentazioni, dentro un if al dodicesimo leivello di tab scrivo che



if pluto == "12345": pippo=False



Questo codice è dentro una funzione? Se è dentro una funzione, 
localmente crei una variabile pippo che sovrascrive l'altra ma uscito 
dalla funzione ritrovi l'originale. Mi pare se ne fosse discusso di 
recente. Se invece vuoi che questa pippo sia quella dell'inizio, devi 
usare global (o nonlocal ma con limiti) davanti oppure passarla come 
parametro.


In lettura, invece, funziona che trova la pippo che stava in alto e usa 
quel valore.


https://programnotes.altervista.org/ambiti-e-variabili-locali-e-globali/

Esempio chiarificatore:

>>> x = 15
>>> def funzione_esempio():
... x += 2
... return x
...
>>> print(funzione_esempio())
Traceback (most recent call last):
  File "", line 1, in 
  File "", line 2, in funzione_esempio
UnboundLocalError: cannot access local variable 'x' where it is not 
associated with a value


MA:

>>> x = 15
>>> def funzione_esempio():
... x = 10
... return x
...
>>> print(funzione_esempio())
10
>>> x
15

MA:

>>> def funzione_esempio():
... y = x
... y = y + 2
...     return y
...
>>> print(funzione_esempio())
17

https://www.programmareinpython.it/video-corso-python-base/12-variabili-globali-e-variabili-locali/

Quindi quando ridefinisci l'etichetta della variabile, come fai tu 
sopra, la crei localmente alla funzione ma uscito dalla funzione 
ritroverai la pippo iniziale.


In python le variabili sono delle etichette collegate a qualcosa. Quando 
entri in una funzione, le etichette che vengono create localmente sono 
nuove e dentro quella funzione. Avendo lo stesso nome, ovviamente, ti 
sarà impossibile richiamare delle etichette all'esterno. Se provi a 
modificare le etichette esterne usando il loro stesso valore (x += 2), 
Python prima crea la nuova etichetta x, poi prova a leggerla ma non è 
ancora assegnata a nulla, e quindi da l'errore sopra.






finito l'if, fatti eventuali return da mille funzioni, chiusi cicli 
while, loop vari, tutto quello che volete.


Dopo 5000 righe di codice, tornato a livello di indentazione 0.. Se 
vado a vedere il mio pippo...


Troverò sempre quello giusto? Cioè True se la condizione di 
pluto=="12345" non era vera, oppure False se lo era... ma la mia 
variabile pippo è sempre e solo quella.



Chiedo tutto ciò perchè ho uno script che fa più o meno questo, in 
termini generici, tuttavia la variabile non la leggo correttamente e 
non capisco cosa mi sfugga, da anni, in questa maledetta scemenza 
dello scope che dovrebbe essere proprio una sciocchezza, eppure, 
evidentemente sono più rincoglionito di quanto mi piaccia credere.



Grazie per il vostro aiuto.


Gabry.


_______
Python mailing list
Python@lists.python.it
https://lists.python.it/mailman/listinfo/python


[Python] Toglietemi un dubbio sugli scope delle variabili.

2024-05-23 Per discussione Gabriele Battaglia

Ciao a tutti.

Per favore, leggete questa affermazione e, per non rubarvi tempo 
prezioso, rispondetemi solo se è falsa e perchè.



Delle variabili e della loro visibilità all'interno di uno script 
python, io ho capito questo.



All'inizio dello script, a indentazione 0 diciamo, dopo aver importato i 
moduli e dichiarato le costanti, io scrivo



pippo=True


Bene. Dovrei aver detto che pippo è vero e l'ho detto a livello più 
basso del codice. Ora, se io non dichiaro altri pippo all'interno di 
funzioni o moduli, l'unico pippo della vita mia, dovrebbe essere e 
rimanere, quello assegnato a True, all'inizio.


Tipo, se 2000 righe dopo, e annidato all'interno di una selva di 
indentazioni, dentro un if al dodicesimo leivello di tab scrivo che



if pluto == "12345": pippo=False


finito l'if, fatti eventuali return da mille funzioni, chiusi cicli 
while, loop vari, tutto quello che volete.


Dopo 5000 righe di codice, tornato a livello di indentazione 0.. Se vado 
a vedere il mio pippo...


Troverò sempre quello giusto? Cioè True se la condizione di 
pluto=="12345" non era vera, oppure False se lo era... ma la mia 
variabile pippo è sempre e solo quella.



Chiedo tutto ciò perchè ho uno script che fa più o meno questo, in 
termini generici, tuttavia la variabile non la leggo correttamente e non 
capisco cosa mi sfugga, da anni, in questa maledetta scemenza dello 
scope che dovrebbe essere proprio una sciocchezza, eppure, evidentemente 
sono più rincoglionito di quanto mi piaccia credere.



Grazie per il vostro aiuto.


Gabry.

--
Gabriele Battaglia (IZ4APU)
--... ...--  -.. .  .. --.. - .- .--. ..-  - ..-  . .
Sent from my Giant Desktop PC

___
Python mailing list
Python@lists.python.it
https://lists.python.it/mailman/listinfo/python


Re: [Python] Aggiungere testo all'inizio di un file.

2024-05-19 Per discussione Gabriele Battaglia


Il 18/05/2024 20:03, Marco Beri ha scritto:

Mi sa proprio di sì, sai?

Infatti ti conviene forse aprire un file temporaneo, scrivere il nuovo 
testo, aggiungere il testo del file originale, cancellarlo e 
rinominare il file temporaneo nel file originale.


Ma solo se il testo è tanto.



Ciao Marco, grazie mille!

Buona domenica.

___
Python mailing list
Python@lists.python.it
https://lists.python.it/mailman/listinfo/python


Re: [Python] Aggiungere testo all'inizio di un file.

2024-05-18 Per discussione Marco Beri
Mi sa proprio di sì, sai?

Infatti ti conviene forse aprire un file temporaneo, scrivere il nuovo
testo, aggiungere il testo del file originale, cancellarlo e rinominare il
file temporaneo nel file originale.

Ma solo se il testo è tanto.

Ciao.
Marco.

On Sat, 18 May 2024, 19:30 Gabriele Battaglia,  wrote:

> Ciao. Ho passato "ta+" ad open per apprire un file di testo in modalità
> append. Vorrei aggiungere il testo in cima, non in fondo.
>
> E' possibile o devo farlo io a mano caricando il contenuto in una
> variabile, aggiungendo in cima ciò che voglio e poi salvando tutto nel
> file?
>
> Grazie.
>
> --
> Gabriele Battaglia (IZ4APU)
> --... ...--  -.. .  .. --.. - .- .--. ..-  - ..-  . .
> Sent from my Giant Desktop PC
>
> ___
> Python mailing list
> Python@lists.python.it
> https://lists.python.it/mailman/listinfo/python
>
___
Python mailing list
Python@lists.python.it
https://lists.python.it/mailman/listinfo/python


[Python] Aggiungere testo all'inizio di un file.

2024-05-18 Per discussione Gabriele Battaglia
Ciao. Ho passato "ta+" ad open per apprire un file di testo in modalità 
append. Vorrei aggiungere il testo in cima, non in fondo.


E' possibile o devo farlo io a mano caricando il contenuto in una 
variabile, aggiungendo in cima ciò che voglio e poi salvando tutto nel file?


Grazie.

--
Gabriele Battaglia (IZ4APU)
--... ...--  -.. .  .. --.. - .- .--. ..-  - ..-  . .
Sent from my Giant Desktop PC

_______
Python mailing list
Python@lists.python.it
https://lists.python.it/mailman/listinfo/python


Re: [Python] comportamento def async

2024-05-14 Per discussione Andrea D'Amore
On Mon, 13 May 2024 at 22:19, Perini Matteo  wrote:
> vorrei leggere lo stato di un dispositivo ewelink (sonoff) tramite script ma 
> ricevo un comportamento che non capisco.
> Se faccio uno script isolato
[…]
> ottengo esattamente quello che voglio ovvero il print mi dice se il 
> dispositivo è on, off o offline.

In questo script dove richiami `ask_status()`?


> Come posso fare per forzare l'esecuzione di ask_status ogni volta che 
> richiamo la funzione check?

In genere con le parentesi dopo il nome funzione

async def check(update: Update, context: ContextTypes.DEFAULT_TYPE):
await context.bot.send_message(
chat_id=update.effective_chat.id, text=ask_status(the_client)
)

Nota che dovresti restituire la stringa in `ask_status` piuttosto che
stamparla su stdout

@ewelink.login("Password", "em...@email.eu")
async def ask_status(client: Client) -> str:
device = client.get_device("1")
try:
return str(device.state.value)
except DeviceOffline:
return "Device is offline!"


-- 
Andrea D'Amore
___
Python mailing list
Python@lists.python.it
https://lists.python.it/mailman/listinfo/python


Re: [Python] comportamento def async

2024-05-13 Per discussione Federico Fissore
Sicuro che il problema sia che ask_status non viene eseguita?Prova a mettere un print(datetime.now(UTC)) e vedi se e quante volte stampa la dataFederico On 13 May 2024, at 22:19, Perini Matteo  wrote:

  


  
  
Ciao,
vorrei leggere lo stato di un dispositivo ewelink (sonoff)
  tramite script ma ricevo un comportamento che non capisco.
Se faccio uno script isolato 

import ewelinkfrom ewelink import Client, DeviceOffline@ewelink.login('Password', 'em...@email.eu')async def ask_status(client: Client):    device = client.get_device('1')     try:        print(device.state.value)    except DeviceOffline:        print("Device is offline!")

ottengo esattamente quello che voglio ovvero il print mi dice se
  il dispositivo è on, off o offline.


ho provato ad integrare la stessa funzione in uno script un po'
  più articolato per comunicare con un bot telegram.
from telegram import Updatefrom telegram.ext import ApplicationBuilder, ContextTypes, CommandHandler, MessageHandler, filtersfrom credentials import TOKENimport ewelinkfrom ewelink import Client, DeviceOffline


@ewelink.login('Password', 'em...@email.eu')async def ask_status(client: Client):    device = client.get_device('1')     try:        print(device.state.value)    except DeviceOffline:        print("Device is offline!")
async def start(update: Update, context: ContextTypes.DEFAULT_TYPE):    await context.bot.send_message(chat_id=update.effective_chat.id, text="I'm a bot, please talk to me!")
async def check(update: Update, context: ContextTypes.DEFAULT_TYPE):    await context.bot.send_message(chat_id=update.effective_chat.id, text=ask_status)
if __name__ == '__main__':    application = ApplicationBuilder().token(TOKEN).build()        start_handler = CommandHandler('start', start)    check_handler = CommandHandler('check', check)    application.add_handler(start_handler)    application.add_handler(check_handler)    application.run_polling()



Il bot funziona (è un po' più complicato di così) ma quando
  chiamo "ask_status" mi restituisce sempre lo stato che aveva il
  dispositivo quando faccio partire il bot.
Come posso fare per forzare l'esecuzione di ask_status ogni volta
  che richiamo la funzione check?
Cosa mi sto perdendo?


Grazie a chi mi può dare un suggerimento
Matteo 

  

___Python mailing listPython@lists.python.ithttps://lists.python.it/mailman/listinfo/python_______
Python mailing list
Python@lists.python.it
https://lists.python.it/mailman/listinfo/python


[Python] comportamento def async

2024-05-13 Per discussione Perini Matteo

Ciao,

vorrei leggere lo stato di un dispositivo ewelink (sonoff) tramite 
script ma ricevo un comportamento che non capisco.


Se faccio uno script isolato

importewelink
fromewelinkimportClient, DeviceOffline
@ewelink.login('Password', 'em...@email.eu')
asyncdefask_status(client: Client):
device= client.get_device('1')
try:
print(device.state.value)
exceptDeviceOffline:
print("Device is offline!")

ottengo esattamente quello che voglio ovvero il print mi dice se il 
dispositivo è on, off o offline.



ho provato ad integrare la stessa funzione in uno script un po' più 
articolato per comunicare con un bot telegram.


fromtelegramimportUpdate
fromtelegram.extimportApplicationBuilder, ContextTypes, CommandHandler, 
MessageHandler, filters

fromcredentialsimportTOKEN
importewelink
fromewelinkimportClient, DeviceOffline
@ewelink.login('Password', 'em...@email.eu')
asyncdefask_status(client: Client):
device= client.get_device('1')
try:
print(device.state.value)
exceptDeviceOffline:
print("Device is offline!")
asyncdefstart(update: Update, context: ContextTypes.DEFAULT_TYPE):
awaitcontext.bot.send_message(chat_id=update.effective_chat.id, 
text="I'm a bot, please talk to me!")

asyncdefcheck(update: Update, context: ContextTypes.DEFAULT_TYPE):
awaitcontext.bot.send_message(chat_id=update.effective_chat.id, 
text=ask_status)

if__name__== '__main__':
application= ApplicationBuilder().token(TOKEN).build()
start_handler= CommandHandler('start', start)
check_handler= CommandHandler('check', check)
application.add_handler(start_handler)
application.add_handler(check_handler)
application.run_polling()


Il bot funziona (è un po' più complicato di così) ma quando chiamo 
"ask_status" mi restituisce sempre lo stato che aveva il dispositivo 
quando faccio partire il bot.


Come posso fare per forzare l'esecuzione di ask_status ogni volta che 
richiamo la funzione check?


Cosa mi sto perdendo?


Grazie a chi mi può dare un suggerimento

Matteo
_______
Python mailing list
Python@lists.python.it
https://lists.python.it/mailman/listinfo/python


Re: [Python] CODICE ASCII

2024-03-28 Per discussione Mauro Casini
Marco Monti  writes:

> Con altri codici, invece, non funziona. ESEMPIO: ALT+187 da il simbolo* ╗*
> con chr(187) dà ». Avete idea del perchè?

chr(n) restituisce il carattere unicode con codice n (nel caso di n=187
è un "right-pointing double angle quotation mark", '»'),

Quello che succede premendo ALT-187 (o qualche altra combinazione di
tasti) dipende dalla configuraione della tastiera e non da python.

Mauro
___
Python mailing list
Python@lists.python.it
https://lists.python.it/mailman/listinfo/python


Re: [Python] CODICE ASCII

2024-03-28 Per discussione Ivo Reano
Ciao.
Non ha niente a che vedere con python, si tratta della mappatura della
tastiera.

Ivo

Il giorno gio 28 mar 2024 alle ore 17:52 Marco Monti 
ha scritto:

> Buonasera.
> Vedo delle cose strane con i codici ASCII: non tutti i codici
> corrispondono alle tabelle sia quando si inseriscono con ALT+codice e sia
> quando si usa chr(codice) all'interno di un listato.
> Ad esempio, il codice 123 è la graffa aperta { e viene sia con ALT+123
> sia con chr(123). Lo stesso vale per la @ che è 64 e così via per tanti
> altri.
> Con altri codici, invece, non funziona. ESEMPIO: ALT+187 da il simbolo* ╗*
> con chr(187) dà ». Avete idea del perchè?
> Grazie della collaborazione
> Marco Monti
> cell. 340 7200207
> _______
> Python mailing list
> Python@lists.python.it
> https://lists.python.it/mailman/listinfo/python
>
_______
Python mailing list
Python@lists.python.it
https://lists.python.it/mailman/listinfo/python


[Python] CODICE ASCII

2024-03-28 Per discussione Marco Monti
Buonasera.
Vedo delle cose strane con i codici ASCII: non tutti i codici corrispondono
alle tabelle sia quando si inseriscono con ALT+codice e sia quando si
usa chr(codice) all'interno di un listato.
Ad esempio, il codice 123 è la graffa aperta { e viene sia con ALT+123 sia
con chr(123). Lo stesso vale per la @ che è 64 e così via per tanti altri.
Con altri codici, invece, non funziona. ESEMPIO: ALT+187 da il simbolo* ╗*
con chr(187) dà ». Avete idea del perchè?
Grazie della collaborazione
Marco Monti
cell. 340 7200207
___
Python mailing list
Python@lists.python.it
https://lists.python.it/mailman/listinfo/python


Re: [Python] Risolto. Re: Qualcuno usa ipython come interprete?

2024-03-14 Per discussione Carlo Miron
Il giorno gio 14 mar 2024 alle ore 10:32 Gabriele Battaglia
 ha scritto:
>
> ...di nuovo, buongiorno a tutti ed a Carlo M in particolare.
>
> Ho risolto.

Grande!

> Mancava la libreria pickleshare che, chissà per quale strano motto del
> destino, non era stata installata fra le molte dipendenze di ipython.
>
> Grazie.
> Gabry.
_______
Python mailing list
Python@lists.python.it
https://lists.python.it/mailman/listinfo/python


Re: [Python] Qualcuno usa ipython come interprete?

2024-03-14 Per discussione Carlo Miron
Ciao Gabriele

Il giorno gio 14 mar 2024 alle ore 08:23 Gabriele Battaglia
 ha scritto:
>
> Se sì, continuate a leggere please, altrimenti, tuffo doppio carpiato
> nel cestino.

Uso IPython 8.21.0 su Python 3.12.2 (su linux)

> [...]
> E' un problema mio?

Qui si comporta come previsto

```py
cm@heap:~
$ ipython
Python 3.12.2 (main, Feb 11 2024, 21:08:54) [GCC 13.2.0]
Type 'copyright', 'credits' or 'license' for more information
IPython 8.21.0 -- An enhanced Interactive Python. Type '?' for help.
>>> a=88
time: 2.99 ms (started: 2024-03-14 08:51:23 +01:00)
>>> %store a
Stored 'a' (int)
time: 1.23 ms (started: 2024-03-14 08:51:32 +01:00)
>>> %store
Stored variables and their in-db values:
a -> 88
time: 1.54 ms (started: 2024-03-14 08:51:38 +01:00)
>>>^D
cm@heap:~
$ ipython
Python 3.12.2 (main, Feb 11 2024, 21:08:54) [GCC 13.2.0]
Type 'copyright', 'credits' or 'license' for more information
IPython 8.21.0 -- An enhanced Interactive Python. Type '?' for help.
>>> a
NameError: name 'a' is not defined

time: 3.06 ms (started: 2024-03-14 08:52:09 +01:00)
>>> %store
Stored variables and their in-db values:
a -> 88
time: 1.48 ms (started: 2024-03-14 08:52:32 +01:00)
>>> %store -r
time: 9.51 ms (started: 2024-03-14 08:52:42 +01:00)
>>> a
88
time: 4.5 ms (started: 2024-03-14 08:52:45 +01:00)
```

Non saprei dirti cosa potrebbe essere successo nel tuo caso; se
perdere il valore delle tue variabili persistenti non è un problema,
potresti provare a cancellare i file contenuti nella subdirectory
`db/autorestore` all'interno della configurzione di ipython. Nel mio
caso,

```sh
cm@heap:~
$ ls -lh ~/.ipython/profile_default/db/autorestore
total 4.0K
-rw-rw-r-- 1 cm cm 5 Mar 14 08:51 a
```

HTH,
㎝

-- 
 THE -WARE LICENSE (Revision ㊷):
 wrote this . As long as you retain this notice you can
do whatever you want with this stuff. If we meet some day, and you
think this stuff is worth it, you can buy me a  in return. — Carlo
_______
Python mailing list
Python@lists.python.it
https://lists.python.it/mailman/listinfo/python


[Python] Qualcuno usa ipython come interprete?

2024-03-14 Per discussione Gabriele Battaglia
Se sì, continuate a leggere please, altrimenti, tuffo doppio carpiato 
nel cestino.



Python 3.11.8, win11, ipython 8.22.2


Magic function Store:

a=88

%store a


sembra andare.

Poi

%store per vedere le variabili salvate:

File 
~\AppData\Local\Programs\Python\Python311\Lib\site-packages\IPython\extensions\storemagic.py:161

, in StoreMagics.store(self, parameter_s)
159 # run without arguments -> list variables & values
160 elif not args:
--> 161 vars = db.keys('autorestore/*')
162 vars.sort()
163 if vars:

AttributeError: 'PickleShareDB' object has no attribute 'keys'

In [4]:


E stessa cosa con tutti gli altri switcher che ho provato, -r -d eccetera.


E' un problema mio?


Grazie mille.

Gabry.

--
Gabriele Battaglia (IZ4APU)
--... ...--  -.. .  .. --.. - .- .--. ..-  - ..-  . .
Sent from my Giant Desktop PC

_______
Python mailing list
Python@lists.python.it
https://lists.python.it/mailman/listinfo/python


Re: [Python] Ho un problema con pyinstaller.

2024-03-04 Per discussione Gabriele Sorci
scusa rettifico: pyinstaller mioscript.py --onefile --name mioscript.exe

On Mon, Mar 4, 2024 at 5:54 PM Gabriele Sorci 
wrote:

> il comando che dovresti lanciare è pyinstaller -F mioscript.py --onefile
> --name mioscript.exe
>
> On Mon, Mar 4, 2024 at 1:32 PM  wrote:
>
>> Ciao a tutti.
>>
>> Devo ottenere un file eseguibile da un mio progetto. Mi serve un file
>> unico.
>>
>> Uso pyinstaller 6.4.0 che dovrebbe essere l’ultima stabile. Sono con
>> Python 3.11.8, sotto win11.
>>
>>
>>
>> Nello mio script, in una delle prime righe importo una porzione di codice
>> da un altro mio programma.
>>
>>
>>
>> Poi faccio.
>>
>>
>>
>> pyinstaller -F mioscript.py
>>
>>
>>
>> oppure --onefile, invece di -F.
>>
>>
>>
>> pyinstaller svolge il suo lavoro e in una 15 ina di secondi a fatto.
>>
>> Mi crea una cartella build con dentro una decina di file ed una dist che
>> contiene una sottocartella col nome del progetto che a sua volta contiene
>> l’exe.
>>
>>
>>
>> Se lo lancio dalla cartella che contiene anche il modulo che importa,
>> nessun problema ma se sposto altrove l’eseguibile, mi dice che non trova il
>> modulo e genera un errore.
>>
>>
>>
>> Cioè non viene prodotto lo standalone.
>>
>>
>>
>> Qualcuno ha qualche idea del perché ciò accada?
>>
>>
>>
>> Grazie mille.
>>
>>
>>
>>
>>
>> Gabriele Battaglia (Gabe / Gabry) - IZ4APU
>>
>> --... ...--  -.. .  .. --.. - .- .--. ..-  - ..-  . .
>>
>> Sent from Outlook on Windows, Genus Bononiae's computer. (Libero)
>>
>>
>> ___
>> Python mailing list
>> Python@lists.python.it
>> https://lists.python.it/mailman/listinfo/python
>>
>
___
Python mailing list
Python@lists.python.it
https://lists.python.it/mailman/listinfo/python


Re: [Python] Ho un problema con pyinstaller.

2024-03-04 Per discussione Gabriele Sorci
il comando che dovresti lanciare è pyinstaller -F mioscript.py --onefile
--name mioscript.exe

On Mon, Mar 4, 2024 at 1:32 PM  wrote:

> Ciao a tutti.
>
> Devo ottenere un file eseguibile da un mio progetto. Mi serve un file
> unico.
>
> Uso pyinstaller 6.4.0 che dovrebbe essere l’ultima stabile. Sono con
> Python 3.11.8, sotto win11.
>
>
>
> Nello mio script, in una delle prime righe importo una porzione di codice
> da un altro mio programma.
>
>
>
> Poi faccio.
>
>
>
> pyinstaller -F mioscript.py
>
>
>
> oppure --onefile, invece di -F.
>
>
>
> pyinstaller svolge il suo lavoro e in una 15 ina di secondi a fatto.
>
> Mi crea una cartella build con dentro una decina di file ed una dist che
> contiene una sottocartella col nome del progetto che a sua volta contiene
> l’exe.
>
>
>
> Se lo lancio dalla cartella che contiene anche il modulo che importa,
> nessun problema ma se sposto altrove l’eseguibile, mi dice che non trova il
> modulo e genera un errore.
>
>
>
> Cioè non viene prodotto lo standalone.
>
>
>
> Qualcuno ha qualche idea del perché ciò accada?
>
>
>
> Grazie mille.
>
>
>
>
>
> Gabriele Battaglia (Gabe / Gabry) - IZ4APU
>
> --... ...--  -.. .  .. --.. - .- .--. ..-  - ..-  . .
>
> Sent from Outlook on Windows, Genus Bononiae's computer. (Libero)
>
>
> ___________
> Python mailing list
> Python@lists.python.it
> https://lists.python.it/mailman/listinfo/python
>
___
Python mailing list
Python@lists.python.it
https://lists.python.it/mailman/listinfo/python


[Python] Ho un problema con pyinstaller.

2024-03-04 Per discussione iz4apu
Ciao a tutti.

Devo ottenere un file eseguibile da un mio progetto. Mi serve un file unico.

Uso pyinstaller 6.4.0 che dovrebbe essere l’ultima stabile. Sono con Python 
3.11.8, sotto win11.

 

Nello mio script, in una delle prime righe importo una porzione di codice da un 
altro mio programma.

 

Poi faccio.

 

pyinstaller -F mioscript.py

 

oppure --onefile, invece di -F.

 

pyinstaller svolge il suo lavoro e in una 15 ina di secondi a fatto.

Mi crea una cartella build con dentro una decina di file ed una dist che 
contiene una sottocartella col nome del progetto che a sua volta contiene l’exe.

 

Se lo lancio dalla cartella che contiene anche il modulo che importa, nessun 
problema ma se sposto altrove l’eseguibile, mi dice che non trova il modulo e 
genera un errore.

 

Cioè non viene prodotto lo standalone.

 

Qualcuno ha qualche idea del perché ciò accada?

 

Grazie mille.

 

 

Gabriele Battaglia (Gabe / Gabry) - IZ4APU

--... ...--  -.. .  .. --.. - .- .--. ..-  - ..-  . .

Sent from Outlook on Windows, Genus Bononiae's computer. (Libero)

 

___
Python mailing list
Python@lists.python.it
https://lists.python.it/mailman/listinfo/python


Re: [Python] Domanda su import.

2024-02-21 Per discussione Giorgio Zoppi
Basare una import sulle performance e' un errore,
dopo ti trovi a fare unitest e fare monkey patching ovunque. L'import va
posto all'inizio a meno che non sei disperato. Di solito se e' grossa non
importi le funzioni perche e' un casino poi, cioe senza import from.
Un saluto,
Giorgio



Il giorno mar 20 feb 2024 alle ore 13:30 Massimiliano della Rovere <
massimiliano.dellarov...@gmail.com> ha scritto:

> Premesso che senza indicazioni più precise sul "peso" (RAM? CPU? Tempo?)
> della libreria, dell'elaborazione, dei dati grezzi e di quelli che dovranno
> essere prodotti è difficile dare una risposta.
>
> Se il tuo applicativo è basato su asyncio, potresti valutare di
> instanziare un concurrent.futures.ProcessPoolExecutor quando e dove serve,
> sfruttare più CPU per l'elaborazione e non sequestrare la CPU con delle
> coroutine che impiegano tanto tempo con elaborazione.
>
> Se parliamo del solito webserver (django, flask, ecc) e ipotizzando che tu
> non abbia SSE o websocket che sostanzialmente ti rimandano al caso
> precedente, creerei comunque un processo esterno i dei worker dedicati alla
> libreria e dal tuo applicativo contatterei il pool per avviare
> l'elaborazione, scrivendo poi il risultato in un luogo che sia accessibile
> dal server web per renderlo scaricabile dall'utente o in modo che il
> completamento del task possa essere rilevato dal programma che esponga il
> risultato in un'area apposita all'utente/i interessati.
>
> Se invece deve essere una soluzione tutta in uno, senza processi esterni,
> dovresti valutare i seguenti costo (costo può essere la RAM usata, la CPU
> usata, il tempo... valuta):
> 1. costo di import della libreria
> 2. costo di trasmissione (anche file su disco) dei dati alla libreria
> 3. costo di elaborazione dei dati
> 4. costo di trasmissione (anche file su disco) dei dati prodotti dalla
> libreria
> 5. costo di una richiesta gestita dal tuo programma quando non entra in
> gioco la libreria
> 6. la percentuale media di richieste che necessitano della libreria.
>
> chiamiamo 1..4 la somma dei costi da 1 a 4.
> Se 6 è basso e 1..4 è considerevolmente maggiore di 5... carica la
> libreria solo quando e dove serve.
> Se 6 è basso e 1..4 è simile a 5 carica la libreria a monte.
> Se 6 è medio alto, carica la libreria a monte,
>
> Il giorno mar 20 feb 2024 alle ore 13:21  ha scritto:
>
>> Ciao.
>>
>> Una questione di carattere generale.
>>
>>
>>
>> Devo usare una libreria abbastanza grossa. Però, non tutto il mio
>> programma la usa, ma solo una delle sue funzioni e queesta funzione
>> potrebbe essere chiamata una sola volta, più volte o anche non chiamata
>> affatto.
>>
>>
>>
>> Secondo voi, l’import di questa libreria è comunque meglio metterlo ad
>> inizio programma, o piuttosto all’interno della funzione interessata?
>>
>>
>>
>> Grazie.
>>
>>
>>
>> Gabry.
>>
>>
>>
>> Gabriele Battaglia (Gabe / Gabry) - IZ4APU
>>
>> --... ...--  -.. .  .. --.. - .- .--. ..-  - ..-  . .
>>
>> Sent from Outlook on Windows, Genus Bononiae's computer. (Libero)
>>
>>
>> ___
>> Python mailing list
>> Python@lists.python.it
>> https://lists.python.it/mailman/listinfo/python
>>
> ___
> Python mailing list
> Python@lists.python.it
> https://lists.python.it/mailman/listinfo/python
>


-- 
Life is a chess game - Anonymous.
___
Python mailing list
Python@lists.python.it
https://lists.python.it/mailman/listinfo/python


Re: [Python] Domanda su import.

2024-02-21 Per discussione Massimiliano Tornati
Ciao Gabriele,
le informazioni sono poche per darti un consiglio: tra le varie cose
1-bisogna valutare il rapporto tra il peso computazionale del tuo codice in
relazione al codice della libreria che devi caricare
2- la tipologia di funzioni che devi utilizzare( ricorsive o meno)
3- la quantità di accessi che devi fare alla libreria all'interno del codice

Di base ti consiglio a parità di tali valori di mettere l'import all'inizio
del codice cmq puoi fare sempre delle prove così che ne impari sempre di
più: questo è il mio metodo

Il giorno mar 20 feb 2024 alle ore 14:25 Carlo Miron  ha
scritto:

> Ciao Gabriele
>
> Il giorno mar 20 feb 2024 alle ore 13:21  ha scritto:
> >
> > Devo usare una libreria abbastanza grossa. Però, non tutto il mio
> programma la usa, ma solo una delle sue funzioni e queesta funzione
> potrebbe essere chiamata una sola volta, più volte o anche non chiamata
> affatto.
> > Secondo voi, l’import di questa libreria è comunque meglio metterlo ad
> inizio programma, o piuttosto all’interno della funzione interessata?
>
> A meno che l'importazione della libreria non impatti percettibilmente
> il tempo di caricamento del programma, ti consiglierei di metterlo
> all'inizio del codice.
> L'import all'interno della funzione in genere è un hack che deve
> essere giustificato (e commentato) a buona ragione.
>
> Buona giornata,
> ㎝
>
> --
>  THE -WARE LICENSE (Revision ㊷):
>  wrote this . As long as you retain this notice you
> can
> do whatever you want with this stuff. If we meet some day, and you
> think this stuff is worth it, you can buy me a  in return. — Carlo
> ___
> Python mailing list
> Python@lists.python.it
> https://lists.python.it/mailman/listinfo/python
>


-- 


mobile phone : +39 348 002 8107
tel: +39 0721 1630292
Per appuntamento: https://zcal.co/massimiliano_tornati

TORNATI PROJECT SRL
via Callegari 9-11
61122 Pesaro (PU)
P.IVA/C.F.  02533270415
site: TORNATI PROJECT <http://www.tornatiproject.com>
site:https://itofood.com/

<https://api.whatsapp.com/send/?phone=393496736011=%F0%9F%98%8ATornatiProject%C2%A0%20HERE!!!%20how%20can%20help%20you%3F>

<https://api.whatsapp.com/send?phone=393480028107=Hello%21+%0A+Can+you+help+me%3F+>

e-mail t...@tornatiproject.com
Whatapp:https://wa.me/message/G6CHK7323ZODI1

The information contained in this e-mail and any attachment is
confidential. It is intended only for the named addressee(s).
If you are not the named addressee(s) please notify us immediately at the
e-mail  t...@tornatiproject.com and then destroy this message.The copy or
distribution of the contents to any other person other than the intended
addressee(s) is strictly prohibited and will be punished according to  the
relevant laws on privacy and Intellectual Property.

Think before you print!
Before you print, please consider if it is necessary. Printing uses
electricity, ink and paper.
___
Python mailing list
Python@lists.python.it
https://lists.python.it/mailman/listinfo/python


Re: [Python] Domanda su import.

2024-02-20 Per discussione Massimiliano della Rovere
Premesso che senza indicazioni più precise sul "peso" (RAM? CPU? Tempo?)
della libreria, dell'elaborazione, dei dati grezzi e di quelli che dovranno
essere prodotti è difficile dare una risposta.

Se il tuo applicativo è basato su asyncio, potresti valutare di
instanziare un concurrent.futures.ProcessPoolExecutor quando e dove serve,
sfruttare più CPU per l'elaborazione e non sequestrare la CPU con delle
coroutine che impiegano tanto tempo con elaborazione.

Se parliamo del solito webserver (django, flask, ecc) e ipotizzando che tu
non abbia SSE o websocket che sostanzialmente ti rimandano al caso
precedente, creerei comunque un processo esterno i dei worker dedicati alla
libreria e dal tuo applicativo contatterei il pool per avviare
l'elaborazione, scrivendo poi il risultato in un luogo che sia accessibile
dal server web per renderlo scaricabile dall'utente o in modo che il
completamento del task possa essere rilevato dal programma che esponga il
risultato in un'area apposita all'utente/i interessati.

Se invece deve essere una soluzione tutta in uno, senza processi esterni,
dovresti valutare i seguenti costo (costo può essere la RAM usata, la CPU
usata, il tempo... valuta):
1. costo di import della libreria
2. costo di trasmissione (anche file su disco) dei dati alla libreria
3. costo di elaborazione dei dati
4. costo di trasmissione (anche file su disco) dei dati prodotti dalla
libreria
5. costo di una richiesta gestita dal tuo programma quando non entra in
gioco la libreria
6. la percentuale media di richieste che necessitano della libreria.

chiamiamo 1..4 la somma dei costi da 1 a 4.
Se 6 è basso e 1..4 è considerevolmente maggiore di 5... carica la libreria
solo quando e dove serve.
Se 6 è basso e 1..4 è simile a 5 carica la libreria a monte.
Se 6 è medio alto, carica la libreria a monte,

Il giorno mar 20 feb 2024 alle ore 13:21  ha scritto:

> Ciao.
>
> Una questione di carattere generale.
>
>
>
> Devo usare una libreria abbastanza grossa. Però, non tutto il mio
> programma la usa, ma solo una delle sue funzioni e queesta funzione
> potrebbe essere chiamata una sola volta, più volte o anche non chiamata
> affatto.
>
>
>
> Secondo voi, l’import di questa libreria è comunque meglio metterlo ad
> inizio programma, o piuttosto all’interno della funzione interessata?
>
>
>
> Grazie.
>
>
>
> Gabry.
>
>
>
> Gabriele Battaglia (Gabe / Gabry) - IZ4APU
>
> --... ...--  -.. .  .. --.. - .- .--. ..-  - ..-  . .
>
> Sent from Outlook on Windows, Genus Bononiae's computer. (Libero)
>
>
> _______
> Python mailing list
> Python@lists.python.it
> https://lists.python.it/mailman/listinfo/python
>
___
Python mailing list
Python@lists.python.it
https://lists.python.it/mailman/listinfo/python


Re: [Python] Domanda su import.

2024-02-20 Per discussione Carlo Miron
Ciao Gabriele

Il giorno mar 20 feb 2024 alle ore 13:21  ha scritto:
>
> Devo usare una libreria abbastanza grossa. Però, non tutto il mio programma 
> la usa, ma solo una delle sue funzioni e queesta funzione potrebbe essere 
> chiamata una sola volta, più volte o anche non chiamata affatto.
> Secondo voi, l’import di questa libreria è comunque meglio metterlo ad inizio 
> programma, o piuttosto all’interno della funzione interessata?

A meno che l'importazione della libreria non impatti percettibilmente
il tempo di caricamento del programma, ti consiglierei di metterlo
all'inizio del codice.
L'import all'interno della funzione in genere è un hack che deve
essere giustificato (e commentato) a buona ragione.

Buona giornata,
㎝

-- 
 THE -WARE LICENSE (Revision ㊷):
 wrote this . As long as you retain this notice you can
do whatever you want with this stuff. If we meet some day, and you
think this stuff is worth it, you can buy me a  in return. — Carlo
_______
Python mailing list
Python@lists.python.it
https://lists.python.it/mailman/listinfo/python


[Python] Domanda su import.

2024-02-20 Per discussione iz4apu
Ciao.

Una questione di carattere generale.

 

Devo usare una libreria abbastanza grossa. Però, non tutto il mio programma la 
usa, ma solo una delle sue funzioni e queesta funzione potrebbe essere chiamata 
una sola volta, più volte o anche non chiamata affatto.

 

Secondo voi, l’import di questa libreria è comunque meglio metterlo ad inizio 
programma, o piuttosto all’interno della funzione interessata?

 

Grazie.

 

Gabry.

 

Gabriele Battaglia (Gabe / Gabry) - IZ4APU

--... ...--  -.. .  .. --.. - .- .--. ..-  - ..-  . .

Sent from Outlook on Windows, Genus Bononiae's computer. (Libero)

 

___
Python mailing list
Python@lists.python.it
https://lists.python.it/mailman/listinfo/python


Re: [Python] modo furbo per trovare pattern differenti in una stringa

2024-02-14 Per discussione Massimiliano Tornati
Ciao,
visto che il GCode è un codice strutturato in cui se trovi dei comandi
specifici hai delle funzioni apposite; puoi definire una classe con gli
oggetti che la compongono così che poi ti puoi gestire tutto il codice
strutturato secondo le varie funzioni che ti servono perchè in realtà nono
sono a caso.

Il giorno mar 13 feb 2024 alle ore 14:32 Perini Matteo <
perini.mat...@gmail.com> ha scritto:

> Ciao a tutti,
>
> è da un po' che non scrivo.
>
> Vi chiedo aiuto perchè sto cercando di leggere delle coordinate da un file 
> Gcode.
>
> Un esempio del testo da parsare è:
>
> ;LAYER:1
> ;MESH:untitled.stl
> G0 F7200 X1298 Y1798 Z4
> ;TYPE:WALL-OUTER
> G1 F1800 X702 Y1798 E1494.81223
> G1 X702 Y1202 E2242.21834
> G92 E0
> G1 X1298 Y1202 E747.40611
> G1 Y1798 X1298 E1494.81223
> ;TIME_ELAPSED:177.752007
> ;CHANGE;
> ;LAYER:2
> ;MESH:untitled.stl
> G0 F7200 X1298 Y1798 Z6
> ;TYPE:WALL-OUTER
> G1 F1800 X702 Y1798 E2242.21834
> G92 E0
> G1 X702 Y1202 E747.40611
>
> non ho grossi problemi ad effettuare un parsing corretto ma lo sto facendo 
> con vari if, elif, case,  ecc. cosa che non mi piace molto.
>
> Stavo provando ad utilizzare le regex ma non sto riuscendo a fare quello che 
> voglio (in modo pulito) ovvero identificare le coordinate X, Y e Z anche se 
> in alcuni casi hanno posizioni invertite.
> Vorrei anche attribuire un nome al gruppo identificato in modo da usarlo come 
> dizionario.
> Stavo usando alcuni pattern tipo ".*Z(?P\d+[.]?\d*)" che vanno bene per 
> individuare le coordinate di un asse ma capita che le righe contengano x y e 
> z oppure solo Z oppure solo x e y.
> Importante, in alcuni casi potrebbero essere anche in ordine differente tipo 
> z y e x.
>
> Per ora i numeri dopo E e F posso trascurarli ma vi chiederei aiuto per 
> riuscire ad ottenere le coordinate da ogni riga.
>
> se tutte le righe rispettassero lo stesso pattern non avrei problemi ma non 
> so come affrontare soprattutto il problema di avere pattern diversi in ordine 
> (quasi) random.
>
> Spero di essere stato abbastanza chiaro.
>
> Grazie a tutti
>
> Matteo
>
>
>
>
> ___
> Python mailing list
> Python@lists.python.it
> https://lists.python.it/mailman/listinfo/python
>


-- 


mobile phone : +39 348 002 8107
tel: +39 0721 1630292
Per appuntamento: https://zcal.co/massimiliano_tornati

TORNATI PROJECT SRL
via Callegari 9-11
61122 Pesaro (PU)
P.IVA/C.F.  02533270415
site: TORNATI PROJECT <http://www.tornatiproject.com>
site:https://itofood.com/

<https://api.whatsapp.com/send/?phone=393496736011=%F0%9F%98%8ATornatiProject%C2%A0%20HERE!!!%20how%20can%20help%20you%3F>

<https://api.whatsapp.com/send?phone=393480028107=Hello%21+%0A+Can+you+help+me%3F+>

e-mail t...@tornatiproject.com
Whatapp:https://wa.me/message/G6CHK7323ZODI1

The information contained in this e-mail and any attachment is
confidential. It is intended only for the named addressee(s).
If you are not the named addressee(s) please notify us immediately at the
e-mail  t...@tornatiproject.com and then destroy this message.The copy or
distribution of the contents to any other person other than the intended
addressee(s) is strictly prohibited and will be punished according to  the
relevant laws on privacy and Intellectual Property.

Think before you print!
Before you print, please consider if it is necessary. Printing uses
electricity, ink and paper.
___
Python mailing list
Python@lists.python.it
https://lists.python.it/mailman/listinfo/python


Re: [Python] modo furbo per trovare pattern differenti in una stringa

2024-02-13 Per discussione Alessandro T.

On 13/02/24 14:32, Perini Matteo wrote:

Ciao a tutti,
è da un po' che non scrivo.
Vi chiedo aiuto perchè sto cercando di leggere delle coordinate da un file 
Gcode.
[...]
Vorrei anche attribuire un nome al gruppo identificato in modo da usarlo come 
dizionario.


Ciao,
se ho capito bene qualcosa così dovrebbe andare:

import re

origin =""";LAYER:1
;MESH:untitled.stl
G0 F7200 X1298 Y1798 Z4
;TYPE:WALL-OUTER
G1 F1800 X702 Y1798 E1494.81223
G1 X702 Y1202 E2242.21834
G92 E0
G1 X1298 Y1202 E747.40611
G1 Y1798 X1298 E1494.81223
;TIME_ELAPSED:177.752007
;CHANGE;
;LAYER:2
;MESH:untitled.stl
G0 F7200 X1298 Y1798 Z6
;TYPE:WALL-OUTER
G1 F1800 X702 Y1798 E2242.21834
G92 E0
G1 X702 Y1202 E747.40611"""


pattern = re.compile(r"([EFXYZ])(\d+\.?\d*)")

for linea in origin.splitlines():
    if not linea.startswith(';'):
    print(dict(pattern.findall(linea)))



--
Alessandro T.

R: Perché leggiamo dall'alto al basso e da sinistra a destra.
D: Perché dovrei iniziare la risposta all'e-mail dopo il testo citato?

_______
Python mailing list
Python@lists.python.it
https://lists.python.it/mailman/listinfo/python


Re: [Python] modo furbo per trovare pattern differenti in una stringa

2024-02-13 Per discussione Yuri

Ciao,

 se fai split sulla riga con separatore lo spazio e guardi quelle che 
cominciano con GX, non è meglio? Lì prendi quelli che cominciano per X, 
Y e Z. Ignori le righe che non servono (quelle che cominciano per ; ad 
esempio).


Con regexp, posso suggerirti questo:

https://stackoverflow.com/a/3533526/15822654

che sembra affrontare il tuo problema, cioè il match di token sparsi 
casualmente in una stringa.


Il 13/02/24 14:32, Perini Matteo ha scritto:

Ciao a tutti,
è da un po' che non scrivo.
Vi chiedo aiuto perchè sto cercando di leggere delle coordinate da un file 
Gcode.
Un esempio del testo da parsare è:
;LAYER:1
;MESH:untitled.stl
G0 F7200 X1298 Y1798 Z4
;TYPE:WALL-OUTER
G1 F1800 X702 Y1798 E1494.81223
G1 X702 Y1202 E2242.21834
G92 E0
G1 X1298 Y1202 E747.40611
G1 Y1798 X1298 E1494.81223
;TIME_ELAPSED:177.752007
;CHANGE;
;LAYER:2
;MESH:untitled.stl
G0 F7200 X1298 Y1798 Z6
;TYPE:WALL-OUTER
G1 F1800 X702 Y1798 E2242.21834
G92 E0
G1 X702 Y1202 E747.40611
non ho grossi problemi ad effettuare un parsing corretto ma lo sto facendo con 
vari if, elif, case,  ecc. cosa che non mi piace molto.
Stavo provando ad utilizzare le regex ma non sto riuscendo a fare quello che 
voglio (in modo pulito) ovvero identificare le coordinate X, Y e Z anche se in 
alcuni casi hanno posizioni invertite.
Vorrei anche attribuire un nome al gruppo identificato in modo da usarlo come 
dizionario.
Stavo usando alcuni pattern tipo ".*Z(?P\d+[.]?\d*)" che vanno bene per individuare le coordinate di 
un asse ma capita che le righe contengano x y e z oppure solo Z oppure 
solo x e y. Importante, in alcuni casi potrebbero essere anche in 
ordine differente tipo z y e x. Per ora i numeri dopo E e F posso 
trascurarli ma vi chiederei aiuto per riuscire ad ottenere le 
coordinate da ogni riga. se tutte le righe rispettassero lo stesso 
pattern non avrei problemi ma non so come affrontare soprattutto il 
problema di avere pattern diversi in ordine (quasi) random. Spero di 
essere stato abbastanza chiaro. Grazie a tutti Matteo




_______
Python mailing list
Python@lists.python.it
https://lists.python.it/mailman/listinfo/python_______
Python mailing list
Python@lists.python.it
https://lists.python.it/mailman/listinfo/python


[Python] modo furbo per trovare pattern differenti in una stringa

2024-02-13 Per discussione Perini Matteo

Ciao a tutti,

è da un po' che non scrivo.

Vi chiedo aiuto perchè sto cercando di leggere delle coordinate da un file 
Gcode.

Un esempio del testo da parsare è:

;LAYER:1
;MESH:untitled.stl
G0 F7200 X1298 Y1798 Z4
;TYPE:WALL-OUTER
G1 F1800 X702 Y1798 E1494.81223
G1 X702 Y1202 E2242.21834
G92 E0
G1 X1298 Y1202 E747.40611
G1 Y1798 X1298 E1494.81223
;TIME_ELAPSED:177.752007
;CHANGE;
;LAYER:2
;MESH:untitled.stl
G0 F7200 X1298 Y1798 Z6
;TYPE:WALL-OUTER
G1 F1800 X702 Y1798 E2242.21834
G92 E0
G1 X702 Y1202 E747.40611

non ho grossi problemi ad effettuare un parsing corretto ma lo sto facendo con 
vari if, elif, case,  ecc. cosa che non mi piace molto.

Stavo provando ad utilizzare le regex ma non sto riuscendo a fare quello che 
voglio (in modo pulito) ovvero identificare le coordinate X, Y e Z anche se in 
alcuni casi hanno posizioni invertite.
Vorrei anche attribuire un nome al gruppo identificato in modo da usarlo come 
dizionario.
Stavo usando alcuni pattern tipo ".*Z(?P\d+[.]?\d*)" che vanno bene per individuare le coordinate di un 
asse ma capita che le righe contengano x y e z oppure solo Z oppure solo 
x e y. Importante, in alcuni casi potrebbero essere anche in ordine 
differente tipo z y e x. Per ora i numeri dopo E e F posso trascurarli 
ma vi chiederei aiuto per riuscire ad ottenere le coordinate da ogni 
riga. se tutte le righe rispettassero lo stesso pattern non avrei 
problemi ma non so come affrontare soprattutto il problema di avere 
pattern diversi in ordine (quasi) random. Spero di essere stato 
abbastanza chiaro. Grazie a tutti Matteo


_______
Python mailing list
Python@lists.python.it
https://lists.python.it/mailman/listinfo/python


Re: [Python] LISTE E RANDOM

2024-02-12 Per discussione Bruno Firmani
Altra possibilità.

Supponiamo di avere 20 regioni, 30 stati e 100 province.

Si scrivano le equazioni delle rette passanti per le coppie di punti:

( 0 , 0  ) - ( 20 , 1/3)
(20 , 1/3) - ( 50 , 2/3)
(50 , 2/3) - (150 , 1  )


Scelto un numero casuale w in ( 0 , 1 ) si stabilisce se è compreso da (0/1/3) 
o fra (1/3,2/2) oppure fra (2/3, 1 ).

Si calcola la corrispondente contro immagine e l’intervallo nel quale questa 
cade ci dà la regione o la nazione oppure la provincia cercata.

In questo modo si effettua un solo sorteggio.

Bruno Firmani




> Il giorno 12 feb 2024, alle ore 22:13, Marco Beri  ha 
> scritto:
> 
> On Mon, 12 Feb 2024, 21:25 Mauro Casini,  <mailto:ma...@iperbole.bologna.it>> wrote:
>> Marco Beri mailto:marcob...@gmail.com>> writes:
>> 
>> >> cas_lst = random.choice((reg_ita, naz_eur, pro_ita))
>> >> cas_fin = random.choice(cas_lst)
>> >
>> > Non è quello che vuole fare lui.
>> >
>> > Lui vuole scegliere a caso tra reg_cas, naz_cas e pro_cas.
>> 
>> È la stessa cosa: un elemento casuale con prob. 1/3 reg, 1/3 naz, 1/3
>> pro.  È inutle sorteggiare un elemento da ogni lista per poi scartarne
>> due, basta estrarne uno solo da una lista scelta a caso fra le tre,
> 
> 
> 
> Ah, giusto. Sono stato avventato :-)
> 
> Così ti risparmi due random.choice.
> 
> Ciao.
> Marco.
> 
> _______
> Python mailing list
> Python@lists.python.it <mailto:Python@lists.python.it>
> https://lists.python.it/mailman/listinfo/python

___
Python mailing list
Python@lists.python.it
https://lists.python.it/mailman/listinfo/python


Re: [Python] LISTE E RANDOM

2024-02-12 Per discussione Marco Beri
On Mon, 12 Feb 2024, 21:25 Mauro Casini,  wrote:

> Marco Beri  writes:
>
> >> cas_lst = random.choice((reg_ita, naz_eur, pro_ita))
> >> cas_fin = random.choice(cas_lst)
> >
> > Non è quello che vuole fare lui.
> >
> > Lui vuole scegliere a caso tra reg_cas, naz_cas e pro_cas.
>
> È la stessa cosa: un elemento casuale con prob. 1/3 reg, 1/3 naz, 1/3
> pro.  È inutle sorteggiare un elemento da ogni lista per poi scartarne
> due, basta estrarne uno solo da una lista scelta a caso fra le tre,
>


Ah, giusto. Sono stato avventato :-)

Così ti risparmi due random.choice.

Ciao.
Marco.
___
Python mailing list
Python@lists.python.it
https://lists.python.it/mailman/listinfo/python


Re: [Python] LISTE E RANDOM

2024-02-12 Per discussione Mauro Casini
Marco Beri  writes:

>> cas_lst = random.choice((reg_ita, naz_eur, pro_ita))
>> cas_fin = random.choice(cas_lst)
>
> Non è quello che vuole fare lui.
>
> Lui vuole scegliere a caso tra reg_cas, naz_cas e pro_cas.

È la stessa cosa: un elemento casuale con prob. 1/3 reg, 1/3 naz, 1/3
pro.  È inutle sorteggiare un elemento da ogni lista per poi scartarne
due, basta estrarne uno solo da una lista scelta a caso fra le tre,

ciao,
Mauro
_______
Python mailing list
Python@lists.python.it
https://lists.python.it/mailman/listinfo/python


Re: [Python] LISTE E RANDOM

2024-02-12 Per discussione Marco Beri
Il giorno lun 12 feb 2024 alle ore 19:42 Mauro Casini <
ma...@iperbole.bologna.it> ha scritto:

> Marco Monti  writes:
>
> > reg_cas=random.choice(reg_ita)
> > naz_cas=random.choice(naz_eur)
> > pro_cas=random.choice(pro_ita)
> > cas_fin=random.choice(reg_cas+pro_cas+naz_cas)
> > Da errore. Non so come fare
>
> cas_lst = random.choice((reg_ita, naz_eur, pro_ita))
> cas_fin = random.choice(cas_lst)
>

Non è quello che vuole fare lui.

Lui vuole scegliere a caso tra reg_cas, naz_cas e pro_cas.

Ciao.
Marco.
_______
Python mailing list
Python@lists.python.it
https://lists.python.it/mailman/listinfo/python


Re: [Python] LISTE E RANDOM

2024-02-12 Per discussione Mauro Casini
Marco Monti  writes:

> reg_cas=random.choice(reg_ita)
> naz_cas=random.choice(naz_eur)
> pro_cas=random.choice(pro_ita)
> cas_fin=random.choice(reg_cas+pro_cas+naz_cas)
> Da errore. Non so come fare

cas_lst = random.choice((reg_ita, naz_eur, pro_ita))
cas_fin = random.choice(cas_lst)

Mauro
___
Python mailing list
Python@lists.python.it
https://lists.python.it/mailman/listinfo/python


Re: [Python] LISTE E RANDOM

2024-02-12 Per discussione Marco Beri
Il giorno lun 12 feb 2024 alle ore 16:20 Esalando Prassi <
alessandro.p...@katamail.com> ha scritto:

> Credo tu voglia fare qualcosa tipo:
>
> ```
> random.choice(reg_ita + naz_eur +  pro_ita)
> ```
>

Io invece punto su:

cas_fin=random.choice((reg_cas, pro_cas, naz_cas))

Ciao.
Marco.

>
>
___________
Python mailing list
Python@lists.python.it
https://lists.python.it/mailman/listinfo/python


Re: [Python] LISTE E RANDOM

2024-02-12 Per discussione Esalando Prassi
On Mon, 12 Feb 2024 at 16:06, Marco Monti  wrote:

> Buongiorno. Sto usando liste e tuple e non so come risolvere un problema
> sulla diversa numerosità degli oggetti. Mi spiego meglio.
> In un test di geografia ho inserito una lista delle 20 regioni italiane,
> una lista delle 25 nazioni europee e una lista delle circa 100 province
> italiane.
> Dato che le 100 provincie italiane sono numericamente ben superiori alle
> nazioni e alle regioni la scelta casuale fa uscire quasi sempre le
> provincie. Non trovo un modo per bilanciare la scelta casuale.
> Ho pensato di fare una scelta casuale differenziata: scelta solo fra le
> nazioni, solo fra le regioni, solo fra le provincie. Poi fare una scelta
> fra le suddette tre. Mi dà errore.
> reg_ita=[]
> naz_eur=[]
> pro_ita=[]
> reg_cas=random.choice(reg_ita)
> naz_cas=random.choice(naz_eur)
> pro_cas=random.choice(pro_ita)
> cas_fin=random.choice(reg_cas+pro_cas+naz_cas)
> Da errore. Non so come fare
>
>
Credo tu voglia fare qualcosa tipo:

```
random.choice(reg_ita + naz_eur +  pro_ita)
```

Ciao!
-- 
http://alepisa.blogspot.com
Esalando Prassi
___
Python mailing list
Python@lists.python.it
https://lists.python.it/mailman/listinfo/python


Re: [Python] LISTE E RANDOM

2024-02-12 Per discussione Daniele Zambelli
Il giorno lun 12 feb 2024 alle ore 16:06 Marco Monti
 ha scritto:
>
> [...]
> Da errore. Non so come fare

Ho un sospetto di quale sia l'errore, ma dato che il codice che hai
postato non è eseguibile, almeno riporta l'errore che ti segnala
l'interprete.

Ciao.

-- 

Daniele

www.matematicadolce.eu

Perché la scuola,
invece di essere un luogo dove ci si allena a imparare,
è un luogo dove si fa finta di sapere?
_______
Python mailing list
Python@lists.python.it
https://lists.python.it/mailman/listinfo/python


[Python] LISTE E RANDOM

2024-02-12 Per discussione Marco Monti
Buongiorno. Sto usando liste e tuple e non so come risolvere un problema
sulla diversa numerosità degli oggetti. Mi spiego meglio.
In un test di geografia ho inserito una lista delle 20 regioni italiane,
una lista delle 25 nazioni europee e una lista delle circa 100 province
italiane.
Dato che le 100 provincie italiane sono numericamente ben superiori alle
nazioni e alle regioni la scelta casuale fa uscire quasi sempre le
provincie. Non trovo un modo per bilanciare la scelta casuale.
Ho pensato di fare una scelta casuale differenziata: scelta solo fra le
nazioni, solo fra le regioni, solo fra le provincie. Poi fare una scelta
fra le suddette tre. Mi dà errore.
reg_ita=[]
naz_eur=[]
pro_ita=[]
reg_cas=random.choice(reg_ita)
naz_cas=random.choice(naz_eur)
pro_cas=random.choice(pro_ita)
cas_fin=random.choice(reg_cas+pro_cas+naz_cas)
Da errore. Non so come fare

Marco Monti
cell. 340 7200207
___
Python mailing list
Python@lists.python.it
https://lists.python.it/mailman/listinfo/python


[Python] Sostituire l'interprete.

2024-02-12 Per discussione iz4apu
Ciao.

Con Windows 11 e Python 3.11, si può sostituire l’interprete di default 
mettendo, ad esempio, iPython?

 

Gabriele Battaglia (Gabe / Gabry) - IZ4APU

--... ...--  -.. .  .. --.. - .- .--. ..-  - ..-  . .

Sent from Outlook on Windows, Genus Bononiae's computer. (Libero)

 

___
Python mailing list
Python@lists.python.it
https://lists.python.it/mailman/listinfo/python


Re: [Python] Questo, da Python, non me lo sarei mai aspettato

2024-02-12 Per discussione Riccardo Ghetta

Ciao,
quando crei una funzione con parametri di default in python, funziona un 
po' come se l'avessi in realtà dichiarata così (*)


var_0001 = []
def prova(cambia, par):
if par is None: 
par = var_0001

if cambia:
par.append('pippo')
print("cambiata")
print(par)

e l'interprete avesse trasformato le chiamate in

prova(False, None)# []
prova(True, None) # cambiata \n ['pippo']
prova(False, None)# ['pippo']



In altre parole, ogni volta che entri nella funzione il parametro /par 
/viene agganciato alla variabile /var_0001 /e quindi ogni modifica al 
contenuto di /par /tocca la variabile.

se invece di append metti
par = ['pippo']
invece non modifichi /var_0001/, ma stai semplicemente agganciando par 
a/['pippo']/
La prossima volta par sarà riagganciato alla variabile originaria e 
quindi avrai sempre


prova(False, None)# []
prova(True, None) # cambiata \n ['pippo']
prova(False, None)# []

Ciao,
Riccardo

(*) ovviamente l'interprete non lavora proprio così
_______
Python mailing list
Python@lists.python.it
https://lists.python.it/mailman/listinfo/python


Re: [Python] Questo, da Python, non me lo sarei mai aspettato

2024-02-12 Per discussione Federico Fissore
  On Mon, 12 Feb 2024 09:30:18 +0100  Daniele Zambelli  wrote --- 
 > 
 > Mi sfugge ancora qualcosa...
 > 

Credo che quello che ti sfugge è che quando scrivi
par.append('pippo')
stai cambiando lo stato di una lista esistente, quella riferita dalla variabile 
`par`, mentre quando scrivi
par = 'pippo'
stai cambiando ciò a cui `par` fa riferimento.

Quindi se fai
par = []
par.append('pippo')
prima cambi il riferimento, facendolo puntare a una nuova lista, poi ne cambi 
lo stato

ciao

federico
_______
Python mailing list
Python@lists.python.it
https://lists.python.it/mailman/listinfo/python


Re: [Python] Questo, da Python, non me lo sarei mai aspettato

2024-02-12 Per discussione Daniele Zambelli
Il giorno lun 12 feb 2024 alle ore 09:46 Marco Beri
 ha scritto:
> [...]
>
> Daniele,
> il non side effect non si applica quando il valore di default di un parametro 
> è un mutable (lista o set o dict).
> Pensa che a volte si usa questo per memoizzare brutalmente una funzione.
> [...]

Se non fosse banale, dato che sono molte più le cose che non conosco
di Python di quelle che conosco, direi che non si è mai finito di
imparare.

Grazie a tutti per la competenza e la pazienza.

-- 

Daniele

www.matematicadolce.eu

Perché la scuola,
invece di essere un luogo dove ci si allena a imparare,
è un luogo dove si fa finta di sapere?
_______
Python mailing list
Python@lists.python.it
https://lists.python.it/mailman/listinfo/python


Re: [Python] Questo, da Python, non me lo sarei mai aspettato

2024-02-12 Per discussione Daniele Zambelli
Il giorno lun 12 feb 2024 alle ore 09:38 Esalando Prassi
 ha scritto:
>
> On Sun, 11 Feb 2024 at 16:32, Daniele Zambelli  
> wrote:
>> [...]
>  Questo e' una cosa nota e mi sa che in tanti ci hanno sbattuto la testa: 
> https://docs.python-guide.org/writing/gotchas/#mutable-default-arguments
> [...]

Lettura istruttiva, grazie.

-- 

Daniele

www.matematicadolce.eu

Perché la scuola,
invece di essere un luogo dove ci si allena a imparare,
è un luogo dove si fa finta di sapere?
_______
Python mailing list
Python@lists.python.it
https://lists.python.it/mailman/listinfo/python


Re: [Python] Questo, da Python, non me lo sarei mai aspettato

2024-02-12 Per discussione Marco Beri
Il giorno lun 12 feb 2024 alle ore 09:36 Daniele Zambelli <
daniele.zambe...@gmail.com> ha scritto:

> Lo strano per me è che il valore di default dovrebbe essere una lista
> vuota ogni volta che chiamo la funzione invece la seconda volta è una
> lista con i valori che sono stati inseriti dalla funzione nella
> chiamata precedente.
> Cioè due chiamate identiche della funzione hanno effetti differenti.
> Mi pare che non rispetti il principio di non side effect (se si dice così).
>

Daniele,
il non side effect non si applica quando il valore di default di un
parametro è un mutable (lista o set o dict).
Pensa che a volte si usa questo per memoizzare brutalmente una funzione.

Esempio:

def quadrato(n, cache={}):
try:
return cache[n]
except KeyError:
pass
print("calcolo")
q = cache[n] = n*n
return q

>>> quadrato(10)
calcolo
100
>>> quadrato(10)
100


Ciao.
Marco.
___
Python mailing list
Python@lists.python.it
https://lists.python.it/mailman/listinfo/python


Re: [Python] Questo, da Python, non me lo sarei mai aspettato

2024-02-12 Per discussione Esalando Prassi
On Sun, 11 Feb 2024 at 16:32, Daniele Zambelli 
wrote:

> Stavo studiando degli algoritmi per produrre la lista delle
> permutazioni di una sequenza, ho modificato una funzione che ho
> trovato su stackoverflow e mi sono imbattuto in un comportamento molto
> strano (per me).
> Lo script è questo:
>
> def permutazioni1(head, tail='', result=[]):
>

 Questo e' una cosa nota e mi sa che in tanti ci hanno sbattuto la testa:
https://docs.python-guide.org/writing/gotchas/#mutable-default-arguments

```
def permutazioni1(head, tail='', result=[]):
```

andrebbe cambiato in:

```
def permutazioni1(head, tail='', result=None):
if result is None:
   result = []
```

Ciao!
-- 
http://alepisa.blogspot.com
Esalando Prassi
_______
Python mailing list
Python@lists.python.it
https://lists.python.it/mailman/listinfo/python


Re: [Python] Questo, da Python, non me lo sarei mai aspettato

2024-02-12 Per discussione Daniele Zambelli
Il giorno lun 12 feb 2024 alle ore 09:27 Carlos Catucci
 ha scritto:
>
> [...]
> E cosa ci sarebbe di strano? Se non gli passi un valore applica quello di 
> default. QUello che deve fare fa'.

Lo strano per me è che il valore di default dovrebbe essere una lista
vuota ogni volta che chiamo la funzione invece la seconda volta è una
lista con i valori che sono stati inseriti dalla funzione nella
chiamata precedente.
Cioè due chiamate identiche della funzione hanno effetti differenti.
Mi pare che non rispetti il principio di non side effect (se si dice così).

Ciao.

-- 

Daniele

www.matematicadolce.eu

Perché la scuola,
invece di essere un luogo dove ci si allena a imparare,
è un luogo dove si fa finta di sapere?
___
Python mailing list
Python@lists.python.it
https://lists.python.it/mailman/listinfo/python


Re: [Python] Questo, da Python, non me lo sarei mai aspettato

2024-02-12 Per discussione Daniele Zambelli
Il giorno lun 12 feb 2024 alle ore 08:47 Federico Fissore
 ha scritto:
>
> Ciao
>
> no, l'ultima funzione sta rivalorizzando `par` ogni volta. Cambiala così e 
> riesegui

Ok, questo mi pare che riproduca la situazione:

def prova(cambia, par=[]):
if cambia:
par.append('pippo')
print("cambiata")
print(par)

prova(False)# []
prova(True) # cambiata \n ['pippo']
prova(False)# ['pippo']

Ma la cosa è un po' più sottile di come mi sembrava di avere capito, infatti:

def prova(cambia, par=[]):
if cambia:
par = ['pippo']
print("cambiata")
print(par)

prova(False)# []
prova(True) # cambiata \n ['pippo']
prova(False)# []

def prova(cambia, par=''):
if cambia:
par = 'pippo'
print("cambiata")
print(par)

prova(False)# ''
prova(True) # cambiata \n 'pippo'
prova(False)# ''

Mi sfugge ancora qualcosa...

Grazie, ciao.

-- 

Daniele

www.matematicadolce.eu

Perché la scuola,
invece di essere un luogo dove ci si allena a imparare,
è un luogo dove si fa finta di sapere?
___________
Python mailing list
Python@lists.python.it
https://lists.python.it/mailman/listinfo/python


Re: [Python] Questo, da Python, non me lo sarei mai aspettato

2024-02-12 Per discussione Carlos Catucci
On Mon, 12 Feb 2024 at 00:10, Daniele Zambelli 
wrote:

> Mi pare di avere capito, ma continua a risultarmi strano questo
> comportamento:
>
>
> Se il valore della variabile viene cambiata al momento della chiamata
> della funzione, il valore di default rimane, se viene cambiata dalla
> funzione stessa il valore di default cambia in tutte le chiamate
> successive.


E cosa ci sarebbe di strano? Se non gli passi un valore applica quello di
default. QUello che deve fare fa'.

Carlos
_______
Python mailing list
Python@lists.python.it
https://lists.python.it/mailman/listinfo/python


Re: [Python] Un quesito su pip.

2024-02-12 Per discussione iz4apu
> Il giorno dom 11 feb 2024 alle ore 23:19 Gabriele Battaglia 
> ha scritto:
> >
> > Ciao a tutti.
> >
> > Perdonate l'ignoranza estrema, vorrei capire il perchè di questa cosa.
> >
> > Fino ad oggi, se dal prompt di Win11 digitavo pip, potevo gestire i
> > pacchetti installati.
> >
> > Dopo aver installato ed usato per qualche giorno anaconda, l'ho
> > disinstallato ed ora dal prompt, pip non mi risponde più.
> > [...]
> 
> Sono diversi anni che non uso Windows, per cui potrei dire delle vaccate...
> Forse Windows, quando hai disinstallato anaconda, ha tolto il collegamento
> tra il tipo di file e l'interprete, bisogna reimpostarlo magari attraverso il 
> menu
> contestuale di pip scegliendo "apri con..."
> e scegliendo "usa sempre questa applicazione" (o qualcosa del genere).
> 
> Ciao.

[# Gabry B:] Ciao Daniele. In questo caso non penso. Era forse più un problema 
di percorsi inseriti in qualche variabile di sistema per indicare all'O.S. dove 
cercare gli eseguibili.
Ho controllato tutte le variabili di sistema ma non ho trovato nulla.
Ho risolto disinstallando e reinstallando la 3.11.8 di Python.
Grazie per la tua risposta.

___
Python mailing list
Python@lists.python.it
https://lists.python.it/mailman/listinfo/python


Re: [Python] Questo, da Python, non me lo sarei mai aspettato

2024-02-11 Per discussione Federico Fissore
Ciao

no, l'ultima funzione sta rivalorizzando `par` ogni volta. Cambiala così e 
riesegui

def prova(par=['pippo']):
if par == ['pippo']:
print("cambiata")
par = ['pluto']
print(par)

ciao

federico

  On Mon, 12 Feb 2024 00:09:55 +0100  Daniele Zambelli  wrote --- 
 > Mi pare di avere capito, ma continua a risultarmi strano questo 
 > comportamento:
 > 
 > 
 > def prova(par='pippo'):
 > print(par)
 > 
 > prova('pluto')  # pluto
 > prova() # pippo
 > 
 > def prova(par=['pippo']):
 > print(par)
 > 
 > prova(['pluto'])# ['pluto']
 > prova() # ['pippo']
 > 
 > def prova(par=['pippo']):
 > if par == ['pippo']:
 > par = ['pluto']
 > print(par)
 > 
 > prova() # ['pluto']
 > prova() # ['pluto']
 > 
 > Se il valore della variabile viene cambiata al momento della chiamata
 > della funzione, il valore di default rimane, se viene cambiata dalla
 > funzione stessa il valore di default cambia in tutte le chiamate
 > successive.
 > 
 > Grazie, ciao.
 > 
 > Il giorno dom 11 feb 2024 alle ore 18:12 Federico Fissore
 > feder...@fissore.org> ha scritto:
 > >
 > > Ciao
 > >
 > > Result é locale alla funzione ma il suo valore di default no: quel [] è 
 > > una lista definita a livello di funzione, quindi definita una volta e 
 > > condivisa da ogni invocazione.
 > > Se vuoi evitare sorprese, usa none come valore di default, e nella 
 > > funzione metti
 > > If result is none:
 > >result = []
 > >
 > > Ciao
 > >
 > > Federico
 > >
 > >
 > >
 > > > On 11 Feb 2024, at 16:32, Daniele Zambelli daniele.zambe...@gmail.com> 
 > > > wrote:
 > > > Stavo studiando degli algoritmi per produrre la lista delle
 > > > permutazioni di una sequenza, ho modificato una funzione che ho
 > > > trovato su stackoverflow e mi sono imbattuto in un comportamento molto
 > > > strano (per me).
 > > > Lo script è questo:
 > > >
 > > > def permutazioni1(head, tail='', result=[]):
 > > >if len(head) == 0:
 > > >result.append(tail)
 > > >else:
 > > >for i in range(len(head)):
 > > >permutazioni1(head[:i] + head[i+1:], tail + head[i])
 > > >else:
 > > >  return(result)
 > > >
 > > > print(permutazioni1("abc"))
 > > >
 > > > print('-')
 > > >
 > > > print(permutazioni1("def"))
 > > >
 > > > Io mi aspettavo che il parametro "result" fosse locale alla funzione
 > > > "permutazioni1" e che non mantenesse il suo contenuto tra una chiamata
 > > > e l'altra della funzione il risultato dello script è:
 > > >
 > > > ['abc', 'acb', 'bac', 'bca', 'cab', 'cba']
 > > > -
 > > > ['abc', 'acb', 'bac', 'bca', 'cab', 'cba', 'def', 'dfe', 'edf', 'efd',
 > > > 'fde', 'fed']
 > > >
 > > > Probabilmente non è il modo corretto per ottenere la lista delle
 > > > permutazioni, ma qualcuno sa spiegarmi perché si comporta così e come
 > > > eventualmente correggerlo?
 > > >
 > > > Grazie, da una domenica uggiosa.
 > > >
 > > > --
 > > >
 > > > Daniele
 > > >
 > > > www.matematicadolce.eu
 > > >
 > > > Perché la scuola,
 > > > invece di essere un luogo dove ci si allena a imparare,
 > > > è un luogo dove si fa finta di sapere?
 > > > ___
 > > > Python mailing list
 > > > Python@lists.python.it
 > > > https://lists.python.it/mailman/listinfo/python
 > >
 > 
 > 
 > -- 
 > 
 > Daniele
 > 
 > www.matematicadolce.eu
 > 
 > Perché la scuola,
 > invece di essere un luogo dove ci si allena a imparare,
 > è un luogo dove si fa finta di sapere?
 > ___
 > Python mailing list
 > Python@lists.python.it
 > https://lists.python.it/mailman/listinfo/python
 > 
___
Python mailing list
Python@lists.python.it
https://lists.python.it/mailman/listinfo/python


Re: [Python] Un quesito su pip.

2024-02-11 Per discussione Daniele Zambelli
Il giorno dom 11 feb 2024 alle ore 23:19 Gabriele Battaglia
 ha scritto:
>
> Ciao a tutti.
>
> Perdonate l'ignoranza estrema, vorrei capire il perchè di questa cosa.
>
> Fino ad oggi, se dal prompt di Win11 digitavo pip, potevo gestire i
> pacchetti installati.
>
> Dopo aver installato ed usato per qualche giorno anaconda, l'ho
> disinstallato ed ora dal prompt, pip non mi risponde più.
> [...]

Sono diversi anni che non uso Windows, per cui potrei dire delle vaccate...
Forse Windows, quando hai disinstallato anaconda, ha tolto il
collegamento tra il tipo di file e l'interprete, bisogna reimpostarlo
magari attraverso il menu contestuale di pip scegliendo "apri con..."
e scegliendo "usa sempre questa applicazione" (o qualcosa del genere).

Ciao.

-- 

Daniele

www.matematicadolce.eu

Perché la scuola,
invece di essere un luogo dove ci si allena a imparare,
è un luogo dove si fa finta di sapere?
_______
Python mailing list
Python@lists.python.it
https://lists.python.it/mailman/listinfo/python


Re: [Python] Questo, da Python, non me lo sarei mai aspettato

2024-02-11 Per discussione Daniele Zambelli
Mi pare di avere capito, ma continua a risultarmi strano questo comportamento:


def prova(par='pippo'):
print(par)

prova('pluto')  # pluto
prova() # pippo

def prova(par=['pippo']):
print(par)

prova(['pluto'])# ['pluto']
prova() # ['pippo']

def prova(par=['pippo']):
if par == ['pippo']:
par = ['pluto']
print(par)

prova() # ['pluto']
prova() # ['pluto']

Se il valore della variabile viene cambiata al momento della chiamata
della funzione, il valore di default rimane, se viene cambiata dalla
funzione stessa il valore di default cambia in tutte le chiamate
successive.

Grazie, ciao.

Il giorno dom 11 feb 2024 alle ore 18:12 Federico Fissore
 ha scritto:
>
> Ciao
>
> Result é locale alla funzione ma il suo valore di default no: quel [] è una 
> lista definita a livello di funzione, quindi definita una volta e condivisa 
> da ogni invocazione.
> Se vuoi evitare sorprese, usa none come valore di default, e nella funzione 
> metti
> If result is none:
>result = []
>
> Ciao
>
> Federico
>
>
>
> > On 11 Feb 2024, at 16:32, Daniele Zambelli  
> > wrote:
> > Stavo studiando degli algoritmi per produrre la lista delle
> > permutazioni di una sequenza, ho modificato una funzione che ho
> > trovato su stackoverflow e mi sono imbattuto in un comportamento molto
> > strano (per me).
> > Lo script è questo:
> >
> > def permutazioni1(head, tail='', result=[]):
> >if len(head) == 0:
> >result.append(tail)
> >else:
> >for i in range(len(head)):
> >permutazioni1(head[:i] + head[i+1:], tail + head[i])
> >else:
> >  return(result)
> >
> > print(permutazioni1("abc"))
> >
> > print('-')
> >
> > print(permutazioni1("def"))
> >
> > Io mi aspettavo che il parametro "result" fosse locale alla funzione
> > "permutazioni1" e che non mantenesse il suo contenuto tra una chiamata
> > e l'altra della funzione il risultato dello script è:
> >
> > ['abc', 'acb', 'bac', 'bca', 'cab', 'cba']
> > -
> > ['abc', 'acb', 'bac', 'bca', 'cab', 'cba', 'def', 'dfe', 'edf', 'efd',
> > 'fde', 'fed']
> >
> > Probabilmente non è il modo corretto per ottenere la lista delle
> > permutazioni, ma qualcuno sa spiegarmi perché si comporta così e come
> > eventualmente correggerlo?
> >
> > Grazie, da una domenica uggiosa.
> >
> > --
> >
> > Daniele
> >
> > www.matematicadolce.eu
> >
> > Perché la scuola,
> > invece di essere un luogo dove ci si allena a imparare,
> > è un luogo dove si fa finta di sapere?
> > ___
> > Python mailing list
> > Python@lists.python.it
> > https://lists.python.it/mailman/listinfo/python
>


-- 

Daniele

www.matematicadolce.eu

Perché la scuola,
invece di essere un luogo dove ci si allena a imparare,
è un luogo dove si fa finta di sapere?
___
Python mailing list
Python@lists.python.it
https://lists.python.it/mailman/listinfo/python


[Python] Un quesito su pip.

2024-02-11 Per discussione Gabriele Battaglia

Ciao a tutti.

Perdonate l'ignoranza estrema, vorrei capire il perchè di questa cosa.

Fino ad oggi, se dal prompt di Win11 digitavo pip, potevo gestire i 
pacchetti installati.


Dopo aver installato ed usato per qualche giorno anaconda, l'ho 
disinstallato ed ora dal prompt, pip non mi risponde più.


Tuttavia lo fa se lo chiamo attraverso python:


py -m pip .


Anche pyinstaller: prima lo invocavo direttamente dal prompt, ora c'è 
solo se lo chiamo con py -m



Qual è la differenza fra queste 2 invocazioni. C'è un modo migliore 
dell'altro?


Perchè la rimozione di anaconda ha cambiato le cose?


Grazie mille.

--
Gabriele Battaglia (IZ4APU)
--... ...--  -.. .  .. --.. - .- .--. ..-  - ..-  . .
Sent from my Giant Desktop PC

___
Python mailing list
Python@lists.python.it
https://lists.python.it/mailman/listinfo/python


Re: [Python] Questo, da Python, non me lo sarei mai aspettato

2024-02-11 Per discussione Federico Fissore
Ciao

Result é locale alla funzione ma il suo valore di default no: quel [] è una 
lista definita a livello di funzione, quindi definita una volta e condivisa da 
ogni invocazione. 
Se vuoi evitare sorprese, usa none come valore di default, e nella funzione 
metti
If result is none:
   result = []

Ciao

Federico 



> On 11 Feb 2024, at 16:32, Daniele Zambelli  wrote:
> Stavo studiando degli algoritmi per produrre la lista delle
> permutazioni di una sequenza, ho modificato una funzione che ho
> trovato su stackoverflow e mi sono imbattuto in un comportamento molto
> strano (per me).
> Lo script è questo:
> 
> def permutazioni1(head, tail='', result=[]):
>if len(head) == 0:
>result.append(tail)
>else:
>for i in range(len(head)):
>permutazioni1(head[:i] + head[i+1:], tail + head[i])
>else:
>  return(result)
> 
> print(permutazioni1("abc"))
> 
> print('-')
> 
> print(permutazioni1("def"))
> 
> Io mi aspettavo che il parametro "result" fosse locale alla funzione
> "permutazioni1" e che non mantenesse il suo contenuto tra una chiamata
> e l'altra della funzione il risultato dello script è:
> 
> ['abc', 'acb', 'bac', 'bca', 'cab', 'cba']
> -
> ['abc', 'acb', 'bac', 'bca', 'cab', 'cba', 'def', 'dfe', 'edf', 'efd',
> 'fde', 'fed']
> 
> Probabilmente non è il modo corretto per ottenere la lista delle
> permutazioni, ma qualcuno sa spiegarmi perché si comporta così e come
> eventualmente correggerlo?
> 
> Grazie, da una domenica uggiosa.
> 
> -- 
> 
> Daniele
> 
> www.matematicadolce.eu
> 
> Perché la scuola,
> invece di essere un luogo dove ci si allena a imparare,
> è un luogo dove si fa finta di sapere?
> _______
> Python mailing list
> Python@lists.python.it
> https://lists.python.it/mailman/listinfo/python

___
Python mailing list
Python@lists.python.it
https://lists.python.it/mailman/listinfo/python


[Python] Questo, da Python, non me lo sarei mai aspettato

2024-02-11 Per discussione Daniele Zambelli
Stavo studiando degli algoritmi per produrre la lista delle
permutazioni di una sequenza, ho modificato una funzione che ho
trovato su stackoverflow e mi sono imbattuto in un comportamento molto
strano (per me).
Lo script è questo:

def permutazioni1(head, tail='', result=[]):
if len(head) == 0:
result.append(tail)
else:
for i in range(len(head)):
permutazioni1(head[:i] + head[i+1:], tail + head[i])
else:
  return(result)

print(permutazioni1("abc"))

print('-')

print(permutazioni1("def"))

Io mi aspettavo che il parametro "result" fosse locale alla funzione
"permutazioni1" e che non mantenesse il suo contenuto tra una chiamata
e l'altra della funzione il risultato dello script è:

['abc', 'acb', 'bac', 'bca', 'cab', 'cba']
-
['abc', 'acb', 'bac', 'bca', 'cab', 'cba', 'def', 'dfe', 'edf', 'efd',
'fde', 'fed']

Probabilmente non è il modo corretto per ottenere la lista delle
permutazioni, ma qualcuno sa spiegarmi perché si comporta così e come
eventualmente correggerlo?

 Grazie, da una domenica uggiosa.

-- 

Daniele

www.matematicadolce.eu

Perché la scuola,
invece di essere un luogo dove ci si allena a imparare,
è un luogo dove si fa finta di sapere?
_______
Python mailing list
Python@lists.python.it
https://lists.python.it/mailman/listinfo/python


Re: [Python] [mkdocs][mkdocstring]

2023-12-14 Per discussione Luca
Ok, scusatemi.
alla fine era un discorso di file .env

pardon.

Il giorno mer 13 dic 2023 alle ore 16:51 Luca  ha
scritto:

> Salve a tutti,
> Qualcuno di voi ha esperienza con mkdocs e mkdocstrings ?
>
> Ho visto che mkdocstrings usa *griffe* per recuperare informazioni sui
> moduli quindi ho provato con il comando
>
> griffe dump -B -X  -s . apps.updates.admin
>
> il che mi ritorna il JSON con le informazioni sul modulo come previsto.
>
> Il problema è che una volta inserito il riferimento nel file .md mi da
> l’errore.
>
> ::: apps.updates.admin
>
> ERROR   -  mkdocstrings:
> ERROR   -  Error reading page 'apps/updates/admin.md':
> ERROR   -  Could not collect 'apps.updates.admin'
>
> Io ho provato a forzare le paths nella configurazione
>
>   - mkdocstrings:
>   default_handler: python
>   handlers:
> python:
>   paths: [.]
>
> e debuggando il loader prende in carico la path… ma comunque mi da errore.
>
> il tree è questo
>
> .
> ├── apps
> │   └── updates
> └── core
> ├── auth
> ├── database
> │   └── manager
> ├── health
> ├── logging
> ├── middlewares
> ├── migrations
> ├── routing
> └── utils
>
> dove sbaglio ?
> torno a sphinx (che in realtà era la prima scelta)?
> --
> Luca
>


-- 
Luca
___
Python mailing list
Python@lists.python.it
https://lists.python.it/mailman/listinfo/python


[Python] [mkdocs][mkdocstring]

2023-12-13 Per discussione Luca
Salve a tutti,
Qualcuno di voi ha esperienza con mkdocs e mkdocstrings ?

Ho visto che mkdocstrings usa *griffe* per recuperare informazioni sui
moduli quindi ho provato con il comando

griffe dump -B -X  -s . apps.updates.admin

il che mi ritorna il JSON con le informazioni sul modulo come previsto.

Il problema è che una volta inserito il riferimento nel file .md mi da
l’errore.

::: apps.updates.admin

ERROR   -  mkdocstrings:
ERROR   -  Error reading page 'apps/updates/admin.md':
ERROR   -  Could not collect 'apps.updates.admin'

Io ho provato a forzare le paths nella configurazione

  - mkdocstrings:
  default_handler: python
  handlers:
python:
  paths: [.]

e debuggando il loader prende in carico la path… ma comunque mi da errore.

il tree è questo

.
├── apps
│   └── updates
└── core
├── auth
├── database
│   └── manager
├── health
├── logging
├── middlewares
├── migrations
├── routing
└── utils

dove sbaglio ?
torno a sphinx (che in realtà era la prima scelta)?
-- 
Luca
___
Python mailing list
Python@lists.python.it
https://lists.python.it/mailman/listinfo/python


Re: [Python] Folium

2023-12-08 Per discussione Giuliano Curti
Il ven 8 dic 2023, 11:44 massimo di stefano  ha
scritto:

> Dai un occhio anche dash-leaflet
>
> https://www.dash-leaflet.com/
>

Certo, grazie.

Ciao,
Giuliano

>
>
> Il giorno ven 8 dic 2023 alle 10:43 Giuliano Curti 
> ha scritto:
>
>> Ciao a tutti,
>> qualcuno usa folium e vuole darmi le sue impressioni?
>>
>> Dopo qualche giorno a digerire un po' di javascript per gestire delle
>> mappe con leaflet, ho scoperto che esiste il progetto folium.
>>
>> L'idea di ritornare ad un ambiente a me più consono mi stuzzica. Le mie
>> esigenze sono molto limitate:
>> - una mappa di sfondo (meglio se più d'una fra cui scegliere)
>> - una, forse due, mappe di overlay
>> - un meccanismo di popup
>> mi bastano.
>>
>> Grazie, un saluto,
>> Giuliano
>> _______
>> Python mailing list
>> Python@lists.python.it
>> https://lists.python.it/mailman/listinfo/python
>>
> ___
> Python mailing list
> Python@lists.python.it
> https://lists.python.it/mailman/listinfo/python
>
___
Python mailing list
Python@lists.python.it
https://lists.python.it/mailman/listinfo/python


Re: [Python] Folium

2023-12-08 Per discussione massimo di stefano
Dai un occhio anche dash-leaflet

https://www.dash-leaflet.com/


Il giorno ven 8 dic 2023 alle 10:43 Giuliano Curti 
ha scritto:

> Ciao a tutti,
> qualcuno usa folium e vuole darmi le sue impressioni?
>
> Dopo qualche giorno a digerire un po' di javascript per gestire delle
> mappe con leaflet, ho scoperto che esiste il progetto folium.
>
> L'idea di ritornare ad un ambiente a me più consono mi stuzzica. Le mie
> esigenze sono molto limitate:
> - una mappa di sfondo (meglio se più d'una fra cui scegliere)
> - una, forse due, mappe di overlay
> - un meccanismo di popup
> mi bastano.
>
> Grazie, un saluto,
> Giuliano
> _______
> Python mailing list
> Python@lists.python.it
> https://lists.python.it/mailman/listinfo/python
>
___
Python mailing list
Python@lists.python.it
https://lists.python.it/mailman/listinfo/python


[Python] Folium

2023-12-08 Per discussione Giuliano Curti
Ciao a tutti,
qualcuno usa folium e vuole darmi le sue impressioni?

Dopo qualche giorno a digerire un po' di javascript per gestire delle mappe
con leaflet, ho scoperto che esiste il progetto folium.

L'idea di ritornare ad un ambiente a me più consono mi stuzzica. Le mie
esigenze sono molto limitate:
- una mappa di sfondo (meglio se più d'una fra cui scegliere)
- una, forse due, mappe di overlay
- un meccanismo di popup
mi bastano.

Grazie, un saluto,
Giuliano
___
Python mailing list
Python@lists.python.it
https://lists.python.it/mailman/listinfo/python


Re: [Python] [PYTHON] Verificare se una stringa contiene dei caratteri

2023-11-30 Per discussione Marco Beri
Il giorno gio 30 nov 2023 alle ore 18:02 Valerio Pachera 
ha scritto:

> Ciao a tutti, devo fare una cosa relativamente, verificare se in una
> stringa (*in qualsiasi punto*) ci sono certi caratteri.
>
> Voi cosa fareste?
>

p = re.compile('.*[xyz].*')

Ciao.
Marco.
___
Python mailing list
Python@lists.python.it
https://lists.python.it/mailman/listinfo/python


Re: [Python] [PYTHON] Verificare se una stringa contiene dei caratteri

2023-11-30 Per discussione Antonio Cavallo
Puoi usare:

>>> "ciao".count("x")
4


> On Nov 30, 2023, at 6:02 PM, Valerio Pachera  wrote:
> 
> Ciao a tutti, devo fare una cosa relativamente, verificare se in una stringa 
> (in qualsiasi punto) ci sono certi caratteri.
> 
> Questo restituisce null perché la x è alla fine della stringa e non 
> all'inizio.
> >>> p = re.compile('[xyz]')
> >>> re.match(p, 'ciaox')
> 
> Questo invece fa match perché la stringa è all'inizio.
> >>> re.match(p, 'xciao')
> 
> 
> Anche se non mi interessa l'output potrei usare
> >>> re.findall(p, 'ciaox')
> ['x']
> 
> e verificare se la lista è vuota o meno.
> 
> Voi cosa fareste?
>  
> 
> 
> ___
> Python mailing list
> Python@lists.python.it
> https://lists.python.it/mailman/listinfo/python

___
Python mailing list
Python@lists.python.it
https://lists.python.it/mailman/listinfo/python


Re: [Python] [PYTHON] Verificare se una stringa contiene dei caratteri

2023-11-30 Per discussione Federico Fissore
Ciao

Hai provato p.search(“ciaox”) ?

https://docs.python.org/3/library/re.html#re.Pattern.search

Federico ___
Python mailing list
Python@lists.python.it
https://lists.python.it/mailman/listinfo/python


[Python] [PYTHON] Verificare se una stringa contiene dei caratteri

2023-11-30 Per discussione Valerio Pachera
Ciao a tutti, devo fare una cosa relativamente, verificare se in una
stringa (*in qualsiasi punto*) ci sono certi caratteri.

Questo restituisce null perché la x è alla fine della stringa e non
all'inizio.
>>> p = re.compile('[xyz]')
>>> re.match(p, 'ciaox')

Questo invece fa match perché la stringa è all'inizio.
>>> re.match(p, 'xciao')


Anche se non mi interessa l'output potrei usare
>>> re.findall(p, 'ciaox')
['x']

e verificare se la lista è vuota o meno.

Voi cosa fareste?
_______
Python mailing list
Python@lists.python.it
https://lists.python.it/mailman/listinfo/python


Re: [Python] Roberto Python

2023-11-21 Per discussione Daniele Zambelli
Il giorno ven 17 nov 2023 alle ore 12:30 Roberto Mazza
 ha scritto:
>
> Ciao sono una persona disabile che vorrebbe inserirsi nel mondo del lavoro 
> come programmatore Python e machine learning avrei bisogno di due lezioni a 
> settimana di un ora ciascuno , qualcuno potrebbe aiutarmi?

Forse la strada potrebbe essere quella di seguire un tutorial ad
esempio (su un motore di ricerca parole chiave Python tutorial):

https://docs.python.org/3/tutorial/index.html

e nel frattempo provare a risolvere, con Python, dei problemi, anche
semplici, che ti vengono in mente.

Eventuali dubbi o difficoltà possono essere postate su questa lista,
qualche aiuto lo si riceve sempre.

Ciao.

-- 

Daniele

www.matematicadolce.eu

Perché la scuola,
invece di essere un luogo dove ci si allena a imparare,
è un luogo dove si fa finta di sapere?
___
Python mailing list
Python@lists.python.it
https://lists.python.it/mailman/listinfo/python


[Python] Roberto Python

2023-11-17 Per discussione Roberto Mazza
Ciao sono una persona disabile che vorrebbe inserirsi nel mondo del lavoro
come programmatore Python e machine learning avrei bisogno di due lezioni a
settimana di un ora ciascuno , qualcuno potrebbe aiutarmi?
mio indirizzo email:
roberto.ma...@informaticisenzafrontiere.org

Grazie
Roberto
___
Python mailing list
Python@lists.python.it
https://lists.python.it/mailman/listinfo/python


[Python] Roberto Lezione python e machine learning

2023-11-17 Per discussione Roberto Mazza
Ciao sono una persona disabile e vorrei insermi nel mondo del lavoro
come programmatore python e machine learning avrei bisogno di due
lezione a settimana di un ora qualcuno è disposto ad aiutarmi?
Grazie
Roberto
___
Python mailing list
Python@lists.python.it
https://lists.python.it/mailman/listinfo/python


Re: [Python] Mail o WA con python?

2023-09-19 Per discussione Giuliano Curti
Il mar 19 set 2023, 16:52 Massimiliano Tornati  ha
scritto:

Ciao Massimiliano,

Ciao
> io ho usato pywhatkit seguendo il tutorial del link:
> Automate WhatsApp Messages With Python using Pywhatkit module -
> GeeksforGeeks
> <https://www.geeksforgeeks.org/automate-whatsapp-messages-with-python-using-pywhatkit-module/>
> a me ha funzionato abbastanza bene.
>

Preso nota, grazie

>
> A presto
>

Grazie, ciao,
Giuliano
___________
Python mailing list
Python@lists.python.it
https://lists.python.it/mailman/listinfo/python


Re: [Python] Mail o WA con python?

2023-09-19 Per discussione Massimiliano Tornati
Ciao
io ho usato pywhatkit seguendo il tutorial del link:
Automate WhatsApp Messages With Python using Pywhatkit module -
GeeksforGeeks
<https://www.geeksforgeeks.org/automate-whatsapp-messages-with-python-using-pywhatkit-module/>
a me ha funzionato abbastanza bene.

A presto

Il giorno lun 18 set 2023 alle ore 23:07 Giuliano Curti <
giulian...@gmail.com> ha scritto:

> Ciao a tutti,
> ho una domanda borderline; ho guardato l'archivio fino a dicembre 2019, ma
> non ho riscontrato altri post sul tema e quindi provo.
>
> Sto costruendo una piccola procedura di controllo di una situazione
> remota; vorrei corredarla di una funzione di segnalazione in caso di
> allerta; da qui la prima domanda: mi consigliate l'uso di mail o di msg WA?
>
> Nel primo caso userei la libreria smtplib di cui ho visto in rete diversi
> articoli;
> nel caso la scelta cadesse verso WA mi piacerebbe sapere quale libreria
> adottare fra le diverse (pywhatkit, whatdesk, franz, ecc.) che ho
> incrociato.
>
> Grazie, saluti,
> Giuliano
>
> _______
> Python mailing list
> Python@lists.python.it
> https://lists.python.it/mailman/listinfo/python
>


-- 


mobile phone : +39 348 002 8107
tel: +39 0721 1630292
Per appuntamento: https://zcal.co/massimiliano_tornati

TORNATI PROJECT SRL
via Callegari 9-11
61122 Pesaro (PU)
P.IVA/C.F.  02533270415
site: TORNATI PROJECT <http://www.tornatiproject.com>
site:https://itofood.com/

<https://api.whatsapp.com/send/?phone=393496736011=%F0%9F%98%8ATornatiProject%C2%A0%20HERE!!!%20how%20can%20help%20you%3F>

<https://api.whatsapp.com/send?phone=393480028107=Hello%21+%0A+Can+you+help+me%3F+>

e-mail t...@tornatiproject.com
Whatapp:https://wa.me/message/G6CHK7323ZODI1

The information contained in this e-mail and any attachment is
confidential. It is intended only for the named addressee(s).
If you are not the named addressee(s) please notify us immediately at the
e-mail  t...@tornatiproject.com and then destroy this message.The copy or
distribution of the contents to any other person other than the intended
addressee(s) is strictly prohibited and will be punished according to  the
relevant laws on privacy and Intellectual Property.

Think before you print!
Before you print, please consider if it is necessary. Printing uses
electricity, ink and paper.
___
Python mailing list
Python@lists.python.it
https://lists.python.it/mailman/listinfo/python


[Python] Mail o WA con python?

2023-09-18 Per discussione Giuliano Curti
Ciao a tutti,
ho una domanda borderline; ho guardato l'archivio fino a dicembre 2019, ma
non ho riscontrato altri post sul tema e quindi provo.

Sto costruendo una piccola procedura di controllo di una situazione remota;
vorrei corredarla di una funzione di segnalazione in caso di allerta; da
qui la prima domanda: mi consigliate l'uso di mail o di msg WA?

Nel primo caso userei la libreria smtplib di cui ho visto in rete diversi
articoli;
nel caso la scelta cadesse verso WA mi piacerebbe sapere quale libreria
adottare fra le diverse (pywhatkit, whatdesk, franz, ecc.) che ho
incrociato.

Grazie, saluti,
Giuliano
___
Python mailing list
Python@lists.python.it
https://lists.python.it/mailman/listinfo/python


Re: [Python] Ringraziamento (era: Consiglio su web framework)

2023-09-11 Per discussione Giuliano Curti
Il lun 11 set 2023, 09:59 Yuri  ha scritto:

Ciao Yuri,

In alternativa a certbot puoi usare dehydrated [1]. Se hai un webserver,
> ricordati che al cambio certificato entro qualche giorno devi fargli
> rileggere il file di conf per recepire il nuovo certificato. Oppure puoi
> automatizzare la catena web (indirizzo web, gestione url, redirect,
> certificati ssl, etc) con traefik [2] ma forse va un po' oltre le tue
> esigenze e basta qualche script di riavvio periodico.
>
> [1]: https://github.com/dehydrated-io/dehydrated/
> [2]: https://traefik.io/traefik/


Non li conoscevo, guarderò, grazie.
Ciao,
Giuliano
_______
Python mailing list
Python@lists.python.it
https://lists.python.it/mailman/listinfo/python


Re: [Python] Ringraziamento (era: Consiglio su web framework)

2023-09-11 Per discussione Yuri
In alternativa a certbot puoi usare dehydrated [1]. Se hai un webserver, 
ricordati che al cambio certificato entro qualche giorno devi fargli 
rileggere il file di conf per recepire il nuovo certificato. Oppure puoi 
automatizzare la catena web (indirizzo web, gestione url, redirect, 
certificati ssl, etc) con traefik [2] ma forse va un po' oltre le tue 
esigenze e basta qualche script di riavvio periodico.


[1]: https://github.com/dehydrated-io/dehydrated/
[2]: https://traefik.io/traefik/

Il 09/09/23 01:45, Andrea D'Amore ha scritto:

On Thu, 7 Sept 2023 at 14:30, Giuliano Curti  wrote:

in attesa di affrontare, e risolvere spero, il problema certificati e passare a 
https

letsencrypt [1] che puoi istallare sul sito del server con certbot [2]
e poi passi a gunicorn le opzioni `keyfile`, `certfile` e `ca_certs`
usando come valori i nomi dei file che ti ha istallato certbot.

[1]: https://letsencrypt.org/
[2]: https://certbot.eff.org/
[3]: https://docs.gunicorn.org/en/stable/settings.html#ssl




--
A.
___
Python mailing list
Python@lists.python.it
https://lists.python.it/mailman/listinfo/python

___
Python mailing list
Python@lists.python.it
https://lists.python.it/mailman/listinfo/python


Re: [Python] Ringraziamento (era: Consiglio su web framework)

2023-09-08 Per discussione Andrea D'Amore
On Thu, 7 Sept 2023 at 14:30, Giuliano Curti  wrote:
>in attesa di affrontare, e risolvere spero, il problema certificati e passare 
>a https

letsencrypt [1] che puoi istallare sul sito del server con certbot [2]
e poi passi a gunicorn le opzioni `keyfile`, `certfile` e `ca_certs`
usando come valori i nomi dei file che ti ha istallato certbot.

[1]: https://letsencrypt.org/
[2]: https://certbot.eff.org/
[3]: https://docs.gunicorn.org/en/stable/settings.html#ssl




--
A.
___
Python mailing list
Python@lists.python.it
https://lists.python.it/mailman/listinfo/python


[Python] Ringraziamento (era: Consiglio su web framework)

2023-09-07 Per discussione Giuliano Curti
Ciao,

tempo fa (maggio 2023) avevo rotto per chiedere consiglio sull'argomento.

Non è una grande restituzione questa mia, ma volevo informare che poi la
mia scelta è caduta su BOTTLE.py, che mi era stato segnalato qui, al quale
ho aggiunto GUNICORN che dovrebbe essere più performante (multithreading)
rispetto al webserver nativo.

Ho pubblicato il sito per piccoli periodi sperimentali in attesa di
affrontare, e risolvere spero, il problema certificati e passare a https;
in quell'occasione tornerò sicuramente a chiedere suggerimenti e consigli.

Volevo ringraziare tutti per la pazienza e soprattutto l'aiuto a risolvere
un problema per me altrimenti arduo.

Un affettuoso saluto,
Giuliano
___
Python mailing list
Python@lists.python.it
https://lists.python.it/mailman/listinfo/python


Re: [Python] [PYTHON] Suggerimento framework

2023-07-27 Per discussione Andrea D'Amore
On Wed, 26 Jul 2023 at 23:30, Giorgio Zoppi  wrote:
> FastAPI uberalles ..testability gratis...swagger batteries 
> included...scalability paragonabile a golang..modelli con pydantic 2.0 che e 
> scritto in rust...tutto pronto..

È il secondo suggerimento per fastapi, ma per uno che ha "poco
background di programmazione web" e vuole essenzialmente mettere uno
script batch dietro un server web ha senso?



-- 
A.
___
Python mailing list
Python@lists.python.it
https://lists.python.it/mailman/listinfo/python


Re: [Python] [PYTHON] Suggerimento framework

2023-07-26 Per discussione Giorgio Zoppi
FastAPI uberalles ..testability gratis...swagger batteries
included...scalability paragonabile a golang..modelli con pydantic 2.0 che
e scritto in rust...tutto pronto..

Il Mar 25 Lug 2023, 21:42 Giuliano Curti  ha scritto:

> On 7/24/23, Valerio Pachera  wrote:
> > Il giorno mer 19 lug 2023 alle ore 13:04 Marco Giusti <
> > marco.giu...@posteo.de> ha scritto:
> >
> >> Io userei Flask, e' semplice da usare e completo
>
> (nelle tue stesse condizioni) qualche settimana fa, su consiglio di
> qualcuno della lista che ringrazio, ho approcciato Bottle.py; non
> saprei paragonarlo a Flask, però sicuramente molto semplice e di
> facile apprendimento(*)(**).
>
> Altro aspetto che ho apprezzato, ma che probabilmente vale anche per
> Flask, è la possibilità di usarlo con web server diversi, ad es. oltre
> a quello interno ,waitress e gunicorn ((fra gli altri) con una
> semplice opzione del comando run().
>
> > Grazie della risposta.
> > Sto studiando questo framework.
>
> (*) unica difficoltà l'impossibilità di richiamare un documento
> (immagine o altro) all'interno di una pagina html; ho trovato cioè
> difficoltà a capire la differenza, di cui parla il manuale di
> Bottle.py senza però spiegarla, fra "working directory" e "root
> directory"; ho recentemente trovato una indicazione in rete e l'ho
> seguita con successo, però un pò da fessacchiotto, senza capire bene
> perchè e come: approfondirò :-)
>
> (**) al contrario ho trovato molto comoda la funzione di %include()
> gestita dai template; i javascript mi davano noie, il meccanismo di
> template mi ha risolto il problema.
>
> ciao,
> Giuliano
> ___
> Python mailing list
> Python@lists.python.it
> https://lists.python.it/mailman/listinfo/python
>
___
Python mailing list
Python@lists.python.it
https://lists.python.it/mailman/listinfo/python


Re: [Python] [PYTHON] Suggerimento framework

2023-07-25 Per discussione Giuliano Curti
On 7/24/23, Valerio Pachera  wrote:
> Il giorno mer 19 lug 2023 alle ore 13:04 Marco Giusti <
> marco.giu...@posteo.de> ha scritto:
>
>> Io userei Flask, e' semplice da usare e completo

(nelle tue stesse condizioni) qualche settimana fa, su consiglio di
qualcuno della lista che ringrazio, ho approcciato Bottle.py; non
saprei paragonarlo a Flask, però sicuramente molto semplice e di
facile apprendimento(*)(**).

Altro aspetto che ho apprezzato, ma che probabilmente vale anche per
Flask, è la possibilità di usarlo con web server diversi, ad es. oltre
a quello interno ,waitress e gunicorn ((fra gli altri) con una
semplice opzione del comando run().

> Grazie della risposta.
> Sto studiando questo framework.

(*) unica difficoltà l'impossibilità di richiamare un documento
(immagine o altro) all'interno di una pagina html; ho trovato cioè
difficoltà a capire la differenza, di cui parla il manuale di
Bottle.py senza però spiegarla, fra "working directory" e "root
directory"; ho recentemente trovato una indicazione in rete e l'ho
seguita con successo, però un pò da fessacchiotto, senza capire bene
perchè e come: approfondirò :-)

(**) al contrario ho trovato molto comoda la funzione di %include()
gestita dai template; i javascript mi davano noie, il meccanismo di
template mi ha risolto il problema.

ciao,
Giuliano
_______
Python mailing list
Python@lists.python.it
https://lists.python.it/mailman/listinfo/python


[Python] Python per bambini

2023-07-25 Per discussione Lello Masucci
Ho scritto un libro che parla di due sto utilizzo di Python.

Lello Masucci
artista
i...@lellomasucci.net
www.lellomasucci.net
www.lellomasucciartstudio.it
www.porsianumerica.net
https://m.facebook.com/corso.professionale.pittura.olio/___
Python mailing list
Python@lists.python.it
https://lists.python.it/mailman/listinfo/python


Re: [Python] [PYTHON] Suggerimento framework

2023-07-24 Per discussione Valerio Pachera
Il giorno mer 19 lug 2023 alle ore 13:04 Marco Giusti <
marco.giu...@posteo.de> ha scritto:

> Io userei Flask, e' semplice da usare e completo
>

Grazie della risposta.
Sto studiando questo framework.
___
Python mailing list
Python@lists.python.it
https://lists.python.it/mailman/listinfo/python


[Python] Problemi con Bottle.py

2023-07-23 Per discussione Giuliano Curti
Ciao a tutti,
ho ancora bisogno del vs aiuto perchè ho l'impressione di affogare in
un bicchier d'acqua.

Il problema riguarda l'HTTP, ma lo posto qui, sul filo del lecito,
perchè tocca un'apparente anomalia fra HTTP puro e HTTP servito da
Bottle.

Temo consista in quella differenza fra "working directory" e "root
directory" citata anche in un manuale di Bottle che però non dà,
ahimè, ulteriori informazioni.

In sintesi,
1) ho la struttura Web -+-> myApp.py
+-> html
+-> img
2) in html ho il file home.html che carica una immagine della cartella
img (... href='../img/pincoPallo.jpg'...)
3) con doppio click sul file mi si apre il browser (Chromium) CON
l'immagine caricata
4) se lancio lo script.py che ha come root la pagine home.html,
l'immagine NON compare; i sorgenti delle due pagine sono identici
(infatti è la stessa pagina), però una con l'immagine e l'altra senza.

Ho provato 'href='img/pincoPallo.jpg'; ho provato anche
'href='pincoPallo.jpg' e 'href='html/pincoPallo.jpg' con l'immagine
nella stessa cartella html; niente, non riesco venirne a capo.
Se qualcuno riesce a darmi uno spunto di indagine gli sono enormemente grato(*).

Grazie, saluti,
Giuliano Curti

(*) è la continuazione logica di un post di qualche tempo fa su
framework web; alla fine ho optato per Bottle.py (grazie a chi me lo
ha segnalato) e da lì ho scoperto un mondo di framework simili e di
web server per me inimmaginabile :-)
___________
Python mailing list
Python@lists.python.it
https://lists.python.it/mailman/listinfo/python


Re: [Python] [PYTHON] Suggerimento framework

2023-07-19 Per discussione Carlos Catucci
Avrei consigliato di usare aiohttp negli ultimi tre o quattro anni e fino a
> qualche settimana fa (prima ancora, Flask) ma ormai per me non esiste più
> niente oltre FastAPI.
>
> Usa FastAPI! :P
>

Concordo su FastApi, leggerissimo, essenziale, fa quel che ti serve (e
tanto altro)

Carlos
___
Python mailing list
Python@lists.python.it
https://lists.python.it/mailman/listinfo/python


Re: [Python] [PYTHON] Suggerimento framework

2023-07-19 Per discussione flandero
On Wed, 19 Jul 2023, 14:06 Marco Giusti,  wrote:

> Io userei Flask, e' semplice da usare e completo
>


Avrei consigliato di usare aiohttp negli ultimi tre o quattro anni e fino a
qualche settimana fa (prima ancora, Flask) ma ormai per me non esiste più
niente oltre FastAPI.

Usa FastAPI! :P


> On 19.07.2023 12:55, Valerio Pachera wrote:
> > Buongiorno a tutti, vi chiedo un consiglio:
> >
> > vorrei realizzare una pagina web che NON richiede autenticazione,
> > dove posso fare upload di un file
> > deve esserci un controllo sulla dimensione del file
> > una volta caricato il file lato server deve essere eseguito con
> > comando che lo leggere e ritorna del testo come output;
> > l'output deve essere visualizzato nella pagina.
> >
> > Ho un discreta confidenza con python ma poco background di
> > programmazione web.
> >
> > Che approccio / framework mi consigliate?
> >
> > Grazie.
> >
> > ___
> > Python mailing list
> > Python@lists.python.it
> > https://lists.python.it/mailman/listinfo/python
>
> _______
> Python mailing list
> Python@lists.python.it
> https://lists.python.it/mailman/listinfo/python
>
___
Python mailing list
Python@lists.python.it
https://lists.python.it/mailman/listinfo/python


Re: [Python] [PYTHON] Suggerimento framework

2023-07-19 Per discussione Marco Giusti

Io userei Flask, e' semplice da usare e completo

On 19.07.2023 12:55, Valerio Pachera wrote:

Buongiorno a tutti, vi chiedo un consiglio:

vorrei realizzare una pagina web che NON richiede autenticazione,
dove posso fare upload di un file
deve esserci un controllo sulla dimensione del file
una volta caricato il file lato server deve essere eseguito con
comando che lo leggere e ritorna del testo come output;
l'output deve essere visualizzato nella pagina.

Ho un discreta confidenza con python ma poco background di
programmazione web.

Che approccio / framework mi consigliate?

Grazie.

___
Python mailing list
Python@lists.python.it
https://lists.python.it/mailman/listinfo/python


___
Python mailing list
Python@lists.python.it
https://lists.python.it/mailman/listinfo/python


[Python] [PYTHON] Suggerimento framework

2023-07-19 Per discussione Valerio Pachera
Buongiorno a tutti, vi chiedo un consiglio:

vorrei realizzare una pagina web che NON richiede autenticazione,
dove posso fare upload di un file
deve esserci un controllo sulla dimensione del file
una volta caricato il file lato server deve essere eseguito con comando che
lo leggere e ritorna del testo come output;
l'output deve essere visualizzato nella pagina.

Ho un discreta confidenza con python ma poco background di programmazione
web.

Che approccio / framework mi consigliate?

Grazie.
___
Python mailing list
Python@lists.python.it
https://lists.python.it/mailman/listinfo/python


Re: [Python] [SMTPLIB] 550-5.7.26 This mail is unauthenticated

2023-06-15 Per discussione Luca
Grazie mille.

farò indagini.

Il giorno mer 14 giu 2023 alle ore 18:36 ㎝  ha scritto:

> ciao luca!
>
> Il giorno mer 14 giu 2023 alle ore 17:33 Luca  ha
> scritto:
> > Voi avete qualche idea ?
>
> non so se c'entra, ma libero.it è uno dei pochi server postali
> pubblici ad avere `-all` nello spf1 invece del più permissivo `~all`
>
> ```
> $ dig +short libero.it txt | grep spf
> "v=spf1 ip4:213.209.8.0/21 ip4:213.209.6.249/32 ip4:213.209.17.209/32
> ip4:213.209.17.246/32 ip4:213.209.27.51/32 ip4:213.209.27.52/32
> ip4:195.140.184.104/29 ip4:195.140.184.112 ip4:195.140.184.231/32
> ip4:195.140.184.232/29" " ip4:195.140.184.240/29 ip4:141.206.150.96/29
> ip4:141.206.150.48/29 include:mail.zendesk.com include:t.contactlab.it
> -all"
> ```
>
> e questo ad esempio causa non pochi problemi con le mailing list.
>
> ㎝
>
> --
>  THE -WARE LICENSE (Revision ㊷):
> <㎝.> wrote this . As long as you retain this notice you can
> do whatever you want with this stuff. If we meet some day, and you
> think this stuff is worth it, you can buy me a  in return. — ㎝
> _______
> Python mailing list
> Python@lists.python.it
> https://lists.python.it/mailman/listinfo/python
>


-- 
Luca
___
Python mailing list
Python@lists.python.it
https://lists.python.it/mailman/listinfo/python


Re: [Python] Ricerca in un dizionario.

2023-06-15 Per discussione Luca
Qualcosa del tipo ?

def find_granpa(obj, what):
what = what.lower()
return {k: v for k, v in obj.items() if (what in k.lower() or what in
str(v).lower())}

Il giorno mer 14 giu 2023 alle ore 22:02 Gabriele Battaglia <
iz4...@libero.it> ha scritto:

> Ciao carissimo Giovanni, ben riletto.
>
> No, hai capito bene. Grazie.
>
> ___
> Python mailing list
> Python@lists.python.it
> https://lists.python.it/mailman/listinfo/python
>


-- 
Luca
___________
Python mailing list
Python@lists.python.it
https://lists.python.it/mailman/listinfo/python


Re: [Python] Ricerca in un dizionario.

2023-06-14 Per discussione Gabriele Battaglia

Ciao carissimo Giovanni, ben riletto.

No, hai capito bene. Grazie.

___
Python mailing list
Python@lists.python.it
https://lists.python.it/mailman/listinfo/python


Re: [Python] Ricerca in un dizionario.

2023-06-14 Per discussione Gabriele Battaglia

Ciao carissimo Giovanni, ben riletto.

No, hai capito bene. Grazie.

___
Python mailing list
Python@lists.python.it
https://lists.python.it/mailman/listinfo/python


Re: [Python] [SMTPLIB] 550-5.7.26 This mail is unauthenticated

2023-06-14 Per discussione
ciao luca!

Il giorno mer 14 giu 2023 alle ore 17:33 Luca  ha scritto:
> Voi avete qualche idea ?

non so se c'entra, ma libero.it è uno dei pochi server postali
pubblici ad avere `-all` nello spf1 invece del più permissivo `~all`

```
$ dig +short libero.it txt | grep spf
"v=spf1 ip4:213.209.8.0/21 ip4:213.209.6.249/32 ip4:213.209.17.209/32
ip4:213.209.17.246/32 ip4:213.209.27.51/32 ip4:213.209.27.52/32
ip4:195.140.184.104/29 ip4:195.140.184.112 ip4:195.140.184.231/32
ip4:195.140.184.232/29" " ip4:195.140.184.240/29 ip4:141.206.150.96/29
ip4:141.206.150.48/29 include:mail.zendesk.com include:t.contactlab.it
-all"
```

e questo ad esempio causa non pochi problemi con le mailing list.

㎝

-- 
 THE -WARE LICENSE (Revision ㊷):
<㎝.> wrote this . As long as you retain this notice you can
do whatever you want with this stuff. If we meet some day, and you
think this stuff is worth it, you can buy me a  in return. — ㎝
___________
Python mailing list
Python@lists.python.it
https://lists.python.it/mailman/listinfo/python


[Python] [SMTPLIB] 550-5.7.26 This mail is unauthenticated

2023-06-14 Per discussione Luca
Buongiorno a tutti,

Da qualche giorno mi segnalano l'errore in oggetto legato ad un mio
clientino smtp.

L'errore si presenta con alcuni mittenti, e però non si presenta quando
usano outlook.

mioclient: l...@zimbra.it > luca...@gmail.com OK
mioclient: luca800gmail.com > luca...@gmail.com OK
mioclient: i...@cliente.libero.it > luca...@gmail.com KO
outlook: i...@cliente.libero.it > luca...@gmail.com OK

Io ora direi, come anche suggerito in vari articoli, che il problema è del
server di posta del cliente/mittente.
Però il fatto che che outlook vada, e con il mio client no, mi fa pensare
che manchi qualcosa al mio client.

... qualche tempo fa ebbi un problema simile per il *Message-id* qualche
server non lo generava quindi ora la genero io...
magari è qualcosa del genere.

Voi avete qualche idea ?

Intanto vi ringrazio in anticipo e torno a googlare.
-- 
Luca
___
Python mailing list
Python@lists.python.it
https://lists.python.it/mailman/listinfo/python


Re: [Python] Ricerca in un dizionario.

2023-06-14 Per discussione Carlos Catucci
perdonami tu hai una situazione tipo:

{
  'A': ['A','B','D'],
  'B': ['E','C','H'],
  'C': ['B','R','T'],
}

e la funzione deve tornare la chiave 'C' perche' uguale alla stringa
cercata e la chiave 'B' perche' nella lista dei valori e' contenuta 'C',
corretto?

Carlos
-- 
EZLN ... Para Todos Todo ... Nada para nosotros
___
Python mailing list
Python@lists.python.it
https://lists.python.it/mailman/listinfo/python


Re: [Python] Ricerca in un dizionario.

2023-06-14 Per discussione Giovanni Porcari


> Il giorno 28 mag 2023, alle ore 20:41, Gabriele Battaglia  
> ha scritto:
> 
> Ciao e grazie in anticipo per il vostro tempo.
> 
> Vi sottopongo una semplice situazione.
> 
> Io so come risolverla, ma vi chiedo se c'è un modo più elegante del mio, che 
> mi pare bruttino.
> 
> 
> Non vi propongo del codice, rimaniamo a livello di descrizione, poi se non ci 
> riesco, magari arrivamo anche a degli esempi di codice.
> 
> 
> Ho un dizionario. Ci sono tutte le chiavi naturalmente, e i valori sono 
> lunghe liste che contengono diversi tipi di dati, soprattutto stringhe e 
> booleani.
> 
> 
> Ho una chiave di ricerca, una stringa. Devo passarla ad una funzione e questa 
> mi deve tornare la prima chiave del dizionario se, la parola che cerco è 
> compresa nella chiave stessa o in uno degli elementi contenuti nella lista di 
> valori di quella chiave.
> 
> 
> Esempio, se cerco "nonno", la funzione mi deve tornare sia
> 

io farei:

def trova(miodict,chiave):
   return  { k:v for k, v in miodict.items() if k==chiave or chiave in v }

ma forse ho capito male il problema.

Giovanni Porcari
giovanni.porc...@softwell.it



_______
Python mailing list
Python@lists.python.it
https://lists.python.it/mailman/listinfo/python


Re: [Python] Un paio di domande (Era: Consiglio su web framework)

2023-06-13 Per discussione Giuliano Curti
Il mar 13 giu 2023, 12:42 Davide Muzzarelli  ha
scritto:

Ciao Davide, grazie

On 13/06/23 09:18, Giuliano Curti wrote:
> > 1) .
>
> .
>
> Qui puoi approfondire per le connessioni concorrenti:
>
> https://www.sqlite.org/cgi/src/doc/begin-concurrent/doc/begin_concurrent.md


Vado subito a vedere :-)

E' meglio usare le connessioni in modalità Context Manager: ci pensa il
> context manager ad effettuare il commit .
>

Del commit penso di non aver bisogno, all'utente consento solo il SELECT
(l'utente in realtà compila dei campi e l'istruzione Ca compilo io).

>
> Gentili saluti,
> Davide Muzzarelli
>

Grazie, ciao,
Giuliano
___________
Python mailing list
Python@lists.python.it
https://lists.python.it/mailman/listinfo/python


Re: [Python] Un paio di domande (Era: Consiglio su web framework)

2023-06-13 Per discussione Davide Muzzarelli

On 13/06/23 09:18, Giuliano Curti wrote:

1) Connessione db.
Nel mio sistema devo interrogare il DB (eseguo solo interrogazioni 
SELECT) in due punti, due pagine diverse; mi chiedo se sia meglio 
un'apertura iniziale o se al contrario sia meglio aprire e chiudere il 
db quando richiesto?


Scusami, mi sono accorto ora che usi SQLite.

Con SQLite le connessioni in scrittura aprono il database bloccando 
altre connessioni, per cui se hai più processi o thread è necessario 
aprirle e chiuderle ad ogni uso.


Qui puoi approfondire per le connessioni concorrenti:

https://www.sqlite.org/cgi/src/doc/begin-concurrent/doc/begin_concurrent.md

E' meglio usare le connessioni in modalità Context Manager: ci pensa il 
context manager ad effettuare il commit appena finito. Fintanto che il 
commit non è fatto i dati non vengono salvati effettivamente su disco.


Qui hai un esempio:

https://docs.python.org/3/library/sqlite3.html#sqlite3-connection-context-manager

Gentili saluti,
Davide Muzzarelli
___
Python mailing list
Python@lists.python.it
https://lists.python.it/mailman/listinfo/python


Re: [Python] Un paio di domande (Era: Consiglio su web framework)

2023-06-13 Per discussione Davide Muzzarelli

On 13/06/23 09:18, Giuliano Curti wrote:

1) Connessione db.
Nel mio sistema devo interrogare il DB (eseguo solo interrogazioni 
SELECT) in due punti, due pagine diverse; mi chiedo se sia meglio 
un'apertura iniziale o se al contrario sia meglio aprire e chiudere il 
db quando richiesto?


Sarebbe meglio avere un pool di connessioni, così si occupa esso ad 
aprirle solo quando necessario.


Una mia sensazione da niubbo mi fa pensare che meno aperto sta il db, 
meno possibilità di corruzione dei dati, quindi opterei per la seconda 
(apertura e chiusura ogni volta) però è magari una mia sindrome da 
ignoranza.


Non c'è mai corruzione dei dati, ci pensa il DB ad evitarle.

Aprire una connessione è più costoso che usarne una già aperta. La 
migliore ottimizzazione è appunto un pool di connessioni, piccolo o 
grande che sia.



2) Cookies.
Conosco poco l'argomento, ma penso di non doverne far uso e quindi non 
dovrei avere bisogno di segnalazioni all'utente e di richiedere / 
ottenere autorizzazioni.


Se apri il cookie per il solo login allora non hai bisogno del banner, 
inserirai la conferma per la privacy in fase di registrazione dell'utente.


Se apri però un qualsiasi cookie senza che l'utente abbia fatto 
espressamente login allora hai bisogno del banner.


Hai bisogno del banner anche se carichi risorse da altre sorgenti, come 
ad esempio: Google Fonts, CDN di terzi, Google Analytics.


Gentili saluti,
Davide Muzzarelli
___
Python mailing list
Python@lists.python.it
https://lists.python.it/mailman/listinfo/python


[Python] Un paio di domande (Era: Consiglio su web framework)

2023-06-13 Per discussione Giuliano Curti
Ciao a tutti,
rispolvero questi vecchio thread per un paio di informazioni che vi devo
chiedere.
Seguendo i vostri consigli sono andato avanti nel mio progetto e sotto,
così vanno a vederlo solo gli interessati, metto qualche notizia sul lavoro
fatto.

Le domande (non specifiche python, ma python è la marmellata che coinvolge
tutto, quindi spero qui tollerate :-) che volevo fare sono:

1) Connessione db.
Nel mio sistema devo interrogare il DB (eseguo solo interrogazioni SELECT)
in due punti, due pagine diverse; mi chiedo se sia meglio un'apertura
iniziale o se al contrario sia meglio aprire e chiudere il db quando
richiesto?
Non essendoci una fine della procedura non c'è in effetti una chiusura del
db, penso venga chiuso in automatico all'interruzione della procedura
(bottle ha solo la funzione run() interrotta con un ctl-C).
Una mia sensazione da niubbo mi fa pensare che meno aperto sta il db, meno
possibilità di corruzione dei dati, quindi opterei per la seconda (apertura
e chiusura ogni volta) però è magari una mia sindrome da ignoranza.

2) Cookies.
Conosco poco l'argomento, ma penso di non doverne far uso e quindi non
dovrei avere bisogno di segnalazioni all'utente e di richiedere / ottenere
autorizzazioni.
Ci sono eventualmente considerazioni normative e/o funzionali che
consigliano una strada diversa?

Grazie della pazienza, un saluto,
Giuliano

--
Lavoro fatto (cerco di essere breve, però disponibile ad ogni domanda).
Ricordo che il mio obiettivo era trasformare elenchi di documenti (atti
comunali) da un formato PDF ad un formato sqlite, quindi interrogabile, e
successivamente offrire liberamente la consultazione online.

La prima parte è essenzialmente conclusa; ho messo a punto 4+ script per
1) lettura degli elenchi PDF (PyPDF2)
2) estrazione delle informazioni significative (re)
3) validazione dei dati
4) importazione nel DB (sqlite3).

Il passo 2 è costituito a sua volta da più script perché gli elenchi
cambiano nel tempo; anziché scrivere un'unica procedura per coprire tutti i
casi ho preferito scrivere piccole procedure ad hoc, dettaglio cmq
marginale.

Sto affrontando la seconda parte e qui ho scelto, come indicato da molti di
voi, bottle.py.
A questo punto arrivano le domande fatte sopra.
___
Python mailing list
Python@lists.python.it
https://lists.python.it/mailman/listinfo/python


Re: [Python] [META] Aiuto per gestione Mailman

2023-06-06 Per discussione Patrick Arminio
On Tue, Jun 6, 2023 at 11:35 AM Andrea D'Amore  wrote:

> On Thu, 1 Jun 2023 at 11:24, Patrick Arminio 
> wrote:
> > Stiamo pensando di fare il passaggio del server email di python.it su
> Google Workspace […]
> > dando uno sguardo al server sembra
> > che mailman sia appunto configurato con postfix (quindi spostando il
> server mail su google
> > romperà le liste)
>
> Nel senso che temi la sostituzione di postfix con gsmtpd di Google?
>
Non sono per nulla esperto, ma vorrei essere sicuro di migrare il server
mail di python.it
a google e comunque continuare ad usare mailman

Usando Google Workspace non dovreste usare qualcosa come Groups su
> Google Workspace e aggiungere semplicemente i destinatari invece di
> gestire voi il servizio di distribuzione?
>
Vorremmo continuare ad utilizzare mailman (e magari migrare al 3) e non
usare google groups per
le mailing list pubbliche di python italia 



-- 
Patrick Arminio
_______
Python mailing list
Python@lists.python.it
https://lists.python.it/mailman/listinfo/python


Re: [Python] [META] Aiuto per gestione Mailman

2023-06-06 Per discussione Andrea D'Amore
On Thu, 1 Jun 2023 at 11:24, Patrick Arminio  wrote:
> Stiamo pensando di fare il passaggio del server email di python.it su Google 
> Workspace […]
> dando uno sguardo al server sembra
> che mailman sia appunto configurato con postfix (quindi spostando il server 
> mail su google
> romperà le liste)

Nel senso che temi la sostituzione di postfix con gsmtpd di Google?

Usando Google Workspace non dovreste usare qualcosa come Groups su
Google Workspace e aggiungere semplicemente i destinatari invece di
gestire voi il servizio di distribuzione?


-- 
A.
_______
Python mailing list
Python@lists.python.it
https://lists.python.it/mailman/listinfo/python


Re: [Python] R: Re: I: Consiglio su libri da scegliere

2023-06-02 Per discussione flandero
Ciao Paolo, bello leggere della tua storia!

Prova anche a seguire qualche tutorial su YouTube. A volte lasciarsi
guidare aiuta a superare i piccoli scogli iniziali che poi diventano delle
vere e proprie banalità, tranquillo e non mollare.

L'idea vincente, poi, è quella di focalizzarsi su qualcosa di reale che ti
restituisca dei risultati. A seconda della tua attitudine puoi trovare
tutorial per integrare python con fogli elettronici tipo Google
spreadsheet, o per fare ad esempio speech recognition, o per aprire un
cancello con un Raspberry. Ci sono tutorials per ogni bocca, e tutti
partendo da zero :)

In bocca al lupo


On Fri, 2 Jun 2023, 16:06 paolo giosue',  wrote:

> Grazie mille proverò
>
> Inviato da Yahoo Mail su Android
> <https://mail.onelink.me/107872968?pid=nativeplacement=Global_Acquisition_YMktg_315_Internal_EmailSignature_sub1=Acquisition_sub2=Global_YMktg_sub3=_sub4=10604_sub5=EmailSignature__Static_>
>
> Il Ven, 2 Giu, 2023 alle 15:35, Gabriele Battaglia
>  ha scritto:
> ___
> Python mailing list
> Python@lists.python.it
> https://lists.python.it/mailman/listinfo/python
>
> _______
> Python mailing list
> Python@lists.python.it
> https://lists.python.it/mailman/listinfo/python
>
_______
Python mailing list
Python@lists.python.it
https://lists.python.it/mailman/listinfo/python


[Python] R: Re: I: Consiglio su libri da scegliere

2023-06-02 Per discussione paolo giosue'
Grazie mille proverò 

Inviato da Yahoo Mail su Android 
 
  Il Ven, 2 Giu, 2023 alle 15:35, Gabriele Battaglia ha 
scritto:   ___
Python mailing list
Python@lists.python.it
https://lists.python.it/mailman/listinfo/python
  
___
Python mailing list
Python@lists.python.it
https://lists.python.it/mailman/listinfo/python


  1   2   3   4   5   6   7   8   9   10   >