legends_proto / utils.py
xarical's picture
Upload utils.py
98ce236 verified
from collections import OrderedDict
from threading import Thread
from flask import Flask
flask_app = Flask(__name__)
@flask_app.route("/", methods=["GET"])
def home() -> str:
"""
Keepalive endpoint for hosting services.
"""
return "I'm alive"
def keepalive_run() -> None:
"""
Run keepalive Flask app in a daemon thread.
"""
def flask_run():
flask_app.run(host="0.0.0.0", port="7860")
flask_thread = Thread(target=flask_run, daemon=True)
flask_thread.start()
class LRUCache:
"""Least Recently Used (LRU) cache prototype implementation"""
def __init__(self, max_size):
self.max_size = max_size
self.cache = OrderedDict()
def __getitem__(self, key):
try:
val = self.cache[key]
self.cache.move_to_end(key)
return val
except KeyError:
return None
def __setitem__(self, key, value):
self.cache[key] = value
self.cache.move_to_end(key)
if len(self.cache) > self.max_size:
self.cache.popitem(last=False)