ValueError: list.remove(x): x not in list
wsgi_app
ctx = self.request_context(environ)
error: t.Optional[BaseException] = None
try:
try:
ctx.push()
response = self.full_dispatch_request() ^^^^^^^^^^^^^^^^^^^^^^^^^^^^
except Exception as e:
error = e
response = self.handle_exception(e)
except: # noqa: B001
error = sys.exc_info()[1]
full_dispatch_request
request_started.send(self)
rv = self.preprocess_request()
if rv is None:
rv = self.dispatch_request()
except Exception as e:
rv = self.handle_user_exception(e) ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
return self.finalize_request(rv)
def finalize_request(
self,
rv: t.Union[ft.ResponseReturnValue, HTTPException],
full_dispatch_request
try:
request_started.send(self)
rv = self.preprocess_request()
if rv is None:
rv = self.dispatch_request() ^^^^^^^^^^^^^^^^^^^^^^^
except Exception as e:
rv = self.handle_user_exception(e)
return self.finalize_request(rv)
def finalize_request(
dispatch_request
and req.method == "OPTIONS"
):
return self.make_default_options_response()
# otherwise dispatch to the handler for that endpoint
view_args: t.Dict[str, t.Any] = req.view_args # type: ignore[assignment]
return self.ensure_sync(self.view_functions[rule.endpoint])(**view_args) ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
def full_dispatch_request(self) -> Response:
"""Dispatches the request and on top of that performs request
pre and postprocessing as well as HTTP exception catching and
error handling.
switch_languages
def switch_languages(osm_type, osm_id):
place = Place.get_or_abort(osm_type, osm_id)
top = request.args.get("top")
if top:
return set_top_language(place, top) ^^^^^^^^^^^^^^^^^^^^^^^^^^^^
languages = place.languages()
for l in languages:
l["lang"] = get_wikidata_language(l["code"])
set_top_language
cookie_name = "language_order"
place_identifier = f"{place.osm_type}/{place.osm_id}"
cookie = read_language_order()
current_order = cookie.get(place_identifier) or [l["code"] for l in languages]
current_order.remove(top) ^^^^^^^^^^^^^^^^^^^^^^^^^
cookie[place_identifier] = [top] + current_order
flash("language order updated")
response = make_response(redirect(place.candidates_url()))
response.set_cookie(cookie_name, json.dumps(cookie), samesite="Strict")
ValueError: list.remove(x): x not in list
Error in function "set_top_language": Arguments(args=['place', 'top'], varargs=None, varkw=None)
{'cookie': {}, 'cookie_name': 'language_order', 'current_order': ['en', 'zh', 'ja', 'fr', 'ko', 'nan', 'nl', 'ru', 'de'], 'languages': [{'code': 'en', 'osm': 645, 'wikidata': 964}, {'code': 'zh', 'osm': 669, 'wikidata': 954}, {'code': 'ja', 'osm': 164, 'wikidata': 442}, {'code': 'fr', 'osm': 28, 'wikidata': 247}, {'code': 'ko', 'osm': 126, 'wikidata': 229}, {'code': 'nan', 'osm': 225, 'wikidata': 210}, {'code': 'nl', 'osm': 8, 'wikidata': 177}, {'code': 'ru', 'osm': 14, 'wikidata': 127}, {'code': 'de', 'osm': 30, 'wikidata': 111}], 'place': <matcher.place.Place object at 0x7fc27abee510>, 'place_identifier': 'relation/1293250', 'top': 'es'}