diff --git a/lang/python/python-cachetools/Makefile b/lang/python/python-cachetools/Makefile index fbe2dff94d..7462aeb819 100644 --- a/lang/python/python-cachetools/Makefile +++ b/lang/python/python-cachetools/Makefile @@ -8,16 +8,18 @@ include $(TOPDIR)/rules.mk PKG_NAME:=python-cachetools -PKG_VERSION:=5.3.1 +PKG_VERSION:=7.0.5 PKG_RELEASE:=1 PYPI_NAME:=cachetools -PKG_HASH:=dce83f2d9b4e1f732a8cd44af8e8fab2dbe46201467fc98b3ef8f269092bf62b +PKG_HASH:=0cd042c24377200c1dcd225f8b7b12b0ca53cc2c961b43757e774ebe190fd990 PKG_MAINTAINER:=Josef Schlehofer PKG_LICENSE:=MIT PKG_LICENSE_FILES:=LICENSE +PKG_BUILD_DEPENDS:=python-setuptools/host + include ../pypi.mk include $(INCLUDE_DIR)/package.mk include ../python3-package.mk diff --git a/lang/python/python-cachetools/test.sh b/lang/python/python-cachetools/test.sh new file mode 100755 index 0000000000..9e9cbac28b --- /dev/null +++ b/lang/python/python-cachetools/test.sh @@ -0,0 +1,51 @@ +#!/bin/sh + +[ "$1" = "python3-cachetools" ] || exit 0 + +python3 - << EOF +import sys +import cachetools + +if cachetools.__version__ != "$2": + print("Wrong version: " + cachetools.__version__) + sys.exit(1) + +from cachetools import LRUCache, TTLCache, LFUCache, cached + +# LRUCache: evicts least recently used +cache = LRUCache(maxsize=2) +cache["a"] = 1 +cache["b"] = 2 +cache["c"] = 3 # evicts "a" +assert "a" not in cache +assert cache["b"] == 2 +assert cache["c"] == 3 + +# LFUCache: evicts least frequently used +lfu = LFUCache(maxsize=2) +lfu["x"] = 10 +lfu["y"] = 20 +_ = lfu["x"] # x accessed twice +lfu["z"] = 30 # evicts "y" (lower frequency) +assert "x" in lfu +assert "y" not in lfu + +# TTLCache: entries expire +ttl = TTLCache(maxsize=10, ttl=60) +ttl["key"] = "val" +assert ttl["key"] == "val" + +# @cached decorator +call_count = [0] + +@cached(cache=LRUCache(maxsize=4)) +def expensive(n): + call_count[0] += 1 + return n * n + +assert expensive(3) == 9 +assert expensive(3) == 9 # cached, no extra call +assert call_count[0] == 1 + +sys.exit(0) +EOF