From e847ccf9ee03986459cfa59a86fbb42a8d28821b Mon Sep 17 00:00:00 2001 From: Matheus Sena Vasconcelos Date: Sat, 25 Sep 2021 09:41:54 -0300 Subject: [PATCH] feat: create makefile and fix basedir setting --- Makefile | 12 ++++++++++++ icon.ico | Bin 0 -> 51732 bytes requirements.txt | 5 +++-- .config => simulation.config | 0 simulation/__main__.py | 5 ++++- simulation/automatos/progress.py | 10 +++++++++- simulation/settings.py | 10 +++++----- 7 files changed, 33 insertions(+), 9 deletions(-) create mode 100644 Makefile create mode 100644 icon.ico rename .config => simulation.config (100%) diff --git a/Makefile b/Makefile new file mode 100644 index 0000000..3b9f603 --- /dev/null +++ b/Makefile @@ -0,0 +1,12 @@ +help: + @echo "Disease spread simulation with cellular automaton" + @echo "" + @echo "COMMANDS" + @echo " help: application help" + @echo " compile: create executable" + +compile: + pip install -r ./requirements.txt + pyinstaller -F ./simulation/__main__.py -n dss --hidden-import dotenv --clean -i ./icon.ico + chmod +x dist/dss + cat ./simulation.config > dist/simulation.config \ No newline at end of file diff --git a/icon.ico b/icon.ico new file mode 100644 index 0000000000000000000000000000000000000000..8aab017b891350ecfbb9f0aa9384aa54855517f7 GIT binary patch literal 51732 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 j6TroCv0N str: # noqa - return f'./results/{SIMULATION_UUID}/board' + return os.path.join(self.OUTPUT_BASE_DIR, f'results/{SIMULATION_UUID}/board') @property def OUTPUT_SHEET_DIR(self) -> str: # noqa - return f'./results/{SIMULATION_UUID}/sheet' + return os.path.join(self.OUTPUT_BASE_DIR, f'results/{SIMULATION_UUID}/sheet') @property def OUTPUT_GRAPH_DIR(self) -> str: # noqa - return f'./results/{SIMULATION_UUID}/graph' + return os.path.join(self.OUTPUT_BASE_DIR, f'results/{SIMULATION_UUID}/graph') @property def OUTPUT_GIF_DIR(self) -> str: # noqa - return f'./results/{SIMULATION_UUID}/gif' + return os.path.join(self.OUTPUT_BASE_DIR, f'results/{SIMULATION_UUID}/gif') @property def OUTPUT_BOARD_DIMENSION(self) -> tuple[int, int]: # noqa