Layers of abstraction: Building a Python wrapper for the PDB search API

A good library should hide complexity from users who don't need it, while still letting power users access everything. I rebuilt my Python wrapper for the Protein Data Bank search API from scratch, and this is how I thought about the problem.