def fetch_template(url): m = template_url_re.search(url) if m: digest = m.groups()[0].upper() matcher = template_cache.get(digest) if not matcher: try: code, template = urlfetch(url) except: raise TemplateError('Cannot fetch template') if code != 200: raise TemplateError('Cannot fetch template') matcher = compile_template(template) calc_digest = hashlib.sha1(template).hexdigest().upper() if digest and calc_digest != digest: raise TemplateError('Template digest mismatch at URL %s' % url) template_cache[calc_digest] = matcher return matcher
def fetch(self): try: data = urlfetch(self.url) except HTTPError, e: current_app.logger.error("Error during fetching the document: %s" % e) return None