From e0a0f5cd7fe904d56c72dedadec3f4b8dbc6f586 Mon Sep 17 00:00:00 2001 From: kerboul Date: Sat, 13 Jun 2026 14:51:12 +0200 Subject: [PATCH] chore: add .gitignore, exclude __pycache__ --- .gitignore | 9 +++++++++ __pycache__/agent.cpython-311.pyc | Bin 5655 -> 0 bytes __pycache__/config.cpython-311.pyc | Bin 1492 -> 0 bytes __pycache__/genetic.cpython-311.pyc | Bin 4758 -> 0 bytes __pycache__/maze.cpython-311.pyc | Bin 5374 -> 0 bytes __pycache__/visualizer.cpython-311.pyc | Bin 10487 -> 0 bytes 6 files changed, 9 insertions(+) create mode 100644 .gitignore delete mode 100644 __pycache__/agent.cpython-311.pyc delete mode 100644 __pycache__/config.cpython-311.pyc delete mode 100644 __pycache__/genetic.cpython-311.pyc delete mode 100644 __pycache__/maze.cpython-311.pyc delete mode 100644 __pycache__/visualizer.cpython-311.pyc diff --git a/.gitignore b/.gitignore new file mode 100644 index 0000000..57739fa --- /dev/null +++ b/.gitignore @@ -0,0 +1,9 @@ +__pycache__/ +*.pyc +*.pyo +*.pyd +.venv/ +venv/ +*.egg-info/ +dist/ +build/ diff --git a/__pycache__/agent.cpython-311.pyc b/__pycache__/agent.cpython-311.pyc deleted file mode 100644 index 3a129d0944500f083b64ea34f79cd1a35144feb6..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 5655 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 WADfJ^Fb&$+OP=G{k1t^mHT@Sy`k)5@ diff --git a/__pycache__/config.cpython-311.pyc b/__pycache__/config.cpython-311.pyc deleted file mode 100644 index ac240943ec113ae4b3502d8877263f9ddb9f11b6..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 1492 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