Merge pull request #64 from blastrock/defcmap
More fixes for cmake coloration
This commit is contained in:
commit
0976644a38
1 changed files with 12 additions and 5 deletions
|
|
@ -376,26 +376,33 @@ def color_scale( name, text ):
|
|||
# if not, use python itself,
|
||||
# if thoses fails, try to `eval` the string
|
||||
# (this allow strings like "1/2+0.9*2")
|
||||
f = None
|
||||
try:
|
||||
# babel is a specialized module
|
||||
import babel.numbers as bn
|
||||
try:
|
||||
f = float(bn.parse_decimal(nb))
|
||||
except NumberFormatError:
|
||||
f = eval(nb) # Note: in python2, `eval(2/3)` would produce `0`, in python3 `0.666`
|
||||
except bn.NumberFormatError:
|
||||
pass
|
||||
except ImportError:
|
||||
try:
|
||||
f = float(nb)
|
||||
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 f < context["scale"][0] or f > context["scale"][1]:
|
||||
if f < 0 or f > 1:
|
||||
return None
|
||||
|
||||
# normalize and scale over the nb of colors in cmap
|
||||
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]
|
||||
|
||||
# infer mode from the color in the colormap
|
||||
|
|
|
|||
Loading…
Add table
Add a link
Reference in a new issue