Dealing with the RangeError on `st.slider`?

Hi guys!

I’ve got a RangeError with st.slider, where I get my min and max values dynamically from a dataframe,

The issue is raised as the min value (100) is equal to the max value (100)

Here’s a video of the error in the app:

2020-06-25_10-44-01

Here’s the related error code:

RangeError: min (100) is equal/bigger than max (100)
at Object.t.checkBoundaries (http://192.168.1.106:8502/static/js/26.e7807516.chunk.js:1:5385)
at http://192.168.1.106:8502/static/js/26.e7807516.chunk.js:1:15260
at Array.forEach (<anonymous>)
at t.componentDidMount (http://192.168.1.106:8502/static/js/26.e7807516.chunk.js:1:15231)
at Ks (http://192.168.1.106:8502/static/js/10.bd8c2f6b.chunk.js:1:2005475)
at t.unstable_runWithPriority (http://192.168.1.106:8502/static/js/10.bd8c2f6b.chunk.js:1:2026579)
at pi (http://192.168.1.106:8502/static/js/10.bd8c2f6b.chunk.js:1:1951856)
at Zs (http://192.168.1.106:8502/static/js/10.bd8c2f6b.chunk.js:1:2001475)
at Fs (http://192.168.1.106:8502/static/js/10.bd8c2f6b.chunk.js:1:1990112)
at http://192.168.1.106:8502/static/js/10.bd8c2f6b.chunk.js:1:1952127

Heres’ my Python code:

maxValueToken_set = dfRatio['token_set_ratio'].max()
    minValueToken_set = dfRatio['token_set_ratio'].min()
    Token_set_slider = st.slider('token set ratio values', minValueToken_set, maxValueToken_set, value = maxValueToken_set, step = 1.00)

After trying several error handling methods, nothing has worked so far - I’ll keep digging but any idea?

Thanks,
Charly

I think this is probably one of those things you’d need to catch in the codebase; from the slider perspective, there’s no way to show zero width (100 to 100), so I think it’s right to throw an error.

Is this a scenario where you can reasonably expect to have columns with constant values?

Thanks for the prompt response Randy!

Yes, one can reasonably expect to have columns with constant values with this web app.

I’ll try to find a workaround and will keep you posted on the progress here! :slight_smile:

Charly

Since you’re already calculating min and max, could you do something like:


if minValueToken_set < maxValueToken_set:
   st.slider(...)
else:
   st.write("This column is a constant of value `minValueToken`")