(self, source, name, fn)
| 489 | def _decode_bz2(self, source): return self._decode_compression(source,'bz2', bz2.decompress) |
| 490 | |
| 491 | def _decode_compression(self, source, name, fn): |
| 492 | pattern = re.compile( |
| 493 | rf'{re.escape(name)}\.decompress\s*\(\s*(b"[^"]*"|b\'[^\']*\')\s*\)' |
| 494 | r'(?:\.decode\s*\([^)]*\))?' |
| 495 | ) |
| 496 | def d(m): |
| 497 | try: |
| 498 | return repr(fn(ast.literal_eval(m.group(1))).decode('utf-8', errors='replace')) |
| 499 | except Exception: |
| 500 | return m.group(0) |
| 501 | return pattern.sub(d, source) |
| 502 | |
| 503 | def _decode_rot13(self, source: str) -> str: |
| 504 | pattern = re.compile(r'codecs\.decode\s*\(\s*(["\'][^"\']+["\'])\s*,\s*["\']rot.?13["\']\s*\)') |
no outgoing calls
no test coverage detected