Módulo de reparación automática (modo de entrada rápida de reglas)

Qué hace

Cuando escribe una palabra simple (sin comillas ni sintaxis de Python) en un archivo de mapa como FUZZY_MAP_pre.py, el sistema lo convierte automáticamente en una regla válida.

Esta es la forma más rápida de crear nuevas reglas: no es necesario recordar el formato.

Ejemplo

Escribe esto en FUZZY_MAP_pre.py:

oma

El módulo de reparación automática detecta un NameError (palabra simple, Python no válido) y transforma el archivo automáticamente en:

# config/maps/.../de-DE/FUZZY_MAP_pre.py
import re # noqa: F401
# too<-from
FUZZY_MAP_pre = [
    ('oma', 'oma'),
]

Ahora edite la regla según lo que realmente necesita:

('Oma', 'oma'),              # capitalize
('Großmutter', 'oma'),       # synonym
('Thomas Müller', 'thomas'), # from a phone book

Cómo funciona

El módulo scripts/py/func/auto_fix_module.py se activa automáticamente cuando Aura detecta un NameError mientras carga un archivo de mapa.

Entonces:

  1. Agrega el encabezado de ruta de archivo correcto

  2. Agrega import re si falta

  3. Agrega la definición de lista FUZZY_MAP_pre = [

  4. Convierte palabras simples en tuplas `(‘palabra’, ‘palabra’)

  5. Cierra la lista con ]

Reglas y límites

  • Sólo funciona en archivos de menos de 1 KB (límite de seguridad)

  • Sólo aplica a: FUZZY_MAP.py, FUZZY_MAP_pre.py, PUNCTUATION_MAP.py

  • El archivo debe estar en una carpeta de idioma válido (por ejemplo, de-DE/)

  • Funciona para varias palabras a la vez (por ejemplo, de una lista de directorio telefónico)

Problemas conocidos (no probados completamente)

⚠️ Este módulo es funcional pero no está probado exhaustivamente. Es posible que los siguientes casos no funcionen correctamente:

  • Números5 o 6 no son identificadores de Python válidos, es posible que la corrección automática no los maneje

  • Caracteres especiales: las palabras con -, ., las diéresis pueden no desencadenar un NameError

  • Entradas de varias palabras: thomas mueller (con espacio) provoca SyntaxError, no NameError, por lo que es posible que la corrección automática no se active

  • Valores separados por comasdrei, vier se puede insertar tal cual sin convertirse en una tupla adecuada

Si la reparación automática no se activa, agregue la regla manualmente:

('replacement', 'input word'),

El comentario # también<-from

Este comentario se agrega automáticamente como recordatorio de la dirección de la regla:

too <- from

Significado: salida (también) ← entrada (de). El reemplazo es lo primero.

Para PUNCTUATION_MAP.py la dirección se invierte: # from->too

Entrada masiva de una lista

Puedes pegar varias palabras a la vez:

thomas
maria
berlin

Cada palabra desnuda se convierte en su propia regla:

('thomas', 'thomas'),
('maria', 'maria'),
('berlin', 'berlin'),

Luego edite cada reemplazo según sea necesario.

Archivo: scripts/py/func/auto_fix_module.py