@@ -141,7 +141,7 @@ def __init__(self, *names, rows=UNLOADED, **kwargs):
141141 self .initialCols = kwargs .pop ('columns' , None ) or type (self ).columns
142142 self .resetCols ()
143143
144- self ._colorizers = []
144+ self ._colorizers = self . classColorizers
145145 self .recalc () # set .sheet on columns and start caches
146146
147147 self .__dict__ .update (kwargs ) # also done earlier in BaseSheet.__init__
@@ -158,13 +158,15 @@ def topRowIndex(self, v):
158158 def addColorizer (self , c ):
159159 'Add Colorizer *c* to the list of colorizers for this sheet.'
160160 self ._colorizers .append (c )
161+ self ._colorizers = sorted (self ._colorizers , key = lambda x : x .precedence , reverse = True )
161162
162163 def removeColorizer (self , c ):
163164 'Remove Colorizer *c* from the list of colorizers for this sheet.'
164165 self ._colorizers .remove (c )
165166
166- @drawcache_property
167- def allColorizers (self ):
167+ @property
168+ def classColorizers (self ) -> list :
169+ 'List of all colorizers from sheet class hierarchy in precedence order (highest precedence first)'
168170 # all colorizers must be in the same bucket
169171 # otherwise, precedence does not get applied properly
170172 _colorizers = set ()
@@ -177,14 +179,13 @@ def allParents(cls):
177179 for c in getattr (b , 'colorizers' , []):
178180 _colorizers .add (c )
179181
180- _colorizers |= set (self ._colorizers )
181182 return sorted (_colorizers , key = lambda x : x .precedence , reverse = True )
182183
183184 def _colorize (self , col , row , value = None ) -> ColorAttr :
184- 'Returns ColorAttr for the given colorizers/col/row/value'
185+ 'Return ColorAttr for the given colorizers/col/row/value'
185186
186187 colorstack = []
187- for colorizer in self .allColorizers :
188+ for colorizer in self ._colorizers :
188189 try :
189190 r = colorizer .func (self , col , row , value )
190191 if r :
0 commit comments