Skip to content

A console utility for OS Linux that shows the differences between two files

Notifications You must be signed in to change notification settings

nic11371/python-project-50

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 

History

86 Commits
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 

Repository files navigation

Вычислитель отличий

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

Формат входных файлов:

  1. JSON
  2. YAML, YML

!Важно. Файлы сравниваются одного формата. Нельзя открывать файл YAML/YML и JSON вместе.

Выходные форматы:

  1. STYLISH -- строка, представляет из себя дерево отличий и содержит следующие служебные символы:
  • + добавление новых данных в файл. Новые данные содержатся во втором файле;
  • - удаление данных. Во втором файле нет данных, которые есть в первом.
  • +, - обновление данных в файле. Данные сдержащиеся в обеих файлах изменили значение. Если иземенений значения в данных нет -- выводится одна строка с этими данными. Если изменений не произошло ни в одних данных -- выводится обычное дерево данных.
  1. PLAIN -- строка, представляет из себя обычные строки, в каждой из которых напрямую указывается изменения в файлах. В этом формате показываются только измененные данные.
  2. JSON -- строка фората JSON. В каждом ключе данных указывается тип изменения. О данном формате подробнее можно почитать в Интернете.

Иструкция по установке

  1. Для начала необходимо установить окружение.
  2. Далее установить poetry.
  3. Перейти в директорию python-project-50 и ввести poetry install. Данная команда создаст виртуальное окружение в текущей директории.
  4. Далее нужно собрать пакет командой make biuld. !Неоходимо находиться в директории python-project, т.к. в ней есть Makefile. Все make команды будут работать только там.
  5. Желательно опубликовать приложение в индексе репозиториев PiCl командой make publish.
  6. Для установки приложения из пакетов ввести make package-install. Приложение установлено и готово к использованию.
  7. Если в процессе установки возникла ошибка, в которой указана невозможность установки по причине того, что файлы уже существуют в системе, то необходимо ввести make package-reinstall. Команда перезапишет предыдущую установку в системе.

Запуск приложения

  1. gendiff path/name_file1.json/yaml path/name_file2.json/yaml -- запуск приложения с указанием абсолютного пути к файлам
  2. При запуске без опций по умолчанию вывод происходит в формате STYLISH.
  3. --format, -f -- опции формата. Указываются до путей к файлам.
  • stylish -- формат STYLISH.
  • plain -- формат PLAIN.
  • json -- формат JSON.
  1. make test-coverage -- запуск тестов для приложения. Тесты должны все пройти и указано успешное завершение. В противном случае необходимо обратится за помощью к системному администратору или к разработчику.

Примеры

gendiff tests/fixtures/file1.json tests/fixtures/file2.json
gendiff tests/fixtures/file1.yaml tests/fixtures/file2.yaml
gendiff -f plain tests/fixtures/file1.json tests/fixtures/file2.json
gendiff -f json tests/fixtures/file1.json tests/fixtures/file2.json
gendiff -f stylish tests/fixtures/file1.json tests/fixtures/file2.json

Hexlet tests and linter status:

Actions Status

Видеодемонстрация всех примеров запуска

Входной формат JSON

Входной формат YAML/YML

Выходной формат STYLISH

Выходной формат PLAIN

Выходной формат JSON

About

A console utility for OS Linux that shows the differences between two files

Resources

Stars

Watchers

Forks

Packages

No packages published