import json import os.path from app import cache_path class Upc(object): def __init__(self, upc): self.upc = upc self.filename = os.path.join(cache_path, upc) @property def data(self): """Get data for a UPC. Using cache if needed. Returns: dict or None if data does not exist. """ if os.path.exists(self.filename): return json.load(open(self.filename, encoding='utf8')) else: return None def cache_data(self, data): """Cached the data for a UPC. Args: data (dict): UPC related data to store. """ with open(self.filename, mode='w', encoding='utf8') as fh: json.dump(data, fh)