def assign_photo_attributes(self, metadata: GExiv2.Metadata) -> None:
     # I don't know how GExiv2 gets these values:
     self.width = metadata.get_pixel_width()
     self.height = metadata.get_pixel_height()
     try:
         self.orientation = metadata.get_tag_string('Exif.Image.Orientation')
     except KeyError:
         pass
     if metadata.has_tag('Exif.Image.Make') and metadata.has_tag('Exif.Image.Model'):
         self.model = '{} {}'.format(
             metadata.get_tag_string('Exif.Image.Make').strip(),
             metadata.get_tag_string('Exif.Image.Model').strip()
         )
     self.has_gps = metadata.get_gps_info()[0]
     self.iso = metadata.get_iso_speed()
     self.datetime = photo_date_time(metadata)