Descrição da tarefa
No review do PR #1350 (issue #1349, campo "CITE AS"), o revisor sugeriu concentrar a lógica de citação num módulo dedicado, em vez de deixá-la espalhada em pipeline/xml.py (hoje com mais de 1300 linhas, misturando extração de corpo, tabela, figura, rodapé e citação no mesmo arquivo). É uma reorganização pura, sem mudança de comportamento - separada do PR #1350 para não bloquear um fix já pronto.
Criar packtools.sps.formats.pdf.citation, responsável por:
- Seleção dos metadados bibliográficos (hoje
_extract_citation_authors, _build_csl_reference em pipeline/xml.py)
- Transformação para CSL e aplicação do estilo (hoje
_format_via_citeproc, build_full_citation)
- Escolha entre nota editorial, citação gerada e fallback (hoje uma linha em
pipeline/docx.py: xml_pipe.extract_cite_as_part_one(xml_tree) or xml_pipe.build_full_citation(...))
Subtarefas
Considerações e notas
Reorganização pura, sem mudança de comportamento esperada.
Explicitamente fora de escopo (o próprio revisor retratou esse trecho no review do PR #1350): reaproveitar packtools.sps.models.article_contribs para os metadados de contribuidores, e refatorar os extratores existentes do pipeline PDF.
Descrição da tarefa
No review do PR #1350 (issue #1349, campo "CITE AS"), o revisor sugeriu concentrar a lógica de citação num módulo dedicado, em vez de deixá-la espalhada em
pipeline/xml.py(hoje com mais de 1300 linhas, misturando extração de corpo, tabela, figura, rodapé e citação no mesmo arquivo). É uma reorganização pura, sem mudança de comportamento - separada do PR #1350 para não bloquear um fix já pronto.Criar
packtools.sps.formats.pdf.citation, responsável por:_extract_citation_authors,_build_csl_referenceempipeline/xml.py)_format_via_citeproc,build_full_citation)pipeline/docx.py:xml_pipe.extract_cite_as_part_one(xml_tree) or xml_pipe.build_full_citation(...))Subtarefas
extract_cite_as_part_one,_extract_citation_authors,_build_csl_reference,_format_via_citeproc,build_full_citationdepipeline/xml.pypara o novo módulocitation.pypipeline/docx.pypara o novo módulotest_xml.pypara umtest_citation.pydedicadotests/sps/formats/pdf/continua passando, sem mudança de comportamentoConsiderações e notas
Reorganização pura, sem mudança de comportamento esperada.
Explicitamente fora de escopo (o próprio revisor retratou esse trecho no review do PR #1350): reaproveitar
packtools.sps.models.article_contribspara os metadados de contribuidores, e refatorar os extratores existentes do pipeline PDF.