From 36142334ebce5e3bd0c653bb87e53915967593cd Mon Sep 17 00:00:00 2001 From: Phillip Cloud Date: Thu, 9 May 2013 20:37:48 -0400 Subject: [PATCH] ENH: raise useful error message on invalid concat arguments --- pandas/tools/merge.py | 5 +++++ pandas/tools/tests/test_merge.py | 8 +++++++- 2 files changed, 12 insertions(+), 1 deletion(-) diff --git a/pandas/tools/merge.py b/pandas/tools/merge.py index 6d224ffcb7b05..7f05a045e36af 100644 --- a/pandas/tools/merge.py +++ b/pandas/tools/merge.py @@ -888,6 +888,11 @@ class _Concatenator(object): def __init__(self, objs, axis=0, join='outer', join_axes=None, keys=None, levels=None, names=None, ignore_index=False, verify_integrity=False): + if not isinstance(objs, (tuple, list, dict)): + raise AssertionError('first argument must be a list of pandas ' + 'objects, you passed an object of type ' + '"{0}"'.format(type(objs).__name__)) + if join == 'outer': self.intersect = False elif join == 'inner': diff --git a/pandas/tools/tests/test_merge.py b/pandas/tools/tests/test_merge.py index bc9d6f11408b8..2fb527b2eee6b 100644 --- a/pandas/tools/tests/test_merge.py +++ b/pandas/tools/tests/test_merge.py @@ -13,7 +13,8 @@ from pandas.tseries.index import DatetimeIndex from pandas.tools.merge import merge, concat, ordered_merge, MergeError from pandas.util.testing import (assert_frame_equal, assert_series_equal, - assert_almost_equal, rands) + assert_almost_equal, rands, + makeCustomDataframe as mkdf) import pandas.algos as algos import pandas.util.testing as tm @@ -1689,6 +1690,11 @@ def test_concat_series_axis1_same_names_ignore_index(self): result = concat([s1, s2], axis=1, ignore_index=True) self.assertTrue(np.array_equal(result.columns, [0, 1])) + def test_concat_invalid_first_argument(self): + df1 = mkdf(10, 2) + df2 = mkdf(10, 2) + self.assertRaises(AssertionError, concat, df1, df2) + class TestOrderedMerge(unittest.TestCase): def setUp(self):