Coverage for gws-app/gws/plugin/geojson/model.py: 100%
19 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`` model."""
3from typing import Optional
5import gws.base.model
6import gws.config.util
7import gws.gis.source
9from . import provider
12# @TODO generally, vector models should be converted to sqlite/gpkg in order to support search
15@gws.ext.config.model('geojson')
16class Config(gws.base.model.Config):
17 """Model for features from a GeoJSON file."""
19 provider: Optional[provider.Config]
20 """GeoJSON file with the model features."""
23@gws.ext.object.model('geojson')
24class Object(gws.base.model.default_model.Object):
25 """GeoJSON model."""
27 provider: provider.Object
28 """The GeoJSON provider."""
30 def configure(self):
31 self.uidName = 'id'
32 self.geometryName = 'geometry'
33 self.configure_model()
35 def configure_provider(self):
36 return gws.config.util.configure_provider_for(self, provider.Object)
38 def find_features(self, search, user, **kwargs):
39 # fmt: off
40 return [
41 self.feature_from_record(rec, user)
42 for rec in self.provider.get_records(search)
43 ]
44 # fmt: on