From 0be981fbc1d832f0ff99aa813652c75674d5e70a Mon Sep 17 00:00:00 2001 From: allegroai <> Date: Sat, 21 Dec 2019 18:28:10 +0200 Subject: [PATCH] Fix check_min_api_version to use a default session if none was created --- trains/backend_api/session/session.py | 11 +++++++++++ 1 file changed, 11 insertions(+) diff --git a/trains/backend_api/session/session.py b/trains/backend_api/session/session.py index 1bb690af..c4686fd3 100644 --- a/trains/backend_api/session/session.py +++ b/trains/backend_api/session/session.py @@ -41,6 +41,7 @@ class Session(TokenManager): _session_timeout = (10.0, 300.) _write_session_data_size = 15000 _write_session_timeout = (300.0, 300.) + _sessions_created = 0 api_version = '2.1' default_host = "https://demoapi.trains.allegro.ai" @@ -158,6 +159,8 @@ class Session(TokenManager): # notice: this is across the board warning omission urllib_log_warning_setup(total_retries=http_retries_config.get('total', 0), display_warning_after=3) + self.__class__._sessions_created += 1 + def _send_request( self, service, @@ -493,6 +496,14 @@ class Session(TokenManager): def version_tuple(v): v = tuple(map(int, (v.split(".")))) return v + (0,) * max(0, 3 - len(v)) + + # If no session was created, create a default one, in order to get the backend api version. + if cls._sessions_created <= 0: + try: + dummy = cls() + except Exception: + pass + return version_tuple(cls.api_version) >= version_tuple(str(min_api_version)) def _do_refresh_token(self, old_token, exp=None):