Simplify device __repr__ (#805)

Previously:
```
>>> dev
<DeviceType.Hub model H100 at 192.168.xx.xx (Smart Hub), is_on: False - dev specific: {'overheated': False, 'signal_level': 2, 'SSID': 'xx'}>
>>> dev.children[0]
<ChildDevice Temperature Humidity Sensor of <DeviceType.Hub model H100 at 192.168.xx.xx (Smart Hub), is_on: False - dev specific: {'overheated': False, 'signal_level': 2, 'SSID': 'xx'}>>
```

Now:
```
>>> dev
Device: <DeviceType.Hub at 192.168.xx.xx - Smart Hub (H100)>
>>> dev.children[0]
<DeviceType.Sensor Temperature Humidity Sensor (T315) of <DeviceType.Hub at 192.168.xx.xx - Smart Hub (H100)>>
```
This commit is contained in:
Teemu R 2024-03-05 13:35:19 +01:00 committed by GitHub
parent fcad0d2344
commit eb4c048b57
No known key found for this signature in database
GPG Key ID: B5690EEEBB952194
3 changed files with 3 additions and 7 deletions

View File

@ -366,8 +366,4 @@ class Device(ABC):
def __repr__(self):
if self._last_update is None:
return f"<{self.device_type} at {self.host} - update() needed>"
return (
f"<{self.device_type} model {self.model} at {self.host}"
f" ({self.alias}), is_on: {self.is_on}"
f" - dev specific: {self.state_information}>"
)
return f"<{self.device_type} at {self.host} - {self.alias} ({self.model})>"

View File

@ -56,4 +56,4 @@ class SmartChildDevice(SmartDevice):
return dev_type
def __repr__(self):
return f"<ChildDevice {self.alias} of {self._parent}>"
return f"<{self.device_type} {self.alias} ({self.model}) of {self._parent}>"

View File

@ -198,7 +198,7 @@ async def test_mac(dev):
async def test_representation(dev):
import re
pattern = re.compile("<.* model .* at .* (.*), is_on: .* - dev specific: .*>")
pattern = re.compile("<DeviceType\..+ at .+? - .*? \(.+?\)>")
assert pattern.match(str(dev))