14
14
BeforeHookError ,
15
15
AfterHookError ,
16
16
)
17
+ from devcycle_python_sdk .models .eval_reason import (
18
+ DefaultReasonDetails ,
19
+ EvalReason ,
20
+ EvalReasons ,
21
+ )
17
22
from devcycle_python_sdk .models .eval_hook import EvalHook
18
23
from devcycle_python_sdk .models .eval_hook_context import HookContext
19
24
from devcycle_python_sdk .models .user import DevCycleUser
@@ -121,7 +126,9 @@ def variable(self, user: DevCycleUser, key: str, default_value: Any) -> Variable
121
126
except NotFoundError :
122
127
logger .warning (f"DevCycle: Variable not found: { key } " )
123
128
return Variable .create_default_variable (
124
- key = key , default_value = default_value
129
+ key = key ,
130
+ default_value = default_value ,
131
+ default_reason_detail = DefaultReasonDetails .MISSING_VARIABLE ,
125
132
)
126
133
except BeforeHookError as e :
127
134
self .eval_hooks_manager .run_error (context , e )
@@ -130,7 +137,9 @@ def variable(self, user: DevCycleUser, key: str, default_value: Any) -> Variable
130
137
except Exception as e :
131
138
logger .error (f"DevCycle: Error evaluating variable: { e } " )
132
139
return Variable .create_default_variable (
133
- key = key , default_value = default_value
140
+ key = key ,
141
+ default_value = default_value ,
142
+ default_reason_detail = DefaultReasonDetails .ERROR ,
134
143
)
135
144
finally :
136
145
self .eval_hooks_manager .run_finally (context , variable )
@@ -143,7 +152,9 @@ def variable(self, user: DevCycleUser, key: str, default_value: Any) -> Variable
143
152
f"DevCycle: Variable { key } is type { type (variable .value )} , but default value is type { type (default_value )} " ,
144
153
)
145
154
return Variable .create_default_variable (
146
- key = key , default_value = default_value
155
+ key = key ,
156
+ default_value = default_value ,
157
+ default_reason_detail = DefaultReasonDetails .TYPE_MISMATCH ,
147
158
)
148
159
149
160
return variable
0 commit comments