Skip to content

Commit f201917

Browse files
committed
Add pretty/str/repr to CameraSettings
Introduce a human-readable representation for CameraSettings by adding a pretty() method and overriding __str__ and __repr__. The pretty output formats key fields (name, index, backend, enabled, fps, size, exposure, gain, rotation) and displays a readable crop region (showing 'none' or coordinate range with 'edge' fallbacks). This aids debugging and logging without changing existing validation or behavior.
1 parent 59a2449 commit f201917

1 file changed

Lines changed: 21 additions & 0 deletions

File tree

dlclivegui/config.py

Lines changed: 21 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -43,6 +43,27 @@ class CameraSettings(BaseModel):
4343
enabled: bool = True
4444
properties: dict[str, Any] = Field(default_factory=dict)
4545

46+
def pretty(self) -> str:
47+
crop = (
48+
"none"
49+
if self.get_crop_region() is None
50+
else f"({self.crop_x0}, {self.crop_y0}) -> ({self.crop_x1 or 'edge'}, {self.crop_y1 or 'edge'})"
51+
)
52+
return (
53+
f"CameraSettings[\n"
54+
f" name={self.name!r}, index={self.index}, backend={self.backend!r}, enabled={self.enabled}\n"
55+
f" fps={self.fps}, size={self.width or 'auto'}x{self.height or 'auto'}, "
56+
f"exposure={self.exposure or 'auto'}, gain={self.gain or 'auto'}\n"
57+
f" rotation={self.rotation}, crop={crop}\n"
58+
f"]"
59+
)
60+
61+
def __str__(self) -> str:
62+
return self.pretty()
63+
64+
def __repr__(self) -> str:
65+
return self.pretty()
66+
4667
@field_validator("fps", mode="before")
4768
@classmethod
4869
def _coerce_fps(cls, v):

0 commit comments

Comments
 (0)