From 4e52d1bcc99d7d266e7c4b38272dd1a9ae539e8e Mon Sep 17 00:00:00 2001 From: Alan Orth Date: Sun, 14 Mar 2021 10:06:39 +0200 Subject: [PATCH] Add configurable requests cache directory As I expected, on Google App Engine we can't write the cache file to the current working directory. I modified csv-metadata-quality CLI to check for the REQUESTS_CACHE_DIR environment variable so we don't really have to do anything different other than setting the variable. --- main.py | 10 ++++++++++ poetry.lock | 4 ++-- pyproject.toml | 2 +- 3 files changed, 13 insertions(+), 3 deletions(-) diff --git a/main.py b/main.py index 8bf8ff1..ca1ef2d 100644 --- a/main.py +++ b/main.py @@ -68,12 +68,22 @@ def process(): if "experimental" in request.form: args.append("-e") + # Set cache dir to our upload path so we can tell csv-metadata-quality + # to store its requests-cache database there instead of in the current + # working directory (we can only write to /tmp on Google App Engine). + # Also, make sure to keep our PATH! + env = { + "REQUESTS_CACHE_DIR": app.config["UPLOAD_PATH"], + "PATH": os.environ["PATH"], + } + # run subprocess and capture output as UTF-8 so we get a string instead of # bytes for ansi2html results = subprocess.run( ["csv-metadata-quality"] + args, capture_output=True, encoding="UTF-8", + env=env, ) # convert the output to HTML using ansi2html conv = Ansi2HTMLConverter() diff --git a/poetry.lock b/poetry.lock index 356418a..d6cfa1e 100644 --- a/poetry.lock +++ b/poetry.lock @@ -107,8 +107,8 @@ xlrd = "^1.2.0" [package.source] type = "git" url = "https://github.com/ilri/csv-metadata-quality.git" -reference = "1008acf35e2753d9194755dd186c5428a0c520e6" -resolved_reference = "1008acf35e2753d9194755dd186c5428a0c520e6" +reference = "0e9176f0a6f694e85d38bf15c6b80708402bfa8b" +resolved_reference = "0e9176f0a6f694e85d38bf15c6b80708402bfa8b" [[package]] name = "decorator" diff --git a/pyproject.toml b/pyproject.toml index 236163f..f02d888 100644 --- a/pyproject.toml +++ b/pyproject.toml @@ -7,7 +7,7 @@ license = "AGPL-3.0-only" [tool.poetry.dependencies] python = "^3.7.1" -csv-metadata-quality = {git = "https://github.com/ilri/csv-metadata-quality.git", rev = "1008acf35e2753d9194755dd186c5428a0c520e6"} +csv-metadata-quality = {git = "https://github.com/ilri/csv-metadata-quality.git", rev = "0e9176f0a6f694e85d38bf15c6b80708402bfa8b"} Flask = "^1.1.2" ansi2html = "^1.6.0" gunicorn = "^20.0.4"