summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
-rw-r--r--numpy/core/src/multiarray/scalartypes.c.src3
-rw-r--r--numpy/core/tests/test_regression.py8
2 files changed, 9 insertions, 2 deletions
diff --git a/numpy/core/src/multiarray/scalartypes.c.src b/numpy/core/src/multiarray/scalartypes.c.src
index dbc65724d..afae70fd5 100644
--- a/numpy/core/src/multiarray/scalartypes.c.src
+++ b/numpy/core/src/multiarray/scalartypes.c.src
@@ -433,8 +433,7 @@ gentype_format(PyObject *self, PyObject *args)
Py_DECREF(dtype);
}
else {
- obj = self;
- Py_INCREF(obj);
+ obj = PyObject_Str(self);
}
if (obj == NULL) {
diff --git a/numpy/core/tests/test_regression.py b/numpy/core/tests/test_regression.py
index e6eb0791d..05336ac20 100644
--- a/numpy/core/tests/test_regression.py
+++ b/numpy/core/tests/test_regression.py
@@ -1945,5 +1945,13 @@ class TestRegression(TestCase):
arr.__setitem__(slice(None), [9])
assert_equal(arr, [9, 9, 9])
+ def test_format_on_flex_array_element(self):
+ # Ticket #4369.
+ dt = np.dtype([('date', '<M8[D]'), ('val', '<f8')])
+ arr = np.array([('2000-01-01', 1)], dt)
+ formatted = '{0}'.format(arr[0])
+ assert_equal(formatted, str(arr[0]))
+
+
if __name__ == "__main__":
run_module_suite()