python library design