From f45466d7604b645d68fd6224cba8b40dac661dd7 Mon Sep 17 00:00:00 2001 From: Stefan van der Walt Date: Wed, 13 Mar 2019 23:22:49 -0700 Subject: [PATCH 1/2] ENH: Make `mode` parameter default to `constant` (padding by zero) --- numpy/lib/arraypad.py | 6 +++--- numpy/lib/tests/test_arraypad.py | 7 +++---- 2 files changed, 6 insertions(+), 7 deletions(-) diff --git a/numpy/lib/arraypad.py b/numpy/lib/arraypad.py index b236cc449d24..ffb7064f2484 100644 --- a/numpy/lib/arraypad.py +++ b/numpy/lib/arraypad.py @@ -962,7 +962,7 @@ def _pad_dispatcher(array, pad_width, mode, **kwargs): @array_function_dispatch(_pad_dispatcher, module='numpy') -def pad(array, pad_width, mode, **kwargs): +def pad(array, pad_width, mode='constant', **kwargs): """ Pads an array. @@ -977,10 +977,10 @@ def pad(array, pad_width, mode, **kwargs): ((before, after),) yields same before and after pad for each axis. (pad,) or int is a shortcut for before = after = pad width for all axes. - mode : str or function + mode : str or function, optional One of the following string values or a user supplied function. - 'constant' + 'constant' (default) Pads with a constant value. 'edge' Pads with the edge values of array. diff --git a/numpy/lib/tests/test_arraypad.py b/numpy/lib/tests/test_arraypad.py index a9030e737e74..51633bb70c78 100644 --- a/numpy/lib/tests/test_arraypad.py +++ b/numpy/lib/tests/test_arraypad.py @@ -1249,10 +1249,9 @@ def test_kwargs(mode): np.pad([1, 2, 3], 1, mode, **{key: value}) -def test_missing_mode(): - match = "missing 1 required positional argument: 'mode'" - with pytest.raises(TypeError, match=match): - np.pad(np.ones((5, 6)), 4) +def test_constant_zero_default(): + arr = np.array([1, 1]) + assert_array_equal(pad(arr, 2), [0, 0, 1, 1, 0, 0]) @pytest.mark.parametrize("mode", _all_modes.keys()) From 9a037558d66f54b27acd133b8b8e92f76717a849 Mon Sep 17 00:00:00 2001 From: Stefan van der Walt Date: Fri, 15 Mar 2019 12:26:01 -0700 Subject: [PATCH 2/2] Fix array dispatcher --- numpy/lib/arraypad.py | 2 +- numpy/lib/tests/test_arraypad.py | 2 +- 2 files changed, 2 insertions(+), 2 deletions(-) diff --git a/numpy/lib/arraypad.py b/numpy/lib/arraypad.py index ffb7064f2484..630767dc5347 100644 --- a/numpy/lib/arraypad.py +++ b/numpy/lib/arraypad.py @@ -957,7 +957,7 @@ def _as_pairs(x, ndim, as_index=False): # Public functions -def _pad_dispatcher(array, pad_width, mode, **kwargs): +def _pad_dispatcher(array, pad_width, mode=None, **kwargs): return (array,) diff --git a/numpy/lib/tests/test_arraypad.py b/numpy/lib/tests/test_arraypad.py index 51633bb70c78..b7393294ae95 100644 --- a/numpy/lib/tests/test_arraypad.py +++ b/numpy/lib/tests/test_arraypad.py @@ -1251,7 +1251,7 @@ def test_kwargs(mode): def test_constant_zero_default(): arr = np.array([1, 1]) - assert_array_equal(pad(arr, 2), [0, 0, 1, 1, 0, 0]) + assert_array_equal(np.pad(arr, 2), [0, 0, 1, 1, 0, 0]) @pytest.mark.parametrize("mode", _all_modes.keys())