From 132185fc5ab4e8183ef4b55b8986483fef7eadae Mon Sep 17 00:00:00 2001 From: Matt Roeschke Date: Mon, 21 Jan 2019 07:35:19 +0800 Subject: [PATCH 1/4] CLN: Move internal function to where its used --- pandas/core/computation/expr.py | 12 +++++++++++- pandas/core/reshape/util.py | 11 ----------- 2 files changed, 11 insertions(+), 12 deletions(-) diff --git a/pandas/core/computation/expr.py b/pandas/core/computation/expr.py index 9a44198ba3b86..56debdaa80a3f 100644 --- a/pandas/core/computation/expr.py +++ b/pandas/core/computation/expr.py @@ -18,7 +18,6 @@ UndefinedVariableError, _arith_ops_syms, _bool_ops_syms, _cmp_ops_syms, _mathops, _reductions, _unary_ops_syms, is_term) from pandas.core.computation.scope import Scope -from pandas.core.reshape.util import compose import pandas.io.formats.printing as printing @@ -103,6 +102,17 @@ def _replace_locals(tok): return toknum, tokval +def _compose2(f, g): + """Compose 2 callables""" + return lambda *args, **kwargs: f(g(*args, **kwargs)) + + +def compose(*funcs): + """Compose 2 or more callables""" + assert len(funcs) > 1, 'At least 2 callables must be passed to compose' + return reduce(_compose2, funcs) + + def _preparse(source, f=compose(_replace_locals, _replace_booleans, _rewrite_assign)): """Compose a collection of tokenization functions diff --git a/pandas/core/reshape/util.py b/pandas/core/reshape/util.py index 7f43a0e9719b8..8726ff56ef3ab 100644 --- a/pandas/core/reshape/util.py +++ b/pandas/core/reshape/util.py @@ -57,14 +57,3 @@ def cartesian_product(X): return [np.tile(np.repeat(np.asarray(com.values_from_object(x)), b[i]), np.product(a[i])) for i, x in enumerate(X)] - - -def _compose2(f, g): - """Compose 2 callables""" - return lambda *args, **kwargs: f(g(*args, **kwargs)) - - -def compose(*funcs): - """Compose 2 or more callables""" - assert len(funcs) > 1, 'At least 2 callables must be passed to compose' - return reduce(_compose2, funcs) From 7c0f9adcee2e540c629749358d8e42be1c508a82 Mon Sep 17 00:00:00 2001 From: Matt Roeschke Date: Tue, 22 Jan 2019 20:07:07 +0800 Subject: [PATCH 2/4] Make compose private --- pandas/core/computation/expr.py | 8 ++++---- 1 file changed, 4 insertions(+), 4 deletions(-) diff --git a/pandas/core/computation/expr.py b/pandas/core/computation/expr.py index 56debdaa80a3f..51e97ddac13d9 100644 --- a/pandas/core/computation/expr.py +++ b/pandas/core/computation/expr.py @@ -107,13 +107,13 @@ def _compose2(f, g): return lambda *args, **kwargs: f(g(*args, **kwargs)) -def compose(*funcs): +def _compose(*funcs): """Compose 2 or more callables""" assert len(funcs) > 1, 'At least 2 callables must be passed to compose' return reduce(_compose2, funcs) -def _preparse(source, f=compose(_replace_locals, _replace_booleans, +def _preparse(source, f=_compose(_replace_locals, _replace_booleans, _rewrite_assign)): """Compose a collection of tokenization functions @@ -711,8 +711,8 @@ def visitor(x, y): class PandasExprVisitor(BaseExprVisitor): def __init__(self, env, engine, parser, - preparser=partial(_preparse, f=compose(_replace_locals, - _replace_booleans))): + preparser=partial(_preparse, f=_compose(_replace_locals, + _replace_booleans))): super(PandasExprVisitor, self).__init__(env, engine, parser, preparser) From 577fabd170c80e987cae93d739a92cff9e61b9a7 Mon Sep 17 00:00:00 2001 From: Matt Roeschke Date: Tue, 22 Jan 2019 20:07:30 +0800 Subject: [PATCH 3/4] pep8 --- pandas/core/computation/expr.py | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/pandas/core/computation/expr.py b/pandas/core/computation/expr.py index 51e97ddac13d9..d840bf6ae71a2 100644 --- a/pandas/core/computation/expr.py +++ b/pandas/core/computation/expr.py @@ -114,7 +114,7 @@ def _compose(*funcs): def _preparse(source, f=_compose(_replace_locals, _replace_booleans, - _rewrite_assign)): + _rewrite_assign)): """Compose a collection of tokenization functions Parameters From 8508dc8a37eff9f35b217c6ec364dc9ecb6d8497 Mon Sep 17 00:00:00 2001 From: Matt Roeschke Date: Tue, 22 Jan 2019 20:23:16 +0800 Subject: [PATCH 4/4] Remove unused import --- pandas/core/reshape/util.py | 2 -- 1 file changed, 2 deletions(-) diff --git a/pandas/core/reshape/util.py b/pandas/core/reshape/util.py index 8726ff56ef3ab..9d4135a7f310e 100644 --- a/pandas/core/reshape/util.py +++ b/pandas/core/reshape/util.py @@ -1,7 +1,5 @@ import numpy as np -from pandas.compat import reduce - from pandas.core.dtypes.common import is_list_like from pandas.core import common as com