Pyp - это инструмент для работы с текстом в командной строке Linux, похожий на awk или sed, но использующий стандартные методы строки и списка Python, а также пользовательские функции, разработанные для быстрого получения результатов в интенсивной производственной среде. Pyed Pyper был разработан в Sony Pictures Imageworks для облегчения построения однострочных команд сложных манипуляций с изображениями во время работы с визуальными эффектами в "Алисе в стране чудес", "Зеленом фонаре" и "Удивительном человеке-пауке".

Домашняя страница проекта: The Pyed Piper

Поскольку pyp использует собственный внутренний синтаксис конвейера ("|"), аналогичный конвейеру unix, сложные операции могут быть процедурно обработаны путем передачи выходных данных одной команды python на вход следующей. Это значительно упрощает создание и устранение неполадок многоступенчатых операций без использования временных переменных или вложенных скобок. Переменная "p" представляет каждую строку как строку, а "pp" - это весь ввод в виде списка Python:

\> ls | pyp "p[0] | pp.sort() | p + ' first letter, sorted!'" #gives sorted list of first letters of every line

На практике возможность легко создавать сложные последовательности команд может в значительной степени заменить циклы "для каждого" в командной строке, что значительно ускоряет рабочий процесс с использованием стандартного повторного использования команд unix.

Вывод pyp оптимизирован для типичных производственных сценариев. Например, если текст разбивается на массив с помощью метода split(), вывод будет автоматически пронумерован по полю, что делает выбор конкретного поля тривиальным. Были включены многочисленные другие удобства, такие как доступная история всех промежуточных результатов между конвейерами, возможность выполнять математические операции и набор переменных, основанный на общих операциях разделения / соединения метасимволов.

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