[Python] icalendar & python
ritrasmetto da un altro smtp perhé non vedo in lista Ciao a tutti, ho necessità di tuffarmi nel mondo di iCalendar a me completamente sconosciuto fino a pochi giorni fa... vedo con piacere che è molto affollato da applicazioni e moduli in python ma chiedo lumi a chi ha esperienza di questi per districarmi un po'... racconto il mio piano dell'opera per eventuali suggerimenti Dopo una lettura sommaria del formato icalenadar ho provato ad installare il Darwin Calendar Server della Apple (twisted + vobject +...) ed ho tentato di conneterci un client sunbird (fratello standalone di lightning/mozilla). Io non riesco a recuperare i dati ma un client ical riesce, immagino di dovere semplicemente capire qualcosa in più sull'uso del client. Alla fine non potrò accontentarmi di usare un client già fatto, dovrò avere eventi più ricchi per collegare altre interfacce che ho in gtk, quindi penso di usare GooCalendar, una libreria basata su goocanvas che mi pare facilmente adattabile allo scopo. Dove sono assolutamente "scoperto" e dove non ho trovato documentazione è invece sulla parte di interrogazione di un server ical (da un client python in particolare). Quali tipi interrogazioni posso fare ad un server? Sono abituato a pensare in termini di database relazionali e fatico a capire come chiedere "gli appuntamenti di tizio ha nel mese di maggio...", "gli eventi relativi a questo progetto" soprattutto avendo visto che DarwinCalendarServer mantiene (mi pare proprio) in un file .ics gli eventi che gli arrivano. Come fa ad essere efficente in una ricerca? che indici usa? Chi gestiche gli eevnti ricorrrenti? il server o il client? Ringrazio anticipatamente chi vorrà suggerirmi documentazione o darmi dritte sia su moduli da usare che su strade da percorrere. sandro *:-) ___ Python mailing list Python@lists.python.it http://lists.python.it/mailman/listinfo/python
[Python] icalendar & python
ritrasmetto da un altro smtp perhé non vedo in lista Ciao a tutti, ho necessità di tuffarmi nel mondo di iCalendar a me completamente sconosciuto fino a pochi giorni fa... vedo con piacere che è molto affollato da applicazioni e moduli in python ma chiedo lumi a chi ha esperienza di questi per districarmi un po'... racconto il mio piano dell'opera per eventuali suggerimenti Dopo una lettura sommaria del formato icalenadar ho provato ad installare il Darwin Calendar Server della Apple (twisted + vobject +...) ed ho tentato di conneterci un client sunbird (fratello standalone di lightning/mozilla). Io non riesco a recuperare i dati ma un client ical riesce, immagino di dovere semplicemente capire qualcosa in più sull'uso del client. Alla fine non potrò accontentarmi di usare un client già fatto, dovrò avere eventi più ricchi per collegare altre interfacce che ho in gtk, quindi penso di usare GooCalendar, una libreria basata su goocanvas che mi pare facilmente adattabile allo scopo. Dove sono assolutamente "scoperto" e dove non ho trovato documentazione è invece sulla parte di interrogazione di un server ical (da un client python in particolare). Quali tipi interrogazioni posso fare ad un server? Sono abituato a pensare in termini di database relazionali e fatico a capire come chiedere "gli appuntamenti di tizio ha nel mese di maggio...", "gli eventi relativi a questo progetto" soprattutto avendo visto che DarwinCalendarServer mantiene (mi pare proprio) in un file .ics gli eventi che gli arrivano. Come fa ad essere efficente in una ricerca? che indici usa? Chi gestiche gli eevnti ricorrrenti? il server o il client? Ringrazio anticipatamente chi vorrà suggerirmi documentazione o darmi dritte sia su moduli da usare che su strade da percorrere. sandro *:-) ___ Python mailing list Python@lists.python.it http://lists.python.it/mailman/listinfo/python
[Python] icalendar & python
Ciao a tutti, ho necessità di tuffarmi nel mondo di iCalendar a me completamente sconosciuto fino a pochi giorni fa... vedo con piacere che è molto affollato da applicazioni e moduli in python ma chiedo lumi a chi ha esperienza di questi per districarmi un po'... racconto il mio piano dell'opera per eventuali suggerimenti Dopo una lettura sommaria del formato icalenadar ho provato ad installare il Darwin Calendar Server della Apple (twisted + vobject +...) ed ho tentato di conneterci un client sunbird (fratello standalone di lightning/mozilla). Io non riesco a recuperare i dati ma un client ical riesce, immagino di dovere semplicemente capire qualcosa in più sull'uso del client. Alla fine non potrò accontentarmi di usare un client già fatto, dovrò avere eventi più ricchi per collegare altre interfacce che ho in gtk, quindi penso di usare GooCalendar, una libreria basata su goocanvas che mi pare facilmente adattabile allo scopo. Dove sono assolutamente "scoperto" e dove non ho trovato documentazione è invece sulla parte di interrogazione di un server ical (da un client python in particolare). Quali tipi interrogazioni posso fare ad un server? Sono abituato a pensare in termini di database relazionali e fatico a capire come chiedere "gli appuntamenti di tizio ha nel mese di maggio...", "gli eventi relativi a questo progetto" soprattutto avendo visto che DarwinCalendarServer mantiene (mi pare proprio) in un file .ics gli eventi che gli arrivano. Come fa ad essere efficente in una ricerca? che indici usa? Chi gestiche gli eevnti ricorrrenti? il server o il client? Ringrazio anticipatamente chi vorrà suggerirmi documentazione o darmi dritte sia su moduli da usare che su strade da percorrere. sandro *:-) ___ Python mailing list Python@lists.python.it http://lists.python.it/mailman/listinfo/python
Re: [Python] icalendar & python
On Thu, Jan 17, 2008 at 10:21:30PM +0100, Carlo C8E Miron wrote: > On Jan 16, 2008 10:50 PM, Alessandro Dentella <[EMAIL PROTECTED]> wrote: > > Ciao a tutti, > > ritrasmetto da un altro smtp perhé non vedo in lista > [snip] > > Ciao Sandro. > Scusaci il disservizio, ci sono stati alcuni problemi in fase di > migrazione del server, adesso dovrebbe essere tutto ok. non è un problema per me, di fatto ho inondato di mail alla fine e mi spiace ma nelle settimane passate avevo risposto un paio di volte e le mail non arrivavano neanche con ritardo, per quello ho immaginato che fossero perse... Ora vediamo se con tutte le e-mail c'è qualcun che ha indicazioni da darmi... *;-) ___ Python mailing list Python@lists.python.it http://lists.python.it/mailman/listinfo/python
Re: [Python] Quale versione di Django?
On Tue, Jan 29, 2008 at 11:34:41AM +0100, Andrea Spadaccini wrote: > Ciao a tutti, > vorrei iniziare ad utilizzare django, e vorrei un consiglio: quale versione > utilizzo? > > Ho visto che il tutorial si riferisce alla versione SVN, è consigliabile > utilizzare la 0.96 oppure hanno davvero stravolto tutto? hanno devvero fatto molte modifiche e molte ne hanno in caldo. Fra le modifiche importanti è stata l'adozione di unicode per uscire dall'incubo dei caratteri accentati. Ne saresti colpito ben presto e già solo questo è motivo sufficiente. un secondo motivo è il supporto per le newforms che nella 0.96 è solo iniziato ma con gravi mancanze. Inoltre altre grandi modifiche sono in caldo ed essere avanti ti può solo facilitare. sandro *:-) ___ Python mailing list Python@lists.python.it http://lists.python.it/mailman/listinfo/python
Re: [Python] diversi __init__ ??
> > Ma quindi se A eredita da B, non può fare l'overloading dei metodi > > di B? > > Il concetto di 'overloading' non ha senso in python. L'overload è un ??!!?? ops ho l'impressone di avere sbagliato tutto... ma questa proprio non la capisco/condivido. O sono incappato in un problema terminologico o quello che dici mi pare proprio sbagliato. Mi pare che sia normalissimo fare overloading come questo class A(object): def __init__(self): pass class B(A): def __init__(self): print 'OK' Stai dicendo che non è abitudine fare questo in python? Avrei parecchi controesempi... > obiettivo o un mezzo? > L'overload è un *mezzo*. Quale è il problema che risolve? Quello di > avere più metodi con lo stesso nome che accettano parametri diversi > per numero e per tipo. > > Come risolve lo stesso problema Python? Il tipo è ininfluente, fare > funzioni che accettano un numero variabile di argomenti è banale, > comodo da gestire e piuttosto gradevole da leggere (again, named > parameters). vorresti con questo dire che sia più elegante pensare *a priori* in quali modi la gente vorrà ereditare la nostra classe? (ed infilare 100 parametri nella funzione). Forse però non ho capito la tua obiezione... *%-) ___ Python mailing list Python@lists.python.it http://lists.python.it/mailman/listinfo/python
Re: [Python] esecuzione subprocess, scrittura stdin e lettura stdout
On Thu, Feb 21, 2008 at 10:15:15AM +0100, Shatzu wrote: > >Salve, >sono nuovo di qui! >stavo cercando di scrivere uno script python che, lanciando un subprocess >che effettua una connessione ssh ad un server, mi permetta poi di eseguire >comandi e leggere gli output. >Riesco ad effettuare la connessione e anche a far eseguire comandi > scrivendo >sull'stdin, ma ho problemi a leggere l'output, nel senso che non sempre è >completo e a volte con le funzioni read o readline mi si blocca lo script. >Come posso fare a leggere tutto l'output dei comandi che lancio? come lo usi? leggi l'output man mano o vorresti leggerlo alla fine del comando? Io lo uso normalmente così: p = subprocess.Popen(cmd, stdin=stdin, stdout=stdout, stderr=stderr, **kw) (stdout, stderr) = p.communicate(input=subproc_input) dove in, out err vengono inizializzate da codice non mostrato normalmente a subprocess.PIPE Questo codice però va bene se aspetti che il comando termini l'esecuzione. sandro *:-) ___ Python mailing list Python@lists.python.it http://lists.python.it/mailman/listinfo/python
[Python] icalendar, vobject, zanshin, twisted?...
Ciao a tutti ho necessità di interfacciare una applicazione con alcuni calendari esterni sia per la lettura di calendari che per la creazione di eventi. Già un mesetto fa [1] ho scritto su questa lista ma senza alcuna risposta. Nel frattempo ho visto che esiste una libreria 'zansin' [2]: che dovrebbe fara al caso mio per la interrogazione/upload di calendari, mentre esiste il modulo 'vobject' per la creazione di file .ics. Qualcuno ha esempi funzionanti? Purtroppo non riesco a trovare tempo per mettere insieme il tutto ed ho i tempi sretti. Se qualcuno fosse disponibile ed interessato ad occuparsene (a pagamento, ovviamente), vi prego di contattarmi direttamente. sandro *:-) [1] http://lists.python.it/pipermail/python/2008-January/005148.html [2] http://chandlerproject.org/Projects/ZanshinProject ___ Python mailing list Python@lists.python.it http://lists.python.it/mailman/listinfo/python
Re: [Python] icalendar, vobject, zanshin, twisted?...
On Thu, Feb 21, 2008 at 08:26:03PM +0100, Manlio Perillo wrote: > Alessandro Dentella ha scritto: > > Ciao a tutti > > > > ho necessità di interfacciare una applicazione con alcuni calendari > > esterni sia per la lettura di calendari che per la creazione di > > eventi. > > Quali calendari, per la precisione? > Non esiste una standard/metodo unico per accedere ad un calendario > (almeno l'ultima volta che mi ero documentato, anche se abbastanza > recentemente CalDav è stato accettato come RFC 4791). Premesso che non ho una conoscenza approfondita, mi ero orientato su CalDav e come server su Darwin che Apple ha reso pubblico ed è basato su twisted. Zanshin dovrebbe permettermi di interrogare il server e caricare eventi. A quali altri metodi fai riferimento? > Per creare un oggetto ical io conosco questo: > http://codespeak.net/icalendar/ lo avevo visto ma avevo anche visto che il server Darwin usa vObject. sandro *:-) ___ Python mailing list Python@lists.python.it http://lists.python.it/mailman/listinfo/python
Re: [Python] script per linux: .flv to .avi con ffmpeg
On Fri, Mar 21, 2008 at 07:38:55PM +0100, ugaciaka wrote: > Ho fatto così sotto consiglio: > > Popen(["ffmpeg", "-i" , file_vecchio, file_nuovo]) > > ora vorrei sapere, se volessi fare in modo di ottenere il codice di > uscita come si fa? Dalla documentazione ufficiale le cose non mi sono > chiare: come ti ha già suggerito Enrico, dai un occhio a subprocess. io nlo uso circa così: p = subprocess.Popen(cmd, stdin=stdin, stdout=stdout, stderr=stderr, **kw) stdout, stderr = p.communicate(input=subproc_input) quando lo uso in modo sincrono... sandro *:-) ___ Python mailing list Python@lists.python.it http://lists.python.it/mailman/listinfo/python
[Python] soap & python
Ciao, Devo interfacciarmi ad un server saop per alcune funzioni piuttosto semplici ma di cui al momento ho due specifiche contradditorie (!) e sono in attesa di chiarimenti dal fornitore. Ho dato una occhiata al modulo SOAPpy, che probabilmente è idoneo allo scopo ma mi pare che anche twisted implementi il protocollo SOAP, e siccome è da un po' che ci giro attorno con l'idea di provarlo (twisted) mi chiedevo se è sensato farlo in questa occasione... Pareri? esempi semplici di twisted+soap? sandro *:-) ___ Python mailing list Python@lists.python.it http://lists.python.it/mailman/listinfo/python
Re: [Python] soap & python
Ho finalmente chiarito come è il protocollo. Ho quattro metodi che accettano un solo parametro scringa che a sua volta è un xml. (sotto CRED). Ora mi fermo un po' più in la... On Tue, Apr 01, 2008 at 03:21:02PM +0200, Giorgio Zoppi wrote: > ZSI è l'ideale. > http://www.programmazione.it/index.php?entity=eitem&idItem=37378 il tuo articolo parla del lato server a me serviva il lato client. Ho come l'impressione che tutti lo considerino la parte banale e quindi non spieghino nulla... Ho poi trovato questo articolo: http://www.kb.ucla.edu/articles/how-to-create-a-python-class-from-a-soap-wsdl che mi ha guidato nella comprensione di come passare i parametri dei metodi esposti, cosa che non mi era affatto chiara. Vorrei capire come attivre il debug del codice xml scambiato, ciò che con SOAPpy era: server.soapproxy.config.dumpSOAPOut = 1 server.soapproxy.config.dumpSOAPIn = 1 ma con zsi non lo capisco. Attalmente quindi faccio così: CRED = """ myuser mypass """ from ws_ricarica_sistemi_esterni_services import * locator = ws_ricarica_sistemi_esterniLocator() myport = locator.getws_ricarica_sistemi_esterniSoap() myrequest = SaldoSoapIn() myrequest.xml_saldo = CRED myresponse = myport.Saldo(myrequest) Ottengo però un "Evento imprevisto, impossibile autenticare" per cui vorrei abilitare il debug come ho mostrato prima che avrei fatto con SOAPpy. Qualche suggerimento? grazie in anticipo sandro *:-) ___ Python mailing list Python@lists.python.it http://lists.python.it/mailman/listinfo/python
Re: [Python] Programmazione web
> A questo aggiungi la recente aggiunta del declarative layer: > http://www.sqlalchemy.org/docs/04/plugins.html#plugins_declarative Leggo con molto piacere di questo layer che mi era sfuggito. Mi pare che introduca un livello di semplificazione e leggibilità Credo che a Django faccia bene essere un team, ragionano molto sulla sintassi che in genere risulta semplice e facile da apprendere. Sqlalchemy per contro è sicuramente più completa e potente (per questo l'ho scelta per un mio editor di db) ma è anche piuttosto difficile da apprendere. Magari la natura dichiarativa dell'ORM di Django ha positivamente influenzato sa? sandro *:-) ___ Python mailing list Python@lists.python.it http://lists.python.it/mailman/listinfo/python
Re: [Python] getopt
On Thu, May 22, 2008 at 09:48:39PM +0200, Paolo wrote: > Ciao a tutti, > ho qualche domanda da fare sulla funzione getopt: > > Da riga di comando l'utente può inserire comandi del tipo: > prova -p arg1 arg2 arg3 arg4 > prova -c arg1 arg2 > > come posso utilizzare la funzione getopt in modo da ottenere come opzioni -p > oppure -c e come argomenti gli argomenti relativi al tipo di opzione ? > Mi spiego meglio con un esempio: > > prova -p 0 /home/paolo/file.txt read > mi servirebbe avere: opt = -p > args = 0 /home/paolo/file.txt read > args mi serve come array: > args[0] = 0 > args[1] = /home/paolo/file.txt > args[3] = read io mi trovo molto bene con questa ricetta di michele Simionato che usa la docsctring stessa, opportunamente (ed intuitivamente) formattata sia per l'help che per la definizione delle opzioni. Così ti trovi sempre obbligatoriamente l'help corretto http://aspn.activestate.com/ASPN/Cookbook/Python/Recipe/278844 Credo che l'esempio sia molto chiaro e quello che tu vuoi è facile. """An example script invoking optionparse, my wrapper around optparse. usage: %prog [options] args -p, --positional: print positional arguments -1, --option1=OPTION1: print option1 -2, --option2=OPTION2: print option2 """ import optionparse opt, args = optionparse.parse(__doc__) in args come ovvio trovi gli argomenti, opt è una istanza i cui attributi sono le opzioni possibili: None se non è definita, OPTION1, OPTION2 etc se impostata. sandro ___ Python mailing list Python@lists.python.it http://lists.python.it/mailman/listinfo/python
Re: [Python] Funzioni come moduli
> Quindi mi sarebbe d'aiuto un buon metodo per importare moduli a seconda > di una variabile, o altri modo per definire ed utilizzare funzioni in > files esterni al "cuore" del programma. > Grazie per le eventuali risposte :) Se ho capito bene stai cercando la funzione __import__: http://docs.python.org/lib/built-in-funcs.html *:-) ___ Python mailing list Python@lists.python.it http://lists.python.it/mailman/listinfo/python
Re: [Python] Funzioni come moduli
On Mon, Jun 30, 2008 at 03:41:39PM +0200, Leonardo wrote: > Alla fine ho risolto con execfile, è incredibile: esegue un file come se > fosse all'interno del file chiamante, passandogli tutte le variabile, le > funzioni, e le classi esistenti. > L'unica cosa è che adesso un modulo è così ad esempio: > > file rejoin.py: > > #! /usr/bin/python > # -*- coding: UTF-8 -*- > user, mode, chan, request = self.get_params(server_response) > if self.Bot.nick in server_response: > print "Sono stato kikkato!" > self.Bot.join(chan) > self.send(self.response, chan) > > E fa un po' senso vederlo così, con praticamente tutte le variabili e > funzioni non dichiarate nè passate come argomento eppure funzionanti. > Ovvio che se lo lancio direttamente solleva decine di errori x c'è un altro aspetto che non mi piace di execfile. Proprio il mese scorso sono passato da execfile a __import__ in un set di test il cui principio è uguale a quello dei plugin. il "problema" è negli import. Supponi di avere un plugin così:: import sys class A(object): def test(self): print sys.path e di volerlo usare così LOCS = {} execfile('plugin_A.py', {}, LOCS) a = LOCS['A']() a.test() ti verrà sollevato l'errore che perchè 'a' non vede __più__ il modulo sys. E non mi pare una soluzione dire che assieme ad A importo tutto nel mio programma principale. Ovviamente funzionerebbe se facessi l'import direttamente nel metodo, ma io lo consideravo troppo particolare e esposto ad errori. sandro *:-) ___ Python mailing list Python@lists.python.it http://lists.python.it/mailman/listinfo/python
Re: [Python] Funzioni come moduli
> > e di volerlo usare così > > > > LOCS = {} > > execfile('plugin_A.py', {}, LOCS) > > > > a = LOCS['A']() > > a.test() > > > > > > ti verrà sollevato l'errore che perchè 'a' non vede __più__ il modulo > > sys. > > Il problema e' che usi un dizionario per ambiente globale che pero' poi > butti via. > > Il codice seguente funziona come ci si aspetta: > > In [1]: ENV = {} > In [3]: execfile('plugin_A.py', ENV) > In [5]: a = ENV['A']() > In [6]: a.test() certo ma a quel punto ogni variabile viene importata nel namespace del chiamante e -proprio per dei plugin che possono essre fatti da terze parti- non so quanto sia opportuno. Chi mi assicura che non ridefinisca nomi di variabili che ho in uso? *:-) ___ Python mailing list Python@lists.python.it http://lists.python.it/mailman/listinfo/python
Re: [Python] Funzioni come moduli
> A me non sembra che il global namespace del chiamante venga inquinato: > > In [1]: ENV = {} > > In [2]: execfile('plugin_A.py', ENV) > > In [3]: a = ENV['A']() > > In [4]: a.test() > [ ...roba... ] > > In [5]: sys > > --- > Traceback (most recent call > last) > > /home/piro/py/ in () > > : name 'sys' is not defined mi arrendo... il che mostra che non ho compreso bene il significato di questo dizionario e tantomeno comprendo cosa succeda in realtà se uso due dizionari (globals, locals) e se ne uso uno soltanto... Questo utilizzo è quindi completamente equivalente ad un import? sandro *:-) ___ Python mailing list Python@lists.python.it http://lists.python.it/mailman/listinfo/python
Re: [Python] aituo per programmino: creazione password ed md5sum
On Fri, Sep 19, 2008 at 02:39:54PM +0200, Valerio Pachera wrote: > Ciao a tutti, è un po' che non metto mano a python e sono comunque un > novellino. > Ho una necessità pratica da usare come esercizio per imparare qualcosa > di più di python: > > volgio fare un piccolo script per generare delle password ed il relativo md5. > Come input deve prendere i paramteri "numero di password da creare", > "il nome del file" dove salvarle ed il "separatore" usato per separare > le password e l'md5 nel file che verrà scritto. > > Ho creato lo script ma NON SO COME SCRIVERE SU UN FILE IL RISULTATO. > ecco lo script: > > -- > # coding=utf-8 > import md5 > import random > > def genpasswd (lenght=8): > passwd="" > for num in random.sample(range(0,10), lenght): > passwd += str(num) > return passwd > > def genlist (records, separator): > c = 0 > passwd = "" > md5sum = "" > record = [] > passwd_list = [] > while c < records: > new_passwd = genpasswd() > new_md5 = md5.new (new_passwd).hexdigest() + separator > new_passwd += separator > record = [new_passwd, new_md5] > passwd_list.append (record) > c += 1 > return passwd_list > > def genfile (filename, records=1, separator=';'): > passwd_list = genlist(records, separator) > print "devo scrivere i seguenti record sul file ", filename > for record in passwd_list: > #scrivi i record su un file di testo > print record una roba così? oltre ad 'open' che dovresti vedere documentata da tante parti, nota l'uso di join, operatore di una stringa def genlist (records, separator): c = 0 passwd = "" md5sum = "" record = [] passwd_list = [] while c < records: new_passwd = genpasswd() new_md5 = md5.new (new_passwd).hexdigest() passwd_list.append(separator.join([new_passwd, new_md5])) c += 1 return passwd_list def genfile (filename, records=10, separator=';'): passwd_list = genlist(records, separator) f = open(filename, 'w') #scrivi i record su un file di testo f.write("\n".join(passwd_list)) f.write('\n') f.close() ___ Python mailing list Python@lists.python.it http://lists.python.it/mailman/listinfo/python
Re: [Python] "terminale alternativo"
On Sat, Sep 20, 2008 at 03:30:42PM +0200, luciano fornari wrote: > Ciao a tutti, > ho scritto un programmino (di dubbia utilit ) che funziona come console. > > Ecco il semplicissimo codice: > > import os > > while 1: > command = raw_input("she11: ") > os.system(command) > > L'ho provato (su linux) eseguendo alcuni comandi come 'pwd' e 'date' e fin qui > tutto ok. Poi ho provato a cambiare cartella digitando 'cd /' per andare alla > root directory e niente, 'pwd', sono nella stessa cartella di prima, 'cd > /home/ il cambio di cartella c'è stato... ma nella shell che è stata generata apposta da os.system e prontamente distrutta all'uscita da detto comando... *:-) ___ Python mailing list Python@lists.python.it http://lists.python.it/mailman/listinfo/python
[Python] ipython: eseguire una sola funziona con pdb
Ciao, avete idea di come si possa dall'interno di ipython, eseguire una funzione con pdb, in modo da poterla far procedere passo-passo? Vorrei per intenderci usare il comando 's' che all'interno di pdb esegue la riga successiva un passo alla volta. Mentre scrivo mi accorgo che vorrei potere fare questo anche in pdb, senza ipython mentre sono capace di farlo solo sulla riga "successiva" non su uno statement generico. grazie sandro *:-) ___ Python mailing list Python@lists.python.it http://lists.python.it/mailman/listinfo/python
Re: [Python] Operazioni con i numeri
On Tue, Oct 07, 2008 at 05:58:24PM +0200, Daniele Varrazzo wrote: > > > On Tue, 7 Oct 2008 14:59:30 +0200, "Lawrence Oluyede" <[EMAIL PROTECTED]> > wrote: > > 2008/10/7 Zanon Samuele <[EMAIL PROTECTED]>: > >> ciao a tutti... volevo sapere come posso fare per convertire una stringa > > in > >> un numero per poter eseguire operazioni (ad esempio da 20,90 a 20.90) > > > > float("20.90") > > > > (la stringa che rappresenta un decimale con la virgola non e` > > supportata che io sappia). > > No, non lo è. Io di solito aggiro la cosa con: > > In [1]: s = "20,90" > > In [2]: print float(s.replace(",", ".")) > 20.9 Dovrei occuparmi di questa faccenda nei prossimi giorni per una applicazione in gtk. Speravo che ci fosse qualche aiuto nei menadri della localizzazione ma mi pare che mi togli le illusioni. Devo quindi prepararmi a mettere e togliere virgole e punti a manetta o esiste qualcosa almeno per la rappresentazione di un numero? Stessa cosa per i separatori di migliaia? *:-) ___ Python mailing list Python@lists.python.it http://lists.python.it/mailman/listinfo/python
Re: [Python] NameError: global name 'SMTPSenderRefused' is not defined
> try: > mail_sended += 1 > server.sendmail(me, you[1], msg.as_string()) > > #mittente rifiutato > except SMTPSenderRefused: > mail_sended -= 1 > Send_Report(2) > File "./Mailman_Killer.py", line 213, in sendMails > except SMTPSenderRefused: > NameError: global name 'SMTPSenderRefused' is not defined Non è che hai semplicemete dimenticato di importarlo? *:-) ___ Python mailing list Python@lists.python.it http://lists.python.it/mailman/listinfo/python
Re: [Python] Domande varie
On Mon, Oct 20, 2008 at 03:53:07PM +0200, Valerio Pachera wrote: > Ciao ragazzi, sto leggendo del codice di alcuni programmi e vi sono > delle cose che non mi sono chiare. > > def __init__(self, **kw): > super(Document, self).__init__(**kw) > > Correggetemi se sbaglio: > Qua viene definito il costruttore che richiama il costruttore della > classe genitore per estenderlo. > > Cosa sono gli asterischi > kv ha un significato particolare? kw come keywords, spesso trovi anche kwargs, puoi usare il nome che più ti aggrada. **kw nella definizione di funzione indica che ogni keyword argument non precedentemente definito verrà messo in un dizionario kw. In [1]: def abc(**kw): ...:print kw ...: In [2]: abc(uno=1, due=2) {'due': 2, 'uno': 1} quindi kw a questo punto è un dizionario, se vuoi chiamare il costruttore di Document devi però passargli uno=1, due=2... '**' fa esattamente questo. Esiste anche l'omologo per gli argomenti ed è l'asterisco semplice: '*'. In [3]: def abc(*args): print args ...: In [5]: abc(1,2,'mno') (1, 2, 'mno') *:-) ___ Python mailing list Python@lists.python.it http://lists.python.it/mailman/listinfo/python
Re: [Python] Calcolo tra date
On Mon, Oct 27, 2008 at 11:56:56AM +0100, Zanon Samuele wrote: > Ciao a tutti... > volevo chiedere se e con quale modulo di python posso fare calcoli tra date e > ore... dateutils è utile, che ti serve in particolare? sandro ___ Python mailing list Python@lists.python.it http://lists.python.it/mailman/listinfo/python
[Python] [Announce] sqlkit - first public release
ANNOUNCE: sqlkit 0.8.3 November, 10 2008 I'm happy to announce release 0.8.3 of sqlkit package for python - the first public release. http://docs.argolinux.org/sqlkit Sqlkit PyGtk package that provides Mask and Table widgets to edit database data. It's meant as a base for database desktop application. It has a very rich demo. Any comment is really appreciated. Main features of sqlkit: * editor of databases in 2 modes: table & mask * based on sqlalchemy: can cope with many different databases * very powerfull filtering capabilities: - each field can be used to filter records - filter may span relationship - date filtering possible also on relative basis (good for saved queries) * completion on all text field and foreign keys * very easy way to draw a layout for mask views * completely effortless editing of relationships * very easy way to set defaults * possibility to display totals of numeric fields * any possible sql constraint can be attached to a Mask or a Table. It can be expressed as a normal sqlalchemy query or with django-like syntax * sqledit: python script to edit db Sqlkit is based on: --- * python (>= 2.4) * PyGtk * Sqlalchemy (>= 0.5) * glade * dateutils Dowload & more: --- * http://docs.argolinux.org/sqlkit/sqlkit/download.html * hg clone http://hg.argolinux.org/py/sqlkit * google group: http://groups.google.it/group/sqlkit/ * License: GNU GPL ___ Python mailing list Python@lists.python.it http://lists.python.it/mailman/listinfo/python
[Python] L'uovo e la gallina
Ciao, avevo due pacchetti differenti "debug" e "sqlkit". Sqlkit ha una classe che ha una metaclasse in debug, per soli scopi di sviluppo. La metaclasse che sfrutta la ricetta 198078 di ASPN aggiunge una parte di log ai metodi, lo fa solo se una variabile nel modulo di debug è True. Ovviamente lo deve fare quando il modulo viene importato... Ho unito i pacchetti, ora se un modulo chiama from sqlkit import debug per potere impostare a True la variabile, innesca l'import del modulo sqlkit, quando la variabile non è ancora impostata, e quindi niente debug... (in quanto sqlkit/__init__.py importa il modulo con la metaclasse) Come si esce da questa situazione? Ho anche provato a fare reload del modulo ma non succede nulla (non pare che lo rilegga) sandro *:-) ___ Python mailing list Python@lists.python.it http://lists.python.it/mailman/listinfo/python
Re: [Python] notificazioni publisher - subscriber: quali standard?
On Sat, Nov 22, 2008 at 01:41:00PM +0100, Lawrence Oluyede wrote: > On Sat, Nov 22, 2008 at 12:32 PM, max <[EMAIL PROTECTED]> wrote: > > Salve, > > volevo chiedere se ci siano degli standard, ed eventualmente dove > > guardare, per la gestione di meccanismi di notificazione tipo publisher > > subscriber, quelli che si usano nei modelli MVC per fare in modo che il > > modello possa "comuncare ad altri" eventuali cambi di stato, senza > > doversi appoggiare a librerie esterne a Python. > > Ho visto che alcuni framework (es: wxWidgets, GTK...) hanno delle loro > > implementazioni (o progetti relativi), ma mi piacerebbe capire se questa > > cosa è fattibile in pure python senza doversi appoggiare ad altri > > frameworks. > > Ti riferisci a qualcosa come PyDispatcher? > http://pydispatcher.sourceforge.net/ > Viene usato per l'implementazione dei segnali in Django (per una sorta > di pattern publisher-subscriber) pygtk usa gobject che di fatto è ora completamente separato da GTK (sbaglio?). Quali vantaggi/svantaggi ci sono fra i due per la gestione dei segnali? sandro *:-) ___ Python mailing list Python@lists.python.it http://lists.python.it/mailman/listinfo/python
Re: [Python] errore in applicazione django
> variable %s is undefined." % ENVIRONMENT_VARIABLE) > ImportError: Settings cannot be imported, because environment variable > DJANGO_SETTINGS_MODULE is undefined. > > non riesco a capire dove sta l'errore. > Grazie Mi pare che l'errore sia molto chiaro: non è definita la variabile d'ambiente DJANGO_SETTINGS_MODULE che deve puntare al file settings.py. Es.: export DJANGO_SETTINGS_MODULE=myproject.settings che implica che sia possibile scrivere: python -c "import myproject" sandro *:-) ___ Python mailing list Python@lists.python.it http://lists.python.it/mailman/listinfo/python
Re: [Python] Programmare applicazioni grafiche
On Sun, Dec 21, 2008 at 03:21:16PM +0100, Zanon Samuele wrote: > ciao a tutti... avete una guida, italiano o inglese, per creare applicazioni > grafiche? vorrei iniziare un progetto per un corso che sto seguendo, ma non > voglio un'interfaccia grafica... inoltre dovrei basarmi su un piccolo > database.. mi consigliate mysql o basta sqlite? praticamente deve > immagazzinarmi delle note riguardanti alcune persone... nulla di > stratosferico... qualche consiglio? ciao e grazie mille Se non ti fa schifo risolvere i problemi con meno di 10 righe di codice (oltre alla scrittura delle tabelle) puoi provare con sqlkit [1]. E` ancora molto in divenire ma assolutamente già utilizzabile. Non ti lega ad un db perché usa sqlalchemy (oltre a PyGtk). La demo dovrebbe chiariti cosa intendo quando dico meno di 10 righe, quindi chiarire cosa ti offre e cosa non ti offre, in gran sintesi ti fornisce dei widget con cui editi un db, segui le fkey, editi le relazioni m2m, m2o in modo molto immediato. sandro *;-) [1] http://sqlkit.argolinux.org PS: Wind ha smesso di fare relay per questa lista... vediamo se arriva inviando direttamente... -- Sandro Dentella *:-) e-mail: san...@e-den.it http://sqlkit.argolinux.orgSQLkit home page - PyGTK/python/sqlalchemy ___ Python mailing list Python@lists.python.it http://lists.python.it/mailman/listinfo/python
[Python] Chi ben incomincia...
Ciao, sto diventando pazzo... non riesco assolutamente a capire dove stia l'inghippo nel codice qui sotto riportato. Stavo cercando di debuggare una mia classe (poi sistemata), entro via ipython in una funzione con pdb attivo:: ipdb> l 576 query = query.order_by(self.order_by) 577 578 query = self.filter_panel.add_filter_conditions(query) 579 580 if self.limit: --> 581 query = query.limit(self.limit) 582 583 if self.is_mask(): 584 self.current = None 585 self.clear(check=False) 586 self.records = query.all() ipdb> self ipdb> self.query ipdb> query is None True ipdb> qq = self.query ipdb> qq ipdb> query = self.query ipdb> query ipdb> query is None True ipdb> self.query is None False Non riesco ad assegnare a query il valore self.query, in ogni modo query resta None, se invece che 'query' scelgo un nome di variabile qualunque es. : 'qq', tutto funziona regolarmente... Il problema per il quale avevo cominciato a debuggare dipendeva dal fatto che self.filter_panel.add_filter_conditions(query) non ritornava nulla Questo spiega il problema originario ma non il comportamento sopra riportato... Avete idee? mi sfugge qualcosa di come funziona ipython/pdb? buon anno sandro *:-) La funziona all'interno della quale sta questo codice è qui: http://pastebin.com/m5374c919 -- Sandro Dentella *:-) http://sqlkit.argolinux.orgSQLkit home page - PyGTK/python/sqlalchemy ___ Python mailing list Python@lists.python.it http://lists.python.it/mailman/listinfo/python
Re: [Python] Chi ben incomincia...
> Il problema per il quale avevo cominciato a debuggare dipendeva dal fatto > che self.filter_panel.add_filter_conditions(query) non ritornava nulla > Questo spiega il problema originario ma non il comportamento sopra > riportato... il problema può essere visto in questo codice minimale: def test(): query = None zz test() eseguendo questo codice in ipython:: $ ipython /tmp/aa.py --- Traceback (most recent call last) /tmp/aa.py in () 5 6 > 7 test() 8 9 /tmp/aa.py in test() 2 3 query = None > 4 zz 5 6 : global name 'zz' is not defined WARNING: Failure executing file: In [1]: debug > /tmp/aa.py(4)test() 3 query = None > 4 zz 5 ipdb> query = 1 ipdb> query ipdb> query is None True ??? *:-) -- Sandro Dentella *:-) http://sqlkit.argolinux.orgSQLkit home page - PyGTK/python/sqlalchemy ___ Python mailing list Python@lists.python.it http://lists.python.it/mailman/listinfo/python
Re: [Python] Chi ben incomincia...
On Thu, Jan 01, 2009 at 08:54:28PM +0100, Daniele Varrazzo wrote: > On Thu, 1 Jan 2009 11:34:44 +0100, Alessandro Dentella > wrote: > > > Non riesco ad assegnare a query il valore self.query, in ogni modo query > > resta None, se invece che 'query' scelgo un nome di variabile qualunque > > Hai notato questo thread? > > http://mail.python.org/pipermail/python-list/2004-September/282611.html > > è abbastanza "citato", ma non ho verificato se è esattamente il tuo > problema. Grazie, ad occhio mi pare di si, ma è tardi e domani lo capirò meglio! sandro *:-) -- Sandro Dentella *:-) http://sqlkit.argolinux.orgSQLkit home page - PyGTK/python/sqlalchemy ___ Python mailing list Python@lists.python.it http://lists.python.it/mailman/listinfo/python
[Python] class-based gettext
Ciao, sto guardando per la prima volta gettext. Leggendo la documentazione del modulo ho seguito il suggerimento di usare la versione class-based ("It is the recommended way of localizing your Python applications and modules"), princialmente perché contempla un fallback (altra mail...). Ho aggiunto la localizzazione senza grandi problemi al mio modulo... tutto bene finché ho cambiato la variabile LANG. Quindi sono tornato all'esempio... Il codice della documentazione che riporto nel mio esempio è:: san...@bluff:/tmp$ cat test.py import gettext t = gettext.translation('example', 'locale') _ = t.lgettext print _('Hello World') eseguo (senza cartella locale e senza file .po/.mo):: san...@bluff:/tmp$ LANG='it_IT' python test.py Hello World san...@bluff:/tmp$ LANG='fr_FR' python test.py Traceback (most recent call last): File "test.py", line 2, in t = gettext.translation('example', 'locale') File "/usr/lib/python2.5/gettext.py", line 484, in translation raise IOError(ENOENT, 'No translation file found for domain', domain) IOError: [Errno 2] No translation file found for domain: 'example' La versione con 'bindtextdomain' invece funziona anche cambiando LANG. Cosa sbaglio? La traduzione non c'è neanche per it_IT... suggerimenti? sandro *:-) -- Sandro Dentella *:-) http://sqlkit.argolinux.orgSQLkit home page - PyGTK/python/sqlalchemy ___ Python mailing list Python@lists.python.it http://lists.python.it/mailman/listinfo/python
Re: [Python] class-based gettext
On Fri, Jan 09, 2009 at 12:24:02AM +0100, Pietro Battiston wrote: > Il giorno gio, 08/01/2009 alle 23.38 +0100, Alessandro Dentella ha > scritto: > > eseguo (senza cartella locale e senza file .po/.mo):: > > > > san...@bluff:/tmp$ LANG='it_IT' python test.py > > Hello World > > > > san...@bluff:/tmp$ LANG='fr_FR' python test.py > > Traceback (most recent call last): > >File "test.py", line 2, in > > t = gettext.translation('example', 'locale') > >File "/usr/lib/python2.5/gettext.py", line 484, in translation > > raise IOError(ENOENT, 'No translation file found for domain', domain) > > IOError: [Errno 2] No translation file found for domain: 'example' > > > > > > La versione con 'bindtextdomain' invece funziona anche cambiando LANG. > > > > Cosa sbaglio? > > La traduzione non c'è neanche per it_IT... > > > > suggerimenti? > > > > Se la traduzione non c'è, le stringhe vengono mostrate in inglese, ma se in realtà viene mostrato il msgid, che non è necessariamente in inglese né un fallback > la locale non è proprio configurata la libreria locale di python si > arrabbia (penso che questo succederà con qualsiasi programma python, > mentre un programma C userebbe "the fallback 'C' locale."). Non è così. Se uso l'esempio con bindtextdomain: import gettext gettext.bindtextdomain('myapplication', 'locale') gettext.textdomain('myapplication') _ = gettext.gettext # ... print _('This is a translatable string.') tutto funziona (mi ritorna il msgid) anche se manca il locale. La prima versione, quella con class-based gettext non mi funziona ad esempio in un XP fresco di instalazione tutto in italiano: lì non è impostata la variabile LANG. > "locale -a" ti dà la lista delle locale configurate nel sistema, ovvero > che puoi utilizzare (a prescindere dall'avere o meno le stringhe di un > dato programma); per installarne altre i pacchetti debian sono della > forma language-pack-xy-base, es. language-pack-fr-base ma io sto scrivendo un modulo che può essere usato nei più diversi sistemi, non posso adottare una soluzione che appena uno ha un locale sballato mi da errore... doctest --- Possibile che la soluzione *preferita* dalla documentazione sia di fatto la più delicata? in particolare usando i doctest ottengo sempre l'errore sopra riportato se uso la versione class-based, anche se impongo un LANG supportato dal mio sistema (>>> os.environ['LANG'] = 'en_US.utf8') babel -- L'ultimo capitolo di questa battaglia per la localizzazione è babel. Lo uso per la localizzazione di numeri e date e va egregiamente ma nuovamente vuole assolutamente che sia impostato un locale e non passa ad un default 'c'. Anzi usando LANG=C da errore dicendo che non è riconosciuto. Potrei bypassare il problema testando la variabile prima ed impostandola ad un default ragionevole (en_US) ma mi accorgo che i sistemi windows (almeno il mio XP virtuale) non usa queste variabili... come faccio a capire che localizzazione è in uso? sandro *:-) PS: la mailing list di babel sembra una stanza anaecoica... -- Sandro Dentella *:-) http://sqlkit.argolinux.orgSQLkit home page - PyGTK/python/sqlalchemy ___ Python mailing list Python@lists.python.it http://lists.python.it/mailman/listinfo/python
[Python] intercettare gli errori di una aplicazione
Ciao, credo di fare una domanda semplice, ma in questo momento non mi viene in mente la soluzione... Voglio intercettare qualunque errore generato dalla applicazione che sto facendo per poi inviarmi per mail la stack trace (e non chiedere al mio cliente di inviarmela). L'applicazione è in PyGtk, credevo ingenuamente che bastasse fare girare gtk.main() in un try/except come segue ma non serve a nulla. Che devo fare? Immagino sia una necessità abbastanza comune ed immagino ci siano soluzioni ma non ho saputo farle venire fuori da google... sandro *:-) #!/usr/bin/python import gtk class Test(object): def __init__(self): w = gtk.Window() b = gtk.Button("Press for an error") w.add(b) w.show_all() b.connect('clicked', self.on_clicked_error) def on_clicked_error(self, widget): print a t = Test() try: gtk.main() except Exception, e: print "ERROR", e -- Sandro Dentella *:-) http://sqlkit.argolinux.orgSQLkit home page - PyGTK/python/sqlalchemy ___ Python mailing list Python@lists.python.it http://lists.python.it/mailman/listinfo/python
Re: [Python] intercettare gli errori di una aplicazione
On Thu, Jan 29, 2009 at 11:09:59AM +0100, Lawrence Oluyede wrote: > On Thu, Jan 29, 2009 at 10:45 AM, Alessandro Dentella wrote: > > Voglio intercettare qualunque errore generato dalla applicazione che sto > > facendo per poi inviarmi per mail la stack trace (e non chiedere al mio > > cliente di inviarmela). > > Potresti sovrascrivere sys.excepthoook: > http://www.python.org/doc/2.5.4/lib/module-sys.html perfetto! grazie *:-) ___ Python mailing list Python@lists.python.it http://lists.python.it/mailman/listinfo/python
[Python] urllib timeout - prima che ci perda la testa
Ciao, ho una macchina (w2003) su cui non mi funziona urllib, va in timeout. La stessa funziona di test va benissimo su altre macchine e anche sulla stessa macchina con il python di cygwin: import urllib url = 'http://192.168.1.2/rel.txt' def get_url_content(url): fu = urllib.urlopen(url) url_content = fu.read() fu.close() return url_content con il python di cygwin 2.5.2 funziona egregiamente con quello del sito ufficiale (pure 2.5.2) no. Non so veramente dove cercare. Avete indizi? suggerimenti? sandro *:-) -- Sandro Dentella *:-) http://sqlkit.argolinux.orgSQLkit home page - PyGTK/python/sqlalchemy ___ Python mailing list Python@lists.python.it http://lists.python.it/mailman/listinfo/python
Re: [Python] urllib timeout - prima che ci perda la testa
On Mon, Feb 23, 2009 at 07:00:43PM +0100, Alessandro Dentella wrote: > Ciao, > > ho una macchina (w2003) su cui non mi funziona urllib, va in timeout. > La stessa funziona di test va benissimo su altre macchine e anche sulla > stessa macchina con il python di cygwin: > > import urllib > url = 'http://192.168.1.2/rel.txt' > > def get_url_content(url): >fu = urllib.urlopen(url) >url_content = fu.read() >fu.close() >return url_content > > con il python di cygwin 2.5.2 funziona egregiamente con quello del sito > ufficiale (pure 2.5.2) no. > > Non so veramente dove cercare. Avete indizi? suggerimenti? usando httplib direttamente evito il timeout: def get_url(host, file): conn = httplib.HTTPConnection(host) conn.request("GET", file) r = conn.getresponse() data = r.read() conn.close() return data commenti? sandro *:-) ___ Python mailing list Python@lists.python.it http://lists.python.it/mailman/listinfo/python
Re: [Python] urllib timeout - prima che ci perda la testa
On Mon, Feb 23, 2009 at 07:26:59PM +0100, Raffaele Salmaso wrote: > Alessandro Dentella wrote: > > Ciao, > > > > ho una macchina (w2003) su cui non mi funziona urllib, va in timeout. > 1) motivi particolari per usare urllib invece di urllib2? > 2) urllib usa http 1.0, urllib2 usa http 1.1: può cambiare qualcosa? provato anche urllib2 e non funziona. > 3) fortunatamente non uso win indi non mi viene niente altro in mente ;) Se anche io *usassi* windows avrei qualche idea, ed in aggiunta -probabilmente- sarei molto più nervoso... Ovviamente il probelma ora è solo di curiosità, il problme è risolto con httplib... sandro *:-) ___ Python mailing list Python@lists.python.it http://lists.python.it/mailman/listinfo/python
[Python] errori in gobject su proprieta e try/except
Ciao, quest mattina sono incappato in una cosa che non riesco a capire. Un errore sollevato da un metodo che imposta una proprietà di gobject non viene "preso" (intrappolato, come dirlo?) da un try:/except: Come mai? grato a chi sappia illuminarmi... sandro *:-) import gobject class MyError(Exception): pass class Test(gobject.GObject): __gproperties__ = { 'date' : (gobject.TYPE_PYOBJECT, # type 'Date',# nick name 'The date currently selected', # description gobject.PARAM_READWRITE), # flags } def get_date(self): raise MyError("Gulp!") def do_get_property(self, property): if property.name == 'date': return self.get_date() t = Test() try: t.get_property('date') # questo solleva MyError except: # ma questo non lo vede e passa l'eccezione!!! pass ___ Python mailing list Python@lists.python.it http://lists.python.it/mailman/listinfo/python
[Python] *args vs. [1,2,3]
Ciao, ogni tanto scoprio mio malgrado cose elementari che non capisco... ero convinto che nel passare argomenti ad una funzione, usare *list fosse equivalente a passare i singoli componenti (ed analogamente per i dizionari) ma vedo che non è così. def test(*args, **kw): pass a = [1,2,3] test(1,2,3, junk=True )# funziona test(*a, junk=True ) # solleva syntax error Quale dovrebbe essere la corretta sintassi della seconda versione? Devo necessariamente usare qualcosa come: test(*a, **{'junk' :True} ) # funziona Avevo sempre interpretato **kw come: raccogli tutti i keyword args nel dizionario kw, ma se fosse così avrebbe dovuto funzionare anche nella riga sopra (junk=True) chiedo lumi... grazie sandro ___ Python mailing list Python@lists.python.it http://lists.python.it/mailman/listinfo/python
Re: [Python] *args vs. [1,2,3]
On Mon, Mar 16, 2009 at 03:46:47PM +0100, Manlio Perillo wrote: ... > > dizionari) ma vedo che non è così. > > > > def test(*args, **kw): > > pass > > > > a = [1,2,3] > > test(1,2,3, junk=True )# funziona > > test(*a, junk=True ) # solleva syntax error > > > > Stai facendo confusione su cosa faccia f(*a). non mi pare proprio... > E' chiamato scompattamento della lista di argomenti: > http://docs.python.org/tutorial/controlflow.html#tut-unpacking-arguments > > def f(a, b, c): > print a, b, c > > a = [1, 2, 3] > f(*a) ed è ben così che l'ho usata anche nell'esempio On Mon, Mar 16, 2009 at 04:05:51PM +0100, Daniele Varrazzo wrote: > test(junk=True, *a) funziona come ti aspetti questo lo avevo notato, ma il mio cervello lo ha filtrato, avendo presente che > è vero che gli argomenti posizionali vanno dopo quelli nominali (quindi > "test(foo=10, 1)" è un errore), già.. > ma gli argomenti * e ** vanno comunque alla fine. ecco la parte che mi mancava! Leggendo la documentazione che mi hai indicato:: consequence of this is that although the *expression syntax may appear after some keyword arguments, it is processed before the keyword arguments dice solo *may appear*, non *must appear*, bisogna leggere con attenzione la grammatica per cogliere quello mi era sfuggito! grazie *:-) ___ Python mailing list Python@lists.python.it http://lists.python.it/mailman/listinfo/python
[Python] Announce: sqlkit 0.8.6-rc2
ANNOUNCE: sqlkit 0.8.6-rc2 March, 25 - 2009 I'm happy to announce release 0.8.6-rc21 of sqlkit package for python. http://sqlkit.argolinux.org/ This release Many things have been added: signals, hooks for validation, improved filters for related tables, many new demo snippets and many bug fixes are among the most important ones. Refer to http://sqlkit.argolinux.org/download/Changelog for details The package --- SQLkit PyGtk package provides Mask and Table widgets to edit database data. It's meant as a base for database desktop applications. The application --- It also provides 'sqledit' a PyGTK application based on sqlkit that can be used from command line to browse and edit data. The package has 2 very rich demo suites for sql widgets (the main one in sqlkit/demo/sql/demo.py) and for layout creation Main features of sqlkit: * editor of databases in 2 modes: table & mask * based on sqlalchemy: can cope with many different databases * very powerfull filtering capabilities: - each field can be used to filter records - filter may span relationship - date filtering possible also on relative basis (good for saved queries) * completion on all text field and foreign keys * very easy way to draw a layout for mask views * completely effortless editing of relationships * very easy way to set defaults * possibility to display totals of numeric fields * any possible sql constraint can be attached to a Mask or a Table. It can be expressed a s a normal sqlalchemy query or with django-like syntax * sqledit: python script to edit db Sqlkit is based on: --- * python (>= 2.4) * PyGtk * Sqlalchemy (>= 0.5) * glade * dateutils * babel (localization) Dowload & more: --- * http://sqlkit.argolinux.org/sqlkit/download.html * hg clone http://hg.argolinux.org/py/sqlkit * google group: http://groups.google.it/group/sqlkit/ * License: GNU GPL -- Sandro Dentella *:-) http://sqlkit.argolinux.orgSQLkit home page - PyGTK/python/sqlalchemy ___ Python mailing list Python@lists.python.it http://lists.python.it/mailman/listinfo/python
[Python] programma Pycon?
Mi pare che il programma dovesse essere pubblicato da circa una settimana, ci sono nuove? sandro *:-) ___ Python mailing list Python@lists.python.it http://lists.python.it/mailman/listinfo/python
Re: [Python] Gestionale fatto in casa
On Tue, Apr 14, 2009 at 05:58:53PM +0200, Diego Barrera wrote: > Salve a tutti, > mi sto avventurando nella stesura di un piccolo gestionale per la mia ditta. > L'unica sicurezza che ho è quella di scrivere il mio progetto in python. > Il gestionale mi dovrà gestire fondamentalmente il magazzino, le > spedizioni, i clienti e i fornitori; dovrà generare varie stampe.. > niente di speciale. > Gli articoli penso saranno al massimo circa 100.000, le spedizioni > annuali altrettante. ti hanno già fatto notare che può essere un progetto impegnativo e quindi può valere la pena di guardare cosa c'è già. Esiste una gestionale in python chiamato promogest2 parzialmente aperto, ma io non sono riuscito a testarlo e loro non hanno risposto alle mie richieste di chiarimenti. Peraltro è chiaramente attivo ed in continuo sviluppo > Il gestionale sarà utilizzato da macchine linux e win con DB server linux. > Sono indeciso sul DBMS: mysql o postgres , quale ha la migliore > integrazione con python? > Sono indeciso anche sull'interfaccia utente: ncurses o gui (pyqt, wxpython)? escluderei nella maniera più categorica ncurses, sicuramente nel giro di poco tempo ti renderesti conti che ti serve una interfaccia più ricca che con nsurses ti costerebbe troppo fare. > Poichè devo iniziare con entrambi da zero, mi interessa il piu' rapido > da apprendere e sviluppare. Io per fare alcuni gestionali ho sviluppato sqlkit [1], un piccolo framework basato su PyGTK e sqlalchemy che ti offre la possibilità di creare interfacce per editing dei dati in modo estremamente veloce. Le caratteristiche principali sono: la possibilità di creare maschere per l'inserimento di dati anche con relazioni m2m/m2o (testata fatture/righe), il completamento automatico per le FKey, i filtri su ogni tabella, anche sulle tabelle collegate da relazioni m2m, gli 'hooks' per la validatione dei dati, la facilità di aggiungere constraints. Puoi fare un giro sul sito per capire di cosa parlo e scaricare e testare la ricca demo: oltre 50 esempi da poche righe ciascuno. Purtroppo dipende da un certo numero di pacchetti esterni: leggi attentamente le dipendenze. sandro *:-) [1] sqlkit.argolinux.org -- Sandro Dentella *:-) http://sqlkit.argolinux.orgSQLkit home page - PyGTK/python/sqlalchemy ___ Python mailing list Python@lists.python.it http://lists.python.it/mailman/listinfo/python
Re: [Python] Gestionale fatto in casa
> > Con ncurses potrei usare ssh da remoto? > > > > Ma anche con QT e ssh -X... dopo tutto e' uno unix penso che però le prestazioni sarebbero molto migliori facendo passare solo i dati... ovvero, GUI in locale e db remoto, se puoi connetterti da una macchina dove hai diritto di installare il tuo programma. sandro *:-) ___ Python mailing list Python@lists.python.it http://lists.python.it/mailman/listinfo/python
Re: [Python] Modificare una email
On Thu, May 14, 2009 at 11:01:22AM +0200, Oberdan Albertoni wrote: > Salve, > dovrei fare un programma che legge una email ed in base al soggetto deve > rimandare la stessa email ad altri indirizzi. se non devi modificare la mail (come il soggetto innvece suggerisce), non vincolato al python e magari sei su un sistema linux, questo tipo di problemi si risolve con procmail o simili programmi con qualche riga di cofigurazione. Dalla manpage di procmail: Forward all mail from peter about compilers to william (and keep a copy of it here in petcompil). :0 * ^From.*peter * ^Subject:.*compilers { :0 c ! will...@somewhere.edu :0 petcompil } sandro *:-) ___ Python mailing list Python@lists.python.it http://lists.python.it/mailman/listinfo/python
[Python] trovare l' encoding di un file
Ciao, come faccio a trovare l'encoding di un file che sto eseguendo? Il file comincia con:: # coding: utf-8' dentro quel file è definita una stringa che devo passare come description a optparse.OptionParser(opt, description=...). Posso in questo caso usare:: unicode(..., encoding='utf-8'), ma vorrei fare una procedure lievemente più generica prendendo l'encoding dal file stesso. E` possibile? sandro *:-) PS: se importo pango, tutto funziona correttamente, anche senza forzare l'encoding. -- Sandro Dentella *:-) http://sqlkit.argolinux.orgSQLkit home page - PyGTK/python/sqlalchemy #!/usr/bin/python # coding: utf-8 """ Questo è un esempio di ciò che voglio """ #import pango import optparse p = optparse.OptionParser('', description=__doc__) p.print_help() ___ Python mailing list Python@lists.python.it http://lists.python.it/mailman/listinfo/python
Re: [Python] trovare l' encoding di un file
On Wed, Jun 10, 2009 at 11:50:10AM +0200, Daniele Varrazzo wrote: > On Wed, 10 Jun 2009 11:28:53 +0200, Alessandro Dentella > wrote: > > Ciao, > > > > come faccio a trovare l'encoding di un file che sto eseguendo? Il file > > comincia con:: > > > > # coding: utf-8' > > > > dentro quel file è definita una stringa che devo passare come > > description > > a optparse.OptionParser(opt, description=...). Posso in questo caso > > usare:: > > > > unicode(..., encoding='utf-8'), ma vorrei fare una procedure > lievemente > > > > più generica prendendo l'encoding dal file stesso. E` possibile? > > Spero di aver capito bene la faccenda, non se sono sicuro. > > Io credo che l'encoding del file serva solo a definire in che encoding sono > codificate le costanti unicode nei sorgenti. Perché usi esplicitamente il > costruttore unicode? Secondo me basta: > > desc=u"àè€" > optparse.OptionParser(opt, description=desc) > Effettivamente così funziona l'esempio, purtroppo nel caso reale mi solleva altri problemi (che sembrano completamente scorrelati), per cui quando avevo fatto la prova, vedendo l'errore avevo cortocircuitato il cervello. Fra poco indago meglio cosa mi sta dicendo l'errore. grazie sandro *:-) ___ Python mailing list Python@lists.python.it http://lists.python.it/mailman/listinfo/python
Re: [Python] trovare l' encoding di un file
> Effettivamente così funziona l'esempio, purtroppo nel caso reale mi solleva > altri problemi (che sembrano completamente scorrelati), per cui quando avevo > fatto la prova, vedendo l'errore avevo cortocircuitato il cervello. Fra > poco indago meglio cosa mi sta dicendo l'errore. trovato. Faccio un passo indietro. Sto aggiungendo la possibilità di scrivere un testo descrittivo alla ricetta di Simionato 'optionparse' [1]. In quella ricetta, le opzioni da passare al parser sono nella docstring, che viene 'parsata' con una regexp. Se la docstring è unicode anche i 'pezzetti' passati a parse.add_options, saranno unicode (alla riga 65): p.add_option(short.strip(),long.strip(), action = action, help = help.strip()) e questo non viene digerito da optparse. Quindi avevo pensato di fare diventare unicode solo le help string e la description, ma in effetti posso semplicemente fare ridiventare 'ascii' le opzioni... vedo che vanno ugualmente bene str() ed .encode('ascii'). sandro *:-) [1] http://code.activestate.com/recipes/278844/ ps: allego la versione finale... -- Sandro Dentella *:-) http://sqlkit.argolinux.orgSQLkit home page - PyGTK/python/sqlalchemy # coding: utf-8 """\ :Author: M. Simionato :Date: April 2004 :Title: A much simplified interface to optparse. You should use optionparse in your scripts as follows. First, write a module level docstring containing something like this (this is just an example): '''usage: %prog files [options] -d, --delete: delete all files -e, --erase = ERASE: erase the given file''' Then write a main program of this kind: # sketch of a script to delete files if __name__=='__main__': import optionparse option,args=optionparse.parse(__doc__) if not args and not option: optionparse.exit() elif option.delete: print "Delete all files" elif option.erase: print "Delete the given file" Notice that ``optionparse`` parses the docstring by looking at the characters ",", ":", "=", "\\n", so be careful in using them. If the docstring is not correctly formatted you will get a SyntaxError or worse, the script will not work as expected. """ import optparse, re, sys USAGE = re.compile(r'\s*(?P.*)\s*\s*usage: (?P.*?)(\n[ \t]*\n|$)', re.DOTALL|re.UNICODE|re.LOCALE) def nonzero(self): # will become the nonzero method of optparse.Values "True if options were given" for v in self.__dict__.itervalues(): if v is not None: return True return False optparse.Values.__nonzero__ = nonzero # dynamically fix optparse.Values class ParsingError(Exception): pass optionstring="" def exit(msg=""): raise SystemExit(msg or optionstring.replace("%prog",sys.argv[0])) def parse(docstring, arglist=None): global optionstring optionstring = docstring match = USAGE.search(optionstring) if not match: raise ParsingError("Cannot find the option string") optlines = match.group('usage').splitlines() try: descr = match.group('descr') p = optparse.OptionParser(optlines[0], description=descr) for line in optlines[1:]: opt, help=line.split(':')[:2] short,long=opt.split(',')[:2] if '=' in opt: action='store' long=long.split('=')[0] else: action='store_true' p.add_option(str(short.strip()),str(long.strip()), action = action, help = help.strip()) except (IndexError,ValueError): raise ParsingError("Cannot parse the option string correctly") return p.parse_args(arglist) ___ Python mailing list Python@lists.python.it http://lists.python.it/mailman/listinfo/python
[Python] problemi con pyinstaller
Dopo la presentazione al pycon, ho voluto are una chace a pyinstaller, con l'obiettivo di creare un eseguibile per il pacchetto sqlkit [1]. Incontro problemi per due probelmi: 1. localizzazione. Un semplice eseguibile come: from babel import numbers print numbers.format_decimal(123.4) da errore anche sulla macchina su cui è generato, potete vedere un log completo nel messaggio inviato alla lista: http://groups.google.it/group/PyInstaller/browse_frm/thread/81185ab5e2af5eef?hl=it che in buona sostanza si riduce a: babel.core.UnknownLocaleError: unknown locale 'it_IT' 2. Linux: Non vengono trovate alcune librerie pur presenti nella cartella dove sta l'eseguibile, la cosa dovrebbe essere imputata al fatto che non viene correttamente impostato LD_LIBRARY_PRELOAD, se capisco giusto. riporto di seguito il log. Avete idee di come risolvere questi probelemi? grazie sandro *:-) [1] http://sqlkit.argolinux.org > PyInstaller does set LD_LIBRARY_PATH to the directory where it's running > from (in one-dir mode). Try printing the contents of that environment > variable at the beginning of the program, before importing GTK. The following example shows what I mean: san...@bluff:/misc/src/svn/pyinstaller-hg$ cat babex/ex2.py import os print "\nLD_LIBRARY_PRELOAD:", os.environ.get('LD_LIBRARY_PRELOAD', None) san...@bluff:/misc/src/svn/pyinstaller-hg$ Makespec.py babex/ex2.py wrote /home/misc/src/svn/pyinstaller-hg/ex2/ex2.spec now run Build.py to build the executable san...@bluff:/misc/src/svn/pyinstaller-hg$ Build.py ex2/ex2.spec checking Analysis building because babex/ex2.py changed running Analysis outAnalysis0.toc Analyzing: ./support/_mountzlib.py Analyzing: ./support/useUnicode.py Analyzing: babex/ex2.py ex2/build/pyi.linux2/ex2/outAnalysis0.toc no change! checking PYZ checking PKG building because babex/ex2.py changed building PKG outPKG3.pkg checking EXE rebuilding outEXE2.toc because pkg is more recent building EXE from outEXE2.toc Appending archive to EXE ex2/build/pyi.linux2/ex2/ex2 checking COLLECT building outCOLLECT4.toc because ex2/build/pyi.linux2/ex2/ex2 is more recent building COLLECT outCOLLECT4.toc san...@bluff:/misc/src/svn/pyinstaller-hg$ ex2/dist/ex2/ex2 LD_LIBRARY_PRELOAD: None ___ Python mailing list Python@lists.python.it http://lists.python.it/mailman/listinfo/python
Re: [Python] problemi con pyinstaller
On Thu, Jun 25, 2009 at 12:47:45PM +0200, Alessandro Dentella wrote: > > Dopo la presentazione al pycon, ho voluto are una chace a pyinstaller, con > l'obiettivo di creare un eseguibile per il pacchetto sqlkit [1]. > > Incontro problemi per due probelmi: > > 1. localizzazione. Un semplice eseguibile come: > >from babel import numbers >print numbers.format_decimal(123.4) > >da errore anche sulla macchina su cui è generato, potete vedere un log >completo nel messaggio inviato alla lista: > > http://groups.google.it/group/PyInstaller/browse_frm/thread/81185ab5e2af5eef?hl=it > > >che in buona sostanza si riduce a: > > babel.core.UnknownLocaleError: unknown locale 'it_IT' > > 2. Linux: Non vengono trovate alcune librerie pur presenti nella cartella > dove sta l'eseguibile, la cosa dovrebbe essere imputata al fatto che non > viene correttamente impostato LD_LIBRARY_PRELOAD, se capisco giusto. > > riporto di seguito il log. > > Avete idee di come risolvere questi problemi? Il fatto che questa lista - sempre molto collaborativa e reattiva- non risponda a questi quesiti su pyinstaller è segno che pyinstaller è poco usato o che pyintaller non è usato sotto Linux o non è usato neanche in Windows ma con la localizzazione? Qualcuno sa dirmi se py2exe è per caso più indicato per un eseguibile con la localizzazione (non gettext, quello funziona anche con pyinstaller). sandro *:-) ___ Python mailing list Python@lists.python.it http://lists.python.it/mailman/listinfo/python
Re: [Python] problemi con pyinstaller
On Fri, Jun 26, 2009 at 04:32:08PM +0200, Daniele Varrazzo wrote: > On Fri, 26 Jun 2009 16:12:51 +0200, Alessandro Dentella > wrote: > > > Il fatto che questa lista - sempre molto collaborativa e reattiva- non > > risponda a questi quesiti su pyinstaller è segno che pyinstaller è poco > > usato o che pyintaller non è usato sotto Linux o non è usato neanche in > > Windows ma con la localizzazione? > > Io non l'ho mai usato con la localizzazione. Né ho mai avuto problemi di > librerie non trovate. Quindi non ho niente da dirti se non "boh". Vuoi un > "boh" da ogni iscritto alla ML? certo che no, ma magari sapere che qualcuno non ha avuto problemi mi incoraggia a tentarci, sapere che qualcuno usa con Linux e funziona... mi incoraggia. > N.B.: il tuo problema con il locale non trovato lo debugghi facilmente con > strace. ni... il fatto è che io non voglio mettere ogni locale possibile dentro li... questo, fatto con gettext funziona, ottengo un messaggio localizzato. Ma io immagino che ogni persona abbia un setup con la sua localizzazione funzionante e quindi troverei giusto che la localizzazione venga cercata fuori dall'ambiente che uno crea con pyinstaller. > Il tuo problema è specifico di PyInstaller: credo sia quella la ML da > pingare per avere risposte. vero ma in questo momento Giovanni è occupato ed ho pensato che poteva esserci esperienza specifica anche qui. In particolare mi ha spiazzato il fatto che ciascuno dei due test che mi danno problemi sono di due righe. Confesso che mi sono anche chiesto se magari qualcuno mi avrebbe suggerito soluzioni alternative funzionanti, cosa che nela mailing list non sarebbero state... opportune. Mi accorgo ad esempio che il codice generato per linux non imposta LD_LIBRARY_PRELOAD, il che significa che non c'è proprio modo che funzioni per nessuno su Linux... possibile che nessuno abbia avuto lo stesso problema?... almeno nella versione --onedir sandro *:-) ___ Python mailing list Python@lists.python.it http://lists.python.it/mailman/listinfo/python
Re: [Python] problemi con pyinstaller
> > Mi accorgo ad esempio che il codice generato per linux non imposta > > LD_LIBRARY_PRELOAD, il che significa che non c'è proprio modo che > funzioni > > per nessuno su Linux... possibile che nessuno abbia avuto lo stesso > > problema?... almeno nella versione --onedir > > Ha sempre e solo funzionato con LD_LIBRARY_PATH. Non so a che serva > LD_LIBRARY_PRELOAD (che ha 235 hit in tutto su google) ma a me non è mai > stato necessario per far funzionare né PyInstaller né Linux. ops, questo è un typo mio, ma solo nel produrre l'esempio per la mailing list. Nell'eseguibile prodotto da pyinstaller io trovo LD_LIBRARY_PATH vuoto: san...@bluff:/misc/src/svn/pyinstaller-hg$ cat ex2/ex2.py import os print 'LD_LIBRARY_PATH', os.environ.get('LD_LIBRARY_PATH', None) san...@bluff:/misc/src/svn/pyinstaller-hg$ Makespec.py ex2/ex2.py wrote /home/misc/src/svn/pyinstaller-hg/ex2/ex2.spec now run Build.py to build the executable san...@bluff:/misc/src/svn/pyinstaller-hg$ Build.py ex2/ex2.spec checking Analysis building because ex2/ex2.py changed running Analysis outAnalysis0.toc Analyzing: ./support/_mountzlib.py Analyzing: ./support/useUnicode.py Analyzing: ex2/ex2.py ex2/build/pyi.linux2/ex2/outAnalysis0.toc no change! checking PYZ checking PKG checking EXE checking COLLECT san...@bluff:/misc/src/svn/pyinstaller-hg$ ./ex2/dist/ex2/ex2 LD_LIBRARY_PATH None Sbaglio forse a supporre che quella variabile dovrebbe essere valorizzata almeno alla cartella da dove parte? Tu hai un risultato differente? sandro *:-) ___ Python mailing list Python@lists.python.it http://lists.python.it/mailman/listinfo/python
[Python] ANNOUNCE - Sqlkit 0.8.6
ANNOUNCE: sqlkit 0.8.6 September, 12 - 2009 I'm happy to announce release 0.8.6 of sqlkit package for python. http://sqlkit.argolinux.org/ This release This is the first stable release. It features a new interface for the standalone command (sqledit), many improvements and functions added. We have used pyinstaller to create standalone executable for Linux and Mac, you can download them to use the application and to run the demo. It's now registered in pypi so you can 'easy_install' it, if you already installed pygtk. I'm currently looking for a debian sponsor to upload the package in sqeeze. A new tutorial is available here: http://sqlkit.argolinux.org/sqlkit/tutorial.html Refer to http://sqlkit.argolinux.org/download/Changelog for details The package --- SQLkit PyGtk package provides Mask and Table widgets to edit database data. It's meant as a base for database desktop applications. The application --- It also provides 'sqledit' a PyGTK application based on sqlkit that can be used from command line to browse and edit data. The package has 2 very rich demo suites for sql widgets (the main one in sqlkit/demo/sql/demo.py) and for layout creation Translations If you like sqlkit and want to help translating, you may find the project on: https://launchpad.net/sqlkit Main features of sqlkit: * editor of databases in 2 modes: table & mask * based on sqlalchemy: can cope with many different databases * very powerfull filtering capabilities: - each field can be used to filter records - filter may span relationship - date filtering possible also on relative basis (good for saved queries) * completion on all text field and foreign keys * very easy way to draw a layout for mask views * completely effortless editing of relationships * very easy way to set defaults * possibility to display totals of numeric fields * any possible sql constraint can be attached to a Mask or a Table. It can be expressed a s a normal sqlalchemy query or with django-like syntax * sqledit: python script to edit db Sqlkit is based on: --- * python (>= 2.4 - but developed on 2.5) * PyGtk * Sqlalchemy (>= 0.5) * glade * python-dateutil * babel (localization) * you db driver of choice Dowload & more: --- * Download: http://sqlkit.argolinux.org/sqlkit/download.html easy_install sqlkit * Source: hg clone http://hg.argolinux.org/py/sqlkit * Google Group: http://groups.google.it/group/sqlkit/ * Translation: https://launchpad.net/sqlkit * Tutorial: http://sqlkit.argolinux.org/sqlkit/tutorial.html * Changelog:http://sqlkit.argolinux.org/download/Changelog * License: GNU GPL -- Sandro Dentella *:-) http://sqlkit.argolinux.orgSQLkit home page - PyGTK/python/sqlalchemy ___ Python mailing list Python@lists.python.it http://lists.python.it/mailman/listinfo/python
Re: [Python] Dov'è che Python cerca i programmi da eseguire?
On Thu, Oct 08, 2009 at 06:34:35PM +0200, Aldes Rossi wrote: > Non riesco a capire dove python cerchi i file da eseguire. Stai confondendo i path per "i file da eseguire" ed i path dei moduli. Il sys.path ti dice le cartelle dove python cerca i moduli quando usi 'impoort', a seguito di:: import pdb python cerca il modulo nel sys.path. Quello a cui tu invece stai pensandro è un meccanismo simile al $PATH di un sistema unix che invece non mi pare presente in python. Nota che neanche PYTHONPATH fa quello che cerchi, PYTHONPATH aggiunge solo dei path (sempre per import) al sys.path. sandro *:-) -- Sandro Dentella *:-) http://sqlkit.argolinux.orgSQLkit home page - PyGTK/python/sqlalchemy ___ Python mailing list Python@lists.python.it http://lists.python.it/mailman/listinfo/python
Re: [Python] Documentare Python
On Wed, Oct 14, 2009 at 12:38:22PM +0200, Antonello Mangone wrote: > Ciao a tutti, posto una richiesta che spero non sia considerata troppo > particolare. > Non so se fattibile, ma vorrei documentare Python in modo da produrre dei > documenti HTML in stile API di Java, PHP ecc ... o altrimenti in altri > formati, > ma comunque qualcosa di statico che pu essere ovviamente aggiornato in > maniera > rapida, partendo dai commenti che vengono inseriti all'interno delle classi > Python e delle funzioni o metodi. > I commenti di cui parlo sono quelli che iniziano e finiscono con """ e """, > che > vengono utilizzati da IDE evoluti per fornire documentazione di classi e > funzioni durante il loro uso. > Un grosso grazie a chiunque riesca a fornirmi una dritta ... anche solo > documentazione Ti suggerisco di guardare sphinx, il sistema concui viene prodotta la documentazione di python stesso su www.python.oro, di django e di tanti altri (fra cui [1] :-). Oltre a permettere di scrivere la documentazione in formato rst aggiunge molte direttive molto comode oltre a cose come 'automodule' che legge la docstring del modulo, 'autoclass' che legge la docstring della classe e a piacimento produce la documentazione per i vari metodi: http://sphinx.pocoo.org/ sandro *:-) -- Sandro Dentella *:-) [1] http://sqlkit.argolinux.org SQLkit home page - PyGTK/python/sqlalchemy ___ Python mailing list Python@lists.python.it http://lists.python.it/mailman/listinfo/python
Re: [Python] Documentare Python
On Wed, Oct 14, 2009 at 01:02:50PM +0200, Daniele Varrazzo wrote: > Sfortunatamente il progetto non è più tanto attivo: mi sembra che ora il > più attivo tra i progetti simili sia Sphinx (http://sphinx.pocoo.org/) che > è il sistema con cui viene creata la documentazione ufficiale del Python. > Non so che vantaggi abbia rispetto ad altri sistemi... ma se è riuscito a > mandare in pensione il sistema di documentazione precedente basato su > LaTeX, qualcosa di buono deve averlo! :) non ho mai usato epidoc, quindi non faccio un confronto. I punti di forza di sphinx per guadagnarsi me come appassioneto utente sono stati: * che è basato sul formato ReST che a me piace molto, trovo elegante, chiaro ed estremamente semplice * che permette con poco di ottenere una grafca accattivante * che aggiunge a ReSt alcune direttive che permettono di connettere pagine differenti con sintassi molto semplice * che permette di produrre documentazione pdf di ottima qualità usando LaTeX Davvero scrivere documentazione è diventata una esperienza semplice e di grande soddisfazione. sandro *:-) -- Sandro Dentella *:-) http://sqlkit.argolinux.orgSQLkit home page - PyGTK/python/sqlalchemy ___ Python mailing list Python@lists.python.it http://lists.python.it/mailman/listinfo/python
Re: [Python] Salve a tutti
On Mon, Nov 02, 2009 at 09:57:45AM +0100, Federico Sanna wrote: > >Ma perche' non usare come base OpenERP? > >Quale e' il senso di reinventare la ruota... ;) > > Perchè lo trovo molto dispersivo per i miei clienti, non si adatta > completamente alle loro esigenze. Ti faccio un esempio sotto windows ho > creato un software per gestire dei contratti, le riba, le ritenute, > possibilità di creare da preventivo le fatture, gestire i pagamenti, etc > (altre cose particolari che sono più tecniche e per motivi di tempo non sto > qui a spiegare). Per esperienza ho capito che preferiscono sempre le > soluzioni desktop che web browser. Anche io sinceramente le preferisco per > una serie di motivi, ma credo che sia a gusti. Vorrei suggerirti di dare una occhiata a sqlkit [1], è nato esattamente per questo tipo di esigenze, si basa su sqlalchemy e pygtk ed è ovviamente multipiattaforma. Ti suggerisco di dare una occhiata alla ricca demo che puoi anche saricarti in un unico boundle fatto con pyinstaller, ma anche dal sito dovresti capire che tipo di vantaggi ti da. Sqlkit ti offre dei macrowidget molto personalizzabili per l'editing a tabella o a maschera (o ogni mix di questi) di ogni selectable di sqlalchemy esprimibie con un mapper. Offre potenti funzionaliltà come completamento, filtri, constraint, validazione e stampa di report (non ancora nella versione rilasciata) tramite oootemplate [2] che è un sistema di stampa che usa template generati con openoffice. sandro [1] http://sqlkit.argolinux.org [2] http://oootemplate.argolinux.org ___ Python mailing list Python@lists.python.it http://lists.python.it/mailman/listinfo/python
Re: [Python] Compilazione .exe
On Tue, Nov 17, 2009 at 11:19:26AM +0100, Federico wrote: > Il giorno mar, 17/11/2009 alle 10.42 +0100, Massimiliano Pippi ha > scritto: > > 2009/11/17 Federico : > > > Salve a tutti, sono nuovo di questa lista e di python, non riesco a > > > capire come posso compilare un programma in .exe per farlo girare sotto > > > windows. > > http://www.pyinstaller.org/ > > > > > E' possibile nascondere anche il codice sorgente una volta > > > compilato?? > > > > > E' un discorso un po' lungo, fondamentalmente dipende dalla tua > > definizione di "nascondere". > > In linea di massima ti risponderei: sì, un pochino... > > > > > > Grazie mille, Quindi in fatto di sicurezza del codice python non offre > tantissimo? un codice non offuscato è meno "sicuro"? forse intendi "in fatto di protezione della segretezza del codice"... sandro *:-) -- Sandro Dentella *:-) http://sqlkit.argolinux.orgSQLkit home page - PyGTK/python/sqlalchemy ___ Python mailing list Python@lists.python.it http://lists.python.it/mailman/listinfo/python
Re: [Python] Problemi un con la "è" su Eric4 Edi tor
On Tue, Nov 17, 2009 at 06:29:55PM +0100, Federico wrote: > Salve a tutti io ho alcuni problemi con l'editor Eric4, in pratica > quando vado a provare lo script mi restituisce un errore soltanto se c'è > un "è" con l'accento. E` bouna norma dire quale errore viene sollevato. In ogni caso visto il contesto è probabile che tu abbia omesso di dichiarare l'encoding del file. Probabilmente utf-8. Prova ad aggiungere come prima riga: # coding: utf-8 anche se, se quello è l'errore, il messaggio da già il riferimento alla soluzione: san...@bluff:/tmp$ cat a.py print 'è' san...@bluff:/tmp$ python a.py File "a.py", line 1 SyntaxError: Non-ASCII character '\xc3' in file a.py on line 1, but no encoding declared; see http://www.python.org/peps/pep-0263.html for details Se non è questo ed è invece un errore di Eric4 io non l'ho mai usato e mi ritiro in disparte... sandro *:-) -- Sandro Dentella *:-) http://sqlkit.argolinux.orgSQLkit home page - PyGTK/python/sqlalchemy ___ Python mailing list Python@lists.python.it http://lists.python.it/mailman/listinfo/python
Re: [Python] Problemi un con la "è" su Eric4 Edi tor
On Wed, Nov 18, 2009 at 08:12:18AM +0100, wipedisk wrote: > Il giorno Tue, 17 Nov 2009 22:03:19 +0100 > Marco Beri ha scritto: > > > Personalmente in tutti i miei file in cima metto sempre: > > > > # -*- coding: utf-8 -*- > > > > E cosi` dormo sonni (quasi) tranquilli. > > > > Ciao. > > Marco. > > quindi questa soluzione sarebbe valida per qualsiasi programma scritto > in Python? No. 1. La codifica dichiarata deve corrispondere alla codifica realmente utilizzata il codice:: # coding: utf-8 print u'è' encodato latin1, produce questo errore: san...@bluff:/tmp$ python latin.py UnicodeDecodeError: 'utf8' codec can't decode byte 0xe8 in position 0: unexpected end of data la stessa lettera 'è' scritta in utf-8 ed in latin1 appare così:: san...@bluff:/tmp$ od -bc e-utf8.py 000 303 250 303 250 003 san...@bluff:/tmp$ od -bc e-latin1.py 000 350 350 002 2. la codifica dichiarata è limitata... al codice cui si riferisce, non a ciò che viene da file, template, database, getmessage. Poi ricorda che print u'è' e print 'è' sono cose diverse:: # coding: utf-8 print len('è'), 'è' print len(u'è'), u'è' produce: 2 è 1 è ciò detto il codice scritto sopra eseguito in un terminale gnome (utf-8) produce il codice riportato mentre in emacs mi da un errore di encoding perchè cerca di encodarlo in ascii nel buffer di uscita di emacs (che però è utf-8...) non sono ancora riuscito a capire come configurarlo per evitare l'errore. sandro *:-) -- Sandro Dentella *:-) http://sqlkit.argolinux.orgSQLkit home page - PyGTK/python/sqlalchemy ___ Python mailing list Python@lists.python.it http://lists.python.it/mailman/listinfo/python
Re: [Python] Problemi un con la "è" su Eric4 Edi tor
On Wed, Nov 18, 2009 at 02:10:07PM +0100, Marco Beri wrote: > 2009/11/18 Alessandro Dentella > > > 1. La codifica dichiarata deve corrispondere alla codifica realmente > utilizzata > > il codice:: > > # coding: utf-8 > print u'è' > > encodato latin1, produce questo errore: > > san...@bluff:/tmp$ python latin.py > UnicodeDecodeError: 'utf8' codec can't decode byte 0xe8 in position 0: > unexpected end of data > > > Quello è dovuto al fatto che, tentando di stampare a video prova a fare > l'encoding in ascii. non credo sia così. dice "can't decode". Guarda che quello era un esempio sbagliato apposta. Il file era coificato latin-1 ma avevo mantenuto la scritta coding utf-8. > # coding: utf-8 > print u'è'.encode('ascii', 'ignore') > print u'è'.encode('ascii', 'xmlcharrefreplace') > print u'è'.encode('ascii', 'replace') > > Questo codice dovrebbe non fallire, confermi? non fallisce ma quello che ottengo non può avere un accento... > ciò detto il codice scritto sopra eseguito in un terminale gnome (utf-8) > produce il codice riportato mentre in emacs mi da un errore di encoding > perchè cerca di encodarlo in ascii nel buffer di uscita di emacs (che però > è > utf-8...) non sono ancora riuscito a capire come configurarlo per evitare > l'errore. > > > Mi sono abituato, quando devo fare delle print a video, ad usare una di quelle > print. nota che a me la print a video non da problemi, solo Control-c Contro-c in emacs lo da. La cosa mi urta perché uso molto emacs per prove di questo tipo, anche se mai con lettere accentate. > A parte che, da quando uso pdb di print a video (che prima ritenevo lo > strumento principe del debug) ne faccio molte meno. io ora non uso più pdb... uso ipdb che ti da in pdb tutto quello che ti da ipython: completion, colori... sandro *:-) ___ Python mailing list Python@lists.python.it http://lists.python.it/mailman/listinfo/python
Re: [Python] Differenze di date tra un file e la data attuale
On Thu, Nov 26, 2009 at 12:00:04PM +0100, Zanon Samuele wrote: > ciao a tutti... sto facendo un scriptino di manutenzione in python, > solo che sono arrivato ad un punto che non riesco a risolvere: dovrei > controllare la differenza tra la data attaule del server e la data di > modifica del file... lo script va messo su un server ftp e mi serve > per eliminare i file più vecchi di 48 ore... mi potete dare una mano? > sono riuscito a fare il ciclo che mi recupera l'intero percorso del > file, ma non riescoa fare la differenza. Ovviamente lo fai per esercizio... su un server reale sarebbe più semplice mettere in cron: 0 * * * * root find /your/path -ctime +2 -exec rm {} \; sandro *:-) -- Sandro Dentella *:-) http://sqlkit.argolinux.orgSQLkit home page - PyGTK/python/sqlalchemy ___ Python mailing list Python@lists.python.it http://lists.python.it/mailman/listinfo/python
Re: [Python] Porting medica2 Was: [OT] Cerco posto lavoro stimolante.
On Thu, Jan 14, 2010 at 11:28:26PM +0100, Giorgio Zoppi wrote: > Ripeto se siamo in 4 o 5 e ci organizziamo in un paio di mesi si tira > su qualcosa di decente da presentare a colleghi di mauro, > a costi minori. Ora se non ricordo male il clipper era il successore > del vecchissimo db3 o qualcosa di simile, penso che non > ci sia SQL dentro. Basterebbe una chiaccherata anche via skype in call > conference, per sapere come gestire la roba. > Io il mio sassolino l'ho buttato... Posso suggerire a chi se ne vuole occupare di dare una occhiata alla libreria sqlkit [1] potreste rendervi conto che l'80% del lavoro è già fatto... Sqlkit nasce esattamente per fare gestionali ed ha funzioni avanzate per l'editing in forma scheda o tabella, ricerca, completamento, stampa. Essendo basato su sqlalchemy la definizione del modello dei dati è quella di sqlalchemy. sandro *:-) [1] http://sqlkit.argolinux.orgSQLkit home page - PyGTK/python/sqlalchemy [2] http://oootemplate.argolinux.org sistema di template per la stampa basato su openoffice -- Sandro Dentella *:-) ___ Python mailing list Python@lists.python.it http://lists.python.it/mailman/listinfo/python
Re: [Python] Porting medica2 Was: [OT] Cerco posto lavoro stimolante.
On Fri, Jan 15, 2010 at 11:28:43AM +0100, Massimo Capanni wrote: > sqlkit funziona bene anche su Win? Si. Io programmo in Linux ma i miei clienti lo usano con Windows e Mac. sandro *:-) -- Sandro Dentella *:-) http://sqlkit.argolinux.orgSQLkit home page - PyGTK/python/sqlalchemy ___ Python mailing list Python@lists.python.it http://lists.python.it/mailman/listinfo/python
Re: [Python] Porting medica2 Was: [OT] Cerco posto lavoro stimolante.
On Fri, Jan 15, 2010 at 03:34:03PM +0100, Enrico Franchi wrote: > > On Jan 15, 2010, at 12:40 PM, Alessandro Dentella wrote: > > > Si. Io programmo in Linux ma i miei clienti lo usano con Windows e Mac. > > Hai clienti che tollerano GTK su mac? Si. Immagino che tu ti riferisca al fatto che i menu non sono integrati come le altre applicazioni e per il fatto che il tema non è integrato... non ha avuto nulla da eccepire. "Tollerare" per un software gestionale mi pare un termine un po' esagerato... sandro -- Sandro Dentella *:-) http://sqlkit.argolinux.orgSQLkit home page - PyGTK/python/sqlalchemy ___ Python mailing list Python@lists.python.it http://lists.python.it/mailman/listinfo/python
Re: [Python] Porting medica2 Was: [OT] Cerco posto lavoro stimolante.
On Fri, Jan 15, 2010 at 04:16:07PM +0100, Massimo Di Stefano wrote: > gtk su mac è per me una dannazione :-( > > da utente di osx 10.6 : > > uso felicemente pyqt, > ma gtk su mac è di difficile installazione mi dicono "lunga" più che difficile. Non ho curato personalmente l'installazione. Beh, non che installare le GTK sotto Windows sia una passeggiata piacevole... > almeno chè non si ricorre a darwinports o fink > ... e nemmeno in quel caso è assicurata stabilità A me non sta dando problemi. sandro -- Sandro Dentella *:-) http://sqlkit.argolinux.orgSQLkit home page - PyGTK/python/sqlalchemy ___ Python mailing list Python@lists.python.it http://lists.python.it/mailman/listinfo/python
[Python] Object mapper per LDAP?
Ciao, devo fare una piccola interfaccia web per la gestione di utenti scolastici con sistema di autenticazione in LDAP. Avendo acquisito un po' di esperieza in ORM per database mi chiedo quanto sia utile usare un modello simile per LDAP. Guardando qui [1] ho visto alcuni programmi che promettono queste funzionalità di cui ho guardato in particolare pumpkin [2] e ldap-om [3]. Qualcuno ha suggerimenti utili o esperienze con questi o altri object mapper per ldap? grazie sandro [1] http://stackoverflow.com/questions/1544535/which-ldap-object-mapper-for-python-can-you-recommend [2] http://pumpkin.prymitive.com/index.html [3] http://launchpad.net/pyton-ldap-om -- Sandro Dentella *:-) http://sqlkit.argolinux.orgSQLkit home page - PyGTK/python/sqlalchemy ___ Python mailing list Python@lists.python.it http://lists.python.it/mailman/listinfo/python
Re: [Python] Trovare un'occorrenza in un file e sostituire un valore
On Mon, Jan 25, 2010 at 03:20:32PM +0100, Lorenzo Macchiavelli wrote: > Salve a tutti qualcuno può aiutarmi?? > Dovrei fare un find and replace in py un pò avanzato("" Per ME!!!"") > > del tipo: Quando è presente la stringa di tipo "AB" Devo Sostituire i valori > all'intero tra i " : " e " AB " moltiplicando per 11 > il valore all'interno e sostituire la stringa "AB" CON "RB". > > Il File è formattato in questo modo: > ... > RTS_YAS:10293AB > RTC_YAS:1003AB > RTS_YAS:010003RB > ... > > ESEMPIO: " RTS_YAS:10293AB " diventa "RTS_YAS:113223RB" > > Qualcuno può spiegarmi come fare??? quale ragionamento fareste per risolvere > questo tipo di problema?? usa il modulo 're' ed in particolare guarda re.sub e sappi che il valore da sostituire può essere una funzione che a sua volta riceverà in argomento il match:: """\ RTS_YAS:10293AB RTC_YAS:1003AB RTS_YAS:010003RB """ import re # a scopo didattico mostro sia gruppi con nome che non PATTERN = re.compile('(RTS_YAS:)(?P\d+)AB') def my_sub(m): return "%s%sRB" % (m.group(1), int(m.group('num')) * 11,) for line in __doc__.split(): if PATTERN.match(line): print line, print " ==>", PATTERN.sub(my_sub, line) sandro *:-) -- Sandro Dentella *:-) http://sqlkit.argolinux.orgSQLkit home page - PyGTK/python/sqlalchemy ___ Python mailing list Python@lists.python.it http://lists.python.it/mailman/listinfo/python
[Python] 0 in (False,) // 0 == False
Ciao, (solo) oggi mi sono imbattuto in "0 in (False,)" che ha un comportamento francamente controintuitivo: In [1]: 0 in (False,) Out[1]: True che a sua volta dipende dal fatto che: In [2]: 0 == False Out[2]: True Sono quindi andato a rispulciarmi la language reference:: The operators <, >, ==, >=, <=, and != compare the values of two objects. The objects need not have the same type. If both are numbers, they are converted to a common type. Otherwise, objects of different types always compare unequal, and are ordered consistently but arbitrarily. Objects of different type always compare unequal: In [3]: type(0) Out[3]: In [4]: type(False) Out[4]: 0 e False *sono* tipi differenti ... ah no! In [6]: isinstance(False, int) Out[6]: True In [7]: bool.__mro__ Out[7]: (, , ) Mi viene qui di da chiedermi: ma che bisogno c'è che un booleano erediti da un intero? piace a tutti che "0 == False" sia vero? sandro *:-) -- Sandro Dentella *:-) http://sqlkit.argolinux.orgSQLkit home page - PyGTK/python/sqlalchemy ___ Python mailing list Python@lists.python.it http://lists.python.it/mailman/listinfo/python
Re: [Python] 0 in (False,) // 0 == False
On Thu, Feb 04, 2010 at 11:04:59AM +0100, Enrico Franchi wrote: > > On Feb 4, 2010, at 10:26 AM, Alessandro Dentella wrote: > > > Mi viene qui di da chiedermi: ma che bisogno c'è che un booleano erediti da > > un intero? piace a tutti che "0 == False" sia vero? > > Non e' questione di "ereditare" in questo caso. ??? >>> issubclass(bool, int) True Non sto testando che bool deriva da int? in che senso "non è questione di ereditare" > Non mi da fastidio che un booleano sia il piu' piccolo tipo numerico che porta > informazione. Questa però non mi pare la risposta a "che bisogno c'è". Che non è una domana oziosa, è che immagino che ci *sia* bisogno in un modo che io ora non colgo. La domanda rifrasata sarebbe forse: quali sono le caratteristiche di un booleano che derivano da un intero? Riprendendo la tua risposta: che bisogno c'è che sia il più piccolo tipo *numerico* che porta informazione? sandro -- Sandro Dentella *:-) http://sqlkit.argolinux.orgSQLkit home page - PyGTK/python/sqlalchemy ___ Python mailing list Python@lists.python.it http://lists.python.it/mailman/listinfo/python
Re: [Python] 0 in (False,) // 0 == False
On Thu, Feb 04, 2010 at 01:15:37PM +0100, Daniele Varrazzo wrote: > On Thu, 4 Feb 2010 10:26:40 +0100, Alessandro Dentella > wrote: > > > Mi viene qui di da chiedermi: ma che bisogno c'è che un booleano erediti > > da > > un intero? piace a tutti che "0 == False" sia vero? > > A me piace... e mi piace ancora di più che 1 == True! In questo modo un > modo rapido per sapere quanti True hai in un insieme è sommare i valori > logici tra loro. O fare giochini tipo: > > In [1]: def leggi_lati_triangolo(): >...: return map(int, raw_input().split()) >...: > > In [2]: a, b, c = leggi_lati_triangolo() > 3 4 4 > > In [3]: {0: 'scaleno', 1: 'isoscele', 3: 'equilatero'}[(a == b) + (b == c) > + (a == c)] > Out[3]: 'isoscele' > > In calcolo numerico si usa spesso moltiplicare una matrice numerica per > una matrice di booleani: la semplice moltiplicazione restituisce una > matrice che contiene solo i valori numerici corrispondenti ai "vero" dei > booleani. Perché dovrebbe essere più facile fare queste operazioni in C che > in Python? ;) Questo è avvincente come sostegno all'idea che il booleano si comporti comex un intero. Ne deriva necessariamente che 0 == False? Ovvero: il fatto che *si comporti come un numero* nell operazioni richiede per necessità che == dica che sono uguali? Credo che la prima parte delle parole di guido indichino di no: In an ideal world, bool might be better implemented as a separate integer type that knows how to perform mixed-mode arithmetic sandro *:-) -- Sandro Dentella *:-) http://sqlkit.argolinux.orgSQLkit home page - PyGTK/python/sqlalchemy ___ Python mailing list Python@lists.python.it http://lists.python.it/mailman/listinfo/python
Re: [Python] 0 in (False,) // 0 == False
On Thu, Feb 04, 2010 at 04:42:41PM +0100, Enrico Franchi wrote: > On Feb 4, 2010, at 1:36 PM, Alessandro Dentella wrote: > > > Questo è avvincente come sostegno all'idea che il booleano si comporti comex > > un intero. Ne deriva necessariamente che 0 == False? Ovvero: il fatto che > > *si comporti come un numero* nell operazioni richiede per necessità che == > > dica che sono uguali? > > Pensiamo ai comportamenti... > 1. 0 e False sono inconfrontabili. Arriva un'eccezione, quindi. In questo caso > quindi abbiamo che effettivamente interi e booleani non sono > intercambiabili. > Sarebbero due tipi completamente distinti. Non e' quello che fa Python. > 2. 0==False -> True > 3. 0==False -> False > > Suppongo che sia chiaro che la 3 non porta da nessuna parte. > Avremmo degli assurdi completi, roba controintuitiva. Non sono nemmeno > difficili da inventare. Asserzione gratuita con promessa di dimostrazione. Dimostrazione che non dubito esista, è infatti quella che andavo cercando... sandro PS: Sul resto della tua risposta non commento che mi pare border line con la pura polemica ___ Python mailing list Python@lists.python.it http://lists.python.it/mailman/listinfo/python
Re: [Python] 0 in (False,) // 0 == False
On Fri, Feb 05, 2010 at 09:57:44AM +0100, Lawrence Oluyede wrote: > 2010/2/5 Pietro Battiston : > > A questo punto, la > > domanda è, a parità di duck typing, cosa abbia di comodo 0 == False, e > > l'unica risposta che sono in grado di formulare è "facilità di > > implementazione". > > Non e` quella l'unica risposta, e` molto comodo avere 0, [], {}, () e > altri contenitori equivalenti a False. equivalente, non '==' quello che dici non richidede '[] == False' che solleva TypeError sandro *:-) ___ Python mailing list Python@lists.python.it http://lists.python.it/mailman/listinfo/python
Re: [Python] 0 in (False,) // 0 == False
On Fri, Feb 05, 2010 at 10:03:37AM +0100, Alessandro Dentella wrote: > On Fri, Feb 05, 2010 at 09:57:44AM +0100, Lawrence Oluyede wrote: > > 2010/2/5 Pietro Battiston : > > > A questo punto, la > > > domanda è, a parità di duck typing, cosa abbia di comodo 0 == False, e > > > l'unica risposta che sono in grado di formulare è "facilità di > > > implementazione". > > > > Non e` quella l'unica risposta, e` molto comodo avere 0, [], {}, () e > > altri contenitori equivalenti a False. > > equivalente, non '==' > > quello che dici non richidede '[] == False' che solleva TypeError ops, ovviamente l'osservazioen che volevo scrivere è quella che nel frattempo ha scritto Pietro... *:-) ___ Python mailing list Python@lists.python.it http://lists.python.it/mailman/listinfo/python
Re: [Python] 0 in (False,) // 0 == False
On Fri, Feb 05, 2010 at 05:53:01PM +0100, Daniele Varrazzo wrote: > On Fri, 05 Feb 2010 17:39:46 +0100, Pietro Battiston > wrote: > > > Per carità, dal punto di vista storico è chiaro, e non sto neanche > > facendo una battaglia perché si cambi: vorrei solo che si riconoscesse > > che non c'è nessun motivo assoluto per cui debba essere così. > > Ok, non c'era nessun motivo assoluto per cui dovesse essere così. Su > questo hai ragione. > > Si sarebbe potuto fare: > > bool == int è sempre falso > bool != int è sempre vero > bool <, >, <=, >= int spara un'eccezione > int(True) = 1 > int(False) = 0 > bool op int = int(bool) op int per ogni op aritmetica. > > Se invece i tipi funzionano con la semantica attuale è solo per > convenzione e utilità. Se questa semantica è implementa come subclass è > solo per comodità di implementazione. Grazie per i chiarimenti e l'interessante discussione in particolare a Pietro e Daniele per l'analisi e gli esempi di supporto. Personalemnte mi pare chiaro che la prima citazione di Guido è perfettamente in linea con quanto scritto qui sopra... in attesa che Enrico mantenga la promessa e mostri gli "assurdi completi" che quanto scritto sopra comporterebbe. sandro *:-) ___ Python mailing list Python@lists.python.it http://lists.python.it/mailman/listinfo/python
Re: [Python] Python GUI testing
On Tue, Feb 09, 2010 at 09:45:58AM +0100, Pietro Battiston wrote: > Il giorno lun, 08/02/2010 alle 18.29 +0100, Giorgio Zoppi ha scritto: > > Ciao, > > sto cercando un'applicazione che permetta di simulare il comportamento > > di eventi di una gui (ie. gli mandi le sendkeys di X11). Ho una > > istanza delle gui, Io, senza averli mai usati, mi ero appuntati anche altri due link: testing di gui application http://www.voidspace.org.uk/python/articles/testing/ dogtail http://www.redhat.com/magazine/020jun06/features/dogtail/ sandro *:-) ___ Python mailing list Python@lists.python.it http://lists.python.it/mailman/listinfo/python
Re: [Python] 0 in (False,) // 0 == False
On Thu, Feb 04, 2010 at 06:38:38PM +0100, Enrico Franchi wrote: > > On Feb 4, 2010, at 5:22 PM, Alessandro Dentella wrote: > > > Asserzione gratuita con promessa di dimostrazione. Dimostrazione che non > > dubito esista, è infatti quella che andavo cercando... > > Guarda, è roba di algebra elementare. Se vuoi *veramente* che te la faccia, > te la > faccio pure. Roba da cinque minuti. Per me e per te, basta chiedere. Eravamo interessati in vari già... ma visto l'epilogo, "un buon silenzio val 1000 parole" sarebbe stato miglior consiglio > Se posso evito di tediare il gruppo con svariate righe di banalità > matematiche. Era un ottimo proposito... intendo non tediare il gruppo, invece ci hai rifilato un polpettone di informazioni la cui faziosità era palese dall'inizio (sarebbe offensivo pensare che invece tu non te ne renda conto), ben condito con allusioni all'ignoranza degli interlocutori (l'attacco è la miglior difesa) ed a supposta affinità con bdfl (Guido dice che sarebbe meglio una cosa, tu ritieni che è indispensabile l'opposto). A volte mi dico che sei uno psicologo e che usi il gruppo per studiare chi reagisce, un po' come Galvani con le rane. Chissà se scrivi di noi nei gruppi di psicologia... cordialmente sandro ___ Python mailing list Python@lists.python.it http://lists.python.it/mailman/listinfo/python
Re: [Python] Come fareste voi?
On Fri, Feb 19, 2010 at 03:10:29PM +0100, Stefano Dal Pra wrote: > Grazie a tutti; > > Il TDD e' interessante. > Ho installato nose e ho provato, ma non ho cavato risultati utili > nei 30 secondi che gli ho dedicato. Tornero' alla carica con un > po' di pazienza. > > D'altra parte mi son fatto l'idea che tenere un interprete aperto > per testare porzioncine di codice (anche come palestra di sintassi, se > vogliamo) > sia gia' una rudimentale forma di tdd > e considerato che mi sono appassionato a python anche grazie > a queste possibilita', credo proprio che lo provero'. Non voglio distoglierti dalla raccomandazione che ti han dato in vari di imparare a sviluppare codice basandosi sui test, è una pratica fruttuosa e rapidamente si ripaga dandoti una bella serenità per ogni futura rimanipolazione del tuo codice. Credo però anche che questo non sia contrapposto all'uso di una shell (certo ipython è molto più comoda di python) con cui provare frammenti di codice, ed io ne faccio un uso frequente. Visto che hai detto che usi emacs perché non sfrutti C-c C-c che manda in esecuzione il codice e ti apre un buffer con il risultato? Mentre i test li uso per testare pezzi del codice che sto scrivendo, di come voglio che si comporti, l'uso cui hai accenato serve anche solo come studio di come si comporta il linguaggio, un passo che può essere strumentale a quello della scrittura del tuo codice. sandro *:-) -- Sandro Dentella *:-) http://sqlkit.argolinux.orgSQLkit home page - PyGTK/python/sqlalchemy ___ Python mailing list Python@lists.python.it http://lists.python.it/mailman/listinfo/python
Re: [Python] Come fareste voi?
> 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? A me piaciono anche i doctest quando penso ai test come documentazione di API ma sia nose che py.test possono eseguire i test in formato doctest ma danno un sommario molto povero ovvero cosiderano un file.txt con dentro i test come un singolo test, quando il modulo doctest li considera sigolarmente. Inoltre io non sono riuscito ad usare in modo utile l'opzione per cui note/py.test aprono la shell di debug quando capita un errore, cosa che invece funziona bene sia con nose che con py.test con test di tipo unittest. sandro *:-) ___ Python mailing list Python@lists.python.it http://lists.python.it/mailman/listinfo/python
Re: [Python] test [was: Re: Come fareste voi?]
> Perché, e qui lo dichiaro pubblicamente, i doctest sono la tecnologia di > test più abusata e meno adatta che sia venuto in mente a chiunque abbia > visto un prompt fatto così: >>> > > I doctest sono un brillante modo di testare... la documentazione!!! da > quando sono diventati un modo di testare il programma? Purtroppo da > abbastanza presto, e sono uno strumento oscenamente scomodo per farlo, nel > senso che costringono a contorsioni da kamasutra per eliminare la > variabilità che c'è nell'output dei comandi [1] o per mettere insieme una > test suite con setup e teardown. In tutto questo le docstring perdono il > significato originale: essere documentazione concisa. > > [1] > http://docs.python.org/library/doctest.html#option-flags-and-directives > > Ed Loper, autore di Epydoc (credo anche uno degli autori di doctest), ha > usato solo doctest per documentare Epydoc stesso [2]. Ma tu guarda che si è > dovuto inventare [3] per far girare una test suite un po' più complessa?!?! > Ne è valsa la pena? A me non sembra. > > [2] > http://epydoc.svn.sourceforge.net/viewvc/epydoc/trunk/epydoc/src/epydoc/test/ A me pare che questo esempio sia un esempio dove la doctest abbia un senso e sia anche più chiaro di quanto potrebbero essere degli unittest o test di nose/py.test, che è probabilmntee simile a quello che dicevi prima: test della documentazione. > [3] > http://epydoc.svn.sourceforge.net/viewvc/epydoc/trunk/epydoc/src/epydoc/test/util.py?revision=1502&view=markup Questo molto meno, ma: 1. probabilmente anche in uno unittest avrebbero dovuto esserci delle test/helper function fatte per rendere i test più leggibili... 2. proprio perché ce ne è più di uno mi pare che sia corretto scegliere il migliore per ogni singola situazione. E` corretto chiedere che si evitino contorsionismi strani, ma spesso la leggibilità di test fatti con doctest è decisamente elevata. Sono anche convinto che la flessibilità delle unittest (o simili) sia molto maggiore in varie circostanze per cui non ci rinuncerei affatto. sandro *:-) ___ Python mailing list Python@lists.python.it http://lists.python.it/mailman/listinfo/python
Re: [Python] test [was: Re: Come fareste voi?]
> > Sono anche convinto che la flessibilità delle unittest (o simili) sia > > molto > > maggiore in varie circostanze per cui non ci rinuncerei affatto. > > Non ho intenzione di farti cambiare idea: visto che lo strumento è stato > citato, queste sono le mie considerazioni e i motivi per cui io non le uso > se non per testare documentazione. Secondo me la documentazione deve essere > esplicativa mentre i test devono essere esaustivi: visto i due obiettivi > spesso finiscono con l'essere in contraddizione preferisco tenerli > fisicamente separati e usare lo strumento migliore per l'obiettivo. non è che cerchi contrapposizione dove non c'è? Mi pare che le differenze fra il mio ed il tuo punti di vista siano relativamente piccole. La mia frase che cito era per confermare che anche io trovo una flessibilità maggiore in *unittest* e simili (nose, py.test migliorano in vario modo ma non stravolgono il concetto degli unittest) ed a questi non rinuncerei, ma non rinuncerei neanche ai doctest quando voglio qualcosa che assomigli di più alla documentazione. [Per inciso non metto i test nelle docstring ma in file separati, proprio perché son convinto che una docstring troppo lunga non sia comoda.] sandro *:-) ___ Python mailing list Python@lists.python.it http://lists.python.it/mailman/listinfo/python
Re: [Python] python.it e supporto per gruppi
On Sun, Apr 11, 2010 at 02:45:14PM +0200, Daniele.zambelli wrote: > Ho da qualche mese fondato il fracapug: Python user group del liceo > Fracastoro > di Verona. > > Per vari servizi mi sono appoggiato a Google: ML, pagine web, repository di > file. Ora il server di Google mi sta facendo diventare matto (per dei suoi > bug, suppongo). Prima di creare un nuovo gruppo su Google pensavo che sarebbe > interessante poter appoggiarsi a python.it invece che alla grande G. per capire chi può risolvere il problema, se una lista offerta da python.it o altro, credo che sarebbe meglio dire quali problemi trovi con Google. Mailman che è suggerito da Manlio ha un approccio vero a mailing list, a me piace molto di più un gruppo di google dove io decido se ricevere come mail o leggere/scrivere via web e dove trovo la maggior parte dei miei gruppi raggruppati in un unico account. Inoltre la possibilità di ricercare con la potenza di google invece che essere limitati ad un mese per volta come con mailman è importante per cui -se decidi di andare per quella via- ricorda anche di sottoscrivere la lista a www.mail-archive.com, almeno hai un motore di ricerca un po' migliore. sandro *:-) -- Sandro Dentella *:-) http://sqlkit.argolinux.orgSQLkit home page - PyGTK/python/sqlalchemy ___ Python mailing list Python@lists.python.it http://lists.python.it/mailman/listinfo/python
Re: [Python] soluzione gtk/sqlkit
On Mon, Apr 26, 2010 at 12:02:53PM +0200, Nicola Larosa wrote: > > Giovanni Porcari wrote: > >> Per quello che riguarda la richiesta di una versione offline è nelle > >> nostre intenzioni il fatto di creare un eseguibile multipiattaforma > >> (eventualmente da usare su chiavetta USB) che incorpori un server > >> wsgi (noi usiamo paste) mentre per il db vorremmo usare sqlite. > > Marco Giusti wrote: > > perché non creare una micro applicazione con gtk (o tk) e sqlite? non > > avrà lo stesso sex appeal di genropy, ma usare un web server per > > un'applicazione così piccola mi sembra un po' sproporzionato. inoltre > > con pyinstaller si crea facilmente un eseguibile e il gioco è fatto. > > Ottima idea, facci sapere quando hai fatto, grazie. ;-) propongo qui 2 soluzioni con sqlkit [1]. La prima richiede 3 click in più per arrivare ad avere quello che ha proposto Giovanni, usa 'sqledit' l'eseguibile che viene distribuito assieme a sqlkit. Da riga di comando le configurazioni sono quindi limitate ed i filti vanno aggiunti a mano (i famosi 3 click). Potete vedere l'effetto qui: http://www.e-den.it/misc/med.mpeg ho preparato un db di sqlite con i codici: med.sqlite reperibile qui [2] sqledit via pyinstaller --- Partiamo dal boundle fatto con pyinstaller:: $ wget -q http://www.e-den.it/misc/med.sqlite $ wget -q http://sqlkit.argolinux.org/download/sqledit-binary-0.8.6.tar.gz $ tar xzf sqledit-binary-0.8.6.tar.gz $ ./sqledit-0.8.6/sqledit sqlite:///med.sqlite codici --load A questo punto vi si apre una tabella con le due colonne. L'intestazione è cliccabile, nel menu dropdown la prima voce è "aggiungi un filtro" come mostrato qui http://sqlkit.argolinux.org/sqlkit/filters.html. Se usate Windows potete scaricare l'installer per Windows [3], e lanciare da riga di comando (la medesima salvo i path) o usare la gui e mettere il path del database sqlite nella forma sqlite:///C:/Docments and settings/.../med.sqlite sqlkit da python Questa è la modalità più flessibile, ma prevede che abbiate installato sqlkit. Il programma si riduce a:: #!/usr/bin/python import gtk import sys import sqlkit from sqlkit import widgets as skw DB_FILE = '/home/sandro/med.sqlite' db = sqlkit.DbProxy(bind="sqlite:///%s" % DB_FILE) m = skw.SqlTable(table='codici', dbproxy=db) for tk in sys.argv[1:]: m.add_filter(descr__icontains=tk) m.add_filter(cod__ilike="") m.reload() gtk.main() che apre già un filtro sulla descrizione per ogni argomento, supponendo salviate il codice in med.py: ./med.py frat fem Vi apre la lista di tutti i codici esattamente come proposto da Giovanni. Se invece volete comunque aprire i filtri anche se vuoti, in modo da risparmiare anche i click: m.add_filter(descr__icontains='') m.add_filter(descr__icontains='') sandro *:-) [1] http://sqlkit.argolinux.org/index.html [2] http://www.e-den.it/misc/med.sqlite [3] http://sqlkit.argolinux.org/download/sqledit-setup-0.8.6.1.exe -- Sandro Dentella *:-) http://sqlkit.argolinux.orgSQLkit home page - PyGTK/python/sqlalchemy ___ Python mailing list Python@lists.python.it http://lists.python.it/mailman/listinfo/python
Re: [Python] excel to sql
On Tue, Apr 27, 2010 at 04:57:36PM +0200, Marco Giusti wrote: > On Tue, Apr 27, 2010 at 04:35:47PM +0200, luge...@libero.it wrote: > > ciao,ho visto in lista il tuo programma e il database sql.mi dici come hai > > convertito l'xls in sql?grazie. > > ho convertito il file in formato .csv con calc di openoffice e da csv a > sqlite con fill.py, compreso nei sorgenti che ho postato dopo averlo convertito in .sqlite ed aio ho semplicemente usato i comandi sqlite:: sqlite> create table codici (cod varchar(10) primary key, descr varchar(300)); sqlite> .separator \t sqlite> .import /tmp/med.csv codici *:-) -- Sandro Dentella *:-) http://sqlkit.argolinux.orgSQLkit home page - PyGTK/python/sqlalchemy ___ Python mailing list Python@lists.python.it http://lists.python.it/mailman/listinfo/python
Re: [Python] Creazione modulo
On Wed, May 26, 2010 at 05:57:38PM +0200, Vittorio Zuccala' wrote: > Buongiorno a tutti, > sono abbastanza nuovo nella programmazione ad oggetti ma sto cercando di > creare > un piccolo oggettino per agevolarmi in un programma... > Esso deve leggere un file di configurazione, recuperare delle informazioni e, > nella mia intenzione, restituire un dizionario con l'elenco di ci che ha > rilevato. > Mi sapete dire in cosa sbaglio? > Il messaggio che ho quando lancio lo script il seguente: > > config=cnf.conf() > TypeError: 'dict' object not callable. usi self.conf una volta per indicare il dizionario, ed un'altra per indicare il metodo! Ricorda inoltre che la PEP8 sullo stile suggerisce di usare CapWords: Class Names Almost without exception, class names use the CapWords convention. Classes for internal use have a leading underscore in addition. quindi la tua classe potrebbe essere riscritta: class Cnf(object): def __init__(self, configurazione): self.conf... ... def get_conf(self): return self.conf sandro *:-) -- Sandro Dentella *:-) http://sqlkit.argolinux.orgSQLkit home page - PyGTK/python/sqlalchemy ___ Python mailing list Python@lists.python.it http://lists.python.it/mailman/listinfo/python
[Python] weakref ... troppo deboli!...
Ciao a tutti, sto letteralmente diventando pazzo da qualche giorno su un problema di possibile leak di ram, per definirlo meglio sto creando esempi che mi portano altri problemi... ora vi parlo di uno di questi... Vi propongo il codice seguente che usa le pygtk e dei weakref. Il programmino crea delle istanze 'g' di un classe 'G' con una finestra (gtk.Window) 'w' con 2 bottoni: 1. il primo crea 'n' finestre e un weakref per ciascuna per poterle poi uccidere 2. il secondo bottone uccide le finestre La stranezza è che il codice (abbastanza sempliciotto) funziona bene o molto male a seconda: * del numero di finestre (passo il numero come unico argomento) * dell'interprete (2.5 o 2.6) Con python2.5/Ubuntu 8.04 fino a 43 (quarantatré, che avrà mai?) finestre il bottone 1 le crea ed il 2 le uccide. Già da 43 il bottone che le dovrebbe uccidere non funziona più (ovvero i weakref non trovano l'oggetto referenziato che in effetti esiste). Su Ubuntu 9.04 ho sia python 2.5 che 2.6: 2.5.2: stessi problemi 2.6.2: nessun problema su ubuntu 9.04 (*) 2.6.5: stessi problemi già con 3 finestre su ubuntu 10.04. Quando la finestra risulta incancellabile tramite il bottone kill, anche la cancellazione tramite window-manager fallisce (AttributeError: G objectc has no attribute 'title'). È come se la istanza 'g' sia stata resa monca nonostante esista ancora una finestra con una callback attiva che referenzia (in senso forte) l'istanza stessa ed il suo metodo 'delete_event_cb'. Chiamo 'monca' questa istanza nel senso che: * la weakref non la vede più * la callback capisce che è una istanza di 'G' ma non ne vede l'attributo di istanza 'title':: Traceback (most recent call last): File "testd2_win.py", line 39, in clicked_cb if self.title: AttributeError: 'G' object has no attribute 'title' Conto su un vostro input per non andare in corto... sandro *:-) (*) se importo psutil [1] ho gli stessi probelmi... [1] un modulo molto carino per avere le informazioni sui processi e la ram che darebbe ps: http://code.google.com/p/psutil/ -- Sandro Dentella *:-) http://sqlkit.argolinux.orgSQLkit home page - PyGTK/python/sqlalchemy import os import gc import sys import weakref import gtk class G(object): def __init__(self, title=''): self.windows = [] self.title = title self.w = gtk.Window() self.w.set_title(title) self.h = gtk.HBox() self.kill_button = gtk.Button("kill") self.crea_button = gtk.Button(title and "Finestra %s" % title or "crea %s finestre" % n) self.w.add(self.h) self.h.add(self.crea_button) self.h.add(self.kill_button) self.w.show_all() self.w.connect('delete-event', self.delete_event_cb) self.kill_button.connect('clicked', self.clicked_cb) self.crea_button.connect('clicked', self.crea_molte_finestre) def delete_event_cb(self, win, ev=None): self.w.get_toplevel().destroy() del self.w def crea_molte_finestre(self, win, ev=None): if self.title: return self.wins = [] for i in range(n): #r = G(title=str(i)) r = weakref.ref(G(title=str(i))) self.windows += [r] def clicked_cb(self, win): if self.title: self.delete_event_cb(win) else: for g in self.windows: if g(): g().delete_event_cb(None, None) #if g: # se non usi weakref #g.delete_event_cb(None, None) self.windows = [] if __name__ == '__main__' : if len(sys.argv) == 2: n = int(sys.argv[1]) else: n = 10 G() try: gtk.main() except KeyboardInterrupt: sys.exit() ___ Python mailing list Python@lists.python.it http://lists.python.it/mailman/listinfo/python
Re: [Python] weakref ... troppo deboli!...
Grazie Marco per la dritta, On Fri, May 28, 2010 at 12:19:12PM +0200, Marco Giusti wrote: > On Fri, May 28, 2010 at 10:25:51AM +0200, Alessandro Dentella wrote: > > Ciao a tutti, > [...] > > Quando la finestra risulta incancellabile tramite il bottone kill, anche la > > cancellazione tramite window-manager fallisce (AttributeError: G objectc has > > no attribute 'title'). È come se la istanza 'g' sia stata resa monca > > nonostante > > esista ancora una finestra con una callback attiva che referenzia (in senso > > forte) l'istanza stessa ed il suo metodo 'delete_event_cb'. Chiamo 'monca' > > questa istanza nel senso che: > > > > * la weakref non la vede più > > * la callback capisce che è una istanza di 'G' ma non ne vede l'attributo > > di istanza 'title':: > > > > Traceback (most recent call last): > > File "testd2_win.py", line 39, in clicked_cb > > if self.title: > > AttributeError: 'G' object has no attribute 'title' > > > > Conto su un vostro input per non andare in corto... > > Vediamo un po' tutti i possibili problemi che possono sorgere: > > 1. il metodo `delete_event_cb` elimina il riferimento alla finestra ma > il metodo può essere ancora chiamato dal padre e non essendoci più > riferimenti a `self.w`... non mi è chiaro, il padre sarebbe l'istanza stessa? Eliminata 'w', che tramite le callback aveva riferimenti (forti, direi) a 'g', g dovrebbe sparire per me... Vedo che la grossa differenza fra la mia e la tua versione è nel fatto che io ho una connect a 'delete_event' che tu non hai, entrambe però eliminiamo con una chiamata diretta a destroy() la finestra, che quindi emette un 'delete_event'. Quindi io passo due volte dal metodo 'delete_event_cb', la seconda volta il metodo non ha più self.w... ho capito! Probabimente la dipendenza dal numero di finestre create è poi dovuta a ritardi di gtk che è alle prese con il rendering delle finestre. La 10.04 era simulata in VirtualBox quindi più lenta e quindi mi dava l'errore già a 3/4 finestre. > 2. gli unici riferimenti che hai agli oggetti `G` sono dei riferimenti > deboli. a questo punto credo che tu debba andare a vedere come i > riferimenti deboli siano implementati in pygtk. non sono molto preparato > qui ma sicuramente il problema è questo. Accanto a `self.windows` > affianca un'altra lista: `self.objects` con riferimenti forti, vedrai > che a questo punti non hai più di questi problemi. > > per quanto ne so' la gestione dei riferimenti in pygtk è pensata per, ad > eccezione di casi particolari, potersene dimenticare. nel momento in cui > non ci sono più riferimenti python ad un oggetto gobject, questo viene > deallocato. Il tutto è nato proprio perché vedo crescere a dismisura l'occupazione di ram in una applicazione GTK e sto pensando di rimpiazzare riferimenti forti con riferimenti deboli. Questo test era nato proprio dall'esigenza di vedere se riuscivo a tenere la RAM sotto controllo. promesso che apro altre discussioni per la ram... > ps. ti allego la versione modificata. > > pps. la gerarchia che crei è con soli due livelli, perché allora non usi > due classi distinte? ti allego la versione modificata Perché nell'esempio reale alcune istanze della classe Mask gemmano altre istanze della classe Mask, poi nell'esempio ho cambiato il look solo perché non fosse troppo fuorviante vedere interfacce uguali. grazie sandro *:-) -- Sandro Dentella *:-) http://sqlkit.argolinux.orgSQLkit home page - PyGTK/python/sqlalchemy ___ Python mailing list Python@lists.python.it http://lists.python.it/mailman/listinfo/python
Re: [Python] weakref ... troppo deboli!...
On Fri, May 28, 2010 at 03:49:35PM +0200, Marco Giusti wrote: > On Fri, May 28, 2010 at 01:39:43PM +0200, Alessandro Dentella wrote: > > Grazie Marco per la dritta, > > > > On Fri, May 28, 2010 at 12:19:12PM +0200, Marco Giusti wrote: > > > On Fri, May 28, 2010 at 10:25:51AM +0200, Alessandro Dentella wrote: > [...] > > > > > > Vediamo un po' tutti i possibili problemi che possono sorgere: > > > > > > 1. il metodo `delete_event_cb` elimina il riferimento alla finestra ma > > > il metodo può essere ancora chiamato dal padre e non essendoci più > > > riferimenti a `self.w`... > > > > non mi è chiaro, il padre sarebbe l'istanza stessa? Eliminata 'w', che > > tramite le callback aveva riferimenti (forti, direi) a 'g', g dovrebbe > > sparire per me... > > > > Vedo che la grossa differenza fra la mia e la tua versione è nel fatto che > > io > > ho una connect a 'delete_event' che tu non hai, entrambe però eliminiamo con > > una chiamata diretta a destroy() la finestra, che quindi emette un > > 'delete_event'. Quindi io passo due volte dal metodo 'delete_event_cb', la > > seconda volta il metodo non ha più self.w... ho capito! > > quell'esempio è solo una diversa implementazione del tuo esempio, se > devi fare una comparazione con il tuo, controlla l'altro. nel secondo > esempio l'unica differenza è l'attributo `self.objects` che contiene i > riferimenti forti agli oggetti. Mi ero reso conto che lasciando riferimenti forti non verificavo alcun problema. Vedi le righe commentate nel primo esempio che ho postato, che lo rendono di fatto identico al tuo ultimo. > > Probabimente la dipendenza dal numero di finestre create è poi dovuta a > > ritardi di gtk che è alle prese con il rendering delle finestre. La 10.04 > > era simulata in VirtualBox quindi più lenta e quindi mi dava l'errore già a > > 3/4 finestre. > > credo che questo sia un effetto aleatorio, che dipende da quando il gc > entra in funzione, dal SO, dalla quantità di ram, ecc. > > > > 2. gli unici riferimenti che hai agli oggetti `G` sono dei riferimenti > > > deboli. a questo punto credo che tu debba andare a vedere come i > > > riferimenti deboli siano implementati in pygtk. non sono molto preparato > > > qui ma sicuramente il problema è questo. Accanto a `self.windows` > > > affianca un'altra lista: `self.objects` con riferimenti forti, vedrai > > > che a questo punti non hai più di questi problemi. > > > > > > per quanto ne so' la gestione dei riferimenti in pygtk è pensata per, ad > > > eccezione di casi particolari, potersene dimenticare. nel momento in cui > > > non ci sono più riferimenti python ad un oggetto gobject, questo viene > > > deallocato. > > > > Il tutto è nato proprio perché vedo crescere a dismisura l'occupazione di > > ram in una applicazione GTK e sto pensando di rimpiazzare riferimenti forti > > con riferimenti deboli. Questo test era nato proprio dall'esigenza di > > vedere se riuscivo a tenere la RAM sotto controllo. > > > > promesso che apro altre discussioni per la ram... > > secondo me non è il modo migliore per procedere, a meno che tu non sia > certo che il memory leak dipenda proprio dalle gtk e non da un bug nel > tuo programma. In verità io sono ancora nella fase in cui sto cercando di capire dove sta il bug convinto al moento che stia nel mio modo di procedere. Come hai seggerito nell'altra mail pygtk dovrebbe non dare problemi ed io non mi son posto problemi fino ad oggi. Creo delle finestre di editing di dati SQL che sono delle classi che hanno molte cose all'interno: class SqlMask(...): una stringa per il layout (xml o altro) la sessione sqlalchemy una query una lista di tabelle una lista di filtri e una di completion (filtri e completion miei che a loro volta hanno svariati oggetti gtk annessi) una lista di record una lista di SqlTable in relazione (es quelle che mostrano relazioni one2many, etc) ... Molti di questi oggetti (filtri, completion in particolare) hanno riferimenti all'oggetto SqlMask per cui vivono (o in cui vivono), il che tiene in vita l'oggetto fino a che non vengano completamente eliminati. Quando l'utente chiude la finestra io mi occupavo solo di distruggere la finestra principale lasciando quindi un mondo di oggetti che si tenevano reciprocamente in vita, per *studiare* questi ho usato le weakref, ovvero per vedere se gli oggetti stanno sopravvivendo o meno alla chiusura della finestra ed in caso capire chi le tiene in vita. Non mi è chiaro, ed accetto volentieri suggerimenti su quale sia una buona pratica per fare piazza pulita di tutti gli attributi: esiste una cosa analoga a 'del dir[:]' per gli attributi? Altre precauzioni? grazie ancora sandro *:-) -- Sandro Dentella *:-) http://sqlkit.argolinux.orgSQLkit home page - PyGTK/python/sqlalchemy ___ Python mailing list Python@lists.python.it http://lists.python.it/mailman/listinfo/python
[Python] gc.get_referrers
Ciao, continuo nella mia caccia a ciò che tiene in vita gli oggetti. Questa volta sto usando gc ed in particolare get_referrers ed in misura minore get_referents. Non apisco bene come usare i risultati. Se sono classi o funzioni è abbastanza chiaro cosa siano, se sono oggetti, un print ne mostra il dizionario degli attributi (ma non i metodi) A me piacerebbe usarli come se fossero dei veri oggetti, magari stampando un repr(o) o str(o) ma questo non mi pare possibile. Quale è la motivazione di ciò e come andrebbero veramente usati, sempre tenendo conto che come suggerisce lda documentazione li uso solo per debug? grazie sandro *:-) ___ Python mailing list Python@lists.python.it http://lists.python.it/mailman/listinfo/python
Re: [Python] gc.get_referrers
On Fri, May 28, 2010 at 08:31:31PM +0200, Daniele Varrazzo wrote: > On Fri, 28 May 2010 19:49:05 +0200, Alessandro Dentella > wrote: > > Ciao, > > > > continuo nella mia caccia a ciò che tiene in vita gli oggetti. Questa > > volta > > sto usando gc ed in particolare get_referrers ed in misura minore > > get_referents. > > > > Non apisco bene come usare i risultati. Se sono classi o funzioni è > > abbastanza chiaro cosa siano, se sono oggetti, un print ne mostra il > > dizionario degli attributi (ma non i metodi) > > Quei dizionari sono lo stato degli oggetti in questione. Prova ad usare le > stesse funzioni di gc per sapere chi tiene in vita quei dizionari: dovresti > trovare gli oggetti. Ottimo, grazie! *:-) -- Sandro Dentella *:-) http://sqlkit.argolinux.orgSQLkit home page - PyGTK/python/sqlalchemy ___ Python mailing list Python@lists.python.it http://lists.python.it/mailman/listinfo/python
Re: [Python] Doxygen -- creare documentazione
On Wed, Jun 16, 2010 at 02:44:55PM +0200, Vittorio Zuccala' wrote: > Caspita, questo si che un bel consiglio! > Lo faccio subito perch cos provo tutti e tre i sistemi. > Quindi secondo te vale la pena investire del tempo per imparare sphinx... Io appoggio in pieno l'uso di Sphinx anche se non ho esperienza in altri sistemi. La caratteristica che ha già esposto Daniele sulla possibilità di unire parti discorsive e parti di instrospezione è ottima. Rest è sicuramemnte un sistema che dopo poco diventa completamente naturale e non invasivo. Le aggiunte a Rest di Sphinx ne fanno un sistema estremamente versatile. Amo molto ad esempio i riferimenti incrociati che possono essere messi nel codice e referenziali dalle parti dicorsive e viceversa nonchè i messaggi in fase di compilazione della documentazione sul fatto che alcune pagine possono essere state omesse dall'indice. I siti che hanno documentazione in sphinx sono ormai moltissimi, se vuoi vedere come si possono anche integrare immagini dai una occhiata a quello che c'è in calce (sqlkit). Ovviamente poi per i css, l'unico limite è la tua creatività... sandro *:-) -- Sandro Dentella *:-) http://sqlkit.argolinux.orgSQLkit home page - PyGTK/python/sqlalchemy ___ Python mailing list Python@lists.python.it http://lists.python.it/mailman/listinfo/python
[Python] lanciare l'applicazione associata ad un file
Ciao, avrei bisogno di lanciare l'applicazione associata ad un file (principalmente .pdf e .odt). Esiste un modo "canonico"? almeno per os? Mi serve per ogni os anche se l'urgenza principale è ora in Windows, visto che lì gli eseguibili non stanno necessarimente nel path, per cui non so come verificare se sono installati. Immagino ci sia qualche modo di interrogare il registro sull'associazione e sul path, ma google non mi ha risolto il problema... Mi pareva in passato di avere risolto il probelma usando start, ma ora non funziona: srv-samba # cat test.py import subprocess p = subprocess.Process(['start', 'output.pdf']) lanciato da Windows mi risponde un criptico: Adobe Reader non è in grado di aprire test.py. Che significa che è arrivato all'associazione ma non capisce quale file deve aprire... grazie in anticipo per ogni suggerimento sandro *:-) ___ Python mailing list Python@lists.python.it http://lists.python.it/mailman/listinfo/python
Re: [Python] lanciare l'applicazione associata ad un file
On Tue, Jul 27, 2010 at 08:07:06AM +0200, Nicola Lunghi wrote: > googlando ho trovato questo > > http://stackoverflow.com/questions/434597/ > open-document-with-default-application-in-python > > magari ti può essere utile. grazie. in effetti suggeriscono di fare quello che sto già facendo, a parte os.startfile() che non conoscevo. Il fatto è che ancora mi si comportavano ugualmente. Ho visto in seguito che se invece che cliccare il file test.py lo invoco con 'python test.py' tutto funziona come previsto e come in effetti ricordavo di avere già fatto. Non mi è chiaro perché il doppio click su file non funzioni. > Su linux c'è xdg-open Questo non lo conoscevo e mi pare utile. sandro *:-) ___ Python mailing list Python@lists.python.it http://lists.python.it/mailman/listinfo/python
Re: [Python] problemi di import del PGDialect
On Thu, Sep 16, 2010 at 09:48:55AM +0200, Pietro Zambelli wrote: > Ciao a tutti, > sto cercando di utilizzare questo programma [0] per visualizzare lo schema > del > mio database, solo che ottengo: > > In [6]: %run sqlalchemy_schemadisplay.py > --- > ImportError Traceback (most recent call last) > > /home/pietro/tmp/lavoro/osmdb/sqlalchemy_schemadisplay.py in () > 90 return graph > 91 > ---> 92 from sqlalchemy.databases.postgres import PGDialect > 93 from sqlalchemy import Table, text > 94 > > ImportError: No module named postgres > WARNING: Failure executing file: che versione di sqlalchemy usi? Quella stessa riga a me funziona con sql 0.6.3 anche se io non importo mai direttamente il dialoetto, semplicemente passo l'URL all'engine. Cosa ti serve in particolare il dialetto? sandro *:-) -- Sandro Dentella *:-) http://www.reteisi.org Soluzioni libere per le scuole http://sqlkit.argolinux.orgSQLkit home page - PyGTK/python/sqlalchemy ___ Python mailing list Python@lists.python.it http://lists.python.it/mailman/listinfo/python
Re: [Python] Vim e python
On Wed, Sep 22, 2010 at 02:40:41PM +0200, Carlos Catucci wrote: > 2010/9/22 Karim Gorjux : > > 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. > > Io uso volentieri VIM come editor. Come dici tu lo trovi ovunque > sempre uguale. Pero' gestire progetti complessi in python con VIM mi > farebbe sudare freddo. Anche a me farebbe sudare freddo... ma solo perché sono uno di quelli che usa sempre e solo emacs. Ma in cosa un progetto "complesso" avrebbe bisogno di un IDE più di uno "semplice"? Io credo di avere gestito anche progetti abbastanza complessi e non ho mai avvertito la necessità di infrastrutture igombranti da mettere addosso a progetti già grandi... ne sono sempre stato respinto dopo qualche tentativo, quindi -ammetto- sono poco informato dei fatti. Ho però sentito spacciare per fantasmagoriche conquiste di alcuni IDE cose con con emacs+ipython+(i)pdb mi sono date in modo abbastanza naturale. sandro -- Sandro Dentella *:-) http://www.reteisi.org Soluzioni libere per le scuole http://sqlkit.argolinux.orgSQLkit home page - PyGTK/python/sqlalchemy ___ Python mailing list Python@lists.python.it http://lists.python.it/mailman/listinfo/python
Re: [Python] Vim e python
On Wed, Sep 22, 2010 at 06:01:37PM +0200, Carlos Catucci wrote: > 2010/9/22 Alessandro Dentella : > > Ho però sentito spacciare per fantasmagoriche conquiste di alcuni IDE cose > > con con emacs+ipython+(i)pdb mi sono date in modo abbastanza naturale. > > Come ad esempio il refactoring? Ammetto l'ignoranza ma questo non so proprio come possa essere facilitato da un IDE. > Il debugger integrato (anche se lanci un applicazione web gestita da > Apache), il testing integrato etc.? niente che mi scaldi l'anima, mi pare che son cose che si gestiscono facilmente anche fuori dall'ide... con django ed il server di sviluppo intervengo in ogni punto che voglio col debugger. Certo qualche probelma in più se c'è apache di mezzo ma mi pare in genere tardi per fare debugging... > Senza contare la possibilita di avere la "diteggiatura" Vim o Emacs ? Quella con emacs è già inclusa... ;-) sandro -- Sandro Dentella *:-) http://www.reteisi.org Soluzioni libere per le scuole http://sqlkit.argolinux.orgSQLkit home page - PyGTK/python/sqlalchemy ___ Python mailing list Python@lists.python.it http://lists.python.it/mailman/listinfo/python
Re: [Python] Vim e python
On Wed, Sep 22, 2010 at 08:38:19PM +0200, Enrico Franchi wrote: > > On Sep 22, 2010, at 5:54 PM, Alessandro Dentella wrote: > > > Anche a me farebbe sudare freddo... ma solo perché sono uno di quelli che > > usa sempre e solo emacs. > > > > Ma in cosa un progetto "complesso" avrebbe bisogno di un IDE più di uno > > "semplice"? Io credo di avere gestito anche progetti abbastanza complessi e > > non ho mai avvertito la necessità di infrastrutture igombranti da mettere > > addosso a progetti già grandi... ne sono sempre stato respinto dopo qualche > > tentativo, quindi -ammetto- sono poco informato dei fatti. > > > > Ho però sentito spacciare per fantasmagoriche conquiste di alcuni IDE cose > > con con emacs+ipython+(i)pdb mi sono date in modo abbastanza naturale. > > E' sempre la solita discussione IDE vs. Editor con una variante. In che cosa > emacs, integrato con > pdb e ipython *non* sarebbe un IDE, ovvero un Integrated Development > Environment? ah...beh, si beh... ma il tutto era nato proprio dalla contrapposizione "vim vs. IDE" che ha posto Carlos. Io ho solo ipotizzato senza conoscere che vim ed emacs potessero avere analoghe potenzialità e quindi ho risposto che emacs + pdb + ipython sono buoni per tutti i progetti. La tua frase quindi potrebbe essere letta come appoggio all'idea che *non* serva nulla più di questo (a parte la comodità di avere tutto 'out of the box') sandro *:-) ___ Python mailing list Python@lists.python.it http://lists.python.it/mailman/listinfo/python