Support Python 3
turicas opened this issue · 6 comments
Any specific library missing in python3 to be replaced?
@ocarneiro, I actually don't know. We currently have these dependencies:
unicodecsv
(for CSV plugin -- we may usecsv
from standard library on Python3)click
andrequests
(for command-line interface)lxml
(HTML and ODS plugins)xlrd
andxlwt
(XLS)openpyxl
(XLSX)
And also development requirements:
coverage
ipdb
mock
nose
pylint
yanc
@ocarneiro, all dependencies are ported.
csv
is Unicode-only in Python 3, and mock
is in the standard library as unittest.mock
since 3.3. The others claim py3 compatibility on PyPI.
Working in progress by @henriquebastos on #151.
Since many changes related to rows.fields
were made on last version 0.2.1, I've started a new branch with Python 3 migration, from scratch: feature/python3-support.
First I converted the rows.fields
module, utility functions and the library core, then I converted some plugins. By now I just need to convert the JSON and Parquet plugins. All tests are passing on Python 2.
@henriquebastos, I'd like somebody to review this branch once I finished -- could you please to it? I think I'm going to finish early this week.
Update: the work is almost complete! By now all tests are passing on both versions, but still need to:
- Create test and fix a little issue I found on plugin HTML
- Create test and fix a little issue I found on BinaryField
- Fix problem with BinaryField precedence
- Fix examples
ecuador_radiodifusoras.py
(Python 2),slip_opinions.py
(2 and 3) andtests_uwsgi_log.py
/uwsgi_log_plugin.py
and the related problems on the library which are causing them to fail - Configure tox
- Verify the best way to expose plugin functions (
from rows.plugins.html import extract_links
won't work, for example)