{ "info": { "author": "Andre Santos", "author_email": "andre.f.santos@inesctec.pt", "bugtrack_url": null, "classifiers": [], "description": ".. role:: math(raw)\n :format: html latex\n..\n\nHAROS\n=====\n\nHAROS is a framework for static analysis of ROS-based code. It has been\npublished in the IROS 2016 conference. If you want to cite HAROS in your\npublications, please cite the `original\npaper `__.\n\n*Static analysis* consists on **extracting information** from the source\ncode **without executing** it (and, sometimes, even without compiling\nit). The kind of properties that can be verified include simple\nconformity checks, such as checking whether a variable is initialised,\nto more complex properties, such as functional behavior of the program.\nThis allows **early detection of problems** in the software development\nlife cycle, which would otherwise go unnoticed into later stages or even\ninto production.\n\nNeedless to say, sometimes in robotics it is very hard (or very\nexpensive) to properly test software, not to talk about possible risks.\nHence the appeal of static analysis.\n\nCurrent Status\n--------------\n\nHAROS is still being developed, as of March 2018.\n\nInstallation\n------------\n\nHere are some instructions to help you get HAROS running in your\nmachine. This assumes that you already have a **working installation of\nROS**. HAROS has been tested with *ROS Indigo* and *ROS Kinetic*, on\n*Linux Mint* and *Linux Ubuntu*. These setups should provide you with\nmost of the basic dependencies of HAROS, namely **Python 2.7** and a\n**Web browser** (if you want to use the visualiser).\n\n**NOTE** This tool depends on other analysis tools. If you would rather\ninstall these dependencies first, then ``Ctrl+F``\n*:math:`dependencies`*. Otherwise, just keep reading.\n\nMethod 1: Running Without Installation\n~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~\n\nThere is an executable script in the root of this repository to help you\nget started. It allows you to run haros without installing it. Make sure\nthat your terminal is at the root of the repository.\n\n.. code:: bash\n\n cd haros\n python haros-runner.py <args>\n\nYou can also run it with the executable package syntax.\n\n.. code:: bash\n\n python -m haros <args>\n\nMethod 2: Installing HAROS on Your Machine\n~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~\n\nYou can install HAROS from source or from a wheel.\nEither of the following commands will install HAROS for you.\n\n.. code:: bash\n\n [sudo] pip install haros\n python setup.py install\n\nAfter installation, you should be able to run the command ``haros`` in\nyour terminal from anywhere.\n\nRequirements\n~~~~~~~~~~~~\n\nBefore you can actually run analyses with HAROS, you need to perform\nsome initialisation operations. These operations include downloading a\nbasic set of analysis plugins. Do so with:\n\n.. code:: bash\n\n haros init\n\n**Note:** if you opted for running HAROS without installing it, replace\n``haros`` with your preferred method.\n\nAfter initialisation, you still need to install some analysis tools that\nHAROS uses behind the curtains. Install these *:math:`dependencies`*\nwith the following commands.\n\n.. code:: bash\n\n [sudo] apt-get install cppcheck\n [sudo] apt-get install cccc\n pip install -e git+https://github.com/timtadh/pyflwor.git#egg=pyflwor\n\nIf you want to use the model extraction features of HAROS, you must install\nadditional *:math:`dependencies`*.\nThese features are only available for C++ code as of now.\n\n.. code:: bash\n\n [sudo] pip install -Iv clang==3.8\n [sudo] apt-get install libclang-3.8-dev\n\nOptional step: set up the ``LD_LIBRARY_PATH`` environment variable to point to\nthe ``libclang.so`` shared library. Example:\n\n.. code:: bash\n\n export LD_LIBRARY_PATH=$LD_LIBRARY_PATH:/usr/lib/llvm-3.8/lib\n\nIf you do not perform this step and your library is installed in a different path,\nyou will need to specify it in the configuration file located in\n``~/.haros/index.yaml``. This file becomes available after running the\n``init`` command of HAROS (details below).\n\nHAROS is now installed and ready to use.\n\nUsage\n-----\n\nHere is a basic example to help you get started with HAROS. Additional\nexamples should be added in a future update.\n\nHAROS works with the concept of **project files**. These files are more\nor less an equivalent to a project description, and they tell HAROS\nwhich packages you want to analyse. For this basic example, you should\nhave the packages installed, and with available source code. If you run\n``rospack find my_package`` and it returns the location of your\npackage's source code, you're good to go.\n\nHAROS will only use one project file at a time, but you can create as many\nas you want (*e.g.* one for each of your robots). The default project file\n(empty) lies in ``~/.haros/index.yaml``, but feel free to create your\nown, like so.\n\n.. code:: bash\n\n touch my_index.yaml\n nano my_index.yaml\n\nAnd ``my_index.yaml``'s contents:\n\n.. code:: yaml\n\n %YAML 1.1\n ---\n packages:\n - package1\n - package2\n - package3\n\nNow, you are ready to run analysis and visualisation on the given list\nof packages.\n\n.. code:: bash\n\n haros full -p my_index.yaml\n\nThe ``full`` command tells HAROS to run analysis and then visualisation.\nIf you just want to run analysis, use the ``analyse`` command instead.\n\nThe ``-p`` option lets you specify an project file of your own, instead of\nusing the default one.\n\nWhen the analysis finishes, HAROS should start a visualisation server\nand your web browser on the appropriate page. To exit, just close your\nbrowser and press ``Enter`` on the terminal.\n\nIf you want to analyse several projects, or groups of packages, it is\nrecommended to create an project file for each project, and define a project\nname as well. This way, HAROS will store analysis results separately.\nExample:\n\n.. code:: yaml\n\n %YAML 1.1\n ---\n project: my_robot\n packages:\n - package1\n - package2\n\nBelow you can find the basic commands that HAROS provides.\n\nharos init\n~~~~~~~~~~\n\nThis command runs initialisation and setup operations. This command\nneeds to be run before the first analysis takes place. You can also run\nthis command later on when you update HAROS.\n\nharos analyse\n~~~~~~~~~~~~~\n\nThis command runs analysis and model extraction on a given list of packages.\n\nharos analyse (no options)\n^^^^^^^^^^^^^^^^^^^^^^^^^^\n\nRuns analysis with the list of packages found within the default project\nfile (``~/.haros/index.yaml``). You are free to edit this file.\n\nharos analyse -p PROJECT_FILE\n^^^^^^^^^^^^^^^^^^^^^^^^^^^^^\n\nUses the given project file to run the analysis, instead of the default\none.\n\nharos analyse -r\n^^^^^^^^^^^^^^^^\n\nUses repository information when available. If HAROS cannot find one of\nthe packages you specified, it will look for it in the official ROS\ndistribution and download it.\n\nIf your package is not in the official distribution, you can modify your\nproject file to tell HAROS in which repository to look for the source\n(e.g. you can specify private repositories this way). Here is an\nexample:\n\n.. code:: yaml\n\n %YAML 1.1\n ---\n packages:\n - my_package\n repositories:\n repository_name:\n type: git\n url: https://github.com/git-user/repository_name.git\n version: master\n packages:\n - my_package\n - another_package\n\nThe only supported repository type, for now, is ``git``. There is\npartial support for ``hg`` and ``svn``, but these have not been fully\ntested.\n\nharos analyse -w PLUGIN [-w PLUGIN, ...]\n^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^\n\nWhitelist the given plugins. The analysis will **only** run these\nplugins. This option does not work with ``-b``.\n\nharos analyse -b PLUGIN [-b PLUGIN, ...]\n^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^\n\nBlacklist the given plugins. The analysis will **not** run these\nplugins. This option does not work with ``-w``.\n\nharos analyse -d DATA_DIR\n^^^^^^^^^^^^^^^^^^^^^^^^^\n\nExport analysis results to the given directory, instead of the default one.\nThis option will also install the visualisation files.\nIf ``DATA_DIR`` contains a previous analysis database for the current project\nwithin its tree, it will be loaded and new results will be added to that\ndatabase.\n\n**Note:** it is advised to use an empty/dedicated directory for this purpose.\nPrevious versions deleted any existing files within ``DATA_DIR``.\n\nharos analyse -n\n^^^^^^^^^^^^^^^^\n\nParse the source code of ROS nodes when possible, so as to extract a model from it.\nThis options produces a result similar to ``rqt_graph``, but without executing code.\n\n**Note:** this option requires that you have the appropriate parsing libraries\ninstalled (e.g. ``libclang`` for C++).\n\nharos analyse --no-cache\n^^^^^^^^^^^^^^^^^^^^^^^^\n\nDo not use cached data. This is useful, for instance, if you want to force nodes\nto be parsed again, despite any cached data.\n\nCaches are currently invalidated by source files modified more recently than the\nlast analysed versions. Use this option, for instance, if you replace a file with\nanother with a previous modification date.\n\nharos analyse --env\n^^^^^^^^^^^^^^^^^^^\n\nUse a full copy of your environment variables for the analysis.\n\nharos export\n~~~~~~~~~~~~\n\nThis command exports the analysis results (e.g. JSON files) to a\nlocation of your choosing. It assumes that some analyses were run\npreviously.\n\nharos export DATA_DIR\n^^^^^^^^^^^^^^^^^^^^^\n\nExports analysis data to the given directory. This command will create\nfiles and directories within the given directory.\n\nharos export -v\n^^^^^^^^^^^^^^^\n\nExport visualisation files along with analysis data.\n\n**Note:** it is advised to use an empty/dedicated directory for this purpose.\nPrevious versions deleted any existing files within ``DATA_DIR``.\n\nharos export -p PROJECT_NAME\n^^^^^^^^^^^^^^^^^^^^^^^^^^^^\n\nExport a specific project's data, instead of the default one.\nA special project name, ``all``, can be used to export all available projects.\n\nharos viz\n~~~~~~~~~\n\nThis command runs the visualisation only. It assumes that some analyses\nwere run previously.\n\nharos viz (no options)\n^^^^^^^^^^^^^^^^^^^^^^\n\nLaunches the web visualiser and the visualisation server at\n``localhost:8080``.\n\nharos viz -s HOST:PORT\n^^^^^^^^^^^^^^^^^^^^^^\n\nLaunches the web visusaliser and the visualisation server at the given\nhost.\n\nharos viz -d DATA_DIR\n^^^^^^^^^^^^^^^^^^^^^\n\nServe the given directory, instead of the default one.\n\nharos viz --headless\n^^^^^^^^^^^^^^^^^^^^\n\nStart the viz server without launching a web browser.\n\nharos full\n~~~~~~~~~~\n\nRuns analysis and visualisation. This command accepts the same options\nas ``haros analyse`` and ``haros viz``.\n\n\nSettings File\n-------------\n\nHAROS uses a configuration file (located at ``~/.haros/configs.yaml``) with\nsome default settings. These can be changed to meet your needs, and,\nin some cases, must be modified for the tool to function properly.\nFuture versions may expose more settings in this file.\nWhen applicable, command-line arguments will override the settings in this file.\n\nHere follows the current file structure.\n\n.. code:: yaml\n\n %YAML 1.1\n ---\n workspace: \"/path/to/catkin_ws\"\n environment: null\n plugin_blacklist: []\n cpp:\n parser_lib: \"/usr/lib/llvm-3.8/lib\"\n std_includes: \"/usr/lib/llvm-3.8/lib/clang/3.8.0/include\"\n compile_db: \"/path/to/catkin_ws/build\"\n\nworkspace\n~~~~~~~~~\n\nSpecifies a path to your ROS catkin workspace. This setting can be omitted or\nset to ``null``, in which case HAROS will attempt to find your default workspace,\nusing the same behaviour as the ``roscd`` tool.\n\nenvironment\n~~~~~~~~~~~\n\nSpecifies a mapping of variables (string keys and string values) to act as the\nenvironment variables used during analysis. This can be used to specify variables\nand values your system needs, making analyses yield the same results\nindependently of the machine you run HAROS on.\n\nThis value can be omitted or set to ``null``, in which case a *mostly* empty\nenvironment will be used for analysis.\n\nAlternatively, instead of a variable mapping, you can use the special value\n``copy``, which is a shortcut to use a copy of your local environment.\n\nplugin_blacklist\n~~~~~~~~~~~~~~~~\n\nSpecifies a list of plugins to be blacklisted by default.\n\ncpp\n~~~\n\nUnder this mapping there are settings related to parsing C++ files.\n\nparser_lib\n^^^^^^^^^^\n\nSpecifies the path to the directory containing your installation of ``libclang``.\nBy default, this is under ``/usr/lib/llvm-3.8/lib``.\n\n**Note:** this is a required setting by the clang compiler.\n\nstd_includes\n^^^^^^^^^^^^\n\nSpecifies the path to the directory containing the C++ standard includes\nprovided by ``libclang``.\nBy default, this is under ``/usr/lib/llvm-3.8/lib/clang/3.8.0/include``.\n\ncompile_db\n^^^^^^^^^^\n\nSpecifies the path to the directory containing a compilation database\n(a ``compile_commands.json`` file). By default, this is under the ``build`` directory\nwithin your catkin workspace.\n\nThis setting can be set to ``null``, in which case HAROS will try to use the\ndefault location.\n\nAlternatively, this setting can be set to ``false``, in which case HAROS will not\nuse a compilation database to parse C++ files.\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/git-afsantos/haros", "keywords": "static-analysis ros", "license": "MIT", "maintainer": "", "maintainer_email": "", "name": "haros", "package_url": "https://pypi.org/project/haros/", "platform": "", "project_url": "https://pypi.org/project/haros/", "project_urls": { "Homepage": "https://github.com/git-afsantos/haros" }, "release_url": "https://pypi.org/project/haros/3.7.0/", "requires_dist": [ "pyyaml", "rospkg", "bonsai-code (<1.0.0,>=0.4.10)", "haros-plugins (<2.0.0,>=1.0.3)" ], "requires_python": "", "summary": "Static analysis framework for ROS.", "version": "3.7.0" }, "last_serial": 5799429, "releases": { "0.1.1": [ { "comment_text": "", "digests": { "md5": "dd7a084d58fac66f91d00ff4c1a56b72", "sha256": "261d480e46034c93e6c0eb11d2eb970eabcb3ee8c9acbd2a7f05e510b07f1d95" }, "downloads": -1, "filename": "haros-0.1.1-py2.7.egg", "has_sig": false, "md5_digest": "dd7a084d58fac66f91d00ff4c1a56b72", "packagetype": "bdist_egg", "python_version": "2.7", "requires_python": null, "size": 750444, "upload_time": "2017-05-22T18:33:09", "url": "https://files.pythonhosted.org/packages/2e/0d/194e2f91cf857e259711f4cd4d2242125fa96a5537ac2c9314c994e35aed/haros-0.1.1-py2.7.egg" }, { "comment_text": "", "digests": { "md5": "38404d30867dbafc1a0f1fd570ac19f1", "sha256": "a48f28ecbb8a65dae74ef90159a42ddd088681f76624dbb42a5fa661b4d4952a" }, "downloads": -1, "filename": "haros-0.1.1.tar.gz", "has_sig": false, "md5_digest": "38404d30867dbafc1a0f1fd570ac19f1", "packagetype": "sdist", "python_version": "source", "requires_python": null, "size": 705624, "upload_time": "2017-05-22T18:33:06", "url": "https://files.pythonhosted.org/packages/ea/9a/444a123b24cd1e505af4e0e25fb17786cf2c73d158686aa8be4dc40ad88d/haros-0.1.1.tar.gz" } ], "0.1.2": [ { "comment_text": "", "digests": { "md5": "76fc79aaab8e0a1bd02fafab0be0c206", "sha256": "0f001db2406a68a3868688e66ef89a7a801066e93fb122034fd17c2acd3e998b" }, "downloads": -1, "filename": "haros-0.1.2-py2.7.egg", "has_sig": false, "md5_digest": "76fc79aaab8e0a1bd02fafab0be0c206", "packagetype": "bdist_egg", "python_version": "2.7", "requires_python": null, "size": 1491502, "upload_time": "2017-05-23T15:36:56", "url": "https://files.pythonhosted.org/packages/76/10/90463af99a1f42a06ce51b09d62f0a0fbf15a60015e5e11764472945df68/haros-0.1.2-py2.7.egg" }, { "comment_text": "", "digests": { "md5": "fc9e5554a6366ff08424aa73f82d8b02", "sha256": "48d1650ca20e28e5eb060240ea1146cd64f7083269afe308eb249da39db867eb" }, "downloads": -1, "filename": "haros-0.1.2.tar.gz", "has_sig": false, "md5_digest": "fc9e5554a6366ff08424aa73f82d8b02", "packagetype": "sdist", "python_version": "source", "requires_python": null, "size": 707758, "upload_time": "2017-05-23T15:36:52", "url": "https://files.pythonhosted.org/packages/00/e8/b9b125eeeba38a7a361b8b9351ce98af77e8f70f1f693ea52ca3c568e9c6/haros-0.1.2.tar.gz" } ], "0.1.4-2": [ { "comment_text": "", "digests": { "md5": "1033863c8984f7788134448621b562a1", "sha256": "b70cf24a45ca0396f62e401397d0d12302417abaffdfdccde862c46fbd61798d" }, "downloads": -1, "filename": "haros-0.1.4_2-py2.7.egg", "has_sig": false, "md5_digest": "1033863c8984f7788134448621b562a1", "packagetype": "bdist_egg", "python_version": "2.7", "requires_python": null, "size": 1494497, "upload_time": "2017-05-31T15:54:08", "url": "https://files.pythonhosted.org/packages/fc/08/c8633beddc4528ffd8a803fcd442fe107d3bce5b7d51525c262d3fd6d7fb/haros-0.1.4_2-py2.7.egg" }, { "comment_text": "", "digests": { "md5": "76cf04c0624761cd36325c112d153e7a", "sha256": "93bc644b4e7684127d5f2a31265c1d321e2e03ff966144bb6788ca206a128e33" }, "downloads": -1, "filename": "haros-0.1.4-2.tar.gz", "has_sig": false, "md5_digest": "76cf04c0624761cd36325c112d153e7a", "packagetype": "sdist", "python_version": "source", "requires_python": null, "size": 709521, "upload_time": "2017-05-31T15:54:04", "url": "https://files.pythonhosted.org/packages/21/22/4ec1e46527007b2020cd118b9634ddf7347f19360e806c870986a933f6db/haros-0.1.4-2.tar.gz" } ], "0.1.4-4": [ { "comment_text": "", "digests": { "md5": "e24e0ba5ec2f5ff55c19e29a9eb380f4", "sha256": "985e7b1e1cbdf079f9ed35339d1506e1fc7d01d06a6bec1acd0e3c1816ac3d02" }, "downloads": -1, "filename": "haros-0.1.4_4-py2-none-any.whl", "has_sig": false, "md5_digest": "e24e0ba5ec2f5ff55c19e29a9eb380f4", "packagetype": "bdist_wheel", "python_version": "py2", "requires_python": null, "size": 1447904, "upload_time": "2017-07-14T20:21:57", "url": "https://files.pythonhosted.org/packages/33/3e/06f3f2312aaae2b2b3166bd9708e903efa99cf806700669623eb2ef18685/haros-0.1.4_4-py2-none-any.whl" }, { "comment_text": "", "digests": { "md5": "3243ff0ed32ba59c0b4ae4cbff82b469", "sha256": "e6fa1a055cf6331ed61a4b357dfbb20c8b54e1a963947314a6613eae6b174c36" }, "downloads": -1, "filename": "haros-0.1.4-4.tar.gz", "has_sig": false, "md5_digest": "3243ff0ed32ba59c0b4ae4cbff82b469", "packagetype": "sdist", "python_version": "source", "requires_python": null, "size": 709512, "upload_time": "2017-07-14T20:22:02", "url": "https://files.pythonhosted.org/packages/9b/56/61bec737953e1d668b20365a1efe94aee78e57ee710d03874d9332a4880d/haros-0.1.4-4.tar.gz" } ], "0.1.5": [ { "comment_text": "", "digests": { "md5": "a211f93192f755966d65063dd767ebe0", "sha256": "aeb6b4540e5cf7c6f09dd1465cd7e7fc8d17d2cd2a6328aa9229ff54fb081aa2" }, "downloads": -1, "filename": "haros-0.1.5-py2-none-any.whl", "has_sig": false, "md5_digest": "a211f93192f755966d65063dd767ebe0", "packagetype": "bdist_wheel", "python_version": "py2", "requires_python": null, "size": 1447976, "upload_time": "2017-07-14T20:32:08", "url": "https://files.pythonhosted.org/packages/db/3b/7fbdfad563dc3e5c839cc5f12f1b97106699e0c30d45a352179f8dec0425/haros-0.1.5-py2-none-any.whl" }, { "comment_text": "", "digests": { "md5": "a37cf77bfe17201e2b2d5d44169870fd", "sha256": "04bc371551bec8e6a8aff6d6caf1a46928396b0a0e31d7e1b4b548d926e5f864" }, "downloads": -1, "filename": "haros-0.1.5.tar.gz", "has_sig": false, "md5_digest": "a37cf77bfe17201e2b2d5d44169870fd", "packagetype": "sdist", "python_version": "source", "requires_python": null, "size": 709591, "upload_time": "2017-07-14T20:32:13", "url": "https://files.pythonhosted.org/packages/f5/1a/31148bcc52c30c0a7f744535b3bc3c1f38d2ca3dc9fcc41b35b65ecbfc9a/haros-0.1.5.tar.gz" } ], "0.1.6": [ { "comment_text": "", "digests": { "md5": "0eee853951f8c48d91fdeb5fbdc3653f", "sha256": "66f1b8521fd4eda10d0a4c846bd410e712d7d8fe0bfa0150e476302748b1cb62" }, "downloads": -1, "filename": "haros-0.1.6-py2-none-any.whl", "has_sig": false, "md5_digest": "0eee853951f8c48d91fdeb5fbdc3653f", "packagetype": "bdist_wheel", "python_version": "py2", "requires_python": null, "size": 1448083, "upload_time": "2017-07-18T22:14:29", "url": "https://files.pythonhosted.org/packages/69/37/a9f87890bb2b846da85eca844e5c80e12331113f430da18ed3eab2c01390/haros-0.1.6-py2-none-any.whl" }, { "comment_text": "", "digests": { "md5": "477c073930a3063e93cea8a3d4a5b153", "sha256": "cad385005d08817a9c125132c6c33306cc692b3303473f1473e54a5e7e4e657e" }, "downloads": -1, "filename": "haros-0.1.6.tar.gz", "has_sig": false, "md5_digest": "477c073930a3063e93cea8a3d4a5b153", "packagetype": "sdist", "python_version": "source", "requires_python": null, "size": 709737, "upload_time": "2017-07-18T22:14:35", "url": "https://files.pythonhosted.org/packages/e3/4c/24f1363219e7324e31e243c97f7df05a0694c9d0fbb5693e726d69037bdf/haros-0.1.6.tar.gz" } ], "0.2.0": [ { "comment_text": "", "digests": { "md5": "a9c7a1f02936f6b07baf6f2ade1ee256", "sha256": "630d6556d83b8ab713e317161a2f38aa0f032e4b68e92d7ccdf0cfd3b438aebb" }, "downloads": -1, "filename": "haros-0.2.0-py2-none-any.whl", "has_sig": false, "md5_digest": "a9c7a1f02936f6b07baf6f2ade1ee256", "packagetype": "bdist_wheel", "python_version": "py2", "requires_python": null, "size": 1450949, "upload_time": "2017-09-20T16:29:38", "url": "https://files.pythonhosted.org/packages/91/6a/50623d809fda773ed28813581c1d02ecdfd65117b742b9b2303ac4ac8b13/haros-0.2.0-py2-none-any.whl" }, { "comment_text": "", "digests": { "md5": "51c5ba509c87c5730dbec259f66faf29", "sha256": "7994315b73a86e60b3399384777dd838c28447727003d72737d2a64ad148121a" }, "downloads": -1, "filename": "haros-0.2.0.tar.gz", "has_sig": false, "md5_digest": "51c5ba509c87c5730dbec259f66faf29", "packagetype": "sdist", "python_version": "source", "requires_python": null, "size": 711862, "upload_time": "2017-09-20T16:29:42", "url": "https://files.pythonhosted.org/packages/ad/83/a341cf81531a3ae7262d55491b027fba2e4e7908a457c8d74a34d3b9ac7e/haros-0.2.0.tar.gz" } ], "0.3.0": [ { "comment_text": "", "digests": { "md5": "5b7b361a780f77a8bafacf477bc793a9", "sha256": "f26c6f698dfdb7089f7cfc908c9e5982c6d2fb23a58fb29fb56217285887f355" }, "downloads": -1, "filename": "haros-0.3.0-py2-none-any.whl", "has_sig": false, "md5_digest": "5b7b361a780f77a8bafacf477bc793a9", "packagetype": "bdist_wheel", "python_version": "py2", "requires_python": null, "size": 1451132, "upload_time": "2017-10-25T21:39:38", "url": "https://files.pythonhosted.org/packages/3c/3b/e3f24133b54237e2a54a4cd738fbaecce1bb3d6f22674d051cfd24f9a2fe/haros-0.3.0-py2-none-any.whl" }, { "comment_text": "", "digests": { "md5": "898baa5a9650abe2a8afd8a8b7a003aa", "sha256": "df240633fc01cb79f339af99095ba6c8e8bb449fa6754650a97a575cc84b2a16" }, "downloads": -1, "filename": "haros-0.3.0.tar.gz", "has_sig": false, "md5_digest": "898baa5a9650abe2a8afd8a8b7a003aa", "packagetype": "sdist", "python_version": "source", "requires_python": null, "size": 711943, "upload_time": "2017-10-25T21:39:42", "url": "https://files.pythonhosted.org/packages/d2/65/3e3a4ab9c4379cb84e8f920b1a9e24a15c6ee4e7185ed8fa9d265225e07a/haros-0.3.0.tar.gz" } ], "1.0.0": [ { "comment_text": "", "digests": { "md5": "0a7733789bf16500cc60a5568f61b959", "sha256": "48bb0357f19e20903d8700a13f4452ba4c608fe9feddd5538c06126f664228d2" }, "downloads": -1, "filename": "haros-1.0.0-py2-none-any.whl", "has_sig": false, "md5_digest": "0a7733789bf16500cc60a5568f61b959", "packagetype": "bdist_wheel", "python_version": "py2", "requires_python": null, "size": 1452872, "upload_time": "2017-10-31T22:54:37", "url": "https://files.pythonhosted.org/packages/37/05/896b74f849e60aa26aef77774d908c2f8d32c34236b61d1a72dace9762bd/haros-1.0.0-py2-none-any.whl" }, { "comment_text": "", "digests": { "md5": "4609fe7c1c0fd3238054016547a2ccd3", "sha256": "beb9ae4b3ccbb43adcad836ec637172dad63e4ad3ba99761a7315a869b224a38" }, "downloads": -1, "filename": "haros-1.0.0.tar.gz", "has_sig": false, "md5_digest": "4609fe7c1c0fd3238054016547a2ccd3", "packagetype": "sdist", "python_version": "source", "requires_python": null, "size": 713024, "upload_time": "2017-10-31T22:54:42", "url": "https://files.pythonhosted.org/packages/d9/ce/fc9bfafa021543bd35dec6341a1e0c238468154a8daa1a230b5a25ff369f/haros-1.0.0.tar.gz" } ], "2.0.0": [ { "comment_text": "", "digests": { "md5": "a14d6800c432624b0b312b43608d7719", "sha256": "c3ec5dfe241ee017fe3395af1d05f248fdb9af23700c44ae8ec653ff70adb601" }, "downloads": -1, "filename": "haros-2.0.0-py2-none-any.whl", "has_sig": false, "md5_digest": "a14d6800c432624b0b312b43608d7719", "packagetype": "bdist_wheel", "python_version": "py2", "requires_python": null, "size": 1454511, "upload_time": "2017-11-04T18:16:12", "url": "https://files.pythonhosted.org/packages/fb/d5/1a701c2b2cd2182ef7e1d7578c7151e9d0b388a1751438afa399b3f984b1/haros-2.0.0-py2-none-any.whl" }, { "comment_text": "", "digests": { "md5": "f3e292904da760cb3b98372031a4a68f", "sha256": "bf04a375441266e3cc47af6232d00122aaa7723731b9e19bc3a5b5bb484bc153" }, "downloads": -1, "filename": "haros-2.0.0.tar.gz", "has_sig": false, "md5_digest": "f3e292904da760cb3b98372031a4a68f", "packagetype": "sdist", "python_version": "source", "requires_python": null, "size": 714072, "upload_time": "2017-11-04T18:16:17", "url": "https://files.pythonhosted.org/packages/53/9a/503a92e17dd7e7cf66ae632ad4f35274e730ef6ef5473d6cba0ba866fce3/haros-2.0.0.tar.gz" } ], "2.1.0": [ { "comment_text": "", "digests": { "md5": "833bf774e55ed40005138bf7401c80b8", "sha256": "1aee36e8ae806706ec26060fcff03d59c31a566a073fd85417b84c463cd8be3a" }, "downloads": -1, "filename": "haros-2.1.0-py2-none-any.whl", "has_sig": false, "md5_digest": "833bf774e55ed40005138bf7401c80b8", "packagetype": "bdist_wheel", "python_version": "py2", "requires_python": null, "size": 1454688, "upload_time": "2017-11-04T23:33:47", "url": "https://files.pythonhosted.org/packages/ce/bd/69158f7f44061982336472c22e63218c29b9bf9222a0564d9d727f21658a/haros-2.1.0-py2-none-any.whl" }, { "comment_text": "", "digests": { "md5": "ab17876d454ae5ac3cda8aa2f0d9c92d", "sha256": "717b853cf1a388773c6613bec9da61a7755df163994222ba327359bed7e022a6" }, "downloads": -1, "filename": "haros-2.1.0.tar.gz", "has_sig": false, "md5_digest": "ab17876d454ae5ac3cda8aa2f0d9c92d", "packagetype": "sdist", "python_version": "source", "requires_python": null, "size": 714153, "upload_time": "2017-11-04T23:33:54", "url": "https://files.pythonhosted.org/packages/46/5c/0f9baaddb0110e14f7eec82b7999bb5ee1fba7232f675602184e44d0154a/haros-2.1.0.tar.gz" } ], "2.1.1": [ { "comment_text": "", "digests": { "md5": "65b6caba6440718b8a582fbdbaf2c1c2", "sha256": "fdaa398770c4d20ee6d6528ea4125cf9e31a6a8b3d754f2a8bda119dcc8ac9bd" }, "downloads": -1, "filename": "haros-2.1.1-py2-none-any.whl", "has_sig": false, "md5_digest": "65b6caba6440718b8a582fbdbaf2c1c2", "packagetype": "bdist_wheel", "python_version": "py2", "requires_python": null, "size": 1454697, "upload_time": "2017-11-05T21:54:14", "url": "https://files.pythonhosted.org/packages/3a/28/78b21484e6b6dcf2d9a9a40396d590ea8ac8ce964f920cde268d7925b100/haros-2.1.1-py2-none-any.whl" }, { "comment_text": "", "digests": { "md5": "59435c3a46cbadf1574d79d7349b6c00", "sha256": "a6ff726552630a5a1b94e1497fb4a7ce44e66563361f18bdb8401351323ccc1c" }, "downloads": -1, "filename": "haros-2.1.1.tar.gz", "has_sig": false, "md5_digest": "59435c3a46cbadf1574d79d7349b6c00", "packagetype": "sdist", "python_version": "source", "requires_python": null, "size": 714141, "upload_time": "2017-11-05T21:54:17", "url": "https://files.pythonhosted.org/packages/28/5e/ec727e0e81e8b78478b6c8652db3093716cb22d29ec82584334953d512d9/haros-2.1.1.tar.gz" } ], "2.1.2": [ { "comment_text": "", "digests": { "md5": "b2a013128a75b65afef4343a58cc1741", "sha256": "a4f8dda01629323f22ca8bd3430c1be7c176d821b22ab6b1635e872c91dcc7f4" }, "downloads": -1, "filename": "haros-2.1.2-py2-none-any.whl", "has_sig": false, "md5_digest": "b2a013128a75b65afef4343a58cc1741", "packagetype": "bdist_wheel", "python_version": "py2", "requires_python": null, "size": 1454673, "upload_time": "2017-11-27T22:51:13", "url": "https://files.pythonhosted.org/packages/40/8a/a97d76b9246872dc777275c62a97fbb4f41ec47935df43b722d0fa871967/haros-2.1.2-py2-none-any.whl" }, { "comment_text": "", "digests": { "md5": "4b293e92f09481dda274f2d497fffbf5", "sha256": "bed20aca2bc5b3e7d3dc0369b1542ab58080486f7648d18fdb9eb092bc16257d" }, "downloads": -1, "filename": "haros-2.1.2.tar.gz", "has_sig": false, "md5_digest": "4b293e92f09481dda274f2d497fffbf5", "packagetype": "sdist", "python_version": "source", "requires_python": null, "size": 714151, "upload_time": "2017-11-27T22:51:17", "url": "https://files.pythonhosted.org/packages/4e/72/7ab4fc0a19902a173e766dd4893ec16ea23801970ea0414e04a64f405b21/haros-2.1.2.tar.gz" } ], "3.0.0": [ { "comment_text": "", "digests": { "md5": "8bcc297bdc84a3efb0464a61ba3808ca", "sha256": "a7d8341ed7d394f60c10caed3b21014a35e9aa8864163ad7b3f7e34806a9c47f" }, "downloads": -1, "filename": "haros-3.0.0-py2-none-any.whl", "has_sig": false, "md5_digest": "8bcc297bdc84a3efb0464a61ba3808ca", "packagetype": "bdist_wheel", "python_version": "py2", "requires_python": null, "size": 1509603, "upload_time": "2018-03-08T21:56:20", "url": "https://files.pythonhosted.org/packages/20/f9/333d2bff89564a70ff024a35ea6f1f3e1abd344bf4808f9b62742f602534/haros-3.0.0-py2-none-any.whl" }, { "comment_text": "", "digests": { "md5": "cbc0a3e4d3afb57bc5b313050b74b5b8", "sha256": "4458405f5272c1c35fbe3b08a3455c2b686cf6a44f3d16ea01de81965b06e454" }, "downloads": -1, "filename": "haros-3.0.0.tar.gz", "has_sig": false, "md5_digest": "cbc0a3e4d3afb57bc5b313050b74b5b8", "packagetype": "sdist", "python_version": "source", "requires_python": null, "size": 753461, "upload_time": "2018-03-08T21:56:24", "url": "https://files.pythonhosted.org/packages/49/25/06abd2a167e54bda6c9b388341f1216af56027bae4ab2ca055a3c1feb51a/haros-3.0.0.tar.gz" } ], "3.0.1": [ { "comment_text": "", "digests": { "md5": "20f86da9031d429637822f5aa992d321", "sha256": "0ca0f22d10a4e567e7b357245ba2e35272519e19cb84ddd591838f567df2a748" }, "downloads": -1, "filename": "haros-3.0.1-py2-none-any.whl", "has_sig": false, "md5_digest": "20f86da9031d429637822f5aa992d321", "packagetype": "bdist_wheel", "python_version": "py2", "requires_python": null, "size": 1509676, "upload_time": "2018-03-08T22:03:20", "url": "https://files.pythonhosted.org/packages/9e/3e/e3f2cd67459019b8cf599879ecb655b9cba8d1dc685cde31577bd90b6a46/haros-3.0.1-py2-none-any.whl" }, { "comment_text": "", "digests": { "md5": "626b3555fe2c7ad63bca82a6f6c67ada", "sha256": "ed27b340a9c61a502b4a743defc4cce381507727d22945d6b7dcc983aa910e1b" }, "downloads": -1, "filename": "haros-3.0.1.tar.gz", "has_sig": false, "md5_digest": "626b3555fe2c7ad63bca82a6f6c67ada", "packagetype": "sdist", "python_version": "source", "requires_python": null, "size": 753533, "upload_time": "2018-03-08T22:03:24", "url": "https://files.pythonhosted.org/packages/a3/2b/efbbe58c23226fa6beae087d9bd40766f07ce47af6dd8a43861ebfa03fbf/haros-3.0.1.tar.gz" } ], "3.0.2": [ { "comment_text": "", "digests": { "md5": "0bb76650c55c578a78cff2d6e2faa535", "sha256": "55cbcbdf63518dbe8bd32cfe9b8234760b06a6ebc35f00c6f33519423c5f0723" }, "downloads": -1, "filename": "haros-3.0.2-py2-none-any.whl", "has_sig": false, "md5_digest": "0bb76650c55c578a78cff2d6e2faa535", "packagetype": "bdist_wheel", "python_version": "py2", "requires_python": null, "size": 1509661, "upload_time": "2018-03-09T08:09:12", "url": "https://files.pythonhosted.org/packages/4f/dc/094b8c2c8c77451f8d07adde26d467ba4e25021dbccfa8e071dc43dd0c92/haros-3.0.2-py2-none-any.whl" }, { "comment_text": "", "digests": { "md5": "283125c1a9518df3e8a8e6a933920087", "sha256": "0279414d1749dff38c0b0f941a89be99184164dd8ffa80afeb82b87b28ed4112" }, "downloads": -1, "filename": "haros-3.0.2.tar.gz", "has_sig": false, "md5_digest": "283125c1a9518df3e8a8e6a933920087", "packagetype": "sdist", "python_version": "source", "requires_python": null, "size": 753408, "upload_time": "2018-03-09T08:09:19", "url": "https://files.pythonhosted.org/packages/a3/a5/a4fb58f576f2de0d425e60b196e3f7f8151e08bf9f5329a241dbf95822fe/haros-3.0.2.tar.gz" } ], "3.0.3": [ { "comment_text": "", "digests": { "md5": "ebf1d1f915637adb50f2949462c0211b", "sha256": "0dd6bc49ffb60b0a267ce3893adda5005b4dcabcb3ad6cb453f2e942449f0da7" }, "downloads": -1, "filename": "haros-3.0.3-py2-none-any.whl", "has_sig": false, "md5_digest": "ebf1d1f915637adb50f2949462c0211b", "packagetype": "bdist_wheel", "python_version": "py2", "requires_python": null, "size": 888486, "upload_time": "2018-03-12T13:43:15", "url": "https://files.pythonhosted.org/packages/c8/3e/cb1d61cd75e932abe39f8a040c3c0e6cd0fba09cdd016169af2670860007/haros-3.0.3-py2-none-any.whl" }, { "comment_text": "", "digests": { "md5": "0529f557818a633b964bb506652b8b06", "sha256": "e9e82e0f51544c4c0941e074c15544ebf1d926923de690899fb8ea976261bd68" }, "downloads": -1, "filename": "haros-3.0.3.tar.gz", "has_sig": false, "md5_digest": "0529f557818a633b964bb506652b8b06", "packagetype": "sdist", "python_version": "source", "requires_python": null, "size": 838038, "upload_time": "2018-03-12T13:43:21", "url": "https://files.pythonhosted.org/packages/6f/2e/ce7d34c5d3f0eca1ef8ad5123d850d8221cf0269c9e06e6a88ca3d49a679/haros-3.0.3.tar.gz" } ], "3.0.4": [ { "comment_text": "", "digests": { "md5": "a1dac6be514efb4ca1bd4a664496eef2", "sha256": "08ddadf658b8d3e100b3fd85fe7acb178145d786ba6539b14218282d92ae3ca1" }, "downloads": -1, "filename": "haros-3.0.4-py2-none-any.whl", "has_sig": false, "md5_digest": "a1dac6be514efb4ca1bd4a664496eef2", "packagetype": "bdist_wheel", "python_version": "py2", "requires_python": null, "size": 1509695, "upload_time": "2018-10-03T20:48:33", "url": "https://files.pythonhosted.org/packages/39/35/ba93123a981b09e255c9587a1ddbb6b9e492159674622a270c084ae67cb9/haros-3.0.4-py2-none-any.whl" }, { "comment_text": "", "digests": { "md5": "649eed13a65c580a83cd75ad7ddfdc25", "sha256": "d8404872f588a4b5d76e849f46112d7c9c2f3aab41d9bbedea33dda093d9b16a" }, "downloads": -1, "filename": "haros-3.0.4.tar.gz", "has_sig": false, "md5_digest": "649eed13a65c580a83cd75ad7ddfdc25", "packagetype": "sdist", "python_version": "source", "requires_python": null, "size": 753484, "upload_time": "2018-10-03T20:48:38", "url": "https://files.pythonhosted.org/packages/96/6d/ea0a1f70d7c15dea3f6adffa6062936f614c4318beb8894d29b49a437130/haros-3.0.4.tar.gz" } ], "3.0.5": [ { "comment_text": "", "digests": { "md5": "577a8eef33fd78aa2abd2f9b344589d4", "sha256": "cf8306e81c033afb33af2e182146d923f867012b441a774643de480875c79bc2" }, "downloads": -1, "filename": "haros-3.0.5-py2-none-any.whl", "has_sig": false, "md5_digest": "577a8eef33fd78aa2abd2f9b344589d4", "packagetype": "bdist_wheel", "python_version": "py2", "requires_python": null, "size": 783733, "upload_time": "2018-11-24T18:45:27", "url": "https://files.pythonhosted.org/packages/e8/cf/ccf0a52284897147468ce2bc3257cd2bc117675f8b374e0991f6f1ca9f46/haros-3.0.5-py2-none-any.whl" }, { "comment_text": "", "digests": { "md5": "118330585bb2fa42d28809fcd66c1896", "sha256": "04a81cf9e8220c3b64ce5fbf9a01c415c50f9b1467973e18d3e720eb9fab95e7" }, "downloads": -1, "filename": "haros-3.0.5.tar.gz", "has_sig": false, "md5_digest": "118330585bb2fa42d28809fcd66c1896", "packagetype": "sdist", "python_version": "source", "requires_python": null, "size": 756752, "upload_time": "2018-11-24T18:45:31", "url": "https://files.pythonhosted.org/packages/c5/97/64f90969da6bfb89a4911aca56ca9efacd0c2e8da92bedbc9faeb87cac20/haros-3.0.5.tar.gz" } ], "3.0.6": [ { "comment_text": "", "digests": { "md5": "2939e61a2a313e93c614836501190e4b", "sha256": "d1e2ab92e47772d0c42b19a1d34a85b757cf85dc9800adc49a8cfe7fc664524a" }, "downloads": -1, "filename": "haros-3.0.6-py2-none-any.whl", "has_sig": false, "md5_digest": "2939e61a2a313e93c614836501190e4b", "packagetype": "bdist_wheel", "python_version": "py2", "requires_python": null, "size": 1509697, "upload_time": "2018-12-17T08:38:02", "url": "https://files.pythonhosted.org/packages/df/aa/dcbc8334f7ca58cf8ca1c7f9228a67ec4f30455f192bc449125b66ecded4/haros-3.0.6-py2-none-any.whl" }, { "comment_text": "", "digests": { "md5": "9196d5bb01d0ecd9f25f4fd52a1f918f", "sha256": "39ff5cf04390db202448cdf84d682cc58a8d6a368e606c00e053c69a72968fe6" }, "downloads": -1, "filename": "haros-3.0.6.tar.gz", "has_sig": false, "md5_digest": "9196d5bb01d0ecd9f25f4fd52a1f918f", "packagetype": "sdist", "python_version": "source", "requires_python": null, "size": 753501, "upload_time": "2018-12-17T08:38:06", "url": "https://files.pythonhosted.org/packages/1c/64/d68e1850c5d96315930da4eb9acc252b4c4535d5f8db9cf5d853e0fa15e4/haros-3.0.6.tar.gz" } ], "3.0.7": [ { "comment_text": "", "digests": { "md5": "0572df5347ea2c0ede7cec93ede621c3", "sha256": "02456b09f5c6e4c211917d3d869451a670e5660822091d0629b32145934084ac" }, "downloads": -1, "filename": "haros-3.0.7-py2-none-any.whl", "has_sig": false, "md5_digest": "0572df5347ea2c0ede7cec93ede621c3", "packagetype": "bdist_wheel", "python_version": "py2", "requires_python": null, "size": 1510478, "upload_time": "2018-12-17T18:43:36", "url": "https://files.pythonhosted.org/packages/6e/df/098f0aa8d6b641524c9e1d6f0008b68047c7f92599f351a610b34a1c8c5e/haros-3.0.7-py2-none-any.whl" }, { "comment_text": "", "digests": { "md5": "61053a02ff049628accc2d9967d324ca", "sha256": "6ce68ba86cf5d61cf6212a25d1b81c7775c60896e23e313712f66a02672fea5b" }, "downloads": -1, "filename": "haros-3.0.7.tar.gz", "has_sig": false, "md5_digest": "61053a02ff049628accc2d9967d324ca", "packagetype": "sdist", "python_version": "source", "requires_python": null, "size": 754185, "upload_time": "2018-12-17T18:43:39", "url": "https://files.pythonhosted.org/packages/77/1f/a33a67b9579e4f0b327bfbcd5eebce7f3d2bff86042808a4995612e1d742/haros-3.0.7.tar.gz" } ], "3.1.0": [ { "comment_text": "", "digests": { "md5": "f501e6b880c8f13bde5285e0c43e5c74", "sha256": "ba35d544d06b15e4186ae169a2b64645bdd833bdc088fd82981803c608fac42e" }, "downloads": -1, "filename": "haros-3.1.0-py2-none-any.whl", "has_sig": false, "md5_digest": "f501e6b880c8f13bde5285e0c43e5c74", "packagetype": "bdist_wheel", "python_version": "py2", "requires_python": null, "size": 783768, "upload_time": "2019-01-30T16:53:31", "url": "https://files.pythonhosted.org/packages/70/b6/1f1cbe9fc033f36d1545eeb7562537fcfdd8bc921315a02c1f927a652898/haros-3.1.0-py2-none-any.whl" }, { "comment_text": "", "digests": { "md5": "498f3940acceba471050b9917c3adcd5", "sha256": "a664f655b860d6ed7618b1a8a595923bef5c9c661ead5754496bd86e22e97e68" }, "downloads": -1, "filename": "haros-3.1.0.tar.gz", "has_sig": false, "md5_digest": "498f3940acceba471050b9917c3adcd5", "packagetype": "sdist", "python_version": "source", "requires_python": null, "size": 756802, "upload_time": "2019-01-30T16:53:34", "url": "https://files.pythonhosted.org/packages/49/77/9c75d3c87a9d7e74e4bcf8a1fe7e7aeda6489fbfb0e66bb04f7fdb30beb3/haros-3.1.0.tar.gz" } ], "3.1.2": [ { "comment_text": "", "digests": { "md5": "25afeb64f87c4595c6947900e988f681", "sha256": "d06ffedaa94c4eb0b4431e4ae226ae9345dc9697daae16c2cfa1de2dd685001b" }, "downloads": -1, "filename": "haros-3.1.2-py2-none-any.whl", "has_sig": false, "md5_digest": "25afeb64f87c4595c6947900e988f681", "packagetype": "bdist_wheel", "python_version": "py2", "requires_python": null, "size": 784040, "upload_time": "2019-03-20T09:10:52", "url": "https://files.pythonhosted.org/packages/f5/ea/9033eace36a038c4f7f2fe4e0e57889cb44e1d2df490cb2547732088b758/haros-3.1.2-py2-none-any.whl" }, { "comment_text": "", "digests": { "md5": "957a89e461595200d7889a913dfcd9aa", "sha256": "70efff9fceb224c82b8cab1cd30e7e856060ed5fbe1585ec85af9816b584e693" }, "downloads": -1, "filename": "haros-3.1.2.tar.gz", "has_sig": false, "md5_digest": "957a89e461595200d7889a913dfcd9aa", "packagetype": "sdist", "python_version": "source", "requires_python": null, "size": 753484, "upload_time": "2019-03-20T09:10:56", "url": "https://files.pythonhosted.org/packages/d1/d9/79706f238227783da5d394f66e4b40976810f0cdb16b46e3067f7581f67d/haros-3.1.2.tar.gz" } ], "3.2.0": [ { "comment_text": "", "digests": { "md5": "f891659cab77bf8fb891d74de8946c5a", "sha256": "8468b94cfc199b26313ed469ee6e79e260e5e947a0f1f3c79ec18cda48a8b2d5" }, "downloads": -1, "filename": "haros-3.2.0-py2-none-any.whl", "has_sig": false, "md5_digest": "f891659cab77bf8fb891d74de8946c5a", "packagetype": "bdist_wheel", "python_version": "py2", "requires_python": null, "size": 785146, "upload_time": "2019-04-04T17:02:18", "url": "https://files.pythonhosted.org/packages/28/20/0f305e31f34a14d0a0698b412418ca3f80bc739a4d8643bcc85e1e3a24f2/haros-3.2.0-py2-none-any.whl" }, { "comment_text": "", "digests": { "md5": "81316b73496e9c46f5fb2d3a95665f94", "sha256": "f97cb66a14c6ed9e9798e15d3d72e52e056c1080043b0fb8e5877d5a6b308875" }, "downloads": -1, "filename": "haros-3.2.0.tar.gz", "has_sig": false, "md5_digest": "81316b73496e9c46f5fb2d3a95665f94", "packagetype": "sdist", "python_version": "source", "requires_python": null, "size": 757220, "upload_time": "2019-04-04T17:02:21", "url": "https://files.pythonhosted.org/packages/d2/4e/e0ef15f68f9169b09c0b0fabc10f2167ca631a7ac8063ae26d4919b90661/haros-3.2.0.tar.gz" } ], "3.2.1": [ { "comment_text": "", "digests": { "md5": "40a740c9cc5ff6e2e3cc7dbe6b9bfeb7", "sha256": "a172af96aaa8d05a76f6a4706f1d8c7839f39c4a3ae45337be1c78302a756bcc" }, "downloads": -1, "filename": "haros-3.2.1-py2-none-any.whl", "has_sig": false, "md5_digest": "40a740c9cc5ff6e2e3cc7dbe6b9bfeb7", "packagetype": "bdist_wheel", "python_version": "py2", "requires_python": null, "size": 785160, "upload_time": "2019-04-12T15:03:43", "url": "https://files.pythonhosted.org/packages/46/bc/f2a61e043f7c2f500d76e4f73103974a5eb2e286d522654bab6022cf9a28/haros-3.2.1-py2-none-any.whl" }, { "comment_text": "", "digests": { "md5": "e9f0de2596de0b1412b981923dbae030", "sha256": "e8b56ecfd57f82663c4412bc1004846d8bfe91842d43a8f02e52a3c6294cba3f" }, "downloads": -1, "filename": "haros-3.2.1.tar.gz", "has_sig": false, "md5_digest": "e9f0de2596de0b1412b981923dbae030", "packagetype": "sdist", "python_version": "source", "requires_python": null, "size": 754739, "upload_time": "2019-04-12T15:03:48", "url": "https://files.pythonhosted.org/packages/4d/c3/028f51d8f7dad3a9fe082440bb41520cbf2b574a49aeff8dc69bc64fa3a7/haros-3.2.1.tar.gz" } ], "3.2.2": [ { "comment_text": "", "digests": { "md5": "70e1eaf80f6d8e6e3b854f2db3ca9b54", "sha256": "280d66c5f7c9076a60816e16807caddf8b25d18be72898d5a29103a9c9c7cff5" }, "downloads": -1, "filename": "haros-3.2.2-py2-none-any.whl", "has_sig": false, "md5_digest": "70e1eaf80f6d8e6e3b854f2db3ca9b54", "packagetype": "bdist_wheel", "python_version": "py2", "requires_python": null, "size": 780569, "upload_time": "2019-05-14T13:34:49", "url": "https://files.pythonhosted.org/packages/02/87/832de44987145c9deafb3214431053034fd96cacc0ffbe567bca3601f93d/haros-3.2.2-py2-none-any.whl" }, { "comment_text": "", "digests": { "md5": "4ec36b2d2f3ad32d196a1443c37c1239", "sha256": "65f86f36b199b62a1b8428cbfebf587fc611d5d7998bff1b93457d24f8e129cc" }, "downloads": -1, "filename": "haros-3.2.2.tar.gz", "has_sig": false, "md5_digest": "4ec36b2d2f3ad32d196a1443c37c1239", "packagetype": "sdist", "python_version": "source", "requires_python": null, "size": 756240, "upload_time": "2019-05-14T13:34:53", "url": "https://files.pythonhosted.org/packages/c1/90/4fd6be78860c03fbd60a5b9be81fc6481f91ddd70c4880e8b1c7caed4c8f/haros-3.2.2.tar.gz" } ], "3.3.0": [ { "comment_text": "", "digests": { "md5": "6eb9f52f6123d7048bbb3d267f7e8f37", "sha256": "05f5f60cca9c53747b17b7606e699b13b42e157cbfe3e046fed3593ad9d5e97a" }, "downloads": -1, "filename": "haros-3.3.0-py2-none-any.whl", "has_sig": false, "md5_digest": "6eb9f52f6123d7048bbb3d267f7e8f37", "packagetype": "bdist_wheel", "python_version": "py2", "requires_python": null, "size": 784981, "upload_time": "2019-06-03T16:22:07", "url": "https://files.pythonhosted.org/packages/ce/f3/6fb3817352c5e13e3000c86452e5453e2c7af8d2d0f7a5d54daa364dfbf7/haros-3.3.0-py2-none-any.whl" }, { "comment_text": "", "digests": { "md5": "846786d69f9a1baca788d662ef698298", "sha256": "86ab685d7671887dba8a75be6d25cb1dc625d899e90141fbabaea5763d83e3f8" }, "downloads": -1, "filename": "haros-3.3.0.tar.gz", "has_sig": false, "md5_digest": "846786d69f9a1baca788d662ef698298", "packagetype": "sdist", "python_version": "source", "requires_python": null, "size": 756930, "upload_time": "2019-06-03T16:22:13", "url": "https://files.pythonhosted.org/packages/ea/41/dad1544820980c0c881be0ef3fc7062ac73ac8ba72633a3ff283414a1785/haros-3.3.0.tar.gz" } ], "3.3.2": [ { "comment_text": "", "digests": { "md5": "00e3c7019d1dc748142a40ab64846456", "sha256": "f230e41092097281e524933b728bf3787695868b5713feb5a0510ee2a3a224a1" }, "downloads": -1, "filename": "haros-3.3.2-py2-none-any.whl", "has_sig": false, "md5_digest": "00e3c7019d1dc748142a40ab64846456", "packagetype": "bdist_wheel", "python_version": "py2", "requires_python": null, "size": 785185, "upload_time": "2019-06-04T14:01:12", "url": "https://files.pythonhosted.org/packages/ba/67/f6bbed8deeb9345c968048509354835f2d3b7fabf984d2fc77b375ff313b/haros-3.3.2-py2-none-any.whl" }, { "comment_text": "", "digests": { "md5": "7f92bac04e5bea426bd448c110217173", "sha256": "cc33723079f983b1a30a4f2bfdf5453f4fad02c23628ae4c22fd2d08ce4b8b17" }, "downloads": -1, "filename": "haros-3.3.2.tar.gz", "has_sig": false, "md5_digest": "7f92bac04e5bea426bd448c110217173", "packagetype": "sdist", "python_version": "source", "requires_python": null, "size": 757238, "upload_time": "2019-06-04T14:01:16", "url": "https://files.pythonhosted.org/packages/4f/a4/21db08541ea1bf45c363df1fc611529986e302d2e3ff3662026d55ed1ba9/haros-3.3.2.tar.gz" } ], "3.3.3": [ { "comment_text": "", "digests": { "md5": "936179d1e750221e62a7aced10574ad5", "sha256": "28d576d0b8666127e03f668bc5e5015a7b71bd4a912858dfcf32814615207090" }, "downloads": -1, "filename": "haros-3.3.3-py2-none-any.whl", "has_sig": false, "md5_digest": "936179d1e750221e62a7aced10574ad5", "packagetype": "bdist_wheel", "python_version": "py2", "requires_python": null, "size": 786989, "upload_time": "2019-06-12T22:51:44", "url": "https://files.pythonhosted.org/packages/cc/47/316747040ec5af780a15daa8904caaddc5003f82f436ac84861df733e469/haros-3.3.3-py2-none-any.whl" }, { "comment_text": "", "digests": { "md5": "50ea85aedbaba748bd47ba6c12af65dc", "sha256": "ed9f526ba010a74012cc15aec43d3c16fd3ca5103ca4b2e49e58a935898fff4b" }, "downloads": -1, "filename": "haros-3.3.3.tar.gz", "has_sig": false, "md5_digest": "50ea85aedbaba748bd47ba6c12af65dc", "packagetype": "sdist", "python_version": "source", "requires_python": null, "size": 759939, "upload_time": "2019-06-12T22:51:51", "url": "https://files.pythonhosted.org/packages/57/f6/0cbb24de64f63f6da6672560049545838f4d972945d17b6a8797dbdc6ecd/haros-3.3.3.tar.gz" } ], "3.4.0": [ { "comment_text": "", "digests": { "md5": "1f537dbcff132319517e9c4fd4155d60", "sha256": "4de32523b9521d347a26487fde1e2046d5110e978757d7cc64f8ca542b922c98" }, "downloads": -1, "filename": "haros-3.4.0-py2-none-any.whl", "has_sig": false, "md5_digest": "1f537dbcff132319517e9c4fd4155d60", "packagetype": "bdist_wheel", "python_version": "py2", "requires_python": null, "size": 782764, "upload_time": "2019-06-14T14:04:31", "url": "https://files.pythonhosted.org/packages/7a/e8/c28a2b2617f02de6978b478938cfa8ecfbfcb0ad1bf5ddfe145341396788/haros-3.4.0-py2-none-any.whl" }, { "comment_text": "", "digests": { "md5": "cfd9b3189ec0f560f0991b3e2cf6dfb5", "sha256": "329caf54ea6dca6adfb0718f2fd8031dfb4d919d3263978db53d5ef41930db8d" }, "downloads": -1, "filename": "haros-3.4.0.tar.gz", "has_sig": false, "md5_digest": "cfd9b3189ec0f560f0991b3e2cf6dfb5", "packagetype": "sdist", "python_version": "source", "requires_python": null, "size": 760453, "upload_time": "2019-06-14T14:04:35", "url": "https://files.pythonhosted.org/packages/76/af/2999718907c2cd2ad23b298ab27b2032a6f30cd602ed11fa813328d10183/haros-3.4.0.tar.gz" } ], "3.4.1": [ { "comment_text": "", "digests": { "md5": "0ecd1c6f3d49c91f54171b929dcf23b9", "sha256": "c215d97a34fdf36b748c762f0685d314bec0391560d039d2738252374b213509" }, "downloads": -1, "filename": "haros-3.4.1-py2-none-any.whl", "has_sig": false, "md5_digest": "0ecd1c6f3d49c91f54171b929dcf23b9", "packagetype": "bdist_wheel", "python_version": "py2", "requires_python": null, "size": 782767, "upload_time": "2019-06-15T09:05:43", "url": "https://files.pythonhosted.org/packages/40/02/325f638acabafa00d30bde6f4b7057029b26fb81bf03ff34a4e5ca191e09/haros-3.4.1-py2-none-any.whl" }, { "comment_text": "", "digests": { "md5": "de83b880572d1ae3562f5c5f9083fe74", "sha256": "06fa5bdc94fb5923582c786e628ec8e9394c1f75005a6dd7d0e541f779516f98" }, "downloads": -1, "filename": "haros-3.4.1.tar.gz", "has_sig": false, "md5_digest": "de83b880572d1ae3562f5c5f9083fe74", "packagetype": "sdist", "python_version": "source", "requires_python": null, "size": 760473, "upload_time": "2019-06-15T09:05:46", "url": "https://files.pythonhosted.org/packages/2f/19/f1168a822b914d0fd454b45cc73a25f889b70949234fba02b2b6f74898cb/haros-3.4.1.tar.gz" } ], "3.5.0": [ { "comment_text": "", "digests": { "md5": "22162c8e09b9c69694a957c45a53b148", "sha256": "4a86f620b5393c56e34b98c1fd70a2a1c4599125d2e64397224a0dcb5af0d04b" }, "downloads": -1, "filename": "haros-3.5.0-py2-none-any.whl", "has_sig": false, "md5_digest": "22162c8e09b9c69694a957c45a53b148", "packagetype": "bdist_wheel", "python_version": "py2", "requires_python": null, "size": 782945, "upload_time": "2019-06-15T17:10:30", "url": "https://files.pythonhosted.org/packages/b6/c5/ab5b36c8e104d07ec5e58244df908a6896a986b674de595681f69461eccd/haros-3.5.0-py2-none-any.whl" }, { "comment_text": "", "digests": { "md5": "59eabf95de3a41e6c1a1c2281eb74e3a", "sha256": "d08bca0370b9ae11643a9d61e25d4901774fcf165f585e4105299baa4c9c00f1" }, "downloads": -1, "filename": "haros-3.5.0.tar.gz", "has_sig": false, "md5_digest": "59eabf95de3a41e6c1a1c2281eb74e3a", "packagetype": "sdist", "python_version": "source", "requires_python": null, "size": 760729, "upload_time": "2019-06-15T17:10:34", "url": "https://files.pythonhosted.org/packages/8c/3d/6da4e136cac0bbb05ee924a9a64bfe0bfaa90c381fbea990b631627ab480/haros-3.5.0.tar.gz" } ], "3.5.1": [ { "comment_text": "", "digests": { "md5": "7bd0369861f130a7ab0bc03e17ecab94", "sha256": "b988dc6995aa1e0eed489de84509a32585eed1db3de86856c4b42df2259ced35" }, "downloads": -1, "filename": "haros-3.5.1-py2-none-any.whl", "has_sig": false, "md5_digest": "7bd0369861f130a7ab0bc03e17ecab94", "packagetype": "bdist_wheel", "python_version": "py2", "requires_python": null, "size": 783069, "upload_time": "2019-06-17T18:20:12", "url": "https://files.pythonhosted.org/packages/ac/5d/e6a467d0006f52d2fb3b2fedb4b78f69d06688b260aed59fa291e6710566/haros-3.5.1-py2-none-any.whl" }, { "comment_text": "", "digests": { "md5": "437b3ec55233ef27026e280878a69463", "sha256": "d0857a26613ebd27474030f290665d104074f622b49cb2f1b923a31736d30f5b" }, "downloads": -1, "filename": "haros-3.5.1.tar.gz", "has_sig": false, "md5_digest": "437b3ec55233ef27026e280878a69463", "packagetype": "sdist", "python_version": "source", "requires_python": null, "size": 760822, "upload_time": "2019-06-17T18:20:16", "url": "https://files.pythonhosted.org/packages/66/8c/d85f10e0142367839dbaf4a784db847447b0e92ddf522a8eafa5bf956590/haros-3.5.1.tar.gz" } ], "3.5.2": [ { "comment_text": "", "digests": { "md5": "465c32e99dadbf00df8bb358a3835d07", "sha256": "c906390b1cd0c37cc9f3918e3977cc26d2e2fda65e6751f0238016fe4ed047c1" }, "downloads": -1, "filename": "haros-3.5.2-py2-none-any.whl", "has_sig": false, "md5_digest": "465c32e99dadbf00df8bb358a3835d07", "packagetype": "bdist_wheel", "python_version": "py2", "requires_python": null, "size": 783107, "upload_time": "2019-06-17T19:10:06", "url": "https://files.pythonhosted.org/packages/39/63/a37e4d61300705d8182e8ce56ab6f24562e9d8043336a86f16d761ee9832/haros-3.5.2-py2-none-any.whl" }, { "comment_text": "", "digests": { "md5": "2ad66c5ed8b0008936c66b82184d0631", "sha256": "9816e82d22c6be34192d3ab52443476a859e348b43af6011b99310612b4277c9" }, "downloads": -1, "filename": "haros-3.5.2.tar.gz", "has_sig": false, "md5_digest": "2ad66c5ed8b0008936c66b82184d0631", "packagetype": "sdist", "python_version": "source", "requires_python": null, "size": 760860, "upload_time": "2019-06-17T19:10:10", "url": "https://files.pythonhosted.org/packages/db/0d/b5cea680f7350421fd71627d2b1aff7cc251537b683b2415e1cdb616c0ec/haros-3.5.2.tar.gz" } ], "3.5.4": [ { "comment_text": "", "digests": { "md5": "878809ca5aa4a63f338d9f4ad39ea2ad", "sha256": "06201cc8cc7b2d7cd28727edd7b36f38ae0fe6f1b7f68749c3c4d3b1bcb5eef7" }, "downloads": -1, "filename": "haros-3.5.4-py2-none-any.whl", "has_sig": false, "md5_digest": "878809ca5aa4a63f338d9f4ad39ea2ad", "packagetype": "bdist_wheel", "python_version": "py2", "requires_python": null, "size": 783355, "upload_time": "2019-06-24T16:26:35", "url": "https://files.pythonhosted.org/packages/cd/a5/2083c8ff74c8abfdfa33ff3b29ca11988c49afbefe90f4f493c99f070aea/haros-3.5.4-py2-none-any.whl" }, { "comment_text": "", "digests": { "md5": "5a147ff34d131c5e3c9c8e500ceb4c65", "sha256": "cd33c9b969b71e88271cb78a4f88f8a527f3e86eb99c6c7aab5e6f6fcf54c4e8" }, "downloads": -1, "filename": "haros-3.5.4.tar.gz", "has_sig": false, "md5_digest": "5a147ff34d131c5e3c9c8e500ceb4c65", "packagetype": "sdist", "python_version": "source", "requires_python": null, "size": 761108, "upload_time": "2019-06-24T16:26:38", "url": "https://files.pythonhosted.org/packages/da/7f/84846f05989401f5de5c3dccee657266965b4e78b78504b280beb67a03f6/haros-3.5.4.tar.gz" } ], "3.5.5": [ { "comment_text": "", "digests": { "md5": "ef09e633c3435f818ae694d9154d81eb", "sha256": "af782b4dd7a4466eade3170c1c66b8cf248f00cd9382329ea0a3161f01dd70de" }, "downloads": -1, "filename": "haros-3.5.5-py2-none-any.whl", "has_sig": false, "md5_digest": "ef09e633c3435f818ae694d9154d81eb", "packagetype": "bdist_wheel", "python_version": "py2", "requires_python": null, "size": 786743, "upload_time": "2019-06-25T16:21:33", "url": "https://files.pythonhosted.org/packages/90/d1/55287cce3481771bf59164e44a31a7710150bb9bad698e0ab7f68bbfa843/haros-3.5.5-py2-none-any.whl" }, { "comment_text": "", "digests": { "md5": "4eaf8707065e14ee7c88276d907aa750", "sha256": "952db331b9c0a359233c8ecf074edfa0450c37dbd29bdc8a3f1037069e91c3f5" }, "downloads": -1, "filename": "haros-3.5.5.tar.gz", "has_sig": false, "md5_digest": "4eaf8707065e14ee7c88276d907aa750", "packagetype": "sdist", "python_version": "source", "requires_python": null, "size": 756973, "upload_time": "2019-06-25T16:21:40", "url": "https://files.pythonhosted.org/packages/e4/09/48b52a3db64edb0a04d7b45c5e90b6b85ff3a67d8fa7d94d8c498619cba6/haros-3.5.5.tar.gz" } ], "3.5.6": [ { "comment_text": "", "digests": { "md5": "ff32d7f420f735448b6788a633643665", "sha256": "844088ff25f5e0efb5ddfbf78b6774d7052821b97fa4865e371601e80d993965" }, "downloads": -1, "filename": "haros-3.5.6-py2-none-any.whl", "has_sig": false, "md5_digest": "ff32d7f420f735448b6788a633643665", "packagetype": "bdist_wheel", "python_version": "py2", "requires_python": null, "size": 783661, "upload_time": "2019-08-09T08:35:34", "url": "https://files.pythonhosted.org/packages/2d/1e/8ca525f03b3afeb956db77f95697c8b11939bbada0a46d874fd13f637e2e/haros-3.5.6-py2-none-any.whl" }, { "comment_text": "", "digests": { "md5": "ddfc3567a414c599c2e3a64ec7f9f43c", "sha256": "5aca3b6822cfa8fad32237d180996d129e1a8ff48257a8b6b3f620f78c16a269" }, "downloads": -1, "filename": "haros-3.5.6.tar.gz", "has_sig": false, "md5_digest": "ddfc3567a414c599c2e3a64ec7f9f43c", "packagetype": "sdist", "python_version": "source", "requires_python": null, "size": 761420, "upload_time": "2019-08-09T08:35:38", "url": "https://files.pythonhosted.org/packages/f0/f9/484be796a6ca7bd3b0bdec25972526741c229f1b5e53621eb45fce21d793/haros-3.5.6.tar.gz" } ], "3.6.0": [ { "comment_text": "", "digests": { "md5": "cbf83736e7bdb5f96357f869588a9a6d", "sha256": "453de913212821ada5a33931daebeb92c89ea43001ccd996dd5c0cbad4ac2685" }, "downloads": -1, "filename": "haros-3.6.0-py2-none-any.whl", "has_sig": false, "md5_digest": "cbf83736e7bdb5f96357f869588a9a6d", "packagetype": "bdist_wheel", "python_version": "py2", "requires_python": null, "size": 783739, "upload_time": "2019-08-19T13:12:17", "url": "https://files.pythonhosted.org/packages/80/e1/1400fcf72e5176e6ec083708cd31e0fc6ceb76cfd50010720fe04874c6db/haros-3.6.0-py2-none-any.whl" }, { "comment_text": "", "digests": { "md5": "3d7cbb16c1054ee97def563a6f64e7a8", "sha256": "8efed9d8f4c1ded4c5f588882151f754f3b1fef6a69e0bc4cb650e195b7ac404" }, "downloads": -1, "filename": "haros-3.6.0.tar.gz", "has_sig": false, "md5_digest": "3d7cbb16c1054ee97def563a6f64e7a8", "packagetype": "sdist", "python_version": "source", "requires_python": null, "size": 761516, "upload_time": "2019-08-19T13:12:23", "url": "https://files.pythonhosted.org/packages/4d/f1/97e7d182df51d92861f0781d3e80d8dbc9d9189837ede28d8fe5e73e6a51/haros-3.6.0.tar.gz" } ], "3.7.0": [ { "comment_text": "", "digests": { "md5": "64821beabe779da0392394f8597fb57b", "sha256": "f8dc61f801b3a2b96bb3019b47d6403a05e21708ced008470ac4d8660698fe49" }, "downloads": -1, "filename": "haros-3.7.0-py2-none-any.whl", "has_sig": false, "md5_digest": "64821beabe779da0392394f8597fb57b", "packagetype": "bdist_wheel", "python_version": "py2", "requires_python": null, "size": 803334, "upload_time": "2019-09-08T14:24:51", "url": "https://files.pythonhosted.org/packages/d9/fc/8286f279b5c17006003e61cd6a6b9968fe3863cde60479c16a248565a3d8/haros-3.7.0-py2-none-any.whl" }, { "comment_text": "", "digests": { "md5": "a98975df33ac47a6cb4f436e6c89556b", "sha256": "c9cc886df41da30b95c576b233e0857b026d0f5f7257afc49d672dee2fef1aa0" }, "downloads": -1, "filename": "haros-3.7.0.tar.gz", "has_sig": false, "md5_digest": "a98975df33ac47a6cb4f436e6c89556b", "packagetype": "sdist", "python_version": "source", "requires_python": null, "size": 767708, "upload_time": "2019-09-08T14:24:54", "url": "https://files.pythonhosted.org/packages/07/51/7fd84a742a0829a8972ddab0d251ca4f014464aa2fdb3ff2dec915f79be6/haros-3.7.0.tar.gz" } ] }, "urls": [ { "comment_text": "", "digests": { "md5": "64821beabe779da0392394f8597fb57b", "sha256": "f8dc61f801b3a2b96bb3019b47d6403a05e21708ced008470ac4d8660698fe49" }, "downloads": -1, "filename": "haros-3.7.0-py2-none-any.whl", "has_sig": false, "md5_digest": "64821beabe779da0392394f8597fb57b", "packagetype": "bdist_wheel", "python_version": "py2", "requires_python": null, "size": 803334, "upload_time": "2019-09-08T14:24:51", "url": "https://files.pythonhosted.org/packages/d9/fc/8286f279b5c17006003e61cd6a6b9968fe3863cde60479c16a248565a3d8/haros-3.7.0-py2-none-any.whl" }, { "comment_text": "", "digests": { "md5": "a98975df33ac47a6cb4f436e6c89556b", "sha256": "c9cc886df41da30b95c576b233e0857b026d0f5f7257afc49d672dee2fef1aa0" }, "downloads": -1, "filename": "haros-3.7.0.tar.gz", "has_sig": false, "md5_digest": "a98975df33ac47a6cb4f436e6c89556b", "packagetype": "sdist", "python_version": "source", "requires_python": null, "size": 767708, "upload_time": "2019-09-08T14:24:54", "url": "https://files.pythonhosted.org/packages/07/51/7fd84a742a0829a8972ddab0d251ca4f014464aa2fdb3ff2dec915f79be6/haros-3.7.0.tar.gz" } ] }