Intro to cattrs 23.1.0
Instead of my usual Twitter and Fediverse threads, for this release of cattrs I figured I'd try something different. A blog post lets me describe the additions in more detail, provide context and
Algebraic Data Types in (typed) Python
By properly utilizing Algebraic Data Types (ADTs, not to be confused with abstract data types), you can transform certain types of invalid states from runtime errors into type-checking errors, making them an excellent
Python is two languages now, and that's actually great
Everyone doing Python nowadays is aware Python supports optional type hints, and has for some time now. This has created a small schism in the community, with some people being completely uninterested in
Wall vs CPU time, or the cost of asyncio Tasks
Performing I/O concurrently is one of asyncio's superpowers (if not its main superpower). This is accomplished, directly or indirectly (through helpers like asyncio.gather), by the creation and use of asyncio tasks.
cattrs I: un/structuring speed
Over the years, I've put a lot of effort into making cattrs fast. Let's take a look at how the cattrs structuring code evolved during this time.