[Commits] python.it commit r231 -
python/python/Doc/branches/2.4.3/lib
commit a svn.python.it
commit a svn.python.it
Mer 8 Nov 2006 23:45:14 CET
Author: eriol
Date: Wed Nov 8 23:43:24 2006
New Revision: 231
Modified:
python/python/Doc/branches/2.4.3/lib/libcodecs.tex
python/python/Doc/branches/2.4.3/lib/libcodeop.tex
python/python/Doc/branches/2.4.3/lib/libcollections.tex
python/python/Doc/branches/2.4.3/lib/libcookie.tex
python/python/Doc/branches/2.4.3/lib/libcrypt.tex
python/python/Doc/branches/2.4.3/lib/libcsv.tex
python/python/Doc/branches/2.4.3/lib/libdatetime.tex
python/python/Doc/branches/2.4.3/lib/libdis.tex
Log:
aggiornamenti di Antonio Vitale, con correzioni
Modified: python/python/Doc/branches/2.4.3/lib/libcodecs.tex
==============================================================================
--- python/python/Doc/branches/2.4.3/lib/libcodecs.tex (original)
+++ python/python/Doc/branches/2.4.3/lib/libcodecs.tex Wed Nov 8 23:43:24 2006
@@ -248,11 +248,11 @@
\end{datadesc}
-\subsection{Classi base di Codec}
+\subsection{Classi base di Codec \label{codec-base-classes}}
Il modulo \module{codecs} definisce un insieme di classi base che
definiscono l'interfaccia, e che possono anche venire usate per scrivere
-rapidamente i propri codecs da utilizzare con Python.
+rapidamente i propri codec da utilizzare con Python.
Ogni codec deve definire quattro interfacce perché sia usabile come
codec in Python: stateless encoder (NdT: codificatore senza stato),
@@ -517,45 +517,53 @@
%[- MARK -] END DIFF
\end{classdesc}
-\begin{methoddesc}{read}{\optional{size}}
- Decodifica i dati dallo flusso, e restituisce l'oggetto risultante.
+\begin{methoddesc}{read}{\optional{size\optional{, chars, \optional{firstline}}}
+ Decodifica i dati dal flusso, e restituisce l'oggetto risultante.
+
+ \var{chars} indica il numero di caratteri da leggere dal flusso.
+ \function{read()} non restituirà mai più di \var{chars} caratteri:
+ però potrebbero essere di meno, se nel flusso non è disponibile
+ tale numero di caratteri.
\var{size} indica approssimativamente il numero massimo di bytes da
leggere dal flusso per la decodifica. Il decodificatore può
modificare questa impostazione in base alle necessità. Il valore
predefinito -1 indica di leggere e decodificare il più possibile.
\var{size} viene utilizzato per prevenire la decodifica di file
- troppo grandi in un solo passaggio.
+ troppo grandi in un solo passaggio.
+
+ \var{firstline} indica che, se ci sono errori di decodifica nelle
+ successive linee, è sufficiente la restituzione della prima.
Il metodo dovrebbe usare un'attenta strategia di lettura, cioè
dovrebbe la massima quantità possibile di dati, consentita dala
definizione della codifica e dalla misura indicata, per esempio se
sono disponibili sul flusso delle estensioni facoltative di codifica
o dei marcatori di stato, anche questi devono venir letti.
+
+ \versionchanged[\var{chars} argument added]{2.4}
+ \versionchanged[\var{firstline} argument added]{2.4.2}
\end{methoddesc}
-\begin{methoddesc}{readline}{[size]}
+\begin{methoddesc}{readline}{[\optional{size\optional{, keepends}}}
Legge una riga dallo stream di input e restituire i dati
decodificati.
- Diversamente dal metodo \method{readlines()}, questo metodo eredita
- la conoscenza dell'interruzione di riga dal metodo
- \method{readlines()} dello stream sottostante -- attualmente non
- esiste supporto per l'interruzione di riga usando il codec decoder, a
- causa di mancanze di righe nel buffer. Le classi derivate dovrebbero
- comunque, se possibile, tentare di implementare questo metodo, usando
- la loro conoscenza dell'interruzione di riga.
-
\var{size}, se indicato, viene passato come argomento dimensione
nel metodo \method{readline()} dello stream.
+
+ Se \var{keepends} è falso le linee finali verranno tolte dalle
+ linee restituite.
+
+ \versionchanged[\var{keepends} argument added]{2.4}
\end{methoddesc}
-\begin{methoddesc}{readlines}{[sizehint]}
+\begin{methoddesc}{readlines}{[\optional{sizehint\optional{, keepends}}}
Legge tutte le righe disponibili nel flusso di input e le restituisce
come una lista di righe.
- Le interruzioni di riga vengono implementate usando il metodo decoder
- di codifica, e vengono incluse nell'elenco dei valori.
+ Le interruzioni di riga vengono implementate usando il metodo decoder di
+ codifica e, se \var{keepends} è vero, vengono incluse nell'elenco dei valori.
\var{sizehint}, se indicato, viene passato come argomento \var{size},
nel metodo \method{read()} dello stream.
@@ -656,7 +664,7 @@
%[- MARK -] END DIFF
tutti gli altri metodi ed attributi del flusso sottostante.
-\subsection{ Codifica standard}
+\subsection{ Codifica standard\label{standard-encodings}}
Python viene distribuito con un certo numero di codifiche built-in,
tutte implementate come funzioni C, o con dizionari come tabelle
@@ -709,7 +717,11 @@
{Inglese}
\lineiii{big5}
- {big5_tw, csbig5}
+ {big5-tw, csbig5}
+ {Cinese Tradizionale}
+
+\lineiii{big5hkscs}
+ {big5-hkscs, hkscs}
{Cinese Tradizionale}
\lineiii{cp037}
@@ -796,6 +808,10 @@
%[- MARK -] \lineiii{cp874}
%[- MARK -] END DIFF
{Danese, Norvegese}
+
+\lineiii{cp866}
+ {866, IBM866}
+ {Russo}
\lineiii{cp869}
{869, CP-GR, IBM869}
@@ -825,7 +841,7 @@
{Greco}
\lineiii{cp932}
- {932, ms932, mskanji, ms_kanji}
+ {932, ms932, mskanji, ms-kanji}
{Giapponese}
\lineiii{cp949}
@@ -969,19 +985,23 @@
{Vietnamita}
\lineiii{euc_jp}
- {eucjp, ujis, u_jis}
+ {eucjp, ujis, u-jis}
+ {Giapponese}
+
+\lineiii{euc_jis_2004}
+ {jisx0213, eucjis2004}
{Giapponese}
\lineiii{euc_jisx0213}
- {jisx0213, eucjisx0213}
+ {eucjisx0213}
{Giapponese}
\lineiii{euc_kr}
- {euckr, korean, ksc5601, ks_c_5601, ks_c_5601_1987, ksx1001, ks_x_1001}
+ {euckr, korean, ksc5601, ks_c-5601, ks_c_5601-1987, ksx1001, ks_x-1001}
{Coreano}
\lineiii{gb2312}
- {chinese, csiso58gb231280, euc_cn, euccn, eucgb2312_cn, gb2312_1980, gb2312_80, iso_ir_58}
+ {chinese, csiso58gb231280, euc_cn, euccn, eucgb2312-cn, gb2312-1980, gb2312-80, iso-ir-58}
{Cinese Semplificato}
\lineiii{gbk}
@@ -989,35 +1009,39 @@
{Cinese Unificato}
\lineiii{gb18030}
- {gb18030_2000}
+ {gb18030-2000}
{Cinese Unificato}
\lineiii{hz}
- {hzgb, hz_gb, hz_gb_2312}
+ {hzgb, hz-gb, hz-gb-2312}
{Cinese Semplificato}
\lineiii{iso2022_jp}
- {csiso2022jp, iso2022jp, iso_2022_jp}
+ {csiso2022jp, iso2022jp, iso-2022-jp}
{Giapponese}
\lineiii{iso2022_jp_1}
- {iso2022jp_1, iso_2022_jp_1}
+ {iso2022jp-1, iso-2022-jp-1}
{Giapponese}
\lineiii{iso2022_jp_2}
- {iso2022jp_2, iso_2022_jp_2}
+ {iso2022jp-2, iso-2022-jp-2}
{Giapponese, Coreano, Cinese Semplificato, Europa dell'Ovest, Greco}
+\lineiii{iso2022_jp_2004}
+ {iso2022jp-2004, iso-2022-jp-2004}
+ {Giapponese}
+
\lineiii{iso2022_jp_3}
- {iso2022jp_3, iso_2022_jp_3}
+ {iso2022jp-3, iso-2022-jp-3}
{Giapponese}
\lineiii{iso2022_jp_ext}
- {iso2022jp_ext, iso_2022_jp_ext}
+ {iso2022jp-ext, iso-2022-jp-ext}
{Giapponese}
\lineiii{iso2022_kr}
- {csiso2022kr, iso2022kr, iso_2022_kr}
+ {csiso2022kr, iso2022kr, iso-2022-kr}
{Coreano}
\lineiii{latin_1}
@@ -1133,6 +1157,10 @@
%[- MARK -] END DIFF
{Giapponese}
+\lineiii{shift_jis_2004}
+ {shiftjis2004, sjis_2004, sjis2004}
+ {Giapponese}
+
\lineiii{shift_jisx0213}
{shiftjisx0213, sjisx0213, s_jisx0213}
{Giapponese}
Modified: python/python/Doc/branches/2.4.3/lib/libcodeop.tex
==============================================================================
--- python/python/Doc/branches/2.4.3/lib/libcodeop.tex (original)
+++ python/python/Doc/branches/2.4.3/lib/libcodeop.tex Wed Nov 8 23:43:24 2006
@@ -35,7 +35,7 @@
\begin{enumerate}
\item Essere capace di predire se una riga di input completa un
costrutto Python: in breve, stabilire se stampare successivamente
- `\code{>\code{>}>~} o `\code{...~}'.
+ `\code{>\code{>}>~}' o `\code{...~}'.
\item Ricordare quali costrutti successivi sono stati inseriti
dall'utente, in modo tale che il susseguente input possa venire
compilato effettivamente con essi.
@@ -49,7 +49,7 @@
\begin{funcdesc}{compile_command}
{source\optional{, filename\optional{, symbol}}}
Cerca di compilare \var{source}, che dovrebbe essere una stringa di
-codice Python, e restitusce un codice oggetto se \var{source} è codice
+codice Python, e restitusce un oggetto codice se \var{source} è codice
Python valido. In questo caso, l'attributo filename del codice oggetto
sarà \var{filename}, che in modo predefinito è \code{'<input>'}.
Restituisce \code{None} se \var{source} \emph{non} è codice Python
@@ -59,7 +59,7 @@
un'eccezione. Viene sollevata l'eccezione \exception{SyntaxError} se
si presenta della sintassi Python non valida, e
\exception{OverflowError} oppure \exception{ValueError} se è presente
-una costante non valida.
+un letterale non valido.
L'argomento \var{symbol} determina quando \var{source} viene compilata
come una dichiarazione (il valore predefinito è \code{'single'}) o come
@@ -137,4 +137,4 @@
\end{verbatim}
e quindi chiamare \code{CommandCompiler} ogni volta che avrete la
-necessità di un nuovo oggetto compilato.
+necessità di un nuovo oggetto compilatore.
Modified: python/python/Doc/branches/2.4.3/lib/libcollections.tex
==============================================================================
--- python/python/Doc/branches/2.4.3/lib/libcollections.tex (original)
+++ python/python/Doc/branches/2.4.3/lib/libcollections.tex Wed Nov 8 23:43:24 2006
@@ -173,11 +173,10 @@
Questa sezione mostra vari approcci per lavorare con i deque.
Il metodo \method{rotate()} fornisce un modo per implementare
-l'affettamento e la cancellazione dei \class{deque}:
-
-Quest'implementazione in puro python di \code{del d[n]} mostra
-l'utilizzo del metodo \method{rotate()} come base di partenza per
-implementare diverse operazioni di \class{deque}:
+l'affettamento e la cancellazione dei \class{deque}. Per esempio,
+una implementazione in puro python di \code{del d[n]} si affida
+al metodo \method{rotate()} per posizionare gli elementi da restituire
+ed eliminare:
\begin{verbatim}
def delete_nth(d, n):
@@ -247,10 +246,10 @@
Gli algoritmi di riduzione dei dati multi-pass possono essere
-espressi in maniera succinta e codificati efficentemente estraendo gli elementi mediante
+espressi in maniera succinta e codificati efficentemente estraendo gli elementi con
chiamate multiple a \method{popleft()}, applicando la funzione di
-riduzione ed usando \method{append()} per riporre il risultato
-nella queue.
+riduzione ed chiamando \method{append()} per l'aggiunta del risultato
+alla queue.
Per esempio, la costruzione di un albero binario bilanciato di liste annidate
si ottiene riducendo due nodi adiacenti ad uno solo raggruppandoli in
Modified: python/python/Doc/branches/2.4.3/lib/libcookie.tex
==============================================================================
--- python/python/Doc/branches/2.4.3/lib/libcookie.tex (original)
+++ python/python/Doc/branches/2.4.3/lib/libcookie.tex Wed Nov 8 23:43:24 2006
@@ -91,6 +91,10 @@
\begin{seealso}
+ \seemodule{cookielib}{HTTP cookie handling for web
+ \emph{clients}. I moduli \module{cookielib} e \module{Cookie}
+ non dipendono l'uno dall'altro}.
+
\seerfc{2109}{HTTP State Management Mechanism}{Queste sono le
specifiche per la gestione dello stato implementate da questo
modulo.}
Modified: python/python/Doc/branches/2.4.3/lib/libcrypt.tex
==============================================================================
--- python/python/Doc/branches/2.4.3/lib/libcrypt.tex (original)
+++ python/python/Doc/branches/2.4.3/lib/libcrypt.tex Wed Nov 8 23:43:24 2006
@@ -47,7 +47,11 @@
%[- MARK -] END DIFF
password \UNIX{} tramite un dizionario.
-\begin{funcdesc}{crypt}{word, salt}
+Da notarsi che il funzionamento di questo modulo dipende dall'attuale
+implementazione della procedura \manpage{crypt}{3}\index{crypt(3)} nel
+sistema di esecuzione. Quindi, qualsiasi estensione resa disponibile
+nell'attuale implementazione lo sarà anche in questo modulo.
+\begin{funcdesc}{crypt}{word, salt}
\var{word} sarà in genere una password utente digitata al prompt o
in un'interfaccia grafica. \var{salt} di solito è una stringa
casuale di due caratteri utilizzata per perturbare l'algoritmo
@@ -55,7 +59,11 @@
compresi nell'insieme \regexp{[./a-zA-Z0-9]}. Questo metodo restituisce
l'hash della password sotto forma di stringa, che sarà composta da caratteri presi
dallo stesso alfabeto di \var{salt} (i primi due caratteri rappresentano
- \var{salt} stesso).
+ \var{salt} stesso).
+
+ Siccome poche estensioni \manpage{crypt}{3}\index{crypt(3)} accettano diversi
+ valori, con differenti grandezze di \var{salt}, quando si verifica una password
+ è consigliato usare come "salt" una password completamente criptata.
\end{funcdesc}
@@ -84,7 +92,7 @@
if cryptedpasswd == 'x' or cryptedpasswd == '*':
raise "Spiacente, al momento non è disponibile il supporto per le password shadow"
cleartext = getpass.getpass()
- return crypt.crypt(cleartext, cryptedpasswd[:2]) == cryptedpasswd
+ return crypt.crypt(cleartext, cryptedpasswd) == cryptedpasswd
else:
return 1
\end{verbatim}
Modified: python/python/Doc/branches/2.4.3/lib/libcsv.tex
==============================================================================
--- python/python/Doc/branches/2.4.3/lib/libcsv.tex (original)
+++ python/python/Doc/branches/2.4.3/lib/libcsv.tex Wed Nov 8 23:43:24 2006
@@ -385,16 +385,25 @@
\begin{verbatim}
import csv
-reader = csv.reader(file("some.csv", "rb"))
+reader = csv.reader(open("some.csv", "rb"))
for row in reader:
print row
\end{verbatim}
+Per stampare solo la prima e l'ultima colonna di ogni riga provare con
+
+\begin{verbatim}
+import csv
+reader = csv.reader(open("some.csv", "rb"))
+for row in reader:
+ print row[0], row[-1]
+\end{verbatim}
+
Il corrispondente piu' semplice esempio di scrittura csv è
\begin{verbatim}
import csv
-writer = csv.writer(file("some.csv", "wb"))
+writer = csv.writer(open("some.csv", "wb"))
for row in someiterable:
writer.writerow(row)
\end{verbatim}
Modified: python/python/Doc/branches/2.4.3/lib/libdatetime.tex
==============================================================================
--- python/python/Doc/branches/2.4.3/lib/libdatetime.tex (original)
+++ python/python/Doc/branches/2.4.3/lib/libdatetime.tex Wed Nov 8 23:43:24 2006
@@ -466,7 +466,7 @@
\item[(4)]
In altre parole, \code{date1 < date2} è vera se e solo se è vera
-\code{\var{date1}.toordinal() < \var{date2}.toordinal()}. Per
+\code{\var{date1}.toordinal() < \var{date2}.toordinal()}. Per
impedire che il confronto ricada nel caso predefinito del confronto
tra gli indirizzi degli oggetti, il confronto fra oggetti di tipo
\class{date} solitamente solleva l'eccezione \exception{TypeError} se
@@ -524,7 +524,7 @@
applica, tranne che per quei membri per cui vengono specificati
nuovi valori attraverso gli argomenti specificati. Ad esempio, se
\code{d == date(2002, 12, 31)}, allora
- \code{d.replace(day=26)} corrisponde a \code{date(2000, 12, 26)}.
+ \code{d.replace(day=26)} corrisponde a \code{date(2002, 12, 26)}.
\end{methoddesc}
\begin{methoddesc}{timetuple}{}
@@ -533,8 +533,8 @@
secondi vengono posti a zero e l'opzione DST è -1.
\code{\var{d}.timetuple()} è equivalente a
\code{time.struct_time((\var{d}.year, \var{d}.month, \var{d}.day,
- 0, 0, 0,
- \var{d}.weekday(),
+ 0, 0, 0,
+ \var{d}.weekday(),
\var{d}.toordinal() - date(\var{d}.year, 1, 1).toordinal() + 1,
-1))}
\end{methoddesc}
@@ -596,7 +596,7 @@
settimana dell'anno ISO 2004 comincia di Lunedì 29 Dicembre 2003 e
termina con Domenica, 4 Gennaio 2004, e quindi l'espressione
\code{date(2003, 12, 29).isocalendar()} corrisponde a
- \code{(2004, 1, 1)}, e l'espressione
+ \code{(2004, 1, 1)}, e l'espressione
\code{date(2004, 1, 4).isocalendar()} corrisponde a
\code{(2004, 1, 7)}.
\end{methoddesc}
@@ -850,7 +850,7 @@
\lineii{\var{timedelta} = \var{datetime1} - \var{datetime2}}{(3)}
\lineii{\var{datetime1} < \var{datetime2}}
- {Confronta due oggetti \class{datetime}.
+ {Confronta due oggetti \class{datetime}.
(4)}
\end{tableii}
@@ -924,7 +924,7 @@
%[- MARK -] comparands are aware, and have the same \member{tzinfo} member,
%[- MARK -] the common \member{tzinfo} member is ignored and the base datetimes
%[- MARK -] END DIFF
- lo precede nel tempo.
+ lo precede nel tempo.
Se un termine di paragone è un oggetto "semplice" e l'altro un
oggetto "complesso", viene sollevata un'eccezione
Modified: python/python/Doc/branches/2.4.3/lib/libdis.tex
==============================================================================
--- python/python/Doc/branches/2.4.3/lib/libdis.tex (original)
+++ python/python/Doc/branches/2.4.3/lib/libdis.tex Wed Nov 8 23:43:24 2006
@@ -145,6 +145,10 @@
%[- MARK -] END DIFF
\end{opcodedesc}
+\begin{opcodedesc}{NOP}{}
+Non esegue codice. Usato come segnaposto dall'ottimizzatore del bytecode.
+\end{opcodedesc}
+
\begin{opcodedesc}{POP_TOP}{}
Rimuove l'oggetto in cima alla pila (NdT: TOS, in Inglese:
top-of-stack).
@@ -438,6 +442,10 @@
%[- MARK -] END DIFF
\end{opcodedesc}
+\begin{opcodedesc}{LIST_APPEND}{}
+Chiama \code{list.append(TOS1, TOS)}. Usato per implementare le descrizioni di lista.
+\end{opcodedesc}
+
\begin{opcodedesc}{LOAD_LOCALS}{}
Mette un riferimento alle variabili locali dello spazio di visibilità
(NdT: scope) corrente sulla pila. Questo viene usato nel codice per una
Maggiori informazioni sulla lista
Commits