Make cmake colouring work with fractions
This commit is contained in:
parent
1f9125af88
commit
d437e46364
1 changed files with 11 additions and 4 deletions
|
|
@ -372,26 +372,33 @@ def color_scale( name, text ):
|
||||||
# if not, use python itself,
|
# if not, use python itself,
|
||||||
# if thoses fails, try to `eval` the string
|
# if thoses fails, try to `eval` the string
|
||||||
# (this allow strings like "1/2+0.9*2")
|
# (this allow strings like "1/2+0.9*2")
|
||||||
|
f = None
|
||||||
try:
|
try:
|
||||||
# babel is a specialized module
|
# babel is a specialized module
|
||||||
import babel.numbers as bn
|
import babel.numbers as bn
|
||||||
try:
|
try:
|
||||||
f = float(bn.parse_decimal(nb))
|
f = float(bn.parse_decimal(nb))
|
||||||
except bn.NumberFormatError:
|
except bn.NumberFormatError:
|
||||||
f = eval(nb) # Note: in python2, `eval(2/3)` would produce `0`, in python3 `0.666`
|
pass
|
||||||
except ImportError:
|
except ImportError:
|
||||||
try:
|
try:
|
||||||
f = float(nb)
|
f = float(nb)
|
||||||
except ValueError:
|
except ValueError:
|
||||||
f = eval(nb)
|
pass
|
||||||
|
if f is not None:
|
||||||
|
# normalize with scale if it's a number
|
||||||
|
f = (f - context["scale"][0]) / (context["scale"][1]-context["scale"][0])
|
||||||
|
else:
|
||||||
|
# interpret as float between 0 and 1 otherwise
|
||||||
|
f = eval(nb)
|
||||||
|
|
||||||
# if out of scale, do not color
|
# if out of scale, do not color
|
||||||
if f < context["scale"][0] or f > context["scale"][1]:
|
if f < 0 or f > 1:
|
||||||
return None
|
return None
|
||||||
|
|
||||||
# normalize and scale over the nb of colors in cmap
|
# normalize and scale over the nb of colors in cmap
|
||||||
colormap = context["colormaps"][name]
|
colormap = context["colormaps"][name]
|
||||||
i = int( math.ceil( (f - context["scale"][0]) / (context["scale"][1]-context["scale"][0]) * (len(colormap)-1) ) )
|
i = int( math.ceil( f * (len(colormap)-1) ) )
|
||||||
color = colormap[i]
|
color = colormap[i]
|
||||||
|
|
||||||
# infer mode from the color in the colormap
|
# infer mode from the color in the colormap
|
||||||
|
|
|
||||||
Loading…
Add table
Add a link
Reference in a new issue