Описание тега pyp
Домашняя страница проекта: 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 через файл конфигурации, что обеспечивает тесную интеграцию с более крупными структурами данных или пользовательскими наборами инструментов.