Skip to content

Commit 0e55817

Browse files
authored
Replace custom cached_property with functools.cached_property
1 parent 442ff5d commit 0e55817

File tree

1 file changed

+1
-24
lines changed

1 file changed

+1
-24
lines changed

openlibrary/core/cache.py

Lines changed: 1 addition & 24 deletions
Original file line numberDiff line numberDiff line change
@@ -25,7 +25,6 @@
2525
"MemcacheCache",
2626
"MemoryCache",
2727
"RequestCache",
28-
"cached_property",
2928
"get_memcache",
3029
"memcache_memoize",
3130
"memoize",
@@ -241,28 +240,6 @@ def memcache_get(self, args: tuple, kw: dict) -> tuple[T, float] | None:
241240
####
242241

243242

244-
def cached_property(getter):
245-
"""Decorator like `property`, but the value is computed on first call and cached.
246-
247-
class Foo:
248-
249-
@cached_property
250-
def memcache_client(self):
251-
...
252-
"""
253-
name = getter.__name__
254-
255-
def g(self):
256-
if name in self.__dict__:
257-
return self.__dict__[name]
258-
259-
value = getter(self)
260-
self.__dict__[name] = value
261-
return value
262-
263-
return property(g)
264-
265-
266243
class Cache:
267244
"""Cache interface."""
268245

@@ -322,7 +299,7 @@ class MemcacheCache(Cache):
322299
Expects that the memcache servers are specified in web.config.memcache_servers.
323300
"""
324301

325-
@cached_property
302+
@functools.cached_property
326303
def memcache(self):
327304
if servers := config.get("memcache_servers", None):
328305
return olmemcache.Client(servers)

0 commit comments

Comments
 (0)