Skip to content
Merged
Show file tree
Hide file tree
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension


Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
4 changes: 2 additions & 2 deletions devel/fields.py
Original file line number Diff line number Diff line change
Expand Up @@ -4,14 +4,14 @@

class PGPKeyField(models.CharField):
def __init__(self, *args, **kwargs):
super(PGPKeyField, self).__init__(*args, **kwargs)
super().__init__(*args, **kwargs)
self.validators.append(
RegexValidator(r'^[0-9A-F]{40}$', "Ensure this value consists of 40 hex characters.", 'hex_char'))

def to_python(self, value):
if value == '' or value is None:
return None
value = super(PGPKeyField, self).to_python(value)
value = super().to_python(value)
# remove all spaces
value = value.replace(' ', '')
# prune prefixes, either 0x or 2048R/ type
Expand Down
4 changes: 2 additions & 2 deletions devel/forms.py
Original file line number Diff line number Diff line change
Expand Up @@ -60,7 +60,7 @@ class Meta:
exclude = ('picture', 'user')

def __init__(self, *args, **kwargs):
super(NewUserForm, self).__init__(*args, **kwargs)
super().__init__(*args, **kwargs)
# Hack ourself so certain fields appear first
old = self.fields
self.fields = OrderedDict()
Expand All @@ -79,7 +79,7 @@ def clean_username(self):
return username

def save(self, commit=True):
profile = super(NewUserForm, self).save(commit=False)
profile = super().save(commit=False)
pwletters = ascii_letters + digits
password = ''.join([random.choice(pwletters) for _ in range(8)])
user = User.objects.create_user(
Expand Down
10 changes: 5 additions & 5 deletions feeds.py
Original file line number Diff line number Diff line change
Expand Up @@ -43,7 +43,7 @@ def write(self, outfile, encoding):
'>' closing tags and over 1600 write calls in our package feed.
'''
wrapper = BatchWritesWrapper(outfile)
super(FasterRssFeed, self).write(wrapper, encoding)
super().write(wrapper, encoding)
wrapper.flush()


Expand All @@ -61,7 +61,7 @@ class PackageFeed(Feed):

def __call__(self, request, *args, **kwargs):
wrapper = condition(last_modified_func=package_last_modified)
return wrapper(super(PackageFeed, self).__call__)(request, *args, **kwargs)
return wrapper(super().__call__)(request, *args, **kwargs)

__name__ = 'package_feed'

Expand Down Expand Up @@ -183,7 +183,7 @@ class PackageUpdatesFeed(Feed):

def __call__(self, request, *args, **kwargs):
wrapper = condition(last_modified_func=removal_last_modified)
return wrapper(super(PackageUpdatesFeed, self).__call__)(request, *args, **kwargs)
return wrapper(super().__call__)(request, *args, **kwargs)

__name__ = 'packages_updates_feed'

Expand Down Expand Up @@ -318,7 +318,7 @@ class NewsFeed(Feed):

def __call__(self, request, *args, **kwargs):
wrapper = condition(last_modified_func=news_last_modified)
return wrapper(super(NewsFeed, self).__call__)(request, *args, **kwargs)
return wrapper(super().__call__)(request, *args, **kwargs)

__name__ = 'news_feed'

Expand Down Expand Up @@ -405,7 +405,7 @@ class PlanetFeed(Feed):

def __call__(self, request, *args, **kwargs):
wrapper = condition(last_modified_func=planet_last_modified)
return wrapper(super(PlanetFeed, self).__call__)(request, *args, **kwargs)
return wrapper(super().__call__)(request, *args, **kwargs)

__name__ = 'planet_feed'

Expand Down
6 changes: 3 additions & 3 deletions main/log.py
Original file line number Diff line number Diff line change
Expand Up @@ -12,14 +12,14 @@ def __init__(self, *args, **kwargs):
self.size_limit = None
if self.size_limit and self.size_limit < 0:
raise Exception('Invalid size specified')
super(LimitedSizeDict, self).__init__(*args, **kwargs)
super().__init__(*args, **kwargs)
self.check_item_limits()

def __setitem__(self, key, value):
# delete and add to ensure it ends up at the end of the linked list
if key in self:
super(LimitedSizeDict, self).__delitem__(key)
super(LimitedSizeDict, self).__setitem__(key, value)
super().__delitem__(key)
super().__setitem__(key, value)
self.check_item_limits()

def check_item_limits(self):
Expand Down
10 changes: 7 additions & 3 deletions main/management/commands/donor_import.py
Original file line number Diff line number Diff line change
Expand Up @@ -18,7 +18,6 @@
import email
import logging
import sys
from argparse import FileType
from email.header import decode_header

from django.core.management.base import BaseCommand, CommandError
Expand All @@ -33,7 +32,7 @@

class Command(BaseCommand):
def add_arguments(self, parser):
parser.add_argument('input', nargs='?', type=FileType('r'), default=sys.stdin)
parser.add_argument('input', nargs='?', default=None, help='Input file (default: stdin)')

def decode_subject(self, subject):
subject = decode_header(subject)
Expand Down Expand Up @@ -78,7 +77,12 @@ def handle(self, *args, **options):
elif v >= 2:
logger.level = logging.DEBUG

msg = email.message_from_file(options['input'])
input_path = options['input']
if input_path is not None:
with open(input_path, 'r') as f:
msg = email.message_from_file(f)
else:
msg = email.message_from_file(sys.stdin)
if not msg['subject']:
raise CommandError("Failed to read from STDIN")
subject = msg.get('subject', '')
Expand Down
2 changes: 1 addition & 1 deletion main/models.py
Original file line number Diff line number Diff line change
Expand Up @@ -122,7 +122,7 @@ def __str__(self):
@property
def full_version(self):
if self.epoch > 0:
return '%d:%s-%s' % (self.epoch, self.pkgver, self.pkgrel)
return f'{self.epoch}:{self.pkgver}-{self.pkgrel}'
return f'{self.pkgver}-{self.pkgrel}'

def get_absolute_url(self):
Expand Down
3 changes: 1 addition & 2 deletions main/storage.py
Original file line number Diff line number Diff line change
Expand Up @@ -16,8 +16,7 @@ class MinifiedStaticFilesStorage(ManifestStaticFilesStorage):
)

def post_process(self, paths, dry_run=False, **options):
for original_path, processed_path, processed in super(
MinifiedStaticFilesStorage, self).post_process(
for original_path, processed_path, processed in super().post_process(
paths, dry_run, **options):
for ext, func in self.minifiers:
if '.min' in original_path:
Expand Down
4 changes: 2 additions & 2 deletions main/tests/test_donor_import.py
Original file line number Diff line number Diff line change
Expand Up @@ -42,9 +42,9 @@ def test_invalid_args(monkeypatch):


def test_invalid_path():
with pytest.raises(CommandError) as e:
with pytest.raises(FileNotFoundError) as e:
call_command('donor_import', '/tmp/non-existant')
assert 'argument input: can\'t open' in str(e.value)
assert 'No such file or directory' in str(e.value)


def test_maildir(db, monkeypatch):
Expand Down
4 changes: 2 additions & 2 deletions mirrors/fields.py
Original file line number Diff line number Diff line change
Expand Up @@ -21,7 +21,7 @@ class IPNetworkField(models.Field):

def __init__(self, *args, **kwargs):
kwargs['max_length'] = 44
super(IPNetworkField, self).__init__(*args, **kwargs)
super().__init__(*args, **kwargs)

def get_internal_type(self):
return "IPAddressField"
Expand All @@ -40,7 +40,7 @@ def get_prep_value(self, value):
def formfield(self, **kwargs):
defaults = {'form_class': IPNetworkFormField}
defaults.update(kwargs)
return super(IPNetworkField, self).formfield(**defaults)
return super().formfield(**defaults)

def from_db_value(self, value, expression, connection):
return self.to_python(value)
8 changes: 4 additions & 4 deletions mirrors/views/api.py
Original file line number Diff line number Diff line change
Expand Up @@ -33,7 +33,7 @@ def default(self, obj):
return data
if isinstance(obj, MirrorProtocol):
return str(obj)
return super(MirrorStatusJSONEncoder, self).default(obj)
return super().default(obj)


class ExtendedMirrorStatusJSONEncoder(MirrorStatusJSONEncoder):
Expand All @@ -43,7 +43,7 @@ class ExtendedMirrorStatusJSONEncoder(MirrorStatusJSONEncoder):

def default(self, obj):
if isinstance(obj, MirrorUrl):
data = super(ExtendedMirrorStatusJSONEncoder, self).default(obj)
data = super().default(obj)
cutoff = now() - DEFAULT_CUTOFF
data['logs'] = list(obj.logs.filter(
check_time__gte=cutoff).order_by('check_time'))
Expand All @@ -52,7 +52,7 @@ def default(self, obj):
data = {attr: getattr(obj, attr) for attr in self.log_attributes}
data['error'] = obj.error or None
return data
return super(ExtendedMirrorStatusJSONEncoder, self).default(obj)
return super().default(obj)


class LocationJSONEncoder(DjangoJSONEncoder):
Expand All @@ -68,7 +68,7 @@ def default(self, obj):
'country_code': obj.country.code,
'ip_version': obj.ip_version,
}
return super(LocationJSONEncoder, self).default(obj)
return super().default(obj)


@cache_control(max_age=311)
Expand Down
2 changes: 1 addition & 1 deletion mirrors/views/mirrorlist.py
Original file line number Diff line number Diff line change
Expand Up @@ -21,7 +21,7 @@ class MirrorlistForm(forms.Form):
use_mirror_status = forms.BooleanField(required=False)

def __init__(self, *args, **kwargs):
super(MirrorlistForm, self).__init__(*args, **kwargs)
super().__init__(*args, **kwargs)
fields = self.fields
fields['country'].choices = [('all', 'All'), *self.get_countries()]
fields['country'].initial = ['all']
Expand Down
2 changes: 1 addition & 1 deletion news/views.py
Original file line number Diff line number Diff line change
Expand Up @@ -62,7 +62,7 @@ def form_valid(self, form):
from_email=from_,
to=[settings.ANNOUNCE_EMAIL],
headers=headers).send()
return super(NewsCreateView, self).form_valid(form)
return super().form_valid(form)


class NewsEditView(UpdateView):
Expand Down
4 changes: 2 additions & 2 deletions packages/admin.py
Original file line number Diff line number Diff line change
Expand Up @@ -33,7 +33,7 @@ class FlagRequestAdmin(admin.ModelAdmin):
ordering = ('-created',)

def get_queryset(self, request):
qs = super(FlagRequestAdmin, self).get_queryset(request)
qs = super().get_queryset(request)
return qs.select_related('repo', 'user')


Expand All @@ -53,7 +53,7 @@ class SignoffSpecificationAdmin(admin.ModelAdmin):
ordering = ('-created',)

def get_queryset(self, request):
qs = super(SignoffSpecificationAdmin, self).get_queryset(request)
qs = super().get_queryset(request)
return qs.select_related('arch', 'repo', 'user')


Expand Down
6 changes: 3 additions & 3 deletions packages/models.py
Original file line number Diff line number Diff line change
Expand Up @@ -227,8 +227,8 @@ def __str__(self):
class FlagDenylist(models.Model):
keyword = models.CharField(max_length=255)

def __str__(self):
return f"{self.keyword}"
def __str__(self) -> str:
return str(self.keyword)


class UpdateManager(models.Manager):
Expand Down Expand Up @@ -477,7 +477,7 @@ class Depend(RelatedToBase):

def __str__(self):
'''For depends, we may also have a description and a modifier.'''
to_str = super(Depend, self).__str__()
to_str = super().__str__()
if self.description:
return f'{to_str}: {self.description}'
return to_str
Expand Down
2 changes: 1 addition & 1 deletion packages/templatetags/package_extras.py
Original file line number Diff line number Diff line change
Expand Up @@ -9,7 +9,7 @@
class BuildQueryStringNode(template.Node):
def __init__(self, sortfield):
self.sortfield = sortfield
super(BuildQueryStringNode, self).__init__()
super().__init__()

def render(self, context):
qs = parse_qs(context['current_query'])
Expand Down
2 changes: 1 addition & 1 deletion packages/utils.py
Original file line number Diff line number Diff line change
Expand Up @@ -466,6 +466,6 @@ def default(self, obj):
for attr in self.todolistpackage_attributes:
data[attr] = getattr(obj, attr)
return data
return super(PackageJSONEncoder, self).default(obj)
return super().default(obj)

# vim: set ts=4 sw=4 et:
2 changes: 1 addition & 1 deletion packages/views/flag.py
Original file line number Diff line number Diff line change
Expand Up @@ -29,7 +29,7 @@ def __init__(self, *args, **kwargs):
# we remove the 'email' field if this form is being shown to a
# logged-in user, e.g., a developer.
auth = kwargs.pop('authenticated', False)
super(FlagForm, self).__init__(*args, **kwargs)
super().__init__(*args, **kwargs)
if auth:
del self.fields['email']

Expand Down
8 changes: 4 additions & 4 deletions packages/views/search.py
Original file line number Diff line number Diff line change
Expand Up @@ -28,7 +28,7 @@ class GroupSearchForm(forms.Form):

def __init__(self, *args, **kwargs):
show_staging = kwargs.pop('show_staging', False)
super(GroupSearchForm, self).__init__(*args, **kwargs)
super().__init__(*args, **kwargs)

repos = Repo.objects.all()

Expand Down Expand Up @@ -59,7 +59,7 @@ class PackageSearchForm(forms.Form):

def __init__(self, *args, **kwargs):
show_staging = kwargs.pop('show_staging', False)
super(PackageSearchForm, self).__init__(*args, **kwargs)
super().__init__(*args, **kwargs)
repos = Repo.objects.all()
if not show_staging:
repos = repos.filter(staging=False)
Expand Down Expand Up @@ -153,7 +153,7 @@ def get(self, request, *args, **kwargs):
return empty_response()
self.form = PackageSearchForm(data=request.GET,
show_staging=self.request.user.is_authenticated)
return super(SearchListView, self).get(request, *args, **kwargs)
return super().get(request, *args, **kwargs)

def get_queryset(self):
packages = Package.objects.normal()
Expand All @@ -170,7 +170,7 @@ def get_queryset(self):
return Package.objects.none()

def get_context_data(self, **kwargs):
context = super(SearchListView, self).get_context_data(**kwargs)
context = super().get_context_data(**kwargs)
query_params = self.request.GET.copy()
query_params.pop('page', None)
context['current_query'] = query_params.urlencode()
Expand Down
2 changes: 1 addition & 1 deletion packages/views/signoff.py
Original file line number Diff line number Diff line change
Expand Up @@ -198,7 +198,7 @@ def default(self, obj):
return obj.username
elif isinstance(obj, set):
return list(obj)
return super(SignoffJSONEncoder, self).default(obj)
return super().default(obj)


@permission_required('packages.change_signoff')
Expand Down
1 change: 1 addition & 0 deletions pyproject.toml
Original file line number Diff line number Diff line change
Expand Up @@ -69,6 +69,7 @@ select = [
"T10", # flake8-debugger
"TCH", # flake8-type-checking
"UP032", # f-string
"UP008", # super-call-with-parameters
"W", # warnings (mostly whitespace)
"YTT", # flake8-2020
]
Expand Down
2 changes: 1 addition & 1 deletion releng/views.py
Original file line number Diff line number Diff line change
Expand Up @@ -56,7 +56,7 @@ def default(self, obj):
torrent_data.pop('url_list', None)
data['torrent'] = torrent_data
return data
return super(ReleaseJSONEncoder, self).default(obj)
return super().default(obj)


def releases_json(request):
Expand Down
4 changes: 2 additions & 2 deletions sitemaps.py
Original file line number Diff line number Diff line change
Expand Up @@ -81,7 +81,7 @@ def get_latest_lastmod(self):
return None

def location(self, obj):
return f"/packages/{obj['repo'].name.lower()}/{obj['arch']}/obj['pkgbase']/"
return f"/packages/{obj['repo'].name.lower()}/{obj['arch']}/{obj['pkgbase']}/"


class NewsSitemap(Sitemap):
Expand Down Expand Up @@ -116,7 +116,7 @@ class RecentNewsSitemap(NewsSitemap):
def items(self):
now = datetime.now(timezone.utc)
cutoff = now - timedelta(days=30)
return super(RecentNewsSitemap, self).items().filter(postdate__gte=cutoff)
return super().items().filter(postdate__gte=cutoff)


class ReleasesSitemap(Sitemap):
Expand Down
2 changes: 1 addition & 1 deletion todolists/views.py
Original file line number Diff line number Diff line change
Expand Up @@ -241,7 +241,7 @@ def default(self, obj):
'kind': obj.kind_str
}

return super(TodoListJSONEncoder, self).default(obj)
return super().default(obj)


def view_json(request, slug):
Expand Down
2 changes: 1 addition & 1 deletion urls.py
Original file line number Diff line number Diff line change
Expand Up @@ -115,7 +115,7 @@
])

# prometheus metrics
if settings.PROMETHEUS_METRICS: # pragma :no cover
if settings.PROMETHEUS_METRICS: # pragma: no cover
urlpatterns.extend([
path('', include('django_prometheus.urls')),
])
Expand Down
Loading