From 7e396ec02e92df658d5e0f160c7845acf8bc9108 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?=C3=9Clgen=20Sar=C4=B1kavak?= Date: Sat, 14 Mar 2020 11:54:21 +0300 Subject: [PATCH] Remove Python 2 support --- .travis.yml | 6 ++---- graphene_django/debug/sql/tracking.py | 3 +-- graphene_django/fields.py | 1 - graphene_django/filter/utils.py | 4 +--- graphene_django/settings.py | 3 +-- graphene_django/tests/test_command.py | 2 +- graphene_django/types.py | 5 +---- graphene_django/utils/utils.py | 5 ++--- graphene_django/views.py | 5 ++--- setup.py | 7 +------ tox.ini | 6 +----- 11 files changed, 13 insertions(+), 34 deletions(-) diff --git a/.travis.yml b/.travis.yml index bbeeb80..e625b28 100644 --- a/.travis.yml +++ b/.travis.yml @@ -5,10 +5,10 @@ dist: xenial install: - pip install tox tox-travis -script: +script: - tox -after_success: +after_success: - pip install coveralls - coveralls @@ -24,8 +24,6 @@ jobs: - env: DJANGO=master include: - - python: 2.7 - env: DJANGO=1.11 - python: 3.5 env: DJANGO=1.11 diff --git a/graphene_django/debug/sql/tracking.py b/graphene_django/debug/sql/tracking.py index a7c9d8d..aacd1a0 100644 --- a/graphene_django/debug/sql/tracking.py +++ b/graphene_django/debug/sql/tracking.py @@ -5,7 +5,6 @@ import json from threading import local from time import time -import six from django.utils.encoding import force_str from .types import DjangoDebugSQL @@ -77,7 +76,7 @@ class NormalCursorWrapper(object): self.logger = logger def _quote_expr(self, element): - if isinstance(element, six.string_types): + if isinstance(element, str): return "'%s'" % force_str(element).replace("'", "''") else: return repr(element) diff --git a/graphene_django/fields.py b/graphene_django/fields.py index fb6b98a..f0a3828 100644 --- a/graphene_django/fields.py +++ b/graphene_django/fields.py @@ -1,6 +1,5 @@ from functools import partial -import six from django.db.models.query import QuerySet from graphql_relay.connection.arrayconnection import connection_from_list_slice from promise import Promise diff --git a/graphene_django/filter/utils.py b/graphene_django/filter/utils.py index c5f18e2..ea4f8dc 100644 --- a/graphene_django/filter/utils.py +++ b/graphene_django/filter/utils.py @@ -1,5 +1,3 @@ -import six - from django_filters.utils import get_model_field from .filterset import custom_filterset_factory, setup_filterset @@ -13,7 +11,7 @@ def get_filtering_args_from_filterset(filterset_class, type): args = {} model = filterset_class._meta.model - for name, filter_field in six.iteritems(filterset_class.base_filters): + for name, filter_field in filterset_class.base_filters.items(): form_field = None if name in filterset_class.declared_filters: diff --git a/graphene_django/settings.py b/graphene_django/settings.py index 666ad8a..07cbba1 100644 --- a/graphene_django/settings.py +++ b/graphene_django/settings.py @@ -13,7 +13,6 @@ back to the defaults. """ from __future__ import unicode_literals -import six from django.conf import settings from django.test.signals import setting_changed @@ -55,7 +54,7 @@ def perform_import(val, setting_name): """ if val is None: return None - elif isinstance(val, six.string_types): + elif isinstance(val, str): return import_from_string(val, setting_name) elif isinstance(val, (list, tuple)): return [import_from_string(item, setting_name) for item in val] diff --git a/graphene_django/tests/test_command.py b/graphene_django/tests/test_command.py index 8b0a8e6..6dfe330 100644 --- a/graphene_django/tests/test_command.py +++ b/graphene_django/tests/test_command.py @@ -1,8 +1,8 @@ from textwrap import dedent from django.core import management +from io import StringIO from mock import mock_open, patch -from six import StringIO from graphene import ObjectType, Schema, String diff --git a/graphene_django/types.py b/graphene_django/types.py index 0c0cb1c..9bb47b9 100644 --- a/graphene_django/types.py +++ b/graphene_django/types.py @@ -1,7 +1,7 @@ import warnings from collections import OrderedDict +from typing import Type -import six from django.db.models import Model from django.utils.functional import SimpleLazyObject @@ -21,9 +21,6 @@ from .utils import ( is_valid_django_model, ) -if six.PY3: - from typing import Type - ALL_FIELDS = "__all__" diff --git a/graphene_django/utils/utils.py b/graphene_django/utils/utils.py index c1d3572..f692dd5 100644 --- a/graphene_django/utils/utils.py +++ b/graphene_django/utils/utils.py @@ -1,6 +1,5 @@ import inspect -import six from django.db import models from django.db.models.manager import Manager from django.utils.encoding import force_text @@ -27,13 +26,13 @@ def isiterable(value): def _camelize_django_str(s): if isinstance(s, Promise): s = force_text(s) - return to_camel_case(s) if isinstance(s, six.string_types) else s + return to_camel_case(s) if isinstance(s, str) else s def camelize(data): if isinstance(data, dict): return {_camelize_django_str(k): camelize(v) for k, v in data.items()} - if isiterable(data) and not isinstance(data, (six.string_types, Promise)): + if isiterable(data) and not isinstance(data, (str, Promise)): return [camelize(d) for d in data] return data diff --git a/graphene_django/views.py b/graphene_django/views.py index 4c58839..8d57d50 100644 --- a/graphene_django/views.py +++ b/graphene_django/views.py @@ -2,7 +2,6 @@ import inspect import json import re -import six from django.http import HttpResponse, HttpResponseNotAllowed from django.http.response import HttpResponseBadRequest from django.shortcuts import render @@ -314,7 +313,7 @@ class GraphQLView(View): variables = request.GET.get("variables") or data.get("variables") id = request.GET.get("id") or data.get("id") - if variables and isinstance(variables, six.text_type): + if variables and isinstance(variables, str): try: variables = json.loads(variables) except Exception: @@ -331,7 +330,7 @@ class GraphQLView(View): if isinstance(error, GraphQLError): return format_graphql_error(error) - return {"message": six.text_type(error)} + return {"message": str(error)} @staticmethod def get_content_type(request): diff --git a/setup.py b/setup.py index 560549a..7c74a06 100644 --- a/setup.py +++ b/setup.py @@ -1,5 +1,4 @@ from setuptools import find_packages, setup -import sys import ast import re @@ -19,8 +18,7 @@ tests_require = [ "coveralls", "mock", "pytz", - "django-filter<2;python_version<'3'", - "django-filter>=2;python_version>='3'", + "django-filter>=2", "pytest-django>=3.3.2", ] + rest_framework_require @@ -45,8 +43,6 @@ setup( "Development Status :: 3 - Alpha", "Intended Audience :: Developers", "Topic :: Software Development :: Libraries", - "Programming Language :: Python :: 2", - "Programming Language :: Python :: 2.7", "Programming Language :: Python :: 3", "Programming Language :: Python :: 3.4", "Programming Language :: Python :: 3.5", @@ -56,7 +52,6 @@ setup( keywords="api graphql protocol rest relay graphene", packages=find_packages(exclude=["tests"]), install_requires=[ - "six>=1.10.0", "graphene>=2.1.7,<3", "graphql-core>=2.1.0,<3", "Django>=1.11", diff --git a/tox.ini b/tox.ini index e7287ff..616e868 100644 --- a/tox.ini +++ b/tox.ini @@ -1,14 +1,12 @@ [tox] envlist = - py{27,35,36,37}-django{111,20,21,22,master}, + py{35,36,37}-django{111,master}, py{36,37}-django30, black,flake8 [travis:env] DJANGO = 1.11: django111 - 2.0: django20 - 2.1: django21 2.2: django22 3.0: django30 master: djangomaster @@ -22,8 +20,6 @@ deps = -e.[test] psycopg2 django111: Django>=1.11,<2.0 - django20: Django>=2.0,<2.1 - django21: Django>=2.1,<2.2 django22: Django>=2.2,<3.0 django30: Django>=3.0a1,<3.1 djangomaster: https://github.com/django/django/archive/master.zip