Skip to main content

Compare configuration files across environments

Project description

philiprehberger-config-diff

Tests PyPI version Last updated

Compare configuration files across environments.

Installation

pip install philiprehberger-config-diff

Usage

from philiprehberger_config_diff import diff_files, diff_dicts

# Compare files (JSON, TOML, INI, .env)
report = diff_files("config.dev.json", "config.prod.json")

for change in report.changes:
    print(change)  # "+ db.name = 'proddb'" / "~ port: 3000 -> 8080"

print(report.summary())
# "Added: 3, Removed: 1, Modified: 5"

# Filter by key patterns
report = diff_files("dev.env", "prod.env", include=["DB_*"])

# Compare dicts directly
report = diff_dicts(dev_config, prod_config)

Unified diff output

from philiprehberger_config_diff import unified_diff

dev = {"db": {"host": "localhost", "port": 5432}}
prod = {"db": {"host": "prod-server", "port": 5432}}

print(unified_diff(dev, prod, left_label="dev", right_label="prod"))
# --- dev
# +++ prod
# @@ -1,2 +1,2 @@
# -db.host = 'localhost'
# +db.host = 'prod-server'
#  db.port = 5432

API

Function / Class Description
diff_files(left, right, include=None, exclude=None) Compare config files
diff_dicts(left, right, include=None, exclude=None) Compare dicts
unified_diff(left, right, *, context=3, left_label, right_label) Render diff -u style output
report.changes List of Change objects
report.added / report.removed / report.modified Filtered changes
report.summary() Change count summary

Development

pip install -e .
python -m pytest tests/ -v

Support

If you find this project useful:

Star the repo

🐛 Report issues

💡 Suggest features

❤️ Sponsor development

🌐 All Open Source Projects

💻 GitHub Profile

🔗 LinkedIn Profile

License

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

philiprehberger_config_diff-0.2.0.tar.gz (7.4 kB view details)

Uploaded Source

Built Distribution

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

philiprehberger_config_diff-0.2.0-py3-none-any.whl (6.0 kB view details)

Uploaded Python 3

File details

Details for the file philiprehberger_config_diff-0.2.0.tar.gz.

File metadata

File hashes

Hashes for philiprehberger_config_diff-0.2.0.tar.gz
Algorithm Hash digest
SHA256 88d3847cf66a6323b53f133eab2b0c119946a258dae0223c5467a254db79f689
MD5 b7ec7c5d13d1abc906572d6c49281ecd
BLAKE2b-256 06c2687618c8a314db14925b404f15aa2c4a457911eb48ff2943647d81565fd7

See more details on using hashes here.

File details

Details for the file philiprehberger_config_diff-0.2.0-py3-none-any.whl.

File metadata

File hashes

Hashes for philiprehberger_config_diff-0.2.0-py3-none-any.whl
Algorithm Hash digest
SHA256 ff698679872dfe41f30cf178a6a32a203d2afb126c17a29fdeee7e6824b5d3c7
MD5 ce9823ed6d4bb9020e2b33bca27512ef
BLAKE2b-256 09820df8e16a85524221b6afd4dd1e828098e7dab1afd063fdd1d13a352dcfb2

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