I just copied your Python and Arduino code and tried it on this Linux laptop and it worked just as expected.
I'm sure some study of the Arduino hardware serial core will explain, but from what I can see the Uno I'm testing on does not support hardware flow control.
In Win10 using a C# or C++ application, the flow control configured in the application does affect that behaviour.
@Robin2 are you saying that the code with rtsctc = True runs successfully in Linux?What Arduino is on the other end?In Windows10, with an Arduino Uno, and Python 3.6.5 and IDLE I can not run your demo with the hardware flow control True.
If you are saying that Windows requires rtscts=True then I will mention that when I refer to the example in future. And thank you for pointing it out.
classserial.Serial__init__(port=None, baudrate=9600, bytesize=EIGHTBITS, parity=PARITY_NONE, stopbits=STOPBITS_ONE, timeout=None, xonxoff=False, rtscts=False, write_timeout=None, dsrdtr=False, inter_byte_timeout=None, exclusive=None)
What do you mean by "IDLE"
No. Windows10 requires rtscts = False.