Effective Python - 59 Specific Ways to Write Better Python