enpi_api.l2.client.api.reference_database_api
1from loguru import logger 2 3from enpi_api.l1 import openapi_client 4from enpi_api.l2.types.api_error import ApiErrorContext 5from enpi_api.l2.types.log import LogLevel 6from enpi_api.l2.types.reference_database import ReferenceDatabase, ReferenceDatabaseRevision 7 8 9class ReferenceDatabaseApi: 10 _inner_api_client: openapi_client.ApiClient 11 _log_level: LogLevel 12 13 def __init__(self, inner_api_client: openapi_client.ApiClient, log_level: LogLevel): 14 """@private""" 15 self._inner_api_client = inner_api_client 16 self._log_level = log_level 17 18 def get_reference_databases(self) -> list[ReferenceDatabase]: 19 """Get all available reference databases with all their revisions. 20 21 Returns: 22 list[enpi_api.l2.types.reference_database.ReferenceDatabase]: available reference databases with their revisions. 23 24 Raises: 25 enpi_api.l2.types.api_error.ApiError: If API request fails. 26 27 Example: 28 Get all available reference databases. 29 ```python 30 with EnpiApiClient() as enpi_client: 31 reference_databases = enpi_client.reference_database_api.get_reference_databases() 32 print(reference_databases) 33 print(reference_databases[0].revisions) 34 ``` 35 """ 36 37 logger.info("Getting all available reference databases...") 38 39 reference_db_api_instance = openapi_client.ReferenceDatabaseApi(self._inner_api_client) 40 41 with ApiErrorContext(): 42 get_reference_dbs_response = reference_db_api_instance.get_reference_databases() 43 44 logger.success(f"Successfully fetched {len(get_reference_dbs_response.reference_databases)} reference databases.") 45 46 return [ReferenceDatabase.from_raw(reference_db) for reference_db in get_reference_dbs_response.reference_databases] 47 48 def get_revision_by_name( 49 self, 50 name: str, 51 species: str, 52 label: str | None = None, 53 ) -> ReferenceDatabaseRevision: 54 """Get a single reference database revision by its name. 55 56 Args: 57 name (str): Name of a reference database. 58 species (str): Name of the species linked to the reference database. 59 label (str | None): Label of a reference database revision. If none is provided, the latest available revision will be fetched. 60 61 Returns: 62 enpi_api.l2.types.reference_database.ReferenceDatabaseRevision: A single reference database revision with reference database name included. 63 64 Raises: 65 enpi_api.l2.types.api_error.ApiError: If API request fails. 66 67 Example: 68 Get the latest revision of "Reference A" reference database. 69 ```python 70 name = "Reference A" 71 species = "Homo sapiens" 72 73 # Label is an optional parameter - if it's missing, the latest revision version will be fetched 74 label = None 75 # label = "Version 1.0" 76 77 revision = client.reference_database_api.get_revision_by_name(name, species, label) 78 ``` 79 """ 80 81 logger.info(f"Getting revision with name: '{name}'...") 82 83 reference_db_api_instance = openapi_client.ReferenceDatabaseApi(self._inner_api_client) 84 85 payload = openapi_client.GetRevisionByNameBody( 86 name=name, 87 species=species, 88 label=label, 89 ) 90 91 with ApiErrorContext(): 92 get_revision_by_name_response = reference_db_api_instance.get_revision_by_name(payload) 93 94 revision = get_revision_by_name_response.revision 95 96 logger.success(f"Successfully fetched revision with name: '{revision.name}, {revision.label}' and ID: '{revision.reference_database_id}'.") 97 98 return ReferenceDatabaseRevision.from_raw(revision)
class
ReferenceDatabaseApi:
10class ReferenceDatabaseApi: 11 _inner_api_client: openapi_client.ApiClient 12 _log_level: LogLevel 13 14 def __init__(self, inner_api_client: openapi_client.ApiClient, log_level: LogLevel): 15 """@private""" 16 self._inner_api_client = inner_api_client 17 self._log_level = log_level 18 19 def get_reference_databases(self) -> list[ReferenceDatabase]: 20 """Get all available reference databases with all their revisions. 21 22 Returns: 23 list[enpi_api.l2.types.reference_database.ReferenceDatabase]: available reference databases with their revisions. 24 25 Raises: 26 enpi_api.l2.types.api_error.ApiError: If API request fails. 27 28 Example: 29 Get all available reference databases. 30 ```python 31 with EnpiApiClient() as enpi_client: 32 reference_databases = enpi_client.reference_database_api.get_reference_databases() 33 print(reference_databases) 34 print(reference_databases[0].revisions) 35 ``` 36 """ 37 38 logger.info("Getting all available reference databases...") 39 40 reference_db_api_instance = openapi_client.ReferenceDatabaseApi(self._inner_api_client) 41 42 with ApiErrorContext(): 43 get_reference_dbs_response = reference_db_api_instance.get_reference_databases() 44 45 logger.success(f"Successfully fetched {len(get_reference_dbs_response.reference_databases)} reference databases.") 46 47 return [ReferenceDatabase.from_raw(reference_db) for reference_db in get_reference_dbs_response.reference_databases] 48 49 def get_revision_by_name( 50 self, 51 name: str, 52 species: str, 53 label: str | None = None, 54 ) -> ReferenceDatabaseRevision: 55 """Get a single reference database revision by its name. 56 57 Args: 58 name (str): Name of a reference database. 59 species (str): Name of the species linked to the reference database. 60 label (str | None): Label of a reference database revision. If none is provided, the latest available revision will be fetched. 61 62 Returns: 63 enpi_api.l2.types.reference_database.ReferenceDatabaseRevision: A single reference database revision with reference database name included. 64 65 Raises: 66 enpi_api.l2.types.api_error.ApiError: If API request fails. 67 68 Example: 69 Get the latest revision of "Reference A" reference database. 70 ```python 71 name = "Reference A" 72 species = "Homo sapiens" 73 74 # Label is an optional parameter - if it's missing, the latest revision version will be fetched 75 label = None 76 # label = "Version 1.0" 77 78 revision = client.reference_database_api.get_revision_by_name(name, species, label) 79 ``` 80 """ 81 82 logger.info(f"Getting revision with name: '{name}'...") 83 84 reference_db_api_instance = openapi_client.ReferenceDatabaseApi(self._inner_api_client) 85 86 payload = openapi_client.GetRevisionByNameBody( 87 name=name, 88 species=species, 89 label=label, 90 ) 91 92 with ApiErrorContext(): 93 get_revision_by_name_response = reference_db_api_instance.get_revision_by_name(payload) 94 95 revision = get_revision_by_name_response.revision 96 97 logger.success(f"Successfully fetched revision with name: '{revision.name}, {revision.label}' and ID: '{revision.reference_database_id}'.") 98 99 return ReferenceDatabaseRevision.from_raw(revision)
19 def get_reference_databases(self) -> list[ReferenceDatabase]: 20 """Get all available reference databases with all their revisions. 21 22 Returns: 23 list[enpi_api.l2.types.reference_database.ReferenceDatabase]: available reference databases with their revisions. 24 25 Raises: 26 enpi_api.l2.types.api_error.ApiError: If API request fails. 27 28 Example: 29 Get all available reference databases. 30 ```python 31 with EnpiApiClient() as enpi_client: 32 reference_databases = enpi_client.reference_database_api.get_reference_databases() 33 print(reference_databases) 34 print(reference_databases[0].revisions) 35 ``` 36 """ 37 38 logger.info("Getting all available reference databases...") 39 40 reference_db_api_instance = openapi_client.ReferenceDatabaseApi(self._inner_api_client) 41 42 with ApiErrorContext(): 43 get_reference_dbs_response = reference_db_api_instance.get_reference_databases() 44 45 logger.success(f"Successfully fetched {len(get_reference_dbs_response.reference_databases)} reference databases.") 46 47 return [ReferenceDatabase.from_raw(reference_db) for reference_db in get_reference_dbs_response.reference_databases]
Get all available reference databases with all their revisions.
Returns:
list[enpi_api.l2.types.reference_database.ReferenceDatabase]: available reference databases with their revisions.
Raises:
- enpi_api.l2.types.api_error.ApiError: If API request fails.
Example:
Get all available reference databases.
with EnpiApiClient() as enpi_client: reference_databases = enpi_client.reference_database_api.get_reference_databases() print(reference_databases) print(reference_databases[0].revisions)
def
get_revision_by_name( self, name: str, species: str, label: str | None = None) -> enpi_api.l2.types.reference_database.ReferenceDatabaseRevision:
49 def get_revision_by_name( 50 self, 51 name: str, 52 species: str, 53 label: str | None = None, 54 ) -> ReferenceDatabaseRevision: 55 """Get a single reference database revision by its name. 56 57 Args: 58 name (str): Name of a reference database. 59 species (str): Name of the species linked to the reference database. 60 label (str | None): Label of a reference database revision. If none is provided, the latest available revision will be fetched. 61 62 Returns: 63 enpi_api.l2.types.reference_database.ReferenceDatabaseRevision: A single reference database revision with reference database name included. 64 65 Raises: 66 enpi_api.l2.types.api_error.ApiError: If API request fails. 67 68 Example: 69 Get the latest revision of "Reference A" reference database. 70 ```python 71 name = "Reference A" 72 species = "Homo sapiens" 73 74 # Label is an optional parameter - if it's missing, the latest revision version will be fetched 75 label = None 76 # label = "Version 1.0" 77 78 revision = client.reference_database_api.get_revision_by_name(name, species, label) 79 ``` 80 """ 81 82 logger.info(f"Getting revision with name: '{name}'...") 83 84 reference_db_api_instance = openapi_client.ReferenceDatabaseApi(self._inner_api_client) 85 86 payload = openapi_client.GetRevisionByNameBody( 87 name=name, 88 species=species, 89 label=label, 90 ) 91 92 with ApiErrorContext(): 93 get_revision_by_name_response = reference_db_api_instance.get_revision_by_name(payload) 94 95 revision = get_revision_by_name_response.revision 96 97 logger.success(f"Successfully fetched revision with name: '{revision.name}, {revision.label}' and ID: '{revision.reference_database_id}'.") 98 99 return ReferenceDatabaseRevision.from_raw(revision)
Get a single reference database revision by its name.
Arguments:
- name (str): Name of a reference database.
- species (str): Name of the species linked to the reference database.
- label (str | None): Label of a reference database revision. If none is provided, the latest available revision will be fetched.
Returns:
enpi_api.l2.types.reference_database.ReferenceDatabaseRevision: A single reference database revision with reference database name included.
Raises:
- enpi_api.l2.types.api_error.ApiError: If API request fails.
Example:
Get the latest revision of "Reference A" reference database.
name = "Reference A" species = "Homo sapiens" # Label is an optional parameter - if it's missing, the latest revision version will be fetched label = None # label = "Version 1.0" revision = client.reference_database_api.get_revision_by_name(name, species, label)