From b96e186ba45ebaa9cfe4eb4c44c43ac0e0ac2e14 Mon Sep 17 00:00:00 2001 From: miro Date: Sun, 29 Dec 2024 01:15:52 +0000 Subject: [PATCH 1/2] fix: missing hivemind entrypoint in setup.py --- setup.py | 2 ++ 1 file changed, 2 insertions(+) diff --git a/setup.py b/setup.py index 080a040..da522a9 100644 --- a/setup.py +++ b/setup.py @@ -39,6 +39,7 @@ def required(requirements_file): if pkg.strip() and not pkg.startswith("#")] +PLUGIN_ENTRY_POINT = 'hivemind-redis-db-plugin=hivemind_redis_database:RedisDB' setup( name='hivemind-redis-database', @@ -48,6 +49,7 @@ def required(requirements_file): license='Apache-2.0', author='jarbasAi', install_requires=required("requirements.txt"), + entry_points={'hivemind.database': PLUGIN_ENTRY_POINT}, author_email='jarbasai@mailfence.com', description='redis database plugin for hivemind-core' ) From 4db36fc970e1f7f155a006652ca0bbce7dfc093e Mon Sep 17 00:00:00 2001 From: miro Date: Sun, 29 Dec 2024 01:53:31 +0000 Subject: [PATCH 2/2] fix: move to remote db base class --- hivemind_redis_database/__init__.py | 25 ++++++++++++++----------- requirements.txt | 3 ++- 2 files changed, 16 insertions(+), 12 deletions(-) diff --git a/hivemind_redis_database/__init__.py b/hivemind_redis_database/__init__.py index 3250a8d..8cf69e7 100644 --- a/hivemind_redis_database/__init__.py +++ b/hivemind_redis_database/__init__.py @@ -1,25 +1,28 @@ +from dataclasses import dataclass from typing import List, Union, Optional, Iterable import redis from ovos_utils.log import LOG -from hivemind_plugin_manager.database import Client, AbstractDB, cast2client +from hivemind_plugin_manager.database import Client, AbstractRemoteDB, cast2client -class RedisDB(AbstractDB): +@dataclass +class RedisDB(AbstractRemoteDB): """Database implementation using Redis with RediSearch support.""" - - def __init__(self, host: str = "127.0.0.1", port: int = 6379, password: Optional[str] = None, redis_db: int = 0): + host: str = "127.0.0.1" + port: int = 6379 + name: str = "clients" + subfolder: str = "hivemind-core" + password: Optional[str] = None + database_id: Optional[int] = None + + def __post_init__(self): """ Initialize the RedisDB connection. - - Args: - host: Redis server host. - port: Redis server port. - redis_db: Redis database index. """ - self.redis = redis.StrictRedis(host=host, port=port, db=redis_db, - password=password if password else None, + self.redis = redis.StrictRedis(host=self.host, port=self.port, db=self.database_id, + password=self.password if self.password else None, decode_responses=True) # TODO - support for a proper search index diff --git a/requirements.txt b/requirements.txt index 311862a..c2bb2b3 100644 --- a/requirements.txt +++ b/requirements.txt @@ -1 +1,2 @@ -py-redis \ No newline at end of file +py-redis +hivemind-plugin-manager>=0.1.0,<1.0.0 \ No newline at end of file