This is a book for intermediate level Python developers. It showed some nice examples on how to structure a project. I would have enjoyed more code examples and less info about project life cycle for example. The last chapters, containing the heavy stuff, like multithreading, multiprocessing and design patterns, were too short for the amount of information.
This is really a book for advanced python programming as it does not cover the language itself but everything around it. Package distribution, MRO, design patterns, project life cycle,... It did make me a better python developper.
It lost a star though because python 2.6 was still in dev when the book was written and now (8 years later) 3.6 is about to come out. About 75-80 is still relevant but it's in dire need of a refresh.
So I do recommend this book even if it's old. I learned a few things that are never covered in the typical python books.
EDIT there is a second edition of this book. Guess I had the first one laying around for quite some times.
Old book. Python 2.7 was not yet even released at that time.
I mostly skipped everything, except for the chapter on documentation, which I still find relevant. It's not in the book, but together with what Daniele Procida says about documentation, I came up with this structure for the docs of a technical project: 1. Design/architecture diagrams 2. Design/architecture explanations 3. Operation (install/upgrade/run/test/turn on or off/monitor) 4. Usage - Reference manual 5. Usage - How to's/Cookbooks 6. Usage - Tutorials 7. Product - feature map (user story map) 8. Clients (projects depending on this one)
The Python-specific parts are amazing, and I will probably be re-reading them for a while. But most of the packages Ziade mentions are out of date, having been replaced with better alternatives. That's true for some of the code as well--his singleton implementation, for example, seems dated (although that's a contrived example in Python since you should be using modules anyway, I guess). Also, the chapters on managing code, etc. are kind of unnecessary--I thought they would be more Python-specific, but he pretty much just talks about Mercurial.
The start was nice. I was always missing a python book addressed to people who know how to write code in other languages. I find the part of the book which tells about different libraries way less useful.