{ "info": { "author": "MATRIX Labs Team", "author_email": "devel@matrixlabs.ai", "bugtrack_url": null, "classifiers": [ "Development Status :: 4 - Beta", "Intended Audience :: Developers", "License :: OSI Approved :: GNU General Public License v3 (GPLv3)", "Natural Language :: English", "Operating System :: OS Independent", "Programming Language :: Python :: 3.6", "Programming Language :: Python :: 3.7", "Topic :: Utilities" ], "description": "============================\nMATRIXIO Python MALOS Driver\n============================\nA simple `Python`_ coroutine based driver for communicating with `MATRIX-MALOS services`_.\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.. toctree::\n :titlesonly:\n\n CHANGELOG\n\n.. _0MQ: http://zeromq.org/\n.. _Python: https://www.python.org/\n.. _virtualenv: https://virtualenv.pypa.io/en/stable/\n.. _matrixio-protos-0.0.25: https://pypi.org/project/matrix-io-proto\n.. _pypi: https://pypi.org/\n.. _MATRIX-MALOS services: https://matrix-io.github.io/matrix-documentation/matrix-core/getting-started/understanding-core/\n\n\n\n", "description_content_type": "", "docs_url": null, "download_url": "", "downloads": { "last_day": -1, "last_month": -1, "last_week": -1 }, "home_page": "https://github.com/matrix-io/malos-python", "keywords": "", "license": "GPLv3", "maintainer": "", "maintainer_email": "", "name": "matrix-io-malos", "package_url": "https://pypi.org/project/matrix-io-malos/", "platform": "", "project_url": "https://pypi.org/project/matrix-io-malos/", "project_urls": { "Homepage": "https://github.com/matrix-io/malos-python" }, "release_url": "https://pypi.org/project/matrix-io-malos/0.4.1/", "requires_dist": [ "docopt (==0.6.2)", "matrix-io-proto (>=0.0.32)", "pyzmq (>=18.0.1)", "coverage ; extra == 'test'", "pytest ; extra == 'test'", "pytest-cov ; extra == 'test'" ], "requires_python": "", "summary": "MATRIX Labs MALOS libraries", "version": "0.4.1" }, "last_serial": 5184350, "releases": { "0.1.0": [ { "comment_text": "", "digests": { "md5": "d313dcc1ad224cfca01931961a98030b", "sha256": "e439ea6cf5ce82b17a54f0d5573e2f0c4f52c35c0e06d1760891cb75abf9eaf0" }, "downloads": -1, "filename": "matrix_io-malos-0.1.0.tar.gz", "has_sig": false, "md5_digest": "d313dcc1ad224cfca01931961a98030b", "packagetype": "sdist", "python_version": "source", "requires_python": null, "size": 6278, "upload_time": "2018-08-23T20:27:22", "url": "https://files.pythonhosted.org/packages/f7/bb/92854791988d26a9ee00877f42dd28fb28a32e368c62c5af4702abd6fab4/matrix_io-malos-0.1.0.tar.gz" } ], "0.1.1": [ { "comment_text": "", "digests": { "md5": "f968223d29b26397436b839643135f05", "sha256": "4f0b74f540233228bfa51e6ced80c6cdd7499268ccf06f198d0095ac819fc38e" }, "downloads": -1, "filename": "matrix_io-malos-0.1.1.tar.gz", "has_sig": false, "md5_digest": "f968223d29b26397436b839643135f05", "packagetype": "sdist", "python_version": "source", "requires_python": null, "size": 6589, "upload_time": "2018-09-10T14:41:08", "url": "https://files.pythonhosted.org/packages/29/17/c6eb6aa01ee4b908b1b8329eb9c536c9a4cd2d048a1076cbf6eb631631d1/matrix_io-malos-0.1.1.tar.gz" } ], "0.2.0": [ { "comment_text": "", "digests": { "md5": "dc400af52fa6c8755e64a3f45447f55c", "sha256": "9ff461af81c5367bcde618b903e911a0cd5aa67278cedebf846357fa3985259f" }, "downloads": -1, "filename": "matrix_io_malos-0.2.0-py3-none-any.whl", "has_sig": false, "md5_digest": "dc400af52fa6c8755e64a3f45447f55c", "packagetype": "bdist_wheel", "python_version": "py3", "requires_python": null, "size": 21107, "upload_time": "2018-10-16T19:33:57", "url": "https://files.pythonhosted.org/packages/9d/a1/f16de9f72d0f3ecb17ce2e97dd47de17bf609d388fa5d9015f3edcccac8b/matrix_io_malos-0.2.0-py3-none-any.whl" }, { "comment_text": "", "digests": { "md5": "e8774ff7254f3cb1e990b52f0f3563a7", "sha256": "ee6defb08ab95dae32fe0eea05db628b4c512ca2961856c175ec912fcb19f01a" }, "downloads": -1, "filename": "matrix_io-malos-0.2.0.tar.gz", "has_sig": false, "md5_digest": "e8774ff7254f3cb1e990b52f0f3563a7", "packagetype": "sdist", "python_version": "source", "requires_python": null, "size": 7345, "upload_time": "2018-10-16T19:33:59", "url": "https://files.pythonhosted.org/packages/55/7b/2215bb46fee77ac69672d75f7b8c4959d34ea6bbfa2b12008085740d3c8c/matrix_io-malos-0.2.0.tar.gz" } ], "0.2.1": [ { "comment_text": "", "digests": { "md5": "bb5134cb1099837b47a4483ca28eec19", "sha256": "5b27601987c6e371952286338281bee4525bd5cd0881f81e883b7991eadc6e9c" }, "downloads": -1, "filename": "matrix_io_malos-0.2.1-py3-none-any.whl", "has_sig": false, "md5_digest": "bb5134cb1099837b47a4483ca28eec19", "packagetype": "bdist_wheel", "python_version": "py3", "requires_python": null, "size": 21106, "upload_time": "2018-10-17T19:31:57", "url": "https://files.pythonhosted.org/packages/5e/9b/d4efa5789357da683514440c27899f06e9533d8bdfb2d507e9a14487c32f/matrix_io_malos-0.2.1-py3-none-any.whl" }, { "comment_text": "", "digests": { "md5": "1efea8664b834dbaf194a6a8a99e2881", "sha256": "ed7e7adb0affdcbe07a471e8c45a28431ab5b48ca77769efc9753166fbb2b432" }, "downloads": -1, "filename": "matrix_io-malos-0.2.1.tar.gz", "has_sig": false, "md5_digest": "1efea8664b834dbaf194a6a8a99e2881", "packagetype": "sdist", "python_version": "source", "requires_python": null, "size": 7438, "upload_time": "2018-10-17T19:31:58", "url": "https://files.pythonhosted.org/packages/51/ff/6178f0acb243778d7e8057bd7fd32a34b010e6f61756b8be31f58cc04e23/matrix_io-malos-0.2.1.tar.gz" } ], "0.2.2": [ { "comment_text": "", "digests": { "md5": "f0c444b886d72a8de9e6393f24e43900", "sha256": "f5a4ba986ce6cc78ba4f4a0c75f82e8b7f3c74dc0f28a8949787688b7146176a" }, "downloads": -1, "filename": "matrix_io_malos-0.2.2-py3-none-any.whl", "has_sig": false, "md5_digest": "f0c444b886d72a8de9e6393f24e43900", "packagetype": "bdist_wheel", "python_version": "py3", "requires_python": null, "size": 21108, "upload_time": "2018-10-17T19:41:29", "url": "https://files.pythonhosted.org/packages/74/a4/84a4f5c8b37424a55696ae06d25dfbd19b10ef8bb6061f6dd30f8b597d51/matrix_io_malos-0.2.2-py3-none-any.whl" }, { "comment_text": "", "digests": { "md5": "64605811f978aa04bbb52fe04b12e685", "sha256": "9ca9fd7f8fe7f28a609eecb9ce8a98c372130e4a6d890aeddf7b46c4f161ea1f" }, "downloads": -1, "filename": "matrix_io-malos-0.2.2.tar.gz", "has_sig": false, "md5_digest": "64605811f978aa04bbb52fe04b12e685", "packagetype": "sdist", "python_version": "source", "requires_python": null, "size": 7441, "upload_time": "2018-10-17T19:41:30", "url": "https://files.pythonhosted.org/packages/1a/41/8b50f9c0a6b8093171f560f7322bea97db4983972e291359de1e399b164d/matrix_io-malos-0.2.2.tar.gz" } ], "0.3.0": [ { "comment_text": "", "digests": { "md5": "40b44992c6e2d86b68624e856ea200c6", "sha256": "29029a595f6b56f63a902a8ed652ddefd53ad45d50de3583e9a0f4996a63048b" }, "downloads": -1, "filename": "matrix_io_malos-0.3.0-py3-none-any.whl", "has_sig": false, "md5_digest": "40b44992c6e2d86b68624e856ea200c6", "packagetype": "bdist_wheel", "python_version": "py3", "requires_python": null, "size": 21261, "upload_time": "2018-11-07T20:00:51", "url": "https://files.pythonhosted.org/packages/1e/6c/5b3108c28c8f9d8b766746be741bb49e845cdc07401c23006db59f71e048/matrix_io_malos-0.3.0-py3-none-any.whl" }, { "comment_text": "", "digests": { "md5": "f61d155fbece31837306619b650e6764", "sha256": "cf52ad4a84c79266f11c3bfbabed850e90e6def5ba1f0cf8e53052c2bd07aa1a" }, "downloads": -1, "filename": "matrix_io-malos-0.3.0.tar.gz", "has_sig": false, "md5_digest": "f61d155fbece31837306619b650e6764", "packagetype": "sdist", "python_version": "source", "requires_python": null, "size": 7577, "upload_time": "2018-11-07T20:00:53", "url": "https://files.pythonhosted.org/packages/c5/ea/2feed78abdf0d592e38b737d09adf53daa32908e609021c89d0ad19b5505/matrix_io-malos-0.3.0.tar.gz" } ], "0.3.1": [ { "comment_text": "", "digests": { "md5": "ff1a299e30b3ed4c9d54fefac2e4ea08", "sha256": "d7828b340c2fc4a12c7bdbce6bb67e1e515cb8f5701ee976134504fcdfd99066" }, "downloads": -1, "filename": "matrix_io_malos-0.3.1-py3-none-any.whl", "has_sig": false, "md5_digest": "ff1a299e30b3ed4c9d54fefac2e4ea08", "packagetype": "bdist_wheel", "python_version": "py3", "requires_python": null, "size": 21472, "upload_time": "2018-11-08T19:05:21", "url": "https://files.pythonhosted.org/packages/26/69/792ae3ee5e52226f3b550e760aedaac7e72a609fd7a621758a7fde223df3/matrix_io_malos-0.3.1-py3-none-any.whl" }, { "comment_text": "", "digests": { "md5": "9f9ecad57edd21fd6eb7249cc2c35d6a", "sha256": "1d767c0776a6c298cab11ef8dbd3b7530cab244fb28a8f9908cdaf8663283667" }, "downloads": -1, "filename": "matrix_io-malos-0.3.1.tar.gz", "has_sig": false, "md5_digest": "9f9ecad57edd21fd6eb7249cc2c35d6a", "packagetype": "sdist", "python_version": "source", "requires_python": null, "size": 7763, "upload_time": "2018-11-08T19:05:22", "url": "https://files.pythonhosted.org/packages/82/5f/97eaa26e4bc083643147658751d5d3164a49ddb6c61bf60dd650838f8259/matrix_io-malos-0.3.1.tar.gz" } ], "0.3.2": [ { "comment_text": "", "digests": { "md5": "dd84d36c9f2427be3304f763cdda3010", "sha256": "856029ba36660e5dd95558eb9b1bd0faf1c1376e3739e5c8a9b2fcfaec9083a8" }, "downloads": -1, "filename": "matrix_io_malos-0.3.2-py3-none-any.whl", "has_sig": false, "md5_digest": "dd84d36c9f2427be3304f763cdda3010", "packagetype": "bdist_wheel", "python_version": "py3", "requires_python": null, "size": 21475, "upload_time": "2018-11-15T14:53:23", "url": "https://files.pythonhosted.org/packages/81/1a/c2a80b67b273d1c351b130a07446112a9c9df283322e688454f81fa17188/matrix_io_malos-0.3.2-py3-none-any.whl" }, { "comment_text": "", "digests": { "md5": "380a47f34690a261ea33162f4e3cd610", "sha256": "27e407314105ef5b01bf2f1a540553e16fa10695bc91f53299876eae42be7884" }, "downloads": -1, "filename": "matrix_io-malos-0.3.2.tar.gz", "has_sig": false, "md5_digest": "380a47f34690a261ea33162f4e3cd610", "packagetype": "sdist", "python_version": "source", "requires_python": null, "size": 7760, "upload_time": "2018-11-15T14:53:24", "url": "https://files.pythonhosted.org/packages/51/53/a9654e7ee76ea55f9967950e95f58aca6b35de50a3c6fc9cb658642b7245/matrix_io-malos-0.3.2.tar.gz" } ], "0.4.1": [ { "comment_text": "", "digests": { "md5": "84ad91afe714ee6234e2ac98dc794858", "sha256": "ff701b4f650ae45b6ea10c6a881a8809b080c310d2c97452ec88602d04cadc46" }, "downloads": -1, "filename": "matrix_io_malos-0.4.1-py3-none-any.whl", "has_sig": false, "md5_digest": "84ad91afe714ee6234e2ac98dc794858", "packagetype": "bdist_wheel", "python_version": "py3", "requires_python": null, "size": 21635, "upload_time": "2019-04-24T20:36:31", "url": "https://files.pythonhosted.org/packages/87/1a/96ccbd4e25c8e91f3075d0e8afafa28f5a6133de839270cd40fb9d4f812c/matrix_io_malos-0.4.1-py3-none-any.whl" }, { "comment_text": "", "digests": { "md5": "a5bebf0848a0e74bddd6cbb7c669b20e", "sha256": "ce185b1a5e16f4c0a7b9798dfcadcadbe441a4a1db87a8bc4a57e4b5c7e8b6e9" }, "downloads": -1, "filename": "matrix_io-malos-0.4.1.tar.gz", "has_sig": false, "md5_digest": "a5bebf0848a0e74bddd6cbb7c669b20e", "packagetype": "sdist", "python_version": "source", "requires_python": null, "size": 7891, "upload_time": "2019-04-24T20:36:33", "url": "https://files.pythonhosted.org/packages/1f/61/0283fbfcce9bc9103585be2551dac9806560d286d4c1cb6b564b91f1fb7f/matrix_io-malos-0.4.1.tar.gz" } ] }, "urls": [ { "comment_text": "", "digests": { "md5": "84ad91afe714ee6234e2ac98dc794858", "sha256": "ff701b4f650ae45b6ea10c6a881a8809b080c310d2c97452ec88602d04cadc46" }, "downloads": -1, "filename": "matrix_io_malos-0.4.1-py3-none-any.whl", "has_sig": false, "md5_digest": "84ad91afe714ee6234e2ac98dc794858", "packagetype": "bdist_wheel", "python_version": "py3", "requires_python": null, "size": 21635, "upload_time": "2019-04-24T20:36:31", "url": "https://files.pythonhosted.org/packages/87/1a/96ccbd4e25c8e91f3075d0e8afafa28f5a6133de839270cd40fb9d4f812c/matrix_io_malos-0.4.1-py3-none-any.whl" }, { "comment_text": "", "digests": { "md5": "a5bebf0848a0e74bddd6cbb7c669b20e", "sha256": "ce185b1a5e16f4c0a7b9798dfcadcadbe441a4a1db87a8bc4a57e4b5c7e8b6e9" }, "downloads": -1, "filename": "matrix_io-malos-0.4.1.tar.gz", "has_sig": false, "md5_digest": "a5bebf0848a0e74bddd6cbb7c669b20e", "packagetype": "sdist", "python_version": "source", "requires_python": null, "size": 7891, "upload_time": "2019-04-24T20:36:33", "url": "https://files.pythonhosted.org/packages/1f/61/0283fbfcce9bc9103585be2551dac9806560d286d4c1cb6b564b91f1fb7f/matrix_io-malos-0.4.1.tar.gz" } ] }