{ "info": { "author": "AdMobilize Team", "author_email": "devel@admobilize.com", "bugtrack_url": null, "classifiers": [ "Development Status :: 3 - Alpha", "Intended Audience :: Developers", "Programming Language :: Python", "Programming Language :: Python :: 3.6", "Programming Language :: Python :: 3.7" ], "description": "==============================\nAdMobilize Python MALOS Driver\n==============================\nA simple `Python`_ coroutine based driver for communicating with malos-vision.\n\nLicense\n=======\n\nThis application follows the GNU General Public License, as described in the ``LICENSE`` file.\n\nInstalling\n==========\n\nThe package is available on PyPI, so you can easily install via pip:\n\n.. code-block:: console\n\n $ pip install matrix-io-malos\n\n\nRunning the CLI client\n======================\n\nThe library includes a simple command line client to start reading data from\nyour MALOS service right away.\n\n.. code-block:: console\n\n # Get the malosclient help screen\n $ malosclient --help\n\n # Get IMU data to STDOUT from a locally running MALOS service\n $ malosclient IMU\n\n # Get HUMIDITY data to STDOUT from a remotely running MALOS service\n $ malosclient -h 192.168.0.100 HUMIDITY\n\n # Get FACE detection data using a serialized driver config file\n $ malosclient --driver-config-file ~/driver_config.proto VISION\n\n\nUsing the MalosDriver\n=====================\n\nTo use the MALOS driver works as an async generator so in your code\nyou can do the following:\n\n.. code-block:: python\n\n import asyncio\n import sys\n\n from matrix_io.malos.driver import IMU_PORT, UV_PORT\n from matrix_io.proto.malos.v1 import driver_pb2\n from matrix_io.proto.malos.v1 import sense_pb2\n\n from matrix_io.malos.driver import MalosDriver\n\n\n async def imu_data(imu_driver):\n async for msg in imu_driver.get_data():\n print(sense_pb2.Imu().FromString(msg))\n await asyncio.sleep(1.0)\n\n\n async def uv_data(uv_driver):\n async for msg in uv_driver.get_data():\n print(sense_pb2.UV().FromString(msg))\n await asyncio.sleep(1.0)\n\n\n async def status_handler(driver):\n\n type_mapping = {\n driver_pb2.Status.MESSAGE_TYPE_NOT_DEFINED: \"Not Defined\",\n driver_pb2.Status.STARTED: \"Started\",\n driver_pb2.Status.STOPPED: \"Stopped\",\n driver_pb2.Status.CONFIG_RECEIVED: \"Config Received\",\n driver_pb2.Status.COMMAND_EXECUTED: \"Command Executed\",\n driver_pb2.Status.STATUS_CRITICAL: \"Critical\",\n driver_pb2.Status.STATUS_ERROR: \"Error\",\n driver_pb2.Status.STATUS_WARNING: \"Warning\",\n driver_pb2.Status.STATUS_INFO: \"Info\",\n driver_pb2.Status.STATUS_DEBUG: \"Debug\"\n }\n\n async for msg in driver.get_status():\n print(type_mapping[msg.type])\n\n if msg.uuid:\n print(\"UUID: {}\".format(msg.uuid))\n if msg.message:\n print(\"MESSAGE: {}\".format(msg.message))\n\n await asyncio.sleep(1.0)\n\n\n # Driver configuration\n driver_config = driver_pb2.DriverConfig()\n\n # Create the drivers\n imu_driver = MalosDriver('localhost', IMU_PORT)\n uv_driver = MalosDriver('localhost', UV_PORT)\n\n # Create loop and initialize keep-alive\n loop = asyncio.get_event_loop()\n loop.run_until_complete(imu_driver.configure(driver_config))\n loop.run_until_complete(uv_driver.configure(driver_config))\n loop.create_task(imu_driver.start_keep_alive())\n loop.create_task(uv_driver.start_keep_alive())\n\n # Initialize data and error handlers\n loop.create_task(imu_data(imu_driver))\n loop.create_task(uv_data(uv_driver))\n loop.create_task(status_handler(imu_driver))\n loop.create_task(status_handler(uv_driver))\n\n try:\n loop.run_forever()\n except KeyboardInterrupt:\n print('Shutting down. Bye, bye !', file=sys.stderr)\n finally:\n loop.stop()\n asyncio.gather(*asyncio.Task.all_tasks()).cancel()\n\n loop.run_until_complete(loop.shutdown_asyncgens())\n loop.close()\n\nWho can answer questions about this library?\n============================================\n\n- Heitor Silva \n- Maciej Ruckgaber \n\nMore Documentation\n==================\n\n...\n\n.. _0MQ: http://zeromq.org/\n.. _Python: https://www.python.org/\n.. _virtualenv: https://virtualenv.pypa.io/en/stable/\n.. _pypi: https://pypi.org/\n\n\n", "description_content_type": "", "docs_url": null, "download_url": "", "downloads": { "last_day": -1, "last_month": -1, "last_week": -1 }, "home_page": "https://bitbucket.com/admobilize/malos-python", "keywords": "", "license": "GPLv3", "maintainer": "", "maintainer_email": "", "name": "admobilize-malos", "package_url": "https://pypi.org/project/admobilize-malos/", "platform": "Posix; MacOS X; Windows", "project_url": "https://pypi.org/project/admobilize-malos/", "project_urls": { "Homepage": "https://bitbucket.com/admobilize/malos-python" }, "release_url": "https://pypi.org/project/admobilize-malos/0.0.2/", "requires_dist": [ "docopt (>=0.6.2)", "admobilizeapis (>=2020.06.18r1)", "pyzmq (>=18.0.1)" ], "requires_python": ">=3.6.*", "summary": "AdMobilize Malos Library", "version": "0.0.2", "yanked": false, "yanked_reason": null }, "last_serial": 7725606, "releases": { "0.0.1": [ { "comment_text": "", "digests": { "md5": "ecbe06baef58990022b630bd8a691c76", "sha256": "ce26c3e3852c377c087c365589a6f6d60e333439310c39a93ff1ca52ebe482e5" }, "downloads": -1, "filename": "admobilize_malos-0.0.1-py3-none-any.whl", "has_sig": false, "md5_digest": "ecbe06baef58990022b630bd8a691c76", "packagetype": "bdist_wheel", "python_version": "py3", "requires_python": ">=3.6.*", "size": 21451, "upload_time": "2019-10-25T13:49:02", "upload_time_iso_8601": "2019-10-25T13:49:02.457111Z", "url": "https://files.pythonhosted.org/packages/74/8f/d1be5c83ba22883d76be43008feff26bdcdf0bc9b31b8a4d9f95d9f7181f/admobilize_malos-0.0.1-py3-none-any.whl", "yanked": false, "yanked_reason": null }, { "comment_text": "", "digests": { "md5": "37aaa4ef0db39c6df72e3a4d6b95be54", "sha256": "52e8d9250b27dc5f9d96a88e35d6cd6d1c3e384568fbf788b529e57e657cf5bf" }, "downloads": -1, "filename": "admobilize-malos-0.0.1.tar.gz", "has_sig": false, "md5_digest": "37aaa4ef0db39c6df72e3a4d6b95be54", "packagetype": "sdist", "python_version": "source", "requires_python": ">=3.6.*", "size": 7647, "upload_time": "2019-10-25T13:49:04", "upload_time_iso_8601": "2019-10-25T13:49:04.646299Z", "url": "https://files.pythonhosted.org/packages/7a/48/9196826738982ecc054ff675fb59f70e5afca0af0d1eb82db2925449b7dd/admobilize-malos-0.0.1.tar.gz", "yanked": false, "yanked_reason": null } ], "0.0.2": [ { "comment_text": "", "digests": { "md5": "4495c33d704c937c24c405a5a45d40c1", "sha256": "288c0e56f09da20efec12099f018b218b6a15eab5e69e52c584a504910800a7b" }, "downloads": -1, "filename": "admobilize_malos-0.0.2-py3-none-any.whl", "has_sig": false, "md5_digest": "4495c33d704c937c24c405a5a45d40c1", "packagetype": "bdist_wheel", "python_version": "py3", "requires_python": ">=3.6.*", "size": 21462, "upload_time": "2020-06-30T18:08:17", "upload_time_iso_8601": "2020-06-30T18:08:17.174150Z", "url": "https://files.pythonhosted.org/packages/9d/6d/6bafb8ceaa6afe0d9e7209b3b7504cf359eb1f9f9ec7e3df07716afcfd26/admobilize_malos-0.0.2-py3-none-any.whl", "yanked": false, "yanked_reason": null }, { "comment_text": "", "digests": { "md5": "035f85dced77e73ca061582901ee3d2b", "sha256": "f26667006027e92c47a8c3bd4665548e3962c6756865324c5d61e59a1fb619fc" }, "downloads": -1, "filename": "admobilize-malos-0.0.2.tar.gz", "has_sig": false, "md5_digest": "035f85dced77e73ca061582901ee3d2b", "packagetype": "sdist", "python_version": "source", "requires_python": ">=3.6.*", "size": 7630, "upload_time": "2020-06-30T18:08:18", "upload_time_iso_8601": "2020-06-30T18:08:18.564008Z", "url": "https://files.pythonhosted.org/packages/d3/5f/ac402f31cba37b16833427b7653c70e8ab51fbc82f0cc10516568f901895/admobilize-malos-0.0.2.tar.gz", "yanked": false, "yanked_reason": null } ] }, "urls": [ { "comment_text": "", "digests": { "md5": "4495c33d704c937c24c405a5a45d40c1", "sha256": "288c0e56f09da20efec12099f018b218b6a15eab5e69e52c584a504910800a7b" }, "downloads": -1, "filename": "admobilize_malos-0.0.2-py3-none-any.whl", "has_sig": false, "md5_digest": "4495c33d704c937c24c405a5a45d40c1", "packagetype": "bdist_wheel", "python_version": "py3", "requires_python": ">=3.6.*", "size": 21462, "upload_time": "2020-06-30T18:08:17", "upload_time_iso_8601": "2020-06-30T18:08:17.174150Z", "url": "https://files.pythonhosted.org/packages/9d/6d/6bafb8ceaa6afe0d9e7209b3b7504cf359eb1f9f9ec7e3df07716afcfd26/admobilize_malos-0.0.2-py3-none-any.whl", "yanked": false, "yanked_reason": null }, { "comment_text": "", "digests": { "md5": "035f85dced77e73ca061582901ee3d2b", "sha256": "f26667006027e92c47a8c3bd4665548e3962c6756865324c5d61e59a1fb619fc" }, "downloads": -1, "filename": "admobilize-malos-0.0.2.tar.gz", "has_sig": false, "md5_digest": "035f85dced77e73ca061582901ee3d2b", "packagetype": "sdist", "python_version": "source", "requires_python": ">=3.6.*", "size": 7630, "upload_time": "2020-06-30T18:08:18", "upload_time_iso_8601": "2020-06-30T18:08:18.564008Z", "url": "https://files.pythonhosted.org/packages/d3/5f/ac402f31cba37b16833427b7653c70e8ab51fbc82f0cc10516568f901895/admobilize-malos-0.0.2.tar.gz", "yanked": false, "yanked_reason": null } ], "vulnerabilities": [] }