From 769066a461ffa938ec1d4d35f4fdd9e4cfc64034 Mon Sep 17 00:00:00 2001 From: jar3b Date: Sat, 14 Dec 2019 23:12:01 +0300 Subject: [PATCH 1/2] fix: remove django.utils.six import and usage due to Django 3.0 dropped support for it --- localized_fields/descriptor.py | 4 ++-- localized_fields/fields/file_field.py | 5 ++--- 2 files changed, 4 insertions(+), 5 deletions(-) diff --git a/localized_fields/descriptor.py b/localized_fields/descriptor.py index 8b4f30d..ca38011 100644 --- a/localized_fields/descriptor.py +++ b/localized_fields/descriptor.py @@ -1,5 +1,5 @@ from django.conf import settings -from django.utils import six, translation +from django.utils import translation class LocalizedValueDescriptor: @@ -57,7 +57,7 @@ class LocalizedValueDescriptor: return instance.__dict__[self.field.name] def __set__(self, instance, value): - if isinstance(value, six.string_types): + if isinstance(value, str): language = translation.get_language() or settings.LANGUAGE_CODE self.__get__(instance).set( language, value diff --git a/localized_fields/fields/file_field.py b/localized_fields/fields/file_field.py index 67097ed..039c785 100644 --- a/localized_fields/fields/file_field.py +++ b/localized_fields/fields/file_field.py @@ -5,7 +5,6 @@ import posixpath from django.core.files import File from django.core.files.storage import default_storage from django.db.models.fields.files import FieldFile -from django.utils import six from django.utils.encoding import force_str, force_text from localized_fields.fields import LocalizedField @@ -56,7 +55,7 @@ class LocalizedFileValueDescriptor(LocalizedValueDescriptor): def __get__(self, instance, cls=None): value = super().__get__(instance, cls) for lang, file in value.__dict__.items(): - if isinstance(file, six.string_types) or file is None: + if isinstance(file, str) or file is None: file = self.field.value_class(instance, self.field, file, lang) value.set(lang, file) @@ -120,7 +119,7 @@ class LocalizedFileField(LocalizedField): else: # Need to convert File objects provided via a form to # unicode for database insertion - prep_value.set(k, six.text_type(v)) + prep_value.set(k, str(v)) return super().get_prep_value(prep_value) return super().get_prep_value(value) From 311843f647e72441e8b309fefa731ea115594bf1 Mon Sep 17 00:00:00 2001 From: jar3b Date: Sun, 15 Dec 2019 01:17:56 +0300 Subject: [PATCH 2/2] feat: add django 3.0 support in tests and readme --- .circleci/config.yml | 4 ++-- README.md | 2 +- tox.ini | 3 ++- 3 files changed, 5 insertions(+), 4 deletions(-) diff --git a/.circleci/config.yml b/.circleci/config.yml index a9aba29..f2e42e9 100644 --- a/.circleci/config.yml +++ b/.circleci/config.yml @@ -20,7 +20,7 @@ jobs: - run: name: Run tests - command: tox -e 'py37-dj{20,21,22}' + command: tox -e 'py37-dj{20,21,22,30}' environment: DATABASE_URL: 'postgres://localizedfields:localizedfields@localhost:5432/localizedfields' @@ -47,7 +47,7 @@ jobs: - run: name: Run tests - command: tox -e 'py38-dj{20,21,22}' + command: tox -e 'py38-dj{20,21,22,30}' environment: DATABASE_URL: 'postgres://localizedfields:localizedfields@localhost:5432/localizedfields' diff --git a/README.md b/README.md index b97614b..b8d02a2 100644 --- a/README.md +++ b/README.md @@ -3,7 +3,7 @@ | :white_check_mark: | **Tests** | [![CircleCI](https://circleci.com/gh/SectorLabs/django-localized-fields/tree/master.svg?style=svg)](https://circleci.com/gh/SectorLabs/django-localized-fields/tree/master) | | :memo: | **License** | [![License](https://img.shields.io/:license-mit-blue.svg)](http://doge.mit-license.org) | | :package: | **PyPi** | [![PyPi](https://badge.fury.io/py/django-localized-fields.svg)](https://pypi.python.org/pypi/django-localized-fields) | -| | **Django Versions** | 2.0, 2.1, 2.2 | +| | **Django Versions** | 2.0, 2.1, 2.2, 3.0 | | | **Python Versions** | 3.7, 3.8 | | :book: | **Documentation** | [Read The Docs](https://django-localized-fields.readthedocs.io) | | :warning: | **Upgrade** | [Upgrade fom v5.x](https://django-localized-fields.readthedocs.io/en/latest/releases.html#v6-0) diff --git a/tox.ini b/tox.ini index 865a965..37c221d 100644 --- a/tox.ini +++ b/tox.ini @@ -1,11 +1,12 @@ [tox] -envlist = py37-dj{20,21,22}, py38-dj{20,21,22} +envlist = py37-dj{20,21,22,30}, py38-dj{20,21,22,30} [testenv] deps = dj20: Django>=2.0,<2.1 dj21: Django>=2.1,<2.2 dj22: Django>=2.2,<2.3 + dj30: Django>=3.0a1,<3.1 -rrequirements/test.txt setenv = DJANGO_SETTINGS_MODULE=settings