Re: [Python] Selenium 2.0 webdriver api python + tutorial
Inoltre se faccio: browser=webdriver.Ie() o browser=webdriver.Firefox() e sono dentro una lan con un proxy impostato ottengo un keyerror='sessionid'. Rimuovendo il proxy il tutto funziona, solo che senza proxy non riesco a navigare in internet! Il giorno 17 maggio 2011 14:00, Balan Victor ha scritto: > Avevo già considerato questa possibilità però putroppo seleniu ide non è > compatibile con Firefox 4 e non conosco nessun altro strumento che mi possa > aiutare in questa operazione. Poi ho un'altro problema, alcune pagine che > voglio analizzare hanno un layout diverso a seconda che si visualizzino con > IE o altri browser. > > Il giorno 17 maggio 2011 10:56, Riccardo Lemmi ha > scritto: > > Balan Victor wrote: >> >> > Scusate ma non ci salto fuori, soprattutto perché manca la >> documentazione. >> > Per esempio ho questo script: >> > >> > from selenium import webdriver >> > browser=webdriver.Firefox() >> > browser.get('http://www.google.it') >> > >> > ora voglio vedere tutte le textbox e tutti i bottoni presenti nella >> pagina, >> > come faccio? >> > grazie >> > >> >> Seleniumhq non ti aiuta ad analizzare la pagina, si usa per eseguire nel >> browser >> le operazioni che faresti con la tastiera o il mouse. >> >> Io di solito faccio in questo modo: >> - uso Selenium IDE per registrare le azioni >> (http://seleniumhq.org/projects/ide/) >> - esporto in python >> - ri-fattorizzo il codice in modo da avere delle funzioni base >> riutilizzabili; >> di solito riscrivo e semplifico anche gli xpath generati >> >> Il risultato di Selenium IDE è una cosa del genere: >> >> from selenium import selenium >> import unittest, time, re >> >> class Untitled(unittest.TestCase): >>def setUp(self): >>self.verificationErrors = [] >>self.selenium = selenium("localhost", , "*chrome", >> "https://addons.mozilla.org/";) >>self.selenium.start() >> >>def test_untitled(self): >>sel = self.selenium >>sel.open("/en-US/firefox/addon/selenium-expert-selenium-ide/") >>sel.click("//div[@id='masthead']/h1/a") >>sel.wait_for_page_to_load("3") >>sel.click(u"link=Continue reading ?") >>sel.wait_for_page_to_load("3") >> >>def tearDown(self): >>self.selenium.stop() >>self.assertEqual([], self.verificationErrors) >> >> if __name__ == "__main__": >>unittest.main() >> >> >> > Il giorno 13 maggio 2011 20:03, Balan Victor >> ha >> > scritto: >> > >> >> grazie, >> >> è sono tutti link che ho già visitato solo li ho trovati un po >> complessi >> >> per me, per questo mi sono rivolto alla mailing list. >> >> Proverò a sforzarmi e vedo cosa riesco a tirare fuori. >> >> >> >> Ho altra domanda, oltre all'ide disponibile come plugin per Firefox >> esiste >> >> qualche ide che permette di registrare le azioni compiute e generare >> codice >> >> python in automatico? >> >> >> >> Selenium IDE permette sia di registrare le azioni che esportare i comandi >> in >> vari linguaggi tra cui python (options -> format). >> >> >> >> Il giorno 13 maggio 2011 14:49, Riccardo Lemmi >> ha >> >> scritto: >> >> >> >> Balan Victor wrote: >> >>> >> >>> > qualche settimana fa ho aperto una discussione riguardo strumenti >> per >> >>> > automatizzare operazioni su pagine web. >> >>> > Qualcuno di vuoi mi ha suggerito selenium. Ho provato a vedere il >> sito, >> >>> > documentazione ecc. Ho visto che c'è la versione 2.0 alias >> webdriver. >> >>> > Tuttavia non riesco a capire se la nuova versione supporta anche >> python >> >>> o >> >>> > solo java e c#. Sul sito ufficiale ho trovato solo riferimenti a >> java e >> >>> c#. >> >>> > Inoltre non ho trovato nessuna guida/tutorial/api che descriva >> meglio il >> >>> > funzionamento di questo software. >> >>> > Qualcuno mi sa aiutare a trovare qualche risorsa? >> >>> > Grazie >> >>> >> >>> La libreria per collegarti al Selenium Remote Control: >> >>> http://pypi.python.org/pypi/selenium >> >>> >> >>> La documentazione (minimale) della libreria è qui: >> >>> http://code.google.com/p/selenium/wiki/PythonBindings >> >>> >> >>> ma è meglio se guardi il codice: >> >>> >> >>> >> http://code.google.com/p/selenium/source/browse/#svn%2Ftrunk%2Fpy%2Fselenium >> >>> >> >>> I comandi del controller: >> >>> >> >>> >> http://seleniumhq.org/docs/02_selenium_ide.html#selenium-commands-selenese >> >>> >> >>> -- >> >>> Riccardo Lemmi >> >>> >> >>> ___ >> >>> Python mailing list >> >>> Python@lists.python.it >> >>> http://lists.python.it/mailman/listinfo/python >> >>> >> >> >> >> >> >> -- >>Riccardo Lemmi >> >> ___ >> Python mailing list >> Python@lists.python.it >> http://lists.python.it/mailman/listinfo/python >> > > ___ Python mailing list Python@lists.python.it http://lists.python.it/mailman/listinfo/python
Re: [Python] StaticText esterno a StaticBoxSizer
E posizionare i singoli elementi con posizione assoluta (e quindi senza sizer)? Vorrei sapere quali sono i pro di utilizzare i sizer..(E' giusto una curiosità, visto che sei la seconda persona che mi consiglia di usarli...) ___ Python mailing list Python@lists.python.it http://lists.python.it/mailman/listinfo/python
Re: [Python] Selenium 2.0 webdriver api python + tutorial
Avevo già considerato questa possibilità però putroppo seleniu ide non è compatibile con Firefox 4 e non conosco nessun altro strumento che mi possa aiutare in questa operazione. Poi ho un'altro problema, alcune pagine che voglio analizzare hanno un layout diverso a seconda che si visualizzino con IE o altri browser. Il giorno 17 maggio 2011 10:56, Riccardo Lemmi ha scritto: > Balan Victor wrote: > > > Scusate ma non ci salto fuori, soprattutto perché manca la > documentazione. > > Per esempio ho questo script: > > > > from selenium import webdriver > > browser=webdriver.Firefox() > > browser.get('http://www.google.it') > > > > ora voglio vedere tutte le textbox e tutti i bottoni presenti nella > pagina, > > come faccio? > > grazie > > > > Seleniumhq non ti aiuta ad analizzare la pagina, si usa per eseguire nel > browser > le operazioni che faresti con la tastiera o il mouse. > > Io di solito faccio in questo modo: > - uso Selenium IDE per registrare le azioni > (http://seleniumhq.org/projects/ide/) > - esporto in python > - ri-fattorizzo il codice in modo da avere delle funzioni base > riutilizzabili; > di solito riscrivo e semplifico anche gli xpath generati > > Il risultato di Selenium IDE è una cosa del genere: > > from selenium import selenium > import unittest, time, re > > class Untitled(unittest.TestCase): >def setUp(self): >self.verificationErrors = [] >self.selenium = selenium("localhost", , "*chrome", > "https://addons.mozilla.org/";) >self.selenium.start() > >def test_untitled(self): >sel = self.selenium >sel.open("/en-US/firefox/addon/selenium-expert-selenium-ide/") >sel.click("//div[@id='masthead']/h1/a") >sel.wait_for_page_to_load("3") >sel.click(u"link=Continue reading ?") >sel.wait_for_page_to_load("3") > >def tearDown(self): >self.selenium.stop() >self.assertEqual([], self.verificationErrors) > > if __name__ == "__main__": >unittest.main() > > > > Il giorno 13 maggio 2011 20:03, Balan Victor > ha > > scritto: > > > >> grazie, > >> è sono tutti link che ho già visitato solo li ho trovati un po complessi > >> per me, per questo mi sono rivolto alla mailing list. > >> Proverò a sforzarmi e vedo cosa riesco a tirare fuori. > >> > >> Ho altra domanda, oltre all'ide disponibile come plugin per Firefox > esiste > >> qualche ide che permette di registrare le azioni compiute e generare > codice > >> python in automatico? > >> > > Selenium IDE permette sia di registrare le azioni che esportare i comandi > in > vari linguaggi tra cui python (options -> format). > > > >> Il giorno 13 maggio 2011 14:49, Riccardo Lemmi ha > >> scritto: > >> > >> Balan Victor wrote: > >>> > >>> > qualche settimana fa ho aperto una discussione riguardo strumenti per > >>> > automatizzare operazioni su pagine web. > >>> > Qualcuno di vuoi mi ha suggerito selenium. Ho provato a vedere il > sito, > >>> > documentazione ecc. Ho visto che c'è la versione 2.0 alias webdriver. > >>> > Tuttavia non riesco a capire se la nuova versione supporta anche > python > >>> o > >>> > solo java e c#. Sul sito ufficiale ho trovato solo riferimenti a java > e > >>> c#. > >>> > Inoltre non ho trovato nessuna guida/tutorial/api che descriva meglio > il > >>> > funzionamento di questo software. > >>> > Qualcuno mi sa aiutare a trovare qualche risorsa? > >>> > Grazie > >>> > >>> La libreria per collegarti al Selenium Remote Control: > >>> http://pypi.python.org/pypi/selenium > >>> > >>> La documentazione (minimale) della libreria è qui: > >>> http://code.google.com/p/selenium/wiki/PythonBindings > >>> > >>> ma è meglio se guardi il codice: > >>> > >>> > http://code.google.com/p/selenium/source/browse/#svn%2Ftrunk%2Fpy%2Fselenium > >>> > >>> I comandi del controller: > >>> > >>> > http://seleniumhq.org/docs/02_selenium_ide.html#selenium-commands-selenese > >>> > >>> -- > >>> Riccardo Lemmi > >>> > >>> ___ > >>> Python mailing list > >>> Python@lists.python.it > >>> http://lists.python.it/mailman/listinfo/python > >>> > >> > >> > > -- >Riccardo Lemmi > > ___ > Python mailing list > Python@lists.python.it > http://lists.python.it/mailman/listinfo/python > ___ Python mailing list Python@lists.python.it http://lists.python.it/mailman/listinfo/python
Re: [Python] Passare perametri a/tra classi
2011/5/17 M@T Scusate se non ho risposto prima ma stavo cercando di arrangiarmi (anche > leggendo l'articolo sopra), ma ho ancora qualche problema... > fermo un attimo... def __init__(self, data, largestscale=1, notes=0, order=2, > scaling='linear',omega0=5): Questo __init__, con omega0=5, e' metodo della classe Morlet. La classe Cwt rimane com'era, con la differenza che eredita da (object). ___ Python mailing list Python@lists.python.it http://lists.python.it/mailman/listinfo/python
Re: [Python] Passare perametri a/tra classi
A chi ha postato la domanda inizialmente: ignora questo link. Oppure, se lo leggi, salta direttamente alle conclusioni (dove dice *come* si usa super, evidentemente dopo che gli hanno corretto tutte le cappellate che ha scritto prima). Ciao Rieccomi. Scusate se non ho risposto prima ma stavo cercando di arrangiarmi (anche leggendo l'articolo sopra), ma ho ancora qualche problema... Ho modificato il codice così: " class Cwt(object): fourierwl=1.00 def _log2(self, x): return int( NP.log(float(x))/ NP.log(2.0)+0.0001 ) def __init__(self, data, largestscale=1, notes=0, order=2, scaling='linear',omega0=5): super(Morlet, self).__init__(data, largestscale=1, notes=0, order=2, scaling='linear') self._omega0 = omega0 ndata = len(data) self.order=order self.scale=largestscale self._setscales(ndata,largestscale,notes,scaling) self.cwt= NP.zeros((self.nscale,ndata), NP.complex64) omega= NP.array(range(0,ndata/2)+range(-ndata/2,0))*(2.0*NP.pi/ndata) datahat=NP.fft.fft(data) self.fftdata=datahat for scaleindex in range(self.nscale): currentscale=self.scales[scaleindex] self.currentscale=currentscale # for internal use s_omega = omega*currentscale psihat=self.wf(s_omega) psihat = psihat * NP.sqrt(2.0*NP.pi*currentscale) convhat = psihat * datahat W= NP.fft.ifft(convhat) self.cwt[scaleindex,0:ndata] = W return def _setscales(self,ndata,largestscale,notes,scaling): if scaling=="log": if notes<=0: notes=1 # adjust nscale so smallest scale is 2 noctave=self._log2( ndata/largestscale/2 ) self.nscale=notes*noctave self.scales=NP.zeros(self.nscale,float) for j in range(self.nscale): self.scales[j] = ndata/(self.scale*(2.0**(float(self.nscale-1-j)/notes))) elif scaling=="linear": nmax=ndata/largestscale/2 self.scales=NP.arange(float(2),float(nmax)) self.nscale=len(self.scales) else: raise ValueError, "scaling must be linear or log" return def getdata(self): return self.cwt def getcoefficients(self): return self.cwt def getpower(self): return (self.cwt* NP.conjugate(self.cwt)).real def getscales(self): return self.scales def getnscale(self): return self.nscale """ # wavelet classes class Morlet(Cwt): _omega0=0.001 ##5.0 fourierwl=4* NP.pi/(_omega0+ NP.sqrt(2.0+_omega0**2)) def wf(self, s_omega): H=(s_omega>0)*1. xhat=0.75112554*( NP.exp(-(s_omega-self._omega0)**2/2.0))*H return xhat """ Se lo richiamo con cw=Morlet(A,maxscale,notes,scaling=scaling,omega0=5) Mi da errore: super(Morlet, self).__init__(data, largestscale=1, notes=0, order=2, scaling='linear') RuntimeError: maximum recursion depth exceeded while calling a Python object Spero di non spazientirvi troppo. Ho provato l'esempio dell'articolo ma non mi funziona... quindi non riesco a fare prove accurate. Lo scopo (penso si sia capito) è di attribuire un determinato valore a _omega0 nella classe Morlet Quindi non dovrebbe essere così il comando super?? def __init__(self, data, largestscale=1, notes=0, order=2, scaling='linear',omega0=5): super(Morlet, self).__init__(omega0=5) self._omega0 = omega0 Idee? Scusate l'ingnoranza ma sto cercando di imparare Grazie a tutti per le risposte Ciao Matteo ___ Python mailing list Python@lists.python.it http://lists.python.it/mailman/listinfo/python
Re: [Python] StaticText esterno a StaticBoxSizer
> L'ho installato ma sinceramente ho delle difficoltà a capire come > utilizzarlo... > > http://wxglade.sourceforge.net/tutorial.php > Così facendo lboxsizer occupa tutto il Panel... > Si infatti. La gerarchia solita che utilizzo io di solito è frame -sizer --panel ---sizer sizer1 -oggetti in sizer1 . . . sizern -oggetti in sizern Facendo così ti devi gestire solo la disposizione di sizer1...sizern perchè il resto si allinea automaticamente. Prova a dare uno sguardo a wxdocs and demos http://www.wxpython.org/download.php alla voce sizer e vedrai che ci sono molti modi per ottenere lo stesso risultato. -- -- Giuseppe Amato e-mail: giuam...@gmail.com ___ Python mailing list Python@lists.python.it http://lists.python.it/mailman/listinfo/python
Re: [Python] Passare perametri a/tra classi
2011/5/17 Gasparini Andrea Boh. Infatti io ho sempre letto quell'articolo come una spiegazione su > come usare super() e come non farlo. Non ho mai trovato da nessuna > parte altre discussioni a proposito. > si potrebbe semplificare dicendo che l'ereditarieta' multipla "e' piu' la fatica che il gusto" > [ oppure l'ho letto dopo che ha corretto queste incredibili cappellate? ] > Se avete link sull'argomento, son curioso > Il buon Simionato ha scritto un'enciclopedia sul super(), mixin e quant'altro ___ Python mailing list Python@lists.python.it http://lists.python.it/mailman/listinfo/python
Re: [Python] Passare perametri a/tra classi
2011/5/17 Daniele Varrazzo : > On Tue, 17 May 2011 12:08:01 +0200, Marco Mariani > wrote: >> On 17 May 2011 11:47, Gasparini Andrea wrote: >> >> >>> e giusto per completezza: >>> http://fuhm.net/super-harmful/ >>> >> >> Ancora quel post, mi sembrava fosse stato debunkato per esteso sei anni > fa >> dal trio Van Rommum-Martelli-Eby. > > +1. Quel tizio non c'ha capito molto e si lamenta che in caso di uso > scorretto si super, non funziona... doh. > > A chi ha postato la domanda inizialmente: ignora questo link. Oppure, se > lo leggi, salta direttamente alle conclusioni (dove dice *come* si usa > super, evidentemente dopo che gli hanno corretto tutte le cappellate che ha > scritto prima). Boh. Infatti io ho sempre letto quell'articolo come una spiegazione su come usare super() e come non farlo. Non ho mai trovato da nessuna parte altre discussioni a proposito. [ oppure l'ho letto dopo che ha corretto queste incredibili cappellate? ] Se avete link sull'argomento, son curioso cià. -- - gaspa - ___ Python mailing list Python@lists.python.it http://lists.python.it/mailman/listinfo/python
Re: [Python] Passare perametri a/tra classi
On Tue, 17 May 2011 12:08:01 +0200, Marco Mariani wrote: > On 17 May 2011 11:47, Gasparini Andrea wrote: > > >> e giusto per completezza: >> http://fuhm.net/super-harmful/ >> > > Ancora quel post, mi sembrava fosse stato debunkato per esteso sei anni fa > dal trio Van Rommum-Martelli-Eby. +1. Quel tizio non c'ha capito molto e si lamenta che in caso di uso scorretto si super, non funziona... doh. A chi ha postato la domanda inizialmente: ignora questo link. Oppure, se lo leggi, salta direttamente alle conclusioni (dove dice *come* si usa super, evidentemente dopo che gli hanno corretto tutte le cappellate che ha scritto prima). -- Daniele Varrazzo - Develer S.r.l. http://www.develer.com ___ Python mailing list Python@lists.python.it http://lists.python.it/mailman/listinfo/python
Re: [Python] Passare perametri a/tra classi
On 17 May 2011 11:47, Gasparini Andrea wrote: > e giusto per completezza: > http://fuhm.net/super-harmful/ > Ancora quel post, mi sembrava fosse stato debunkato per esteso sei anni fa dal trio Van Rommum-Martelli-Eby. ___ Python mailing list Python@lists.python.it http://lists.python.it/mailman/listinfo/python
Re: [Python] Passare perametri a/tra classi
ciao On Tue, May 17, 2011 at 11:34 AM, Marco Mariani wrote: > 2011/5/17 simozack > >> class Morlet(Cwt): >> def __init__(self, data, largestscale=1, notes=0, order=2, >> scaling='linear', omega0=0): >> super(Morlet, self).__init__(data, largestscale=1, notes=0, >> order=2, scaling='linear') > > manca > > class Cwt(object): e giusto per completezza: http://fuhm.net/super-harmful/ -- - gaspa - ___ Python mailing list Python@lists.python.it http://lists.python.it/mailman/listinfo/python
Re: [Python] Passare perametri a/tra classi
2011/5/17 simozack class Morlet(Cwt): > def __init__(self, data, largestscale=1, notes=0, order=2, > scaling='linear', omega0=0): >super(Morlet, self).__init__(data, largestscale=1, notes=0, > order=2, scaling='linear') > manca class Cwt(object): ___ Python mailing list Python@lists.python.it http://lists.python.it/mailman/listinfo/python
Re: [Python] Passare perametri a/tra classi
2011/5/17 M@T : > Però avrei la necessità di passare il parametro _omega0=xxx quando chiamo la > classe tipo così: > cw=Morlet(A,maxscale,notes,scaling=scaling,_omega0=5) Quando si eredita da una classe, se non esplicitato nella nuova classe, viene lanciato l'__init__ della classe da cui si deriva. Infatti, se noti l'__init__ della classe Cwt non ha quel parametro. Per risolvere hai diversi metodi, ma quello che a me piace di più (solo perché più esplicito) è: class Morlet(Cwt): def __init__(self, data, largestscale=1, notes=0, order=2, scaling='linear', omega0=0): super(Morlet, self).__init__(data, largestscale=1, notes=0, order=2, scaling='linear') self._omega0 = omega0 E vivi felice. Ciao, Simone ___ Python mailing list Python@lists.python.it http://lists.python.it/mailman/listinfo/python
Re: [Python] Selenium 2.0 webdriver api python + tutorial
Balan Victor wrote: > Scusate ma non ci salto fuori, soprattutto perché manca la documentazione. > Per esempio ho questo script: > > from selenium import webdriver > browser=webdriver.Firefox() > browser.get('http://www.google.it') > > ora voglio vedere tutte le textbox e tutti i bottoni presenti nella pagina, > come faccio? > grazie > Seleniumhq non ti aiuta ad analizzare la pagina, si usa per eseguire nel browser le operazioni che faresti con la tastiera o il mouse. Io di solito faccio in questo modo: - uso Selenium IDE per registrare le azioni (http://seleniumhq.org/projects/ide/) - esporto in python - ri-fattorizzo il codice in modo da avere delle funzioni base riutilizzabili; di solito riscrivo e semplifico anche gli xpath generati Il risultato di Selenium IDE è una cosa del genere: from selenium import selenium import unittest, time, re class Untitled(unittest.TestCase): def setUp(self): self.verificationErrors = [] self.selenium = selenium("localhost", , "*chrome", "https://addons.mozilla.org/";) self.selenium.start() def test_untitled(self): sel = self.selenium sel.open("/en-US/firefox/addon/selenium-expert-selenium-ide/") sel.click("//div[@id='masthead']/h1/a") sel.wait_for_page_to_load("3") sel.click(u"link=Continue reading ?") sel.wait_for_page_to_load("3") def tearDown(self): self.selenium.stop() self.assertEqual([], self.verificationErrors) if __name__ == "__main__": unittest.main() > Il giorno 13 maggio 2011 20:03, Balan Victor ha > scritto: > >> grazie, >> è sono tutti link che ho già visitato solo li ho trovati un po complessi >> per me, per questo mi sono rivolto alla mailing list. >> Proverò a sforzarmi e vedo cosa riesco a tirare fuori. >> >> Ho altra domanda, oltre all'ide disponibile come plugin per Firefox esiste >> qualche ide che permette di registrare le azioni compiute e generare codice >> python in automatico? >> Selenium IDE permette sia di registrare le azioni che esportare i comandi in vari linguaggi tra cui python (options -> format). >> Il giorno 13 maggio 2011 14:49, Riccardo Lemmi ha >> scritto: >> >> Balan Victor wrote: >>> >>> > qualche settimana fa ho aperto una discussione riguardo strumenti per >>> > automatizzare operazioni su pagine web. >>> > Qualcuno di vuoi mi ha suggerito selenium. Ho provato a vedere il sito, >>> > documentazione ecc. Ho visto che c'è la versione 2.0 alias webdriver. >>> > Tuttavia non riesco a capire se la nuova versione supporta anche python >>> o >>> > solo java e c#. Sul sito ufficiale ho trovato solo riferimenti a java e >>> c#. >>> > Inoltre non ho trovato nessuna guida/tutorial/api che descriva meglio il >>> > funzionamento di questo software. >>> > Qualcuno mi sa aiutare a trovare qualche risorsa? >>> > Grazie >>> >>> La libreria per collegarti al Selenium Remote Control: >>> http://pypi.python.org/pypi/selenium >>> >>> La documentazione (minimale) della libreria è qui: >>> http://code.google.com/p/selenium/wiki/PythonBindings >>> >>> ma è meglio se guardi il codice: >>> >>> http://code.google.com/p/selenium/source/browse/#svn%2Ftrunk%2Fpy%2Fselenium >>> >>> I comandi del controller: >>> >>> http://seleniumhq.org/docs/02_selenium_ide.html#selenium-commands-selenese >>> >>> -- >>> Riccardo Lemmi >>> >>> ___ >>> Python mailing list >>> Python@lists.python.it >>> http://lists.python.it/mailman/listinfo/python >>> >> >> -- Riccardo Lemmi ___ Python mailing list Python@lists.python.it http://lists.python.it/mailman/listinfo/python
Re: [Python] R: Re: psycopg, cursori e connessioni: tenere occupato un id
ehm, non sono sicuro di aver capito l'esigenza iniziale forse il problema nasce dal volere usare l'identificativo numerico del ddt anche come chiave primaria ...perché non tenere due campi distinti? siano essi: id (vera e propria chiave primaria, tendenzialmente trasparente all'utente), numero_documento (il numero che l'operatore vede e che viene poi stampato sui report cartacei: quest'ultimo è quello che l'operatore considera "numero del ddt") in questo modo la chiave primaria id la puoi inizializzare/alimentare subito con una sequence senza bisogno di lock o altro (meccanismo semplice ed efficente, trovi un sacco di doc ...io ho presente oracle ma immagino che in posgress il giro sia simile) il ddt nasce in bozza, e tale rimane fintanto che l'operatore conferma i dati e "registra" il ddt, solo a quel punto il ddt viene "battezzato" e riceve un numero_documento univoco in questo modo non hai il problema di assegnare degli id e poi doverli revocare (e recuperare/riutilizzare) perché l'operatore cambia idea L'unico problema che ti rimane è valorizare il campo numero_documento una volta che l'operatore ha confermato. Beh, qui puoi usare il giro che ti è già stato detto: * lock tabella * update set numero_documento=(select max(numero_documento)+1) where id = * commit Da notare che il campo numero_documento può essere tranquillamente classificato come unique su db. Infatti l'rdbms garantisce che il vincolo sia soddisfatto esclusivamente sulle righe valorizzata. Questo significa che puoi permetterti di tenere un numero arbitrario di ddt in bozza senza fastidi. Sarà l'rdbms poi a garantire che se hanno un valore allora questo è univoco (anche qui ho presente oracle ma immagino che per posgress sia lo stesso) spero di essere stato chiaro, altrimenti chiedi Marco 2011/5/17 Daniele Varrazzo > On Tue, 17 May 2011 08:32:46 +0200 (CEST), "marco...@libero.it" > wrote: > > La notte mi sa che ha portato consiglio. > > [snip di deliri con 3 tabelle da tenere in sync] > > Meglio se mangi più leggero a cena. > > > -- > Daniele Varrazzo - Develer S.r.l. > http://www.develer.com > ___ > Python mailing list > Python@lists.python.it > http://lists.python.it/mailman/listinfo/python > ___ Python mailing list Python@lists.python.it http://lists.python.it/mailman/listinfo/python
[Python] Passare perametri a/tra classi
Ciao a tutti ho un problemino che non riesco a risolvere. Ho queste 2 classi Cwt e Morlet: class Cwt: fourierwl=1.00 def _log2(self, x): # utility function to return (integer) log2 return int( NP.log(float(x))/ NP.log(2.0)+0.0001 ) def __init__(self, data, largestscale=1, notes=0, order=2, scaling='linear'): """ Continuous wavelet transform of data data:data in array to transform, length must be power of 2 notes: number of scale intervals per octave largestscale: largest scale as inverse fraction of length of data array scale = len(data)/largestscale smallest scale should be >= 2 for meaningful data order: Order of wavelet basis function for some families scaling: Linear or log """ ndata = len(data) self.order=order self.scale=largestscale self._setscales(ndata,largestscale,notes,scaling) self.cwt= NP.zeros((self.nscale,ndata), NP.complex64) omega= NP.array(range(0,ndata/2)+range(-ndata/2,0))*(2.0*NP.pi/ndata) datahat=NP.fft.fft(data) self.fftdata=datahat for scaleindex in range(self.nscale): currentscale=self.scales[scaleindex] self.currentscale=currentscale # for internal use s_omega = omega*currentscale psihat=self.wf(s_omega) psihat = psihat * NP.sqrt(2.0*NP.pi*currentscale) convhat = psihat * datahat W= NP.fft.ifft(convhat) self.cwt[scaleindex,0:ndata] = W return def _setscales(self,ndata,largestscale,notes,scaling): if scaling=="log": if notes<=0: notes=1 # adjust nscale so smallest scale is 2 noctave=self._log2( ndata/largestscale/2 ) self.nscale=notes*noctave self.scales=NP.zeros(self.nscale,float) for j in range(self.nscale): self.scales[j] = ndata/(self.scale*(2.0**(float(self.nscale-1-j)/notes))) elif scaling=="linear": nmax=ndata/largestscale/2 self.scales=NP.arange(float(2),float(nmax)) self.nscale=len(self.scales) else: raise ValueError, "scaling must be linear or log" return def getdata(self): return self.cwt def getcoefficients(self): return self.cwt def getpower(self): return (self.cwt* NP.conjugate(self.cwt)).real def getscales(self): return self.scales def getnscale(self): return self.nscale class Morlet(Cwt): _omega0=5 fourierwl=4* NP.pi/(_omega0+ NP.sqrt(2.0+_omega0**2)) def wf(self, s_omega): H=(s_omega>0)*1. xhat=0.75112554*( NP.exp(-(s_omega-self._omega0)**2/2.0))*H return xhat Da un altro file importo la classe Morlet con: from nomefile import Morlet e poi la richiamo col comando cw=Morlet(A,maxscale,notes,scaling=scaling) e tutto funziona!! Però avrei la necessità di passare il parametro _omega0=xxx quando chiamo la classe tipo così: cw=Morlet(A,maxscale,notes,scaling=scaling,_omega0=5) ho fatto un po di prove ma non riesco. Ogni aiuto è ben accetto. Grazie Matteo ___ Python mailing list Python@lists.python.it http://lists.python.it/mailman/listinfo/python
Re: [Python] R: Re: psycopg, cursori e connessioni: tenere occupato un id
On Tue, 17 May 2011 08:32:46 +0200 (CEST), "marco...@libero.it" wrote: > La notte mi sa che ha portato consiglio. [snip di deliri con 3 tabelle da tenere in sync] Meglio se mangi più leggero a cena. -- Daniele Varrazzo - Develer S.r.l. http://www.develer.com ___ Python mailing list Python@lists.python.it http://lists.python.it/mailman/listinfo/python
Re: [Python] info su gestione pacchetti di file python
Elisabetta Ronchieri wrote: > Questo sara' sicuramente il passo da fare successivo agli autotool. Hai detto autotools? Hai veramente detto autotools? Spero vivamente tu non abbia detto autotools. Nel caso tu abbia detto autotools, le mie più sentite condoglianze. -- Nicola Larosa - http://www.tekNico.net/ Articles in the literature of procrastination often allude to the author's own problems with finishing the piece. (This article will be no exception.) - James Surowiecki, October 2010 ___ Python mailing list Python@lists.python.it http://lists.python.it/mailman/listinfo/python