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

Поделиться
HTML-код
  • Опубликовано: 20 дек 2024

Комментарии •

  • @Das.Kleine.Krokodil
    @Das.Kleine.Krokodil 3 года назад +1

    00:00 Генераторы, корутины
    07:07 Что такое пайплайн
    09:08 Разработка примера
    20:04 Разработка запуска пайплайна в main
    27:19 Запуск примера

  • @КонстантинСавин-к2я

    Добрый день! Отличное видео. Напомнило "цепочку отвественности". Пробовал на одном из курсов реалзиовывать на классах. Спасибо, за доходчивое разъяснения!

    • @zaemiel
      @zaemiel  5 лет назад

      Спасибо

  • @mihailneprostoi6584
    @mihailneprostoi6584 5 лет назад

    Вижу новое видио сразу ставлю лайк не глядя, спасибо!

  • @9keepa
    @9keepa 5 лет назад +1

    Круто, очень доходчиво объясняется Спасибо за видео

  • @jimwiki
    @jimwiki 5 лет назад +3

    Однозначно лайк!

  • @ArtFoX1000
    @ArtFoX1000 5 лет назад +9

    Олег, а заключительным этапом будет использование Async / Await в данном скрипте?

  • @АртемЗайцев-с2д
    @АртемЗайцев-с2д 5 лет назад +3

    Лайк не глядя - это, конечно, да. Но вопрос (или может даже просьба) интересует: планируете ли серию видео по принципам выстраивания архитектуры приложений?

  • @Kersmaik
    @Kersmaik 3 года назад

    Очень приятное видео. Огромное спасибо!

  • @trankov
    @trankov 3 года назад

    Вообще прикольно, отличный паттерн, спасибо

  • @velomatica
    @velomatica 5 лет назад

    Как всегда на высоте, репост ВК обязательно! ))

    • @zaemiel
      @zaemiel  5 лет назад

      Спасибо большое

  • @B0JIKA
    @B0JIKA 2 года назад

    Олег, спасибо за Ваш труд. Будет ли продолжение?

  • @garrysimonoff818
    @garrysimonoff818 2 года назад

    Вопрос: вызовы os.walk выполняются асинхронно? Имеется в виду, что если выполнение внешней команды занимает значительное время будут ли все файлы обрабатываться параллельно?
    И второй вопрос: как ограничить количество параллельно обрабатываемых файлов? В bash скриптах я использую find | xargs а в питоне только queue + threading приходит в голову.

  • @ИванИванов-з5к1щ
    @ИванИванов-з5к1щ 5 лет назад +2

    os.path.basename прекрасно работает в "самой лучшей операционной системе" (Windows).

    • @zaemiel
      @zaemiel  5 лет назад +1

      Это здорово

  • @dmitryleiko2869
    @dmitryleiko2869 5 лет назад

    Отлично, спасибо, все очень понятно)

  • @lunamarsword
    @lunamarsword 5 лет назад

    большое спасибо, очень интересно

  • @ДанькаЛобанов-у6ю
    @ДанькаЛобанов-у6ю 4 года назад +1

    Третья часть утеряна или забыта?

  • @10nch1k
    @10nch1k 4 года назад

    Олег, спасибо за видео! Может подскажите в чём дело?
    Сделал два скрипта по Вашим урокам, стандартный из предыдущего и корутиновый из этого. Натравил их на папку с видео, а они работают одинаково: у обоих построчный вывод, как должно быть только у пайплайна, и время работы 3.2-3.7 секунд. У меня Windows10, а скрипт я запускаю из под Git Bash для совместимости команд строкой "python

  • @ОлегВоронов-э2ц
    @ОлегВоронов-э2ц 5 лет назад

    Спасибо, очень крутая вещь, постараюсь реализовывать в будующем. В следующем видео можно хоть немного о ветвлениях в таких пайпах? Пока лучше чем свитч внутри и передачу нескольких корутин ничего не придумал

    • @zaemiel
      @zaemiel  5 лет назад

      а так и есть - свитч, передача в следующий фильтр списка корутин и раздача по другим корутинам через цикл

    • @ОлегВоронов-э2ц
      @ОлегВоронов-э2ц 5 лет назад

      @@zaemiel решил для понимания написать примерно тоже что у вас, но с размерами файлов и выводом txt/csv/py. Пока остановился на словаре вида { 'extension': ext_coroutine(prev_cor) , ... } а в фильтре вызываю по расширению следующую корутину

  • @semninrussia
    @semninrussia 2 года назад

    Неужели coro_vid.py это coronovirus vid (covid)?

  • @minimus91
    @minimus91 8 месяцев назад

    Куда удобнее, на мой взгляд, строить конвейер на генераторах. Корутины здесь выглядят довольно странно.

  • @KvantVS
    @KvantVS 8 месяцев назад

    27:36 ты ведь запускаешь не только что написанный скрипт, а подготовленный до записи видео в другой папке...

    • @zaemiel
      @zaemiel  8 месяцев назад

      вы обратили внимание, что это второе видео?

    • @KvantVS
      @KvantVS 8 месяцев назад

      ​@@zaemiel а причем здесь это?
      Ты не понял. Ты запускаешь coro_vid не со второго видео, не с первого видео, а какой-то некий, который подготовил заранее до записи ролика. На папку обрати внимание. Ты запустил не то, что написал в видео, а что-то другое, а говоришь "проверим этот скрипт на большой папке"

    • @zaemiel
      @zaemiel  8 месяцев назад

      Этого не может быть.
      Это где-то было, я где-то его написал.
      Я не мог взять скрипт из неоткуда. Просто потому, что я никогда этого не делал.
      Я скорее лишний раз расскажу как работает цикл FOR, чем возьму заранее подготовленный скрипт, написанный за кадром.
      Это в принципе невозможно.

    • @zaemiel
      @zaemiel  8 месяцев назад

      вы вообще видео с начала смотрите или нет?
      Я же сразу сказал, что в начале продемонстрирую результат его работы.
      И запустил этот скрипт.
      А потом на протяжении всего этого видео я переписываю скрипт из предыдущего видео с использование корутиновых пайплайнов.
      Это же первые 2 минуты видео!

    • @KvantVS
      @KvantVS 8 месяцев назад

      @@zaemiel Да причем тут первые две минуты. Я же дал таймкод, вы смотрели вообще?
      У вас две папки первый раз вы запускаете из "~/Desktop/scraping_course" на 26:00 ;
      Второй раз вы запускаете из "/media/oleg/ceb5f..../oleg/projects" на 27:36 . Скрипт один и тот же запускается? Просто на видео это не понятно. Я же написал таймкод, почему вы про начало говорите всё время? То про разные видео, то про начало видео.

  • @grazz_er
    @grazz_er 5 лет назад

    Спасибо, интересно.

  • @andriiydovhyi
    @andriiydovhyi 4 года назад

    Олег, у меня цыкл проходит успешно но под конец на выходе TypeError: 'NoneType' object is not an iterator.

    • @Das.Kleine.Krokodil
      @Das.Kleine.Krokodil 3 года назад

      вероятно вы поставили декоратор у функции find_files

  • @maxsdg5578
    @maxsdg5578 5 лет назад

    продолжение будет ?

    • @zaemiel
      @zaemiel  5 лет назад +1

      Теперь не знаю. У этого скрипта 2 узких места. Одно решается многопоточностью, а второе никак не решается. В итоге на больших папках (вроде той, что в этом видео) выигрыш, который дает многопоточность практически полностью нивелируется вторым узким местом. Ацтой!

    • @maxsdg5578
      @maxsdg5578 5 лет назад

      @@zaemiel узкое место это 1 поисковик ? а второе много поисковиков и их взаимодействие ?

    • @zaemiel
      @zaemiel  5 лет назад

      поиск файлов на диске. Его никак нельзя ускорить.

    • @alekseykozlov9136
      @alekseykozlov9136 3 года назад

      @@zaemiel Демонстрация ограничений тоже очень полезна. Если есть возможность, то запишите видео с "неудачей" по ускорении и оптимазции

  • @sainco3036
    @sainco3036 5 лет назад

    Спасибо.

  • @silentspace593
    @silentspace593 5 лет назад

    Что это за самая лучшая операционная система?)

    • @silentspace593
      @silentspace593 5 лет назад

      @@veirant5004 ну обратные слеши используются в "окнах" разве не так?)

    • @mikhailmiroshnichenko3034
      @mikhailmiroshnichenko3034 5 лет назад

      linux mint

  • @alexanderpadalka5708
    @alexanderpadalka5708 3 года назад

    🗽

  • @АлександрА-к1г1ц
    @АлександрА-к1г1ц 5 лет назад

    Прикол в том, что popen это процесс, который выполняется параллельно, комуникейт, эту параллельность фактически убивает. Лайк поставил бы если бы комуникейты асинхронно обработал бы.

    • @zaemiel
      @zaemiel  5 лет назад +1

      Прикол совсем не в этом. Прикол в том, что в этом видео нет ни единого намека на оптимизацию скрипта. Она даже не планировалась.

    • @АлександрА-к1г1ц
      @АлександрА-к1г1ц 5 лет назад

      Ну тогда может нужно сменить название у видео, зачем не оптимально автоматизировать задачи? ... шутка, а если по существу, мне кажется использование технологии там это действительно необходимо намного быстрее бы раскрывало ее суть.

    • @zaemiel
      @zaemiel  5 лет назад +1

      Эта задача подходит под pipeline. Прямо напрашивается поэтому я сделал. Если вы хотите более удачный пример на ваш взгляд - запишите ваше видео

  • @sergeys4732
    @sergeys4732 5 лет назад

    Лайк неглядя