Changes on 3.0.2 with wedge/Dodge

Hello,
I am implementing an old code and I created a virtual environment with the new bokeh 3.0.2. I am facing with an error that I can’t quiet grasp the reason. Here is a minimal code.

    dfpie2 = pd.DataFrame(dfpie.iloc[-2:])
    dfpie2['color'] = ['#2c7fb8', '#fee08b']


    #angle for both df * pi instead *2*pi to keep it half circumference C=2πr
    dfpie1['angles'] = dfpie1['attack'] / dfpie1['attack'].sum() * pi
    dfpie2['angles'] = dfpie2['attack'] / dfpie2['attack'].sum() * pi

    dfpie1['pct'] = pctA = [round(attack[0] / attack[6] *100, 2), round(attack[1] / attack[6] *100, 2), round(attack[2] / attack[6] *100, 2), round(attack[3] / attack[7] *100, 2), round(attack[4] / attack[7] *100, 2), round(attack[5] / attack[7] *100, 2)]
    #pct(dfpie1['attack'], dfpie1['attack'].sum())
    dfpie1['pct'] = dfpie1['pct'].astype(str) + '%'

    dfpie2['pct'] = pct(dfpie2['attack'], dfpie2['attack'].sum())
    dfpie2['pct'] = dfpie2['pct'].astype(str) + '%'
    sa1 = ColumnDataSource(data=dict(x=list(dfpie2.index.values), y=dfpie2['attack'], c=dfpie2['color'], a=dfpie2['angles'], l=dfpie2['pct']))
    sa2 = ColumnDataSource(data=dict(x=list(dfpie1.index.values), x1=list(dfpie1.index.values), y=dfpie1['attack'], c=dfpie1['color'], a=dfpie1['angles'], l=dfpie1['pct']))

    #figure instance
    piA = figure(height=400, width=500, toolbar_location='left', tools = 'pan, wheel_zoom, box_zoom, reset',  x_range=(-0.4, 0.9))

    #glyph
    piA.wedge(x=0, y=1, radius=0.4, start_angle=CumSum('a', include_zero=True), end_angle=CumSum('a'),
             line_color='white', fill_color='c', source=sa1) 

The error I am getting is the following, that also happens for Dodge with a believe is related with a new way bokeh is dealing with transformation in glyphs.

start_angle=CumSum('a', include_zero=True), end_angle=CumSum('a'),
**ValueError** : positional arguments are not allowed

@Reinhold83 the higher level helper function cumsum accepts the field as a positional parameter, but if you are are using the low-level CumSum model directly all arguments have to be passed by keyword

CumSum(field='a')

This topic was automatically closed 90 days after the last reply. New replies are no longer allowed.