8000 Add summary view to readme and drop table · python-kasa/python-kasa@a3fb0ec · GitHub
[go: up one dir, main page]

Skip to content

Commit a3fb0ec

Browse files
committed
Add summary view to readme and drop table
1 parent 255d936 commit a3fb0ec

File tree

5 files changed

+193
-39
lines changed

5 files changed

+193
-39
lines changed

README.md

Lines changed: 22 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -212,11 +212,30 @@ Note, that this works currently only on kasa-branded devices which use port 9999
212212

213213
## Supported devices
214214

215-
In principle, most kasa-branded devices that are locally controllable using the official Kasa mobile app work with this library.
215+
The following devices have been tested and confirmed as working. If your device is unlisted but working, please open a pull request to update the list and add a fixture file (use `python -m devtools.dump_devinfo` to generate one).
216216

217-
The following [link of devices](SUPPORTED.md) lists the devices that have been manually verified to work.
218-
**If your device is unlisted but working, please open a pull request to update the list and add a fixture file (use `python -m devtools.dump_devinfo` to generate one).**
217+
<!--SUPPORTED_START-->
218+
### Supported Kasa devices
219219

220+
- **Plugs** - EP10, EP25<sup>\*</sup>, ES20M, HS100<sup>\*\*</sup>, HS103, HS105, HS110, HS220, KP100, KP105, KP115, KP125, KP125M<sup>\*</sup>, KP401, KP405, KS220M, KS230
221+
- **Power Strips** - EP40, HS107, HS300, KP200, KP303, KP400
222+
- **Wall Switches** - HS200, HS210, KS200M, KS205<sup>\*</sup>, KS225<sup>\*</sup>
223+
- **Bulbs** - KL110, KL120, KL125, KL130, KL135, KL50, KL60, LB100, LB110, LB120, LB130
224+
- **Light Strips** - KL400L5, KL420L5, KL430
225+
226+
### Supported Tapo<sup>\*</sup> devices
227+
228+
- **Plugs** - P100, P110, P125M, P135, TP15
229+
- **Power Strips** - P300, TP25
230+
- **Wall Switches** - S500D, S505
231+
- **Bulbs** - L510B, L510E, L530E
232+
- **Light Strips** - L900-10, L900-5, L920-5, L930-5
233+
234+
<!--SUPPORTED_END-->
235+
<sup>*</sup>&nbsp; Model requires authentication<br>
236+
<sup>**</sup> Newer versions require authentication
237+
238+
The following [supported devices link](SUPPORTED.md) lists the detailed device hardware and software versions that have been manually verified to work.
220239

221240
## Resources
222241

SUPPORTED.md

Lines changed: 116 additions & 11 deletions
Original file line numberDiff line numberDiff line change
@@ -1,11 +1,116 @@
1-
<sub>&#x25B8;&nbsp; Expand to see tested versions</sub><br>
2-
<sub><sup>*</sup>&nbsp; Model requires authentication</sub><br>
3-
<sub><sup>**</sup> Newer versions require authentication</sub>
4-
5-
| **Type** | **Kasa** | **Tapo** <sup>\*</sup> |
6-
|--- |--- |--- |
7-
| Plugs | <details><summary>EP10<sup></sup></summary>Hardware 1.0(US) Firmare 1.0.2</details><details><summary>EP25<sup> *</sup></summary>Hardware 2.6(US) Firmare 1.0.1<sup> *</sup><br>Hardware 2.6(US) Firmare 1.0.2<sup> *</sup></details><details><summary>ES20M<sup></sup></summary>Hardware 1.0(US) Firmare 1.0.8</details><details><summary>HS100<sup> **</sup></summary>Hardware 2.0(US) Firmare 1.5.6<br>Hardware 4.1(UK) Firmare 1.1.0<sup> *</sup><br>Hardware 1.0(US) Firmare 1.2.5<br>Hardware 1.0(UK) Firmare 1.2.6</details><details><summary>HS103<sup></sup></summary>Hardware 1.0(US) Firmare 1.5.7<br>Hardware 2.1(US) Firmare 1.1.4<br>Hardware 2.1(US) Firmare 1.1.2</details><details><summary>HS105<sup></sup></summary>Hardware 1.0(US) Firmare 1.2.9<br>Hardware 1.0(US) Firmare 1.5.6</details><details><summary>HS110<sup></sup></summary>Hardware 2.0(EU) Firmare 1.5.2<br>Hardware 4.0(EU) Firmare 1.0.4<br>Hardware 1.0(EU) Firmare 1.2.5<br>Hardware 1.0(US) Firmare 1.0.8</details><details><summary>HS220<sup></sup></summary>Hardware 1.0(US) Firmare 1.5.7<br>Hardware 2.0(US) Firmare 1.0.3<br>Hardware 1.0(US) Firmare 1.5.7</details><details><summary>KP100<sup></sup></summary>Hardware 3.0(US) Firmare 1.0.1</details><details><summary>KP105<sup></sup></summary>Hardware 1.0(UK) Firmare 1.0.7<br>Hardware 1.0(UK) Firmare 1.0.5</details><details><summary>KP115<sup></sup></summary>Hardware 1.0(US) Firmare 1.0.21<br>Hardware 1.0(US) Firmare 1.0.17<br>Hardware 1.0(EU) Firmare 1.0.16</details><details><summary>KP125<sup></sup></summary>Hardware 1.0(US) Firmare 1.0.6</details><details><summary>KP125M<sup> *</sup></summary>Hardware 1.0(US) Firmare 1.1.3<sup> *</sup></details><details><summary>KP401<sup></sup></summary>Hardware 1.0(US) Firmare 1.0.0</details><details><summary>KP405<sup></sup></summary>Hardware 1.0(US) Firmare 1.0.5</details><details><summary>KS220M<sup></sup></summary>Hardware 1.0(US) Firmare 1.0.4</details><details><summary>KS230<sup></sup></summary>Hardware 1.0(US) Firmare 1.0.14</details> | <details><summary>P100</summary>Hardware 1.0.0 Firmare 1.3.7<br>Hardware 1.0.0 Firmare 1.1.3</details><details><summary>P110</summary>Hardware 1.0(EU) Firmare 1.2.3<br>Hardware 1.0(UK) Firmare 1.3.0</details><details><summary>P125M</summary>Hardware 1.0(US) Firmare 1.1.0</details><details><summary>P135</summary>Hardware 1.0(US) Firmare 1.0.5</details><details><summary>TP15</summary>Hardware 1.0(US) Firmare 1.0.3</details> |
8-
| Power Strips | <details><summary>EP40<sup></sup></summary>Hardware 1.0(US) Firmare 1.0.2</details><details><summary>HS107<sup></sup></summary>Hardware 1.0(US) Firmare 1.0.8</details><details><summary>HS300<sup></sup></summary>Hardware 1.0(US) Firmare 1.0.10<br>Hardware 2.0(US) Firmare 1.0.3<br>Hardware 2.0(US) Firmare 1.0.12</details><details><summary>KP200<sup></sup></summary>Hardware 3.0(US) Firmare 1.0.3</details><details><summary>KP303<sup></sup></summary>Hardware 2.0(US) Firmare 1.0.3<br>Hardware 1.0(UK) Firmare 1.0.3</details><details><summary>KP400<sup></sup></summary>Hardware 1.0(US) Firmare 1.0.10<br>Hardware 2.0(US) Firmare 1.0.6</details> | <details><summary>P300</summary>Hardware 1.0(EU) Firmare 1.0.7<br>Hardware 1.0(EU) Firmare 1.0.13</details><details><summary>TP25</summary>Hardware 1.0(US) Firmare 1.0.2</details> |
9-
| Wall Switches | <details><summary>HS200<sup></sup></summary>Hardware 5.0(US) Firmare 1.0.2<br>Hardware 2.0(US) Firmare 1.5.7<br>Hardware 1.0(US) Firmare 1.1.0</details><details><summary>HS210<sup></sup></summary>Hardware 1.0(US) Firmare 1.5.8</details><details><summary>KS200M<sup></sup></summary>Hardware 1.0(US) Firmare 1.0.8</details><details><summary>KS205<sup> *</sup></summary>Hardware 1.0(US) Firmare 1.0.2<sup> *</sup></details><details><summary>KS225<sup> *</sup></summary>Hardware 1.0(US) Firmare 1.0.2<sup> *</sup></details> | <details><summary>S500D</summary>Hardware 1.0(US) Firmare 1.0.5</details><details><summary>S505</summary>Hardware 1.0(US) Firmare 1.0.2</details> |
10-
| Bulbs | <details><summary>KL110<sup></sup></summary>Hardware 1.0(US) Firmare 1.8.11</details><details><summary>KL120<sup></sup></summary>Hardware 1.0(US) Firmare 1.8.6</details><details><summary>KL125<sup></sup></summary>Hardware 4.0(US) Firmare 1.0.5<br>Hardware 2.0(US) Firmare 1.0.7<br>Hardware 1.20(US) Firmare 1.0.5</details><details><summary>KL130<sup></sup></summary>Hardware 1.0(US) Firmare 1.8.11<br>Hardware 1.0(EU) Firmare 1.8.8</details><details><summary>KL135<sup></sup></summary>Hardware 1.0(US) Firmare 1.0.6</details><details><summary>KL50<sup></sup></summary>Hardware 1.0(US) Firmare 1.1.13</details><details><summary>KL60<sup></sup></summary>Hardware 1.0(US) Firmare 1.1.13<br>Hardware 1.0(UN) Firmare 1.1.4</details><details><summary>LB100<sup></sup></summary>Hardware 1.0(US) Firmare 1.4.3</details><details><summary>LB110<sup></sup></summary>Hardware 1.0(US) Firmare 1.8.11</details><details><summary>LB120<sup></sup></summary>Hardware 1.0(US) Firmare 1.1.0</details><details><summary>LB130<sup></sup></summary>Hardware 1.0(US) Firmare 1.6.0</details> | <details><summary>L510B</summary>Hardware 3.0(EU) Firmare 1.0.5</details><details><summary>L510E</summary>Hardware 3.0(US) Firmare 1.0.5<br>Hardware 3.0(US) Firmare 1.1.2</details><details><summary>L530E</summary>Hardware 3.0(EU) Firmare 1.1.0<br>Hardware 3.0(EU) Firmare 1.0.6<br>Hardware 2.0(US) Firmare 1.1.0</details> |
11-
| Light Strips | <details><summary>KL400L5<sup></sup></summary>Hardware 1.0(US) Firmare 1.0.8<br>Hardware 1.0(US) Firmare 1.0.5</details><details><summary>KL420L5<sup></sup></summary>Hardware 1.0(US) Firmare 1.0.2</details><details><summary>KL430<sup></sup></summary>Hardware 2.0(US) Firmare 1.0.11<br>Hardware 2.0(US) Firmare 1.0.8<br>Hardware 1.0(US) Firmare 1.0.10<br>Hardware 2.0(US) Firmare 1.0.9<br>Hardware 2.0(UN) Firmare 1.0.8</details> | <details><summary>L900-10</summary>Hardware 1.0(US) Firmare 1.0.11<br>Hardware 1.0(EU) Firmare 1.0.17</details><details><summary>L900-5</summary>Hardware 1.0(EU) Firmare 1.1.0<br>Hardware 1.0(EU) Firmare 1.0.17</details><details><summary>L920-5</summary>Hardware 1.0(US) Firmare 1.1.3<br>Hardware 1.0(US) Firmare 1.1.0</details><details><summary>L930-5</summary>Hardware 1.0(US) Firmare 1.1.2</details> |
1+
# Supported devices
2+
3+
**If your device is unlisted but working, please open a pull request to update the list and add a fixture file (use `python -m devtools.dump_devinfo` to generate one).**
4+
5+
## Tested device versions
6+
7+
&#x25B8;&nbsp; Expand to see tested versions<br>
8+
<sup>*</sup>&nbsp; Model requires authentication<br>
9+
<sup>**</sup> Newer versions require authentication
10+
11+
<!--SUPPORTED_START-->
12+
### Supported Kasa devices
13+
14+
**Plugs**
15+
16+
<details><summary>EP10</summary>Hardware 1.0(US) Firmare 1.0.2</details>
17+
<details><summary>EP25<sup> *</sup></summary>Hardware 2.6(US) Firmare 1.0.1<sup> *</sup><br>Hardware 2.6(US) Firmare 1.0.2<sup> *</sup></details>
18+
<details><summary>ES20M</summary>Hardware 1.0(US) Firmare 1.0.8</details>
19+
<details><summary>HS100<sup> **</sup></summary>Hardware 2.0(US) Firmare 1.5.6<br>Hardware 4.1(UK) Firmare 1.1.0<sup> *</sup><br>Hardware 1.0(US) Firmare 1.2.5<br>Hardware 1.0(UK) Firmare 1.2.6</details>
20+
<details><summary>HS103</summary>Hardware 1.0(US) Firmare 1.5.7<br>Hardware 2.1(US) Firmare 1.1.4<br>Hardware 2.1(US) Firmare 1.1.2</details>
21+
<details><summary>HS105</summary>Hardware 1.0(US) Firmare 1.2.9<br>Hardware 1.0(US) Firmare 1.5.6</details>
22+
<details><summary>HS110</summary>Hardware 2.0(EU) Firmare 1.5.2<br>Hardware 4.0(EU) Firmare 1.0.4<br>Hardware 1.0(EU) Firmare 1.2.5<br>Hardware 1.0(US) Firmare 1.0.8</details>
23+
<details><summary>HS220</summary>Hardware 1.0(US) Firmare 1.5.7<br>Hardware 2.0(US) Firmare 1.0.3<br>Hardware 1.0(US) Firmare 1.5.7</details>
24+
<details><summary>KP100</summary>Hardware 3.0(US) Firmare 1.0.1</details>
25+
<details><summary>KP105</summary>Hardware 1.0(UK) Firmare 1.0.7<br>Hardware 1.0(UK) Firmare 1.0.5</details>
26+
<details><summary>KP115</summary>Hardware 1.0(US) Firmare 1.0.21<br>Hardware 1.0(US) Firmare 1.0.17<br>Hardware 1.0(EU) Firmare 1.0.16</details>
27+
<details><summary>KP125</summary>Hardware 1.0(US) Firmare 1.0.6</details>
28+
<details><summary>KP125M<sup> *</sup></summary>Hardware 1.0(US) Firmare 1.1.3<sup> *</sup></details>
29+
<details><summary>KP401</summary>Hardware 1.0(US) Firmare 1.0.0</details>
30+
<details><summary>KP405</summary>Hardware 1.0(US) Firmare 1.0.5</details>
31+
<details><summary>KS220M</summary>Hardware 1.0(US) Firmare 1.0.4</details>
32+
<details><summary>KS230</summary>Hardware 1.0(US) Firmare 1.0.14</details>
33+
<br>
34+
35+
**Power Strips**
36+
37+
<details><summary>EP40</summary>Hardware 1.0(US) Firmare 1.0.2</details>
38+
<details><summary>HS107</summary>Hardware 1.0(US) Firmare 1.0.8</details>
39+
<details><summary>HS300</summary>Hardware 1.0(US) Firmare 1.0.10<br>Hardware 2.0(US) Firmare 1.0.3<br>Hardware 2.0(US) Firmare 1.0.12</details>
40+
<details><summary>KP200</summary>Hardware 3.0(US) Firmare 1.0.3</details>
41+
<details><summary>KP303</summary>Hardware 2.0(US) Firmare 1.0.3<br>Hardware 1.0(UK) Firmare 1.0.3</details>
42+
<details><summary>KP400</summary>Hardware 1.0(US) Firmare 1.0.10<br>Hardware 2.0(US) Firmare 1.0.6</details>
43+
<br>
44+
45+
**Wall Switches**
46+
47+
<details><summary>HS200</summary>Hardware 5.0(US) Firmare 1.0.2<br>Hardware 2.0(US) Firmare 1.5.7<br>Hardware 1.0(US) Firmare 1.1.0</details>
48+
<details><summary>HS210</summary>Hardware 1.0(US) Firmare 1.5.8</details>
49+
<details><summary>KS200M</summary>Hardware 1.0(US) Firmare 1.0.8</details>
50+
<details><summary>KS205<sup> *</sup></summary>Hardware 1.0(US) Firmare 1.0.2<sup> *</sup></details>
51+
<details><summary>KS225<sup> *</sup></summary>Hardware 1.0(US) Firmare 1.0.2<sup> *</sup></details>
52+
<br>
53+
54+
**Bulbs**
55+
56+
<details><summary>KL110</summary>Hardware 1.0(US) Firmare 1.8.11</details>
57+
<details><summary>KL120</summary>Hardware 1.0(US) Firmare 1.8.6</details>
58+
<details><summary>KL125</summary>Hardware 4.0(US) Firmare 1.0.5<br>Hardware 2.0(US) Firmare 1.0.7<br>Hardware 1.20(US) Firmare 1.0.5</details>
59+
<details><summary>KL130</summary>Hardware 1.0(US) Firmare 1.8.11<br>Hardware 1.0(EU) Firmare 1.8.8</details>
60+
<details><summary>KL135</summary>Hardware 1.0(US) Firmare 1.0.6</details>
61+
<details><summary>KL50</summary>Hardware 1.0(US) Firmare 1.1.13</details>
62+
<details><summary>KL60</summary>Hardware 1.0(US) Firmare 1.1.13<br>Hardware 1.0(UN) Firmare 1.1.4</details>
63+
<details><summary>LB100</summary>Hardware 1.0(US) Firmare 1.4.3</details>
64+
<details><summary>LB110</summary>Hardware 1.0(US) Firmare 1.8.11</details>
65+
<details><summary>LB120</summary>Hardware 1.0(US) Firmare 1.1.0</details>
66+
<details><summary>LB130</summary>Hardware 1.0(US) Firmare 1.6.0</details>
67+
<br>
68+
69+
**Light Strips**
70+
71+
<details><summary>KL400L5</summary>Hardware 1.0(US) Firmare 1.0.8<br>Hardware 1.0(US) Firmare 1.0.5</details>
72+
<details><summary>KL420L5</summary>Hardware 1.0(US) Firmare 1.0.2</details>
73+
<details><summary>KL430</summary>Hardware 2.0(US) Firmare 1.0.11<br>Hardware 2.0(US) Firmare 1.0.8<br>Hardware 1.0(US) Firmare 1.0.10<br>Hardware 2.0(US) Firmare 1.0.9<br>Hardware 2.0(UN) Firmare 1.0.8</details>
74+
<br>
75+
76+
77+
### Supported Tapo<sup> *</sup> devices
78+
79+
**Plugs**
80+
81+
<details><summary>P100</summary>Hardware 1.0.0 Firmare 1.3.7<br>Hardware 1.0.0 Firmare 1.1.3</details>
82+
<details><summary>P110</summary>Hardware 1.0(EU) Firmare 1.2.3<br>Hardware 1.0(UK) Firmare 1.3.0</details>
83+
<details><summary>P125M</summary>Hardware 1.0(US) Firmare 1.1.0</details>
84+
<details><summary>P135</summary>Hardware 1.0(US) Firmare 1.0.5</details>
85+
<details><summary>TP15</summary>Hardware 1.0(US) Firmare 1.0.3</details>
86+
<br>
87+
88+
**Power Strips**
89+
90+
<details><summary>P300</summary>Hardware 1.0(EU) Firmare 1.0.7<br>Hardware 1.0(EU) Firmare 1.0.13</details>
91+
<details><summary>TP25</summary>Hardware 1.0(US) Firmare 1.0.2</details>
92+
<br>
93+
94+
**Wall Switches**
95+
96+
<details><summary>S500D</summary>Hardware 1.0(US) Firmare 1.0.5</details>
97+
<details><summary>S505</summary>Hardware 1.0(US) Firmare 1.0.2</details>
98+
<br>
99+
100+
**Bulbs**
101+
102+
<details><summary>L510B</summary>Hardware 3.0(EU) Firmare 1.0.5</details>
103+
<details><summary>L510E</summary>Hardware 3.0(US) Firmare 1.0.5<br>Hardware 3.0(US) Firmare 1.1.2</details>
104+
<details><summary>L530E</summary>Hardware 3.0(EU) Firmare 1.1.0<br>Hardware 3.0(EU) Firmare 1.0.6<br>Hardware 2.0(US) Firmare 1.1.0</details>
105+
<br>
106+
107+
**Light Strips**
108+
109+
<details><summary>L900-10</summary>Hardware 1.0(US) Firmare 1.0.11<br>Hardware 1.0(EU) Firmare 1.0.17</details>
110+
<details><summary>L900-5</summary>Hardware 1.0(EU) Firmare 1.1.0<br>Hardware 1.0(EU) Firmare 1.0.17</details>
111+
<details><summary>L920-5</summary>Hardware 1.0(US) Firmare 1.1.3<br>Hardware 1.0(US) Firmare 1.1.0</details>
112+
<details><summary>L930-5</summary>Hardware 1.0(US) Firmare 1.1.2</details>
113+
<br>
114+
115+
116+
<!--SUPPORTED_END-->

devtools/dump_devinfo.py

Lines changed: 55 additions & 19 deletions
Original file line numberDiff line numberDiff line change
@@ -46,6 +46,7 @@
4646
IOT_FOLDER = "kasa/tests/fixtures/"
4747
SMART_FOLDER = "kasa/tests/fixtures/smart/"
4848
SUPPORTED_FILENAME = "SUPPORTED.md"
49+
README_FILENAME = "README.md"
4950

5051
PLUGS = "Plugs"
5152
POWER_STRIPS = "Power Strips"
@@ -487,7 +488,6 @@ async def get_smart_fixture(device: SmartDevice, batch_size: int):
487488
@cli.command(name="generate-supported")
488489
async def generate_supported():
489490
"""Generate the SUPPORTED.md from the fixtures."""
490-
brands = {"kasa": {}, "tapo": {}}
491491
supported = {
492492
PLUGS: {"kasa": {}, "tapo": {}},
493493
POWER_STRIPS: {"kasa": {}, "tapo": {}},
@@ -498,48 +498,84 @@ async def generate_supported():
498498
_get_iot_supported(supported)
499499
_get_smart_supported(supported)
500500

501+
_update_supported_file(SUPPORTED_FILENAME, supported, False)
502+
_update_supported_file(README_FILENAME, supported, True)
503+
504+
505+
def _update_supported_file(filename, supported, summary):
506+
with open(filename) as f:
507+
contents = f.readlines()
508+
509+
start_index = end_index = None
510+
for index, line in enumerate(contents):
511+
if line == "<!--SUPPORTED_START-->\n":
512+
start_index = index + 1
513+
if line == "<!--SUPPORTED_END-->\n":
514+
end_index = index
515+
516+
new_contents = contents[:start_index]
517+
end_contents = contents[end_index:]
518+
new_contents.extend(_generate_supported(supported, "Kasa", summary))
519+
new_contents.append("\n")
520+
new_contents.extend(_generate_supported(supported, "Tapo", summary))
521+
new_contents.append("\n")
522+
new_contents.extend(end_contents)
523+
524+
with open(filename, "w") as f:
525+
new_contents = "".join(new_contents)
526+
f.write(new_contents)
527+
528+
529+
def _generate_supported(supported, target_brand, summary):
530+
single_star = "<sup>\*</sup>" if summary else "<sup> *</sup>"
531+
double_star = "<sup>\*\*</sup>" if summary else "<sup> **</sup>"
532+
brand_auth = single_star if target_brand.lower() == "tapo" else ""
501533
lines = [
502-
"<sub>&#x25B8;&nbsp; Expand to see tested versions</sub><br>\n",
503-
"<sub><sup>*</sup>&nbsp; Model requires authentication</sub><br>\n",
504-
"<sub><sup>**</sup> Newer versions require authentication</sub>\n",
534+
f"### Supported {target_brand}{brand_auth} devices\n",
505535
"\n",
506-
"| **Type** | **Kasa** | **Tapo** <sup>\*</sup> |\n",
507-
"|--- |--- |--- |\n",
508536
]
509537
for type_, brands in supported.items():
510-
models_text = {"kasa": "", "tapo": ""}
538+
models_list = []
511539
for brand, models in brands.items():
540+
if brand != target_brand.lower():
541+
continue
512542
for model, versions in sorted(models.items()):
513543
version_list = []
514544
auth_count = 0
515545
auth_symbol = ""
516546
for version in versions:
517547
region_text = f"({version.region})" if version.region else ""
518548
version_auth = (
519-
"<sup> *</sup>" if version.auth and brand == "kasa" else ""
549+
single_star if version.auth and brand == "kasa" else ""
520550
)
521551
version_text = (
522552
f"Hardware {version.hw}{region_text} "
523553
+ f"Firmare {version.fw}{version_auth}"
524554
)
525555
version_list.append(version_text)
526556
if version.auth:
527-
auth_symbol = " **"
528557
auth_count += 1
558+
auth_symbol = double_star
559+
auth_symbol = (
560+
single_star if auth_count == len(versions) else auth_symbol
561+
)
562+
auth_symbol = auth_symbol if brand == "kasa" else ""
529563
versions_text = "<br>".join(version_list)
530-
auth_symbol = " *" if auth_count == len(versions) else auth_symbol
531-
auth_text = f"<sup>{auth_symbol}</sup>" if brand == "kasa" else ""
532-
models_text[brand] += (
533-
f"<details><summary>{model}{auth_text}"
564+
detail_model_text = (
565+
f"<details><summary>{model}{auth_symbol}"
534566
+ f"</summary>{versions_text}</details>"
535567
)
536-
line = (
537-
f"| {type_} | {models_text.get('kasa')} | {models_text.get('tapo')} |\n"
538-
)
568+
summary_model_text = model + auth_symbol
569+
model_text = summary_model_text if summary else detail_model_text
570+
models_list.append(model_text)
571+
if summary:
572+
models_text = ", ".join(models_list)
573+
line = f"- **{type_}** - {models_text}\n"
574+
else:
575+
models_text = "\n".join(models_list)
576+
line = f"**{type_}**\n\n{models_text}\n<br>\n\n"
539577
lines.append(line)
540-
with open(SUPPORTED_FILENAME, "w") as the_file:
541-
for line in lines:
542-
the_file.write(line)
578+
return lines
543579

544580

545581
def _get_smart_supported(supported):

test.rst

Lines changed: 0 additions & 4 deletions
This file was deleted.

test2.rst

Lines changed: 0 additions & 2 deletions
This file was deleted.

0 commit comments

Comments
 (0)
0