def __init__(self, filename): """Raises OSError for invalid file types. This MUST be the case in order to avoid the @memoize cache getting filled up with invalid Photograph instances. """ Coordinates.__init__(self) self.thumb = fetch_thumbnail(filename) self.filename = filename self.connect('notify::geoname', self.update_liststore_summary) self.connect('notify::positioned', Widgets.button_sensitivity)