easymacro/doc/docs/debug.md

206 lines
3.5 KiB
Markdown

## Herramientas para depurar
<br>
### **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][1] de soporte en el sistema de ticket de este proyecto. Siempre copie la información de depuración mostrada en este mensaje.
```py
import easymacro as app
def info():
app.msgbox(app.INFO_DEBUG)
return
```
![Info debug](img/install_01.png)
### **debug**
Mostrar información en la terminal.
```py
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...
```
<br>
### **info**
Mostrar mensajes informativos en la terminal.
```py
import easymacro as app
def test_info():
msg = 'Iniciando proceso...'
app.info(msg)
return
```
```
11/08/2022 18:23:53 - INFO - Iniciando proceso...
```
<br>
### **error**
Mostrar mensajes de error en la terminal.
```py
import easymacro as app
def test_error():
msg = 'Error 505'
app.error(msg)
return
```
```
11/08/2022 18:27:34 - ERROR - Error 505
```
<br>
### **save_log**
Guardar registro en un archivo, automáticamente se agrega la fecha y hora.
```py
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'
```
<br>
### **msgbox**
Mostrar cualquier información en un cuadro de mensaje.
```python
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
```
<br>
### **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**.
```py
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
```
<br>
### **mri**
[MRI][2] es la mejor extensión para inspeccionar cualquier objeto UNO de LibreOffice. Necesita instalarla primero para poder llamarla.
```py
import easymacro as app
def inspeccionar_objeto():
obj = app.active
app.mri(obj)
return
```
<br>
### **inspect**
Inspeccionar un objeto.
```py
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.
```python
def inspeccionar_objeto():
doc = app.active
app.inspect(doc, True)
return
```
[1]: https://git.cuates.net/elmau/easymacro/issues
[2]: https://github.com/hanya/MRI