{ "info": { "author": "Kelsey Hightower", "author_email": "kelsey.hightower@gmail.com", "bugtrack_url": null, "classifiers": [], "description": "========\nPyverify\n========\n\nWelcome to Pyverify!\n\nPyverify leverages Distutils2 and PEP 376 - Database of Installed Python Distributions\n\n\nPyverify can only verify installed distributions with a vaid RECORD metadata file.\n\nThe RECORD file holds the list of installed files.\n\n\n**Beware that Pyverify is in its early stage and should not be used in\nproduction. Its API is subject to changes**\n\n\nIntroduction\n------------\npyverify verifies Python packages with a vaid RECORD metadata file; see PEP 376.\n- API Usage at the bottom!\n\nHow to install pyverify\n-----------------------\nDownload and install distutils2.\nDownload and install pyverify using distutils2::\n\n $ wget http://pypi.python.org/packages/source/p/pyverify/pyverify-0.8.1.tar.gz\n $ tar -xvf pyverify-0.8.1.tar.gz\n $ cd pyverify-0.8.1\n $ python -m 'distutils2.run' install_dist\n\n\nVerify a package\n----------------\nOnce you have pyverify installed, you can use it like this::\n\n $ pyverify SomePackage\n $ pyverify pyverify\n pyverify: dist ok\n ok /opt/OpenPython-2.7.1/lib/python2.7/site-packages/pyverify/__init__.py\n ok /opt/OpenPython-2.7.1/lib/python2.7/site-packages/pyverify/verify.py\n ok /opt/OpenPython-2.7.1/lib/python2.7/site-packages/pyverify/__init__.pyc\n ok /opt/OpenPython-2.7.1/lib/python2.7/site-packages/pyverify/verify.pyc\n ok /opt/OpenPython-2.7.1/lib/python2.7/site-packages/pyverify-0.8.1.dist-info/METADATA\n ok /opt/OpenPython-2.7.1/lib/python2.7/site-packages/pyverify-0.8.1.dist-info/INSTALLER\n ok /opt/OpenPython-2.7.1/lib/python2.7/site-packages/pyverify-0.8.1.dist-info/REQUESTED\n ok /opt/OpenPython-2.7.1/lib/python2.7/site-packages/pyverify-0.8.1.dist-info/RECORD\n\nYou can provide an optional path to look for installed distributions::\n\n $ pyverify --paths '../site-packages/' dummy\n dummy: installed file(s) md5 mismatch\n ? dummy.py\n ok dummy.pyc\n ? METADATA\n ? INSTALLER\n ? REQUESTED\n ok RECORD\n\n\nStatus Codes\n------------\n- \"?\" file is missing\n- \"ok\" md5sum matches\n- \"md5\" md5sum mismatch\n\nUsage\n-----\n\nUsage::\n\n $ pyverify -h\n usage: pyverify [-h] [--paths PATHS] PACKAGE [PACKAGE ...]\n\n Verify installed packages\n\n positional arguments:\n PACKAGE Package to verify\n\n optional arguments:\n -h, --help show this help message and exit\n --paths PATHS Scan all in paths directories ending with ``.dist-info``\n\nAPI Usage\n---------\n\nPyverify provides an API (alpha), you can use it like this::\n\n from __future__ import print_function\n from pyverify.verify import verify_dists\n from pyverify.verify import STATUS_CODES\n import pprint\n\n pp = pprint.PrettyPrinter(depth=2)\n\n dists = ['pyverify']\n\n # verify_dists returns a generator\n verified = verify_dists(dists)\n\n for v in verified:\n print(\"RETURNED FROM verify_dists()\")\n pp.pprint(v)\n\n name = v[0]\n details = v[1]\n pkg_status_code = details['status']\n pkg_status_desc = STATUS_CODES[pkg_status_code]['description']\n\n print()\n print(\"PACKAGE STATUS\")\n print(\"Pkg Name: {}\".format(name))\n print(\"Pkg Status: {}\".format(pkg_status_desc))\n\n print()\n print(\"FILE(s) STATUS\")\n print(\"(file, md5sum, filesize, status(added by pyverify. See PEP 376))\")\n for f in details['verified_files']:\n print(f)\n\n print()\n print(\"STATUS CODES\")\n pp.pprint(STATUS_CODES)\n\n\nOutput::\n\n $ pyverify_demo.py\n RETURNED FROM verify_dists()\n ('pyverify', {'status': 3, 'verified_files': [...]})\n\n PACKAGE STATUS\n Pkg Name: pyverify\n Pkg Status: dist ok\n\n FILE(s) STATUS\n (file, md5sum, filesize, status(added by pyverify. See PEP 376))\n ('/opt/OpenPython-2.7.1/lib/python2.7/site-packages/pyverify/__init__.py', 'd41d8cd98f00b204e9800998ecf8427e', 0, 0)\n ('/opt/OpenPython-2.7.1/lib/python2.7/site-packages/pyverify/verify.py', '9e835bf812562084c7f490926332fa8e', 3906, 0)\n ('/opt/OpenPython-2.7.1/lib/python2.7/site-packages/pyverify/__init__.pyc', '', '', 0)\n ('/opt/OpenPython-2.7.1/lib/python2.7/site-packages/pyverify/verify.pyc', '', '', 0)\n ('/opt/OpenPython-2.7.1/lib/python2.7/site-packages/pyverify-0.8.1.dist-info/METADATA', 'b43498883bf1adddab1d0bab03f9bf10', 2842, 0)\n ('/opt/OpenPython-2.7.1/lib/python2.7/site-packages/pyverify-0.8.1.dist-info/INSTALLER', '44e3fde05f3f537ed85831969acf396d', 9, 0)\n ('/opt/OpenPython-2.7.1/lib/python2.7/site-packages/pyverify-0.8.1.dist-info/REQUESTED', 'd41d8cd98f00b204e9800998ecf8427e', 0, 0)\n ('/opt/OpenPython-2.7.1/lib/python2.7/site-packages/pyverify-0.8.1.dist-info/RECORD', '', '', 0)\n\n STATUS CODES\n {0: {'description': 'file ok', 'display': 'ok'},\n 1: {'description': 'md5 mismatch', 'display': 'md5'},\n 2: {'description': 'missing', 'display': '?'},\n 3: {'description': 'dist ok', 'display': 'ok'},\n 4: {'description': 'installed file(s) md5 mismatch', 'display': 'md5'},\n 5: {'description': 'distribution not installed', 'display': '!'},\n 6: {'description': 'cannot read dist-info', 'display': '?'}}\n\n\nRunning Unittests\n-----------------\nTest can be run using nose like this::\n\n $ nosetests -v tests/\n\nUseful links\n------------\n- Repository: https://bitbucket.org/khightower/pyverify\n- Bug tracker: https://bitbucket.org/khightower/pyverify/issues\n- Distutils2: http://distutils2.notmyidea.org/index.html\n- PEP 376: http://www.python.org/dev/peps/pep-0376", "description_content_type": null, "docs_url": null, "download_url": "http://pypi.python.org/pypi/pyverify", "downloads": { "last_day": -1, "last_month": -1, "last_week": -1 }, "home_page": "https://bitbucket.org/khightower/pyverify", "keywords": null, "license": "GPL", "maintainer": null, "maintainer_email": null, "name": "pyverify", "package_url": "https://pypi.org/project/pyverify/", "platform": null, "project_url": "https://pypi.org/project/pyverify/", "project_urls": { "Download": "http://pypi.python.org/pypi/pyverify", "Homepage": "https://bitbucket.org/khightower/pyverify" }, "release_url": "https://pypi.org/project/pyverify/0.8.1/", "requires_dist": [ "distutils2" ], "requires_python": ">= 2.7", "summary": "Verify python distributions. Requires Distutils2", "version": "0.8.1" }, "last_serial": 798237, "releases": { "0.8": [ { "comment_text": "", "digests": { "md5": "9248689c16fd6f230551e0f54911fa24", "sha256": "9afd8f0d5339ebe4b6d52ae9a5fb8014f52bdca7342ff4a1bc30d6596b26b30e" }, "downloads": -1, "filename": "pyverify-0.8.tar.gz", "has_sig": false, "md5_digest": "9248689c16fd6f230551e0f54911fa24", "packagetype": "sdist", "python_version": "source", "requires_python": ">= 2.7", "size": 4962, "upload_time": "2011-01-31T05:48:45", "url": "https://files.pythonhosted.org/packages/95/6d/ec6c6858059d1ded503712f3552e2d4d0464d9048cebe064a203cbf1069d/pyverify-0.8.tar.gz" } ], "0.8.1": [ { "comment_text": "", "digests": { "md5": "082ece92fc0bc589ee30cff029efe3a1", "sha256": "9c4cca51d5ee3b2b953a30dbdfee58e3dfedd24ced1994ffd61f071fd1340453" }, "downloads": -1, "filename": "pyverify-0.8.1.tar.gz", "has_sig": false, "md5_digest": "082ece92fc0bc589ee30cff029efe3a1", "packagetype": "sdist", "python_version": "source", "requires_python": ">= 2.7", "size": 5088, "upload_time": "2011-02-05T18:40:59", "url": "https://files.pythonhosted.org/packages/87/b4/4650dcfe3da72ff716047b6a9eec7d20de1708423b29c80f24071cc11e52/pyverify-0.8.1.tar.gz" } ] }, "urls": [ { "comment_text": "", "digests": { "md5": "082ece92fc0bc589ee30cff029efe3a1", "sha256": "9c4cca51d5ee3b2b953a30dbdfee58e3dfedd24ced1994ffd61f071fd1340453" }, "downloads": -1, "filename": "pyverify-0.8.1.tar.gz", "has_sig": false, "md5_digest": "082ece92fc0bc589ee30cff029efe3a1", "packagetype": "sdist", "python_version": "source", "requires_python": ">= 2.7", "size": 5088, "upload_time": "2011-02-05T18:40:59", "url": "https://files.pythonhosted.org/packages/87/b4/4650dcfe3da72ff716047b6a9eec7d20de1708423b29c80f24071cc11e52/pyverify-0.8.1.tar.gz" } ] }