Re: [Python] Ciao a tutti
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/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/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/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/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
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/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/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
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/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?
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?
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
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
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
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/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/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
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
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
$: 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
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/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/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/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/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/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/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/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/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/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/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/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/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/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/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/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/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/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/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/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/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/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/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
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/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?
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/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
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
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/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
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 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
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 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/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 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
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
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
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
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/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
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/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
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/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, 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