redisjson-py icon indicating copy to clipboard operation
redisjson-py copied to clipboard

Document differences in using Python2 and Python3

Open K-Jo opened this issue 5 years ago • 4 comments

Client(decode_responses=True)

K-Jo avatar Jul 17 '19 21:07 K-Jo

I don't know whether to be happy that I've found this, after two hours banging my head against the screen, or to be upset that almost a year later such an essential bit is still missing from the doc.

toyg avatar Apr 04 '20 00:04 toyg

@toyg i'm sorry you wasted two hours. But it's documented, in fact it's right on the first example in the https://github.com/RedisJSON/redisjson-py/blob/master/README.md.

   from rejson import Client, Path

   rj = Client(host='localhost', port=6379, decode_responses=True)

   # Set the key `obj` to some object
   obj = {
       'answer': 42,
       'arr': [None, True, 3.14],
       'truth': {
           'coord': 'out there'
       }
   }

And even has its own section: https://github.com/RedisJSON/redisjson-py#encodingdecoding

Do you think we should add it somewhere else?

gkorland avatar Apr 04 '20 12:04 gkorland

I think it should be mentioned that it’s a compulsory parameter when using Python3, rather than something advanced and optional that may or may not be required. I would dare say it should be True by default, now that py2 is dead, but I guess that’s an opinion and switching it now might break old code.

toyg avatar Apr 04 '20 14:04 toyg

I've submitted #37 to fix (docs only) this - please let me know if acceptable.

After spending some cycles mulling on this, I think we can relax this requirement and have the client do the decoding of rejson's replies if it wasn't initialized with decode_responses=True. That would have probably been the right course to take all that time ago but changing now will break things :/

Perhaps it is something worth considering for the next major release @gkorland

itamarhaber avatar Apr 07 '20 12:04 itamarhaber