LRU Cache in time for all operations

from collections import OrderedDict
 
class LRUCache:
    def __init__(self, capacity: int):
        self.max_size = capacity
        self.items = OrderedDict()
 
    def get(self, key: int) -> int:
        if key in self.items:
            self.items.move_to_end(key)
        return self.items.get(key, -1)
 
    def put(self, key: int, value: int) -> None:
        if key in self.items:
            del self.items[key]
        if len(self.items) == self.max_size:
            self.items.popitem(last=False)
        self.items[key] = value