Re: [Python] Domanda su twisted ed i deferred

2008-02-23 Per discussione aleuser
Valentino Volonghi wrote:
> Tutte le callback hanno SEMPRE come argomento il valore
> ritornato dalla callback precedente.
>
> La lambda non e` quindi necessaria.
>   
Beh, si, lo sapevo e credo di averlo dimostrato nel codice.
Forse mi ero spiegato male, parlavo di quando "la callback ha come 
argomento una deferred...", cioè al caso tipo:

@transact #decoratore che utilizza deferToThread
def tt(arg1, arg2, arg3):
  return

def funz(arg1):
  return

dd = ...
dd.addCallback...
dd.addCallback(tt)
dd.addCallback(funz)
...

In questo caso accade che "funz" ha come unico argomento una deferred, e 
cosa può fare per attendere che sia finita?

Quindi in genere io scrivo
...
dd.addCallback(lambda x: tt(x, arg2, arg3))
dd.addCallback(funz)
...

e "funz" viene chiamata esattamente alla fine della funzione "tt" e le 
viene passato correttamente l'argomento resituito (in questo caso None)

E' stato il caso più difficile che mi sono trovato davanti quando mi 
misi a studiare twisted; spero di aver risolto in modo ottimale

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


Re: [Python] Domanda su twisted ed i deferred

2008-02-23 Per discussione Valentino Volonghi
On Sat, Feb 23, 2008 at 9:43 AM, aleuser <[EMAIL PROTECTED]> wrote:

>  In questo caso accade che "funz" ha come unico argomento una deferred, e

Non e` la deferred l'argomento, e` il risultato della callback precedente.

>  cosa può fare per attendere che sia finita?
>
>  Quindi in genere io scrivo
>  ...
>  dd.addCallback(lambda x: tt(x, arg2, arg3))

oppure

dd.addCallback(tt, arg2, arg3)

Comunque si, qua la lambda e` un uso accettabilissimo.

Ora ci siamo capiti :).

-- 
Valentino Volonghi aka Dialtone
Now running MacOS X 10.5
Home Page: http://www.twisted.it
___
Python mailing list
Python@lists.python.it
http://lists.python.it/mailman/listinfo/python


Re: [Python] Domanda su twisted ed i deferred

2008-02-23 Per discussione Alessandro
Valentino Volonghi wrote:
> Comunque si, qua la lambda e` un uso accettabilissimo.
>   
beh, cercando di spiegarmi ho approfondito e ho visto che in realtà io 
avevo capito male una cosa sulle deferred; la lambda è accettabile ma 
anche inutile

> Ora ci siamo capiti :).
>   
:-)

Ciao
Alessandro



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


[Python] Liste collezioni, propietà

2008-02-23 Per discussione Alberto Aliberti
Vorrei creare un tool per la generazione di statistiche sui database 
scacchistici. Da quello che ho capito , mi potrebbe essere utile lavorare con
  le "liste" di Python . Due domande :
  1- Qual'è la massima estensione (lunghezza) di una lista di stringhe in 
Python ?
  2- Ho letto che le dichiarazioni di variabili all'interno di una lista , si 
separano con una virgola -  (1,2,3,). Le mosse di scacchi sono scritte separate 
da uno 
  spazio e da un numero (1. d4 Cf6  2. c4 e6). Si può sostituire lo spazio alla 
virgola? (per dichiarare le variabili ovviamente).
  Ora avendo la risposta a queste due domande , credo di avere gli strumenti
  per "importare" in Python una partita "singola" . Il problema è : per 
importare più partite da un database , come posso "dividere" le partite ? Cioè 
come posso fare sapere a Python quando finisce una partita e inizia una nuova ? 
Se importassi le partite manualmente , una a una , non ci sarebbe problema , 
  potrei scrivere qualsiasi codice di programma e crearmi un database 
specifico, ma l'utilità dell'applicazione verebbe a meno. Io devo potere 
importare "automaticamente" le partite da un database esistente , o da una 
copia testuale di esso (un database di partite discacchi posso convertirlo in 
formato TXT,HTML,RTF o PGN -pgn è lo standar per i database di scacchi). 

   
-

-
L'email della prossima generazione? Puoi averla con la nuova Yahoo! Mail___
Python mailing list
Python@lists.python.it
http://lists.python.it/mailman/listinfo/python


Re: [Python] Liste collezioni, propietà

2008-02-23 Per discussione Pietro Battiston
Alberto Aliberti ha scritto:
> Vorrei creare un tool per la generazione di statistiche sui database
> scacchistici. Da quello che ho capito , mi potrebbe essere utile
> lavorare con
> le "liste" di Python . Due domande :
> 1- Qual'è la massima estensione (lunghezza) di una lista di stringhe
> in Python ?

Penso che vada ben oltre la tua disponibilità di RAM per caricarcela: in
ogni caso, se vuoi fugare ogni dubbio, avvia l'interprete python e dai
il comando:
lista='a'*100

sostituisci a '100' quanto ti serve lunga la stringa. Se il comando
viene eseguito senza problemi, hai appena creato una lista della
lunghezza desiderata. Quindi si può.

> 2- Ho letto che le dichiarazioni di variabili all'interno di una lista
> , si separano con una virgola -  (1,2,3,). Le mosse di scacchi sono
> scritte separate da uno
> spazio e da un numero (1. d4 Cf6  2. c4 e6). Si può sostituire lo
> spazio alla virgola? (per dichiarare le variabili ovviamente).

Dubito fortemente. Magari qualcuno esperto ti risponderà che invece si
può fare... ma comunque tu cosa vuoi fare, "copia-incolla" delle partite
nel //codice// del tuo programma?!? Direi di no: il tuo programma dovrà
leggere degli //altri// file in cui ci sono le descrizioni delle
partite. E allora avranno il loro formato, diverso da quello delle liste
sotto python, e pace.

Nota che comunque c'è una bella differenza tra:
(1,2,3)
e
(1.,d4,Cf6)
la prima è una lista di numeri, che il python conosce, la seconda è una
lista di cose che il python non sa cosa sono, (a meno che prima non glie
le definisca tu, ma temo siano un po' troppe!). Probabilmente quello che
vuoi è importarle come stringhe, ovvero se tu volessi davvero mettere le
partite nel codice del programma dovrebbero essere così:
("1.","d4","Cf6")


> Ora avendo la risposta a queste due domande , credo di avere gli strumenti
> per "importare" in Python una partita "singola" . Il problema è : per
> importare più partite da un database , come posso "dividere" le
> partite ? Cioè come posso fare sapere a Python quando finisce una
> partita e inizia una nuova ? Se importassi le partite manualmente ,
> una a una , non ci sarebbe problema ,
> potrei scrivere qualsiasi codice di programma e crearmi un database
> specifico, ma l'utilità dell'applicazione verebbe a meno. Io devo
> potere importare "automaticamente" le partite da un database esistente
> , o da una copia testuale di esso (un database di partite discacchi
> posso convertirlo in formato TXT,HTML,RTF o PGN -pgn è lo standar per
> i database di scacchi).

In un qualsiasi di questi formati (ma prendi il più semplice, che
immagino sia il TXT) le partite saranno separate in qualche modo, no?

Perfetto, scopri in che modo sono separate, leggi un minimo di
documentazione sulla lettura da file e sulle stringhe  (un indizio:
"split") sotto python e sei a posto.

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