mirror of
https://github.com/clearml/clearml
synced 2025-06-23 01:55:38 +00:00
Check for updates based on session version
This commit is contained in:
parent
b9f5cdf8bf
commit
13ce783fa3
@ -51,6 +51,8 @@ class Session(TokenManager):
|
||||
_sessions_created = 0
|
||||
_ssl_error_count_verbosity = 2
|
||||
|
||||
_client = [(__package__.partition(".")[0], __version__)]
|
||||
|
||||
api_version = '2.1'
|
||||
default_host = "https://demoapi.trains.allegro.ai"
|
||||
default_web = "https://demoapp.trains.allegro.ai"
|
||||
@ -91,7 +93,6 @@ class Session(TokenManager):
|
||||
logger=None,
|
||||
verbose=None,
|
||||
initialize_logging=True,
|
||||
client=None,
|
||||
config=None,
|
||||
http_retries_config=None,
|
||||
**kwargs
|
||||
@ -150,7 +151,7 @@ class Session(TokenManager):
|
||||
if not self.__max_req_size:
|
||||
raise ValueError("missing max request size")
|
||||
|
||||
self.client = client or "api-{}".format(__version__)
|
||||
self.client = ", ".join("{}-{}".format(*x) for x in self._client)
|
||||
|
||||
self.refresh_token()
|
||||
|
||||
|
@ -97,7 +97,6 @@ class InterfaceBase(SessionInterface):
|
||||
if not InterfaceBase._default_session:
|
||||
InterfaceBase._default_session = Session(
|
||||
initialize_logging=False,
|
||||
client='sdk-%s' % __version__,
|
||||
config=config_obj,
|
||||
api_key=ENV_ACCESS_KEY.get(),
|
||||
secret_key=ENV_SECRET_KEY.get(),
|
||||
|
@ -201,8 +201,8 @@ class Task(IdObjectBase, AccessMixin, SetupUploadMixin):
|
||||
if not latest_version[1]:
|
||||
sep = os.linesep
|
||||
self.get_logger().report_text(
|
||||
'TRAINS new package available: UPGRADE to v{} is recommended!\nRelease Notes:\n{}'.format(
|
||||
latest_version[0], sep.join(latest_version[2])),
|
||||
'{} new package available: UPGRADE to v{} is recommended!\nRelease Notes:\n{}'.format(
|
||||
Session._client[0][0].upper(), latest_version[0], sep.join(latest_version[2])),
|
||||
)
|
||||
else:
|
||||
self.get_logger().report_text(
|
||||
|
@ -3,7 +3,6 @@ from __future__ import absolute_import, division, print_function
|
||||
import collections
|
||||
import json
|
||||
import re
|
||||
import threading
|
||||
|
||||
import requests
|
||||
import six
|
||||
@ -12,6 +11,8 @@ if six.PY3:
|
||||
else:
|
||||
inf = float('inf')
|
||||
|
||||
from ..backend_api.session import Session
|
||||
|
||||
|
||||
class InvalidVersion(ValueError):
|
||||
"""
|
||||
@ -314,23 +315,31 @@ class CheckPackageUpdates(object):
|
||||
|
||||
# noinspection PyBroadException
|
||||
try:
|
||||
from ..version import __version__
|
||||
cls._package_version_checked = True
|
||||
cur_version = Version(__version__)
|
||||
update_server_releases = requests.get('https://updates.trains.allegro.ai/updates',
|
||||
data=json.dumps({"versions": {"trains": str(cur_version)}}),
|
||||
timeout=3.0)
|
||||
client, version = Session._client[0]
|
||||
version = Version(version)
|
||||
|
||||
update_server_releases = requests.get(
|
||||
'https://updates.trains.allegro.ai/updates',
|
||||
json={"versions": {c: str(v) for c, v in Session._client}},
|
||||
timeout=3.0
|
||||
)
|
||||
|
||||
if update_server_releases.ok:
|
||||
update_server_releases = update_server_releases.json()
|
||||
else:
|
||||
return None
|
||||
trains_answer = update_server_releases.get("trains", {})
|
||||
latest_version = Version(trains_answer.get("version"))
|
||||
|
||||
if cur_version >= latest_version:
|
||||
client_answer = update_server_releases.get(client, {})
|
||||
if "version" not in client_answer:
|
||||
return None
|
||||
not_patch_upgrade = latest_version.release[:2] == cur_version.release[:2]
|
||||
return str(latest_version), not_patch_upgrade, trains_answer.get("description").split("\r\n")
|
||||
|
||||
latest_version = Version(client_answer["version"])
|
||||
|
||||
if version >= latest_version:
|
||||
return None
|
||||
not_patch_upgrade = latest_version.release[:2] == version.release[:2]
|
||||
return str(latest_version), not_patch_upgrade, client_answer.get("description").split("\r\n")
|
||||
except Exception:
|
||||
return None
|
||||
|
||||
|
Loading…
Reference in New Issue
Block a user