-
Notifications
You must be signed in to change notification settings - Fork 0
Description
Description
The plan is to work on backend abstraction in Resource Catalogue.
The goal is to add support for backend filtering through pygeofilter library.
pygeofilter is a pure Python parser implementation of OGC filtering standards. pygeofilter can be used on various levels. It provides parsers for various filtering languages, such as ECQL or CQL-JSON.
Each parser creates an abstract syntax tree (AST) representation of that filter expression and thus unifies all possible languages to a single common denominator.
A parsed AST can then be evaluated and transformed into filtering mechanisms in the required context. Usually this is a language such as SQL or an object-relational mapper (ORM) interfacing a data store of some kind.
There are a number of pre-defined backends available, where parsed expressions can be applied. For the moment this includes:
- Django
- sqlalchemy
- (Geo)Pandas
- Elasticsearch
- OpenSearch
- Pure Python object filtering
Acceptance criteria
- Resource Catalogue integrates with pygeofilter.
- Resource Catalogue unit and integration tests pass with pygeofilter enabled.