Автоматизация задач с Python #1.2: корутиновый pipeline

  Рет қаралды 13,419

Oleg Molchanov

Oleg Molchanov

Күн бұрын

Пікірлер: 53
@КонстантинСавин-к2я
@КонстантинСавин-к2я 5 жыл бұрын
Добрый день! Отличное видео. Напомнило "цепочку отвественности". Пробовал на одном из курсов реалзиовывать на классах. Спасибо, за доходчивое разъяснения!
@zaemiel
@zaemiel 5 жыл бұрын
Спасибо
@ArtFoX1000
@ArtFoX1000 5 жыл бұрын
Олег, а заключительным этапом будет использование Async / Await в данном скрипте?
@mihailneprostoi6584
@mihailneprostoi6584 5 жыл бұрын
Вижу новое видио сразу ставлю лайк не глядя, спасибо!
@mihailneprostoi6584
@mihailneprostoi6584 5 жыл бұрын
видео
@jimwiki
@jimwiki 5 жыл бұрын
Однозначно лайк!
@9keepa
@9keepa 5 жыл бұрын
Круто, очень доходчиво объясняется Спасибо за видео
@garrysimonoff818
@garrysimonoff818 2 жыл бұрын
Вопрос: вызовы os.walk выполняются асинхронно? Имеется в виду, что если выполнение внешней команды занимает значительное время будут ли все файлы обрабатываться параллельно? И второй вопрос: как ограничить количество параллельно обрабатываемых файлов? В bash скриптах я использую find | xargs а в питоне только queue + threading приходит в голову.
@Das.Kleine.Krokodil
@Das.Kleine.Krokodil 3 жыл бұрын
00:00 Генераторы, корутины 07:07 Что такое пайплайн 09:08 Разработка примера 20:04 Разработка запуска пайплайна в main 27:19 Запуск примера
@Kersmaik
@Kersmaik 3 жыл бұрын
Очень приятное видео. Огромное спасибо!
@АртемЗайцев-с2д
@АртемЗайцев-с2д 5 жыл бұрын
Лайк не глядя - это, конечно, да. Но вопрос (или может даже просьба) интересует: планируете ли серию видео по принципам выстраивания архитектуры приложений?
@trankov
@trankov 3 жыл бұрын
Вообще прикольно, отличный паттерн, спасибо
@B0JIKA
@B0JIKA 2 жыл бұрын
Олег, спасибо за Ваш труд. Будет ли продолжение?
@10nch1k
@10nch1k 4 жыл бұрын
Олег, спасибо за видео! Может подскажите в чём дело? Сделал два скрипта по Вашим урокам, стандартный из предыдущего и корутиновый из этого. Натравил их на папку с видео, а они работают одинаково: у обоих построчный вывод, как должно быть только у пайплайна, и время работы 3.2-3.7 секунд. У меня Windows10, а скрипт я запускаю из под Git Bash для совместимости команд строкой "python
@ИванИванов-з5к1щ
@ИванИванов-з5к1щ 5 жыл бұрын
os.path.basename прекрасно работает в "самой лучшей операционной системе" (Windows).
@zaemiel
@zaemiel 5 жыл бұрын
Это здорово
@velomatica
@velomatica 5 жыл бұрын
Как всегда на высоте, репост ВК обязательно! ))
@zaemiel
@zaemiel 5 жыл бұрын
Спасибо большое
@ОлегВоронов-э2ц
@ОлегВоронов-э2ц 5 жыл бұрын
Спасибо, очень крутая вещь, постараюсь реализовывать в будующем. В следующем видео можно хоть немного о ветвлениях в таких пайпах? Пока лучше чем свитч внутри и передачу нескольких корутин ничего не придумал
@zaemiel
@zaemiel 5 жыл бұрын
а так и есть - свитч, передача в следующий фильтр списка корутин и раздача по другим корутинам через цикл
@ОлегВоронов-э2ц
@ОлегВоронов-э2ц 5 жыл бұрын
@@zaemiel решил для понимания написать примерно тоже что у вас, но с размерами файлов и выводом txt/csv/py. Пока остановился на словаре вида { 'extension': ext_coroutine(prev_cor) , ... } а в фильтре вызываю по расширению следующую корутину
@lunamarsword
@lunamarsword 5 жыл бұрын
большое спасибо, очень интересно
@dmitryleiko2869
@dmitryleiko2869 5 жыл бұрын
Отлично, спасибо, все очень понятно)
@ДанькаЛобанов-у6ю
@ДанькаЛобанов-у6ю 4 жыл бұрын
Третья часть утеряна или забыта?
@grazz_er
@grazz_er 5 жыл бұрын
Спасибо, интересно.
@sainco3036
@sainco3036 5 жыл бұрын
Спасибо.
@andriiydovhyi
@andriiydovhyi 4 жыл бұрын
Олег, у меня цыкл проходит успешно но под конец на выходе TypeError: 'NoneType' object is not an iterator.
@Das.Kleine.Krokodil
@Das.Kleine.Krokodil 3 жыл бұрын
вероятно вы поставили декоратор у функции find_files
@semninrussia
@semninrussia 2 жыл бұрын
Неужели coro_vid.py это coronovirus vid (covid)?
@minimus91
@minimus91 6 ай бұрын
Куда удобнее, на мой взгляд, строить конвейер на генераторах. Корутины здесь выглядят довольно странно.
@alexanderpadalka5708
@alexanderpadalka5708 3 жыл бұрын
🗽
@maxsdg5578
@maxsdg5578 5 жыл бұрын
продолжение будет ?
@zaemiel
@zaemiel 5 жыл бұрын
Теперь не знаю. У этого скрипта 2 узких места. Одно решается многопоточностью, а второе никак не решается. В итоге на больших папках (вроде той, что в этом видео) выигрыш, который дает многопоточность практически полностью нивелируется вторым узким местом. Ацтой!
@maxsdg5578
@maxsdg5578 5 жыл бұрын
@@zaemiel узкое место это 1 поисковик ? а второе много поисковиков и их взаимодействие ?
@zaemiel
@zaemiel 5 жыл бұрын
поиск файлов на диске. Его никак нельзя ускорить.
@alekseykozlov9136
@alekseykozlov9136 3 жыл бұрын
@@zaemiel Демонстрация ограничений тоже очень полезна. Если есть возможность, то запишите видео с "неудачей" по ускорении и оптимазции
@silentspace593
@silentspace593 5 жыл бұрын
Что это за самая лучшая операционная система?)
@silentspace593
@silentspace593 5 жыл бұрын
@@veirant5004 ну обратные слеши используются в "окнах" разве не так?)
@mikhailmiroshnichenko3034
@mikhailmiroshnichenko3034 5 жыл бұрын
linux mint
@KvantVS
@KvantVS 7 ай бұрын
27:36 ты ведь запускаешь не только что написанный скрипт, а подготовленный до записи видео в другой папке...
@zaemiel
@zaemiel 7 ай бұрын
вы обратили внимание, что это второе видео?
@KvantVS
@KvantVS 7 ай бұрын
​@@zaemiel а причем здесь это? Ты не понял. Ты запускаешь coro_vid не со второго видео, не с первого видео, а какой-то некий, который подготовил заранее до записи ролика. На папку обрати внимание. Ты запустил не то, что написал в видео, а что-то другое, а говоришь "проверим этот скрипт на большой папке"
@zaemiel
@zaemiel 7 ай бұрын
Этого не может быть. Это где-то было, я где-то его написал. Я не мог взять скрипт из неоткуда. Просто потому, что я никогда этого не делал. Я скорее лишний раз расскажу как работает цикл FOR, чем возьму заранее подготовленный скрипт, написанный за кадром. Это в принципе невозможно.
@zaemiel
@zaemiel 7 ай бұрын
вы вообще видео с начала смотрите или нет? Я же сразу сказал, что в начале продемонстрирую результат его работы. И запустил этот скрипт. А потом на протяжении всего этого видео я переписываю скрипт из предыдущего видео с использование корутиновых пайплайнов. Это же первые 2 минуты видео!
@KvantVS
@KvantVS 7 ай бұрын
@@zaemiel Да причем тут первые две минуты. Я же дал таймкод, вы смотрели вообще? У вас две папки первый раз вы запускаете из "~/Desktop/scraping_course" на 26:00 ; Второй раз вы запускаете из "/media/oleg/ceb5f..../oleg/projects" на 27:36 . Скрипт один и тот же запускается? Просто на видео это не понятно. Я же написал таймкод, почему вы про начало говорите всё время? То про разные видео, то про начало видео.
@sergeys4732
@sergeys4732 5 жыл бұрын
Лайк неглядя
@АлександрА-к1г1ц
@АлександрА-к1г1ц 5 жыл бұрын
Прикол в том, что popen это процесс, который выполняется параллельно, комуникейт, эту параллельность фактически убивает. Лайк поставил бы если бы комуникейты асинхронно обработал бы.
@zaemiel
@zaemiel 5 жыл бұрын
Прикол совсем не в этом. Прикол в том, что в этом видео нет ни единого намека на оптимизацию скрипта. Она даже не планировалась.
@АлександрА-к1г1ц
@АлександрА-к1г1ц 5 жыл бұрын
Ну тогда может нужно сменить название у видео, зачем не оптимально автоматизировать задачи? ... шутка, а если по существу, мне кажется использование технологии там это действительно необходимо намного быстрее бы раскрывало ее суть.
@zaemiel
@zaemiel 5 жыл бұрын
Эта задача подходит под pipeline. Прямо напрашивается поэтому я сделал. Если вы хотите более удачный пример на ваш взгляд - запишите ваше видео
小丑揭穿坏人的阴谋 #小丑 #天使 #shorts
00:35
好人小丑
Рет қаралды 50 МЛН
КОГДА К БАТЕ ПРИШЕЛ ДРУГ😂#shorts
00:59
BATEK_OFFICIAL
Рет қаралды 7 МЛН
Тестирование с помощью Mock-ов в Python #1
15:38
小丑揭穿坏人的阴谋 #小丑 #天使 #shorts
00:35
好人小丑
Рет қаралды 50 МЛН