Re: [Python] come creare un filtro personalizzato con jinja
Allora forse potrà interessarti anche Flask. :-) Paolo On Wed, 2011-06-22 at 10:52 +0200, Vittorio Zuccala' wrote: Ciao. Non so esserti di aiuto ma complimenti per la segnalazione. Non conoscevo questo jinja (anche difficile da scrivere) ma ad una prima occhiata mi piace molto :-) Il giorno 22 giugno 2011 10:02, Pietro Zambelli peter.z...@gmail.com ha scritto: Ciao a tutti, mi sto avvicinando a jinja, e vorrei creare un filtro personalizzato... Sto cercando di seguire l'esempio presente nella documentazione Custom Filters: http://jinja.pocoo.org/docs/api/#writing-filters ma non sono riuscito a capire come funziona, vi riporto quello che ho scritto: --- # -*- coding: utf-8 -*- from jinja2 import Template, Environment from datetime import datetime def datetimeformat(value, format='%H:%M / %d-%m-%Y'): return value.strftime(format) environment = Environment() environment.filters['datetimeformat'] = datetimeformat mytemplate = Template(author: {{ name|title }} written on: {{ now|datetimeformat }}) print(mytemplate.render(name='pIeTro', now=datetime.now())) --- cosa sto sbagliando? grazie per l'aiuto Pietro ___ Python mailing list Python@lists.python.it http://lists.python.it/mailman/listinfo/python -- Blog:http://zuccala.blogspot.com/ Twitter: http://twitter.com/#!/VittorioZuccala/ Buzz: http://www.google.com/profiles/nathanvi#buzz ___ Python mailing list Python@lists.python.it http://lists.python.it/mailman/listinfo/python -- My blog: http://paolobernardi.wordpress.com signature.asc Description: This is a digitally signed message part ___ Python mailing list Python@lists.python.it http://lists.python.it/mailman/listinfo/python
Re: [Python] C'è nessuno?
On Thu, 2011-06-16 at 15:16 +0200, Carlo Miron wrote: Pensate a fare le slide, voi due cazzoni™. Ahi! Ho usato quel termine troppe volte, sono colpevole di furto di proprietà intellettuale!!! Paolo -- My blog: http://paolobernardi.wordpress.com signature.asc Description: This is a digitally signed message part ___ Python mailing list Python@lists.python.it http://lists.python.it/mailman/listinfo/python
Re: [Python] Why do really need all these web framework?
On Wednesday 20 April 2011 16:23:12 Carlos Catucci wrote: BTW, hai visto quante diverse librerie ci sono in Java per fare le diverse cose? Il mondo Java mi spaventa, sembra una serie di soluzioni a problemi inesistenti. Il mondo java e' una serie di mancate soluzioni a problemi che senza java sarebbero inesistenti Già che ci siamo, seguo l' OT per la tangente indicando una simpatica riflessione sul mondo Java vs gli altri (Python incluso). http://steve-yegge.blogspot.com/2006/03/execution-in-kingdom-of-nouns.html L'ho letto ieri, di gusto. :-) Paolo signature.asc Description: This is a digitally signed message part. ___ Python mailing list Python@lists.python.it http://lists.python.it/mailman/listinfo/python
Re: [Python] gestire ADSL2 Gateway
On Monday 18 April 2011 23:26:24 Nicola Ferrari wrote: mi rifiuta la connessione anche con telnet... se però faccio telnet localhost 25 funziona... devo abilitare qualcosa? Per inciso, occhio che la porta 25 è generalmente l'SMTP, il Telnet è la 23 e l'SSH la 22 (vedi /etc/services, se ce l'hai a disposizione). Paolo signature.asc Description: This is a digitally signed message part. ___ Python mailing list Python@lists.python.it http://lists.python.it/mailman/listinfo/python
Re: [Python] Conversione tupla in intero
And the winner is... ;-) È decisamente la soluzione più carina, funziona perché la reduce, come da documentazione, lavora da sinistra verso destra. On Thu, 2011-02-10 at 08:48 +0100, Marco Mariani wrote: reduce(lambda x, y: x*10+y, [2,3,5,7,8,3]) 235783 signature.asc Description: This is a digitally signed message part ___ Python mailing list Python@lists.python.it http://lists.python.it/mailman/listinfo/python
Re: [Python] Conversione tupla in intero
On Thu, 2011-02-10 at 18:02 +0100, Gianluca Bargelli wrote: from timeit import Timer t1 = Timer( reduce(lambda x, y: x*10+y, (1,2,3,4,5,6,7)) ) t2 = Timer( .join([str(i) for i in (1,2,3,4,5,6,7)]) ) print(Reduce: {0} | List comprehension: {1}).format(t1.timeit(), t2.timeit()) l'output sulla mia macchina con timeit() è: Reduce: 1.58372807503 | List comprehension: 2.46447396278 usando Python 2.6.6 (Linux), qualcuno sa spiegare il perché di tale differenza? :-) Ottengo anche io risultati simili (Python 2.7, Linux 32 bit, dual core a 1.86GHz, 2Gb RAM)... Ci vorrebbe un profiling fatto bene; a naso immagino che chiamare str() n volte (più una singola join) sia decisamente più costoso di fare una somma ed un prodotto n volte. Paolo signature.asc Description: This is a digitally signed message part ___ Python mailing list Python@lists.python.it http://lists.python.it/mailman/listinfo/python
Re: [Python] Conversione tupla in intero
I numeri, in assoluto, non vogliono dire granché, lordkrandel... Troppa variabilità di hardware e software. ;-) Piuttosto, esegui il timer di tutti e tre i metodi sul tuo computer e confronta i risultati, così quantomeno hai una certa uniformità di base. :-) Paolo On Thu, 2011-02-10 at 18:22 +0100, lordkrandel wrote: On 10/02/2011 18.02, Gianluca Bargelli wrote: t1 = Timer( reduce(lambda x, y: x*10+y, (1,2,3,4,5,6,7)) ) t2 = Timer( .join([str(i) for i in (1,2,3,4,5,6,7)]) ) Reduce: 1.58372807503 | List comprehension: 2.46447396278 usando Python 2.6.6 (Linux), qualcuno sa spiegare il perché di tale differenza? :-) Sicuramente perchè non passi per la conversione in stringa, tagliando fuori tutti i problemi di charset etc... Timer( int('%s' * 7 % tuple(range(1,8.timeit() 2.335456515006 signature.asc Description: This is a digitally signed message part ___ Python mailing list Python@lists.python.it http://lists.python.it/mailman/listinfo/python
Re: [Python] Conversione tupla in intero
Già, dipende dalle precondizioni. ;-) On Thu, 2011-02-10 at 18:28 +0100, Simone Federici wrote: Già peccato che soffre di potenziali bug :-) reduce(lambda x, y: x*10+y, [2,3,5,7,81,3]) 236513 signature.asc Description: This is a digitally signed message part ___ Python mailing list Python@lists.python.it http://lists.python.it/mailman/listinfo/python
Re: [Python] Os.popen e comando route add
Tra le altre cose, se vuoi restare aggiornato, ti consiglio di dare un'occhiata al modulo subprocess, particolarmente alla sezione su come rimpiazzare le chiamate os.popen*: http://docs.python.org/library/subprocess.html#replacing-os-popen-os-popen2-os-popen3 Con la popen, ad esempio, mi è capitato di fare qualcosa di simile: p = subprocess.Popen(['axel', '-o', file, self.url], shell=False, stdout=subprocess.PIPE) line = p.stdout.readline() while line != None and line != '' and not p.poll(): [...] line = p.stdout.readline() In questo caso ovviamente mi serviva l'output riga per riga (man mano che axel avanzava), ma puoi anche leggere tutto in blocco. Paolo On Fri, 2011-01-14 at 12:03 +0100, Stefano Dal Pra wrote: Ciao, prova con os.popen3 : stdin,stdou,stderr = os.popen(ping 151.1.1.1) dovresti scoprire che il SIOCADDRT compare con stderr.readline() ... Stefano signature.asc Description: This is a digitally signed message part ___ Python mailing list Python@lists.python.it http://lists.python.it/mailman/listinfo/python
Re: [Python] [VIM] Evitare lo shifting a destra nel copy e paste
On Thu, 2011-01-13 at 16:17 +0200, Karim Gorjux wrote: 2011/1/13 Giovanni Marco Dall'Olio dalloli...@gmail.com: :set paste Grazie. Ero su terminale e mi serviva quello. Grazie. Una volta incollato, se vuoi impostare di nuovo l'indentazione automatica usa :set nopaste Paolo signature.asc Description: This is a digitally signed message part ___ Python mailing list Python@lists.python.it http://lists.python.it/mailman/listinfo/python
Re: [Python] Text editor o IDE?
On Mon, 2011-01-10 at 20:11 +0100, Filippo Dal Bosco - wrote: ho trovato OpenJDK che NON è supportato, installa SunJDK e poi fai puntare PYCHARM_JDK o JDK_HOME a SunJDK Ed io dico: non posso rischiare di installare SunJDK e magari incasinarmi tutto Ubuntu Scarica il file con estensione .bin (non quello con rpm nel nome del file) ed eseguilo da utente normale. http://www.oracle.com/technetwork/java/javase/downloads/index.html Verrà creata una directory del tipo jdk1.6.0_23 contenente la Sun... ops, Oracle JDK; a qual punto ti basterà creare uno script con la definizione delle variabili d'ambiente PATH e JDK_HOME e farne il source ogni volta che vorrai lanciare PyCharm (magari fai uno script apposta per lanciare PyCharm dove definisci le variabili in modo opportuno). Paolo signature.asc Description: This is a digitally signed message part ___ Python mailing list Python@lists.python.it http://lists.python.it/mailman/listinfo/python
Re: [Python] inquisitori [was re: Turbopascal??]
On Wed, 2011-01-05 at 18:29 +0100, Giorgio Zoppi wrote: Il 05 gennaio 2011 18:03, Daniele Varrazzo p...@develer.com ha scritto: On Wed, 5 Jan 2011 17:15:13 +0100, Carlos Catucci carlos.catu...@gmail.com wrote: Il GOTO in C io lo ho sempre considerato una bestemmia. Si vede che non hai mai gestito gli errori. :) Riscrivi una funzione come questa http://tinyurl.com/2esxn2q senza usare goto e valuta se il risultato è migliore. Codice limitato a 80 colonne, prego. Be facciamo un esempio sul kernel di linux. j...@jo-eri:~/Scaricati/linux-2.6.7$ grep -r goto . | wc -l 26980 Penso che nel paper http://www.thocp.net/biographies/papers/goto_considered_harmful.htm Goto Condiered Harmful, Edsger Dijkstra si riferisse all'abuso di goto. La critica di EWD al GOTO è conseguenza della sua visione della programmazione. Dijkstra è stato un accanito sostenitore dei metodi formali[0][1] come strumento per limitare gli errori nei programmi; in particolare era solito usare la logica di Floyd-Hoare[2][3]. Se date un'occhiata alla logica di Floyd-Hoare vedrete che prevede regole per le sequenze di istruzioni, per i loop (while) e per i condizionali (if), ma NON per i salti come il GOTO. Oltre ai problemi di leggibilità dati dal suo *abuso*, il suo semplice *uso* rende il programma in questione indimostrabile coi metodi visti sopra e questo Dijkstra non lo tollerava. :-) Paolo P.S. Dijkstra ha scritto tanta, tanta roba (e molto interessante)... L'archivio dei suoi documenti (ha anche una bella calligrafia!) è online: http://www.cs.utexas.edu/users/EWD/ [0] https://secure.wikimedia.org/wikipedia/en/wiki/Formal_methods [1] Dijkstra si trova nel bel mezzo della cosidetta crisi del software (vedi la conferenza NATO del '68), ovvero i dispositivi digitali erano diventati troppo potenti in troppo poco tempo mentre i programmatori erano ancora legati a tecniche vecchie (suona familiare?) ed assai foriere di errori. EWD insiste perciò sui metodi formali per rendere lo sviluppo di programmi meno prono ad errori, ed in particolare su quelli postulazionali (come la logica di Floyd-Hoare) perché a suo dire l'oggetto più simile ad un programma è una dimostrazione matematica, sebbene nonostante la similarità di natura i programmi sono generalmente molto più complicati di quest'ultime. [2] https://secure.wikimedia.org/wikipedia/en/wiki/Hoare_logic [3] ... per la correttezza parziale. Per dimostrare se un programma termina o meno (cosa che aggiunta alla dimostrazione precedente da la correttezza totale) bisogna ricorrere ad altri mezzi ad-hoc, tipo l'induzione. signature.asc Description: This is a digitally signed message part ___ Python mailing list Python@lists.python.it http://lists.python.it/mailman/listinfo/python
Re: [Python] Porting
On Wed, 2011-01-05 at 19:04 +0100, Massimiliano Giovine wrote: Ho scritto del codice in python 2.7 usando un webserver e ora non funziona più niente per diversi motivi. Esiste un tool che mi permetta di portare tutto in python 3.1? Per diverse minuzie puoi usare 2to3: http://docs.python.org/library/2to3.html http://www.devx.com/opensource/Article/42380/1763/page/3 Non credo si trovi con i Python pre-installati (es. sui vari Linux o su OSX), però basta scaricare e ricompilare la distribuzione Python standard per ritrovarti l'eseguibile in questione dentro Tools/scripts. Per diverse cosette funziona, ma per quelle non banali credo che dovrai fare a mano. Paolo signature.asc Description: This is a digitally signed message part ___ Python mailing list Python@lists.python.it http://lists.python.it/mailman/listinfo/python
Re: [Python] Turbopascal??
On Sun, 2011-01-02 at 22:53 +0100, Carlos Catucci wrote: Non ti picchio. Ma sono ddell'idea che insegnare la dichiarativa (magari anche statica) e poi far passare agli oggetti sia un crimine. Tante persone prima di capire la programmazione OO, abituati alla dichiarativa, hanno faticato non poco. Il bello del python e' proprio che ti insegna entrambi i modi di programmare in maniera naturale, ma figurati se le scuole italiane possono arivarci. Sebbene non fosse parte del programma scolastico (ma c'era sul libro che usavamo), i miei primi rudimenti di OOP li ho avuti col TP7 (classi vs istanze, metodi, membri dato, visibilità degli stessi, ereditarietà etc...). Paolo signature.asc Description: This is a digitally signed message part ___ Python mailing list Python@lists.python.it http://lists.python.it/mailman/listinfo/python
Re: [Python] Auguri!
Buon Natale pythonisti! :-) Paolo signature.asc Description: This is a digitally signed message part ___ Python mailing list Python@lists.python.it http://lists.python.it/mailman/listinfo/python
Re: [Python] Criptazione dei file sorgenti per evitare la manomissione
On Sat, 2010-11-13 at 01:04 +0100, Daniele Varrazzo wrote: Basta che distribuisci solo i file .pyc invece dei .py: quelli sono sufficienti ad eseguire il programma e vengono trovati dall'import. Questo non è criptare, ma sembra quello che ti serve: è una protezione sufficiente per evitare tampering da parte di chi non è *veramente* motivato e che sappia leggere il bytecode. Direi che basta motivazione sufficiente a spendere 5 minuti per una ricerchina: http://sourceforge.net/projects/unpyc/ Se le pretese sono minori invece basta il modulo dis: def test(a): ... print a ... test(23) 23 import dis dis.dis(test) 2 0 LOAD_FAST0 (a) 3 PRINT_ITEM 4 PRINT_NEWLINE 5 LOAD_CONST 0 (None) 8 RETURN_VALUE Quest'ultimo però in sola lettura, mentre con unpyc si può fare un intero ciclo decompila-modifica-ricompila. Paolo signature.asc Description: This is a digitally signed message part ___ Python mailing list Python@lists.python.it http://lists.python.it/mailman/listinfo/python
Re: [Python] Criptazione dei file sorgenti per evitare la manomissione
On Sat, 2010-11-13 at 12:23 +0100, lex mlist wrote: Beh, sperando che rimanga cosi... supporta solo python 2.5 e python2.6, io mi stò già appoggiando a Python3 direttamente. Lo sò che non è una soluzione al problema unpyc che prima o dopo ci arriverà (magari già è in sviluppo), comunque ripeto, non è che ci sia da difendere chissà che in termini di proprietà intellettuale, una eventuale decompilazione non espone a rischi di natura pecuniaria, ma dovrebbe servire semplicemente da dissuasore per le modifiche, poi se qualcuno ha voglia di farsi tutto quello, beh... Ben detto! Un ragionamento di questo tipo (costi/benefici) è proprio quello che devi fare. Comunque, visto che ritieni la soluzione .pyc (giustamente) facilmente decompilabile, hai quindi una qualche alternativa? oppure un programma python è destinato a rimanere open source!? L'alternativa più sicura, come detto (mi pare) in questo thread, è avere la parte più significativa del programma lato server. Tuttavia devi sempre valutare i costi e i benefici della scelta; da quanto ho capito nel tuo caso distribuire i file pyc, magari inclusi in un qualche eseguibile, dll o quant'altro, è più che sufficiente. Paolo signature.asc Description: This is a digitally signed message part ___ Python mailing list Python@lists.python.it http://lists.python.it/mailman/listinfo/python
Re: [Python] chiudere un file CSV
Come crei questi file? E le operazioni di compressione? Tutto mediante un unico script Python? Paolo On Fri, 2010-06-04 at 10:31 +0200, Vittorio Zuccala' wrote: in un programma che sto creando, vengono generati una quindicina di files CSV. Questi vengono aperti uno per uno, elaborati e quindi zippati all'interno di un archivio di backup e infine cancellati. Il problema avviene quando provo a cancellare l'ultimo file creato ( con il comando os.remove(info.filename)). L'errore che ottengo è: OSError: [Errno 13] Permission denied: 'nomefile.csv' Come posso chiudere l'accesso al file CSV senza aprire una nuova istanza? signature.asc Description: This is a digitally signed message part ___ Python mailing list Python@lists.python.it http://lists.python.it/mailman/listinfo/python
Re: [Python] Autologin
On Sun, 2010-05-16 at 22:34 +0200, Vittorio Zuccala' wrote: Ciao Daniele, dato che non sono così skillato su python puoi raccontarci come hai risolto il problema? Qualche esempio di codice e/o moduli utilizzati? Suggerisco qualcosa tipo http://pexpect.sourceforge.net/pexpect.html o comunque variazioni di Expect. Paolo signature.asc Description: This is a digitally signed message part ___ Python mailing list Python@lists.python.it http://lists.python.it/mailman/listinfo/python