I got the book in Kindle version. It is very readable, and it's easy to follow and understand the snippets and the incremental versions but I found it to be very difficult to put it all together in my own program because I need to chase all the snippets of the right version instead of having a full beginning to end .py example.
In my opinion, the heavy reliance on notebook and not providing full .py examples makes the book less useful than I expected. It's a matter of 'plenty of versioned trees' vs 'a single best-practice forrest' if you like.