Skip to content

About

No description, website, or topics provided.

Resources

Stars

0 stars

Watchers

1 watching

Forks

Latest commit

 

History

53 Commits

Folders and files

Repository files navigation

Вычислитель отличий / Generate Difference

Hexlet tests and linter status:

Actions Status

Maintainability

Test Coverage


Описание

Вычислитель отличий - это универсальная программа, которая принимает на вход путь до конфигурационных файлов и возвращает описание различий между структурами данных файлов. Использование инструмента gendiff ликвидирует необходимость в дополнительной и оригинальной копии каталога.

  • Поддержка форматов: json/yaml
  • Генерация отчетов: plain, stylish, json

Содержание

  • Сравнение плоских файлов (JSON)
  • Сравнение плоских файлов (YAML)
  • Рекурсивное сравнение
  • Плоский формат
  • Вывод в JSON

Ссылки

Инструменты Описание
Poetry Инструмент для управления зависимостями и создания виртуальных окружений в проектах на Python.
Py.Test Фреймворк для тестирования, который позволяет легко писать и запускать тесты.
Flake8 Инструмент для проверки стиля кода согласно стандартам PEP 8.

Установка

  1. Клонируйте репозиторий по ссылке:

    git clone https://github.com/Maxcosanostra/python-project-50
  2. Перейдите в директорию проекта:

    cd python-project-50
  3. Установите пакет:

    make package-install

Опции сравнения файлов

Пользователям доступны два способа сравнения файлов — из корневой директории проекта или непосредственно из директории, где находятся сравниваемые файлы. Выбор способа зависит от того, где Вы находитесь в файловой системе:

  1. Из корневой директории проекта: Укажите относительный путь от корневой директории до файлов. Например, если Вы находитесь в корне вашего проекта и файлы расположены в поддиректории tests/fixtures, используйте следующую команду:
gendiff tests/fixtures/file1.json tests/fixtures/file2.json
  1. Из директории с файлами: Если вы находитесь в той же директории, где расположены сравниваемые файлы, можно запустить gendiff, указывая только имена файлов. Например:
gendiff file1.json file2.json

Ниже приведены команды запуска сравнения файлов из директории расположения самих файлов.


Сравнение плоских файлов (JSON):

Сравнение строится на основе того, как изменилось содержимое во втором файле относительно первого, позволяющее быстро определить изменения в структуре данных JSON-файлов. Для сранения двух файлов используйте команду:

gendiff flat_file1.json flat_file2.json

asciicast


Сравнение плоских файлов (YAML):

Поиск различий между двумя простыми, одноуровневыми YAML-файлами без вложенных структур. Легкочитаемый синтаксис помогает быстро ориентироваться в разнице между файлами.

Для сранения двух файлов используйте команду:

gendiff flat_file1.yml flat_file2.yml

asciicast


Рекурсивное сравнение:

Данным примером diff описывает то, что произошло с каждым ключом в diff. Например, был ли он добавлен, изменен или удален.

Для сранения двух файлов используйте команду:

gendiff file1.json file2.json

asciicast


Плоский формат:

Plain формат представляет данные в линейном виде. Это идеальный вариант для визуального ознакомления относительно различий между файлами, а также для простых текстовых отчетов, если нет необходимости в дополнительном парсинге.

Для сранения двух файлов используйте команду:

gendiff --format plain file1.json file2.json

asciicast


Вывод в JSON:

Данный вывод удобен для широкого применения, так как JSON формат поддерживается всеми современными языками программирования. Его легко парсить и обрабатывать данные с помощью множества доступных библиотек и инструментов. JSON поддерживает сложные структуры данных, такие как вложенные объекты и массивы, что позволяет точно и полно представлять данные.

Для сранения двух файлов используйте команду:

gendiff --format json file1.json file2.json

asciicast


Проект выполнен благодаря прохождению практики в Hexlet.io под руководством Рафаэля Мухаметшина

С Уважением, MaxCosaNostra

About

No description, website, or topics provided.

Resources

Stars

0 stars

Watchers

1 watching

Forks

Releases

Packages

Used by

Contributors

Languages