Skip to content

Matter-Tech/matter-persistence

Repository files navigation

matter-persistence

PyPI - Version PyPI - Python Version

Table of Contents

Installation

pip install matter-persistence

Usage

CacheManager and DatabaseManager are the two central objects in matter_persistence.

CacheManager encapsulates a connection pool to Redis, and exposes methods to save, retrieve, and delete values from Redis.

Check usage example for redis CacheManager in examples/redis.

DatabaseManager encapsulates a Sqlalchemy connection pool to a relational database (e.g. Postgresql), and exposes methods to obtain a Connection or a Session.

Furthermore, there is a CustomBase in matter_persistence/sql/base.py, which is a convenient Base class for Sqlalchemy ORM classes. It has an "id" primary key field, which is of type UUID, a "created", "updated" field that is inherited from sqlalchemy_utils' Timestamp, and a "deleted" field, which is of type nullable timezone aware DateTime.

The get and find functions in matter_persistence/sql/utils.py assume a deleted field!

Check usage example for DatabaseManager and some of the utility functions in examples/sql.

Contributing

for contributions, check the CONTRIBUTING.md file