11import typing
2- from dataclasses import dataclass
2+ from dataclasses import dataclass , field
33
44from openfeature ._backports .strenum import StrEnum
55from openfeature .evaluation_context import EvaluationContext
66from openfeature .exception import ErrorCode
7- from openfeature .flag_evaluation import FlagResolutionDetails , Reason
7+ from openfeature .flag_evaluation import FlagMetadata , FlagResolutionDetails , Reason
88from openfeature .hook import Hook
99from openfeature .provider .metadata import Metadata
1010from openfeature .provider .provider import AbstractProvider
@@ -29,6 +29,7 @@ class State(StrEnum):
2929 flag_key : str
3030 default_variant : str
3131 variants : typing .Dict [str , T ]
32+ flag_metadata : FlagMetadata = field (default_factory = dict )
3233 state : State = State .ENABLED
3334 context_evaluator : typing .Optional [
3435 typing .Callable [["InMemoryFlag" , EvaluationContext ], FlagResolutionDetails [T ]]
@@ -46,6 +47,7 @@ def resolve(
4647 value = self .variants [self .default_variant ],
4748 reason = Reason .STATIC ,
4849 variant = self .default_variant ,
50+ flag_metadata = self .flag_metadata ,
4951 )
5052
5153
0 commit comments