Skip to content

Commit

Permalink
Merge pull request #684 from deschler/pyupgrade
Browse files Browse the repository at this point in the history
chore: Update old syntax
  • Loading branch information
last-partizan committed May 30, 2023
2 parents ec69a82 + 095695a commit c713514
Show file tree
Hide file tree
Showing 22 changed files with 137 additions and 175 deletions.
7 changes: 0 additions & 7 deletions .github/workflows/test.yml
Original file line number Diff line number Diff line change
Expand Up @@ -43,13 +43,6 @@ jobs:
python: ["3.8", "3.9", "3.10", "3.11"]
django: ["3.2", "4.0", "4.2"]
database: ["sqlite", "postgres", "mysql"]
include:
- python: "3.7"
django: "3.2"
database: "postgres"
- python: "3.7"
django: "3.2"
database: "postgres"
env:
GITHUB_TOKEN: ${{ secrets.GITHUB_TOKEN }}
DJANGO: ${{ matrix.django }}
Expand Down
25 changes: 10 additions & 15 deletions modeltranslation/admin.py
Original file line number Diff line number Diff line change
@@ -1,32 +1,29 @@
# -*- coding: utf-8 -*-
from copy import deepcopy

from django.contrib import admin
from django.contrib.admin.options import BaseModelAdmin, flatten_fieldsets, InlineModelAdmin
from django import forms
from django.contrib import admin
from django.contrib.admin.options import BaseModelAdmin, InlineModelAdmin, flatten_fieldsets
from django.contrib.contenttypes.admin import GenericStackedInline, GenericTabularInline

from modeltranslation import settings as mt_settings
from modeltranslation.translator import translator
from modeltranslation.utils import (
get_translation_fields,
build_css_class,
build_localized_fieldname,
get_language,
get_language_bidi,
get_translation_fields,
unique,
)
from modeltranslation.widgets import ClearableWidgetWrapper

from django.contrib.contenttypes.admin import GenericTabularInline
from django.contrib.contenttypes.admin import GenericStackedInline


class TranslationBaseModelAdmin(BaseModelAdmin):
_orig_was_required = {}
both_empty_values_fields = ()

def __init__(self, *args, **kwargs):
super(TranslationBaseModelAdmin, self).__init__(*args, **kwargs)
super().__init__(*args, **kwargs)
self.trans_opts = translator.get_options_for_model(self.model)
self._patch_prepopulated_fields()

Expand All @@ -47,9 +44,7 @@ def _get_declared_fieldsets(self, request, obj=None):
return None

def formfield_for_dbfield(self, db_field, request, **kwargs):
field = super(TranslationBaseModelAdmin, self).formfield_for_dbfield(
db_field, request, **kwargs
)
field = super().formfield_for_dbfield(db_field, request, **kwargs)
self.patch_translation_field(db_field, field, request, **kwargs)
return field

Expand Down Expand Up @@ -271,7 +266,7 @@ class TranslationAdmin(TranslationBaseModelAdmin, admin.ModelAdmin):
group_fieldsets = False

def __init__(self, *args, **kwargs):
super(TranslationAdmin, self).__init__(*args, **kwargs)
super().__init__(*args, **kwargs)
self._patch_list_editable()

def _patch_list_editable(self):
Expand All @@ -297,7 +292,7 @@ def _group_fieldsets(self, fieldsets):
flattened_fieldsets = flatten_fieldsets(fieldsets)

# Create a fieldset to group each translated field's localized fields
fields = sorted((f for f in self.opts.get_fields() if f.concrete))
fields = sorted(f for f in self.opts.get_fields() if f.concrete)
untranslated_fields = [
f.name
for f in fields
Expand Down Expand Up @@ -352,7 +347,7 @@ def _group_fieldsets(self, fieldsets):

def get_form(self, request, obj=None, **kwargs):
kwargs = self._get_form_or_formset(request, obj, **kwargs)
return super(TranslationAdmin, self).get_form(request, obj, **kwargs)
return super().get_form(request, obj, **kwargs)

def get_fieldsets(self, request, obj=None):
return self._get_fieldsets_pre_form_or_formset(request, obj) or self._group_fieldsets(
Expand All @@ -365,7 +360,7 @@ def get_fieldsets(self, request, obj=None):
class TranslationInlineModelAdmin(TranslationBaseModelAdmin, InlineModelAdmin):
def get_formset(self, request, obj=None, **kwargs):
kwargs = self._get_form_or_formset(request, obj, **kwargs)
return super(TranslationInlineModelAdmin, self).get_formset(request, obj, **kwargs)
return super().get_formset(request, obj, **kwargs)

def get_fieldsets(self, request, obj=None):
# FIXME: If fieldsets are declared on an inline some kind of ghost
Expand Down
1 change: 0 additions & 1 deletion modeltranslation/apps.py
Original file line number Diff line number Diff line change
@@ -1,4 +1,3 @@
# -*- coding: utf-8 -*-
from django.apps import AppConfig


Expand Down
2 changes: 1 addition & 1 deletion modeltranslation/decorators.py
Original file line number Diff line number Diff line change
Expand Up @@ -12,7 +12,7 @@ def register(model_or_iterable, **options):
class AuthorTranslation(TranslationOptions):
pass
"""
from modeltranslation.translator import translator, TranslationOptions
from modeltranslation.translator import TranslationOptions, translator

def wrapper(opts_class):
if not issubclass(opts_class, TranslationOptions):
Expand Down
10 changes: 5 additions & 5 deletions modeltranslation/fields.py
Original file line number Diff line number Diff line change
Expand Up @@ -247,7 +247,7 @@ def __eq__(self, other):
return self.creation_counter == other.creation_counter and self.language == getattr(
other, 'language', None
)
return super(TranslationField, self).__eq__(other)
return super().__eq__(other)

def __ne__(self, other):
return not self.__eq__(other)
Expand Down Expand Up @@ -278,7 +278,7 @@ def formfield(self, *args, **kwargs):
The ``forms.CharField`` somewhat surprising behaviour is documented as a
"won't fix": https://code.djangoproject.com/ticket/9590.
"""
formfield = super(TranslationField, self).formfield(*args, **kwargs)
formfield = super().formfield(*args, **kwargs)
if isinstance(formfield, forms.CharField):
if self.empty_value is None:
from modeltranslation.forms import NullCharField
Expand All @@ -287,15 +287,15 @@ def formfield(self, *args, **kwargs):
kwargs['form_class'] = type(
'Null%s' % form_class.__name__, (NullCharField, form_class), {}
)
formfield = super(TranslationField, self).formfield(*args, **kwargs)
formfield = super().formfield(*args, **kwargs)
elif self.empty_value == 'both':
from modeltranslation.forms import NullableField

form_class = formfield.__class__
kwargs['form_class'] = type(
'Nullable%s' % form_class.__name__, (NullableField, form_class), {}
)
formfield = super(TranslationField, self).formfield(*args, **kwargs)
formfield = super().formfield(*args, **kwargs)
if isinstance(formfield.widget, (forms.TextInput, forms.Textarea)):
formfield.widget = ClearableWidgetWrapper(formfield.widget)
return formfield
Expand All @@ -315,7 +315,7 @@ def save_form_data(self, instance, data, check=True):
instance._mt_form_pending_clear = {}
instance._mt_form_pending_clear[self.name] = data
else:
super(TranslationField, self).save_form_data(instance, data)
super().save_form_data(instance, data)

def deconstruct(self):
name, path, args, kwargs = self.translated_field.deconstruct()
Expand Down
9 changes: 4 additions & 5 deletions modeltranslation/forms.py
Original file line number Diff line number Diff line change
@@ -1,4 +1,3 @@
# -*- coding: utf-8 -*-
from django import forms
from django.core import validators

Expand All @@ -7,7 +6,7 @@

class TranslationModelForm(forms.ModelForm):
def __init__(self, *args, **kwargs):
super(TranslationModelForm, self).__init__(*args, **kwargs)
super().__init__(*args, **kwargs)
for f in self._meta.model._meta.fields:
if f.name in self.fields and isinstance(f, TranslationField):
del self.fields[f.name]
Expand All @@ -21,7 +20,7 @@ class NullCharField(forms.CharField):
def to_python(self, value):
if value in validators.EMPTY_VALUES:
return None
return super(NullCharField, self).to_python(value)
return super().to_python(value)


class NullableField(forms.Field):
Expand All @@ -33,7 +32,7 @@ class NullableField(forms.Field):
def to_python(self, value):
if value is None:
return value
return super(NullableField, self).to_python(value)
return super().to_python(value)

# Django 1.6
def _has_changed(self, initial, data):
Expand All @@ -42,7 +41,7 @@ def _has_changed(self, initial, data):
def has_changed(self, initial, data):
if (initial is None and data is not None) or (initial is not None and data is None):
return True
obj = super(NullableField, self)
obj = super()
if hasattr(obj, 'has_changed'):
return obj.has_changed(initial, data)
else: # Django < 1.9 compat
Expand Down
6 changes: 3 additions & 3 deletions modeltranslation/management/commands/loaddata.py
Original file line number Diff line number Diff line change
Expand Up @@ -27,7 +27,7 @@ def __call__(self, parser, namespace, value, option_string=None):
check_mode(self, option_string, value, parser, namespace)

def add_arguments(self, parser):
super(Command, self).add_arguments(parser)
super().add_arguments(parser)
parser.add_argument(
'--populate',
action=self.CheckAction,
Expand All @@ -44,6 +44,6 @@ def handle(self, *fixture_labels, **options):
mode = options.get('populate')
if mode is not None:
with auto_populate(mode):
return super(Command, self).handle(*fixture_labels, **options)
return super().handle(*fixture_labels, **options)
else:
return super(Command, self).handle(*fixture_labels, **options)
return super().handle(*fixture_labels, **options)
Original file line number Diff line number Diff line change
@@ -1,12 +1,10 @@
# -*- coding: utf-8 -*-
from django.db.models import F, Q, ManyToManyField
from django.core.management.base import BaseCommand, CommandError
from django.db.models import F, ManyToManyField, Q

from modeltranslation.settings import AVAILABLE_LANGUAGES, DEFAULT_LANGUAGE
from modeltranslation.translator import translator
from modeltranslation.utils import build_localized_fieldname


COMMASPACE = ", "


Expand Down

0 comments on commit c713514

Please sign in to comment.