summaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authorMiss Islington (bot) <31488909+miss-islington@users.noreply.github.com>2021-05-12 14:02:46 (GMT)
committerGitHub <noreply@github.com>2021-05-12 14:02:46 (GMT)
commit3e44e9af9ea4c5e82912a01f256d4abcae96f32b (patch)
tree932d89cd13d7386b5ed3756d1a82198cd4e98652
parent48cb11bf5b426bd3f1d010f987c03115661261b7 (diff)
downloadcpython-3e44e9af9ea4c5e82912a01f256d4abcae96f32b.zip
cpython-3e44e9af9ea4c5e82912a01f256d4abcae96f32b.tar.gz
cpython-3e44e9af9ea4c5e82912a01f256d4abcae96f32b.tar.bz2
bpo-44089: Allow subclassing of ``csv.Error`` (GH-26008) (GH-26066)
* fix subclass error * Update 2021-05-09-22-52-34.bpo-44089.IoANsN.rst (cherry picked from commit 2b458c1dba4058c808fde25226bb2d91c5a909ca) Co-authored-by: Ken Jin <28750310+Fidget-Spinner@users.noreply.github.com> Co-authored-by: Ken Jin <28750310+Fidget-Spinner@users.noreply.github.com>
-rw-r--r--Lib/test/test_csv.py3
-rw-r--r--Misc/NEWS.d/next/Library/2021-05-09-22-52-34.bpo-44089.IoANsN.rst2
-rw-r--r--Modules/_csv.c2
3 files changed, 6 insertions, 1 deletions
diff --git a/Lib/test/test_csv.py b/Lib/test/test_csv.py
index 2411a91..a1e050a 100644
--- a/Lib/test/test_csv.py
+++ b/Lib/test/test_csv.py
@@ -1237,6 +1237,9 @@ class MiscTestCase(unittest.TestCase):
extra = {'__doc__', '__version__'}
support.check__all__(self, csv, ('csv', '_csv'), extra=extra)
+ def test_subclassable(self):
+ # issue 44089
+ class Foo(csv.Error): ...
if __name__ == '__main__':
unittest.main()
diff --git a/Misc/NEWS.d/next/Library/2021-05-09-22-52-34.bpo-44089.IoANsN.rst b/Misc/NEWS.d/next/Library/2021-05-09-22-52-34.bpo-44089.IoANsN.rst
new file mode 100644
index 0000000..b9bd963
--- /dev/null
+++ b/Misc/NEWS.d/next/Library/2021-05-09-22-52-34.bpo-44089.IoANsN.rst
@@ -0,0 +1,2 @@
+Allow subclassing ``csv.Error`` in 3.10 (it was allowed in 3.9 and earlier but
+was disallowed in early versions of 3.10).
diff --git a/Modules/_csv.c b/Modules/_csv.c
index cade1ca..bdb67fd 100644
--- a/Modules/_csv.c
+++ b/Modules/_csv.c
@@ -1515,7 +1515,7 @@ static PyType_Slot error_slots[] = {
PyType_Spec error_spec = {
.name = "_csv.Error",
- .flags = Py_TPFLAGS_DEFAULT,
+ .flags = Py_TPFLAGS_DEFAULT | Py_TPFLAGS_BASETYPE,
.slots = error_slots,
};