NewYour coding agent can read the release notes before it upgrades.Set up the MCP server →
PyPI · #579 most downloaded on PyPI
Unified diff parsing/metadata extraction library.
Last release 19 days ago
15 Sep 2026
Release timing varies
gaps range from 1 weeks to 3.4 years
Nearly every release is documented
notes for 15 of 15 stable releases
Nothing withdrawn
no release was ever pulled
12 years old
15 releases · first in 2014
Parse consecutive added files sharing /dev/null source ( #143 ) in #144
is_submodule (#147) in #149UnidiffParseError on target header without source (#148) in #150Full Changelog: v1.0.0...v1.0.1
One column per quarter.
Major modernization: Python 2 is dropped, the code is fully type-annotated, packaging moves to pyproject.toml , and several long-standing parser issue
Major modernization: Python 2 is dropped, the code is fully type-annotated, packaging moves to pyproject.toml, and several long-standing parser issues are fixed.
PatchedFile.path now also strips git mnemonic prefixes (c/ i/ o/ w/ and 1/ 2/), so git diff --cached paths resolve to the plain filename (c/README.md → README.md). Standard a//b/ diffs are unaffected. (#81, #27)source_mode/target_mode + an is_symlink property. (#125)PatchedFile.diff_line_no to locate hunkless/binary entries. (#122)bytes input directly (decoded with the given encoding, default UTF-8). (#43)py.typed marker. (#117)difflib empty-filename output (#115) and fix a trailing-newline error on hunkless git format-patch files (#73, #74); includes the quoted-filename fix missing from 0.7.5 (#113).from_filename/from_string gain metadata_only; python -m unidiff works; packaging on pyproject.toml with GitHub Actions CI.Thanks to @danwald, @cpina, @tovrstra and @huichen-cs.
Full changelog: v0.7.5...v1.0.0
unidiff command is also runnable as python -m unidiff.git diff --cached paths (#81, #27).Fixed issue with spaces in filename when using custom git prefix.
Fixed git diff parsing issues (filename with spaces, only one added/deleted file).
Fixed RE_BINARY_DIFF regex to make it a raw string.
Fixed issue when parsing git diff header generated with --no-prefix .
--no-prefix.Improved git added/deleted file detection.
newline optional param when parsing from_filename.Fixed issues handling multiple git renames.
PatchedFile.path.Updated PatchSet constructor to accept an optional (default to False ) metadata_only parameter to only keep diff metadata information without the diff
False)metadata_only parameter to only keep diff metadata information withoutUpdated PatchSet constructor to accept string data.
Added PatchSet.from_string helper.
Re-released as 0.5.3 because of issues with PyPI.
Added diff line number to Line metadata.
Added (optional) encoding parameter to PatchSet.
* Release on PyPI.
Your coding agent can read these notes before it upgrades. Set up the MCP server →