{ "info": { "author": "Don Spaulding", "author_email": "donspauldingii@gmail.com", "bugtrack_url": null, "classifiers": [], "description": "==================================\nuseragent\n==================================\n\nuseragent is a Python library that parses HTTP User-agent strings\nand tries to give you as much data as possible in a normalized form.\n\nIt uses the data provided by the ua-parser project (originally collected by\nSteve Souders). It aims to be more pythonic than the python wrapper found\nin the original ua-parser project.\n\nTo-wit::\n\n #!/usr/bin/env python\n\n import useragent\n ua = useragent.detect(\"Mozilla/5.0 (Macintosh; U; Intel Mac OS X 10.5; nl; rv:1.9.0.1) Gecko/2008070206 Firefox/3.0.1\")\n print(ua)\n\nWhich would print ``ua``, a dict-like object with the following structure::\n {\n 'device': {\n 'family': None,\n 'major_version': None,\n 'minor_version': None,\n 'patch_version': None\n },\n 'os': {\n 'family': 'Mac OS X',\n 'major_version': '10',\n 'minor_version': '5',\n 'patch_version': None\n },\n 'browser': {\n 'family': 'Firefox',\n 'major_version': '3',\n 'minor_version': '0',\n 'patch_version': '1'\n }\n }\n\nThe ``ua`` object actually has each of those keys exposed as attributes on itself, so you may find it more comfortable to navigate like so::\n print(ua.browser.family)\n print(ua.os.family)\n print(ua.device.family)", "description_content_type": null, "docs_url": null, "download_url": "UNKNOWN", "downloads": { "last_day": -1, "last_month": -1, "last_week": -1 }, "home_page": "https://bitbucket.org/mirusresearch/useragent", "keywords": null, "license": "BSD licensed. See LICENSE.txt in the source distribution.", "maintainer": null, "maintainer_email": null, "name": "useragent", "package_url": "https://pypi.org/project/useragent/", "platform": "UNKNOWN", "project_url": "https://pypi.org/project/useragent/", "project_urls": { "Download": "UNKNOWN", "Homepage": "https://bitbucket.org/mirusresearch/useragent" }, "release_url": "https://pypi.org/project/useragent/0.1.1/", "requires_dist": null, "requires_python": null, "summary": "UNKNOWN", "version": "0.1.1" }, "last_serial": 801298, "releases": { "0.1.0": [ { "comment_text": "", "digests": { "md5": "520f6eb61131c545cf3d8a5dc75ca8f8", "sha256": "46ce798f9411cf12398d835b3732227abd4b45b30c6439380970cc9109e7a097" }, "downloads": -1, "filename": "useragent-0.1.0.tar.gz", "has_sig": false, "md5_digest": "520f6eb61131c545cf3d8a5dc75ca8f8", "packagetype": "sdist", "python_version": "source", "requires_python": null, "size": 135649, "upload_time": "2012-10-19T22:44:04", "url": "https://files.pythonhosted.org/packages/eb/64/a960742f7a0bd1fb5be7cd7758ce5b3a7687f6d60fc5f2aaba686bc4a224/useragent-0.1.0.tar.gz" } ], "0.1.1": [ { "comment_text": "", "digests": { "md5": "d08458fffd3232bc0001ea2968d9e975", "sha256": "7ef271df2dfdaa8d7eedcc9b7247009acdbd4e29d60924daba92f0b482ca32e2" }, "downloads": -1, "filename": "useragent-0.1.1.tar.gz", "has_sig": false, "md5_digest": "d08458fffd3232bc0001ea2968d9e975", "packagetype": "sdist", "python_version": "source", "requires_python": null, "size": 134844, "upload_time": "2012-10-19T22:50:49", "url": "https://files.pythonhosted.org/packages/22/7a/6380332af6b9e7bb1267adc8ac663758b329feb0d0baa20e46940a26b36d/useragent-0.1.1.tar.gz" } ] }, "urls": [ { "comment_text": "", "digests": { "md5": "d08458fffd3232bc0001ea2968d9e975", "sha256": "7ef271df2dfdaa8d7eedcc9b7247009acdbd4e29d60924daba92f0b482ca32e2" }, "downloads": -1, "filename": "useragent-0.1.1.tar.gz", "has_sig": false, "md5_digest": "d08458fffd3232bc0001ea2968d9e975", "packagetype": "sdist", "python_version": "source", "requires_python": null, "size": 134844, "upload_time": "2012-10-19T22:50:49", "url": "https://files.pythonhosted.org/packages/22/7a/6380332af6b9e7bb1267adc8ac663758b329feb0d0baa20e46940a26b36d/useragent-0.1.1.tar.gz" } ] }