ENPICOM Logo API Docs Python SDK Docs Events

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)
def get_reference_databases(self) -> list[enpi_api.l2.types.reference_database.ReferenceDatabase]:
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:
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:
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)