|
@@ -1,6 +1,6 @@
|
|
|
+import inspect
|
|
|
import json
|
|
|
-from dataclasses import dataclass, asdict
|
|
|
-
|
|
|
+from dataclasses import asdict, dataclass
|
|
|
from typing import Optional
|
|
|
|
|
|
|
|
@@ -23,6 +23,16 @@ class JSONMetadata(object):
|
|
|
def json(self):
|
|
|
return json.dumps(self.asdict)
|
|
|
|
|
|
+ @classmethod
|
|
|
+ def from_dict(cls, env):
|
|
|
+ return cls(
|
|
|
+ **{
|
|
|
+ k: v
|
|
|
+ for k, v in env.items()
|
|
|
+ if k in inspect.signature(cls).parameters
|
|
|
+ }
|
|
|
+ )
|
|
|
+
|
|
|
|
|
|
@dataclass
|
|
|
class BoardGameScore(JSONMetadata):
|