Spaces:
Runtime error
Runtime error
"""A conversion module for googletrans""" | |
import json | |
import re | |
def build_params(client, query, src, dest, token, override): | |
params = { | |
'client': client, | |
'sl': src, | |
'tl': dest, | |
'hl': dest, | |
'dt': ['at', 'bd', 'ex', 'ld', 'md', 'qca', 'rw', 'rm', 'ss', 't'], | |
'ie': 'UTF-8', | |
'oe': 'UTF-8', | |
'otf': 1, | |
'ssel': 0, | |
'tsel': 0, | |
'q': query, | |
} | |
if token != '': | |
params['tk'] = token | |
if override is not None: | |
for key, value in get_items(override): | |
params[key] = value | |
return params | |
def legacy_format_json(original): | |
# save state | |
states = [] | |
text = original | |
# save position for double-quoted texts | |
for i, pos in enumerate(re.finditer('"', text)): | |
# pos.start() is a double-quote | |
p = pos.start() + 1 | |
if i % 2 == 0: | |
nxt = text.find('"', p) | |
states.append((p, text[p:nxt])) | |
# replace all wiered characters in text | |
while text.find(',,') > -1: | |
text = text.replace(',,', ',null,') | |
while text.find('[,') > -1: | |
text = text.replace('[,', '[null,') | |
# recover state | |
for i, pos in enumerate(re.finditer('"', text)): | |
p = pos.start() + 1 | |
if i % 2 == 0: | |
j = int(i / 2) | |
nxt = text.find('"', p) | |
# replacing a portion of a string | |
# use slicing to extract those parts of the original string to be kept | |
text = text[:p] + states[j][1] + text[nxt:] | |
converted = json.loads(text) | |
return converted | |
def get_items(dict_object): | |
for key in dict_object: | |
yield key, dict_object[key] | |
def format_json(original): | |
try: | |
converted = json.loads(original) | |
except ValueError: | |
converted = legacy_format_json(original) | |
return converted | |
def rshift(val, n): | |
"""python port for '>>>'(right shift with padding) | |
""" | |
return (val % 0x100000000) >> n | |