Reverse function to safecharencode
(value, binary=False)
| 72 | return retVal |
| 73 | |
| 74 | def safechardecode(value, binary=False): |
| 75 | """ |
| 76 | Reverse function to safecharencode |
| 77 | """ |
| 78 | |
| 79 | retVal = value |
| 80 | if isinstance(value, string_types): |
| 81 | retVal = retVal.replace('\\\\', SLASH_MARKER) |
| 82 | |
| 83 | while True: |
| 84 | match = re.search(HEX_ENCODED_CHAR_REGEX, retVal) |
| 85 | if match: |
| 86 | retVal = retVal.replace(match.group("result"), unichr(ord(binascii.unhexlify(match.group("result").lstrip("\\x"))))) |
| 87 | else: |
| 88 | break |
| 89 | |
| 90 | for char in SAFE_ENCODE_SLASH_REPLACEMENTS[::-1]: |
| 91 | retVal = retVal.replace(repr(char).strip('\''), char) |
| 92 | |
| 93 | retVal = retVal.replace(SLASH_MARKER, '\\') |
| 94 | |
| 95 | if binary: |
| 96 | if isinstance(retVal, text_type): |
| 97 | retVal = retVal.encode("utf8", errors="surrogatepass" if PY3 else "strict") |
| 98 | |
| 99 | elif isinstance(value, (list, tuple)): |
| 100 | for i in xrange(len(value)): |
| 101 | retVal[i] = safechardecode(value[i]) |
| 102 | |
| 103 | return retVal |
no test coverage detected
searching dependent graphs…