It would be awesome to have an example script that uses the Contacts framework wrapper to access (and especially, to update) contacts.
I've been working for the last week to decipher the iCloud Contacts API via PyiCloud, and find myself stuck trying to reverse-engineer the etag construction format - as well as receiving no debugging details in the endpoint response beyond "Bad Request (400)".
I find myself more than a little intimidated by the blank canvas that this presents, and while I know that given sufficient time, patience and alcohol I could possibly decipher the pattern from the Address Book example (and comparing to the AB framework signature docs from Apple), it would save me a ton of low-level work if there were a pyobjc example or two for Contacts.
I am most interested in the challenge of updating a Contact - PyiCloud does a great job of enabling read access to the Contacts endpoint, but has not yet started in on the PUT operation.
Details of my PyiCloud investigations here, for posterity: https://mikethecanuck.wordpress.com/2017/01/01/update-my-contacts-with-python-thinking-about-how-far-to-extend-pyicloud-to-enable-put-request/