Saltar al contenido principal

6. Librería de Python

La librería Python de LUCA BDS proporciona una interfaz para interactuar con la API de la plataforma.

nota

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 es None, el constructor crea una nueva conexión para el endpoint /auth del dominio proporcionado en server_url.

Métodos:

  • info(return_pd=True): Devuelve la información de la licencia en pd.Series o dict.

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 es True.

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 es True.

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 es True.

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 es True.

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 es True.

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 es True.

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 es True.

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 es True.

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 es True.

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 es True.

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 es True.

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 es True.

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)