diff --git a/Dockerfile b/Dockerfile index 7061472..dca25bc 100644 --- a/Dockerfile +++ b/Dockerfile @@ -19,11 +19,8 @@ RUN apt-get install ffmpeg libsm6 libxext6 -y # ----------------------------------- # Copy required files from repo into image COPY ./deepface /app/deepface -COPY ./api/src/app.py /app/ -COPY ./api/src/api.py /app/ -COPY ./api/src/routes.py /app/ -COPY ./api/src/service.py /app/ COPY ./requirements.txt /app/ +COPY ./package_info.json /app/package_info.json COPY ./setup.py /app/ COPY ./README.md /app/ @@ -50,5 +47,6 @@ ENV PYTHONUNBUFFERED=1 # ----------------------------------- # run the app (re-configure port if necessary) +WORKDIR /app/deepface/api/src EXPOSE 5000 CMD ["gunicorn", "--workers=1", "--timeout=3600", "--bind=0.0.0.0:5000", "app:create_app()"] diff --git a/README.md b/README.md index c64453d..673f848 100644 --- a/README.md +++ b/README.md @@ -280,7 +280,7 @@ user **API** - [`Demo`](https://youtu.be/HeKCQ6U9XmI) -DeepFace serves an API as well. You can clone [`/api`](https://github.com/serengil/deepface/tree/master/api) folder and run the api via gunicorn server. This will get a rest service up. In this way, you can call deepface from an external system such as mobile app or web. +DeepFace serves an API as well. You can clone deepface source code and run the api via gunicorn server with the following command. This will get a rest service up. In this way, you can call deepface from an external system such as mobile app or web. ```shell cd scripts diff --git a/api/__init__.py b/deepface/api/__init__.py similarity index 100% rename from api/__init__.py rename to deepface/api/__init__.py diff --git a/api/postman/deepface-api.postman_collection.json b/deepface/api/postman/deepface-api.postman_collection.json similarity index 100% rename from api/postman/deepface-api.postman_collection.json rename to deepface/api/postman/deepface-api.postman_collection.json diff --git a/api/src/__init__.py b/deepface/api/src/__init__.py similarity index 100% rename from api/src/__init__.py rename to deepface/api/src/__init__.py diff --git a/api/src/api.py b/deepface/api/src/api.py similarity index 100% rename from api/src/api.py rename to deepface/api/src/api.py diff --git a/api/src/app.py b/deepface/api/src/app.py similarity index 71% rename from api/src/app.py rename to deepface/api/src/app.py index 0103d82..fa0cb87 100644 --- a/api/src/app.py +++ b/deepface/api/src/app.py @@ -1,6 +1,6 @@ # 3rd parth dependencies from flask import Flask -from modules.core.routes import blueprint +from deepface.api.src.modules.core.routes import blueprint def create_app(): app = Flask(__name__) diff --git a/api/src/modules/core/__init__.py b/deepface/api/src/modules/core/__init__.py similarity index 100% rename from api/src/modules/core/__init__.py rename to deepface/api/src/modules/core/__init__.py diff --git a/api/src/modules/core/routes.py b/deepface/api/src/modules/core/routes.py similarity index 98% rename from api/src/modules/core/routes.py rename to deepface/api/src/modules/core/routes.py index e0256c1..d36ad24 100644 --- a/api/src/modules/core/routes.py +++ b/deepface/api/src/modules/core/routes.py @@ -1,5 +1,5 @@ from flask import Blueprint, request -from modules.core import service +from deepface.api.src.modules.core import service from deepface.commons.logger import Logger logger = Logger(module="api/src/routes.py") diff --git a/api/src/modules/core/service.py b/deepface/api/src/modules/core/service.py similarity index 100% rename from api/src/modules/core/service.py rename to deepface/api/src/modules/core/service.py diff --git a/scripts/service.sh b/scripts/service.sh index 2076648..8b16c9d 100755 --- a/scripts/service.sh +++ b/scripts/service.sh @@ -1,3 +1,3 @@ #!/usr/bin/env bash -cd ../api/src +cd ../deepface/api/src gunicorn --workers=1 --timeout=3600 --bind=0.0.0.0:5000 "app:create_app()" \ No newline at end of file diff --git a/tests/testing_api.py b/tests/test_api.py similarity index 94% rename from tests/testing_api.py rename to tests/test_api.py index e5c9e95..3c31857 100644 --- a/tests/testing_api.py +++ b/tests/test_api.py @@ -1,12 +1,7 @@ -import sys import unittest -from deepface.commons import constant from deepface.commons.logger import Logger +from deepface.api.src.app import create_app -# api is not available under deepface import -sys.path.insert(1, f"{constant.ROOT_DIR}/api/src") -# pylint: disable=wrong-import-order, wrong-import-position -from app import create_app logger = Logger("tests/test_api.py")