From 16d3e04cb80a975eef0e0ad6f0f6dc4800860d3c Mon Sep 17 00:00:00 2001 From: Michael Fenn Date: Thu, 19 Mar 2015 15:10:44 -0400 Subject: compat: use eval instead of ast.literal_eval on python 2.4 --- src/lib/Bcfg2/Compat.py | 6 ++++++ src/lib/Bcfg2/Options.py | 4 ++-- 2 files changed, 8 insertions(+), 2 deletions(-) (limited to 'src') diff --git a/src/lib/Bcfg2/Compat.py b/src/lib/Bcfg2/Compat.py index b8a75a0c5..1c2420ccf 100644 --- a/src/lib/Bcfg2/Compat.py +++ b/src/lib/Bcfg2/Compat.py @@ -286,3 +286,9 @@ except NameError: def cmp(a, b): """ Py3k implementation of cmp() """ return (a > b) - (a < b) + +# ast was introduced in python 2.6 +try: + from ast import literal_eval +except ImportError: + literal_eval = eval diff --git a/src/lib/Bcfg2/Options.py b/src/lib/Bcfg2/Options.py index fdc34eb95..5653b29e5 100644 --- a/src/lib/Bcfg2/Options.py +++ b/src/lib/Bcfg2/Options.py @@ -1,6 +1,5 @@ """Option parsing library for utilities.""" -import ast import copy import getopt import grp @@ -13,6 +12,7 @@ import sys import Bcfg2.Client.Tools from Bcfg2.Compat import ConfigParser +from Bcfg2.Compat import literal_eval from Bcfg2.version import __version__ @@ -333,7 +333,7 @@ def colon_split(c_string): def dict_split(c_string): """ literally evaluate the option in order to allow for arbitrarily nested dictionaries """ - return ast.literal_eval(c_string) + return literal_eval(c_string) def get_bool(val): -- cgit v1.2.3-1-g7c22