Issue #11: Add a Python library