Artigo
· Set. 12 4min de leitura

Python IRIS Nativo

Olá comunidade

Nós experimentamos anteriormente o Python embutido em IRIS; no entanto, eu ainda não tive a oportunidade de implementar IRIS usando Python nativo. Nesse artigo, vou percorrer os passos que eu usei para começar a aprender e implementar IRIS dentro da fonte Python. Eu também gostaria de agradecer @Guillaume Rongier@Luis Angel Pérez Ramos pela ajuda resolvendo os problemas que encontrei durante minha recente instalação PIP de IRIS no Python, que eu habilitei para funcionar adequadamente.

Vamos começar a escrever IRIS em Python.

Em primeiro lugar, você precisa instalar o arquivo intersystems_irispython-3.2.0-py3-none-any.whl do repositório github. Eu fiz o download e baixei na minha máquina windows.

py -m pip install intersystems_irispython-3.2.0-py3-none-any.whl

Verifiquei que os pacotes estão instalados na minha máquina executando py -m pip list

intersystems-irispython 3.2.0
iris                    0.0.5

Agora estamos prontos para começar a escrever o Python. Eu criei um arquivo .py e importei um pacote iris em cima da classe.

Agora, vamos estabelecer a conexão ao IRIS usando o método de conexão e criar e usar o objeto de conexão para instanciar o objeto iris.IRIS usando o "createIRIS" e esse é o  passo crucial para seguir com operações mais adiante.

import iris
impor time

args = {'hostname':'127.0.0.1', 'port':1972,'namespace':'LEARNING', 'username':'_SYSTEM', 'password':'SYS'}

try:
    """
    some other ways instead of kwargs
    conn = iris.connect(hostname='127.0.0.1', port=1972, namespace='LEARNING',username='_SYSTEM',password='SYS')
    """
    conn = iris.connect(**args)
    # A new IRIS object that uses the given connection.
    irispy = iris.createIRIS(conn)

    print('connected!')
except Exception as e:
    # Handling the exception and printing the error
    print(f"An error occurred: {e}")
    

Agora, vamos falar sobre os métodos para COS e globais.

Uma vez que você criou com sucesso um objeto IRIS, agora está pronto para usar várias operações.

set : Essa função é usada para definir os valores de globais na base de dados IRIS.

1. O primeiro parâmetro é o valor

2. Segundo parâmetro é o nome da global

3. *args - o terceiro parâmetro são subscritos.

def set_global(value=None,gbl=None,*args):
    #set method is in _IRIS from iris package
    irispy.set('set from irispy','mygbl','a',str(time.time()))
    print('global set done!')

set_global()

 

kill: Essa função é usada para deletar a global da base de dados

def kill_global():
    irispy.kill('mygbl')
    print('global kill done!')

IsDefined: o mesmo que $data: verifica se existe

def data_isDefined():
    # equal to $data
    print(irispy.isDefined('mygbl','a')) # o/p 10
    print(irispy.isDefined('mygbl','a','1724996313.480835')) # o/p 1

nextSubscript: Igual a $Order

irispy.nextSubscript(0,'mygbl','a')

tStart, tCommit e tRollback: o mesmo que TStart, TCommit, TRollback

def global_transaction_commit():
    irispy.tStart()
    print(irispy.getTLevel())
    irispy.set('set from irispy','mygbl','trans',str(time.time()))
    irispy.tCommit()

def global_transaction_rollback():
    irispy.tStart()
    print(irispy.getTLevel())
    irispy.set('set from irispy','mygbl','trans1',str(time.time()))
    irispy.tRollback() # tRollbackOne()

 

lock e unlock: por default lock incremental/lock exclusivo

def global_lock():
    #default exclusive lock
    s = irispy.lock('',1,'^mygbl')
    time.sleep(10) # verify the lock in locktab
    irispy.unlock('','^mygbl')
    
def global_shared_lock():
    s = irispy.lock('S',1,'^mygbl')
    time.sleep(10)
    irispy.unlock('S','^mygbl')

node: nó de subscrito da árvore mesmo que $Order

def node_traversal():
    # subscript level traversal like $Order
    for mrn in irispy.node('^mygbl'):
         for phone in irispy.node('^mygbl',mrn):
            print(f'patient mrn {mrn} and phone number: {phone}')
            
"""
o/p
patient mrn 912 and phone number: 3166854791
patient mrn 991 and phone number: 78050314
patient mrn 991 and phone number: 9128127353
"""

O nó, valor de árvore e definições de classe e seus membros estão cobertos no próximo artigo.

Você pode ver a referência na documentação para todas as funções.

Discussão (0)1
Entre ou crie uma conta para continuar