easymacro/doc/docs/debug.md

3.5 KiB

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

Para ver este mensaje, es necesario iniciar LibreOffice desde la línea de comandos:

soffice --calc

Después de ejecutar la macro anterior, debe de ver:

21/04/2023 17:04:49 - 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.

import easymacro as app

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.

!!! warning inline end "Cuidado"

Usa este método solo en tiempo de desarrollo. **No la use en producción**.
import easymacro as app

@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

mri

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

import easymacro as app

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

inspect

Inspeccionar un objeto.

import easymacro as app

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 la información del objeto en una hoja de calculo.

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