blob: 77885d2c0c41328c3ff0b6b49a2136f1877ad9d7 (
plain) (
blame)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
|
from cachetools import cached
import time
from iamai import Plugin
from iamai.event import MessageEvent
class CachedPlugin(Plugin):
async def handle(self) -> None:
# without cached
def fib(n):
return n if n < 2 else fib(n - 1) + fib(n - 2)
s = time.time()
await self.event.reply(f"{fib(36)}")
await self.event.reply(f"Time Taken: {time.time() - s}")
# Now using cached
s = time.time()
# Use this decorator to enable caching
@cached(cache={})
def fib(n):
return n if n < 2 else fib(n - 1) + fib(n - 2)
await self.event.reply(f"{fib(36)}")
await self.event.reply(f"Time Taken(cached): {time.time() - s}")
async def rule(self) -> bool:
return (
isinstance(self.event, MessageEvent)
and self.event.get_plain_text() == ".cachetools"
)
|