Source code for pyfixit.image

# -*- coding: utf-8 -*-
import requests

from base import Base
from constants import API_BASE_URL

[docs]class Image(Base): '''An image that has been uploaded to the site. :var int id: The id of this image. Ex: ``26674``. :var int height: *(Lazy)* Height in pixels. Ex: ``1200``. :var int width: *(Lazy)* Width in pixels. Ex: ``1600``. :var string original: *(Lazy, Optional)* URL to the originally-uploaded image. :var string mini: *(Lazy, Optional)* URL to the mini size of the image. :var string thumbnail: *(Lazy, Optional)* URL to the thumbnail size of the image. :var string standard: *(Lazy, Optional)* URL to the standard size of the image. :var string medium: *(Lazy, Optional)* URL to the medium size of the image. :var string large: *(Lazy, Optional)* URL to the large size of the image. :var string huge: *(Lazy, Optional)* URL to the huge size of the image. ''' def __init__(self, id): self.id = id def __str__(self): return self.name # FIXME def __repr__(self): return '<Image %s>' % self.id def __eq__(self, other): if not isinstance(other, Image): return false return self.id == other.id
[docs] def refresh(self): '''Refetch instance data from the API. ''' response = requests.get('%s/media/images/%s' % (API_BASE_URL, self.id)) attributes = response.json() #self.exif = attributes['exif'] self.height = attributes['height'] self.width = attributes['width'] #self.ratio = attributes['ratio'] #self.markup = attributes['markup'] #self.srcid = attributes['srcid'] image = attributes['image'] # Images are allowed to have different sizes, depending on the dimensions # of the original image. To avoid doing a bunch of explicit 'in' checks, # splat the variables into scope. del(image['id']) for size in image: vars(self)[size] = image[size]