This project is a difference generator (diff) for configuration files (JSON, YAML). It supports multiple output formats: stylish, plain, and json.
| Tool | Description |
|---|---|
| uv | An extremely fast Python package and project manager, written in Rust |
| pytest | A mature full-featured Python testing tool |
| ruff | An extremely fast Python linter and code formatter, written in Rust |
git clone https://github.com/lytic11-web/python-project-50.git
cd python-project-50make installgendiff [--format FORMAT] filepath1 filepath2 --format, -f - output format (stylish, plain, json). Default: stylishuv run gendiff tests/test_data/nested/file1.json tests/test_data/nested/file2.jsonuv run gendiff --format plain tests/test_data/nested/file1.json tests/test_data/nested/file2.jsonuv run gendiff --format json tests/test_data/flat/file1.json tests/test_data/flat/file2.json- stylish - formatted output with indentation (default)
- plain - flat text format with change descriptions
- json - structured JSON output
- JSON (.json)
- YAML (.yml, .yaml)
# Run all tests
make test
# Run tests with coverage
make test-coverage
# Run linter
make lint
# Run all checks (tests + lint)
make check
# Format code
make format
# Build package
make buildThis project is part of the Hexlet Python Developer course.