diff --git a/.Dockerfile.old b/.old/.Dockerfile.old similarity index 100% rename from .Dockerfile.old rename to .old/.Dockerfile.old diff --git a/pyproject.toml.old b/.pyproject.toml.old similarity index 97% rename from pyproject.toml.old rename to .pyproject.toml.old index e6a7280..f03977a 100644 --- a/pyproject.toml.old +++ b/.pyproject.toml.old @@ -1,6 +1,6 @@ [tool.poetry] name = "wyzely-detect" -version = "0.2.1" +version = "0.2.2" description = "Recognize faces/objects in a video stream (from a webcam or a security camera) and send notifications to your devices" authors = ["slashtechno <77907286+slashtechno@users.noreply.github.com>"] repository = "https://github.com/slashtechno/wyzely-detect" diff --git a/pyproject.toml b/pyproject.toml index 02703a9..d53c168 100644 --- a/pyproject.toml +++ b/pyproject.toml @@ -7,7 +7,6 @@ keywords = ["object-detection", "face-detection", "wyze", "security", "yolov8", license = {file = "LICENSE"} readme = "README.md" requires-python = ">=3.10, <3.12" - dependencies = [ "python-dotenv>=1.0.0,<2.0.0", "httpx>=0.25.0,<0.26.0", @@ -26,16 +25,10 @@ dependencies = [ ] [project.optional-dependencies] -gpu = [ - "torch (>=2.1.0,<2.2.0); extra=='cuda'", - "tensorflow (>=2.14.0,<2.15.0); extra=='cuda'" -] +gpu = ["tensorflow[and-cuda] (>=2.14.0,<2.15.0)"] -[project.dev-dependencies] -black = ">=23.9.1,<24.0.0" -ruff = ">=0.0.291,<0.1.0" -ipykernel = ">=6.25.2,<7.0.0" -nbconvert = ">=7.9.2,<8.0.0" +[project.scripts] +wyzely-detect = "wyzely_detect.__main__:main" [project.urls] Repository = "https://github.com/slashtechno/wyzely-detect" @@ -44,12 +37,20 @@ Repository = "https://github.com/slashtechno/wyzely-detect" requires = ["hatchling"] build-backend = "hatchling.build" + +[tool.hatch.build.targets.wheel] +packages = ["wyzely_detect"] + + [tool.rye] managed = true -dev-dependencies = [] +dev-dependencies = [ + "black>=23.9.1,<24.0.0", + "ruff>=0.0.291,<0.1.0", + "ipykernel>=6.25.2,<7.0.0", + "nbconvert>=7.9.2,<8.0.0" +] [tool.hatch.metadata] allow-direct-references = true -[tool.hatch.build.targets.wheel] -packages = ["src/rye"] \ No newline at end of file diff --git a/requirements-dev.lock b/requirements-dev.lock new file mode 100644 index 0000000..1d0b665 --- /dev/null +++ b/requirements-dev.lock @@ -0,0 +1,384 @@ +# generated by rye +# use `rye lock` or `rye sync` to update this lockfile +# +# last locked with the following flags: +# pre: false +# features: [] +# all-features: false +# with-sources: false + +-e file:. +absl-py==2.1.0 + # via tensorboard + # via tensorflow-intel + # via wyzely-detect +anyio==4.3.0 + # via httpx +asttokens==2.4.1 + # via stack-data +astunparse==1.6.3 + # via tensorflow-intel +attrs==23.2.0 + # via jsonschema + # via referencing +beautifulsoup4==4.12.3 + # via gdown + # via nbconvert +black==23.12.1 +bleach==6.1.0 + # via nbconvert +blinker==1.7.0 + # via flask +cachetools==5.3.3 + # via google-auth +certifi==2024.2.2 + # via httpcore + # via httpx + # via requests +charset-normalizer==3.3.2 + # via requests +click==8.1.7 + # via black + # via flask +colorama==0.4.6 + # via click + # via ipython + # via tqdm +comm==0.2.1 + # via ipykernel +contourpy==1.2.0 + # via matplotlib +cycler==0.12.1 + # via matplotlib +debugpy==1.8.1 + # via ipykernel +decorator==5.1.1 + # via ipython +deepface==0.0.85 + # via wyzely-detect +defusedxml==0.7.1 + # via nbconvert +exceptiongroup==1.2.0 + # via anyio + # via ipython +executing==2.0.1 + # via stack-data +fastjsonschema==2.19.1 + # via nbformat +filelock==3.13.1 + # via gdown + # via torch +fire==0.5.0 + # via deepface +flask==3.0.2 + # via deepface +flatbuffers==24.3.7 + # via tensorflow-intel +fonttools==4.49.0 + # via matplotlib +fsspec==2024.2.0 + # via torch +gast==0.4.0 + # via tensorflow-intel +gdown==5.1.0 + # via deepface + # via retina-face +google-auth==2.28.2 + # via google-auth-oauthlib + # via tensorboard +google-auth-oauthlib==1.0.0 + # via tensorboard +google-pasta==0.2.0 + # via tensorflow-intel +grpcio==1.62.1 + # via tensorboard + # via tensorflow-intel +gunicorn==21.2.0 + # via deepface +h11==0.14.0 + # via httpcore +h5py==3.10.0 + # via tensorflow-intel +hjson==3.1.0 + # via wyzely-detect +httpcore==1.0.4 + # via httpx +httpx==0.25.2 + # via wyzely-detect +idna==3.6 + # via anyio + # via httpx + # via requests +ipykernel==6.29.3 +ipython==8.22.2 + # via ipykernel +itsdangerous==2.1.2 + # via flask +jedi==0.19.1 + # via ipython +jinja2==3.1.3 + # via flask + # via nbconvert + # via torch +jsonschema==4.21.1 + # via nbformat +jsonschema-specifications==2023.12.1 + # via jsonschema +jupyter-client==8.6.0 + # via ipykernel + # via nbclient +jupyter-core==5.7.1 + # via ipykernel + # via jupyter-client + # via nbclient + # via nbconvert + # via nbformat +jupyterlab-pygments==0.3.0 + # via nbconvert +keras==2.13.1 + # via deepface + # via mtcnn + # via tensorflow-intel +kiwisolver==1.4.5 + # via matplotlib +libclang==16.0.6 + # via tensorflow-intel +markdown==3.5.2 + # via tensorboard +markupsafe==2.1.5 + # via jinja2 + # via nbconvert + # via werkzeug +matplotlib==3.8.3 + # via seaborn + # via ultralytics +matplotlib-inline==0.1.6 + # via ipykernel + # via ipython +mistune==3.0.2 + # via nbconvert +mpmath==1.3.0 + # via sympy +mtcnn==0.1.1 + # via deepface +mypy-extensions==1.0.0 + # via black +nbclient==0.9.0 + # via nbconvert +nbconvert==7.16.2 +nbformat==5.9.2 + # via nbclient + # via nbconvert +nest-asyncio==1.6.0 + # via ipykernel +networkx==3.2.1 + # via torch +numpy==1.24.3 + # via contourpy + # via deepface + # via h5py + # via matplotlib + # via opencv-python + # via opt-einsum + # via pandas + # via retina-face + # via scipy + # via seaborn + # via tensorboard + # via tensorflow-intel + # via torchvision + # via wyzely-detect +oauthlib==3.2.2 + # via requests-oauthlib +opencv-python==4.8.1.78 + # via deepface + # via mtcnn + # via retina-face + # via ultralytics + # via wyzely-detect +opt-einsum==3.3.0 + # via tensorflow-intel +packaging==23.2 + # via black + # via gunicorn + # via ipykernel + # via matplotlib + # via nbconvert + # via tensorflow-intel +pandas==2.2.1 + # via deepface + # via seaborn + # via ultralytics +pandocfilters==1.5.1 + # via nbconvert +parso==0.8.3 + # via jedi +pathspec==0.12.1 + # via black +pillow==10.2.0 + # via deepface + # via matplotlib + # via retina-face + # via torchvision + # via ultralytics +platformdirs==4.2.0 + # via black + # via jupyter-core +prettytable==3.10.0 + # via wyzely-detect +prompt-toolkit==3.0.43 + # via ipython +protobuf==4.25.3 + # via tensorboard + # via tensorflow-intel +psutil==5.9.8 + # via ipykernel + # via ultralytics +pure-eval==0.2.2 + # via stack-data +py-cpuinfo==9.0.0 + # via ultralytics +pyasn1==0.5.1 + # via pyasn1-modules + # via rsa +pyasn1-modules==0.3.0 + # via google-auth +pygments==2.17.2 + # via ipython + # via nbconvert +pyparsing==3.1.2 + # via matplotlib +pysocks==1.7.1 + # via requests +python-dateutil==2.9.0.post0 + # via jupyter-client + # via matplotlib + # via pandas +python-dotenv==1.0.1 + # via wyzely-detect +pytz==2024.1 + # via pandas +pywin32==306 + # via jupyter-core +pyyaml==6.0.1 + # via ultralytics +pyzmq==25.1.2 + # via ipykernel + # via jupyter-client +referencing==0.33.0 + # via jsonschema + # via jsonschema-specifications +requests==2.31.0 + # via gdown + # via requests-oauthlib + # via tensorboard + # via torchvision + # via ultralytics +requests-oauthlib==1.3.1 + # via google-auth-oauthlib +retina-face==0.0.14 + # via deepface +rpds-py==0.18.0 + # via jsonschema + # via referencing +rsa==4.9 + # via google-auth +ruff==0.0.292 +scipy==1.12.0 + # via ultralytics +seaborn==0.13.2 + # via ultralytics +six==1.16.0 + # via asttokens + # via astunparse + # via bleach + # via fire + # via google-pasta + # via python-dateutil + # via tensorflow-intel +sniffio==1.3.1 + # via anyio + # via httpx +soupsieve==2.5 + # via beautifulsoup4 +stack-data==0.6.3 + # via ipython +sympy==1.12 + # via torch +tensorboard==2.13.0 + # via tensorflow-intel +tensorboard-data-server==0.7.2 + # via tensorboard +tensorflow==2.13.1 + # via deepface + # via retina-face + # via wyzely-detect +tensorflow-estimator==2.13.0 + # via tensorflow-intel +tensorflow-intel==2.13.1 ; platform_system == "Windows" + # via tensorflow + # via wyzely-detect +tensorflow-io-gcs-filesystem==0.31.0 ; platform_system == "Windows" + # via tensorflow-intel + # via wyzely-detect +termcolor==2.4.0 + # via fire + # via tensorflow-intel +thop==0.1.1.post2209072238 + # via ultralytics +tinycss2==1.2.1 + # via nbconvert +tomli==2.0.1 + # via black +torch==2.1.2 + # via thop + # via torchvision + # via ultralytics + # via wyzely-detect +torchvision==0.16.2 + # via ultralytics +tornado==6.4 + # via ipykernel + # via jupyter-client +tqdm==4.66.2 + # via deepface + # via gdown + # via ultralytics +traitlets==5.14.1 + # via comm + # via ipykernel + # via ipython + # via jupyter-client + # via jupyter-core + # via matplotlib-inline + # via nbclient + # via nbconvert + # via nbformat +typing-extensions==4.5.0 + # via anyio + # via black + # via tensorflow-intel + # via torch +tzdata==2024.1 + # via pandas +ultralytics==8.1.24 + # via wyzely-detect +urllib3==2.2.1 + # via requests +wcwidth==0.2.13 + # via prettytable + # via prompt-toolkit +webencodings==0.5.1 + # via bleach + # via tinycss2 +werkzeug==3.0.1 + # via flask + # via tensorboard +wheel==0.42.0 + # via astunparse + # via tensorboard +wrapt==1.16.0 + # via tensorflow-intel +setuptools==69.1.1 + # via tensorboard + # via tensorflow-intel diff --git a/requirements.lock b/requirements.lock new file mode 100644 index 0000000..22657d4 --- /dev/null +++ b/requirements.lock @@ -0,0 +1,264 @@ +# generated by rye +# use `rye lock` or `rye sync` to update this lockfile +# +# last locked with the following flags: +# pre: false +# features: [] +# all-features: false +# with-sources: false + +-e file:. +absl-py==2.1.0 + # via tensorboard + # via tensorflow-intel + # via wyzely-detect +anyio==4.3.0 + # via httpx +astunparse==1.6.3 + # via tensorflow-intel +beautifulsoup4==4.12.3 + # via gdown +blinker==1.7.0 + # via flask +cachetools==5.3.3 + # via google-auth +certifi==2024.2.2 + # via httpcore + # via httpx + # via requests +charset-normalizer==3.3.2 + # via requests +click==8.1.7 + # via flask +colorama==0.4.6 + # via click + # via tqdm +contourpy==1.2.0 + # via matplotlib +cycler==0.12.1 + # via matplotlib +deepface==0.0.85 + # via wyzely-detect +exceptiongroup==1.2.0 + # via anyio +filelock==3.13.1 + # via gdown + # via torch +fire==0.5.0 + # via deepface +flask==3.0.2 + # via deepface +flatbuffers==24.3.7 + # via tensorflow-intel +fonttools==4.49.0 + # via matplotlib +fsspec==2024.2.0 + # via torch +gast==0.4.0 + # via tensorflow-intel +gdown==5.1.0 + # via deepface + # via retina-face +google-auth==2.28.2 + # via google-auth-oauthlib + # via tensorboard +google-auth-oauthlib==1.0.0 + # via tensorboard +google-pasta==0.2.0 + # via tensorflow-intel +grpcio==1.62.1 + # via tensorboard + # via tensorflow-intel +gunicorn==21.2.0 + # via deepface +h11==0.14.0 + # via httpcore +h5py==3.10.0 + # via tensorflow-intel +hjson==3.1.0 + # via wyzely-detect +httpcore==1.0.4 + # via httpx +httpx==0.25.2 + # via wyzely-detect +idna==3.6 + # via anyio + # via httpx + # via requests +itsdangerous==2.1.2 + # via flask +jinja2==3.1.3 + # via flask + # via torch +keras==2.13.1 + # via deepface + # via mtcnn + # via tensorflow-intel +kiwisolver==1.4.5 + # via matplotlib +libclang==16.0.6 + # via tensorflow-intel +markdown==3.5.2 + # via tensorboard +markupsafe==2.1.5 + # via jinja2 + # via werkzeug +matplotlib==3.8.3 + # via seaborn + # via ultralytics +mpmath==1.3.0 + # via sympy +mtcnn==0.1.1 + # via deepface +networkx==3.2.1 + # via torch +numpy==1.24.3 + # via contourpy + # via deepface + # via h5py + # via matplotlib + # via opencv-python + # via opt-einsum + # via pandas + # via retina-face + # via scipy + # via seaborn + # via tensorboard + # via tensorflow-intel + # via torchvision + # via wyzely-detect +oauthlib==3.2.2 + # via requests-oauthlib +opencv-python==4.8.1.78 + # via deepface + # via mtcnn + # via retina-face + # via ultralytics + # via wyzely-detect +opt-einsum==3.3.0 + # via tensorflow-intel +packaging==23.2 + # via gunicorn + # via matplotlib + # via tensorflow-intel +pandas==2.2.1 + # via deepface + # via seaborn + # via ultralytics +pillow==10.2.0 + # via deepface + # via matplotlib + # via retina-face + # via torchvision + # via ultralytics +prettytable==3.10.0 + # via wyzely-detect +protobuf==4.25.3 + # via tensorboard + # via tensorflow-intel +psutil==5.9.8 + # via ultralytics +py-cpuinfo==9.0.0 + # via ultralytics +pyasn1==0.5.1 + # via pyasn1-modules + # via rsa +pyasn1-modules==0.3.0 + # via google-auth +pyparsing==3.1.2 + # via matplotlib +pysocks==1.7.1 + # via requests +python-dateutil==2.9.0.post0 + # via matplotlib + # via pandas +python-dotenv==1.0.1 + # via wyzely-detect +pytz==2024.1 + # via pandas +pyyaml==6.0.1 + # via ultralytics +requests==2.31.0 + # via gdown + # via requests-oauthlib + # via tensorboard + # via torchvision + # via ultralytics +requests-oauthlib==1.3.1 + # via google-auth-oauthlib +retina-face==0.0.14 + # via deepface +rsa==4.9 + # via google-auth +scipy==1.12.0 + # via ultralytics +seaborn==0.13.2 + # via ultralytics +six==1.16.0 + # via astunparse + # via fire + # via google-pasta + # via python-dateutil + # via tensorflow-intel +sniffio==1.3.1 + # via anyio + # via httpx +soupsieve==2.5 + # via beautifulsoup4 +sympy==1.12 + # via torch +tensorboard==2.13.0 + # via tensorflow-intel +tensorboard-data-server==0.7.2 + # via tensorboard +tensorflow==2.13.1 + # via deepface + # via retina-face + # via wyzely-detect +tensorflow-estimator==2.13.0 + # via tensorflow-intel +tensorflow-intel==2.13.1 ; platform_system == "Windows" + # via tensorflow + # via wyzely-detect +tensorflow-io-gcs-filesystem==0.31.0 ; platform_system == "Windows" + # via tensorflow-intel + # via wyzely-detect +termcolor==2.4.0 + # via fire + # via tensorflow-intel +thop==0.1.1.post2209072238 + # via ultralytics +torch==2.1.2 + # via thop + # via torchvision + # via ultralytics + # via wyzely-detect +torchvision==0.16.2 + # via ultralytics +tqdm==4.66.2 + # via deepface + # via gdown + # via ultralytics +typing-extensions==4.5.0 + # via anyio + # via tensorflow-intel + # via torch +tzdata==2024.1 + # via pandas +ultralytics==8.1.24 + # via wyzely-detect +urllib3==2.2.1 + # via requests +wcwidth==0.2.13 + # via prettytable +werkzeug==3.0.1 + # via flask + # via tensorboard +wheel==0.42.0 + # via astunparse + # via tensorboard +wrapt==1.16.0 + # via tensorflow-intel +setuptools==69.1.1 + # via tensorboard + # via tensorflow-intel