Skip to content

Commit 2d35a82

Browse files
author
Chris Park
committed
More pep8 code beautification - per pep8
1 parent 100cf46 commit 2d35a82

File tree

1 file changed

+98
-33
lines changed

1 file changed

+98
-33
lines changed

rosette/api.py

Lines changed: 98 additions & 33 deletions
Original file line numberDiff line numberDiff line change
@@ -51,6 +51,7 @@
5151

5252

5353
class _ReturnObject:
54+
5455
def __init__(self, js, code):
5556
self._json = js
5657
self.status_code = code
@@ -69,6 +70,7 @@ def _my_loads(obj, response_headers):
6970
d2.update(response_headers)
7071
return d2
7172

73+
7274
class RosetteException(Exception):
7375
"""Exception thrown by all Rosette API operations for errors local and remote.
7476
@@ -88,6 +90,7 @@ def __str__(self):
8890

8991

9092
class _PseudoEnum:
93+
9194
def __init__(self):
9295
pass
9396

@@ -99,10 +102,17 @@ def validate(cls, value, name):
99102
values += [v]
100103

101104
# this is still needed to make sure that the parameter NAMES are known.
102-
# If python didn't allow setting unknown values, this would be a language error.
105+
# If python didn't allow setting unknown values, this would be a
106+
# language error.
103107
if value not in values:
104-
raise RosetteException("unknownVariable", "The value supplied for " + name +
105-
" is not one of " + ", ".join(values) + ".", repr(value))
108+
raise RosetteException(
109+
"unknownVariable",
110+
"The value supplied for " +
111+
name +
112+
" is not one of " +
113+
", ".join(values) +
114+
".",
115+
repr(value))
106116

107117

108118
class MorphologyOutput(_PseudoEnum):
@@ -114,19 +124,22 @@ class MorphologyOutput(_PseudoEnum):
114124

115125

116126
class _DocumentParamSetBase(object):
127+
117128
def __init__(self, repertoire):
118129
self.__params = {}
119130
for k in repertoire:
120131
self.__params[k] = None
121132

122133
def __setitem__(self, key, val):
123134
if key not in self.__params:
124-
raise RosetteException("badKey", "Unknown Rosette parameter key", repr(key))
135+
raise RosetteException(
136+
"badKey", "Unknown Rosette parameter key", repr(key))
125137
self.__params[key] = val
126138

127139
def __getitem__(self, key):
128140
if key not in self.__params:
129-
raise RosetteException("badKey", "Unknown Rosette parameter key", repr(key))
141+
raise RosetteException(
142+
"badKey", "Unknown Rosette parameter key", repr(key))
130143
return self.__params[key]
131144

132145
def validate(self):
@@ -170,18 +183,25 @@ class DocumentParameters(_DocumentParamSetBase):
170183

171184
def __init__(self):
172185
"""Create a L{DocumentParameters} object."""
173-
_DocumentParamSetBase.__init__(self, ("content", "contentUri", "language", "genre"))
186+
_DocumentParamSetBase.__init__(
187+
self, ("content", "contentUri", "language", "genre"))
174188
self.file_name = ""
175189
self.useMultipart = False
176190

177191
def validate(self):
178192
"""Internal. Do not use."""
179193
if self["content"] is None:
180194
if self["contentUri"] is None:
181-
raise RosetteException("badArgument", "Must supply one of Content or ContentUri", "bad arguments")
195+
raise RosetteException(
196+
"badArgument",
197+
"Must supply one of Content or ContentUri",
198+
"bad arguments")
182199
else: # self["content"] not None
183200
if self["contentUri"] is not None:
184-
raise RosetteException("badArgument", "Cannot supply both Content and ContentUri", "bad arguments")
201+
raise RosetteException(
202+
"badArgument",
203+
"Cannot supply both Content and ContentUri",
204+
"bad arguments")
185205

186206
def serialize(self):
187207
"""Internal. Do not use."""
@@ -213,10 +233,12 @@ class RelationshipsParameters(DocumentParameters):
213233

214234
"""Parameter object for relationships endpoint. Inherits from L(DocumentParameters), but allows the user
215235
to specify the relationships-unique options parameter."""
236+
216237
def __init__(self):
217238
"""Create a L{RelationshipsParameters} object."""
218239
self.useMultipart = False
219-
_DocumentParamSetBase.__init__(self, ("content", "contentUri", "language", "options", "genre"))
240+
_DocumentParamSetBase.__init__(
241+
self, ("content", "contentUri", "language", "options", "genre"))
220242

221243

222244
class NameTranslationParameters(_DocumentParamSetBase):
@@ -246,14 +268,26 @@ class NameTranslationParameters(_DocumentParamSetBase):
246268

247269
def __init__(self):
248270
self.useMultipart = False
249-
_DocumentParamSetBase.__init__(self, ("name", "targetLanguage", "entityType", "sourceLanguageOfOrigin",
250-
"sourceLanguageOfUse", "sourceScript", "targetScript", "targetScheme", "genre"))
271+
_DocumentParamSetBase.__init__(
272+
self,
273+
("name",
274+
"targetLanguage",
275+
"entityType",
276+
"sourceLanguageOfOrigin",
277+
"sourceLanguageOfUse",
278+
"sourceScript",
279+
"targetScript",
280+
"targetScheme",
281+
"genre"))
251282

252283
def validate(self):
253284
"""Internal. Do not use."""
254285
for n in ("name", "targetLanguage"): # required
255286
if self[n] is None:
256-
raise RosetteException("missingParameter", "Required Name Translation parameter not supplied", repr(n))
287+
raise RosetteException(
288+
"missingParameter",
289+
"Required Name Translation parameter not supplied",
290+
repr(n))
257291

258292

259293
class NameSimilarityParameters(_DocumentParamSetBase):
@@ -283,7 +317,10 @@ def validate(self):
283317
"""Internal. Do not use."""
284318
for n in ("name1", "name2"): # required
285319
if self[n] is None:
286-
raise RosetteException("missingParameter", "Required Name Similarity parameter not supplied", repr(n))
320+
raise RosetteException(
321+
"missingParameter",
322+
"Required Name Similarity parameter not supplied",
323+
repr(n))
287324

288325

289326
class EndpointCaller:
@@ -331,10 +368,8 @@ def __finish_result(self, r, ename):
331368
else:
332369
complaint_url = ename + " " + self.suburl
333370

334-
raise RosetteException(code,
335-
complaint_url + " : failed to communicate with Rosette",
336-
msg)
337-
371+
raise RosetteException(code, complaint_url +
372+
" : failed to communicate with Rosette", msg)
338373

339374
def info(self):
340375
"""Issues an "info" request to the L{EndpointCaller}'s specific endpoint.
@@ -405,8 +440,10 @@ def call(self, parameters):
405440
parameters = DocumentParameters()
406441
parameters['content'] = text
407442
else:
408-
raise RosetteException("incompatible", "Text-only input only works for DocumentParameter endpoints",
409-
self.suburl)
443+
raise RosetteException(
444+
"incompatible",
445+
"Text-only input only works for DocumentParameter endpoints",
446+
self.suburl)
410447

411448
self.checker()
412449

@@ -417,10 +454,22 @@ def call(self, parameters):
417454
if self.user_key is not None:
418455
headers["X-RosetteAPI-Key"] = self.user_key
419456
if self.useMultipart:
420-
params = dict((key, value) for key, value in params_to_serialize.iteritems() if key == 'language')
421-
files = {'content': (os.path.basename(parameters.file_name), params_to_serialize["content"], 'text/plain'),
422-
'request': ('request_options', json.dumps(params), 'application/json')}
423-
request = requests.Request('POST', url, files=files, headers=headers)
457+
params = dict(
458+
(key,
459+
value) for key,
460+
value in params_to_serialize.iteritems() if key == 'language')
461+
files = {
462+
'content': (
463+
os.path.basename(
464+
parameters.file_name),
465+
params_to_serialize["content"],
466+
'text/plain'),
467+
'request': (
468+
'request_options',
469+
json.dumps(params),
470+
'application/json')}
471+
request = requests.Request(
472+
'POST', url, files=files, headers=headers)
424473
prepared_request = request.prepare()
425474
session = requests.Session()
426475
resp = session.send(prepared_request)
@@ -446,15 +495,23 @@ class API:
446495
which can communicate with particular Rosette server endpoints.
447496
"""
448497

449-
def __init__(self, user_key=None, service_url='https://api.rosette.com/rest/v1/', retries=5, reuse_connection=True, refresh_duration=0.5, debug=False):
498+
def __init__(
499+
self,
500+
user_key=None,
501+
service_url='https://api.rosette.com/rest/v1/',
502+
retries=5,
503+
reuse_connection=True,
504+
refresh_duration=0.5,
505+
debug=False):
450506
""" Create an L{API} object.
451507
@param user_key: (Optional; required for servers requiring authentication.) An authentication string to be sent
452508
as user_key with all requests. The default Rosette server requires authentication.
453509
to the server.
454510
"""
455511
# logging.basicConfig(filename="binding.log", filemode="w", level=logging.DEBUG)
456512
self.user_key = user_key
457-
self.service_url = service_url if service_url.endswith('/') else service_url + '/'
513+
self.service_url = service_url if service_url.endswith(
514+
'/') else service_url + '/'
458515
self.logger = logging.getLogger('rosette.api')
459516
self.logger.info('Initialized on ' + self.service_url)
460517
self.debug = debug
@@ -481,7 +538,6 @@ def _connect(self, parsedUrl):
481538
else:
482539
self.http_connection = httplib.HTTPConnection(loc)
483540

484-
485541
def _make_request(self, op, url, data, headers):
486542
"""
487543
Handles the actual request, retrying if a 429 is encountered
@@ -506,7 +562,8 @@ def _make_request(self, op, url, data, headers):
506562
response = self.http_connection.getresponse()
507563
status = response.status
508564
rdata = response.read()
509-
response_headers["responseHeaders"] = (dict(response.getheaders()))
565+
response_headers["responseHeaders"] = (
566+
dict(response.getheaders()))
510567
if status == 200:
511568
if not self.reuse_connection:
512569
self.http_connection.close()
@@ -517,7 +574,7 @@ def _make_request(self, op, url, data, headers):
517574
time.sleep(self.connection_refresh_duration)
518575
self.http_connection.close()
519576
self._connect(parsedUrl)
520-
continue;
577+
continue
521578
if rdata is not None:
522579
try:
523580
the_json = _my_loads(rdata, response_headers)
@@ -531,7 +588,10 @@ def _make_request(self, op, url, data, headers):
531588
except:
532589
raise
533590
except (httplib.BadStatusLine, gaierror) as e:
534-
raise RosetteException("ConnectionError", "Unable to establish connection to the Rosette API server", url)
591+
raise RosetteException(
592+
"ConnectionError",
593+
"Unable to establish connection to the Rosette API server",
594+
url)
535595

536596
if not self.reuse_connection:
537597
self.http_connection.close()
@@ -545,10 +605,10 @@ def _get_http(self, url, headers):
545605
@param url: endpoint URL
546606
@param headers: request headers
547607
"""
548-
(rdata, status, response_headers) = self._make_request("GET", url, None, headers)
608+
(rdata, status, response_headers) = self._make_request(
609+
"GET", url, None, headers)
549610
return _ReturnObject(_my_loads(rdata, response_headers), status)
550611

551-
552612
def _post_http(self, url, data, headers):
553613
"""
554614
Simple wrapper for the POST request
@@ -562,7 +622,8 @@ def _post_http(self, url, data, headers):
562622
else:
563623
json_data = json.dumps(data)
564624

565-
(rdata, status, response_headers) = self._make_request("POST", url, json_data, headers)
625+
(rdata, status, response_headers) = self._make_request(
626+
"POST", url, json_data, headers)
566627

567628
if len(rdata) > 3 and rdata[0:3] == _GZIP_SIGNATURE:
568629
buf = BytesIO(rdata)
@@ -579,7 +640,11 @@ def check_version(self):
579640
op = EndpointCaller(self, None)
580641
result = op.checkVersion()
581642
if 'versionChecked' not in result or result['versionChecked'] is False:
582-
raise RosetteException("incompatibleVersion", "The server version is not compatible with binding version " + _BINDING_VERSION, '')
643+
raise RosetteException(
644+
"incompatibleVersion",
645+
"The server version is not compatible with binding version " +
646+
_BINDING_VERSION,
647+
'')
583648
self.version_checked = True
584649
return True
585650

0 commit comments

Comments
 (0)