@startuml
title download.py

object init_download
object gallery_download
object user_download
object async_download_rename
object async_download_no_rename
object async_download_spinner
object async_filter_and_download
object download_then_rename
object download_url
object download_url_verified
object download_image_coords
object download_image_num

ui -down-|> init_download
init_download -down-> gallery_download
init_download -down-> user_download
ui .down.|> gallery_download
ui .down.|> user_download

gallery_download -down-> async_download_rename
user_download -down-> async_download_rename

async_download_rename -down-> async_filter_and_download
async_download_no_rename -down-> async_filter_and_download
async_filter_and_download -down-> download_then_rename

ui -down-|> async_download_spinner
async_download_spinner -down-> async_download_no_rename
ui -down-|> async_download_no_rename

download_url --> download_then_rename
download_url_verified --> download_url
download_image_coords --> download_image_num
download_image_num --> download_url_verified

ui -down-|> download_url
ui -down-|> download_url_verified

object prompt
prompt --|> download_image_coords
prompt --|> download_image_num

@enduml
