bailo.core package
The Bailo core package contains support with one to one endpoints with Bailo. It is recommended to use the helper package for most use
- class bailo.core.agent.Agent(verify: str | bool = True)[source]
Bases:
objectBase API Agent for talking with Bailo.
Wraps each request in an exception handler that maps API errors to Python Bailo errors, among status codes less than 400.
- __request(method, *args, **kwargs)
Private method. Make an HTTP request with error handling.
- Parameters:
method – HTTP method name (e.g. ‘GET’, ‘POST’ etc.).
*args –
Positional arguments to requests.request.
**kwargs –
Keyword arguments to requests.request.
- Raises:
BailoException – If Bailo instance returns an error.
ResponseException – Non-JSON error responses.
- Returns:
Response object.
- __init__(verify: str | bool = True)[source]
Initiate a standard agent.
- Parameters:
verify – Path to certificate authority file, or bool for SSL verification.
- delete(*args, **kwargs)[source]
Make a DELETE request. See
__request()for parameters.- Returns:
Response object.
- get(*args, **kwargs)[source]
Make a GET request. See
__request()for parameters.- Returns:
Response object.
- patch(*args, **kwargs)[source]
Make a PATCH request. See
__request()for parameters.- Returns:
Response object.
- post(*args, **kwargs)[source]
Make a POST request. See :func:`__request for parameters.
- Returns:
Response object.
- push(*args, **kwargs)[source]
Make a PUSH request. See :func:`__request for parameters.
- Returns:
Response object.
- put(*args, **kwargs)[source]
Make a PUT request. See
__request()for parameters.- Returns:
Response object.
- class bailo.core.agent.PkiAgent(cert: str, key: str, auth: str, **kwargs)[source]
Bases:
Agent- __init__(cert: str, key: str, auth: str, **kwargs)[source]
Initiate an agent for PKI authentication.
- Parameters:
cert – Path to cert file
key – Path to key file
auth – Path to certificate authority file
**kwargs –
Kwargs passed to the super Agent class __init__
- delete(*args, **kwargs)[source]
Make a DELETE request. See
__request()for parameters.- Returns:
Response object.
- get(*args, **kwargs)[source]
Make a GET request. See
__request()for parameters.- Returns:
Response object.
- patch(*args, **kwargs)[source]
Make a PATCH request. See
__request()for parameters.- Returns:
Response object.
- class bailo.core.agent.TokenAgent(access_key: str | None = None, secret_key: str | None = None, **kwargs)[source]
Bases:
Agent- __init__(access_key: str | None = None, secret_key: str | None = None, **kwargs)[source]
Initiate an agent for API token authentication.
- Parameters:
access_key – Access key
secret_key – Secret key
**kwargs –
Kwargs passed to the super Agent class __init__
- delete(*args, **kwargs)[source]
Make a DELETE request. See
__request()for parameters.- Returns:
Response object.
- get(*args, **kwargs)[source]
Make a GET request. See
__request()for parameters.- Returns:
Response object.
- patch(*args, **kwargs)[source]
Make a PATCH request. See
__request()for parameters.- Returns:
Response object.
- class bailo.core.client.Client(url: str, agent: ~bailo.core.agent.Agent = <bailo.core.agent.Agent object>)[source]
Bases:
objectCreate a Client object that can be used to talk to the website.
- Parameters:
url – Url of bailo website
agent – An agent object to handle requests
- __init__(url: str, agent: ~bailo.core.agent.Agent = <bailo.core.agent.Agent object>)[source]
Initialise a Client.
- Parameters:
url – URL of the Bailo instance website.
agent – An agent object to handle requests, defaults to Agent().
- delete_access_request(model_id: str, access_request_id: str)[source]
Delete a specific access request associated with a model.
- Parameters:
model_id – Unique model ID
access_request_id – Unique access request ID
- Returns:
JSON response object
- delete_file(model_id: str, file_id: str)[source]
Delete a specific file associated with a model.
- Parameters:
model_id – Unique model ID
file_id – Unique file ID
- Returns:
JSON response object
- delete_model(model_id: str)[source]
Delete a specific model and all associated artefacts.
- Parameters:
model_id – Unique model ID
- Returns:
JSON response object
- delete_release(model_id: str, release_version: str)[source]
Delete a specific model release.
- Parameters:
model_id – Unique model ID
release_version – Release version
- Returns:
JSON response object
- get_access_request(model_id: str, access_request_id: str)[source]
Retrieve a specific access request given its unique ID.
- Parameters:
model_id – Unique model ID
access_request_id – Unique access request ID
- Returns:
JSON response object
- get_access_requests(model_id: str)[source]
Retrieve all access requests given a specific model.
- Parameters:
model_id – Unique model ID
access_request_id – Unique access request ID
- Returns:
JSON response object
- get_all_images(model_id: str)[source]
Get all images.
- Parameters:
model_id – A unique model ID
- Returns:
JSON response object
- get_all_releases(model_id: str)[source]
Get all releases for a model.
- Parameters:
model_id – Unique model ID
- Returns:
JSON response object
- get_all_schemas(kind: SchemaKind | None = None)[source]
Get all schemas.
- Parameters:
kind – Enum to define schema kind (e.g. Model or AccessRequest), defaults to None
- Returns:
JSON response object
- get_download_by_filename(model_id: str, semver: str, filename: str)[source]
Download a specific file.
- Parameters:
model_id – Unique model ID
semver – Semver of the release
filename – The filename trying to download from
- Returns:
The filename
- get_download_file(model_id: str, file_id: str)[source]
Download a specific file by its id.
- Parameters:
model_id – Unique model ID
file_id – Unique file ID
- Returns:
The unique file ID
- get_files(model_id: str)[source]
Get files for a model.
- Parameters:
model_id – Unique model ID
- Returns:
JSON response object
- get_model(model_id: str)[source]
Retrieve a specific model using its unique ID.
- Parameters:
model_id – Unique model ID
- Returns:
JSON response object
- get_model_card(model_id: str, version: str, mirrored: bool = False)[source]
Retrieve a specific model card, using the unique model ID and version.
- Parameters:
model_id – Unique model ID
version – Model card version
mirrored – Whether to get the read only model card
- Returns:
JSON response object
- get_model_roles(model_id: str)[source]
Get roles for a model.
- Parameters:
model_id – Unique model ID
- Returns:
JSON response object
- get_models(task: str | None = None, libraries: list[str] | None = None, filters: list[str] | None = None, search: str = '', kind: EntryKind | None = None, organisations: list[str] | None = None, states: list[str] | None = None, allow_templating: bool | None = None, schema_id: str | None = None, admin_access: bool | None = None, peers: list[str] | None = None, title_only: bool | None = None)[source]
Search for models using a combination of structured filters and free-text search.
Calls /api/v2/models/search and returns a list of entry summaries visible to the current user. Results may include both local models and, if requested, models returned from configured peers. Any peer or local search errors are included alongside results.
- Parameters:
task – Entry task (e.g. image classification), defaults to None
libraries – Entry library (e.g. TensorFlow), defaults to None
filters – List of collaborator role filters. Special value “mine” restricts results to models where the current user is a collaborator. Otherwise, values are treated as collaborator roles, defaults to None
search – Free-text search string. Always performs a partial, case-insensitive match against the entry name. If title_only is False, a full-text search across entry content is also performed, defaults to “”
kind – Entry kind to filter by (e.g. EntryKind.MODEL), defaults to None
organisations – List of organisation identifiers to restrict results, defaults to None
states – List of entry lifecycle states to restrict results, defaults to None
allow_templating – If True, restricts results to models with templating enabled, defaults to None
schema_id – Schema ID to restrict results to models using that schema, defaults to None
admin_access – If True, returns models requiring admin access. The caller must have the Admin role or the request will be rejected by the backend, defaults to None
peers – List of peer identifiers to include remote search results from, defaults to None
title_only – If True, limits searching to entry titles only and disables full-text search, defaults to None
- Returns:
JSON response object
- get_release(model_id: str, release_version: str)[source]
Get a specific model release.
- Parameters:
model_id – Unique model ID
release_version – Release version
- Returns:
JSON response object
- get_reviews(active: bool, model_id: str | None = None, version: str | None = None)[source]
Get all reviews within given parameters.
- Parameters:
active – Boolean representing status of review
model_id – Unique model ID, defaults to None
version – Model version, defaults to None
- Returns:
JSON response object.
- get_schema(schema_id: str)[source]
Retrieve a specific schema using its unique ID.
- Parameters:
schema_id – Unique schema ID
- Returns:
JSON response object.
- model_card_from_schema(model_id: str, schema_id: str)[source]
Create a model card using a given schema ID.
- Parameters:
model_id – Unique model ID
schema_id – Unique model card schema ID
- Returns:
JSON response object
- model_card_from_template(model_id: str, template_id: str | None)[source]
Create a model card using a given template ID (previously created models, model ID) :param model_id: Unique model ID :param template_id Previous model’s unique ID to be used as template for new model card :return: JSON response object
- patch_access_request(model_id: str, access_request_id: str, metadata: Any, schema_id: str | None = None)[source]
Update an access request given its unique ID.
- Parameters:
model_id – Unique model ID
access_request_id – Unique access request ID
- Metadata:
Metadata object, defined by access request schemas
- Returns:
JSON response object
- patch_model(model_id: str, name: str | None = None, kind: str | None = None, description: str | None = None, visibility: str | None = None, organisation: str | None = None, state: str | None = None, tags: list[str] | None = None, collaborators: list[CollaboratorEntry] | None = None)[source]
Update a specific model using its unique ID.
- Parameters:
model_id – Unique model ID
name – Name of the model, defaults to None
kind – Either a Model, Mirrored Model or a Datacard, defaults to None
description – Description of the model, defaults to None
visibility – Enum to define model visibility (e.g public or private), defaults to None
organisation – Organisation responsible for the model, defaults to None
state – Development readiness of the model, defaults to None
tags – Tags to assign to the model, defaults to None
collaborators – List of CollaboratorEntry to define who the model’s collaborators (a.k.a. model access) are, defaults to None
- Returns:
JSON response object
- post_access_request(model_id: str, metadata: Any, schema_id: str)[source]
Create an access request given a model ID.
- Parameters:
model_id – Unique model ID
metadata – Metadata object, defined by access request schema
schema_id – Unique schema ID
- Returns:
JSON response object
- post_access_request_review(model_id: str, access_request_id: str, role: str, decision: str, comment: str | None = None)[source]
Create a review for a release.
- Parameters:
model_id – A unique model ID
access_request_id – Unique access request ID
role – The role of the user making the review
decision – Either approve or request changes
comment – A comment to go with the review
- post_model(name: str, kind: EntryKind, description: str, sourceModelId: str | None = None, visibility: ModelVisibility | None = None, organisation: str | None = None, state: str | None = None, tags: list[str] | None = None, collaborators: list[CollaboratorEntry] | None = None)[source]
Create a model.
- Parameters:
name – Name of the model
kind – Either a Model, Mirrored Model or a Datacard
description – Description of the model
sourceModelId – Used for syncing a mirrored model to its source model
visibility – Enum to define model visibility (e.g public or private), defaults to None
organisation – Organisation responsible for the model, defaults to None
state – Development readiness of the model, defaults to None
tags – Tags to assign to the model, defaults to None
collaborators – List of CollaboratorEntry to define who the model’s collaborators (a.k.a. model access) are, defaults to None
- Returns:
JSON response object
- post_release(model_id: str, release_version: str, notes: str, file_ids: list[str], images: list[str], model_card_version: int | None = None, minor: bool | None = False, draft: bool | None = False)[source]
Create a new model release.
- Parameters:
model_id – Unique model ID
model_card_version – Model card version
release_version – Release version
notes – Notes on release
file_ids – Files for release
images – Images for release
minor – Signifies a minor release, defaults to False
draft – Signifies a draft release, defaults to False
- Returns:
JSON response object
- post_release_review(model_id: str, version: str, role: str, decision: str, comment: str | None = None)[source]
Create a review for a release.
- Parameters:
model_id – A unique model ID
version – Semver of the release
role – The role of the user making the review
decision – Either approve or request changes
comment – A comment to go with the review
- post_schema(schema_id: str, name: str, description: str, kind: SchemaKind, json_schema: dict[str, Any], review_roles: list[str])[source]
Create a schema.
- Parameters:
schema_id – Unique schema ID
name – Name of the schema
description – Description for the schema
kind – Enum to define schema kind (e.g. Model or AccessRequest)
json_schema – JSON schema
review_roles – List made up of the “shortName” property from a Review Role object
- Returns:
JSON response object
- put_file_scan(model_id: str, file_id: str)[source]
Manually re-request a new antivirus scan for a file.
- Parameters:
model_id – Unique model ID
file_id – Unique file ID
- Returns:
JSON response object
- put_model_card(model_id: str, metadata: Any)[source]
Update the latest model card, using the unique model ID.
- Parameters:
model_id – Unique model ID
metadata – Metadata object, defined by model card schema
- Returns:
JSON response object
- put_release(model_id: str, model_card_version: int, release_version: str, notes: str, draft: bool, file_ids: list[str], images: list[str])[source]
Create a new model release.
- Parameters:
model_id – Unique model ID
model_card_version – Model card version
release_version – Release version
notes – Notes on release
file_ids – Files for release
images – Images for release
minor – Signifies a minor release, defaults to False
draft – Signifies a draft release, defaults to False
- Returns:
JSON response object
- class bailo.core.enums.CollaboratorEntry(entity: str, roles: list[Role | str])[source]
A set of roles linked to a given entity (a.k.a. user).
- class bailo.core.enums.EntryKind(*values)[source]
The type of model.
- DATACARD = 'data-card'
- MIRRORED_MODEL = 'mirrored-model'
- MODEL = 'model'
- class bailo.core.enums.MinimalSchema(*values)[source]
A minimal schema.
- ACCESS_REQUEST = 'minimal-access-request-general-v10'
- DATACARD = 'minimal-data-card-v10'
- MODEL = 'minimal-general-v10'
- class bailo.core.enums.ModelVisibility(*values)[source]
Whether a model is publicly visible or not.
- PRIVATE = 'private'
- PUBLIC = 'public'
- class bailo.core.enums.Role(*values)[source]
A reviewing role.
- CONSUMER = 'consumer'
- CONTRIBUTOR = 'contributor'
- OWNER = 'owner'
- class bailo.core.enums.SchemaKind(*values)[source]
A type of schema.
- ACCESS_REQUEST = 'accessRequest'
- MODEL = 'model'