Explicitly request raising an error when failing to check api version

This commit is contained in:
allegroai 2023-11-07 15:11:06 +02:00
parent f67ce9c04b
commit 3d6ab41a7a
5 changed files with 10 additions and 10 deletions

View File

@ -34,7 +34,7 @@ class ApiServiceProxy(object):
# get the most advanced service version that supports our api # get the most advanced service version that supports our api
version = [ version = [
str(v) for v in ApiServiceProxy._available_versions str(v) for v in ApiServiceProxy._available_versions
if Session.check_min_api_version(v, raise_error=False) if Session.check_min_api_version(v)
][-1] ][-1]
Session.api_version = version Session.api_version = version
self.__dict__["__wrapped_version__"] = Session.api_version self.__dict__["__wrapped_version__"] = Session.api_version

View File

@ -737,7 +737,7 @@ class Session(TokenManager):
return urlunparse(parsed) return urlunparse(parsed)
@classmethod @classmethod
def check_min_api_version(cls, min_api_version, raise_error=True): def check_min_api_version(cls, min_api_version, raise_error=False):
""" """
Return True if Session.api_version is greater or equal >= to min_api_version Return True if Session.api_version is greater or equal >= to min_api_version
""" """
@ -774,12 +774,12 @@ class Session(TokenManager):
return cls._version_tuple(cls.api_version) >= cls._version_tuple(str(min_api_version)) return cls._version_tuple(cls.api_version) >= cls._version_tuple(str(min_api_version))
@classmethod @classmethod
def check_min_api_server_version(cls, min_api_version): def check_min_api_server_version(cls, min_api_version, raise_error=False):
""" """
Return True if Session.max_api_version is greater or equal >= to min_api_version Return True if Session.max_api_version is greater or equal >= to min_api_version
Notice this is the api version server reported, not the current SDK max supported api version Notice this is the api version server reported, not the current SDK max supported api version
""" """
if cls.check_min_api_version(min_api_version): if cls.check_min_api_version(min_api_version, raise_error=raise_error):
return True return True
return cls._version_tuple(cls.max_api_version) >= cls._version_tuple(str(min_api_version)) return cls._version_tuple(cls.max_api_version) >= cls._version_tuple(str(min_api_version))

View File

@ -79,7 +79,7 @@ class Model(IdObjectBase, AsyncManagerMixin, _StorageUriMixin):
self.reload() self.reload()
def archive(self): def archive(self):
if Session.check_min_api_server_version("2.13"): if Session.check_min_api_server_version("2.13", raise_error=True):
self.send(models.ArchiveManyRequest(ids=[self.id])) self.send(models.ArchiveManyRequest(ids=[self.id]))
self.reload() self.reload()
else: else:
@ -90,7 +90,7 @@ class Model(IdObjectBase, AsyncManagerMixin, _StorageUriMixin):
) )
def unarchive(self): def unarchive(self):
if Session.check_min_api_server_version("2.13"): if Session.check_min_api_server_version("2.13", raise_error=True):
self.send(models.UnarchiveManyRequest(ids=[self.id])) self.send(models.UnarchiveManyRequest(ids=[self.id]))
self.reload() self.reload()
else: else:

View File

@ -1346,7 +1346,7 @@ class Task(IdObjectBase, AccessMixin, SetupUploadMixin):
return params.get(name, default) return params.get(name, default)
def delete_parameter(self, name, force=False): def delete_parameter(self, name, force=False):
# type: (str) -> bool # type: (str, bool) -> bool
""" """
Delete a parameter by its full name Section/name. Delete a parameter by its full name Section/name.

View File

@ -1241,7 +1241,7 @@ class Dataset(object):
:return: Newly created Dataset object :return: Newly created Dataset object
""" """
if not Dataset.is_offline() and not Session.check_min_api_server_version("2.13"): if not Dataset.is_offline() and not Session.check_min_api_server_version("2.13", raise_error=True):
raise NotImplementedError("Datasets are not supported with your current ClearML server version. Please update your server.") raise NotImplementedError("Datasets are not supported with your current ClearML server version. Please update your server.")
parent_datasets = [cls.get(dataset_id=p) if not isinstance(p, Dataset) else p for p in (parent_datasets or [])] parent_datasets = [cls.get(dataset_id=p) if not isinstance(p, Dataset) else p for p in (parent_datasets or [])]
@ -1531,7 +1531,7 @@ class Dataset(object):
""" """
if Dataset.is_offline(): if Dataset.is_offline():
raise ValueError("Cannot rename dataset in offline mode") raise ValueError("Cannot rename dataset in offline mode")
if not bool(Session.check_min_api_server_version(cls.__min_api_version)): if not bool(Session.check_min_api_server_version(cls.__min_api_version, raise_error=True)):
LoggerRoot.get_base_logger().warning( LoggerRoot.get_base_logger().warning(
"Could not rename dataset because API version < {}".format(cls.__min_api_version) "Could not rename dataset because API version < {}".format(cls.__min_api_version)
) )
@ -1578,7 +1578,7 @@ class Dataset(object):
""" """
if cls.is_offline(): if cls.is_offline():
raise ValueError("Cannot move dataset project in offlime mode") raise ValueError("Cannot move dataset project in offlime mode")
if not bool(Session.check_min_api_server_version(cls.__min_api_version)): if not bool(Session.check_min_api_server_version(cls.__min_api_version, raise_error=True)):
LoggerRoot.get_base_logger().warning( LoggerRoot.get_base_logger().warning(
"Could not move dataset to another project because API version < {}".format(cls.__min_api_version) "Could not move dataset to another project because API version < {}".format(cls.__min_api_version)
) )