GispoCoding / arho-feature-template

GNU General Public License v2.0
0 stars 0 forks source link

Tarkemmat tyypitystarkistukset #52

Open LKajan opened 1 month ago

LKajan commented 1 month ago

qgis python-paketin kansioon (C:\OSGeo4W\apps\qgis-ltr\python\qgis) pitää lisätä py.typed tiedosto, jotta mypy tarkistaa tyypitykset oikein.

QGIS sanoo, että esim. iface.mapCanvas() palauttaa Optional[QgsMapCanvas], eli voi teoriassa olla myös None, jolloin mypy antaa virheitä Item "None" of "Optional[QgsMapCanvas]" has no attribute "mapToolSet" Mypy[union-attr]. Nyt lisäsin tarkastukset aina vastaaville tyyliin:

canvas = iface.mapCanvas()
if canvas is None:
    raise UnexpectedNoneError
canvas.mapToolSet.connect(self.templater.digitize_map_tool.deactivate)

Riittäisikö, jos vaan luottaisi, että canvas on aina olemassa ja lisäisi vain ignoren:

iface.mapCanvas().mapToolSet.connect(self.templater.digitize_map_tool.deactivate)  # type: ignore[union-attr]