New issue
Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.
By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.
Already on GitHub? Sign in to your account
Python 3 compatibility #116
Conversation
all tests pass on python3.5 now |
We've been using this branch at our office for a while and it seems stable enough. Would love it if it went up on pypi. |
good to hear this code works well for others. a new upstream thriftpy release was a blocker for us, but that has been resolved in the mean time. only need to bump the minimum version in the deps. i also want to update some docs a bit now that the bytes/text distinction is more explicit, since py3 no longer does "helpful" implicit conversions. also, the api docs generation is broken on readthedocs currently, not sure how to fix that yet. currently travelling without access to a dev env, but will get back to (finally) resolving this py3 transition soonish.
sent from my phone. please forgive my tpyos. On May 16, 2016 6:21:59 PM GMT+02:00, Scott Cooper notifications@github.com wrote:
|
Hey @wbolster , great job! We have a @Preetwinder our beloved Google Summer of Code student working on porting https://github.com/scrapinghub/frontera to support Python 3. In short, Frontera is a framework used to build large scale web crawlers with Python. In Frontera integration with HBase is crucial, and current lack of Python 3 support in happybase is a blocker for us. If possible, could you please get Py3 happybase port done? This is very important for Preet to accomplish his GSoC goals. Let us know if you need any help: PR, reviews, testing, etc. At Scrapinghub we have lots of experience porting open source projects to Python 3. Thank you! cc @redapple. |
the code is looking ok imho, but the docs aren't properly building. also, the docs need a few notes on bytes vs. strings. perhaps these issues should be ignored for now since it's not blocking any functionality. |
@wbolster Nobody except you understand all the details that needs to be reflected in documentation, therefore I'm not sure if we can help there. What if you release a new version explaining that code is Py3 compatible and put a disclaimer in the docs saying that docs are outdated and missing type definitions? I would love to see it available on PyPI. |
...which behaves differently on Python 3.
...to coerce unicode text into UTF-8 encoded byte strings.
...hence require splitting using a byte string.
...and make it work on both Python 3 and 2.
In HBase, the name is a byte string, but transparently encoding text using UTF-8 allows for cleaner code on the Python side. This makes code like connection.table("sometable") work on both Python 3 and 2.
...since Python 3 does not have that function anymore.
merged, fixes #40 |
@scttcper @sibiryakov @Preetwinder @jeroenvlek @surfacepatterns since you expressed interest in python 3 support for happybase, please test current master and report any issues! i think we're almost there ;) |
@wbolster Thanks for doing this. I and @sibiryakov have been testing happybase on Python3 for the past few days. We have mainly used - connection.create/delete_table, table.batch and table.scan. These components have been working fine for us, and we didn't face any issue up-till now. If we encounter any issue in the future we will let you know. We hope you get to release a Python 3 supporting version soon. Thanks. |
also table.rows() |
ok, cool, thanks for testing this. the tests also cover quite a large bit of the api, but since i don't use happybase myself anymore i don't have any real world applications to test against. i'll make a release soon (when i find my pypi credentials 😕) i'll update #131 once i did so. |
happybase 1.0.0 is available from pypi |
No description provided.