Skip to content

fix: corrige 87 F821 do scanner de qualidade do OSGeo (bloqueio 5.2.0) - #854

Merged
phborba merged 1 commit into
masterfrom
dev
Aug 11, 2026
Merged

phborba merged 1 commit into
masterfrom
dev

Conversation

@phborba

@phborba phborba commented Aug 11, 2026

Copy link
Copy Markdown
Collaborator

Quinto bloqueio da release 5.2.0: 87 issues undefined name (flake8 F821). Vários eram bugs reais de lógica (variável errada, import faltando, código morto depois de return, um algoritmo inteiro com createInstance/name/displayName copiados de outro e colidindo de ID). Detalhe completo no corpo do commit.

Removidos também (zero chamador, confirmado): QGIS_Scripts/, QmlTools/, ToolboxTools/ (instalador de Models/Scripts) e 2 widgets órfãos, com limpeza correspondente em translation.pro e metadata.txt.

py_compile limpo, black, bandit limpo, empacotamento local confirmado.

🤖 Generated with Claude Code

Quinto bloqueio da release 5.2.0 no repositório do OSGeo: 87 issues
"undefined name" (flake8 F821). Fase 3 do trabalho de flake8 já tinha
sinalizado essa categoria como candidata a bug real (não só estilo) --
confirmado aqui em vários casos.

Bugs de lógica reais corrigidos (rodavam e quebravam, ou davam
resultado errado):
- clipAndCopyFeaturesBetweenDatabasesAlgorithm.py: variável usada na
  própria expressão que a define (UnboundLocalError garantido).
- sapLoadLayersAlgorithm.py: processAlgorithm nunca chamava
  getAbstractDb(), abstractDb não existia.
- runFMESAPAlgorithm.py: fmeDict no lugar de inputJSONData.
- fixNetworkAlgorithm.py: createInstance()/name()/displayName()/tr()
  copiados de outro algoritmo (TopologicalLineConnectivityAdjustment),
  colidindo com o id do algoritmo real desse nome -- agora aponta pra
  FixNetworkAlgorithm com id próprio ("fixnetwork"). Mais parâmetros
  opcionais (snap/minArea) passados com variável inexistente em vez de
  omitidos, excludePrimaryKeys copiado errado, e return final
  referenciando output/variável que não existem.
- identifyNetworkConstructionIssuesAlgorithm.py, donutHoleExtractorAlgorithm.py,
  overlayElementsWithAreasAlgorithm.py, graphHandler.py: typos de
  variável / branch errado / lógica de grafo simples vs MultiGraph
  misturada (código de MultiGraph colado no branch de grafo simples).
- shapefileDb.py: bloco morto depois de um return (nunca executava).
- exploreServerWidget.py: self.iface nunca existia (widget instanciado
  sem parâmetro iface) -- trocado por qgis.utils.iface, consistente com
  o único uso que já funcionava no arquivo.
- postgisLayerLoader.py: checkNotNull() sem o parâmetro attrName que o
  corpo usa.

Imports faltando (Qgis, QMessageBox, QColor, QThreadPool, QLineEdit,
QgsProcessingException, QgsGeometry, etc.) em ~15 arquivos. unicode()
(Python 2) trocado por str() em 2 arquivos. FEATID_ON_GROUPBY = FEATID_ON_GROUPBY
(auto-referência) virou string literal, como as outras constantes da
classe.

Removidos (zero chamador confirmado, a pedido do usuário):
- core/Misc/QGIS_Scripts/ inteiro (scripts legados de Processing v1,
  usavam variáveis injetadas em runtime pelo executor antigo do QGIS --
  não eram bug, mas também não são mais usados).
- core/Misc/QmlTools/ inteiro.
- gui/Misc/ToolboxTools/ inteiro (instalador de Models/Scripts -- removida
  também a menção em metadata.txt).
- customSnaperParameterSelector.py/.ui, customTableWidget.py/.ui.
- Referências correspondentes limpas em translation.pro (inclusive uma
  sobra antiga do reverse_geocode.py, removido numa correção anterior
  desta mesma release e nunca limpo de lá). DsgTools_pt.ts não foi
  editado à mão -- entradas órfãs viram obsolete sozinhas no próximo
  lupdate, é o fluxo normal do Qt Linguist.

py_compile limpo no repo inteiro, black rodado, bandit limpo (categorias
já tratadas), empacotamento local confirmado.

Co-Authored-By: Claude Sonnet 5 <noreply@anthropic.com>
@phborba
phborba merged commit 00b0877 into master Aug 11, 2026
1 check failed
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.

1 participant