Question about ast.literal_eval

Frank Millman frank at chagford.com
Mon May 20 03:50:02 EDT 2013


[Corrected top-posting]

 >> To: python-list at python.org
>> From: frank at chagford.com
>> Subject: Question about ast.literal_eval
>> Date: Mon, 20 May 2013 09:05:48 +0200
>>
>> Hi all
>>
>> I am trying to emulate a SQL check constraint in Python. Quoting from
>> the PostgreSQL docs, "A check constraint is the most generic constraint
>> type. It allows you to specify that the value in a certain column must
>> satisfy a Boolean (truth-value) expression."
>>
>> The problem is that I want to store the constraint as a string, and I
>> was hoping to use ast.literal_eval to evaluate it, but it does not work.
>>

On 20/05/2013 09:34, Carlos Nepomuceno wrote:

> It seems to me you can't use ast.literal_eval()[1] to evaluate that kind of expression
 > because it's just for literals[2].
>
> Why don't you use eval()?
>

Because users can create their own columns, with their own constraints. 
Therefore the string is user-modifiable, so it cannot be trusted.

Frank





More information about the Python-list mailing list