MCPcopy
hub / github.com/reflex-dev/reflex / create

Method create

reflex/istate/manager/__init__.py:56–92  ·  view source on GitHub ↗

Create a new state manager. Returns: The state manager (either disk, memory or redis). Raises: InvalidStateManagerModeError: If the state manager mode is invalid.

(cls)

Source from the content-addressed store, hash-verified

54
55 @classmethod
56 def create(cls):
57 """Create a new state manager.
58
59 Returns:
60 The state manager (either disk, memory or redis).
61
62 Raises:
63 InvalidStateManagerModeError: If the state manager mode is invalid.
64 """
65 config = get_config()
66 if (
67 "state_manager_mode" not in config._non_default_attributes
68 and prerequisites.parse_redis_url() is not None
69 ):
70 config.state_manager_mode = constants.StateManagerMode.REDIS
71 if config.state_manager_mode == constants.StateManagerMode.MEMORY:
72 from reflex.istate.manager.memory import StateManagerMemory
73
74 return StateManagerMemory()
75 if config.state_manager_mode == constants.StateManagerMode.DISK:
76 from reflex.istate.manager.disk import StateManagerDisk
77
78 return StateManagerDisk()
79 if config.state_manager_mode == constants.StateManagerMode.REDIS:
80 redis = prerequisites.get_redis()
81 if redis is not None:
82 from reflex.istate.manager.redis import StateManagerRedis
83
84 # make sure expiration values are obtained only from the config object on creation
85 return StateManagerRedis(
86 redis=redis,
87 token_expiration=config.redis_token_expiration,
88 lock_expiration=config.redis_lock_expiration,
89 lock_warning_threshold=config.redis_lock_warning_threshold,
90 )
91 msg = f"Expected one of: DISK, MEMORY, REDIS, got {config.state_manager_mode}"
92 raise InvalidStateManagerModeError(msg)
93
94 @staticmethod
95 def _coerce_token(token: StateToken[TOKEN_TYPE] | str) -> StateToken[TOKEN_TYPE]:

Callers

nothing calls this directly

Calls 5

get_configFunction · 0.90
StateManagerMemoryClass · 0.90
StateManagerDiskClass · 0.90
StateManagerRedisClass · 0.90

Tested by

no test coverage detected