Coverage for gws-app/gws/plugin/geojson/finder.py: 100%
22 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"""The ``geojson`` finder."""
3from typing import Optional
5import gws
6import gws.base.search
7import gws.config.util
9from . import provider
12@gws.ext.config.finder('geojson')
13class Config(gws.base.search.finder.Config):
14 """Search in features from a GeoJSON file."""
16 provider: Optional[provider.Config]
17 """GeoJSON file to search in."""
20@gws.ext.object.finder('geojson')
21class Object(gws.base.search.finder.Object):
22 """GeoJSON finder."""
24 supportsGeometrySearch = True
25 provider: provider.Object
26 """The GeoJSON provider."""
28 def configure(self):
29 self.configure_provider()
30 self.configure_models()
31 self.configure_templates()
33 def configure_provider(self):
34 """Configure the GeoJSON provider.
36 Returns:
37 ``True`` if a provider was set.
38 """
39 return gws.config.util.configure_provider_for(self, provider.Object)
41 def configure_models(self):
42 return gws.config.util.configure_models_for(self, with_default=True)
44 def create_model(self, cfg):
45 """Create a GeoJSON model that uses the provider of the finder.
47 Args:
48 cfg: Model configuration, or ``None`` for the default model.
50 Returns:
51 The model.
52 """
53 return self.create_child(
54 gws.ext.object.model,
55 cfg,
56 type=self.extType,
57 _defaultProvider=self.provider,
58 )