Skip to content

Abstract backend support in pycsw (Q6) #180

@kalxas

Description

@kalxas

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.

Contributes to

Metadata

Metadata

Assignees

Labels

BR038Scalable to support millions of recordsBR039Extensible for integration with alternative backendsEOfarmenhancementNew feature or requestpycsw

Type

No type

Projects

No projects

Relationships

None yet

Development

No branches or pull requests

Issue actions