Skip to content

fix: move import de PIL.Image para o topo do módulo e remove duplicação de cálculo de largura natural em figure.py - #1312

Open
Rossi-Luciano wants to merge 1 commit into
scieloorg:masterfrom
Rossi-Luciano:fix/figure-natural-width-dedup
Open

fix: move import de PIL.Image para o topo do módulo e remove duplicação de cálculo de largura natural em figure.py#1312
Rossi-Luciano wants to merge 1 commit into
scieloorg:masterfrom
Rossi-Luciano:fix/figure-natural-width-dedup

Conversation

@Rossi-Luciano

Copy link
Copy Markdown
Contributor

O que esse PR faz?

Endereça os 2 comentários de review deixados em aberto pelo pitangainnovare no #1300 (já mesclado), em packtools/sps/formats/pdf/renderer/docx/figure.py:

  1. Move os 3 imports locais from PIL import Image (em decide_figure_layout, probe_image_dpi e _natural_width_capped) para um único import no topo do módulo. O try/except em torno deles servia para lidar com Pillow ausente, mas Pillow já é dependência obrigatória do pacote desde a fase 3 do Atualizar as dependências do packtools #1251 (Pillow>=12.3.0 em setup.py), então o fallback nunca dispara na prática.
  2. Extrai o trecho duplicado que calcula a largura natural de uma imagem a partir de pixels e DPI (presente em decide_figure_layout e _natural_width_capped) em um helper único, _natural_width_cm(px_w, dpi), que devolve sempre um Cm. Os dois fluxos agora convertem a partir do mesmo Cm, eliminando o risco de decisão de layout e largura de inserção divergirem por interpretação de unidade.

Onde a revisão poderia começar?

packtools/sps/formats/pdf/renderer/docx/figure.py, função _natural_width_cm e os dois pontos que passam a chamá-la (decide_figure_layout e _natural_width_capped).

Como este poderia ser testado manualmente?

Rodar tests/sps/formats/pdf/ (136 testes passando após a mudança, mesma baseline de antes).

Algum cenário de contexto que queira dar?

Os 2 comentários ficaram deliberadamente adiados no #1300 porque o trecho a tocar era o que o #1294 estava reescrevendo na época; o #1294 já foi mesclado, então essa razão para adiar não se aplica mais.

Screenshots

Não aplicável, mudança interna sem efeito visual (mesmo comportamento, mesmos testes passando).

Quais são os tickets relevantes?

Segue os comentários de review não resolvidos em #1300.

Referências

N/A


Segurança da informação (NSI.04)

Este PR manipula dados sensíveis ou pessoais (LGPD)?

  • Sim
  • Não

Este PR altera autenticação, autorização, controle de acesso ou gerenciamento de sessão?

  • Sim
  • Não

Este PR introduz, atualiza ou remove dependências de terceiros?

  • Sim
  • Não

Este PR foi validado pelo pipeline de segurança (SonarQube / Trivy)?

  • Sim
  • Não aplicável a este PR (mudança interna de organização de código, sem novas dependências ou superfícies expostas)

Este PR concatena, monta ou executa comandos SQL, HTML ou JavaScript a partir de entrada externa?

  • Sim
  • Não

Este PR expõe novos endpoints, telas ou serviços?

  • Sim
  • Não

Algum segredo, senha, chave ou token está sendo adicionado ao código-fonte?

  • Não, nenhum segredo foi commitado
  • Sim

…ão de cálculo de largura natural em figure.py
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.

2 participants