Coverage for custom_components/dev_shell_server/browser.py: 46%

11 statements  

« prev     ^ index     » next       coverage.py v7.15.4, created at 2026-10-03 09:02 +0000

1"""`open(...)` - open a URL for something in this Home Assistant instance. 

2 

3Currently just `open(hass)`, opening the instance's own frontend URL (whichever 

4one homeassistant.helpers.network.get_url resolves). Expected to grow forms that 

5take a specific entity/device/area and build a deep link into the frontend. 

6""" 

7 

8from __future__ import annotations 

9 

10import webbrowser 

11from typing import Any 

12 

13from homeassistant.core import HomeAssistant 

14from homeassistant.helpers.network import get_url 

15 

16 

17def open_target(target: Any) -> str: 

18 """Open target in a browser and return the URL opened.""" 

19 if not isinstance(target, HomeAssistant): 

20 raise TypeError( 

21 f"open() doesn't know how to open a {type(target).__name__} yet" 

22 ) 

23 url = get_url(target) 

24 webbrowser.open(url) 

25 return url