diff --git a/hy/_compat.py b/hy/_compat.py index bdad6da..f41836f 100644 --- a/hy/_compat.py +++ b/hy/_compat.py @@ -38,7 +38,6 @@ except ImportError: (x >> 24) & 0xff])) import sys -PY27 = sys.version_info >= (2, 7) PY3 = sys.version_info[0] >= 3 PY33 = sys.version_info >= (3, 3) PY34 = sys.version_info >= (3, 4) diff --git a/hy/compiler.py b/hy/compiler.py index 2933533..ca33010 100644 --- a/hy/compiler.py +++ b/hy/compiler.py @@ -33,7 +33,7 @@ from hy.lex.parser import hy_symbol_mangle import hy.macros from hy._compat import ( - str_type, bytes_type, long_type, PY27, PY33, PY3, PY34, PY35, raise_empty) + str_type, bytes_type, long_type, PY33, PY3, PY34, PY35, raise_empty) from hy.macros import require, macroexpand, sharp_macroexpand import hy.importer @@ -1547,53 +1547,36 @@ class HyASTCompiler(object): @builds("set_comp") @checkargs(min=2, max=3) def compile_set_comprehension(self, expr): - if PY27: - ret = self.compile_list_comprehension(expr) - expr = ret.expr - ret.expr = ast.SetComp( - lineno=expr.lineno, - col_offset=expr.col_offset, - elt=expr.elt, - generators=expr.generators) + ret = self.compile_list_comprehension(expr) + expr = ret.expr + ret.expr = ast.SetComp( + lineno=expr.lineno, + col_offset=expr.col_offset, + elt=expr.elt, + generators=expr.generators) - return ret - - expr[0] = HySymbol("list_comp").replace(expr[0]) - expr = HyExpression([HySymbol("set"), expr]).replace(expr) - return self.compile(expr) + return ret @builds("dict_comp") @checkargs(min=3, max=4) def compile_dict_comprehension(self, expr): - if PY27: - expr.pop(0) # dict-comp - key = expr.pop(0) - value = expr.pop(0) + expr.pop(0) # dict-comp + key = expr.pop(0) + value = expr.pop(0) - gen_res, gen = self._compile_generator_iterables(expr) + gen_res, gen = self._compile_generator_iterables(expr) - compiled_key = self.compile(key) - compiled_value = self.compile(value) - ret = compiled_key + compiled_value + gen_res - ret += ast.DictComp( - lineno=expr.start_line, - col_offset=expr.start_column, - key=compiled_key.force_expr, - value=compiled_value.force_expr, - generators=gen) + compiled_key = self.compile(key) + compiled_value = self.compile(value) + ret = compiled_key + compiled_value + gen_res + ret += ast.DictComp( + lineno=expr.start_line, + col_offset=expr.start_column, + key=compiled_key.force_expr, + value=compiled_value.force_expr, + generators=gen) - return ret - - # In Python 2.6, turn (dict-comp key value [foo]) into - # (dict (list-comp (, key value) [foo])) - - expr[0] = HySymbol("list_comp").replace(expr[0]) - expr[1:3] = [HyExpression( - [HySymbol(",")] + - expr[1:3] - ).replace(expr[1])] - expr = HyExpression([HySymbol("dict"), expr]).replace(expr) - return self.compile(expr) + return ret @builds("genexpr") def compile_genexpr(self, expr): @@ -2284,26 +2267,10 @@ class HyASTCompiler(object): @builds(HySet) def compile_set(self, expression): elts, ret, _ = self._compile_collect(expression) - if PY27: - ret += ast.Set(elts=elts, - ctx=ast.Load(), - lineno=expression.start_line, - col_offset=expression.start_column) - else: - ret += ast.Call(func=ast.Name(id='set', - ctx=ast.Load(), - lineno=expression.start_line, - col_offset=expression.start_column), - args=[ - ast.List(elts=elts, - ctx=ast.Load(), - lineno=expression.start_line, - col_offset=expression.start_column)], - keywords=[], - starargs=None, - kwargs=None, - lineno=expression.start_line, - col_offset=expression.start_column) + ret += ast.Set(elts=elts, + ctx=ast.Load(), + lineno=expression.start_line, + col_offset=expression.start_column) return ret @builds("fn") diff --git a/setup.py b/setup.py index ce52007..3011c9e 100755 --- a/setup.py +++ b/setup.py @@ -61,9 +61,6 @@ class Install(install): install.run(self) install_requires = ['rply>=0.7.0', 'astor>=0.5', 'clint>=0.4'] -if sys.version_info[:2] < (2, 7): - install_requires.append('argparse>=1.2.1') - install_requires.append('importlib>=1.0.2') if os.name == 'nt': install_requires.append('pyreadline>=2.1') @@ -106,7 +103,6 @@ setup( "Programming Language :: Lisp", "Programming Language :: Python", "Programming Language :: Python :: 2", - "Programming Language :: Python :: 2.6", "Programming Language :: Python :: 2.7", "Programming Language :: Python :: 3", "Programming Language :: Python :: 3.3",