6. Librería de Python
La librería Python de LUCA BDS proporciona una interfaz para interactuar con la API de la plataforma.
Documentación y descarga de la librería: PyPI.
Instalación
Para instalar la librería, asegúrese de tener Python instalado y ejecute:
pip install python-luca-bds
Documentación
Clase: LucaConnector
Clase que define el modelo de conexión con una instalación de LUCA BDS.
Estructura:
conn = LucaConnector(server_url, username, password, keycloak_connection=None)
Variables de entrada:
server_url(str): URL base del servidor LUCA.username(str): Nombre de usuario.password(str): Contraseña.keycloak_connection(KeycloakConnection): Conexión Keycloak existente. Si esNone, el constructor crea una nueva conexión para el endpoint/authdel dominio proporcionado enserver_url.
Métodos:
info(return_pd=True): Devuelve la información de la licencia enpd.Seriesodict.
Ejemplo:
luca_conn = LucaConnector(
server_url='https://luca-bds-domain/luca-api',
username='user',
password='pass'
keycloak_connection=None
)
Clase: KeycloakConnector
Clase para autenticación mediante Keycloak.
Estructura:
KeycloakConnector(server_url, realm_name='luca-bds', client_id='luca-bds-web', client_secret_key='', verify_ssl=True)
Variables de entrada:
server_url(str): URL base del servidor Keycloak.realm_name(str, opcional): Nombre del realm en Keycloak. Por defecto,luca-bds.client_id(str, opcional): ID del cliente en Keycloak. Por defecto,luca-bds-web.client_secret_key(str, opcional): Clave secreta del cliente. Por defecto, una cadena vacía.verify_ssl(bool, opcional): Verifica certificados SSL. Por defecto,True.
Métodos:
create_token(username, password): Crea un nuevo token de Keycloak.refresh_token(): Actualiza el token actual.get_token(username, password): Obtiene un token de acceso válido, creándolo o refrescándolo si es necesario.
Ejemplo:
keycloak_conn = KeycloakConnector(
server_url='https://keycloak-domain/auth',
realm_name='realm-name',
client_id='client-id',
client_secret_key='client-secret'
)
Función: get_queries
Obtiene una lista de consultas del sistema LUCA.
Estructura:
get_queries(conn, name=None, description=None, user=None, page=1, size=25, return_pd=True)
Variables de entrada:
conn(objeto): Objeto Connection, con URL del servidor y cabeceras.name(str, opcional): Filtra por nombre de consulta.description(str, opcional): Filtra por descripción de consulta.user(int, opcional): Filtra por ID de usuario.page(int, opcional): Número de página para paginación.size(int, opcional): Tamaño de página para paginación.return_pd(bool, opcional): Devuelve datos como estructura de pandas si esTrue.
Devuelve:
list | DataFrame | Series: Información de consultas, incluyendo IDs y metadatos.
Ejemplo:
queries = get_queries(
conn = luca_conn,
name='my_query',
description='my_query description',
user=123
)
Función: get_query
Ejecuta una consulta por nombre o ID en un entorno específico.
Estructura:
get_query(conn, id, return_pd=True)
Variables de entrada:
conn(objeto): Objeto Connection, con URL del servidor y cabeceras.id(int): ID único de la consulta.return_pd(bool, opcional): Devuelve datos como estructura de pandas si esTrue.
Devuelve:
dict | Series: Detalles de la consulta, como nombre o descripción.
Ejemplo:
query_details = get_query(
conn=luca_conn,
id=123
)
Función: execute_query
Ejecuta una consulta en un entorno especificado con variables de entrada opcionales.
Estructura:
execute_query(conn, id, environment_id, input_variables=[], page=1, size=25, commit=True, return_pd=True)
Variables de entrada:
conn(objeto): Objeto Connection, con URL del servidor y cabeceras.id(int): Identificador único de la consulta.environment_id(str): Entorno en el que se ejecutará la consulta.input_variables(list, opcional): Variables que se pasarán como entrada.page(int, opcional): Número de página para paginación.size(int, opcional): Tamaño de página para paginación.commit(bool, opcional): Indica si se debe confirmar la transacción de la consulta.return_pd(bool, opcional): Devuelve datos como estructura de pandas si esTrue.
Devuelve:
list | dict | DataFrame | Series: El resultado de la consulta (DataFrame o Series), información de paginación y estado de la consulta.
Ejemplo:
data, pagination, state = execute_query(
conn=luca_conn,
id=123,
environment_id='env',
input_variables=[{'key': 'var1', 'value': 'value1'}]
)
Función: query
Ejecuta una consulta por nombre o ID en un entorno específico, utilizando variables de entrada opcionales.
Estructura:
query(conn, environment, name=None, id=None, input_variables={}, page=1, size=25, commit=True, return_pd=True)
Variables de entrada:
conn(objeto): Objeto Connection, con URL del servidor y cabeceras.environment(str): Nombre del entorno donde se ejecutará la consulta.name(str, opcional): Nombre de la consulta a buscar.id(int, opcional): ID de la consulta a buscar.input_variables(dict, opcional): Pares clave-valor para las variables de entrada de la consulta.page(int, opcional): Número de página para paginación.size(int, opcional): Tamaño de página para paginación.commit(bool, opcional): Indica si se debe confirmar la transacción de la consulta.return_pd(bool, opcional): Devuelve datos como estructura de pandas si esTrue.
Devuelve:
tuple (list | dict | DataFrame | Series): El resultado de la consulta (DataFrame o Series), información de paginación y estado de la consulta.
Ejemplo:
result, pagination, state = query(
conn=luca_conn,
environment='env',
name='my_query',
input_variables={'var1': 'value1', 'var2': ['value1', 'value2']}
)
Función: get_charts
Obtiene gráficas del servidor basándose en parámetros de filtrado.
Estructura:
get_charts(conn, name=None, description=None, user=None, query=None, page=1, size=25, return_pd=True)
Variables de entrada:
conn(objeto): Objeto Connection, con URL del servidor y cabeceras.name(str, opcional): Filtra por nombre de gráfica.description(str, opcional): Filtra por descripción de gráfica.user(str, opcional): Filtra por usuario.query(int, opcional): Filtra por ID de consulta.page(int, opcional): Número de página para paginación.size(int, opcional): Tamaño de página para paginación.return_pd(bool, opcional): Devuelve datos como estructura de pandas si esTrue.
Devuelve:
list | DataFrame | Series: Información de gráficas, incluyendo IDs y metadatos.
Ejemplo:
charts = get_charts(
conn=luca_conn,
name='chart_name',
description='description'
)
Función: get_chart
Obtiene una gráfica específica por su ID y devuelve sus datos detallados.
Estructura:
get_chart(conn, id, return_pd=True)
Variables de entrada:
conn(objeto): Objeto Connection, con URL del servidor y cabeceras.id(str): Identificador único de la gráfica.return_pd(bool, opcional): Devuelve datos como estructura de pandas si esTrue.
Devuelve:
dict | Series: Detalles de la gráfica, como nombre o descripción.
Ejemplo:
chart_details = get_chart(
conn=luca_conn,
id=123
)
Función: get_datasources
Obtiene fuentes de datos del servidor basándose en parámetros de filtrado.
Estructura:
get_datasources(conn, type=None, system=None, page=1, size=25, return_pd=True)
Variables de entrada:
conn(objeto): Objeto Connection, con URL del servidor y cabeceras.type(str, opcional): Filtra por tipo de fuente de datos.system(int, opcional): Filtra por ID del sistema.page(int, opcional): Número de página para paginación.size(int, opcional): Tamaño de página para paginación.return_pd(bool, opcional): Devuelve datos como estructura de pandas si esTrue.
Devuelve:
list | DataFrame | Series: Información de las fuentes de datos, incluyendo IDs y metadatos.
Ejemplo:
datasources = get_datasources(
conn=luca_conn,
type='rest',
system=123
)
Función: get_datasource
Obtiene una fuente de datos específica por su ID y devuelve sus datos detallados.
Estructura:
get_datasource(conn, id, return_pd=True)
Variables de entrada:
conn(objeto): Objeto Connection, con URL del servidor y cabeceras.id(int): Identificador único de la fuente de datos.return_pd(bool, opcional): Devuelve datos como estructura de pandas si esTrue.
Devuelve:
dict | Series: Detalles de la fuente de datos, como nombre o descripción.
Ejemplo:
datasource_details = get_datasource(
conn=luca_conn,
id=123
)
Función: get_systems
Obtiene sistemas del servidor basándose en parámetros de filtrado.
Estructura:
get_systems(conn, type=None, datasourceType=None, user=None, enabled=True, page=1, size=25, return_pd=True)
Variables de entrada:
conn(objeto): Objeto Connection, con URL del servidor y cabeceras.type(str, opcional): Filtra por tipo de sistema.datasourceType(str, opcional): Filtra por tipo de fuente de datos del sistema (e.g., bd, soap, rest, log).user(int, opcional): Filtra por ID de usuario.enabled(bool, opcional): Filtra por estado habilitado.page(int, opcional): Número de página para paginación.size(int, opcional): Tamaño de página para paginación.return_pd(bool, opcional): Devuelve datos como estructura de pandas si esTrue.
Devuelve:
list | DataFrame | Series: Información de los sistemas, incluyendo IDs y metadatos.
Ejemplo:
systems = get_systems(
conn=luca_conn,
type='mysql',
datasourceType='bd',
enabled=True
)
Función: get_system
Obtiene un sistema específico por su ID y devuelve sus datos detallados.
Estructura:
get_system(conn, id, return_pd=True)
Variables de entrada:
conn(objeto): Objeto Connection, con URL del servidor y cabeceras.id(int): Identificador único del sistema.return_pd(bool, opcional): Devuelve datos como estructura de pandas si esTrue.
Devuelve:
dict | Series: Detalles del sistema, incluyendo nombre, tipo y fuentes de datos asociadas.
Ejemplo:
system_details = get_system(
conn=luca_conn,
id=123
)
Función: get_users
Obtiene usuarios del servidor basándose en parámetros de filtrado.
Estructura:
get_users(conn, username=None, email=None, enabled=True, page=1, size=25, return_pd=True)
Variables de entrada:
conn(objeto): Objeto Connection, con URL del servidor y cabeceras.username(str, opcional): Filtra por nombre de usuario.email(str, opcional): Filtra por correo electrónico.enabled(bool, opcional): Filtra por estado habilitado.page(int, opcional): Número de página para paginación.size(int, opcional): Tamaño de página para paginación.return_pd(bool, opcional): Devuelve datos como estructura de pandas si esTrue.
Devuelve:
list | DataFrame | Series: Información de los usuarios, incluyendo IDs y metadatos.
Ejemplo:
users = get_users(
conn=luca_conn,
username='user_name',
email='[email protected]',
enabled=True
)
Función: get_user
Obtiene un usuario específico por su ID y devuelve sus datos detallados.
Estructura:
get_user(conn, id, return_pd=True)
Variables de entrada:
conn(objeto): Objeto Connection, con URL del servidor y cabeceras.id(int): Identificador único del usuario.return_pd(bool, opcional): Devuelve datos como estructura de pandas si esTrue.
Devuelve:
dict | Series: Detalles del usuario, incluyendo nombre, correo electrónico y permisos.
Ejemplo:
user_details = get_user(
conn=luca_conn,
id=123
)
Ejemplo de uso
A continuación se muestra un ejemplo de cómo utilizar el cliente de LUCA BDS para conectarse al servidor y probar alguna funcionalidad:
from luca.connectors import LucaConnector
from luca.querys import query
# LUCA connection configuration
luca_conn = LucaConnector(
server_url='https://luca-bds-domain/luca-api',
username='user',
password='pass'
)
# Retrieve connection information
info = luca_conn.info()
print(info)
# Execute a query by name
result, pag, state = query(
conn=luca_conn,
name='name',
environment='env'
)
print(result)
# Execute a query by ID
result, pag, state = query(
conn=luca_conn,
id=123,
environment='env',
input_variables=[{'User': 'user', 'System': 'sys'}]
)
print(result)
print(pag)
print(state)