Learning python : powerful object-oriented programming - Lutz, Mark (O'Reilly Media, 2013)