[3.14] gh-132983: Slightly tweak error messages for _zstd compressor/decompressor options dict (GH-134601) (#134602)

gh-132983: Slightly tweak error messages for _zstd compressor/decompressor options dict (GH-134601)

Slightly tweak error messages for options dict
(cherry picked from commit f478331f98)

Co-authored-by: Emma Smith <emma@emmatyping.dev>
This commit is contained in:
Miss Islington (bot) 2025-05-24 00:18:08 +02:00 committed by GitHub
parent 7476f90af2
commit f301af627e
No known key found for this signature in database
GPG key ID: B5690EEEBB952194
3 changed files with 11 additions and 12 deletions

View file

@ -1424,11 +1424,12 @@ def test_init_bad_mode(self):
with self.assertRaises(ValueError): with self.assertRaises(ValueError):
ZstdFile(io.BytesIO(COMPRESSED_100_PLUS_32KB), "rw") ZstdFile(io.BytesIO(COMPRESSED_100_PLUS_32KB), "rw")
with self.assertRaisesRegex(TypeError, r"NOT be CompressionParameter"): with self.assertRaisesRegex(TypeError,
r"NOT be a CompressionParameter"):
ZstdFile(io.BytesIO(), 'rb', ZstdFile(io.BytesIO(), 'rb',
options={CompressionParameter.compression_level:5}) options={CompressionParameter.compression_level:5})
with self.assertRaisesRegex(TypeError, with self.assertRaisesRegex(TypeError,
r"NOT be DecompressionParameter"): r"NOT be a DecompressionParameter"):
ZstdFile(io.BytesIO(), 'wb', ZstdFile(io.BytesIO(), 'wb',
options={DecompressionParameter.window_log_max:21}) options={DecompressionParameter.window_log_max:21})

View file

@ -93,24 +93,23 @@ _zstd_set_c_parameters(ZstdCompressor *self, PyObject *level_or_options,
/* Check key type */ /* Check key type */
if (Py_TYPE(key) == mod_state->DParameter_type) { if (Py_TYPE(key) == mod_state->DParameter_type) {
PyErr_SetString(PyExc_TypeError, PyErr_SetString(PyExc_TypeError,
"Key of compression option dict should " "Key of compression options dict should "
"NOT be DecompressionParameter."); "NOT be a DecompressionParameter attribute.");
return -1; return -1;
} }
int key_v = PyLong_AsInt(key); int key_v = PyLong_AsInt(key);
if (key_v == -1 && PyErr_Occurred()) { if (key_v == -1 && PyErr_Occurred()) {
PyErr_SetString(PyExc_ValueError, PyErr_SetString(PyExc_ValueError,
"Key of options dict should be a CompressionParameter attribute."); "Key of options dict should be either a "
"CompressionParameter attribute or an int.");
return -1; return -1;
} }
// TODO(emmatyping): check bounds when there is a value error here for better
// error message?
int value_v = PyLong_AsInt(value); int value_v = PyLong_AsInt(value);
if (value_v == -1 && PyErr_Occurred()) { if (value_v == -1 && PyErr_Occurred()) {
PyErr_SetString(PyExc_ValueError, PyErr_SetString(PyExc_ValueError,
"Value of option dict should be an int."); "Value of options dict should be an int.");
return -1; return -1;
} }

View file

@ -112,7 +112,7 @@ _zstd_set_d_parameters(ZstdDecompressor *self, PyObject *options)
if (Py_TYPE(key) == mod_state->CParameter_type) { if (Py_TYPE(key) == mod_state->CParameter_type) {
PyErr_SetString(PyExc_TypeError, PyErr_SetString(PyExc_TypeError,
"Key of decompression options dict should " "Key of decompression options dict should "
"NOT be CompressionParameter."); "NOT be a CompressionParameter attribute.");
return -1; return -1;
} }
@ -120,12 +120,11 @@ _zstd_set_d_parameters(ZstdDecompressor *self, PyObject *options)
int key_v = PyLong_AsInt(key); int key_v = PyLong_AsInt(key);
if (key_v == -1 && PyErr_Occurred()) { if (key_v == -1 && PyErr_Occurred()) {
PyErr_SetString(PyExc_ValueError, PyErr_SetString(PyExc_ValueError,
"Key of options dict should be a DecompressionParameter attribute."); "Key of options dict should be either a "
"DecompressionParameter attribute or an int.");
return -1; return -1;
} }
// TODO(emmatyping): check bounds when there is a value error here for better
// error message?
int value_v = PyLong_AsInt(value); int value_v = PyLong_AsInt(value);
if (value_v == -1 && PyErr_Occurred()) { if (value_v == -1 && PyErr_Occurred()) {
PyErr_SetString(PyExc_ValueError, PyErr_SetString(PyExc_ValueError,