From f0c16396e0d5ad6aa9442da45fabc27524741935 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Sebasti=C3=A1n=20A=2E=20Estrada?= Date: Thu, 28 May 2026 16:52:55 -0300 Subject: [PATCH 1/6] Solution --- app/main.py | 19 +++++++++++++++++-- 1 file changed, 17 insertions(+), 2 deletions(-) diff --git a/app/main.py b/app/main.py index 68287892f..34cfe41d5 100644 --- a/app/main.py +++ b/app/main.py @@ -2,5 +2,20 @@ def cache(func: Callable) -> Callable: - # Write your code here - pass + + memoria = {} + + def wrapper(*args, **kwargs): + # Creamos una clave única que soporte argumentos posicionales y nombrados + clave = (args, tuple(sorted(kwargs.items()))) + + if clave in memoria: + print("Getting from cache") + return memoria[clave] + + print("Calculating new result") + resultado = func(*args, **kwargs) + memoria[clave] = resultado + return resultado + + return wrapper \ No newline at end of file From f6233f0f46c2bc58c9cdd82b8d9af1ba151287ca Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Sebasti=C3=A1n=20A=2E=20Estrada?= Date: Thu, 28 May 2026 17:04:19 -0300 Subject: [PATCH 2/6] Solution --- app/main.py | 8 ++++---- 1 file changed, 4 insertions(+), 4 deletions(-) diff --git a/app/main.py b/app/main.py index 34cfe41d5..52178be2a 100644 --- a/app/main.py +++ b/app/main.py @@ -8,14 +8,14 @@ def cache(func: Callable) -> Callable: def wrapper(*args, **kwargs): # Creamos una clave única que soporte argumentos posicionales y nombrados clave = (args, tuple(sorted(kwargs.items()))) - + if clave in memoria: print("Getting from cache") return memoria[clave] - + print("Calculating new result") resultado = func(*args, **kwargs) memoria[clave] = resultado return resultado - - return wrapper \ No newline at end of file + + return wrapper From e258a9dd218d787207c4a414a45bd255e2263efc Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Sebasti=C3=A1n=20A=2E=20Estrada?= Date: Thu, 28 May 2026 17:13:53 -0300 Subject: [PATCH 3/6] Solution --- app/main.py | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/app/main.py b/app/main.py index 52178be2a..4b837498b 100644 --- a/app/main.py +++ b/app/main.py @@ -6,7 +6,7 @@ def cache(func: Callable) -> Callable: memoria = {} def wrapper(*args, **kwargs): - # Creamos una clave única que soporte argumentos posicionales y nombrados + clave = (args, tuple(sorted(kwargs.items()))) if clave in memoria: From 0b18b30ce7bf2773a8c80d1b5798e6bd8f44cfe3 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Sebasti=C3=A1n=20A=2E=20Estrada?= Date: Thu, 28 May 2026 17:38:34 -0300 Subject: [PATCH 4/6] Solution --- app/main.py | 14 +++++++------- 1 file changed, 7 insertions(+), 7 deletions(-) diff --git a/app/main.py b/app/main.py index 4b837498b..a494c8b01 100644 --- a/app/main.py +++ b/app/main.py @@ -3,19 +3,19 @@ def cache(func: Callable) -> Callable: - memoria = {} + memo = {} def wrapper(*args, **kwargs): - clave = (args, tuple(sorted(kwargs.items()))) + key = (args, tuple(sorted(kwargs.items()))) - if clave in memoria: + if key in memo: print("Getting from cache") - return memoria[clave] + return memo[key] print("Calculating new result") - resultado = func(*args, **kwargs) - memoria[clave] = resultado - return resultado + result = func(*args, **kwargs) + memo[key] = result + return result return wrapper From 04b21972101856600585c5610ca22c1f3d6570d1 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Sebasti=C3=A1n=20A=2E=20Estrada?= Date: Thu, 28 May 2026 17:41:32 -0300 Subject: [PATCH 5/6] SolutionB --- app/main.py | 5 ++--- 1 file changed, 2 insertions(+), 3 deletions(-) diff --git a/app/main.py b/app/main.py index a494c8b01..5c24e8b2b 100644 --- a/app/main.py +++ b/app/main.py @@ -2,11 +2,10 @@ def cache(func: Callable) -> Callable: - + memo = {} - - def wrapper(*args, **kwargs): + def wrapper(*args, **kwargs): key = (args, tuple(sorted(kwargs.items()))) if key in memo: From 870ffe5ef82a6329e01d3e78b0f34504df84f9a8 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Sebasti=C3=A1n=20A=2E=20Estrada?= Date: Thu, 28 May 2026 17:43:21 -0300 Subject: [PATCH 6/6] Solution --- app/main.py | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/app/main.py b/app/main.py index 5c24e8b2b..9d9fa1f27 100644 --- a/app/main.py +++ b/app/main.py @@ -1,11 +1,11 @@ -from typing import Callable +from typing import Any, Callable def cache(func: Callable) -> Callable: memo = {} - def wrapper(*args, **kwargs): + def wrapper(*args, **kwargs) -> Any: key = (args, tuple(sorted(kwargs.items()))) if key in memo: