-
Notifications
You must be signed in to change notification settings - Fork 24
Open
Description
Descrição da nova funcionalidade
Como operador da migração, eu quero um utilitário de linha de comando que aplique correções automáticas em lote nos XMLs e gere relatórios detalhados para que possa corrigir problemas recorrentes em grandes volumes de arquivos de forma eficiente e rastreável.
Critérios de aceitação
- Criar módulo
/packtools/xml_fixer.pycom classe XMLFixer - A classe deve coordenar as funções fix_inline_graphic_position e complete_pub_date
- Deve criar backup automático antes de modificar arquivos com nomenclatura:
{filename}_backup_{YYYYMMDD_HHMMSS}.xml - O diretório de backup deve ser configurável (padrão: ./backups)
- Deve permitir desabilitar criação de backup via parâmetro --no-backup
- Deve processar arquivos individuais ou todos XMLs de um diretório
- Deve permitir selecionar quais correções aplicar via parâmetro --fixes
- Deve gerar relatório em formato TXT (padrão) ou CSV mostrando: arquivo, timestamp, tipo de correção, xpath, ação realizada
- Deve ter tratamento de erro robusto - se um arquivo falhar, continua processando os demais
- Deve usar logging para mostrar progresso do processamento
- Deve registrar comando
xml_fixerno setup.py entry_points - Interface argpars deve aceitar:
xml_fixer [arquivo|diretório] [opções] - Relatório TXT deve ter resumo final: total de arquivos, modificados, total de correções
- Deve ter testes de integração cobrindo processamento de diretório e geração de relatórios
- Sempre fazer backup
- Nunca alterar o arquivo original
Anexos
Exemplo de uso CLI:
# Processar diretório com todas correções
xml_fixer /path/to/xmls/
# Aplicar apenas correção específica
xml_fixer /path/to/xmls/ --fixes inline-graphic
# Aplicar apenas correção específica
xml_fixer /path/to/xmls/ --fixes inline-graphic pub-date
# Gerar relatório CSV sem backup
xml_fixer article.xml --report fixes.csv --report-format csvReferências
n/a
Reactions are currently unavailable
Metadata
Metadata
Assignees
Labels
No labels