[issue30161] Using `with` statement causes dict to start papering over attribute errors

2017-04-25 Thread Tim Golden

Tim Golden added the comment:

I think you're suppressing sys.stderr after the "with". Try a NameError 
or anything.

Alternatively, try a "with" which isn't using sys.stderr

Obviously, the next question is why *that's* happening.

--
nosy: +tim.golden

___
Python tracker 

___
___
Python-bugs-list mailing list
Unsubscribe: 
https://mail.python.org/mailman/options/python-bugs-list/archive%40mail-archive.com



[issue30161] Using `with` statement causes dict to start papering over attribute errors

2017-04-25 Thread Charles Cazabon

Charles Cazabon added the comment:

oh ffs ;)

--

___
Python tracker 

___
___
Python-bugs-list mailing list
Unsubscribe: 
https://mail.python.org/mailman/options/python-bugs-list/archive%40mail-archive.com



[issue30161] Using `with` statement causes dict to start papering over attribute errors

2017-04-25 Thread R. David Murray

R. David Murray added the comment:

You've closed stderr.

--
nosy: +r.david.murray
resolution:  -> not a bug
stage:  -> resolved
status: open -> closed

___
Python tracker 

___
___
Python-bugs-list mailing list
Unsubscribe: 
https://mail.python.org/mailman/options/python-bugs-list/archive%40mail-archive.com



[issue30161] Using `with` statement causes dict to start papering over attribute errors

2017-04-25 Thread Charles Cazabon

New submission from Charles Cazabon:

This is a weird one.  I've reproduced it with 3 versions of 2.7, including the 
latest 2.7.13.  I didn't find an open bug about this, but I had difficulty 
crafting a search string for it, so I may have missed something.

Basically, using a `with` statement (maybe any such statement, but using an 
open file definitely does it, even when I do nothing with it) causes the 
built-in dict class to stop raising AttributeErrors, which can result in odd 
bugs.

Example:

Python 2.7.13 (default, Apr 25 2017, 10:12:36) 
[GCC 4.6.3] on linux2
Type "help", "copyright", "credits" or "license" for more information.
>>> import sys
>>> with sys.stderr as foo:
... pass
... 
>>> {}.nosuchattribute
>>> {}.nosuchattribute is None
>>> 

I haven't tried the latest 3.x, but it's definitely still there in 3.2.3:

Python 3.2.3 (default, Nov 17 2016, 01:04:00) 
[GCC 4.6.3] on linux2
Type "help", "copyright", "credits" or "license" for more information.
>>> import sys
>>> with sys.stderr as foo:
... pass
... 
>>> {}.nosuchattribute
>>> {}.nosuchattribute is None
>>>

--
components: Interpreter Core
messages: 292270
nosy: charlesc
priority: normal
severity: normal
status: open
title: Using `with` statement causes dict to start papering over attribute 
errors
type: behavior
versions: Python 2.7

___
Python tracker 

___
___
Python-bugs-list mailing list
Unsubscribe: 
https://mail.python.org/mailman/options/python-bugs-list/archive%40mail-archive.com