[ python-Bugs-215126 ] Over restricted type checking on eval()
function
SourceForge.net
noreply at sourceforge.net
Sat Dec 13 13:11:17 EST 2003
Bugs item #215126, was opened at 2000-09-22 14:36
Message generated for change (Settings changed) made by rhettinger
You can respond by visiting:
https://sourceforge.net/tracker/?func=detail&atid=105470&aid=215126&group_id=5470
Category: Python Interpreter Core
Group: Feature Request
>Status: Open
Resolution: Later
Priority: 5
Submitted By: Nobody/Anonymous (nobody)
>Assigned to: Raymond Hettinger (rhettinger)
Summary: Over restricted type checking on eval() function
Initial Comment:
The built-in function eval() takes a string argument and a dictionary. The second argument should allow any instance which defines __getitem__ as opposed to just dictionaries.
The following example creates a type error:
eval, argument 2: expected dictionary, instance found
class SpreadSheet:
_cells = {}
def __setitem__( self, key, formula ):
self._cells[key] = formula
def __getitem__( self, key ):
return eval( self._cells[key], self )
ss = SpreadSheet()
ss['a1'] = '5'
ss['a2'] = 'a1*5'
ss['a2']
----------------------------------------------------------------------
Comment By: Tim Peters (tim_one)
Date: 2000-09-22 23:18
Message:
Added to PEP 42.
----------------------------------------------------------------------
Comment By: Tim Peters (tim_one)
Date: 2000-09-22 14:42
Message:
Changed Group to Feature Request. Should be added to PEP 42 (I'll do that if nobody beats me to it).
CPython requires a genuine dict now for speed. I believe JPython allows any mapping object.
----------------------------------------------------------------------
You can respond by visiting:
https://sourceforge.net/tracker/?func=detail&atid=105470&aid=215126&group_id=5470
More information about the Python-bugs-list
mailing list