BUG/TST: catch socket.error in py2/3.2 and ConnectionError in py3.3
State: closed

closes #3982.


Labels:

Comments:
this passes travis but that doesn't really tell us that much...since the errors from #3982 are occurring intermittently...

also it skips when i remove my connection...but i'm still not sure if that's enough

strange that it only happens on 3.2...trying to think of what itcould be @jreback @jtratner any ideas?
https://travis-ci.org/cpcloud/pandas/jobs/8322345

Is socket.error a subclass of IOError in 3.2? Wasn't clear on the
resolution to this previously...

yep it is.

it's possible that [this](http://stackoverflow.com/a/441383/564538) might be the problem and the solution

*sigh* probably a simple context manager will fix this....the resp is not being closed...same for google

I can write something up this week, do you want me to take it on? 

no it's fine i can do it, won't take that long. i'll write something on the wiki too showing how to use context managers with resources that don't implement the context manager protocol.

while it may not be too big of a deal to not close a file (or close url resource) when one is working in the shell, it's quite another to leave resources open in library code, especially since python makes it _so_ easy to automatically close a file.

can you use urlopen in a with statement? If so, that makes it incredibly
simple....

On Sat, Jun 22, 2013 at 11:39 PM, Phillip Cloud notifications@github.comwrote:

> no it's fine i can do it, won't take that long. i'll write something on
> the wiki too showing how to use context managers with resources that don't
> implement the context manager protocol.
> 
> while it may not be too big of a deal to not close a file (or close url
> resource) when one is working in the shell, it's quite another to leave
> resources open in library code, especially since python makes it _so_easy to automatically close a file.
> 
> —
> Reply to this email directly or view it on GitHubhttps://github.com/pydata/pandas/pull/3985#issuecomment-19868544
> .

Yep but in Python 2 you must use for example, with contextlib.closing(urlopen(url)) as response since url objects don't implement the context manager protocol in Python 2 in Python 3 they work fine with a regular with statement 

good to know - learned something today :)

On Sun, Jun 23, 2013 at 9:29 AM, Phillip Cloud notifications@github.comwrote:

> Yep but in Python 2 you must use for example, with
> contextlib.closing(urlopen(url)) as response since url objects don't
> implement the context manager protocol in Python 2 in Python 3 they work
> fine with a regular with statement
> 
> —
> Reply to this email directly or view it on GitHubhttps://github.com/pydata/pandas/pull/3985#issuecomment-19873954
> .

this fix the problem?

close in favor of #4002 .

since you moved your data fixes to 0.13.....any chance of reviving fixing these network test issues? or too much work?

i could just peel off the commit from the clean up and use that

maybe do that these netwok tests failing too much

let me get rid of some of these merge commits

whoops that zf context won't pass hold on

no wonder there are all these reset connection errors there are a ton of sockets to yahoo finance left open

will merge after passing...just added docs