aboutsummaryrefslogtreecommitdiff
path: root/qc_app/entry.py
diff options
context:
space:
mode:
Diffstat (limited to 'qc_app/entry.py')
-rw-r--r--qc_app/entry.py50
1 files changed, 24 insertions, 26 deletions
diff --git a/qc_app/entry.py b/qc_app/entry.py
index 7f67a33..c53648a 100644
--- a/qc_app/entry.py
+++ b/qc_app/entry.py
@@ -1,7 +1,5 @@
"""Entry-point module"""
import os
-import random
-import string
import mimetypes
from typing import Tuple
from zipfile import ZipFile, is_zipfile
@@ -18,24 +16,24 @@ from flask import (
entrybp = Blueprint("entry", __name__)
-def errors(request) -> Tuple[str, ...]:
- """Return a tuple of the errors found in the `request`. If no error is
+def errors(rqst) -> Tuple[str, ...]:
+ """Return a tuple of the errors found in the request `rqst`. If no error is
found, then an empty tuple is returned."""
def __filetype_error__():
return (
("Invalid file type provided.",)
- if request.form.get("filetype") not in ("average", "standard-error")
+ if rqst.form.get("filetype") not in ("average", "standard-error")
else tuple())
def __file_missing_error__():
return (
("No file was uploaded.",)
- if ("qc_text_file" not in request.files or
- request.files["qc_text_file"].filename == "")
+ if ("qc_text_file" not in rqst.files or
+ rqst.files["qc_text_file"].filename == "")
else tuple())
def __file_mimetype_error__():
- text_file = request.files["qc_text_file"]
+ text_file = rqst.files["qc_text_file"]
return (
(
("Invalid file! Expected a tab-separated-values file, or a zip "
@@ -50,26 +48,26 @@ def errors(request) -> Tuple[str, ...]:
def zip_file_errors(filepath, upload_dir) -> Tuple[str, ...]:
"""Check the uploaded zip file for errors."""
- zfile_errors = tuple()
+ zfile_errors: Tuple[str, ...] = tuple()
if is_zipfile(filepath):
- zfile = ZipFile(filepath, "r")
- infolist = zfile.infolist()
- if len(infolist) != 1:
- zfile_errors = zfile_errors + (
- ("Expected exactly one (1) member file within the uploaded zip "
- "file. Got {len(infolist)} member files."))
- if len(infolist) == 1 and infolist[0].is_dir():
- zfile_errors = zfile_errors + (
- ("Expected a member text file in the uploaded zip file. Got a "
- "directory/folder."))
-
- if len(infolist) == 1 and not infolist[0].is_dir():
- zfile.extract(infolist[0], path=upload_dir)
- mime = mimetypes.guess_type(f"{upload_dir}/{infolist[0].filename}")
- if mime[0] != "text/tab-separated-values":
+ with ZipFile(filepath, "r") as zfile:
+ infolist = zfile.infolist()
+ if len(infolist) != 1:
+ zfile_errors = zfile_errors + (
+ ("Expected exactly one (1) member file within the uploaded zip "
+ "file. Got {len(infolist)} member files."),)
+ if len(infolist) == 1 and infolist[0].is_dir():
zfile_errors = zfile_errors + (
- ("Expected the member text file in the uploaded zip file to"
- " be a tab-separated file."))
+ ("Expected a member text file in the uploaded zip file. Got a "
+ "directory/folder."),)
+
+ if len(infolist) == 1 and not infolist[0].is_dir():
+ zfile.extract(infolist[0], path=upload_dir)
+ mime = mimetypes.guess_type(f"{upload_dir}/{infolist[0].filename}")
+ if mime[0] != "text/tab-separated-values":
+ zfile_errors = zfile_errors + (
+ ("Expected the member text file in the uploaded zip file to"
+ " be a tab-separated file."),)
return zfile_errors