* Python code cleanup by the cleanup-python-code Jenkins job. This pull request was generated by the cleanup-python-code Jenkins job, which ran ``` cd lms/djangoapps/dashboard; find . -type f -name '*.py' | while read fname; do sed -i 's/ # lint-amnesty, pylint: disable=super-with-arguments//; s/ # lint-amnesty, pylint: disable=import-error, wrong-import-order//; s/ # lint-amnesty, pylint: disable=wrong-import-order//' "$fname"; done; find . -type f -name '*.py' | while read fname; do pyupgrade --exit-zero-even-if-changed --py3-plus --py36-plus --py38-plus "$fname"; done; isort --recursive . ``` The following packages were installed: `pyupgrade,isort` * feedback done Co-authored-by: Zulqarnain <muhammad.zulqarnain@arbisoft.com>
59 lines
1.8 KiB
Python
59 lines
1.8 KiB
Python
"""Views for debugging and diagnostics"""
|
|
|
|
|
|
import pprint
|
|
import traceback
|
|
|
|
from codejail.safe_exec import safe_exec
|
|
from django.contrib.auth.decorators import login_required
|
|
from django.http import Http404, HttpResponse
|
|
from django.utils.html import escape
|
|
from django.views.decorators.csrf import ensure_csrf_cookie
|
|
|
|
from common.djangoapps.edxmako.shortcuts import render_to_response
|
|
from openedx.core.djangolib.markup import HTML
|
|
|
|
|
|
@login_required
|
|
@ensure_csrf_cookie
|
|
def run_python(request):
|
|
"""
|
|
A page to allow testing the Python sandbox on a production server.
|
|
|
|
Runs in the override context "debug_run_python", so resource limits with come first from:
|
|
CODE_JAIL['limit_overrides']['debug_run_python']
|
|
and then from:
|
|
CODE_JAIL['limits']
|
|
"""
|
|
if not request.user.is_staff:
|
|
raise Http404
|
|
c = {}
|
|
c['code'] = ''
|
|
c['results'] = None
|
|
if request.method == 'POST':
|
|
py_code = c['code'] = request.POST.get('code')
|
|
g = {}
|
|
try:
|
|
safe_exec(
|
|
code=py_code,
|
|
globals_dict=g,
|
|
slug="debug_run_python",
|
|
limit_overrides_context="debug_run_python",
|
|
)
|
|
except Exception: # pylint: disable=broad-except
|
|
c['results'] = traceback.format_exc()
|
|
else:
|
|
c['results'] = pprint.pformat(g)
|
|
return render_to_response("debug/run_python_form.html", c)
|
|
|
|
|
|
@login_required
|
|
def show_parameters(request):
|
|
"""A page that shows what parameters were on the URL and post."""
|
|
html_list = []
|
|
for name, value in sorted(request.GET.items()):
|
|
html_list.append(escape(f"GET {name}: {value!r}"))
|
|
for name, value in sorted(request.POST.items()):
|
|
html_list.append(escape(f"POST {name}: {value!r}"))
|
|
return HttpResponse("\n".join(HTML("<p>{}</p>").format(h) for h in html_list))
|