diff options
author | Charles Harris <charlesr.harris@gmail.com> | 2012-03-24 14:49:07 -0600 |
---|---|---|
committer | Charles Harris <charlesr.harris@gmail.com> | 2012-03-30 05:46:38 -0600 |
commit | 960a86be3539f67ea5200d6fe22ae0e82324af30 (patch) | |
tree | 55a9dc759b2b719c4c97395d0c53390f29d3a88b | |
parent | 2dc81ff91a16b4fb1e555d5c3898b7eb9e2a08b3 (diff) | |
download | numpy-960a86be3539f67ea5200d6fe22ae0e82324af30.tar.gz |
BUG: ticket #2086, make datetime and timedelta recognize byte order.
The descriptor construction of these types was ignoring the byteorder
character.
-rw-r--r-- | numpy/core/src/multiarray/descriptor.c | 9 | ||||
-rw-r--r-- | numpy/core/tests/test_datetime.py | 2 |
2 files changed, 10 insertions, 1 deletions
diff --git a/numpy/core/src/multiarray/descriptor.c b/numpy/core/src/multiarray/descriptor.c index 3aaa7843c..4e61d5b26 100644 --- a/numpy/core/src/multiarray/descriptor.c +++ b/numpy/core/src/multiarray/descriptor.c @@ -1269,7 +1269,14 @@ PyArray_DescrConverter(PyObject *obj, PyArray_Descr **at) /* Check for datetime format */ if (is_datetime_typestr(type, len)) { *at = parse_dtype_from_datetime_typestr(type, len); - return (*at) ? NPY_SUCCEED : NPY_FAIL; + if (*at == NULL) { + return NPY_FAIL; + } + /* *at has byte order '=' at this point */ + if (!PyArray_ISNBO(endian)) { + (*at)->byteorder = endian; + } + return NPY_SUCCEED; } /* A typecode like 'd' */ diff --git a/numpy/core/tests/test_datetime.py b/numpy/core/tests/test_datetime.py index 07dc86203..a0519612e 100644 --- a/numpy/core/tests/test_datetime.py +++ b/numpy/core/tests/test_datetime.py @@ -25,6 +25,7 @@ class TestDateTime(TestCase): np.dtype("<M8") == np.dtype("M8")) assert_(np.dtype(">M8[D]") == np.dtype("M8[D]") or np.dtype("<M8[D]") == np.dtype("M8[D]")) + assert_(np.dtype(">M8") != np.dtype("<M8")) assert_equal(np.dtype("=m8"), np.dtype("m8")) assert_equal(np.dtype("=m8[s]"), np.dtype("m8[s]")) @@ -32,6 +33,7 @@ class TestDateTime(TestCase): np.dtype("<m8") == np.dtype("m8")) assert_(np.dtype(">m8[D]") == np.dtype("m8[D]") or np.dtype("<m8[D]") == np.dtype("m8[D]")) + assert_(np.dtype(">m8") != np.dtype("<m8")) # Check that the parser rejects bad datetime types assert_raises(TypeError, np.dtype, 'M8[badunit]') |