From d7cdc7dd49bb3eeaac53286af1f8aa91e72226eb Mon Sep 17 00:00:00 2001 From: Elijah Carlson Date: Mon, 20 Jul 2020 15:42:29 -0500 Subject: [PATCH 1/2] Fix printing None and possible delayed output --- logger.py | 3 ++- 1 file changed, 2 insertions(+), 1 deletion(-) diff --git a/logger.py b/logger.py index 31da854..84c3fc2 100644 --- a/logger.py +++ b/logger.py @@ -19,4 +19,5 @@ def log(level, process, subProcess, activity, entry): formattedEntry = "[" + time.strftime("%Y-%m-%d %H:%M:%S", time.localtime(time.time())) + "][" + process + "] " + entry + "\n" mmLogFileObject.write(formattedEntry) mmLogFileObject.flush() - print(formattedEntry, sys.stdout.flush()) + print(formattedEntry, end="") + sys.stdout.flush() From f8f5668b54aae9bdda6179b68b73dfb2f35152ef Mon Sep 17 00:00:00 2001 From: Elijah Carlson Date: Mon, 20 Jul 2020 18:13:59 -0500 Subject: [PATCH 2/2] Add setup script for Windows --- mistake.ico | Bin 0 -> 32204 bytes setup-win.py | 28 ++++++++++++++++++++++++++++ 2 files changed, 28 insertions(+) create mode 100644 mistake.ico create mode 100644 setup-win.py diff --git a/mistake.ico b/mistake.ico new file mode 100644 index 0000000000000000000000000000000000000000..a928f9fd3f6fb403529c706758ffd667beef5adf GIT binary patch literal 32204 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 literal 0 HcmV?d00001 diff --git a/setup-win.py b/setup-win.py new file mode 100644 index 0000000..f4c932e --- /dev/null +++ b/setup-win.py @@ -0,0 +1,28 @@ +import os +from cx_Freeze import setup, Executable + +build_exe_options = {"build_exe": ".\\build\\"} + +recipesAtHome = Executable(script="start.py", targetName="RecipesAtHome.exe", + icon='mistake.ico') + +setup(name = "Recipes@Home", + description = "Program to find good recipe routes for the 100% TAS", + options = {"build_exe": build_exe_options}, + executables = [recipesAtHome]) + +directories = ["build/itemSorts", "build/results"] + +extra_files = ["config.txt", "inventory.txt", "README.md", "recipes-JP.txt", + "itemSorts/alphabetic_sort-JP.txt", + "itemSorts/type_sort-JP.txt", "results/readme.md"] + +for directory in directories: + if not os.path.isdir(directory): + os.mkdir(directory) + +for infile in extra_files: + infile_contents = open(infile, "r").read() + outfile = infile[:-2] + "txt" if infile.endswith("md") else infile + with open("build/" + outfile, "w", newline="\r\n") as f: + f.write(infile_contents)