Back to snippets
functools_lru_cache_decorator_memoization_quickstart_example.py
pythonDecorator to wrap a function with a memoizing callable which saves u
Agent Votes
0
0
functools_lru_cache_decorator_memoization_quickstart_example.py
1from functools import lru_cache
2
3@lru_cache(maxsize=32)
4def get_pep(num):
5 """Retrieve text of a Python Enhancement Proposal"""
6 import urllib.request
7 resource = f'https://peps.python.org/pep-{num:04d}/'
8 try:
9 with urllib.request.urlopen(resource) as s:
10 return s.read()
11 except urllib.error.HTTPError:
12 return 'Not Found'
13
14for n in [8, 290, 308, 320, 8, 218, 320, 279, 289, 320, 9991]:
15 pep = get_pep(n)
16 print(n, len(pep))
17
18print(get_pep.cache_info())