python-unidiff icon indicating copy to clipboard operation
python-unidiff copied to clipboard

accept diff in bytes

Open cool-RR opened this issue 7 years ago • 1 comments

I have the contents of a diff file in a bytes object in Python 3. I tried feeding it to PatchSet but it complained:

    is_source_filename = RE_SOURCE_FILENAME.match(line)
builtins.TypeError: cannot use a string pattern on a bytes-like object

I had to decode it and now it works, but I'm concerned whether the decoding could fail sometimes if there is binary content. It'll be nice if unidiff would accept the diff in binary form instead of me having to decode.

cool-RR avatar Feb 26 '17 14:02 cool-RR

You don't usually have a unified diff for binary data, right? The unified diff format makes sense for text files, which could be encoded using different encodings, yes, but to parse it unidiff will need the decoded string (and the encoding is not something you can easily guess, that's why it is a param when parsing a diff file). Makes sense? In any case I agree I could take a look what happens when diffing binary data.

matiasb avatar May 20 '17 16:05 matiasb