From 1b12b5e7b3d09808d05cc6f0ad426d8e374d7253 Mon Sep 17 00:00:00 2001 From: Ngayka Date: Sat, 30 Nov 2024 15:59:23 +0200 Subject: [PATCH] Solution --- app/main.py | 17 +++++++++++++++-- 1 file changed, 15 insertions(+), 2 deletions(-) diff --git a/app/main.py b/app/main.py index 68287892..a0781bfd 100644 --- a/app/main.py +++ b/app/main.py @@ -1,6 +1,19 @@ from typing import Callable +from functools import wraps def cache(func: Callable) -> Callable: - # Write your code here - pass + cache_storage = {} + + @wraps(func) + def wrapper(*args, **kwargs): + cache_key = (args, tuple(sorted(kwargs.items()))) + if cache_key in cache_storage: + print("Getting from cache") + return cache_storage[cache_key] + else: + print("Calculating new result") + result = func(*args, **kwargs) + cache_storage[cache_key] = result + return result + return wrapper