docs: def compress(func):
      """
      Compress route return data with gzip compression
      """
      @wraps(func)
      def wrapper(*args, **kwargs):
          result = func(*args, **kwargs)
          if ('gzip' in bottle.request.headers.get('Accept-Encoding', '') and
                  isinstance(result, string_type) and
                  len(result) > 1024):
              if isinstance(result, unicode):
                  result = result.encode('utf-8')
              tmp_fo = BytesIO()
              with gzip.GzipFile(mode='wb', fileobj=tmp_fo) as gzip_fo:
                  gzip_fo.write(result)
              result = tmp_fo.getvalue()
              bottle.response.add_header('Content-Encoding', 'gzip')
          return result
      return wrapper