def application(environ, start_response): """Do Fun things""" form = parse_formvars(environ) cb = form.get("callback", None) huc12 = form.get("huc12", "000000000000")[:12] mode = form.get("mode", "daily") fmt = form.get("format", "json") if fmt == "json": headers = [("Content-Type", "application/vnd.geo+json")] elif fmt == "xlsx": headers = [ ("Content-Type", EXL), ("Content-disposition", f"attachment; Filename=dep{huc12}.xlsx"), ] start_response("200 OK", headers) mckey = f"/geojson/huc12_events/{huc12}/{mode}/{fmt}" mc = Client(["iem-memcached", 11211]) res = mc.get(mckey) if res is None: res = do(huc12, mode, fmt) if fmt == "xlsx": mc.close() return [res] mc.set(mckey, res, 15) else: res = res.decode("utf-8") mc.close() if cb is not None: res = f"{cb}({res})" return [res.encode("ascii")]
def application(environ, start_response): """Do Fun things""" headers = [("Content-Type", "application/vnd.geo+json")] start_response("200 OK", headers) form = parse_formvars(environ) cb = form.get("callback", None) domain = form.get("domain", None) ts = datetime.datetime.strptime(form.get("date", "2015-05-05"), "%Y-%m-%d") ts2 = None if form.get("date2", None) is not None: ts2 = datetime.datetime.strptime(form.get("date2"), "%Y-%m-%d") tkey = "" if ts2 is None else ts2.strftime("%Y%m%d") dkey = "" if domain is None else domain mckey = f"/geojson/huc12/{ts:%Y%m%d}/{tkey}/{dkey}" mc = Client(["iem-memcached", 11211]) res = mc.get(mckey) if res is None: res = do(ts, ts2, domain) try: # Unknown BrokenPipeError mc.set(mckey, res, 3600) except Exception as exp: print(exp) else: res = res.decode("utf-8") mc.close() if cb is not None: res = f"{cb}({res})" return [res.encode("ascii")]
def application(_environ, start_response): """Do Fun things""" headers = [("Content-Type", "application/vnd.geo+json")] start_response("200 OK", headers) mckey = "/geojson/huc12.geojson" mc = Client(["iem-memcached", 11211]) res = mc.get(mckey) if res is None: res = do() mc.set(mckey, res, 86400) else: res = res.decode("utf-8") mc.close() return [res.encode("ascii")]
def application(environ, start_response): """Do Fun things""" headers = [("Content-Type", "application/vnd.geo+json")] start_response("200 OK", headers) form = parse_formvars(environ) cb = form.get("callback", None) huc12 = form.get("huc12", "000000000000")[:12] mode = form.get("mode", "daily") mckey = "/geojson/huc12_events/%s/%s" % (huc12, mode) mc = Client(["iem-memcached", 11211]) res = mc.get(mckey) if res is None: res = do(huc12, mode) mc.set(mckey, res, 15) else: res = res.decode("utf-8") mc.close() if cb is not None: res = "%s(%s)" % (cb, res) return [res.encode("ascii")]
def main(environ): """Do something fun""" form = parse_formvars(environ) year = form.get("year", 2015) month = form.get("month", 5) day = form.get("day", 5) year2 = form.get("year2", year) month2 = form.get("month2", month) day2 = form.get("day2", day) scenario = int(form.get("scenario", 0)) v = form.get("v", "avg_loss") huc = form.get("huc") ts = datetime.date(int(year), int(month), int(day)) ts2 = datetime.date(int(year2), int(month2), int(day2)) mckey = "/auto/map.py/%s/%s/%s/%s/%s" % ( huc, ts.strftime("%Y%m%d"), ts2.strftime("%Y%m%d"), scenario, v, ) if form.get("overview"): mckey = "/auto/map.py/%s/%s" % (huc, form.get("zoom")) mc = Client(["iem-memcached", 11211]) res = mc.get(mckey) if res is None: # Lazy import to help speed things up if form.get("overview"): res, do_cache = make_overviewmap(form) else: res, do_cache = make_map(huc, ts, ts2, scenario, v, form) sys.stderr.write("Setting cache: %s\n" % (mckey,)) if do_cache: mc.set(mckey, res, 3600) mc.close() return res
def _connect(self, host, port, func): client = Client((host, port)) try: self.output = func(client) finally: client.close()