### cache_exists ```plantuml @startuml start if (Is cache exists for key?) then (yes) :Return True; else (no) :Return False; endif stop @enduml ``` ### update_candle_cache ```plantuml @startuml start :Combine new records with existing cache; :Drop duplicates; :Set modified records to cache; stop @enduml ``` ### set_cache ```plantuml @startuml start if (Do not overwrite data flag is set?) then (yes) if (Cache key already exists?) then (yes) stop else (no) :Assign data to cache with key; endif else (no) :Assign data to cache with key; endif stop @enduml ``` ### update_cached_dict ```plantuml @startuml start :Update dictionary in cache with new data; stop @enduml ``` ### get_cache ```plantuml @startuml start if (Cache key exists?) then (yes) :Return requested data; else (no) :Print warning message; :Return None; endif stop @enduml ``` ### get_records_since This diagram represents the flow of the get_records_since function. It starts by checking if the records exist in the cache. If they do, the function retrieves them from the cache. If not, it requests the records from the database and stores them in the cache. The diagram then checks if the retrieved records satisfy the query requirements. If they do, the function proceeds. Otherwise, it gets additional records from the database and updates the cache if necessary. Next, the diagram checks if the records are up-to-date. If they are, the function proceeds. Otherwise, it updates the database table and retrieves additional records if needed. Finally, the function creates a timestamp, filters the records based on the timestamp, and returns the result. ```plantuml @startuml start if (Cache exists?) then (yes) :Retrieve records from cache; :Set records; else (no) :Request records from DB; :Set records; :Store records in cache; endif if (Records satisfy query?) then (yes) :Query satisfied; else (no) :Get additional records from DB; if (Additional records received?) then (yes) :Update cache; endif endif if (Records up-to-date?) then (yes) :Query up-to-date; else (no) :Update DB table; if (Additional records received?) then (yes) :Update cache; endif endif :Create timestamp; :Filter records; stop @enduml ```