strideutils 0.7.9__tar.gz → 0.7.10__tar.gz
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- {strideutils-0.7.9 → strideutils-0.7.10}/.bumpversion.cfg +1 -1
- {strideutils-0.7.9 → strideutils-0.7.10}/PKG-INFO +1 -1
- {strideutils-0.7.9 → strideutils-0.7.10}/pyproject.toml +1 -1
- {strideutils-0.7.9 → strideutils-0.7.10}/strideutils/redis_connector.py +10 -6
- {strideutils-0.7.9 → strideutils-0.7.10}/strideutils.egg-info/PKG-INFO +1 -1
- {strideutils-0.7.9 → strideutils-0.7.10}/tests/test_redis_connector.py +12 -6
- {strideutils-0.7.9 → strideutils-0.7.10}/.github/workflows/lint.yml +0 -0
- {strideutils-0.7.9 → strideutils-0.7.10}/.github/workflows/publish.yml +0 -0
- {strideutils-0.7.9 → strideutils-0.7.10}/.github/workflows/test.yml +0 -0
- {strideutils-0.7.9 → strideutils-0.7.10}/.github/workflows/version.yaml +0 -0
- {strideutils-0.7.9 → strideutils-0.7.10}/.gitignore +0 -0
- {strideutils-0.7.9 → strideutils-0.7.10}/LICENSE +0 -0
- {strideutils-0.7.9 → strideutils-0.7.10}/MANIFEST.in +0 -0
- {strideutils-0.7.9 → strideutils-0.7.10}/Makefile +0 -0
- {strideutils-0.7.9 → strideutils-0.7.10}/README.md +0 -0
- {strideutils-0.7.9 → strideutils-0.7.10}/setup.cfg +0 -0
- {strideutils-0.7.9 → strideutils-0.7.10}/strideutils/Makefile +0 -0
- {strideutils-0.7.9 → strideutils-0.7.10}/strideutils/__init__.py +0 -0
- {strideutils-0.7.9 → strideutils-0.7.10}/strideutils/coingecko.py +0 -0
- {strideutils-0.7.9 → strideutils-0.7.10}/strideutils/config_examples/env.local.example +0 -0
- {strideutils-0.7.9 → strideutils-0.7.10}/strideutils/config_examples/strideutils_config.yaml.example +0 -0
- {strideutils-0.7.9 → strideutils-0.7.10}/strideutils/cryptography.py +0 -0
- {strideutils-0.7.9 → strideutils-0.7.10}/strideutils/exec_tx.py +0 -0
- {strideutils-0.7.9 → strideutils-0.7.10}/strideutils/invariant_helpers.py +0 -0
- {strideutils-0.7.9 → strideutils-0.7.10}/strideutils/run_safely.py +0 -0
- {strideutils-0.7.9 → strideutils-0.7.10}/strideutils/sheets_connector.py +0 -0
- {strideutils-0.7.9 → strideutils-0.7.10}/strideutils/slack_connector.py +0 -0
- {strideutils-0.7.9 → strideutils-0.7.10}/strideutils/stride_alerts.py +0 -0
- {strideutils-0.7.9 → strideutils-0.7.10}/strideutils/stride_config.py +0 -0
- {strideutils-0.7.9 → strideutils-0.7.10}/strideutils/stride_requests.py +0 -0
- {strideutils-0.7.9 → strideutils-0.7.10}/strideutils/strideutils/__init__.pyi +0 -0
- {strideutils-0.7.9 → strideutils-0.7.10}/strideutils/twilio_connector.py +0 -0
- {strideutils-0.7.9 → strideutils-0.7.10}/strideutils/types.py +0 -0
- {strideutils-0.7.9 → strideutils-0.7.10}/strideutils.egg-info/SOURCES.txt +0 -0
- {strideutils-0.7.9 → strideutils-0.7.10}/strideutils.egg-info/dependency_links.txt +0 -0
- {strideutils-0.7.9 → strideutils-0.7.10}/strideutils.egg-info/requires.txt +0 -0
- {strideutils-0.7.9 → strideutils-0.7.10}/strideutils.egg-info/top_level.txt +0 -0
- {strideutils-0.7.9 → strideutils-0.7.10}/tests/test_config.py +0 -0
- {strideutils-0.7.9 → strideutils-0.7.10}/tests/test_encryption.py +0 -0
- {strideutils-0.7.9 → strideutils-0.7.10}/tests/test_sheets_connector.py +0 -0
- {strideutils-0.7.9 → strideutils-0.7.10}/tests/test_slack_connector.py +0 -0
- {strideutils-0.7.9 → strideutils-0.7.10}/tests/test_twilio_connector.py +0 -0
|
@@ -63,7 +63,7 @@ ALL_DATABASE_NAMES = list(DATABASE_ENVIRONMENT_CONFIGS.keys())
|
|
|
63
63
|
|
|
64
64
|
|
|
65
65
|
class RedisClient:
|
|
66
|
-
"""Redis client to connect to
|
|
66
|
+
"""Redis client to connect to multiple databases at once"""
|
|
67
67
|
|
|
68
68
|
# Mapping of database name to redis client
|
|
69
69
|
_dbs: Dict[str, redis.Redis] = {}
|
|
@@ -73,17 +73,21 @@ class RedisClient:
|
|
|
73
73
|
Initializes Redis database connections.
|
|
74
74
|
|
|
75
75
|
Args:
|
|
76
|
-
|
|
77
|
-
|
|
76
|
+
db_name_or_names: Optional database name or list of database names to initialize.
|
|
77
|
+
If None, initializes all databases.
|
|
78
78
|
|
|
79
79
|
Raises:
|
|
80
|
-
ValueError: If
|
|
80
|
+
ValueError: If db_name_or_names is an empty list or contains invalid database names.
|
|
81
81
|
"""
|
|
82
|
-
|
|
82
|
+
self._dbs: Dict[str, redis.Redis] = {}
|
|
83
|
+
|
|
84
|
+
db_names = [db_name_or_names] if isinstance(db_name_or_names, str) else db_name_or_names
|
|
85
|
+
|
|
83
86
|
if db_names is not None and len(db_names) == 0:
|
|
84
|
-
raise ValueError("
|
|
87
|
+
raise ValueError("db_name_or_names cannot be an empty list")
|
|
85
88
|
|
|
86
89
|
db_names = db_names or ALL_DATABASE_NAMES
|
|
90
|
+
|
|
87
91
|
invalid_db_names = [name for name in db_names if name not in ALL_DATABASE_NAMES]
|
|
88
92
|
if invalid_db_names:
|
|
89
93
|
raise ValueError(f"Invalid Redis database names: {invalid_db_names}")
|
|
@@ -4,9 +4,7 @@ from strideutils.redis_connector import RedisClient
|
|
|
4
4
|
|
|
5
5
|
@pytest.fixture(autouse=True)
|
|
6
6
|
def reset_redis_client():
|
|
7
|
-
RedisClient._reset()
|
|
8
7
|
yield
|
|
9
|
-
RedisClient._reset()
|
|
10
8
|
|
|
11
9
|
@pytest.fixture
|
|
12
10
|
def mock_redis():
|
|
@@ -36,10 +34,18 @@ def redis_client(mock_redis, mock_env_vars):
|
|
|
36
34
|
client = RedisClient()
|
|
37
35
|
return client
|
|
38
36
|
|
|
39
|
-
|
|
40
|
-
|
|
41
|
-
|
|
42
|
-
|
|
37
|
+
|
|
38
|
+
def test_redis_client_non_singleton():
|
|
39
|
+
"""Test that each RedisClient instance is independent"""
|
|
40
|
+
client1 = RedisClient(['public'])
|
|
41
|
+
client2 = RedisClient(['frontend'])
|
|
42
|
+
|
|
43
|
+
# Different instances
|
|
44
|
+
assert client1 is not client2
|
|
45
|
+
|
|
46
|
+
# Different database connections
|
|
47
|
+
assert set(client1._dbs.keys()) == {'public'}
|
|
48
|
+
assert set(client2._dbs.keys()) == {'frontend'}
|
|
43
49
|
|
|
44
50
|
def test_init_with_specific_dbs():
|
|
45
51
|
client = RedisClient(['public', 'frontend'])
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
{strideutils-0.7.9 → strideutils-0.7.10}/strideutils/config_examples/strideutils_config.yaml.example
RENAMED
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|