On 04/13/2013 09:36 AM, Stefan Schwarzer wrote:
* Approach 2

   When opening remote text files for reading, ftputil will
   always return unicode strings from `read(line/s)`,
   regardless of whether it runs under Python 2 or Python 3.

     Pro: Uniform API, independent on underlying Python
     version.

     Pro: Supporting a single API will result in cleaner code
     in ftputil than when supporting different APIs (see
     above).

     Con: This approach might break some code which expects
     the returned strings under Python 2 to be byte strings.

     Con: Developers who only use Python 2 might be confused
     if ftputil returns unicode strings from `read(line/s)`
     since this behavior doesn't match files opened with
     `open` in Python 2.

Which approach do you recommend and why do you prefer that
approach?

Approach 2, because it is much saner to deal with unicode inside the program, and only switch back to some kind of encoding when writing to files/pipes/etc. Since you are going to support python 3 as well you can bump the major version number and note the backward incompatibility.

--
~Ethan~
--
http://mail.python.org/mailman/listinfo/python-list

Reply via email to