diff --git a/.travis.yml b/.travis.yml index c5c3405..fea5401 100644 --- a/.travis.yml +++ b/.travis.yml @@ -18,7 +18,7 @@ env: # command to install dependencies install: - - pip install six tox-travis + - pip install tox-travis # command to run tests script: diff --git a/docs/extending.rst b/docs/extending.rst index e6d4c75..cb31039 100644 --- a/docs/extending.rst +++ b/docs/extending.rst @@ -422,7 +422,7 @@ framework, we'll use those as an example...:: class UserForm(ModelForm): - class Meta(object): + class Meta: model = User fields = ['username', 'first_name', 'last_name', 'email'] @@ -462,7 +462,7 @@ up your code into a validation method. An example of this might look like...:: class UserForm(ModelForm): - class Meta(object): + class Meta: model = User fields = ['username', 'first_name', 'last_name', 'email'] diff --git a/docs/tutorial.rst b/docs/tutorial.rst index 77bd56c..c99b9e5 100644 --- a/docs/tutorial.rst +++ b/docs/tutorial.rst @@ -141,7 +141,7 @@ a ``posts`` application, which has a model setup like so...:: posted_on = models.DateTimeField(auto_now_add=True) updated_on = models.DateTimeField(auto_now=True) - class Meta(object): + class Meta: ordering = ['-posted_on', 'title'] def __str__(self): diff --git a/examples/django/posts/models.py b/examples/django/posts/models.py index 3c0d609..97e8b44 100644 --- a/examples/django/posts/models.py +++ b/examples/django/posts/models.py @@ -10,7 +10,7 @@ class Post(models.Model): posted_on = models.DateTimeField(auto_now_add=True) updated_on = models.DateTimeField(auto_now=True) - class Meta(object): + class Meta: ordering = ['-posted_on', 'title'] def __str__(self): diff --git a/requirements.txt b/requirements.txt index 3fd3941..e69de29 100644 --- a/requirements.txt +++ b/requirements.txt @@ -1 +0,0 @@ -six>=1.4.0 diff --git a/restless/data.py b/restless/data.py index f782aaf..56ba483 100644 --- a/restless/data.py +++ b/restless/data.py @@ -1,4 +1,4 @@ -class Data(object): +class Data: def __init__(self, value, should_prepare=True, prepare_with=None): """ A container object that carries meta information about the data. diff --git a/restless/dj.py b/restless/dj.py index 2d7a0fc..68626f5 100644 --- a/restless/dj.py +++ b/restless/dj.py @@ -1,5 +1,3 @@ -import six - from django.conf import settings from django.conf.urls import url from django.core.exceptions import ObjectDoesNotExist @@ -82,7 +80,7 @@ def build_response(self, data, status=OK): def build_error(self, err): # A bit nicer behavior surrounding things that don't exist. if isinstance(err, (ObjectDoesNotExist, Http404)): - err = NotFound(msg=six.text_type(err)) + err = NotFound(msg=str(err)) return super(DjangoResource, self).build_error(err) diff --git a/restless/preparers.py b/restless/preparers.py index 0515bc6..ad845ed 100644 --- a/restless/preparers.py +++ b/restless/preparers.py @@ -1,4 +1,4 @@ -class Preparer(object): +class Preparer: """ A plain preparation object which just passes through data. diff --git a/restless/resources.py b/restless/resources.py index 95a742a..d2dccff 100644 --- a/restless/resources.py +++ b/restless/resources.py @@ -20,7 +20,7 @@ def _wrapper(self, *args, **kwargs): return _wrapper -class Resource(object): +class Resource: """ Defines a RESTful resource. diff --git a/restless/serializers.py b/restless/serializers.py index 43147d9..7237c18 100644 --- a/restless/serializers.py +++ b/restless/serializers.py @@ -2,7 +2,7 @@ from .utils import json, MoreTypesJSONEncoder -class Serializer(object): +class Serializer: """ A base serialization class. diff --git a/restless/tnd.py b/restless/tnd.py index 6c6618a..34ad68f 100644 --- a/restless/tnd.py +++ b/restless/tnd.py @@ -40,7 +40,7 @@ def _method(self, *args, **kwargs): yield self.resource_handler.handle(self.__resource_view_type__, *args, **kwargs) -class _BridgeMixin(object): +class _BridgeMixin: """ This mixin would pass tornado parameters to restless, and helps to init a resource instance diff --git a/setup.py b/setup.py index 5660db7..27542fa 100644 --- a/setup.py +++ b/setup.py @@ -17,13 +17,10 @@ 'restless', ], requires=[ - 'six(>=1.4.0)', ], install_requires=[ - 'six>=1.4.0', ], tests_require=[ - 'mock', 'tox', ], python_requires='!=3.0.*, !=3.1.*, !=3.2.*, !=3.3.*, !=3.4.*, !=3.5.*', diff --git a/tests/fakes.py b/tests/fakes.py index 6c23329..79386e1 100644 --- a/tests/fakes.py +++ b/tests/fakes.py @@ -1,24 +1,20 @@ -import six - -class FakeHttpRequest(object): +class FakeHttpRequest: def __init__(self, method='GET', body='', **kwargs): self.method = method.upper() - self.body = body - if six.PY3: - self.body = body.encode('utf-8') + self.body = body.encode('utf-8') if self.method == 'GET': self.GET = kwargs.get('get_request', {}) -class FakeHttpResponse(object): +class FakeHttpResponse: def __init__(self, body, content_type='text/html'): self.body = body self.content_type = content_type self.status_code = 200 -class FakeModel(object): - def __init__(self, **kwargs): +class FakeModel: + def __init_x_(self, **kwargs): for k, v in kwargs.items(): setattr(self, k, v) diff --git a/tests/test_dj.py b/tests/test_dj.py index 520d712..440beb7 100644 --- a/tests/test_dj.py +++ b/tests/test_dj.py @@ -1,9 +1,5 @@ import unittest - -try: - from http.client import responses -except ImportError: - from httplib import responses +from http.client import responses try: from django.conf import settings diff --git a/tests/test_preparers.py b/tests/test_preparers.py index e8b2a9a..5e2c5ba 100644 --- a/tests/test_preparers.py +++ b/tests/test_preparers.py @@ -4,7 +4,7 @@ FieldsPreparer) -class InstaObj(object): +class InstaObj: def __init__(self, **kwargs): for k, v in kwargs.items(): setattr(self, k, v) diff --git a/tests/test_resources.py b/tests/test_resources.py index 393331a..e317bf9 100644 --- a/tests/test_resources.py +++ b/tests/test_resources.py @@ -1,4 +1,3 @@ -import six import unittest from restless.exceptions import HttpError, NotFound, MethodNotImplemented @@ -54,28 +53,16 @@ def test_request_method(self): self.assertEqual(self.res.request_method(), 'DELETE') def test_request_body(self): - if six.PY3: - self.assertEqual(self.res.request_body(), b'') - else: - self.assertEqual(self.res.request_body(), '') + self.assertEqual(self.res.request_body(), b'') self.res.request = FakeHttpRequest('POST', '{"hello": "world"}') - if six.PY3: - self.assertEqual(self.res.request_body(), b'{"hello": "world"}') - else: - self.assertEqual(self.res.request_body(), '{"hello": "world"}') + self.assertEqual(self.res.request_body(), b'{"hello": "world"}') self.res.request = FakeHttpRequest('PUT', '{"hello": "world"}') - if six.PY3: - self.assertEqual(self.res.request_body(), b'{"hello": "world"}') - else: - self.assertEqual(self.res.request_body(), '{"hello": "world"}') + self.assertEqual(self.res.request_body(), b'{"hello": "world"}') self.res.request = FakeHttpRequest('DELETE', '{}') - if six.PY3: - self.assertEqual(self.res.request_body(), b'{}') - else: - self.assertEqual(self.res.request_body(), '{}') + self.assertEqual(self.res.request_body(), b'{}') def test_build_response(self): resp = self.res.build_response('Hello, world!') diff --git a/tests/test_tnd.py b/tests/test_tnd.py index f45f481..49b7803 100644 --- a/tests/test_tnd.py +++ b/tests/test_tnd.py @@ -1,13 +1,12 @@ import unittest import socket -import six from restless.utils import json from restless.constants import UNAUTHORIZED def _newer_or_equal_(v): - for i in six.moves.xrange(min(len(v), len(version_info))): + for i in range(min(len(v), len(version_info))): expected, tnd = v[i], version_info[i] if tnd > expected: return True @@ -19,7 +18,7 @@ def _newer_or_equal_(v): def _equal_(v): - for i in six.moves.xrange(min(len(v), len(version_info))): + for i in range(min(len(v), len(version_info))): if v[i] != version_info[i]: return False return True diff --git a/tox.ini b/tox.ini index ac05a3f..a5be201 100644 --- a/tox.ini +++ b/tox.ini @@ -10,7 +10,6 @@ basepython = py39: python3.9 pypy: pypy deps = - six pytest pytest-cov WebOb>=1.3.1,<1.7