From fbf34ffcdba35e97bc65ef0b02c56dfcc4eb4b46 Mon Sep 17 00:00:00 2001 From: dechert Date: Thu, 17 Jun 2021 18:40:31 +0200 Subject: [PATCH] prod config for docker specific path --- README.md | 8 ++++++++ config.yml | 6 ++++++ config_parser.py | 22 ++++++++++++++++++++++ config_prod.yml | 6 ++++++ converter.py | 7 +++++-- requirements.txt | 2 ++ rest_server.py | 9 +++++++-- 7 files changed, 56 insertions(+), 4 deletions(-) create mode 100644 config.yml create mode 100644 config_parser.py create mode 100644 config_prod.yml diff --git a/README.md b/README.md index da89490..631f9d0 100644 --- a/README.md +++ b/README.md @@ -19,3 +19,11 @@ Script to run: 1. csv -> marp markdown converter 2. md -> pdf conversion using mark cli docker image +file upload based on +https://pythonise.com/series/learning-flask/flask-uploading-files + +python docker wait for container + + + + diff --git a/config.yml b/config.yml new file mode 100644 index 0000000..51d75e5 --- /dev/null +++ b/config.yml @@ -0,0 +1,6 @@ +auth: + username: admin + hashedPassword: pbkdf2:sha256:150000$gWnHgdeJ$778d54af56408b434fdd7151f4d8ea88e1ad7525d47326aa70671962e1f654a1 +prod: False +outputPath: './output' +uploadPath: './upload' diff --git a/config_parser.py b/config_parser.py new file mode 100644 index 0000000..5114ddb --- /dev/null +++ b/config_parser.py @@ -0,0 +1,22 @@ +import yaml +import os + +DEFAULT_CONFIG_FILE_NAME = "config.yml" + +if os.environ['ENV'] == 'prod': + config_file_to_load = "config_prod.yml" +else: + config_file_to_load = DEFAULT_CONFIG_FILE_NAME + +# BASE_FODLER = "/code/markdowntagebuch" +BASE_FODLER = os.path.dirname(os.path.abspath(__file__)) + +path_to_config = os.path.join(BASE_FODLER, config_file_to_load) +print("opening config file " + path_to_config) +with open(path_to_config, "r") as ymlfile: + cfg = yaml.load(ymlfile, Loader=yaml.FullLoader) + +credentials = cfg["auth"] +prod_mode = cfg["prod"] +output_path = cfg["outputPath"] +upload_path = cfg["uploadPath"] diff --git a/config_prod.yml b/config_prod.yml new file mode 100644 index 0000000..31b59b7 --- /dev/null +++ b/config_prod.yml @@ -0,0 +1,6 @@ +auth: + username: admin + hashedPassword: pbkdf2:sha256:150000$gWnHgdeJ$778d54af56408b434fdd7151f4d8ea88e1ad7525d47326aa70671962e1f654a1 +prod: True +outputPath: './csv-to-marp-converter/output' +uploadPath: './csv-to-marp-converter/upload' \ No newline at end of file diff --git a/converter.py b/converter.py index 885c789..d8e580f 100644 --- a/converter.py +++ b/converter.py @@ -9,6 +9,9 @@ import shutil NUMBER_OF_ANSWERS = 5 # BASE_FODLER = "test_data" +import config_parser +OUTPUT_FODLER = config_parser.output_path + class QuestionAndAnswers: def __init__(self, question, answerArray, category): @@ -28,7 +31,7 @@ def convert(csv_path, output_pdf=False): def write_markdown_file(csv_path): # csv_path = "quiz-example.csv" - OUTPUT_FODLER = "output" + # OUTPUT_FODLER = "output" if not os.path.exists(OUTPUT_FODLER): os.makedirs(OUTPUT_FODLER) @@ -116,7 +119,7 @@ def to_pdf(filename): current_dir = os.getcwd() print(current_dir) - OUTPUT_FODLER = "output" + # OUTPUT_FODLER = "output" output_folder_path = os.path.join(current_dir, OUTPUT_FODLER) # https://docker-py.readthedocs.io/en/stable/containers.html diff --git a/requirements.txt b/requirements.txt index 9515b95..361dc47 100644 --- a/requirements.txt +++ b/requirements.txt @@ -17,3 +17,5 @@ urllib3==1.26.5 websocket-client==1.1.0 Werkzeug==2.0.1 zipp==3.4.1 +PyYAML==5.4.1 +pywin32==301 # needed for docker error messages diff --git a/rest_server.py b/rest_server.py index d03cb66..6f73d0a 100644 --- a/rest_server.py +++ b/rest_server.py @@ -28,8 +28,12 @@ URL_BASE_PATH = "/" # check_password_hash(config_parser.credentials['hashedPassword'], password): # return username -OUTPUT_FODLER = "output" -UPLOAD_FODLER = "upload" +# OUTPUT_FODLER = "output" +# UPLOAD_FODLER = "upload" + +import config_parser + +UPLOAD_FODLER = config_parser.upload_path # @app.route(URL_BASE_PATH + 'home', methods=['GET']) # # @auth.login_required @@ -55,6 +59,7 @@ def upload_image(): if not os.path.exists(UPLOAD_FODLER): os.makedirs(UPLOAD_FODLER) + # TODO save to different path in Porduction! csv_file.save(output_file_path) # run converter