From 8288e26001dc999f99cf6778ce37121195659031 Mon Sep 17 00:00:00 2001 From: Federico Bond Date: Tue, 18 Jul 2023 22:56:30 -0300 Subject: [PATCH] feat: clone InMemoryProvider flag storage to prevent mutations Signed-off-by: Federico Bond --- open_feature/provider/in_memory_provider.py | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/open_feature/provider/in_memory_provider.py b/open_feature/provider/in_memory_provider.py index 0b71749f..0a375282 100644 --- a/open_feature/provider/in_memory_provider.py +++ b/open_feature/provider/in_memory_provider.py @@ -20,7 +20,7 @@ class InMemoryMetadata(Metadata): T = typing.TypeVar("T", covariant=True) -@dataclass +@dataclass(frozen=True) class InMemoryFlag(typing.Generic[T]): flag_key: str default_variant: str @@ -58,7 +58,7 @@ class InMemoryProvider(AbstractProvider): _flags: FlagStorage def __init__(self, flags: FlagStorage): - self._flags = flags + self._flags = flags.copy() def get_metadata(self) -> Metadata: return InMemoryMetadata()