I don't know any books for projects per-se, maybe HN will know!
The solutions presented typically include both a "basic" approach, a "as pythonic as possible" approach, and a brief discussion of the trade-offs between elegance and readability, etc.
Long story short : I think both have a lot of value (but beware I'm quite biased on Robust Python)
That said, I think I had good luck with Writing Idiomatic Python.
When I learned Kotlin, I just read through the docs, and then knew of basically all the different concepts in the language.
For Python, the docs were comparably very bad. For instance, Decorators aren't mentioned even once in the "The Python Tutorial". In "The Python Language Reference" (if one even bother to read such a dry document) it's barely mentioned in passing. How should a new user know it's a concept and how to apply it? And the language reference links only to a glossary item, and none of them specify how parameters in a decorator is supposed to work.
Pretty frustrating experience, put me a bit off the language from the get-go.
@decorator
def f(...): ...
is equivalent to: def f(...): ...
f = decorator(f)
That's it.Compare their ThreadPoolExecutors (Python's being inspired by Java's)
https://docs.python.org/3/library/concurrent.futures.html#co...
https://docs.oracle.com/javase/7/docs/api/java/util/concurre...