Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

Fixes Formatting Exception #25088

Merged
merged 12 commits into from
Feb 16, 2019
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"],
jreback marked this conversation as resolved.
Show resolved Hide resolved
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