From 14183012a86b0accaa4c8b72984c863d68a84160 Mon Sep 17 00:00:00 2001 From: Syrus Akbary Date: Sat, 14 Mar 2020 13:19:28 -0700 Subject: [PATCH] Remove subclass polyfill (#1156) The subclass polyfill was only needed for Python 2.7-3.5 Python 3.6 introduced the __init_subclass__, so since Graphene now requires Python 3.6+, this is no longer needed. https://www.python.org/dev/peps/pep-0487/ --- graphene/pyutils/init_subclass.py | 23 ----------------------- graphene/utils/subclass_with_meta.py | 3 +-- 2 files changed, 1 insertion(+), 25 deletions(-) delete mode 100644 graphene/pyutils/init_subclass.py diff --git a/graphene/pyutils/init_subclass.py b/graphene/pyutils/init_subclass.py deleted file mode 100644 index 81198c9c..00000000 --- a/graphene/pyutils/init_subclass.py +++ /dev/null @@ -1,23 +0,0 @@ -is_init_subclass_available = hasattr(object, "__init_subclass__") - -if not is_init_subclass_available: - - class InitSubclassMeta(type): - """Metaclass that implements PEP 487 protocol""" - - def __new__(cls, name, bases, ns, **kwargs): - __init_subclass__ = ns.pop("__init_subclass__", None) - if __init_subclass__: - __init_subclass__ = classmethod(__init_subclass__) - ns["__init_subclass__"] = __init_subclass__ - return super(InitSubclassMeta, cls).__new__(cls, name, bases, ns, **kwargs) - - def __init__(cls, name, bases, ns, **kwargs): - super(InitSubclassMeta, cls).__init__(name, bases, ns) - super_class = super(cls, cls) - if hasattr(super_class, "__init_subclass__"): - super_class.__init_subclass__.__func__(cls, **kwargs) - - -else: - InitSubclassMeta = type # type: ignore diff --git a/graphene/utils/subclass_with_meta.py b/graphene/utils/subclass_with_meta.py index 09f08a88..8900ad53 100644 --- a/graphene/utils/subclass_with_meta.py +++ b/graphene/utils/subclass_with_meta.py @@ -1,10 +1,9 @@ from inspect import isclass -from ..pyutils.init_subclass import InitSubclassMeta from .props import props -class SubclassWithMeta_Meta(InitSubclassMeta): +class SubclassWithMeta_Meta(type): _meta = None def __str__(cls):