LGTM. I'm +1 for making it as a submodule. I have approved the PR. Thanks, Zike Yang
On Fri, Dec 29, 2023 at 6:33 PM Yunze Xu <x...@apache.org> wrote: > > Hi all, > > Recently I noticed the Pulsar Python client APIs are not friendly to > Python users [1]. The existing asynchronous APIs are based on > callbacks and they are hard to use. Since the Pulsar Python client is > a wrapper on the Pulsar C++ client, wrapping the existing > callback-based APIs for asyncio requires much knowledge on the > underlying C++ implementation details [2]. > > For the reasons above, I think it will be helpful to provide another > set of APIs based on asyncio and coroutines. I opened my first PR [3] > as the beginning. Instead of rewriting a new project, I'd like to add > a submodule `pulsar.asyncio` for these APIs that share the same C > extension with APIs in the `pulsar` module. > > The new APIs are in development and do not affect the original APIs, > which are actually not tested well, see the regression [4]. Instead of > adding more tests to existing APIs, I'd like to pay more attention > when adding new APIs. Tests are required for each new configuration. > > Feel free to share your thoughts on this! > > [1] https://github.com/apache/pulsar-client-python/issues/184 > [2] > https://github.com/apache/pulsar-client-python/issues/55#issuecomment-1759925342 > [3] https://github.com/apache/pulsar-client-python/pull/189 > [4] https://github.com/apache/pulsar-client-python/issues/178 > > Thanks, > Yunze