While I hammer away at erlsmug and try to figure out why it’s so much slower than pysmug and PycURL, I’m ready to release version 0.4 of pysmug.

Among the biggest changes are compatibility with new security changes required for version 1.2.2 of the SmugMug API. It’s now also possible to register function callbacks for PycURL’s verbose and progress handlers.

In testing erlsmug’s concurrency, I wrote a function to return all the details of an album as well as the details about each image, including EXIF. This requires 1 call to get the album info, 1 call to get the images for an album and one call each for simple and EXIF details per image. This function, albums_details was so useful I wanted it for pysmug.

Using batchables with pysmug, all image calls are handled in parallel and asynchronously for a pretty quick response. The implementation of the function is a great example of batchables in action. I can’t get the Erlang version to perform anywhere near as quickly.

In testing the new 1.2.2 API, it seems the images_upload method doesn’t require the *Key attribute though all other methods do appear to require it. I need to confirm this with SmugMug.


The tag hasn’t been applied yet but I suspect this will be more or less the Changelog.

  • fully tested with the 1.2.2 API changes
  • added the ability to choose the API version to use (defaults to 1.2.2)
  • added albums_details which returns detailed information about an album and all containing images (include EXIF if requested)
  • added verbose and progress callbacks to assist in debugging
  • do not send any keywords to SmugMug with a value of None
  • updated to use hashlib for md5
  • examples now either use anonymous logins or require a conf file
  • added and fixed documentation
comments powered by Disqus

Recent Posts


I'm not here.