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 uses
- class bailo.core.agent.Agent(verify=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.
- Parameters:
verify (str | bool)
- __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=True)[source]
Initiate a standard agent.
- Parameters:
verify (str | bool) – Path to certificate authority file, or bool for SSL verification.
- get(*args, **kwargs)[source]
Make a GET request. See
__request()for parameters.- Returns:
Response object.
- post(*args, **kwargs)[source]
Make a POST request. See :func:`__request for parameters.
- Returns:
Response object.
- patch(*args, **kwargs)[source]
Make a PATCH request. See
__request()for parameters.- Returns:
Response object.
- delete(*args, **kwargs)[source]
Make a DELETE request. See
__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, key, auth, **kwargs)[source]
Bases:
Agent- Parameters:
cert (str)
key (str)
auth (str)
- __init__(cert, key, auth, **kwargs)[source]
Initiate an agent for PKI authentication.
- Parameters:
cert (str) – Path to cert file
key (str) – Path to key file
auth (str) – Path to certificate authority file
**kwargs –
Kwargs passed to the super Agent class __init__
- get(*args, **kwargs)[source]
Make a GET request. See
__request()for parameters.- Returns:
Response object.
- post(*args, **kwargs)[source]
Make a POST 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.TokenAgent(access_key=None, secret_key=None, **kwargs)[source]
Bases:
Agent- Parameters:
access_key (str | None)
secret_key (str | None)
- __init__(access_key=None, secret_key=None, **kwargs)[source]
Initiate an agent for API token authentication.
- Parameters:
access_key (str | None) – Access key
secret_key (str | None) – Secret key
**kwargs –
Kwargs passed to the super Agent class __init__
- get(*args, **kwargs)[source]
Make a GET request. See
__request()for parameters.- Returns:
Response object.
- post(*args, **kwargs)[source]
Make a POST 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.client.Client(url, agent=None)[source]
Bases:
objectCreate a Client object that can be used to talk to the website.
- Parameters:
url (str) – Url of bailo website
agent (Agent | None) – An agent object to handle requests
- __init__(url, agent=None)[source]
Initialise a Client.
- Parameters:
url (str) – URL of the Bailo instance website.
agent (Agent | None) – An agent object to handle requests, defaults to Agent().
- post_model(name, kind, description, sourceModelId=None, visibility=None, organisation=None, state=None, tags=None, collaborators=None)[source]
Create a model.
- Parameters:
name (str) – Name of the model
kind (EntryKind) – Either a Model, Mirrored Model or a Datacard
description (str) – Description of the model
sourceModelId (str | None) – Used for syncing a mirrored model to its source model
visibility (ModelVisibility | None) – Enum to define model visibility (e.g public or private), defaults to None
organisation (str | None) – Organisation responsible for the model, defaults to None
state (str | None) – Development readiness of the model, defaults to None
tags (list[str] | None) – Tags to assign to the model, defaults to None
collaborators (list[CollaboratorEntry] | None) – List of CollaboratorEntry to define who the model’s collaborators (a.k.a. model access) are, defaults to None
- Returns:
JSON response object
- get_models(task=None, libraries=None, filters=None, search='', kind=None, organisations=None, states=None, allow_templating=None, schema_id=None, admin_access=None, peers=None, title_only=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 (str | None) – Entry task (e.g. image classification), defaults to None
libraries (list[str] | None) – Entry library (e.g. TensorFlow), defaults to None
filters (list[str] | None) – 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 (str) – 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 (EntryKind | None) – Entry kind to filter by (e.g. EntryKind.MODEL), defaults to None
organisations (list[str] | None) – List of organisation identifiers to restrict results, defaults to None
states (list[str] | None) – List of entry lifecycle states to restrict results, defaults to None
allow_templating (bool | None) – If True, restricts results to models with templating enabled, defaults to None
schema_id (str | None) – Schema ID to restrict results to models using that schema, defaults to None
admin_access (bool | None) – 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[str] | None) – List of peer identifiers to include remote search results from, defaults to None
title_only (bool | None) – If True, limits searching to entry titles only and disables full-text search, defaults to None
- Returns:
JSON response object
- get_model(model_id)[source]
Retrieve a specific model using its unique ID.
- Parameters:
model_id (str) – Unique model ID
- Returns:
JSON response object
- patch_model(model_id, name=None, kind=None, description=None, visibility=None, organisation=None, state=None, tags=None, collaborators=None)[source]
Update a specific model using its unique ID.
- Parameters:
model_id (str) – Unique model ID
name (str | None) – Name of the model, defaults to None
kind (str | None) – Either a Model, Mirrored Model or a Datacard, defaults to None
description (str | None) – Description of the model, defaults to None
visibility (str | None) – Enum to define model visibility (e.g public or private), defaults to None
organisation (str | None) – Organisation responsible for the model, defaults to None
state (str | None) – Development readiness of the model, defaults to None
tags (list[str] | None) – Tags to assign to the model, defaults to None
collaborators (list[CollaboratorEntry] | None) – List of CollaboratorEntry to define who the model’s collaborators (a.k.a. model access) are, defaults to None
- Returns:
JSON response object
- delete_model(model_id)[source]
Delete a specific model and all associated artefacts.
- Parameters:
model_id (str) – Unique model ID
- Returns:
JSON response object
- get_model_card(model_id, version, mirrored=False)[source]
Retrieve a specific model card, using the unique model ID and version.
- Parameters:
model_id (str) – Unique model ID
version (str) – Model card version
mirrored (bool) – Whether to get the read only model card
- Returns:
JSON response object
- put_model_card(model_id, metadata)[source]
Update the latest model card, using the unique model ID.
- Parameters:
model_id (str) – Unique model ID
metadata (Any) – Metadata object, defined by model card schema
- Returns:
JSON response object
- model_card_from_schema(model_id, schema_id)[source]
Create a model card using a given schema ID.
- Parameters:
model_id (str) – Unique model ID
schema_id (str) – Unique model card schema ID
- Returns:
JSON response object
- model_card_from_template(model_id, template_id)[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
- Parameters:
model_id (str)
template_id (str | None)
- post_release(model_id, release_version, notes, file_ids, images, model_card_version=None, minor=False, draft=False)[source]
Create a new model release.
- Parameters:
model_id (str) – Unique model ID
model_card_version (int | None) – Model card version
release_version (str) – Release version
notes (str) – Notes on release
file_ids (list[str]) – Files for release
images (list[str]) – Images for release
minor (bool | None) – Signifies a minor release, defaults to False
draft (bool | None) – Signifies a draft release, defaults to False
- Returns:
JSON response object
- put_release(model_id, model_card_version, release_version, notes, draft, file_ids, images)[source]
Create a new model release.
- Parameters:
model_id (str) – Unique model ID
model_card_version (int) – Model card version
release_version (str) – Release version
notes (str) – Notes on release
file_ids (list[str]) – Files for release
images (list[str]) – Images for release
minor – Signifies a minor release, defaults to False
draft (bool) – Signifies a draft release, defaults to False
- Returns:
JSON response object
- get_all_releases(model_id)[source]
Get all releases for a model.
- Parameters:
model_id (str) – Unique model ID
- Returns:
JSON response object
- get_release(model_id, release_version)[source]
Get a specific model release.
- Parameters:
model_id (str) – Unique model ID
release_version (str) – Release version
- Returns:
JSON response object
- delete_release(model_id, release_version)[source]
Delete a specific model release.
- Parameters:
model_id (str) – Unique model ID
release_version (str) – Release version
- Returns:
JSON response object
- get_files(model_id)[source]
Get files for a model.
- Parameters:
model_id (str) – Unique model ID
- Returns:
JSON response object
- get_download_file(model_id, file_id)[source]
Download a specific file by its id.
- Parameters:
model_id (str) – Unique model ID
file_id (str) – Unique file ID
- Returns:
The unique file ID
- get_download_by_filename(model_id, semver, filename)[source]
Download a specific file.
- Parameters:
model_id (str) – Unique model ID
semver (str) – Semver of the release
filename (str) – The filename trying to download from
- Returns:
The filename
- simple_upload(model_id, name, buffer)[source]
Upload a file associated with a model.
- Parameters:
model_id (str) – Unique model ID.
name (str) – Name of the file to upload.
buffer (BytesIO) – File-like BytesIO object containing the data to upload.
- Returns:
Response object from the upload endpoint.
- delete_file(model_id, file_id)[source]
Delete a specific file associated with a model.
- Parameters:
model_id (str) – Unique model ID
file_id (str) – Unique file ID
- Returns:
JSON response object
- get_all_images(model_id)[source]
Get all images.
- Parameters:
model_id (str) – A unique model ID
- Returns:
JSON response object
- get_all_schemas(kind=None)[source]
Get all schemas.
- Parameters:
kind (SchemaKind | None) – Enum to define schema kind (e.g. Model or AccessRequest), defaults to None
- Returns:
JSON response object
- get_schema(schema_id)[source]
Retrieve a specific schema using its unique ID.
- Parameters:
schema_id (str) – Unique schema ID
- Returns:
JSON response object.
- post_schema(schema_id, name, description, kind, json_schema, review_roles)[source]
Create a schema.
- Parameters:
schema_id (str) – Unique schema ID
name (str) – Name of the schema
description (str) – Description for the schema
kind (SchemaKind) – Enum to define schema kind (e.g. Model or AccessRequest)
json_schema (dict[str, Any]) – JSON schema
review_roles (list[str]) – List made up of the “shortName” property from a Review Role object
- Returns:
JSON response object
- get_reviews(active, model_id=None, version=None)[source]
Get all reviews within given parameters.
- Parameters:
active (bool) – Boolean representing status of review
model_id (str | None) – Unique model ID, defaults to None
version (str | None) – Model version, defaults to None
- Returns:
JSON response object.
- post_release_review(model_id, version, role, decision, comment=None)[source]
Create a review for a release.
- Parameters:
model_id (str) – A unique model ID
version (str) – Semver of the release
role (str) – The role of the user making the review
decision (str) – Either approve or request changes
comment (str | None) – A comment to go with the review
- get_model_roles(model_id)[source]
Get roles for a model.
- Parameters:
model_id (str) – Unique model ID
- Returns:
JSON response object
- get_access_request(model_id, access_request_id)[source]
Retrieve a specific access request given its unique ID.
- Parameters:
model_id (str) – Unique model ID
access_request_id (str) – Unique access request ID
- Returns:
JSON response object
- get_access_requests(model_id)[source]
Retrieve all access requests given a specific model.
- Parameters:
model_id (str) – Unique model ID
access_request_id – Unique access request ID
- Returns:
JSON response object
- post_access_request(model_id, metadata, schema_id)[source]
Create an access request given a model ID.
- Parameters:
model_id (str) – Unique model ID
metadata (Any) – Metadata object, defined by access request schema
schema_id (str) – Unique schema ID
- Returns:
JSON response object
- delete_access_request(model_id, access_request_id)[source]
Delete a specific access request associated with a model.
- Parameters:
model_id (str) – Unique model ID
access_request_id (str) – Unique access request ID
- Returns:
JSON response object
- patch_access_request(model_id, access_request_id, metadata, schema_id=None)[source]
Update an access request given its unique ID.
- Parameters:
model_id (str) – Unique model ID
access_request_id (str) – Unique access request ID
metadata (Any)
schema_id (str | None)
- Metadata:
Metadata object, defined by access request schemas
- Returns:
JSON response object
- put_file_scan(model_id, file_id)[source]
Manually re-request a new scan for a file.
- Parameters:
model_id (str) – Unique model ID
file_id (str) – Unique file ID
- Returns:
JSON response object
- put_image_scan(model_id, image_name, image_tag)[source]
Manually re-request a new scan for an image.
- Parameters:
model_id (str) – Unique model ID
image_name (str) – Name of the image
image_tag (str) – Unique tag of the image
- Returns:
JSON response object
- post_access_request_review(model_id, access_request_id, role, decision, comment=None)[source]
Create a review for a release.
- Parameters:
model_id (str) – A unique model ID
access_request_id (str) – Unique access request ID
role (str) – The role of the user making the review
decision (str) – Either approve or request changes
comment (str | None) – A comment to go with the review
- class bailo.core.enums.ModelVisibility(*values)[source]
Bases:
ValuedEnumWhether a model is publicly visible or not.
- PRIVATE = 'private'
- PUBLIC = 'public'
- class bailo.core.enums.SchemaKind(*values)[source]
Bases:
ValuedEnumA type of schema.
- MODEL = 'model'
- ACCESS_REQUEST = 'accessRequest'
- class bailo.core.enums.Role(*values)[source]
Bases:
ValuedEnumA reviewing role.
- OWNER = 'owner'
- CONTRIBUTOR = 'contributor'
- CONSUMER = 'consumer'
- class bailo.core.enums.EntryKind(*values)[source]
Bases:
ValuedEnumThe type of model.
- MODEL = 'model'
- DATACARD = 'data-card'
- MIRRORED_MODEL = 'mirrored-model'
- class bailo.core.enums.MinimalSchema(*values)[source]
Bases:
ValuedEnumA minimal schema.
- MODEL = 'minimal-general-v10'
- DATACARD = 'minimal-data-card-v10'
- ACCESS_REQUEST = 'minimal-access-request-general-v10'
- class bailo.core.enums.CollaboratorEntry(entity, roles)[source]
Bases:
dictA set of roles linked to a given entity (a.k.a. user).
- Parameters:
entity (str)
roles (list[Role | str])
- exception bailo.core.exceptions.BailoException[source]
Bases:
ExceptionGeneral exception for Bailo response errors.
- exception bailo.core.exceptions.ResponseException[source]
Bases:
ExceptionException raised when the Bailo API returns a non-JSON response.
- bailo.core.utils.filter_none(json)[source]
Recursively remove keys with None values or empty dicts from the given dictionary.
- Parameters:
json (dict[str, Any]) – The dictionary to filter
- Returns:
Dictionary with removed None-valued keys and empty sub-dicts
- Return type:
dict[str, Any]
- bailo.core.utils.normalise_query_params(value)[source]
Recursively convert Python values into representations suitable for HTTP query parameters.
- Parameters:
value (Any) – The value or structure to normalise. May be a scalar, mapping, or sequence
- Returns:
A normalised value suitable for use as an HTTP query parameter
- Return type:
Any