Skip to main content

A tool to get diffs between text strings

Project description

diff-getter

テキスト文字列間の差分を取得するシンプルなPythonユーティリティです。異なる形式(unified形式とcontext形式)での差分出力をサポートしています。

特徴

  • 2つのテキスト文字列間の差分を簡単に取得
  • unified形式とcontext形式の両方をサポート
  • リスト形式または文字列形式での差分出力
  • Pythonライブラリとしての使用、またはコマンドラインツールとしての使用が可能

インストール

pipを使用してインストールできます:

pip install diff-getter

使用方法

Pythonライブラリとして

Unified形式の差分を取得

from diff_getter import get_unified_diff, get_unified_diff_string

# テキストの準備
text1 = "これはテストです。\n1行目\n2行目\n3行目"
text2 = "これはテストです。\n1行目\n2行目(変更)\n4行目"

# リスト形式で差分を取得
diff_list = get_unified_diff(text1, text2)
print(diff_list)
# 出力:
# ['--- 変更前', '+++ 変更後', '@@ -1,4 +1,4 @@',
#  ' これはテストです。', ' 1行目', '-2行目', '-3行目',
#  '+2行目(変更)', '+4行目']

# 文字列形式で差分を取得
diff_string = get_unified_diff_string(text1, text2)
print(diff_string)
# 出力:
# --- 変更前
# 
# +++ 変更後
# 
# @@ -1,4 +1,4 @@
# 
#  これはテストです。
#  1行目
# -2行目
# -3行目
# +2行目(変更)
# +4行目

Context形式の差分を取得

from diff_getter import get_context_diff, get_context_diff_string

# テキストの準備
text1 = "これはテストです。\n1行目\n2行目\n3行目"
text2 = "これはテストです。\n1行目\n2行目(変更)\n4行目"

# リスト形式で差分を取得
diff_list = get_context_diff(text1, text2)
print(diff_list)
# 出力:
# ['*** 変更前', '--- 変更後', '***************',
#  '*** 1,4 ****', '  これはテストです。', '  1行目',
#  '! 2行目', '! 3行目', '--- 1,4 ----',
#  '  これはテストです。', '  1行目', '! 2行目(変更)',
#  '! 4行目']

# 文字列形式で差分を取得
diff_string = get_context_diff_string(text1, text2)
print(diff_string)
# 出力:
# *** 変更前
# --- 変更後
# ***************
# *** 1,4 ****
#   これはテストです。
#   1行目
# ! 2行目
# ! 3行目
# --- 1,4 ----
#   これはテストです。
#   1行目
# ! 2行目(変更)
# ! 4行目

コマンドラインツール

# Unified形式で差分を取得
diff-getter unified 古いテキストのファイルパス 新しいテキストのファイルパス

# Context形式で差分を取得
diff-getter context 古いテキストのファイルパス 新しいテキストのファイルパス

開発者向け情報

必要条件

  • Python 3.10以上
  • uv(依存関係管理ツール)

開発環境のセットアップ

  1. リポジトリのクローン:
git clone https://github.com/tatn/diff-getter-python.git
cd diff-getter
  1. 仮想環境の作成と有効化:
uv venv --python 3.10
.venv\Scripts\activate  # Windows
  1. 開発用依存パッケージのインストール:
uv add --dev pytest pytest-cov black ruff mypy build twine hatch

品質管理

テストの実行

# 通常のテスト実行
uv run pytest

# カバレッジレポート付きでテストを実行
uv run pytest --cov=diff_getter tests/

コード品質チェック

# コードフォーマット
uv run black .

# リンター
uv run ruff check .

# 型チェック
uv run mypy src/diff_getter

ライセンス

このプロジェクトはMITライセンスの下で公開されています。

Project details


Download files

Download the file for your platform. If you're not sure which to choose, learn more about installing packages.

Source Distribution

diff_getter-0.1.18.tar.gz (53.0 kB view details)

Uploaded Source

Built Distribution

If you're not sure about the file name format, learn more about wheel file names.

diff_getter-0.1.18-py3-none-any.whl (5.5 kB view details)

Uploaded Python 3

File details

Details for the file diff_getter-0.1.18.tar.gz.

File metadata

  • Download URL: diff_getter-0.1.18.tar.gz
  • Upload date:
  • Size: 53.0 kB
  • Tags: Source
  • Uploaded using Trusted Publishing? No
  • Uploaded via: uv/0.5.21

File hashes

Hashes for diff_getter-0.1.18.tar.gz
Algorithm Hash digest
SHA256 7bff84245f5693ff47aa9f416816cdf81d2ff789d63c18c8d172a425aa29c5da
MD5 b9a37c6c3f4e7272230371cf41355fef
BLAKE2b-256 d8e94b0f8bfdc55c86309db0a36e3bfdf02082ecbc1bea555cc48eeaa39d1760

See more details on using hashes here.

File details

Details for the file diff_getter-0.1.18-py3-none-any.whl.

File metadata

File hashes

Hashes for diff_getter-0.1.18-py3-none-any.whl
Algorithm Hash digest
SHA256 b75bd8a870cff509757f62ad3803cbb685d79c91d0c389b42393ab9bc06abd8e
MD5 1321a578af0e78c33aeb3fc16b5208b1
BLAKE2b-256 a482ab28518e8ecf3b53016c77267fc7b83c39a4ab4730be9d4219e265bc831a

See more details on using hashes here.

Supported by

AWS Cloud computing and Security Sponsor Datadog Monitoring Depot Continuous Integration Fastly CDN Google Download Analytics Pingdom Monitoring Sentry Error logging StatusPage Status page