Skip to content

Commit bb2e35a

Browse files
Drew KaulDrew Kaul
authored andcommitted
scene class initial attempt
1 parent 3b6aeab commit bb2e35a

File tree

1 file changed

+43
-0
lines changed

1 file changed

+43
-0
lines changed

nucleus/scene.py

Lines changed: 43 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,43 @@
1+
from dataclasses import dataclass
2+
from typing import Optional, Dict, List
3+
from enum import Enum
4+
5+
6+
class DatasetItemType(Enum):
7+
IMAGE = "image"
8+
POINTCLOUD = "pointcloud"
9+
VIDEO = "video"
10+
11+
12+
@dataclass
13+
class SceneDatasetItem:
14+
url: str
15+
type: DatasetItemType
16+
reference_id: Optional[str] = None
17+
metadata: Optional[dict] = None
18+
19+
20+
@dataclass
21+
class Frame:
22+
items: Dict[str, SceneDatasetItem]
23+
24+
def __post_init__(self):
25+
for key, value in self.items.items():
26+
assert isinstance(key, str), "All keys must be names of sensors"
27+
assert isinstance(
28+
value, SceneDatasetItem
29+
), "All values must be SceneDatasetItems"
30+
31+
32+
@dataclass
33+
class Scene:
34+
frames: List[Frame]
35+
reference_id: str
36+
metadata: Optional[dict] = None
37+
38+
39+
@dataclass
40+
class LidarScene(Scene):
41+
def __post_init__(self):
42+
# do validation here for lidar scene
43+
pass

0 commit comments

Comments
 (0)