MCPcopy Index your code
hub / github.com/pyfa-org/Pyfa / run

Method run

service/update.py:46–92  ·  view source on GitHub ↗
(self)

Source from the content-addressed store, hash-verified

44 self.running = True
45
46 def run(self):
47 network = Network.getInstance()
48
49 try:
50 try:
51 response = network.get(
52 url='https://www.pyfa.io/update_check?pyfa_version={}&client_hash={}'.format(config.version, config.getClientSecret()),
53 type=network.UPDATE, timeout=5)
54 except (KeyboardInterrupt, SystemExit):
55 raise
56 except Exception as e:
57 response = network.get(
58 url='https://api.github.com/repos/pyfa-org/Pyfa/releases',
59 type=network.UPDATE, timeout=5)
60
61 jsonResponse = response.json()
62 jsonResponse.sort(
63 key=lambda x: calendar.timegm(dateutil.parser.parse(x['published_at']).utctimetuple()),
64 reverse=True
65 )
66
67 for release in jsonResponse[:5]:
68 rVersion = Version(release['tag_name'])
69 cVersion = Version(config.version)
70
71 # Suppress pre releases if we're not already on a pre-release (if we are, we want to know about new ones)
72 if not cVersion.is_prerelease and rVersion.is_prerelease and self.settings.get('prerelease'):
73 continue
74
75 # Handle use-case of updating to suppressed version
76 if self.settings.get('version') == 'v' + config.version:
77 self.settings.set('version', None)
78
79 # Suppress version
80 if release['tag_name'] == self.settings.get('version'):
81 break
82
83 if rVersion > cVersion:
84 wx.CallAfter(self.callback, release, rVersion)
85 break
86
87 except (KeyboardInterrupt, SystemExit):
88 raise
89 except Exception as e:
90 pyfalog.error("Caught exception in run")
91 pyfalog.error(e)
92 pass
93
94 @staticmethod
95 def versiontuple(v):

Callers

nothing calls this directly

Calls 4

getInstanceMethod · 0.45
getMethod · 0.45
sortMethod · 0.45
setMethod · 0.45

Tested by

no test coverage detected