This is the third article in the Pyrseia series. The others are:  Building Pyrseia I: The Idea Building Pyrseia II: Fleshing out Clients and Servers If you want to follow along with the
            
             
                
        
                    
                This is the second article in the Pyrseia series. The others are:  Building Pyrseia I: The Idea Building Pyrseia III: Server Middleware, Client Senders, CLI and InApp Validators If you want to follow
            
             
                
        
                    
                Over at Highrise, we're looking to replace our internal Python RPC library. The in-house solution we're using now isn't particularly bad, but it doesn't integrate well with Mypy, which is a Python typechecker
            
             
                
        
                    
                This is the third post in my series on the inner workings of attrs. Here are the others:  attrs I: The Basics attrs II: Slots What are Frozen Classes Frozen, in this context,
            
             
                
        
                    
                This is the second post in my series on the inner workings of attrs. The series starts here.  Out of the box, attrs can customize your classes in two different, orthogonal ways -