Sí sí.... los que usamos weewx generalmente usamos la versión más actual
La mía también es la 4.5.1, la que te va a instalar de su repositorio
sudo apt update && apt upgradeComo dije en mi anterior respuesta ese código vale solo para el formato que empieza por
0x ya que el hexadecimal que empieza por # no está el código preparado porque no lleva las dos últimas cifras hexadecimales del canal alfa.
De todas formas cuando se pone un hexadecimal en el skin se tiene que poner siempre entre comillas (o dobles o simples) al igual que un nombre de color literal así que tenemos que poner
"#ff0000" o
"red" para el color rojo o tira esa ristra de errores.
Ya dije que espera colores en formato RGBA al haber sido modificada la función en
genplot.py de
RGB a
RGBAHe modificado código de
utilities.py para quedar la función así:
def tobgr(x):
"""Convert a color to little-endian integer. The PIL wants either
a little-endian integer (0xBBGGRR) or a string (#RRGGBB). weewx expects
little-endian integer. Accept any standard color format that is known
by ImageColor for example #RGB, #RRGGBB, hslHSL as well as standard color
names from X11 and CSS3. See ImageColor for complete set of colors.
"""
if isinstance(x, six.string_types):
if x.startswith('0x'):
if (len(x) == 8):
x = x.split('x')
x = '0xff' + x[1]
return int(x, 0)
try:
if x.startswith('#'):
if (len(x) == 7):
x = x + "ff"
r, g, b, a = ImageColor.getrgb(x)
return r + g * 256 + b * 256 * 256 + a * 256 * 256 * 256
except ValueError:
try:
return int(x)
except ValueError:
raise ValueError("Unknown color specifier: '%s'. "
"Colors must be specified as 0xBBGGRR, #RRGGBB, or standard color names." % x)
return x
Ahora detectará también el formato hexadecimal y le pondrá ff al final si no lleva los 8 dígitos del canal alfa, por ejemplo
#ff0000 lo convertirá a
#ff0000ff por lo que ya puedes añadirle el canal alfa directamente en el skin en hexadecimal.
Lo que no va a funcionar (no dibujará el color) es si lo ponemos con el nombre literal.... así con
"red" no dibujará el rojo, tendremos que poner o
0x0000ff ó
"#ff0000" ya que como digo espera el color en formato rgba.
Creo que seria cuestión de comentarlo en el soporte oficial. Independientemente que sea un posible error no entiendo como se limita esa opción para los colores de las graficas.
Seguro, sería lo mejor, como ves es modificar algo de código en alguna función. De todas formas si modificas esos archivos que he puesto al actualizar weewx lo más probable es que te los sobrescriba, así que pon una copia de ambos donde quieras y si sale actualización los vuelves a poner, pero siempre está el riesgo de que traigan funciones nuevas o modificadas y le pongamos el antiguo por lo que puede dar algún error.... por suerte ni el código de esos archivos ni weewx se actualizan muy a menudo.
Lo mejor es que vinieran ya modificados para aceptar el canal alfa en la futura actualización... alguien tendrá que decírselo
saludos