fdiff - это инструмент сравнения команд Python для оценки гранулированных различий в данных таблицы OpenType между файлами Font. Инструмент обеспечивает кроссплатформенную поддержку для локальных и удаленных различий шрифта в системах MacOS, Windows и GNU/Linux с интерпретатором Python v3.7+.
Ищете обзор высокого уровня различий в таблице OpenType, а не изменения низкого уровня? Проверьте Just Van Rossum от fbdiff Tool.
--include или --exclude-l или --lines--head--tail--external Запустите fdiff --help , чтобы просмотреть все доступные параметры.
fdiff требует интерпретатора Python 3.7+.
Рекомендуется установка в виртуальной среде Python3.
Используйте любой из следующих подходов к установке:
$ pip3 install fdiff
$ git clone https://github.com/source-foundry/fdiff.git
$ cd fdiff
$ pip3 install -r requirements.txt .
Следующий подход устанавливает проект и связанные дополнительные зависимости разработчика, поэтому изменения источника доступны без необходимости повторной установки.
$ git clone https://github.com/source-foundry/fdiff.git
$ cd fdiff
$ pip3 install --ignore-installed -r requirements.txt -e ".[dev]"
$ fdiff [OPTIONS] [PRE-FONT FILE PATH] [POST-FONT FILE PATH]
fdiff поддерживает запросы на общедоступные файлы удаленных шрифтов. Замените аргументы пути файла на URL:
$ fdiff [OPTIONS] [PRE-FONT FILE URL] [POST-FONT FILE URL]
fdiff работает с любой комбинацией локальных и удаленных файлов шрифтов. Например, для сравнения локального файла шрифта Post с удаленным файлом предварительного шрифта для оценки локальных изменений с файлом шрифта, который ранее был отправлен в удаленное дистанционное управление, используйте следующий синтаксис:
$ fdiff [OPTIONS] [PRE-FONT FILE URL] [POST-FONT FILE FILE PATH]
СОВЕТ : Удаленные службы хостинга GIT Repository (например, Github) Поддержите доступ к файлам в различных ветвях GIT с помощью URL. Используйте эти URL -адреса филиала репозитория для сравнения шрифтов через ветви GIT в вашем репозитории.
Чтобы включить только указанные таблицы в ваш Diff, используйте параметр --include с разделенным запятым списком имен таблиц:
$ fdiff --include head,post [PRE-FONT FILE PATH] [POST-FONT FILE PATH]
Чтобы исключить указанные таблицы в вашем Diff, используйте опцию --exclude с разделенным запятой списком имен таблиц:
$ fdiff --exclude glyf,OS/2 [PRE-FONT FILE PATH] [POST-FONT FILE PATH]
Не включайте пробелы между значениями имени таблицы, разделенных запятыми!
Чтобы изменить количество строк контекста выше/ниже строк, которые имеют различия, используйте опцию -l или --lines с целочисленным значением для желаемого числа строк. Следующая команда уменьшает контекстную информацию до одной строки выше и ниже с различиями:
$ fdiff -l 1 [PRE-FONT FILE PATH] [POST-FONT FILE PATH]
Используйте вариант --head за которым следует целое число для количества строк в начале вывода. Например, следующая команда отображает первые 20 строк Diff:
$ fdiff --head 20 [PRE-FONT FILE PATH] [POST-FONT FILE PATH]
Используйте параметр --tail , за которым следует целое число для количества строк в конце вывода. Например, следующая команда отображает последние 20 строк Diff:
$ fdiff --tail 20 [PRE-FONT FILE PATH] [POST-FONT FILE PATH]
Обратите внимание : эта функция не была проверена на всех поддерживаемых платформах. Пожалуйста, сообщите о любых вопросах, с которыми вы сталкиваетесь на трекере выпуска проекта.
По умолчанию FDIFF выполняет различия с источником Python. Если вы столкнетесь с проблемами производительности с этим подходом, вы можете использовать скомпилированные руководители Diff, которые доступны на вашей платформе. FDIFF выбросит файлы TTX и запустит команду, которую вы предоставляете в командной строке, передавая проходы файлов дамп TTX Pre и Pust Font в качестве первого и второго позиционных аргументов в вашей команде.
Например, вы можете запустить команду diff -u на GNU/Linux или MacOS, как это:
$ fdiff --external="diff -u" [PRE-FONT FILE PATH] [POST-FONT FILE PATH]
FDIFF поддерживает встроенное форматирование цвета и фильтрацию таблицы OpenType при использовании с внешними инструментами DIFF. Параметры контекстной линии, головы и хвоста не поддерживаются с использованием внешних инструментов Diff.
Разница в коде ESCAPE ANSI выполняется по умолчанию в терминальных средах.
Чтобы просмотреть DIFF без кодов Escape ANSI в вашем терминале, включите опцию --nocolor в свою команду:
$ fdiff --nocolor [PRE-FONT FILE PATH] [POST-FONT FILE PATH]
Используйте fdiff -h чтобы просмотреть все доступные параметры.
Пожалуйста, сообщите о вопросах по трекеру выпуска проекта.
Вклад тепло приветствуется. Среда зависимости развития может быть установлена в редактируемом режиме с документацией по установке разработчика выше.
Пожалуйста, используйте стандартный подход запроса на вытягивание GitHub, чтобы предложить изменения источника.
Исходные файлы Python снимаются с помощью flake8 . Смотрите цель Makefile test-lint для деталей.
Проект проводит непрерывные тестирование интеграции на службу Actions GitHub с помощью инструментального оборудования pytest . Тестовые модули расположены в каталоге tests репозитория.
Локальное тестирование от версии интерпретатора Python можно выполнить со следующей командой, выполненной из корня репозитория:
$ tox -e [PYTHON INTERPRETER VERSION]
Пожалуйста, смотрите документацию tox для получения дополнительной информации.
Покрытие модульного тестирования выполняется с помощью инструмента coverage . Для получения подробной информации см. Цель test-coverage Makefile.
fdiff построен с фантастической библиотекой бесплатной программного обеспечения Fanttools и выполняет текстовые различия двоичных файлов шрифтов, используя дампы формата сериализации таблицы TTX Opentype, как определено в библиотеке FontTools.
Copyright 2019 Pource Foundry Авторы и участники
Лицензировано по лицензии Apache, версия 2.0 («Лицензия»); Вы не можете использовать этот файл, кроме как в соответствии с лицензией. Вы можете получить копию лицензии на
http://www.apache.org/licenses/license-2.0
Если это не требуется применимого законодательства или не согласовано в письменной форме, программное обеспечение, распространяемое по лицензии, распределяется по основам «как есть», без каких -либо гарантий или условий, явных или подразумеваемых. См. Лицензию для конкретного языка, регулирующих разрешения и ограничения по лицензии.