cache.py 548 Bytes
Newer Older
Olivier Dehaene's avatar
Olivier Dehaene committed
1
2
from bloom_inference.model import Batch
from typing import Dict, Optional
Olivier Dehaene's avatar
Init  
Olivier Dehaene committed
3
4
5
6


class Cache:
    def __init__(self):
Olivier Dehaene's avatar
Olivier Dehaene committed
7
        self.cache: Dict[int, Batch] = {}
Olivier Dehaene's avatar
Init  
Olivier Dehaene committed
8

Olivier Dehaene's avatar
Olivier Dehaene committed
9
    def pop(self, batch_id: int) -> Optional[Batch]:
Olivier Dehaene's avatar
Init  
Olivier Dehaene committed
10
11
        return self.cache.pop(batch_id, None)

Olivier Dehaene's avatar
Olivier Dehaene committed
12
    def set(self, entry: Batch):
Olivier Dehaene's avatar
Init  
Olivier Dehaene committed
13
14
15
        if entry is not None:
            self.cache[entry.batch_id] = entry

Olivier Dehaene's avatar
Olivier Dehaene committed
16
    def delete(self, batch_id: int):
Olivier Dehaene's avatar
Init  
Olivier Dehaene committed
17
18
19
20
21
22
23
        del self.cache[batch_id]

    def clear(self):
        self.cache.clear()

    def __len__(self):
        return len(self.cache.keys())