def save(self, *args, **kwargs):
        if not self.id and not self.description:
            name = force_text(self.file)
            name = name.rsplit("/", 1)[-1].rsplit(".", 1)[0]
            name = name.replace("'", "")
            name = "".join([c if c not in punctuation else " " for c in name])
            # str.title() doesn't deal with unicode very well.
            # http://bugs.python.org/issue6412
            name = "".join([s.upper() if i == 0 or name[i - 1] == " " else s
                            for i, s in enumerate(name)])
            self.description = name
        super(GalleryImage, self).save(*args, **kwargs)
Return extra attributes to place on the root (i.e. feed/channel) element.
dataset/ETHPy150Open stephenmcd/mezzanine/mezzanine/galleries/models.py/GalleryImage.save--crossover with--dataset/ETHPy150Open AppScale/appscale/AppServer/lib/django-1.5/django/utils/feedgenerator.py/SyndicationFeed.root_attributes