Taken from upstream: https://github.com/pdoc3/pdoc/commit/4aa70de2221a34a3003a7e5f52a9b91965f0e359.patch. From 4aa70de2221a34a3003a7e5f52a9b91965f0e359 Mon Sep 17 00:00:00 2001 From: Spencer Baugh <sbaugh@catern.com> Date: Thu, 23 Sep 2021 09:00:25 -0400 Subject: [PATCH] TST: use explicit ClassWithNew instead of typing.Generic typing.Generic doesn't have a __new__ method in 3.9. Fixes https://github.com/pdoc3/pdoc/issues/355 --- pdoc/test/__init__.py | 10 +++++++--- 1 file changed, 7 insertions(+), 3 deletions(-) diff --git a/pdoc/test/__init__.py b/pdoc/test/__init__.py index e8c3d94..8b67ab7 100644 --- a/pdoc/test/__init__.py +++ b/pdoc/test/__init__.py @@ -1043,16 +1043,20 @@ class C2: self.assertEqual(pdoc.Class('C2', mod, C2).params(), ['a', 'b', 'c=None', '*', 'd=1', 'e']) - class G(typing.Generic[T]): + class ClassWithNew: + def __new__(self, arg): + pass + + class G(ClassWithNew): def __init__(self, a, b, c=100): pass self.assertEqual(pdoc.Class('G', mod, G).params(), ['a', 'b', 'c=100']) - class G2(typing.Generic[T]): + class G2(ClassWithNew): pass - self.assertEqual(pdoc.Class('G2', mod, G2).params(), ['*args', '**kwds']) + self.assertEqual(pdoc.Class('G2', mod, G2).params(), ['arg']) def test_url(self): mod = pdoc.Module(EXAMPLE_MODULE)