Files
AI/참고/guardrails-main/guardrails/settings.py
2026-05-12 19:40:31 +09:00

51 lines
1.2 KiB
Python

import threading
from typing import Optional
from guardrails.classes.rc import RC
class Settings:
_instance = None
_lock = threading.Lock()
_rc: RC
_watch_mode_enabled: bool
"""Whether to use a local server for running Guardrails."""
use_server: Optional[bool]
"""Whether to disable tracing.
Traces are only ever sent to a telemetry sink you specify via
environment variables or by instantiating a TracerProvider.
"""
disable_tracing: Optional[bool]
def __new__(cls) -> "Settings":
if cls._instance is None:
with cls._lock:
if cls._instance is None:
cls._instance = super(Settings, cls).__new__(cls)
cls._instance._initialize()
return cls._instance
def _initialize(self):
self.use_server = None
self.disable_tracing = None
self._rc = RC.load()
self._watch_mode_enabled = False
@property
def rc(self) -> RC:
if self._rc is None:
self._rc = RC.load()
return self._rc
@rc.setter
def rc(self, value: RC):
self._rc = value
@property
def watch_mode_enabled(self) -> bool:
return self._watch_mode_enabled
settings = Settings()