parameters: (text, as_utf8)
return_statement: return ''.join(_cescape_byte_to_str[ord_(c)] for c in text)
docstring: Escape a bytes string for use in an text protocol buffer.
  
    Args:
      text: A byte string to be escaped.
      as_utf8: Specifies if result may contain non-ASCII characters.
          In Python 3 this allows unescaped non-ASCII Unicode characters.
          In Python 2 the return value will be valid UTF-8 rather than only ASCII.
    Returns:
      Escaped string (str).
docstring_summary: Escape a bytes string for use in an text protocol buffer.
docstring_tokens: Escape a bytes string for use in an text protocol buffer .
function: def CEscape(text, as_utf8):
    # type: (...) -> str
    """Escape a bytes string for use in an text protocol buffer.
  
    Args:
      text: A byte string to be escaped.
      as_utf8: Specifies if result may contain non-ASCII characters.
          In Python 3 this allows unescaped non-ASCII Unicode characters.
          In Python 2 the return value will be valid UTF-8 rather than only ASCII.
    Returns:
      Escaped string (str).
    """
    # Python's text.encode() 'string_escape' or 'unicode_escape' codecs do not
    # satisfy our needs; they encodes unprintable characters using two-digit hex
    # escapes whereas our C++ unescaping function allows hex escapes to be any
    # length.  So, "\0011".encode('string_escape') ends up being "\\x011", which
    # will be decoded in C++ as a single-character string with char code 0x11.
    if six.PY3:
      text_is_unicode = isinstance(text, str)
      if as_utf8 and text_is_unicode:
        # We're already unicode, no processing beyond control char escapes.
        return text.translate(_cescape_chr_to_symbol_map)
      ord_ = ord if text_is_unicode else lambda x: x  # bytes iterate as ints.
    else:
      ord_ = ord  # PY2
    if as_utf8:
      return ''.join(_cescape_unicode_to_str[ord_(c)] for c in text)
    return ''.join(_cescape_byte_to_str[ord_(c)] for c in text)
function_tokens: def CEscape ( text , as_utf8 ) : # type: (...) -> str # Python's text.encode() 'string_escape' or 'unicode_escape' codecs do not # satisfy our needs; they encodes unprintable characters using two-digit hex # escapes whereas our C++ unescaping function allows hex escapes to be any # length.  So, "\0011".encode('string_escape') ends up being "\\x011", which # will be decoded in C++ as a single-character string with char code 0x11. if six . PY3 : text_is_unicode = isinstance ( text , str ) if as_utf8 and text_is_unicode : # We're already unicode, no processing beyond control char escapes. return text . translate ( _cescape_chr_to_symbol_map ) ord_ = ord if text_is_unicode else lambda x : x # bytes iterate as ints. else : ord_ = ord # PY2 if as_utf8 : return '' . join ( _cescape_unicode_to_str [ ord_ ( c ) ] for c in text ) return '' . join ( _cescape_byte_to_str [ ord_ ( c ) ] for c in text )