def execute_job(jid): update_job_status(jid, 'in progress') start, end = job.hmget(generate_job_key(jid), 'start', 'end') start = int(start) end = int(end) years = list(range(start, end + 1)) numpoints = (end + 1 - start) total = [0] * numpoints count = [0] * numpoints for key in rd.keys(): year = int(rd.hget(key, 'year')) if year >= start and year <= end: index = year - start lettertotal = len(str(rd.hget(key, 'entity'))) total[index] = total[index] + lettertotal count[index] = count[index] + 1 avg = [i / j for i, j in zip(total, count)] title = "Average length of names in Oscar films between " + str( start) + " and " + str(end) plt.plot(years, avg, 'g-o', label="Nominees") plt.xlabel("Years") plt.ylabel("Average Num. Letters") plt.title(title) plt.savefig('/oscarlength.png') with open('/oscarlength.png', 'rb') as f: img = f.read() job.hset(generate_job_key(jid), 'image', img) update_job_status(jid, 'complete')
def showyearcat(year,category): filmlist = [] category = category.replace("_", " ") for key in rd.keys(): if rd.hget(key,'year') == year and category == rd.hget(key,'category'): filmlist.append(rd.hgetall(key)) return jsonify(filmlist)
def deleteyearcat(year,category): category = category.replace("_", " ") counter = 0 for key in rd.keys(): if rd.hget(key,'year') == year and category == rd.hget(key,'category'): rd.delete(key) counter = counter + 1 return "Category Deleted: " + str(counter) + " items total\n"
def deleteyear(year): counter = 0 for key in rd.keys(): if rd.hget(key,'year') == year: rd.delete(key) counter = counter+1 return "Year Deleted: " + str(counter) + " items total\n"
def showname(entity): filmlist = [] entity = entity.replace("_", " ") for key in rd.keys(): if entity == rd.hget(key,'entity'): filmlist.append(rd.hgetall(key)) return jsonify(filmlist)
def deletename(entity): counter = 0 entity = entity.replace("_", " ") for key in rd.keys(): if entity == rd.hget(key,'entity'): rd.delete(key) counter = counter+1 return "Entity Deleted: " + str(counter) + " items total\n"
def deleterange(): start = request.args.get('start') end = request.args.get('end') counter = 0 for key in rd.keys(): year = rd.hget(key,'year') if year >= start and year <= end: rd.delete(key) counter = counter+1 return "Range Deleted: " + str(counter) + " items total\n"
def showrange(): start = request.args.get('start') end = request.args.get('end') rangelist = [] for key in rd.keys(): year = rd.hget(key,'year') if year >= start and year <= end: rangelist.append(rd.hgetall(key)) return "\n".join([str(x) for x in rangelist])
def execute_job(jid): update_job_status(jid, 'in progress') restaurant = rd_plot.hget(f'job.{jid}', 'restaurant').decode('utf-8') dates = [] scores = [] for key in rd.keys(): if rd.hget(key, 'Restaurant Name').decode('utf-8') == restaurant: date = rd.hget(key, 'Date of Inspection').decode('utf-8') score = rd.hget(key, 'Inspection Score').decode('utf-8') dates.append(datetime.datetime.strptime(date, "%m/%d/%Y")) scores.append(int(score)) x = dates y = scores plt.figure(figsize=(10, 10)) plt.plot_date(x, y) restaurant = restaurant.replace(' ', '-') plt.savefig(str(restaurant) + '.png') file_bytes = open(str(restaurant) + '.png', 'rb').read() rd_plot.set(str(restaurant) + '_plot', file_bytes) print('Plot Key: ' + str(restaurant) + '_plot' + "\n") update_job_status(jid, 'complete')
def download(jobid): path = f'/app/{jobid}.png' with open(path, 'wb') as f: f.write(rd.hget(jobid, 'image')) return send_file(path, mimetype='image/png', as_attachment=True)
def showyear(year): filmlist = [] for key in rd.keys(): if rd.hget(key,'year') == year: filmlist.append(rd.hgetall(key)) return "\n".join([str(x) for x in filmlist])