Manual de usuario de calibre, Publicación 2.73.0
persistent_data = functions['Function One']['persistent_data']
...
Depurar las funciones propias
Puede depurar las funciones que cree con la función estándar de python print(). La salida de print() se mostrará
en una ventana emergente cuando la búsqueda y sustitución se haya completado. Ya hemos visto anteriormente un
ejemplo del uso de print() para mostrar un índice completo.
Elegir un orden de archivos al ejecutar sobre múltiples archivos HTML
Al ejecutar Sustituir todo sobre múltiples archivos HTML, el orden en que se procesan los archivos depende de qué
archivos estén abiertos para modificar. Puede hacer que la búsqueda procese los archivos en el orden en el que aparecen
estableciendo el attributo file_order de la función, de esta manera:
def replace(match, number, file_name, metadata, dictionaries, data, functions, *args,
˓→**kwargs):
...
replace.file_order = 'spine'
file_order acepta dos valores, spine y spine-reverse, que hacen que el la búsqueda procese archivos
múltiples en el orden en que aparecen en el libro, hacia adelante o hacia atrás, respectivamente
Hacer que una función se ejecute una vez más después de la última coincidencia
A veces, como en el ejemplo anterior del índice generado automáticamente, es útil que la función se ejecute una
vez adicional después de haber encontrado la última coincidencia. Puede conseguir esto estableciendo el atributo
call_after_last_match en la función, de esta manera:
def replace(match, number, file_name, metadata, dictionaries, data, functions, *args,
˓→**kwargs):
...
replace.call_after_last_match = True
Añadir la salida de una función al texto marcado
Al ejecutar una búsqueda y sustitución sobre un texto marcado, a veces es útil añadir algún texto al final del texto
marcado. Puede hacer esto estableciéndo el atributo append_final_output_to_marked en la función (tenga
en cuenta que también debe establecer call_after_last_match), de esta manera:
def replace(match, number, file_name, metadata, dictionaries, data, functions, *args,
˓→**kwargs):
...
return 'some text to append'
replace.call_after_last_match = True
replace.append_final_output_to_marked = True
102
Capítulo 1. Secciones