OpenSync is a plugin-based application that basically provides a framework for syncing groups which can have two or more members. These members could be just about any kind of database, where a plugin is available. OpenSync is not only limited to sync PIM data. You will need swig if you want to build the python-bindings.