byte-vortex commited on
Commit
9c3e19a
·
verified ·
1 Parent(s): 5e49205

Deploy Myco from CI

Browse files
Files changed (1) hide show
  1. models/mushroom.py +11 -10
models/mushroom.py CHANGED
@@ -1,13 +1,8 @@
1
- """Domain models for Myco discoveries."""
2
-
3
  from dataclasses import dataclass
4
- from typing import Any
5
-
6
 
7
  @dataclass(frozen=True)
8
  class Mushroom:
9
- """A discoverable mushroom species for the MycoDex."""
10
-
11
  name: str
12
  rarity: str
13
  habitat: str
@@ -17,8 +12,15 @@ class Mushroom:
17
  danger: str = "Unknown"
18
 
19
  @classmethod
20
- def from_dict(cls, data: dict[str, Any]) -> "Mushroom":
21
- """Create a mushroom from JSON-compatible data."""
 
 
 
 
 
 
 
22
  return cls(
23
  name=str(data["name"]),
24
  rarity=str(data["rarity"]),
@@ -29,8 +31,7 @@ class Mushroom:
29
  danger=str(data.get("danger", "Unknown")),
30
  )
31
 
32
- def to_dict(self) -> dict[str, str]:
33
- """Return a JSON/state-friendly representation."""
34
  return {
35
  "name": self.name,
36
  "rarity": self.rarity,
 
 
 
1
  from dataclasses import dataclass
2
+ from typing import Any, Dict
 
3
 
4
  @dataclass(frozen=True)
5
  class Mushroom:
 
 
6
  name: str
7
  rarity: str
8
  habitat: str
 
12
  danger: str = "Unknown"
13
 
14
  @classmethod
15
+ def from_dict(cls, data: Dict[str, Any]) -> "Mushroom":
16
+ if not isinstance(data, dict):
17
+ raise TypeError("Mushroom.from_dict expects a dict")
18
+
19
+ required = ["name", "rarity", "habitat", "lore"]
20
+ missing = [k for k in required if k not in data or data[k] is None]
21
+ if missing:
22
+ raise ValueError(f"Mushroom.from_dict missing required fields: {', '.join(missing)}")
23
+
24
  return cls(
25
  name=str(data["name"]),
26
  rarity=str(data["rarity"]),
 
31
  danger=str(data.get("danger", "Unknown")),
32
  )
33
 
34
+ def to_dict(self) -> Dict[str, str]:
 
35
  return {
36
  "name": self.name,
37
  "rarity": self.rarity,