moreorless

Python diff wrapper

MIT 7 个版本 Python >=3.9
Tim Hatch <tim@timhatch.com>
安装
pip install moreorless
poetry add moreorless
pipenv install moreorless
conda install moreorless
描述

moreorless

This is a thin wrapper around difflib.unified_diff that Does The Right Thing for "No newline at eof". The args are also simplified compared to difflib:

moreorless.unified_diff(
    astr: str,
    bstr: str,
    filename: str,
    n: int = 3,
) -> str:
    ...

# raises moreorless.patch.PatchException
moreorless.patch.apply_single_file(
    contents: str,
    patch: str,
    allow_offsets: bool = True,
) -> str:
    ...

# uses click to write to stdout with colors
moreorless.click.echo_color_unified_diff(
    astr: str,
    bstr: str,
    filename: str,
    n: int = 3
) -> None:
    ...

# if you want to use unified_diff yourself first (e.g. in another process)
moreorless.click.echo_color_precomputed_diff(
    diff: str,
) -> None:
    ...

# if you want to produce a combined (merge) diff:
moreorless.combined.combined_diff(
    [astr, bstr], [cstr]
) -> str:
    ...

Version Compat

This library is compatible with Python 3.9+, but should be linted under the newest stable version.

Versioning

This library follows meanver, which basically means semver along with a promise to rename when the major version changes.

Install the optional cli extra if you want the colored diff helpers:

pip install moreorless[cli]

License

moreorless is copyright Tim Hatch, and licensed under the MIT license. I am providing code in this repository to you under an open source license. This is my personal repository; the license you receive to my code is from me and not from my employer. See the LICENSE file for details.

版本列表
0.6.0 2026-05-12
0.5.0 2025-05-04
0.4.0 2021-03-30
0.3.0 2020-03-11
0.2.0 2020-03-10
0.1.0 2020-03-08
0.0.0 2025-05-04