{ "info": { "author": "Idein Inc.", "author_email": "n.ohkawa@idein.jp", "bugtrack_url": null, "classifiers": [ "Development Status :: 4 - Beta", "Intended Audience :: Developers", "License :: OSI Approved :: MIT License", "Programming Language :: Python :: 3 :: Only" ], "description": "# Actcast Application Framework for Python\n\nThis package provides a Python API for developing Actcast apps.\n\n## Installation\n\nfor Raspberry Pi\n\n```\nsudo apt-get update\nsudo apt-get install -y python3-pil python3-setuptools python3-wheel picamera\npip3 install .\n```\n\n## Usage\n\nConstruct your application with a task parallel model\n\n* Application\n * `actfw.Application` : Main application\n* Workers\n * `actfw.task.Producer` : Task generator\n * `actfw.capture.PiCameraCapture` : Generate CSI camera capture image\n * `actfw.capture.V4LCameraCapture` : Generate UVC camera capture image\n * `actfw.task.Pipe` : Task to Task converter\n * `actfw.task.Consumer` : Task terminator\n\nEach worker is executed in parallel.\n\nUser should\n\n* Define subclass of `Producer/Pipe/Consumer`\n~~~~python\nclass MyPipe(actfw.task.Pipe):\n def proc(self, i):\n ...\n~~~~\n* Connect defined worker objects\n~~~~python\np = MyProducer()\nf1 = MyPipe()\nf2 = MyPipe()\nc = MyConsumer()\np.connect(f1)\nf1.connect(f2)\nf2.connect(c)\n~~~~\n* Register to `Application`\n~~~~python\napp = actfw.Application()\napp.register_task(p)\napp.register_task(f1)\napp.register_task(f2)\napp.register_task(c)\n~~~~\n* Execute application\n~~~~python\napp.run()\n~~~~\n\nPlease, see and try examples.\n\n## Example\n\n* `example/hello` : The most simple application example\n * Use HDMI display as 640x480 area\n * Capture 320x240 RGB image from CSI camera\n * Draw \"Hello, Actcast!\" text\n * Display it as 640x480 image (with x2 scaling)\n * Notice message for each frame\n * Support application setting\n * Support application heartbeat\n * Support \"Take Photo\" command\n* `example/grayscale` : Next level application example\n * Use HDMI display as 640x480 area\n * Capture 320x240 RGB image from CSI camera\n * Convert it to grayscale\n * Display it as 640x480 image (with x2 scaling)\n * Notice message for each frame\n * Support application setting\n * Support application heartbeat\n * Support \"Take Photo\" command\n* `example/parallel_grayscale` : Paralell processing application example\n * Use HDMI display as 640x480 area\n * Capture 320x240 RGB image from CSI camera\n * Convert it to grayscale\n * There exists 2 converter task\n * Round-robin task scheduling\n * Display it as 640x480 image (with x2 scaling)\n * Notice message for each frame\n * Show which converter processes image\n * Support application setting\n * Support application heartbeat\n * Support \"Take Photo\" command\n* `example/uvccamera` : UVC camera capture example\n * `picamera` is unnecessary\n * Use HDMI display center 640x480 area\n * Capture 320x240 RGB image from UVC camera\n * Convert it to grayscale\n * Display it as 640x480 image (with x2 scaling)\n * Notice grayscale pixel data histogram\n * Support application setting\n * Support application heartbeat\n * Support \"Take Photo\" command\n\n\n", "description_content_type": "text/markdown", "docs_url": null, "download_url": "", "downloads": { "last_day": -1, "last_month": -1, "last_week": -1 }, "home_page": "https://github.com/Idein/actcast-app-python", "keywords": "actcast", "license": "MIT", "maintainer": "", "maintainer_email": "", "name": "actfw", "package_url": "https://pypi.org/project/actfw/", "platform": "", "project_url": "https://pypi.org/project/actfw/", "project_urls": { "Homepage": "https://github.com/Idein/actcast-app-python" }, "release_url": "https://pypi.org/project/actfw/1.3.2/", "requires_dist": [ "Pillow" ], "requires_python": "", "summary": "Actcast Application Framework", "version": "1.3.2" }, "last_serial": 5735732, "releases": { "1.0.0": [ { "comment_text": "", "digests": { "md5": "f03438e9265fd15a3eb0a5cedfa77c30", "sha256": "6aed742db1cad22f6455fff238bd867985c19043be9a366b2ff751a26009dd3b" }, "downloads": -1, "filename": "actfw-1.0.0-py3-none-any.whl", "has_sig": false, "md5_digest": "f03438e9265fd15a3eb0a5cedfa77c30", "packagetype": "bdist_wheel", "python_version": "py3", "requires_python": null, "size": 8464, "upload_time": "2019-04-23T06:46:16", "url": "https://files.pythonhosted.org/packages/40/a7/9596c6ca5f56221576a30ae832c928f33f797d5496e3e0f0e5dd3e432514/actfw-1.0.0-py3-none-any.whl" } ], "1.0.1": [ { "comment_text": "", "digests": { "md5": "921813a9bfe5aa519e17fcea4353c9be", "sha256": "f424d5190ad92a63e13e9d7c1771e0762773e096fb879fd94088ee42b28c7308" }, "downloads": -1, "filename": "actfw-1.0.1-py3-none-any.whl", "has_sig": false, "md5_digest": "921813a9bfe5aa519e17fcea4353c9be", "packagetype": "bdist_wheel", "python_version": "py3", "requires_python": null, "size": 9298, "upload_time": "2019-04-23T08:55:23", "url": "https://files.pythonhosted.org/packages/a3/8c/9d212a0f47d6d180a995d31049e29a3e2538a3ec08b4b94b69549ed9f99b/actfw-1.0.1-py3-none-any.whl" } ], "1.1.0": [ { "comment_text": "", "digests": { "md5": "7bad6d58ace2acb1edc44f3da0d177a0", "sha256": "eb05c88194a43dd8040733d00e4641f9f4048b7c2395d0546fff5757a3b35fb7" }, "downloads": -1, "filename": "actfw-1.1.0-py3-none-any.whl", "has_sig": false, "md5_digest": "7bad6d58ace2acb1edc44f3da0d177a0", "packagetype": "bdist_wheel", "python_version": "py3", "requires_python": null, "size": 16765, "upload_time": "2019-04-26T04:12:09", "url": "https://files.pythonhosted.org/packages/94/cf/5b6ac9653de2e7bfd0992291ad6e2938a4ef82ab1976a2bc6b8d146bf2a6/actfw-1.1.0-py3-none-any.whl" } ], "1.2.0": [ { "comment_text": "", "digests": { "md5": "41192bfa21481a98519d1d5d8df35aac", "sha256": "0dbcf1d4b8253d0a313a7a975904a15e3859843ab8c3eaa255050e7f086f9a55" }, "downloads": -1, "filename": "actfw-1.2.0-py3-none-any.whl", "has_sig": false, "md5_digest": "41192bfa21481a98519d1d5d8df35aac", "packagetype": "bdist_wheel", "python_version": "py3", "requires_python": null, "size": 25780, "upload_time": "2019-05-28T05:40:17", "url": "https://files.pythonhosted.org/packages/01/0f/ba9225f7721dbb87d9971402b1e867530a9d24037e8948961cf5cdb65d82/actfw-1.2.0-py3-none-any.whl" } ], "1.2.1": [ { "comment_text": "", "digests": { "md5": "ad0c36047f86120f6b715057e5afdc49", "sha256": "0e10ed26077a396a3209da26f875288705f2716baf9406af6237897d194fa29e" }, "downloads": -1, "filename": "actfw-1.2.1-py3-none-any.whl", "has_sig": false, "md5_digest": "ad0c36047f86120f6b715057e5afdc49", "packagetype": "bdist_wheel", "python_version": "py3", "requires_python": null, "size": 26794, "upload_time": "2019-07-19T00:23:13", "url": "https://files.pythonhosted.org/packages/7b/68/cce30e99c50ece081957ce272220b3321cbc5fc2b818b076830235eb7ef6/actfw-1.2.1-py3-none-any.whl" } ], "1.3.0": [ { "comment_text": "", "digests": { "md5": "b1bb8e23c3c379f376bbc0901a6f3d85", "sha256": "21e4b9a03553cc51393a9af98bd25bccef5bd0176aa45d49d1b7d007e355e9e3" }, "downloads": -1, "filename": "actfw-1.3.0-py3-none-any.whl", "has_sig": false, "md5_digest": "b1bb8e23c3c379f376bbc0901a6f3d85", "packagetype": "bdist_wheel", "python_version": "py3", "requires_python": null, "size": 27035, "upload_time": "2019-07-19T07:37:22", "url": "https://files.pythonhosted.org/packages/17/fc/e22e323fab1fac2e9d3dc6510dc7989022180a5e625feca4d5fcf9633031/actfw-1.3.0-py3-none-any.whl" } ], "1.3.1": [ { "comment_text": "", "digests": { "md5": "a29db30d85622d829f9f4eaf7d67f5e8", "sha256": "3a9dbace20de5a2474b3fa971105045a9d2495bb3751eb01831bf39a828b5638" }, "downloads": -1, "filename": "actfw-1.3.1-py3-none-any.whl", "has_sig": false, "md5_digest": "a29db30d85622d829f9f4eaf7d67f5e8", "packagetype": "bdist_wheel", "python_version": "py3", "requires_python": null, "size": 27238, "upload_time": "2019-08-26T08:31:54", "url": "https://files.pythonhosted.org/packages/37/0c/867bae556f2de39081d2575876ff159f815795e0a74b7e64017146c3b574/actfw-1.3.1-py3-none-any.whl" } ], "1.3.2": [ { "comment_text": "", "digests": { "md5": "dde45d31e49bd69e9bd6e0d0ca4dd5b5", "sha256": "ea6070c7f3c7b16d25cc7f2615a372d9387c5241413859a8a5b4209a6b2d37c9" }, "downloads": -1, "filename": "actfw-1.3.2-py3-none-any.whl", "has_sig": false, "md5_digest": "dde45d31e49bd69e9bd6e0d0ca4dd5b5", "packagetype": "bdist_wheel", "python_version": "py3", "requires_python": null, "size": 27781, "upload_time": "2019-08-27T09:19:46", "url": "https://files.pythonhosted.org/packages/74/c9/585a19b7da04192848eaaadfd0d6e0638fff36c8ff6e886132060ca11c79/actfw-1.3.2-py3-none-any.whl" } ] }, "urls": [ { "comment_text": "", "digests": { "md5": "dde45d31e49bd69e9bd6e0d0ca4dd5b5", "sha256": "ea6070c7f3c7b16d25cc7f2615a372d9387c5241413859a8a5b4209a6b2d37c9" }, "downloads": -1, "filename": "actfw-1.3.2-py3-none-any.whl", "has_sig": false, "md5_digest": "dde45d31e49bd69e9bd6e0d0ca4dd5b5", "packagetype": "bdist_wheel", "python_version": "py3", "requires_python": null, "size": 27781, "upload_time": "2019-08-27T09:19:46", "url": "https://files.pythonhosted.org/packages/74/c9/585a19b7da04192848eaaadfd0d6e0638fff36c8ff6e886132060ca11c79/actfw-1.3.2-py3-none-any.whl" } ] }