#Embedded Python

0 Seguidores · 138 Publicaciones

Embedded Python consiste en la integración del lenguaje de programación Python en el núcleo de InterSystems IRIS, lo que permite a los desarrolladores operar con datos y desarrollar la lógica empresarial de las aplicaciones del lado del servidor utilizando Python.

Documentación.

Artículo Ricardo Paiva · nov 9, 2023 3m read

El problema

En un entorno clínico acelerado, en el que la toma rápida de decisiones es crucial, la falta de sistemas eficientes de almacenamiento y acceso a los documentos plantea varios obstáculos. Aunque existen soluciones de almacenamiento de documentos (por ejemplo, FHIR), el acceso y la búsqueda eficaz de datos específicos de pacientes dentro de esos documentos puede suponer todo un reto.

La motivación

La IA ha hecho que la búsqueda de documentos sea extraordinariamente potente. Preguntar y responder sobre documentos nunca ha sido tan fácil con herramientas de código abierto como Chroma

0
0 135
Artículo Luis Angel Pérez Ramos · nov 2, 2023 1m read

Después del éxito de la pasada jornada en la que QuinielaML acertó 10 resultados y obteniendo un premio de 10€ volvemos una jornada más, ¡dispuestos a reinvertir las ganancias!

Veamos los partidos de esta jornada:

Ahora las predicciones para los partidos de 1ª División:

Y para 2ª:

Así que nos quedaría una Quiniela tal que así:

Pues tenemos unos cuantos partidos dudosos, con ambos equipos rondando el 35% de posibilidades, esta jornada va a ser complicada.

¡Mucha suerte a todos!

2
0 196
Artículo Luis Angel Pérez Ramos · nov 4, 2023 5m read

Recientemente me comentaron sobre la necesidad de monitorizar desde HealthConnect los registros presentes en una base de datos NoSQL en el Cloud, más en concreto Cloud Firestore, desplegada en Firebase. Con un rápido vistazo pude ver lo sencillo que resultaría crear un Adapter ad-hoc para realizar la conexión aprovechando las capacidades de Embedded Python, así que me puse manos a la obra.

Preparando el entorno

Para poder comenzar necesitamos una instancia de dicha base de datos sobre la que poder realizar las pruebas, accediendo a la consola de Firebase hemos creado un nuevo proyecto sobre

0
0 99
Artículo Luis Angel Pérez Ramos · oct 27, 2023 1m read

¿No pensaríais que nos íbamos a quedar sin predicciones de la quiniela para este fin de semana, no? ¡Y menos en la jornada del clásico! Aquí estamos una jornada más exprimiendo las capacidades de InterSystems IRIS.

Veamos cual es la quiniela de esta jornada:

Y nuestras predicciones para Primera División:

Y Segunda División:

Pues así nos quedaría la Quiniela:

Sin una sóla victoria fuera de casa y plagado de empates...cuando menos ha quedado curiosa.

Pues nada, ¡suerte a todos!

3
0 140
Artículo Luis Angel Pérez Ramos · oct 20, 2023 1m read

Nuevo viernes y nueva predicción de la Quiniela.

Como anunciamos ayer, QuinielaML ha mejorado en su modelo de predicciones restándole peso a los resultados históricos, ¡veamos si es cierto!

Esta es la Quiniela de esta jornada:

Las predicciones para Primera División serán:

Y para Segunda División:

Esto nos dejaría la siguiente predicción:

Suerte a todos ¡y sobretodo a mi!

2
0 139
Anuncio Luis Angel Pérez Ramos · oct 19, 2023

¡Como lo oís! QuinielaML ha incorporado en su servicio de predicciones a las ligas más importantes de Europa (y Brasil) así que, estimados miembros de la Comunidad de Desarrolladores, seais de donde seais, podréis tener a vuestra disposición las predicciones de vuestras ligas favoritas.

Desde la pantalla de predicciones tendréis acceso a cada una de las nueva ligas incluidas, pudiendo registrar los partidos de cada jornada:

Aprovechando el avance de las jornadas de liga hemos mejorado la predicción de QuinielaML disminuyendo el peso de los resultados históricos que lastraban algunas de l

Amazon Proclaims Amazon's 'Borat 2' To Be 'Great Success'

2
0 94
Artículo Luis Angel Pérez Ramos · oct 6, 2023 1m read

Como no podía ser de otra manera y fieles a nuestra cita de los viernes, procedemos a publicar las predicciones de la aplicación QuinielaML para la jornada 9ª de Primera División y 10ª de Segunda.

Os recuerdo que QuinielaML está desarrollada sobre InterSystems IRIS haciendo uso de sus capacidades de Machine Learning que proporciona mediante la funcionalidad IntegratedML así como de Embedded Python que permite la captura de datos para entrenar el modelo predictivo.

Aquí tenemos la jornada de este fin de semana:

Veamos que tenemos para Primera División:

Y ahora Segunda:

Con lo que nos

1
0 319
Artículo Luis Angel Pérez Ramos · sep 29, 2023 1m read

¡Volvemos al ataque con la Quiniela! 8ª jornada en Primera y Segunda División y con la QuinielaML deseando resarcirse de los 4 aciertos del pasado fin de semana. Aquí tenemos el boleto de esta jornada:

Y estas son las predicciones para Primera División:

Y ahora para Segunda División:

Por lo que la Quiniela quedaría tal que así:

Pues ale, ya tenéis lo necesario para haceros ricos. ¡Feliz viernes!

1
0 214
Artículo Luis Angel Pérez Ramos · ago 22, 2023 4m read

Bienvenidos estimados miembros de la Comunidad a la presentación y primera entrega de un pequeño proyecto que demostrará las capacidades de InterSystems IRIS para proporcionar funcionalidades plenas de backup para una aplicación web desarrollada en Angular. Este artículo se limitará a presentar el concepto así como las funcionalidades de InterSystems IRIS utilizadas de un modo general, entrando más en detalle en posteriores artículos.

¡Bienvenidos a QuinielaML!

Introducción

Es posible que ya hayais oído hablar de funcionalidades de InterSystems IRIS como Embedded Python e IntegratedML, pe

2
0 638
Artículo Luis Angel Pérez Ramos · ago 29, 2023 8m read

Proseguimos con la serie de artículos basados en la aplicación QuinielaML.

En el artículo de hoy describiré como trabajar con la funcionalidad de Embedded Python disponible en los productos de InterSystems.

Embedded Python nos permite la utilización de Python como lenguaje de programación dentro de nuestras producciones, pudiendo sacar provecho de todas las funcionalidades disponibles en Python. Aquí podéis ampliar información al respecto.

Antes de nada recordemos cómo es el diseñor de la arquitectura de nuestro proyecto:

Problemática

En nuestro caso necesitamos obtener los resultados

0
0 187
Artículo Alberto Fuentes · jul 28, 2023 7m read

¡Hola Comunidad!

Me alegra anunciar la nueva versión de iris-pex-embedded-python (v2.3.1) con una nueva interfaz de línea de comandos.

Esta línea de comandos se llama iop por Interoperability On Python.

Primero me gustaría presentar los principales cambios del proyecto desde la versión 1.

Breve historia del proyecto

La versión 1.0 fue una prueba de concepto para mostrar cómo el framework de interoperabilidad de IRIS se puede utilizar con un enfoque python first mientras sigue siendo compatible con cualquier código existente de ObjectScript.

¿Qué significa eso? Significa que cualquier desarrollador Python puede usar el framework de interoperabilidad de IRIS sin ningún conocimiento de ObjectScript.

Ejemplo:

from grongier.pex import BusinessOperation

class MyBusinessOperation(BusinessOperation):

    def on_message(self, request):
        self.log.info("Received request")

Genial, ¿cierto?

0
0 100
Artículo Luis Angel Pérez Ramos · mar 9, 2023 3m read
   _________ ___ ____  
  |__  /  _ \_ _|  _ \ 
    / /| |_) | || |_) |
   / /_|  __/| ||  __/ 
  /____|_|  |___|_|    

Desde la versión 2021.1, InterSystems IRIS empezó a distribuirse con un runtime de Python en el motor del kernel. Sin embargo, no había forma de instalar paquetes desde dentro de la instancia. La principal ventaja de Python es su enorme ecosistema de paquetes. Con ello en mente, os presento mi proyecto zpip, un empaquetador pip que se puede invocar desde el terminal de iris.

¿Qué es zpip?

zpip es un empaquetador para python pip que permite a los desarrolladores añadir de

1
0 165
Artículo Dmitry Maslennikov · feb 17, 2023 4m read

Os presento mi nuevo proyecto: irissqlcli, REPL (Read-Eval-Print Loop) para InterSystems IRIS SQL.

  • Resaltado de sintaxis
  • Sugerencias (tablas, funciones)
  • +20 formatos de salida
  • Soporte a stdin
  • Salida a ficheros 

Instalación con pip

pipinstallirissqlcli

O se puede ejecutar con docker

dockerrun-itcaretdev/irissqlcliirissqlcliiris://_SYSTEM:SYS@host.docker.internal:1972/USER
1
0 137
Artículo Alberto Fuentes · jun 14, 2023 11m read

Qué es el Web Scraping:

En términos sencillos, el Web scraping, también conocido como recolección de datos de sitios web o extracción de datos de sitios web es un proceso automatizado que permite la recopilación de grandes volúmenes de datos (no estructurados) de los sitios web. El usuario puede extraer datos de sitios web específicos, según sus necesidades. Los datos recopilados se pueden almacenar en un formato estructurado para su posterior análisis.

¿Qué es el Web Scraping? — James Le

0
0 536
Artículo Luis Angel Pérez Ramos · mayo 19, 2023 1m read

¡Hola Comunidad!

Me gustaría presentaros una nueva utilidad para importar CSV a IRIS - ¡csvgenpy!

Instalación

USER>zpm "install csvgenpy"

Uso:

do ##class(shvarov.csvgenpy.csv).Generate("file or url","table","schema")

Ejemplo:

USER>do ##class(shvarov.csvgenpy.csv).Generate("https://raw.githubusercontent.com/datasciencedojo/datasets/master/titanic.csv","titanic","data")

Esto creará la tabla y la clase data.titanic en IRIS y a continuación cargará los datos. Podéis probarlo con:

0
0 84
Artículo Luis Angel Pérez Ramos · mayo 8, 2023 6m read

¡Bienvenidos, estimados miembros de la comunidad!

En este artículo vamos a demostrar el gran potencial que IRIS/HealthConnect pone a disposición de todos sus usuarios con el uso de Python Embebido y lo vamos a hacer mediante el desarrollo de una pequeña producción que nos va a permitir reconocer e identificar las caras presentes en un archivo JPG a partir de unas imágenes que usaremos como referencia.

Configurando el proyecto:

¡Empecemos! Hemos publicado en OpenExchange la aplicación entera para que sólo necesitéis descargarla y desplegarla en Docker como podréis leer en el README asociado,

0
0 486
Artículo Ricardo Paiva · mar 30, 2023 1m read

Quick Tips: Total Productive Maintenance

Los parámetros nombrados se pueden conseguir con SQLAlchemy :  

from sqlalchemy import create_engine, text,types,engine

_engine = create_engine('iris+emb:///')

with _engine.connect() as conn:
    rs = conn.execute(text("select :some_private_name"), {"some_private_name": 1})
    print(rs.all())

o con api nativa

from sqlalchemy import create_engine, text,types,engine

# set URL for SQLAlchemy
url = engine.url.URL.create('iris', username='SuperUser', password='SYS', host='localhost', port=33782, database='FHIRSERVER')

_engine = create_engine(url)

with _engine.connect() as conn:
    rs = conn.execute(text("select :some_private_name"), {"some_private_name": 1})
    print(rs.all())
0
0 130
Artículo Jose-Tomas Salvador · oct 6, 2022 6m read

Python se ha convertido en el lenguaje de programación más utilizado del mundo (fuente: https://www.tiobe.com/tiobe-index/) y SQL sigue siendo el líder como lenguaje para las bases de datos. ¿No sería genial que Python y SQL trabajaran juntos para ofrecer nuevas funcionalidades que SQL por sí mismo no puede? Después de todo, Python tiene más de 380.000 librerías publicadas (fuente: https://pypi.org/) con funciones muy interesantes para ampliar las consultas SQL dentro de Python.

En este artículo detallo cómo crear nuevos Procedimientos Almacenados de SQL en la base de datos de InterSystems IRIS usando Embedded Python.

1
1 782
Artículo Heloisa Paiva · mar 9, 2023 2m read

Por qué he decidido escribir esto

En mi ultimo artículo he hablado de la devolución de valores con Python. Pero la devolución es muy simple, lo que la puede hacer difícil es de lo que voy a hablar hoy: dónde es tratado el valor.
 

Objeto Python en IRIS

Siguiendo el ejemplo del último artículo, tenemos el método:

Class python.returnTest [ Abstract ]
{

ClassMethod returnSomething(pValue... As%String) As%Integer [ Language = python ]
{
	return pValue
}

}

Así, tenemos devuelto un objeto de Python, que para IRIS es la clase %SYS.Python. Así que, por ejemplo, si llamo al método con d

0
0 171
Artículo Heloisa Paiva · feb 22, 2023 2m read

Por qué he decidido escribir esto

En 2022, publiqué un artículo sobre Python Embebido para principiantes. En ese artículo me preguntaron cómo devolver valores con Python. Respondí a la pregunta y, además, me ha parecido interesante escribir un pequeño artículo sobre el tema. Así también espero llegar a más gente con esta publicación.

Situaciones posibles

Hay dos cosas de las que ocuparse cuándo se devuelve un valor con Python. La primera es el tipo que intentas devolver y la segunda es dónde lo devuelves.

Recordemos nuestras primeras lecciones cuando empezamos a desarrollar: en Python, cua

0
0 521
Artículo Rubén Larenas · feb 8, 2023 3m read

Python Embedded es una gran herramienta considerando la simpleza y gran cantidad de librerías disponibles, así como una gran comunidad de desarrolladores con toneladas de ejemplos y documentación.

En el siguiente ejemplo les presento una solución para un problema común utilizando Python y ObjectScript.

Un caso de uso muy común es recuperar data desde planillas excel y poblar un objeto persistente en nuestro modelo en IRIS.

para esto utilizaremos pandas, una popular librería Python que nos permite trabajar con DataFrames

En primer lugar instalaremos dicha librería y sus dependencias utiliza


0
0 282
Artículo Luis Angel Pérez Ramos · ene 24, 2023 3m read

¡Hola desarrolladores!

Python tiene un ecosistema muy extenso y potente que contiene miles de librerías y paquetes disponibles, especialmente en Data Science.

Por ello, quería hacer un primer intento de usar la funcionalidad Python Embebido para, de forma sencilla, importar una librería de Python llamada datetime, generar datos con un componente timestamp y persistirlo en InterSystems IRIS for Health. También funcionará en InterSystems IRIS.

0
0 346
Artículo Luis Angel Pérez Ramos · ene 16, 2023 4m read

Motivación

Empecé en este proyecto pensando en cómo permitir que el código Python trabaje de forma natural con el almacenamiento escalable y el eficiente mecanismo de recuperación de datos ofrecido por los globals de IRIS, a través de Python Embebido.

Mi idea inicial era crear algo como un diccionario de implementación de Python usando globals, pero pronto me di cuenta de que antes debía ocuparme de la abstracción de objetos.

Así que empecé creando algunas clases en Python que pudieran envolver objetos Python, almacenando y recuperando sus datos en globals, es decir, serializar y deserializar

0
0 160
Artículo Luis Angel Pérez Ramos · ene 2, 2023 5m read

¡Hola desarrolladores!

Comparto con vosotros una plantilla de Python Embebido básica, que recomiendo como punto de partida para cualquier proyecto general con InterSystems IRIS que use Python Embebido.

Funcionalidades:

  • Python Embebido configurado;
  • 3 ejemplos con difentes formas de desarrollar con Python Embebido;
  • VSCode configurado;
  • Docker disponible;
  • Demo online disponible;
  • Desarrollo ZPM First disponible.

Vamos a comentar estas funcionalidades.

0
0 162
Artículo Muhammad Waseem · jul 15, 2022 5m read

¡Hola Comunidad!

En este artículo voy a explicar cómo acceder a la información y a las tablas del dashboard (cuadro de mando) del sistema del Portal de Administración mediante el uso de Python Embebido.

1
0 246
Artículo Alberto Fuentes · dic 2, 2022 2m read

Si usáis Python, podéis utilizar el módulo venv para crear un entorno virtual. Este módulo es la manera recomendada de crear y gestionar entornos virtuales.

Un entorno virtual es una herramienta que ayuda a mantener separadas las dependencias requeridas por diferentes proyectos, mediante la creación de entornos virtuales aislados de Python para ellos. Resuelve el dilema “El proyecto X depende de la versión 1.x pero el proyecto Y necesita la 4.x”, y mantiene limpio y manejable el directorio site-packages global.

Así que si trabajáis mucho con Python, como yo, podéis usar el módulo venv para crear un entorno virtual para vuestro proyecto. Esto os permitirá instalar paquetes sin que afecte a la instalación de Python global.

Aquí encontraréis dos alias simples para crear y activar un entorno virtual.

Alias de Python

alias venv="python3 -m venv .venv; source .venv/bin/activate"
alias irisvenv="python3 -m venv .venv; source .venv/bin/activate; pip install https://github.com/grongierisc/iris-embedded-python-wrapper/releases/download/v0.0.1/iris-0.0.1-py3-none-any.whl"
0
1 253