Re: [Python] come creare un filtro personalizzato con jinja

2011-06-22 Per discussione Paolo Bernardi
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?

2011-06-16 Per discussione Paolo Bernardi
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?

2011-04-20 Per discussione Paolo Bernardi
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

2011-04-19 Per discussione Paolo Bernardi
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

2011-02-10 Per discussione Paolo Bernardi
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

2011-02-10 Per discussione Paolo Bernardi
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

2011-02-10 Per discussione Paolo Bernardi
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

2011-02-10 Per discussione Paolo Bernardi
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

2011-01-15 Per discussione Paolo Bernardi
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

2011-01-13 Per discussione Paolo Bernardi
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?

2011-01-10 Per discussione Paolo Bernardi
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??]

2011-01-05 Per discussione Paolo Bernardi
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

2011-01-05 Per discussione Paolo Bernardi
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??

2011-01-03 Per discussione Paolo Bernardi
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!

2010-12-25 Per discussione Paolo Bernardi
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

2010-11-13 Per discussione Paolo Bernardi
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

2010-11-13 Per discussione Paolo Bernardi
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

2010-06-04 Per discussione Paolo Bernardi
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

2010-05-17 Per discussione Paolo Bernardi
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