Skip to content

Commit 0ab73a3

Browse files
committed
Remove unnecessary elses
This addresses no-else-return, which removes a `return` in an `else` after an `if` that already has a `return`. This makes the default return more obvious in most cases.
1 parent 8474b02 commit 0ab73a3

File tree

22 files changed

+90
-132
lines changed

22 files changed

+90
-132
lines changed

readthedocs/bookmarks/views.py

Lines changed: 24 additions & 25 deletions
Original file line numberDiff line numberDiff line change
@@ -175,30 +175,29 @@ def post(self, request, *args, **kwargs):
175175
bookmark = get_object_or_404(Bookmark, pk=kwargs['bookmark_pk'])
176176
bookmark.delete()
177177
return HttpResponseRedirect(reverse('bookmark_list'))
178-
else:
179-
try:
180-
post_json = json.loads(request.body)
181-
project = Project.objects.get(slug=post_json['project'])
182-
version = project.versions.get(slug=post_json['version'])
183-
url = post_json['url']
184-
page = post_json['page']
185-
except KeyError:
186-
return HttpResponseBadRequest(
187-
json.dumps({'error': "Invalid parameters"})
188-
)
189-
190-
bookmark = get_object_or_404(
191-
Bookmark,
192-
user=request.user,
193-
url=url,
194-
project=project,
195-
version=version,
196-
page=page
178+
try:
179+
post_json = json.loads(request.body)
180+
project = Project.objects.get(slug=post_json['project'])
181+
version = project.versions.get(slug=post_json['version'])
182+
url = post_json['url']
183+
page = post_json['page']
184+
except KeyError:
185+
return HttpResponseBadRequest(
186+
json.dumps({'error': "Invalid parameters"})
197187
)
198-
bookmark.delete()
199188

200-
return HttpResponse(
201-
json.dumps({'removed': True}),
202-
status=200,
203-
content_type="application/json"
204-
)
189+
bookmark = get_object_or_404(
190+
Bookmark,
191+
user=request.user,
192+
url=url,
193+
project=project,
194+
version=version,
195+
page=page
196+
)
197+
bookmark.delete()
198+
199+
return HttpResponse(
200+
json.dumps({'removed': True}),
201+
status=200,
202+
content_type="application/json"
203+
)

readthedocs/builds/models.py

Lines changed: 1 addition & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -106,8 +106,7 @@ def commit_name(self):
106106
if self.slug == LATEST:
107107
if self.project.default_branch:
108108
return self.project.default_branch
109-
else:
110-
return self.project.vcs_repo().fallback_branch
109+
return self.project.vcs_repo().fallback_branch
111110

112111
if self.slug == STABLE:
113112
if self.type == BRANCH:

readthedocs/comments/models.py

Lines changed: 10 additions & 13 deletions
Original file line numberDiff line numberDiff line change
@@ -84,22 +84,20 @@ def latest_commit(self):
8484
def visible_comments(self):
8585
if not self.project.comment_moderation:
8686
return self.comments.all()
87-
else:
88-
# non-optimal SQL warning.
89-
decisions = ModerationAction.objects.filter(
90-
comment__node=self,
91-
decision=1,
92-
date__gt=self.snapshots.latest().date
93-
)
94-
valid_comments = self.comments.filter(moderation_actions__in=decisions).distinct()
95-
return valid_comments
87+
# non-optimal SQL warning.
88+
decisions = ModerationAction.objects.filter(
89+
comment__node=self,
90+
decision=1,
91+
date__gt=self.snapshots.latest().date
92+
)
93+
valid_comments = self.comments.filter(moderation_actions__in=decisions).distinct()
94+
return valid_comments
9695

9796
def update_hash(self, new_hash, commit):
9897
latest_snapshot = self.snapshots.latest()
9998
if latest_snapshot.hash == new_hash and latest_snapshot.commit == commit:
10099
return latest_snapshot
101-
else:
102-
return self.snapshots.create(hash=new_hash, commit=commit)
100+
return self.snapshots.create(hash=new_hash, commit=commit)
103101

104102

105103
class DocumentNodeSerializer(serializers.ModelSerializer):
@@ -183,8 +181,7 @@ def has_been_approved_since_most_recent_node_change(self):
183181
# If we do have an approval action which is newer than the most recent change,
184182
# we'll return True or False commensurate with its "approved" attribute.
185183
return latest_moderation_action.approved()
186-
else:
187-
return False
184+
return False
188185

189186
def is_orphaned(self):
190187
raise NotImplementedError('TODO')

readthedocs/core/resolver.py

Lines changed: 2 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -125,8 +125,7 @@ def resolve_domain(self, project, private=None):
125125
return domain.domain
126126
elif self._use_subdomain():
127127
return self._get_project_subdomain(canonical_project)
128-
else:
129-
return getattr(settings, 'PRODUCTION_DOMAIN')
128+
return getattr(settings, 'PRODUCTION_DOMAIN')
130129

131130
def resolve(self, project, protocol='http', filename='', private=None,
132131
**kwargs):
@@ -155,8 +154,7 @@ def _get_canonical_project(self, project):
155154
return main_language_project
156155
elif relation:
157156
return relation.parent
158-
else:
159-
return project
157+
return project
160158

161159
def _get_project_subdomain(self, project):
162160
"""Determine canonical project domain as subdomain"""

readthedocs/core/utils/__init__.py

Lines changed: 3 additions & 5 deletions
Original file line numberDiff line numberDiff line change
@@ -33,9 +33,8 @@ def run_on_app_servers(command):
3333
if ret != 0:
3434
ret_val = ret
3535
return ret_val
36-
else:
37-
ret = os.system(command)
38-
return ret
36+
ret = os.system(command)
37+
return ret
3938

4039

4140
def broadcast(type, task, args): # pylint: disable=redefined-builtin
@@ -56,8 +55,7 @@ def clean_url(url):
5655
parsed = urlparse(url)
5756
if parsed.scheme or parsed.netloc:
5857
return parsed.netloc
59-
else:
60-
return parsed.path
58+
return parsed.path
6159

6260

6361
def cname_to_slug(host):

readthedocs/core/views/__init__.py

Lines changed: 2 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -95,9 +95,8 @@ def wipe_version(request, project_slug, version_slug):
9595
for del_dir in del_dirs:
9696
broadcast(type='build', task=remove_dir, args=[del_dir])
9797
return redirect('project_version_list', project_slug)
98-
else:
99-
return render_to_response('wipe_version.html',
100-
context_instance=RequestContext(request))
98+
return render_to_response('wipe_version.html',
99+
context_instance=RequestContext(request))
101100

102101

103102
def divide_by_zero(request): # pylint: disable=unused-argument

readthedocs/core/views/hooks.py

Lines changed: 6 additions & 10 deletions
Original file line numberDiff line numberDiff line change
@@ -220,11 +220,9 @@ def gitlab_build(request): # noqa: D205
220220
projects = get_project_from_url(search_url)
221221
if projects:
222222
return _build_url(search_url, projects, branches)
223-
else:
224-
log.error('Project match not found: url=%s', search_url)
225-
return HttpResponseNotFound('Project match not found')
226-
else:
227-
return HttpResponse('Method not allowed, POST is required', status=405)
223+
log.error('Project match not found: url=%s', search_url)
224+
return HttpResponseNotFound('Project match not found')
225+
return HttpResponse('Method not allowed, POST is required', status=405)
228226

229227

230228
@csrf_exempt
@@ -290,11 +288,9 @@ def bitbucket_build(request):
290288
branches
291289
)
292290
return HttpResponseNotFound('Commit/branch not found')
293-
else:
294-
log.error('Project match not found: url=%s', search_url)
295-
return HttpResponseNotFound('Project match not found')
296-
else:
297-
return HttpResponse('Method not allowed, POST is required', status=405)
291+
log.error('Project match not found: url=%s', search_url)
292+
return HttpResponseNotFound('Project match not found')
293+
return HttpResponse('Method not allowed, POST is required', status=405)
298294

299295

300296
@csrf_exempt

readthedocs/doc_builder/config.py

Lines changed: 12 additions & 19 deletions
Original file line numberDiff line numberDiff line change
@@ -29,25 +29,22 @@ def __init__(self, version, yaml_config):
2929
def pip_install(self):
3030
if 'pip_install' in self._yaml_config.get('python', {}):
3131
return self._yaml_config['python']['pip_install']
32-
else:
33-
return False
32+
return False
3433

3534
@property
3635
def install_project(self):
3736
if self.pip_install:
3837
return True
3938
if 'setup_py_install' in self._yaml_config.get('python', {}):
4039
return self._yaml_config['python']['setup_py_install']
41-
else:
42-
return self._project.install_project
40+
return self._project.install_project
4341

4442
@property
4543
def extra_requirements(self):
4644
if self.pip_install and 'extra_requirements' in self._yaml_config.get(
4745
'python', {}):
4846
return self._yaml_config['python']['extra_requirements']
49-
else:
50-
return []
47+
return []
5148

5249
@property
5350
def python_interpreter(self):
@@ -77,8 +74,7 @@ def python_version(self):
7774
def use_system_site_packages(self):
7875
if 'use_system_site_packages' in self._yaml_config.get('python', {}):
7976
return self._yaml_config['python']['use_system_site_packages']
80-
else:
81-
return self._project.use_system_packages
77+
return self._project.use_system_packages
8278

8379
@property
8480
def use_conda(self):
@@ -88,27 +84,24 @@ def use_conda(self):
8884
def conda_file(self):
8985
if 'file' in self._yaml_config.get('conda', {}):
9086
return self._yaml_config['conda']['file']
91-
else:
92-
return None
87+
return None
9388

9489
@property
9590
def requirements_file(self):
9691
if 'requirements_file' in self._yaml_config:
9792
return self._yaml_config['requirements_file']
98-
else:
99-
return self._project.requirements_file
93+
return self._project.requirements_file
10094

10195
@property
10296
def formats(self):
10397
if 'formats' in self._yaml_config:
10498
return self._yaml_config['formats']
105-
else:
106-
formats = ['htmlzip']
107-
if self._project.enable_epub_build:
108-
formats += ['epub']
109-
if self._project.enable_pdf_build:
110-
formats += ['pdf']
111-
return formats
99+
formats = ['htmlzip']
100+
if self._project.enable_epub_build:
101+
formats += ['epub']
102+
if self._project.enable_pdf_build:
103+
formats += ['pdf']
104+
return formats
112105

113106
# Not implemented until we figure out how to keep in sync with the webs.
114107
# Probably needs to be version-specific as well, not project.

readthedocs/doc_builder/environments.py

Lines changed: 1 addition & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -165,8 +165,7 @@ def get_command(self):
165165
"""Flatten command"""
166166
if hasattr(self.command, '__iter__') and not isinstance(self.command, str):
167167
return ' '.join(self.command)
168-
else:
169-
return self.command
168+
return self.command
170169

171170
def save(self):
172171
"""Save this command and result via the API"""

readthedocs/oauth/utils.py

Lines changed: 8 additions & 9 deletions
Original file line numberDiff line numberDiff line change
@@ -73,12 +73,11 @@ def update_webhook(project, integration, request=None):
7373
project.has_valid_webhook = True
7474
project.save()
7575
return True
76-
else:
77-
messages.error(
78-
request,
79-
_('Webhook activation failed. '
80-
'Make sure you have the necessary permissions.')
81-
)
82-
project.has_valid_webhook = False
83-
project.save()
84-
return False
76+
messages.error(
77+
request,
78+
_('Webhook activation failed. '
79+
'Make sure you have the necessary permissions.')
80+
)
81+
project.has_valid_webhook = False
82+
project.save()
83+
return False

readthedocs/privacy/backend.py

Lines changed: 4 additions & 8 deletions
Original file line numberDiff line numberDiff line change
@@ -38,29 +38,25 @@ def for_user_and_viewer(self, user, viewer):
3838
def for_admin_user(self, user=None):
3939
if user.is_authenticated():
4040
return self.filter(users__in=[user])
41-
else:
42-
return self.none()
41+
return self.none()
4342

4443
def public(self, user=None):
4544
queryset = self.filter(privacy_level=constants.PUBLIC)
4645
if user:
4746
return self._add_user_repos(queryset, user)
48-
else:
49-
return queryset
47+
return queryset
5048

5149
def protected(self, user=None):
5250
queryset = self.filter(privacy_level__in=[constants.PUBLIC, constants.PROTECTED])
5351
if user:
5452
return self._add_user_repos(queryset, user)
55-
else:
56-
return queryset
53+
return queryset
5754

5855
def private(self, user=None):
5956
queryset = self.filter(privacy_level=constants.PRIVATE)
6057
if user:
6158
return self._add_user_repos(queryset, user)
62-
else:
63-
return queryset
59+
return queryset
6460

6561
# Aliases
6662

readthedocs/projects/models.py

Lines changed: 4 additions & 7 deletions
Original file line numberDiff line numberDiff line change
@@ -357,8 +357,7 @@ def get_builds_url(self):
357357
def get_canonical_url(self):
358358
if getattr(settings, 'DONT_HIT_DB', True):
359359
return apiv2.project(self.pk).canonical_url().get()['url']
360-
else:
361-
return self.get_docs_url()
360+
return self.get_docs_url()
362361

363362
def get_subproject_urls(self):
364363
"""List subproject URLs
@@ -371,9 +370,8 @@ def get_subproject_urls(self):
371370
apiv2.project(self.pk)
372371
.subprojects()
373372
.get()['subprojects'])]
374-
else:
375-
return [(proj.child.slug, proj.child.get_docs_url())
376-
for proj in self.subprojects.all()]
373+
return [(proj.child.slug, proj.child.get_docs_url())
374+
for proj in self.subprojects.all()]
377375

378376
def get_production_media_path(self, type_, version_slug, include_file=True):
379377
"""
@@ -754,8 +752,7 @@ def get_default_branch(self):
754752
"""Get the version representing 'latest'"""
755753
if self.default_branch:
756754
return self.default_branch
757-
else:
758-
return self.vcs_repo().fallback_branch
755+
return self.vcs_repo().fallback_branch
759756

760757
def add_subproject(self, child, alias=None):
761758
subproject, __ = ProjectRelationship.objects.get_or_create(

readthedocs/projects/version_handling.py

Lines changed: 2 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -158,8 +158,7 @@ def highest_version(version_list):
158158
versions = sort_versions(version_list)
159159
if versions:
160160
return versions[0]
161-
else:
162-
return (None, None)
161+
return (None, None)
163162

164163

165164
def determine_stable_version(version_list):
@@ -177,5 +176,4 @@ def determine_stable_version(version_list):
177176
if versions:
178177
version_obj, comparable = versions[0]
179178
return version_obj
180-
else:
181-
return None
179+
return None

readthedocs/projects/views/public.py

Lines changed: 1 addition & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -246,8 +246,7 @@ def version_filter_autocomplete(request, project_slug):
246246
},
247247
context_instance=RequestContext(request),
248248
)
249-
else:
250-
return HttpResponse(status=400)
249+
return HttpResponse(status=400)
251250

252251

253252
def file_autocomplete(request, project_slug):

readthedocs/redirects/models.py

Lines changed: 1 addition & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -80,8 +80,7 @@ def __unicode__(self):
8080
return ugettext('Page Redirect: %s -> %s' % (
8181
self.from_url,
8282
self.to_url))
83-
else:
84-
return ugettext('Redirect: %s' % self.get_redirect_type_display())
83+
return ugettext('Redirect: %s' % self.get_redirect_type_display())
8584

8685
def get_full_path(self, filename, language=None, version_slug=None):
8786
"""

0 commit comments

Comments
 (0)