Python 2/3 unicode CSV compatibility layer
Project description
csv23 provides the unicode-based API of the Python 3 csv module for Python 2 and 3. Code that should run under both versions of Python can use it to hide the bytes vs. text difference between 2 and 3 and stick to the newer unicode-based interface.
csv23 works around for the following bugs in the stdlib csv module:
- bpo-12178
broken round-trip with escapechar if your data contains a literal escape character
- bpo-31590
broken round-trip with escapechar and embedded newlines under Python 2 (fixed in Python 3.4 but not backported): produce a warning
The package also provides some convenience functionality such as the open_csv() context manager for opening a CSV file in the right mode and returning a csv.reader or csv.writer:
>>> import csv23
>>> with csv23.open_csv('spam.csv') as reader: # doctest: +SKIP
... for row in reader:
... print(', '.join(row))
Spam!, Spam!, Spam!'
Spam!, Lovely Spam!, Lovely Spam!'
It uses utf-8 as default encoding everywhere.
Links
GitHub: https://github.com/xflr6/csv23
Documentation: https://csv23.readthedocs.io
Changelog: https://csv23.readthedocs.io/en/latest/changelog.html
Issue Tracker: https://github.com/xflr6/csv23/issues
Download: https://pypi.org/project/csv23/#files
Installation
This package runs under Python 2.7, and 3.4+, use pip to install:
$ pip install csv23
See also
License
This package is distributed under the MIT license.
Project details
Release history Release notifications | RSS feed
Download files
Download the file for your platform. If you're not sure which to choose, learn more about installing packages.
Source Distribution
Built Distribution
Hashes for csv23-0.1.4-py2.py3-none-any.whl
Algorithm | Hash digest | |
---|---|---|
SHA256 | 72d34fc1dff7d837a471fd21c1925d3a2e531e3b1023505f396c96ac3287fb76 |
|
MD5 | 8c43b57d956b816450823b0f99b5488f |
|
BLAKE2b-256 | 78a9127dd5e65ec6c2863cfa27aaaade798a776ab788b8ba13c75dd030e7f0e1 |