Add Stream node constructor for sub-classing #442#445
Add Stream node constructor for sub-classing #442#445florentbr wants to merge 4 commits intopython-streamz:masterfrom
Conversation
0a8083c to
f9d993c
Compare
|
Please ping me if you manage to get tests to pass. In the meantime, please note the warning suggesting to add pytest-asyncio to the CI env. |
|
All the tests were successful on my fork: |
This might be a convenient time to add the dep, as a service to the repo |
|
I don't understand what "add pytest-asyncio to the CI env." and "add the dep, as a service to the repo" means and implies. |
|
Never mind, I'll deal with it when I can |
martindurant
left a comment
There was a problem hiding this comment.
Please can you add some prose in the documentation about how to use this new feature?
|
It's not really a new feature. This change just exposes the constructor for the nodes which was otherwise inaccessible. It's not meant for a general usage, but for developers who wish to extend/tweak this library. I've already documented the API with a usage example. So I don't know what kind of prose you are expecting since it relates to basic OOP which is well documented on the web. |
You are demonstrating usage that was previously not possible - adding methods to a subclass but not to the classes of this library. I think it's worth demonstrating that this is possible! I have not yet managed to figure out why the kafka tests are sometimes failing here. |
This PR provides a constructor on the
Streamwhich can be overridden for sub-classing the nodes.This is to create or override methods without altering the original Stream class.
It gives a single point of entry to extend any node while chaining.
The behaviour remains the same unless
Stream._new_nodeis overridden.This is a usage example to subclass and inherit a Stream :