{ "info": { "author": "John-Paul Ore", "author_email": "jore@cse.unl.edu", "bugtrack_url": null, "classifiers": [ "Development Status :: 2 - Pre-Alpha", "Intended Audience :: Developers", "License :: OSI Approved :: MIT License", "Natural Language :: English", "Programming Language :: Python :: 2.7" ], "description": "## Phriky Units - Physical Unit Inconsistency Detection\n\nPhysical unit static analysis tool for ROS C++.\n\nWINNER: ISSTA 2017 Best Tool Demonstration\n\nARTIFACT -- Download Virtual Machine with phriky-units pre-installed (Ubuntu 16.04 VM 3 GB .ova).\n\n\"youtbe\n\n\\* Free software: MIT license .. \\*Lightweight static analysis Lightweight static analysis \n\n## Install (tested on Ubuntu 16.04 and OSX 10.12.6)\n\n`pip install phriky_units`\n\n**Requires Cppcheck greater than 1.75:**\n\n`apt-get install cppcheck` (Ubuntu 16.04)\n \n`brew install cppcheck` (OSX)\n \n`git clone git://github.com/danmar/cppcheck.git` (Ubuntu 14.04)\n\n\nExamples:\n=========\n\nYou can run examples by checking out:\n\n`git clone https://github.com/unl-nimbus-lab/phriky-units.git`\n\nThen from that directory run:\n\n`phriky_units ./examples/addition/src/action.cpp`\n\n`phriky_units ./examples/assignment/src/trajectory_planner_ros.cpp`\n\n`phriky_units ./examples/comparison/src/twist_marker.cpp`\n\nFeatures\n========\n\n- Detects physical unit inconsistencies, like adding quantities with different units, i.e. `meters` + `seconds`.\n- Lightweight static analysis\n- Path insensitive\n- No annotation burden\n- Low false positive rate (< 15% for \\`high-confidence\u2019 inconsistencies)\n- Works with [ROS]\n\nCredits\n=======\n\n[NIMBUS] Lab at the University of Nebraska, Lincoln\n\nThis work was supported in part by NSF awards \\#1638099 and \\#1526652, and USDA-NIFA \\#2013-67021-20947.\n\n [ROS]: http://www.ros.org\n [NIMBUS]: http://nimbus.unl.edu\n\n\n=======\nHistory\n=======\n\n0.1.0 (2016-08-31)\n------------------\n\n* First release on PyPI.", "description_content_type": null, "docs_url": null, "download_url": "", "downloads": { "last_day": -1, "last_month": -1, "last_week": -1 }, "home_page": "https://github.com/jpwco/phriky_units", "keywords": "phriky_units", "license": "MIT license", "maintainer": "", "maintainer_email": "", "name": "phriky-units", "package_url": "https://pypi.org/project/phriky-units/", "platform": "", "project_url": "https://pypi.org/project/phriky-units/", "project_urls": { "Homepage": "https://github.com/jpwco/phriky_units" }, "release_url": "https://pypi.org/project/phriky-units/0.1.39/", "requires_dist": null, "requires_python": "", "summary": "Physical unit static analysis tool for C++ +", "version": "0.1.39" }, "last_serial": 3195855, "releases": { "0.1.0a1": [ { "comment_text": "", "digests": { "md5": "4a1b46a07a17cbd9bdccd7ceef2fa5f1", "sha256": "a653930492c7622b5f4202137a71422846c099eb52ef221f329353a4024e2971" }, "downloads": -1, "filename": "phriky_units-0.1.0a1.tar.gz", "has_sig": false, "md5_digest": "4a1b46a07a17cbd9bdccd7ceef2fa5f1", "packagetype": "sdist", "python_version": "source", "requires_python": null, "size": 286469, "upload_time": "2016-08-31T18:44:28", "url": "https://files.pythonhosted.org/packages/fc/4f/bc6ad62eb12edc0356a40179a4e1c365c3dc4140aa75f3cf6ba73494bc99/phriky_units-0.1.0a1.tar.gz" } ], "0.1.0a2": [ { "comment_text": "", "digests": { "md5": "4c5cc45c13a8fef6deadf7a8767bea07", "sha256": "0732cafcb3af49fde68394920b6cf5dfc532dafc5f9df208fa239b34ee2d4356" }, "downloads": -1, "filename": "phriky_units-0.1.0a2.tar.gz", "has_sig": false, "md5_digest": "4c5cc45c13a8fef6deadf7a8767bea07", "packagetype": "sdist", "python_version": "source", "requires_python": null, "size": 286006, "upload_time": "2016-08-31T19:07:09", "url": "https://files.pythonhosted.org/packages/b2/60/2e30c84241132692ef98b3d342a9caefb581775b17d8a68cb65cb831a41a/phriky_units-0.1.0a2.tar.gz" } ], "0.1.0a21": [ { "comment_text": "", "digests": { "md5": "9dad98535a3bcf37ccb40f2c2ca23bfb", "sha256": "b28b61eb3dd2f3c9729c4c2d091745f83df9f8df8a08aea2eef3c193f583eaf2" }, "downloads": -1, "filename": "phriky_units-0.1.0a21.tar.gz", "has_sig": false, "md5_digest": "9dad98535a3bcf37ccb40f2c2ca23bfb", "packagetype": "sdist", "python_version": "source", "requires_python": null, "size": 286055, "upload_time": "2016-08-31T19:24:38", "url": "https://files.pythonhosted.org/packages/06/44/de0e8681637d7904a7f6df1c124d428306affc8d8e914a77af92ede7bb5f/phriky_units-0.1.0a21.tar.gz" } ], "0.1.0a23": [ { "comment_text": "", "digests": { "md5": "9983b392e0937b89a7f47f9edd239f6a", "sha256": "787663c20c8671316621195d47d5f0dbb72cb0c2b5f2f94090071d934d4fbe98" }, "downloads": -1, "filename": "phriky_units-0.1.0a23.tar.gz", "has_sig": false, "md5_digest": "9983b392e0937b89a7f47f9edd239f6a", "packagetype": "sdist", "python_version": "source", "requires_python": null, "size": 297855, "upload_time": "2016-08-31T19:54:58", "url": "https://files.pythonhosted.org/packages/6d/c6/fd8c16aaae3f0730efae6b4f785fbaa62092aa70673570d8cd11b4b9af7b/phriky_units-0.1.0a23.tar.gz" } ], "0.1.0a25": [ { "comment_text": "", "digests": { "md5": "1050f0d706c90d2068be579c4fc02f02", "sha256": "d2302b00e2c547957e6a4436f75af607decc4431a71e144fb2d5355cc23c037a" }, "downloads": -1, "filename": "phriky_units-0.1.0a25.tar.gz", "has_sig": false, "md5_digest": "1050f0d706c90d2068be579c4fc02f02", "packagetype": "sdist", "python_version": "source", "requires_python": null, "size": 299207, "upload_time": "2016-09-01T01:51:12", "url": "https://files.pythonhosted.org/packages/27/df/f3697387a26616dc5dc8ff727000be471756564f25ba49688c7c140b9227/phriky_units-0.1.0a25.tar.gz" } ], "0.1.0a26": [ { "comment_text": "", "digests": { "md5": "be0c7689992b31ec23d786f368f5aa67", "sha256": "d1663b1c71a8407d3103f84b60bf352b13669986bfbffe8b9c8396bee67f546f" }, "downloads": -1, "filename": "phriky_units-0.1.0a26.tar.gz", "has_sig": false, "md5_digest": "be0c7689992b31ec23d786f368f5aa67", "packagetype": "sdist", "python_version": "source", "requires_python": null, "size": 299249, "upload_time": "2016-09-01T02:36:45", "url": "https://files.pythonhosted.org/packages/7f/28/f7c0bb88da960a08d380454776d921d2bfa4ff01a4087355eb1aef46f6c5/phriky_units-0.1.0a26.tar.gz" } ], "0.1.0a31": [ { "comment_text": "", "digests": { "md5": "b6dd78eaa899081a685a3a4a9865e64b", "sha256": "d6fb5def0a324066f9e7e679535cbe9c1a879d110534d362d1568dc3c661f6ff" }, "downloads": -1, "filename": "phriky_units-0.1.0a31.tar.gz", "has_sig": false, "md5_digest": "b6dd78eaa899081a685a3a4a9865e64b", "packagetype": "sdist", "python_version": "source", "requires_python": null, "size": 336442, "upload_time": "2017-09-22T16:46:19", "url": "https://files.pythonhosted.org/packages/eb/80/25a9a2c48b3c96e8b499859afb1c617a1cfb562d367bedb289251f9d1276/phriky_units-0.1.0a31.tar.gz" } ], "0.1.30": [ { "comment_text": "", "digests": { "md5": "f1b655a93ff1f2db4b88f7b163a5b837", "sha256": "548952eedee23d85720083fcf3e707944ac17923e670f8b287bd8a4dc9d083ef" }, "downloads": -1, "filename": "phriky_units-0.1.30.tar.gz", "has_sig": false, "md5_digest": "f1b655a93ff1f2db4b88f7b163a5b837", "packagetype": "sdist", "python_version": "source", "requires_python": null, "size": 309049, "upload_time": "2017-02-07T17:48:18", "url": "https://files.pythonhosted.org/packages/ab/3d/431d01eb2c92088f812f6c9d361328bcadb9162f4b709db9897b7236750f/phriky_units-0.1.30.tar.gz" } ], "0.1.31": [ { "comment_text": "", "digests": { "md5": "f1ffff533ae4161dce747ba13eadf4c3", "sha256": "78776a04d0bb319944572094578b31ea0e7825634bf8b45fef18e64bd5d16480" }, "downloads": -1, "filename": "phriky_units-0.1.31.tar.gz", "has_sig": false, "md5_digest": "f1ffff533ae4161dce747ba13eadf4c3", "packagetype": "sdist", "python_version": "source", "requires_python": null, "size": 309419, "upload_time": "2017-02-10T14:52:39", "url": "https://files.pythonhosted.org/packages/e9/ba/039d2156bd24b73ee58de5c2056303f1e029ca2f679b00f48e83779842b6/phriky_units-0.1.31.tar.gz" } ], "0.1.32": [ { "comment_text": "", "digests": { "md5": "221d868373750aa9a7cfd0fc3270a55d", "sha256": "e767cd9d051b92adbf729c2d2642f13aadbc0ae5558c68a116ea20a74092ddab" }, "downloads": -1, "filename": "phriky_units-0.1.32.tar.gz", "has_sig": false, "md5_digest": "221d868373750aa9a7cfd0fc3270a55d", "packagetype": "sdist", "python_version": "source", "requires_python": null, "size": 309446, "upload_time": "2017-02-10T15:00:01", "url": "https://files.pythonhosted.org/packages/39/f2/0e570039367081bb15f6669ea4a25b5223e9b318404432acd31263c2fe3b/phriky_units-0.1.32.tar.gz" } ], "0.1.33": [ { "comment_text": "", "digests": { "md5": "b7a8f473b22aeb908b211218a7502edc", "sha256": "dc04368c8fe021771f47370bd40cd69e64d1ca9faecb17dfdb16ed7e230f306e" }, "downloads": -1, "filename": "phriky_units-0.1.33.tar.gz", "has_sig": false, "md5_digest": "b7a8f473b22aeb908b211218a7502edc", "packagetype": "sdist", "python_version": "source", "requires_python": null, "size": 309440, "upload_time": "2017-02-10T15:02:50", "url": "https://files.pythonhosted.org/packages/ab/c5/44c55afc892deb0f2d3febdf6fbff4a31140ff7ecd0d6fb0bdfd27ee3790/phriky_units-0.1.33.tar.gz" } ], "0.1.34": [ { "comment_text": "", "digests": { "md5": "318c74c179a99084c414ac0581d0b815", "sha256": "ec864c579f09a80317adb480b614631b737b12defb073f93aac50fa5f7417fea" }, "downloads": -1, "filename": "phriky_units-0.1.34.tar.gz", "has_sig": false, "md5_digest": "318c74c179a99084c414ac0581d0b815", "packagetype": "sdist", "python_version": "source", "requires_python": null, "size": 309431, "upload_time": "2017-02-10T15:16:24", "url": "https://files.pythonhosted.org/packages/b8/22/93f6a9adcb8391c732f0c530e8e0e6a2fab20d0435891d84761f4dc31862/phriky_units-0.1.34.tar.gz" } ], "0.1.35": [ { "comment_text": "", "digests": { "md5": "23502bc2c9128100e568c3b5cbac43e3", "sha256": "6d39b08f21620365574e3179e789fc8f9ce274661f9b61927caf4dfafaada9d4" }, "downloads": -1, "filename": "phriky_units-0.1.35.tar.gz", "has_sig": false, "md5_digest": "23502bc2c9128100e568c3b5cbac43e3", "packagetype": "sdist", "python_version": "source", "requires_python": null, "size": 309359, "upload_time": "2017-02-14T19:32:27", "url": "https://files.pythonhosted.org/packages/a0/70/a948860b03e5dcdc9c3d2a07446ab592498db8661f8ad1a9ab4d2f27ad4b/phriky_units-0.1.35.tar.gz" } ], "0.1.36": [ { "comment_text": "", "digests": { "md5": "fc3c9bfbd1bcaf743264fbf16260fd97", "sha256": "95bf770e686956c9febd7f1a136ca791dffc13b044ed148a2d820abd3f76ac60" }, "downloads": -1, "filename": "phriky_units-0.1.36.tar.gz", "has_sig": false, "md5_digest": "fc3c9bfbd1bcaf743264fbf16260fd97", "packagetype": "sdist", "python_version": "source", "requires_python": null, "size": 336252, "upload_time": "2017-09-22T17:24:19", "url": "https://files.pythonhosted.org/packages/4a/38/29ba1d68cc7964eeef41da2017d92c0f362aaf1a5777029acfc078059e07/phriky_units-0.1.36.tar.gz" } ], "0.1.37": [ { "comment_text": "", "digests": { "md5": "da707ae73fdc6d793f7563ed8247e115", "sha256": "0aa05fe6a7aab45cfd748dbe9bbb4a634e077103d406607262c364dabc5aac13" }, "downloads": -1, "filename": "phriky_units-0.1.37.tar.gz", "has_sig": false, "md5_digest": "da707ae73fdc6d793f7563ed8247e115", "packagetype": "sdist", "python_version": "source", "requires_python": null, "size": 336281, "upload_time": "2017-09-22T17:33:37", "url": "https://files.pythonhosted.org/packages/9f/53/f5593fa220c6c1b2e0c94f2a630d903c7ce575c435b161f01e253352f20f/phriky_units-0.1.37.tar.gz" } ], "0.1.38": [ { "comment_text": "", "digests": { "md5": "239277455453efbd9ef66dafdf51b059", "sha256": "4c6d60acb57c1a11e12f40e0becdd5f05af15bb7f8595ba1dd5988a28ef8a7b1" }, "downloads": -1, "filename": "phriky_units-0.1.38.tar.gz", "has_sig": false, "md5_digest": "239277455453efbd9ef66dafdf51b059", "packagetype": "sdist", "python_version": "source", "requires_python": null, "size": 336448, "upload_time": "2017-09-22T18:42:21", "url": "https://files.pythonhosted.org/packages/34/1c/dafa6878e0dca6f8dfa635672846218662449710872c0ef13ec3be889220/phriky_units-0.1.38.tar.gz" } ], "0.1.39": [ { "comment_text": "", "digests": { "md5": "92b8d4ceead61a33bb5bdae70a48c7ef", "sha256": "24a1d0e6000f3a35d3e08d07fb619ece824239c51fa6168a35011de85f12d281" }, "downloads": -1, "filename": "phriky_units-0.1.39.tar.gz", "has_sig": false, "md5_digest": "92b8d4ceead61a33bb5bdae70a48c7ef", "packagetype": "sdist", "python_version": "source", "requires_python": null, "size": 336530, "upload_time": "2017-09-22T21:52:52", "url": "https://files.pythonhosted.org/packages/73/f7/b2a8ea44137ceec0d99b9eff473422f906883859a98b0a2ad2ea16736a3d/phriky_units-0.1.39.tar.gz" } ] }, "urls": [ { "comment_text": "", "digests": { "md5": "92b8d4ceead61a33bb5bdae70a48c7ef", "sha256": "24a1d0e6000f3a35d3e08d07fb619ece824239c51fa6168a35011de85f12d281" }, "downloads": -1, "filename": "phriky_units-0.1.39.tar.gz", "has_sig": false, "md5_digest": "92b8d4ceead61a33bb5bdae70a48c7ef", "packagetype": "sdist", "python_version": "source", "requires_python": null, "size": 336530, "upload_time": "2017-09-22T21:52:52", "url": "https://files.pythonhosted.org/packages/73/f7/b2a8ea44137ceec0d99b9eff473422f906883859a98b0a2ad2ea16736a3d/phriky_units-0.1.39.tar.gz" } ] }