__init__.py (1723B)
1 #Embedded file name: C:\BuildAgent\work\20d73f1b24eed06e\eve\release\V24.01\packages\carbonversion\__init__.py 2 import logging 3 import os 4 import re 5 import blue 6 import json 7 VERSION_PATTERN = 'v(\\d+\\.\\d+\\.\\d+)' 8 LOGGER = logging.getLogger(__name__) 9 10 def get_carbon_version(file_name = 'carbon.json'): 11 if not blue.pyos.packaged: 12 root = blue.paths.ResolvePath(u'root:/..') 13 else: 14 root = blue.paths.ResolvePath(u'root:/') 15 return CarbonVersion(blue.paths.ResolvePath(u'{}/{}'.format(root, file_name))) 16 17 18 class CarbonVersion: 19 20 def __init__(self, file_name): 21 self._libraries = {} 22 self._version = '0.0.0' 23 if os.path.exists(file_name): 24 with open(file_name, 'r') as f: 25 self.data = json.load(f) 26 self._version = self.data['version'] 27 for lib_name, path in self.data['libraries'].items(): 28 path = path.strip() 29 if lib_name == 'version': 30 self._version = path.strip() 31 elif path.startswith('github.com'): 32 version = path.strip().split('/')[-1] 33 self._libraries[lib_name] = version 34 35 def get_version(self): 36 return self._version 37 38 def get_library_version(self, library): 39 tag = self._libraries.get(library) 40 if tag is None: 41 return '' 42 else: 43 match = re.search(VERSION_PATTERN, tag) 44 if match: 45 return match.group(0) 46 return '' 47 48 def get_library_tag(self, library): 49 return self._libraries.get(library) 50 51 def get_libraries(self): 52 return self._libraries.keys() 53 54 def get_json_data(self): 55 return self.data