Re: [Python] Ricerca in un dizionario.

2023-05-29 Per discussione Massimo Masson

Il 29/05/2023 01:45, Giorgio Zoppi ha scritto:
[...]
Lascio a te la dimostrazione perche lo schermo di questo laptop e' 
troppo piccolo per contenere i corner case.

[...]

ROTFL!!!

Forse intendevi "i margini dello schermo di questo laptop", posso 
supporre... :-D


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


Re: [Python] Consiglio su web framework

2023-05-22 Per discussione Massimo Masson

Il 22/05/2023 10:11, Carlos Catucci ha scritto:
Ho idea che Genro sia parecchio più complesso da apprendere rispetto a 
Flask, però è un gran bel progetto


...se riesco ad usarlo io, credo ci possa riuscire chiunque... :-)

Diciamo che può essere usato a vari livelli. Se si resta nel contesto 
delle features ... "standardizzate" (non credo sia il termine giusto, se 
casomai qualcuno mi supporta in queste grezze descrizioni ben venga) con 
poco sforzo, davvero poco, si ottiene molto.


Certo se poi si vogliono fare cose particolari o avanzate può non essere 
più banale, ma per una marea di casi d'uso abbastanza normali è già 
praticamente tutto pronto.


Almeno, per quella che è la mia esperienza.

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


Re: [Python] Consiglio su web framework

2023-05-22 Per discussione Massimo Masson

Il 21/05/2023 22:46, Giuliano Curti ha scritto:

Buonasera a tutti,

vi chiedo un consiglio su un argomento che non ho mai affrontato.

Vorrei offrire via web(*) l'interrogazione di un db sqlite3; immagino 
che una soluzione possa essere PHP che però non conosco e non intendo 
affrontarlo.


Quindi, ecco la domanda: esiste qualche framework python che consenta la 
costruzione di una, massimo due form per interrogare il DB?

[...]

Ti offre molto di più, ma ti consiglierei di provare a guardare anche 
Genropy:


https://www.genropy.org/

Collegamento nativo con SQLite, e poi è tutto italiano!

my 2 cents,
m.
___
Python mailing list
Python@lists.python.it
https://lists.python.it/mailman/listinfo/python


Re: [Python] Indagine su una variabile.

2022-07-25 Per discussione Massimo Masson

Il 25/07/2022 15:20, Gabriele Battaglia ha scritto:
[...]
Riprendendo il tuo esempio ti chiedo, a cosa serve allora la parola 
chiave global?


Se io dichiaro una variabile a livello main, poi la modifico all'interno 
di una funzione di livello più alto e naturalmente me la aspetto 
modificata quando esco da queste funzioni, perchè dovrei avere la 
necessità di dichiarare che quella variabile è global, all'interno delle 
mie funzioni?


Non so se sono riuscito a spiegare il mio dubbio.


Provo a dirti la mia, vediamo se siamo sulla stessa lunghezza d'onda...

global serve per consentire di utilizzare una variabile fuori dal suo 
scope (contesto) naturale.


Per quel che so lo si usa o all'interno di una funzione, o per definire 
variabili "globali" tra moduli per scambio informazioni.


Sto sull'uso all'interno di una funzione, penso sia più facile per me da 
spiegare.


Quando entri in una funzione, questa definisce il suo "scope". Le 
variabili definite nella funzione hanno come scope la funzione medesima. 
Quando esci dalla funzione, spariscono.


Se vuoi modificare una variabile definita fuori dalla funzione, allora 
usi la keyword global, così la funzione capisce che lo scope è esterno a 
se' stessa, e si vuole usare la variabile "esterna" e non quella della 
funzione.


Nota che se ad una variabile assegni un valore nel corpo della funzione 
python assume sia locale (a meno che non la dichiari global).
Le variabili solo referenziate all'interno di una funzione invece sono 
implicitamente global.

Un esempio aiuta:

m = 1

def duplica():
global m
m = m * 2
print(m)

duplica()

Ti restituisce il valore 2.
Se provi a togliere la riga "global m" ottieni... un errore:
local variable 'm' referenced before assignment.
Questo perché hai usato la variabile prima di "dichiararla".
Nota che se sostiuissi "global m" con "m = 7" (ad esempio) non avresti 
più l'errore, la stampa di "m dentro duplica" darebbe 14, la stampa di 
"m fuori duplica" darebbe... ancora 1 (la "m" esterna alla funzione).


Ovvero, la variabile definita dentro la funzione "oscura" la variabile 
esterna alla funzione, a meno che non la dichiari global, ed in tal caso 
anche dentro la funzione utilizzi la variabile esterna (appunto, globale).


Aiuta?

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


Re: [Python] R: R: Variabili su file esterno

2022-07-11 Per discussione Massimo Masson

Il 11/07/2022 10:43, Marcello Ilardi ha scritto:
[...]


import pickle

[...]

Ottimo!
"batteries included" quindi... :-)

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


Re: [Python] R: Variabili su file esterno

2022-07-11 Per discussione Massimo Masson

Il 11/07/2022 08:42, Marcello Ilardi ha scritto:
[...]

ma un problema che ho riscontrato è il passaggio delle variabili sul 
file importato.


[...]

Hai provato a dare un'occhiata al modulo pickle?

https://docs.python.org/3.8/library/pickle.html

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


Re: [Python] Indagine su una variabile.

2022-05-05 Per discussione Massimo Masson

Il 05/05/2022 16:16, Gabriele Battaglia ha scritto:
[...]


Ho una variabile dichiarata ad inizio script, del tipo: d={}


poi una routine la modifica, ovviamente ha lo stesso nome all'interno 
della funzione che non riceve () e non restituisce nulla con return.


All'uscita da questa funzione tuttavia, mi ritrovo d intatta, come se 
non avessi apportato alcuna modifica.


Secondo me è un tema di namespace e scope delle variabili...

Se dichiari una variabile dentro una funzione, il suo scope è interno 
alla funzione. La variabile dichiarata esternamente ha uno scope più ampio.


Quindi la "d" interna alla funzione esaurisce la sua visibilità in 
uscita della stessa.


La "d" esterna alla funzione continua a puntare al dizionario di prima.
Se non è stato modificato, il dizionario resta invariato.
Se invece modifichi il dizionario, anche dentro la funzione, lo ritrovi 
modificato (perché un conto è lo scope della variabile, un conto è 
l'oggetto puntato).


Esempio stupido:

def fanulla(dizionario):
#dizionario[1]="uno"
d = "ciao"
print ("dentro fanulla d vale ", d)

d = {}

print("prima di fanulla d vale ", d)
fanulla(d)
print("dopo fanulla d vale ", d)

Se togli il # dentro la funzione, il dizionario viene modificato.

Oppure non ho capito nulla del tuo problema, in tal caso chiedo venia!
ciao.
___
Python mailing list
Python@lists.python.it
https://lists.python.it/mailman/listinfo/python


Re: [Python] while... perchè?

2022-02-15 Per discussione Massimo Masson

Il 15/02/2022 14:04, Gabriele Battaglia ha scritto:

Questo semplice script con 2 while annidati:


#testwhile
yi,yk=0,0
whileyi<2:
  whileyk<5:
print(yi,yk)
yk+=1
  yi+=1

[...]

Ciao,
prova ad aggiungere:
print(yi,yk)
come penultima riga, prima di:
yi+=1
con il suo stesso livello di indentazione, così vedi cosa succede 
effettivamente...

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


Re: [Python] Suggerimento per creazione classe

2021-12-31 Per discussione Massimo Masson

Il 31/12/2021 13:09, Valerio Pachera ha scritto:
[...]
Tali percorsi sono uguali per qualsiasi istanza della classe, percio' 

[...]

Suggerimenti?


Rapidamente, potresti "staticizzare" i due path nella classe, ad esempio:

class Account(object):
src = 'sorgente_'
dst = 'destinazione_'

def __init__(self, name):
self.name = name

def export(self):
src_path = self.src + self.name
dst_path = self.dst + self.name
print(f'export {src_path} to {dst_path}')

poi magari cerca sui decoratori @staticmethod ed anche @classmethod.
Ma intanto credo faccia quello che hai chiesto...

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


Re: [Python] Confronto dizionari.

2021-02-11 Per discussione Massimo Masson

Il 11/02/2021 11:48, Giovanni Porcari ha scritto:
[...]


Potresti usare un approccio più originale.
Ovvero creare una classe che potresti chiamare ‘DizionarioSpione’

[...]


In questo modo dopo la chiamata alka tua funzione spiadict._changes ti darà 
l’elenco di tutti i cambiamenti.


Giovanni sei sempre "sul pezzo" in modo devastante!
Fantastico!

E, aggiungerei, una soluzione che... non usa le Bag!!!
hahaha!!! :-)

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


Re: [Python] slides genrobag e genrosql

2015-09-27 Per discussione Massimo Masson

Il 27/09/2015 14.18, Giovanni Porcari ha scritto:
[...]

https://www.dropbox.com/s/qme8cm0gqd8ihoj/documenti%20genropy.zip?dl=0

[...]

Grazie Giovanni!

Ora guardo un po' meglio, c'era almeno un pattern per usare le relazioni 
in genrosql che mi è risultato abbastanza nuovo anche concettualmente, 
il modo in cui "navighi" le relazioni per riferimento in modo 
semplice... mi pare fosse quello con l'uso del "@" ma forse sto facendo 
confusione...


Chiederò...
Massimo.
___
Python mailing list
Python@lists.python.it
http://lists.python.it/mailman/listinfo/python


[Python] slides genrobag e genrosql

2015-09-27 Per discussione Massimo Masson
Sono stato al corso su genropy organizzato dagli sviluppatori, e ci 
tengo a fare i miei complimenti perché è davvero interessante!


Durante il corso avete usato delle slides per illustrare genrobag e 
genrosql, siccome volevo chiedere il link per riguardarmele, ho pensato 
potesse essere utile chiederlo direttamente qui in lista così che altri 
interessati magari possano beneficiarne.


Grazie in anticipo,
Massimo.
___
Python mailing list
Python@lists.python.it
http://lists.python.it/mailman/listinfo/python


Re: [Python] Domanda (stupida?) su linux

2014-04-15 Per discussione Massimo Masson

Il 15/04/2014 09.54, Massimiliano Modena ha scritto:
[...]

Debian condivide pressoché la stessa base.
Però è molto più restia a fare aggiornamenti, non avresti quindi
il tutto all'ultima release come con Ubuntu (ed io adoro Debian per questo).


+1

Però pensavo che potrebbe come alternativa provare una Debian Testing 
invece che stable, così dovrebbe avere versioni comunque più aggiornate...


(volevo scrivere Sid, ma poi m'è venuta paura che gli rompesse la 
tavoletta... ;) )


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


Re: [Python] congetture su libreria per sql

2010-04-02 Per discussione Massimo Masson
Manuele Pesenti ha scritto:
 Ciao a tutti,
 
 stavo pensando ad implementare una libreria che fornisca strumenti di
[...]
 tabella che questo rappresenta. Ovviamente pensavo di basarmi sulla
 libreria SQLAlchemy ma per quanto abbia cercato finora ho trovato esempi
 che definiscono classi cablate sulla struttura del db che quindi deve
[...]

Non so se ho capito il tuo problema/approccio, ma SqlSoup può aiutarti?

http://www.sqlalchemy.org/docs/reference/ext/sqlsoup.html

hth,
max.
___
Python mailing list
Python@lists.python.it
http://lists.python.it/mailman/listinfo/python


Re: [Python] cambio al vertice

2009-04-01 Per discussione Massimo Masson
Daniele Varrazzo ha scritto:
 On Wed, 1 Apr 2009 11:31:18 +0200, Masci srad...@gmail.com wrote:
 Le motivazioni non fanno una grinza...

 http://www.python.org/dev/peps/pep-0401/
 
 Notizione ogg! Fa il paio con questa:
 
 http://www.postgresql.org/community/weeklynews/pwn20090401

Sapete in che data state scrivendo, vero?
^_^

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


Re: [Python] costruzione GUI

2009-04-01 Per discussione Massimo Masson
danielita ha scritto:
 Innanzitutto grazie per le spiegazioni!
 
 Da quanto hai scritto deduco che evidentemente mi hanno chiesto di 
 sviluppare la GUI a manina (usando wxpython) perchè devo aggiungere al 

...scusa non ti sto seguendo molto... da quanto scrivo io tu deduci 
una cosa che hanno chiesto a te ??? Non mi quadra...

 frame un canvas in cui inserire oggetti (immagini, testo) su cui 
 realizzare a manina il drag and drop, lo zoom, applicare maniglie per 
 ridimensionare gli oggetti, ecc. Tutto questo non si può fare con un GUI 
 builder?

Beh, no... con il GUI builder costruisci i widget di interfaccia, uno 
dei quali sarà un canvas, all'interno del quale poi le cose le 
realizzerai programmandole tu... (il GUI builder disegna i componenti 
dell'interfaccia, e basta... il canvas è un widget, il gui builder si 
ferma li...).

Peraltro, se le tue richieste riguardano oggetti (con maniglie, da 
ridimensionare, e via dicendo) da gestire via wxPython, ti suggerirei di 
guardare, nella demo standard, la sezione OGL (sotto miscellaneous mi 
pare...)

 Inoltre hai scritto che solo in fase di costruzione della GUI il dover 
 leggere a runtime un file xml da interpretare per creare la GUI richiede 
 un po' di tempo di esecuzione in più rispetto ad una generazione 
 diretta da codice.
 Ma ciò non è necessario nel corso della successiva esecuzione, perchè? 
 Forse perchè nella successiva esecuzione in entrambi i casi ho il bytecode?

Probabilmente non sono stato chiaro, con costruzione della gui 
intendevo la creazione dei vari widget da parte del programma (in 
esecuzione), non il tempo di design da parte del programmatore...
Il concetto è che nel caso si usi un file di risorse che descrive la GUI 
  il programma, per disegnare la stessa, deve leggere un file di testo 
che descrive la GUI, e sulla base di quella descrizione generare i widget.
Se il tutto è codificato (ovvero già scritto nel codice) in esecuzione 
si può procedere a generare i widgets senza leggere la descrizione dal 
file di testo. Questa è la differenza(1). Poi le GUI generate, a parità 
di widget usati, si comportano nello stesso identico modo.
Ovviamente la lettura del file di configurazione verrà effettuata ad 
ogni esecuzione.

HTH,
max.

(1) questa differenza di esecuzione è piccola con Python, ma può 
diventare più significativa con linguaggi compilati, tipo C++, che non 
devono interpretare il sorgente (o p.code). Peraltro, nei linguaggi 
compilati consente l'innegabile vantaggio di poter rifare la gui senza 
dover ricompilare il sorgente. In Python te ne accorgi meno perchè 
potresti facilmente modificare il codice, ma se fossi in ambienti dove 
il sorgente va protetto la strada dei files di risorse diventa 
estremamente importante.
___
Python mailing list
Python@lists.python.it
http://lists.python.it/mailman/listinfo/python