From 9f3bbb0d8740a0c6a940bb3c97eaca9ac0aecbba Mon Sep 17 00:00:00 2001 From: Michael Date: Sat, 20 Jan 2024 17:45:24 +0100 Subject: [PATCH] add docker, tests, scripts, test images and bugfixes --- .idea/misc.xml | 1 + README.md | 1 + docker/.dockerignore | 6 ++++ docker/Dockerfile | 17 +++++++++++ docker/docker-compose.yml | 10 +++++++ img/cat.png | Bin 208772 -> 0 bytes language_label_mapper.py | 6 +++- main.py | 2 +- requirements.txt | 5 +++- scripts/build_image.bat | 24 ++++++++++++++++ scripts/build_image.sh | 27 ++++++++++++++++++ scripts/run_tests.bat | 14 +++++++++ scripts/start.bat | 8 ++++++ scripts/start.sh | 11 +++++++ .../Egyptian_cat/Egyptian-Mau-Bronze-750.jpg | Bin 0 -> 368260 bytes .../PER_Fluffy_Fancy_Antony_(5468896948).jpg | Bin 0 -> 102002 bytes tests/img/Siamese_cat/siamese-cat-cover.jpg | Bin 0 -> 163263 bytes tests/img/cheetah/TheCheethcat.jpg | Bin 0 -> 184855 bytes ...r_at_Cougar_Mountain_Zoological_Park_2.jpg | Bin 0 -> 221000 bytes tests/img/jaguar/Junior-Jaguar-Belize-Zoo.jpg | Bin 0 -> 333596 bytes .../African_leopard_male_(cropped).jpg | Bin 0 -> 226645 bytes tests/img/lion/Lion_waiting_in_Namibia.jpg | Bin 0 -> 287563 bytes tests/img/lynx/552661_poster.jpg | Bin 0 -> 479877 bytes {img => tests/img/not a cat}/wolf.jpg | Bin tests/img/snow_lopard/Snow-Leopard.jpg | Bin 0 -> 261353 bytes tests/img/tabby/Cat_November_2010-1a.jpg | Bin 0 -> 2833605 bytes ...47131_OIL6X2l7Nur139dUHTdaRK51NwqW02DE.jpg | Bin 0 -> 353468 bytes {img => tests/img/tiger_cat}/cat1.jpg | Bin tests/test_1.py | 19 ++++++++++++ validator.py | 2 -- 30 files changed, 148 insertions(+), 5 deletions(-) create mode 100644 README.md create mode 100644 docker/.dockerignore create mode 100644 docker/Dockerfile create mode 100644 docker/docker-compose.yml delete mode 100644 img/cat.png create mode 100644 scripts/build_image.bat create mode 100644 scripts/build_image.sh create mode 100644 scripts/run_tests.bat create mode 100644 scripts/start.bat create mode 100644 scripts/start.sh create mode 100644 tests/img/Egyptian_cat/Egyptian-Mau-Bronze-750.jpg create mode 100644 tests/img/Persian_cat/PER_Fluffy_Fancy_Antony_(5468896948).jpg create mode 100644 tests/img/Siamese_cat/siamese-cat-cover.jpg create mode 100644 tests/img/cheetah/TheCheethcat.jpg create mode 100644 tests/img/cougar/Cougar_at_Cougar_Mountain_Zoological_Park_2.jpg create mode 100644 tests/img/jaguar/Junior-Jaguar-Belize-Zoo.jpg create mode 100644 tests/img/leopard/African_leopard_male_(cropped).jpg create mode 100644 tests/img/lion/Lion_waiting_in_Namibia.jpg create mode 100644 tests/img/lynx/552661_poster.jpg rename {img => tests/img/not a cat}/wolf.jpg (100%) create mode 100644 tests/img/snow_lopard/Snow-Leopard.jpg create mode 100644 tests/img/tabby/Cat_November_2010-1a.jpg create mode 100644 tests/img/tiger/1000_F_88747131_OIL6X2l7Nur139dUHTdaRK51NwqW02DE.jpg rename {img => tests/img/tiger_cat}/cat1.jpg (100%) create mode 100644 tests/test_1.py diff --git a/.idea/misc.xml b/.idea/misc.xml index 3ce3588..c9a492c 100644 --- a/.idea/misc.xml +++ b/.idea/misc.xml @@ -3,4 +3,5 @@ + \ No newline at end of file diff --git a/README.md b/README.md new file mode 100644 index 0000000..0f20fd2 --- /dev/null +++ b/README.md @@ -0,0 +1 @@ +Cat detection \ No newline at end of file diff --git a/docker/.dockerignore b/docker/.dockerignore new file mode 100644 index 0000000..22c4864 --- /dev/null +++ b/docker/.dockerignore @@ -0,0 +1,6 @@ +*.md +/venv +.git +__pycache__ +.pytest_cache +/tests \ No newline at end of file diff --git a/docker/Dockerfile b/docker/Dockerfile new file mode 100644 index 0000000..f2361f2 --- /dev/null +++ b/docker/Dockerfile @@ -0,0 +1,17 @@ +# Użyj obrazu bazowego Python 3.8 +FROM python:3.11 + +# Ustaw katalog roboczy na /app +WORKDIR /app + +# Skopiuj zawartość bieżącego katalogu do /app w kontenerze +COPY . /app + +# Zainstaluj zależności +RUN pip install --no-cache-dir -r requirements.txt + +# Wyeksponuj port 5000 +EXPOSE 5000 + +# Uruchom aplikację po uruchomieniu kontenera +CMD ["python", "main.py"] diff --git a/docker/docker-compose.yml b/docker/docker-compose.yml new file mode 100644 index 0000000..48cf64e --- /dev/null +++ b/docker/docker-compose.yml @@ -0,0 +1,10 @@ +version: '3.3' + +services: + cat-detection: + image: cat-detection + build: + context: ../ + dockerfile: ./docker/Dockerfile + ports: + - "5000:5000" \ No newline at end of file diff --git a/img/cat.png b/img/cat.png deleted file mode 100644 index 9abe07ab2cc07ae610cb00178e4ad218df7dd7cb..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 208772 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