本文整理汇总了Python中profile.Profile.check_version方法的典型用法代码示例。如果您正苦于以下问题:Python Profile.check_version方法的具体用法?Python Profile.check_version怎么用?Python Profile.check_version使用的例子?那么恭喜您, 这里精选的方法代码示例或许可以为您提供帮助。您也可以进一步了解该方法所在类profile.Profile
的用法示例。
在下文中一共展示了Profile.check_version方法的1个代码示例,这些例子默认根据受欢迎程度排序。您可以为喜欢或者感觉有用的代码点赞,您的评价将有助于系统推荐出更棒的Python代码示例。
示例1: Installer
# 需要导入模块: from profile import Profile [as 别名]
# 或者: from profile.Profile import check_version [as 别名]
class Installer(object):
def __init__(self, package_dir):
self._get_url = {
'toolchain-icestorm': self.get_latest_icestorm,
'tool-scons': self.get_latest_scons
}
self._package_dir = package_dir
self._profile = Profile()
self._profile.load()
def install(self, tool):
if tool in self._get_url:
print('Install ' + tool)
if not isdir(self._package_dir):
makedirs(self._package_dir)
assert isdir(self._package_dir)
url = self._get_url[tool]()
try:
dlpath = None
dlpath = self.download(tool, url, self._package_dir)
if dlpath:
if isdir(join(self._package_dir, tool)):
shutil.rmtree(join(self._package_dir, tool))
assert isfile(dlpath)
self.unpack(dlpath, self._package_dir)
finally:
if dlpath:
remove(dlpath)
filename = splitext(splitext(basename(dlpath))[0])[0]
if tool == 'tool-scons':
rename(join(self._package_dir, filename),
join(self._package_dir, tool))
self._profile.packages[tool] = basename(dlpath)
self._profile.save()
def uninstall(self, tool):
if tool in self._get_url:
if isdir(join(self._package_dir, tool)):
print('Uninstall package {0}'.format(tool))
shutil.rmtree(join(self._package_dir, tool))
else:
print('Package {0} is not installed'.format(tool))
self._profile.remove(tool)
self._profile.save()
def get_latest_icestorm(self):
releases_url = 'https://api.github.com/repos/bqlabs/toolchain-icestorm/releases/latest'
response = urllib2.urlopen(releases_url)
packages = json.loads(response.read())
return packages['assets'][0]['browser_download_url']
def get_latest_scons(self):
return 'http://sourceforge.net/projects/scons/files/scons/2.4.1/scons-2.4.1.tar.gz'
def download(self, tool, url, dest_dir, sha1=None):
fd = FileDownloader(url, dest_dir)
if self._profile.check_version(tool, basename(fd.get_filepath())):
print('Download ' + basename(fd.get_filepath()))
fd.start()
fd.verify(sha1)
return fd.get_filepath()
else:
print('Package {0} is already the newest version'.format(tool))
return None
def unpack(self, pkgpath, dest_dir):
fu = FileUnpacker(pkgpath, dest_dir)
return fu.start()