about summary refs log tree commit diff
diff options
context:
space:
mode:
authorBonfaceKilz2020-12-01 23:36:10 +0300
committerBonfaceKilz2020-12-01 23:36:10 +0300
commite75056aa81c9d66379a3b4823ded69f0781c5374 (patch)
tree55393356a1b5661c656311f3378ac4173e14d1ba
parent6a2fb6cced98d79cd1ccbe6490a59393486fdf92 (diff)
downloadgenenetwork2-e75056aa81c9d66379a3b4823ded69f0781c5374.tar.gz
Fetch file from systempath when loading "/environments" route
* wqflask/wqflask/markdown_routes.py:
(render_markdown): Extend function to check whether "file_name" is to
be fetched remotely or locally in syspath.
(environments): Extend route to fetch from syspath if dependency file
exists there; otherwise fetch remotely from Github as a fallback.
-rw-r--r--wqflask/wqflask/markdown_routes.py29
1 files changed, 26 insertions, 3 deletions
diff --git a/wqflask/wqflask/markdown_routes.py b/wqflask/wqflask/markdown_routes.py
index e43b9860..59a465e7 100644
--- a/wqflask/wqflask/markdown_routes.py
+++ b/wqflask/wqflask/markdown_routes.py
@@ -18,16 +18,25 @@ policies_blueprint = Blueprint("policies_blueprint", __name__)
 facilities_blueprint = Blueprint("facilities_blueprint", __name__)
 
 
-def render_markdown(file_name):
+def render_markdown(file_name, is_remote_file=True):
     """Try to fetch the file name from Github and if that fails, try to
 look for it inside the file system """
     github_url = ("https://raw.githubusercontent.com/"
                   "genenetwork/gn-docs/master/")
 
+    if not is_remote_file:
+        text = ""
+        with open(file_name, "r", encoding="utf-8") as input_file:
+            text = input_file.read()
+        return markdown.markdown(text,
+                                 extensions=['tables'])
+
     md_content = requests.get(f"{github_url}{file_name}")
+
     if md_content.status_code == 200:
+        return markdown.markdown(md_content.content.decode("utf-8"),
+                                 extensions=['tables'])
 
-        return markdown.markdown(md_content.content.decode("utf-8"), extensions=['tables'])
     return (f"\nContent for {file_name} not available. "
             "Please check "
             "(here to see where content exists)"
@@ -59,7 +68,21 @@ def references():
 
 @environments_blueprint.route("/")
 def environments():
-    return render_template("environment.html", rendered_markdown=render_markdown("general/environments/environments.md")), 200
+    md_file = get_file_from_python_search_path("wqflask/DEPENDENCIES.md")
+    if md_file is not None:
+        return (
+            render_template("environment.html",
+                            rendered_markdown=render_markdown(
+                                md_file,
+                                is_remote_file=False)),
+            200
+        )
+    # Fallback: Fetch file from server
+    return (render_template(
+        "environment.html",
+        rendered_markdown=render_markdown(
+            "general/environments/environments.md")),
+            200)
 
 
 @links_blueprint.route("/")