{ "info": { "author": "Sebastian Bank", "author_email": "sebastian.bank@uni-leipzig.de", "bugtrack_url": null, "classifiers": [ "Development Status :: 4 - Beta", "Intended Audience :: Developers", "Intended Audience :: Science/Research", "License :: OSI Approved :: MIT License", "Operating System :: OS Independent", "Programming Language :: Python :: 2", "Programming Language :: Python :: 2.7", "Programming Language :: Python :: 3", "Programming Language :: Python :: 3.5", "Programming Language :: Python :: 3.6", "Programming Language :: Python :: 3.7" ], "description": "csv23\r\n=====\r\n\r\n|PyPI version| |License| |Supported Python| |Format| |Docs|\r\n\r\n|Travis| |Codecov|\r\n\r\n``csv23`` provides the unicode-based API of the Python 3 ``csv`` module for\r\nPython 2 and 3. Code that should run under both versions of Python can use it\r\nto hide the ``bytes`` vs. ``text`` difference between 2 and 3 and stick to the\r\nnewer unicode-based interface.\r\n\r\n``csv23`` works around for the following bugs in the stdlib ``csv`` module:\r\n\r\nbpo-12178_\r\n broken round-trip with ``escapechar`` if your data contains a literal escape\r\n character\r\n\r\nbpo-31590_\r\n broken round-trip with ``escapechar`` and embedded newlines under Python 2\r\n (fixed in Python 3.4 but not backported): produce a warning\r\n\r\nThe package also provides some convenience functionality such as the\r\n``open_csv()`` context manager for opening a CSV file in the right mode and\r\nreturning a ``csv.reader`` or ``csv.writer``:\r\n\r\n.. code:: python\r\n\r\n >>> import csv23\r\n\r\n >>> with csv23.open_csv('spam.csv') as reader: # doctest: +SKIP\r\n ... for row in reader:\r\n ... print(', '.join(row))\r\n Spam!, Spam!, Spam!'\r\n Spam!, Lovely Spam!, Lovely Spam!'\r\n\r\nIt uses ``utf-8`` as default encoding everywhere.\r\n\r\n\r\nLinks\r\n-----\r\n\r\n- GitHub: https://github.com/xflr6/csv23\r\n- PyPI: https://pypi.org/project/csv23/\r\n- Documentation: https://csv23.readthedocs.io\r\n- Changelog: https://csv23.readthedocs.io/en/latest/changelog.html\r\n- Issue Tracker: https://github.com/xflr6/csv23/issues\r\n- Download: https://pypi.org/project/csv23/#files\r\n\r\n\r\nInstallation\r\n------------\r\n\r\nThis package runs under Python 2.7, and 3.5+, use pip_ to install:\r\n\r\n.. code:: bash\r\n\r\n $ pip install csv23\r\n\r\n\r\nSee also\r\n--------\r\n\r\n- https://docs.python.org/2/library/csv.html#examples (UnicodeReader, UnicodeWriter)\r\n- https://agate.readthedocs.io/en/latest/api/csv.html\r\n- https://pypi.org/project/backports.csv/\r\n- https://pypi.org/project/csv342/\r\n\r\n\r\nLicense\r\n-------\r\n\r\nThis package is distributed under the `MIT license`_.\r\n\r\n\r\n.. _bpo-12178: https://bugs.python.org/issue12178\r\n.. _bpo-31590: https://bugs.python.org/issue31590\r\n\r\n.. _pip: https://pip.readthedocs.io\r\n\r\n.. _MIT license: https://opensource.org/licenses/MIT\r\n\r\n\r\n.. |--| unicode:: U+2013\r\n\r\n\r\n.. |PyPI version| image:: https://img.shields.io/pypi/v/csv23.svg\r\n :target: https://pypi.org/project/csv23/\r\n :alt: Latest PyPI Version\r\n.. |License| image:: https://img.shields.io/pypi/l/csv23.svg\r\n :target: https://pypi.org/project/csv23/\r\n :alt: License\r\n.. |Supported Python| image:: https://img.shields.io/pypi/pyversions/csv23.svg\r\n :target: https://pypi.org/project/csv23/\r\n :alt: Supported Python Versions\r\n.. |Format| image:: https://img.shields.io/pypi/format/csv23.svg\r\n :target: https://pypi.org/project/csv23/\r\n :alt: Format\r\n.. |Docs| image:: https://readthedocs.org/projects/csv23/badge/?version=stable\r\n :target: https://csv23.readthedocs.io/en/stable/\r\n :alt: Readthedocs\r\n.. |Travis| image:: https://img.shields.io/travis/xflr6/csv23.svg\r\n :target: https://travis-ci.org/xflr6/csv23\r\n :alt: Travis\r\n.. |Codecov| image:: https://codecov.io/gh/xflr6/csv23/branch/master/graph/badge.svg\r\n :target: https://codecov.io/gh/xflr6/csv23\r\n :alt: Codecov\r\n\r\n\r\n", "description_content_type": "", "docs_url": null, "download_url": "", "downloads": { "last_day": -1, "last_month": -1, "last_week": -1 }, "home_page": "https://github.com/xflr6/csv23", "keywords": "unicode csv reader writer", "license": "MIT", "maintainer": "", "maintainer_email": "", "name": "csv23", "package_url": "https://pypi.org/project/csv23/", "platform": "any", "project_url": "https://pypi.org/project/csv23/", "project_urls": { "Homepage": "https://github.com/xflr6/csv23" }, "release_url": "https://pypi.org/project/csv23/0.1.5/", "requires_dist": [ "mock ; python_version < \"3\"", "tox (>=3.0) ; extra == 'dev'", "flake8 ; extra == 'dev'", "pep8-naming ; extra == 'dev'", "wheel ; extra == 'dev'", "twine ; extra == 'dev'", "sphinx (>=1.7) ; extra == 'docs'", "sphinx-rtd-theme ; extra == 'docs'", "mock (>=2) ; extra == 'test'", "pytest (!=3.10.0,>=3.4) ; extra == 'test'", "pytest-mock (>=1.8) ; extra == 'test'", "pytest-cov ; extra == 'test'" ], "requires_python": ">=2.7,!=3.0.*,!=3.1.*,!=3.2.*,!=3.3.*,!=3.4.*", "summary": "Python 2/3 unicode CSV compatibility layer", "version": "0.1.5" }, "last_serial": 5345972, "releases": { "0.1": [ { "comment_text": "", "digests": { "md5": "7fbb4afa0d21a7d51d6da822d3770d92", "sha256": "c42f3a7598f6b2c0d19f5b357b6734d4f8bef1569cb844fb07f115726260f5c3" }, "downloads": -1, "filename": "csv23-0.1-py2.py3-none-any.whl", "has_sig": false, "md5_digest": "7fbb4afa0d21a7d51d6da822d3770d92", "packagetype": "bdist_wheel", "python_version": "py2.py3", "requires_python": ">=2.7,!=3.0.*,!=3.1.*,!=3.2.*,!=3.3.*", "size": 12881, "upload_time": "2018-01-14T17:11:24", "url": "https://files.pythonhosted.org/packages/a4/53/f95a87c5ad0a4b562994c6399a4f7b2656f0d1c78750ffd4e95a7eca4c84/csv23-0.1-py2.py3-none-any.whl" }, { "comment_text": "", "digests": { "md5": "b3173d479245df84d3abda736a078e8d", "sha256": "ded4c1698c5f6e29d3b51f6642dac8b24115223788a8e9962bef72577fface31" }, "downloads": -1, "filename": "csv23-0.1.zip", "has_sig": false, "md5_digest": "b3173d479245df84d3abda736a078e8d", "packagetype": "sdist", "python_version": "source", "requires_python": ">=2.7,!=3.0.*,!=3.1.*,!=3.2.*,!=3.3.*", "size": 26685, "upload_time": "2018-01-14T17:11:26", "url": "https://files.pythonhosted.org/packages/f6/8e/845dc9d503dd9c9ec6632db20f65d28d8134870f60e1810b5026af8e5b58/csv23-0.1.zip" } ], "0.1.1": [ { "comment_text": "", "digests": { "md5": "c795055314839a3d43120d8f4be197b1", "sha256": "661fb15f1aec83a183d2b63a1eb7777d7b072e2b2f1d4a161aaf72bbd8e5073b" }, "downloads": -1, "filename": "csv23-0.1.1-py2.py3-none-any.whl", "has_sig": false, "md5_digest": "c795055314839a3d43120d8f4be197b1", "packagetype": "bdist_wheel", "python_version": "py2.py3", "requires_python": ">=2.7,!=3.0.*,!=3.1.*,!=3.2.*,!=3.3.*", "size": 13488, "upload_time": "2018-01-14T18:05:15", "url": "https://files.pythonhosted.org/packages/48/25/f6e4f0fa0e02b49bbba90c22c7f35b14d7168337f8563f247e69e71fc210/csv23-0.1.1-py2.py3-none-any.whl" }, { "comment_text": "", "digests": { "md5": "afef2e04da75a3c3b0a1f05283208113", "sha256": "5fdc084ad1a66262f523c4249041922c9d8ba6510982b3069f2bef7c80174f9d" }, "downloads": -1, "filename": "csv23-0.1.1.zip", "has_sig": false, "md5_digest": "afef2e04da75a3c3b0a1f05283208113", "packagetype": "sdist", "python_version": "source", "requires_python": ">=2.7,!=3.0.*,!=3.1.*,!=3.2.*,!=3.3.*", "size": 27806, "upload_time": "2018-01-14T18:05:16", "url": "https://files.pythonhosted.org/packages/1a/32/3712d4bf287c6f385447be80e5505fe9c4041d2b89b67d901c2fc32ef6fb/csv23-0.1.1.zip" } ], "0.1.2": [ { "comment_text": "", "digests": { "md5": "f0a4660b097314b3440af3769c9bf53c", "sha256": "ef55c78ec80be0b37334c6f545d600a84fa02120b3e404dd224d418894a437b2" }, "downloads": -1, "filename": "csv23-0.1.2-py2.py3-none-any.whl", "has_sig": false, "md5_digest": "f0a4660b097314b3440af3769c9bf53c", "packagetype": "bdist_wheel", "python_version": "py2.py3", "requires_python": ">=2.7,!=3.0.*,!=3.1.*,!=3.2.*,!=3.3.*", "size": 14381, "upload_time": "2018-01-31T09:30:41", "url": "https://files.pythonhosted.org/packages/e4/4e/6b3b6e75a76251d487cdd2cb595bb4828cf03a71ef06214a9305af2baa6c/csv23-0.1.2-py2.py3-none-any.whl" }, { "comment_text": "", "digests": { "md5": "e8892bd5f2a38f7ad9f0bbdafe6db968", "sha256": "325e98c71a4df0742ed2728ea61384d65dcde42a3f5c1c9d3ccc9ad34171040f" }, "downloads": -1, "filename": "csv23-0.1.2.zip", "has_sig": false, "md5_digest": "e8892bd5f2a38f7ad9f0bbdafe6db968", "packagetype": "sdist", "python_version": "source", "requires_python": ">=2.7,!=3.0.*,!=3.1.*,!=3.2.*,!=3.3.*", "size": 29513, "upload_time": "2018-01-31T09:30:50", "url": "https://files.pythonhosted.org/packages/fd/d9/4a9b2060c342fbf4ac0f044f419340638bd05487a703c64727d983f4870e/csv23-0.1.2.zip" } ], "0.1.3": [ { "comment_text": "", "digests": { "md5": "ef803a90b49b6a356509b3ad1fa57a05", "sha256": "7efa54c1ca28a8678ced55e4b1107c7c1b18308800b904437ebbdce7dda3434a" }, "downloads": -1, "filename": "csv23-0.1.3-py2.py3-none-any.whl", "has_sig": false, "md5_digest": "ef803a90b49b6a356509b3ad1fa57a05", "packagetype": "bdist_wheel", "python_version": "py2.py3", "requires_python": ">=2.7,!=3.0.*,!=3.1.*,!=3.2.*,!=3.3.*", "size": 13726, "upload_time": "2018-04-23T12:10:24", "url": "https://files.pythonhosted.org/packages/56/3d/5a64e03285f14d6d6d18420fa15b5700792a33dabdac4efc3ced01a5e569/csv23-0.1.3-py2.py3-none-any.whl" }, { "comment_text": "", "digests": { "md5": "c68d71b2d78500083ba850519ee31710", "sha256": "98dd4296dac6d505716c3a450de606347a7ad4c01ba89cfa331b5892fa0e48ca" }, "downloads": -1, "filename": "csv23-0.1.3.zip", "has_sig": false, "md5_digest": "c68d71b2d78500083ba850519ee31710", "packagetype": "sdist", "python_version": "source", "requires_python": ">=2.7,!=3.0.*,!=3.1.*,!=3.2.*,!=3.3.*", "size": 32080, "upload_time": "2018-04-23T12:10:32", "url": "https://files.pythonhosted.org/packages/3b/0b/d689fe9524fedf080fce312cf4351e34b20f032d5772f29dcf576d41b581/csv23-0.1.3.zip" } ], "0.1.4": [ { "comment_text": "", "digests": { "md5": "8c43b57d956b816450823b0f99b5488f", "sha256": "72d34fc1dff7d837a471fd21c1925d3a2e531e3b1023505f396c96ac3287fb76" }, "downloads": -1, "filename": "csv23-0.1.4-py2.py3-none-any.whl", "has_sig": false, "md5_digest": "8c43b57d956b816450823b0f99b5488f", "packagetype": "bdist_wheel", "python_version": "py2.py3", "requires_python": ">=2.7,!=3.0.*,!=3.1.*,!=3.2.*,!=3.3.*", "size": 14219, "upload_time": "2018-05-27T16:07:35", "url": "https://files.pythonhosted.org/packages/78/a9/127dd5e65ec6c2863cfa27aaaade798a776ab788b8ba13c75dd030e7f0e1/csv23-0.1.4-py2.py3-none-any.whl" }, { "comment_text": "", "digests": { "md5": "8dd30aef5bd2e8370cd291e9accf15bb", "sha256": "a91bfda92d8f8da4b1d0b99dd04dd19dc080fbf2604c8a69f256031a369d8aeb" }, "downloads": -1, "filename": "csv23-0.1.4.zip", "has_sig": false, "md5_digest": "8dd30aef5bd2e8370cd291e9accf15bb", "packagetype": "sdist", "python_version": "source", "requires_python": ">=2.7,!=3.0.*,!=3.1.*,!=3.2.*,!=3.3.*", "size": 33280, "upload_time": "2018-05-27T16:07:37", "url": "https://files.pythonhosted.org/packages/5a/04/67a62a8263b2a9266aec4166eaccc6293f8d54826432b3cc689d88c77567/csv23-0.1.4.zip" } ], "0.1.5": [ { "comment_text": "", "digests": { "md5": "5a745a48604f7be7befe9800ec361a62", "sha256": "4f5c7bfefabbe2785d9109b8ae645e3ce24f8c24c8c2973ce7d20448f351fb80" }, "downloads": -1, "filename": "csv23-0.1.5-py2.py3-none-any.whl", "has_sig": false, "md5_digest": "5a745a48604f7be7befe9800ec361a62", "packagetype": "bdist_wheel", "python_version": "py2.py3", "requires_python": ">=2.7,!=3.0.*,!=3.1.*,!=3.2.*,!=3.3.*,!=3.4.*", "size": 15333, "upload_time": "2019-06-01T09:52:57", "url": "https://files.pythonhosted.org/packages/91/4e/2b3556611f2d805522d48417e90efea0ea85fbe0cf9a3dee2c6fcafc3143/csv23-0.1.5-py2.py3-none-any.whl" }, { "comment_text": "", "digests": { "md5": "a8b25d0b2438b3d443e4e0eac9192cc2", "sha256": "c4f4a6926fd4451ea086998f1fe72d54ccd104a2936717c53f7155bb30c3fee4" }, "downloads": -1, "filename": "csv23-0.1.5.zip", "has_sig": false, "md5_digest": "a8b25d0b2438b3d443e4e0eac9192cc2", "packagetype": "sdist", "python_version": "source", "requires_python": ">=2.7,!=3.0.*,!=3.1.*,!=3.2.*,!=3.3.*,!=3.4.*", "size": 35230, "upload_time": "2019-06-01T09:52:59", "url": "https://files.pythonhosted.org/packages/5c/43/b1286806de69e420466eb914df155765bf75b079f21b490cdecfaee62718/csv23-0.1.5.zip" } ] }, "urls": [ { "comment_text": "", "digests": { "md5": "5a745a48604f7be7befe9800ec361a62", "sha256": "4f5c7bfefabbe2785d9109b8ae645e3ce24f8c24c8c2973ce7d20448f351fb80" }, "downloads": -1, "filename": "csv23-0.1.5-py2.py3-none-any.whl", "has_sig": false, "md5_digest": "5a745a48604f7be7befe9800ec361a62", "packagetype": "bdist_wheel", "python_version": "py2.py3", "requires_python": ">=2.7,!=3.0.*,!=3.1.*,!=3.2.*,!=3.3.*,!=3.4.*", "size": 15333, "upload_time": "2019-06-01T09:52:57", "url": "https://files.pythonhosted.org/packages/91/4e/2b3556611f2d805522d48417e90efea0ea85fbe0cf9a3dee2c6fcafc3143/csv23-0.1.5-py2.py3-none-any.whl" }, { "comment_text": "", "digests": { "md5": "a8b25d0b2438b3d443e4e0eac9192cc2", "sha256": "c4f4a6926fd4451ea086998f1fe72d54ccd104a2936717c53f7155bb30c3fee4" }, "downloads": -1, "filename": "csv23-0.1.5.zip", "has_sig": false, "md5_digest": "a8b25d0b2438b3d443e4e0eac9192cc2", "packagetype": "sdist", "python_version": "source", "requires_python": ">=2.7,!=3.0.*,!=3.1.*,!=3.2.*,!=3.3.*,!=3.4.*", "size": 35230, "upload_time": "2019-06-01T09:52:59", "url": "https://files.pythonhosted.org/packages/5c/43/b1286806de69e420466eb914df155765bf75b079f21b490cdecfaee62718/csv23-0.1.5.zip" } ] }