Skip to content

Conversation

@Gabriel-Enrico
Copy link

Refatoração: Melhorar qualidade de código em export_model.py e save_load.py

Contexto

Enquanto estudava o código do PaddleOCR, notei que alguns módulos utilitários tinham oportunidades de melhoria. Decidi fazer uma análise estática usando Pylint e Radon para identificar os principais problemas.

O que foi feito

export_model.py

A função dynamic_to_static() estava muito complexa com muitas condições aninhadas. Consegui simplificar bastante:

  • Extraí a lógica de formas dinâmicas em _get_common_dynamic_shapes()
  • Isolei a configuração de pós-processamento em _build_postprocess_config()
  • Criei um mapeamento centralizado em _get_input_spec_map() para evitar o grande if/elif

Também melhorei a documentação e modernizei o código para usar f-strings.

save_load.py

Notei que as funções load_model() e load_pretrained_params() tinham praticamente o mesmo código de carregamento de parâmetros. Extraí isso em _load_and_set_params() para evitar duplicação.

Também organizei melhor a lógica de salvamento separando em _save_nlp_model() e _save_generic_model().

Resultados da Refatoração

Métrica Antes Depois Melhoria
Complexidade Ciclomática Grau E Grau B ↓ 74%
Duplicação de Código ~40% ~0% ↓ 100%
Problemas Pylint 574 379 ↓ 34%

Notas Importantes

  • Nenhuma mudança no comportamento externo do código
  • Todos os testes de sintaxe passaram
  • O código agora está mais fácil de entender e manter

@paddle-bot
Copy link

paddle-bot bot commented Oct 22, 2025

Thanks for your contribution!

@CLAassistant
Copy link

CLAassistant commented Oct 22, 2025

CLA assistant check
All committers have signed the CLA.

@paddle-bot paddle-bot bot added the contrib/contributor Contributor-related discussion or task. label Oct 22, 2025
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

contrib/contributor Contributor-related discussion or task.

Projects

None yet

Development

Successfully merging this pull request may close these issues.

2 participants