206 lines
3.5 KiB
Markdown
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
|