{ "info": { "author": "Sindre Hansen", "author_email": "sindre.hansen@blueye.no", "bugtrack_url": null, "classifiers": [ "License :: OSI Approved :: GNU Lesser General Public License v3 (LGPLv3)", "Programming Language :: Python :: 3", "Programming Language :: Python :: 3.7" ], "description": "# blueye.protocol\n[![Tests](https://github.com/BluEye-Robotics/blueye.protocol/workflows/PythonTests/badge.svg)](https://github.com/BluEye-Robotics/blueye.protocol/actions)\n\nThis repository contains a python library that defines how to communicate with the\nBlueye Pioneer. The Blueye Pioneer is an underwater drone made by Blueye Robotics, see\n[blueyerobotics.com](https://blueyerobotics.com) for more information.\n\nThe protocol itself is defined in two json files, one for UDP and one for TCP. These are\nstored as a submodule in this repository, and the python code is generated from these\ndefinitions.\n\nThis package requires Python 3.7 or newer.\n\n\n## Installation\n```shell\npip install blueye.protocol\n```\n\n## Development\n\n### Install poetry\nWe use Poetry for package management, install it like this\n\n``` shell\ncurl -sSL https://raw.githubusercontent.com/sdispater/poetry/master/get-poetry.py | python\n```\n\nfor more instructions see the [Poetry repository](https://github.com/sdispater/poetry).\n\n### Install the necessary Python version\nWe require Python v3.7 or newer, and many operating systems package an older version of\nPython the easiest (for Linux/OS X) is to use pyenv. Pyenv manages multiple Python\nversions in parallel for you.\n\nThe instructions below are for Linux (Ubuntu), but pyenv exist both for\n[macOS](https://github.com/pyenv/pyenv#homebrew-on-macos) and\n[Windows](https://github.com/pyenv-win/pyenv-win) and the instructions should be fairly\nsimilar.\n\nInstall pyenv, for more instructions see the [pyenv-installer](https://github.com/pyenv/pyenv-installer)\n\n``` shell\ncurl -L https://github.com/pyenv/pyenv-installer/raw/master/bin/pyenv-installer | bash\npyenv update\n```\n\nInstall the needed dependencies for building python 3.7.4\n``` shell\napt install -y make build-essential libssl-dev zlib1g-dev libbz2-dev \\\nlibreadline-dev libsqlite3-dev wget curl llvm libncurses5-dev libncursesw5-dev \\\nxz-utils tk-dev libffi-dev liblzma-dev python-openssl\n```\nThen build python with pyenv\n``` shell\npyenv install 3.7.4\n```\n\n### Create a virtual environment and install the dependencies\nUsing a virtual environment is not strictly necessary, but it greatly simplifies the\ndevelopment of Python packages.\n\nSince we already have pyenv installed we'll use it to create a virtual environment,\n\n``` shell\npyenv virtualenv 3.7.4 blueye_protocol\npyenv activate blueye_protocol\n```\n\nNow we're ready to install the python packages needed, by running poetry in the\nprojects root directory\n\n``` shell\npoetry install\n```\n\n### Code generators\n**Important**: This repository includes generated code. If the protocol definitions are\nchanged the generated files need to be updated and committed.\nThe generated protocol files are updated using the generators in the `generators`\nfolder. They can be run with `invoke generate_udp` or `invoke generate_tcp`.\nThe generators are run automatically before testing with.\n\n``` shell\ninvoke test\n```\n\n### Tests\nTest for the TCP client are written using pytest. Test for UDP client are written using\nunittest. All tests are run using pytest. The tests can be run using invoke (to ensure\nthat the protocol files are updated)\n\n``` shell\ninvoke test\n```\nor directly using pytest (if you don't want to generate the definitions)\n\n``` shell\npytest\n```\n\n### `setup.py`\nSince bitbake doesn't have support for pyproject.toml files yet, we need to include a\n`setup.py` file to specify the dependencies needed. There's an invoke task for\ngenerating the file that can be run with\n``` shell\ninvoke generate-setup-py\n```\n\n**Be sure to run this script and commit the `setup.py` file when the dependencies have\nchanged.**\n", "description_content_type": "text/markdown", "docs_url": null, "download_url": "", "downloads": { "last_day": -1, "last_month": -1, "last_week": -1 }, "home_page": "https://www.blueyerobotics.com", "keywords": "Blueye,Pioneer,Robotics,Protocol", "license": "LGPL-3.0", "maintainer": "Sindre Hansen", "maintainer_email": "sindre.hansen@blueye.no", "name": "blueye.protocol", "package_url": "https://pypi.org/project/blueye.protocol/", "platform": "", "project_url": "https://pypi.org/project/blueye.protocol/", "project_urls": { "Homepage": "https://www.blueyerobotics.com", "Repository": "https://github.com/blueye-robotics/blueye.protocol" }, "release_url": "https://pypi.org/project/blueye.protocol/1.1.3/", "requires_dist": [ "numpy (>=1.17,<2.0)", "setuptools (>=40)" ], "requires_python": ">=3.7,<4.0", "summary": "Python protocol definition for the Blueye Pioneer", "version": "1.1.3" }, "last_serial": 5891301, "releases": { "1.1.2": [ { "comment_text": "", "digests": { "md5": "d84e7064a9d53a62eb51b5b3ca90f6af", "sha256": "edc737e9c1ad6620a655370d28d6e0bf782c63da2007572231feb3daffa3c4cf" }, "downloads": -1, "filename": "blueye.protocol-1.1.2-py3-none-any.whl", "has_sig": false, "md5_digest": "d84e7064a9d53a62eb51b5b3ca90f6af", "packagetype": "bdist_wheel", "python_version": "py3", "requires_python": ">=3.7,<4.0", "size": 12852, "upload_time": "2019-09-25T13:57:14", "url": "https://files.pythonhosted.org/packages/95/58/58544f19f71ca5b9a334cb1c9dfe59a88f4faff49ac7c8b1a246466165e2/blueye.protocol-1.1.2-py3-none-any.whl" }, { "comment_text": "", "digests": { "md5": "105da98711da1731723f60fa93fd789a", "sha256": "75e8b77fe8bca88d315e9243a5410cb57e5f2eb0b9b5566808951016b129aaba" }, "downloads": -1, "filename": "blueye.protocol-1.1.2.tar.gz", "has_sig": false, "md5_digest": "105da98711da1731723f60fa93fd789a", "packagetype": "sdist", "python_version": "source", "requires_python": ">=3.7,<4.0", "size": 10813, "upload_time": "2019-09-25T13:57:22", "url": "https://files.pythonhosted.org/packages/5d/11/5509518dc0f5f2370e4a8a83b791562d56ab4df141377a732a6c11b13928/blueye.protocol-1.1.2.tar.gz" } ], "1.1.3": [ { "comment_text": "", "digests": { "md5": "288e2ad6038393be031fd8d158d5d2b3", "sha256": "14493d979e585558460f21b7cfbe6f23a1bfbdef474f7599326a283c6c5a93ae" }, "downloads": -1, "filename": "blueye.protocol-1.1.3-py3-none-any.whl", "has_sig": false, "md5_digest": "288e2ad6038393be031fd8d158d5d2b3", "packagetype": "bdist_wheel", "python_version": "py3", "requires_python": ">=3.7,<4.0", "size": 14401, "upload_time": "2019-09-26T15:39:38", "url": "https://files.pythonhosted.org/packages/9f/8e/55e70d08d323ea861232bc19969d7da56b1dd711d6e054491903439ae3e1/blueye.protocol-1.1.3-py3-none-any.whl" }, { "comment_text": "", "digests": { "md5": "c82da2b2f69044da4b5071ad0817d376", "sha256": "e81a8d81baf0ef6cebd132e930d230507d86bd8fe97b99f0bb9bcd5b02973286" }, "downloads": -1, "filename": "blueye.protocol-1.1.3.tar.gz", "has_sig": false, "md5_digest": "c82da2b2f69044da4b5071ad0817d376", "packagetype": "sdist", "python_version": "source", "requires_python": ">=3.7,<4.0", "size": 14124, "upload_time": "2019-09-26T15:39:40", "url": "https://files.pythonhosted.org/packages/ef/a2/643bbb5b135685cc80e770c0f74fef5f912371829132607835125a65895f/blueye.protocol-1.1.3.tar.gz" } ] }, "urls": [ { "comment_text": "", "digests": { "md5": "288e2ad6038393be031fd8d158d5d2b3", "sha256": "14493d979e585558460f21b7cfbe6f23a1bfbdef474f7599326a283c6c5a93ae" }, "downloads": -1, "filename": "blueye.protocol-1.1.3-py3-none-any.whl", "has_sig": false, "md5_digest": "288e2ad6038393be031fd8d158d5d2b3", "packagetype": "bdist_wheel", "python_version": "py3", "requires_python": ">=3.7,<4.0", "size": 14401, "upload_time": "2019-09-26T15:39:38", "url": "https://files.pythonhosted.org/packages/9f/8e/55e70d08d323ea861232bc19969d7da56b1dd711d6e054491903439ae3e1/blueye.protocol-1.1.3-py3-none-any.whl" }, { "comment_text": "", "digests": { "md5": "c82da2b2f69044da4b5071ad0817d376", "sha256": "e81a8d81baf0ef6cebd132e930d230507d86bd8fe97b99f0bb9bcd5b02973286" }, "downloads": -1, "filename": "blueye.protocol-1.1.3.tar.gz", "has_sig": false, "md5_digest": "c82da2b2f69044da4b5071ad0817d376", "packagetype": "sdist", "python_version": "source", "requires_python": ">=3.7,<4.0", "size": 14124, "upload_time": "2019-09-26T15:39:40", "url": "https://files.pythonhosted.org/packages/ef/a2/643bbb5b135685cc80e770c0f74fef5f912371829132607835125a65895f/blueye.protocol-1.1.3.tar.gz" } ] }