Re: [Python] confronto nan dentro le tuple
Il giorno dom 11 dic 2022 alle ore 15:33 Andrea D'Amore ha scritto: > On Fri, 9 Dec 2022 at 19:20, Marco De Paoli wrote: > > > in realtà la cosa è anche un po' più subdola di così, infatti istanze > diverse di nan ... sono diverse! > > > >>> import math > > >>> math.nan is math.nan # OK, identity > > True > > >>> float("nan") is float("nan") # ... OOOK, different instances! > > False > > Questo però ci sta, al netto delle ottimizzazioni di CPython quando > inizializzo nuove istanze mi aspetto oggetti che siano effettivamente > diversi > > >>> int("123456789") is int("123456789") > False > sì, vero, è coerente ciao ___ Python mailing list Python@lists.python.it https://lists.python.it/mailman/listinfo/python
Re: [Python] confronto nan dentro le tuple
Il giorno gio 8 dic 2022 alle ore 06:37 Andrea D'Amore ha scritto: > On Wed, 7 Dec 2022 at 18:40, Marco De Paoli wrote: > > Mi viene il dubbio che nel confronto tra tuple venga valutata una > identità tra oggetti... ma, al momento, non riesco ad approfondire la > questione > > Il confronto tra sequenze usa `is` come scorciatoia invece di `==`. > > https://docs.python.org/3/reference/expressions.html#comparisons > """Sequences compare lexicographically using comparison of > corresponding elements. The built-in containers typically assume > identical objects are equal to themselves. That lets them bypass > equality tests for identical objects to improve performance and to > maintain their internal invariants.""" è vero, grazie in realtà la cosa è anche un po' più subdola di così, infatti istanze diverse di nan ... sono diverse! >>> import math >>> math.nan is math.nan # OK, identity True >>> float("nan") is float("nan") # ... OOOK, different instances! False Dalla regia (grazie CM) mi segnalano questo riferimento: https://bugs.python.org/issue21873#msg221608 e questo esempio: >>> set([nan, nan]) {nan} time: 19 ms (started: 2022-12-07 19:14:16 +01:00) >>> set([float('nan'), float('nan')]) {nan, nan} time: 8.54 ms (started: 2022-12-07 19:14:34 +01:00) bye, M ___ Python mailing list Python@lists.python.it https://lists.python.it/mailman/listinfo/python
[Python] confronto nan dentro le tuple
ciao lista, come va? una domanda su math.nan Il valore math.nan è un non-valore quindi è corretto che non sia considerato uguale neanche a se stesso. https://docs.python.org/3/library/math.html#math.nan La mia sorpresa è che invece nei confronti tra tuple i nan vengono considerati uguali Esempio: >>> from math import nan >>> nan == nan # False as expected False >>> (10, nan) == (10, nan) # ... WOW True Mi viene il dubbio che nel confronto tra tuple venga valutata una identità tra oggetti... ma, al momento, non riesco ad approfondire la questione ... voi ne sapete di più? (non ho dubbi! ;-) ) bye, Marco ___ Python mailing list Python@lists.python.it https://lists.python.it/mailman/listinfo/python
Re: [Python] Azure functions
ciao Giovanni, Il giorno mer 19 ott 2022 alle ore 14:30 Giovanni Porcari < giovanni.porc...@softwell.it> ha scritto: > Possibilmente. Mi arroccherei su quello :D > ... intendi sul fatto che non ci sarebbe lxml ;-) ad ogni modo pare che l'offerta al cliente la si farà "per il caso peggiore" (in cui qualcuno, che non sarei io, dovrà riscrivere tutto in C#) Entro quando il lavoro sarà effettivamente da fare io un'occhiata ad IronPython ho intenzione di darla Mi viene in mente che potrebbe tornarmi utile anche per un'altra vecchia utility che avevo fatto e che gira come servizio-Windows. Al momento, per utilizzarla, richiede che installino python e pywin32. Infatti, non avevo mai avuto tempo di fare un packaging per Windows (e avevo sempre pensato che non fosse banale fare un packaging di qualcosa che ha dentro pywin32 con pythonservice.exe). Potrei valutare IronPython: che magari 1) mi evita le pywin32 e 2) si occupa lui di fare il build di un exe (che dipende da .net, ok) e 3) mi permette di provarlo, per sommi capi, anche su linux con mono Qualcuno ha esperienze in merito? bye, M. ___ Python mailing list Python@lists.python.it https://lists.python.it/mailman/listinfo/python
Re: [Python] Azure functions
Il giorno mar 18 ott 2022 alle ore 17:40 Nicola Gramola < nicola.gram...@gmail.com> ha scritto: > Hai provato a vedere se riesci a “compilare” con IronPython. Non penso sia > molto aggiornato ma è un tentativo > sì, grazie, verifico anche se sembra un po' un problema disporre di lxml in questo caso... ___ Python mailing list Python@lists.python.it https://lists.python.it/mailman/listinfo/python
[Python] Azure functions
ciao a tutti, domanda niubba... ho del codice python (... ovviamente! visto: 1. la lista a cui mi rivolgo e 2. le mie radicate preferenze personali ;-) ) ora, questo codice dovrebbe girare su un portale Azure E mi dicono che deve essere ... "un tool unico possibilmente in una tecnologia .Net (leggi C#/NET6). Probabilmente sarà parte di una Azure Function o di una API, quindi, sarebbe comodo fosse sotto forma di una libreria e/o pacchetto NuGet." arghh! potreste mica darmi qualche dritta? ... non sono precisamente entusiasta della prospettiva di dover riscrivere il tutto in C# grazie, Marco P.S. questo codice preesistente avrebbe dipendenza dal pacchetto lxml ___ Python mailing list Python@lists.python.it https://lists.python.it/mailman/listinfo/python
Re: [Python] import error.
ciao Gabriele Il giorno gio 13 ott 2022 alle ore 21:36 Gabriele Battaglia < iz4...@libero.it> ha scritto: > Ciao, questa sera mi è comparso un errore che non avevo ancora incontrato. > Avevo una riga, ad inizio script, con la quale importavo 4 moduli: 3 in > una istruzione import e uno in una istruzione from ... import. > > isort mi ha detto che non andava bene, ma perchè? Io l'ho sempre fatto e > Python non si è mai lamentato. Ho applicato il fix automatico e isort mi > ha riscritto le righe come segue: > > import pickle > import random > import time > from GBUtils import key > > Domanda, che è più che altro una curiosità: cosa c'è di male ad > importare i primi 3 moduli separandoli con una , in una singola > istruzione import? > niente di male è però considerato più consistente e leggibile importarli distintamente, vedi la PEP8 https://peps.python.org/pep-0008/#imports la stessa PEP8 dice comunque esplicitamente: "However, know when to be inconsistent – sometimes style guide recommendations just aren’t applicable. When in doubt, use your best judgment" https://peps.python.org/pep-0008/#a-foolish-consistency-is-the-hobgoblin-of-little-minds bye, Marco ___ Python mailing list Python@lists.python.it https://lists.python.it/mailman/listinfo/python
Re: [Python] Spam dalla mailing-list
Il giorno gio 28 lug 2022 alle ore 10:12 Marco Beri ha scritto: > On Thu, 28 Jul 2022 at 10:06, Marco Giusti wrote: > >> Salve a tutti, >>questa mattina ho risposto a due email e per due volte ho ricevuto >> questo messaggio. C'e' niente che si puo' fare? >> Allogo uno screenshot dell'email. Credo che le mie email avessero il mio >> indirizzo come reply-to. In questa email l'ho tolto. >> > > Marco, > sai che io non le ho ricevute? Anche nel folder spam non le ho trovate. > > Qualcun altro le ha invece ricevute? > no, confermo che non le ho ricevute neanche io ciao, Marco ___ Python mailing list Python@lists.python.it https://lists.python.it/mailman/listinfo/python
Re: [Python] throw ad un generatore: perché non riparte dall'inizio?
cavolo, grazie mille a entrambi! questa lista rimane un gran bel posto ... a proposito, mi chiamo Marco pure io, mi ero dimenticato di firmarmi, Marco De Paoli Il giorno gio 28 lug 2022 alle ore 09:41 Marco Beri ha scritto: > Se invece di g.throw(Exception("BOOM")) scrivi print( > g.throw(Exception("BOOM"))) > > Ritroverai il tuo "A" :-) > ottimo! ed ha pure senso viva python :-) ___ Python mailing list Python@lists.python.it https://lists.python.it/mailman/listinfo/python
[Python] throw ad un generatore: perché non riparte dall'inizio?
ciao lista! ho una domanda sui generatori Mi farebbe molto comodo usare la possibilità di mandare una eccezione ad un generatore: ma mi trovo con un comportamento imprevisto Qui sotto trovate un frammento di codice che riproduce una sorta di "caso minimo" di quella che mi sembra una anomalia Se avete voglia di provarlo credo che il codice sia più o meno autoesplicativo. Quello che mi lascia perplesso è: perché il generatore, dopo aver gestito l'eccezione, non riparte dal restituire il valore "A"? ---><--- begin test_gen.py ---><--- def gen(): while True: try: yield "A" yield "B" yield "C" except Exception as ex: print("catched exception", ex) g = gen() you_can_specify_any_number_of_steps = 3 for idx in range(you_can_specify_any_number_of_steps): print("result:", g.send(None)) print("throw...") g.throw(Exception("BOOM")) print("result:", g.send(None), "*** I was expecting A and I get B, why?!? ***") print("result:", g.send(None)) ---><--- end test_gen.py ---><--- ___ Python mailing list Python@lists.python.it https://lists.python.it/mailman/listinfo/python
[Python] sendall su socket no blocking
ciao a tutti, da alcune prove mi pare che il sendall spedisca effettivamente tutto il buffer anche su socket che abbiano setblocking(False) Però non sono sicuro che sia un comportamento sempre garantito su tutte le piattaforme La documentazione non si esprime in merito https://docs.python.org/3/library/socket.html#socket.socket.sendall Qui si dice che la sendall dovrebbe essere usata solo con socket blocking: https://stackoverflow.com/questions/6240737/python-socket-sendall-function (c'è un riferimento dangling a sorgenti evidentemente obsoleti) Ho visto i sorgenti del branch "main" e mi pare che invece la sendall spedisca sempre tutto... https://github.com/python/cpython/blob/main/Modules/socketmodule.c ad esempio qui https://github.com/python/cpython/blob/main/Modules/socketmodule.c#L925 Però diciamo che al sabato sera non mi sento abbastanza lucido da dirimere la questione da solo ;-) Marco ___ Python mailing list Python@lists.python.it https://lists.python.it/mailman/listinfo/python
Re: [Python] struct unpack di un intero
ciao Roberto, Il giorno gio 21 ott 2021 alle ore 11:15 Roberto De Ioris ha scritto: > Ciao, perche' di default viene rispettato l'allineamento che il dato > dovrebbe avere in memoria se fosse una struttura c: > > https://docs.python.org/3/library/struct.html#struct-alignment > > Roberto De Ioris > infatti se poi facevo l'unpack come intero a partire dal quel byte, funzionava mi sfuggiva questo particolare di rispettare il layout dell'intera struct C grazie mille! Marco ___ Python mailing list Python@lists.python.it https://lists.python.it/mailman/listinfo/python
[Python] struct unpack di un intero
ciao a tutti! ho un problema con struct.unpack e non capisco cosa sto sbagliando... >>> struct.unpack("i", b'\x03\x00\x00\x00') # OK! (3,) >>> struct.unpack("ih", b'\x03\x00\x00\x00\x04\x00') # OK! (3, 4) >>> struct.unpack("ihi", b'\x03\x00\x00\x00\x04\x00\x00\x00\x04\x00') # ARGHHH Traceback (most recent call last): File "", line 1, in struct.error: unpack requires a buffer of 12 bytes Perché mai se ne aspetta 12? Dovrebbero bastare i 10 che ci sono nel buffer! Mi aspettavo: >>> struct.unpack("ihi", b'\x03\x00\x00\x00\x04\x00\x00\x00\x04\x00') (3, 4, 4) Cosa sto sbagliando? Marco ___ Python mailing list Python@lists.python.it https://lists.python.it/mailman/listinfo/python
Re: [Python] Argomenti funzione posizionali e opzionali
Il giorno mer 2 dic 2020 alle ore 14:50 Daniele Zambelli < daniele.zambe...@gmail.com> ha scritto: > Quindi la soluzione che proporrei oggi sarebbe: > > def modify_signature_id(content, signature): > < fa qualcosa> > > def modify_signature_name(content, signature): > > > Tanto chi chiama la funzione sa se se ha a disposizione un id o un name. > Sono daccordo ... volendo poi si potrebbe anche valutare una cosa del genere: def modify_signature_id(content, signature): print("modify_signature_id", signature) def modify_signature_name(content, signature): print("modify_signature_name", signature) # utilizzo base modify_signature_id("cc", "sample_id") modify_signature_name("cc", "sample_name") # utilizzo parametrico modify_signature = lambda s_type: globals()["modify_signature_{}".format(s_type)] modify_signature("id")("cc", "sample_id") modify_signature("name")("cc", "sample_name") # utilizzo parametrico con f-strings modify_signature = lambda s_type: globals()[f"modify_signature_{s_type}"] modify_signature("id")("cc", "sample_id") modify_signature("name")("cc", "sample_name") bye, Marco ___ Python mailing list Python@lists.python.it https://lists.python.it/mailman/listinfo/python
Re: [Python] uwsgi in docker: come interpretare questi log?
Il giorno mar 15 set 2020 alle ore 13:09 Alessandro Dentella < sandro.dente...@gmail.com> ha scritto: > PS: esiste ancora una lista uwsgi? io non la trovo, ma in documentazione > dicono > di scrivere in lista uwsgi... > uw...@lists.unbit.it non è più attiva Roberto De Ioris in proposito dice: "it has been deactivated months ago. You can open issues here or on stackoverflow. We are evaluating a google group btw." https://github.com/unbit/uwsgi/issues/2230 ___ Python mailing list Python@lists.python.it https://lists.python.it/mailman/listinfo/python
Re: [Python] Creazione lista da Listbox
Il giorno lun 25 mag 2020 alle ore 19:20 Marcello ha scritto: > Salve a * > > Ho creato una Listbox con tkinter (e fino a qui non ho avuto problemi) > adesso quello che non riesco a fare è creare una lista per ogni riga che > inserisco nel text_comandi. > > esempio, se scrivo: > aaa > bbb > ccc > > dovrei ricavare una lista > ['aaa','bbb','ccc'] > forse ti fa comodo split >>> k = """ ... aaa ... bbb ... ccc""" >>> k.split() ['aaa', 'bbb', 'ccc'] ciao, Marco ___ Python mailing list Python@lists.python.it https://lists.python.it/mailman/listinfo/python
Re: [Python] Domanda su istruzione che coinvolge oggetti di Classe: country cos'è ?
Il giorno gio 21 mag 2020 alle ore 17:18 maria teresa panunzio < mariateresa.panun...@yahoo.it> ha scritto: > > > Il giovedì 21 maggio 2020, 17:07:38 CEST, Marco De Paoli < > depao...@gmail.com> ha scritto: > > > > > Il giorno gio 21 mag 2020 alle ore 16:51 maria teresa panunzio < > mariateresa.panun...@yahoo.it> ha scritto: > > Buonasera, > > Vorrei chiedere un aiuto sulla comprensione > della seguente istruzione > canada = country.Country('Canada', 34482779, 9984670) > > Si tratta di un esercizio sulle classi, dove Country è una delle classi > mentre Continent è l'altra. > L'istruzione che ho riportato ha lo scopo di assegnare i valori ai paesi > che, in questo caso, fanno parte del continente "North America" > > Non capisco cosa sia "country" o meglio cosa devo aggiungere al mio codice > nella definizione della classe "Continent" affinchè l'istruzione riportata > possa essere eseguita senza errori. > > > country probabilmente è un modulo importato precedentemente e che contiene > la definizione della classe Country > > Esempio file country.py (modulo contenente la definizione della classe): > class Country: > def __init__(self, name): > self.name = name > > def __str__(self): > return "Country: " + self.name > > Esempio file main.py (file principale): > > import country > > canada = country.Country("Canada") > > print(canada) > > Spero di essere stato chiaro, se no chiedi pure > Per semplicità, per iniziare, ammettiamo che i due file debbano essere > nella stessa directory (in realtà c'è una serie di path in cui il file > country.py può trovarsi) > > ciao, > Marco > > > > Grazie, Marco > (sto scrivendo la mia risposta in maniera corretta?) > ok! > non ci avevo pensato perchè io volevo mettere tutto in un unico file.Ora > che ho fatto diversamente, mi quadra! > ottimo! ciao, Marco ___ Python mailing list Python@lists.python.it https://lists.python.it/mailman/listinfo/python
Re: [Python] Domanda su istruzione che coinvolge oggetti di Classe: country cos'è ?
Il giorno gio 21 mag 2020 alle ore 16:51 maria teresa panunzio < mariateresa.panun...@yahoo.it> ha scritto: > Buonasera, > > Vorrei chiedere un aiuto sulla comprensione > della seguente istruzione > canada = country.Country('Canada', 34482779, 9984670) > > Si tratta di un esercizio sulle classi, dove Country è una delle classi > mentre Continent è l'altra. > L'istruzione che ho riportato ha lo scopo di assegnare i valori ai paesi > che, in questo caso, fanno parte del continente "North America" > > Non capisco cosa sia "country" o meglio cosa devo aggiungere al mio codice > nella definizione della classe "Continent" affinchè l'istruzione riportata > possa essere eseguita senza errori. > country probabilmente è un modulo importato precedentemente e che contiene la definizione della classe Country Esempio file country.py (modulo contenente la definizione della classe): class Country: def __init__(self, name): self.name = name def __str__(self): return "Country: " + self.name Esempio file main.py (file principale): import country canada = country.Country("Canada") print(canada) Spero di essere stato chiaro, se no chiedi pure Per semplicità, per iniziare, ammettiamo che i due file debbano essere nella stessa directory (in realtà c'è una serie di path in cui il file country.py può trovarsi) ciao, Marco ___ Python mailing list Python@lists.python.it https://lists.python.it/mailman/listinfo/python
Re: [Python] #OT Compilazione C crossplatform.
Il giorno sab 18 apr 2020 alle ore 08:56 Gabriele Battaglia < iz4...@libero.it> ha scritto: > Buongiorno a tutti. > Mi scuso per l’OffTopic. > > Un amico ha creato un software molto utile a chi non vede e gioca a > scacchi. > Questo programma, scritto in C e privo di interfaccia grafica, che > comunica via console, si sta diffondendo ormai nelle comunità scacchistiche > di tutto il mondo. > Il problema è che taglia fuori tutti gli utenti non-Windows. > La mia domanda è, dato che viene usata solo la console, quindi non c’è > coinvolgimento di librerie grafiche, non sarebbe possibile chiedere al > compilatore di compilare i sorgenti anche per MacOS? > Mi rendo conto dell’ingenuità della domanda, ma non ho alcuna conoscenza > di come funzioni il C. > in linea di principio sì. Tuttavia in realtà Windows ha tante altre differenze rispetto alle piattaforme *nix/bsd/posix : gestione del filesystem, gestione delle stringhe ... perfino gestione del main (su Windows, di base c'è WinMain) Quindi la risposta è: dipende. Dipende come il programmatore ha strutturato i sorgenti Anche il sistema di build è potenzialmente diverso Ha usato make? CMake? un progetto/soluzione Visual Studio? .. nmake? Insomma, paradossalmente le librerie grafiche potrebbero non essere il problema maggiore: un progetto che usi wxWidgets o Qt potrebbe funzionare su piattaforme diverse senza grossi problemi In generale progetti che siano multi-compilatore e/o multi-piattaforma richiedono uno sforzo maggiore e non è detto che il programmatore faccia questa scelta Senza vedere i sorgenti completi del progetto è difficile sapere se sia multi-piattaforma ed, eventualmente, quanto sforzo possa richiedere il porting Si tratta di un progetto open-source? Comunque in ambito python (... e quindi automaticamente multipiattaforma! :-) ) ti segnalo questo https://github.com/thomasahle/sunfish ciao, Marco ___ Python mailing list Python@lists.python.it https://lists.python.it/mailman/listinfo/python
Re: [Python] Variabile non letta (RISOLTO)
Il giorno gio 16 apr 2020 alle ore 18:33 Mr.Dob ha scritto: > RISOLTO > > In primis un GRAZIE a Marco De Paoli, mi ha aiutato a ragionare e darmi il > giusto input > prego bene! mi fa piacere che hai combinato giusto qualche nota, se vuoi tenerne conto... > ecco il listato funzionante > > #!/usr/bin/env python > > import time > import serial > import os > import subprocess > > ser = serial.Serial( > > port='/dev/ttyUSB0', > baudrate = 9600, > parity=serial.PARITY_NONE, > stopbits=serial.STOPBITS_ONE, > bytesize=serial.EIGHTBITS, > timeout=1) > counter=0 > hmi=b'\xFF\xFF\xFF' > cpufreq=subprocess.check_output("cat > /sys/devices/system/cpu/cpu0/cpufreq/cpuinfo_max_freq", shell=True) > rimango dell'idea che puoi evitarti il subprocess.check_output (che lancia addirittura un altro processo per fare il cat) e leggere direttamente il file con una open e poi una read di python https://docs.python.org/3/library/functions.html#open cpu="" > cpu += cpufreq.decode() > cpu='''"'''+cpu+'''"''' > buffer=("t55.txt={}".format(cpu)).encode() > le 4 istruzioni precedenti puoi semplificarle se vuoi giocarci un po'... > ser.write(buffer) > ser.write(hmi) > comunque bene! complimenti! ciao, Marco ___ Python mailing list Python@lists.python.it https://lists.python.it/mailman/listinfo/python
Re: [Python] Variabile non letta
Il giorno gio 16 apr 2020 alle ore 17:23 Mr.Dob ha scritto: > Raspberry con linux installato. > Ho un display seriale, collegato con un convertitore usb/seriale collegato > tramite porta usb del raspberry. > Nel display ho realizzato un firmware tramite il tool Nextion editor ad > oggetti. > Ho inserito un oggetto text nominato t55.txt dove, via seriale gli passo > ser.write(b't55.txt="CIAO"') > Sul display mi visualizzerà la scritta CIAO. > Se voglio utilizzare una variabile al posto del CIAO questa non viene > passata. > Spero di essere stato esaustivo. > ok, hai fatto qualche prova con quello che ti ho scritto? M. ___ Python mailing list Python@lists.python.it https://lists.python.it/mailman/listinfo/python
Re: [Python] Variabile non letta
ciao, fammi capire... Il giorno gio 16 apr 2020 alle ore 16:41 Mr.Dob ha scritto: > Saluto a tutti, > > ho un Raspberry dove ho collegato via seriale un display Nextion. > > ho realizzato questo script in Python > > > > #!/usr/bin/env python > > import time > import serial > import os > import subprocess > > ser = serial.Serial( > > port='/dev/ttyUSB0', > baudrate = 9600, > parity=serial.PARITY_NONE, > stopbits=serial.STOPBITS_ONE, > bytesize=serial.EIGHTBITS, > timeout=1) > counter=0 > hmi=b'\xFF\xFF\xFF' > il tuo problema è questa riga qui? > #cpufreq=subprocess.check_output("cat > /sys/devices/system/cpu/cpu0/cpufreq/cpuinfo_max_freq", shell=True) > ossia non riesci a leggere la frequenza della CPU? > cpufreq="CIAO" > oppure questa parte? > #buffer=(b't55.txt= + str(cpufreq).encode()') > buffer=(b't55.txt=cpufreq') > che però ad occhio non mi pare vada bene visto che nel buffer non viene messo il *valore* della variabile, bensì il suo nome ser.write(buffer) > ser.write(hmi) > > * > > Il problema che la variabile "cpufreq" non viene letta. > > buffer=(b't55.txt=cpufreq') t55.txt è un oggetto che risiede nel display > Nextion a cui devo passare il valore della variabile "cpufreq" > > Altresì se passo buffer=(b't55.txt="CIAO"') funziona > > Ho letto tante di quelle info senza trovare la soluzione. > ad occhio mi pare che tu abbia due problemi: a. la lettura della frequenza della cpu b. la scrittura nel buffer della seriale Ti do due spunti: a. fai in modo di leggere il file /sys/devices/system/cpu/cpu0/cpufreq/cpuinfo_max_freq con il comando open di python (non con "cat") b. crea il buffer a partire dal valore della variabile, esempio: >>> cpufreq = 10 >>> ("t55.txt={}".format(cpufreq)).encode() b't55.txt=10' bye, Marco ___ Python mailing list Python@lists.python.it https://lists.python.it/mailman/listinfo/python
Re: [Python] Fare esami su Python
Il giorno ven 10 apr 2020 alle ore 11:31 Gianfranco Durin ha scritto: > Buongiorno a tutti, > ho bisogno di una consulenza... > > Sto facendo un corso, anzi due (Triennale e Magistrale) alla facoltà di > Economia a Torino e nel caos dei corsi online ora c'è il problema di fare > gli esami a distanza. Il corso è interamente impostato su i notebook di > jupyter e così vorrei rimanere anche per l'esame. > Per gli studenti della triennale posso sicuramente fare una sorta di test > a crocette (anche se l'idea non mi fa impazzire) ma per quelli della > magistrale l'idea è di analizzare database con pandas e fare > analisi statistiche, plot e quant'altro e poi di valutare una serie > temporale, fare medie mobili, volatilità etc. > C'è qualcuno di voi che a qualche esperienza di esami a distanza di questo > tipo? O c'è una piattaforma che potrei utilizzare? > Il corso è interamente salvato su moodle e c'è anche la possibilità di > costruire gli esami con quiz, ma aiuto mi sembra una cosa da pazzi. > > Grazie per l'aiuto! > non so se può esserti di aiuto nel tuo caso... ma puoi valutare anche "Google Collaboratory" https://colab.research.google.com/notebooks/intro.ipynb nessun bisogno che lo studente installi alcunchè sul suo PC Si tratta di una sorta di notebook (jupyter) online, che salva i file ipynb su Drive al momento può essere usato gratuitamente per chiunque abbia un account google Gli stundeti possono impratichirsi liberamente Poi, buttò là... al momento dell'esame: 1. ricevono le consegne ad una certa ora (eventualmente leggermente personalizzate per ognuno... tanto perché non copino...) 2. hanno un certo tempo per mettere a punto il loro "notebook" 3. alla fine devono fare share con l'insegnate La cosa buona è che anche per la correzione non ti troveresti neanche tu a dover installare alcunchè sul tuo PC (fosse mai che qualche versione di pacchetto è diversa...), ma puoi far girare semplicemente il loro notebook direttamente dentro Collaboratory Attenzione, io non l'ho mai provato con Pandas, l'ho usato solo con Tensorflow (su cui, tra l'altro, è figo perché ti da anche a disposizione la possibilità di farlo girare su GPU (Runtime > Change runtime type) Se hai voglia facci sapere come va a finire e su cosa ti orienti alla fine... mi sembra interessante questa prospettiva degli esami online di python :-) bye, M ___ Python mailing list Python@lists.python.it https://lists.python.it/mailman/listinfo/python
Re: [Python] argparse e stringhe
Il giorno mer 8 apr 2020 alle ore 08:28 Marco De Paoli ha scritto: > > > Il giorno mer 8 apr 2020 alle ore 08:16 Matteo Perini < > perini.mat...@gmail.com> ha scritto: > >> Ciao a tutti, >> >> ho un problemino con il comportamento di argparse. >> >> Sto facendo delle prove con questo script di test: >> >> if __name__ == "__main__": >> parser = argparse.ArgumentParser() >> parser.add_argument("-t", "--text", default = 'ci\nao', type=str) >> args = parser.parse_args() >> text = args.text >> for line in text.split('\n'): >> print(line) >> >> Se eseguo lo script senza argomenti il risultato è quello atteso: >> >> ci >> >> ao >> >> Il "\n" viene interpretato correttamente. >> >> Se però eseguo lo script mettendo come argomento -t "ci\nao" il >> risultato è: >> >> ci\nao > > >> problema che riesco a risolvere convertendo text così: >> >> text = bytes(args.text, "utf-8").decode("unicode_escape") >> >> a questo punto ottengo di nuovo l'andata a capo. >> >> >> Ultimo caso, se l'utente non mette le virgolette e scrive -t ci\nao il >> risultato di args.text è: >> >> cinao >> >> mi toglie solo la "\" e a questo punto io non so più come trattarlo. >> >> Che voi sappiate c'è un modo per controllare se un argomento ha le >> virgolette o no. >> >> Oppure trattare l'input sempre come raw? >> >> Penso sia un problema che potrebbe essere piuttosto comune ma non ho >> trovato soluzioni online. >> >> Ciao >> > > se vuoi i parametri raw > > import sys > print(sys.argv) > se invece vuoi qualche altra info su newline ed escape puoi dare un'occhiata qui https://stackoverflow.com/questions/16904064/end-of-line-new-line-escapes-in-bash M. > ___ Python mailing list Python@lists.python.it https://lists.python.it/mailman/listinfo/python
Re: [Python] argparse e stringhe
Il giorno mer 8 apr 2020 alle ore 08:16 Matteo Perini < perini.mat...@gmail.com> ha scritto: > Ciao a tutti, > > ho un problemino con il comportamento di argparse. > > Sto facendo delle prove con questo script di test: > > if __name__ == "__main__": > parser = argparse.ArgumentParser() > parser.add_argument("-t", "--text", default = 'ci\nao', type=str) > args = parser.parse_args() > text = args.text > for line in text.split('\n'): > print(line) > > Se eseguo lo script senza argomenti il risultato è quello atteso: > > ci > > ao > > Il "\n" viene interpretato correttamente. > > Se però eseguo lo script mettendo come argomento -t "ci\nao" il > risultato è: > > ci\nao > problema che riesco a risolvere convertendo text così: > > text = bytes(args.text, "utf-8").decode("unicode_escape") > > a questo punto ottengo di nuovo l'andata a capo. > > > Ultimo caso, se l'utente non mette le virgolette e scrive -t ci\nao il > risultato di args.text è: > > cinao > > mi toglie solo la "\" e a questo punto io non so più come trattarlo. > > Che voi sappiate c'è un modo per controllare se un argomento ha le > virgolette o no. > > Oppure trattare l'input sempre come raw? > > Penso sia un problema che potrebbe essere piuttosto comune ma non ho > trovato soluzioni online. > > Ciao > se vuoi i parametri raw import sys print(sys.argv) ciao, Marco ___ Python mailing list Python@lists.python.it https://lists.python.it/mailman/listinfo/python
Re: [Python] linguaggio braille
ciao a tutti, Il giorno ven 3 apr 2020 alle ore 13:32 Matteo Perini < perini.mat...@gmail.com> ha scritto: > Magari essendo un po' off topic se volete rispondetemi in privato > se vi è possibile mantenete pure la discussione pubblica in lista per i seguenti motivi: 1. tocca comunque vari aspetti tecnici interessanti 2. la lista non mi pare così congestionata da doverci porre il problema di generare eccessivo traffico 3. mi pare che l'argomento riguardi obiettivi di inclusività e partecipazione: che mi risultano essere ambiti molto cari alla comunità python in generale grazie, Marco ___ Python mailing list Python@lists.python.it https://lists.python.it/mailman/listinfo/python
[Python] Fwd: psycopg3: request for support
grande Daniele!! ... prepared statements, pure python, copy to/from con iteratori, transazionalità ricorsiva ... async!! ... wow un grazie sentito a Daniele per tutto il lavoro su psycopg2 e buon lavoro per il 3! adesso mi attivo per il founding... cosa che invito anche voi lista a valutare ciao! Marco -- Forwarded message - Da: Daniele Varrazzo Date: ven 6 mar 2020 alle ore 11:31 Subject: psycopg3: request for support To: As the people who know me from the software world know, I have been psycopg2 maintainer for a good 10 years. During this time the library has become the de-facto standard for Python and PostgreSQL interoperation and I have learned all the good and all the bad of it from thousands of users. I'm proud of the good, and I would love to fix the bad. I have wanted to write a worthy successor of psycopg2 for a long time, but it hasn't been really possible because of that thing called *real job*. I know myself, I am a pretty single-threaded person, and the enthusiasm I would have poured into writing psycopg3 would have likely sent my employer bust. But there's good news! I don't have an employment now! :) So I could dedicate plenty of time to write psycopg3... if only I didn't have that background fear and need for stability that is screaming that I cannot enjoy the simple things of life (playing ukulele, making photography, writing database adapters...) but that I have to find another employment ASAP. Many companies have thrived thanks to the ease of development on the Python/Postgres platform: it would be great if they could give back some support to the project and help me writing a psycopg implementation fit for the challenges of the roaring 20s! I have written an article explaining my plans for the adapter and what it would look like: https://www.varrazzo.com/blog/2020/03/06/thinking-psycopg3/ Please let me know what you think, and if you would like to help me to make it happen please consider a contribution to keep me away from finding a proper job! Thank you! -- Daniele ___ Python mailing list Python@lists.python.it https://lists.python.it/mailman/listinfo/python
Re: [Python] applicativo Windows
grazie a tutti Il giorno gio 20 giu 2019 alle ore 14:57 Marco De Paoli ha scritto: > vorrei fare un piccolo applicativo Windows. > per partire vorrei dare una chance a qt5 https://www.qt.io/qt-for-python c'è anche la possibilità di testare con pytest https://pytest-qt.readthedocs.io/en/latest/index.html ed infine, se arrivo fin là, impacchettare il tutto con il fresco fresco pyoxidizer https://gregoryszorc.com/blog/2019/06/24/building-standalone-python-applications-with-pyoxidizer/ Gabriele, grazie della disponibilità mi piacerebbe arrivare a rilasciare un progettino open su github E, se potrai verificarlo, mi farai un favore Marco ___ Python mailing list Python@lists.python.it https://lists.python.it/mailman/listinfo/python
[Python] applicativo Windows
ciao lista, vorrei fare un piccolo applicativo Windows. Anni fa avrei usato wxWidgets, py2exe e InnoSetup Attualmente qual'è lo stato dell'arte? Voi cosa usate/usereste? Non mi dispiacerebbe un look Windows (quindi meglio non tk) "Costituisce titolo preferenziale" la possibilità dell'applicativo di autoaggiorarsi (per esempio utilizzando API rest per verificare la versione ed eventualmente scaricare l'aggiornamento) Marco ___ Python mailing list Python@lists.python.it https://lists.python.it/mailman/listinfo/python
Re: [Python] lista morta...
Il giorno lun 29 apr 2019 alle ore 14:17 Matteo Benci ha scritto: > Abbiamo deciso di abbandonare il canale telegram in forma ufficiale perché > non si volevano adeguare al COC e perché a quanto pare era più importante > l'utilizzo di bestemmie o sessismo piuttosto che il codice :( > ah, buono a sapersi lo abbandono subito da credente mi da più fastidio il sessismo che le bestemmie nel secondo caso Dio non ha bisogno di essere difeso da me (chechè ne dica qualche politico che si atteggia a paladino della divinità) viceversa il sessismo inquina l'ambiente e discrimina essere umani Marco ... però, mi viene da pensare... è nota a tutti questa dissociazione di "Python Italia" dal canale telegram? ok che io il canale telegram lo frequento poco, però questa cosa mi era proprio sfuggita... ___ Python mailing list Python@lists.python.it https://lists.python.it/mailman/listinfo/python
Re: [Python] Domanda sui dizionari.
ciao Gabriele, Il giorno lun 11 feb 2019 alle ore 16:38 Gabriele Battaglia < iz4...@libero.it> ha scritto: > Ciao a tutti. > Quanto tempo! > Dunque dunque, vediamo chi, fra i sopravvissuti all'influenza, tremenda, > di quest'anno, avrà voglia di leggere la mia domanda e darmi una dritta. > > Siamo nella fase finale di un gioco ed è ora di stampare la classifica > dei vittoriosi. > > Ho un dizionario che ha questa struttura: > > giocatori= {'nome' : [ punteggio, vittorie, patte, sconfitte ] } > > Posso pertanto accedere facilmente ai dati dei singoli giocatori, ad > esempio per conoscere il numero di vittorie accumulate da Valter > interrogherò giocatori['Valter'][1] > > Il problema sorge quando devo stampare una classifica. L'utente può > decidere se la vuole basata sul punteggio piuttosto che sul numero di > vittorie, se la vuole ascendente o discendente. > FIELDS = ['nome', 'punteggio', 'vittorie', 'patte', 'sconfitte'] def output(d, field_name, reverse=False): pos = FIELDS.index(field_name) direction = "inversa " if reverse else "" flat = [(n, *v) for n, v in giocatori.items()] print(f"Classifica ordinata {direction}per {field_name}") print("\n".join(["\t".join(map(str, r)) for r in sorted(flat, key=lambda r: r[pos], reverse=reverse)])) giocatori= { 'nc' : [1, 50], 'nd' : [2, 10], 'nb' : [3, 30], 'ne' : [4, 20], 'na' : [5, 40], } output(giocatori, 'nome') output(giocatori, 'vittorie') output(giocatori, 'vittorie', True) Si avvicina a quello che avevi in mente? Marco ___ Python mailing list Python@lists.python.it https://lists.python.it/mailman/listinfo/python
Re: [Python] tkinter Treeview
ciao Massimo Il giorno mer 17 ott 2018 alle ore 22:20 Marcello ha scritto: > Ciao a tutti, > ok getto la spugna ... sono costretto a chiedere il vostro aiuto > è 2 sere che cerco di risolvere questo problema ma non ne vengo fuori > neanche con google :) > > devo creare un elenco con treeview e devo mettere un colore di sfondo > diverso tra i 2 cicli di for > > googlando in giro ho letto che bisogna utilizzare il tag_configure > > .tag_configure(*tagName*, option=None, ***kw*) > > quindi ho aggiunto all'interno del for: > > elenco.tag_configure('background', option='red') > > ma mi restituisce un errore > > potete indirizzarmi sulla retta via? > hai visto questo? https://stackoverflow.com/questions/7878730/ttk-treeview-alternate-row-colors in pratica prima devi fare un tag_configure per definire il tag che ti servono e poi assegni il tag (o i tag) che vuoi ai vari item provando a modificare il tuo codice diventa... (attenzione, non testato) > questo è il mio codice: > > > > from tkinter import ttk > import tkinter as tk > > def selectItem(a): > curItem = elenco.focus() > print (elenco.item(curItem)["text"]) > > finestra = tk.Tk() > > elenco = ttk.Treeview(finestra, selectmode='browse') > elenco.pack(side='left') > > vsb = ttk.Scrollbar(finestra, orient="vertical", command=elenco.yview) > vsb.pack(side='right', fill='y') > elenco.configure(yscrollcommand=vsb.set) > > elenco["columns"]=("one") > elenco.column("one", width=100 ) > elenco.insert("" , 0, text="PrimaColonna", values=("SecondaColonna")) > # qui crei i tag: elenco.tag_configure("warning", background='red') elenco.tag_configure("normal", background='black') > for a in range (1,10): > # qui sostituisci la riga seguente: > elenco.insert("", 3, a, text="aa") > # con queste due: iid = elenco.insert("", 3, a, text="aa") elenco.item(iid, tags=("warnings", )) for b in range (10,20): > elenco.insert("", 3, b, text="bb") > # come sopra > elenco.bind('', selectItem) > elenco.pack() > finestra.mainloop() > ciao, Marco ___ Python mailing list Python@lists.python.it https://lists.python.it/mailman/listinfo/python
Re: [Python] Fwd: Re: evvai! finalmente funziona!
ciao Gabriella Il giorno 25 luglio 2018 15:37, laziale ha scritto: > a ecco spiegato il motivo il quale non mi rispondi più su whatsapp. > perchè tanto io sono scema, non capisco le cose e posso solo giocare! > beh, ti sbagli > se posso permettermi... non mi pare proprio che Luigi ti abbia dato della "scema" (per usare una parola tua) Ha solo detto che non hai le "basi" Il che non ha nulla di offensivo Ed è anche, se posso permettermi, vero E' ovvio che non hai le basi: hai appena iniziato! Io per esempio mi sono appassionato all'informatica quando ero alle medie, perché mi avevano regalato un VIC 20 Ci ho messo anni, non scherzo, anni!! per fare un piccolo programma che calcolasse alcune formulette Non c'era internet, non c'erano mailing list, non c'era youtube non c'era neppure python! c'era solo il BASIC con i numeri di riga ... uhm, sì, in effetti il mondo era un po' diverso ;-) Ti giuro che ci ho messo un sacco a partire dal manualetto cartaceo che c'era nella confezione per capire come organizzare un po' di input e di print per far fare qualche conticino al mio programma Tu quanto ci hai messo? ... pochi giorni? ... una settimana? Un fulmine! Grazie anche all'aiuto di questa lista e delle persone che ti hanno dato varie risposte Sei arrivata a un bel risultato, brava! Ti sei anche divertita? bene! ... ti è venuta voglia di approfondire? benissimo! Sappi comunque che ci sono un SACCO SACCO di cose ancora da imparare (pensa te che esiste anche una laurea, per dire, in Informatica... anche più di una ... e ci vogliono begli annetti per completarle) Insomma, se qualcuno ti dirà che non sai e non hai ancora le basi probabilmente non te lo dice perché ce l'ha con te Anzi! Forse vuol semplicemente dire che c'è ancora tantissimo da studiare ... e da provare! Il che è una cosa bella, ti pare? Imparare è uno dei piacere della vita, o no? Tu che ne dici? buon divertimento! Marco ___ Python mailing list Python@lists.python.it https://lists.python.it/mailman/listinfo/python
Re: [Python] calcolatrice funzionante quasi del tutto
ciao Gabriella, Il giorno 24 luglio 2018 12:42, laziale ha scritto: > ciao. > ho programmato questa piccola calcolatrice, ma nel darmi il risultato c'è > una piccola sorpresa! in effetti concatena i due parametri forniti dall'utente, invece di addizionarli > non so come sistemare la cosa. > qualcuno potrebbe aiutarmi? > ps. dovrebbe fare l'addizione > bisogna fare in modo trasformare in numero i dati che ricavi dall'utente al posto di: x = (input("scrivi il primo numero")) prova con: x = int(input("scrivi il primo numero")) Ora funziona? bye bye, Marco ... e se usi numeri con la virgola, funziona lo stesso bene? ;-) ___ Python mailing list Python@lists.python.it https://lists.python.it/mailman/listinfo/python
Re: [Python] pipenv (Was: Xkcd again)
Il giorno 4 maggio 2018 18:01, Iacopo Spallettiha scritto: > La cosa che mi fa più gola è la dichiarazione della versione di python > da usare e l'integrazione con pyenv che consentirebbe di gestire in > modo molto comodo l'upgrade delle versioni di python > pyenv, altro tool utile io sulla macchina di sviluppo tengo virtualenv e virtualenvwrapper globali installati con apt per capirsi, ed è l'unico passo fatto con sudo lato utente poi posso far convivere tutte le versioni di python che voglio tramite pyenv faccio poi i vari mkvirtualenv per ogni progetto specificando il path della versione precisa del python che mi serve a quel punto mi basterà un workon per avere un ambiente completo e autocontenuto per ogni progetto versiono sia il requirements.txt che il requirements.in e vivo abbastanza felice da qualche anno aspettando che passi la tempesta perfetta dei gestori di pacchetti per carità, capisco che il mio approccio risulti più artigianale e limitato dei vari buildout, poetry, etc. però, per il mio caso d'uso, ripeto!, per il mio caso d'uso, lo trovo essenziale e mi ci sono abituato jm2c Marco ___ Python mailing list Python@lists.python.it https://lists.python.it/mailman/listinfo/python
Re: [Python] pipenv (Was: Xkcd again)
Il giorno 4 maggio 2018 15:49, Paolo Melchiorreha scritto: > ma adesso uso da > alcuni mesi con soddisfazione pip-tools che ti permette di avere un > file con i vincoli di dipendenza da cui generare poi il classico > requirements.txt > https://github.com/jazzband/pip-tools +1 anche io mi ci trovo bene Marco ___ Python mailing list Python@lists.python.it https://lists.python.it/mailman/listinfo/python
Re: [Python] Name matching
ciao Karim, Il giorno 2 marzo 2018 07:05, Karimha scritto: > Ciao lista, ho bisogno di un suggerimento su un problema che devo > risolvere. > > Contesto: ho un'applicazione Django che si collega ad un servizio di terze > parti per ottere dei dati di un "business" che l'utente sta integrando. > Il servizio ci da varie informazioni tra cui un dato `industry_type`. > > Questo valore `industry_type` e' digitato dall'utente e significa: > descrizione dell'attivita' del business > > Ora questo valore `industry_type` lo devo confrontare con una tabella nel > database che puo' essere paragonata alla classificazione delle attivita' > ATECO[1]. La mia tabella ha un codice e una descrizione. Io faccio il match > da `industry_type` alla descrizione sul database e il match piu' probabile > "vince". > > Per applicare questo procedimento ho usato l'algoritmo jaro-winkler dal > package "jellyfish"[2], faccio il matching di > tutta la tabella nel database e il miglior match e' cio' che piu' si > avvicina. Ovviamente non funziona un gran che' perche' il si avvicina > significa quanti editing sono necessari per arriva > > > Ecco un esempio: > > *INDUSTRY TYPE*, *DESCRIZIONE TROVATA* > Solar Panels, Solar Panel Installation > Software Consultancy, Software Publishing > Auto Trim, Arts Education > Consulting, Counselling Service - Debt > Advanced Mobile Technology Development, Masonic Lodge Operation > Bridal Boutique, Primary Education > Cafe/Restaurant, Restaurant > > Ho circa 5000 industry_type disponibili realmente digitati dall'utente e > purtroppo senza il corrispettivo matching, ma controllando i match generati > dall'algoritmo, il risultato e' bassino, i match sono circa il 15%. > > Ora, c'e' modo di migliorare la situazione? > > Io stavo pensando di fare due cose: > > 1) Migliorare il matching cambiando algoritmo o applicandolo scorporando > le parole di industry_type > > 2) Applicare del "machine learning" anche se mi tocca impararmelo. Pensavo > di salvare gli abbinamenti fatti dall'utente per correggere il falso match > in modo di avere un numero sempre maggiore di associazioni di > `industry_type` al codice attivita'. > > Quindi se ad esempio l'industry_type e' "Sport activities" purtroppo non > mi esce "Sporting Club Room" che e' presente come attivita', ma mi esce > tutt'altro. > Se pero' io abbinassi al codice di "Sporting Club Room" l'abbinamento > "sport activities" corretto dall'utente, avrei qualcosa di piu' su cui fare > il matching la volta successiva. > > La cosa buffa e' che usando il matching, piu' parole scrivi piu' tendi ad > allontanarti dal match giusto se le parole sono diverse. > > Tornando all'esempio di prima: > > l'utente ha digitato "Sport" e allora il match mi da correttamente > "Sporting Club Room", ma se l'utente digita "sport activities", l'algoritmo > mi trova: "Podiatrist / Chiropodist" a causa della distanza dell'algoritmo. > > Qualcuno di voi ha affrontato questo tipo di situazioni? > non so so può essere utile nel tuo caso... comunque potresti dare un'occhiata agli algoritmi di fuzzy-match basati su q-grams Se sei su postgres fa tutto lui usando pg_trgm https://www.postgresql.org/docs/current/static/pgtrgm.html C'è poi Levenshtein (che dovrebbe essere una generalizzazione del Jaro–Winkler che hai usato tu) https://en.wikipedia.org/wiki/Levenshtein_distance Di cui trovo anche alcune implementazioni python (che però non ho mai usato): https://pypi.python.org/pypi/editdistance https://pypi.python.org/pypi/python-Levenshtein bye, Marco ___ Python mailing list Python@lists.python.it https://lists.python.it/mailman/listinfo/python
Re: [Python] Django e celery
ciao Karim, Il giorno 21 ottobre 2017 00:27, Karim <lemieli...@gmail.com> ha scritto: > Ciao lista, ciao Marco De Paoli. Ecco un breve riassunto del passaggio da > Celery a Django-Q > grazie mille delle info! M. ___ Python mailing list Python@lists.python.it https://lists.python.it/mailman/listinfo/python
Re: [Python] Django e celery
ciao Karim, Il giorno 12 ottobre 2017 22:46, Karimha scritto: > 2017-10-09 14:00 GMT+11:00 Karim : > >> [...] >> > > Piccola riunione al lavoro e abbiamo deciso di allocare del tempo nel > prossimo sprint per passare a django-q. Nessuno ha davvero avuto esperienze > con package simil celery? > io uso django-rq e non mi trovo male però ho avuto un po' di problemi in alcuni casi particolari (es. in caso di riavvio dei worker rischia di incasinarsi sui job in "processing": ne mostra due; poi se cancello dei job in coda continua a mostrarli nel conteggio) Un altra cosa che mi manca è il persistent store su DB che sia batteries-included Insomma django-q mi sembra molto interessante, grazie della segnalazione Cercherò di vedermelo, nel frattempo se tu hai news/impressioni/valutazioni condividile pure, grazie bye, Marco ___ Python mailing list Python@lists.python.it https://lists.python.it/mailman/listinfo/python
Re: [Python] OT per Marco Beri
Il giorno 14 marzo 2017 21:06, Maurizio Boscaini < maurizio.bosca...@gmail.com> ha scritto: > apprezzo anch'io > grazie 1000 > mauri > > p.s. sto terminando di scrivere "Imparare a programmare con Python" :-) > wow! https://www.amazon.it/Imparare-programmare-Python-manuale-programmatori/dp/8850333986 lo aspetto con ansia! ... acc, però, "1 gen 2030"! mio figlio avrà 25 anni per allora :-( metti sotto il Beri a scrivere! che sull'argomento materiale ne ha già tanto di buono :-) buon lavoro ad entrambi! Marco ___ Python mailing list Python@lists.python.it http://lists.python.it/mailman/listinfo/python
Re: [Python] Software per creare grafici UML su mac
Il giorno 10 gennaio 2017 11:49, Karimha scritto: > Cosa usate per fare grafici uml su mac? Ho visto "modelio", ma usa java e > io sto abbastanza male quando devo far partire java... > > Idee? > io mi sono trovato bene con questo http://plantuml.com/ c'è sempre java di mezzo però lo usi solo per generare il png (o che altro formato vuoi) il bello, per me, è che si parte da un file di testo dove si specifica il diagramma e a me i file di testo in genere piacciono per il solito motivo che sono più coerentemente versionati con git/hg ed è quindi più facile lavorarci a più mani mani oppure tenere traccia dell'evoluzione nel tempo bye, Marco ___ Python mailing list Python@lists.python.it http://lists.python.it/mailman/listinfo/python
Re: [Python] python 3.6 & The Case Against Python 3
Il giorno 23 novembre 2016 15:34, Marco Santamaria < marco.santama...@gmail.com> ha scritto: > > 2. Le stringhe sono più difficili da usare in Python 3 per un beginner? > a proposito di py2/py3 su unicode, vi segnalo proprio oggi https://twitter.com/aymericaugustin/status/801524075705339904 e, a proposito delle difficoltà per un beginner Aymeric dice testualmente: "Python 2 strings are so beginner-hostile that they were my primary interview question for telling junior and senior developers apart." Marco ___ Python mailing list Python@lists.python.it http://lists.python.it/mailman/listinfo/python
Re: [Python] Slack channel pythonita
Il giorno 30 ottobre 2016 22:40, Karimha scritto: > Ciao a tutti, cosi' per divertirmi ho creato un team su python in > italiano, ovviamente non c'e' nessuno, ma ho preso ispirazione da un > articolo che ho letto e ho pensato di creare una community. > > Per fare il canale di pythonita ho usato slack che, per chi e' una > versione moderna di IRC, con tante cose carine in piu'. E' possibile > accedere sia da dektop che da web che da mobile. www.slack.com > > Dato che slack richiede una email per entrare nel canale, ho creato un > form usando typeform. (lo so, l'url fa pena) > > https://karim83.typeform.com/to/E0AcC5 > > Il mio intento sarebbe creare canali per tematiche diverse (#django, > #flask, #tkinter...) > > Forse e' un'idea che puo' far piacere, forse non avra' successo e nessuno > iscrivera', ma almeno ci ho provato. > e allora proviamoci! :-) io mi sono appena iscritto ciao, Marco ___ Python mailing list Python@lists.python.it http://lists.python.it/mailman/listinfo/python
[Python] fizz-buzz-in-tensorflow
http://joelgrus.com/2016/05/23/fizz-buzz-in-tensorflow/ secondo me qui è il candidato che sta valutando l'intervistatore e non viceversa! :-) (... ma veramente il test fizz-buzz è così diffuso nelle interviste?) - marco ___ Python mailing list Python@lists.python.it http://lists.python.it/mailman/listinfo/python
Re: [Python] Deploy di applicazione Django/Python3 con uwsgi su CentOS 7
Il giorno 23 giugno 2016 15:18, Marco Santamariaha scritto: > Ma il fatto di utilizzare di utilizzare o meno la modalità emperor non > dipende dalle opzioni di uwsgi? Come può essere deciso dal pacchetto > installato con yum? > beh, yum tipicamente non si limita ad installarti l'eseguibile in bin ti configura anche: utente, servizio, avvio automatico, etc. etc. (vedi l'installazione di nginx o ... postgres...) però, ripeto, bisognerebbe vedere cosa fa quello specifico pacchetto... -marco ___ Python mailing list Python@lists.python.it http://lists.python.it/mailman/listinfo/python
Re: [Python] Deploy di applicazione Django/Python3 con uwsgi su CentOS 7
Il giorno 23 giugno 2016 15:06, Marco De Paoli <depao...@gmail.com> ha scritto: > > > Il giorno 23 giugno 2016 14:53, Marco Santamaria < > marco.santama...@gmail.com> ha scritto: > >> >> 2016-06-23 14:48 GMT+02:00 Marco De Paoli <depao...@gmail.com>: >>> >>> """ >>> Now that the development files are available, we can install uWSGI >>> globally through pip by typing: >>> sudo pip install uwsgi >>> """ >>> >>> ... non mi pare che sia all'interno dell'environment, bensì globale >>> risulterà un solo uwsgi per tutti i virtualenv >>> >> >> Ma se il pip di sistema utilizza Python 2.7 e il mio virtual environment >> usa Python 3.4, questo non può essere un problema? >> > > no, direi di no > ho detto un idiozia sì, hai ragione, può essere un problema nel mio caso non ho ambienti misti -marco ___ Python mailing list Python@lists.python.it http://lists.python.it/mailman/listinfo/python
Re: [Python] Deploy di applicazione Django/Python3 con uwsgi su CentOS 7
Il giorno 23 giugno 2016 14:53, Marco Santamaria <marco.santama...@gmail.com > ha scritto: > > 2016-06-23 14:48 GMT+02:00 Marco De Paoli <depao...@gmail.com>: >> >> """ >> Now that the development files are available, we can install uWSGI >> globally through pip by typing: >> sudo pip install uwsgi >> """ >> >> ... non mi pare che sia all'interno dell'environment, bensì globale >> risulterà un solo uwsgi per tutti i virtualenv >> > > Ma se il pip di sistema utilizza Python 2.7 e il mio virtual environment > usa Python 3.4, questo non può essere un problema? > no, direi di no > Che vantaggio c'è a installare globalmente con pip invece che con yum (su > EPEL c'è la versione 2.0.12)? > con pip sei sicuro di installare l'ultima versione disponibile su pypi (che normalmente è molto aggiornata) con yum dipendi dalle scelte dei mantainer... non so quale versione proponga yum al momento, ma da come ricordo era piuttosto vecchiotta oltre al fatto che gli step di installazione proposti da digital ocean prevedono di installare uwsgi in modalità emperor che mi pare decisamente la più flessibile e anche qui non so invece cosa decida di fare il pacchetto installato con yum -marco ___ Python mailing list Python@lists.python.it http://lists.python.it/mailman/listinfo/python
Re: [Python] Deploy di applicazione Django/Python3 con uwsgi su CentOS 7
Il giorno 23 giugno 2016 14:30, Marco Santamariaha scritto: > > >- > > https://www.digitalocean.com/community/tutorials/how-to-serve-django-applications-with-uwsgi-and-nginx-on-centos-7 > > """ Now that the development files are available, we can install uWSGI globally through pip by typing: sudo pip install uwsgi """ ... non mi pare che sia all'interno dell'environment, bensì globale risulterà un solo uwsgi per tutti i virtualenv -marco ___ Python mailing list Python@lists.python.it http://lists.python.it/mailman/listinfo/python
Re: [Python] urlparse "da i numeri"
Il giorno 22 giugno 2016 14:43, Manlio Perillo <manlio.peri...@gmail.com> ha scritto: > 2016-06-22 12:43 GMT+02:00 Marco De Paoli <depao...@gmail.com>: > > pare che urlparse nella lib standard abbia un comportamento un po' > strano... > > > > [...] > > > > Daccordo che il port number è un intero a 16-bit, per cui oltre 65535 > non ha > > senso, però forse mi sarei aspettato un eccezione, mentre invece la port > > oltre un certo numero viene semplicemente interpretata come None > > > >>>> urlparse('redis://localhost:65535').port > > 65535 > >>>> urlparse('redis://localhost:65536').port is None > > True > > > > Nell' RFC3986 non è prescritto nessun limite per la porta: > > port = *DIGIT > a quanto pure in futuro python lancerà eccezione https://github.com/python/cpython/blob/master/Lib/urllib/parse.py#L159 beh, meglio di adesso, che è così https://github.com/python/cpython/blob/288becf5563483ae9da14c6fb5deb4f32e4cd3d5/Lib/urllib/parse.py#L160 In merito al vincolo sul range 0-65535, ecco la discussione relativa https://bugs.python.org/issue14036 -marco ___ Python mailing list Python@lists.python.it http://lists.python.it/mailman/listinfo/python
Re: [Python] urlparse "da i numeri"
Il giorno 22 giugno 2016 12:43, Marco De Paoli <depao...@gmail.com> ha scritto: > pare che urlparse nella lib standard abbia un comportamento un po' > strano... > > Python 2.7.6 (default, Jun 22 2015, 17:58:13) > [GCC 4.8.2] on linux2 > Type "help", "copyright", "credits" or "license" for more information. > >>> from urlparse import urlparse > >>> u = urlparse('redis://localhost:6380') > >>> u.port > 6380 > >>> u = urlparse('redis://localhost:63801') > >>> u.port > 63801 > >>> u = urlparse('redis://localhost:638012') > >>> u.port > >>> u.port is None > True > > stessa cosa succede su python 3 > cambiando ovviamente l'import > >>> from urllib.parse import urlparse > > > Daccordo che il port number è un intero a 16-bit, per cui oltre 65535 non > ha senso, però forse mi sarei aspettato un eccezione, mentre invece la port > oltre un certo numero viene semplicemente interpretata come None > > >>> urlparse('redis://localhost:65535').port > 65535 > >>> urlparse('redis://localhost:65536').port is None > True > > sorprendentemente su python 2.6 funziona correttamente! Python 2.6.6 (r266:84297, Aug 24 2010, 18:46:32) [MSC v.1500 32 bit (Intel)] on win32 Type "help", "copyright", "credits" or "license" for more information. >>> from urlparse import urlparse >>> urlparse('redis://localhost:638012').port 638012 -marco ___ Python mailing list Python@lists.python.it http://lists.python.it/mailman/listinfo/python
Re: [Python] urlparse "da i numeri"
Il giorno 22 giugno 2016 14:43, Manlio Perillo <manlio.peri...@gmail.com> ha scritto: > 2016-06-22 12:43 GMT+02:00 Marco De Paoli <depao...@gmail.com>: > > pare che urlparse nella lib standard abbia un comportamento un po' > strano... > > > > [...] > > > > Daccordo che il port number è un intero a 16-bit, per cui oltre 65535 > non ha > > senso, però forse mi sarei aspettato un eccezione, mentre invece la port > > oltre un certo numero viene semplicemente interpretata come None > > > >>>> urlparse('redis://localhost:65535').port > > 65535 > >>>> urlparse('redis://localhost:65536').port is None > > True > > > > Nell' RFC3986 non è prescritto nessun limite per la porta: > > port = *DIGIT > più prosaicamente mi ero fermato a wikipedia https://en.wikipedia.org/wiki/Port_(computer_networking) che parla appunto di interi a 16-bit grazie della precisazione M. ___ Python mailing list Python@lists.python.it http://lists.python.it/mailman/listinfo/python
Re: [Python] urlparse "da i numeri"
Il giorno 22 giugno 2016 12:43, Marco De Paoli <depao...@gmail.com> ha scritto: > pare che urlparse nella lib standard abbia un comportamento un po' > strano... > > Python 2.7.6 (default, Jun 22 2015, 17:58:13) > [GCC 4.8.2] on linux2 > Type "help", "copyright", "credits" or "license" for more information. > >>> from urlparse import urlparse > >>> u = urlparse('redis://localhost:6380') > >>> u.port > 6380 > >>> u = urlparse('redis://localhost:63801') > >>> u.port > 63801 > >>> u = urlparse('redis://localhost:638012') > >>> u.port > >>> u.port is None > True > > stessa cosa succede su python 3 > cambiando ovviamente l'import > >>> from urllib.parse import urlparse > > > Daccordo che il port number è un intero a 16-bit, per cui oltre 65535 non > ha senso, però forse mi sarei aspettato un eccezione, mentre invece la port > oltre un certo numero viene semplicemente interpretata come None > > >>> urlparse('redis://localhost:65535').port > 65535 > >>> urlparse('redis://localhost:65536').port is None > True > > Marco > ah, ho usato "redis" come scheme ma redis non centra nulla, avessi usato "http" sarebbe stato lo stesso -marco ___ Python mailing list Python@lists.python.it http://lists.python.it/mailman/listinfo/python
[Python] urlparse "da i numeri"
pare che urlparse nella lib standard abbia un comportamento un po' strano... Python 2.7.6 (default, Jun 22 2015, 17:58:13) [GCC 4.8.2] on linux2 Type "help", "copyright", "credits" or "license" for more information. >>> from urlparse import urlparse >>> u = urlparse('redis://localhost:6380') >>> u.port 6380 >>> u = urlparse('redis://localhost:63801') >>> u.port 63801 >>> u = urlparse('redis://localhost:638012') >>> u.port >>> u.port is None True stessa cosa succede su python 3 cambiando ovviamente l'import >>> from urllib.parse import urlparse Daccordo che il port number è un intero a 16-bit, per cui oltre 65535 non ha senso, però forse mi sarei aspettato un eccezione, mentre invece la port oltre un certo numero viene semplicemente interpretata come None >>> urlparse('redis://localhost:65535').port 65535 >>> urlparse('redis://localhost:65536').port is None True Marco ___ Python mailing list Python@lists.python.it http://lists.python.it/mailman/listinfo/python
Re: [Python] Decorated Concurrency - Python multiprocessing made really really easy
Il giorno 20 maggio 2016 11:56, Marco Beriha scritto: > 2016-05-20 11:46 GMT+02:00 Marco Beri : > >> 2016-05-20 11:39 GMT+02:00 Strap : >> >>> Ciao a tutti, >>> per curiosità, ma soprattutto per vedere l'effetto che fa :-P, condivido >>> con >>> voi il seguente link: https://www.peterbe.com/plog/deco >> >> >> Bello! Certo che tre sleep(5) in parallelo vanno bene. >> Vedo meno bene tre loop che fanno robe cpu intensive :-) >> > > Ho parlato troppo presto... Poi nel resto dell'articolo fa degli esempi > molto più fighi! > > Grassie! > +1 Marco ___ Python mailing list Python@lists.python.it http://lists.python.it/mailman/listinfo/python
Re: [Python] I: aiuto
Il 10 maggio 2016 17:48, vincitorionic...@inwind.itha scritto: > > > Buonasera, mi chiamo nicola e sono un vostro iscritto, da circa un mese ho > acquistato raspberry pi 3 con hat matrix. > ho un problema urgente da risolvere > > il mio script > > cd rpi-fb-matrix > sudo ./rpi-fb-matrix matrix.cfg > > 1 - vorrei che lo script sopra partisse automaticamente all'accensione del > raspberry tramite LXTerminal. > > in attesa di una urgente risposta python non centra si tratta di avviare uno script all'avio del sistema operativo se cerchi in google "raspbian start service on boot" oppure "raspbian start python script on boot" trovi un sacco di doc. (in effetti non è neanche specifico della raspian, bensì di linux) Marco ___ Python mailing list Python@lists.python.it http://lists.python.it/mailman/listinfo/python
Re: [Python] __debug__ e EAFP
Il 10 maggio 2016 17:02, Roberto Polliha scritto: > Il 10 maggio 2016 12:08, Luca Bacchi ha scritto: >> "assert" va usato solo come forma di programmazione difensiva, > > Il comportamento è ereditato dal C. non ricordo dove l'ho letta comunque l'immagine mi sembra efficace e ve la ripropongo è presa dall'elettronica è come se in un circuito uno si prendesse il disturbo di predisporre tutti i fusibili li lascia lì mentre verifica la scheda a banco e poi li toglie tutti (o meglio li mette in corto) una volta che usa la scheda nell'ambito definitivo o sul prodotto industriale brr! ciao, Marco ___ Python mailing list Python@lists.python.it http://lists.python.it/mailman/listinfo/python
[Python] Guido - "King's Day Speech"
"King's Day Speech" http://neopythonic.blogspot.com/2016/04/kings-day-speech.html ... nel caso non l'aveste ancora notato ___ Python mailing list Python@lists.python.it http://lists.python.it/mailman/listinfo/python
Re: [Python] attributi astratti?
Il 11/mar/2016 17:13, "Marco Santamaria"ha scritto: > > Ciao, > > sto lavorando ad un piccolo framework nel quale mi sento autorizzato ad usare il modulo abc per creare delle classi astratte/interfacce per permetterne l'estensione. https://pymotw.com/3/abc/ publicato ieri - Marco ___ Python mailing list Python@lists.python.it http://lists.python.it/mailman/listinfo/python
Re: [Python] aiuto, mi serve un test
Il giorno 11 marzo 2016 14:44, Marco De Paoli <depao...@gmail.com> ha scritto: > ciao lista! > devo fare un test ai miei studenti di un mini corso che ho fatto su python > Per caso avete qualcosa di pronto? > Niente di cool, domande semplici, gli ho insegnato le basi > Pensavo a domande a risposta multipla, (non certo a fargli scrivere lungo > codice) > Durata del test un oretta massimo (ma se si può fare in mezz'ora meglio > ancora) > In italiano (ma se avete risorse in inglese dite pure che poi gliele > traduco) > penso che prenderò da qui: http://www.tutorialspoint.com/python/python_online_test.htm grazie per i suggerimenti arrivatemi da "dietro le quinte"! Marco ___ Python mailing list Python@lists.python.it http://lists.python.it/mailman/listinfo/python
[Python] aiuto, mi serve un test
ciao lista! devo fare un test ai miei studenti di un mini corso che ho fatto su python Per caso avete qualcosa di pronto? Niente di cool, domande semplici, gli ho insegnato le basi Pensavo a domande a risposta multipla, (non certo a fargli scrivere lungo codice) Durata del test un oretta massimo (ma se si può fare in mezz'ora meglio ancora) In italiano (ma se avete risorse in inglese dite pure che poi gliele traduco) Grazie mille per qualunque idea! Marco ... dai dai dai, che sono giù di fantasia, e devo fargli il test lunedì TYSM ___ Python mailing list Python@lists.python.it http://lists.python.it/mailman/listinfo/python
Re: [Python] Ciao a tutti da un vero principiante
Il giorno 9 febbraio 2016 17:13, Andrea D'Amoreha scritto: > Io ad un principainte assoluto suggerisco "Learn python the hard way" > di Zed Shaw (in inglese) che parte proprio da zero e spiega un sacco > di aspetti interessanti fino ad una webapp. > alcune affermazioni sono un po' obsolete: "I repeat, do not use Python 3." "Just learn Python 2 and ignore people saying Python 3 is the future." [http://learnpythonthehardway.org/book/ex0.html] secondo me, per chi inizia da zero e non ha un obiettivo legacy (es. manutenere un sito fatto ancora in python 2) è ormai meglio il contrario: partire direttamente con python3 e così impara subito ad usare la print corretta e non deve neanche imparare che esisteva una differenza tra "str" e "unicode" ciao, Marco ___ Python mailing list Python@lists.python.it http://lists.python.it/mailman/listinfo/python
Re: [Python] Pordenone
Il giorno 20 novembre 2015 09:18, Marco Fochesatoha scritto: > > Il 20/Nov/2015 09:04, "Matteo Boscolo" ha > scritto: > > > > io sono vicino a venezia.. (cavallino-Treporti) : > > Popolazione Residente > > 13.517 (M 6.612, F 6.905) > > Densità per Kmq: 301,2 > > Superficie: 44,87 Kmq > > > > :))) > > > > > > Il 20/11/2015 08:47, Marco Beri ha scritto: > >> > >> > >> Il 19 nov 2015 11:36 PM, "enrico franchi" > ha scritto: > >> > > >> > 2015-11-19 17:32 GMT+00:00 piergiorgio pancino : > >> >> > >> >> c'è nessuno che abita in zona Pordenone? > >> > > >> > circa 50 mila persone in citta', 300 mila nella provincia. > >> > >> Ho cercato su Wikipedia per dare la stessa risposta ma poi mi sono > detto "Marco, non fare il solito cazzone". > >> > >> > >> > >> Ciao. > >> Marco. > > Ha scatenato l'inferno. > Pordenone scatena l'inferno ... ehm, per la cronaca, io ci vivo in provincia di Pordenone, uno fra i 300.000 :-) e ora, scusate, devo andare, ormai le fiamme mi lambiscono :-D Marco ___ Python mailing list Python@lists.python.it http://lists.python.it/mailman/listinfo/python
Re: [Python] Paramiko - Ciclo for e Array (script)
ciao Remo, 2015-10-06 12:40 GMT+02:00 Remo Cosini: > Salve a tutti, > sono nuovo di python e finora sono riuscito a cavarmela da autodidatta. > Ho trovato uno script (che fa uso di paramiko) e l'ho modificato secondo > mie esigenze. Avevo necessità di testare degli accessi SSH (con user e pwd > già cablata) partendo da un array e mettendo > il tutto dentro un ciclo, ma sembra non andare, l'errore che leggo è il > seguente: > > Could not SSH to ['localhost', '127.0.0.1'], waiting for it to start > Could not connect to ['localhost', '127.0.0.1']. Giving up > > Sembra non prendere i valori host uno per volta, ma tutti insieme, ecco lo > script: > > import sys > import time > import select > import paramiko > i = 1 > host = ['localhost', '127.0.0.1', '192.168.2.2'] > for item in host: > da questo momento in poi dovresti usare "item" e non "host" while True: > print 'Trying to connect to %s (%i/3)' % (host, i) > try: > ssh = paramiko.SSHClient() > > ssh.set_missing_host_key_policy(paramiko.AutoAddPolicy()) > ssh.connect(host, port=22, username='centos', > password='reverse') > qui usi "host", ma dovevi usare "item" > print "Connected to %s" % host > break > except paramiko.AuthenticationException: > print "Authentication failed when connecting to > %s" % host > sys.exit(1) > except: > ti consiglio di evitare l'except "senza niente" https://realpython.com/blog/python/the-most-diabolical-python-antipattern/ > print "Could not SSH to %s, waiting for it to > start" % host > i += 1 > time.sleep(2) > # If we could not connect within time limit > if i == 3: > print "Could not connect to %s. Giving up" % host > sys.exit(1) > # Send the command (non-blocking) > stdin, stdout, stderr = ssh.exec_command("uname") > # Wait for the command to terminate > while not stdout.channel.exit_status_ready(): > # Only print data if there is data to read in the channel > if stdout.channel.recv_ready(): > rl, wl, xl = select.select([stdout.channel], [], > [], 0.0) > if len(rl) > 0: > # Print data from stdout > print '---' > print stdout.channel.recv(1024), > # Send the command (non-blocking) > stdin, stdout, stderr = ssh.exec_command("hostname") > # Wait for the command to terminate > while not stdout.channel.exit_status_ready(): > # Only print data if there is data to read in the channel > if stdout.channel.recv_ready(): > rl, wl, xl = select.select([stdout.channel], [], > [], 0.0) > if len(rl) > 0: > # Print data from stdout > print stdout.channel.recv(1024), > # Send the command (non-blocking) > stdin, stdout, stderr = ssh.exec_command("hostname -I") > # Wait for the command to terminate > while not stdout.channel.exit_status_ready(): > # Only print data if there is data to read in the channel > if stdout.channel.recv_ready(): > rl, wl, xl = select.select([stdout.channel], [], > [], 0.0) > if len(rl) > 0: > # Print data from stdout > print stdout.channel.recv(1024), > print '---' > # > # Disconnect from the host > # > print "Command done, closing SSH connection." > ssh.close() > > Qualcuno mi illumina? > ciao, Marco ___ Python mailing list Python@lists.python.it http://lists.python.it/mailman/listinfo/python
Re: [Python] FRP book (era: Re: Web Server e Web Framework)
Il 03/lug/2015 15:43 Nicola Larosa n...@teknico.net ha scritto: Marco Beri wrote: Comunque, aldilà o meno, spererei di vedere qualcosa di diverso nel nostro lavoro, prima di arrivare a quel punto fatidico. Intendo come modalità di sviluppo. Non per il gusto della novità fine a se stessa, ma per quella vaga sensazione di esser circondati di problemi di base irrisolti, nevvero? :-) Potresti fare di peggio che leggere il primo capitolo (gratis) di questo: Functional Reactive Programming http://www.manning.com/blackheath/ Magari non ti riconosci nelle soluzioni, ma nei problemi scommetto di sì. Interessante. Ma perché libreria ed esempi in java? Mi parrebbe che i channel di go ci andrebbero a nozze con frp e il suo approccio data-driven / data-flow Oppure no? Per dire, mi piglia tutto il discorso del frp (data flow, dichiarativo, etc.) ... ma quello che ne salta fuori in java (vedi l'esempio di destra di pagina 15) non è che mi piaccia granché Marco ___ Python mailing list Python@lists.python.it http://lists.python.it/mailman/listinfo/python
Re: [Python] scrivere app python con layout grafico in html5?
Il giorno 25 giugno 2015 16:06, Manlio Perillo manlio.peri...@gmail.com ha scritto: Per questo è nato asm.js ed ora diversi gruppi si sono uniti in https://www.w3.org/community/webassembly/ Vedi anche https://brendaneich.com/2015/06/from-asm-js-to-webassembly/ aggiungo questo https://medium.com/javascript-scene/why-we-need-webassembly-an-interview-with-brendan-eich-7fb2a60b0723 ciao, Marco ___ Python mailing list Python@lists.python.it http://lists.python.it/mailman/listinfo/python
Re: [Python] Red Baron
ciao Giovanni, 2015-06-26 17:42 GMT+02:00 Giovanni Porcari giovanni.porc...@softwell.it: Solo per segnalare un progetto che mi piace e che stiamo usando in questi giorni: https://github.com/psycojoker/redbaron in effetti è un bel progetto hai voglia di dirci per cosa lo usate voi? ciao, Marco ___ Python mailing list Python@lists.python.it http://lists.python.it/mailman/listinfo/python
Re: [Python] Red Baron
Il giorno 26 giugno 2015 18:15, Giovanni Porcari giovanni.porc...@softwell.it ha scritto: Il giorno 26/giu/2015, alle ore 18:01, Marco De Paoli depao...@gmail.com ha scritto: ciao Giovanni, 2015-06-26 17:42 GMT+02:00 Giovanni Porcari giovanni.porc...@softwell.it: Solo per segnalare un progetto che mi piace e che stiamo usando in questi giorni: https://github.com/psycojoker/redbaron in effetti è un bel progetto hai voglia di dirci per cosa lo usate voi? In Genropy (come del resto in Django) per definire il model si scrive del codice python. Per progetti abbastanza grossi e con moltissime tabelle e campi (oppure per piccoli progetti in mano a sviluppatori alle prime armi) può essere comodo avere una GUI per gestire il model. Stiamo realizzando un tool di supporto che consente di vedere in una griglia tutte le tabelle di un package (e di editarle) e in una griglia, collegata alla prima, le colonne della tabella selezionata. Anche in questo caso la griglia è editabile per cambiare le caratteristiche delle colonne. Possono essere aggiunte o tolte sia le tabelle che le colonne di una tabella. Quindi per popolare le griglie da editare ci affidiamo a Red Baron e successivamente, sempre tramite Red Baron, andiamo a scrivere la nuova versione del model senza interferire con le altre parti di codice eventualmente presenti nel modulo che definisce la tabella. Senza Red Baron credo sarebbe stato MOLTO più difficile ;) Molto interessante Ciao, Marco ___ Python mailing list Python@lists.python.it http://lists.python.it/mailman/listinfo/python
Re: [Python] Fantasiosa scienza (era: Re: Stop using print for debugging [TDD Everywhere])
2015-06-24 22:57 GMT+02:00 Carlo Miron ca...@miron.it: Il 24/giu/2015 17:08, Marco De Paoli depao...@gmail.com ha scritto: a proposito di Solaris e di Tarkovsky (... tanto per non andare OT, eh) qualcuno ha visto La zona / Stalker ? http://www.imdb.com/title/tt0079944/?ref_=fn_tt_tt_36 l'ho visto da poco perchè me lo ha regalato un amico e non mi sono ancora fatto un idea precisa stilisticamente è probabilmente strepitoso ma non ho ancora capito se mi è piaciuto :-D non ho visto il film, ma ho letto il romanzo nell'edizione Urania del 1988, e l'ho trovato semplicemente strepitoso. http://www.amazon.it/gp/product/8871685717 ordinato, grazie :-) il film è liberamente tratto dal libro (in effetti pare sia una specie di seguito del libro) comunque la sceneggiatura è scritta dagli stessi autori bye, Marco P.S. ... per molti versi (o anche nel multiverso [1]) è questa lista ad essere strepitosa uno dei posti più brillanti del web, ha detto qualcuno si passa da discussioni di estetica fantascientifica ad analisi sulla teoria della roulette a discussioni sulla netiquette a ... Python, la sliding-door di un multiverso cognitivo! :-D [1] https://it.wikipedia.org/wiki/Multiverso ___ Python mailing list Python@lists.python.it http://lists.python.it/mailman/listinfo/python
Re: [Python] So che e' OT ma e' troppo carina
2015-06-24 23:19 GMT+02:00 Daniele Palmese pal...@gmail.com: 2015-06-24 23:02 GMT+02:00 Carlos Catucci carlos.catu...@gmail.com: Scherodinger's Backup The condition of any backup is unknown until a restore is attempted Povero gatto... pardon, backup. I backup funzionano sempre. Sono i restore che danno problemi M. ___ Python mailing list Python@lists.python.it http://lists.python.it/mailman/listinfo/python
Re: [Python] Errore di semantica -
Il giorno 25 giugno 2015 01:23, Marco Beri marcob...@gmail.com ha scritto: 2015-06-25 1:22 GMT+02:00 Simone Federici s.feder...@gmail.com: Ma credo che le parole adatte siano quelle di Gandhi: La propensione dell'uomo a ingannare se stesso è immensamente superiore alla sua capacità d'ingannare il prossimo. Questa è una incredibile perla che non conoscevo. Grazie Simone. +1 Marco ___ Python mailing list Python@lists.python.it http://lists.python.it/mailman/listinfo/python
Re: [Python] wx e Tools. Era: Re: scrivere app python con layout grafico in html5?
Il giorno 25 giugno 2015 01:01, Daniele Tricoli er...@mornie.org ha scritto: On Wednesday 24 June 2015 21:35:03 Carlos Catucci wrote: Io sapevo Boa Constructor, gioco di parole tipico dello humour da informatici, quello che dici tu a programmare serve a poco Ah, quindi non vi riferivate a questo? :) https://i.imgur.com/aVu8Oig.png o/ wow! :-) Marco ___ Python mailing list Python@lists.python.it http://lists.python.it/mailman/listinfo/python
Re: [Python] Circular references Django migration problem
Il giorno 23 giugno 2015 22:04, Simone Federici s.feder...@gmail.com ha scritto: Carlos Catucci: Va beh lunedi' provo a commentare un poco di rovba fino a che non vedo socmparire la Circular Ref cosi da capire cosa gli dia fastidio. hai provato a riscrivere il builtin __import__ in modo da stamparti l'ordine di importazione dei moduli? qualcosa di questo tipo da mettere nel manage.py: import __builtin__ original_import = __builtin__.__import__ def log_import(name, globals={}, locals={}, fromlist=[], level=-1): print name return original_import(name, globals=globals, locals=locals, fromlist=fromlist, level=level) __builtin__.__import__ = log_import fico! Marco ___ Python mailing list Python@lists.python.it http://lists.python.it/mailman/listinfo/python
[Python] python è superato
... torniamo al BASIC! https://github.com/rollbear/basicpp attraverso il C++ e ora permettetemi un piccolo OT... u{}.format({f: uè}) u{'f': u'\\xe8'} proliferazione innaturale di barre ... pare tanto un bel bug mi succede su 2.7.6, devo ancora provare altre versioni 2.7.x (ovviamente sulla 3 non succede) Marco ___ Python mailing list Python@lists.python.it http://lists.python.it/mailman/listinfo/python
Re: [Python] Fantasiosa scienza (era: Re: Stop using print for debugging [TDD Everywhere])
Il giorno 24 giugno 2015 16:58, Matteo Scarpa matteoscarp...@gmail.com ha scritto: Quindi siamo in 3. In realta' 2 e mezzo perche' ho dormito buona parte del tempo. Ancora adesso solo apensarci mi viene l'abbiocco. Prima ho visto l'alternativa russa poi quella USA... Magicamente da allora non percepisco piú un film come lento... É grave? a proposito di Solaris e di Tarkovsky (... tanto per non andare OT, eh) qualcuno ha visto La zona / Stalker ? http://www.imdb.com/title/tt0079944/?ref_=fn_tt_tt_36 l'ho visto da poco perchè me lo ha regalato un amico e non mi sono ancora fatto un idea precisa stilisticamente è probabilmente strepitoso ma non ho ancora capito se mi è piaciuto :-D Marco ___ Python mailing list Python@lists.python.it http://lists.python.it/mailman/listinfo/python
Re: [Python] BASIC [ERA]: Re: python è superato
2015-06-24 17:11 GMT+02:00 Lorenzo Sutton lorenzofsut...@gmail.com: On 24/06/2015 15:16, Marco De Paoli wrote: ... torniamo al BASIC! https://github.com/rollbear/basicpp attraverso il C++ Volendo c'è anche BaCon: http://www.basic-converter.org/ ... notare le date di rilascio dei due progetti secondo me orami possiamo individuare un trend stabile di ritorno al BASIC M. ___ Python mailing list Python@lists.python.it http://lists.python.it/mailman/listinfo/python
Re: [Python] scrivere app python con layout grafico in html5?
Il giorno 24 giugno 2015 16:29, germano carella germano.care...@gmail.com ha scritto: Ciao a tutti, Da qualche mese sto studiando l'accessibilità di html5. Effettivamente debbo ammettere, anche perché posso testarlo con i miei strumenti, che html5, se usato come si deve, è piu' accessibile di tutti i framework che conosco... Io uso python come linguaggio di programmazione e mi stavo chiedendo se fosse possibile scrivere app con un layout grafico scritto in html5 e javascript per gli eventi (pressione di tasti etc). Wxpython, che è quello che uso ora, è abbastanza accessibile, ma non del tutto. Le grid, per esempio, non lo sono affatto... ma anche i controlli combinati come TreeListCtrl etc. Cercando in rete avevo trovato PyJs, che faceva, almeno secondo quello che c'era scritto, ciò che mi interessava. Ma sotto windows 8.1 ci dev'essere qualche problema, perché le applicazioni che eseguono sul desktop non partono. PyJs utilizza MSHTML.dll, che è un componente COM, per incorporare il browser web che ospita i file per il layout. Wx ha il suo, ma sembra che possa leggere solo alcuni tag, sicuramente non i tag HTML5. Qualcuno di voi per caso ne sa di piu', o magari può indirizzarmi? Grazie! hai valutato di strutturare una web app? per il lato server potresti appoggiarti a django + djangorestframework e lato server gestisci il salvataggio dei dati e la logica applicativa poi per il lato client ti appoggi al browser usando javascript e ajax, e magari facendoti aiutare da un framework (angular?) ti strutturi un bella single page application ciao, Marco ___ Python mailing list Python@lists.python.it http://lists.python.it/mailman/listinfo/python
Re: [Python] [Django-it] non rompetemi più le palle in chat...
Il giorno 29 maggio 2015 15:12, Carlo Miron ca...@miron.it ha scritto: https://www.youtube.com/user/pyconitalia fantastico, grazie! Marco ___ Python mailing list Python@lists.python.it http://lists.python.it/mailman/listinfo/python
Re: [Python] Che ne dite di RUST?
2015-05-24 19:58 GMT+02:00 Carlos Catucci carlos.catu...@gmail.com: https://github.com/rust-lang/rust http://lucumr.pocoo.org/2015/5/27/rust-for-pythonistas/ ciao, Marco ___ Python mailing list Python@lists.python.it http://lists.python.it/mailman/listinfo/python
Re: [Python] Integrare Python in C++
Il 27 maggio 2015 09:11, Marco Giusti marco.giu...@posteo.de ha scritto: Salve, avete esperienza a proposito in ambiente Windows? Quale è la strada consigliata? Ho visto che boost.python può essere una soluzione ma prima di gettarmi a capofitto sulla documentazione vorrei il vostro parere. con boost::python avevamo fatto belle cose alcuni anni fa su Visual Studio 2008 della serie che puoi fare cose abbastanza magiche (es. definire una classe in C++ e derivarla in python chiamando i metodi della classe base) metti in conto: a) alti tempi di compilazione b) saper mettere più o meno le mani sulle magie del template metaprogramming tipiche di boost c) in caso di errori di compilazione ricevere messaggi infiniti (come è tipico del template metaprogramming) per il punto 2 dipende poi quanto ti vuoi spingere... se ti basta esporre qualche funzione C++ e poterla chimare da python è un conto se invece vuoi inserirti, da python, nel sistema delle classi che hai definito in C++ e derivare, ridefinire operatori, fare overload di funzioni etc. etc. beh, diventa un'altra storia (...in particolare a proposito dell'overload: ecco un punto in cui puoi avere qualche rogna perchè python non lo permette...) e comunque, rispetto a quando ci ho lavorato io con boost::python - il C++ è andato avanti, e non poco (C++ 11 e C++ 14) - boost è andato avanti anche lui (noi avevamo usato tipo boost 1.42) per cui oggi come oggi, se dovessi averne bisogno sarei il primo a dover rifare un check sullo stato attuale di boost::python jm2c bye, Marco ___ Python mailing list Python@lists.python.it http://lists.python.it/mailman/listinfo/python
Re: [Python] Ancora problemi con le funzioni ...
Il giorno 12 maggio 2015 11:44, Giovanni Porcari giovanni.porc...@softwell.it ha scritto: Il giorno 11/mag/2015, alle ore 13:21, enrico franchi enrico.fran...@gmail.com ha scritto: 2015-05-09 18:45 GMT+01:00 Giovanni Porcari giovanni.porc...@softwell.it: aiutarsi con una classe come luogo dove mettere dei metodi e salvare uno stato. +1 La prossima volta indicherò che lo snippet è solo un esempio 'ad minchiam’ … ... insomma, un esempio ad minchiam ha scatenato un commento di valore direi che siamo ad un win-win! grazie ad entrambi, Marco ___ Python mailing list Python@lists.python.it http://lists.python.it/mailman/listinfo/python
Re: [Python] Django question
2015-05-11 15:52 GMT+02:00 Carlos Catucci carlos.catu...@gmail.com: [snip] hoster_address = HostersAddress.objects.get(pk=data['hosters_address_id']) new_router, created = Routers.objects.get_or_create( { 'uuid': data['uuid'], 'mac_address': data['mac_address'], 'hosters_address_id': hoster_address, 'router_pubblic_ip': data['router_pubblic_ip'], 'active': data['active'] }, defaults={ 'uuid': data['uuid'], 'mac_address': data['mac_address'], }) perchè uuid e mac_address li hai indicati in entrambe le liste? forse intendevi questo? { 'uuid': data['uuid'], 'mac_address': data['mac_address'], }, defaults={ 'hosters_address_id': hoster_address, 'router_pubblic_ip': data['router_pubblic_ip'], 'active': data['active'] }) ossia cerchi per uuid e mac_address e solo nel caso in cui django debba crearlo allora specifichi anche hosters_address_id, router_pubblic_ip e active può essere? [snip] -- Marco ___ Python mailing list Python@lists.python.it http://lists.python.it/mailman/listinfo/python
Re: [Python] Django question
2015-05-11 16:51 GMT+02:00 Carlos Catucci carlos.catu...@gmail.com: 2015-05-11 16:46 GMT+02:00 Carlos Catucci carlos.catu...@gmail.com: in effetti provo e ti dico provato ma mi da sempre lo stesso errore. Premetto che ho controllato e non ci sono array o valori multipli nei parametri. Non riesco a capire dove possa essere il problema. Ecco il codice completo, magari auta def add_new_router(request): retval = None if 'data' in request.POST: data = json.loads(request.POST.get('data', '')) try: hoster_address = HostersAddress.objects.filter(pk=data['hosters_address_id']) new_router, created = Routers.objects.get_or_create( { 'mac_address': data['mac_address'], 'uuid': data['uuid'], }, acc, qui mac_address e uuid li stai passando dentro un dizionario e invece sono dei kwargs https://docs.djangoproject.com/en/1.8/ref/models/querysets/ prova nel formato: Routers.objects.get_or_create( mac_address=data['mac_address'], uuid=data['uuid'], defaults={ 'hosters_address_id': hoster_address[0].id, 'router_pubblic_ip': data['router_pubblic_ip'], 'active': data['active'] }) if created == True: new_router.save() retval = 'OK' except Exception, ex: print ex retval = ex return HttpResponse(retval) def fill_routers(request): for hoster_address in HostersAddress.objects.filter(active=True,deleted=False): mutable = request.POST._mutable request.POST._mutable = True request.POST['data'] = json.dumps({ 'mac_address': generate_mac_addr(), 'uuid': generate_uuid(), 'hosters_address_id': hoster_address.id, 'router_pubblic_ip': generate_ip(), 'active': True, }) request.POST._mutable = mutable new_router = add_new_router(request) return HttpResponse('OK') La fill_routers chiama la funzione dove poi e' contenuta la get_or_create. Carlos -- EZLN ... Para Todos Todo ... Nada para nosotros ___ Python mailing list Python@lists.python.it http://lists.python.it/mailman/listinfo/python ___ Python mailing list Python@lists.python.it http://lists.python.it/mailman/listinfo/python
Re: [Python] Vignetta
2015-04-25 7:53 GMT+02:00 Carlos Catucci carlos.catu...@gmail.com: https://lh3.googleusercontent.com/-GKYbX3h9wkM/VTsrMZn8gII/AEs/_0Aa0U3neTY/w506-h930/python.jpg ... che sarebbe come dire che tutti i linguaggi sono schizofrenici! :-D assembly ... mirino telescopico + baionetta!! come dire che miro a 200 mt per poi fare... un corpo a corpo C++ ... talmente potente che ha un pugnale anche dalla parte del calcio del fucile !!! come dire che chi lo imbraccia perde il braccio il C sembra super potente ed essenziale ... ma non ha la canna per cui la pallottola esplode in loco insomma, chi ha fatto il disegno è, come dire, molto ottimista sull'efficacia dei linguaggi di programmazione :-D M. Carlos -- EZLN ... Para Todos Todo ... Nada para nosotros ___ Python mailing list Python@lists.python.it http://lists.python.it/mailman/listinfo/python ___ Python mailing list Python@lists.python.it http://lists.python.it/mailman/listinfo/python
Re: [Python] vars.items???
Il giorno 24 aprile 2015 11:51, Gabriele Battaglia iz4...@libero.it ha scritto: Scrivo questo codice e non capisco il perchè dell'errore finale. d={1:34,2:22} d {1: 34, 2: 22} for k,v in d.items(): ... print k,v ... 1 34 2 22 for k,v in vars.items(): ... print k,v ... Traceback (most recent call last): File console, line 1, in module AttributeError: 'builtin_function_or_method' object has no attribute 'items' *** in effetti vars è una funzione built-in https://docs.python.org/2/library/functions.html#vars per cui quello che ti sta dicendo python è giusto Ma vars risulta di type dict(), quindi... non dovrebbe avere anche lui il suo bravo .items? in realtà il valore di ritorno di vars è di tipo dict vars, in se, è una funzione, per cui devi chiamarla passandogli un argomento che abbia un attributo __dict__ E se non ce l'ha, come faccio ad iterare attraverso gli elementi di vars? ma tu cosa volevi fare esattamente? d.items non ti andava bene? Grazie come sempre. GB. ciao, Marco ___ Python mailing list Python@lists.python.it http://lists.python.it/mailman/listinfo/python
Re: [Python] django + django-admin-bootstrapped
2015-04-24 17:40 GMT+02:00 Dario Concilio dario.conci...@hotmail.it: Ciao a tutti, ho scoperto una cosa durante l'installazione. Scenario: - Django 1.8 - Python 3.4.3 Eseguo pip install django-admin-bootstrapped Ecco cosa è accaduto: Collecting django-admin-bootstrapped Downloading django-admin-bootstrapped-2.4.0.tar.gz (336kB) 100% || 339kB 356kB/s Requirement already satisfied (use --upgrade to upgrade): setuptools in c:\pytho n34\lib\site-packages (from django-admin-bootstrapped) Collecting Django1.8,=1.7 (from django-admin-bootstrapped) Downloading Django-1.7.7-py2.py3-none-any.whl (7.4MB) 100% || 7.4MB 37kB/s Installing collected packages: Django, django-admin-bootstrapped Found existing installation: Django 1.8 Uninstalling Django-1.8: Successfully uninstalled Django-1.8 Running setup.py install for django-admin-bootstrapped Successfully installed Django-1.7.7 django-admin-bootstrapped-2.4.0 Verificando su https://github.com/django-admin-bootstrapped/django-admin-bootstrapped vedo che i requisiti per l'attuale release è Django 1.8 per Django 1.6 use version 2.3.5 With Django 1.7 use version 2.4.0 Verifico nel file setup.py e trovo che attualmente la versione di django-admin-bootstrapped è la 2.4.99 ma se faccio pip install django-admin-bootstrapped==2.4.99 ottengo Collecting django-admin-bootstrapped==2.4.99 Could not find a version that satisfies the requirement django-admin-bootstrap ped==2.4.99 (from versions: 0.1, 0.1.1, 0.2, 0.3, 0.3.1, 0.3.2, 0.4, 0.4.1, 0.4. 2, 0.4.3, 1.6.0, 1.6.1, 1.6.2, 1.6.3, 1.6.4, 1.6.5, 1.6.6, 1.6.7, 1.6.8, 1.6.9, 2.0.0, 2.0.1, 2.0.3, 2.0.4, 2.0.5, 2.1.0, 2.1.1, 2.2.0, 2.2.1, 2.3.0, 2.3.1, 2.3 .2, 2.3.3, 2.3.4, 2.3.5, 2.4.0) No matching distribution found for django-admin-bootstrapped==2.4.99 Sembra non sia ancora indicizzata su PyPI vedo che, al momento, l'ultima rilasciata è la 2.4.0 https://pypi.python.org/pypi/django-admin-bootstrapped/ se vuoi la 2.4.99 mi sa che devi prenderla da github... M. ___ Python mailing list Python@lists.python.it http://lists.python.it/mailman/listinfo/python
Re: [Python] idio[ma]ticità
Il giorno 22 aprile 2015 18:58, enrico franchi enrico.fran...@gmail.com ha scritto: l'ultimo in ordine di tempo mi è successo con djangorestframework: in base ad un parametro many=True mi istanziava a mia insaputa una classe wrapper che conteneva la mia Questo significava che non avevo alcun modo semplice per fare l'override/plug Insomma, mi sono convinto che il principio stesso che può succedere di chiamare il costruttore di una classe ma qualcuno (presumibilmente per il tuo bene) decide di restituirtene un altra, beh, non mi piace granchè Ma non e' che tu parli semplicemente di definire __new__? Per quello io ho diversi use-case interessante. cavolo, hai ragione, bastava __new__ ora, calma, aspetta un momento, io ricordo distintamente che usavano una metaclasse ... o io ho citato a casaccio oppure loro facevano un overkill in realtà ricordo solo che volevo uscirne il prima possibile perchè mi ci ero imbattuto solo per riuscire a far andare come volevo io le browsable api in un caso particolare insomma, come dire che mi trovavo con il motore a posto e stavo perdendo tempo sul tappino degli pneumatici ricordo vagamente di aver dato qualche martellata e aver fissato in qualche modo quel disgraziato di tappino e centrava una metaclasse, giuro se posso domani ci guardo In questi casi tendo ad usare una funzione che faccia da Factory Sarò pure meno cool, ma preferisco essere più esplicito e comprensibile Il problema e' che c'e' sempre prima o poi il pistola che non la chiama e fa a mano. Statistico. E la volta che succede e la cr non passa per le mie mani... Il che vuole dire che se e' un nice to have, va bene. Se instanziare direttamente rompe la semantica della classe, niente, vai di __new__, mi prendo lo sbattimento io, ma almeno non verro' svegliato alle quattro di notte. Si, ok... potrei sempre avere la famosa _Classe. In questi casi di solito basta. Al momento non alcun motivo valido per scomodare Tornado nei miei progetti: Django con i worker uWSGI mi vanno benissimo A me Django sta molto stretto. Non amo particolarmente il fatto che se devo fare qualche API call dentro Django rischia di andare in timeout il tutto. api http, intendi? ok, capisco l'altro timeout sarebbe il caso di client websockets o comet o roba simile... beh, certo, in particolare per il secondo caso django non reggerebbe Si, certo... dovrei spostare tutta sta roba in Javascript e tanti saluti. ok, lasciamo perdere le websockets per il momento, ma se hai solo il problema di operazioni potenzialmente lunghe (es. le api che si diceva) allora perchè Javascript? basta delegare ad una batteria di processi di backend un po' di risorse in più e passa la paura ... oddio, poi cosa si intenda con un po' di risorse in più dipende dalla scala del problema! (ogni riferimento al committente di qualcuno di noi è puramente causale :-) ) ok, introducendo i back-end, l'architettura si incasina: no doubt ci vorranno come minimo... coda (redis?) per passaggio parametri fra front-end e backend, supervisor dei backend (dovrai pur monitorare lo stato dei processi), staging area per i risultati (su db, ehm, dipende...), notifiche differite all'utente, gestione delle transazioni db e gestione delle eccezioni (già, perchè se qualcosa va storto qualcuno presumibilmente lo deve venire a sapere, e magari senza necessariamente doversi tenere davanti il tail -f di un log del server) insomma, ti tieni il buon vecchio sequenziale ma il tuo bel flusso request/response http e ormai poco più che un vissero felici e contenti quando ormai le fiabe sei tu a leggerle ad altri ma so che sto dicendo cose note, diciamo che me le ripeto per convincermi che sto facendo la scelta giusta la mia situazione è che, sebbene continui ad essere alla ricerca dell' architettura di backend pulita definitiva e non sia riuscito a trovarla, tuttavia l'asincrono (o event driven o callback che dir si voglia) sono riuscito totalmente ad evitarlo Diciamo che ho risentito parlare di Tornado con asyncio e la prima domanda da nerd è datemi un occasione per giocarci, se non me la date me la invento! Caruccio, si. Poi detto fra noi... Asyncio non e' che mi abbia colpito troppo. ah, si? cosa non ti convince? per quanto mi riguarda io ho perso un po' il treno (per mia fortuna, credo) di dovermi scontrare con gevent, callback, greenlet, stackless-python, twisted e compagnia cantante mi aveva pigliato molto erlang ma alla fine non ho avuto bisogno neanche di quello per cui a questo punto spero che asyncio sia il preferably one and only one method che dovrò veramente studiarmi arriva un po' tardi? forse beh, io lo spero che sia one and only one e se lo fosse, beh... meglio tardi che mai 5. etc. etc. etc. In Python 3 puoi scrivere ... E' sintassi valida. uhm, questa temo di non averla capita ... Eh, non ho un python 3 per fare lo snob. Essenzialmente ... e' sintassi valida di Python 3. Presente quando si scrive class
Re: [Python] idio[ma]ticità
Il giorno 22 aprile 2015 13:58, Marco De Paoli depao...@gmail.com ha scritto: Ecco un gist con il codice completo di test cases https://gist.github.com/depaolim/1dfd6e3d3789047c36b1 ... ho pensato che mi farebbero comodo anche le ForeignKey con il caso di natural key e poi il tutto potrebbe essere messo in una app che implementa anche un command da usare da cli e poi sarebbe carino generalizzare le regole di rimappatura al momento le cerca nell'attributo XLSX_2_FIELDS del modello, si potrebbe permettere, che so... a) di passarle come argomento alla funzione load, ok, questo è facile b) di specificarle nei settings c) ma il più divertente è sicuramente la possibilità di leggerle da un particolare sheet dell'xlsx Il 3 permette, in pratica da Excel, di compilare un file con i dati e anche i meta-dati di rimappatura ... ma qua mi sa che sto finendo troppo OT: siamo su full-django. E per quello esiste django-it M. ___ Python mailing list Python@lists.python.it http://lists.python.it/mailman/listinfo/python
Re: [Python] idio[ma]ticità
Il giorno 21 aprile 2015 11:27, Marco De Paoli depao...@gmail.com ha scritto: P.S. ... se posso posto lo snippet finale con anche la gestione delle FK ecco qua: @django.db.transaction.atomic def load_from_xlsx(cls, rows): fs = {c.column: cls.XLSX_2_FIELDS.get(c.value) for c in rows[0]} cls.objects.all().delete() cls.objects.bulk_create([ cls(**{fs[c.column].get_attname(): c.value for c in r if fs[c.column]}) for r in rows[1:]] ) Ed ecco un esempio d'uso: wb = openpyxl.load_workbook(myfile.xlsx) load_from_xlsx(MyModel, wb.active.rows) L'unica altra cosa che serve è che MyModel abbia l'attributo XLSX_2_FIELDS per stabilire la rimappatura tra: nomi delle colonne xlsx e nomi dei field Ecco un gist con il codice completo di test cases https://gist.github.com/depaolim/1dfd6e3d3789047c36b1 ciao, Marco ___ Python mailing list Python@lists.python.it http://lists.python.it/mailman/listinfo/python
Re: [Python] idio[ma]ticità
Il giorno 20 aprile 2015 17:44, Massimiliano della Rovere massimiliano.dellarov...@gmail.com ha scritto: Ma allora non ti conviene ciclare solo sulle colonne presenti in CN (avendo cura di inserire in CN tutte quelle che ti servono) ? le colonne da incrociare sono infatti: quelle di CN, quelle dell'header del xlsx, quelle che trovo nelle righe e il giro, alla fine della fiera, è semplicissimo 1. processo la cella D13 2. ok, cosa mi dice l'header della colonna D ? CODICE ARTICOLO 3. ok, cosa mi dice il dic di rimappatura CN per il nome CODICE ARTICOLO? article_id ok, allora il valore della cella D13 lo devo mettere nel campo article_id tutto qui cercavo il modo più idiomatico per scrivere questa semplicissima doppia indirezione grazie a tutti per i vostri interventi, Marco P.S. ... se posso posto lo snippet finale con anche la gestione delle FK ma ahimè, mi ci sto appassionando troppo, mentre dovrei arrivare ad una soluzione ragionevole e poi passare ad altro adesso per esempio mi è venuto in mente che per farlo veramente bulk dovrei fare il truncate della tabella, generare un csv e poi far fare il COPY a postgres (COPY che, per inciso, è una vera scheggia: impressionante!) Ma, mannaggia a me, in questo caso ho bisogno solo di buttare dentro a martellate qualche decina di migliaia di record Uno spooler di uWSGI e qualche minuto di elaborazione e l'utente è contentissimo anche se passo per l'ORM, in fondo che gliene frega a lui, basta che le righe ci siano ___ Python mailing list Python@lists.python.it http://lists.python.it/mailman/listinfo/python
Re: [Python] idio[ma]ticità
ciao Enrico, grazie delle risposte in realtà volevo fare alcuni esempi random su tecniche un po' esoteriche rispetto al mio operare corrente nel mio lavoro di ogni giorno cerco di mantenermi molto KISS poi arrivano i talk di pycon, ti aprono un po' le vedute e finisci a volte per riconsiderare pattern o tecnologie che normalmente lascierei un po' nel cassetto o in backlog Il giorno 20 aprile 2015 18:56, enrico franchi enrico.fran...@gmail.com ha scritto: 2015-04-20 14:50 GMT+01:00 Marco De Paoli depao...@gmail.com: 1. potrei farlo con una meta classe Pessima idea. Ci sono casi in cui le meta-classi sono il sistema piu' rapido e robusto per avere una certa cosa. In generale sono un overkill. In generale, non sono la soluzione giusta. concordo, nei casi in cui ho visto usare una metaclasse la soluzione adottata non mi è piaciuta molto l'ultimo in ordine di tempo mi è successo con djangorestframework: in base ad un parametro many=True mi istanziava a mia insaputa una classe wrapper che conteneva la mia Questo significava che non avevo alcun modo semplice per fare l'override/plug Insomma, mi sono convinto che il principio stesso che può succedere di chiamare il costruttore di una classe ma qualcuno (presumibilmente per il tuo bene) decide di restituirtene un altra, beh, non mi piace granchè In questi casi tendo ad usare una funzione che faccia da Factory Sarò pure meno cool, ma preferisco essere più esplicito e comprensibile 2. potrei inserire un server tornado giusto per non si sa mai Non lo farei. Uno strato di architettura per non si sa mai e' comunque uno strato di architettura che si puo' rompere domani prima di avere provveduto ad un qualunque beneficio per il customer. Sì, perfettamente daccordo. Il per non si sa mai era una battuta Al momento non alcun motivo valido per scomodare Tornado nei miei progetti: Django con i worker uWSGI mi vanno benissimo Non uso websockets o roba simile per cui sopravvivo benissimo Diciamo che ho risentito parlare di Tornado con asyncio e la prima domanda da nerd è datemi un occasione per giocarci, se non me la date me la invento! Poi però mi sono calmato e sono tornato ad occuparmi di importazioni di file Excel ;-) 4. dovrei usare pytest e rifattorizzare tutti i setUp/tearDown del mio progetto Questa invece e' una buona idea. Cioe'... rifattorizzare tutto non necessariamente lo e'. Ma cominciare ad usare PyTest lo e'. Il talk di Simone Dalla mi ha in effetti convinto a provarlo il prima possibile Tipo una volta mi venne la balzana idea di convertire tutta una test-suite da nose a py.test; ora, i test vennero meglio, piu' chiari piu' robusti. Ci persi un monte di tempo. Adesso quando devo lavorare ad un progetto con test nose (o unittest) la mia policy e': 1. continuo a scrivere nose(unittest) finche' non ho un buon motivo 2. scrivo la parte con il buon motivo con py.test 3. a tempo morto riguardo i test, butto nel cesso i test vecchi e poco significativi (cosa che fa bene comunque), cerco di individuare dei pattern che beneficiano davvero di py.test e riscrivo quelli, un po' per volta. 4. ogni volta che tocco qualche test specifico, lo riscrivo con py.test (ma solo dopo che il procedimento di introduzione di py.test e' iniziato, motivato da una necessita' oggettiva). Il mio piano che avevo in mente è più o meno simile. Tenendo conto delle retrocompatibilità di py.test rispetto a unitest dovrei riuscire ad introdurlo in modo abbastanza indolore e poi migrare un po' alla volta, dove mi serve, usando fixture al posto di setUp/tearDown Rifattorizzare di botto tutti i setUp/tearDown dei miei progetti sarebbe invece, nel mio caso, un esagerazione 5. etc. etc. etc. In Python 3 puoi scrivere ... E' sintassi valida. uhm, questa temo di non averla capita ... 6. ah, già, anche... dovrei dare un occhiata al progetto pypy Ottima idea. già, indubbiamente, me lo dico da tempo ma dato che i miei progetti sono soprattutto DB-bound (si può dire?) guadagnare sul CPU-time lato pure-python sarebbe più o meno inifluente Ma vedi sopra per il ... datemi un occasione per giocarci :-) -marco- ___ Python mailing list Python@lists.python.it http://lists.python.it/mailman/listinfo/python
[Python] idio[ma]ticità
dopo il talk di Alex su codice pythonico/idiomatico... beh, non posso lasciar passare il seguente caso senza chiedervi un opinione dunque il caso è questo ho un file Excel xlsx con righe da caricare una a una su DB non consigliatemi di utilizzare un ETL, perchè non è questo il punto ah, a proposito, ho scoperto che per mangeggiare i file xlsx, openpyxl va alla grande tornando a noi... la prima riga dell'xlsx è un intestazione che stabilisce i nomi dele colonne avevo chiesto che usassero i nomi uno a uno con i nomi dei campi su db. ma, no, sarebbe stato troppo semplice e logico, per cui i nomi sono a dir poco fantasiosi e volatili Indi per cui ho un dict che rimappa nomi-colonne-xlsx con nomi-campi-db XLSX_COLUMN_NAMES = { 'IL nome' : 'name', 'RIFERIMENTO a GIGIO': 'gigio_id', } il piano per il caricamento dati è il seguente: iterare sulle righe dell'xlsx, costruire un kwargs, fare l'insert abbastanza KISS, insomma ok, show me the code! import openpyxl as pyx from .models import MyModel CN = XLSX_COLUMN_NAMES wb = pyx.load_workbook(sample.xlsx)) ws = wb['DB'] columns = {c.column: CN.get(c.value) for c in ws.rows[0]} MyModel.objects.all().delete() for row in ws.rows[1:]: kwargs = {columns[c.column]: c.value for c in row} kwargs.pop(None) MyModel(**kwargs).save() le istruzioni per il db sono per django, e per di più sono un po' niubbe (nel senso che si poteva fare qualcosa di più bulk) ma non è la parte importante: non fanno altro che cancellare tutti i record e poi inserirli uno per uno E' quel kwargs.pop(None) che non mi piace Ci ho girato un po' intorno, ma non mi viene in mente come rimuoverlo a meno di introdurre degli if che mi piacciono ancora meno voi che ne dite? Marco P.S. se non conoscete openpyxl vi dico che l'attributo value è il contenuto della cella, mentre l'attributo column è la sua coordinata x in notazione-excel, ossia A, B, etc. Per esempio, la cella D13 ha cell.column == D P.P.S. boh, mi sa che vi ho dato un po' troppo contesto rispetto al problema vero e proprio. Ma diciamo che è stata anche l'occasione per citare qualche tecnologia che mi ha fatto comodo: openpyxl e ... Django! ___ Python mailing list Python@lists.python.it http://lists.python.it/mailman/listinfo/python
Re: [Python] Proposta di collaborazione
Il giorno 20 aprile 2015 12:11, Roberto Polli robipo...@gmail.com ha scritto: poi Postgres... l'Open Source puo' essere molto migliore del closed. in teoria mysql è più open di postgres, visto che è GPL2 vs MIT ;) ... beh, intendiamoci sul senso di open ;-) postgres è tipo BSD/MIT con una licenza di 23 righe comprese le vuote http://www.postgresql.org/about/licence/ in pratica ci fai tutto quello che vuoi compreso forkarlo e/o brandizzarlo e/o venderlo etc. etc. capisco che Stallman non sarebbe forse del tutto daccordo ma, dal mio punto di vista... più open di così non si può ciao, Marco ___ Python mailing list Python@lists.python.it http://lists.python.it/mailman/listinfo/python
Re: [Python] idio[ma]ticità
2015-04-20 15:11 GMT+02:00 Marco Beri marcob...@gmail.com: 2015-04-20 14:19 GMT+02:00 Marco De Paoli depao...@gmail.com: kwargs = {columns[c.column]: c.value for c in row} kwargs.pop(None) Marco, mi sfugge qualcosa oppure questo non farebbe la stessa cosa anche se in maniera meno efficiente? kwargs = {columns[c.column]: c.value for c in row if columns[c.column]} la semantica è esattamente quella che hai scritto tu ... per cui: no, non ti sfugge nulla ma sapevo che eravamo tutti un po in astinenza di trick/sfide dopo quella sull' eseguire il codice della borsa pycon :-) per cui ho buttarne la una... posso eliminare quel pop? (che, come dice giustamente Riccardo è un WTF assicurato) e non usare neppure un if? mi sono detto: vuoi vedere che quei draghi della lista python mi tirano fuori un, che ne so, itertools.magic_method che mi fa tutto in O(1) con una sola riga di codice? :-) ...ok, proviamo a rilanciare... in questo caso in un ambito un po' più specifico django mettiamo che una delle colonne sia un FK in tal caso il valore deve essere considerato key e bisogna fare un lookup del model Ovviamente serve giocare un po su _meta e fare introspezione sui fields... ...no, no, no... qua mi accorgo che il pycon mi ha rovinato! oggi non riesco a scrivere una riga di codice giusto per campare senza che mi scatti qualche paranoia sull'ipotesi [scegliere a caso tra le seguenti]: 1. potrei farlo con una meta classe 2. potrei inserire un server tornado giusto per non si sa mai 3. potrei fare una tabella costituita da un unico campo jsonb e poi (presumibilmente) ... riscrivere tutta la mia logica applicativa 4. dovrei usare pytest e rifattorizzare tutti i setUp/tearDown del mio progetto 5. etc. etc. etc. 6. ah, già, anche... dovrei dare un occhiata al progetto pypy giuro, alcune di queste idee mi vengono in mente solo in un particolare periodo dell'anno normalmente riesco anche a scrivere codice onesto e che funziona, senza bisogno di scomodare domande tipo: ma qui i type hint potrebbero farmi comodo? oh, cavolo! dottore, mi dica, è grave?!? quanto durerà l'effetto pycon?!? :-D ___ Python mailing list Python@lists.python.it http://lists.python.it/mailman/listinfo/python
Re: [Python] MySQL vs PgSQL: ne resterà solo uno! Re: Proposta di collaborazione
Il giorno 20 aprile 2015 16:00, Roberto Polli robipo...@gmail.com ha scritto: Il 20 aprile 2015 14:39, Carlos Catucci carlos.catu...@gmail.com ha scritto: dalla 9.3 (ma molto piu' con la 9.4) puoi usarlo come un NoSql con prestazioni Bello. posso avere tabelle miste ovevro alcuni campi relazionali ed altri json e fare ricerche miste. Come vengono indicizzati i campi json? guardati l'intervento di Marco Nenciarini all'ultimo pycon https://www.pycon.it/conference/talks/hstore-json-e-jsonb-dati-non-strutturati-ad-alte-performance-1 ehm, qualcuno sa dove sono i video? sono già stati pubblicati? Marco ___ Python mailing list Python@lists.python.it http://lists.python.it/mailman/listinfo/python
Re: [Python] idio[ma]ticità
ciao Massimiliano, Il giorno 20 aprile 2015 15:28, Massimiliano della Rovere massimiliano.dellarov...@gmail.com ha scritto: non mi è chiara una cosa: come finisce quel None nel descrittore delle colonne dell'xslx/db? colonne presenti nell'xlsx e che non vanno caricate Marco ___ Python mailing list Python@lists.python.it http://lists.python.it/mailman/listinfo/python
Re: [Python] idio[ma]ticità
Il giorno 20 aprile 2015 15:04, Riccardo Magliocchetti riccardo.magliocche...@gmail.com ha scritto: [snip] E' quel kwargs.pop(None) che non mi piace Ci ho girato un po' intorno, ma non mi viene in mente come rimuoverlo a meno di introdurre degli if che mi piacciono ancora meno Potevi mettere un commento sul perchè lo stai chiamando quel pop, tra un mese quello è un WTF assicurato. A quanto capisco io è perchè per qualche motivo ti ritrovi columns[c.column] a None. Questo lo fai probabilmente per prevenire di esplodere quando hai righe malformate con testo su colonne che non hanno intestazione. oppure per il caso in cui nell'xlsx ci sono colonno che vanno trascurate nel caricamento Se è questo non troverei vergogna a mettere un *esplicito* if c.column in columns nella dict comprehension di kwargs. sono daccordo! ma vedi la mia risposta a Beri per inqudrare il contesto mentale :-) [snip] bye, Marco ___ Python mailing list Python@lists.python.it http://lists.python.it/mailman/listinfo/python
Re: [Python] esecuzione remota su windows
Il 02/feb/2015 22:04 Balan Victor balan.vict...@gmail.com ha scritto: Il giorno 2 febbraio 2015 17:28, Marco De Paoli depao...@gmail.com ha scritto: ciao lista, io vorrei, da linux, lanciare un comando remoto su una macchina windows Si tratta di lanciare un exe a riga di comando e poi intercettare valore di ritorno, stdout/stderr Tocca per forza installare un daemon ssh su windows? e poi usare es. paramiko? ... è che vorrei evitare di installare un intero server ssh sulla macchina win E non vorrei neanche installare Celery... Insomma, mi sa che voglio troppo :-) Penso che qualcosa su win andrà installato, giusto? Qualche idea? TIA! che versione di windwos hai? 2008 o forse 2012 c'è questo che è simile a psexec https://micksmix.wordpress.com/2012/08/09/winexe-a-psexec-like-client-for-accessing-windows-from-linux/ Pare però ci voglia tutto un ambaradan di server (samba? ) poi c'è https://4sysops.com/archives/three-ways-to-run-remote-windows-commands/#method-2-use-wmi-to-run-remote-commands che usa wmi Non ho capito se si può lanciare eseguibili generici oppure solo operazioni amministrative altrimenti sei hai un win 2008 o maggiore usa powershell Powershell dici? Ok, ci vuole comunque un agent in ascolto, però Intendevi una cosa del genere? https://technet.microsoft.com/en-us/library/hh831611.aspx Domani faccio qualche prova, grazie Marco ___ Python mailing list Python@lists.python.it http://lists.python.it/mailman/listinfo/python ___ Python mailing list Python@lists.python.it http://lists.python.it/mailman/listinfo/python
[Python] esecuzione remota su windows
ciao lista, io vorrei, da linux, lanciare un comando remoto su una macchina windows Si tratta di lanciare un exe a riga di comando e poi intercettare valore di ritorno, stdout/stderr Tocca per forza installare un daemon ssh su windows? e poi usare es. paramiko? ... è che vorrei evitare di installare un intero server ssh sulla macchina win E non vorrei neanche installare Celery... Insomma, mi sa che voglio troppo :-) Penso che qualcosa su win andrà installato, giusto? Qualche idea? TIA! Marco ___ Python mailing list Python@lists.python.it http://lists.python.it/mailman/listinfo/python
Re: [Python] Python per App Engine
Il giorno 29 gennaio 2015 13:16, Massimiliano Pippi mpi...@gmail.com ha scritto: Ciao a tutti e perdonatemi lo shameless plug. Ieri è uscito il mio libro, intitolato Python for Google App Engine, potete trovare i dettagli qui: https://www.packtpub.com/virtualization-and-cloud/python-google-app-engine Bravo Max, complimenti! Mi è costato sei mesi di ogni stilla di tempo libero, vacanze incluse, e volevo condividere questo traguardo con la community italiana, del resto si può dire che tutto è partito da qui diversi anni fa. adesso devi solo ... metterti a preparare le relative slide ;-) Marco ___ Python mailing list Python@lists.python.it http://lists.python.it/mailman/listinfo/python
Re: [Python] Best practices per import
Il giorno 22 gennaio 2015 18:33, Diego Barrera diegonebarr...@yahoo.it ha scritto: Buona sera a tutti! Solitamente utilizzo e vedo utilizzato import all'inizio del modulo, ma a volte mi e' capitato sia di scrivere che di leggere import all'interno di funzioni o classi. L'unico vantaggio che vedo nel caso di utilizzo all'interno di una funzione (o classe) e' che se non viene richiamata la funzione, si evita l'import. l'import locale potrebbe essere a volte indispensabile in funzioni che si basano su moduli non disponibili su una particolare piattaforma questo permette di eseguire anche su piattaforme/s.o. che non hanno tutti i moduli Immagina una situazione del genere: Il mio applicativo dispone di una funzionalità per l'export in formato Ms Access - MDB. Se scrivo istruzione import pywin32 esclusivamente dentro la funzione che implementa l'export, allora il mio programma generale rimane eseguibile anche su linux (a patto di non usare, ovviamente, quella specifica funzione) L'alternativa sarebbe mettere l'import in testata file avendo l'accortezza di racchiuderlo in un try/except Ma a me sembra meno logica ot ... Ci sarebbe anche un altra alternativa L'altra alternativa è snobbare Ms-A-Cess e convincerli a passare a SQLite... ma qui finiamo OT E poi a me Access ha dato qualcosina da mangiare quando ero programmatore in erba per cui, se mi chiedono una cosa del genere, mi tocca pure fare il comprensivo in nome dei vecchi tempi /ot ciao, Marco ___ Python mailing list Python@lists.python.it http://lists.python.it/mailman/listinfo/python