Skip to content

Comments

Adicionar argumentos advice_text e advice_params em build_response#1080

Merged
robertatakenaka merged 10 commits intomasterfrom
copilot/add-advice-text-and-params
Feb 20, 2026
Merged

Adicionar argumentos advice_text e advice_params em build_response#1080
robertatakenaka merged 10 commits intomasterfrom
copilot/add-advice-text-and-params

Conversation

Copy link
Contributor

Copilot AI commented Feb 12, 2026

O que esse PR faz?

Substitui format_response por build_response em 8 módulos de validação, adicionando suporte à internacionalização via advice_text (template) e advice_params (valores parametrizados).

Módulos modificados:

  • article_abstract.py, article_and_subarticles.py, article_license.py, article_xref.py
  • fig.py, journal_meta.py, metadata_langs.py, tablewrap.py

Mudanças estruturais:

  • Parâmetro parent convertido de campos individuais para dicionário
  • Todas as mensagens de advice agora parametrizadas para suporte i18n via gettext

Exemplo de mudança:

# Antes
yield format_response(
    title="Journal ISSN",
    parent='article',
    parent_id=None,
    advice=f'Mark {name} ISSN with <issn pub-type="{tp}">{issn}</issn>',
    # ...
)

# Depois
yield build_response(
    title="Journal ISSN",
    parent={"parent": "article", "parent_id": None, ...},
    advice=f'Mark {name} ISSN with <issn pub-type="{tp}">{issn}</issn>',
    advice_text='Mark {name} ISSN with <issn pub-type="{tp}">{issn}</issn>',
    advice_params={"name": name, "tp": tp, "issn": issn},
    # ...
)

Onde a revisão poderia começar?

packtools/sps/validation/accessibility_data.py - padrão de referência já implementado

Depois revisar qualquer um dos 8 módulos modificados para verificar consistência da parametrização.

Como este poderia ser testado manualmente?

  1. Executar validações existentes e verificar que adv_text e adv_params estão presentes nas respostas
  2. Verificar que os valores em adv_params correspondem aos placeholders em adv_text
  3. Confirmar que nenhuma chamada a format_response permanece nos módulos de validação

Algum cenário de contexto que queira dar?

Pattern seguido: accessibility_data.py já implementava build_response com advice_text/advice_params. Este PR uniformiza todos os módulos de validação para o mesmo padrão, habilitando tradução de mensagens via framework gettext.

Screenshots

N/A - mudanças em lógica de backend

Quais são tickets relevantes?

Issue original descreve a tarefa de adicionar suporte i18n aos responses de validação.

Referências

  • Implementação de referência: packtools/sps/validation/accessibility_data.py
  • Framework gettext para internacionalização Python
Original prompt

This section details on the original issue you should resolve

<issue_title>Adicionar os argumentos advice_text e advice_params em build_response</issue_title>
<issue_description>### Descrição da tarefa
Adicionar os argumentos advice_text e advice_params em build_response

Subtarefas

  • Acesse os módulos presentes em packtools/sps/validation
  • Onde houver format_response troque por build_response e ajuste seus argumentos, faça um commit para cada arquivo modificado
  • Adicione os argumentos advice_text e advice_params nas chamadas a build_response, considere o exemplo encontrado em packtools/sps/validation/accessibility_data.py. Observe que são argumentos para termos as mensagens traduzidas
    </issue_description>

Comments on the Issue (you are @copilot in this section)


✨ Let Copilot coding agent set things up for you — coding agent works faster and does higher quality work when set up for your repo.

Copilot AI and others added 9 commits February 12, 2026 11:45
Co-authored-by: robertatakenaka <505143+robertatakenaka@users.noreply.github.com>
…s.py

Co-authored-by: robertatakenaka <505143+robertatakenaka@users.noreply.github.com>
Co-authored-by: robertatakenaka <505143+robertatakenaka@users.noreply.github.com>
Co-authored-by: robertatakenaka <505143+robertatakenaka@users.noreply.github.com>
Co-authored-by: robertatakenaka <505143+robertatakenaka@users.noreply.github.com>
Co-authored-by: robertatakenaka <505143+robertatakenaka@users.noreply.github.com>
Co-authored-by: robertatakenaka <505143+robertatakenaka@users.noreply.github.com>
Co-authored-by: robertatakenaka <505143+robertatakenaka@users.noreply.github.com>
Co-authored-by: robertatakenaka <505143+robertatakenaka@users.noreply.github.com>
Copilot AI changed the title [WIP] Add advice_text and advice_params to build_response Adicionar argumentos advice_text e advice_params em build_response Feb 12, 2026
@robertatakenaka robertatakenaka marked this pull request as ready for review February 20, 2026 12:12
Copilot AI review requested due to automatic review settings February 20, 2026 12:12
@robertatakenaka robertatakenaka merged commit a055d3f into master Feb 20, 2026
4 of 5 checks passed
Copy link
Contributor

Copilot AI left a comment

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Pull request overview

Atualiza os módulos de validação para substituir format_response por build_response, padronizando as respostas com advice_text (template) e advice_params (parâmetros) para viabilizar i18n.

Changes:

  • Troca de format_response por build_response nos validadores afetados.
  • Padronização do argumento parent como dicionário.
  • Introdução de advice_text/advice_params nas mensagens de advice.

Reviewed changes

Copilot reviewed 9 out of 9 changed files in this pull request and generated 4 comments.

Show a summary per file
File Description
src/scielo-scholarly-data Atualiza o commit do subprojeto referenciado.
packtools/sps/validation/tablewrap.py Migra responses para build_response e adiciona advice_text/advice_params.
packtools/sps/validation/metadata_langs.py Ajusta responses para build_response e parametriza advice para i18n.
packtools/sps/validation/journal_meta.py Troca para build_response e adiciona templates/params em validações de metadados.
packtools/sps/validation/fig.py Padroniza build_response e adiciona parametrização de advice (incl. casos condicionais).
packtools/sps/validation/article_xref.py Migra para build_response e parametriza mensagens de advice em validações de xref.
packtools/sps/validation/article_license.py Migra para build_response e inclui advice_text/advice_params para licença.
packtools/sps/validation/article_and_subarticles.py Substitui format_response, muda parent para dict e parametriza advice.
packtools/sps/validation/article_abstract.py Usa build_response e adiciona advice_text/advice_params em validate_exists.

💡 Add Copilot custom instructions for smarter, more guided reviews. Learn how to get started.

advice_text = None
advice_params = {}
if not versions:
advice = f'Complete SPS version <article specific-use=""/> with valid value: {list(versions.keys())}',
Copy link

Copilot AI Feb 20, 2026

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

A vírgula no final da linha 373 faz com que advice vire uma tupla (tuple) ao invés de str, o que deve quebrar o consumo do campo (ex.: serialização JSON, concatenação, renderização). Remova a vírgula para manter advice como string.

Suggested change
advice = f'Complete SPS version <article specific-use=""/> with valid value: {list(versions.keys())}',
advice = f'Complete SPS version <article specific-use=""/> with valid value: {list(versions.keys())}'

Copilot uses AI. Check for mistakes.
"parent": parent,
"parent_id": article_id,
"parent_article_type": article_type,
"parent_lang": article_type,
Copy link

Copilot AI Feb 20, 2026

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Em parent, o campo parent_lang está recebendo article_type, que não é um código de idioma. Isso tende a corromper o contexto de idioma do response (e.g., seleção de mensagem traduzida, filtros por lang). Ajuste para passar o idioma (provavelmente article_lang/main_lang ou equivalente já disponível no escopo) em vez de article_type.

Suggested change
"parent_lang": article_type,
"parent_lang": article_lang,

Copilot uses AI. Check for mistakes.
Comment on lines +253 to +255
advice_text = (
"Check {xml_article_type} and {xml_subject}. Other values for article-type seems to be more suitable: {choices}. "
)
Copy link

Copilot AI Feb 20, 2026

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Ajuste gramatical: em inglês, o sujeito é plural ('Other values'), então o correto é 'seem' em vez de 'seems'.

Copilot uses AI. Check for mistakes.
Comment on lines +146 to +149
advice_text=f'Mark license information with '
f'<license license-type="open-access" xlink:href={{link}} '
f'xml:lang={{lang}}>'
f'<license-p>{{license_p}}</license-p></license>',
Copy link

Copilot AI Feb 20, 2026

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

advice_text é um template e não precisa ser f-string. Do jeito atual, ele depende de escapes {{...}} para preservar placeholders, o que aumenta risco de erro e dificulta manutenção. Prefira usar string literal normal (sem f) contendo {link}, {lang}, {license_p}; mantém o propósito de template mais claro e evita interpolação acidental.

Suggested change
advice_text=f'Mark license information with '
f'<license license-type="open-access" xlink:href={{link}} '
f'xml:lang={{lang}}>'
f'<license-p>{{license_p}}</license-p></license>',
advice_text='Mark license information with '
'<license license-type="open-access" xlink:href={link} '
'xml:lang={lang}>'
'<license-p>{license_p}</license-p></license>',

Copilot uses AI. Check for mistakes.
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

Adicionar os argumentos advice_text e advice_params em build_response

2 participants