Comments 5
1. По тексту встречаются f-strings, значит у вас питон старше 3.7. В таком случае (да вообще уже в любом случае) `pip install asyncio` делать НЕ надо, это builtin библиотека.
2. `if a.attachments is not None and len(a.attachments)>0` — типичный код человека, пришедшего из мира C# :) if a.attachents более чем достаточно, оно проверит и на неравенство с None и если это контейнер — на то что он не пустой.
3. К чему тут было упоминание вашей библиотеки я не понял, но по ней тоже очень чувствуется, что люди пришли из мира энтерпрайза и теперь им хочется усложнить все пайплайнами.
Точно не единственный, я тоже это прочитал до конца. За замечания спасибо! Не очень понял, почему текст маркетинговый: я в докладе старался показать, как сделать конкретную поделку, какие сервисы выбрать и как использовать для этого.
Насчет пайплайнов, вопрос интересный: если мне нужно, к примеру, взять набор картинок из директории, применить к ним ряд преобразований (масштабирование, поворот, что-то ещё из компьютерного зрения) и потом это подать на вход нейросети — как это сделать кошерно, Pythonic way? В keras, например, есть ImageDataGenerator
, но он решает одну конкретную задачу. Если я хочу например формировать входные данные для тренировки сиамской сети, или triplet loss — мне нужно делать свой DataGenerator на основе существующего. В то же время функциональный подход позволяет строить композицию простых шагов обработки, и из них собирать требуемую функциональность как из конструктора. Я беседовал с людьми на ряде питоновских конференций, и кажется такой подход выглядит вполне симпатичным.
Наши пайплайны — это и есть генераторы, поверх которых навешен синтаксис пайплайнов из библиотеки Pipe и набор функций, позволяющих функционально описывать операции над полями структур, проходящих через цепочки обработчиков. Образно говоря, мы сделали для Python то, чем является LINQ для классического C#
www.python.org/dev/peps/pep-0020
Microsoft ♥️ Python