Re: [Python] Eseguire del codice in una stringa (gestione aggiornamenti?)

2010-02-19 Per discussione Mattsteel Matteo Vitturi

 Date: Thu, 18 Feb 2010 21:46:54 +0100
 From: mich...@nectarine.it
[...] 
 Ora, il RE ha un compito ben preciso: scaricare [e supponiamo, per  
 ora, che questo venga fatto in modo sicuro e senza modifiche] il  
 codice sorgente dell'applicazione, e non ci preoccupiamo per ora di  
 come lo scarica.
 Quello che voglio realizzare in questo modo e` un'applicazione che si  
 autoaggiorna ad ogni avvio, scaricando il codice sorgente ed  
 eseguendolo.
[...]
 Prima domanda: e` possibile tutto cio` ?
 Seconda domanda: quali sono i metodi che devo guardarmi? eval() e  
 compile() possono fare al caso mio?
 
 Vi ringrazio.
Michele
[...]


Mi permetto di rispondere alla tua prima domanda: Personalmente, ho già usato 
questa tecnica. 



Supponiamo, come dici, di avere il modulo RE e un modulo Applicazione 
accessibile da parte di RE in esecuzione.

In questo caso, quando RE deve aggiornare Applicazione può fare così:



appl = 'Applicazione'

del sys.modules[appl]

exec( '''import {0}'''.format(appl) )



N.B. exec solleva un eccezione se l'import va male: ti stai esponendo
al rischio di importare del codice non più funzionante o peggio...


Conviene evitare di re-importare in un sol colpo tutta
l'Applicazione. Se Applicazione è suddivisa in più package, puoi
importare all'occorrenza solo la parte effettivamente modificato dal
precedente import.



Ciao.

Matteo.



  
_
Scatta, ritocca e condividi le tue foto online. Gratis per te
http://www.windowslive.it/foto.aspx___
Python mailing list
Python@lists.python.it
http://lists.python.it/mailman/listinfo/python


Re: [Python] Eseguire del codice in una stringa (gestione aggiornamenti?)

2010-02-19 Per discussione Marco Mariani
On 02/18/2010 09:46 PM, mich...@nectarine.it wrote:

 Ora, il RE ha un compito ben preciso: scaricare [e supponiamo, per  
 ora, che questo venga fatto in modo sicuro e senza modifiche] il  
 codice sorgente dell'applicazione, e non ci preoccupiamo per ora di  
 come lo scarica.
 Quello che voglio realizzare in questo modo e` un'applicazione che si  
 autoaggiorna ad ogni avvio, scaricando il codice sorgente ed  
 eseguendolo.
   

E il sistema scarico l'applicazione, la scrivo su filesystem e la
lancio non funzione perche'..??

-- 
This e-mail (and any attachment(s)) is strictly confidential and for use only 
by intended recipient(s). Any use, distribution, reproduction or disclosure by 
any other person is strictly prohibited. The content of this e-mail does not 
constitute a commitment by the Company except where provided for in a written 
agreement between this e-mail addressee and the Company. If you are not an 
intended recipient(s), please notify the sender promptly and destroy this 
message and its attachments without reading or saving it in any manner. Any non 
authorized use of the content of this message constitutes a violation of the 
obligation to abstain from learning of the correspondence among other subjects, 
except for more serious offence, and exposes the person responsible to the 
relevant consequences.

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


[Python] Come fareste voi?

2010-02-19 Per discussione Stefano Dal Pra
Ciao a tutti,
vorrei chiedervi se conoscete un modo per snellire un aspetto tedioso
nello [mio modo di] sviluppare in python.

Spesso, soprattutto nelle fasi iniziali di stesura del codice, uso un
editor di testo (emacs o altro)
e tengo aperto un interprete python. Con l'editor definisco la mia
brava classina testclass in un file (p. es: test.py )
e un paio di metodini che poi provo al volo per vedere se sono
corretti. Per esempio:


s...@lapdp:~/py$ python
Python 2.5.5 (r255:77872, Feb  1 2010, 19:53:42)
[GCC 4.4.3] on linux2
Type help, copyright, credits or license for more information.
 import test
 p=test.testclass('testfile.conf')
 p.setRFK('teststring')


In questo caso tutto ok. Il codice ha funzionato.

Quel che accade normalmente, pero', e' che ci sia un bug nel metodino
nuovo appena scritto e l'interprete sollevi la
sua brava eccezione dettagliando il problema.
Leggo, correggo e salvo, poi riprovo.

Per riprovare pero', non basta un semplice:

del test
import test
eccetera.

Facendo questo mi ritorna la vecchia incarnazione della classe, cioe'
python ignora bellamente
il fatto che il file sia cambiato e l'aver dato
del test
non ha veramente cancellato dalla memoria dell'interprete la sua esistenza.

Devo invece uscire da python, rientrare, ripetere i passi daccapo.

La mia domanda quindi e' se posso forzare python a rileggere il file
senza dover uscire e rientrare da python?
In altre parole: esiste un modo piu' brutale di del qualcosa ?

Grazie per i vostri benevoli pareri...

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


Re: [Python] Come fareste voi?

2010-02-19 Per discussione Giovanni Marco Dall'Olio
2010/2/19 Stefano Dal Pra s.dal...@gmail.com

 Per riprovare pero', non basta un semplice:

 del test
 import test
 eccetera.

 Facendo questo mi ritorna la vecchia incarnazione della classe, cioe'
 python ignora bellamente
 il fatto che il file sia cambiato e l'aver dato
 del test
 non ha veramente cancellato dalla memoria dell'interprete la sua esistenza.



reload(test.py)  ?

p.s. non c'entra niente, peró ti consiglio di usare ipython come interprete
interattivo al posto di python.



 Devo invece uscire da python, rientrare, ripetere i passi daccapo.

 La mia domanda quindi e' se posso forzare python a rileggere il file
 senza dover uscire e rientrare da python?
 In altre parole: esiste un modo piu' brutale di del qualcosa ?

 Grazie per i vostri benevoli pareri...

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




-- 
Giovanni Dall'Olio, phd student
Department of Biologia Evolutiva at CEXS-UPF (Barcelona, Spain)

My blog on bioinformatics: http://bioinfoblog.it
___
Python mailing list
Python@lists.python.it
http://lists.python.it/mailman/listinfo/python


Re: [Python] Come fareste voi?

2010-02-19 Per discussione Giovanni Marco Dall'Olio
2010/2/19 Giovanni Marco Dall'Olio dalloli...@gmail.com



 2010/2/19 Stefano Dal Pra s.dal...@gmail.com

 Per riprovare pero', non basta un semplice:

 del test
 import test
 eccetera.

 Facendo questo mi ritorna la vecchia incarnazione della classe, cioe'
 python ignora bellamente
 il fatto che il file sia cambiato e l'aver dato
 del test
 non ha veramente cancellato dalla memoria dell'interprete la sua
 esistenza.



 reload(test.py)  ?


scusami, chiaramente é:
 reload(test)
o
 reload(nomedelmodulo)

se ho capito bene la tua domanda.




-- 
Giovanni Dall'Olio, phd student
Department of Biologia Evolutiva at CEXS-UPF (Barcelona, Spain)

My blog on bioinformatics: http://bioinfoblog.it
___
Python mailing list
Python@lists.python.it
http://lists.python.it/mailman/listinfo/python


Re: [Python] Come fareste voi?

2010-02-19 Per discussione Simone Federici
import test

...
...
...

reload(test)





Simone Federici
---
Software Architect



2010/2/19 Stefano Dal Pra s.dal...@gmail.com

 Ciao a tutti,
 vorrei chiedervi se conoscete un modo per snellire un aspetto tedioso
 nello [mio modo di] sviluppare in python.

 Spesso, soprattutto nelle fasi iniziali di stesura del codice, uso un
 editor di testo (emacs o altro)
 e tengo aperto un interprete python. Con l'editor definisco la mia
 brava classina testclass in un file (p. es: test.py )
 e un paio di metodini che poi provo al volo per vedere se sono
 corretti. Per esempio:


 s...@lapdp:~/py$ python
 Python 2.5.5 (r255:77872, Feb  1 2010, 19:53:42)
 [GCC 4.4.3] on linux2
 Type help, copyright, credits or license for more information.
  import test
  p=test.testclass('testfile.conf')
  p.setRFK('teststring')
 

 In questo caso tutto ok. Il codice ha funzionato.

 Quel che accade normalmente, pero', e' che ci sia un bug nel metodino
 nuovo appena scritto e l'interprete sollevi la
 sua brava eccezione dettagliando il problema.
 Leggo, correggo e salvo, poi riprovo.

 Per riprovare pero', non basta un semplice:

 del test
 import test
 eccetera.

 Facendo questo mi ritorna la vecchia incarnazione della classe, cioe'
 python ignora bellamente
 il fatto che il file sia cambiato e l'aver dato
 del test
 non ha veramente cancellato dalla memoria dell'interprete la sua esistenza.

 Devo invece uscire da python, rientrare, ripetere i passi daccapo.

 La mia domanda quindi e' se posso forzare python a rileggere il file
 senza dover uscire e rientrare da python?
 In altre parole: esiste un modo piu' brutale di del qualcosa ?

 Grazie per i vostri benevoli pareri...

 Stefano
 ___
 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] Come fareste voi?

2010-02-19 Per discussione Leonardo M. Millefiori
Il 19/02/2010 11:59, Stefano Dal Pra ha scritto:
 Grazie mille!
 
 Oso rilanciare, visto che mi avete risolto il problema in 2 min.
 
 Se uno facesse invece:
 
 from test import x,y,z
 
 si potrebbe fare lo stesso?
 
 ( il reload mi va benissimo, per carita', ma se sapete qualcosa anche
 per questo caso...)
 
 Ciao
 Stefano
 
 2010/2/19 Simone Federici s.feder...@gmail.com:
 import test
 ...
 ...
 ...
 reload(test)




 Simone Federici
 ---
 Software Architect



 2010/2/19 Stefano Dal Pra s.dal...@gmail.com

 Ciao a tutti,
 vorrei chiedervi se conoscete un modo per snellire un aspetto tedioso
 nello [mio modo di] sviluppare in python.

 Spesso, soprattutto nelle fasi iniziali di stesura del codice, uso un
 editor di testo (emacs o altro)
 e tengo aperto un interprete python. Con l'editor definisco la mia
 brava classina testclass in un file (p. es: test.py )
 e un paio di metodini che poi provo al volo per vedere se sono
 corretti. Per esempio:


 s...@lapdp:~/py$ python
 Python 2.5.5 (r255:77872, Feb  1 2010, 19:53:42)
 [GCC 4.4.3] on linux2
 Type help, copyright, credits or license for more information.
 import test
 p=test.testclass('testfile.conf')
 p.setRFK('teststring')


 In questo caso tutto ok. Il codice ha funzionato.

 Quel che accade normalmente, pero', e' che ci sia un bug nel metodino
 nuovo appena scritto e l'interprete sollevi la
 sua brava eccezione dettagliando il problema.
 Leggo, correggo e salvo, poi riprovo.

 Per riprovare pero', non basta un semplice:

 del test
 import test
 eccetera.

 Facendo questo mi ritorna la vecchia incarnazione della classe, cioe'
 python ignora bellamente
 il fatto che il file sia cambiato e l'aver dato
 del test
 non ha veramente cancellato dalla memoria dell'interprete la sua
 esistenza.

 Devo invece uscire da python, rientrare, ripetere i passi daccapo.

 La mia domanda quindi e' se posso forzare python a rileggere il file
 senza dover uscire e rientrare da python?
 In altre parole: esiste un modo piu' brutale di del qualcosa ?

 Grazie per i vostri benevoli pareri...

 Stefano
 ___
 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 mailing list
 Python@lists.python.it
 http://lists.python.it/mailman/listinfo/python

Non funzionerebbe ugualmente perché ogni modulo può essere importato una
sola volta; un secondo import dello stesso modulo verrebbe semplicemente
ignorato.

Comunque, per python 3.x è necessario però importare la funzione reload
dal modulo imp:

from imp import reload

Mi permetto di precisarlo perché mi è già capitato di sbatterci la
testa. Magari a qualcuno sarà utile...

Leonardo M. Millefiori
___
Python mailing list
Python@lists.python.it
http://lists.python.it/mailman/listinfo/python


Re: [Python] Come fareste voi?

2010-02-19 Per discussione Simone Federici
from test import x,y,z

...
...
...

import test
reload(test)
from test import x,y,z


Simone Federici
---
Software Architect



2010/2/19 Andrea Gasparini ga...@yattaweb.it

 Stefano Dal Pra spiffera, alle Friday 19 February 2010 circa:
  La mia domanda quindi e' se posso forzare python a rileggere il file
  senza dover uscire e rientrare da python?
  In altre parole: esiste un modo piu' brutale di del qualcosa ?

 reload(test)

 bye
 --
 -gaspa-
 ---
  https://launchpad.net/~gaspa -
 - HomePage: http://gaspa.yattaweb.it --
 -Il lunedi'dell'arrampicatore: www.lunedi.org -
 ___
 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] wrpping di librerie c/c++

2010-02-19 Per discussione Massimo Di Stefano
Salve ragazzi ... 


vorrei imparare a wrappare delle librerie di una applicazione,
ho trovato questo pdf che indica vari metodi : 
http://teckla.idyll.org/~t/transfer/public/day3.pdf 

.. sapete consigliarmi 
.. conoscete qualche guida (magari in italiano) ?

purtroppo non sono un programmatore esperto, 
conosco un pò python ma ho scarse conoscenze di c/c++ 
... ciò significa che da parte mia ci dovrà essere un bello sforzo :-/.

vi ringrazio per un qualsiasi consiglio.

Ciao,

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


Re: [Python] Come fareste voi?

2010-02-19 Per discussione Enrico Franchi

On Feb 19, 2010, at 12:50 PM, Riccardo Lemmi wrote:

 Ti suggerisco un approccio TDD (Test Driven Development):
 
  http://en.wikipedia.org/wiki/Test-driven_development

Assolutamente quoto.

 in python di solito si usa la libreria unittest.

O nose... io ultimamente lo apprezzo molto.___
Python mailing list
Python@lists.python.it
http://lists.python.it/mailman/listinfo/python


Re: [Python] Come fareste voi?

2010-02-19 Per discussione Stefano Dal Pra
Grazie a tutti;

Il TDD e' interessante.
Ho installato nose e ho provato, ma non ho cavato risultati utili
nei 30 secondi che gli ho dedicato. Tornero' alla carica con un
po' di pazienza.

D'altra parte mi son fatto l'idea che tenere un interprete aperto
per testare porzioncine di codice (anche come palestra di sintassi, se vogliamo)
sia gia' una rudimentale forma di tdd
e considerato che mi sono appassionato a python anche grazie
a queste possibilita', credo proprio che lo provero'.

Grazie, ciao
Stefano

2010/2/19 Enrico Franchi enrico.fran...@gmail.com:

 On Feb 19, 2010, at 12:50 PM, Riccardo Lemmi wrote:

 Ti suggerisco un approccio TDD (Test Driven Development):

  http://en.wikipedia.org/wiki/Test-driven_development

 Assolutamente quoto.

 in python di solito si usa la libreria unittest.

 O nose... io ultimamente lo apprezzo molto.
 ___
 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] Come fareste voi?

2010-02-19 Per discussione Giovanni Marco Dall'Olio
2010/2/19 Alessandro Dentella san...@e-den.it

  O nose... io ultimamente lo apprezzo molto.


 In questa lista si è sponsorizzato a più riprese nose, qualcuno può dire
 come si confronta con py.test?


Questo thread sta diventando interessante, peró un poco fuori topic, giá che
il titolo originale non era granché... Secondo me se uno ha una domanda, é
meglio farla in un nuovo thread e con un nuovo titolo, per fare meno
confusione.






-- 
Giovanni Dall'Olio, phd student
Department of Biologia Evolutiva at CEXS-UPF (Barcelona, Spain)

My blog on bioinformatics: http://bioinfoblog.it
___
Python mailing list
Python@lists.python.it
http://lists.python.it/mailman/listinfo/python


[Python] tabelle htm a csv

2010-02-19 Per discussione ivan marchesini
Ciao a tutti...
sono piuttosto nuovo a python urllib, minidom ecc..

credo di aver capito che gli strumenti di cui sopra mi possano servire
per trasformare automaticamente in csv le tabelle che trovo qui:
http://www.cfcalabria.it/index.php?option=com_wrapperview=wrapperItemid=41
seguendo i vari link...
ad esempio questa:
http://www.cfcalabria.it/DatiVari/midmar/banca_dati.php?p=visualizza_dati_mensilicodice=2874par=NGGP

la parte di iterazione su tutte le tabelle potrei poi risolverla a
parte...
quello che mi manca è proprio capire come posso prnedere il dato
(urllib.urlopen??) e poi sezionarlo per ottenere una matrice da
esportare in csv..

conto nel vostro buon cuore  :-)

ciao

Ivan



-- 
Ti prego di cercare di non inviarmi files .dwg, .doc, .xls, .ppt.
Preferisco formati liberi.
Please try to avoid to send me .dwg, .doc, .xls, .ppt files.
I prefer free formats.
http://it.wikipedia.org/wiki/Formato_aperto
http://en.wikipedia.org/wiki/Open_format

Ivan Marchesini
Perugia (Italy)
Socio fondatore GFOSS Geospatial Free and Open Source Software 
http://www.gfoss.it
e-mail: marches...@unipg.it
ivan.marches...@gmail.com
fax (home): +39(0)5782830887
jabber: geoiva...@jabber.org
skype: geoivan73


signature.asc
Description: Questa è una parte del messaggio firmata digitalmente
___
Python mailing list
Python@lists.python.it
http://lists.python.it/mailman/listinfo/python


[Python] test [was: Re: Come fareste voi?]

2010-02-19 Per discussione Daniele Varrazzo
On Fri, 19 Feb 2010 19:36:02 +0100, Alessandro Dentella san...@e-den.it
wrote:
 O nose... io ultimamente lo apprezzo molto.
 
 
 In questa lista si è sponsorizzato a più riprese nose, qualcuno può dire
 come si confronta con py.test?

Sono uguali: se ne usi uno difficilmente rimpiangi l'altro (secondo me).

 A me piaciono anche i doctest quando penso ai test come documentazione
di
 API ma sia nose che py.test possono eseguire i test in formato doctest
ma
 danno un sommario molto povero ovvero cosiderano un file.txt con dentro
i
 test come un singolo test, quando il modulo doctest li considera
 sigolarmente. 
 
 Inoltre io non sono riuscito ad usare in modo utile l'opzione per cui
 note/py.test aprono la shell di debug quando capita un errore, cosa che
 invece funziona bene sia con nose che con py.test con test di tipo
 unittest.

Perché, e qui lo dichiaro pubblicamente, i doctest sono la tecnologia di
test più abusata e meno adatta che sia venuto in mente a chiunque abbia
visto un prompt fatto così: 

I doctest sono un brillante modo di testare... la documentazione!!! da
quando sono diventati un modo di testare il programma? Purtroppo da
abbastanza presto, e sono uno strumento oscenamente scomodo per farlo, nel
senso che costringono a contorsioni da kamasutra per eliminare la
variabilità che c'è nell'output dei comandi [1] o per mettere insieme una
test suite con setup e teardown. In tutto questo le docstring perdono il
significato originale: essere documentazione concisa.

[1]
http://docs.python.org/library/doctest.html#option-flags-and-directives

Ed Loper, autore di Epydoc (credo anche uno degli autori di doctest), ha
usato solo doctest per documentare Epydoc stesso [2]. Ma tu guarda che si è
dovuto inventare [3] per far girare una test suite un po' più complessa?!?!
Ne è valsa la pena? A me non sembra.

[2]
http://epydoc.svn.sourceforge.net/viewvc/epydoc/trunk/epydoc/src/epydoc/test/
[3]
http://epydoc.svn.sourceforge.net/viewvc/epydoc/trunk/epydoc/src/epydoc/test/util.py?revision=1502view=markup

Quindi per me SE uno scrive delle docstring e SE nelle docstring capita
che ci sia un esempio autocontenuto (e non fetch restituisce un record:
 Record.fetch()... e poi serve un database e come configurare il DSN di
test...) allora tu fai girare i doctest e verifichi che la docstring sia
consistente con quello che dichiara. Che poi siano anche test aggiuntivi
per la test suite completa del programma, tanto meglio. Ma che le docstring
sostituiscano una unit test apposita, secondo me, è un giochino carino,
divertente, ma durato troppo.

-- 
Daniele Varrazzo - Develer S.r.l. 
http://www.develer.com
___
Python mailing list
Python@lists.python.it
http://lists.python.it/mailman/listinfo/python


Re: [Python] tabelle htm a csv

2010-02-19 Per discussione Marco Beri
2010/2/19 ivan marchesini ivan.marches...@gmail.com

 Ciao a tutti...
 sono piuttosto nuovo a python urllib, minidom ecc..

 credo di aver capito che gli strumenti di cui sopra mi possano servire
 per trasformare automaticamente in csv le tabelle che trovo qui:

 http://www.cfcalabria.it/index.php?option=com_wrapperview=wrapperItemid=41
 seguendo i vari link...
 ad esempio questa:

 http://www.cfcalabria.it/DatiVari/midmar/banca_dati.php?p=visualizza_dati_mensilicodice=2874par=NGGP

 la parte di iterazione su tutte le tabelle potrei poi risolverla a parte...
 quello che mi manca è proprio capire come posso prnedere il dato
 (urllib.urlopen??) e poi sezionarlo per ottenere una matrice da
 esportare in csv..



html = urllib.urlopen(http://www.cfcalabria.eccetera;).read()

A questo punto io userei Beatiful Soup per tirare fuori la tabella dalla
stringa html

Ciao.
Marco.

-- 
http://python.thinkcode.tv - Videocorso di Python
http://stacktrace.it - Aperiodico di resistenza informatica
http://beri.it - Blog di una testina di vitello
___
Python mailing list
Python@lists.python.it
http://lists.python.it/mailman/listinfo/python


Re: [Python] Come fareste voi?

2010-02-19 Per discussione Enrico Franchi

On Feb 19, 2010, at 7:06 PM, Giovanni Porcari wrote:

 WingIDE è davvero comodo. Se solo fosse Cocoa sarebbe la perfezione;)

Ah, ma lo sai che sono stracostretto a quotarti. 
GTK e' veramente una iattura su OS X. Ma anche cosi'
*IMHO* e' piu' comodo[0] delle alternative.




--
[0] nel senso che dopo avere speso quello che ho speso per comprarlo
evito di perdere tempo per aggiungerne tutte le funzionalita' ad Emacs[1],
con un risparmio in termini di tempo e di fun completamente superiore 
alla cifra spesa. g

[1] e' possibile sostituire liberamente vim ad Emacs nella frase precedente.
___
Python mailing list
Python@lists.python.it
http://lists.python.it/mailman/listinfo/python


Re: [Python] tabelle htm a csv

2010-02-19 Per discussione Marco Beri
2010/2/19 Marco Beri marcob...@gmail.com

A questo punto io userei Beatiful Soup per tirare fuori la tabella dalla
 stringa html


Beautiful Soup

Sorry.

-- 
http://python.thinkcode.tv - Videocorso di Python
http://stacktrace.it - Aperiodico di resistenza informatica
http://beri.it - Blog di una testina di vitello
___
Python mailing list
Python@lists.python.it
http://lists.python.it/mailman/listinfo/python


Re: [Python] test [was: Re: Come fareste voi?]

2010-02-19 Per discussione Manlio Perillo
-BEGIN PGP SIGNED MESSAGE-
Hash: SHA1

Daniele Varrazzo ha scritto:
 [...]
 Inoltre io non sono riuscito ad usare in modo utile l'opzione per cui
 note/py.test aprono la shell di debug quando capita un errore, cosa che
 invece funziona bene sia con nose che con py.test con test di tipo
 unittest.
 
 Perché, e qui lo dichiaro pubblicamente, i doctest sono la tecnologia di
 test più abusata e meno adatta che sia venuto in mente a chiunque abbia
 visto un prompt fatto così: 
 

Concordo su tutto.
Cominci ad usare una cosa perchè è comoda, e finisci con l'abusarne,
insistendo anche quando perdi la comodità e l'espressività.


Ciao  Manlio
-BEGIN PGP SIGNATURE-
Version: GnuPG v1.4.10 (GNU/Linux)
Comment: Using GnuPG with Mozilla - http://enigmail.mozdev.org

iEYEARECAAYFAkt+7h0ACgkQscQJ24LbaUS2OwCePgc1wlTLk8OrfI+3Xzty+Bfp
ZBcAn3UBMMs7kkfRMpLJvFO5Bhic0D9l
=/KF2
-END PGP SIGNATURE-
___
Python mailing list
Python@lists.python.it
http://lists.python.it/mailman/listinfo/python


Re: [Python] Come fareste voi?

2010-02-19 Per discussione Enrico Franchi

On Feb 19, 2010, at 7:36 PM, Alessandro Dentella wrote:

 In questa lista si è sponsorizzato a più riprese nose, qualcuno può dire
 come si confronta con py.test?

Quoto quello che dice Daniele. Sono grosso modo equivalenti. Io ho
iniziato con nose perche' in quel periodo mi sembrava leggermente meglio.
Possibile anche che il mio giudizio fosse sbagliato, ma ormai...

Tra l'altro anche leggendo il libro di Tarek si ha la stessa impressione.

Quello che posso dirti e' che (senza essere esperto di py.test):

1. di fico ha il disabilitamento booleano di test
2. di fico ha funzioni di testing distribuito[0]
3. e' parte di un framework piu' grande (giudica tu se e' un bene o un male)
4. non ha un sistema di plugin come nose per essere integrato nel setup

Ciascuna fra la 1,2,4 potrebbe essere cambiata (aggiunta anche a nose o
aggiunta anche a py.test). Tarek consiglia nose a meno che non ti serva
qualcosa che py.test ha e nose no.

Ognuno poi prova come preferisce.

-
[0] che a me non servono *e* credo in genere non servano

 A me piaciono anche i doctest quando penso ai test come documentazione di
 API ma sia nose che py.test possono eseguire i test in formato doctest ma
 danno un sommario molto povero ovvero cosiderano un file.txt con dentro i
 test come un singolo test, quando il modulo doctest li considera
 sigolarmente. 

Ancora una volta sono d'accordo con Daniele. I doctest vengono facilissimamente
abusati. Alcune volte sono veramente comodi: per esempio per il codice molto
algoritmico li uso (eventualmente insieme a codice piu' mirato) per mostrare
il funzionamento di metodi e funzioni... quindi *molto* come documentazione. Ma,
a volte, anche come test vero e proprio.

Nel caso generale faticherei ad usarli.


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


Re: [Python] tabelle htm a csv

2010-02-19 Per discussione Nicola Larosa
Marco Beri wrote:
 A questo punto io userei Beatiful Soup per tirare fuori la tabella
 dalla stringa html

Io no. Anche di recente abbiamo (hanno) avuto problemi in ditta con
Beautiful Soup, e siamo passati a usare lxml.html . Anche il parser di
html5lib non è male.

Inoltre Beautiful Soup è praticamente non più mantenuto, vedi archivi di
it.comp.lang.python per dettagli.

-- 
Nicola Larosa - http://www.tekNico.net/

We appear to be the only screen entering mass production designed for
reading that offers color, video, longer battery life and works as-is
with existing software stacks (from OS to viewers) and in any lighting
condition including the pitch black and outside in direct sunlight and
integrates easily with touchscreens. - Mary Lou Jepsen, October 2009
___
Python mailing list
Python@lists.python.it
http://lists.python.it/mailman/listinfo/python


Re: [Python] test [was: Re: Come fareste voi?]

2010-02-19 Per discussione Daniele Varrazzo
On Fri, 19 Feb 2010 22:51:12 +0100, Alessandro Dentella san...@e-den.it
wrote:

   1. probabilmente anche in uno unittest avrebbero dovuto esserci delle
  test/helper function fatte per rendere i test più leggibili...

Il fatto è che in una unit test le funzioni helper sono codice messo a
fianco al codice, con funzioni che chiamano altre funzioni... normalissimo
python, no?

Una doctest è un'imbragatura sadomaso che costringe ad un'unica funzione
di test, ovvero assert str(o) == s con s costante. Qualunque test lo devi
ridurre a questo, tutti i metodi che ti aspetti in un framework di test
suite ricco (es. assertAlmostEqual...) te lo scordi e devi sempre starti ad
inventare un helper() per cui str(helper(o)) == s.

Se anche devi mettere funzioni helper in una test suite, hanno la
possibilità di lavorare su tipi di dati più ricchi, sfruttando tutto quello
che offre il linguaggio, anziché rimpiazzare stringhe su stringhe fino a
ridurre il risultato una costante da confrontare per eguaglianza col
prototipo (ah, a meno di IGNORE_EXCEPTION_DETAIL e NORMALIZE_WHITESPACE...
altre funzioni che trasformano testo in testo)

   2. proprio perché ce ne è più di uno mi pare che sia corretto
scegliere
   il
  migliore per ogni singola situazione. 
 
  E` corretto chiedere che si evitino contorsionismi strani, ma
spesso
  la
  leggibilità di test fatti con doctest è decisamente elevata. 

Già parlare di metodologie è soggettivo, parlare di leggibilità forse lo è
anche di più... In ogni caso io definisco una docstring leggibile quando è
documentazione leggibile, non quando è un test leggibile.

E visto che i test *puoi* metterli altrove ma le docstring no, devono
stare nel modulo, e visto che 500 righe di test ci stanno bene su un metodo
di 10 righe, ma 500 righe di test in mezzo a metodi di 10 righe (e dico
proprio *in mezzo*, tra un metodo e l'altro)... io le docstring non le
ammiro.

 Sono anche convinto che la flessibilità delle unittest (o simili) sia
 molto
 maggiore in varie circostanze per cui non ci rinuncerei affatto.

Non ho intenzione di farti cambiare idea: visto che lo strumento è stato
citato, queste sono le mie considerazioni e i motivi per cui io non le uso
se non per testare documentazione. Secondo me la documentazione deve essere
esplicativa mentre i test devono essere esaustivi: visto i due obiettivi
spesso finiscono con l'essere in contraddizione preferisco tenerli
fisicamente separati e usare lo strumento migliore per l'obiettivo.

-- 
Daniele Varrazzo - Develer S.r.l. 
http://www.develer.com
___
Python mailing list
Python@lists.python.it
http://lists.python.it/mailman/listinfo/python