Implementar validações do elemento <funding-group> conforme SPS 1.10#1094
Draft
Implementar validações do elemento <funding-group> conforme SPS 1.10#1094
Conversation
Co-authored-by: robertatakenaka <505143+robertatakenaka@users.noreply.github.com>
…th comprehensive tests 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 validations for funding-group element
Implementar validações do elemento <funding-group> conforme SPS 1.10
Feb 13, 2026
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment
Add this suggestion to a batch that can be applied as a single commit.This suggestion is invalid because no changes were made to the code.Suggestions cannot be applied while the pull request is closed.Suggestions cannot be applied while viewing a subset of changes.Only one suggestion per line can be applied in a batch.Add this suggestion to a batch that can be applied as a single commit.Applying suggestions on deleted lines is not supported.You must change the existing code in this line in order to create a valid suggestion.Outdated suggestions cannot be applied.This suggestion has been applied or marked resolved.Suggestions cannot be applied from pending reviews.Suggestions cannot be applied on multi-line comments.Suggestions cannot be applied while the pull request is queued to merge.Suggestion cannot be applied right now. Please check back later.
O que esse PR faz?
Implementa 6 novas validações para
<funding-group>conforme especificação SPS 1.10, atingindo 70% de conformidade (7 de 10 regras). As validações cobrem:P0 - Críticas:
<funding-group>por<article-meta>(ERROR)<funding-statement>(CRITICAL)<funding-source>em<award-group>(CRITICAL)P1 - Importantes:
<label>em<funding-group>(ERROR)<title>em<funding-group>(ERROR)<funding-source>e<award-id>(WARNING)Regra 4 (presença de
<award-id>) já existia emvalidate_required_award_ids(). Regras 8-10 (sincronização de texto) excluídas por complexidade semântica (P2).Onde a revisão poderia começar?
packtools/sps/validation/funding_group.py- novos métodos de validação (linhas 159-443)Depois:
tests/sps/validation/test_funding_group.py- 7 classes de teste com 19 casos (linhas 253-764)Como este poderia ser testado manualmente?
Testar casos inválidos:
<funding-group>→ ERROR emvalidate_funding_group_uniqueness()<funding-group>sem<funding-statement>→ CRITICAL emvalidate_funding_statement_presence()<award-group>sem<funding-source>→ CRITICAL emvalidate_funding_source_in_award_group()<label>dentro de<funding-group>→ ERROR emvalidate_label_absence()Algum cenário de contexto que queira dar?
Padrão de implementação:
build_response()(padrão existente)Cobertura de testes:
Decisões técnicas:
//funding-group//labelvalida descendentes (não apenas filhos diretos)validate_funding_statement_presence()retorna early se não há<funding-group>Screenshots
N/A - validações de XML não requerem interface gráfica.
Quais são tickets relevantes?
Issue: Criar validações para o elemento
<funding-group>Referências
packtools/sps/validation/article_doi.py(padrão de validação)packtools/sps/models/funding_group.pyOriginal prompt
This section details on the original issue you should resolve
<issue_title>Criar validações para o elemento </issue_title>
<issue_description>## Objetivo
Implementar validações para o elemento
<funding-group>conforme a especificação SPS 1.10, aumentando a conformidade de X% para 70% (7 de 10 regras).Nota: Algumas validações para
<funding-group>podem já estar parcialmente implementadas no repositório. Este Issue visa reavaliar, complementar e garantir cobertura completa das regras SPS 1.10.Contexto
O elemento
<funding-group>é usado para declarar informações estruturadas sobre financiamento e apoio à pesquisa. Essas informações devem estar sincronizadas com notas de documento (<fn fn-type="financial-disclosure">ou<fn fn-type="supported-by">) ou agradecimentos (<ack>). Validações corretas garantem consistência entre as diferentes seções do documento e completude das informações de financiamento.Conformidade atual: X de 10 regras implementadas (X%)
Meta após implementação: 7 de 10 regras (70%)
Documentação SPS
Referência oficial: https://docs.google.com/document/d/1GTv4Inc2LS_AXY-ToHT3HmO66UT0VAHWJNOIqzBNSgA/edit?tab=t.0#heading=h.fundinggroupfinanciapoio
Regras principais conforme SPS 1.10:
Ocorrência:
<funding-group>deve aparecer no máximo uma vez em<article-meta>Estrutura obrigatória:
<funding-statement>é obrigatório em todos os casos<funding-source>é obrigatório<award-id>é obrigatórioOrganização:
<award-group>agrupa<funding-source>com seu respectivo<award-id><award-group><award-group>separadosRestrições de elementos filhos:
<label>ou<title>dentro de<funding-group>Sincronização com outras seções:
<funding-statement>deve replicar informações de:<fn fn-type="financial-disclosure">(financiamento com contrato)<fn fn-type="supported-by">(apoio sem contrato)<ack>(agradecimentos com informações de financiamento)Declaração negativa de financiamento:
<funding-group>apenas com<funding-statement>declarando issoRegras a Implementar
P0 – Críticas (implementar obrigatoriamente)
<funding-group><funding-group>deve aparecer no máximo uma vez em<article-meta><funding-statement><funding-statement>é obrigatório em<funding-group><funding-source>quando há instituições<award-group>existe, deve conter pelo menos um<funding-source><award-id>quando há contrato<funding-source>menciona número de contrato no texto, deve existir<award-id>correspondenteP1 – Importantes (implementar se possível)
<label>em<funding-group><label>não é permitido dentro de<funding-group>ou seus filhos<title>em<funding-group><title>não é permitido dentro de<funding-group>ou seus filhos<funding-source>e<award-id><award-group>, a quantidade de<award-id>deve ser compatível: 0 (apoio sem contrato), 1 (um contrato), ou N (múltiplos contratos para múltiplas fontes)P2 – Futuras (fora do escopo deste Issue)
<funding-statement>e<fn>ou<ack><funding-source>aparecem no texto de<funding-statement><award-id>aparecem no texto de<funding-statement>Arquivos a Criar/Modificar
Avaliar existentes (podem ter validações parciais):
packtools/sps/models/funding.pyou similar – Verificar se modelo existepacktools/sps/validation/funding.pyoufunding_group.py– Verificar validações existentespacktools/sps/validation/rules/funding_rules.jsonou similar – Verificar configuraçãoCriar (se não existirem):
packtools/sps/models/funding_group.py– Modelo de extração de dados💬 We'd love your input! Share your thoughts on Copilot coding agent in our 2 minute survey.