diff options
author | Benjamin Egelund-Müller <b@egelund-muller.com> | 2021-11-16 09:49:47 +0100 |
---|---|---|
committer | GitHub <noreply@github.com> | 2021-11-16 17:49:47 +0900 |
commit | e464cb44fa3af5ad3ecd83f9c045b16981d01bb2 (patch) | |
tree | 060cdcdc6d87d0e3763daa52cf40c4d4675a3fb3 /msgpack | |
parent | cfa05d3fdc6290b4847e4781a06ac0668ea9dc18 (diff) | |
download | msgpack-python-e464cb44fa3af5ad3ecd83f9c045b16981d01bb2.tar.gz |
Nicer error when packing a datetime without tzinfo (#466)
Diffstat (limited to 'msgpack')
-rw-r--r-- | msgpack/_packer.pyx | 2 | ||||
-rw-r--r-- | msgpack/fallback.py | 4 |
2 files changed, 6 insertions, 0 deletions
diff --git a/msgpack/_packer.pyx b/msgpack/_packer.pyx index e6cd2c7..396da0c 100644 --- a/msgpack/_packer.pyx +++ b/msgpack/_packer.pyx @@ -285,6 +285,8 @@ cdef class Packer(object): o = self._default(o) default_used = 1 continue + elif self.datetime and PyDateTime_CheckExact(o): + PyErr_Format(ValueError, b"can not serialize '%.200s' object where tzinfo=None", Py_TYPE(o).tp_name) else: PyErr_Format(TypeError, b"can not serialize '%.200s' object", Py_TYPE(o).tp_name) return ret diff --git a/msgpack/fallback.py b/msgpack/fallback.py index 4540875..b27acb2 100644 --- a/msgpack/fallback.py +++ b/msgpack/fallback.py @@ -874,6 +874,10 @@ class Packer(object): obj = self._default(obj) default_used = 1 continue + + if self._datetime and check(obj, _DateTime): + raise ValueError("Cannot serialize %r where tzinfo=None" % (obj,)) + raise TypeError("Cannot serialize %r" % (obj,)) def pack(self, obj): |