Spaces:
Sleeping
Sleeping
""" | |
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 | |