mirror of https://github.com/python/cpython
Allow set literals in literal_eval().
This commit is contained in:
parent
e40ee509e3
commit
492f3fc272
|
@ -119,12 +119,15 @@ and classes for traversing abstract syntax trees:
|
|||
|
||||
Safely evaluate an expression node or a string containing a Python
|
||||
expression. The string or node provided may only consist of the following
|
||||
Python literal structures: strings, numbers, tuples, lists, dicts, booleans,
|
||||
and ``None``.
|
||||
Python literal structures: strings, numbers, tuples, lists, dicts, sets,
|
||||
booleans, and ``None``.
|
||||
|
||||
This can be used for safely evaluating strings containing Python expressions
|
||||
from untrusted sources without the need to parse the values oneself.
|
||||
|
||||
.. versionchanged:: 3.2
|
||||
Now allows set literals.
|
||||
|
||||
|
||||
.. function:: get_docstring(node, clean=True)
|
||||
|
||||
|
|
|
@ -58,6 +58,8 @@ def literal_eval(node_or_string):
|
|||
return tuple(map(_convert, node.elts))
|
||||
elif isinstance(node, List):
|
||||
return list(map(_convert, node.elts))
|
||||
elif isinstance(node, Set):
|
||||
return set(map(_convert, node.elts))
|
||||
elif isinstance(node, Dict):
|
||||
return dict((_convert(k), _convert(v)) for k, v
|
||||
in zip(node.keys, node.values))
|
||||
|
|
|
@ -470,7 +470,9 @@ C-API
|
|||
Library
|
||||
-------
|
||||
|
||||
- Issue #9164: Ensure that sysconfig handles duplicate -arch flags in CFLAGS
|
||||
- ``ast.literal_eval()`` now allows set literals.
|
||||
|
||||
- Issue #9164: Ensure that sysconfig handles duplicate -arch flags in CFLAGS.
|
||||
|
||||
- Issue #7646: The fnmatch pattern cache no longer grows without bound.
|
||||
|
||||
|
|
Loading…
Reference in New Issue