|
5 | 5 |
|
6 | 6 | import struct |
7 | 7 | from dataclasses import dataclass, field |
| 8 | +from typing import Literal |
8 | 9 |
|
9 | 10 | from pms import SensorWarmingUp, WrongMessageChecksum, WrongMessageFormat |
10 | 11 |
|
@@ -108,27 +109,28 @@ def __post_init__(self): |
108 | 109 | self.IAQ &= 0x0FFF |
109 | 110 | self.gas /= 1000 |
110 | 111 |
|
111 | | - def __format__(self, spec: str) -> str: |
112 | | - if spec == "atm": |
113 | | - return ( |
114 | | - f"{self.date:%F %T}: Temp. {self.temp:.1f} °C, Rel.Hum. {self.rhum:.1f} %, " |
115 | | - f"Press {self.pres:.2f} hPa" |
116 | | - ) |
117 | | - if spec == "bme": |
118 | | - return ( |
119 | | - f"{self.date:%F %T}: Temp. {self.temp:.1f} °C, Rel.Hum. {self.rhum:.1f} %, " |
120 | | - f"Press {self.pres:.2f} hPa, {self.gas:.1f} kΩ" |
121 | | - ) |
122 | | - if spec == "bsec": |
123 | | - return ( |
124 | | - f"{self.date:%F %T}: Temp. {self.temp:.1f} °C, Rel.Hum. {self.rhum:.1f} %, " |
125 | | - f"Press {self.pres:.2f} hPa, {self.IAQ} IAQ" |
126 | | - ) |
127 | | - if spec == "csv": |
128 | | - return ( |
129 | | - f"{self.time}, {self.temp:.1f}, {self.rhum:.1f}, {self.pres:.2f}, " |
130 | | - f"{self.IAQ_acc}, {self.IAQ}, {self.gas:.1f}, {self.alt}" |
131 | | - ) |
| 112 | + def __format__(self, spec: Literal["atm", "bme", "bsec", "csv", "header"] | str) -> str: |
| 113 | + match spec: |
| 114 | + case "atm": |
| 115 | + return ( |
| 116 | + f"{self.date:%F %T}: Temp. {self.temp:.1f} °C, Rel.Hum. {self.rhum:.1f} %, " |
| 117 | + f"Press {self.pres:.2f} hPa" |
| 118 | + ) |
| 119 | + case "bme": |
| 120 | + return ( |
| 121 | + f"{self.date:%F %T}: Temp. {self.temp:.1f} °C, Rel.Hum. {self.rhum:.1f} %, " |
| 122 | + f"Press {self.pres:.2f} hPa, {self.gas:.1f} kΩ" |
| 123 | + ) |
| 124 | + case "bsec": |
| 125 | + return ( |
| 126 | + f"{self.date:%F %T}: Temp. {self.temp:.1f} °C, Rel.Hum. {self.rhum:.1f} %, " |
| 127 | + f"Press {self.pres:.2f} hPa, {self.IAQ} IAQ" |
| 128 | + ) |
| 129 | + case "csv": |
| 130 | + return ( |
| 131 | + f"{self.time}, {self.temp:.1f}, {self.rhum:.1f}, {self.pres:.2f}, " |
| 132 | + f"{self.IAQ_acc}, {self.IAQ}, {self.gas:.1f}, {self.alt}" |
| 133 | + ) |
132 | 134 |
|
133 | 135 | return super().__format__(spec) |
134 | 136 |
|
|
0 commit comments