fix(spsxml): fix double-tuple nesting in plumber pipes #146
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?
Este PR corrige um erro de
AttributeErrorque ocorria durante a geração do XML SPS. O problema era causado por um retorno incorreto nos pipesXMLDeleteRepeatedElementWithIdeXMLDeleteRepeatedTranslations.Ao retornar
data, xmlem vez de apenasdata, a estrutura de dados era encapsulada em uma tupla adicional, fazendo com que os pipes subsequentes recebessem uma tupla no lugar do objeto de dados (raw), impedindo o acesso a atributos comoarticle_titles.Onde a revisão poderia começar?
A revisão deve começar no arquivo
scielo_classic_website/spsxml/sps_xml_pipes.py, especificamente nas classes:XMLDeleteRepeatedElementWithId(métodotransform)XMLDeleteRepeatedTranslations(métodotransform)Como este poderia ser testado manualmente?
scielo_classic_website.S0034-89102004000200001(ou qualquer um que utilize o fluxo de geração de XML completo).document.generate_full_xml(None).AttributeError: 'tuple' object has no attribute 'article_titles'.Algum cenário de contexto que queira dar?
O erro foi identificado no processamento do pacote SPS
1518-8787-rsp-38-02-149. No frameworkplumber, a saída de um pipe é a entrada do próximo. Quando um pipe retornadata, xmlestando odatajá definido como uma tupla(raw, xml), o resultado final enviado ao próximo estágio torna-se((raw, xml), xml). Isso quebra o desempacotamento padrãoraw, xml = datanos pipes seguintes que tentam acessar metadados do artigo.Screenshots
N/A (Erro de processamento em log/backend).
Quais são tickets relevantes?
Referências
plumber(Python).htmlxml/models.py.