Skip to content

Python 3 support #6

@felipou

Description

@felipou

I'd like to implement Python 3 support for this package. It's one of the last packages that do not support it here: http://py3readiness.org/

I've been studying Python C extensions and this package's code, and I believe this is doable.

The hardest and most important part is to define how the two functions should work in Python 3. This is what I thought so far:

  • JSON_encode: as of now, this function returns a Python 2 str object. Since this is the equivalent of the bytes type in Python 3, I thinks it would be better if this function returned a Python 3 str (equivalent to Python 2 unicode) by default, and we add an argument that makes it return a bytes object (the current behavior).
  • JSON_decode: basically I think that the argument all_unicode should have it's default value changed to True in Python 3.

I'm still getting used to Python 3 myself, and I haven't ported much code from Python 2 to 3 yet, so I'm not sure if these are the best options, but I believe they are a good enough first step towards porting, and then we can find someone with more expertise to help decide what would be the best choices for Python 3.

Anyway, thanks a lot for this great package, and I hope you will consider my offer favorably! :)

Metadata

Metadata

Assignees

No one assigned

    Labels

    No labels
    No labels

    Type

    No type

    Projects

    No projects

    Milestone

    No milestone

    Relationships

    None yet

    Development

    No branches or pull requests

    Issue actions