Skip to content

Commit ff2a7db

Browse files
authored
Merge pull request #3067 from theotherjimmy/checkin-pack-index
Arm-Pack-Manager - Checkin pack index
2 parents 382cb9f + f812dee commit ff2a7db

File tree

6 files changed

+27
-22
lines changed

6 files changed

+27
-22
lines changed

requirements.txt

Lines changed: 0 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -9,7 +9,6 @@ requests
99
mbed-ls>=0.2.13
1010
mbed-host-tests>=1.1.2
1111
mbed-greentea>=0.2.24
12-
pyxdg>=0.25
1312
pycurl>=4
1413
beautifulsoup4>=4
1514
fuzzywuzzy>=0.11

tools/arm_pack_manager/__init__.py

Lines changed: 15 additions & 16 deletions
Original file line numberDiff line numberDiff line change
@@ -1,4 +1,3 @@
1-
from xdg.BaseDirectory import save_data_path
21
from pycurl import Curl
32
from bs4 import BeautifulSoup
43
from os.path import join, dirname, basename
@@ -13,9 +12,14 @@
1312
import argparse
1413
from json import dump, load
1514
from zipfile import ZipFile
15+
from tempfile import gettempdir
1616

1717
RootPackURL = "http://www.keil.com/pack/index.idx"
1818

19+
LocalPackDir = dirname(__file__)
20+
LocalPackIndex = join(LocalPackDir, "index.json")
21+
LocalPackAliases = join(LocalPackDir, "aliases.json")
22+
1923

2024
protocol_matcher = compile("\w*://")
2125
def strip_protocol(url) :
@@ -78,6 +82,7 @@ def __init__ (self, silent, no_timeouts) :
7882
self._aliases = {}
7983
self.urls = None
8084
self.no_timeouts = no_timeouts
85+
self.data_path = gettempdir()
8186

8287
def display_counter (self, message) :
8388
stdout.write("{} {}/{}\r".format(message, self.counter, self.total))
@@ -93,7 +98,7 @@ def cache_file (self, curl, url) :
9398
:rtype: None
9499
"""
95100
if not self.silent : print("Caching {}...".format(url))
96-
dest = join(save_data_path('arm-pack-manager'), strip_protocol(url))
101+
dest = join(self.data_path, strip_protocol(url))
97102
try :
98103
makedirs(dirname(dest))
99104
except OSError as exc :
@@ -288,7 +293,7 @@ def generate_index(self) :
288293
self._index = {}
289294
self.counter = 0
290295
do_queue(Reader, self._generate_index_helper, self.get_urls())
291-
with open(join(save_data_path('arm-pack-manager'), "index.json"), "wb+") as out:
296+
with open(LocalPackIndex, "wb+") as out:
292297
self._index["version"] = "0.1.0"
293298
dump(self._index, out)
294299
stdout.write("\n")
@@ -297,7 +302,7 @@ def generate_aliases(self) :
297302
self._aliases = {}
298303
self.counter = 0
299304
do_queue(Reader, self._generate_aliases_helper, self.get_urls())
300-
with open(join(save_data_path('arm-pack-manager'), "aliases.json"), "wb+") as out:
305+
with open(LocalPackAliases, "wb+") as out:
301306
dump(self._aliases, out)
302307
stdout.write("\n")
303308

@@ -335,11 +340,8 @@ def index(self) :
335340
336341
"""
337342
if not self._index :
338-
try :
339-
with open(join(save_data_path('arm-pack-manager'), "index.json")) as i :
340-
self._index = load(i)
341-
except IOError :
342-
self.generate_index()
343+
with open(LocalPackIndex) as i :
344+
self._index = load(i)
343345
return self._index
344346
@property
345347
def aliases(self) :
@@ -365,11 +367,8 @@ def aliases(self) :
365367
366368
"""
367369
if not self._aliases :
368-
try :
369-
with open(join(save_data_path('arm-pack-manager'), "aliases.json")) as i :
370-
self._aliases = load(i)
371-
except IOError :
372-
self.generate_aliases()
370+
with open(join(self.data_path, "aliases.json")) as i :
371+
self._aliases = load(i)
373372
return self._aliases
374373

375374
def cache_everything(self) :
@@ -426,7 +425,7 @@ def pdsc_from_cache(self, url) :
426425
:return: A parsed representation of the PDSC file.
427426
:rtype: BeautifulSoup
428427
"""
429-
dest = join(save_data_path('arm-pack-manager'), strip_protocol(url))
428+
dest = join(self.data_path, strip_protocol(url))
430429
with open(dest, "r") as fd :
431430
return BeautifulSoup(fd, "html.parser")
432431

@@ -440,7 +439,7 @@ def pack_from_cache(self, url) :
440439
:return: A parsed representation of the PACK file.
441440
:rtype: ZipFile
442441
"""
443-
return ZipFile(join(save_data_path('arm-pack-manager'),
442+
return ZipFile(join(self.data_path,
444443
strip_protocol(device['pack_file'])))
445444

446445
def gen_dict_from_cache() :

tools/arm_pack_manager/aliases.json

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1 @@
1+
{"nRF51 PCA10028": "nRF51422_xxAC", "SAM4L-EK": "ATSAM4LC4C", "NuTiny-SDK-M451": "M453VG6AE", "STM32L073Z-EVAL": "STM32L073VZ", "TLE9879 EvalKit": "TLE9879QXA40", "STM32F401C-Discovery": "STM32F401VC", "NuTiny-SDK-M051": "M0516LDE", "MCB11C14": "LPC11C14FBD48/301", "XMC4500 Relax Kit": "XMC4500-F100x1024", "TWR-K22F120M": "MK22FN512xxx12", "MCB1200": "LPC1227FBD64/301", "DB-MAX71637": "MAX71637", "XMC 2Go": "XMC1100-Q024x0064", "NUCLEO-L152RE": "STM32L152RE", "TWR-KV10Z32": "MKV10Z32xxx7", "EFM32ZG-STK3200": "EFM32ZG222F32", "FRDM-KW40Z": "MKW40Z160xxx4", "NuTiny-SDK-NM1200": "NM1200LBAE", "TWR-K70F120M": "MK70FN1M0xxx12", "MCBSTM32F400": "STM32F407IG", "SAML21-XPRO": "ATSAML21J18A", "AC33M4064/3064 MINI B/D": "AC33M4064", "STM32756G-EVAL": "STM32F756NGHx", "Apollo EVK": "Apollo 512 BGA", "NuTiny-SDK-NUC505": "NUC505YO13Y", "NuTiny-SDK-M058S": "M058SSAN", "TRK-KEA8": "SKEAZN8xxx4", "MCB1700": "LPC1758", "V2M-MPS2": "CMSDK_CM7", "MCB54110": "LPC54114J256BD64", "Z32F1280100KITG": "Z32F12811ARS", "NuTiny-SDK-NUC472": "NUC472HI8AE", "EFM32GG-DK3750": "EFM32GG990F1024", "MCBSTM32F200": "STM32F207IG", "EVAL-ADuCM322EBZ": "ADuCM322", "FRDM-KL25Z": "MKL25Z128xxx4", "SN32F707B Starter Kit Rev1_0": "SN32F70*B", "NuTiny-SDK-NANO103": "NANO103SD3AE", "MCBNUC1xx": "NUC140VE3AN", "Z32F0640100KITG": "Z32F06410AES", "LPCXpresso54114": "LPC54114J256BD64", "SAM3S-EK": "ATSAM3S4C", "SF2_DEV_KIT": "M2S050", "NuTiny-SDK-NANO100BN": "NANO130KE3BN", "NuTiny-SDK-Mini58": "Mini58LDE", "XMC1400 Boot Kit": "XMC1402-Q040x0128", "TRK-KEA64": "SKEAZN64xxx2", "XMC1200 Boot Kit": "XMC1201-T038x0200", "N5 Starter Kit": "nRF51422_xxAA", "EFM32HG-SLSTK3400A": "EFM32HG322F64", "ADSP-CM419F EZ-BOARD M4": "ADSP-CM419F-BCZ_M4", "XMC4700 Relax Kit": "XMC4700-F144x2048", "ADSP-CM419F EZ-BOARD M0": "ADSP-CM419F-BCZ_M0", "NuTiny-SDK-NUC200": "NUC220VE3AN", "FRDM-KE06Z": "MKE06Z128xxx4", "SF2_ADV_DEV_KIT": "M2S150", "NuTiny-SDK-NUC100": "NUC100VE3DN", "MCBTMPM360": "TMPM362F10FG", "NuTiny-SDK-NUC029AE": "NUC029FAE", "FRDM-K20D50M": "MK20DX128xxx5", "Core103R_Board": "MM32x103", "Koala EVM": "STM32F429II", "FRDM-KL43Z": "MKL43Z256xxx4", "nRF52 PCA10036": "nRF52832_xxAA", "TWR-KV11Z75M": "MKV11Z128xxx7", "LPCXpresso54102": "LPC54102J512BD64", "TWR-KM34Z50": "MKM34Z128xxx5", "STM32L-Discovery": "STM32L152RB", "nRF51 PCA20006": "nRF51822_xxaa", "TWR-KV46F150M": "MKV46F256xxx16", "SAM4L-XPRO": "ATSAM4LC4C", "EFM32WG-STK3800": "EFM32WG990F256", "MCIMX7D-SABRE": "MCIMX7D", "TWR-K65F180M": "MK65FN2M0xxx18", "EB_TMPM369FDFG": "TMPM369FDFG", "TS-R-IN32M3-EC": "R-IN32M3-EC", "ADSP-CM403F EZ-Board": "ADSP-CM403BSWZ-CF", "NUCLEO-F091RC": "STM32F091RC", "STM32F429I-Discovery": "STM32F429ZI", "XMC4300 Relax Kit": "XMC4300-F100x256", "MCB1313": "LPC1313FBD48", "SAMV71-XULTRA": "ATSAMV71Q21", "EVAL-ADuCM320EBZ": "ADuCM320", "TWR-KL43Z48M": "MKL43Z256xxx4", "STM32373C-EVAL": "STM32F373VC", "STM32F746G-Discovery": "STM32F746NGHx", "NuTiny-SDK-Mini51X": "Mini54XZAE", "LinkIt 2523 development board": "MT2523x", "nRF52 PCA10040": "nRF52832_xxAA", "MCBSTM32C": "STM32F107VC", "FRDM-KL03Z": "MKL03Z32xxx4", "MCBSTM32E": "STM32F103ZG", "IMX7-PHYBOARD-ZETA": "MCIMX7D", "SF2_EVAL_KIT": "M2S025", "AC33MA384A MINI B/D": "AC33MA384A", "SAML22-XPRO": "ATSAML22N18A", "XMC4800 Relax EtherCAT Kit": "XMC4800-F144x2048", "TRK-KEA128": "SKEAZ128xxx4", "SAM4S-EK": "SAM4S16C", "NuTiny-SDK-Mini51": "Mini54LDE", "TWR-K20D50M": "MK20DX128xxx5", "STM32F3-Discovery": "STM32F303VC", "LPCXpresso1125": "LPC1125JBD48/303", "STM32F4-Discovery": "STM32F407VG", "CMSIS_RTOS_Tutorial": "STM32F103RB", "SAM3X-EK": "ATSAM3X8H", "STM32303C-EVAL": "STM32F303VC", "SN32F760 Starter Kit Rev1_1": "SN32F76*", "TS-R-IN32M3-CEC": "R-IN32M3-EC", "ADSP-CM408F EZ-Board": "ADSP-CM408BSWZ-BF", "FRDM-KE04Z": "MKE04Z8xxx4", "NuTiny-SDK-NUC123": "NUC123SD4AN0", "TWR-K24F120M": "MK24FN256xxx12", "LPC4330-Xplorer": "LPC4330", "MCBTMPM330": "TMPM330FDFG", "NUCLEO-L476RG": "STM32L476RG", "Bulb Board": "S6E1A12B0A", "MCB1800": "LPC1850", "EFM32GG-STK3700": "EFM32GG990F1024", "FRDM-KL02Z": "MKL02Z32xxx4", "GD32150C-START": "GD32F150C8", "AC33GA256 MINI B/D": "AC33GA256", "TS-R-IN32M3-CL": "R-IN32M3-CL", "EVAL-ADuCM320iQSPZ": "ADuCM320i", "AC33M8128/6128 MINI B/D": "AC33M8128", "SAM4S-XPRO": "ATSAM4SD32C", "SAME70-XPLD": "ATSAME70Q21", "TWR-KM34Z50MV3": "MKM34Z128Axxx5", "XMC4500 CPU Board - General Purpose (CPU_45A)": "XMC4500-F144x1024", "NuTiny-SDK-NUC122": "NUC122SD2AN", "Z32F3840100KITG": "Z32F38412ALS", "LPC824 LPCXpresso": "LPC824M201JHI33", "EFM32TG-STK3300": "EFM32TG840F32", "STM32F030-Discovery": "STM32F030R8", "NUCLEO-F030R8": "STM32F030R8", "NuTiny-SDK-NUC131": "NUC131SD2AE", "SN32F760 Starter Kit": "SN32F769", "SF2_STARTER_KIT": "M2S010", "XMC1100 Boot Kit": "XMC1100-T038x0064", "TS-R-IN32M4-CL2": "R-IN32M4-CL2", "MCIMX6SX-SABRE": "MCIMX6SX", "SAM4C-EK": "ATSAM4C16C", "MCB1500": "LPC1549JBD100", "TWR-KW21D256": "MKW21D256xxx5", "STM32L476G-EVAL": "STM32L476ZG", "NuTiny-SDK-NUC029AN": "NUC029TAN", "STM32F051-Discovery": "STM32F051R8", "NUCLEO-L053R8": "STM32L053R8", "FRDM-K64F": "MK64FN1M0VLL12", "NuTiny-SDK-NUC240": "NUC240VE3AE", "DK-TM4C129x": "TM4C129XNCZAD", "NuTiny-SDK-Nano112": "NANO112VC2AN", "SAMD20-XPRO": "ATSAMD20J18", "TWR-KL28Z72M": "MKL28Z512xxx7", "SAM4E-EK": "SAM4E16C", "MCB1343": "LPC1343FBD48", "LinkIt 7687 development board": "MT7687F", "XMC4500 CPU Board - General Purpose (CPU_45B)": "XMC4500-E144x1024", "SAM3N-EK": "ATSAM3N4C", "NuTiny-SDK-M0518": "M0518SD2AE", "SAM3U-EK": "ATSAM3U4E", "SAMG55-XPRO": "ATSAMG55J19", "FRDM-KL82Z": "MKL81Z128xxx7", "XMC1300 Boot Kit": "XMC1302-T038x0200", "LPC1788-32 Developers Kit": "LPC1788", "MCBTMPM395": "TMPM395FWAXBG", "STM32F072-Discovery": "STM32F072RB", "BMSKTOPASM369": "TMPM369FDFG", "uVision Simulator": "ARMCM0", "NuTiny-SDK-NANO100AN": "NANO100VD3AN", "TWR-K60D100M": "MK60DN512xxx10", "TWR-K20D72M": "MK20DX256xxx7", "nRF51 PCA10031": "nRF51422_xxAC", "EK-TM4C1294XL": "TM4C1294NCPDT", "NUCLEO-F401RE": "STM32F401RE", "SK-FM3-176PMC-ETHERNET": "MB9BFD18T", "LPC4088-32 Developers Kit": "LPC4088FET208", "NUCLEO-F072RB": "STM32F072RB", "TLE984x Eval.Board": "TLE9844QX", "XMC4500 Relax Lite Kit": "XMC4500-F100x1024", "STM32L053-Discovery": "STM32L053C8", "LPCXpresso11U68": "LPC11U68JBD100", "XMC4400 CPU Board - General Purpose (CPU_44A)": "XMC4400-F100x512", "NUCLEO-F103RB": "STM32F103RB", "NUCLEO-F446RE": "STM32F446RE", "MCB9B500": "MB9BF506R", "LPC812 LPCXpresso": "LPC812M101JDH20", "TWR-KL82Z72M": "MKL82Z128xxx7", "SN32F100 Starter Kit": "SN32F10*", "NuTiny-SDK-M0519": "M0519VE3AE", "TWR-K64F120M": "MK64FN1M0xxx12", "MCB4300": "LPC4350", "XMC4200 CPU Board - Actuator (CPU_42A)": "XMC4200-F64x256", "EVAL-ADuCM360MKZ": "ADuCM360"}

tools/arm_pack_manager/index.json

Lines changed: 1 addition & 0 deletions
Large diffs are not rendered by default.

tools/export/cmsis/__init__.py

Lines changed: 0 additions & 5 deletions
Original file line numberDiff line numberDiff line change
@@ -6,8 +6,6 @@
66
import re
77
import json
88

9-
from xdg.BaseDirectory import save_data_path
10-
119
from tools.arm_pack_manager import Cache
1210
from tools.targets import TARGET_MAP
1311
from tools.export.exporters import Exporter, TargetNotSupportedException
@@ -34,9 +32,6 @@ class DeviceCMSIS():
3432
Encapsulates target information retrieved by arm-pack-manager"""
3533
def __init__(self, target):
3634
cache = Cache(True, False)
37-
data_path = join(save_data_path('arm-pack-manager'), "index.json")
38-
if not exists(data_path) or not self.check_version(data_path):
39-
cache.cache_descriptors()
4035

4136
t = TARGET_MAP[target]
4237
self.core = t.core

tools/project.py

Lines changed: 10 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -175,6 +175,11 @@ def main():
175175
default=[],
176176
help="Toolchain profile")
177177

178+
parser.add_argument("--update-packs",
179+
dest="update_packs",
180+
action="store_true",
181+
default=False)
182+
178183
options = parser.parse_args()
179184

180185
# Print available tests in order and exit
@@ -203,6 +208,11 @@ def main():
203208
raise
204209
exit(0)
205210

211+
if options.update_packs:
212+
from tools.arm_pack_manager import Cache
213+
cache = Cache(True, True)
214+
cache.cache_descriptors()
215+
206216
# Clean Export Directory
207217
if options.clean:
208218
if exists(EXPORT_DIR):

0 commit comments

Comments
 (0)