@@ -127,42 +127,14 @@ def _resolve(
127127 default_value , flag_metadata = metadata , reason = Reason .DISABLED
128128 )
129129
130+
130131 if not flag .targeting :
131- variant , value = flag .default
132- if variant is None :
133- return FlagResolutionDetails (
134- value ,
135- variant = variant ,
136- reason = Reason .ERROR ,
137- error_code = ErrorCode .FLAG_NOT_FOUND ,
138- flag_metadata = metadata ,
139- )
140- if variant not in flag .variants :
141- raise GeneralError (
142- f"Resolved variant { variant } not in variants config."
143- )
144- return FlagResolutionDetails (
145- value , variant = variant , flag_metadata = metadata , reason = Reason .STATIC
146- )
132+ return _default_resolve (flag , metadata , Reason .STATIC )
147133
148134 try :
149135 variant = targeting (flag .key , flag .targeting , evaluation_context )
150136 if variant is None :
151- variant , value = flag .default
152- if variant is None :
153- return FlagResolutionDetails (
154- value ,
155- variant = variant ,
156- reason = Reason .ERROR ,
157- error_code = ErrorCode .FLAG_NOT_FOUND ,
158- flag_metadata = metadata ,
159- )
160- return FlagResolutionDetails (
161- value ,
162- variant = variant ,
163- flag_metadata = metadata ,
164- reason = Reason .DEFAULT ,
165- )
137+ return _default_resolve (flag , metadata , Reason .DEFAULT )
166138
167139 # convert to string to support shorthand (boolean in python is with capital T hence the special case)
168140 if isinstance (variant , bool ):
@@ -188,3 +160,21 @@ def _resolve(
188160 reason = Reason .TARGETING_MATCH ,
189161 flag_metadata = metadata ,
190162 )
163+
164+ def _default_resolve (flag , metadata , reason ) -> FlagResolutionDetails :
165+ variant , value = flag .default
166+ if variant is None :
167+ return FlagResolutionDetails (
168+ value ,
169+ variant = variant ,
170+ reason = Reason .ERROR ,
171+ error_code = ErrorCode .FLAG_NOT_FOUND ,
172+ flag_metadata = metadata ,
173+ )
174+ if variant not in flag .variants :
175+ raise GeneralError (
176+ f"Resolved variant { variant } not in variants config."
177+ )
178+ return FlagResolutionDetails (
179+ value , variant = variant , flag_metadata = metadata , reason = reason
180+ )
0 commit comments