[![Coverage
Status](https://coveralls.io/repos/thumbor/remotecv/badge.svg?branch=master&service=github)](https://coveralls.io/github/thumbor/remotecv?branch=master)
# RemoteCV
RemoteCV is a queued mechanism to run [OpenCV][opencv] computations and store
them for later usage.
Currently, [Thumbor][thumbor] uses remotecv to outsource facial or feature
detection, but nothing stops you from integrating it into your product.
RemoteCV supports both [PyRes][PyRes] and [Celery][Celery] for queueing
back-end.
## Install
```sh
pip install remotecv
```
## Run local
Clone the repository:
```sh
git clone https://github.com/thumbor/remotecv.git
```
Create a virtualenv:
```
cd remotecv
mkvirtualenv remotecv
```
Install dependencies:
```sh
make setup
```
Run:
```sh
make run
```
After installing the project, you can execute
```sh
remotecv
```
If you want a healthcheck handler, you must pass an argument in remotecv
execution. You can also specify the http server port, the default http server
port is 8080.
```sh
remotecv --with-healthcheck --server-port=8888
```
## Tests
```sh
make unit
```
## RemoveCV parameters
```sh
Usage: remotecv [OPTIONS]
Runs RemoteCV
Options:
Worker Backend:
-b, --backend [pyres|celery] Worker backend [env var: BACKEND]
Pyres Connection Arguments:
--host TEXT Redis host [env var: REDIS_HOST]
--port INTEGER Redis port [env var: REDIS_PORT]
--database INTEGER Redis database [env var: REDIS_DATABASE]
--password TEXT Redis password [env var: REDIS_PASSWORD]
--redis-mode [single_node|sentinel]
Redis mode [env var: REDIS_MODE]
--sentinel-instances TEXT Redis Sentinel instances e.g.
'localhost:26376,localhost:26377' [env var:
REDIS_SENTINEL_INSTANCES]
--sentinel-password TEXT Redis Sentinel password [env var:
REDIS_SENTINEL_PASSWORD]
--master-instance TEXT Redis Sentinel master instance [env var:
REDIS_MASTER_INSTANCE]
--master-password TEXT Redis Sentinel master password [env var:
REDIS_MASTER_PASSWORD]
--master-database INTEGER Redis Sentinel master database [env var:
REDIS_MASTER_DATABASE]
--socket-timeout FLOAT Redis Sentinel socket timeout [env var:
REDIS_SENTINEL_SOCKET_TIMEOUT]
Celery/SQS Connection Arguments:
--region TEXT AWS SQS Region [env var: AWS_REGION]
--key-id TEXT AWS access key id [env var:
AWS_ACCESS_KEY_ID]
--key-secret TEXT AWS access key secret [env var:
AWS_SECRET_ACCESS_KEY]
--polling-interval INTEGER AWS polling interval [env var:
SQS_POLLING_INTERVAL]
--celery-commands TEXT SQS command [env var: CELERY_COMMANDS]
Other arguments:
--server-port INTEGER HTTP server port [env var:
HTTP_SERVER_PORT]
--with-healthcheck Start a healthcheck http endpoint [env var:
WITH_HEALTHCHECK]
-l, --level [debug|info|warning|error|critical]
Logging level [env var: LOG_LEVEL]
-o, --loader TEXT Image loader [env var: IMAGE_LOADER]
-s, --store TEXT Detector result store [env var:
DETECTOR_STORAGE]
-t, --timeout INTEGER Timeout in seconds for image detection [env
var: DETECTOR_TIMEOUT]
--sentry-url TEXT Sentry URL [env var: SENTRY_URL]
--metrics TEXT Metrics client, should be the full name of a
python module [env var: METRICS_CLIENT]
--clear-image-metadata Clears metadata when loading image
[env var: CLEAR_IMAGE_METADATA]
Memcached store arguments:
--memcached-hosts TEXT Comma separated list of memcached hosts
[env var: MEMCACHED_HOSTS]
--help Show this message and exit.
```
RemoteCV can also be configured via environment variables
[thumbor]: https://github.com/thumbor/thumbor/wiki
[PyRes]: https://github.com/binarydud/pyres
[Celery]: https://www.celeryproject.org
[opencv]: https://opencv.org/
Raw data
{
"_id": null,
"home_page": "https://github.com/thumbor/remotecv",
"name": "remotecv",
"maintainer": "",
"docs_url": null,
"requires_python": "==3.*,>=3.9.0",
"maintainer_email": "",
"keywords": "",
"author": "Bernardo Heynemann",
"author_email": "heynemann@gmail.com",
"download_url": "https://files.pythonhosted.org/packages/70/e7/708129c9d8ccfc770e5a60b079a7ac252353b790129657ef32449cc1c8da/remotecv-5.1.8.tar.gz",
"platform": null,
"description": "[![Coverage\nStatus](https://coveralls.io/repos/thumbor/remotecv/badge.svg?branch=master&service=github)](https://coveralls.io/github/thumbor/remotecv?branch=master)\n\n# RemoteCV\n\nRemoteCV is a queued mechanism to run [OpenCV][opencv] computations and store\nthem for later usage.\n\nCurrently, [Thumbor][thumbor] uses remotecv to outsource facial or feature\ndetection, but nothing stops you from integrating it into your product.\n\nRemoteCV supports both [PyRes][PyRes] and [Celery][Celery] for queueing\nback-end.\n\n## Install\n\n```sh\npip install remotecv\n```\n\n## Run local\n\nClone the repository:\n\n```sh\ngit clone https://github.com/thumbor/remotecv.git\n```\n\nCreate a virtualenv:\n\n```\ncd remotecv\nmkvirtualenv remotecv\n```\n\nInstall dependencies:\n\n```sh\nmake setup\n```\n\nRun:\n\n```sh\nmake run\n```\n\nAfter installing the project, you can execute\n\n```sh\nremotecv\n```\n\nIf you want a healthcheck handler, you must pass an argument in remotecv\nexecution. You can also specify the http server port, the default http server\nport is 8080.\n\n```sh\nremotecv --with-healthcheck --server-port=8888\n```\n\n## Tests\n\n```sh\nmake unit\n```\n\n## RemoveCV parameters\n```sh\nUsage: remotecv [OPTIONS]\n\n Runs RemoteCV\n\nOptions:\n Worker Backend:\n -b, --backend [pyres|celery] Worker backend [env var: BACKEND]\n Pyres Connection Arguments:\n --host TEXT Redis host [env var: REDIS_HOST]\n --port INTEGER Redis port [env var: REDIS_PORT]\n --database INTEGER Redis database [env var: REDIS_DATABASE]\n --password TEXT Redis password [env var: REDIS_PASSWORD]\n --redis-mode [single_node|sentinel]\n Redis mode [env var: REDIS_MODE]\n --sentinel-instances TEXT Redis Sentinel instances e.g.\n 'localhost:26376,localhost:26377' [env var:\n REDIS_SENTINEL_INSTANCES]\n --sentinel-password TEXT Redis Sentinel password [env var:\n REDIS_SENTINEL_PASSWORD]\n --master-instance TEXT Redis Sentinel master instance [env var:\n REDIS_MASTER_INSTANCE]\n --master-password TEXT Redis Sentinel master password [env var:\n REDIS_MASTER_PASSWORD]\n --master-database INTEGER Redis Sentinel master database [env var:\n REDIS_MASTER_DATABASE]\n --socket-timeout FLOAT Redis Sentinel socket timeout [env var:\n REDIS_SENTINEL_SOCKET_TIMEOUT]\n Celery/SQS Connection Arguments:\n --region TEXT AWS SQS Region [env var: AWS_REGION]\n --key-id TEXT AWS access key id [env var:\n AWS_ACCESS_KEY_ID]\n --key-secret TEXT AWS access key secret [env var:\n AWS_SECRET_ACCESS_KEY]\n --polling-interval INTEGER AWS polling interval [env var:\n SQS_POLLING_INTERVAL]\n --celery-commands TEXT SQS command [env var: CELERY_COMMANDS]\n Other arguments:\n --server-port INTEGER HTTP server port [env var:\n HTTP_SERVER_PORT]\n --with-healthcheck Start a healthcheck http endpoint [env var:\n WITH_HEALTHCHECK]\n -l, --level [debug|info|warning|error|critical]\n Logging level [env var: LOG_LEVEL]\n -o, --loader TEXT Image loader [env var: IMAGE_LOADER]\n -s, --store TEXT Detector result store [env var:\n DETECTOR_STORAGE]\n -t, --timeout INTEGER Timeout in seconds for image detection [env\n var: DETECTOR_TIMEOUT]\n --sentry-url TEXT Sentry URL [env var: SENTRY_URL]\n --metrics TEXT Metrics client, should be the full name of a\n python module [env var: METRICS_CLIENT]\n --clear-image-metadata Clears metadata when loading image\n [env var: CLEAR_IMAGE_METADATA]\n Memcached store arguments:\n --memcached-hosts TEXT Comma separated list of memcached hosts\n [env var: MEMCACHED_HOSTS]\n --help Show this message and exit.\n```\n\nRemoteCV can also be configured via environment variables\n\n[thumbor]: https://github.com/thumbor/thumbor/wiki\n[PyRes]: https://github.com/binarydud/pyres\n[Celery]: https://www.celeryproject.org\n[opencv]: https://opencv.org/\n",
"bugtrack_url": null,
"license": "MIT",
"summary": "remotecv is an OpenCV worker for facial and feature recognition",
"version": "5.1.8",
"project_urls": {
"Homepage": "https://github.com/thumbor/remotecv"
},
"split_keywords": [],
"urls": [
{
"comment_text": "",
"digests": {
"blake2b_256": "85cf1fc8b0f195121ad4f855ff8b25d72f5ec2449e35b1f082e36b6af4407e1f",
"md5": "a6a66b772a2a32462f9ad3a111eeabbb",
"sha256": "df4a13dae6adf5d797e6c41f1e62a34a88d0b4416529fbeefe00b764b005516e"
},
"downloads": -1,
"filename": "remotecv-5.1.8-py3-none-any.whl",
"has_sig": false,
"md5_digest": "a6a66b772a2a32462f9ad3a111eeabbb",
"packagetype": "bdist_wheel",
"python_version": "py3",
"requires_python": "==3.*,>=3.9.0",
"size": 965604,
"upload_time": "2024-01-08T19:23:27",
"upload_time_iso_8601": "2024-01-08T19:23:27.527623Z",
"url": "https://files.pythonhosted.org/packages/85/cf/1fc8b0f195121ad4f855ff8b25d72f5ec2449e35b1f082e36b6af4407e1f/remotecv-5.1.8-py3-none-any.whl",
"yanked": false,
"yanked_reason": null
},
{
"comment_text": "",
"digests": {
"blake2b_256": "70e7708129c9d8ccfc770e5a60b079a7ac252353b790129657ef32449cc1c8da",
"md5": "fdc866e8ec8aa824f48e942b8231e3b5",
"sha256": "71327119e215b7218aad04a35246d3b70731b77936411bc9af4be480f0e8fb28"
},
"downloads": -1,
"filename": "remotecv-5.1.8.tar.gz",
"has_sig": false,
"md5_digest": "fdc866e8ec8aa824f48e942b8231e3b5",
"packagetype": "sdist",
"python_version": "source",
"requires_python": "==3.*,>=3.9.0",
"size": 945142,
"upload_time": "2024-01-08T19:23:30",
"upload_time_iso_8601": "2024-01-08T19:23:30.577969Z",
"url": "https://files.pythonhosted.org/packages/70/e7/708129c9d8ccfc770e5a60b079a7ac252353b790129657ef32449cc1c8da/remotecv-5.1.8.tar.gz",
"yanked": false,
"yanked_reason": null
}
],
"upload_time": "2024-01-08 19:23:30",
"github": true,
"gitlab": false,
"bitbucket": false,
"codeberg": false,
"github_user": "thumbor",
"github_project": "remotecv",
"travis_ci": false,
"coveralls": true,
"github_actions": true,
"lcname": "remotecv"
}