Annexe E. Historique des révisions
2004-05-20 (5.4)
- Added Section 12.1, «Plonger».
- Added Section 12.2, «Installation des bibliothèques SOAP».
- Added Section 12.3, «Premiers pas avec SOAP».
- Added Section 12.4, «Débogage de services Web SOAP».
- Added Section 12.5, «Présentation de WSDL».
- Added Section 12.6, «Introspection de services Web SOAP avec WSDL».
- Added Section 12.7, «Recherche Google».
- Added Section 12.8, «Recherche d'erreurs dans les services Web SOAP».
- Added Section 12.9, «Résumé».
- Incorporated technical reviewer revisions in Chapitre 16, Programmation fonctionnelle and Chapitre 18, Ajustements des performances.
2004-05-12 (5.3)
2004-05-09 (5.2)
2004-05-05 (5.1)
- Clarified Exemple 7.7, «Rechercher les dizaines» and Exemple 7.8, «Validation des chiffres romains avec {n,m}».
- Clarified Exemple 7.10, «Trouver des numéros».
- Fixed typo in Exemple 11.6, «Test de Last-Modified». Thanks, Jesir.
- Fixed typo in Exemple 3.11, «Différence entre extend et append». Thanks, Daniel.
- Incorporated technical reviewer revisions.
- Incorporated copy editor revisions in Chapitre 1, Installation de Python, Chapitre 2, Votre premier programme Python, Chapitre 3, Types prédéfinis, and Chapitre 4, Le pouvoir de l’introspection.
2004-04-16 (5.0)
- Added Section 11.1, «Plonger».
- Added Section 11.2, «Obtenir des données par HTTP : la mauvaise méthode».
- Added Section 11.3, «Fonctionnalités de HTTP».
- Added Section 11.4, «débogage de services Web HTTP».
- Added Section 11.5, «Changer la chaîne User-Agent».
- Added Section 11.6, «Prise en charge de Last-Modified et ETag».
- Added Section 11.7, «Prise en charge des redirections.».
- Added Section 11.8, «Prise en charge des données compressées.».
- Added Section 11.9, «Assembler les pièces».
- Added Section 11.10, «Résumé».
- Added Exemple 3.11, «Différence entre extend et append».
- Changed descriptions of how to download Python throughout Chapitre 1, Installation de Python to be more generic and less version-specific.
- Changed references of «module» to «program» in Section 2.1, «Plonger» and Section 2.4, «Tout est objet» since we haven't explained modules yet.
- Added explicit instructions in Section 2.4, «Tout est objet» for the reader to open their Python IDE and follow along with the examples.
- Changed all examples and descriptions that referred to truth values 1 and 0 to refer to True and False.
- Updated Exemple 3.22, «Formatage de chaîne et concaténation» to show new Python 2.3 TypeError message.
- Fixed typo in Exemple 17.19, «Utilisation des générateurs à la place de la récursion».
- Fixed typo in Section 7.7, «Résumé».
- Fixed typo in Exemple 17.9, «plural4.py».
2004-03-25 (4.9)
2004-03-25 (4.8)
- Finished Section 17.7, «plural.py, étape 6».
- Finished Section 17.8, «Résumé».
- Fixed broken links in Annexe A, Pour en savoir plus, Annexe B, Survol en cinq minutes, Annexe C, Trucs et astuces, Annexe D, Liste des exemples.
2004-03-21 (4.7)
- Added Section 17.1, «Plonger».
- Added Section 17.2, «plural.py, étape 1».
- Added Section 17.3, «plural.py, étape 2».
- Added Section 17.4, «plural.py, étape 3».
- Added Section 17.5, «plural.py, étape 4».
- Added Section 17.6, «plural.py, étape 5».
- Added Section 17.7, «plural.py, étape 6» (unfinished).
- Added Section 17.8, «Résumé» (unfinished).
2004-03-14 (4.6)
2004-03-07 (4.5)
- Added Section 7.1, «Plonger».
- Added Section 7.4, «Utilisation de la syntaxe {n,m}» (incomplete).
- Added Section 7.5, «Expressions régulières détaillées» (incomplete).
- Added Section 7.6, «Etude de cas : reconnaissance de numéros de téléphone» (incomplete).
- Added Section 7.7, «Résumé».
- Moved Section 7.2, «Exemple : adresses postales» and Section 7.3, «Exemple : chiffres romains» to regular expressions chapter.
- Added Exemple 6.20, «Liste du contenu d'un répertoire avec glob».
- Added Exemple 6.7, «Ecriture dans un fichier».
- Added Exemple 5.11, «Dériver une classe directement du type prédéfini dict».
- Added Exemple 10.11, «Afficher un message sur stderr».
- Added Exemple 4.12, «Création d'un sélecteur avec getattr» and Exemple 4.13, «Valeurs par défaut de getattr».
- Added Exemple 2.6, «Instructions if».
- Added Exemple 3.23, «Formatage de nombres».
- Split Chapitre 5, Les objets et l'orienté objet into 2 chapters: Chapitre 5, Les objets et l'orienté objet and Chapitre 6, Traitement des exceptions et utilisation de fichiers.
- Split Chapitre 9, Traitement de données XML into 2 chapters: Chapitre 9, Traitement de données XML and Chapitre 10, Des scripts et des flots de données (streams).
- Split Chapitre 13, Tests unitaires into 2 chapters: Chapitre 13, Tests unitaires and Chapitre 15, Refactorisation.
- Renamed help to info in Chapitre 4, Le pouvoir de l’introspection.
- Fixed incorrect back-reference in Section 8.5, «locals et globals».
- Fixed broken example links in Section 8.1, «Plonger».
- Fixed missing line in example in Section 9.1, «Plonger».
- Fixed typo in Section 8.2, «Présentation de sgmllib.py».
2003-10-08 (4.4)
- Added Section 1.1, «Quel Python vous faut-il ?».
- Added Section 1.2, «Python sous Windows».
- Added Section 1.3, «Python sous Mac OS X».
- Added Section 1.4, «Python sous Mac OS 9».
- Added Section 1.5, «Python sous RedHat Linux».
- Added Section 1.6, «Python sous Debian GNU/Linux».
- Added Section 1.7, «Installation de Python à partir du source».
- Added Section 1.9, «Résumé».
- Removed preface.
- Fixed typo in Exemple 3.27, «Sortie de odbchelper.py».
- Added link to PEP 257 in Section 2.3, «Documentation des fonctions».
- Fixed link to How to Think Like a Computer Scientist in Section 3.4.2, «Assignation simultanée de plusieurs valeurs».
- Added note about implied assert in Section 3.3, «Présentation des tuples».
2003-09-28 (4.3)
2003-09-17 (4.2.1)
- Fixed links on index page.
- Fixed syntax highlighting.
2003-09-12 (4.2)
- Fixed typos in Section 16.4, «La mutation de liste revisitée», Section 16.3, «Le filtrage de liste revisité», Section 7.2, «Exemple : adresses postales», and Section 10.6, «Manipuler les arguments de la ligne de commande». Thanks, Doug.
- Fixed external link in Section 5.3, «Définition de classes». Thanks, Harry.
- Changed wording at the end of Section 4.5, «Filtrage de listes». Thanks, Paul.
- Added sentence in Section 13.5, «Tester l’échec» to make it clearer that we're passing a function to assertRaises, not a function name as a string. Thanks, Stephen.
- Fixed typo in Section 8.8, «Présentation de dialect.py». Thanks, Wellie.
- Fixed links to dialectized examples.
- Fixed external link to the history of Roman numerals. Thanks to many concerned Roman numeral fans around the world.
2002-07-28 (4.1)
- Added Section 10.3, «Mettre en cache la consultation de noeuds».
- Added Section 10.4, «Trouver les descendants directs d'un noeud».
- Added Section 10.5, «Créer des gestionnaires distincts pour chaque type de noeud».
- Added Section 10.6, «Manipuler les arguments de la ligne de commande».
- Added Section 10.7, «Assembler les pièces».
- Added Section 10.8, «Résumé».
- Fixed typo in Section 6.5, «Travailler avec des répertoires». It's os.getcwd(), not os.path.getcwd(). Thanks, Abhishek.
- Fixed typo in Section 3.7, «Jointure de listes et découpage de chaînes». When evaluated (instead of printed), the Python IDE will display single quotes around the output.
- Changed str example in Section 4.8, «Assembler les pièces» to use a user-defined function, since Python 2.2 obsoleted the old example by defining a doc string for the built-in dictionary methods. Thanks Eric.
- Fixed typo in Section 9.4, «Le standard Unicode», "anyway" to "anywhere". Thanks Frank.
- Fixed typo in Section 13.6, «Tester la cohérence», doubled word "accept". Thanks Ralph.
- Fixed typo in Section 15.3, «Refactorisation», C?C?C? matches 0 to 3 C characters, not 4. Thanks Ralph.
- Clarified and expanded explanation of implied slice indices in Exemple 3.9, «Raccourci pour le découpage». Thanks Petr.
- Added historical note in Section 5.5, «UserDict : une classe enveloppe» now that Python 2.2 supports subclassing built-in datatypes directly.
- Added explanation of update dictionary method in Exemple 5.9, «Definition de la classe UserDict». Thanks Petr.
- Clarified Python's lack of overloading in Section 5.5, «UserDict : une classe enveloppe». Thanks Petr.
- Fixed typo in Exemple 8.8, «Présentation de BaseHTMLProcessor». HTML comments end with two dashes and a bracket, not one. Thanks Petr.
- Changed tense of note about nested scopes in Section 8.5, «locals et globals» now that Python 2.2 is out. Thanks Petr.
- Fixed typo in Exemple 8.14, «Formatage à l’aide d’un dictionnaire dans BaseHTMLProcessor.py»; a space should have been a non-breaking space. Thanks Petr.
- Added title to note on derived classes in Section 5.5, «UserDict : une classe enveloppe». Thanks Petr.
- Added title to note on downloading unittest in Section 15.3, «Refactorisation». Thanks Petr.
- Fixed typesetting problem in Exemple 16.6, «Exécuter les scripts dans le répertoire en cours»; tabs should have been spaces, and the line numbers were misaligned. Thanks Petr.
- Fixed capitalization typo in the tip on truth values in Section 3.2, «Présentation des listes». It's True and False, not true and false. Thanks to everyone who pointed this out.
- Changed section titles of Section 3.1, «Présentation des dictionnaires», Section 3.2, «Présentation des listes», and Section 3.3, «Présentation des tuples». "Dictionaries 101" was a cute way of saying that this section was an beginner's introduction to dictionaries. American
colleges tend to use this numbering scheme to indicate introductory courses with no prerequisites, but apparently this is
a distinctly American tradition, and it was unnecessarily confusing my international readers. In my defense, when I initially
wrote these sections a year and a half ago, it never occurred to me that I would have international readers.
- Upgraded to version 1.52 of the DocBook XSL stylesheets.
- Upgraded to version 6.52 of processeur XSLT SAXON de Michael Kay.
- Various accessibility-related stylesheet tweaks.
- Somewhere between this revision and the last one, she said yes. The wedding will be next spring.
2002-04-26 (4.0-2)
2002-04-19 (4.0)
- Expanded Section 2.4, «Tout est objet» to include more about import search paths.
- Fixed typo in Exemple 3.7, «Indices de liste négatifs». Thanks to Brian for the correction.
- Rewrote the tip on truth values in Section 3.2, «Présentation des listes», now that Python has a separate boolean datatype.
- Fixed typo in Section 5.2, «Importation de modules avec from module import» when comparing syntax to Java. Thanks to Rick for the correction.
- Added note in Section 5.5, «UserDict : une classe enveloppe» about derived classes always overriding ancestor classes.
- Fixed typo in Exemple 5.18, «Modification des attributs de classe». Thanks to Kevin for the correction.
- Added note in Section 6.1, «Traitement des exceptions» that you can define and raise your own exceptions. Thanks to Rony for the suggestion.
- Fixed typo in Exemple 8.17, «Traitement de balises spécifiques». Thanks for Rick for the correction.
- Added note in Exemple 8.18, «SGMLParser» about what the return codes mean. Thanks to Howard for the suggestion.
- Added str function when creating StringIO instance in Exemple 10.6, «openAnything». Thanks to Ganesan for the idea.
- Added link in Section 13.3, «Présentation de romantest.py» to explanation of why test cases belong in a separate file.
- Changed Section 16.2, «Trouver le chemin» to use os.path.dirname instead of os.path.split. Thanks to Marc for the idea.
- Added code samples (piglatin.py, parsephone.py, and plural.py) for the upcoming regular expressions chapter.
- Updated and expanded list of Python distributions on home page.
2002-01-01 (3.9)
- Added Section 9.4, «Le standard Unicode».
- Added Section 9.5, «Rechercher des éléments».
- Added Section 9.6, «Accéder aux attributs d'un élément».
- Added Section 10.1, «Extraire les sources de données en entrée».
- Added Section 10.2, «Entrée, sortie et erreur standard».
- Added simple counter for loop examples (good usage and bad usage) in Section 6.3, «Itérations avec des boucles for». Thanks to Kevin for the idea.
- Fixed typo in Exemple 3.25, «Les fonctions keys, values et items» (two elements of params.values() were reversed).
- Fixed mistake in Section 4.3, «Utilisation de type, str, dir et autres fonction prédéfinies» with regards to the name of the __builtin__ module. Thanks to Denis for the correction.
- Added additional example in Section 16.2, «Trouver le chemin» to show how to run unit tests in the current working directory, instead of the directory where regression.py is located.
- Modified explanation of how to derive a negative list index from a positive list index in Exemple 3.7, «Indices de liste négatifs». Thanks to Renauld for the suggestion.
- Updated links on home page for downloading latest version of Python.
- Added link on home page to Bruce Eckel's preliminary draft of Thinking in Python, a marvelous (and advanced) book on design patterns and how to implement them in Python.
2001-11-18 (3.8)
2001-09-30 (3.7)
- Added Section 9.2, «Les paquetages».
- Added Section 9.3, «Analyser un document XML».
- Cleaned up introductory paragraph in Section 9.1, «Plonger». Thanks to Matt for this suggestion.
- Added Java tip in Section 5.2, «Importation de modules avec from module import». Thanks to Ori for this suggestion.
- Fixed mistake in Section 4.8, «Assembler les pièces» where I implied that you could not use is None to compare to a null value in Python. In fact, you can, and it's faster than == None. Thanks to Ori pointing this out.
- Clarified in Section 3.2, «Présentation des listes» where I said that li = li + other was equivalent to li.extend(other). The result is the same, but extend is faster because it doesn't create a new list. Thanks to Denis pointing this out.
- Fixed mistake in Section 3.2, «Présentation des listes» where I said that li += other was equivalent to li = li + other. In fact, it's equivalent to li.extend(other), since it doesn't create a new list. Thanks to Denis pointing this out.
- Fixed typographical laziness in Chapitre 2, Votre premier programme Python; when I was writing it, I had not yet standardized on putting string literals in single quotes within the text. They were
set off by typography, but this is lost in some renditions of the book (like plain text), making it difficult to read. Thanks
to Denis for this suggestion.
- Fixed mistake in Section 2.2, «Déclaration de fonctions» where I said that statically typed languages always use explicit variable + datatype declarations to enforce static typing.
Most do, but there are some statically typed languages where the compiler figures out what type the variable is based on
usage within the code. Thanks to Tony for pointing this out.
- Added link to Spanish translation.
2001-09-06 (3.6.4)
2001-09-04 (3.6.3)
2001-08-31 (3.6.2)
2001-08-31 (3.6)
- Finished Chapitre 8, Traitement du HTML with Section 8.9, «Assembler les pièces» and Section 8.10, «Résumé».
- Added Section 15.4, «Postscriptum».
- Started Chapitre 9, Traitement de données XML with Section 9.1, «Plonger».
- Started Chapitre 16, Programmation fonctionnelle with Section 16.1, «Plonger».
- Fixed long-standing bug in colorizing script that improperly colorized the examples in Chapitre 8, Traitement du HTML.
- Added link to French translation. They did the right thing and translated the source XML, so they can re-use all my build scripts and make their work available in six different formats.
- Upgraded to version 1.43 of the DocBook XSL stylesheets.
- Upgraded to version 6.43 of processeur XSLT SAXON de Michael Kay.
- Massive stylesheet changes, moving away from a table-based layout and towards more appropriate use of cascading style sheets.
Unfortunately, CSS has as many compatibility problems as anything else, so there are still some tables used in the header and footer. The resulting
HTML version looks worse in Netscape 4, but better in modern browsers, including Netscape 6, Mozilla, Internet Explorer 5, Opera 5, Konqueror, and iCab. And it's still completely readable in Lynx. I love Lynx. It was my first web browser. You never forget your first.
- Moved to Ant to have better control over the build process, which is especially important now that I'm juggling six output formats and
two languages.
- Consolidated the available downloadable archives; previously, I had different files for each platform, because the .zip files
that Python's zipfile module creates are non-standard and can't be opened by Aladdin Expander on Mac OS. But the .zip files that Ant creates are completely standard and cross-platform. Go Ant!
- Now hosting the complete XML source, XSL stylesheets, and associated scripts and libraries on SourceForge. There's also CVS access for the really adventurous.
- Re-licensed the example code under the new-and-improved GPL-compatible Python 2.1.1 license. Thanks, Guido; people really do care, and it really does matter.
2001-06-26 (3.5)
2001-05-31 (3.4)
2001-05-24 (3.3)
- Added Section 13.2, «Présentation de romantest.py».
- Added Section 13.3, «Présentation de romantest.py».
- Added Section 13.4, «Tester la réussite».
- Added Section 13.5, «Tester l’échec».
- Added Section 13.6, «Tester la cohérence».
- Added Section 14.1, «roman.py, étape 1».
- Added Section 14.2, «roman.py, étape 2».
- Added Section 14.3, «roman.py, étape 3».
- Added Section 14.4, «roman.py, étape 4».
- Tweaked stylesheets in an endless quest for complete Netscape/Mozilla compatibility.
2001-05-03 (3.2)
2001-04-18 (3.1)
- Added code in BaseHTMLProcessor.py to handle declarations, now that Python 2.1 supports them.
- Added note about nested scopes in Section 8.5, «locals et globals».
- Fixed obscure bug in Exemple 8.1, «BaseHTMLProcessor.py» where attribute values with character entities would not be properly escaped.
- Now recommending (but not requiring) Python 2.1, due to its support of declarations in sgmllib.py.
- Updated download links on the home page to point to Python 2.1, where available.
- Moved to versioned filenames, to help people who redistribute the book.
2001-04-16 (3.0)
2001-04-13 (2.9)
2001-03-26 (2.8)
2001-03-16 (2.7)
2001-02-28 (2.6)
- The PDF and Word versions now have colorized examples, an improved table of contents, and properly indented tips and notes.
- The Word version is now in native Word format, compatible with Word 97.
- The PDF and text versions now have fewer problems with improperly converted special characters (like trademark symbols and curly
quotes).
- Added link to download Word version for UNIX, in case some twisted soul wants to import it into StarOffice or something.
- Fixed several notes which were missing titles.
- Fixed stylesheets to work around bug in Internet Explorer 5 for Mac OS which caused colorized words in the examples to be displayed in the wrong font. (Hello?!? Microsoft? Which part of <pre> don't you understand?)
- Fixed archive corruption in Mac OS downloads.
- In first section of each chapter, added link to download examples. (My access logs show that people skim or skip the two
pages where they could have downloaded them (the home page and preface), then scramble to find a download link once they actually start reading.)
- Tightened the home page and preface even more, in the hopes that someday someone will read them.
- Soon I hope to get back to actually writing this book instead of debugging it.
2001-02-23 (2.5)
2001-02-12 (2.4.1)
- Changed newsgroup links to use «news:» protocol, now that deja.com is defunct.
- Added file sizes to download links.
2001-02-12 (2.4)
- Added «further reading» links in most sections, and collated them in Annexe A, Pour en savoir plus.
- Added URLs in parentheses next to external links in text version.
2001-02-09 (2.3)
- Rewrote some of the code in Chapitre 5, Les objets et l'orienté objet to use class attributes and a better example of multi-variable assignment.
- Reorganized Chapitre 5, Les objets et l'orienté objet to put the class sections first.
- Added Section 5.8, «Attributs de classe».
- Added Section 6.1, «Traitement des exceptions».
- Added Section 6.2, «Les objets-fichier».
- Merged the «review» section in Chapitre 5, Les objets et l'orienté objet into Section 5.1, «Plonger».
- Colorized all program listings and examples.
- Fixed important error in Section 2.2, «Déclaration de fonctions»: functions that do not explicitly return a value return None, so you can assign the return value of such a function to a variable without raising an exception.
- Added minor clarifications to Section 2.3, «Documentation des fonctions», Section 2.4, «Tout est objet», and Section 3.4, «Définitions de variables».
2001-02-02 (2.2)
- Edited Section 4.4, «Obtenir des références objet avec getattr».
- Added titles to xref tags, so they can have their cute little tooltips too.
- Changed the look of the revision history page.
- Fixed problem I introduced yesterday in my HTML post-processing script that was causing invalid HTML character references and breaking some browsers.
- Upgraded to version 1.29 of the DocBook XSL stylesheets.
2001-02-01 (2.1)
2001-01-31 (2.0)
2001-01-15 (1.9)
2001-01-12 (1.8)
2001-01-03 (1.71)
- Made several modifications to stylesheets to improve browser compatibility.
2001-01-02 (1.7)
- Added introduction to Chapitre 2, Votre premier programme Python.
- Added introduction to Chapitre 4, Le pouvoir de l’introspection.
- Added review section to Chapitre 5, Les objets et l'orienté objet [later removed]
- Added Section 5.9, «Fonctions privées».
- Added Section 6.3, «Itérations avec des boucles for».
- Added Section 3.4.2, «Assignation simultanée de plusieurs valeurs».
- Wrote scripts to convert book to new output formats: one single HTML file, PDF, Microsoft Word 97, and plain text.
- Registered the diveintopython.org domain and moved the book there, along with links to download the book in all available output formats for offline reading.
- Modified the XSL stylesheets to change the header and footer navigation that displays on each page. The top of each page is branded with
the domain name and book version, followed by a breadcrumb trail to jump back to the chapter table of contents, the main table
of contents, or the site home page.
2000-12-11 (1.6)
2000-11-22 (1.5)
2000-11-14 (1.4)
2000-11-09 (1.3)
- Added section on dynamic code execution.
- Added links to relevant section/example wherever I refer to previously covered concepts.
- Expanded introduction of chapter 2 to explain what the function actually does.
- Explicitly placed example code under the GNU General Public License and added appendix to display license. [Note 8/16/2001: code has been re-licensed under GPL-compatible Python license]
- Changed links to licenses to use xref tags, now that I know how to use them.
2000-11-06 (1.2)
- Added first four sections of chapter 2.
- Tightened up preface even more, and added link to Mac OS version of Python.
- Filled out examples in "Mapping lists" and "Joining strings" to show logical progression.
- Added output in chapter 1 summary.
2000-10-31 (1.1)
- Finished chapter 1 with sections on mapping and joining, and a chapter summary.
- Toned down the preface, added links to introductions for non-programmers.
- Fixed several typos.
2000-10-30 (1.0)