Добрый день! Отличное видео. Напомнило "цепочку отвественности". Пробовал на одном из курсов реалзиовывать на классах. Спасибо, за доходчивое разъяснения!
Лайк не глядя - это, конечно, да. Но вопрос (или может даже просьба) интересует: планируете ли серию видео по принципам выстраивания архитектуры приложений?
Вопрос: вызовы os.walk выполняются асинхронно? Имеется в виду, что если выполнение внешней команды занимает значительное время будут ли все файлы обрабатываться параллельно? И второй вопрос: как ограничить количество параллельно обрабатываемых файлов? В bash скриптах я использую find | xargs а в питоне только queue + threading приходит в голову.
Олег, спасибо за видео! Может подскажите в чём дело? Сделал два скрипта по Вашим урокам, стандартный из предыдущего и корутиновый из этого. Натравил их на папку с видео, а они работают одинаково: у обоих построчный вывод, как должно быть только у пайплайна, и время работы 3.2-3.7 секунд. У меня Windows10, а скрипт я запускаю из под Git Bash для совместимости команд строкой "python
Спасибо, очень крутая вещь, постараюсь реализовывать в будующем. В следующем видео можно хоть немного о ветвлениях в таких пайпах? Пока лучше чем свитч внутри и передачу нескольких корутин ничего не придумал
@@zaemiel решил для понимания написать примерно тоже что у вас, но с размерами файлов и выводом txt/csv/py. Пока остановился на словаре вида { 'extension': ext_coroutine(prev_cor) , ... } а в фильтре вызываю по расширению следующую корутину
@@zaemiel а причем здесь это? Ты не понял. Ты запускаешь coro_vid не со второго видео, не с первого видео, а какой-то некий, который подготовил заранее до записи ролика. На папку обрати внимание. Ты запустил не то, что написал в видео, а что-то другое, а говоришь "проверим этот скрипт на большой папке"
Этого не может быть. Это где-то было, я где-то его написал. Я не мог взять скрипт из неоткуда. Просто потому, что я никогда этого не делал. Я скорее лишний раз расскажу как работает цикл FOR, чем возьму заранее подготовленный скрипт, написанный за кадром. Это в принципе невозможно.
вы вообще видео с начала смотрите или нет? Я же сразу сказал, что в начале продемонстрирую результат его работы. И запустил этот скрипт. А потом на протяжении всего этого видео я переписываю скрипт из предыдущего видео с использование корутиновых пайплайнов. Это же первые 2 минуты видео!
@@zaemiel Да причем тут первые две минуты. Я же дал таймкод, вы смотрели вообще? У вас две папки первый раз вы запускаете из "~/Desktop/scraping_course" на 26:00 ; Второй раз вы запускаете из "/media/oleg/ceb5f..../oleg/projects" на 27:36 . Скрипт один и тот же запускается? Просто на видео это не понятно. Я же написал таймкод, почему вы про начало говорите всё время? То про разные видео, то про начало видео.
Теперь не знаю. У этого скрипта 2 узких места. Одно решается многопоточностью, а второе никак не решается. В итоге на больших папках (вроде той, что в этом видео) выигрыш, который дает многопоточность практически полностью нивелируется вторым узким местом. Ацтой!
Прикол в том, что popen это процесс, который выполняется параллельно, комуникейт, эту параллельность фактически убивает. Лайк поставил бы если бы комуникейты асинхронно обработал бы.
Ну тогда может нужно сменить название у видео, зачем не оптимально автоматизировать задачи? ... шутка, а если по существу, мне кажется использование технологии там это действительно необходимо намного быстрее бы раскрывало ее суть.
00:00 Генераторы, корутины
07:07 Что такое пайплайн
09:08 Разработка примера
20:04 Разработка запуска пайплайна в main
27:19 Запуск примера
Добрый день! Отличное видео. Напомнило "цепочку отвественности". Пробовал на одном из курсов реалзиовывать на классах. Спасибо, за доходчивое разъяснения!
Спасибо
Вижу новое видио сразу ставлю лайк не глядя, спасибо!
видео
Круто, очень доходчиво объясняется Спасибо за видео
Однозначно лайк!
Олег, а заключительным этапом будет использование Async / Await в данном скрипте?
Лайк не глядя - это, конечно, да. Но вопрос (или может даже просьба) интересует: планируете ли серию видео по принципам выстраивания архитектуры приложений?
Очень приятное видео. Огромное спасибо!
Вообще прикольно, отличный паттерн, спасибо
Как всегда на высоте, репост ВК обязательно! ))
Спасибо большое
Олег, спасибо за Ваш труд. Будет ли продолжение?
Вопрос: вызовы os.walk выполняются асинхронно? Имеется в виду, что если выполнение внешней команды занимает значительное время будут ли все файлы обрабатываться параллельно?
И второй вопрос: как ограничить количество параллельно обрабатываемых файлов? В bash скриптах я использую find | xargs а в питоне только queue + threading приходит в голову.
os.path.basename прекрасно работает в "самой лучшей операционной системе" (Windows).
Это здорово
Отлично, спасибо, все очень понятно)
большое спасибо, очень интересно
Третья часть утеряна или забыта?
Олег, спасибо за видео! Может подскажите в чём дело?
Сделал два скрипта по Вашим урокам, стандартный из предыдущего и корутиновый из этого. Натравил их на папку с видео, а они работают одинаково: у обоих построчный вывод, как должно быть только у пайплайна, и время работы 3.2-3.7 секунд. У меня Windows10, а скрипт я запускаю из под Git Bash для совместимости команд строкой "python
Спасибо, очень крутая вещь, постараюсь реализовывать в будующем. В следующем видео можно хоть немного о ветвлениях в таких пайпах? Пока лучше чем свитч внутри и передачу нескольких корутин ничего не придумал
а так и есть - свитч, передача в следующий фильтр списка корутин и раздача по другим корутинам через цикл
@@zaemiel решил для понимания написать примерно тоже что у вас, но с размерами файлов и выводом txt/csv/py. Пока остановился на словаре вида { 'extension': ext_coroutine(prev_cor) , ... } а в фильтре вызываю по расширению следующую корутину
Неужели coro_vid.py это coronovirus vid (covid)?
Куда удобнее, на мой взгляд, строить конвейер на генераторах. Корутины здесь выглядят довольно странно.
27:36 ты ведь запускаешь не только что написанный скрипт, а подготовленный до записи видео в другой папке...
вы обратили внимание, что это второе видео?
@@zaemiel а причем здесь это?
Ты не понял. Ты запускаешь coro_vid не со второго видео, не с первого видео, а какой-то некий, который подготовил заранее до записи ролика. На папку обрати внимание. Ты запустил не то, что написал в видео, а что-то другое, а говоришь "проверим этот скрипт на большой папке"
Этого не может быть.
Это где-то было, я где-то его написал.
Я не мог взять скрипт из неоткуда. Просто потому, что я никогда этого не делал.
Я скорее лишний раз расскажу как работает цикл FOR, чем возьму заранее подготовленный скрипт, написанный за кадром.
Это в принципе невозможно.
вы вообще видео с начала смотрите или нет?
Я же сразу сказал, что в начале продемонстрирую результат его работы.
И запустил этот скрипт.
А потом на протяжении всего этого видео я переписываю скрипт из предыдущего видео с использование корутиновых пайплайнов.
Это же первые 2 минуты видео!
@@zaemiel Да причем тут первые две минуты. Я же дал таймкод, вы смотрели вообще?
У вас две папки первый раз вы запускаете из "~/Desktop/scraping_course" на 26:00 ;
Второй раз вы запускаете из "/media/oleg/ceb5f..../oleg/projects" на 27:36 . Скрипт один и тот же запускается? Просто на видео это не понятно. Я же написал таймкод, почему вы про начало говорите всё время? То про разные видео, то про начало видео.
Спасибо, интересно.
Олег, у меня цыкл проходит успешно но под конец на выходе TypeError: 'NoneType' object is not an iterator.
вероятно вы поставили декоратор у функции find_files
продолжение будет ?
Теперь не знаю. У этого скрипта 2 узких места. Одно решается многопоточностью, а второе никак не решается. В итоге на больших папках (вроде той, что в этом видео) выигрыш, который дает многопоточность практически полностью нивелируется вторым узким местом. Ацтой!
@@zaemiel узкое место это 1 поисковик ? а второе много поисковиков и их взаимодействие ?
поиск файлов на диске. Его никак нельзя ускорить.
@@zaemiel Демонстрация ограничений тоже очень полезна. Если есть возможность, то запишите видео с "неудачей" по ускорении и оптимазции
Спасибо.
Что это за самая лучшая операционная система?)
@@veirant5004 ну обратные слеши используются в "окнах" разве не так?)
linux mint
🗽
Прикол в том, что popen это процесс, который выполняется параллельно, комуникейт, эту параллельность фактически убивает. Лайк поставил бы если бы комуникейты асинхронно обработал бы.
Прикол совсем не в этом. Прикол в том, что в этом видео нет ни единого намека на оптимизацию скрипта. Она даже не планировалась.
Ну тогда может нужно сменить название у видео, зачем не оптимально автоматизировать задачи? ... шутка, а если по существу, мне кажется использование технологии там это действительно необходимо намного быстрее бы раскрывало ее суть.
Эта задача подходит под pipeline. Прямо напрашивается поэтому я сделал. Если вы хотите более удачный пример на ваш взгляд - запишите ваше видео
Лайк неглядя