Haha, even though streamlit offers great possibilities, one of its strength is to be a simple framework upon which you can perform data processing using basic python features
You can only limit the number of characters. Along with this parameter, what you could do for lines is to count them with len(lines), and if it is greater than your limit, you can warn the user with a st.warning() that the list will be truncated. For the truncation part, a simple lines = lines[:100] would do.
MAX_LINES = 100
text = st.text_area("URLs, one per line.")
lines = text.split("\n") # A list of lines
if len(lines) > MAX_LINES:
st.warning(f"Maximum number of lines reached. Only the first {MAX_LINES} will be processed.")
lines = lines[:MAX_LINES]
for line in lines:
# Process line here