NovaBryan/EVE_Dump
Log | Files | 📦 下载最新源码 (.zip) | Refs | README

__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