{ "info": { "author": "Simon Willison", "author_email": "", "bugtrack_url": null, "classifiers": [ "Development Status :: 3 - Alpha", "Intended Audience :: Developers", "Intended Audience :: End Users/Desktop", "Intended Audience :: Science/Research", "License :: OSI Approved :: Apache Software License", "Programming Language :: Python :: 3.6", "Programming Language :: Python :: 3.7" ], "description": "# validate-utf8\n\n[![PyPI](https://img.shields.io/pypi/v/validate-utf8.svg)](https://pypi.org/project/validate-utf8/)\n[![License](https://img.shields.io/badge/license-Apache%202.0-blue.svg)](https://github.com/simonw/validate-utf8/blob/master/LICENSE)\n\nPython library and CLI for validating UTF-8 text.\n\nInstall it like this:\n\n pip3 install validate-utf8\n\nThe command-line tool works like this:\n\n $ validate-utf8 20081104__wv__general__mason__precinct.csv\n invalid continuation byte\n Mason,28 COURTHOUSE-GROUND FLOOR\u00e1,,,REP,Straight Ticket,15\n ^\n invalid continuation byte\n Mason,28 COURTHOUSE-GROUND FLOOR\u00e1,,,DEM,Straight Ticket,21\n ^\n\nUse it as a library like this:\n\n from validate_utf8 import find_utf8_errors\n\n errrors = find_utf8_errors(bytestring):\n if not errors:\n print(\"It is valid\")\n else:\n print(errors)\n\n\n", "description_content_type": "text/markdown", "docs_url": null, "download_url": "", "downloads": { "last_day": -1, "last_month": -1, "last_week": -1 }, "home_page": "https://github.com/simonw/validate-utf8", "keywords": "", "license": "Apache License, Version 2.0", "maintainer": "", "maintainer_email": "", "name": "validate-utf8", "package_url": "https://pypi.org/project/validate-utf8/", "platform": "", "project_url": "https://pypi.org/project/validate-utf8/", "project_urls": { "Homepage": "https://github.com/simonw/validate-utf8" }, "release_url": "https://pypi.org/project/validate-utf8/0.1/", "requires_dist": [ "click", "pytest ; extra == 'test'" ], "requires_python": "", "summary": "Python library and CLI for validating UTF-8 text", "version": "0.1" }, "last_serial": 4922284, "releases": { "0.1": [ { "comment_text": "", "digests": { "md5": "d610abb9f30e5d91e78eb5218a66f163", "sha256": "44acd91e98fcf98cd5a6cf8c9c95dbbc2cc2c298cb5ac369b6221abbd71d20dd" }, "downloads": -1, "filename": "validate_utf8-0.1-py3-none-any.whl", "has_sig": false, "md5_digest": "d610abb9f30e5d91e78eb5218a66f163", "packagetype": "bdist_wheel", "python_version": "py3", "requires_python": null, "size": 7820, "upload_time": "2019-03-10T18:25:49", "url": "https://files.pythonhosted.org/packages/dc/90/7af85020cb13292ad064b1f42af18b7f5deb100dfec4ab002a0526a8b4d4/validate_utf8-0.1-py3-none-any.whl" } ] }, "urls": [ { "comment_text": "", "digests": { "md5": "d610abb9f30e5d91e78eb5218a66f163", "sha256": "44acd91e98fcf98cd5a6cf8c9c95dbbc2cc2c298cb5ac369b6221abbd71d20dd" }, "downloads": -1, "filename": "validate_utf8-0.1-py3-none-any.whl", "has_sig": false, "md5_digest": "d610abb9f30e5d91e78eb5218a66f163", "packagetype": "bdist_wheel", "python_version": "py3", "requires_python": null, "size": 7820, "upload_time": "2019-03-10T18:25:49", "url": "https://files.pythonhosted.org/packages/dc/90/7af85020cb13292ad064b1f42af18b7f5deb100dfec4ab002a0526a8b4d4/validate_utf8-0.1-py3-none-any.whl" } ] }