Skip to content

Commit 730dbcd

Browse files
committed
Clean up pylint reports of unused modules, duplicate imports, indent
issues, relative import, extra ';', unneeded pass. Also added support for TypeError as I restructured accept header parsing a bit to remove uneeded "version" variable assignments
1 parent eeb612b commit 730dbcd

File tree

1 file changed

+16
-12
lines changed

1 file changed

+16
-12
lines changed

roundup/rest.py

Lines changed: 16 additions & 12 deletions
Original file line numberDiff line numberDiff line change
@@ -13,15 +13,14 @@
1313
from urlparse import urlparse
1414
import os
1515
import json
16-
import pprint
1716
import sys
1817
import time
1918
import traceback
2019
import re
2120

2221
try:
2322
# if dicttoxml installed in roundup directory, use it
24-
from .dicttoxml import dicttoxml
23+
from roundup.dicttoxml import dicttoxml
2524
except ImportError:
2625
try:
2726
# else look in sys.path
@@ -58,8 +57,6 @@
5857
else:
5958
logger.warning("**SystemRandom not available. Using poor random generator")
6059

61-
import time
62-
6360
chars = 'abcdefghijklmnopqrstuvwxyzABCDEFGHIJKLMNOPQRSTUVWXYZ0123456789'
6461

6562
def _data_decorator(func):
@@ -183,7 +180,7 @@ def obtain_etags(headers,input):
183180
'''Get ETags value from headers or payload data'''
184181
etags = []
185182
if '@etag' in input:
186-
etags.append(input['@etag'].value);
183+
etags.append(input['@etag'].value)
187184
etags.append(headers.get("If-Match", None))
188185
return etags
189186

@@ -228,10 +225,10 @@ def parse_accept_header(accept):
228225
if len(rest):
229226
# add the version as a media param
230227
try:
231-
version = media_params.append(('version',
228+
media_params.append(('version',
232229
rest))
233230
except ValueError:
234-
version = 1.0 # could not be parsed
231+
pass # return no version value; use rest default
235232
# add the vendor code as a media param
236233
media_params.append(('vendor', vnd))
237234
# and re-write media_type to something like application/json so
@@ -540,6 +537,9 @@ def format_item(self, node, item_id, props=None, verbose=1):
540537
else:
541538
version = self.api_version
542539

540+
# version never gets used since we only
541+
# support version 1 at this time. Set it as
542+
# placeholder for later use.
543543
result = {}
544544
try:
545545
# pn = propname
@@ -781,7 +781,6 @@ def get_element(self, class_name, item_id, input):
781781
raise UsageError ("Field %s is not key property"%k)
782782
except ValueError:
783783
v = item_id
784-
pass
785784
if not self.db.security.hasPermission(
786785
'View', uid, class_name, itemid=item_id, property=keyprop
787786
):
@@ -1173,6 +1172,9 @@ def delete_collection(self, class_name, input):
11731172
count (int): number of deleted objects
11741173
"""
11751174
raise Unauthorised('Deletion of a whole class disabled')
1175+
''' Hide original code to silence pylint.
1176+
Leave it here in case we need to re-enable.
1177+
FIXME: Delete in December 2020 if not used.
11761178
if class_name not in self.db.classes:
11771179
raise NotFound('Class %s not found' % class_name)
11781180
if not self.db.security.hasPermission(
@@ -1200,6 +1202,7 @@ def delete_collection(self, class_name, input):
12001202
}
12011203
12021204
return 200, result
1205+
'''
12031206

12041207
@Routing.route("/data/<:class_name>/<:item_id>", 'DELETE')
12051208
@_data_decorator
@@ -1270,8 +1273,8 @@ def delete_attribute(self, class_name, item_id, attr_name, input):
12701273
raise UsageError("Attribute '%s' not valid for class %s."%(
12711274
attr_name, class_name))
12721275
if attr_name in class_obj.get_required_props():
1273-
raise UsageError("Attribute '%s' is required by class %s and can not be deleted."%(
1274-
attr_name, class_name))
1276+
raise UsageError("Attribute '%s' is required by class %s and can not be deleted."%(
1277+
attr_name, class_name))
12751278
props = {}
12761279
prop_obj = class_obj.get(item_id, attr_name)
12771280
if isinstance(prop_obj, list):
@@ -1746,7 +1749,8 @@ def dispatch(self, method, uri, input):
17461749
self.api_version = int(part[1]['version'])
17471750
except KeyError:
17481751
self.api_version = None
1749-
except ValueError:
1752+
except (ValueError, TypeError):
1753+
# TypeError if int(None)
17501754
msg=( "Unrecognized version: %s. "
17511755
"See /rest without specifying version "
17521756
"for supported versions."%(
@@ -1830,7 +1834,7 @@ def dispatch(self, method, uri, input):
18301834
# Use default if not specified for now.
18311835
self.api_version = self.__default_api_version
18321836
elif self.api_version not in self.__supported_api_versions:
1833-
raise UsageError(msg%self.api_version)
1837+
raise UsageError(msg%self.api_version)
18341838

18351839
# sadly del doesn't work on FieldStorage which can be the type of
18361840
# input. So we have to ignore keys starting with @ at other

0 commit comments

Comments
 (0)