Add packaging requirement, and use it's PEP 440 version parsing for version comparisons.

This commit is contained in:
blitzmann
2018-02-10 00:59:25 -05:00
parent 9c355d8f96
commit 50dd74dbe8
4 changed files with 19 additions and 27 deletions

View File

@@ -30,6 +30,8 @@ import config
from service.network import Network
from service.settings import UpdateSettings
from logbook import Logger
from packaging.version import Version
pyfalog = Logger(__name__)
@@ -46,7 +48,7 @@ class CheckUpdateThread(threading.Thread):
network = Network.getInstance()
try:
response = network.request('https://api.github.com/repos/pyfa-org/Pyfa/releases', network.UPDATE)
response = network.request('https://api.github.com/repos/blitzmann/Pyfa/releases', network.UPDATE)
jsonResponse = json.loads(response.read())
jsonResponse.sort(
key=lambda x: calendar.timegm(dateutil.parser.parse(x['published_at']).utctimetuple()),
@@ -54,8 +56,11 @@ class CheckUpdateThread(threading.Thread):
)
for release in jsonResponse:
rVersion = Version(release['tag_name'])
cVersion = Version(config.version)
# Suppress pre releases
if release['prerelease'] and self.settings.get('prerelease'):
if rVersion.is_prerelease and self.settings.get('prerelease'):
continue
# Handle use-case of updating to suppressed version
@@ -66,24 +71,9 @@ class CheckUpdateThread(threading.Thread):
if release['tag_name'] == self.settings.get('version'):
break
# Set the release version that we will be comparing with.
if release['prerelease']:
rVersion = release['tag_name'].replace('singularity-', '', 1)
else:
rVersion = release['tag_name'].replace('v', '', 1)
if rVersion > cVersion:
wx.CallAfter(self.callback, release, rVersion)
if config.tag is 'git' and \
not release['prerelease'] and \
self.versiontuple(rVersion) >= self.versiontuple(config.version):
wx.CallAfter(self.callback, release) # git (dev/Singularity) -> Stable
elif config.expansionName is not "Singularity":
if release['prerelease']:
wx.CallAfter(self.callback, release) # Stable -> Singularity
elif self.versiontuple(rVersion) > self.versiontuple(config.version):
wx.CallAfter(self.callback, release) # Stable -> Stable
else:
if release['prerelease'] and rVersion > config.expansionVersion:
wx.CallAfter(self.callback, release) # Singularity -> Singularity
break
except Exception as e:
pyfalog.error("Caught exception in run")