diff --git a/graphene/pyutils/compat.py b/graphene/pyutils/compat.py index 3d3ce2fe..d6d24358 100644 --- a/graphene/pyutils/compat.py +++ b/graphene/pyutils/compat.py @@ -1,21 +1,8 @@ from __future__ import absolute_import -import six - from graphql.pyutils.compat import Enum try: from inspect import signature except ImportError: from .signature import signature - -if six.PY2: - - def func_name(func): - return func.func_name - - -else: - - def func_name(func): - return func.__name__ diff --git a/graphene/test/__init__.py b/graphene/test/__init__.py index dab3b51b..4d2e4df0 100644 --- a/graphene/test/__init__.py +++ b/graphene/test/__init__.py @@ -1,5 +1,4 @@ from promise import Promise, is_thenable -import six from graphql.error import format_error as format_graphql_error from graphql.error import GraphQLError @@ -10,7 +9,7 @@ def default_format_error(error): if isinstance(error, GraphQLError): return format_graphql_error(error) - return {"message": six.text_type(error)} + return {"message": str(error)} def format_execution_result(execution_result, format_error): diff --git a/graphene/types/datetime.py b/graphene/types/datetime.py index 3519d76d..ca96547f 100644 --- a/graphene/types/datetime.py +++ b/graphene/types/datetime.py @@ -4,7 +4,6 @@ import datetime from aniso8601 import parse_date, parse_datetime, parse_time from graphql.language import ast -from six import string_types from .scalars import Scalar @@ -35,7 +34,7 @@ class Date(Scalar): try: if isinstance(value, datetime.date): return value - elif isinstance(value, string_types): + elif isinstance(value, str): return parse_date(value) except ValueError: return None @@ -65,7 +64,7 @@ class DateTime(Scalar): try: if isinstance(value, datetime.datetime): return value - elif isinstance(value, string_types): + elif isinstance(value, str): return parse_datetime(value) except ValueError: return None @@ -95,7 +94,7 @@ class Time(Scalar): try: if isinstance(value, datetime.time): return value - elif isinstance(value, string_types): + elif isinstance(value, str): return parse_time(value) except ValueError: return None diff --git a/graphene/types/enum.py b/graphene/types/enum.py index 7b8e71f5..997cc0ae 100644 --- a/graphene/types/enum.py +++ b/graphene/types/enum.py @@ -1,7 +1,4 @@ from collections import OrderedDict - -import six - from graphene.utils.subclass_with_meta import SubclassWithMeta_Meta from ..pyutils.compat import Enum as PyEnum @@ -66,7 +63,7 @@ class EnumMeta(SubclassWithMeta_Meta): return type(meta_class.enum.__name__, (Enum,), {"Meta": meta_class}) -class Enum(six.with_metaclass(EnumMeta, UnmountedType, BaseType)): +class Enum(UnmountedType, BaseType, metaclass=EnumMeta): @classmethod def __init_subclass_with_meta__(cls, enum=None, _meta=None, **options): if not _meta: diff --git a/graphene/types/scalars.py b/graphene/types/scalars.py index a5596d28..b9cb1aa0 100644 --- a/graphene/types/scalars.py +++ b/graphene/types/scalars.py @@ -1,4 +1,3 @@ -import six from typing import Any from graphql.language.ast import BooleanValue, FloatValue, IntValue, StringValue @@ -113,7 +112,7 @@ class String(Scalar): def coerce_string(value): if isinstance(value, bool): return u"true" if value else u"false" - return six.text_type(value) + return str(value) serialize = coerce_string parse_value = coerce_string diff --git a/graphene/types/utils.py b/graphene/types/utils.py index b026355b..a7e23572 100644 --- a/graphene/types/utils.py +++ b/graphene/types/utils.py @@ -2,8 +2,6 @@ import inspect from collections import OrderedDict from functools import partial -from six import string_types - from ..utils.module_loading import import_string from .mountedtype import MountedType from .unmountedtype import UnmountedType @@ -39,7 +37,7 @@ def yank_fields_from_attrs(attrs, _as=None, sort=True): def get_type(_type): - if isinstance(_type, string_types): + if isinstance(_type, str): return import_string(_type) if inspect.isfunction(_type) or isinstance(_type, partial): return _type() diff --git a/graphene/types/uuid.py b/graphene/types/uuid.py index b9687e1e..f55e7a85 100644 --- a/graphene/types/uuid.py +++ b/graphene/types/uuid.py @@ -1,5 +1,4 @@ from __future__ import absolute_import -import six from uuid import UUID as _UUID from graphql.language import ast @@ -12,7 +11,7 @@ class UUID(Scalar): @staticmethod def serialize(uuid): - if isinstance(uuid, six.string_types): + if isinstance(uuid, str): uuid = _UUID(uuid) assert isinstance(uuid, _UUID), "Expected UUID instance, received {}".format( diff --git a/graphene/utils/subclass_with_meta.py b/graphene/utils/subclass_with_meta.py index 01fc5375..600de3d8 100644 --- a/graphene/utils/subclass_with_meta.py +++ b/graphene/utils/subclass_with_meta.py @@ -1,7 +1,5 @@ from inspect import isclass -import six - from ..pyutils.init_subclass import InitSubclassMeta from .props import props @@ -18,7 +16,7 @@ class SubclassWithMeta_Meta(InitSubclassMeta): return "<{} meta={}>".format(cls.__name__, repr(cls._meta)) -class SubclassWithMeta(six.with_metaclass(SubclassWithMeta_Meta)): +class SubclassWithMeta(metaclass=SubclassWithMeta_Meta): """This class improves __init_subclass__ to receive automatically the options from meta""" # We will only have the metaclass in Python 2 diff --git a/setup.py b/setup.py index 6b1a6ba3..9991e9ad 100644 --- a/setup.py +++ b/setup.py @@ -79,7 +79,6 @@ setup( keywords="api graphql protocol rest relay graphene", packages=find_packages(exclude=["tests", "tests.*", "examples"]), install_requires=[ - "six>=1.10.0,<2", "graphql-core>=2.1,<3", "graphql-relay>=0.4.5,<1", "aniso8601>=3,<=6.0.*",