Adicionar argumentos advice_text e advice_params em build_response#1080
Adicionar argumentos advice_text e advice_params em build_response#1080robertatakenaka merged 10 commits intomasterfrom
Conversation
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>
There was a problem hiding this comment.
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_responseporbuild_responsenos validadores afetados. - Padronização do argumento
parentcomo dicionário. - Introdução de
advice_text/advice_paramsnas 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())}', |
There was a problem hiding this comment.
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.
| 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())}' |
| "parent": parent, | ||
| "parent_id": article_id, | ||
| "parent_article_type": article_type, | ||
| "parent_lang": article_type, |
There was a problem hiding this comment.
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.
| "parent_lang": article_type, | |
| "parent_lang": article_lang, |
| advice_text = ( | ||
| "Check {xml_article_type} and {xml_subject}. Other values for article-type seems to be more suitable: {choices}. " | ||
| ) |
There was a problem hiding this comment.
Ajuste gramatical: em inglês, o sujeito é plural ('Other values'), então o correto é 'seem' em vez de 'seems'.
| 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>', |
There was a problem hiding this comment.
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.
| 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>', |
O que esse PR faz?
Substitui
format_responseporbuild_responseem 8 módulos de validação, adicionando suporte à internacionalização viaadvice_text(template) eadvice_params(valores parametrizados).Módulos modificados:
article_abstract.py,article_and_subarticles.py,article_license.py,article_xref.pyfig.py,journal_meta.py,metadata_langs.py,tablewrap.pyMudanças estruturais:
parentconvertido de campos individuais para dicionárioExemplo de mudança:
Onde a revisão poderia começar?
packtools/sps/validation/accessibility_data.py- padrão de referência já implementadoDepois revisar qualquer um dos 8 módulos modificados para verificar consistência da parametrização.
Como este poderia ser testado manualmente?
adv_texteadv_paramsestão presentes nas respostasadv_paramscorrespondem aos placeholders emadv_textformat_responsepermanece nos módulos de validaçãoAlgum cenário de contexto que queira dar?
Pattern seguido:
accessibility_data.pyjá implementavabuild_responsecomadvice_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
packtools/sps/validation/accessibility_data.pyOriginal prompt
✨ Let Copilot coding agent set things up for you — coding agent works faster and does higher quality work when set up for your repo.