Giter Club home page Giter Club logo

Comments (6)

akshaykhushu avatar akshaykhushu commented on June 30, 2024

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.

remingtonc avatar remingtonc commented on June 30, 2024

Addressing in branch expose_channel.

from cisco-gnmi-python.

remingtonc avatar remingtonc commented on June 30, 2024

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.

remingtonc avatar remingtonc commented on June 30, 2024

I see 2 methodologies for this:

  1. Storing a reference to the Channel in the Client - e.g. client._channel.
  2. 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.

miott avatar miott commented on June 30, 2024

Don't see a point in returning the channel separate from the Client instance.

from cisco-gnmi-python.

remingtonc avatar remingtonc commented on June 30, 2024

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)

Recommend Projects

  • React photo React

    A declarative, efficient, and flexible JavaScript library for building user interfaces.

  • Vue.js photo Vue.js

    🖖 Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.

  • Typescript photo Typescript

    TypeScript is a superset of JavaScript that compiles to clean JavaScript output.

  • TensorFlow photo TensorFlow

    An Open Source Machine Learning Framework for Everyone

  • Django photo Django

    The Web framework for perfectionists with deadlines.

  • D3 photo 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.

  • Game

    Some thing interesting about game, make everyone happy.

Recommend Org

  • Facebook photo Facebook

    We are working to build community through open source technology. NB: members must have two-factor auth.

  • Microsoft photo Microsoft

    Open source projects and samples from Microsoft.

  • Google photo Google

    Google ❤️ Open Source for everyone.

  • D3 photo D3

    Data-Driven Documents codes.