Skip to content

Commit a84b5ed

Browse files
authored
Merge pull request #3372 from rtfd/humitos/migrate/warnings
Remove warnings from code
2 parents 7004cf0 + 3d9c618 commit a84b5ed

File tree

11 files changed

+592
-502
lines changed

11 files changed

+592
-502
lines changed

readthedocs/api/base.py

+78-70
Original file line numberDiff line numberDiff line change
@@ -1,28 +1,30 @@
1-
"""API resources"""
2-
from __future__ import absolute_import
3-
from builtins import object
4-
import logging
1+
# -*- coding: utf-8 -*-
2+
"""API resources."""
3+
from __future__ import (
4+
absolute_import, division, print_function, unicode_literals)
5+
56
import json
6-
import redis
7+
import logging
8+
from builtins import object
79

8-
from django.contrib.auth.models import User
10+
import redis
911
from django.conf.urls import url
10-
from django.shortcuts import get_object_or_404
12+
from django.contrib.auth.models import User
1113
from django.core.cache import cache
12-
14+
from django.shortcuts import get_object_or_404
1315
from tastypie import fields
1416
from tastypie.authorization import DjangoAuthorization
15-
from tastypie.constants import ALL_WITH_RELATIONS, ALL
17+
from tastypie.constants import ALL, ALL_WITH_RELATIONS
18+
from tastypie.http import HttpApplicationError, HttpCreated
1619
from tastypie.resources import ModelResource
17-
from tastypie.http import HttpCreated, HttpApplicationError
1820
from tastypie.utils import dict_strip_unicode_keys, trailing_slash
1921

2022
from readthedocs.builds.constants import LATEST
2123
from readthedocs.builds.models import Version
2224
from readthedocs.core.utils import trigger_build
23-
from readthedocs.projects.models import Project, ImportedFile
25+
from readthedocs.projects.models import ImportedFile, Project
2426

25-
from .utils import SearchMixin, PostAuthentication
27+
from .utils import PostAuthentication, SearchMixin
2628

2729
log = logging.getLogger(__name__)
2830

@@ -41,8 +43,8 @@ class Meta(object):
4143
authorization = DjangoAuthorization()
4244
excludes = ['path', 'featured', 'programming_language']
4345
filtering = {
44-
"users": ALL_WITH_RELATIONS,
45-
"slug": ALL_WITH_RELATIONS,
46+
'users': ALL_WITH_RELATIONS,
47+
'slug': ALL_WITH_RELATIONS,
4648
}
4749

4850
def get_object_list(self, request):
@@ -63,13 +65,15 @@ def post_list(self, request, **kwargs):
6365
If a new resource is created, return ``HttpCreated`` (201 Created).
6466
"""
6567
deserialized = self.deserialize(
66-
request, request.body,
67-
format=request.META.get('CONTENT_TYPE', 'application/json')
68+
request,
69+
request.body,
70+
format=request.META.get('CONTENT_TYPE', 'application/json'),
6871
)
6972

7073
# Force this in an ugly way, at least should do "reverse"
71-
deserialized["users"] = ["/api/v1/user/%s/" % request.user.id]
72-
bundle = self.build_bundle(data=dict_strip_unicode_keys(deserialized), request=request)
74+
deserialized['users'] = ['/api/v1/user/%s/' % request.user.id]
75+
bundle = self.build_bundle(
76+
data=dict_strip_unicode_keys(deserialized), request=request)
7377
self.is_valid(bundle)
7478
updated_bundle = self.obj_create(bundle, request=request)
7579
return HttpCreated(location=self.get_resource_uri(updated_bundle))
@@ -83,8 +87,9 @@ def sync_versions(self, request, **kwargs):
8387
project = get_object_or_404(Project, pk=kwargs['pk'])
8488
try:
8589
post_data = self.deserialize(
86-
request, request.body,
87-
format=request.META.get('CONTENT_TYPE', 'application/json')
90+
request,
91+
request.body,
92+
format=request.META.get('CONTENT_TYPE', 'application/json'),
8893
)
8994
data = json.loads(post_data)
9095
self.method_check(request, allowed=['post'])
@@ -102,19 +107,22 @@ def sync_versions(self, request, **kwargs):
102107
)
103108
return self.create_response(request, deleted_versions)
104109

105-
def override_urls(self):
110+
def prepend_urls(self):
106111
return [
107-
url(r"^(?P<resource_name>%s)/schema/$" % self._meta.resource_name,
108-
self.wrap_view('get_schema'), name="api_get_schema"),
109-
url(r"^(?P<resource_name>%s)/search%s$" % (
110-
self._meta.resource_name, trailing_slash()),
111-
self.wrap_view('get_search'), name="api_get_search"),
112-
url(r"^(?P<resource_name>%s)/(?P<pk>\d+)/sync_versions%s$" % (
113-
self._meta.resource_name, trailing_slash()),
114-
self.wrap_view('sync_versions'), name="api_sync_versions"),
115-
url((r"^(?P<resource_name>%s)/(?P<slug>[a-z-_]+)/$")
116-
% self._meta.resource_name, self.wrap_view('dispatch_detail'),
117-
name="api_dispatch_detail"),
112+
url(
113+
r'^(?P<resource_name>%s)/schema/$' % self._meta.resource_name,
114+
self.wrap_view('get_schema'), name='api_get_schema'),
115+
url(
116+
r'^(?P<resource_name>%s)/search%s$' %
117+
(self._meta.resource_name, trailing_slash()),
118+
self.wrap_view('get_search'), name='api_get_search'),
119+
url(
120+
r'^(?P<resource_name>%s)/(?P<pk>\d+)/sync_versions%s$' %
121+
(self._meta.resource_name, trailing_slash()),
122+
self.wrap_view('sync_versions'), name='api_sync_versions'),
123+
url((r'^(?P<resource_name>%s)/(?P<slug>[a-z-_]+)/$') %
124+
self._meta.resource_name, self.wrap_view('dispatch_detail'),
125+
name='api_dispatch_detail'),
118126
]
119127

120128

@@ -131,9 +139,9 @@ class Meta(object):
131139
authentication = PostAuthentication()
132140
authorization = DjangoAuthorization()
133141
filtering = {
134-
"project": ALL_WITH_RELATIONS,
135-
"slug": ALL_WITH_RELATIONS,
136-
"active": ALL,
142+
'project': ALL_WITH_RELATIONS,
143+
'slug': ALL_WITH_RELATIONS,
144+
'active': ALL,
137145
}
138146

139147
def get_object_list(self, request):
@@ -147,21 +155,21 @@ def build_version(self, request, **kwargs):
147155
trigger_build(project=project, version=version_obj)
148156
return self.create_response(request, {'building': True})
149157

150-
def override_urls(self):
158+
def prepend_urls(self):
151159
return [
152-
url(r"^(?P<resource_name>%s)/schema/$"
153-
% self._meta.resource_name,
154-
self.wrap_view('get_schema'),
155-
name="api_get_schema"),
156-
url(r"^(?P<resource_name>%s)/(?P<project__slug>[a-z-_]+[a-z0-9-_]+)/$" # noqa
160+
url(
161+
r'^(?P<resource_name>%s)/schema/$' % self._meta.resource_name,
162+
self.wrap_view('get_schema'), name='api_get_schema'),
163+
url(
164+
r'^(?P<resource_name>%s)/(?P<project__slug>[a-z-_]+[a-z0-9-_]+)/$' # noqa
157165
% self._meta.resource_name,
158166
self.wrap_view('dispatch_list'),
159-
name="api_version_list"),
160-
url((r"^(?P<resource_name>%s)/(?P<project_slug>[a-z-_]+[a-z0-9-_]+)/(?P"
161-
r"<version_slug>[a-z0-9-_.]+)/build/$")
162-
% self._meta.resource_name,
163-
self.wrap_view('build_version'),
164-
name="api_version_build_slug"),
167+
name='api_version_list'),
168+
url((
169+
r'^(?P<resource_name>%s)/(?P<project_slug>[a-z-_]+[a-z0-9-_]+)/(?P'
170+
r'<version_slug>[a-z0-9-_.]+)/build/$') %
171+
self._meta.resource_name, self.wrap_view('build_version'),
172+
name='api_version_build_slug'),
165173
]
166174

167175

@@ -180,20 +188,19 @@ class Meta(object):
180188
authorization = DjangoAuthorization()
181189
search_facets = ['project']
182190

183-
def override_urls(self):
191+
def prepend_urls(self):
184192
return [
185-
url(r"^(?P<resource_name>%s)/schema/$" %
186-
self._meta.resource_name,
187-
self.wrap_view('get_schema'),
188-
name="api_get_schema"),
189-
url(r"^(?P<resource_name>%s)/search%s$" %
193+
url(
194+
r'^(?P<resource_name>%s)/schema/$' % self._meta.resource_name,
195+
self.wrap_view('get_schema'), name='api_get_schema'),
196+
url(
197+
r'^(?P<resource_name>%s)/search%s$' %
190198
(self._meta.resource_name, trailing_slash()),
191-
self.wrap_view('get_search'),
192-
name="api_get_search"),
193-
url(r"^(?P<resource_name>%s)/anchor%s$" %
199+
self.wrap_view('get_search'), name='api_get_search'),
200+
url(
201+
r'^(?P<resource_name>%s)/anchor%s$' %
194202
(self._meta.resource_name, trailing_slash()),
195-
self.wrap_view('get_anchor'),
196-
name="api_get_anchor"),
203+
self.wrap_view('get_anchor'), name='api_get_anchor'),
197204
]
198205

199206
def get_anchor(self, request, **__):
@@ -204,12 +211,14 @@ def get_anchor(self, request, **__):
204211
query = request.GET.get('q', '')
205212
try:
206213
redis_client = cache.get_client(None)
207-
redis_data = redis_client.keys("*redirects:v4*%s*" % query)
214+
redis_data = redis_client.keys('*redirects:v4*%s*' % query)
208215
except (AttributeError, redis.exceptions.ConnectionError):
209216
redis_data = []
210217
# -2 because http:
211-
urls = [''.join(data.split(':')[6:]) for data in redis_data
212-
if 'http://' in data]
218+
urls = [
219+
''.join(data.split(':')[6:]) for data in redis_data
220+
if 'http://' in data
221+
]
213222
object_list = {'objects': urls}
214223

215224
self.log_throttled_access(request)
@@ -228,14 +237,13 @@ class Meta(object):
228237
'username': 'exact',
229238
}
230239

231-
def override_urls(self):
240+
def prepend_urls(self):
232241
return [
233-
url(r"^(?P<resource_name>%s)/schema/$" %
234-
self._meta.resource_name,
235-
self.wrap_view('get_schema'),
236-
name="api_get_schema"),
237-
url(r"^(?P<resource_name>%s)/(?P<username>[a-z-_]+)/$" %
238-
self._meta.resource_name,
239-
self.wrap_view('dispatch_detail'),
240-
name="api_dispatch_detail"),
242+
url(
243+
r'^(?P<resource_name>%s)/schema/$' % self._meta.resource_name,
244+
self.wrap_view('get_schema'), name='api_get_schema'),
245+
url(
246+
r'^(?P<resource_name>%s)/(?P<username>[a-z-_]+)/$' %
247+
self._meta.resource_name, self.wrap_view('dispatch_detail'),
248+
name='api_dispatch_detail'),
241249
]

0 commit comments

Comments
 (0)