Skip to content

Commit 47bc871

Browse files
committed
fix test precision
1 parent bbdd31d commit 47bc871

File tree

1 file changed

+18
-0
lines changed

1 file changed

+18
-0
lines changed

lonboard/view_state.py

Lines changed: 18 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -1,11 +1,29 @@
11
from __future__ import annotations
22

33
from dataclasses import dataclass
4+
from typing import TYPE_CHECKING, Any
45

6+
if TYPE_CHECKING:
7+
import sys
58

9+
if sys.version_info >= (3, 11):
10+
from typing import Self
11+
else:
12+
from typing_extensions import Self
13+
14+
15+
@dataclass(frozen=True)
616
class BaseViewState:
717
"""Base class for view states."""
818

19+
@classmethod
20+
def _from_frontend(cls, **kwargs: dict[str, Any]) -> Self:
21+
allowed_field_names = {
22+
field.name for field in cls.__dataclass_fields__.values()
23+
}
24+
filtered_kwargs = {k: v for k, v in kwargs.items() if k in allowed_field_names}
25+
return cls(**filtered_kwargs)
26+
927

1028
@dataclass(frozen=True)
1129
class MapViewState(BaseViewState):

0 commit comments

Comments
 (0)