aboutsummaryrefslogtreecommitdiff
path: root/.venv/lib/python3.12/site-packages/litellm/proxy/common_utils/proxy_state.py
diff options
context:
space:
mode:
Diffstat (limited to '.venv/lib/python3.12/site-packages/litellm/proxy/common_utils/proxy_state.py')
-rw-r--r--.venv/lib/python3.12/site-packages/litellm/proxy/common_utils/proxy_state.py36
1 files changed, 36 insertions, 0 deletions
diff --git a/.venv/lib/python3.12/site-packages/litellm/proxy/common_utils/proxy_state.py b/.venv/lib/python3.12/site-packages/litellm/proxy/common_utils/proxy_state.py
new file mode 100644
index 00000000..edd18c60
--- /dev/null
+++ b/.venv/lib/python3.12/site-packages/litellm/proxy/common_utils/proxy_state.py
@@ -0,0 +1,36 @@
+"""
+This file is used to store the state variables of the proxy server.
+
+Example: `spend_logs_row_count` is used to store the number of rows in the `LiteLLM_SpendLogs` table.
+"""
+
+from typing import Any, Literal
+
+from litellm.proxy._types import ProxyStateVariables
+
+
+class ProxyState:
+ """
+ Proxy state class has get/set methods for Proxy state variables.
+ """
+
+ # Note: mypy does not recognize when we fetch ProxyStateVariables.annotations.keys(), so we also need to add the valid keys here
+ valid_keys_literal = Literal["spend_logs_row_count"]
+
+ def __init__(self) -> None:
+ self.proxy_state_variables: ProxyStateVariables = ProxyStateVariables(
+ spend_logs_row_count=0,
+ )
+
+ def get_proxy_state_variable(
+ self,
+ variable_name: valid_keys_literal,
+ ) -> Any:
+ return self.proxy_state_variables.get(variable_name, None)
+
+ def set_proxy_state_variable(
+ self,
+ variable_name: valid_keys_literal,
+ value: Any,
+ ) -> None:
+ self.proxy_state_variables[variable_name] = value