aboutsummaryrefslogtreecommitdiff
path: root/mesonbuild/wrap
diff options
context:
space:
mode:
authorXavier Claessens <xavier.claessens@collabora.com>2023-11-10 16:35:56 -0500
committerJussi Pakkanen <jpakkane@gmail.com>2023-11-22 22:10:01 +0200
commit4a1e0235cc81442c312cb31a9ed5c639f0b1c8c5 (patch)
tree4a24916d45c0276501e59069b0fee45d28a0fc87 /mesonbuild/wrap
parent5e06eb9b899f902eeb56935c166d58b2c5727faf (diff)
downloadmeson-4a1e0235cc81442c312cb31a9ed5c639f0b1c8c5.zip
meson-4a1e0235cc81442c312cb31a9ed5c639f0b1c8c5.tar.gz
meson-4a1e0235cc81442c312cb31a9ed5c639f0b1c8c5.tar.bz2
wrap: Cache get_releases()
"meson wrap status" was calling it for each .wrap file. Better use lru_cache to ensure we don't make the same mistake elsewhere.
Diffstat (limited to 'mesonbuild/wrap')
-rw-r--r--mesonbuild/wrap/wrap.py2
1 files changed, 2 insertions, 0 deletions
diff --git a/mesonbuild/wrap/wrap.py b/mesonbuild/wrap/wrap.py
index a5b4dc8..ea8b4bf 100644
--- a/mesonbuild/wrap/wrap.py
+++ b/mesonbuild/wrap/wrap.py
@@ -35,6 +35,7 @@ import json
from base64 import b64encode
from netrc import netrc
from pathlib import Path, PurePath
+from functools import lru_cache
from . import WrapMode
from .. import coredata
@@ -111,6 +112,7 @@ def get_releases_data(allow_insecure: bool) -> bytes:
url = open_wrapdburl('https://wrapdb.mesonbuild.com/v2/releases.json', allow_insecure, True)
return url.read()
+@lru_cache(maxsize=None)
def get_releases(allow_insecure: bool) -> T.Dict[str, T.Any]:
data = get_releases_data(allow_insecure)
return T.cast('T.Dict[str, T.Any]', json.loads(data.decode()))