(h, s, l)
| 20181 | |
| 20182 | |
| 20183 | def _hsl_to_rgb(h, s, l): |
| 20184 | def hue_to_rgb(p, q, t): |
| 20185 | t += 1 if t < 0 else 0 |
| 20186 | t -= 1 if t > 1 else 0 |
| 20187 | if t < 1 / 6: |
| 20188 | return p + (q - p) * 6 * t |
| 20189 | if t < 1 / 2: |
| 20190 | return q |
| 20191 | if t < 2 / 3: |
| 20192 | p + (q - p) * (2 / 3 - t) * 6 |
| 20193 | return p |
| 20194 | |
| 20195 | if s == 0: |
| 20196 | r, g, b = l, l, l |
| 20197 | else: |
| 20198 | q = l * (1 + s) if l < 0.5 else l + s - l * s |
| 20199 | p = 2 * l - q |
| 20200 | r = hue_to_rgb(p, q, h + 1 / 3) |
| 20201 | g = hue_to_rgb(p, q, h) |
| 20202 | b = hue_to_rgb(p, q, h - 1 / 3) |
| 20203 | |
| 20204 | return r, g, b |
| 20205 | |
| 20206 | |
| 20207 | def _hsv_to_hsl(h, s, v): |
no test coverage detected