Useful for when you have a sequence of steps you want to run and each step uses the output of the previous step to do something.
~Es.:
def process_videos(url):
page_html = download_page(url)
video_links = find_youtube_videos(video_links)
videos = fetch_youtube_videos(video_links)
videos = convert_videos_to_mp4(videos)
return save_videos_to_cloud(videos)
process_videos('some url')~Es.: The Pipeline Pattern Implementation ‘Chain of Responsability’:
def process_videos(url):
page_downloader = PageDownloader()
video_finder = VideoURLFinder()
youtube_fetcher = YoutubeVideoFetcher()
mp4_converter = MP4VideoConverter()
cloud_uploader = VideoCloudUploader()
pipeline = PipelineMenager()
pipeline.add_step(page_downloader)
pipeline.add_step(video_finder)
pipeline.add_step(youtube_fetcher)
pipeline.add_step(mp4_converter)
pipeline.add_step(cloud_uploader)
return pipeline.execute(url)~Es.: Advanced Pipeline Implementation using dynmic Imports
def process_videos(url):
pipeline = PipelineMenager(
'pipeline.download_page',
'pipeline.find_youtube_links',
'pipeline.fetch_youtube_videos',
'pipeline.convert_videos_to_mp4',
'pipeline.save_videos_to_cloud',
)
return pipeline.execute(url)