Skip to content
13 changes: 8 additions & 5 deletions pandas/io/formats/terminal.py
Original file line number Diff line number Diff line change
Expand Up @@ -99,14 +99,17 @@ def _get_terminal_size_tput():
proc = subprocess.Popen(["tput", "cols"],
stdin=subprocess.PIPE,
stdout=subprocess.PIPE)
output = proc.communicate(input=None)
cols = int(output[0])
output_cols = proc.communicate(input=None)
proc = subprocess.Popen(["tput", "lines"],
stdin=subprocess.PIPE,
stdout=subprocess.PIPE)
output = proc.communicate(input=None)
rows = int(output[0])
return (cols, rows)
output_rows = proc.communicate(input=None)
try:
Copy link
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

This try/ except should go below the catching of the OSError.

Copy link
Contributor Author

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Very well, I'll just declare the output variables outside of the try/catch block, I suppose

Copy link
Contributor Author

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

@TomAugspurger I've updated it. Is this what you meant?

Copy link

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

I don't think you need the prior initializations unless you're going to refer, after a try/except block, to a variable that doesn't get created due to an exception. That can't happen here because of the returns, but OTOH the initializations don't hurt anything, and might make the code less likely to break due to a careless change in the future.

I'm any case, thanks for the fix!

Copy link
Contributor Author

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

No problem! Feel free to let me know of any ways I can help further!

cols = int(output_cols[0])
rows = int(output_rows[0])
return (cols, rows)
except ValueError:
return None
except OSError:
return None

Expand Down