Herramientas para depurar

INFO_DEBUG

Mostrar información de depuración en un cuadro de mensaje.

Si tiene cualquier problema en su código durante el desarrollo de sus macros, puede abrir un ticket de soporte en el sistema de ticket de este proyecto. Siempre copie la información de depuración mostrada en este mensaje.

import easymacro as app

def info():
    app.msgbox(app.INFO_DEBUG)
    return

Info debug

debug

Mostrar información en la terminal.

import easymacro as app

def test_debug():
    msg = 'Verificar esta información...'
    app.debug(msg)
    return
11/08/2022 18:15:45 - DEBUG - Verificar esta información...

info

Mostrar mensajes informativos en la terminal.

import easymacro as app

def test_info():
    msg = 'Iniciando proceso...'
    app.info(msg)
    return
11/08/2022 18:23:53 - INFO - Iniciando proceso...

error

Mostrar mensajes de error en la terminal.

import easymacro as app

def test_error():
    msg = 'Error 505'
    app.error(msg)
    return
11/08/2022 18:27:34 - ERROR - Error 505

save_log

Guardar registro en un archivo, automáticamente se agrega la fecha y hora.

import easymacro as app

def test_save_log():

    app.save_log('/home/mau/log.txt', 'PyUNO')
    app.save_log('/home/mau/log.txt', 'Maldito Mundo')

    return
cat ~/log.txt
2022-08-11 18:30:11 - 'PyUNO'
2022-08-11 18:30:11 - 'Maldito Mundo'

msgbox

Mostrar cualquier información en un cuadro de mensaje.

def message():

    msg = 'Por favor, consume menos.'
    app.msgbox(msg)

    msg = ('uno', 2, 'tres')
    app.msgbox(msg)

    msg = {'nombre': 'Teresa'}
    app.msgbox(msg)

    app.msgbox(app)

    return

catch_exception

Capturar cualquier error que se produzca al ejecutar una macro.

@app.catch_exception
def test_capturar_error():
    r = 1 / 0
    return
11/08/2022 18:44:36 - ERROR - test_capturar_error
Traceback (most recent call last):
  File "/home/mau/.config/libreoffice/4/user/Scripts/python/pythonpath/easymacro/easytools.py", line 115, in func
    return f(*args, **kwargs)
  File "/home/mau/.config/libreoffice/4/user/Scripts/python/test.py", line 18, in test_capturar_error
    r = 1 / 0
ZeroDivisionError: division by zero

Usa este método solo en tiempo de desarrollo. No la uses en producción.

mri

MRI es la mejor extensión para inspeccionar cualquier objeto UNO de LibreOffice. Necesita instalarla primero para poder llamarla.

def inspeccionar_objeto():
    obj = app.active
    app.mri(obj)
    return

inspect

Inspeccionar un objeto.

def inspeccionar_objeto():
    doc = app.active
    data = app.inspect(doc)
    for p in data.properties:
        app.debug(p)
    for m in data.methods:
        app.debug(m)
    return

Vaciar en una hoja de calculo.

def inspeccionar_objeto():
    doc = app.active
    app.inspect(doc, True)
    return