Comments (6)
Yes, I also think there should be a way of closing the channel through the Client class. It doesn't make sense to restart the Python interpreter to shutdown the channel, since the channel class is not accessible from Client
from cisco-gnmi-python.
Addressing in branch expose_channel
.
from cisco-gnmi-python.
Initially hoped that the stub might have channel references in the object, but the stub methods appear to compose on the channel (eg). Cool pattern. Storing a reference to the channel in the object does seem like the best methodology as accessing via stub doesn't seem very viable.
from cisco-gnmi-python.
I see 2 methodologies for this:
- Storing a reference to the Channel in the
Client
- e.g.client._channel
. - Returning the channel from the
ClientBuilder
. e.g.client, channel = builder.construct()
.
client._channel
is more ergonomic/friendly/breaks nothing. Returning from the builder feels more "correct" regarding how gRPC wants to operate though - but would be a breaking code change.
Going with both - a reference in the Client
for the sake of preserving behavior, and adding another method ClientBuilder.construct_with_channel
.
from cisco-gnmi-python.
Don't see a point in returning the channel separate from the Client instance.
from cisco-gnmi-python.
If I had better thought about this in the past, I would have initially returned the Channel
as well as the Client
instance. Call it wishful thinking. When gNOI and other gRPC based interfaces start coming into play we will likely want to preserve our channel instances as they'll likely be shared.
from cisco-gnmi-python.
Related Issues (20)
- Add Subscribe Mode to CLI
- Accomodate double-quotes in keyed XPath parsing
- PR check for version number bump
- Handle empty XPath appropriately
- Add XPath unit tests
- Support to handle data size > 4mb in get responses HOT 2
- Validate deletion of leaflist entry on nxos HOT 2
- Update NX-OS docstring
- Support multiple update/replace Updates
- Simplify data access
- replace issue in client.py
- Need mechanism to update/replace based on xpath HOT 1
- Client initialization needs to be moved ahead for delete_xpath operation HOT 1
- subscription with req_mode POLL not fetching data HOT 3
- Clarify support model
- Trying to connect with missing certificate_chain crashed python interpreter HOT 5
- Clarify Set example as XR in documentation
- Cannot filter based on key in XR
- xr.py check_config() doing a wrong type check
- Error when importing cisco_gnmi in Python 3.9 or 3.11 HOT 1
Recommend Projects
-
React
A declarative, efficient, and flexible JavaScript library for building user interfaces.
-
Vue.js
🖖 Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.
-
Typescript
TypeScript is a superset of JavaScript that compiles to clean JavaScript output.
-
TensorFlow
An Open Source Machine Learning Framework for Everyone
-
Django
The Web framework for perfectionists with deadlines.
-
Laravel
A PHP framework for web artisans
-
D3
Bring data to life with SVG, Canvas and HTML. 📊📈🎉
-
Recommend Topics
-
javascript
JavaScript (JS) is a lightweight interpreted programming language with first-class functions.
-
web
Some thing interesting about web. New door for the world.
-
server
A server is a program made to process requests and deliver data to clients.
-
Machine learning
Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.
-
Visualization
Some thing interesting about visualization, use data art
-
Game
Some thing interesting about game, make everyone happy.
Recommend Org
-
Facebook
We are working to build community through open source technology. NB: members must have two-factor auth.
-
Microsoft
Open source projects and samples from Microsoft.
-
Google
Google ❤️ Open Source for everyone.
-
Alibaba
Alibaba Open Source for everyone
-
D3
Data-Driven Documents codes.
-
Tencent
China tencent open source team.
from cisco-gnmi-python.