Skip to content

Commit 73b8e76

Browse files
smcollagjohnson
authored andcommitted
linting for builds app (#2875)
1 parent f1a8db6 commit 73b8e76

File tree

9 files changed

+52
-13
lines changed

9 files changed

+52
-13
lines changed

prospector-more.yml

-1
Original file line numberDiff line numberDiff line change
@@ -4,7 +4,6 @@ strictness: medium
44

55
ignore-paths:
66
- api/
7-
- builds/
87
- cdn/
98
- comments/
109
- core/

readthedocs/builds/constants.py

+2
Original file line numberDiff line numberDiff line change
@@ -1,3 +1,5 @@
1+
"""Constants for the builds app."""
2+
13
from django.utils.translation import ugettext_lazy as _
24

35
BUILD_STATE_TRIGGERED = 'triggered'

readthedocs/builds/filters.py

+2
Original file line numberDiff line numberDiff line change
@@ -1,3 +1,5 @@
1+
"""FilterSets for the builds app."""
2+
13
from django.utils.translation import ugettext_lazy as _
24

35
import django_filters

readthedocs/builds/forms.py

+2
Original file line numberDiff line numberDiff line change
@@ -1,3 +1,5 @@
1+
"""Django forms for the builds app."""
2+
13
from django import forms
24

35
from readthedocs.builds.models import VersionAlias, Version

readthedocs/builds/models.py

+27-1
Original file line numberDiff line numberDiff line change
@@ -1,3 +1,5 @@
1+
"""Models for the builds app."""
2+
13
import logging
24
import re
35
import os.path
@@ -32,6 +34,9 @@
3234

3335

3436
class Version(models.Model):
37+
38+
"""Version of a ``Project``."""
39+
3540
project = models.ForeignKey(Project, verbose_name=_('Project'),
3641
related_name='versions')
3742
type = models.CharField(
@@ -154,7 +159,7 @@ def save(self, *args, **kwargs):
154159

155160
def delete(self, *args, **kwargs):
156161
from readthedocs.projects import tasks
157-
log.info('Removing files for version %s' % self.slug)
162+
log.info('Removing files for version %s', self.slug)
158163
tasks.clear_artifacts.delay(version_pk=self.pk)
159164
broadcast(type='app', task=tasks.symlink_project, args=[self.project.pk])
160165
super(Version, self).delete(*args, **kwargs)
@@ -220,6 +225,18 @@ def clean_build_path(self):
220225
log.error('Build path cleanup failed', exc_info=True)
221226

222227
def get_github_url(self, docroot, filename, source_suffix='.rst', action='view'):
228+
"""
229+
Return a GitHub URL for a given filename.
230+
231+
`docroot`
232+
Location of documentation in repository
233+
`filename`
234+
Name of file
235+
`source_suffix`
236+
File suffix of documentation format
237+
`action`
238+
`view` (default) or `edit`
239+
"""
223240
repo_url = self.project.repo
224241
if 'github' not in repo_url:
225242
return ''
@@ -283,6 +300,9 @@ def get_bitbucket_url(self, docroot, filename, source_suffix='.rst'):
283300

284301

285302
class VersionAlias(models.Model):
303+
304+
"""Alias for a ``Version``."""
305+
286306
project = models.ForeignKey(Project, verbose_name=_('Project'),
287307
related_name='aliases')
288308
from_slug = models.CharField(_('From slug'), max_length=255, default='')
@@ -299,6 +319,9 @@ def __unicode__(self):
299319

300320

301321
class Build(models.Model):
322+
323+
"""Build data."""
324+
302325
project = models.ForeignKey(Project, verbose_name=_('Project'),
303326
related_name='builds')
304327
version = models.ForeignKey(Version, verbose_name=_('Version'), null=True,
@@ -373,6 +396,9 @@ def failed(self):
373396

374397

375398
class BuildCommandResult(BuildCommandResultMixin, models.Model):
399+
400+
"""Build command for a ``Build``."""
401+
376402
build = models.ForeignKey(Build, verbose_name=_('Build'),
377403
related_name='commands')
378404

readthedocs/builds/urls.py

+3-3
Original file line numberDiff line numberDiff line change
@@ -1,8 +1,8 @@
1+
"""URL configuration for builds app."""
2+
13
from django.conf.urls import url
24

3-
from .views import (
4-
BuildList, BuildDetail, builds_redirect_detail, builds_redirect_list,
5-
)
5+
from .views import builds_redirect_detail, builds_redirect_list
66

77

88
urlpatterns = [

readthedocs/builds/utils.py

+2
Original file line numberDiff line numberDiff line change
@@ -1,3 +1,5 @@
1+
"""Utilities for the builds app."""
2+
13
import re
24

35

readthedocs/builds/version_slug.py

+7-3
Original file line numberDiff line numberDiff line change
@@ -54,6 +54,7 @@ def __init__(self, *args, **kwargs):
5454
super(VersionSlugField, self).__init__(*args, **kwargs)
5555

5656
def get_queryset(self, model_cls, slug_field):
57+
# pylint: disable=protected-access
5758
for field, model in model_cls._meta.get_fields_with_model():
5859
if model and field == slug_field:
5960
return model._default_manager.all()
@@ -103,11 +104,14 @@ def uniquifying_suffix(self, iteration):
103104
return '_{suffix}'.format(suffix=suffix)
104105

105106
def create_slug(self, model_instance):
107+
"""Generate a unique slug for a model instance."""
108+
# pylint: disable=protected-access
109+
106110
# get fields to populate from and slug field to set
107111
slug_field = model_instance._meta.get_field(self.attname)
108112

109113
slug = self.slugify(getattr(model_instance, self._populate_from))
110-
next = 0
114+
count = 0
111115

112116
# strip slug depending on max_length attribute of the slug field
113117
# and clean-up
@@ -134,13 +138,13 @@ def create_slug(self, model_instance):
134138
# depending on the given slug, clean-up
135139
while not slug or queryset.filter(**kwargs):
136140
slug = original_slug
137-
end = self.uniquifying_suffix(next)
141+
end = self.uniquifying_suffix(count)
138142
end_len = len(end)
139143
if slug_len and len(slug) + end_len > slug_len:
140144
slug = slug[:slug_len - end_len]
141145
slug = slug + end
142146
kwargs[self.attname] = slug
143-
next += 1
147+
count += 1
144148

145149
assert self.test_pattern.match(slug), (
146150
'Invalid generated slug: {slug}'.format(slug=slug))

readthedocs/builds/views.py

+7-5
Original file line numberDiff line numberDiff line change
@@ -1,3 +1,5 @@
1+
"""Views for builds app."""
2+
13
import logging
24

35
from django.shortcuts import get_object_or_404
@@ -35,14 +37,14 @@ class BuildList(BuildBase, ListView):
3537
def get_context_data(self, **kwargs):
3638
context = super(BuildList, self).get_context_data(**kwargs)
3739

38-
filter = BuildFilter(self.request.GET, queryset=self.get_queryset())
40+
filterset = BuildFilter(self.request.GET, queryset=self.get_queryset())
3941
active_builds = self.get_queryset().exclude(state="finished").values('id')
4042

4143
context['project'] = self.project
42-
context['filter'] = filter
44+
context['filter'] = filterset
4345
context['active_builds'] = active_builds
4446
context['versions'] = Version.objects.public(user=self.request.user, project=self.project)
45-
context['build_qs'] = filter.qs
47+
context['build_qs'] = filterset.qs
4648

4749
try:
4850
redis = Redis.from_url(settings.BROKER_URL)
@@ -64,9 +66,9 @@ def get_context_data(self, **kwargs):
6466

6567
# Old build view redirects
6668

67-
def builds_redirect_list(request, project_slug):
69+
def builds_redirect_list(request, project_slug): # pylint: disable=unused-argument
6870
return HttpResponsePermanentRedirect(reverse('builds_project_list', args=[project_slug]))
6971

7072

71-
def builds_redirect_detail(request, project_slug, pk):
73+
def builds_redirect_detail(request, project_slug, pk): # pylint: disable=unused-argument
7274
return HttpResponsePermanentRedirect(reverse('builds_detail', args=[project_slug, pk]))

0 commit comments

Comments
 (0)