Skip to content

Commit 0a474d3

Browse files
committed
Cache get_installed_libs result
1 parent ab9a7e0 commit 0a474d3

File tree

1 file changed

+8
-6
lines changed

1 file changed

+8
-6
lines changed

platformio/libmanager.py

+8-6
Original file line numberDiff line numberDiff line change
@@ -8,19 +8,18 @@
88
from shutil import rmtree
99
from tempfile import gettempdir
1010

11-
from platformio import telemetry
11+
from platformio import telemetry, util
1212
from platformio.downloader import FileDownloader
1313
from platformio.exception import LibAlreadyInstalledError, LibNotInstalledError
1414
from platformio.unpacker import FileUnpacker
15-
from platformio.util import get_api_result, get_lib_dir
1615

1716

1817
class LibraryManager(object):
1918

2019
CONFIG_NAME = ".library.json"
2120

2221
def __init__(self, lib_dir=None):
23-
self.lib_dir = lib_dir or get_lib_dir()
22+
self.lib_dir = lib_dir or util.get_lib_dir()
2423

2524
@staticmethod
2625
def download(url, dest_dir):
@@ -33,6 +32,7 @@ def unpack(pkgpath, dest_dir):
3332
fu = FileUnpacker(pkgpath, dest_dir)
3433
return fu.start()
3534

35+
@util.memoized
3636
def get_installed(self):
3737
items = {}
3838
if not isdir(self.lib_dir):
@@ -49,7 +49,7 @@ def get_latest_versions(self):
4949
lib_ids = [str(item['id']) for item in self.get_installed().values()]
5050
if not lib_ids:
5151
return None
52-
return get_api_result("/lib/version/" + str(",".join(lib_ids)))
52+
return util.get_api_result("/lib/version/" + str(",".join(lib_ids)))
5353

5454
def get_outdated(self):
5555
outdated = []
@@ -75,8 +75,10 @@ def install(self, id_, version=None):
7575
if self.is_installed(id_):
7676
raise LibAlreadyInstalledError()
7777

78-
dlinfo = get_api_result("/lib/download/" + str(id_),
79-
dict(version=version) if version else None)
78+
dlinfo = util.get_api_result(
79+
"/lib/download/" + str(id_),
80+
dict(version=version) if version else None
81+
)
8082
dlpath = None
8183
tmplib_dir = join(self.lib_dir, str(id_))
8284
try:

0 commit comments

Comments
 (0)