def index(request: HttpRequest) -> HttpResponse:
uploaded_file = request.FILES.get('file')
url = request.POST['repo-url'] if 'repo-url' in request.POST else None
mode = request.POST['mode'] if 'mode' in request.POST else None
if mode and uploaded_file:
data = uploaded_file.read()
text = data.decode(uploaded_file.charset or 'utf-8')
else:
text = None
output_lines = ''
reports = None
validation_output = None
probabilities = []
try:
if mode == 'train':
output_lines, reports = classifier.train(text) if text else ([], None)
elif mode == 'classify':
output_lines = classifier.classify(text) if text else None
elif mode == 'classify-single-repo':
probabilities = classifier.classify_single_repo(url.rstrip('/')) if url else []
elif mode == 'validate':
validation_output = classifier.validate(text) if text else None
except RateLimitExceededException:
output_lines = 'The available request limit was exceeded for the Github API please wait until refresh.'
context = {
'output': output_lines,
'validation_output': validation_output,
'single_repository': url,
'probabilities': probabilities,
'reports': reports,
}
return render(request, 'classification/index.html', context)
评论列表
文章目录