clojure-vim/nrepl-python-client

Review unicode support

SevereOverfl0w opened this issue · 0 comments

Unicode support was added somewhat hastily. I pretty much just shoved a b in front of all the strings, and switched StringIO for BytesIO.

  • I'm not entirely sure that StringIO is even used anymore. The import may be removable
  • For some reason, StringIO can be imported as either from StringIO import StringIO or from io import StringIO, what are their differences? does something similar apply to BytesIO?
  • This code
    # x = x.encode("UTF-8")
    # TODO revisit encodings, this is surely not right. Python
    # (2.x, anyway) conflates bytes and strings, but 3.x does not...
    out.write(str(len(x.encode('utf-8'))).encode('utf-8'))
    the comment probably doesn't need to be there anymore and it should be split up to ensure that it's understood that it's doing two things:
  • Getting the length of the string in bytes
  • Turning that length into a utf-8 encoded string

There's probably more refactoring to look into, but this is what comes to mind.