8
8
from shutil import rmtree
9
9
from tempfile import gettempdir
10
10
11
- from platformio import telemetry
11
+ from platformio import telemetry , util
12
12
from platformio .downloader import FileDownloader
13
13
from platformio .exception import LibAlreadyInstalledError , LibNotInstalledError
14
14
from platformio .unpacker import FileUnpacker
15
- from platformio .util import get_api_result , get_lib_dir
16
15
17
16
18
17
class LibraryManager (object ):
19
18
20
19
CONFIG_NAME = ".library.json"
21
20
22
21
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 ()
24
23
25
24
@staticmethod
26
25
def download (url , dest_dir ):
@@ -33,6 +32,7 @@ def unpack(pkgpath, dest_dir):
33
32
fu = FileUnpacker (pkgpath , dest_dir )
34
33
return fu .start ()
35
34
35
+ @util .memoized
36
36
def get_installed (self ):
37
37
items = {}
38
38
if not isdir (self .lib_dir ):
@@ -49,7 +49,7 @@ def get_latest_versions(self):
49
49
lib_ids = [str (item ['id' ]) for item in self .get_installed ().values ()]
50
50
if not lib_ids :
51
51
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 )))
53
53
54
54
def get_outdated (self ):
55
55
outdated = []
@@ -75,8 +75,10 @@ def install(self, id_, version=None):
75
75
if self .is_installed (id_ ):
76
76
raise LibAlreadyInstalledError ()
77
77
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
+ )
80
82
dlpath = None
81
83
tmplib_dir = join (self .lib_dir , str (id_ ))
82
84
try :
0 commit comments