mirror of
https://github.com/BerriAI/litellm.git
synced 2026-10-12 03:48:56 +00:00
refactor(repositories): import proxy helpers inside the methods that use them (#45781)
Part of LIT-9423
This commit is contained in:
parent
0fc6d4d16d
commit
d1c4d0666f
5 changed files with 26 additions and 23 deletions
|
|
@ -10,7 +10,6 @@ from collections.abc import Mapping, Sequence
|
|||
from typing import TYPE_CHECKING, Any, Final, Protocol, TypeAlias
|
||||
|
||||
from litellm.models.credentials import CredentialItem
|
||||
from litellm.proxy.common_utils.config_sync_pubsub import wrap_table_actions_for_config_sync
|
||||
from litellm.repositories.base_repository import DbRecord, record_to_dict
|
||||
from litellm.repositories.prisma_protocols import TableActions
|
||||
|
||||
|
|
@ -45,6 +44,8 @@ class CredentialsRepository:
|
|||
|
||||
@property
|
||||
def table(self) -> "_CredentialsTable":
|
||||
from litellm.proxy.common_utils.config_sync_pubsub import wrap_table_actions_for_config_sync
|
||||
|
||||
return wrap_table_actions_for_config_sync(
|
||||
actions=self.prisma_client.db.litellm_credentialstable,
|
||||
table_name="litellm_credentialstable",
|
||||
|
|
|
|||
|
|
@ -10,8 +10,6 @@ from typing_extensions import assert_never
|
|||
|
||||
from litellm import constants
|
||||
from litellm._logging import verbose_proxy_logger
|
||||
from litellm.proxy.db.db_span import db_span
|
||||
from litellm.proxy.db.prisma_query_span import sql_relation
|
||||
from litellm.repositories.chunked_in import find_many_in
|
||||
from litellm.repositories.daily_activity_sql import (
|
||||
ExportCursor,
|
||||
|
|
@ -146,6 +144,9 @@ class DailyActivityRepository:
|
|||
self._proxy_reads = proxy_reads
|
||||
|
||||
async def _query(self, query: SqlQuery) -> tuple[Mapping[str, object], ...]:
|
||||
from litellm.proxy.db.db_span import db_span
|
||||
from litellm.proxy.db.prisma_query_span import sql_relation
|
||||
|
||||
first_line: Final = query.sql.lstrip().splitlines()[0].lstrip("(").strip()
|
||||
verbose_proxy_logger.debug("DailyActivityRepository query: %s", first_line)
|
||||
async with db_span("daily_activity_query", sql_relation(query.sql)):
|
||||
|
|
|
|||
|
|
@ -9,10 +9,6 @@ from typing import TYPE_CHECKING, Final
|
|||
from pydantic import ConfigDict, TypeAdapter
|
||||
|
||||
from litellm.models.model import LiteLLM_ProxyModelTable
|
||||
from litellm.proxy.common_utils.encrypt_decrypt_utils import (
|
||||
decrypt_value_helper,
|
||||
encrypt_value_helper,
|
||||
)
|
||||
from litellm.repositories.base_repository import BaseRepository, DbRecord, record_to_dict
|
||||
from litellm.repositories.prisma_protocols import TableActions
|
||||
from litellm.repositories.table_repositories import PrismaTableRepository
|
||||
|
|
@ -44,6 +40,8 @@ class ModelRepository(BaseRepository[LiteLLM_ProxyModelTable]):
|
|||
|
||||
def _encrypt_litellm_params(self, litellm_params: Mapping[str, object]) -> Mapping[str, object]:
|
||||
"""Encrypt sensitive values in litellm_params."""
|
||||
from litellm.proxy.common_utils.encrypt_decrypt_utils import encrypt_value_helper
|
||||
|
||||
encrypted: Final = {}
|
||||
for key, value in litellm_params.items():
|
||||
if isinstance(value, str):
|
||||
|
|
@ -54,6 +52,8 @@ class ModelRepository(BaseRepository[LiteLLM_ProxyModelTable]):
|
|||
|
||||
def _decrypt_litellm_params(self, litellm_params: Mapping[str, object]) -> Mapping[str, object]:
|
||||
"""Decrypt sensitive values in litellm_params."""
|
||||
from litellm.proxy.common_utils.encrypt_decrypt_utils import decrypt_value_helper
|
||||
|
||||
decrypted: Final = {}
|
||||
for key, value in litellm_params.items():
|
||||
if isinstance(value, str):
|
||||
|
|
|
|||
|
|
@ -9,7 +9,6 @@ methods; richer repositories live in their own modules.
|
|||
|
||||
from typing import TYPE_CHECKING, Any, Final, Generic
|
||||
|
||||
from litellm.proxy.common_utils.config_sync_pubsub import wrap_table_actions_for_config_sync
|
||||
from litellm.repositories.prisma_protocols import RowT_co, TableActions
|
||||
|
||||
if TYPE_CHECKING:
|
||||
|
|
@ -33,6 +32,8 @@ class PrismaTableRepository(Generic[RowT_co]):
|
|||
|
||||
@property
|
||||
def table(self) -> TableActions[RowT_co]:
|
||||
from litellm.proxy.common_utils.config_sync_pubsub import wrap_table_actions_for_config_sync
|
||||
|
||||
actions: Final[TableActions[RowT_co]] = getattr(
|
||||
self.prisma_client.writer_db if self._use_writer else self.prisma_client.db, self.table_name
|
||||
)
|
||||
|
|
|
|||
|
|
@ -417,11 +417,11 @@ class TestModelRepository:
|
|||
|
||||
@pytest.mark.asyncio
|
||||
@patch(
|
||||
"litellm.repositories.model_repository.encrypt_value_helper",
|
||||
"litellm.proxy.common_utils.encrypt_decrypt_utils.encrypt_value_helper",
|
||||
side_effect=lambda v, **kw: f"encrypted_{v}",
|
||||
)
|
||||
@patch(
|
||||
"litellm.repositories.model_repository.decrypt_value_helper",
|
||||
"litellm.proxy.common_utils.encrypt_decrypt_utils.decrypt_value_helper",
|
||||
side_effect=lambda v, **kw: v,
|
||||
)
|
||||
async def test_create_model_encrypts_params(self, mock_decrypt, mock_encrypt, repo):
|
||||
|
|
@ -435,11 +435,11 @@ class TestModelRepository:
|
|||
|
||||
@pytest.mark.asyncio
|
||||
@patch(
|
||||
"litellm.repositories.model_repository.encrypt_value_helper",
|
||||
"litellm.proxy.common_utils.encrypt_decrypt_utils.encrypt_value_helper",
|
||||
side_effect=lambda v, **kw: f"encrypted_{v}",
|
||||
)
|
||||
@patch(
|
||||
"litellm.repositories.model_repository.decrypt_value_helper",
|
||||
"litellm.proxy.common_utils.encrypt_decrypt_utils.decrypt_value_helper",
|
||||
side_effect=lambda v, **kw: v,
|
||||
)
|
||||
async def test_create_model_all_fields(self, mock_decrypt, mock_encrypt, repo):
|
||||
|
|
@ -459,11 +459,11 @@ class TestModelRepository:
|
|||
|
||||
@pytest.mark.asyncio
|
||||
@patch(
|
||||
"litellm.repositories.model_repository.encrypt_value_helper",
|
||||
"litellm.proxy.common_utils.encrypt_decrypt_utils.encrypt_value_helper",
|
||||
side_effect=lambda v, **kw: f"encrypted_{v}",
|
||||
)
|
||||
@patch(
|
||||
"litellm.repositories.model_repository.decrypt_value_helper",
|
||||
"litellm.proxy.common_utils.encrypt_decrypt_utils.decrypt_value_helper",
|
||||
side_effect=lambda v, **kw: v,
|
||||
)
|
||||
async def test_update_model_all_fields(self, mock_decrypt, mock_encrypt, repo):
|
||||
|
|
@ -485,7 +485,7 @@ class TestModelRepository:
|
|||
|
||||
@pytest.mark.asyncio
|
||||
@patch(
|
||||
"litellm.repositories.model_repository.decrypt_value_helper",
|
||||
"litellm.proxy.common_utils.encrypt_decrypt_utils.decrypt_value_helper",
|
||||
side_effect=lambda v, **kw: v,
|
||||
)
|
||||
async def test_find_all(self, mock_decrypt, repo):
|
||||
|
|
@ -508,7 +508,7 @@ class TestModelRepository:
|
|||
|
||||
@pytest.mark.asyncio
|
||||
@patch(
|
||||
"litellm.repositories.model_repository.decrypt_value_helper",
|
||||
"litellm.proxy.common_utils.encrypt_decrypt_utils.decrypt_value_helper",
|
||||
side_effect=lambda v, **kw: v,
|
||||
)
|
||||
async def test_find_unblocked(self, mock_decrypt, repo):
|
||||
|
|
@ -525,7 +525,7 @@ class TestModelRepository:
|
|||
|
||||
@pytest.mark.asyncio
|
||||
@patch(
|
||||
"litellm.repositories.model_repository.decrypt_value_helper",
|
||||
"litellm.proxy.common_utils.encrypt_decrypt_utils.decrypt_value_helper",
|
||||
side_effect=lambda v, **kw: v,
|
||||
)
|
||||
async def test_find_by_name(self, mock_decrypt, repo):
|
||||
|
|
@ -541,11 +541,11 @@ class TestModelRepository:
|
|||
|
||||
@pytest.mark.asyncio
|
||||
@patch(
|
||||
"litellm.repositories.model_repository.encrypt_value_helper",
|
||||
"litellm.proxy.common_utils.encrypt_decrypt_utils.encrypt_value_helper",
|
||||
side_effect=lambda v, **kw: v,
|
||||
)
|
||||
@patch(
|
||||
"litellm.repositories.model_repository.decrypt_value_helper",
|
||||
"litellm.proxy.common_utils.encrypt_decrypt_utils.decrypt_value_helper",
|
||||
side_effect=lambda v, **kw: v,
|
||||
)
|
||||
async def test_update_model(self, mock_decrypt, mock_encrypt, repo):
|
||||
|
|
@ -564,7 +564,7 @@ class TestModelRepository:
|
|||
|
||||
@pytest.mark.asyncio
|
||||
@patch(
|
||||
"litellm.repositories.model_repository.decrypt_value_helper",
|
||||
"litellm.proxy.common_utils.encrypt_decrypt_utils.decrypt_value_helper",
|
||||
side_effect=lambda v, **kw: v,
|
||||
)
|
||||
async def test_delete_model(self, mock_decrypt, repo):
|
||||
|
|
@ -578,11 +578,11 @@ class TestModelRepository:
|
|||
|
||||
@pytest.mark.asyncio
|
||||
@patch(
|
||||
"litellm.repositories.model_repository.encrypt_value_helper",
|
||||
"litellm.proxy.common_utils.encrypt_decrypt_utils.encrypt_value_helper",
|
||||
side_effect=lambda v, **kw: v,
|
||||
)
|
||||
@patch(
|
||||
"litellm.repositories.model_repository.decrypt_value_helper",
|
||||
"litellm.proxy.common_utils.encrypt_decrypt_utils.decrypt_value_helper",
|
||||
side_effect=lambda v, **kw: v,
|
||||
)
|
||||
async def test_block_unblock_model(self, mock_decrypt, mock_encrypt, repo):
|
||||
|
|
@ -2012,7 +2012,7 @@ class TestModelRepositoryExtended:
|
|||
|
||||
@pytest.mark.asyncio
|
||||
@patch(
|
||||
"litellm.repositories.model_repository.decrypt_value_helper",
|
||||
"litellm.proxy.common_utils.encrypt_decrypt_utils.decrypt_value_helper",
|
||||
side_effect=lambda value, **kw: value,
|
||||
)
|
||||
async def test_find_by_team_id(self, mock_decrypt, repo):
|
||||
|
|
|
|||
Loading…
Add table
Reference in a new issue