Re: [Python] OT Soluzione per PDF

2016-12-01 Per discussione Riccardo Lemmi
Mattia.Baldassarri wrote:

> Ciao ragazzi, vorrei un informazione, dovrei programmare per un
> cliente uno script per leggere i PDF contenuti in una cartella di rete
> e poi metterli insieme e creare un PDF unico, ho la necessita di farlo
> con python perché lo devo inserire in un raspberry, chiedevo se è una
> cosa fattibile e se qualcuno ha qualche linea guida.
> Grazie.

Controlla se pdftk è pacchettizzato per raspberry, se devi solo unire 
dei file penso che sia la soluzione più semplice.
-- 
   Riccardo Lemmi

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


Re: [Python] Comunicazione via Telnet.

2015-12-07 Per discussione Riccardo Lemmi
Gabriele Battaglia wrote:

> Salve.
> Torno sull'argomento Telnet perchè nel frattempo ho circoscritto un 
po
> il problema.
> 
> Sono dunque sotto Win 7 a 32 Bits, uso Python 2.7.10.
> 
> Apro una connessione Telnet con un server tramite il metodo open()
> della classe Telnet del modulo telnetlib.
> Scrivo sul canale con ...write(), leggo le singole stringhe con
> ...read_eager() oppure tutto il buffer dall'ultima lettura con il
> metodo read_very_eager().
> 
> Premetto che non ho capito la differenza fra read_lazy() e
> read_eager() e le loro varianti con _very_, se non che Eager riceve
> effettivamente l'output del server, mentre lazy, no.
> 
> La domanda è, come faccio a capire quando c'è qualcosa da leggere 
nel
> buffer?
> ...

Ti consiglio di provare pexpect:

  https://pypi.python.org/pypi/pexpect/


-- 
   Riccardo Lemmi

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


Re: [Python] Problema Mail : Missing required header field: "Date"

2015-10-16 Per discussione Riccardo Lemmi
Riccardo Brazzale wrote:

> Ciao a tutti.
> 
> Premetto che non so se il problema sta dalla parte di python ma ci
> provo, non vorrei che bastasse un niente sul codice e il problema
> scompare
> 
> Ho questo programma che manda a destra e a manca dei documenti pdf:
> 
> msg = MIMEMultipart()
> msg['From'] = mailfrom
> msg['To'] = to
> msg['Subject'] = subject
> part = MIMEBase('application', 'octet-stream')
> part.set_payload(open(attach, 'rb').read())
> Encoders.encode_base64(part)
> part.add_header('Content-Disposition',
>'attachment; filename="%s"' %
> os.path.basename(attach))
> testa = text
> piede = footer
> part1 = MIMEText(testa, 'html')
> part2 = MIMEText(piede, 'html')
> msg.attach(part)
> msg.attach(part1)
> msg.attach(part2)
> server.sendmail(mailusername, to, msg.as_string())
> server.quit()
> 
> Ho dei rarissimi casi in cui mi torna questo:
> 
> The message WAS NOT relayed to:
> 
> <a...@acme.com <i...@bizeta-macchinehf.it>>:
> 
> 554 5.6.0 bounce, id=24119-12 - bad header
> 
> This nondelivery report was generated by the program amavisd-new at
> host
> 
> s2.asws3.com. Our internal reference code for your message is
> 
> 24119-12/qf8Mkr96lFAq
> 
> INVALID HEADER
> Missing required header field: "Date"
> 
> Googlando in giro ho trovato che amavisd fa di queste cose ma non ho
> trovato un workaround per risolvere tranne quello che il destinatario
> debba mettere le mani sulle configurazioni di spamassasin e amavisd.
> 
> Ho qualche speranza?
> 
> Grazie
> 

Hai provato ad aggiungere l'header mancate? 

 msg['Date'] = time.asctime()


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


Re: [Python] Neofita Python [was Re: Arduino]

2015-06-19 Per discussione Riccardo Lemmi
Giuseppe Russo wrote:

 ciao Giovanni
 grazie per la tua disponibilità. ho in mente grandi idee per il
 futuro; ma per l’immediato vorrei imparare a gestire una data base. da
 dove comincio?
 
 Giuseppe Russo
 g-ru...@fastwebnet.it
 ...

http://www.cs.unibo.it/~difelice/dbsi/

N: occhio al top-posting :D

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


Re: [Python] CSound.

2015-05-14 Per discussione Riccardo Lemmi
Gabriele Battaglia wrote:

 Giorno.
 C'è qualcuno in lista, che ha esperienza d'uso di questo pacchetto?
 http://www.csounds.com/
 
 GB.

Se ti interessa usare python:

  http://code.google.com/p/pyo/

è un ottima libreria.

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


Re: [Python] Automatizzare inserimento dati su pagina web

2014-11-07 Per discussione Riccardo Lemmi
Gollum1 wrote:

 Ecco il mio problema, a parte che lo script dovrebbe girare,
 purtroppo, su una macchina winzoz, dovrei analizzare un file CVS, in
 cui ho solamente un campo data, un campo orario e un numero di
 telefono. E questo è tutto sommato banale, il problema è che nel
 momento indicato dalla data e dall'ora presa da un record del file,
 deve inserire il numero di telefono in un particolare campo di una
 pagina web (in intranet) e dare il submit della modifica.
 
 Dite che è fattibile la cosa o devo trovare altre soluzioni?
 byez

Se la form è stabile e non richiede l'analisi del codice html 'request' 
è la soluzione più semplice. 

Se devi fare l'analisi della pagina prova:

  http://www.crummy.com/software/BeautifulSoup/

Se invece l'interfaccia è generata da javascript hai bisogno di librerie 
che si interfacciano con il browser tipo questa:

  http://selenium-python.readthedocs.org/en/latest/

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


Re: [Python] Serializzazione di variabili.

2014-06-24 Per discussione Riccardo Lemmi
Gabriele Battaglia wrote:

 Il 24 giugno 2014 15:11, Gabriele Battaglia iz4...@libero.it ha
 scritto:
 Metti che io arrivi ad un certo punto del flusso del mio programma,
 con tante variabili dai nomi più fantasiosi.
 
 Arrivare ad un certo punto del programma con tante variabili dai nomi
 fantasiosi e da salvare...
 
 secondo me dovrebbe far sorgere il dubbio che sia da rivedere
 l'impostazione del programma.
 
 Può esistere un nome comune per riferirsi a *tutte* queste variabili?
 Se sì probabilmente hai bisogno di una sola variabile che sia una
 lista o un dizionario.
 
 Non conoscendo il problema che vuoi risolvere non so dirti di più.
 
 GB: ciao Daniele, dubbio più che lecito, anzi, certezza.
 Mi serviva solo capire come salvare più di una variabile con pickle,
 ma il tuo discorso non fa una piega, in un programma ben strutturato,
 si salvano oggetti che contengono una gran quantità di dati
 strutturati. Qui non c'è un vero e proprio problema da risolvere,
 chiedevo più che altro per chiarirmi le idee sull'uso di pickle e dei
 suoi metodi, conoscenze da usare poi.
 
 Grazie.
 GB.

Non so quanti usino direttamente i pickle per memorizzare gli oggetti. 
Ti consiglio di guardare ZODB, che usa i pickle ma fornisce anche una 
serie di funzionalità che semplificano la vita dello sviluppatore:

https://pypi.python.org/pypi/ZODB

-- 
   Riccardo Lemmi

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


Re: [Python] ricaricare da interprete.

2014-06-20 Per discussione Riccardo Lemmi
Alessandro Balzano wrote:

 reload(key) dovrebbe fare al caso tuo.
 
 
 Il giorno 20 giugno 2014 11:48, Gabriele Battaglia iz4...@libero.it
 ha scritto:
 
 Buongiorno a tutti.
 Torno con una domanda basic, non nel senso del linguaggio Basic, ma
 in quello della sua estrema semplicità.
 Devo testare una funzione che sto scrivendo, mettiamo che la funzione
 si chiami key() e stia dentro al file key.py
 Voglio testarla da interprete.

 from key import key

 poi faccio i test.

 A questo punto, modifico la funzione e voglio testare l'effetto delle
 mie modifiche.

 Ho provato a ripetere l'import ma sembra non aggiornare niente. Ho
 provato ad usare

 del key

 e poi a reimportare ma sembra che mi carichi la versione vecchia.

 How to do?

 Grazie.

Per cose semplici il reload va benissimo, ma se devi fare i test in 
shell tanto vale che usi direttamente gli unittest.

-- 
   Riccardo Lemmi

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


Re: [Python] Problema con sito https

2014-03-24 Per discussione Riccardo Lemmi
Pietro Battiston wrote:

 Salve a tutti,
 
 è da un po' che sbatto la testa contro questo problema:
 
 import urllib2
 urllib2.urlopen('https://www.u-gov.sssup.it')
 [... lungo traceback ...]
 URLError: urlopen error [Errno 1] _ssl.c:504: error:140773E8:SSL
 routines:SSL23_GET_SERVER_HELLO:reason(1000)
 
 
 Succede sia con urllib2 che con il fork di urllib2 che mechanize
 ingloba.
 ...

se quelle sono le uniche due righe e subito parte l'errore hai un 
problema di tipo diverso, a me da questo:

 import urllib2
 x = urllib2.urlopen('https://www.u-gov.sssup.it')
 x.read()
'html\nhead\nmeta http-equiv=refresh 
content=0;url=https://www.u-gov.sssup.it/sssup/;\ntitleU-GOV/title  
\n/head\nbody\n/body\n/html\n'

non è che ti manca qualche libreria di sistema o pyhton non è compilato 
con il supporto ssl?

 Pochissima di esperienza ed un po' più di ricerca su google mi hanno
 spinto a pensare che fosse un problema con il certificato SSL non
 trusted, e a fare monkey patching di urllib2 e di ssl come se non ci
 fosse un domani... ma invece pare che proprio la comunicazione SSL non
 parta nemmeno se impongo di non fare il check (che peraltro mechanize
 di default fa, ma urllib2 mi pare ancora di no).
 
 Ho provato sia in una debian testing che in una Ubuntu ben più datata,
 non cambia niente.
 
 Ovviamente, la cosa che non capisco è che invece in un browser si apre
 perfettamente.
 
 Qualsiasi illuminazione sarà illuminante!
 
 Grazie,
 
 Pietro

-- 
   Riccardo Lemmi

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


Re: [Python] Problema con sito https

2014-03-24 Per discussione Riccardo Lemmi
Dario Bertini wrote:

 Riccardo, curioso che a te funzioni: leggi il mio messaggio, che
 spiega il problema
 
 forse a te funziona perchè hai una versione diversa di openssl?
 
 puoi darci l'output di
 python -c import ssl; print(ssl.OPENSSL_VERSION)
 
 e di
 
 curl -v 'https://www.u-gov.sssup.it'
 
 ?
 

Certo, ecco qua:

 $ python -c import ssl; print(ssl.OPENSSL_VERSION)
Traceback (most recent call last):
  File string, line 1, in module
AttributeError: 'module' object has no attribute 'OPENSSL_VERSION'

Questo è un python 2.6.5: interessante :D

Con un python 2.7 compilato da me:

 $ /opt/python-2.7.2/bin/python -c import ssl; 
print(ssl.OPENSSL_VERSION)
OpenSSL 0.9.8k 25 Mar 2009

e funziona ancora il codice sopra mentre con un python 3.1 (sempre 
compilato da me, sullo stessa macchina degli altri due interpreti:

 import urllib.request as urllib2
 x=urllib2.urlopen('https://www.u-gov.sssup.it')
Traceback (most recent call last):
  File /opt/python-3.1.1/lib/python3.2/urllib/request.py, line 1136, 
in do_open
h.request(req.get_method(), req.selector, req.data, headers)
  File /opt/python-3.1.1/lib/python3.2/http/client.py, line 964, in 
request
self._send_request(method, url, body, headers)
  File /opt/python-3.1.1/lib/python3.2/http/client.py, line 1002, in 
_send_request
self.endheaders(body)
  File /opt/python-3.1.1/lib/python3.2/http/client.py, line 960, in 
endheaders
self._send_output(message_body)
  File /opt/python-3.1.1/lib/python3.2/http/client.py, line 805, in 
_send_output
self.send(msg)
  File /opt/python-3.1.1/lib/python3.2/http/client.py, line 743, in 
send
self.connect()
  File /opt/python-3.1.1/lib/python3.2/http/client.py, line 1105, in 
connect
server_hostname=server_hostname)
  File /opt/python-3.1.1/lib/python3.2/ssl.py, line 179, in 
wrap_socket
_context=self)
  File /opt/python-3.1.1/lib/python3.2/ssl.py, line 266, in __init__
raise x
  File /opt/python-3.1.1/lib/python3.2/ssl.py, line 262, in __init__
self.do_handshake()
  File /opt/python-3.1.1/lib/python3.2/ssl.py, line 441, in 
do_handshake
self._sslobj.do_handshake()
ssl.SSLError: [Errno 1] _ssl.c:392: error:14077417:SSL 
routines:SSL23_GET_SERVER_HELLO:sslv3 alert illegal parameter

e il curl:

 $ curl -v 'https://www.u-gov.sssup.it'
* About to connect() to www.u-gov.sssup.it port 443 (#0)
*   Trying 193.205.80.7... connected
* Connected to www.u-gov.sssup.it (193.205.80.7) port 443 (#0)
* successfully set certificate verify locations:
*   CAfile: none
  CApath: /etc/ssl/certs
* SSLv3, TLS handshake, Client hello (1):
* error:14077417:SSL routines:SSL23_GET_SERVER_HELLO:sslv3 alert illegal 
parameter
* Closing connection #0
curl: (35) error:14077417:SSL routines:SSL23_GET_SERVER_HELLO:sslv3 
alert illegal parameter

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


Re: [Python] Problema con sito https

2014-03-24 Per discussione Riccardo Lemmi
Dario Bertini wrote:

 uh, curioso O_o
 
 immagino che il tuo python3 sia linkato con la stessa versione di
 OpenSSL, giusto?
 
 
 

Si, è la libreria di sistema.

$ /opt/python-3.1.1/bin/python3 -c import ssl; 
print(ssl.OPENSSL_VERSION)
OpenSSL 0.9.8k 25 Mar 2009

-- 
   Riccardo Lemmi

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


Re: [Python] alternative ad eval

2014-03-20 Per discussione Riccardo Lemmi
Balan Victor wrote:


 Siccome a naso quello che vuoi fare e' un semplice expression
 language, hai comunque bisogno, a mio avviso di un vero parser.
 Davvero, e' roba facile da scrivere, una volta che usi la libreria
 giusta, e' piu' robusto e quando si spacca si capisce meglio perche'.

 
 quindi pyparsing?
 Facili da scrivere ... se uno ha basi solide sull'argomento. Io che, a
 parte un po su wikipedia, sono completamente ignorante nella materia
 mi trovo un po spaesato XD
 
 ora cmq provo a vedere se riesco a creare qualcosina con pyparsing.
 
 Alcune librerie ci sono, ad esempio:
   https://pypi.python.org/pypi/RestrictedPython
 ce ne sono anche altre: cerca restricted python su pypi.
 
 
 Ho dato un'occhiata e, anche se fosse sicuro al 100%, non mi risolve
 il secondo problema: ossia evitare operazioni del tipo 1 *
 10. Come ho scritto nel primo post gli utenti che generano queste
 stringhe sono solo utenti autorizzati. Quindi è difficile che facciano
 cose stupide. E' molto più facile che commettano errori che possano
 saturare la macchina...

Allora qesta libreria mi pare più adatta:

  https://pypi.python.org/pypi/simpleeval

ma tieni conto che (per quello che mi ricordo da Informatica II) quel 
tipo di problemi dovrebbe far parte della categoria degli 'indecidibili' 
quindi ammesso che il problema sia risolvibile si deve comunque usare un 
linguaggio con un domino ridotto (in modo che non sia idempotente con la 
macchina di Turing), da cui la necessità usare una grammatica adeguata.

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


Re: [Python] alternative ad eval

2014-03-18 Per discussione Riccardo Lemmi
Balan Victor wrote:

 Ho un array di tuple cosi formate da 3 elementi:
 (int|float|boolean|string|datetime|..., string, boolean). Es:
 
 [
  (10, value = 1, True),
  (Ciao, o in value, True),
  (True, value == False, False),
  (92.5f, value = 92.0f, True),
 ]
 Il primo elemento della tupla può essere qualunque tipo o classe di
 python. Il secondo elemento è una espressione da applicare sulla tupla
 e che deve restituire True or False(value si riferisce al primo
 elemento della tupa) Il terzo elemento è il risultato dell'operazione
 appena sopra.
 
 A intervalli regolari ho bisogno di scorrere l'array sopra e
 aggiornare il valore del terzo elemento.
 Ho pensato di usare eval in questo modo:
 
 def check_status(value, eval_string):
   rc =  eval(eval_string)
   if rc is not bool: raise WrongEvalString()
   return rc
 
 Conosco i rischi di eval e vorrei evitare di usarlo però non riesco a
 trovare nulla di altrettanto semplice e con le stesse potenzialità.
 
 NB: In realtà la stringa che fa la validazione può essere impostata
 solo da qualcuno di autorizzato quindi il rischio che mi cancelli
 tutto il fs non ci dovrebbe essere, e non dovrebbero nemmeno fare
 operazioni del tipo value ** value però in ogni caso vorrei trovare
 qualcosa che mi metta al sicuro da questo tipo di operazioni.
 
 grazie

Alcune librerie ci sono, ad esempio:

  https://pypi.python.org/pypi/RestrictedPython

ce ne sono anche altre: cerca restricted python su pypi.
-- 
   Riccardo Lemmi

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


Re: [Python] Gestione delle uscite audio

2014-02-11 Per discussione Riccardo Lemmi
Amedeo Milella wrote:

 Ciao. Io sviluppo su Ubuntu 13.10 con Python3.3.
 
 Vorrei sviluppare un software per esame audiometrico quindi ho bisogno
 di mandare un segnale indipendente L - R aud una cuffia e
 contemporaneamente un segnale indipendente ad un dispositivo vibrante
 posto dietro l'orecchio. Non sono sicuro a che tipo di uscite devo
 collegarmi (non ho ancora visionato i modelli cuffia/vibratore) ma
 presumo: uscita jack per la cuffia ed eventualmente USB per il
 vibratore
 
 ...

Data la semplicità degli use case forse anche pygame è sufficiente:

  http://pygame.org/news.html

per cose complesse consiglio pyo, oltre ad avere molte funzioni avanzate 
per trattare i segnali audio permette di generare anche delle semplici 
interfacce:

  https://code.google.com/p/pyo/

eventualmente puoi usare jackd se ci sono necessità di realtime (sotto 
linux, per altre piattaforme non ho idea).
-- 
   Riccardo Lemmi

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


Re: [Python] Pyo.

2014-02-11 Per discussione Riccardo Lemmi
Gabriele Battaglia wrote:

 Ciao.
 Sapete se esiste qualcosa da leggere su Pyo, in italiano?
 Sto provando col suo tutorial online, l'inglese è solo una delle
 difficoltà... Mi sembra un po complessa anche la spiegazione delle
 classi e del loro utilizzo e così.. beh, mi chiedevo se magari qualcun
 altro a parte l'autore, avesse scritto e pubblicato qualcosa.
 Grazie.
 GB.

In italiano sono sicuro che non c'è nulla (a proposito talk al pycon su 
pyo può interessare?) ma la documentazione è ben fatta e c'è una 
cartella con molti esempi da cui partire.

Un esempio 
  https://soundcloud.com/axaroth/damned-chorus
generato con pyo.
-- 
   Riccardo Lemmi

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


Re: [Python] Il dilemma degli array mutabili

2013-09-19 Per discussione Riccardo Lemmi
Piergiuliano Bossi wrote:

 2013/9/18 Riccardo Lemmi ricca...@reflab.com
 


 Mi sfugge il caso, forse un esempio chiarirebbe... L'unico posto in
 cui vedo male il codice messo sopra è quello in cui si usano gli
 elementi dell'array non in sequenza ma pescando in qua e la'


 Ho visto la luce.
 
 Questo e' il codice che ha causato il thread (semplificato,
 ovviamente);
 
 def evaluate(list):
 return sum(v for v in list if v % 2 == 0)
 
 def _subtract(list1, list2):
 result = list1[:]
 for val in list2:
 result.remove(val)
 return result

Manca un check prima di fare il remove. Alternativamente la scriverei 
così:

def _subtract(list1, list2):
result = []
for val in list2:
if val not in list2:
 result.append(val)
return result

ma se non ci sono ridondanze nelle due liste cioè stai effettivamento 
implementando la differenza fra insiemi:

result = set(list1) - set(list2)

o

result = set(list1).difference(list2) 

 def useless(list):
 useful = list[:]
 for val in list:
 useful.remove(val)
 if evaluate(useful) != evaluate(list):
 useful.append(val)
 return _subtract(list, useful)
 
 if __name__ == __main__:
 print(useless([]))# = []
 print(useless([1, 2, 3, 5, 8]))# = [1, 3, 5]
 
 Codice abbastanza orrido, no?
 
 L'idea e' calcolare gli elementi di una lista che non contribuiscono
 al valore determinato da una certa funzione. Diciamo che evaluate in
 realta' e' molto piu' complessa (non computazionalmente, ma
 matematicamente non e' semplice), che e' insensibile all'ordine degli
 elementi nella lista (da cui l'uso di remove non posizionale) e che
 ovviamente questo codice non e' ottimizzato (eg: e' inutile chiamare
 evaluate(list) ogni volta nel ciclo).
 

detto così sembra proprio che tu stia lavorando con i set...

 L'ho riscritto senza copy.copy ma con [:] e ovviamente tutto bene, ma
 non e' un gran guadagno. Poi ho provato a fare una comprehension che
 fa tutto al volo e mi e' venuta al primo colpo:
 
 def useless(list):
 return [list[i] for i in range(len(list)) if evaluate(list[:i] +
 list[i+1:]) == evaluate(list)]
 
 Oserei dire che e' persino un pelo piu' comunicativa cosi', visto che
 non devo calcolare una lista e poi sottrarla all'altra.
 Mi sento come se avessi trovato il barattolo di nutella di Moretti, un
 cucchiaione e nessuno attorno...  :)
 
 Ciao
 Giuliano
 
 PS: queste sono le cose che fanno scattare l'aore...
 
 

-- 
   Riccardo Lemmi

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


Re: [Python] Il dilemma degli array mutabili

2013-09-18 Per discussione Riccardo Lemmi
Piergiuliano Bossi wrote:

 Un'altra cosa che mi spiazza e' la seguente: sono abituato a
 manipolare e trasformare array immutabili, in cui ogni trasformazione
 ti ritorna una copia dell'array di partenza, per cui ci puoi fare le
 piu' immani schifezze senza effetti collaterali.
 ...

Crei la nuova lista leggendo da quella vecchia:

newl = []
for i in oldl:
   newl.append(applica_shifezze_varie_su(i))

(stessa cosa con le comprehension)

 In Python le liste sono mutabili e c'e' ben poco che si possa fare
 senza mutarle manipolandole, per cui in un metodo che riceve una lista
 in ingresso mi sono trovato spesso a copiarle in una variabile locale
 prima di lavorarci sopra:
 import copy
 def yada(foo):
 bar = copy.copy(foo)
 # ecc.
 
 Usare un array.array non cambia le cose di fatto, introducendo tutta
 un'altra categoria di limitazioni. Le tuple sono immutabili, ma non
 funzionano nel senso che ho spiegato sopra (si', lo so, per la append
 potrei creare una nuova tupla e passarle in ingresso una lista
 concatenata della vecchia tupla e del nuovo elemento, ma non mi sembra
 il modo in cui il BDFL le ha intese).
 
 Per cui la mia domanda e', quando volete manipolare strutture tipo
 array senza mutarle o mutandole in copia:
 1) le copiate all'inizio come dicevo sopra
 2) non usate liste, ma tuple, ma poi come compensate la mancanza di
 append e remove (sembra una contraddizione in termini ma non lo e',
 basterebbe che append e remove ritornino nuove strutture dati, copie
 dell'originale) 3) vi toccate (cit)
 
 Ho come la sensazione che Marco dira': usa una comprehension, che non
 e' una cattiva idea, ci mancherebbe, ma le comprehension mal si
 prestano quando l'algoritmo che stai implementando e' modellato su
 append() e remove() o sbaglio?
 
 Grazie e ciao
 Giuliano
 

Mi sfugge il caso, forse un esempio chiarirebbe... L'unico posto in cui 
vedo male il codice messo sopra è quello in cui si usano gli elementi 
dell'array non in sequenza ma pescando in qua e la'

-- 
   Riccardo Lemmi

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


Re: [Python] Rasterizzare un layer vettoriale usando la libreria GDAL

2013-01-16 Per discussione Riccardo Lemmi
Maurizio Minissale wrote:

 Perdona l'ignoranza ma cosa intendi per canale #gdal?

Il canale irc su freenode, ma va bene anche la mailing list. Trovi i 
riferimenti nella homepage:
http://www.gdal.org/
-- 
   Riccardo Lemmi
___
Python mailing list
Python@lists.python.it
http://lists.python.it/mailman/listinfo/python


Re: [Python] Rasterizzare un layer vettoriale usando la libreria GDAL

2013-01-15 Per discussione Riccardo Lemmi
Maurizio Minissale wrote:

 Ciao a tutti,
 
 quello che sto cercando di fare è ottenere un layer raster partendo da
 un vettoriale.
 Più precisamente ho un vettoriale contenente poligoni e vorrei
 rasterizzare l'informazione di uno specifico campo, ovvero il campo
 'Index' (che ho aggiunto al layer vettoriale originale) contenente
 valori interi compresi tra 0 e 9.
 
 Ho utilizzato l'istruzione:
 
 err = gdal.RasterizeLayer(target_ds, (3,2,1), source_layer,
 burn_values=(0,0,0), options=[ATTRIBUTE= Index])
 
 che effettua la rasterizzazione partendo da un DEM (target_ds) target,
 ma mi ritrovo una matrice piena di 0 e non i valori del campo.
 
 Qualcuno ha qualche suggerimento in merito?
 Purtroppo la documentazione a riguardo non è molto chiara...
 
 Grazie in anticipo,
 Maurizio.

Questo potrebbe rispondere in parte alla tua domanda:

  http://stackoverflow.com/questions/2220749/rasterizing-a-gdal-layer

quoto: you have to make the source and destination extents match or 
everything is clipped out.

Sul canale irc #gdal ti possono dare una indicazione migliore sulle cose 
da controllare.
-- 
   Riccardo Lemmi

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


Re: [Python] Rasterizzare un layer vettoriale usando la libreria GDAL

2013-01-15 Per discussione Riccardo Lemmi
Maurizio Minissale wrote:

 Grazie innanzitutto per la risposta Riccardo,
 
 effettivamente mi sto basando su quanto riportato nel link che mi hai
 postato
 .
 Praticamente ho eseguito le operazioni riportate nella risposta di
 stackoverflow con le modifiche del mio caso specifico (aggiungendo il
 campo 'Index' allo shp).
 Il tuo quoto: you have to make the source and destination extents
 match or everything is clipped out. potrebbe essere la
 risposta...infatti il risultato da me ottenuto non coincide con il DEM
 target, ma piuttosto con gli extents del layer vettoriale, che passo
 come nell'esempio da te citato.
 
 Come suggerisci di procedere?
 
 Maurizio
 
 

Su stackoverflow c'è un esempio funzionante. Se non fa al caso tuo 
l'opzione migliore rimane il canale #gdal.

 Il giorno 15 gennaio 2013 15:05, python-requ...@lists.python.it ha
 scritto:
 ...
 Maurizio Minissale wrote:

  Ciao a tutti,
 
  quello che sto cercando di fare è ottenere un layer raster partendo
  da un vettoriale.
  Più precisamente ho un vettoriale contenente poligoni e vorrei
  rasterizzare l'informazione di uno specifico campo, ovvero il campo
  'Index' (che ho aggiunto al layer vettoriale originale) contenente
  valori interi compresi tra 0 e 9.
 
  Ho utilizzato l'istruzione:
 
  err = gdal.RasterizeLayer(target_ds, (3,2,1), source_layer,
  burn_values=(0,0,0), options=[ATTRIBUTE= Index])
 
  che effettua la rasterizzazione partendo da un DEM (target_ds)
  target, ma mi ritrovo una matrice piena di 0 e non i valori del
  campo.
 
  Qualcuno ha qualche suggerimento in merito?
  Purtroppo la documentazione a riguardo non è molto chiara...
 
  Grazie in anticipo,
  Maurizio.

 Questo potrebbe rispondere in parte alla tua domanda:

   http://stackoverflow.com/questions/2220749/rasterizing-a-gdal-layer

 quoto: you have to make the source and destination extents match or
 everything is clipped out.

 Sul canale irc #gdal ti possono dare una indicazione migliore sulle
 cose da controllare.
 --
Riccardo Lemmi



 --

 Message: 2
 Date: Tue, 15 Jan 2013 12:23:29 +0100
 From: Giovanni Porcari giovanni.porc...@softwell.it
 To: python@lists.python.it
 Subject: [Python] [OT] Trello
 Message-ID: 1fafd885-ec07-4d44-baf8-a35fc896d...@softwell.it
 Content-Type: text/plain; charset=iso-8859-1

 Ho da poco conosciuto Trello (www.trello.com) e me ne sono
 innamorato. Per gestire progetti complessi o anche solo per
 organizzarsi la vita è una meraviglia. Il fatto che sia gratuito lo
 rende perfetto.


 Un grazie a Giovanni Bajo che me lo ha fatto conoscere.


 G

 --

 Message: 3
 Date: Tue, 15 Jan 2013 14:23:37 +0100
 From: Andrea Ambu andrea...@gmail.com
 To: Discussioni generali sul linguaggio Python
 python@lists.python.it
 Subject: [Python] [django] max_age cache control dinamico
 Message-ID:
 
 cafcbtovrko+x2-ry2vrwjr_czvznp9ccclqy8txkccl5j8s...@mail.gmail.com
 Content-Type: text/plain; charset=iso-8859-1

 Ciao!

 Dunque si puo` facilmente controllare la max_age per una view cosi`:

 
 from django.views.decorators.cache import cache_control

 @cache_control(max_age=3600)
 def my_view(request):
 # ...

 

 Ma se volessi che il valore di max_age venga deciso _dentro_ my_view
 come posso fare?

 Per esempio:
 
 def my_view(request):
 if is_good_to_keep_in_cache_for_a_bit(request):
 # set max_age to 36000
 else:
 # set max_age to 42
 # ...
 

 Cheers,
 Andrea
 -- parte successiva --
 Un allegato HTML è stato rimosso...
 URL: 
 
http://lists.python.it/pipermail/python/attachments/20130115/3dc0a2ed/attachment-0001.html
 

 --

 Message: 4
 Date: Tue, 15 Jan 2013 14:40:50 +0100
 From: Marco Beri marcob...@gmail.com
 To: Andrea Ambu andrea...@gmail.com,  Discussioni generali sul
 linguaggio Python python@lists.python.it
 Subject: Re: [Python] [django] max_age cache control dinamico
 Message-ID:
 CAN1J36jHAW4x-kB=
 lu2fr_9yaemycniozzu33iy41ucafvp...@mail.gmail.com
 Content-Type: text/plain; charset=utf-8

 On Tue, Jan 15, 2013 at 2:23 PM, Andrea Ambu andrea...@gmail.com
 wrote:

  Ciao!
  Dunque si puo` facilmente controllare la max_age per una view
  cosi`:
 
  
  from django.views.decorators.cache import cache_control
 
  @cache_control(max_age=3600)
  def my_view(request):
  # ...
 
  
 
  Ma se volessi che il valore di max_age venga deciso _dentro_
  my_view come posso fare?
 
  Per esempio:
  
  def my_view(request):
  if is_good_to_keep_in_cache_for_a_bit(request):
  # set max_age to 36000
  else:
  # set max_age to 42
  # ...
  
 

 Boh, potresti importare patch_cache_control da django.utils.cache.py
 e fare:

 response = patch_cache_control(response, max_age=quello che
 vuoi)

 Oppure provare a passare una property come valore di max_age.

 Entrambe idee non provate: lascio al lettore l'onere

Re: [Python] lanciare programma senza far comparire la shell

2012-11-09 Per discussione Riccardo Lemmi
Matteo Perini wrote:

 
 A differenza di Windows, su Linux dovrebbe avvenire naturalmente.
 Casomai la shell viene aperta dal sistema che usi per lanciarlo. Come
 lanci il programma?


 Grazie della risposta...
 All'avvio del pc faccio partire un comando:
 
 gnome-terminal -e python /home/matteo/Scrivania/prova.py
 --working-directory=/home/matteo/Scrivania/
 
 o, se per caso va in crash, ho un lanciatore sul desktop con la stessa
 dicitura.
 
 
 Il file prova.py mi lancia il programma vero e proprio con il codice:
 
 #!/usr/bin/env python
 import subprocess
 subprocess.call(['python','programm.pyc'])
 
 Immagino che a questo punto stiate ridendo... mi rendo conto da solo
 dell'accrocchio che ho messo in piedi ed è per questo che vi chiedo
 aiuto. Come posso lanciare un programma .py o .pyc in modo efficiente
 e comodo.
 
 Ciao e grazie
 MAtteo

Metti come prima riga dello script:

#!/usr/bin/env python

o il path al python che vuoi usare e con chmod rendi eseguibile lo 
script, a questo punto dovresti essere in grado di lanciarlo 
direttamente.

-- 
   Riccardo Lemmi

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


Re: [Python] django e strutture dati permanenti

2012-10-13 Per discussione Riccardo Lemmi
Riccardo Lemmi wrote:

 Balan Victor wrote:
 
 idee? :)
 
 
 Il giorno 10 ottobre 2012 14:01, Balan Victor
 balan.vict...@gmail.com ha scritto:
 
 quello che devo fare è questo:
 in fase di inizializzazione devo caricare in memoria un
 grafo(networkx) di dimensioni consistenti: 60.000 nodi e più di
 100.000 connessioni. PER ADESSO dovrebbe essere in sola lettura e se
 devo fare delle modifiche posso permettermi di stoppare tutto, fare
 le modifiche e rilanciare l'applicazione.
 Poi in base alle richieste che vengono effettuate devo andare a
 leggere le informazioni che mi servono dal grafo, elaborarle e
 restituirle all'utente.
 ...
 
 Non sarebbe meglio fare il pickle della struttura dati creata in
 memoria da networkx invece di ricreare il grafo ogni volta dal DB?
 
 Ovviamente perchè sia fattibile bisogna controllare che gli oggetti di
 NetworkX siano effettivamente serializzabili, inoltre tenere allineati
 il DB e il grafo richiede sicuramente del codice specifico per evitare
 di buttare via tutto e ricreare da 0 ogni volta che cambia qualcosa.
 
 Potrei anche arrivare a suggerire di provare a derivare (o patchare)
 le classi di NetworxX da Persistent dello ZODB per semplificare la
 serializzazione ed eliminare il DB relazionale...

Una prova fatta velocemente, ma sembra funzionare.

# store a networkx graph in a ZODB
# depends on
#   networkx
#   matplotlib
#   ZODB3
import sys

import networkx as nx
import matplotlib.pyplot as plt

from persistent import Persistent
from persistent.list import PersistentList
from persistent.dict import PersistentDict

from ZODB import FileStorage, DB
import transaction

#
root = None
storage = None
db = None
connection = None

def init_db():
global root, storage, db, connection
if root is None:
storage = FileStorage.FileStorage('./g1.fs')
db = DB(storage)
connection = db.open()
root = connection.root()

#
class PersistentGraph(Persistent, nx.Graph):

def __init__(self, data=None, **attr):
nx.Graph.__init__(self, data=None, **attr)
self.graph = PersistentDict()   # dictionary for graph attributes
self.node = PersistentDict()# empty node dict (created before 
convert)
self.adj = PersistentDict() # empty adjacency dict

class Person(Persistent):

def __init__(self, name):
self.name = name

def __repr__(self):
return Person: %s%(self.name)

#
if __name__ == '__main__':
init_db()

if G not in root.keys():
print Adding some Person(s)

G = root[G] = PersistentGraph()
f = Person(Father)
m = Person(Mother)
c = Person(Child)

G.add_edge(f, c)
G.add_edge(m,c)

transaction.commit()
else:
G = root[G]

if 'addWN' in sys.argv:
print Adding wife and son of Child

# these are not permanents until commit
w = Person(Wife)
n = Person(Nephew)
c = [p for p in G.nodes() if p.name==Child][0]  # can be done better
G.add_edge(n, w)
G.add_edge(n, c)
transaction.commit()

if 'rmW' in sys.argv:
res = [p for p in G.nodes() if p.name==Wife][0]
if len(res)0:
print Removing Wife
G.remove_node(res[0])
transaction.commit()

print Showing

for n in G:
  print n

nx.draw(G)
plt.show()


-- 
   Riccardo Lemmi

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


Re: [Python] django e strutture dati permanenti

2012-10-11 Per discussione Riccardo Lemmi
Balan Victor wrote:

 idee? :)
 
 
 Il giorno 10 ottobre 2012 14:01, Balan Victor
 balan.vict...@gmail.com ha scritto:
 
 quello che devo fare è questo:
 in fase di inizializzazione devo caricare in memoria un
 grafo(networkx) di dimensioni consistenti: 60.000 nodi e più di
 100.000 connessioni. PER ADESSO dovrebbe essere in sola lettura e se
 devo fare delle modifiche posso permettermi di stoppare tutto, fare
 le modifiche e rilanciare l'applicazione.
 Poi in base alle richieste che vengono effettuate devo andare a
 leggere le informazioni che mi servono dal grafo, elaborarle e
 restituirle all'utente.
 ...

Non sarebbe meglio fare il pickle della struttura dati creata in memoria 
da networkx invece di ricreare il grafo ogni volta dal DB? 

Ovviamente perchè sia fattibile bisogna controllare che gli oggetti di 
NetworkX siano effettivamente serializzabili, inoltre tenere allineati 
il DB e il grafo richiede sicuramente del codice specifico per evitare 
di buttare via tutto e ricreare da 0 ogni volta che cambia qualcosa.

Potrei anche arrivare a suggerire di provare a derivare (o patchare) le 
classi di NetworxX da Persistent dello ZODB per semplificare la 
serializzazione ed eliminare il DB relazionale... 
-- 
   Riccardo Lemmi

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


Re: [Python] richiesta di info su python

2012-06-27 Per discussione Riccardo Lemmi
Giovanni Porcari wrote:

 
 Il giorno 27/giu/2012, alle ore 10:59, Marco Beri ha scritto:
 
 2012/6/27 Giovanni Porcari giovanni.porc...@softwell.it
 Come modestissima osservazione vorrei aggiungere che nel 2012 un'alternativa
 possibile in un grandissimo numero di casi è un'interfaccia web.
 Ovvero ti scrivi il codice lato server e per l'interfaccia utilizzi
 html5.
 
 Il vantaggio è che ti trovi la multiutenza da subito e impari
 tecniche spendibili anche al di fuori di un ambito python.
 
 Ottima osservazione!
 
 Non dimenticando inoltre che l'HTML5 permette anche di funzionare in offline,
 quindi staccato dal web.
 
 Ciao.
 Marco.
 P.S. Con un (bel) po' di attenzione da prestare all'application cache e
 quant'altro:
 http://www.alistapart.com/articles/application-cache-is-a-douchebag/
 
 Ecco, sul fatto di lavorare offline ti confesso che non ci ho mai creduto.
 Mi spiego: se lavorare significa accedere ad un database (e per me che
 vivo di gestionali è un assioma) non è che una copia locale mi serva
 molto. Ma forse ho una visione non abbastanza ampia del problema...
 
 G

Ci sono alcune situazioni in cui l'offline è necessario o parte della 
soluzione. 
Nel link sopra vengono citati wikipedia e google docs, io posso aggiungere la 
raccolta di dati in generale: survey, report, cataloghi e ordini. Chiaramente 
ad 
un certo punto la connessione per potersi sincronizzazione con il DB ci vuole.

Queste applicazioni sono tipicamente implementate usando applicazioni native ma 
oggi si riesce (con qualche difficoltà) ad implementarle come webapp.
-- 
   Riccardo Lemmi
___
Python mailing list
Python@lists.python.it
http://lists.python.it/mailman/listinfo/python


Re: [Python] richiesta di info su python

2012-06-27 Per discussione Riccardo Lemmi
Marco Beri wrote:

 2012/6/27 Carlos Catucci carlos.catu...@gmail.com
 
  Queste applicazioni sono tipicamente implementate usando applicazioni
 native ma
  oggi si riesce (con qualche difficoltà) ad implementarle come webapp.

 Al momento attuale, salvo non esistano tecniche di cui non sono ancora
 a conoscenza, cosa possibilissima, mi sembra che siano ancora non
 abbastanza affidabili. Se mi si cancella un catalogo pazienza, se mi
 si cancellano ordini non acora inviati magari mi incavolo un attimo se
 sono un agente di vendita.
 
 La nostra applicazione è in produzione da un annetto e, visto che gli
 agenti del nostro cliente sono pagati a provvigioni, posso essere
 ragionevolmente certo che non si siano persi ordini :-)
 
 Ciao.
 Marco.

Concordo, webapp simile stessa esperienza: devi esplicitamente cancellare la 
cache per perdere i dati. Semmai i problemi stanno nelle difficoltà di capire 
quando sei online e gestire eventuali problemi di connessione, in modo da non 
cancellare cose che non sono già state effettivamente inviate al server... e 
qui il javascript e le sue implementazioni non sono molto di aiuto :)
-- 
   Riccardo Lemmi
___
Python mailing list
Python@lists.python.it
http://lists.python.it/mailman/listinfo/python


Re: [Python] richiesta di info su python

2012-06-27 Per discussione Riccardo Lemmi
Carlos Catucci wrote:

 Concordo, webapp simile stessa esperienza: devi esplicitamente cancellare la
 cache per perdere i dati.
 
 Non sottovalutiamo pero' i nostri cari ed affezionati utenti, che se
 possono fare danni non ci pensano su un attimo.
 
 Semmai i problemi stanno nelle difficoltà di capire
 quando sei online
 
 In effetti pingare ogni tot secondi per vedere se il server risponde
 non lo trovo il sistema piu' efficiente possibile.
 
 e gestire eventuali problemi di connessione, in modo da non
 cancellare cose che non sono già state effettivamente inviate al server...
 
 Questo gia' piu' lineare, una serie di appositi flag e conferme
 esplicite (ti mando dati e quando hai finito mi rimandi i checksum
 degli stessi, ad esempio) sono di aiuto. Ribadisco il problema dei
 Blob pero'. Sopratutto su certi device non e' possibile salvare su
 disco i dati per potr fare un accesso locale. Per cui le immagini
 possono essere fastidiose.
 
 Carlos

Aspettando che File API  CO siano implementate decentemente su tutti i browser 
si può sempre barare usando phonegap sulle piattaforme 'mobili'
-- 
   Riccardo Lemmi
___
Python mailing list
Python@lists.python.it
http://lists.python.it/mailman/listinfo/python


Re: [Python] richiesta di info su python

2012-06-27 Per discussione Riccardo Lemmi
Carlos Catucci wrote:

 Aspettando che File API  CO siano implementate decentemente su tutti i
 browser si può sempre barare usando phonegap sulle piattaforme 'mobili'
 
 Si anche quella e' una strada. Qualcuno ha esperienze in merito da
 condividere?
 
 Carlos

Stiamo andando un po' OT comunque

Phonegap copre gli standard html5 dove il browser widget della piattaforma 
target è mancante rendendo quindi omogeneo lo sviluppo multi-piattaforma. Le 
cose che fa le fa bene, i limiti non sono di phonegap ma delle applicazioni 
web: accellerazione 2D/3D, suono e nel caso delle gesture non sempre le 
risposte sono fluide (dipende molto dalla libreria utilizzata).

Il ciclo sviluppo/rilascio su ios è un delirio ma vale anche per le app native, 
per questo motivo preferirei avere una vera webapp.
-- 
   Riccardo Lemmi

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


Re: [Python] Python e Arduino

2012-05-22 Per discussione Riccardo Lemmi
giorgio wrote:

 Ciao a tutti,
 
 qualcuno ha già provato a  leggere/scrivere gli I/O di Arduino?
 

Ci sono un paio di librerie per dialogare usando Firmata, se no puoi impostare 
uno sketch in modo che prenda comandi tramite la seriale:
 http://arduino.cc/playground/Interfacing/Python

-- 
   Riccardo Lemmi

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


Re: [Python] Modulo argparse

2012-04-26 Per discussione Riccardo Lemmi
Walter Valenti wrote:

marcob@pc-beruntu:~/work/python$ python arg.py  -v
 
usage: arg.py [-h] [-v] PATH
arg.py: error: too few arguments


marcob@pc-beruntu:~/work/python$ python arg.py
usage: arg.py [-h] [-v] PATH
arg.py: error: too few arguments




A me pare che non funzioni anche senza argomenti...
Se stampi l'help vedi che l'argomento PATH, in quanto posizionale, è
obbligatorio:


marcob@pc-beruntu:~/work/python$ python arg.py -h
usage: arg.py [-h] [-v] PATH


positional arguments:
PATH


optional arguments:
-h, --help  show this help message and exit
-v  versione


Ciao.
Marco.

 
 
 Quello che vorrei fare è il seguente
 
 comando -v -- mi stampa la versione
 comando path  -- esegue
 
 In tutti gli altri casi visualizza l'help.
 
 
 E' poì che cerco nella documentazione ma non riesco a venirne a capo.
 
 Walter

Prova:

parser.add_argument(strings, 
metavar=PATH, 
type=unicode, 
default=,
nargs='*')

-- 
   Riccardo Lemmi

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


Re: [Python] Virtualenv vs. buildout

2012-03-23 Per discussione Riccardo Lemmi
Alessandro Dentella wrote:

 Ciao,
 
 ho appena cominciato a lavorare per un progetto django che ha molti siti web
 ed una miriade di piccole applicazioni. Al momento non usa alcuno strumento
 per il deploy, applicazioni anche semplici richiedono molta pazienza per
 essere messe in produzione.
 
 Sto guardando quali strumenti siamo i migliori, per intenderci qui non si
 sta usando neanche pip install -r...
 
 In passato ho usato normalmente virtualenv ma vorrei analizzare anche
 buildout. Ho letto un po' di documentazione del sito e di Jacob Kaplan-Moss
 e visto qualche video. Mi piacerebbe avere anche qualche parere da chi li
 usa entrambi prima di sposare una delle due soluzioni.
 
 
 sandro
 *:-)
 
 

Non ho esperienza nell'uso di virtualenv come sistema di deployment ma quello 
che posso dire, sulla base dalla mia esperienza su entrambi, è che non mi pare 
che virtualenv possa essere usato in questo modo.

zc.buildout mette a disposizione strumenti per fare un deployment replicabile e 
versionabile che virtualenv non ha (almeno di default). Probabimente l'unica 
similarità tra i due è la creazione di un ambiente isolato.

-- 
   Riccardo Lemmi

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


Re: [Python] Virtualenv vs. buildout

2012-03-23 Per discussione Riccardo Lemmi
Alan Franzoni wrote:

 On 03/23/2012 11:27 AM, Alessandro Dentella wrote:
 ...
 Detto questo: zc.buildout, IMHO, è ancora acerbo e pure un po' stronzo.
 Ogni tanto di dà degli errori la cui utilità è pari a quella di un buco
 in testa ( tipo AssertionError: path /hello/world contains / ),
 tende (o tendeva, è un po' di mesi che non lo uso) a rompersi con
 aggiornamenti di librerie o dello stesso pacchetto zc.buildout, e non è
 proprio semplice da capire, perlomeno all'inizio. Ma una parte di questi
 problemi sono legati proprio al dependency management su Python, che fa
 parecchio schifo.
 

buildout.dumppickedversions è lo strumento che permette di dumpare la versione 
degli egg utilizzata, con questa recipe non ho più avuto problemi con buildout 
che si 'rompevano' a causa di un aggiornamento.

...
-- 
   Riccardo Lemmi

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


Re: [Python] Python e html

2011-11-24 Per discussione Riccardo Lemmi
Nicola Larosa wrote:

 Marco Beri wrote:
 Premetto che Drupal è un grande prodotto.
 
 Lo è, anche se [nitpicking] è più un progetto che un prodotto. :-)
 
 
 Detto questo, mi sfugge il legame tra Drupal e la schifezza di
 mischiare codice e presentation.
 
 Non c'è, Drupal non commette questi errori. Il thread era passato al PHP
 name calling, abbandonando il topic iniziale.
 
 
 Come mi sfugge il legame tra Drupal e la bruttezza di PHP.
 
 Anche per me non è facile capire come un progetto fatto bene come Drupal
 possa essere implementato con uno strumento mediocre come PHP.
 
 L'unica spiegazione che so darmi è di massa critica.
 
 Nonostante sia la terza piattaforma più popolare, dopo Wordpress e Joomla
 (niente esclamativi per cortesia, sono fuori luogo :-P ), è fatto meglio
 dei due suddetti, e meglio di Plone, e meglio di tutti gli acerbi CMS
 basati su Django, grazie anche alla forza dei numeri, oltre ad
 un'architettura e una comunità attenta alla corretta modularizzazione.
 

http://www.unleashedmind.com/en/blog/sun/the-drupal-crisis

 Abbiamo perso il web, due volte.
 
 Eravamo sul server per primi (dopo Perl, ok, ma contro l'harakiri anche
 gli dei possono poco ;-) ), e ce lo siamo fatto fregare da PHP,
 probabilmente per colpa di Jim Fulton, che ci ha fatto perdere un
 decennio nelle paludi di Zope e Plone.
 
 Sul client non siamo mai stati, nessuno ha veramente intaccato il
 predominio di Javascript.
 

-- 
   Riccardo Lemmi

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


Re: [Python] Digest di Python, Volume 68, Numero 14

2011-10-14 Per discussione Riccardo Lemmi
Giuseppe Amato wrote:

 Interessa anche a me la cosa
 
 for i,c in enumerate(leggi):
if c==a : print i

 se stessi cercando una parola intera potrei fare:
 
 sstr = apici
 lsstr=len(sstr)
 for i,c in enumerate(leggi):
if c==a and leggi[i:i+lsstr]==sstr : print i
 

Con il codice dovresti esprimere quello che vuoi fare: in questo caso secondo 
me 
è fuorviante cercare una 'a' e poi la stringa:

sstr = apici
lsstr=len(sstr)
for i in range(len(leggi)):
   if leggi[i:i+lsstr]==sstr: print i


 Ma mi conviene rispetto alle altre due proposte? Qual è la più veloce?
 

Secondo me la versione con le espressioni regolari è la migliore dal punto di 
vista della comprensibilità, ma non ho fatto un controllo sulla velocità che 
puoi fare tu usando timeit:

   http://docs.python.org/library/timeit.html

 sstr = sa
 lsstr = len(sstr)

 pos = leggi.find(sstr)
 print pos
 while True:
new_pos = leggi.find(sstr, pos+lsstr)
if new_pos == -1:
break
else:
pos = new_pos
print pos

 oppure

 import re
 expr = re.compile('sa')
 for e in expr.finditer(leggi):
print e.start()



 

-- 
   Riccardo Lemmi

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


Re: [Python] matplotlib

2011-07-12 Per discussione Riccardo Lemmi
Vittorio Zuccala' wrote:

 Buongiorno a tutti,
 sto cercando di fare un paio di grafici tramite la libreria in oggetto.
 Entrambi i grafici (da memorizzare in due files differenti) hanno le stesse
 ascisse (variabile xx).
 Se cerco di plottare i due grafici, il secondo mi viene una falsa riga del
 primo mentre se faccio eseguire solo il secondo viene corretto...
 Come si vede sotto, i codici per il primo e secondo grafico sono identici
 cambiano le ordinate che nel primo caso sono data e nel secondo coding
 ovviamente molto diversi gli uni dagli altri...
 Come faccio, inoltre a riempire nel secondo caso fino all'asse delle x il
 grafico? (Stile integrale per intenderci...).
 Ho provato pylab.fill(xx, coding, 'r') ma il fill viene bellamente
 ignorato...
 
 
 pylab.title(title)
 pylab.xlabel('time')
 pylab.ylabel('light value')
 pylab.grid(True)
 pylab.plot(xx,data)
 savedfile=f+_light
 pylab.savefig(savedfile)
 #pylab.show()
 
 pylab.title(title)
 pylab.xlabel('time')
 pylab.ylabel('presence stored')
 pylab.grid(True)
 pylab.plot(xx,coding)
 savedf=f+_presence
 pylab.savefig(savedf)
 #pylab.show()
 

Metti
pylab.clf()
tra i due grafici.
-- 
   Riccardo Lemmi

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


Re: [Python] Selenium 2.0 webdriver api python + tutorial

2011-05-17 Per discussione Riccardo Lemmi
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(ulink=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 balan.vict...@gmail.com 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 ricca...@reflab.com 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] Selenium 2.0 webdriver api python + tutorial

2011-05-13 Per discussione Riccardo Lemmi
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


Re: [Python] Aggiornare file pickle

2011-05-10 Per discussione Riccardo Lemmi
Filadelfo Fiamma wrote:

 Buongiorno a tutti,
 
 Avrei un quesito circa l'utilizzo del modulo pickle.
 L'obiettivo della mia applicazione è gestire un mini-database di file
 pickle, una volta che sono stati acquisiti i dati da altre fonti.
 Studiando il modulo ho individuato due metodi: dump() e load() che mi
 consentono di salvare su file e di leggere da file gli oggetti in
 questione. Molto spesso capita di dover salvare un oggetto una seconda
 volta dopo che è stato aggiornato, e tale scopo rieffettuo il dump().
 Mi chiedo se invece sia possibile aggiornare il file pickle, andando
 dunque a modificare e/o aggiungere solo delle specifiche parti
 piuttosto che effettuare il dump dell'intero oggetto?
 
 Grazie mille
 
 Buona giornata
 
 FF

Ti consiglio di guardare lo ZODB. Fa sicuramente molte cose in più rispetto a
quello che ti serve ma puoi prendere spunto da lì per la gestione
dei 'salvataggi'.

Nello specifico lo ZODB usa pickle per la serializzazione, nel caso di un
oggetto composito esegue la serializzazione solo delle parti che sono cambiate;
le classi devono derivare dalla classe Persistent per fare in modo che lo ZODB
capisca cosa è cambiato e ogni oggetto cambiato viene serializzato
separatamente, ma lo ZODB gestisce anche i riferimenti tra gli oggetti in modo
che siano sempre validi... meglio se guardi il codice :)
-- 
   Riccardo Lemmi

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


Re: [Python] Strumenti per automatizzare operazioni su pagine web

2011-04-18 Per discussione Riccardo Lemmi
Marco De Paoli wrote:

 la documentazione non è propriamente ordinata
 ad ogni modo se sei interessato a
 
 Un esempio più concreto di quello che voglio fare è questo:
 -vai su www.google.it
 -cerca l'elemento che si chiama q
 -inserisci in q python
 -cerca l'elemento che si chiama btnG
 -simula un click sull'elemento btnG
 
 puoi provare qui
 http://wwwsearch.sourceforge.net/mechanize/forms.html
 
 c'è anche una ML in inglese abbastanza attiva
 
 Uso mechanize da un po di tempo e non ho avuto particolari problemi
 
 Marco
 ...

Spesso basta un set_trace() nel codice per dare uno sguardo all'oggetto Browser
e capire come è fatta la pagina o come recuperare la form che si vuole gestire.
-- 
   Riccardo Lemmi

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


Re: [Python] Strumenti per automatizzare operazioni su pagine web

2011-04-15 Per discussione Riccardo Lemmi
Balan Victor wrote:

 salve,
 ho la necessità di automatizzare alcune operazioni su pagine web come login
 automatici, ricerca di testo, verifica presenza immagini. Probabilmente
 qualcuno mi suggerirà urllib2, tuttavia urllib prevede anche la conoscenza
 dei protocolli http, https, gestione cache e  cookie ecc. protocolli e
 operazioni che non conosco abbastanza bene per usare urllib. Io ero in cerca
 di qualche strumento, libreria o qualunque cosa che mette a disposizione
 funzioni già pronte e/o da integrare con codice python.
 
 Un esempio più concreto di quello che voglio fare è questo:
 -vai su www.google.it
 -cerca l'elemento che si chiama q
 -inserisci in q python
 -cerca l'elemento che si chiama btnG
 -simula un click sull'elemento btnG
 
 grazie

Se devi interagire con la pagina ti serve mechanize oppure selenium:
  http://pypi.python.org/pypi/mechanize
  http://pypi.python.org/pypi/selenium

selenium lo consiglio se devi testare il sito nel browser, cioè guardare anche
come viene renderizzato (o se stai usando il javascript per alcune
funzionalità).
-- 
   Riccardo Lemmi

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


Re: [Python] come rilevare se un file è bloccato

2011-03-14 Per discussione Riccardo Lemmi
Massimo Capanni wrote:

 Buongiorno a tutti,
 
 ho appena finito di realizzare uno script per l'archiviazione
 e successiva rinomina/cancellazione di file contenuti in
 una directory.
 
 Fra i vari controlli effettuati che ho imposto allo script
 prima di eseguire le modifiche ai file, ho pensato che un
 controllo importante da fare e' se l'i-esimo file da elaborare
 non sia bloccato da un'altro processo, pero' non mi
 viene al momento nessuna idea valida per implementare
 un simile controllo.
 
 Conoscete un metodo per risolvere questo problema
 o esiste gia' qualcosa in dotazione con il linguaggio?
 
 grazie
 
 massimo

In tempi passati ho usato pathutils:
   http://www.voidspace.org.uk/python/pathutils.html

Tieni presente che il lock funziona solo se i programmi che accedono al file
usano la stessa tecnica.

Su pypi cercando lock file trovi anche altre librerie.
-- 
   Riccardo Lemmi

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


Re: [Python] [NIUBBO] Imparare a scrivere un applicazione web... Django, TurboGears, Zope, mod_wsgi ?

2011-02-24 Per discussione Riccardo Lemmi
Cesco wrote:

 Salve,
 
 Ho un infarinatura molto ma molto basilare su Python (però se occorre conosco
 i concetti fondamentali della programmazione a oggetti), ho acquisito una
 minima familiarità seguendo il videocorso di Marco Beri e leggendo qualche
 capitolo di Dive Into Python; per ora ho solo scritto piccoli programmini per
 provare ad imparare ad usare il linguaggio e qualche sua libreria semplice.
 
 Mi piacerebbe tanto poter provare a scrivere un programmino Python che giri
 all'interno pagina web... per capirsi, sul tipo programma in PHP che viene
 aperto visitando la pagina http://www.esempio.com/index.php Mi basterebbe
 qualcosa di elementare giusto per capire come si fanno certe cose.
 
 Mi sembrava di aver capito che la cosa più simile a quello che cerco io sia
 mod_wsgi. Secondo voi è un buon punto di partenza, oppure è troppo complicato
 per un niubbo di python come me? Sarebbe meglio che studiassi Django, Zope,
 Turbogears o altro? O sarebbe meglio che li lasciassi perdere e studiassi a
 fondo Python prima di tentare qualunque approccio con un framework?
 
 Grazie e ciao

Puoi partire con Paste:

   http://pythonpaste.org/script/
   http://pythonpaste.org/deploy/

in particolare il comando 'serve' che gestisce i file di configurazione di Paste
Deployment e permette di assemblare semplici applicazioni.

Volendo complicare le cose in Python ci sono molti framework:

  - CherryPy
  - Pyramid (ex repoze.bfg e pylons)
  - ... (altri a piacere)
  - Django
  - Zope (2, 3, Grok, Plone se serve un CMS)

Messi in ordine di difficoltà crescente.
-- 
Riccardo Lemmi

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


Re: [Python] [NIUBBO] Imparare a scrivere un applicazione web... Django, TurboGears, Zope, mod_wsgi ?

2011-02-24 Per discussione Riccardo Lemmi
Nicola Larosa wrote:

 Riccardo Lemmi wrote:
 Puoi partire con Paste:
 ...
 Volendo complicare le cose in Python
 
 Non credo che iniziare con Django sia più complicato che con Paste.
 

Togliendo 'tutto' con Paste e 10 righe di codice si ha uno scheletro di
applicazione:


def app(environ, start_response):
start_response('200 OK', [('content-type', 'text/html')])
return ['Hello world!']

if __name__ == '__main__':
from paste import httpserver
httpserver.serve(app, host='127.0.0.1', port='8080')

 ci sono molti framework:

   - CherryPy
   - Pyramid (ex repoze.bfg e pylons)
   - ... (altri a piacere)
   - Django
   - Zope (2, 3, Grok, Plone se serve un CMS)

 Messi in ordine di difficoltà crescente.
 
 Mi sembra un ordine di completezza di feature, più di difficoltà. Non
 credo, di nuovo, che Django sia più complicato di CherryPy e di Pyramid.
 
 Son d'accordo che Zope e derivati vadano alla fine per entrambi i criteri.
 ;-) Ma ci sono CMS, blog e altro per Django, che credo sia al momento il
 framework web Python più usato, per quel che vale.
 

No, io mi riferivo proprio alla difficoltà di maneggiare il framework.

CherryPy e Pyramid (la parte che deriva da bfg) non richiedono di avere un
backend e in questo senso sono più 'semplici' di Django.
-- 
Riccardo Lemmi

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


Re: [Python] [NIUBBO] Imparare a scrivere un applicazione web... Django, TurboGears, Zope, mod_wsgi ?

2011-02-24 Per discussione Riccardo Lemmi
Nicola Larosa wrote:

 Nicola Larosa wrote:
 Non credo che iniziare con Django sia più complicato che con Paste.
 
 Riccardo Lemmi wrote:
 Togliendo 'tutto' con Paste e 10 righe di codice si ha uno scheletro di
 applicazione:
 [snip codice]
 
 Anche con Django sono circa 10 linee, solo che son divise tra file
 diversi, ed includono la configurazione della URL che hai qui omesso. :-)

Continuo a pensare che Paste e CherryPy siano più semplici: le dieci linee di
Django presuppongo molte più cose di quelle che presuppongono Paste e CherryPy.
Anche in termini del numero di moduli di cui sono composti i vari framework si
vede subito che Django ne ha molti di più e quindi richiede uno studio più
lungo.

 
 Mi sembra un ordine di completezza di feature, più che di difficoltà. Non
 credo, di nuovo, che Django sia più complicato di CherryPy e di Pyramid.
 
 No, io mi riferivo proprio alla difficoltà di maneggiare il framework.

 CherryPy e Pyramid (la parte che deriva da bfg) non richiedono di avere un
 backend e in questo senso sono più 'semplici' di Django.
 
 Neanche Django richiede di usare l'ORM e l'interfaccia di admin, non farti
 ingannare dal tutorial. Le uniche parti non eliminabili di Django sono la
 configurazione delle URL, e le view che ritornano la response.
 

Puoi decidere di non usarlo ma è lì mentre in CherryPy e Pyramid è una scelta
usarlo... ma non voglio andare oltre su queste questioni, si rischia di
fraintendersi.

Io credo che stiamo parlando di cose diverse: io mi riferisco alla semplicità
con cui si riesce a padroneggiare il codice del framework non alla velocità con
cui si scrive la prima applicazione.

Io consiglio di cominciare da Paste o CherryPy perchè si padroneggiano in poco
tempo e sono una buona base per affrontare framework più complessi/completi.
-- 
Riccardo Lemmi 

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


Re: [Python] Lughezza singolo elemento di una lista annidata

2011-02-18 Per discussione Riccardo Lemmi
Robertino Ceccherini wrote:

 Lista = ['ciao!', 1, ['mela', 'pera', 'banana'], [1, 2, 3]]
 i = 0
 while i  len(Lista):
 print len(Lista[i])
 i = i + 1

A parte che il codice non è molto pythonico, non tutti gli oggetti hanno 'len'.

Lista = ['ciao!', 1, ['mela', 'pera', 'banana'], [1, 2, 3]]
for item in Lista:
if hasattr(item, '__len__'):
print len(item)
else:
print 0

ci sono anche altri modi di scrivere il codice, dipende dalle 'intenzioni' che
vuoi esprimere nel tuo codice.
-- 
Riccardo Lemmi

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


Re: [Python] Un paio di punti aperti tra psycopg e Zope

2011-01-14 Per discussione Riccardo Lemmi
Daniele Varrazzo wrote:

 Ciao zopisti,
 Ciao plonisti,
 Ciao Redomini, :)
 
 avete esperienza con l'interazione tra psycopg2 e Zope? Mi dicono
 http://psycopg.lighthouseapp.com/projects/62710/tickets/29 che farebbe
 comodo avere un package specifico per ZPsycopgDA. A me farebbe piacere
 anche avere qualche test di integrazione di psycopg2 per Zope, visto che
 ormai il testing del package regolare e' completamente automatizzato a
 partire dall'sdist.
 
 Di Zope so poco purtroppo, quindi un po' di aiuto sarebbe il benvenuto.
 Qualche dettaglio in piu' (e un microbug da risolvere) e' in questo post
 http://archives.postgresql.org/psycopg/2011-01/msg00022.php della
 rediviva ML di psycopg, alla quale vi invito a iscrivervi se vi interessa
 partecipare.
 
 Grazie mille!
 

Penso che gli adapter specifici siano ormai una 'reliquia'. A chi sviluppa in
zope o plone consiglio di usare:

   http://pypi.python.org/pypi/Products.SQLAlchemyDA/

Per quanto riguarda invece i due problemi:

 Issue #30

   Per recuperare il path dell'immagine bisogna importare il package e da lì
ricostruire il path. Soluzione alternativa è quella di mettere l'immagine
direttamente in ZPsycopgDA. 

 Issue #29

   Vedo su pypi che qualcuno ha già fatto l'egg per ZPsycopgDA, dalla data però
penso che non sia compatibile con Zope2 12.9

   http://pypi.python.org/pypi/psycopg2da/2.0.9 

forse l'autore di questo egg potrebbe essere interessato a fare un
aggiornamento.
-- 
Riccardo Lemmi 

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


Re: [Python] Un paio di punti aperti tra psycopg e Zope

2011-01-14 Per discussione Riccardo Lemmi
Daniele Varrazzo wrote:

 On Fri, 14 Jan 2011 11:24:56 +0100, Riccardo Lemmi ricca...@reflab.com
 wrote:
 
 Penso che gli adapter specifici siano ormai una 'reliquia'. A chi
 sviluppa
 in
 zope o plone consiglio di usare:
 
http://pypi.python.org/pypi/Products.SQLAlchemyDA/
 
 Che immagino usi psycopg per conto suo e come un package Python regolare
 invece di passare per ZPsycopgDA, giusto?
 

Ci sono vari passaggi alla fine dei quale si trova:

   http://pypi.python.org/pypi/SQLAlchemy/

che usa psycopg2

 Per quanto riguarda invece i due problemi:
 
  Issue #30
 
Per recuperare il path dell'immagine bisogna importare il package e
 da
lì
 ricostruire il path. Soluzione alternativa è quella di mettere
 l'immagine
 direttamente in ZPsycopgDA.
 
 Mi hanno mandato una patch che ho passato alla mailing list, penso sia
 completa ma non ho modo di valutarlo.

Non sono riuscito a trovarla, io farei un semplice:

import os
import Shared.DC.ZRDB
base = os.path.dirname(Shared.DC.ZRDB.__file__)
image = os.path.join(base, 'www','DBAdapterFolder_icon.gif')

 
 
  Issue #29
 
Vedo su pypi che qualcuno ha già fatto l'egg per ZPsycopgDA, dalla
 data
però
 penso che non sia compatibile con Zope2 12.9
 
http://pypi.python.org/pypi/psycopg2da/2.0.9
 
 forse l'autore di questo egg potrebbe essere interessato a fare un
 aggiornamento.
 
 Ah, è Fabio: è anche l'autore dei package Debian per Psycopg. Devo
 senz'altro contattarlo, anche per altre cose. C'è però questo Pumukel che
 mi ha scritto (ma in PM, mannaggia) tutta la ricetta della nonna per creare
 un package con ZopeSkel, PasteScript, zc.buildout, collective.releaser...
 Non so valutare se il risultato (Products.ZPsycopgDA) sarebbe meglio
 usabile dagli utenti zope. Il package realizzato da Fabio l'ho solo aperto
 al volo e sembra uguale all'sdist; non ho diffato per capire che differenza
 ci sia. A prima occhiata mi sembra che siano cose diverse.
 
 Per me il problema principale è che non ho un test di integrazione per
 capire quando un package, creato automaticamente, funziona come deve nelle
 diverse versioni di zope. Ce l'ho per python 2.4-3.2 a 32/64 bit contro
 Postgres 7.4-9.1, ma non ho una sola riga per capire quando e quale
 versione di zope si rompe :)
 
 

Il problema dei DA è che non essendo usati dai core developer finisce che non
sono mantenuti. Secondo me se non riesci a trovare qualcuno che usi in modo
continuativo ZPsycopgDA per i propri progetti la cosa migliore è abbandonare il
codice.
-- 
Riccardo Lemmi

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


Re: [Python] [OT] info su Database no-sql

2010-10-28 Per discussione Riccardo Lemmi
Massimo Capanni wrote:

 buongiorno,
 
 per caso ho scoperto l'esistenza dei database no-sql (o no-rel).
 Conoscendo gia' i normali DB relazionali mi incuriosisce questo nuovo tipo
 di sistema; avete idea quando puo' essere vantaggioso utilizzarli? Dove
 posso trovare della documentazione generale su questo argomento senza
 entrare troppo nei particolari?
 
 grazie
 
 massimo

Il sito di riferimento è:
   http://nosql-database.org/
su questo trovi i link alle varie tecnologie e ad articoli in tema.
-- 
Riccardo Lemmi 

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


Re: [Python] Sulla falsariga del PyDayBO

2010-07-02 Per discussione Riccardo Lemmi
Carlos Catucci wrote:

  Io posso riproporre un talk su Django che ho già proposto al PyDayBo.
 
 Figo! Io ne poropngo uno su TurboGears2. Servirebbe un Zope/Plonista per
 completare il trittico.
 
 
 Greetings
 JOKER Ltd.

Eccomi, ho già confermato la mia disponibilità a Valerio in via privata.
Oltre ai singoli talk potremmo fare anche un panel stile questo:
  http://www.b-list.org/weblog/2007/feb/23/pycon-2007-web-frameworks-panel/
-- 
Riccardo Lemmi

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


Re: [Python] python e html

2010-07-01 Per discussione Riccardo Lemmi
Francesco Bonanno wrote:

 Buonasera, sono nuovissimo della lista (ringrazio per l'ammissione)
 chiedo semplicemente se esistono guide possibilmente in italiano sulla
 creazione di applicazioni web, senza l'ausilio di framework (django,
 zope...)
 Grazie per la pazienza

Un framework minimo ci vuole, non 'vuoi' veramente scrivere le appplicazioni
usando CGI, almeno una libreria WSGI ci vuole.

Ad ogni modo ci sono vari prodotti interessanti (e se fai una ricerca su pypi li
trovi facilmente), io ti consiglio di provare repoze.bfg:

   http://bfg.repoze.org/

Si può partire mettendo insieme poche cose, si può scegliere se usare URL code
mapping o il traversal alla zope, si può scegliere di non usare backend oppure
tra un relazionale (magari con sqlalchemy) e un no-sql come ZODB, la gestione
della sicurezza è parte del core.

Mi è piaciuto il fatto che le applicazioni costruite con questo strumento
possano crescere con le nostre competenze.
-- 
Riccardo Lemmi

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


Re: [Python] Sulla falsariga del PyDayBO

2010-06-08 Per discussione Riccardo Lemmi
Valerio Turturici wrote:

 Ciao ragazzi,
 penso sia arrivato il momento di iniziare a parlare seriamente del PyDay a
 Pisa perchè il tempo vola. L'ultima volta ho avuto qualche risposta, ma
 stavolta spero di riceverne di più. Ho individuato due periodi temporali che
 sembrerebbero adatti per lo svolgimento dell'evento:
 
 dopo Ottobre(in questo mese c'è il Linux Day), quindi tra Novembre e
 Dicembre
 dopo Gennaio, quindi tra Febbraio e Marzo(perchè poi ci sarà fermento per la
 PyCon[a cui spero di poter partecipare, per la prima volta].).

Per il periodo dipende molto dal target, se saranno presenti soprattutto
studenti andranno evitati i periodi in cui ci sono gli esami. In ogni caso
penso che sia meglio stare lontani dal PyCon.

 Inoltre, c'è la possibilità di essere aiutati dal GULP a cui tempo fa avevo
 proposto l'idea e sembravano entusiasti. Qualche periodo vi sembra più
 congeniale? Per i locali già Pietro tempo fa mi aveva dato alcuni contatti,
 ma non ci dovrebbero essere problemi.
 
 Ciao.
 
 

Farlo in contemporanea al Linux Day? 
Nel GULP ci sono diversi pythonisti e accorpare i due eventi potrebbe
semplificare l'organizzazione.
-- 
Riccardo Lemmi

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


Re: [Python] piccola applicazione web

2010-04-01 Per discussione Riccardo Lemmi
Valerio Pachera wrote:

 Ciao a tutti, ho bisogno di creare una pagina web contenente un form.
 I valori inseriti nel form devono essere passati ad un script python
 che va a scrivere su dei file.
 Ho bisogno inoltre di popolare il form leggendo (tramite script
 python) gli stessi file su cui devo andare a scrive.
 Questo per permettere all'utente di non riscrivere ogni volta i valori
 inseriti in precedenza nel form e scritti su file.
 
 La mia esperienza in python è piuttosto ridotta. Conosco discretamente
 html e css.
 Stavo valutando l'uso di un framework ma mi sembra una soluzione
 alquanto sovradimensionata.
 
 Grazie.

paster serve

   http://pythonpaste.org/script/

(veramente minimale)
-- 
Riccardo Lemmi

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


Re: [Python] Sulla falsariga del PyDayBO

2010-03-19 Per discussione Riccardo Lemmi
Simone Dalla wrote:

 Il giorno 11 marzo 2010 19.28, Valerio Turturici 
 turturici.vale...@gmail.com ha scritto:
 
 Come vi sembra il 22 Maggio come data? Troppo vicino al post-PyCon?
 Troppo vicina in un periodo pieno sia scolasticamente che lavorativamente?
 ___
 Python mailing list
 Python@lists.python.it
 http://lists.python.it/mailman/listinfo/python

 
 Sabato?? Indicativamente potrebbe andare.
 

Io non ho problemi per quella data.
-- 
Riccardo Lemmi

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


Re: [Python] Sulla falsariga del PyDayBO

2010-03-03 Per discussione Riccardo Lemmi
Valerio Turturici wrote:

 Salve a tutti,
 è da qualche mese che pensavo di voler organizzare una conferenza
 locale come quella che a breve si terrà a Bologna. La vorrei fare a
 Pisa e sto sondando un pò il terreno per vedere se qualcuno della lista
 è disponibile sia a partecipare come relatore, sia (se è vicino) ad
 organizzare.
 Ho notato che qua non spopola poi cosi tanto Python quindi credo sia una
 buona opportunità.
 
 Che ne pensate?

Secondo me a Pisa lo usano ma non lo fanno sapere :)

Sono disponibile come relatore ma il tempo per partecipare all'organizzazione mi
manca. 
A Pisa ho fatto due talk: uno al Gulp in cui ho presentato il linguaggio e uno
al Linux Day in cui ho presentato TDD utilizzando python al posto del java.
Posso riproporre uno dei due seminari oppure parlare di framework web: Zope in
particolare ma posso fare una breve panoramica su gli n-mila che abbiamo a
disposizione.
-- 
Riccardo Lemmi

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


Re: [Python] creazione package

2009-05-15 Per discussione Riccardo Lemmi
Stefano Costa wrote:

 Un saluto a tutti,
 dopo un periodo di latitanza mi sono re-iscritto alla lista.
 
 Sto sviluppando GNUCal, un programma rilasciato sotto GNU GPL per la
 calibrazione di datazioni al radiocarbonio. [1][2][3]
 
 Al momento c'è una libreria composta da 3 moduli, e un programma che
 funziona da linea di comando. Vorrei creare un package installabile (da
 caricare poi anche su PyPI), in modo che il programma da linea di
 comando venga installato come eseguibile nel path di sistema.
 
 Ho letto la documentazione online di setuptools, e anche osservato il
 codice sorgente di alcune applicazioni e librerie (ad es. sphinx), ma
 sono ancora abbastanza confuso: non mi è molto chiaro dove dovrebbe
 stare l'eseguibile nel source tree, né come indicare questo nel
 setup.py.
 
 Se qualcuno può darmi una dritta ...
 
 Ciao,
 steko
 

Dai uno sguardo a:
  http://pypi.python.org/pypi/zc.buildout/
anche se di solito si usa con zope e simili dovresti essere in grado di creare
un ambiente per la tua applicazione.
In particolare la configurazione descritta in Try out an egg permette di
creare un interprete che gira in un ambiente con gli egg che dichiari.
Unico neo della documentazione: per creare il comando 'buildout' che esegue i
comandi della configurazione ci vuole lo script 'bootstrap.py' che trovi su
svn.
-- 
Riccardo Lemmi   

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


Re: [Python] creazione package

2009-05-15 Per discussione Riccardo Lemmi
Stefano Costa wrote:

 Il giorno ven, 15/05/2009 alle 18.10 +0200, Riccardo Lemmi ha scritto:
 
 Dai uno sguardo a:
   http://pypi.python.org/pypi/zc.buildout/
 anche se di solito si usa con zope e simili dovresti essere in grado
 di creare un ambiente per la tua applicazione.
 
 Per creare lo scheletro ho usato paster, che mi pare sia sostanzialmente
 simile a zc.buildout (analogamente, di solito è usato per applicazioni
 web ma funziona per tutto).

Il paster (tra le varie cose che fa) crea scheletri di applicazioni, io
uso 'ZopeSkel'. Ad esempio plone3_buildout crea un cartella con dentro la
configurazione base e lo script bootstrap.py che genera il comando 'buildout'.

 Mi sembrava di aver capito che devo usare la voce console_scripts in
 entry_points per l'eseguibile, ma non ho capito come indicare il modulo
 da eseguire.
 
 Sono invece riuscito ad installare il modulo eseguibile aggiungendo
 
 scripts = ['gnucalcli.py']
 
 sempre nel setup(). Non so quanto sia standard come soluzione, anche se
 ha funzionato.
 
 A questo punto sto cercando di capire come installare la documentazione
 e altri file che sono necessari per il funzionamento del programma - e
 come recuperarli una volta che sono installati al posto giusto. Mi pare
 di aver capito che si usa pkg_resources per questo, è corretto?

Non so, per dichiarare le dipendeze uso 'install_requires' e gli scheletri di
egg che uso hanno una cartella docs usata in setup.py con questa riga:

 long_description=open(README.txt).read() + \n +
   open(os.path.join(docs, HISTORY.txt)).read()

 Se invece pensi che zc.buildout sia meglio, provo quello. Grazie,
 steko
 

Non so se sia meglio, io li uso per creare installazioni complete ma non di
sistema.
-- 
Riccardo Lemmi

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


Re: [Python] Gestionale fatto in casa

2009-04-15 Per discussione Riccardo Lemmi
Diego Barrera wrote:

 Riccardo Lemmi ha scritto:
 Diego Barrera wrote:
 ... 

 Potresti usare/provare http://www.openerp.com/
 anche solo guardare come è fatto potrebbe essere un buon esercizio.
   
 La ditta si occupa non di vendita, ma di depositi e logistica... ho
 stracercato in giro, ma solo gestionali per il commercio : (
 Grazie comunque

openerp ha una struttura modulare e forse questo modulo fa la caso tuo:
  http://doc.openerp.com/book/5/index.html#part-phys

Pensa a openerp più come un framework che ad un prodotto finito, la sua forza,
secondo me, è il fatto che è facile da estendere.
-- 
Riccardo Lemmi

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


Re: [Python] Gestionale fatto in casa

2009-04-14 Per discussione Riccardo Lemmi
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.
 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)?
 Poichè devo iniziare con entrambi da zero, mi interessa il piu' rapido
 da apprendere e sviluppare.
 Grazie per le risposte.

Potresti usare/provare http://www.openerp.com/
anche solo guardare come è fatto potrebbe essere un buon esercizio.
-- 
Riccardo Lemmi

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