Skip to content

Commit 5b93fe4

Browse files
author
Bastien Vallet
committed
Remove dependency to six module
1 parent 90fff86 commit 5b93fe4

File tree

10 files changed

+13
-33
lines changed

10 files changed

+13
-33
lines changed

requirements.txt

Lines changed: 1 addition & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -1,4 +1,3 @@
11
cached-property
2-
Django>=1.8
2+
Django>=2.2
33
enum-compat
4-
six

test_project/generic/models.py

Lines changed: 0 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -1,18 +1,15 @@
1-
import six
21
from django.contrib.contenttypes.fields import GenericForeignKey
32
from django.contrib.contenttypes.models import ContentType
43
from django.db import models
54

65

7-
@six.python_2_unicode_compatible
86
class ModelA(models.Model):
97
name = models.CharField(max_length=64)
108

119
def __str__(self):
1210
return self.name
1311

1412

15-
@six.python_2_unicode_compatible
1613
class ModelB(models.Model):
1714
name = models.CharField(max_length=64)
1815
a = models.ForeignKey(

test_project/many_to_many/models.py

Lines changed: 0 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -1,8 +1,6 @@
1-
import six
21
from django.db import models
32

43

5-
@six.python_2_unicode_compatible
64
class Publication(models.Model):
75
title = models.CharField(max_length=30)
86

@@ -13,7 +11,6 @@ class Meta:
1311
ordering = ("title",)
1412

1513

16-
@six.python_2_unicode_compatible
1714
class Article(models.Model):
1815
headline = models.CharField(max_length=100)
1916
publications = models.ManyToManyField(Publication, related_name="articles")

test_project/many_to_one/models.py

Lines changed: 0 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -1,8 +1,6 @@
1-
import six
21
from django.db import models
32

43

5-
@six.python_2_unicode_compatible
64
class Reporter(models.Model):
75
first_name = models.CharField(max_length=30)
86
last_name = models.CharField(max_length=30)
@@ -12,7 +10,6 @@ def __str__(self):
1210
return "%s %s" % (self.first_name, self.last_name)
1311

1412

15-
@six.python_2_unicode_compatible
1613
class Article(models.Model):
1714
headline = models.CharField(max_length=100)
1815
pub_date = models.DateField()

test_project/one_to_one/models.py

Lines changed: 0 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -1,8 +1,6 @@
1-
import six
21
from django.db import models
32

43

5-
@six.python_2_unicode_compatible
64
class Place(models.Model):
75
name = models.CharField(max_length=50)
86
address = models.CharField(max_length=80)
@@ -11,7 +9,6 @@ def __str__(self):
119
return "%s the place" % self.name
1210

1311

14-
@six.python_2_unicode_compatible
1512
class Restaurant(models.Model):
1613
place = models.OneToOneField(Place, primary_key=True, on_delete=models.CASCADE)
1714
serves_hot_dogs = models.BooleanField(default=False)
@@ -21,7 +18,6 @@ def __str__(self):
2118
return "%s the restaurant" % self.place.name
2219

2320

24-
@six.python_2_unicode_compatible
2521
class Waiter(models.Model):
2622
restaurant = models.ForeignKey(Restaurant, on_delete=models.CASCADE)
2723
name = models.CharField(max_length=50)

tests/backends/test_sqlalchemy.py

Lines changed: 4 additions & 5 deletions
Original file line numberDiff line numberDiff line change
@@ -1,5 +1,4 @@
11
import pytest
2-
import six
32
from alchemy_mock.comparison import ExpressionMatcher
43
from sqlalchemy import func
54
from sqlalchemy.orm import joinedload
@@ -31,7 +30,7 @@ def test_empty(self, alchemy_db):
3130
alchemy_db.query(Place), context={"context": "here"}
3231
)
3332

34-
assert "WHERE 0 = 1" in six.text_type(backend.empty())
33+
assert "WHERE 0 = 1" in str(backend.empty())
3534

3635
def test_get_model(self, alchemy_db):
3736
backend = SQLAlchemyFilterBackend(alchemy_db.query(Place))
@@ -54,7 +53,7 @@ def test_filter(self, alchemy_db):
5453

5554
filtered = backend.filter()
5655

57-
sql = six.text_type(filtered)
56+
sql = str(filtered)
5857
# eagerloads via outerjoin
5958
assert "LEFT OUTER JOIN one_to_one_restaurant" not in sql
6059
assert "LEFT OUTER JOIN one_to_one_waiter" not in sql
@@ -74,7 +73,7 @@ def test_filter_already_selectinload(self, alchemy_db):
7473

7574
filtered = backend.filter()
7675

77-
sql = six.text_type(filtered)
76+
sql = str(filtered)
7877
# eagerloads via outerjoin
7978
assert "LEFT OUTER JOIN one_to_one_restaurant" in sql
8079
assert "LEFT OUTER JOIN one_to_one_waiter" not in sql
@@ -94,7 +93,7 @@ def test_filter_already_eagerloaded(self, alchemy_db):
9493

9594
filtered = backend.filter()
9695

97-
sql = six.text_type(filtered)
96+
sql = str(filtered)
9897
# eagerloads via outerjoin
9998
assert "LEFT OUTER JOIN one_to_one_restaurant" in sql
10099
assert "LEFT OUTER JOIN one_to_one_waiter" in sql

url_filter/backends/base.py

Lines changed: 1 addition & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -1,10 +1,9 @@
11
import abc
22

3-
import six
43
from cached_property import cached_property
54

65

7-
class BaseFilterBackend(six.with_metaclass(abc.ABCMeta, object)):
6+
class BaseFilterBackend(metaclass=abc.ABCMeta):
87
"""
98
Base filter backend from which all other backends must subclass.
109

url_filter/filters.py

Lines changed: 2 additions & 5 deletions
Original file line numberDiff line numberDiff line change
@@ -2,7 +2,6 @@
22
import re
33
from functools import wraps
44

5-
import six
65
from cached_property import cached_property
76
from django import forms
87
from django.core.exceptions import ValidationError
@@ -38,7 +37,7 @@
3837
)
3938

4039

41-
class BaseFilter(six.with_metaclass(abc.ABCMeta, object)):
40+
class BaseFilter(metaclass=abc.ABCMeta):
4241
"""
4342
Base class to be used for defining both filters and filtersets.
4443
@@ -73,9 +72,7 @@ def __init__(self, source=None, *args, **kwargs):
7372
self.is_bound = False
7473

7574
def __repr__(self):
76-
data = self.repr()
77-
data = data if six.PY3 else data.encode("utf-8")
78-
return data
75+
return self.repr()
7976

8077
@abc.abstractmethod
8178
def repr(self, prefix=""):

url_filter/filtersets/base.py

Lines changed: 3 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -1,9 +1,9 @@
11
import abc
2+
import functools
23
import re
34
from collections import defaultdict
45
from copy import deepcopy
56

6-
import six
77
from cached_property import cached_property
88
from django.core.exceptions import ValidationError
99
from django.core.validators import RegexValidator
@@ -88,7 +88,7 @@ def __new__(cls, name, bases, attrs):
8888
return new_class
8989

9090

91-
class FilterSet(six.with_metaclass(FilterSetMeta, BaseFilter)):
91+
class FilterSet(BaseFilter, metaclass=FilterSetMeta):
9292
"""
9393
Main user-facing classes to use filtersets.
9494
@@ -395,7 +395,7 @@ def _generate_lookup_configs(self):
395395
for value in values:
396396
yield LookupConfig(
397397
key,
398-
six.moves.reduce(
398+
functools.reduce(
399399
lambda a, b: {b: a},
400400
(key.replace("!", "").split(LOOKUP_SEP) + [value])[::-1],
401401
),

url_filter/filtersets/plain.py

Lines changed: 2 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -1,7 +1,6 @@
11
from datetime import date, datetime, time
22
from decimal import Decimal
33

4-
import six
54
from django import forms
65

76
from ..backends.plain import PlainFilterBackend
@@ -13,8 +12,8 @@
1312

1413
DATA_TYPES_MAPPING = SubClassDict(
1514
{
16-
six.string_types: forms.CharField(),
17-
six.integer_types: forms.IntegerField(),
15+
str: forms.CharField(),
16+
int: forms.IntegerField(),
1817
bool: forms.BooleanField(required=False),
1918
float: forms.FloatField(),
2019
Decimal: forms.DecimalField(),

0 commit comments

Comments
 (0)