Coverage for gws-app/gws/plugin/qgis/finder.py: 0%
20 statements
« prev ^ index » next coverage.py v7.16.2, created at 2026-10-05 13:35 +0200
« prev ^ index » next coverage.py v7.16.2, created at 2026-10-05 13:35 +0200
1"""Finder for QGIS project layers."""
3from typing import Optional
5import gws
6import gws.base.model
7import gws.base.search
8import gws.base.ows.client
9import gws.config.util
10import gws.gis.source
12from . import provider
15@gws.ext.config.finder('qgis')
16class Config(gws.base.search.finder.Config):
17 """Search in QGIS project layers via QGIS Server."""
19 provider: Optional[provider.Config]
20 """QGIS project to search."""
21 sourceLayers: Optional[gws.gis.source.LayerFilter]
22 """Source layers to search."""
25@gws.ext.object.finder('qgis')
26class Object(gws.base.ows.client.finder.Object):
27 """Finder that queries QGIS project layers with GetFeatureInfo."""
29 supportsGeometrySearch = True
30 provider: provider.Object
31 """QGIS provider."""
33 def configure_provider(self):
34 return gws.config.util.configure_provider_for(self, provider.Object)
36 def can_run(self, search, user):
37 return (
38 super().can_run(search, user)
39 and bool(search.shape)
40 and search.shape.type == gws.GeometryType.point)