misc: pylint fix unused-variable (#52222)

This commit is contained in:
Lauréline Guérin 2021-03-19 22:49:33 +01:00
parent fe8b9f3d7a
commit 157f97a27a
No known key found for this signature in database
GPG Key ID: 1FAB9B9B4F93D473
46 changed files with 125 additions and 189 deletions

View File

@ -297,7 +297,7 @@ class FieldsDirectory(Directory):
)
current_page_no = 0
on_page = False
for i, field in enumerate(self.objectdef.fields):
for field in self.objectdef.fields:
if field.type == 'page':
current_page_no += 1
if str(field.id) == self.page_id:

View File

@ -316,7 +316,7 @@ class FileTypesDirectory(Directory):
def ensure_mimetype(x):
x = x.strip()
if x.startswith('.'):
mime_type, encoding = mimetypes.guess_type('foobar' + x)
mime_type = mimetypes.guess_type('foobar' + x)[0]
if mime_type:
return mime_type
return x
@ -832,7 +832,7 @@ class SettingsDirectory(QommonSettingsDirectory):
parent_theme_directory = os.path.dirname(theme_directory)
c = io.BytesIO()
z = zipfile.ZipFile(c, 'w')
for base, dirnames, filenames in os.walk(theme_directory):
for base, dummy, filenames in os.walk(theme_directory):
basetheme = base[len(parent_theme_directory) + 1 :]
for filename in filenames:
z.write(os.path.join(base, filename), os.path.join(basetheme, filename))
@ -1359,7 +1359,6 @@ class SettingsDirectory(QommonSettingsDirectory):
return r.getvalue()
def user_template(self):
users_cfg = get_cfg('users', {})
form = UserFieldsDirectory.sidebar_template_form(action='user-template')
form.get_widget('sidebar_template').set_title(_('Sidebar Template'))
form.add_submit('cancel', _('Cancel'))

View File

@ -284,7 +284,7 @@ def graphviz(workflow, url_prefix='', select=None, svg=True, include=False):
if svg:
try:
process = Popen(['dot', '-Tsvg'], stdin=PIPE, stdout=PIPE)
out, err = process.communicate(force_bytes(out))
out = process.communicate(force_bytes(out))[0]
if process.returncode != 0:
return ''
except OSError:
@ -567,7 +567,7 @@ class WorkflowStatusPage(Directory):
r += _('Use drag and drop with the handles to reorder items.')
r += htmltext('</p>')
r += htmltext('<ul id="items-list" class="biglist sortable">')
for i, item in enumerate(self.status.items):
for item in self.status.items:
r += htmltext('<li class="biglistitem" id="itemId_%s">') % item.id
if hasattr(item, str('fill_admin_form')):
r += htmltext('<a href="items/%s/">%s</a>') % (item.id, item.render_as_line())
@ -1324,7 +1324,7 @@ class GlobalActionPage(WorkflowStatusPage):
r += _('Use drag and drop with the handles to reorder items.')
r += htmltext('</p>')
r += htmltext('<ul id="items-list" class="biglist sortable">')
for i, item in enumerate(self.action.items):
for item in self.action.items:
r += htmltext('<li class="biglistitem" id="itemId_%s">') % item.id
if self.workflow.is_readonly():
r += item.render_as_line()
@ -1785,7 +1785,7 @@ class WorkflowPage(Directory):
get_response().breadcrumb.append(('inspect', _('Inspector')))
r += htmltext('<h2>%s</h2>') % _('Workflow Functions')
r += htmltext('<ul>')
for key, label in (self.workflow.roles or {}).items():
for label in (self.workflow.roles or {}).values():
r += htmltext('<li>%s</li>') % label
r += htmltext('</ul>')

View File

@ -2205,7 +2205,7 @@ class FormPage(Directory):
limit = None
if 'limit' in get_request().form:
limit = misc.get_int_or_400(get_request().form['limit'])
items, total_count = FormDefUI(self.formdef).get_listing_items(
items = FormDefUI(self.formdef).get_listing_items(
None,
selected_filter,
user=user,
@ -2215,7 +2215,7 @@ class FormPage(Directory):
anonymise=anonymise,
offset=offset,
limit=limit,
)
)[0]
if get_publisher().is_using_postgresql():
self.formdef.data_class().load_all_evolutions(items)
if get_request().form.get('full') == 'on':
@ -2264,12 +2264,10 @@ class FormPage(Directory):
criterias = self.get_criterias_from_query()
query = get_request().form.get('q')
items, total_count = FormDefUI(self.formdef).get_listing_items(
items = FormDefUI(self.formdef).get_listing_items(
fields, selected_filter, user=user, query=query, criterias=criterias
)
)[0]
# only consider first key for now
geoloc_key = list(self.formdef.geolocations.keys())[0]
return json.dumps(geojson_formdatas(items, fields=fields))
def ics(self):
@ -2318,9 +2316,9 @@ class FormPage(Directory):
if end_date_field_varname and not end_date_field_id:
raise errors.TraversalError()
formdatas, total_count = FormDefUI(formdef).get_listing_items(
formdatas = FormDefUI(formdef).get_listing_items(
fields, selected_filter, user=user, query=query, criterias=criterias
)
)[0]
cal = vobject.iCalendar()
cal.add('prodid').value = '-//Entr\'ouvert//NON SGML Publik'
@ -2559,7 +2557,7 @@ class FormPage(Directory):
r = TemplateIO(html=True)
r += htmltext('<h2>%s</h2>') % _('Resolution time')
for status, status_id in possible_status:
for dummy, status_id in possible_status:
res_time_forms = []
for filled in values:
for evo in filled.evolution or []:

View File

@ -185,7 +185,6 @@ class RootDirectory(BackofficeRootDirectory):
menu_items = self.get_menu_items()
r += htmltext('<ul class="apps">')
has_studio = self.studio.is_visible()
for menu_item in menu_items:
if not 'icon' in menu_item:
continue
@ -250,12 +249,6 @@ class RootDirectory(BackofficeRootDirectory):
return super()._q_lookup(component)
def get_menu_items(self):
if not get_request().user:
# this could happen if admin-for-all is set, or if it's the first
# user connecting.
user_roles = set()
else:
user_roles = set(get_request().user.get_roles())
menu_items = []
backoffice_url = get_publisher().get_backoffice_url()
if not backoffice_url.endswith('/'):

View File

@ -81,7 +81,7 @@ class SnapshotsDirectory(Directory):
current_date = None
snapshots = get_publisher().snapshot_class.select_object_history(self.obj)
day_snapshot = None
for i, snapshot in enumerate(snapshots):
for snapshot in snapshots:
if snapshot.timestamp.date() != current_date:
current_date = snapshot.timestamp.date()
snapshot.new_day = True

View File

@ -171,7 +171,7 @@ class BlockDef(StorableObject):
setattr(blockdef, text_attribute, misc.xml_node_text(value))
blockdef.fields = []
for i, field in enumerate(tree.find('fields')):
for field in tree.find('fields'):
try:
field_o = fields.get_field_class_by_type(field.findtext('type'))()
except KeyError:

View File

@ -23,7 +23,7 @@ class CardData(FormData):
return self._formdef
from .carddef import CardDef
type, id = self._names.split('-', 1)
id = self._names.split('-', 1)[1]
try:
self._formdef = CardDef.get_by_urlname(id)
except KeyError:

View File

@ -348,7 +348,7 @@ class CmdCheckHobos(Command):
continue
s = rfd.read()
(bfd, metadata_pathname) = tempfile.mkstemp('.metadata')
metadata_pathname = tempfile.mkstemp('.metadata')[1]
atomic_write(metadata_pathname, force_bytes(s))
from ..qommon.ident.idp import AdminIDPDir

View File

@ -2069,7 +2069,7 @@ class ItemField(WidgetField, MapOptionsMixin, ItemFieldMixin):
value=self.display_disabled_items,
advanced=not (self.display_disabled_items),
)
widget = form.add(
form.add(
StringWidget,
'initial_date_alignment',
title=_('Initial date alignment'),
@ -2112,7 +2112,7 @@ class ItemField(WidgetField, MapOptionsMixin, ItemFieldMixin):
try:
date = wcs.workflows.template_on_formdata(None, self.initial_date_alignment, autoescape=False)
except TemplateError as e:
except TemplateError:
return
try:
return misc.get_as_datetime(date)
@ -2352,14 +2352,13 @@ class ItemsField(WidgetField, ItemFieldMixin):
choices.append(option_value)
break
elif len(options[0]) == 3:
for key, option_value, key_repeat in options:
for key, option_value, dummy in options:
if str(key) == str(choice):
choices.append(option_value)
break
return ', '.join(choices)
def store_structured_value(self, data, field_id):
value = data.get(field_id)
if not self.data_source:
return
structured_options = data_sources.get_structured_items(self.data_source)
@ -2857,7 +2856,7 @@ class TableRowsField(WidgetField):
for column in self.columns:
r += htmltext('<th>%s</th>') % column
r += htmltext('</tr></thead><tbody>')
for i, row in enumerate(value):
for row in value:
r += htmltext('<tr>')
for j, column in enumerate(self.columns):
r += htmltext('<td>')
@ -3016,7 +3015,7 @@ class MapField(WidgetField, MapOptionsMixin):
def convert_value_from_str(self, value):
try:
lat, lon = [float(x) for x in value.split(';')]
dummy, dummy = [float(x) for x in value.split(';')]
except (AttributeError, ValueError):
return None
return value

View File

@ -262,7 +262,7 @@ class FormData(StorableObject):
return self._formdef
from .formdef import FormDef
type, id = self._names.split('-', 1)
id = self._names.split('-', 1)[1]
try:
self._formdef = FormDef.get_by_urlname(id)
except KeyError:
@ -493,7 +493,6 @@ class FormData(StorableObject):
self.store()
def decrease_criticality_level(self):
levels = len(self.formdef.workflow.criticality_levels or [0])
current_level = self.get_current_criticality_level()
if current_level == 0:
return
@ -973,7 +972,7 @@ class FormData(StorableObject):
if field.varname:
variables.append((_('Form'), 'form_var_' + field.varname, _('Form Field: %s') % field.label))
user_variables = get_publisher().user_class.get_substitution_variables_list(prefix='form_')
for cat, name, comment in user_variables:
for dummy, name, dummy in user_variables:
variables.append((_('Form'), name, _('Form Submitter Field')))
return variables
@ -1108,7 +1107,7 @@ class FormData(StorableObject):
def get_auto_geoloc(self):
# use proper geolocation if it exists
if self.geolocations:
for k, v in self.geolocations.items():
for v in self.geolocations.values():
if v:
return v
# fallback to 1st map field
@ -1253,7 +1252,7 @@ class FormData(StorableObject):
on_page = False
current_page_fields = []
pages = []
for i, f in enumerate(fields):
for f in fields:
if f.type == 'page':
on_page = f
current_page_fields = []

View File

@ -268,7 +268,7 @@ class FormDef(StorableObject):
if self.workflow_roles:
workflow_roles_list = self.workflow_roles.items()
for role_key, role_id in self.workflow_roles.items():
for role_id in self.workflow_roles.values():
if type(role_id) is int:
self.workflow_roles = dict([(x, str(y)) for x, y in workflow_roles_list])
changed = True
@ -635,7 +635,6 @@ class FormDef(StorableObject):
form_data=None, # a dictionary, to fill fields
transient_formdata=None,
): # a FormData
current_page = 0
on_page = page is None
for field in self.fields:
field.formdef = self
@ -1082,7 +1081,7 @@ class FormDef(StorableObject):
if formdef.url_name:
try:
obj = cls.get_on_index(formdef.url_name, 'url_name', ignore_migration=True)
cls.get_on_index(formdef.url_name, 'url_name', ignore_migration=True)
except KeyError:
pass
else:
@ -1473,11 +1472,6 @@ class FormDef(StorableObject):
if user and user.is_admin:
return True
if user:
user_roles = set(user.get_roles())
else:
user_roles = set([])
if not self.workflow_roles:
self.workflow_roles = {}
form_roles = [x for x in self.workflow_roles.values() if x]

View File

@ -49,7 +49,6 @@ class FormDefUI(object):
include_checkboxes=False,
):
partial_display = False
using_postgresql = get_publisher().is_using_postgresql()
if not items:
@ -62,8 +61,6 @@ class FormDefUI(object):
items, total_count = self.get_listing_items(
fields, selected_filter, offset, limit, query, order_by, criterias=criterias
)
if (offset > 0) or (total_count > limit > 0):
partial_display = True
if offset > total_count:
get_request().form['offset'] = '0'
@ -250,7 +247,6 @@ class FormDefUI(object):
# url_action = '/' + url_action
else:
url_action = ''
root_url = get_publisher().get_root_url()
user = get_request().user
visited_objects = get_session().get_visited_objects(exclude_user=user.id)
include_criticality_level = bool(self.formdef.workflow.criticality_levels)

View File

@ -69,7 +69,6 @@ class FileDirectory(Directory):
if component == 'thumbnail':
self.thumbnails = True
return self
upload = None
for lookup_method_name in self._lookup_methods:
lookup_method = getattr(self, lookup_method_name)
file = lookup_method(filename=component)
@ -776,12 +775,12 @@ class FormStatusPage(Directory, FormTemplateMixin):
elif field.prefill and field.prefill.get('type') == 'string':
update_prefill = bool('prefilled_%s' % field.id in get_request().form)
if update_prefill:
value, locked = field.get_prefill_value()
value = field.get_prefill_value()[0]
entry['content'] = value
elif field.prefill and field.prefill.get('type') == 'user':
update_prefill = bool(get_request().form.get('modified_field_id') == 'user')
if update_prefill:
value, locked = field.get_prefill_value(user=formdata.user)
value = field.get_prefill_value(user=formdata.user)[0]
entry['content'] = value
return json.dumps({'result': result})

View File

@ -562,14 +562,12 @@ class FormPage(Directory, FormTemplateMixin):
else:
# not a page change, reset_locked_data() will have been called
# earlier, we use that to set appropriate fields as readonly.
for field, field_key, widget, block, block_idx in self.iter_with_block_fields(
form, displayed_fields
):
for field, field_key, widget, dummy, dummy in self.iter_with_block_fields(form, displayed_fields):
if get_request().form.get('__locked_f%s' % field_key):
widget.readonly = 'readonly'
widget.attrs['readonly'] = 'readonly'
for field, field_key, widget, block, block_idx in self.iter_with_block_fields(form, displayed_fields):
for field, field_key, widget, dummy, dummy in self.iter_with_block_fields(form, displayed_fields):
if field.prefill:
# always set additional attributes as they will be used for
# "live prefill", regardless of existing data.
@ -581,9 +579,7 @@ class FormPage(Directory, FormTemplateMixin):
# pass over prefilled fields that are used as live source of item
# fields
fields_to_update = set()
for field, field_key, widget, block, block_idx in self.iter_with_block_fields(
form, displayed_fields
):
for field, field_key, widget, dummy, dummy in self.iter_with_block_fields(form, displayed_fields):
if getattr(widget, 'prefilled', False) and getattr(widget, 'live_condition_source', False):
fields_to_update.update(widget.live_condition_fields)
elif field in fields_to_update and field.type == 'item':
@ -1198,9 +1194,6 @@ class FormPage(Directory, FormTemplateMixin):
get_request().form['__locked_f%s' % field_key] = True
def previous_page(self, page_no, magictoken):
session = get_session()
form_data = session.get_by_magictoken(magictoken, {})
try:
previous_page = self.pages[int(page_no - 1)]
except IndexError:
@ -1287,7 +1280,7 @@ class FormPage(Directory, FormTemplateMixin):
return result_error('obsolete ajax form token (late check)')
try:
draft_formdata = self.save_draft(form_data, page_no)
self.save_draft(form_data, page_no)
except SubmittedDraftException:
return result_error('form has already been submitted')
@ -1303,7 +1296,6 @@ class FormPage(Directory, FormTemplateMixin):
if page_no is not None:
filled.page_no = page_no
filled.receipt_time = time.localtime()
session = get_session()
if get_request().is_in_backoffice():
# if submitting via backoffice store fhe formdata as is.
filled.store()
@ -1504,7 +1496,6 @@ class FormPage(Directory, FormTemplateMixin):
if self.has_draft_support() and not (data and data.get('is_recalled_draft')):
cancel_label = _('Discard')
form.add_submit('cancel', cancel_label, css_class='cancel')
session = get_session()
if self.has_draft_support():
form.add_submit(
'savedraft', _('Save Draft'), css_class='save-draft', attrs={'style': 'display: none'}

View File

@ -62,7 +62,7 @@ class fargo_post_json_async(object):
def __call__(self):
headers = {'Content-Type': 'application/json'}
response, status, response_payload, auth_header = http_post_request(
dummy, status, response_payload, dummy = http_post_request(
self.url, json.dumps(self.payload), headers=headers
)
return status, json_loads(response_payload)
@ -85,7 +85,7 @@ def push_document(user, filename, stream):
def afterjob(job):
status = 0
status, resp = async_post()
status = async_post()[0]
if status == 200:
get_logger().info('file %r pushed to portfolio of %r', filename, user.display_name)
else:
@ -115,7 +115,7 @@ class FargoDirectory(Directory):
# FIXME: handle error cases
url = request.form['url']
document = urlopen(request.form['url']).read()
scheme, netloc, path, qs, frag = urllib.parse.urlsplit(url)
path = urllib.parse.urlsplit(url)[2]
path = path.split('/')
name = urllib.parse.unquote(path[-1])
from .qommon.upload_storage import PicklableUpload

View File

@ -111,7 +111,7 @@ class WcsPublisher(StubWcsPublisher):
@classmethod
def configure(cls, config):
if config.has_section('extra'):
for name, directory in config.items('extra'):
for dummy, directory in config.items('extra'):
cls.register_extra_dir(directory)
if config.has_option("main", "app_dir"):
cls.APP_DIR = config.get("main", "app_dir")

View File

@ -65,7 +65,6 @@ class LoggerDirectory(Directory):
r += htmltext(' <th>%s</th>') % _('Message')
r += htmltext('<tr></thead>\n')
r += htmltext('<tbody>\n')
i = 1
userlabels = {}
for d in logger.parse_logstream(open(logfilename)):
if not d:

View File

@ -199,7 +199,7 @@ def email(
elif want_html:
# body may be reStructuredText, try converting.
try:
htmlmail, pub = docutils.core.publish_programmatically(
htmlmail = docutils.core.publish_programmatically(
source_class=docutils.io.StringInput,
source=mail_body,
source_path=None,
@ -226,7 +226,7 @@ def email(
},
config_section=None,
enable_exit_status=None,
)
)[0]
# change paragraphs so manual newlines are considered.
htmlmail = force_str(htmlmail).replace('<p>', '<p style="white-space: pre-line;">')
except:
@ -376,7 +376,7 @@ def create_smtp_server(emails_cfg, smtp_timeout=None):
get_logger().error('Failed to EHLO to SMTP server (%s)', rc_code)
raise errors.EmailError('Failed to EHLO to SMTP server (%s)' % rc_code)
if b'STARTTLS' in ehlo_answer:
rc_code, starttls_answer = s.starttls()
rc_code = s.starttls()[0]
if rc_code != 220:
get_logger().error('Failed to STARTTLS to SMTP server (%s)', rc_code)
raise errors.EmailError('Failed to STARTTLS to SMTP server (%s)' % rc_code)

View File

@ -556,7 +556,7 @@ class Template:
self._execute(section, fp, ctx)
def _cmd_for(self, args, fp, ctx):
((valref,), unused, section) = args
((valref,), dummy, section) = args
try:
list = _get_value(valref, ctx)
except UnknownReference:
@ -565,13 +565,13 @@ class Template:
raise NeedSequenceError()
refname = valref[0]
ctx.for_index[refname] = idx = [list, 0]
for item in list:
for dummy in list:
self._execute(section, fp, ctx)
idx[1] = idx[1] + 1
del ctx.for_index[refname]
def _cmd_define(self, args, fp, ctx):
((name,), unused, section) = args
((name,), dummy, section) = args
valfp = io.StringIO()
if section is not None:
self._execute(section, valfp, ctx)
@ -608,7 +608,7 @@ def _prepare_ref(refname, for_names, file_args):
pass
else:
if idx < len(file_args):
orig_refname, start, more_rest = file_args[idx]
dummy, start, more_rest = file_args[idx]
if more_rest is None:
# the include-argument was a string constant
return None, start, None
@ -685,7 +685,7 @@ def _get_value_fallback(value_ref, ctx):
try:
return _get_value(value_ref, ctx)
except UnknownReference:
(refname, start, rest) = value_ref
refname = value_ref[0]
return '[' + refname + ']'

View File

@ -285,7 +285,7 @@ class RadiobuttonsWidget(quixote.form.RadiobuttonsWidget):
def get_options(self):
options = self.options_with_attributes or self.options
for i, option in enumerate(options):
for option in options:
object, description, key = option[:3]
yield {
'value': key,
@ -680,7 +680,7 @@ class UploadedFile:
self.filename = self.base_filename
else:
t = datetime.datetime.now().isoformat()
fd, path = tempfile.mkstemp(prefix=t, suffix='.upload', dir=self.dir_path())
fd = tempfile.mkstemp(prefix=t, suffix='.upload', dir=self.dir_path())[0]
os.close(fd)
self.filename = os.path.basename(filename)
@ -829,7 +829,7 @@ class FileWithPreviewWidget(CompositeWidget):
if Image:
image_content = get_session().get_tempfile_content(self.get('token'))
try:
image = Image.open(image_content.fp)
Image.open(image_content.fp)
except Exception:
return False
@ -842,7 +842,7 @@ class FileWithPreviewWidget(CompositeWidget):
elif self.get('file'):
try:
token = get_session().add_tempfile(self.get('file'), storage=self.storage)['token']
except UploadStorageError as e:
except UploadStorageError:
self.error = _('failed to store file (system error)')
return
request.form[self.get_widget('token').get_name()] = token
@ -880,7 +880,7 @@ class FileWithPreviewWidget(CompositeWidget):
else:
filetype = getattr(self.value, 'storage_attrs', {}).get('content_type')
if not filetype:
filetype, encoding = mimetypes.guess_type(self.value.base_filename)
filetype = mimetypes.guess_type(self.value.base_filename)[0]
if not filetype:
filetype = 'application/octet-stream'
@ -1753,7 +1753,7 @@ class WidgetList(quixote.form.widget.WidgetList):
known_prefixes = {
x.split('$', 2)[1] for x in get_request().form.keys() if x.startswith(prefix)
}
for i in range(len(known_prefixes) - len(self.element_names)):
for dummy in range(len(known_prefixes) - len(self.element_names)):
self.add_element()
# Add submit to add more element widgets
@ -1791,7 +1791,7 @@ class WidgetList(quixote.form.widget.WidgetList):
self.set_error(_('Too many elements (maximum: %s)') % self.max_items)
def set_value(self, value):
for i in range(len(value) - len(self.element_names)):
for dummy in range(len(value) - len(self.element_names)):
self.add_element()
for element_name, subvalue in zip(self.element_names, value):
self.get_widget(element_name).set_value(subvalue)
@ -1948,8 +1948,8 @@ class TableWidget(CompositeWidget):
if kwargs.get('readonly'):
self.readonly = True
for i, row in enumerate(rows):
for j, column in enumerate(columns):
for i in range(len(rows)):
for j in range(len(columns)):
widget = self.add_widget(kwargs, i, j)
widget = self.get_widget('c-%s-%s' % (i, j))
if value and self.readonly:
@ -2002,9 +2002,9 @@ class TableWidget(CompositeWidget):
if self.readonly:
return
table = []
for i, row in enumerate(self.rows):
for i in range(len(self.rows)):
row = []
for j, column in enumerate(self.columns):
for j in range(len(self.columns)):
widget = self.get_widget('c-%s-%s' % (i, j))
row.append(widget.parse())
table.append(row)
@ -2014,8 +2014,8 @@ class TableWidget(CompositeWidget):
self.value = value
if not value:
return
for i, row in enumerate(self.rows):
for j, column in enumerate(self.columns):
for i in range(len(self.rows)):
for j in range(len(self.columns)):
widget = self.get_widget('c-%s-%s' % (i, j))
try:
widget.set_value(value[i][j])
@ -2193,11 +2193,11 @@ class TableListRowsWidget(WidgetListAsTable):
if self.readonly:
return
table = []
for i, row_name in enumerate(self.element_names):
for row_name in self.element_names:
row = []
row_widget = self.get_widget(row_name)
notnull = False
for j, column in enumerate(self.columns):
for j in range(len(self.columns)):
widget = row_widget.get_widget('col%s' % j)
row.append(widget.parse())
if row[-1]:
@ -2214,7 +2214,7 @@ class TableListRowsWidget(WidgetListAsTable):
self.add_element()
for i, row_name in enumerate(self.element_names):
widget_row = self.get_widget(row_name)
for j, column in enumerate(self.columns):
for j in range(len(self.columns)):
widget = widget_row.get_widget('col%s' % j)
try:
widget.set_value(value[i][j])
@ -2696,7 +2696,6 @@ class MapWidget(CompositeWidget):
def __init__(self, name, value=None, **kwargs):
CompositeWidget.__init__(self, name, value, **kwargs)
self.add(HiddenWidget, 'latlng', value=value)
widget = self.get_widget('latlng')
self.readonly = kwargs.pop('readonly', False)
self.map_attributes = {}
self.map_attributes.update(get_publisher().get_map_attributes())

View File

@ -48,7 +48,7 @@ _humandurations = (
def timewords():
'''List of words one can use to specify durations'''
result = []
for words, quantity in _humandurations:
for words, dummy in _humandurations:
for word in words:
result.append(_(word))
return result

View File

@ -224,7 +224,7 @@ class MethodAdminDirectory(Directory):
def submit(self, form):
cfg = {}
for key, title in self.CONFIG:
for key, dummy in self.CONFIG:
cfg[key] = form.get_widget(key).parse()
get_publisher().cfg['fc'] = cfg
get_publisher().write_cfg()
@ -290,7 +290,7 @@ class FCAuthMethod(AuthMethod):
def is_ok(self):
fc_cfg = get_cfg('fc', {})
for key, title in self.method_admin_directory.CONFIG:
for key, dummy in self.method_admin_directory.CONFIG:
if not fc_cfg.get(key):
return False
return True
@ -346,7 +346,7 @@ class FCAuthMethod(AuthMethod):
'client_secret': client_secret,
'code': code,
}
response, status, data, auth_header = http_post_request(
dummy, status, data, dummy = http_post_request(
self.get_token_url(),
urllib.parse.urlencode(body),
headers={
@ -363,7 +363,7 @@ class FCAuthMethod(AuthMethod):
# check id_token nonce
id_token = result['id_token']
access_token = result['access_token']
header, payload, signature = id_token.split('.')
payload = id_token.split('.')[1]
payload = json_loads(base64url_decode(force_bytes(payload)))
nonce = hashlib.sha256(force_bytes(session.id)).hexdigest()
if payload['nonce'] != nonce:
@ -373,7 +373,7 @@ class FCAuthMethod(AuthMethod):
def get_user_info(self, access_token):
logger = get_logger()
response, status, data, auth_header = http_get_page(
dummy, status, data, dummy = http_get_page(
self.get_user_info_url(),
headers={
'Authorization': 'Bearer %s' % access_token,
@ -423,7 +423,7 @@ class FCAuthMethod(AuthMethod):
try:
value = WorkflowStatusItem.compute(value, context=user_info)
except Exception as e:
except Exception:
get_publisher().notify_of_exception(sys.exc_info(), context='[FC-user-compute]')
continue
if field_varname == '__name':

View File

@ -121,7 +121,7 @@ class MethodDirectory(Directory):
options = []
value = None
providers = {}
for kidp, idp in sorted(get_cfg('idp', {}).items(), key=lambda k: k[0]):
for dummy, idp in sorted(get_cfg('idp', {}).items(), key=lambda k: k[0]):
if idp.get('hide'):
continue
p = lasso.Provider(
@ -459,10 +459,10 @@ class AdminIDPDir(Directory):
form.set_error('metadata_url', _('Failed to retrieve file'))
else:
s = rfd.read()
(bfd, metadata_pathname) = tempfile.mkstemp(str('.metadata'))
metadata_pathname = tempfile.mkstemp(str('.metadata'))[1]
atomic_write(metadata_pathname, force_bytes(s))
try:
p = lasso.Provider(lasso.PROVIDER_ROLE_IDP, metadata_pathname, None, None)
lasso.Provider(lasso.PROVIDER_ROLE_IDP, metadata_pathname, None, None)
except lasso.Error:
pass
else:
@ -486,11 +486,11 @@ class AdminIDPDir(Directory):
form.set_error('publickey_url', _('Failed to retrieve file'))
else:
s = rfd.read()
(bfd, publickey_pathname) = tempfile.mkstemp(str('.publickey'))
publickey_pathname = tempfile.mkstemp(str('.publickey'))[1]
atomic_write(publickey_pathname, force_bytes(s))
try:
p = lasso.Provider(
lasso.Provider(
lasso.PROVIDER_ROLE_IDP, metadata_pathname, publickey_pathname, None
)
except lasso.Error:
@ -509,7 +509,7 @@ class AdminIDPDir(Directory):
pubkey = misc.get_abs_path(get_cfg('sp')['publickey'])
try:
p = lasso.Provider(lasso.PROVIDER_ROLE_IDP, metadata_pathname, pubkey, None)
lasso.Provider(lasso.PROVIDER_ROLE_IDP, metadata_pathname, pubkey, None)
except lasso.Error:
# this was an error in the metadata file itself
form.get_widget('metadata_url').set_error(_('File looks like a bad metadata file'))
@ -573,7 +573,6 @@ class AdminIDPDir(Directory):
key_provider_id = new_key_provider_id
dir = get_publisher().app_dir
metadata_fn = 'idp-%s-metadata.xml' % key_provider_id
publickey_fn = 'idp-%s-publickey.pem' % key_provider_id
if old_metadata_fn and os.path.exists(misc.get_abs_path(old_metadata_fn)):
@ -731,22 +730,17 @@ class AdminIDPUI(Directory):
new_key_provider_id = misc.get_provider_key(provider_id)
key_provider_id = self.idpk
old_metadata_fn = None
old_publickey_fn = None
old_cacertchain_fn = None
old_dict = {}
if key_provider_id and new_key_provider_id != key_provider_id:
# provider id changed, remove old files
cfg_idp[new_key_provider_id] = cfg_idp[key_provider_id]
old_metadata_fn = 'idp-%s-metadata.xml' % key_provider_id
old_publickey_fn = 'idp-%s-publickey.pem' % key_provider_id
old_cacertchain_fn = 'idp-%s-cacertchain.pem' % key_provider_id
old_dict = cfg_idp[key_provider_id]
del cfg_idp[key_provider_id]
key_provider_id = new_key_provider_id
dir = get_publisher().app_dir
metadata_fn = 'idp-%s-metadata.xml' % key_provider_id
publickey_fn = 'idp-%s-publickey.pem' % key_provider_id
cacertchain_fn = 'idp-%s-cacertchain.pem' % key_provider_id
@ -778,7 +772,7 @@ class AdminIDPUI(Directory):
if 'cacertchain' in lp and os.path.exists(misc.get_abs_path(lp['cacertchain'])):
cacertchain_fn = misc.get_abs_path(lp['cacertchain'])
try:
p = lasso.Provider(
lasso.Provider(
lasso.PROVIDER_ROLE_IDP, misc.get_abs_path(lp['metadata']), publickey_fn, cacertchain_fn
)
except lasso.Error:
@ -789,7 +783,7 @@ class AdminIDPUI(Directory):
else:
return (None, template.error_page(_('Bad metadata or missing public key')))
try:
p = misc.get_provider(key_provider_id)
misc.get_provider(key_provider_id)
except (TypeError, KeyError):
del cfg_idp[key_provider_id]
if metadata:
@ -1071,8 +1065,6 @@ class MethodAdminDirectory(Directory):
encryption_pem_key = get_key('encryption_publickey')
private_encryption_pem_key = get_key('encryption_privatekey')
saml2 = bool('saml2_providerid' in cfg_sp)
new_common_domain_getter_url = cfg_sp.get('common_domain_getter_url')
if new_common_domain_getter_url != old_common_domain_getter_url:
old_domain = None

View File

@ -64,7 +64,7 @@ class Command(BaseCommand):
continue
real_prefix = prefix.replace('_', '/') # xstatic hack
dst_base = os.path.join(static_dir, real_prefix)
for basedir, dirnames, filenames in os.walk(directory):
for basedir, dummy, filenames in os.walk(directory):
for filename in filenames:
dst_path = os.path.join(dst_base, basedir[len(directory) + 1 :])
dst_filename = os.path.join(dst_path, filename)

View File

@ -97,7 +97,7 @@ def get_lasso_server():
if encryption_privatekey and os.path.exists(encryption_privatekey):
try:
server.setEncryptionPrivateKey(encryption_privatekey)
except lasso.Error as error:
except lasso.Error:
get_logger().warning('Failed to set encryption private key')
for klp, idp in sorted(get_cfg('idp', {}).items(), key=lambda k: k[0]):
@ -392,9 +392,7 @@ def _http_request(
def urlopen(url, data=None):
response, status, data, auth_header = _http_request(
url, 'GET' if data is None else 'POST', body=data, raise_on_http_errors=True
)
data = _http_request(url, 'GET' if data is None else 'POST', body=data, raise_on_http_errors=True)[2]
return io.BytesIO(data)

View File

@ -183,7 +183,6 @@ class QommonPublisher(Publisher, object):
if not self.config.display_exceptions and exc.private_msg:
exc.private_msg = None # hide it
request = get_request()
original_response = request.response
request.response = HTTPResponse(status=exc.status_code)
if exc.status_code == 401:
# include WWW-Authenticate header
@ -897,8 +896,6 @@ class QommonPublisher(Publisher, object):
def get_substitution_variables(self):
from wcs.variables import LazyDateObject
from . import misc
d = {
'site_name': get_cfg('misc', {}).get('sitename', None),
'site_theme': get_cfg('branding', {}).get('theme', self.default_theme),

View File

@ -60,7 +60,7 @@ def does_idp_authentication():
def soap_call(url, msg, client_cert=None):
try:
response, status, data, auth_header = misc.http_post_request(
dummy, status, data, dummy = misc.http_post_request(
url, msg, headers={'Content-Type': 'text/xml'}, cert_file=client_cert
)
except errors.ConnectionError as err:
@ -293,7 +293,7 @@ class Saml2Directory(Directory):
!= get_cfg('sp', {}).get('saml2_base_url') + get_request().get_url()[last_slash:]
):
return error_page('SubjectConfirmation Recipient Mismatch')
except Exception as e:
except Exception:
get_publisher().notify_of_exception(sys.exc_info(), context='[SAML]')
return error_page('Error checking SubjectConfirmation Recipient')
@ -309,7 +309,7 @@ class Saml2Directory(Directory):
try:
if assertion.subject.subjectConfirmation.method != 'urn:oasis:names:tc:SAML:2.0:cm:bearer':
return error_page('Unknown SubjectConfirmation Method')
except Exception as e:
except Exception:
return error_page('Error checking SubjectConfirmation Method')
try:
@ -320,7 +320,7 @@ class Saml2Directory(Directory):
audience_ok = True
if not audience_ok:
return error_page('Incorrect AudienceRestriction')
except Exception as e:
except Exception:
return error_page('Error checking AudienceRestriction')
try:
@ -331,7 +331,7 @@ class Saml2Directory(Directory):
return error_page('Assertion received too early')
if not_on_or_after and current_time > not_on_or_after:
return error_page('Assertion expired')
except Exception as e:
except Exception:
get_publisher().notify_of_exception(sys.exc_info(), context='[SAML]')
return error_page('Error checking Assertion Time')
@ -372,7 +372,6 @@ class Saml2Directory(Directory):
def continue_to_after_url(self):
request = get_request()
relay_state = request.form.get('RelayState', None)
session = get_session()
response = get_response()
if relay_state == 'backoffice':
after_url = get_publisher().get_backoffice_url()
@ -666,7 +665,7 @@ class Saml2Directory(Directory):
get_logger().warning('SOAP Endpoint got message without content-type')
raise SOAPException()
ctype, ctype_params = parse_header(ctype)
ctype = parse_header(ctype)[0]
if ctype not in ('text/xml', 'application/vnd.paos+xml'):
get_logger().warning('SOAP Endpoint got message with wrong content-type (%s)' % ctype)
raise SOAPException()
@ -684,7 +683,6 @@ class Saml2Directory(Directory):
# its browser configured so that cookies are not sent for
# remote queries and IdP is using image-based SLO.
# so we look up a session with the appropriate name identifier
name_identifier = nameid.content
sessions = get_session_manager().get_sessions_for_saml(nameid.content, session_indexes)
session_manager = get_session_manager()
for session in sessions:
@ -693,7 +691,7 @@ class Saml2Directory(Directory):
session.id = None
try:
del session_manager[id]
except KeyError as e:
except KeyError:
pass
def singleLogoutPOST(self):

View File

@ -36,7 +36,7 @@ class PasserelleSMS(object):
'to': destinations,
}
response, status, data = call_webservice(self.url, method='POST', post_data=payload)
data = call_webservice(self.url, method='POST', post_data=payload)[2]
get_logger().debug('sms %r sent using passerelle to %r, result: %r', text, destinations, data)

View File

@ -508,14 +508,14 @@ class StorableObject(object):
if ignore_errors:
return None
raise KeyError()
except ImportError as e:
except ImportError:
if ignore_errors:
return None
raise KeyError()
except EOFError as e:
except EOFError:
# maybe it's being written to, loop for a while to see
current_position = fd.tell()
for i in range(10):
for dummy in range(10):
time.sleep(0.01)
if current_position != os.stat(filename).st_size:
return cls.get_filename(

View File

@ -108,7 +108,6 @@ def get_theme_dict(theme_xml):
tree = ET.parse(theme_xml).getroot()
except: # parse error
return None
publisher = get_publisher()
name = force_str(tree.attrib['name'])
version = force_str(tree.attrib.get('version') or '')
label = force_str(tree.findtext('label') or '')
@ -202,7 +201,6 @@ def error_page(error_message, error_title=None, exception=None, continue_to=None
if not error_title:
error_title = _('Error')
if exception:
root_url = get_publisher().get_root_url()
get_response().add_javascript(['jquery.js', 'exception.js'])
kwargs = {'title': error_title}

View File

@ -433,14 +433,10 @@ def standard_text(text_id):
@register.simple_tag(takes_context=True)
def action_button(context, action_id, label, delay=3):
from wcs.formdef import FormDef
formdata_id = context.get('form_number_raw')
formdef_urlname = context.get('form_slug')
if not (formdef_urlname and formdata_id):
return ''
formdef = FormDef.get_by_urlname(formdef_urlname)
formdata = formdef.data_class().get(formdata_id, ignore_errors=True)
token = tokens.Token(expiration_delay=delay * 86400, size=64)
token.type = 'action'
token.context = {

View File

@ -186,14 +186,14 @@ class RemoteOpaqueUploadStorage(object):
try:
from wcs.wscalls import call_webservice
response, status, data = call_webservice(self.ws, method='POST', post_data=post_data)
dummy, status, data = call_webservice(self.ws, method='POST', post_data=post_data)
except ConnectionError as e:
raise UploadStorageError('remote storage connection error (%r)' % e)
if status not in (200, 201):
raise UploadStorageError('remote storage returned status %s' % status)
try:
ws_result = json_loads(data)
except (ValueError, TypeError) as e:
except (ValueError, TypeError):
raise UploadStorageError('remote storage returned invalid JSON')
if not isinstance(ws_result, dict):
raise UploadStorageError('remote storage returned non-dict JSON')

View File

@ -332,7 +332,7 @@ class RootDirectory(Directory):
def tmp_upload(self):
results = []
storage = get_request().form.get('storage')
for k, v in get_request().form.items():
for v in get_request().form.values():
if hasattr(v, 'fp'):
try:
tempfile = get_session().add_tempfile(v, storage=storage)
@ -430,7 +430,7 @@ class RootDirectory(Directory):
else:
# redirect to category if there's not a formdef with same slug
try:
formdef = FormDef.get_by_urlname(component)
FormDef.get_by_urlname(component)
except KeyError:
return root.RootDirectory(category)

View File

@ -1449,7 +1449,7 @@ class SqlMixin(object):
@classmethod
@guard_postgres
def get_ids_from_query(cls, query):
conn, cur = get_connection_and_cursor()
cur = get_connection_and_cursor()[1]
sql_statement = (
'''SELECT id FROM %s
@ -1472,7 +1472,7 @@ class SqlMixin(object):
return None
else:
raise KeyError()
conn, cur = get_connection_and_cursor()
cur = get_connection_and_cursor()[1]
sql_statement = '''SELECT %s
FROM %s
@ -1640,7 +1640,7 @@ class SqlMixin(object):
objects = cls.select_iterator(
clause=clause, order_by=order_by, ignore_errors=ignore_errors, limit=limit, offset=offset
)
where_clauses, parameters, func_clause = parse_clause(clause)
func_clause = parse_clause(clause)[2]
if func_clause and (limit or offset):
objects = _take(objects, limit, offset)
if iterator:
@ -1914,7 +1914,7 @@ class SqlDataMixin(SqlMixin):
row = cur.fetchone()
if row is None:
break
_sql_id, who, status, time, last_jump_datetime, comment, parts, formdata_id = tuple(row[:8])
formdata_id = tuple(row[:8])[7]
formdata = object_dict.get(formdata_id)
if not formdata:
continue
@ -2166,7 +2166,7 @@ class SqlDataMixin(SqlMixin):
return None
else:
raise KeyError()
conn, cur = get_connection_and_cursor()
cur = get_connection_and_cursor()[1]
fields = cls.get_data_fields()
@ -2197,7 +2197,7 @@ class SqlDataMixin(SqlMixin):
@classmethod
@guard_postgres
def get_ids_with_indexed_value(cls, index, value, auto_fallback=True, clause=None):
conn, cur = get_connection_and_cursor()
cur = get_connection_and_cursor()[1]
where_clauses, parameters, func_clause = parse_clause(clause)
assert not func_clause
@ -2417,7 +2417,7 @@ class SqlUser(SqlMixin, wcs.users.User):
o.verified_fields,
o.lasso_dump,
o.last_seen,
ascii_name,
ascii_name, # XXX what's this ? pylint: disable=W0612
o.deleted_timestamp,
o.is_active,
) = [str_encode(x) for x in tuple(row[:13])]
@ -3117,7 +3117,7 @@ def get_period_query(
clause.append(LessOrEqual('receipt_time', period_end))
else:
clause.append(Less('receipt_time', period_end))
where_clauses, params, func_clause = parse_clause(clause)
where_clauses, params, dummy = parse_clause(clause)
parameters.update(params)
statement = ' FROM %s ' % table_name
statement += ' WHERE ' + ' AND '.join(where_clauses)
@ -3132,7 +3132,7 @@ def get_actionable_counts(user_roles):
Intersects('actions_roles_array', user_roles),
Null('anonymised'),
]
where_clauses, parameters, func_clause = parse_clause(criterias)
where_clauses, parameters, dummy = parse_clause(criterias)
statement = '''SELECT formdef_id, COUNT(*)
FROM wcs_all_forms
WHERE %s
@ -3153,7 +3153,7 @@ def get_total_counts(user_roles):
Intersects('concerned_roles_array', user_roles),
Null('anonymised'),
]
where_clauses, parameters, func_clause = parse_clause(criterias)
where_clauses, parameters, dummy = parse_clause(criterias)
statement = '''SELECT formdef_id, COUNT(*)
FROM wcs_all_forms
WHERE %s

View File

@ -571,7 +571,7 @@ class CreateFormdataWorkflowStatusItem(WorkflowStatusItem):
def _set_value(self, formdata, field, value):
if field.convert_value_from_anything:
old_value = value # noqa: F841, copy value for debug
dummy = value # noqa: F841, copy value for debug
value = field.convert_value_from_anything(value)
field.set_value(formdata.data, value)

View File

@ -75,9 +75,6 @@ class ModifyCriticalityWorkflowStatusItem(WorkflowStatusItem):
)
def perform(self, formdata):
levels = formdata.formdef.workflow.criticality_levels
current_level = formdata.criticality_level or 0
new_level = current_level
if self.mode == MODE_INC:
formdata.increase_criticality_level()
elif self.mode == MODE_DEC:

View File

@ -98,7 +98,7 @@ try:
break
infile.write(chunk)
infile.flush()
for i in range(3):
for dummy in range(3):
lo_output = subprocess.run(
[
'libreoffice',

View File

@ -71,7 +71,7 @@ class ExternalWorkflowGlobalAction(WorkflowStatusItem):
def get_trigger(self, workflow):
try:
trigger_type, trigger_id = self.trigger_id.split(':', 1)
trigger_id = self.trigger_id.split(':', 1)[1]
except ValueError:
return
for trigger in self.get_workflow_webservice_triggers(workflow):

View File

@ -164,7 +164,7 @@ class GeolocateWorkflowStatusItem(WorkflowStatusItem):
url += '&accept-language=%s' % (get_publisher().get_site_language() or 'en')
try:
response, status, data, auth_header = http_get_page(url, raise_on_http_errors=True)
dummy, dummy, data, dummy = http_get_page(url, raise_on_http_errors=True)
except ConnectionError as e:
get_publisher().record_error(
_('error calling geocoding service [%s]') % str(e), formdata=formdata, exception=e

View File

@ -215,7 +215,7 @@ class UpdateUserProfileStatusItem(WorkflowStatusItem):
payload = json.dumps(payload, cls=JSONEncoder)
def after_job(job=None):
response, status, data, auth_header = http_patch_request(
dummy, status, dummy, dummy = http_patch_request(
url, payload, headers={'Content-type': 'application/json'}
)
if status != 200:

View File

@ -121,7 +121,7 @@ class RegisterCommenterWorkflowStatusItem(WorkflowStatusItem):
try:
# useless but required to restore upload.fp from serialized state,
# needed by AttachmentEvolutionPart.from_upload()
fp = upload.get_file_pointer()
upload.get_file_pointer()
formdata.evolution[-1].add_part(AttachmentEvolutionPart.from_upload(upload))
except:
get_publisher().notify_of_exception(sys.exc_info(), context='[comment/attachments]')

View File

@ -119,7 +119,7 @@ class AddRoleWorkflowStatusItem(WorkflowStatusItem):
def after_job(job=None):
signed_url = sign_ws_url(url)
response, status, data, auth_header = http_post_request(signed_url)
dummy, status, dummy, dummy = http_post_request(signed_url)
if status != 201:
get_logger().error('failed to add role %r to user %r', role, user)
@ -189,7 +189,7 @@ class RemoveRoleWorkflowStatusItem(WorkflowStatusItem):
def after_job(job=None):
signed_url = sign_ws_url(url)
response, status, data, auth_header = http_delete_request(signed_url)
response, status, data, auth_header = http_delete_request(signed_url) # pylint: disable=W0612
if status != 200:
get_logger().error('failed to remove role %r from user %r', role, user)

View File

@ -411,7 +411,7 @@ class WebserviceCallStatusItem(WorkflowStatusItem):
else: # on error, record data if it is JSON
try:
d = json_loads(data)
except (ValueError, TypeError) as e:
except (ValueError, TypeError):
pass
else:
workflow_data['%s_error_response' % self.varname] = d
@ -449,7 +449,7 @@ class WebserviceCallStatusItem(WorkflowStatusItem):
if self.response_type == 'json':
try:
d = json_loads(force_text(data))
except (ValueError, TypeError) as e:
except (ValueError, TypeError):
formdata.update_workflow_data(workflow_data)
formdata.store()
self.action_on_error(
@ -489,7 +489,7 @@ class WebserviceCallStatusItem(WorkflowStatusItem):
summary = '%s %s' % (response.status_code, response.reason)
try:
raise Exception(summary)
except Exception as e:
except Exception:
exc_info = sys.exc_info()
if self.notify_on_errors or self.record_on_errors:
@ -513,7 +513,7 @@ class WebserviceCallStatusItem(WorkflowStatusItem):
'reference to invalid status %r in workflow %r, status %r'
% (action, self.parent.parent.name, self.parent.name)
)
except IndexError as e:
except IndexError:
get_publisher().notify_of_exception(sys.exc_info(), context='[WSCALL]')
raise AbortActionException()

View File

@ -1325,8 +1325,8 @@ class WorkflowGlobalActionTimeoutTrigger(WorkflowGlobalActionTrigger):
except:
# get the variables in the locals() namespace so they are
# displayed within the trace.
expression = self.anchor_expression
global_variables = get_publisher().get_global_eval_dict()
expression = self.anchor_expression # noqa pylint: disable=W0612
global_variables = get_publisher().get_global_eval_dict() # noqa pylint: disable=W0612
get_publisher().notify_of_exception(sys.exc_info(), context='[TIMEOUTS]')
# convert anchor_date to datetime.datetime()
@ -1408,7 +1408,6 @@ class WorkflowGlobalActionTimeoutTrigger(WorkflowGlobalActionTrigger):
criterias.append(Contains('status', not_endpoint_status_ids))
for formdef in workflow.formdefs():
open_formdata_ids = []
data_class = formdef.data_class()
for formdata in data_class.select(criterias, iterator=True):
get_publisher().substitutions.reset()
@ -2931,8 +2930,6 @@ class SendmailWorkflowStatusItem(WorkflowStatusItem):
)
return
users_cfg = get_cfg('users', {})
# this works around the fact that parametric workflows only support
# string values, so if we get set a string, we convert it here to an
# array.

View File

@ -96,7 +96,6 @@ def call_webservice(
qs_data['orig'] = orig
if qs_data: # merge qs_data into url
publisher = get_publisher()
parsed = urllib.parse.urlparse(url)
qs = list(urllib.parse.parse_qsl(parsed.query))
for key, value in qs_data.items():
@ -153,13 +152,11 @@ def call_webservice(
if payload:
headers['Content-type'] = 'application/json'
payload = json.dumps(payload, cls=JSONEncoder)
response, status, data, auth_header = misc._http_request(
url, method=method, body=payload, headers=headers
)
response, status, data, dummy = misc._http_request(url, method=method, body=payload, headers=headers)
elif method == 'DELETE':
response, status, data, auth_header = misc._http_request(url, method='DELETE', headers=headers)
response, status, data, dummy = misc._http_request(url, method='DELETE', headers=headers)
else:
response, status, data, auth_header = misc.http_get_page(url, headers=headers)
response, status, data, dummy = misc.http_get_page(url, headers=headers)
request = get_request()
if cache is True and request and hasattr(request, 'wscalls_cache'):
request.wscalls_cache[unsigned_url] = (status, data)
@ -271,12 +268,12 @@ class NamedWsCall(XmlStorableObject):
return {'webservice': WsCallsSubstitutionProxy()}
def call(self):
(response, status, data) = call_webservice(
data = call_webservice(
cache=True,
notify_on_errors=self.notify_on_errors,
record_on_errors=self.record_on_errors,
**self.request,
)
)[2]
return json_loads(data)