Hi Charlie!
This is a known bug in Cursor’s integrated terminal. When pasting text that exceeds ~1018 bytes (which your Polars DataFrame box-drawing characters easily reach due to their multi-byte UTF-8 encoding), the terminal’s PTY layer silently drops data. This causes the hang you’re seeing, and also explains the Python 3.14.3 TypeError – that error surfaces because the data corruption at the terminal layer causes getpending() to return None for partial events.
The root cause is an outdated dependency in Cursor’s terminal stack. The fix is tracked and the team is aware, but there’s no ETA I can share at this time.
Workaround: For now, you can write the code to a file and run it from the terminal (python script.py) instead of pasting directly into the Python REPL.
You may also find these related threads helpful: