Re: [Python] Ciao a tutti

2012-06-22 Per discussione Giovanni Marco Dall'Olio
2012/6/22 Davide Rambaldi davide.ramba...@gmail.com


 Vorrei quindi chiedervi: potete indicarmi delle risorse per approcciare
 python avendo buone conoscenze di altri linguaggi, principalmente: Perl,
 Ruby, C++  ?


Benvenuto collega bioinformatico!!

Una buona risorsa per imparare è Software Carpentry for bioinformaticians:
- http://software-carpentry.org/
Software Carpentry nasce da un articolo pubblicato anni fa sul New York
Times, in cui l'autore, informatico professionista passato alla ricerca, si
lamentava del fatto che la maggior parte dei bioinformatici al tempo
fossero completamente ignoranti di qualsiasi buona pratica di
programmazione. Accidenti, non riesco a trovare l'articolo originale,
devono essere passati almeno 10 anni.

Da quell'articolo, è nato un sito web pieno di risorse per imparare a
programmare bene in bioinformatica. Il linguaggio utilizzato per spiegare i
concetti di base è il python, scelto per la sua sintassi chiara e per tutta
una serie di vantaggi in confronto al python. Peró vi sono lezioni anche su
altri argomenti, per esempio su come usare make per definire pipelines,
come usare il controllo di versione, come definire i tests, etc...

E poi, faccio un poco di autospam, ma se hai bisogno di fare domande di
bioinformatica, anche non di python, puoi dare una occhiata a biostars, un
forum basato sul template di stackoverflow, ma frequentato da
bioinformatici: http://www.biostars.org/

saludos,
Gio



 Grazie!



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




-- 
Giovanni Dall'Olio, phd student
IBE, Institut de Biologia Evolutiva, 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] Ciao a tutti

2012-06-22 Per discussione Giovanni Marco Dall'Olio
2012/6/22 Nicola Larosa n...@teknico.net

 Giovanni Marco Dall'Olio wrote:

  biostars, un forum basato sul template di stackoverflow, ma
  frequentato da bioinformatici: http://www.biostars.org/

 Un altro? Già c'erano http://askbot.com/ e http://www.osqa.net/,
 quanti cloni di StackOverflow fatti con Django ci sono in giro? :-)



eheh si, ci sono tanti cloni di StackOverflow, peró in questo caso la cosa
piú importante è la gente che li frequenta.
Penso che i forum di bioinformatica piú importanti siano SeqAnswers (piú
specializzato sull'analisi di dati di sequenziamento) e biostars. Ovvero,
non ci sono poi cosí tanti bioinformatici in giro, e la maggior parte di
quelli che frequentano forum, sono su questi siti (a meno che non me ne sia
perso qualcuno).








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

 Scrivere libri in un formato proprietario che per di più dipende dallo
 utilizzo non più di un solo software, ma di una specifica piattaforma
 hardware significa consegnare il sapere umano a un’azienda che continua
 a perseguire la strategia di dominio del pensiero in quanto tale teoriz-
 zata e applicata dal suo defunto fondatore. - Andrea Monti, marzo 2012
 ___
 Python mailing list
 Python@lists.python.it
 http://lists.python.it/mailman/listinfo/python




-- 
Giovanni Dall'Olio, phd student
IBE, Institut de Biologia Evolutiva, 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] Lanciare processo in foreground da un processo in background

2012-06-13 Per discussione Giovanni Marco Dall'Olio
2012/6/13 Valerio Pachera siri...@gmail.com

 Ciao a tutti, sto creando uno script che lancia mplayer quando si
 verifica una certa condizione.
 Se lancio lo script in foreground, maplayer funziona, altrimenti
 rimane come in sospeso.
 Per eseguire il comando uso il modulo 'commands'.



Nota che il modulo commands è deprecato nelle ultime versioni di python:
- http://docs.python.org/library/commands.html

Secondo me devi usare Popen nel modulo subprocess.
Prova per esempio a digitare sull'interprete interattivo di python:

import subprocess
p = subprocess.Popen(['sleep', '10'])

Vedrai che il comando sleep viene lanciato in background, senza bloccare
l'interprete. Non ho capito se è questo quello che chiedi, peró ti dovrebbe
essere utile :-)

Maggiori info:
- http://docs.python.org/library/subprocess.html



 Bastano 2 righe per fare una prova:

 ---
 import commands
 commands.getstatusoutput ('mplayer /usr/share/sounds/k3b_success1.wav')
 ---

 python -u prova.py
 e
 python -u prova.py 

 Ho provato anche a forkare il processo ma ottengo lo stesso risultato

 ---
 def play_sound(sound):
print sound
commands.getstatusoutput ('mplayer '+ sound )

 player = multiprocessing.Process ( target=play_sound,
 args=(/usr/share/sounds/k3b_success1.wav,) )
 player.start()
 ---

 Premetto che non sono un programmatore e python lo conosco parzialmente.

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




-- 
Giovanni Dall'Olio, phd student
IBE, Institut de Biologia Evolutiva, 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] problema reverse sulle liste

2012-06-13 Per discussione Giovanni Marco Dall'Olio
2012/6/13 Marco Beri marcob...@gmail.com

 2012/6/13 Giovanni Marco Dall'Olio dalloli...@gmail.com

 Nota che tutti i metodi delle liste funzionano nello stesso modo. Per
 esempio, anche sort, append, pop, lavorano in place e ritornano None.


 Beh, non proprio, pop ritorna qualcosa.

 E anche index e count :-)


eheh è vero, e forse è anche per questo motivo che le liste in python
funzionano in questo modo.
Saludos!


-- 
Giovanni Dall'Olio, phd student
IBE, Institut de Biologia Evolutiva, 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] gestione della memoria

2012-06-06 Per discussione Giovanni Marco Dall'Olio
2012/6/6 Lorenzo Bottai bot...@lamma.rete.toscana.it

 Ho un problema sulla gestione di matrici di grandi dimensioni. In
 particolare il programma va in errore a gestire 4 immagini 7000 x 7000 di
 tipo float.


Puoi dare una occhiata alla libreria hdf5 per python:
- http://alfven.org/wp/hdf5-for-python/

HDF5 è un formato usato in fisica per gestire dati di grosse dimensioni.
Per esempio, risultati di simulazioni, accelerazioni di particelle,
osservazioni di telescopi. Credo che sia utilizzato anche in altri campi,
come per esempio per le previsioni meteo ed altro.

In principio, ogni file binario HDF5 è un piccolo file system a parte, con
gruppi (directory) e datasets. Dovresti essere in grado di leggere il tuo
dataset su un file HDF5 e lavorare su esso direttamente, senza doverlo
caricare in memoria.

La documentazione è molto buona e l'oggetto utilizzato per rappresentare
una matrice è simile ad un array di numpy, addirittura alcuni metodi sono
in comune e con un po' di fortuna le funzioni che utilizzi non si
renderanno nemmeno conto della differenza.



-- 
Giovanni Dall'Olio, phd student
IBE, Institut de Biologia Evolutiva, 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] leggere lo standard output di un programma esterno

2012-06-01 Per discussione Giovanni Marco Dall'Olio
de nada... mi hanno fatto notare che mi sono dimenticato le parentesi
quadre:

myoutput = subprocess.check_output(['ls', '-a']

2012/6/1 Matteo Perini perini.mat...@gmail.com

 myoutput = subprocess.check_output('ls', '-a')




-- 
Giovanni Dall'Olio, phd student
IBE, Institut de Biologia Evolutiva, 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] leggere lo standard output di un programma esterno

2012-06-01 Per discussione Giovanni Marco Dall'Olio
2012/6/1 Matteo Perini perini.mat...@gmail.com

  Il 01/06/2012 09:31, Giovanni Marco Dall'Olio ha scritto:

 de nada... mi hanno fatto notare che mi sono dimenticato le parentesi
 quadre:

 myoutput = subprocess.check_output(['ls', '-a']

 2012/6/1 Matteo Perini perini.mat...@gmail.com

 myoutput = subprocess.check_output('ls', '-a')


  Si ma quello non è assolutamente un problema ;)

 Avrei un altra domanda invece... se posso.
 con subprocess chiamo molte volte in sequenza lo stesso comando e non
 riscontro nessun problema perchè il comando termina prima che venga
 richiamato nuovamente.
 Se però contemporaneamente lo richiamo tramite un button della gui
 ottengo errore e si blocca tutto.
 Questo succede perchè all'interno del comando che lancio viene richiamata
 una videocamera che, se è già attiva in un altra istanza del programma,
 risulterà busy.
 C'è un modo per controllare se un programma è in running sul SO?
 E' una cosa che secondo voi posso gestire con try except?


Io non sono molto esperto di programmazione di sistema, pero mi vengono in
mente un paio di  modi per risolvere il problema:

  * usare un .lock file, ovvero fare in modo che la applicazione crei un un
file temporaneo quando si avvia e che lo distrugga quando termina. Per
esempio, firefox usa (o usava) questo sistema.
  * su un sistema unix, lanciare subprocess.check_output(ps aux) e
verificare se l'applicazione è in esecuzione
  * forse si puó usare anche un try-except, peró potrebbe essere difficile
distinguere se la videocamera non risponde perché è occupata o se invece
non risponde perché ci sono altri problemi, e.g. non è collegata.

Probabilmente esistono soluzioni piú eleganti che permettono di definire
code di jobs ed eseguire il comando quando la videocamera si libera, peró
non ti saprei consigliare una libreria particolare.





 Ciao
 e grazie di nuovo.
 Matteo

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




-- 
Giovanni Dall'Olio, phd student
IBE, Institut de Biologia Evolutiva, 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] leggere lo standard output di un programma esterno

2012-05-30 Per discussione Giovanni Marco Dall'Olio
2012/5/30 Matteo Perini perini.mat...@gmail.com

 Ciao a tutti,
 scrivo per chiedere un consiglio.
 Avrei bisogno di importare lo standard output di un programma c++ nel mio
 software (in python).



Nelle ultime versioni di python (2.6) tutti i moduli per eseguire comandi
esterni sono stati raccolti nella libreria subprocess.
Leggi per esempio il warning in rosso nella documentazione di commands
http://docs.python.org/library/commands.html , o PEP 0324
http://www.python.org/dev/peps/pep-0324/

Nel tuo caso la sintassi di subprocess è molto simile a quella di commands,
ovvero:

$: myoutput = subprocess.check_output('ls', '-a')
$: print myoutput






 Attualmente ho risolto con queste due righe:

 import commands

 x = commands.getoutput('./prova')

 e il tutto funziona.
 La domanda è:
 Ci sono altri metodi per avere questo stesso effetto senza importare la
 libreria commands?
 Forse la domanda sembra sciocca ma volevo capire se mi stò legando ad una
 libreria che posso evitare o se invece usare commands è la strda più
 indicata.
 Grazie
 Ciao
 Matteo

 __**_
 Python mailing list
 Python@lists.python.it
 http://lists.python.it/**mailman/listinfo/pythonhttp://lists.python.it/mailman/listinfo/python




-- 
Giovanni Dall'Olio, phd student
IBE, Institut de Biologia Evolutiva, 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] RE

2012-04-20 Per discussione Giovanni Marco Dall'Olio
raw_input(questo non succederebbe se utilizzassi un sistema operativo
serio :-) )

2012/4/20 Giuse giuseppelu...@gmail.com

 Ciao Ragazzi,
 sono appena approdato a Python, da due anni circa nel mio tempo libero ho
 iniziato a imparare con il fai da te i classici linguaggi dei
 principianti, quindi l'HTML, CSS e JAVASCRIPT, cosi ho cominciato a fare
 qualche sito, ma niente di eccezionale, non sono un professionista nella
 vita faccio altro.

 Oggi mi sono registrato a Python e vorrei imparare un vero e proprio
 linguaggio di programmazione, dato che mi si è presentata la possibilità di
 poter scrivere alle persone di questa lista, approfitto a farlo con la
 speranza di essere aiutato a decollare, non vedo l'ora di imparare
 qualcosa.
 Ho installato il 2.7 sulla macchina windows 7 ma ancora non sono pratico.
 Ho provato a programmare Hello world praticamente non riesco a capire il
 motivo per cui NON STAMPA A VIDEO, quindi dopo molte prove mi chiedo se è
 normale che faccia cosi oppure no.

 Saluti.
 __**_
 Python mailing list
 Python@lists.python.it
 http://lists.python.it/**mailman/listinfo/pythonhttp://lists.python.it/mailman/listinfo/python




-- 
Giovanni Dall'Olio, phd student
IBE, Institut de Biologia Evolutiva, 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] dizionario python con chiavi non univoche

2011-11-25 Per discussione Giovanni Marco Dall'Olio
2011/11/24 Riccardo mancuso mancuso.riccard...@gmail.com

 salve a tutti,
 spiego meglio il mio problema: vorrei realizzare un dizionario in modo che
 come chiave si prenda un range di numeri ed i valori sono degli array.
 Ad esempio:

 dati={0x20:array([1, 5, 7 , 21,33]),
 21 x30: array(4,6,1,3,5]}

 ossia per tutti i valori x compresi tra 0 e 20 prendi il primo array (e
 così via)
 e' possibile ?



Devi creare una classe basata su dict, e poi customizzare i metodi
__getitem__ e __setitem__.

Per esempio, leggi qui:
*
http://stackoverflow.com/questions/2390827/how-to-properly-subclass-dict-and-override-get-set

Prima di farlo, peró, ti consiglio di scrivere qualche doctest per definire
come questo dizionario si dovrebbe comportare.
Per esempio, come lo inizializzeresti?





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




-- 
Giovanni Dall'Olio, phd student
IBE, Institut de Biologia Evolutiva, 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] Secondo voi questo corso su Python è valido?

2011-11-14 Per discussione Giovanni Marco Dall'Olio
Secondo me, ti conviene contattare un Python User Group locale, o cercare
qualche esperto di Python che ti dia lezioni in persona.
Python è un linguaggio abbastanza semplice da imparare, e praticamente
qualunque programmatore con 3 o 4 anni di esperienza con esso dovrebbe
essere in grado di darti delle lezioni per molto meno di 1600$.

Se cerchi degli esercizi, ne puoi trovare di gratuiti su Internet.
Per esempio:
http://stackoverflow.com/questions/29578/python-exercises-to-hone-your-skills


2011/11/14 Francesco Maida d...@cesco.it

 Il 14 novembre 2011 09:05, enrico franchi enrico.fran...@gmail.com ha
 scritto:
  Ma questo tipo di figura sai per certo che esiste? Perche' capisco
  qualcuno che ti offre un corso: tu segui il corso, fai gli esercizi e
  fine. Ma una persona che ti guarda e ti corregge esercizi random
  pensati da te ci mette il quadruplo del tempo (se non altro perche'
  non conosce gia' l'esercizio -- e inoltre non ha probabilmente
  riflettuto in anticipo al modo didatticamente corretto di presentarti
  la soluzione e togliere gli errori tipici).

 No, probabilmente non mi sono espresso bene. Intendevo una figura di
 insegnante che mi dia compiti a casa sotto forma di problemi da
 risolvere attraverso programmi da scrivere in python; e quando lo
 faccio che guardino cosa ho scritto e mi dicano se ho risolto bene il
 problema o se avrei potuto risolverlo meglio, magari attraverso l'uso
 di qualche libreria integrata a Python o l'uso di qualche costrutto
 particolare.

 In teoria, perlomeno per come lo presentano sul sito della O'Reilly
 school of technology, loro ti mettono a disposizione un tutor che fa
 questo: non ti corregge qualunque cosa tu gli mandi, ma per quanto
 riguarda gli esercizi inerenti al corso ti dovrebbe mandare una
 valutazione sul tuo operato; ed inoltre, se non ho capito male, è a
 tua disposizione via email anche per rispondere ai tuoi dubbi su
 qualche particolare argomento. Alla fin fine viene tutto fatto da
 remoto, un tutor seguirà un tot di studenti, ed il costo complessivo
 per i quattro moduli che compongono il corso è di circa 1600$ + 10-15$
 al mese, quindi secondo me è possibile che lo facciano davvero.
 ___
 Python mailing list
 Python@lists.python.it
 http://lists.python.it/mailman/listinfo/python




-- 
Giovanni Dall'Olio, phd student
IBE, Institut de Biologia Evolutiva, 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] Secondo voi questo corso su Python è valido?

2011-11-14 Per discussione Giovanni Marco Dall'Olio
Penso che dipenda da persona a persona, e anche dal tema che si deve
studiare.
Anche io a volte preferisco seguire un corso piuttosto che imparare tutto
da autodidatta... tempo risparmiato e un sacco di errori da principiante
evitati :-)
Detto questo, credo che il corso della O'Reilly sia orientato ad aziende
che abbiano bisogno di aggiornare il personale, piuttosto che a
professionisti autonomi.

Vorrei aggiungere un'altra opzione... Se nella tua cittá c'è una
universitá, potresti dare una occhiata ai corsi di informatica. In Italia
l'universitá pubblica è a libero accesso e puoi seguire i corsi senza
pagare: l'unico problema è che non potrai fare l'esame, né ottenere un
certificato.

saludos


2011/11/14 Francesco Maida d...@cesco.it

 Anche secondo me non esistono scorciatoie come dici tu, ma solo quando
 hai una base solida da cui partire. Per chi inizia con un linguaggio
 di programmazione nuovo e radicalmente diverso come me, secondo me un
 vero corso in aula (reale o virtuale) con un insegnante che ti
 spiega e ti corregge, e un gruppo di alunni motivati da migliori
 risultati rispetto all'autoapprendimento tramite libri, videolezioni e
 compagnia cantante.

 Ed io non sono affatto contrario ai corsi: Oltre ad aver acquistato e
 seguito il tuo corso, sono anche iscritto a Lynda.com, per cui sono il
 primo a credere in questo formato. Solo che penso che ancora oggi il
 corso classico sia superiore per velocità e capacità di imparare.


 Il 14 novembre 2011 13:54, Marco Beri marcob...@gmail.com ha scritto:
  +1
  Non esistono scorciatoie :-)
 ___
 Python mailing list
 Python@lists.python.it
 http://lists.python.it/mailman/listinfo/python




-- 
Giovanni Dall'Olio, phd student
IBE, Institut de Biologia Evolutiva, 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] Git, Mercurial o subversion

2011-09-21 Per discussione Giovanni Marco Dall'Olio
Se posso spezzare una lancia a favore di bitbucket, c'è da dire che
non è male... github è piú conosciuto ed ha piú servizi, peró su
bitbucket non ci sono limiti di spazio e di numero di repository
privati, che non è una brutta cosa.

vantaggi di bitbucket:
- # repo privati e spazio disco illimitati
- hg è piú semplice da imparare che git

svantaggi di bitbucket:
- meno integrato con altri servizi.
- il sistema per aprire/chiudere bugs con il testo di un commit
funziona, ma è un poco limitato
- interfaccia un poco piú spartana
- meno conosciuto.. quindi meno visibilitá per i progetti opensource

differenze principali tra git e hg:
- con hg bisogna eseguire due operazioni separate per scaricare la
lista di cambi in un repo e per applicarli (hg pull; hg update - che
comunque si trasforma in hg pull -u)
- l'output di hg diff e hg log è piú brutto che git diff e git log


2011/9/21 Francesco Maida d...@cesco.it:
 Io non ho usati estesamente nessuno dei tre, però IMHO dei tre
 Mercurial è il più facile e amichevole da utilizzare, e in 30 minuti
 di studio riesci a capire come fargli fare la maggior parte delle cose
 importanti anche grazie a questo ottimo tutorial: www.hginit.com
 Riesci agevolmente a fargli fare di tutto da riga di comando, e se poi
 hai Windows puoi usare uno strumento come TortoiseHG che ti semplifica
 ulteriormente la vita...

 Git probabilmente fa il triplo delle cose che Mercurial è in grado di
 fare ma almeno a mio parere è più complesso da gestire; c'è da dire
 che dalla sua ha uno strumento eccezionale su cui contare: il sito
 github.com. Si, lo so che per Mercurial esiste l'equivalente potrebbe
 essere bitbucket, ma secondo me la semplicità e la quantità di gente
 che lavora su github è molto maggiore e di riflesso rende molto
 interessante l'uso di Git.

 Io attualmente uso entrambi: ho dei programmi scritti in Visual studio
 ospitati su un repository Mercurial (kilnhg.com), e altri programmi
 scemi che scrivo per divertimento o per imparare a lavorare che ospito
 su github. Alla fine della fiera lavoro con client grafici in entrambi
 i casi (MercurialHG su Windows ed il client di GitHub per Mac)

 Diciamo che IMHO qualunque tu scelga fra Mercurial e Git ti porti a
 casa un cavallo vincente.
 ___
 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] stip nome file da stringa

2011-09-05 Per discussione Giovanni Marco Dall'Olio
Leggiti la documentazione sul concetto di 'non-greedy' matching per le
espressioni regolari (non saprei darti un link, ma ce ne sono tanti su
google).

re.findall('.*/(.*?)\.raw', a)


2011/9/5 Valerio Pachera siri...@gmail.com:
 immaginiamo di avere queste stringhe

 '-drive file=/mnt/dat/disco.raw,cache=none'
 '-hdb /mnt/dat/disco.raw'

 e di voler estrarre disco.raw ovvero la stringa che continene
 finisce con .raw e inizia dopo il primo slash.

 Ho letto un po' di manuale delle regex e ho provato questo:

 p = re.compile('/.*\.raw')
 print p.search(disco).group()

 che ci va vicini, sono che riporta tutto in path, ovvero /mnt/dati/disco.raw.

 Voi come fareste?
 ___
 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] listdir

2011-07-21 Per discussione Giovanni Marco Dall'Olio
Puoi usare glob.iglob, che ritorna un iteratore e non una lista.

# esempio1:
for filename in os.listdir('.'):
   print filename

# esempio2:
for filename in glob.iglob('.'):
   print filename

la differenza tra esempio1 e esempio2 è che nel primo viene generata
tutta la lista dei file nella directory (occupando memoria), mentre in
esempio2 viene preso un file alla volta (con una occupazione di
memoria minima).




2011/7/21 Marco Mariani bir...@gmail.com:
 2011/7/21 Filadelfo Fiamma philosga...@gmail.com

 avrei una curiosità:
  esiste il modo di limitare il numero di elementi trovati da
 os.listdir? Se ho una cartella contenente 2 milioni d files,

 Comunque se hai una cartella cosi', tutti i programmi che ne fanno uso
 avranno vantaggio dividendola in uno o due livelli di sottocartelle
 possibilmente di dimensione confrontabile. Cosi' fanno i programmi che
 devono gestire milioni di file di cache.

 Se i file non vengono rinominati, una buona idea potrebbe essere usare, come
 nome delle sottocartelle, la prima parte dell'md5 del nome dei file che
 andranno a contenere.



 ___
 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] Banalissima informazione

2011-04-15 Per discussione Giovanni Marco Dall'Olio
2011/4/14 Daniele Varrazzo p...@develer.com

 On Thu, 14 Apr 2011 23:02:50 +0200, ejm emilio.man...@alice.it wrote:
  Quante versioni di Python si possono avere installate contemporaneamente
 ?

 Tutte. Ho macchine di test con 6 versioni, dalla 2.4 alla 3.2. Il punto è
 solo chi risponde al prompt quando digiti 'python' e premi invio? Per
 evitare ambiguità è meglio che solo una versione sia quella di sistema e le
 altre vengano invocate in maniera esplicita.


Vorrei solo aggiungere che, per evitare di fare confusione, conviene usare
sempre easy_install per installare moduli di terze parti, visto che questo
programma supporta installazioni multiple di python.

http://packages.python.org/distribute/easy_install.html



 --
 Daniele Varrazzo - Develer S.r.l.
 http://www.develer.com
 ___
 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] Banalissima informazione

2011-04-15 Per discussione Giovanni Marco Dall'Olio
2011/4/15 ejm emilio.man...@alice.it

  Io ho la brutta abitudine di scrivere come parlo, me lo disse ( tanti anni
 fa anche il mio capo quando rispondevo alle eccezioni degli esaminatori
 degli uffici brevettuali stranieri ).

 Ma tantè, abitudine che porterò con me nell'aldilà ( è un modo di dire
 ovviamente )


se scrivi come parli, allora cosa rappresenta quello che scrivi tra
parentesi? Un cambio di voce mentre parli? oppuri ti nascondi a metá del
discorso, e poi ricompari quando finisce la parentesi? O ti giri e ti metti
una maschera alla batman? oppure, quello che scrivi tra parentesi
rappresenta quello che pensi e che comunichi mentalmente agli altri? :-)

(scusate l'off-topic, che non ha niente a che vedere con python.. adesso
smetto :-) )





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



 ___
 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] merge 2 file in python

2011-02-09 Per discussione Giovanni Marco Dall'Olio
va bene, grazie per aver condiviso la soluzione. (anche se a dire la veritá,
non riesco a trovare questo pypatch su Internet)

se vuoi un consiglio, la prossima volta che fai una domanda in una mailing
list, fai qualche esempio di quello che vuoi fare. Per esempio, le prime
righe dei file che vuoi unire e il risultato che ti aspetti.
Ci sono centinaia di modi diversi per 'unire' due files, è impossibile
risponderti se non spieghi meglio :-)



2011/2/8 Michele Gatti mgsoluzi...@gmail.com

 Scusatemi mi sono confuso un attimo, intendevo che avendo 2 file di codice
 python devo creare un unico file.
 Ho risolto con uno script fatto in python che si chiama pypatch.

 Grazie

 --

 Michele Gatti

 MG Soluzioni Informatiche



 ___
 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] merge 2 file in python

2011-02-07 Per discussione Giovanni Marco Dall'Olio
Mergere (come ti è venuto in mente mergare? :-) in che maniera?
Vuoi concatenare due file? Oppure si tratta di due file tabulari, e li
vuoi unire in base ad una colonna comune?
Potresti fare un esempio di input e di output?


2011/2/7 Michele Gatti mgsoluzi...@gmail.com:
 Qualcuno sa come posso mergare 2 file con la libreria standard?
 oppure c'è qualche plug per mergare i 2 file?

 --

 Michele Gatti
 MG Soluzioni Informatiche


 ___
 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] Tornare alla versione python distribuita con osx

2011-01-12 Per discussione Giovanni Marco Dall'Olio
$: which python # ti dice quale esecutabile viene lanciato quando dai
il comando 'python'

$: alias python # ti dice se python è un alias

$: /Library/Frameworks/Python.framework/Versions/??/python # se la
versione vecchia di python è ancora installata, la puoi eseguire
direttamente chiamandola in questo modo (oppure con bash
path-to-python-bin).

$: alias python=/Library/Frameworks/Python.framework/Versions/??/python
# se scopri dove è installata la vecchia versione di python, puoi
creare un alias in questo modo

inoltre, se hai cambiato .bashrc o simile, ricordati di ricaricarlo con source:
$: source ~/.bashrc

non ho un sistema mac, quindi non ti posso essere utile piu' di tanto.

2011/1/12 Fabrizio Mancini mr.f...@gmail.com:
 2011/1/12 Karim Gorjux lemieli...@gmail.com:
 Il file è il .bash_profile e ho già commentato la modifica fatta
 dall'installazione della 2.7.1
 Proprio non capisco dove andare a toccare.
 Domanda stupida:
 hai già chiuso (CMD-Q) la finestra di terminale e riaperta? Altimenti
 il bash non si ricarica e non legge i nuovi settaggi.
 HTH
 Ciao Fabrizio
 ___
 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] unire dati da due csv

2010-10-18 Per discussione Giovanni Marco Dall'Olio
Il problema è che csv.reader ti ritorna un tipo di oggetto iterabile,
che non è l'ideale per fare i merge e lavorare con tabelle come vuoi
fare tu. Per me csv è una libreria da utilizzare a basso livello, ma
per lavorare con dati in forma di tabella ci sono almeno tre
alternative efficenti in python.

La prima passa per numpy e il pacchetto di librerie scientifiche di python.
Prova ad utilizzare numpy.recfromtxt, numpy.recfromcsv o
numpy.genfromtxt al posto di csv.reader, per leggere files csv.
 from numpy import genfromtxt
 coords = numpy.recfromtxt(invitations-coord.txt, names=True, 
 delimiter=';', quotechar='|')
 coords['x'] # assumendo che in invitations-coord.txt vi sia una colonna 
 chiamata x
[lista di tutti i valori della colonna x]

I recarray hanno diversi vantaggi, in termini di efficienza di memoria
e facilitá di utilizzo, rispetto a liste e dizionari di python (per
lavorare con file tabulari).

Da qui, se ho ben capito tu vuoi fare un JOIN come in SQL. Non so bene
quale sia la funzione esatta per farlo con numpy, ma ti puoi ispirare
alla funzione join_by qui:
- http://pyopengl.sourceforge.net/pydoc/numpy.lib.recfunctions.html

Un altro sistema è appoggiarsi ad un sistema SQL, ovvero caricare il
CSV con python, transformarlo in una tabella SQL (SQLite per esempio)
e fare il join tramite il DBMS... se hai grandi quantitá di dati,
questo sistema puó essere piuttosto efficente, perchè un qualsiasi
DBMS è in grado di effettuare operazioni di JOIN nativamente.

Adesso peró non ti saprei dire quale libreria utilizzare... ti
potresti ispirare da: http://www.daniweb.com/forums/thread297790.html

Purtroppo è da tempo che ho abbandonato l'idea di utilizzare python
per lavorare con dati di tipo tabulare, perchè è troppo scomodo.
Preferisco utilizzare R e la funzione merge integrata nativamente
(http://rss.acs.unt.edu/Rdoc/library/base/html/merge.html).
Tra l'altro, esiste anche Rpy2, una libreria per chiamare funzioni di
R da python, posto che tu abbia installato entrambi gli interpreti.



2010/10/16 Simone Gabbriellini simone.gabbriell...@gmail.com:
 Salve Lista,

 vorrei unire dati appartenenti a due csv.reader che leggo così:

 coordReader = csv.reader(open('invitations-coord.txt', 'rb'), delimiter=';', 
 quotechar='|')

 nodesReader = csv.reader(open('invitations-nodes.txt', 'rb'), delimiter=';', 
 quotechar='|')

 sulla base della prima colonna di ogni reader, che contiene il medesimo 
 insieme di nomi univoci, vorrei creare un nuovo csv che incorpori i dati di 
 coordReader e nodesReader.

 Grazie in anticipo per ogni aiuto/suggerimento!

 cordialmente,
 Simone

 ___
 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] [OT] Database per demo

2010-10-01 Per discussione Giovanni Marco Dall'Olio
2010/10/1 Giovanni Porcari giovanni.porc...@softwell.it:
 Buongiorno a tutti

 mi piacerebbe mettere online un demo di genropy abbastanza 'corposo' e
 mi chiedevo quali database di pubblico dominio e agevole reperibilità
 potrebbero essere idonei.

Scusa, la domanda non è molto chiara... dovresti spiegare di nuovo
cosa é genropy e fare qualche esempio del tipo di demo che vorresti
mettere su. Considera che non tutti hanno seguito la discussione sui
gestionali, non mi è molto chiaro il come potresti mettere su un
gestionale basato sui dati del Protein Data Bank :-).


World Data Bank:
http://data.worldbank.org/

Ensembl.org, database con annotazioni su geni e proteine di diversi organismi
http://www.ensembl.org/index.html
http://www.ensembl.org/info/data/ftp/index.html
(attento, il database è un vero incubo... con tabelle con nomi tipo
'1', '2', e tabelle con le corrispondenze tra nomi delle tabelle e
descrizione/versioni).


Data.gov
http://www.data.gov/





 Ovviamente è necessaria una certa numerosità e la presenza di
 relazioni che possano in qualche modo essere usate per mostrare
 i possibili impieghi.

 Il fatto che i dati siano in lingua inglese potrebbe essere
 di una certa importanza.

 Possibilità:
 Database geografico ?
 Biologia ?
 Composti chimici ?

 Ogni aiuto e suggerimento è gradito :)


 G
 ___
 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] Vim e python

2010-09-22 Per discussione Giovanni Marco Dall'Olio
2010/9/22 Karim Gorjux lemieli...@gmail.com:
 Salve a tutti, dopo varie prove di IDE e tools per lo sviluppo ho
 deciso di usare VIM come ambiente di sviluppo python e non solo per
 quello. L'idea è quella di usare VIM come editor di testo su ogni
 piattaforma che uso, sia essa Mac, Linux o Win.

bravo!!

 L'indentazione è ok e si allinea con l'ultimo indent fatto, ma come
 fare in modo che sia automatico con il codice Python? Per intenderci,
 come devo fare per far si che venga indentato dopo un :?

Prova con :set smartindent invece che :set autoindent.
In alternativa, vi sono diversi plugins: io sto utilizzando uno
chiamato python-indent che viene installato di default su Ubuntu
quando install vim-addons, ma credo che con smartindent sia
sufficente.



 Grazie

 --
 K.
 Blog Personale: http://www.karimblog.net
 ___
 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] Proposta di progetto

2010-07-23 Per discussione Giovanni Marco Dall'Olio
2010/7/23 Carlos Catucci carlos.catu...@gmail.com:
 In ogni caso fra quelli che ho provato il mio preferito per ora è
 Ulipad, che ho scoperto dopo.

 Ulipad e' un editor. Per le mie esigenze (e prima di fare il post soo
 stato 2 settimane a cercare su google e cheidere in giro) serve un
 Editor + Whiteboard associati. La WB per di piu' deve essere
 vettoriale e mantenere certi collegamenti (ad esempiose disegno due
 rettangoli e li collego conun afreccia mi aspetto che se sposto un
 rettangolo la freccia rimanga attaccata). Deve poi essere
 multipiattaforma.

Se ho capito bene, forse il programma Dia potrebbe fare quello che
stai cercando:
- http://live.gnome.org/Dia
personalmente non l'ho mai provato su windows o MacOs, peró dicono che
è multi-piattaforma.
Non so in quale linguaggio sia scritto, però prevede la possibilità di
scrivere plugins in python e utilizzare una python console. Seguo il
progetto Dia da alcuni anni, e ti posso dire che hanno avuto bisogno
di un certo tempo prima di rendere il programma utilizzabile.

Penso che ci siano molte opzioni possibili per fare in modo che il
programma sia utilizzato contemporaneamente da piu' persone. Guarda il
video qui:
- http://alban.apinc.org/blog/2008/10/29/collaborative-editing-in-emacs/
riescono ad utilizzare il sistema D-Bus per editare contemporaneamente
lo stesso file su piu' editor diversi. Non dovrebbe essere difficile
ampliare il caso a dia e a un file condiviso su piu' computer, anche
se tecnicamente non ti saprei aiutare piu' di tanto.

Potresti integrare Dia con Gedit scrivendo un plugin per quest'ultimo.
Gedit è un editor di testo completo e con molte funzionalitá, e
permette di scrivere plugins in python. Non ti dovresti preoccupare di
capire come è stato scritto il codice di gedit, basterebbe leggere la
documentazione su come scrivere plugins.





-- 
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] Proposta di progetto

2010-07-23 Per discussione Giovanni Marco Dall'Olio
2010/7/23 Carlos Catucci carlos.catu...@gmail.com:
 Se ho capito bene, forse il programma Dia potrebbe fare quello che
 stai cercando:
 - http://live.gnome.org/Dia

 Dia si avvicina ma non presenta tutte le caratteristiche che ci
 servono purtroppo.

va bene, però potresti essere gentile e scrivere un feature request
agli autori di dia per spiegare tutte le caratterstiche che ti
piacerebbe vedere implementate, anche se poi decidi di sviluppare
qualcosa per conto tuo.
L'open source non funziona senza comunicazione. Gli autori di dia non
potranno mai sapere quali feature interessano agli utenti, se nessuno
glielo dice. Se decidi di iniziare un progetto opensource nuovo, ti
renderai conto di come è importante il feedback degli utenti.



 riescono ad utilizzare il sistema D-Bus per editare contemporaneamente
 lo stesso file su piu' editor diversi. Non dovrebbe essere difficile
 ampliare il caso a dia e a un file condiviso su piu' computer, anche
 se tecnicamente non ti saprei aiutare piu' di tanto.

 Purtroppo a parte che Dia non e', pur essendop quello che piu' si
 avvicina, il meglio per le nostre esigenze, investire tempo per
 cercare di far andare con trucchi (non in senso letterale) potrebbe
 essere una soluzione non transitabile.

non credo che sia un trucco, penso che il sistema mostrato nel video
sia stato pensato per editare files da piu' computer diversi.
Altrimenti, che senso avrebbe sviluppare un sistema per editare lo
stesso file su tre editor contemporaneamente, sullo stesso computer?


 Potresti integrare Dia con Gedit scrivendo un plugin per quest'ultimo.
 Gedit è un editor di testo completo e con molte funzionalitá, e
 permette di scrivere plugins in python. Non ti dovresti preoccupare di
 capire come è stato scritto il codice di gedit, basterebbe leggere la
 documentazione su come scrivere plugins.

 Beh potrebbe essere una strada per evitare di scrivere anche l'editor
 (parte poi meno complessa ma sempre da riscrivere). Ma Gedit e' anche
 multiuser?

- 
http://linuxers.org/article/next-gedit-release-will-have-plugin-collaborative-editing

negli ultimi anni, l'intero progetto gnome sta andando nella direzione
di un desktop integrato con tecnologie collaborative: probabilmente in
futuro sará possibile editare collaborativamente qualsiasi tipo
documento, e stanno lavorando a fondo per decidere quali librerie e
quali sistemi utilizzare per far comunicare programmi differenti.
Purtroppo, io a parte quello che leggiucchio ogni tanto su pollycoke,
non ti so spiegare molto: peró credo che valga la pena investire un
po' di tempo per capire quali sistemi stanno sviluppando.






-- 
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] Proposta di progetto

2010-07-22 Per discussione Giovanni Marco Dall'Olio
2010/7/22 Carlos Catucci carlos.catu...@gmail.com:
 Se fossi in te, cercherei di partecipare a qualche progetto opensource
 giá esistente: imparati e cerca di capire il codice di qualche plugin
 per gedit o simili, e prova a migliorarlo; in questo modo il tuo
 lavoro sará piu' utile a tutti quanti, e avrai dei risultati utili in
 meno tempo.

 Forse ti e' sfuuggita la premessa: non sono riuscito a trovare nulla
 cjhe faccia quello che dico. Ne applicazioni ne plugins.

Ho visto la premessa, ma rimango dell'idea che otterresti un risultato
migliore per te e per tutti quanti partecipando a migliorare un
programma giá esistente. Se hai delle critiche da fare ai programmi
giá esistenti, dovresti metterti in contatto con gli sviluppatori del
programma piuttosto che creare l'ennesimo spin-off.


Giusto per aggiungere altre alternative:
- http://alban.apinc.org/blog/2008/10/29/collaborative-editing-in-emacs/
- 
http://www.linux-magazine.com/Online/News/Bespin-0.1-Mozilla-s-Collaborative-Web-Code-Editor





 Greetings
 JOKER Ltd.
 --
 Mr. Gandhi, cosa ne pensa della civiltà occidentale? - Sarebbe
 un'ottima idea! ( intervista al Mahatma Gandhi )




-- 
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] [OT Python, ma tema:programmare e' una cosa seria] Al giudizio di voi programmatori seri

2010-04-24 Per discussione Giovanni Marco Dall'Olio
2010/4/22 mauro mau...@iol.it:
 Salve a tutti, colgo l'occasione per segnalare anche in questa lista,
 frequentata da programmatori seri, quanto viene a volte offesa
 l'informatica, la programmazione, e distorta la sua funzione di bene al
 servizio dell'Uomo, da parte di incompetenti arruffoni che lavorano
 addirittura in ambito pubblico.

cercalo su google:
rottura del femore icd9

oppure
codice icd9 tabella

per esempio, con qualche ricerca su yahoo ti puoi ritrovare una pagina
del genere:
http://www.softwaremedico.it/ICD9-CM_Main.asp
da cui puoi scaricare un rtf con tutti i codici.. in cui puoi fare
'Cerca' nel documento per trovare il codice. Non é perfetto ma é una
soluzione...



 Sottopongo alla vostra attenzione, solo per un vostro giudizio tecnico,
 una programmazione, non so se in python, proposta, anzi, imposta per

una domande stupida: ma tu comunque, hai provato a contattare quelli
dell'INPS via mail? Che ti hanno risposto?



 legge, a noi medici, da vostri colleghi che lavorano per l'Inps, e che
 si permettono di metterci in mano uno strumento di manipolazione e







 ___
 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] ciclo for dentro un ciclo for

2010-03-10 Per discussione Giovanni Marco Dall'Olio
2010/3/10 Nicola Ferrari nick.fe...@gmail.com:

 ma se avessi una li di 200 elementi, risulterebbe pesante...
 Qualche idea per migliorare il tutto?

Penso sia la stessa domanda proposta qui:
- 
http://stackoverflow.com/questions/2355542/ugly-combination-of-generator-expression-with-for-loop

Se ho capito bene il problema:
 l1 = range(1, 3)
[1, 2, 3]
 l2 = 'abs'.split('')
['a', 'b', 'c']
 def check(x):
... return x  1

un po' di consigli sparsi:
- in genere, le list comprehension sono piú veloci dei cicli, per cui
ti conviene utilizzarle dove possibile
 [(e1, e2) for e1 in l1 for e2 in l2]
 [(e1, e2) for e1 in l1 for e2 in l2 if check(e2) is True]
 [(2, 'a'), (2, 'b'), (2, 'c'), (3, 'a'), (3, 'b'), (3, 'c')]

- se usi xrange() al posto di range(), risparmi un bel po' di memoria
ram, perché non ti genera una lista con 100 elementi ma un oggetto che
ti ritorna il numero successivo ogni volta che viene chiamato.
help(xrange) per i dettagli
 for n in xrange(100): print x

- itertools.ifilter ti permette di applicare una funziona a tutti gli
elementi di una lista e ritornare solo quelli per cui questa ritorna
True, in una unica operazione e molto piu' velocemente (perché é
scritto in C e si applica ad un array)

- itertools.product dovrebbe darti il prodotto cartesiano, ma mi
sembra che non vi sia almeno in python2.5, e per il momento non te lo
posso provare (sono su una vecchia ubuntu).



 Grazie




 ___
 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] Sulla falsariga del PyDayBO

2010-03-03 Per discussione Giovanni Marco Dall'Olio
2010/3/3 Valerio Turturici turturici.vale...@gmail.com:
 Salve a tutti,
 è da qualche mese che pensavo di voler organizzare una conferenza
 locale come quella che a breve si terrà a Bologna.


ehi, vi racconto la mia esperienza nell'organizzare un gruppo di
discussione su python qui a Barcellona, ormai attivo da piú di due
anni.

L'idea di organizzare un gruppo di discussione su python é venuta ad
un ragazzo tedesco, sviluppatore plone, che dopo aver lavorato per
anni a Parigi dove vi é un gruppo simile ha pensato di fare lo stesso
qui a Barcellona.

Per organizzare i meeting utilizziamo una pagina web chiamata
meetup.com, che fornisce diversi servizi per creare gruppi di
discussione su argomenti specifici. Praticamente, tu ti registri su
meetup.com e scrivi quali argomenti ti interessano (python, perl,
pattinaggio, letteratura, agile programming, etc..) e lui ti dice se
vi sono altre persone con gli stessi interessi nella tua cittá e se vi
sono giá gruppi di discussione attivi, offrendo la possibilitá di
crearne di nuovi. Onestamente devo dire che il sito é molto comodo per
organizzare questo tipo di eventi, perché fornisce cose come pagina
web, mailing list, sondaggi di RVSP per sapere chi verrá al prossimo
meeting, bacheca, spazio per files comuni, calendario, recensioni su
posti dove fare riunioni, applicazioni per creare flyers, etc... sono
tutte cose che, se volete creare un gruppo di discussione che si
riunisce periodicamente, diventano fondamentali.
Purtroppo anche se il sito meetup.com permette di registrarsi e di
partecipare ai meeting gratuitamente, per mantenere un gruppo di
discussione bisogna pagare circa 10 euro al mese, cosa che in genere
viene fatta facendo una colletta ad ogni riunione. Se qualcuno conosce
un template alternativo a meetup.com e opensource, o si offre
volontario per realizzarlo (non dovrebbe essere nemmeno difficile con
plone o altri cms), che ben venga.. anche se il lavoro realizzato da
questi sviluppatori é buono.


Per quello che riguarda il calendario, noi facciamo un meeting al
mese, riservando una sala presso l'universitá (questo é il mio compito
:-) ) e cercando almeno un paio di volontari che diano un seminario.
Ora, convincere la gente a dare un talk non é facile, ma posso dare un
paio di consigli.
Innanzittutto, é meglio che i seminari siano corti, 20 minuti o
mezz'ora: in questo modo ci si impiega di meno per prepararli e anche
le persone che non sono interessate all'argomento possono assistere
senza annoiarsi troppo. E' importante convincere la gente che non é
necessario essere esperti per dare un talk: anche venire con il
proprio computer e mostrare un programma di cui si é particolarmente
orgogliosi, o spiegare un problema che non si riesce a risolvere con
python e chiedere aiuto al resto del gruppo, va bene per un seminario.
Un'altra cosa che facciamo alla fine di ogni riunione dopo i due
seminari di mezz'ora sono i 'flashing talks': talks di 5 minuti in cui
chiunque puó parlare, anche senza computer, e spiegare qualche
anneddoto, libreria, o problema interessante su python. Questa cosa si
fa pure ai PyCon per chi si ricorda.
Infine, pubblicate le slides dei seminari con una licenza CC, su
slideshare o servizi simili, cosí avrete piú visibilitá.

Ogni 4-5 mesi bisogna dedicare un meeting ai principianti, e preparare
solo talks introduttivi e sessioni pratiche.
Anche se python ha la fama di essere un linguaggio semplice, non é per
nulla facile preparare un talk introduttivo su python e convincere la
gente al volo. Per la mia esperienza, l'errore piu' comune é spendere
metá del talk ripetendo che 'python é semplice' e 'queste sono le
regole della filosofia di python che vengono fuori quando fai import
this', senza far vedere degli esempi pratici. La cosa migliore
secondo me é prendere un programma semplice di 'Hello World' e
spiegare passo passo come scriverlo, introducendo i concetti base come
liste, stringhe, dizionari e il ciclo for, e confrontandolo brevemente
con altri linguaggi. Piu' di questo, in un talk di un'ora, non si fa
in tempo... va bene accennare alcune delle regole dello zen of python,
ma spiegarle tutte no.

Detto questo, io credo che se organizzate gruppi di discussione e vi
riunite ogni mese, ottenete un effetto maggiore di un unico evento
annuale, e senza la pressione di dover preparare qualcosa di perfetto
al primo tentativo. Inoltre, sará piú facile attrarre piú gente, e non
parlo solo di programmatori, ma anche di gente alla ricerca di buoni
programmatori da assumere (noi abbiamo avuto la visita di qualche
cacciatore di teste illustre, é abbastanza divertente quando alla fine
di un talk vedi che un tizio si presenta e spiega di aver lavorato per
30 anni in IBM, aver scritto compilatori in bash e di stare cercando
sviluppatori da assumere per una start-up).

Mi sembra di ricordare che a Bologna vi siano dei gruppi di
discussione del genere, non su python ma su argomenti come agile
programming e forse perl. Peró ormai non ho piu' 

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 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


Re: [Python] Approccio agli oggetti

2010-02-08 Per discussione Giovanni Marco Dall'Olio
2010/2/8 Diego Barrera diegonebarr...@yahoo.it

 .. forse
 confondo un po' le funzioni con gli oggetti.


Ti puó aiutare pensare che un oggetto è come una struttura dati
personalizzata, qualcosa al livello delle liste, stringhe, tuple,
dizionari...
In effetti tutte queste cose in python sono oggetti, con metodi e proprietá
ben definiti.



 Comunque grazie mille, mi rimetto a provare sti benedetti oggetti :)
 Ciao diego
 ___
 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] [OT] Cerco posto lavoro stimolante. [google summer of code 2010]

2010-01-27 Per discussione Giovanni Marco Dall'Olio
2010/1/13 Giorgio Zoppi giorgio.zo...@gmail.com

 Sto cercando un posto dove si possa lavorare in python, c++ e java,
 stimolante, possibilmente in toscana.
 Idee?



Ritornando all'argomento originale della discussione, se ti interessa
potresti iniziare a muoverti per il google summer of code 2010.
Fra pochi giorni inizieranno le aziende/organizzazioni che fanno da mentor
in gsoc inizieranno a scrivere i progetti da proporre per il 2010, quindi
mettiti in contatto con una di esse e chiedi se hanno bisogno di una mano
per realizzare qualche progetto specifico, o se hai idee è il momento giusto
per farti avanti.

-
http://groups.google.com/group/google-summer-of-code-discuss/browse_thread/thread/33f783acdf353fba/e672249c4bef90b8
-
http://groups.google.com/group/google-summer-of-code-discuss/browse_thread/thread/d839c0b02ac15b3f





-- 
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] split di file di grandi dimensioni

2009-12-04 Per discussione Giovanni Marco Dall'Olio
2009/12/4 Ernesto e.pica...@unical.it:

 import os
 f=open(infile)
 for i in f:
        l=(i.strip()).split(\t)
        out=open(l[2]+.txt,a)
        out.write(i)
        out.close()
 f.close()


Scusami, ma io questo lo farei con gawk (sempre che tu sia su un sistema unix)

$: gawk '{print $0  output_$3.txt}' input.txt

Per esperienza, i tool unix sono molto piu' veloci di quanto tu possa
fare in python (beh, sono scritti in C o C++)


 Lanciato su un file di 15GB il tempo necessario per completare il
 tutto è superiore ai 2 giorni.
 C'è un modo per velocizzare il processo?

 Grazie,

 Ernesto
 ___
 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] split di file di grandi dimensioni

2009-12-04 Per discussione Giovanni Marco Dall'Olio
2009/12/4 Massimo Capanni massimo.capa...@gmail.com:
 Gawk per Windows funziona discretamente bene.
 Mi ha processato file di 900 mega in pochi secondi liberandomi di
 molto lavoro manuale :)

effettivamente sì, se il problema postato dall'op é per questioni di
lavoro io utilizzerei gawk, senza perdere tempo a implementare
qualcosa che esiste giá :-)
Non sono sicuro ma mi sembra che almeno awk sia installato di default
sui mac. In questo caso il comando diventa semplicemente:
awk '{print $0  output_$3.txt}' input.txt

Personalmente l'ho utilizzato per problemi simili e su quantitá di
dati simili a quelli della domanda (10, 15 GB) e non ho mai dovuto
aspettare piu' di una ora.

Al massimo, se anche gawk dovesse essere lento, conviene semplificare
il problema alla base, ovvero: splittare il file in pezzi piu' piccoli
(comando split) e correrlo in parallelo, oppure ordinarlo (sort -k),
sempre che non sia importante mantenere l'ordine delle righe
originale.





 Il 04 dicembre 2009 12.59, Marco Beri marcob...@gmail.com ha scritto:
 2009/12/4 Giovanni Marco Dall'Olio dalloli...@gmail.com

 Scusami, ma io questo lo farei con gawk (sempre che tu sia su un sistema
 unix)

 $: gawk '{print $0  output_$3.txt}' input.txt

 Per esperienza, i tool unix sono molto piu' veloci di quanto tu possa
 fare in python (beh, sono scritti in C o C++)

 Nel caso può provare con cygwin che ha anche lui gawk.

 Ciao.
 Marco.


 --
 http://ThinkCode.TV - Screencast e videocorsi di programmazione
 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


 ___
 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] R: threads

2009-12-01 Per discussione Giovanni Marco Dall'Olio
2009/12/1 Andrea Gasparini ga...@yattaweb.it

 Pasini Paolo spiffera, alle Tuesday 01 December 2009 circa:
   *non* procedere. I thread (in particolare sui multicore ) in python
   evitali.
  Come Mai ? Hanno problemi(Bugs?) o non sono progettati per tale uso ?

 difficile da dirsi, di fatto ti ha gia' risposto Manlio, ma giusto per
 completezza, se hai voglia di di capirci un po' di piu', leggi questo:
 www.dabeaz.com/python/GIL.pd


Il link corretto é www.dabeaz.com/python/GIL.pdf

Pensavo che il problema del GIL fosse stato corretto in python 2.6 o 3.0.
Forse l'affermazione giusta é che in python 2.6 é stato incluso il modulo
multiprocessing, che fornisce una soluzione per aggirare il problema del
GIL:
- http://www.python.org/dev/peps/pep-0371/




-- 
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] eseguire programmi python in un sito

2009-06-29 Per discussione Giovanni Marco Dall'Olio
2009/6/28 Giuseppe D'Elia peppe.de...@gmail.com:
 Crunchy ti può essere utile

 Non ho ben capito di cosa si tratta ma ho dato solo uno sguardo veloce al
 sito. Appena posso ti farò sapere se mi può essere utile. Grazie
 2009/6/28 Giuseppe D'Elia peppe.de...@gmail.com

Nemmeno io l'ho usato, ma guardando i video credo che sia quello che
stai cercando.
Scarichi lo script e lo fai correre da terminale, dopodiché navighi il
tutorial su un browser web e i comandi sono eseguiti dall'interprete
locale.



 2009/6/28 Giovanni Marco Dall'Olio dalloli...@gmail.com

 2009/6/28 Giuseppe D'Elia peppe.de...@gmail.com:
  Ciao, è possibile integrare in un sito web l'interprete python in modo
  da
  mandare in esecuzione un certo programma su un sito?

 Non sono sicuro di aver capito esattamente quello che chiedi, ma forse
 Crunchy ti può essere utile:
 - http://code.google.com/p/crunchy/
 - http://showmedo.com/videos/video?name=143fromSeriesID=143



  ___
  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



 ___
 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] eseguire programmi python in un sito

2009-06-28 Per discussione Giovanni Marco Dall'Olio
2009/6/28 Giuseppe D'Elia peppe.de...@gmail.com:
 Ciao, è possibile integrare in un sito web l'interprete python in modo da
 mandare in esecuzione un certo programma su un sito?

Non sono sicuro di aver capito esattamente quello che chiedi, ma forse
Crunchy ti può essere utile:
- http://code.google.com/p/crunchy/
- http://showmedo.com/videos/video?name=143fromSeriesID=143



 ___
 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] file nella directory

2009-06-10 Per discussione Giovanni Marco Dall'Olio
2009/6/10 castor91 casto...@gmail.com

 Qualcuno mi può fare un'esempio di script che data una directory (per
 esempio:   C:\Programmi\plp) mi aggiunga ad una lista tutti i file presenti
 all'interno di questa directory??


 import glob
 glob.glob('C:\programmi\plp\*')

rispetto a os.listdir, glob ti permette di fare file matching piu'
complicati, e.g. *.txt per ottenere tutti i file di testo nella directory.
- http://docs.python.org/library/glob.html


 grazie ;)
 --
 castor91

 ___
 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] operator.itemgetter con una lista

2009-06-01 Per discussione Giovanni Marco Dall'Olio
2009/5/29 Giovanni Porcari giovanni.porc...@softwell.it


 Il giorno 29/mag/09, alle ore 19:49, Giovanni Marco Dall'Olio ha scritto:

  ma questo no:
  g = operator.itemgetter([1, 2, 3, 5, 6])



 prova con:

  g = operator.itemgetter(*[1, 2, 3, 5, 6])


Grazie mille,
funziona perfettamente :)



-- 
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] Versioning di un database

2009-05-05 Per discussione Giovanni Marco Dall'Olio
2009/5/5 Pietro Battiston too...@email.it:

 Vorrei però tenere traccia di tutte le modifiche fatte nel tempo, ed in
 particolare di chi le ha fatte.

 Esiste uno standard per log del genere e/o un modo per chiedere a
 sqlalchemy di mettere in formato comodo le informazioni su quel che si
 sta facendo al momento del commit()?

Ottima domanda,
qualche tempo fa l'avevo posta in una lista di bioinformatica, ma
senza ricevere risposte conclusive :(
- http://lists.idyll.org/pipermail/biology-in-python/2008-December/000408.html

Intanto ti consiglio di dare una occhiata a elixir, e ad una sua
estensione chiamata versioning:
- http://elixir.ematia.de/trac/browser/elixir/trunk/tests/test_versioning.py

elixir é una raccolta di plugin per sqlalchemy, essenzialmente
fornisce una sintassi alternativa (vedi tutorial), ma puoi anche
utilizzare solo l'estensione che ti ho indicato.

Anche questo post sembra essere interessante:
- http://motinblog.blogspot.com/2005/10/version-control-of-database-data.html


 Lo chiedo non tanto per il logging in sé, per il quale in realtà mi
 basterebbe semplicemente appendere una riga utente, data,
 riga_modificata, campo_modificato, nuovo_valore ad un file ogni volta
 che registro una modifica, quanto per l'eventuale disponibilità di
 strumenti/librerie per l'analisi successiva di tali log.

Onestamente ho l'impressione che non vi siano standard per il
versioning di un database, ma se dai una occhiata su google puoi
trovare un paio di estensioni qui e lá.
Per esperienza, ti posso dire che git é capace di includere file
binari grossi di 6-700 MB senza soffrire troppo, ma ovviamente non é
la soluzione migliore e non ti permette di ripristinare singoli
record.


 grazie

 Pietro

 ___
 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] programma Pycon?

2009-03-31 Per discussione Giovanni Marco Dall'Olio
2009/3/31 Alessandro Dentella san...@e-den.it

 Mi pare che il programma dovesse essere pubblicato da circa una settimana,
 ci sono nuove?


sul sito dice '30 marzo':
- http://www.pycon.it/pycon3/schedule/

Credo che abbiano rimandato la deadline almeno una volta.. ma non sono
sicuro.





--

My blog on bioinformatics (now in English): http://bioinfoblog.it
___
Python mailing list
Python@lists.python.it
http://lists.python.it/mailman/listinfo/python


[Python] google lavora per ottimizzare python

2009-03-27 Per discussione Giovanni Marco Dall'Olio
Beh, visto che ormai se ne sta parlando in tutte le mailing list su python:

-
http://arstechnica.com/open-source/news/2009/03/google-launches-project-to-boost-python-performance-by-5x.ars


un progetto simile, pypy:

- http://morepypy.blogspot.com/2009/03/vm-summit-nice-to-see-friendly.html




-- 

My blog on bioinformatics (now in English): http://bioinfoblog.it
___
Python mailing list
Python@lists.python.it
http://lists.python.it/mailman/listinfo/python


Re: [Python] pybeagle

2009-02-24 Per discussione Giovanni Marco Dall'Olio
2009/2/24 waltervale...@yahoo.it waltervale...@yahoo.it:



 - Original Message -
 Subject:pybeagle
 Date:Mon, 23 Feb 2009 17:38:30
 From:Valenti Walter walter.vale...@esternibisp.com
 To:waltervale...@yahoo.it waltervale...@yahoo.it

  Qualcuno ha esperienza con le API in Python per interfacciarsi con Beagle ?
  Ho provato con questo semplice codice, cercando nella pochissima 
 documentazione che ho trovato in giro.


  #!/usr/bin/python
 import beagle
 client=beagle.Client()
 query=beagle.Query()
 query.add_text(uuahe)
  resp=client.send_request(query)
  print resp


  Quello che ottengo è:
  beagle.SearchTermResponse object at 0x81b7c0c (BeagleSearchTermResponse at 
 0x820b718)

Ti do due consigli:
- dir(resp) per conoscere tutti i metodi/attributi di un oggetto
beagle.SearchTermResponse.

- usa ipython come interprete, al posto del normale python. Con esso,
potrai dare:
 resp?
per avere l'help su quel tipo di oggetto (come help(resp)), ma soprattutto:
 resp??
per visualizzare il codice della classe beagle.SearchTermResponse.

Se pensi che gli sviluppatori siano stati un poco taccagni con la
documentazione, sia quella della classe che in generale, per favore
scrivigli nella loro mailing list o mandagli un bug report.


  Qualcuno sa aiutarmi ?


  Grazie
  Walter



  Prima di stampare, pensa all'ambiente ** Think about the environment before 
 printing




      Passa a Yahoo! Mail.

 La webmail che ti offre GRATIS spazio illimitato,
 antispam e messenger integrato.
 http://it.mail.yahoo.com/
 Il  contenuto  e  gli allegati  di questo  messaggio  sono  strettamente
 confidenziali,  e ne sono vietati la diffusione e l'uso non autorizzato.

 Le  opinioni  ivi  eventualmente  espresse sono  quelle  dell'autore: di
 conseguenza  il  messaggio  non  costituisce  impegno  contrattuale  tra
 il Gruppo Intesa Sanpaolo  ed  il  destinatario, e  la  banca  non  assume
 alcuna responsabilita' riguardo ai contenuti del testo e dei relativi
 allegati, ne' per eventuali intercettazioni, modifiche o danneggiamenti.

 Qualora il presente messaggio Le fosse pervenuto per errore,  Le saremmo
 grati  se lo  distruggesse e,  via e-mail,  ne comunicasse  l' errata
 ricezione all'indirizzo postmas...@intesasanpaolo.com.


 This e-mail (and any attachment(s)) is strictly confidential and for use
 only by intended recipient(s).  Any opinions therein expressed are those
 of the author.  Therefore  its content  doesn't represent any commitment
 between Intesa Sanpaolo Group  and  the  recipient(s)and   no  liability
 or responsibility  is  accepted  by  Sanpaolo Group  for  the above
 mentioned content.

 Intesa Sanpaolo S.p.A. is a Bank authorised by Banca d'Italia; Intesa Sanpaolo
 S.p.A. - London Branch - is regulated by the Financial Services  Authority
 for the conduct of investment business in the UK.

 If    you   are   not   an   intended   recipient(s),    please   notify
 postmas...@intesasanpaolo.com promptly and destroy this message.
 ___
 Python mailing list
 Python@lists.python.it
 http://lists.python.it/mailman/listinfo/python





-- 

My blog on bioinformatics (now in English): http://bioinfoblog.it
___
Python mailing list
Python@lists.python.it
http://lists.python.it/mailman/listinfo/python


[Python] librerie per soap?

2009-02-20 Per discussione Giovanni Marco Dall'Olio
ciao a tutti,
mi sapete consigliare qualche buona libreria di supporto per il protocollo SOAP?

Nel Dive Into Python si parla di SOAPpy; peró l'ultima release di
questo modulo risale al 2005 (http://pywebsvcs.sourceforge.net/), e mi
chiedevo se ci fossero librerie correntemente sviluppate.
Su sourceforge ho trovato persino un programma per calcolare quanto
sapone e olio posso ottenere per ogni possibile ricetta, pero' non
riesco a capire quale sia di fatto la maniera piu' standard di usare
questo protocollo.
___
Python mailing list
Python@lists.python.it
http://lists.python.it/mailman/listinfo/python


Re: [Python] librerie per soap?

2009-02-20 Per discussione Giovanni Marco Dall'Olio
2009/2/20 Lawrence Oluyede l.oluy...@gmail.com:
 On Fri, Feb 20, 2009 at 2:41 PM, Giovanni Marco Dall'Olio
 dalloli...@gmail.com wrote:
 ciao a tutti,
 mi sapete consigliare qualche buona libreria di supporto per il protocollo 
 SOAP?


 Io conosco soaplib e ZSI, non posso dirti quale scegliere perche`
 entrambe hanno dei problemi :D
 Io uso una versione patchata da me di soaplib in ufficio.

 soaplib: http://trac.optio.webfactional.com/
 zsi: http://pywebsvcs.sourceforge.net/

mmm grazie a tutti per le risposte (rapide).
non devo fare cose molto complicate, per questo credo che provero' per
primo questo suds (sembra essere ancora sviluppato attivamente).



 --
 Lawrence, http://oluyede.org - http://twitter.com/lawrenceoluyede
 It is difficult to get a man to understand
 something when his salary depends on not
 understanding it - Upton Sinclair




-- 

My blog on bioinformatics (now in English): http://bioinfoblog.it
___
Python mailing list
Python@lists.python.it
http://lists.python.it/mailman/listinfo/python


Re: [Python] Twisted Web su Mac

2009-02-02 Per discussione Giovanni Marco Dall'Olio
On Sun, Feb 1, 2009 at 8:50 PM, Agosto Alessandro the.6o...@gmail.com wrote:
 Sera a tutti,

 premetto che preferisco chiedere qui anzichè su un forum dedicato al
 Mac per ovvi motivi di competenza.
 Ieri ho comperato un IMac e oggi ho scaricato da python.org il
 pacchetto per installare python su mac (se non erro si chiama
 macpython) vs 2.5. Quindi ho scaricato dal sito ufficiale Twisted

Perche' invece non lo installi con easy_install?
Sicuramente ci sara' una opzione per gestire due versioni di python
contemporaneamente.
- http://peak.telecommunity.com/DevCenter/EasyInstall

 e
 ho lanciato l'installer completando l'installazione. Provando da
 terminale non mi importava twisted ma ho risolto spostando i moduli
 sotto una delle path che mi dava sys.path . Però non sono riuscito a
 risolvere il problema che riguarda lo script di avvio twistd. Da
 terminale ho provato twistd ma non trova il comando. Tramite una
 ricerca nel sistema ho scoperto che c'è un file _twistd in una
 cartella zsh. ho provato zsh _twistd ma mi dà errore di file non
 trovato. Sono nuovo di mac e quindi non sò cosa fare e sono quindi
 nuovo anche del settaggio dell'ambiente di lavoro su Mac. Spero di
 trovare qualche volenteroso che possa aiutarmi a sistemare tutto.

 Grazie e di nuovo buona serata!

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




-- 

My blog on bioinformatics (now in English): http://bioinfoblog.it
___
Python mailing list
Python@lists.python.it
http://lists.python.it/mailman/listinfo/python


Re: [Python] Attributi di una classe

2009-01-13 Per discussione Giovanni Marco Dall'Olio
On 1/13/09, Leonardo Donelli leart...@gmail.com wrote:
 Mi servirebbe accedere a degli attributi di una classe in base ad una
  variabile.

(in attesa che ti rispondano i guru)

Fai derivare la classe da object, e usa il metodo __getattribute__:

 class Scarpa(object):
...  attr1 = 'dsada'
 dir(Scarpa)
..
 sc = Scarpa()
 sc.__getattribute__('attr1')


  Per esempio mettiamo che io abbia una classe Player con vari attributi..
  e per esempio la variabile c = raw_input(Inserisci attributo).
  Come faccio ad ottenere l'attributo corrispondente a c? Pensavo di poter
  utilizzare Player.__getattr__(c) ma non mi funziona.
  Non c'è un modo alternativo ad una serie di if elif?

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



-- 

My blog on bioinformatics (now in English): http://bioinfoblog.it
___
Python mailing list
Python@lists.python.it
http://lists.python.it/mailman/listinfo/python


Re: [Python] doctest con funzioni che aprono files

2008-11-28 Per discussione Giovanni Marco Dall'Olio
2008/11/26 Daniele Varrazzo [EMAIL PROTECTED]:


 On Wed, 26 Nov 2008 19:11:24 +0100, Giovanni Marco Dall'Olio
 [EMAIL PROTECTED] wrote:

 Tu sei sicuro che una docstring nella quale hai buttato dentro tutto il
 codice boilerplate per fargli aprire un file temporaneo abbia ancora una
 qualche utilità come docstring?

 Per alcune cose che devo fare, si.
 Sto contribuendo al progetto biopython, una collezione di moduli per
 la bioinformatica in python.

 Lo conosco, ho studiato bioinformatica per la tesi di laurea e ci ho
 lavorato a Siena per 2-3 annetti :)

Davvero? Con biopython specificamente?
Se ti va di dare qualche contributo nella ml, e' ben accetto :)

 Visto che questi moduli devono essere utilizzati da terze parti,
 aggiungere un esempio del file di input nel doctest e' una cosa
 utilissima.
 In questo modo, un utente che si ritrovi a riutilizzare le mie
 librerie, potra' avere una idea chiara del formato per il quale un
 modulo e' stato scritto (pensa soprattutto a quando devi parsare un
 particolare formato di testo).

 Ok, quindi nella docstring metti anche il formato del file di testo da
 parsare.

Ci sono diversi formati con nomi simili e a volte anche omonimi, e
aggiungere un esempio del formato di input nella doc permette agli
utenti di non rischiare di utilizzare il parser sbagliato, che e' una
cosa buona.

Inoltre e' un grosso aiuto durante lo sviluppo del modulo.


 Certamente, anche se devo ammettere di non aver usato molto unittest.

 Questo mi spiega ancora meglio come mai usi così estensivamente doctest e
 non unittest :)

ufff grazie mille per le risposte, pero' per favore, lasciamo i
dibattiti doctest vs unittest ad altre discussioni.
Non ho detto che uso esclusivamente uno dei due, ne' che ho intenzione
di farlo; solo mi serve sapere un dettaglio dell'implementazione.

 Secondo me hai sbagliato in partenza a far sì che le tue funzioni di
 parsing accettino un filename in input. Se le tue funzioni accettassero un
 file object invece avresti i seguenti vantaggi (i primi che mi vengono in
 mente):


Si, pero' a volte e' necessario scrivere delle funzioni che accettino
nomi di file.
Per esempio, ci sono dei moduli che chiamano programmi esterni (io
sono contrario, perche' lo farei in altra maniera): quello che ho
fatto fino ad adesso e' aggiungere un doctest per illustrare il
formato del file, crearlo con NamedTemporaryFile, e passare
NamedTempFile.name.

Un'altra obiezione e' che e' meno chiaro passare un oggetto di tipo
file gia' aperto. Lavoro a fianco di persone che conoscono poco di
python, e se apro il file in una funzione e lo parso in un'altra, si
perdono, non capiscono il perche'.

Altrimenti in linea di massima sarei d'accordo con te, mi sembra che
sia anche la linea di condotta utilizzata in biopython.


  - potresti parsare stdin (e quindi mettere una serie di script in pipe).
   Per esempio parsare un file preso da internet con curl URL | python
 parser.py

  - potresti usare la doctest con lo StringIO :)

Si, per adesso ho fatto cosi'.
Creare un oggetto file-like con StringIO richiede solo 2 passaggi, e
quindi e' molto comodo usarlo con doctest.
Il problema e' che non posso utilizzarlo con funzioni che aprono il
file al loro interno.
Se solo StringIO avesse un attributo come 'name' di NamedTempFile, o
anche solo una maniera di passarne un riferimento, sarebbe molto piu'
comodo.


 Lo svantaggio nell'aprire un file normale è minimo: anzichè fare
 parse(filename) farai parse(open(filename)).

 È anche facile fare una funzione che, in caso di stringa, la apra
 assumendo un filename (if isinstance(file, basestring): file =
 open(file)), ma poi vorrai anche distinguere una url per aprirla con
 urllib, ma a volte la stringa contiene i dati... la cosa migliore per fare
 un parser generico credo sia accettare solo un file object in input e
 lasciare che sia il cliente della funzione ad accontentarla (mi sembra una
 corretta divisione delle responsibilità).

Si, anche questo si puo' fare... per fortuna non credo che avro' a che
fare con oggetti urllib e simili.
Grazie mille per le risposte :)

p.s. avete mai notato che doctest non usa doctest per la sua
documentazione (a parte pochi casi)? :)


 --
 Daniele Varrazzo - Develer S.r.l.
 http://www.develer.com




-- 

My blog on bioinformatics (now in English): http://bioinfoblog.it
___
Python mailing list
Python@lists.python.it
http://lists.python.it/mailman/listinfo/python


[Python] doctest con funzioni che aprono files

2008-11-26 Per discussione Giovanni Marco Dall'Olio
Ciao a tutti,
e' da un po' di tempo che utilizzo doctest, e sono felice :).

Lo trovo molto comodo per scrivere funzioni che calcolano statistiche
e parsano particolari formati di files.

Quello che non capisco ancora e' come utilizzarlo per testare funzioni
che prendano in input il nome (path) di un file, e lo aprano.
Qualcosa del genere:
---
 def read_first_line(filename):
... fh = file(filename, 'r')
... for line in fh:
... do things...
---

(mi dispiace per il modo in cui gmail formattera' questo messaggio :( ).

Una possibile opzione e' utilizzare StringIO. Il problema e' che gli
oggetti StringIO non hanno un equivalente di un filename che si possa
passare ad una funzione, quindi sono costretto a scrivere moduli che
prendano in input file handlers invece che file names.

---
def read_first_line(fh):

 from StringIO import StringIO
 fh = StringIO('contenuto del file')
 read_first_line(fh)
   contenuto del file

print fh.readline()
---

Una seconda opzione e' quella di usare tempfile.NamedTemporaryFile.
Il problema e' che e' una opzione un poco brutta esteticamente, che
aggiunge un sacco di istruzioni non necessarie nella documentazione
(incasinandola).
---
def read_first_line(filename):

 from tempfile import NamedTemporaryFile
 fh = NamedTemporaryFile()
 fh.write('contenuto del file')
 fh.seek(0)
 read_first_line(fh.name)
contenuto del file

fh = file(filename)
print fh.readline()
---

Sul serio, chiedo scusa per la maniera con cui questo messaggio verra'
formattato da google. Se non e' comprensibile, lo posto da qualche
parte.

In parole povere, io sto cercando una funzione che mi permetta di
creare un oggetto simile ad un file, che sia accessibile tramite un
filename, di scriverci dentro del testo, e di riavvolgerlo al primo
bit, e tutto questo in una o due istruzioni.
Qualche suggerimento?


-- 

My blog on bioinformatics (now in English): http://bioinfoblog.it
___
Python mailing list
Python@lists.python.it
http://lists.python.it/mailman/listinfo/python


Re: [Python] doctest con funzioni che aprono files

2008-11-26 Per discussione Giovanni Marco Dall'Olio
2008/11/26 Daniele Varrazzo [EMAIL PROTECTED]:


 On Wed, 26 Nov 2008 17:44:55 +0100, Giovanni Marco Dall'Olio
 [EMAIL PROTECTED] wrote:
 Ciao a tutti,
 e' da un po' di tempo che utilizzo doctest, e sono felice :).

 Lo trovo molto comodo per scrivere funzioni che calcolano statistiche
 e parsano particolari formati di files.

 Quello che non capisco ancora e' come utilizzarlo per testare funzioni
 che prendano in input il nome (path) di un file, e lo aprano.

 Tu sei sicuro che una docstring nella quale hai buttato dentro tutto il
 codice boilerplate per fargli aprire un file temporaneo abbia ancora una
 qualche utilità come docstring?

Per alcune cose che devo fare, si.
Sto contribuendo al progetto biopython, una collezione di moduli per
la bioinformatica in python.
Visto che questi moduli devono essere utilizzati da terze parti,
aggiungere un esempio del file di input nel doctest e' una cosa
utilissima.
In questo modo, un utente che si ritrovi a riutilizzare le mie
librerie, potra' avere una idea chiara del formato per il quale un
modulo e' stato scritto (pensa soprattutto a quando devi parsare un
particolare formato di testo).

Qualche settimana fa ho scritto un post sul mio blog per spiegare
questo; vedi se l'esempio puo' essere piu' chiaro:
- http://bioinfoblog.it/2008/11/biopython-e-doctest/
In questi giorni sto scrivendo molti parsers cosi':
- 
http://github.com/dalloliogm/biopython---popgen/tree/master/src%2FPopGen%2FGio%2FfastPhaseOutputIO.py


 È una mia idea personale, ma le doctest a me sembrano innanzitutto doc,
 e solo come cosa secondaria e pythonesca test. In particolar modo, è
 più un test della documentazione stessa che della funzione. Ma questo può
 ovviamente essere stiracchiato un pochino, e quindi il test, come effetto
 collaterale, testa che la funzione non cominci a sbagliare. Stiracchiando
 stiracchiando però aggiungi documentazione utile ai fini del test e non
 ai fini della documentazione, fino al punto che non è più documentazione
 in lingua umana, ma codice Python che descrive codice Python.

In parte si'. Te lo posso confermare, perche' ultimamente ho scritto
dei doctest enormi.
Pero', se scrivi la doctest ancora prima del codice, poi viene molto
piu' facile scrivere il resto (beh, questo e' vero con tutti i test).

 È sempre una mia opinione personale, ma mi sembra che le doctest non
 vogliano essere questo, al punto che non offrono nessuna facility di
 costruzione di test suite. A me sembra che quello che tu stia facendo sia
 una unit test completa, che ha bisogno di dati di appoggio ed eventualmente
 funzioni di setup e cleanup.

In parte si, e comunque li puoi integrare con unittest (doctest.DocTestSuite)


 Una seconda opzione e' quella di usare tempfile.NamedTemporaryFile.
 Il problema e' che e' una opzione un poco brutta esteticamente, che
 aggiunge un sacco di istruzioni non necessarie nella documentazione
 (incasinandola).

 Questo è quello che farei io, ma in una test suite. Questo credo sia il
 punto dove la doctest smette di essere bella (documentazione che come
 effetto collaterale si auto-testa) e diventa brutta (codice di test
 scritto dove sarebbe dovuta andare la documentazione).

come dicevo prima, se devi scrivere del codice riutilizzabile da altre
persone, la doctest e' utile.
E' molto comoda anche se stai lavorando al fianco di persone che non
sanno molto di programmazione, e vuoi farli capire esattamente cosa
verra' fuori nei risultati. Ho dei buoni esempi su questo, ma ora non
ho il tempo di caricarli :)

 Puoi avere tutti e due, unittest e doctest non sono esclusive. Penso che le
 doctest siano una bella abitudine: fossi in te sceglierei pragmaticamente
 il meglio dei due mondi :)

Certamente, anche se devo ammettere di non aver usato molto unittest.


 --
 Daniele Varrazzo - Develer S.r.l.
 http://www.develer.com




-- 

My blog on bioinformatics (now in English): http://bioinfoblog.it
___
Python mailing list
Python@lists.python.it
http://lists.python.it/mailman/listinfo/python


[Python] moduli migliori di getopt

2008-11-24 Per discussione Giovanni Marco Dall'Olio
Ciao a tutti,
conoscete qualche modulo che sia migliore di getopt per parsare
argomenti da linea di comando?

Lo sto usando da un po', ma onestamente mi sembra un poco piu'
limitato rispetto, per esempio, a getopt di perl, e quindi mi chiedo
se sono io che a non aver capito come usarlo o se manca qualcosa.
Per esempio, con getopt::long di perl e' possibile specificare se il
valore di un argomento deve essere salvato in una lista (array) o in
una stringa.
Oppure, e' piu' facile definire valori di default.
Il getopt di python mi sembra un poco macchinoso: devo prima dare dei
valori nulli alle variabili che voglio leggere, poi fare un ciclo su
tutti i valori di getopt.getopt, poi ricontrollare ancora  se vi siano
variabili nulle e nel caso assegnare un default o dare errore.
Inoltre, non e' chiaro come si faccia a definire che un parametro puo'
avere un valore ma anche essere nullo; e infine, sarebbe comodo che la
documentazione venisse lanciata o generata automaticamente invece che
dover definire a parte una funzione usage().
Sto cercando su Internet da un bel po', ma non sono riuscito a trovare
nessun modulo alternativo interessante..



-- 
---

My Blog on Bioinformatics (italian): http://bioinfoblog.it
___
Python mailing list
Python@lists.python.it
http://lists.python.it/mailman/listinfo/python


Re: [Python] moduli migliori di getopt

2008-11-24 Per discussione Giovanni Marco Dall'Olio
2008/11/24 Daniele Varrazzo [EMAIL PROTECTED]:


 On Mon, 24 Nov 2008 17:19:11 +0100, Giovanni Marco Dall'Olio
 [EMAIL PROTECTED] wrote:
 Ciao a tutti,
 conoscete qualche modulo che sia migliore di getopt per parsare
 argomenti da linea di comando?

 optparse

Bello!!!
Grazie mille! :)
Ora che ci penso, lo avevo anche visto qualche tempo fa, ma mi ero scordato!! :)


 Sto cercando su Internet da un bel po', ma non sono riuscito a trovare
 nessun modulo alternativo interessante..

 Stai andando troppo lontano: è nella standard library :)

:'-)



http://docs.python.org/lib/module-optparse.html

 Dovrebbe avere tutte le feature che richiedi (valori di default, help
 auto-generato ecc.), ed è anche abbastanza semplice da estendere.

 --
 Daniele Varrazzo - Develer S.r.l.
 http://www.develer.com




-- 
---

My Blog on Bioinformatics (italian): http://bioinfoblog.it
___
Python mailing list
Python@lists.python.it
http://lists.python.it/mailman/listinfo/python


Re: [Python] pyunit e test con i database

2008-11-11 Per discussione Giovanni Marco Dall'Olio
2008/11/10 Daniele Varrazzo [EMAIL PROTECTED]:
 On Mon, 10 Nov 2008 16:54:07 +0100, Giovanni Marco Dall'Olio
 [EMAIL PROTECTED] wrote:
 2008/11/10 Fabrizio Mancini [EMAIL PROTECTED]:
 Ciao a tutti,

 Non ti saprei dire, ma per una situazione simile io ho intenzione di
 usare doctest (almeno fino a un certo punto).
 Se devi scrivere delle classi che verranno utilizzate da altre
 persone, o hai paura di dimenticarti qualcosa in futuro, le doctest
 sono molto comode e ti permettono di avere sia degli esempi che
 faranno capire molto bene al tuo cliente/collaboratori quello che
 scriverai, che dei test da utilizzare al volo.

 Ho paura che i doctest siano un po' semplificati per questo tipo di
 testing. Testando i db, di solito il setup/teardown delle test suite sono
 molto importanti, e non mi sembra sia possibile un gran controllo con i
 doctest.

Penso che dipenda anche da quello che vuoi fare con il database.
Se ti serve per farci girare sopra delle applicazioni, web o no,
effettivamente il doctest puo' essere scomodo.

Se invece usi il database per immagazzinare dati, e.g. risultati di un
esperimento di laboratorio, e sai che verra' interrogato solo tramite
moduli come sqlalchemy, il doctest e' utile perche' ti permette di far
capire cosa rappresenta ogni tabella, qual e' la maniera corretta per
accedervi, e cosi' via.

Era forse un po' troppo generica la domanda :)


 Secondo me i doctest sono più indicati quando gli oggetti sono del tutto
 autocontenuti, non quando devi testare una frontiera dell'applicativo.

 --
 Daniele Varrazzo - Develer S.r.l.
 http://www.develer.com




-- 
---

My Blog on Bioinformatics (italian): http://bioinfoblog.it
___
Python mailing list
Python@lists.python.it
http://lists.python.it/mailman/listinfo/python


Re: [Python] pyunit e test con i database

2008-11-10 Per discussione Giovanni Marco Dall'Olio
2008/11/10 Fabrizio Mancini [EMAIL PROTECTED]:
 Ciao a tutti,
 sono abbastanza nuovo sul discorso python e pyunit, e soprattutto quello che
 riguarda lo unit testing.
 Volevo chiedere consiglio su come poter fare il test di classi che si
 occupano di interfacciarsi con i database.
 Avete esperienze e / o consigli su come procedere?
 ho letto un po in giro sui mock / stub e diciamo che ne ho ricavato poche
 idee ma molto confuse.
 Last but not least, ho pensato di usare il modulo pyunit, ma ho visto che ne
 esistono altri.
 Avete anche a tal riguardo consigli e suggerimenti?

Non ti saprei dire, ma per una situazione simile io ho intenzione di
usare doctest (almeno fino a un certo punto).
Se devi scrivere delle classi che verranno utilizzate da altre
persone, o hai paura di dimenticarti qualcosa in futuro, le doctest
sono molto comode e ti permettono di avere sia degli esempi che
faranno capire molto bene al tuo cliente/collaboratori quello che
scriverai, che dei test da utilizzare al volo.

- http://docs.python.org/library/doctest.html


 Spero di essermi spiegato! ;-)
 Ciao e grazie
 Fabrizio


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





-- 
---

My Blog on Bioinformatics (italian): http://bioinfoblog.it
___
Python mailing list
Python@lists.python.it
http://lists.python.it/mailman/listinfo/python


Re: [Python] l'operatore [::-1] per invertire una lista/stringa

2008-11-10 Per discussione Giovanni Marco Dall'Olio
On Mon, Nov 10, 2008 at 4:40 PM, Silvano Galliani [EMAIL PROTECTED] wrote:
 Manlio Perillo ha scritto:
 Che io sappia questo comportamento è sempre stato presente, di sicuro da
 Python 1.4:
 http://www.python.org/doc/1.4/ref/ref5.html#HDR10
 Per la precisione (2):
 E' dalla versione 1.4 che python supporta la sintassi extended slicing
 (con i doppi duepunti) come richiesto dagli sviluppatori di Numerical
 Python ma e' solo dalla 2.3 che gli oggetti builtin list, tuple e str
 supportano questa feature.
 http://www.python.org/doc/2.3.5/whatsnew/section-slices.html

Grazie mille a tutti per le risposte.. Avete postato dei link molto
interessanti.

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




-- 
---

My Blog on Bioinformatics (italian): http://bioinfoblog.it
___
Python mailing list
Python@lists.python.it
http://lists.python.it/mailman/listinfo/python


[Python] l'operatore [::-1] per invertire una lista/stringa

2008-11-10 Per discussione Giovanni Marco Dall'Olio
Ho appena scoperto l'esistenza dell'operatore [::-1] per invertire una stringa:

 a = [1, 2, 3]
 a[::-1]
[3, 2, 1]
 'abcd'[::-1]
'dcba'

mi sapreste dire dove sono documentati gli operatori come questo, in python?
E' una cosa di python 2.6?
Scusate se faccio sempre le stesse domande :) ma utilizzando questo
operatore, rischio di rompere qualche PEP8 - scrivere codice non
compatibile con vecchie versioni di python?

-- 
---

My Blog on Bioinformatics (italian): http://bioinfoblog.it
___
Python mailing list
Python@lists.python.it
http://lists.python.it/mailman/listinfo/python


Re: [Python] Gestire i numeri

2008-11-05 Per discussione Giovanni Marco Dall'Olio
On Wed, Nov 5, 2008 at 9:49 AM, Zanon Samuele [EMAIL PROTECTED] wrote:
 ciao a tutti... forse sembrerà banale la domanda volevo sapere come
 istruire python perchè mi verifichi che dopo il simbolo dei decimali (il .
 per come gestisce python i numeri) ci siano almeno 2 cifre, ed eventualmente
 mi inserisca uno o due zeri dove mancano.

 esempio:

 se io ho un numero tipo 20.1 vorrei che python me lo trasformasse in 20.10

 oppure se io ho 19 vorrei che me lo trasformasse in 19.00

 print %.2f % 19
(il .2 indica due cifre decimali, ed f un float)

Purtroppo non ti saprei indicare la documentazione esatta per questo.
Credo che venga dal C.

 --
 Zanon Samuele
 mailto:webs86 AT gmail DOT com

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





-- 
---

My Blog on Bioinformatics (italian): http://bioinfoblog.it
___
Python mailing list
Python@lists.python.it
http://lists.python.it/mailman/listinfo/python


[Python] operatore '' al posto di '!=' per le diseguaglianze

2008-10-20 Per discussione Giovanni Marco Dall'Olio
Ciao a tutti,
qual é la differenza tra l'operatore '' e quello '!=' per indicare una
condizione di disuguaglianza (tra due variabili, non tra due persone)?

Sto utilizzando del codice python scritto da un'altra persona, e ho notato
che utilizza sempre il  invece che il !=.
Ci può essere un motivo particolare per questo? Uno dei due operatori è piú
supportato da qualche versione vecchia (o futura) di python?

Spero che questa domanda non sia già stata posta... ma non sono riuscito a
fare una ricerca decente negli archivi della ml!!

-- 
---

My Blog on Bioinformatics (italian): http://bioinfoblog.it
___
Python mailing list
Python@lists.python.it
http://lists.python.it/mailman/listinfo/python


Re: [Python] python 2.4 vs 2.5

2008-09-30 Per discussione Giovanni Marco Dall'Olio
2008/9/30 [EMAIL PROTECTED] [EMAIL PROTECTED]



 volevo sapere semplicemente il modo per lanciare
 esplicitamente la 2.4 da terminale (shell bash di unix per mac osx )


python2.4
/usr/bin/python2.4

Naturalmente dipende da come (e se) é installata la 2.4 sul tuo computer.




 grazie



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




-- 
---

My Blog on Bioinformatics (italian): http://bioinfoblog.it
___
Python mailing list
Python@lists.python.it
http://lists.python.it/mailman/listinfo/python


Re: [Python] Consiglio ambiente di sviluppo

2008-07-25 Per discussione Giovanni Marco Dall'Olio
On Thu, Jul 24, 2008 at 11:17 PM, Andrea Gasparini [EMAIL PROTECTED]
wrote:

 Y3s spiffera, venerdì 18 luglio 2008 circa:
   Purtroppo vim non ha un sacco di funzionalita' che farebbero comodo,
 
  Quest'affermazione è falsa. Vim HA un sacco di funzionalità comode ;-)
  Comuqnue ha i plugin, se non lo trovi già fatto te lo puoi sempre
  sviluppare...in python.

 Viulnza!!! come vim non ha funzionalita'?!? ora mi scaldo!
 Io ho trovato piuttosto interessante questo:
 http://blog.sontek.net/2008/05/11/python-with-a-modular-ide-vim/


Spettacolare!!
Ottimo link, grazie mille.
Esiste in Italia un qualche vim-user group attivo?
Perché al prossimo pycon qualcuno non propone un seminario sull'uso di vim
(o di altri ide) per programmare in python?


-gaspa-
 ---
 - http://launchpad.net/~gaspa http://launchpad.net/%7Egaspa-
 -- HomePage: iogaspa.altervista.org ---
 -Il lunedi'dell'arrampicatore: www.lunedi.org -
 ___
 Python mailing list
 Python@lists.python.it
 http://lists.python.it/mailman/listinfo/python




-- 
---

My Blog on Bioinformatics (italian): http://bioinfoblog.it
___
Python mailing list
Python@lists.python.it
http://lists.python.it/mailman/listinfo/python


Re: [Python] Consiglio ambiente di sviluppo

2008-07-18 Per discussione Giovanni Marco Dall'Olio
2008/7/18 Francesco Stablum [EMAIL PROTECTED]:

 2008/7/18 Edo Monticelli [EMAIL PROTECTED]:
  Salve a tutti,
  sono nuovo della lista e ho da poco iniziato a lavorare con python.
  Ora sto lavorando con Eclipse+Pydev ma non son pienamente soddisfato.
  Qualcuno ha valide alternative?

 Ciao Edo,
 ti consiglio di provare SPE ( http://pythonide.blogspot.com/ ).
 Ha anche la funzionalita' pydoc integrata.
 Purtroppo non l'ho ancora usato estensivamente, sono fermo sul gran
 bel trattore vim che funziona sempre e comunque :)
 saluti,



Accidenti pensavo che ci fossero meno persone ad usare ancora vim :).
Cmq anche per me va benissimo.

L'unica accortezza é quella di abbinarlo a ipython (
http://ipython.scipy.org/moin/) piuttosto che all'interprete python
tradizionale, perché é molto più comodo.





-- 
---

My Blog on Bioinformatics (italian): http://bioinfoblog.it
___
Python mailing list
Python@lists.python.it
http://lists.python.it/mailman/listinfo/python


Re: [Python] creare un database

2008-07-17 Per discussione Giovanni Marco Dall'Olio
On Wed, Jul 16, 2008 at 9:33 PM, Ernesto [EMAIL PROTECTED] wrote:

 Ciao a tutti,

 sto  provando a creare un database tipo dizionario con Python. Al
 momento ho sfruttato il modulo anydbm. Ho, tuttavia, notato che quando
 il numero di informazioni da conservare aumenta l'accesso al database
 rallenta notevolmente. Anche lo spazio su disco è abbastanza elevato.
 Mi chiedevo se esiste qualcosa di alternativo più efficiente.
 Grazie,
 Ernesto



Ti posso consigliare django,
ha una ottima documentazione e dopo aver seguito il tutorial sarai in grado
di creare velocemente un database descrivendone la struttura in python, e in
più ti troverai a disposizione una interfaccia web molto comoda per
navigarlo.



-- 
---

My Blog on Bioinformatics (italian): http://bioinfoblog.it
___
Python mailing list
Python@lists.python.it
http://lists.python.it/mailman/listinfo/python


Re: [Python] Usate make?

2008-06-24 Per discussione Giovanni Marco Dall'Olio
2008/6/24 Matteo Acerbi [EMAIL PROTECTED]:
 On Tue, Jun 24, 2008 at 2:42 PM, Giovanni Marco Dall'Olio

 L'anno scorso io e una mia compagna di corso (ing. informatica,
 Bologna) lavorammo ad un progettino di elaborazione dati da
 microarray:

ciao!
Ma ha qualcosa a che fare con la specialistica in bioinfo, di bologna?
Io sono un ex-studente.


 Utilizzai Python per questo scopo unicamente per fare prima e lasciare
 del codice comunque decente a chi avrebbe potuto prendere in mano il
 progetto dopo di noi (temo nessuno :-) ).

 Forse usare Make avrebbe potuto favorire un approccio più dichiarativo
 e sopportare meglio eventuali incrementi successivi di complessità: al
 tempo avevo considerato l'ipotesi ma l'avevo poi scartata per fretta e
 per evitare di aggiungere un altro linguaggio all'insieme di
 competenze necessarie a comprendere cosa avessimo fatto. :-)

Il vantaggio di make é, essenzialmente, che se uno dei file di origine
cambia, lui se ne accorge e riesegue automaticamente tutti gli script
necessari a ricreare i risultati.
Per esempio: se ti rendi conto che i tuoi dati d'origine erano
sbagliati, o stai facendo delle prove, ti basta ridare make per rifare
tutto.

Inoltre dal punto di vista scientifico é opportuno avere una storia di
tutti i comandi e opzioni che hai dato (ci sono molti articoli in cui
gli autori non lo fanno), e poi realizzare questo con make o una
pipeline personalizzata non cambia molto.


 Avevo anche cercato di capire quali fossero modi più appropriati di
 affrontare questo problema (forse software tipo
 http://taverna.sourceforge.net/ ?), ma non provai minimamente a
 studiarli: il nostro programma doveva essere più rapido che
 flessibile, e adatto all'esecuzione batch (scartammo pregiudizialmente
 qualsiasi finestra :-) ).

taverna é un software piuttosto complesso, basicamente perché la
documentazione dei services esistenti é talmente scarna, che devi
avere una grossa conoscenza dei tool già disponibili per utilizzarlo.
Per esempio, devi sapere cosa é blast se vuoi fare un allineamento, o
sapere già cosa fa trfseq di emboss per utilizzarlo, o cose come
trans_seqfoot o biomart, o transfac. Loro ti danno una riga di 4 o 5
parole come documentazione! :)

Oppure, puoi crearti dei services personalizzati, ma devi metterti a
lavorare su XML, e a quel punto non so quanto la fatica di creare dei
web services e metterli su, progettare un file di descrizione del
protocollo in scufl, e testarlo mandando in giro i propri dati su
Internet possa essere conveniente rispetto al semplice uso di make.

Sicuramente nel futuro taverna sarà un software utilizzabile dai
principianti ma per adesso, mi sembra ci voglia ancora un po' di
testing.


 La mia esperienza nel mondo della bioinformatica è comunque terminata
 con quel progetto, per cui non ho idea di come realmente sia meglio
 fare queste cose (so solo che non trovo buoni motivi per usare Perl
 come pare vada ancora di moda :-) ).

Va bene stiamo scivolando sull'off-topic... non ti preoccupare, si
usano anche altri linguaggi, anzi se ti va di dare una mano su
biopython sei benvenuto :).


 Ho sentito dire che si può anche usare anche distutils.core.setup (il tipico 
 python setup.py), ma per il momento non ci ho guardato, preferisco capire 
 make. Ci sono dei vantaggi ad usare questo modulo? Ci sono grosse differenze?

 Non conosco bene le distutils ma se la tua finalità non è quella di
 distribuire un pacchetto Python installabile ma piuttosto un albero di
 sorgenti io preferirei make, sia per lanciare i job che per compilare
 eventuali programmi C (o altro linguaggio compilato) da cui essi
 dipendono.

Basicamente anche distutils ti permette di creare delle regole, le
quali vanno a controllare l'esistenza di alcuni files, e se questi non
esistono o sono obsoleti, esegue i comandi indicati.
Il fatto é che la sintassi di make non é molto confortevole... mi
chiedevo appunto se fosse possibile fare qualcosa con i tool
disponibili con python e se ci fosse qualche strumento più recente da
provare.



 Mi interesserebbe sapere se altri hanno altre idee in proposito, però.

 Ciao,
 Matteo




-- 
---

My Blog on Bioinformatics (italian): http://bioinfoblog.it
___
Python mailing list
Python@lists.python.it
http://lists.python.it/mailman/listinfo/python


Re: [Python] Tools di sviluppo per Python

2007-10-26 Per discussione Giovanni Marco Dall'Olio
2007/10/26, Cristian Re [EMAIL PROTECTED]:
 Buongiorno a tutti, sono un uovo iscritto.
 Vorrei chiedervi quali tools di sviluppo utilizzate per scrivere ed
 effettuare il debug di script python.

Io uso ipython come IDE e il modulo pdb per il debug.
Ossia:
ipython -debug nomescript.py

eppoi vim come editor di testo, naturalmente :)

-- 
---

My Blog on Bioinformatics (italian): http://dalloliogm.wordpress.com
___
Python mailing list
Python@lists.python.it
http://lists.python.it/mailman/listinfo/python