from __future__ import annotations
from typing import Optional, List
from ._client_factory import create_client_from_token
[docs]def get_models(
url: str,
token: str,
auth_type: str = None,
**kwargs
) -> List[dict]:
"""Gets the list of the models in the system.
:param url: The URL of the server. Must be valid
:param token: The token to authenticate
:param auth_type: The type of the authentication,
:func:`get_default_auth_type
<devo_ml.modelmanager.auth.get_default_auth_type>`
is used if it is not provided
:param kwargs: Options to the underlying requests
:return: The list of the models
"""
return create_client_from_token(
url,
token,
auth_type=auth_type,
**kwargs
).get_models()
[docs]def get_model(
url: str,
token: str,
name: str,
auth_type: str = None,
download_path: str = None,
**kwargs
) -> dict:
"""Gets a model by its name.
:param url: The URL of the server. Must be valid
:param token: The token to authenticate
:param name: The name of the model
:param auth_type: The type of the authentication,
:func:`get_default_auth_type
<devo_ml.modelmanager.auth.get_default_auth_type>`
is used if it is not provided
:param download_path:
:param kwargs: Options to the underlying requests
:raises ModelNotFound: If the model doesn't exist
:return: The model data
"""
return create_client_from_token(
url,
token,
auth_type=auth_type,
download_path=download_path,
**kwargs
).get_model(name, download_file=bool(download_path))
[docs]def find_model(
url: str,
token: str,
name: str,
auth_type: str = None,
download_path: str = None,
**kwargs
) -> Optional[dict]:
"""Finds a model by its name.
:param url: The URL of the server. Must be valid
:param token: The token to authenticate
:param name: The name of the model
:param auth_type: The type of the authentication,
:func:`get_default_auth_type
<devo_ml.modelmanager.auth.get_default_auth_type>`
is used if it is not provided
:param download_path:
:param kwargs: Options to the underlying requests
:return: The model data or nothing if the model doesn't exist
"""
return create_client_from_token(
url,
token,
auth_type=auth_type,
download_path=download_path,
**kwargs
).find_model(name, download_file=bool(download_path))
[docs]def add_model(
url: str,
token: str,
name: str,
engine: str,
model_file: str,
description: str = None,
auth_type: str = None,
force: bool = None,
**kwargs
) -> None:
"""Adds a model.
:param url: The URL of the server. Must be valid
:param token: The token to authenticate
:param name: The name of the model
:param engine: The engine of the model
:param model_file: The path of the file of the model
:param description: The description of the model
:param auth_type: The type of the authentication,
:func:`get_default_auth_type
<devo_ml.modelmanager.auth.get_default_auth_type>`
is used if it is not provided
:param force: Whether to override the model if already exist
:param kwargs: Options to the underlying requests
:raises ModelAlreadyExists: If the model already exists and not force
"""
return create_client_from_token(
url,
token,
auth_type=auth_type,
**kwargs
).add_model(name, engine, model_file, description=description, force=force)